# HG changeset patch # User Katsumi Yamaoka # Date 1278889067 0 # Node ID 799b501427433a409d7237f60194c37dfebb4e61 # Parent 0b8608a36b5518c846c8e91fe1e587d3d1dfa41f# Parent 02b388bb2a4b7854e0d777b6ca59aea50bdae0c8 Merge from mainline. diff -r 0b8608a36b55 -r 799b50142743 ChangeLog --- a/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,9 @@ +2010-07-11 Andreas Schwab + + * configure.in: Don't check for index and rindex, check for strchr + and strrchr. Define strchr and strrchr as index and rindex, + resp., in src/config.h if not available. + 2010-07-08 Dan Nicolaescu * configure.in: Use -Wold-style-definition if available. @@ -55,6 +61,10 @@ * config.bat: Remove white space around "+" in COPY commands. +2010-06-23 Glenn Morris + + * info/dir: Start descriptions in column 32, per Texinfo convention. + 2010-06-16 Chong Yidong * INSTALL: Update font information (Bug#6389). diff -r 0b8608a36b55 -r 799b50142743 admin/CPP-DEFINES --- a/admin/CPP-DEFINES Fri Jul 09 01:50:09 2010 +0000 +++ b/admin/CPP-DEFINES Sun Jul 11 22:57:47 2010 +0000 @@ -143,7 +143,6 @@ HAVE_GETTIMEOFDAY HAVE_GETWD HAVE_H_ERRNO -HAVE_INDEX HAVE_INET_SOCKETS HAVE_INVERSE_HYPERBOLIC HAVE_LIBKSTAT @@ -162,7 +161,6 @@ HAVE_RANDOM HAVE_RENAME HAVE_RES_INIT -HAVE_RINDEX HAVE_RINT HAVE_RMDIR HAVE_SELECT diff -r 0b8608a36b55 -r 799b50142743 admin/ChangeLog --- a/admin/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/admin/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,7 @@ +2010-07-11 Andreas Schwab + + * CPP-DEFINES (HAVE_INDEX, HAVE_RINDEX): Remove. + 2010-07-08 Eli Zaretskii * MAINTAINERS: Update my responsibilities. diff -r 0b8608a36b55 -r 799b50142743 configure --- a/configure Fri Jul 09 01:50:09 2010 +0000 +++ b/configure Sun Jul 11 22:57:47 2010 +0000 @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.65 for emacs 24.0.50. +# Generated by GNU Autoconf 2.66 for emacs 24.0.50. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -316,7 +316,7 @@ 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 ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 - fi - $as_echo "$as_me: error: $1" >&2 + 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_fn_exit $as_status } # as_fn_error @@ -530,7 +530,7 @@ exec 6>&1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -947,7 +947,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 @@ -973,7 +973,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 @@ -1177,7 +1177,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 @@ -1193,7 +1193,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 @@ -1223,8 +1223,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" ;; *=*) @@ -1232,7 +1232,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 ;; @@ -1250,13 +1250,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 @@ -1279,7 +1279,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' @@ -1293,8 +1293,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 @@ -1309,9 +1309,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. @@ -1350,11 +1350,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 @@ -1394,7 +1394,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 @@ -1610,9 +1610,9 @@ if $ac_init_version; then cat <<\_ACEOF emacs configure 24.0.50 -generated by GNU Autoconf 2.65 - -Copyright (C) 2009 Free Software Foundation, Inc. +generated by GNU Autoconf 2.66 + +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1752,10 +1752,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1818,7 +1818,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1882,7 +1882,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1904,15 +1904,18 @@ } # ac_fn_c_check_header_compile -# ac_fn_c_check_decl LINENO SYMBOL VAR -# ------------------------------------ -# Tests whether SYMBOL is declared, setting cache variable VAR accordingly. +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking 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_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1921,8 +1924,12 @@ int main () { -#ifndef $2 - (void) $2; +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif #endif ; @@ -1951,7 +1958,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1981,7 +1988,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 { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$4+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2037,7 +2044,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2105,7 +2112,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -2154,7 +2161,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.65. Invocation command line was +generated by GNU Autoconf 2.66. Invocation command line was $ $0 $@ @@ -2264,11 +2271,9 @@ { echo - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( @@ -2302,11 +2307,9 @@ ) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do @@ -2319,11 +2322,9 @@ echo if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## -## ------------------- ## -_ASBOX +## ------------------- ##" echo for ac_var in $ac_subst_files do @@ -2337,11 +2338,9 @@ fi if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo cat confdefs.h echo @@ -2396,7 +2395,12 @@ ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2411,7 +2415,11 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -2492,7 +2500,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. ## @@ -2666,7 +2674,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 ;; @@ -2945,7 +2953,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" @@ -3061,16 +3069,22 @@ ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - for ac_t in install-sh install.sh shtool; do - if test -f "$ac_dir/$ac_t"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/$ac_t -c" - break 2 - fi - done + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi done if test -z "$ac_aux_dir"; then - as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -3084,7 +3098,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; } @@ -3095,16 +3109,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='-' @@ -3129,7 +3143,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 @@ -3137,7 +3151,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='-' @@ -3431,7 +3445,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 @@ -3745,8 +3759,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 @@ -3860,9 +3874,8 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ as_fn_set_status 77 -as_fn_error "C compiler cannot create executables -See \`config.log' for more details." "$LINENO" 5; }; } +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -3904,8 +3917,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 @@ -3962,9 +3975,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 @@ -4015,8 +4028,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 @@ -4435,8 +4448,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 @@ -4497,7 +4510,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 @@ -4563,7 +4576,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 @@ -4695,8 +4708,7 @@ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -4992,8 +5004,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 @@ -5430,7 +5442,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 @@ -5606,7 +5618,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 @@ -5884,7 +5896,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 @@ -5939,8 +5951,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -6131,7 +6142,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 @@ -6166,8 +6177,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -7009,7 +7019,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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -7017,7 +7027,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;; @@ -7153,7 +7163,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 @@ -7171,7 +7181,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 @@ -7441,7 +7451,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 @@ -7557,7 +7567,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. @@ -7680,8 +7690,7 @@ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -7787,6 +7796,7 @@ main () { char *data, *data2, *data3; + const char *cdata2; int i, pagesize; int fd, fd2; @@ -7811,10 +7821,10 @@ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd2 < 0) return 4; - data2 = ""; - if (write (fd2, data2, 1) != 1) + cdata2 = ""; + if (write (fd2, cdata2, 1) != 1) return 5; - data2 = mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); + data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); if (data2 == MAP_FAILED) return 6; for (i = 0; i < pagesize; ++i) @@ -8186,8 +8196,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -8468,7 +8477,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 @@ -8574,7 +8583,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 @@ -8601,7 +8610,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 @@ -8731,8 +8740,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -9097,7 +9105,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; } @@ -10274,8 +10282,7 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -10527,7 +10534,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 @@ -10862,8 +10869,7 @@ for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func @@ -10927,7 +10933,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. @@ -11123,7 +11129,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 @@ -11204,7 +11210,7 @@ random lrand48 logb frexp fmod rint cbrt ftime setsid \ strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \ -__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ +__fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ gai_strerror mkstemp getline getdelim mremap memmove fsync sync \ memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \ @@ -11212,8 +11218,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -11244,8 +11249,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -11297,8 +11301,8 @@ static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ -static char *tz_strings[] = { - (char *) 0, "TZ=GMT0", "TZ=JST-9", +static const char *tz_strings[] = { + (const char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) @@ -11315,7 +11319,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 ("TZ=PST8PDT,M4.1.0,M10.5.0"); + putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; @@ -11328,16 +11332,14 @@ } static int -mktime_test1 (now) - time_t now; +mktime_test1 (time_t now) { struct tm *lt; return ! (lt = localtime (&now)) || mktime (lt) == now; } static int -mktime_test (now) - time_t now; +mktime_test (time_t now) { return (mktime_test1 (now) && mktime_test1 ((time_t) (time_t_max - now)) @@ -11361,8 +11363,7 @@ } static int -bigtime_test (j) - int j; +bigtime_test (int j) { struct tm tm; time_t now; @@ -11406,7 +11407,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 ("TZ=PST8PDT,M4.1.0,M10.5.0"); + putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); t = mktime (&tm); @@ -11441,7 +11442,7 @@ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) - putenv (tz_strings[i]); + putenv ((char*) tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) if (! mktime_test (t)) @@ -11493,7 +11494,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 @@ -12362,7 +12363,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 @@ -13509,8 +13510,7 @@ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -eval as_val=\$$as_ac_var - if test "x$as_val" = x""yes; then : +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -13884,14 +13884,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 @@ -14452,6 +14452,7 @@ 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$//' @@ -14613,19 +14614,19 @@ (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error ERROR [LINENO LOG_FD] -# --------------------------------- +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with status $?, using 1 if that was 0. +# script with STATUS, using 1 if that was 0. as_fn_error () { - as_status=$?; test $as_status -eq 0 && as_status=1 - if test "$3"; then - as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 - fi - $as_echo "$as_me: error: $1" >&2 + 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_fn_exit $as_status } # as_fn_error @@ -14821,7 +14822,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 @@ -14875,7 +14876,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.65. Invocation command line was +generated by GNU Autoconf 2.66. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -14941,10 +14942,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.65, +configured by $0, generated by GNU Autoconf 2.66, with options \\"\$ac_cs_config\\" -Copyright (C) 2009 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -14998,7 +14999,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 ;; @@ -15007,7 +15008,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" @@ -15075,7 +15076,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 @@ -15113,7 +15114,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. @@ -15147,7 +15148,7 @@ fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /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 @@ -15164,7 +15165,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 { @@ -15172,18 +15173,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 @@ -15278,20 +15279,28 @@ 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 $(srcdir), -# ${srcdir} and @srcdir@ 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 sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// s/^[^=]*=[ ]*$// }' fi @@ -15319,7 +15328,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 @@ -15404,7 +15413,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" @@ -15417,7 +15426,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 @@ -15445,7 +15454,7 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -15472,7 +15481,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 @@ -15608,22 +15617,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) # @@ -15634,19 +15643,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 ;; @@ -15683,7 +15692,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. @@ -15704,7 +15713,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 $? + $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 diff -r 0b8608a36b55 -r 799b50142743 configure.in --- a/configure.in Fri Jul 09 01:50:09 2010 +0000 +++ b/configure.in Sun Jul 11 22:57:47 2010 +0000 @@ -2635,7 +2635,7 @@ random lrand48 logb frexp fmod rint cbrt ftime setsid \ strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \ -__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ +__fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ gai_strerror mkstemp getline getdelim mremap memmove fsync sync \ memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \ @@ -3601,6 +3601,14 @@ typedef unsigned size_t; #endif +#ifndef HAVE_STRCHR +#define strchr(a, b) index (a, b) +#endif + +#ifndef HAVE_STRRCHR +#define strrchr(a, b) rindex (a, b) +#endif + #if defined __GNUC__ && (__GNUC__ > 2 \ || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) #define NO_RETURN __attribute__ ((__noreturn__)) diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/ChangeLog --- a/doc/emacs/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,13 @@ +2010-06-23 Glenn Morris + + * abbrevs.texi, basic.texi, buffers.texi, building.texi, calendar.texi: + * custom.texi, dired.texi, display.texi, emacs.texi, emerge-xtra.texi: + * files.texi, fortran-xtra.texi, frames.texi, help.texi, killing.texi: + * maintaining.texi, mark.texi, mini.texi, misc.texi, msdog.texi: + * mule.texi, programs.texi, rmail.texi, screen.texi, search.texi: + * sending.texi, text.texi, trouble.texi, vc1-xtra.texi, xresources.texi: + Untabify Texinfo files. + 2010-06-10 Glenn Morris * basic.texi (Inserting Text): Minor clarification. (Bug#6374) diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/abbrevs.texi --- a/doc/emacs/abbrevs.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/abbrevs.texi Sun Jul 11 22:57:47 2010 +0000 @@ -235,9 +235,9 @@ @example @var{various other tables@dots{}} (lisp-mode-abbrev-table) -"dk" 0 "define-key" +"dk" 0 "define-key" (global-abbrev-table) -"dfn" 0 "definition" +"dfn" 0 "definition" @end example @noindent diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/basic.texi --- a/doc/emacs/basic.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/basic.texi Sun Jul 11 22:57:47 2010 +0000 @@ -17,15 +17,15 @@ * Inserting Text:: Inserting text by simply typing it. * Moving Point:: Moving the cursor to the place where you want to - change something. -* Erasing:: Deleting and killing text. -* Basic Undo:: Undoing recent changes in the text. + change something. +* Erasing:: Deleting and killing text. +* Basic Undo:: Undoing recent changes in the text. * Files: Basic Files. Visiting, creating, and saving files. * Help: Basic Help. Asking what a character does. -* Blank Lines:: Making and deleting blank lines. +* Blank Lines:: Making and deleting blank lines. * Continuation Lines:: How Emacs displays lines too wide for the screen. * Position Info:: What page, line, row, or column is point on? -* Arguments:: Numeric arguments for repeating a command N times. +* Arguments:: Numeric arguments for repeating a command N times. * Repeating:: Repeating the previous command quickly. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/buffers.texi --- a/doc/emacs/buffers.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/buffers.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Buffers, Windows, Files, Top @chapter Using Multiple Buffers @@ -49,10 +50,10 @@ @menu * Select Buffer:: Creating a new buffer or reselecting an old one. * List Buffers:: Getting a list of buffers that exist. -* Misc Buffer:: Renaming; changing read-onlyness; copying text. -* Kill Buffer:: Killing buffers you no longer need. +* Misc Buffer:: Renaming; changing read-onlyness; copying text. +* Kill Buffer:: Killing buffers you no longer need. * Several Buffers:: How to go through the list of all buffers - and operate variously on several of them. + and operate variously on several of them. * Indirect Buffers:: An indirect buffer shares the text of another buffer. * Buffer Convenience:: Convenience and customization features for buffer handling. diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/building.texi --- a/doc/emacs/building.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/building.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Building, Maintaining, Programs, Top @chapter Compiling and Testing Programs @@ -20,14 +21,14 @@ for use in the compilation buffer. * Grep Searching:: Searching with grep. * Flymake:: Finding syntax errors on the fly. -* Debuggers:: Running symbolic debuggers for non-Lisp programs. +* Debuggers:: Running symbolic debuggers for non-Lisp programs. * Executing Lisp:: Various modes for editing Lisp programs, with different facilities for running the Lisp programs. * Libraries: Lisp Libraries. Creating Lisp programs to run in Emacs. * Eval: Lisp Eval. Executing a single Lisp expression in Emacs. * Interaction: Lisp Interaction. Executing Lisp in an Emacs buffer. -* External Lisp:: Communicating through Emacs with a separate Lisp. +* External Lisp:: Communicating through Emacs with a separate Lisp. @end menu @node Compilation @@ -471,10 +472,10 @@ Lisp Reference Manual}, for information on the Emacs Lisp debugger. @menu -* Starting GUD:: How to start a debugger subprocess. -* Debugger Operation:: Connection between the debugger and source buffers. -* Commands of GUD:: Key bindings for common commands. -* GUD Customization:: Defining your own commands for GUD. +* Starting GUD:: How to start a debugger subprocess. +* Debugger Operation:: Connection between the debugger and source buffers. +* Commands of GUD:: Key bindings for common commands. +* GUD Customization:: Defining your own commands for GUD. * GDB Graphical Interface:: An enhanced mode that uses GDB features to implement a graphical debugging environment through Emacs. diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/calendar.texi --- a/doc/emacs/calendar.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/calendar.texi Sun Jul 11 22:57:47 2010 +0000 @@ -42,7 +42,7 @@ * Lunar Phases:: Displaying phases of the moon. * Other Calendars:: Converting dates to other calendar systems. * Diary:: Displaying events from your diary. -* Appointments:: Reminders when it's time to do something. +* Appointments:: Reminders when it's time to do something. * Importing Diary:: Converting diary events to/from other formats. * Daylight Saving:: How to specify when daylight saving time is active. * Time Intervals:: Keeping track of time intervals. @@ -674,11 +674,11 @@ and from several other calendars. @menu -* Calendar Systems:: The calendars Emacs understands - (aside from Gregorian). -* To Other Calendar:: Converting the selected date to various calendars. -* From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. +* Calendar Systems:: The calendars Emacs understands + (aside from Gregorian). +* To Other Calendar:: Converting the selected date to various calendars. +* From Other Calendar:: Moving to a date specified in another calendar. +* Mayan Calendar:: Moving to a date specified in a Mayan calendar. @end menu @node Calendar Systems @@ -1040,8 +1040,8 @@ @menu * Displaying the Diary:: Viewing diary entries and associated calendar dates. * Format of Diary File:: Entering events in your diary. -* Date Formats:: Various ways you can specify dates. -* Adding to Diary:: Commands to create diary entries. +* Date Formats:: Various ways you can specify dates. +* Adding to Diary:: Commands to create diary entries. * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/custom.texi --- a/doc/emacs/custom.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/custom.texi Sun Jul 11 22:57:47 2010 +0000 @@ -24,18 +24,18 @@ @end ifnottex @menu -* Minor Modes:: Each minor mode is a feature you can turn on - independently of any others. +* Minor Modes:: Each minor mode is a feature you can turn on + independently of any others. * Easy Customization:: Convenient way to browse and change settings. -* Variables:: Many Emacs commands examine Emacs variables - to decide what to do; by setting variables, - you can control their functioning. -* Key Bindings:: The keymaps say what command each key runs. - By changing them, you can "redefine keys". -* Syntax:: The syntax table controls how words and - expressions are parsed. -* Init File:: How to write common customizations in the - @file{.emacs} file. +* Variables:: Many Emacs commands examine Emacs variables + to decide what to do; by setting variables, + you can control their functioning. +* Key Bindings:: The keymaps say what command each key runs. + By changing them, you can "redefine keys". +* Syntax:: The syntax table controls how words and + expressions are parsed. +* Init File:: How to write common customizations in the + @file{.emacs} file. @end menu @node Minor Modes @@ -794,10 +794,10 @@ expects (@pxref{Examining}). @menu -* Examining:: Examining or setting one variable's value. -* Hooks:: Hook variables let you specify programs for parts - of Emacs to run on particular occasions. -* Locals:: Per-buffer values of variables. +* Examining:: Examining or setting one variable's value. +* Hooks:: Hook variables let you specify programs for parts + of Emacs to run on particular occasions. +* Locals:: Per-buffer values of variables. * File Variables:: How files can specify variable values. * Directory Variables:: How variable values can be specified by directory. @end menu @@ -943,12 +943,12 @@ @end group @group (c-cleanup-list . (scope-operator - empty-defun-braces - defun-close-semi)) + empty-defun-braces + defun-close-semi)) @end group @group (c-offsets-alist . ((arglist-close . c-lineup-arglist) - (substatement-open . 0))))) + (substatement-open . 0))))) @end group @group @@ -2175,10 +2175,10 @@ @end ifnottex @menu -* Init Syntax:: Syntax of constants in Emacs Lisp. +* Init Syntax:: Syntax of constants in Emacs Lisp. * Init Examples:: How to do some things with an init file. * Terminal Init:: Each terminal type can have an init file. -* Find Init:: How Emacs finds the init file. +* Find Init:: How Emacs finds the init file. * Init Non-ASCII:: Using non-@acronym{ASCII} characters in an init file. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/dired.texi --- a/doc/emacs/dired.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/dired.texi Sun Jul 11 22:57:47 2010 +0000 @@ -36,20 +36,20 @@ * Deletion: Dired Deletion. Deleting files with Dired. * Flagging Many Files:: Flagging files based on their names. * Visit: Dired Visiting. Other file operations through Dired. -* Marks vs Flags:: Flagging for deletion vs marking. -* Operating on Files:: How to copy, rename, print, compress, etc. - either one file or several files. +* Marks vs Flags:: Flagging for deletion vs marking. +* Operating on Files:: How to copy, rename, print, compress, etc. + either one file or several files. * Shell Commands in Dired:: Running a shell command on the marked files. * Transforming File Names:: Using patterns to rename multiple files. -* Comparison in Dired:: Running `diff' by way of Dired. +* Comparison in Dired:: Running `diff' by way of Dired. * Subdirectories in Dired:: Adding subdirectories to the Dired buffer. @ifnottex * Subdir Switches:: Subdirectory switches in Dired. @end ifnottex -* Subdirectory Motion:: Moving across subdirectories, and up and down. +* Subdirectory Motion:: Moving across subdirectories, and up and down. * Hiding Subdirectories:: Making subdirectories visible or invisible. * Updating: Dired Updating. Discarding lines for files of no interest. -* Find: Dired and Find. Using `find' to choose the files for Dired. +* Find: Dired and Find. Using `find' to choose the files for Dired. * Wdired:: Operating on files by editing the Dired buffer. * Image-Dired:: Viewing image thumbnails in Dired. * Misc: Misc Dired Features. Various other features. diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/display.texi --- a/doc/emacs/display.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/display.texi Sun Jul 11 22:57:47 2010 +0000 @@ -13,11 +13,11 @@ want to see, and how to display it. @menu -* Scrolling:: Commands to move text up and down in a window. +* Scrolling:: Commands to move text up and down in a window. * Auto Scrolling:: Redisplay scrolls text automatically when needed. * Horizontal Scrolling:: Moving text left and right in a window. * Follow Mode:: Follow mode lets two windows scroll as one. -* Faces:: How to change the display style using faces. +* Faces:: How to change the display style using faces. * Standard Faces:: Emacs' predefined faces. * Temporary Face Changes:: Commands to temporarily modify the default text face * Font Lock:: Minor mode for syntactic highlighting using faces. diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/emacs.texi --- a/doc/emacs/emacs.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/emacs.texi Sun Jul 11 22:57:47 2010 +0000 @@ -33,7 +33,7 @@ @dircategory Emacs @direntry -* Emacs: (emacs). The extensible self-documenting text editor. +* Emacs: (emacs). The extensible self-documenting text editor. @end direntry @c in general, keep the following line commented out, unless doing a @@ -134,13 +134,13 @@ @end ignore @menu -* Distrib:: How to get the latest Emacs distribution. -* Intro:: An introduction to Emacs concepts. +* Distrib:: How to get the latest Emacs distribution. +* Intro:: An introduction to Emacs concepts. @c Note that in the printed manual, the glossary and indices come last. -* Glossary:: Terms used in this manual. +* Glossary:: Terms used in this manual. Indexes (each index contains a large menu) -* Key Index:: An item for each standard Emacs key sequence. +* Key Index:: An item for each standard Emacs key sequence. * Option Index:: An item for every command-line option. * Command Index:: An item for each command name. * Variable Index:: An item for each documented variable. @@ -149,100 +149,100 @@ * Acknowledgments:: Major contributors to GNU Emacs. Important General Concepts -* Screen:: How to interpret what you see on the screen. -* User Input:: Kinds of input events (characters, buttons, +* Screen:: How to interpret what you see on the screen. +* User Input:: Kinds of input events (characters, buttons, function keys). -* Keys:: Key sequences: what you type to request one +* Keys:: Key sequences: what you type to request one editing action. -* Commands:: Named functions run by key sequences to do editing. +* Commands:: Named functions run by key sequences to do editing. * Entering Emacs:: Starting Emacs from the shell. -* Exiting:: Stopping or killing Emacs. +* Exiting:: Stopping or killing Emacs. Fundamental Editing Commands -* Basic:: The most basic editing commands. -* Minibuffer:: Entering arguments that are prompted for. -* M-x:: Invoking commands by their names. -* Help:: Commands for asking Emacs about its commands. +* Basic:: The most basic editing commands. +* Minibuffer:: Entering arguments that are prompted for. +* M-x:: Invoking commands by their names. +* Help:: Commands for asking Emacs about its commands. Important Text-Changing Commands -* Mark:: The mark: how to delimit a ``region'' of text. -* Killing:: Killing (cutting) text. -* Yanking:: Recovering killed text. Moving text. (Pasting.) +* Mark:: The mark: how to delimit a ``region'' of text. +* Killing:: Killing (cutting) text. +* Yanking:: Recovering killed text. Moving text. (Pasting.) * Accumulating Text:: Other ways of copying text. -* Rectangles:: Operating on the text inside a rectangle on the screen. +* Rectangles:: Operating on the text inside a rectangle on the screen. * CUA Bindings:: Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} for copy and paste, with enhanced rectangle support. -* Registers:: Saving a text string or a location in the buffer. -* Display:: Controlling what text is displayed. -* Search:: Finding or replacing occurrences of a string. -* Fixit:: Commands especially useful for fixing typos. -* Keyboard Macros:: A keyboard macro records a sequence of - keystrokes to be replayed with a single command. +* Registers:: Saving a text string or a location in the buffer. +* Display:: Controlling what text is displayed. +* Search:: Finding or replacing occurrences of a string. +* Fixit:: Commands especially useful for fixing typos. +* Keyboard Macros:: A keyboard macro records a sequence of + keystrokes to be replayed with a single command. Major Structures of Emacs -* Files:: All about handling files. -* Buffers:: Multiple buffers; editing several files at once. -* Windows:: Viewing two pieces of text at once. -* Frames:: Running the same Emacs session in multiple X windows. +* Files:: All about handling files. +* Buffers:: Multiple buffers; editing several files at once. +* Windows:: Viewing two pieces of text at once. +* Frames:: Running the same Emacs session in multiple X windows. * International:: Using non-@acronym{ASCII} character sets. Advanced Features -* Major Modes:: Text mode vs. Lisp mode vs. C mode... -* Indentation:: Editing the white space at the beginnings of lines. -* Text:: Commands and modes for editing English. -* Programs:: Commands and modes for editing programs. -* Building:: Compiling, running and debugging programs. +* Major Modes:: Text mode vs. Lisp mode vs. C mode... +* Indentation:: Editing the white space at the beginnings of lines. +* Text:: Commands and modes for editing English. +* Programs:: Commands and modes for editing programs. +* Building:: Compiling, running and debugging programs. * Maintaining:: Features for maintaining large programs. -* Abbrevs:: How to define text abbreviations to reduce - the number of characters you must type. +* Abbrevs:: How to define text abbreviations to reduce + the number of characters you must type. @c AFAICS, the tex stuff generates its own index and does not use this one. @ifnottex * Picture Mode:: Editing pictures made up of characters using the quarter-plane screen model. @end ifnottex * Sending Mail:: Sending mail in Emacs. -* Rmail:: Reading mail in Emacs. -* Dired:: You can ``edit'' a directory to manage files in it. +* Rmail:: Reading mail in Emacs. +* Dired:: You can ``edit'' a directory to manage files in it. * Calendar/Diary:: The calendar and diary facilities. * Document View:: Viewing PDF, PS and DVI files. -* Gnus:: How to read netnews with Emacs. -* Shell:: Executing shell commands from Emacs. +* Gnus:: How to read netnews with Emacs. +* Shell:: Executing shell commands from Emacs. * Emacs Server:: Using Emacs as an editing server for @code{mail}, etc. -* Printing:: Printing hardcopies of buffers or regions. -* Sorting:: Sorting lines, paragraphs or pages within Emacs. -* Narrowing:: Restricting display and editing to a portion - of the buffer. -* Two-Column:: Splitting apart columns to edit them - in side-by-side windows. +* Printing:: Printing hardcopies of buffers or regions. +* Sorting:: Sorting lines, paragraphs or pages within Emacs. +* Narrowing:: Restricting display and editing to a portion + of the buffer. +* Two-Column:: Splitting apart columns to edit them + in side-by-side windows. * Editing Binary Files::Using Hexl mode to edit binary files. * Saving Emacs Sessions:: Saving Emacs state from one session to the next. * Recursive Edit:: A command can allow you to do editing - "within the command". This is called a - "recursive editing level". -* Emulation:: Emulating some other editors with Emacs. + "within the command". This is called a + "recursive editing level". +* Emulation:: Emulating some other editors with Emacs. * Hyperlinking:: Following links in buffers. * Dissociated Press:: Dissociating text for fun. -* Amusements:: Various games and hacks. +* Amusements:: Various games and hacks. * Customization:: Modifying the behavior of Emacs. Recovery from Problems -* Quitting:: Quitting and aborting. -* Lossage:: What to do if Emacs is hung or malfunctioning. -* Bugs:: How and when to report a bug. +* Quitting:: Quitting and aborting. +* Lossage:: What to do if Emacs is hung or malfunctioning. +* Bugs:: How and when to report a bug. * Contributing:: How to contribute improvements to Emacs. -* Service:: How to get help for your own Emacs needs. +* Service:: How to get help for your own Emacs needs. Appendices -* Copying:: The GNU General Public License gives you permission - to redistribute GNU Emacs on certain terms; - it also explains that there is no warranty. +* Copying:: The GNU General Public License gives you permission + to redistribute GNU Emacs on certain terms; + it also explains that there is no warranty. * GNU Free Documentation License:: The license for this documentation. * Emacs Invocation:: Hairy startup options. * X Resources:: X resources for customizing Emacs. -* Antinews:: Information about Emacs version 22. +* Antinews:: Information about Emacs version 22. * Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep. * Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS. -* Manifesto:: What's GNU? Gnu's Not Unix! +* Manifesto:: What's GNU? Gnu's Not Unix! @c Do NOT modify the following 3 lines! They must have this form to @c be correctly identified by `texinfo-multiple-files-update'. In @@ -258,9 +258,9 @@ The Organization of the Screen -* Point:: The place in the text where editing commands operate. +* Point:: The place in the text where editing commands operate. * Echo Area:: Short messages appear at the bottom of the screen. -* Mode Line:: Interpreting the mode line. +* Mode Line:: Interpreting the mode line. * Menu Bar:: How to use the menu bar. Basic Editing Commands @@ -268,23 +268,23 @@ * Inserting Text:: Inserting text by simply typing it. * Moving Point:: Moving the cursor to the place where you want to change something. -* Erasing:: Deleting and killing text. -* Basic Undo:: Undoing recent changes in the text. +* Erasing:: Deleting and killing text. +* Basic Undo:: Undoing recent changes in the text. * Basic Files:: Visiting, creating, and saving files. * Basic Help:: Asking what a character does. -* Blank Lines:: Making and deleting blank lines. +* Blank Lines:: Making and deleting blank lines. * Continuation Lines:: How Emacs displays lines too wide for the screen. * Position Info:: What page, line, row, or column is point on? -* Arguments:: Numeric arguments for repeating a command N times. +* Arguments:: Numeric arguments for repeating a command N times. * Repeating:: Repeating the previous command quickly. The Minibuffer * Minibuffer File:: Entering file names with the minibuffer. * Minibuffer Edit:: How to edit in the minibuffer. -* Completion:: An abbreviation facility for minibuffer input. -* Minibuffer History:: Reusing recent minibuffer arguments. -* Repetition:: Re-executing commands that used the minibuffer. +* Completion:: An abbreviation facility for minibuffer input. +* Minibuffer History:: Reusing recent minibuffer arguments. +* Repetition:: Re-executing commands that used the minibuffer. * Passwords:: Entering passwords in the echo area. Completion @@ -296,59 +296,59 @@ Help -* Help Summary:: Brief list of all Help commands. -* Key Help:: Asking what a key does in Emacs. -* Name Help:: Asking about a command, variable or function name. -* Apropos:: Asking what pertains to a given topic. +* Help Summary:: Brief list of all Help commands. +* Key Help:: Asking what a key does in Emacs. +* Name Help:: Asking about a command, variable or function name. +* Apropos:: Asking what pertains to a given topic. * Help Mode:: Special features of Help mode and Help buffers. -* Library Keywords:: Finding Lisp libraries by keywords (topics). +* Library Keywords:: Finding Lisp libraries by keywords (topics). * Language Help:: Help relating to international language support. -* Misc Help:: Other help commands. +* Misc Help:: Other help commands. * Help Files:: Commands to display pre-written help files. * Help Echo:: Help on active text and tooltips (`balloon help'). The Mark and the Region -* Setting Mark:: Commands to set the mark. -* Marking Objects:: Commands to put region around textual units. -* Using Region:: Summary of ways to operate on contents of the region. -* Mark Ring:: Previous mark positions saved so you can go back there. +* Setting Mark:: Commands to set the mark. +* Marking Objects:: Commands to put region around textual units. +* Using Region:: Summary of ways to operate on contents of the region. +* Mark Ring:: Previous mark positions saved so you can go back there. * Global Mark Ring:: Previous mark positions in various buffers. * Shift Selection:: Using shifted cursor motion keys. -* Persistent Mark:: Keeping the mark active all the time. +* Persistent Mark:: Keeping the mark active all the time. Killing and Moving Text -* Deletion:: Commands for deleting small amounts of text and - blank areas. -* Killing by Lines:: How to kill entire lines of text at one time. +* Deletion:: Commands for deleting small amounts of text and + blank areas. +* Killing by Lines:: How to kill entire lines of text at one time. * Other Kill Commands:: Commands to kill large regions of text and - syntactic units such as words and sentences. + syntactic units such as words and sentences. * Kill Options:: Options that affect killing. Yanking -* Kill Ring:: Where killed text is stored. Basic yanking. -* Appending Kills:: Several kills in a row all yank together. -* Earlier Kills:: Yanking something killed some time ago. +* Kill Ring:: Where killed text is stored. Basic yanking. +* Appending Kills:: Several kills in a row all yank together. +* Earlier Kills:: Yanking something killed some time ago. Registers -* RegPos:: Saving positions in registers. -* RegText:: Saving text in registers. -* RegRect:: Saving rectangles in registers. +* RegPos:: Saving positions in registers. +* RegText:: Saving text in registers. +* RegRect:: Saving rectangles in registers. * RegConfig:: Saving window configurations in registers. * RegNumbers:: Numbers in registers. -* RegFiles:: File names in registers. +* RegFiles:: File names in registers. * Bookmarks:: Bookmarks are like registers, but persistent. Controlling the Display -* Scrolling:: Commands to move text up and down in a window. +* Scrolling:: Commands to move text up and down in a window. * Auto Scrolling:: Redisplay scrolls text automatically when needed. * Horizontal Scrolling:: Moving text left and right in a window. * Follow Mode:: Follow mode lets two windows scroll as one. -* Faces:: How to change the display style using faces. +* Faces:: How to change the display style using faces. * Standard Faces:: Emacs' predefined faces. * Temporary Face Changes:: Commands to temporarily modify the default text face * Font Lock:: Minor mode for syntactic highlighting using faces. @@ -367,15 +367,15 @@ Searching and Replacement -* Incremental Search:: Search happens as you type the string. +* Incremental Search:: Search happens as you type the string. * Nonincremental Search:: Specify entire string and then search. -* Word Search:: Search for sequence of words. -* Regexp Search:: Search for match for a regexp. -* Regexps:: Syntax of regular expressions. +* Word Search:: Search for sequence of words. +* Regexp Search:: Search for match for a regexp. +* Regexps:: Syntax of regular expressions. * Regexp Backslash:: Regular expression constructs starting with `\'. * Regexp Example:: A complex regular expression explained. -* Search Case:: To ignore case while searching, or not. -* Replace:: Search, and replace some or all matches. +* Search Case:: To ignore case while searching, or not. +* Replace:: Search, and replace some or all matches. * Other Repeating Search:: Operating on all matches for some regexp. Incremental Search @@ -393,16 +393,16 @@ Replacement Commands * Unconditional Replace:: Replacing all matches for a string. -* Regexp Replace:: Replacing all matches for a regexp. +* Regexp Replace:: Replacing all matches for a regexp. * Replacement and Case:: How replacements preserve case of letters. -* Query Replace:: How to use querying. +* Query Replace:: How to use querying. Commands for Fixing Typos * Undo:: The Undo commands. -* Transpose:: Exchanging two characters, words, lines, lists... +* Transpose:: Exchanging two characters, words, lines, lists... * Fixing Case:: Correcting case of last word entered. -* Spelling:: Apply spelling checker to a word, or a whole file. +* Spelling:: Apply spelling checker to a word, or a whole file. Keyboard Macros @@ -448,9 +448,9 @@ Backup Files -* Backup Names:: How backup files are named. -* Backup Deletion:: Emacs deletes excess numbered backups. -* Backup Copying:: Backups can be made by copying or renaming. +* Backup Names:: How backup files are named. +* Backup Deletion:: Emacs deletes excess numbered backups. +* Backup Copying:: Backups can be made by copying or renaming. Auto Reverting Non-File Buffers @@ -463,16 +463,16 @@ * Auto Save Files:: The file where auto-saved changes are actually made until you save the file. * Auto Save Control:: Controlling when and how often to auto-save. -* Recover:: Recovering text from auto-save files. +* Recover:: Recovering text from auto-save files. Using Multiple Buffers * Select Buffer:: Creating a new buffer or reselecting an old one. * List Buffers:: Getting a list of buffers that exist. -* Misc Buffer:: Renaming; changing read-onlyness; copying text. -* Kill Buffer:: Killing buffers you no longer need. +* Misc Buffer:: Renaming; changing read-onlyness; copying text. +* Kill Buffer:: Killing buffers you no longer need. * Several Buffers:: How to go through the list of all buffers - and operate variously on several of them. + and operate variously on several of them. * Indirect Buffers:: An indirect buffer shares the text of another buffer. * Buffer Convenience:: Convenience and customization features for buffer handling. @@ -507,10 +507,10 @@ * Multiple Displays:: How one Emacs job can talk to several displays. * Special Buffer Frames:: You can make certain buffers have their own frames. * Frame Parameters:: Changing the colors and other modes of frames. -* Scroll Bars:: How to enable and disable scroll bars; how to use them. +* Scroll Bars:: How to enable and disable scroll bars; how to use them. * Wheeled Mice:: Using mouse wheels for scrolling. * Drag and Drop:: Using drag and drop to open files and insert text. -* Menu Bars:: Enabling and disabling the menu bar. +* Menu Bars:: Enabling and disabling the menu bar. * Tool Bars:: Enabling and disabling the tool bar. * Dialog Boxes:: Controlling use of dialog boxes. * Tooltips:: Displaying information at the current mouse position. @@ -559,31 +559,31 @@ Indentation * Indentation Commands:: Various commands and techniques for indentation. -* Tab Stops:: You can set arbitrary "tab stops" and then - indent to the next tab stop when you want to. -* Just Spaces:: You can request indentation using just spaces. +* Tab Stops:: You can set arbitrary "tab stops" and then + indent to the next tab stop when you want to. +* Just Spaces:: You can request indentation using just spaces. Commands for Human Languages -* Words:: Moving over and killing words. -* Sentences:: Moving over and killing sentences. -* Paragraphs:: Moving over paragraphs. -* Pages:: Moving over pages. -* Filling:: Filling or justifying text. -* Case:: Changing the case of text. -* Text Mode:: The major modes for editing text files. +* Words:: Moving over and killing words. +* Sentences:: Moving over and killing sentences. +* Paragraphs:: Moving over paragraphs. +* Pages:: Moving over pages. +* Filling:: Filling or justifying text. +* Case:: Changing the case of text. +* Text Mode:: The major modes for editing text files. * Outline Mode:: Editing outlines. -* TeX Mode:: Editing input to the formatter TeX. +* TeX Mode:: Editing input to the formatter TeX. * HTML Mode:: Editing HTML and SGML files. -* Nroff Mode:: Editing input to the formatter nroff. +* Nroff Mode:: Editing input to the formatter nroff. * Formatted Text:: Editing formatted text directly in WYSIWYG fashion. * Text Based Tables:: Editing text-based tables in WYSIWYG fashion. Filling Text -* Auto Fill:: Auto Fill mode breaks long lines automatically. +* Auto Fill:: Auto Fill mode breaks long lines automatically. * Fill Commands:: Commands to refill paragraphs and center lines. -* Fill Prefix:: Filling paragraphs that are indented +* Fill Prefix:: Filling paragraphs that are indented or in a comment, etc. * Adaptive Fill:: How Emacs can determine the fill prefix automatically. * Refill:: Keeping paragraphs filled. @@ -592,7 +592,7 @@ Outline Mode * Outline Format:: What the text of an outline looks like. -* Outline Motion:: Special commands for moving through +* Outline Motion:: Special commands for moving through outlines. * Outline Visibility:: Commands to control what is visible. * Outline Views:: Outlines and multiple views. @@ -644,7 +644,7 @@ of a program. * Program Indent:: Adjusting indentation to show the nesting. * Parentheses:: Commands that operate on parentheses. -* Comments:: Inserting, killing, and aligning comments. +* Comments:: Inserting, killing, and aligning comments. * Documentation:: Getting documentation of functions you plan to call. * Hideshow:: Displaying blocks selectively. * Symbol Completion:: Completion on symbol names of your program or language. @@ -666,18 +666,18 @@ Indentation for Programs -* Basic Indent:: Indenting a single line. +* Basic Indent:: Indenting a single line. * Multi-line Indent:: Commands to reindent many lines at once. -* Lisp Indent:: Specifying how each Lisp function should be indented. -* C Indent:: Extra features for indenting C and related modes. -* Custom C Indent:: Controlling indentation style for C and related modes. +* Lisp Indent:: Specifying how each Lisp function should be indented. +* C Indent:: Extra features for indenting C and related modes. +* Custom C Indent:: Controlling indentation style for C and related modes. Commands for Editing with Parentheses * Expressions:: Expressions with balanced parentheses. * Moving by Parens:: Commands for moving up, down and across in the structure of parentheses. -* Matching:: Insertion of a close-delimiter flashes matching open. +* Matching:: Insertion of a close-delimiter flashes matching open. Manipulating Comments @@ -702,12 +702,12 @@ Fortran Mode -* Fortran Motion:: Moving point by statements or subprograms. -* Fortran Indent:: Indentation commands for Fortran. -* Fortran Comments:: Inserting and aligning comments. -* Fortran Autofill:: Auto fill support for Fortran. -* Fortran Columns:: Measuring columns for valid Fortran. -* Fortran Abbrev:: Built-in abbrevs for Fortran keywords. +* Fortran Motion:: Moving point by statements or subprograms. +* Fortran Indent:: Indentation commands for Fortran. +* Fortran Comments:: Inserting and aligning comments. +* Fortran Autofill:: Auto fill support for Fortran. +* Fortran Columns:: Measuring columns for valid Fortran. +* Fortran Abbrev:: Built-in abbrevs for Fortran keywords. Fortran Indentation @@ -719,28 +719,28 @@ Compiling and Testing Programs -* Compilation:: Compiling programs in languages other - than Lisp (C, Pascal, etc.). +* Compilation:: Compiling programs in languages other + than Lisp (C, Pascal, etc.). * Compilation Mode:: The mode for visiting compiler errors. * Compilation Shell:: Customizing your shell properly for use in the compilation buffer. * Grep Searching:: Searching with grep. * Flymake:: Finding syntax errors on the fly. -* Debuggers:: Running symbolic debuggers for non-Lisp programs. -* Executing Lisp:: Various modes for editing Lisp programs, - with different facilities for running - the Lisp programs. +* Debuggers:: Running symbolic debuggers for non-Lisp programs. +* Executing Lisp:: Various modes for editing Lisp programs, + with different facilities for running + the Lisp programs. * Lisp Libraries:: Creating Lisp programs to run in Emacs. -* Lisp Eval:: Executing a single Lisp expression in Emacs. +* Lisp Eval:: Executing a single Lisp expression in Emacs. * Lisp Interaction:: Executing Lisp in an Emacs buffer. -* External Lisp:: Communicating through Emacs with a separate Lisp. +* External Lisp:: Communicating through Emacs with a separate Lisp. Running Debuggers Under Emacs -* Starting GUD:: How to start a debugger subprocess. -* Debugger Operation:: Connection between the debugger and source buffers. -* Commands of GUD:: Key bindings for common commands. -* GUD Customization:: Defining your own commands for GUD. +* Starting GUD:: How to start a debugger subprocess. +* Debugger Operation:: Connection between the debugger and source buffers. +* Commands of GUD:: Key bindings for common commands. +* GUD Customization:: Defining your own commands for GUD. * GDB Graphical Interface:: An enhanced mode that uses GDB features to implement a graphical debugging environment through Emacs. @@ -761,9 +761,9 @@ Maintaining Large Programs * Version Control:: Using version control systems. -* Change Log:: Maintaining a change history for your program. -* Tags:: Go directly to any function in your program in one - command. Tags remembers which file it is in. +* Change Log:: Maintaining a change history for your program. +* Tags:: Go directly to any function in your program in one + command. Tags remembers which file it is in. * EDE:: An integrated development environment for Emacs. * Emerge:: A convenient way of merging two versions of a program. @@ -844,25 +844,25 @@ Tags Tables -* Tag Syntax:: Tag syntax for various types of code and text files. -* Create Tags Table:: Creating a tags table with @code{etags}. +* Tag Syntax:: Tag syntax for various types of code and text files. +* Create Tags Table:: Creating a tags table with @code{etags}. * Etags Regexps:: Create arbitrary tags using regular expressions. -* Select Tags Table:: How to visit a tags table. -* Find Tag:: Commands to find the definition of a specific tag. -* Tags Search:: Using a tags table for searching and replacing. -* List Tags:: Listing and finding tags defined in a file. +* Select Tags Table:: How to visit a tags table. +* Find Tag:: Commands to find the definition of a specific tag. +* Tags Search:: Using a tags table for searching and replacing. +* List Tags:: Listing and finding tags defined in a file. Merging Files with Emerge -* Overview of Emerge:: How to start Emerge. Basic concepts. -* Submodes of Emerge:: Fast mode vs. Edit mode. - Skip Prefers mode and Auto Advance mode. -* State of Difference:: You do the merge by specifying state A or B - for each difference. -* Merge Commands:: Commands for selecting a difference, - changing states of differences, etc. -* Exiting Emerge:: What to do when you've finished the merge. -* Combining in Emerge:: How to keep both alternatives for a difference. +* Overview of Emerge:: How to start Emerge. Basic concepts. +* Submodes of Emerge:: Fast mode vs. Edit mode. + Skip Prefers mode and Auto Advance mode. +* State of Difference:: You do the merge by specifying state A or B + for each difference. +* Merge Commands:: Commands for selecting a difference, + changing states of differences, etc. +* Exiting Emerge:: What to do when you've finished the merge. +* Combining in Emerge:: How to keep both alternatives for a difference. * Fine Points of Emerge:: Miscellaneous issues. Abbrevs @@ -887,10 +887,10 @@ Sending Mail -* Mail Format:: Format of the mail being composed. +* Mail Format:: Format of the mail being composed. * Mail Headers:: Details of some standard mail header fields. * Mail Aliases:: Abbreviating and grouping mail addresses. -* Mail Commands:: Special commands for editing mail being composed. +* Mail Commands:: Special commands for editing mail being composed. * Mail Signature:: Adding a signature to every message. * Mail Amusements:: Distracting the NSA; adding fortune messages. * Mail Methods:: Using alternative mail-composition methods. @@ -928,28 +928,28 @@ Summaries -* Rmail Make Summary:: Making various sorts of summaries. -* Rmail Summary Edit:: Manipulating messages from the summary. +* Rmail Make Summary:: Making various sorts of summaries. +* Rmail Summary Edit:: Manipulating messages from the summary. Dired, the Directory Editor -* Dired Enter:: How to invoke Dired. +* Dired Enter:: How to invoke Dired. * Dired Navigation:: Special motion commands in the Dired buffer. * Dired Deletion:: Deleting files with Dired. * Flagging Many Files:: Flagging files based on their names. * Dired Visiting:: Other file operations through Dired. -* Marks vs Flags:: Flagging for deletion vs marking. -* Operating on Files:: How to copy, rename, print, compress, etc. - either one file or several files. +* Marks vs Flags:: Flagging for deletion vs marking. +* Operating on Files:: How to copy, rename, print, compress, etc. + either one file or several files. * Shell Commands in Dired:: Running a shell command on the marked files. * Transforming File Names:: Using patterns to rename multiple files. -* Comparison in Dired:: Running `diff' by way of Dired. +* Comparison in Dired:: Running `diff' by way of Dired. * Subdirectories in Dired:: Adding subdirectories to the Dired buffer. * Subdir Switches:: Subdirectory switches in Dired. -* Subdirectory Motion:: Moving across subdirectories, and up and down. +* Subdirectory Motion:: Moving across subdirectories, and up and down. * Hiding Subdirectories:: Making subdirectories visible or invisible. * Dired Updating:: Discarding lines for files of no interest. -* Dired and Find:: Using `find' to choose the files for Dired. +* Dired and Find:: Using `find' to choose the files for Dired. * Wdired:: Operating on files by editing the Dired buffer. * Image-Dired:: Viewing image thumbnails in Dired. * Misc Dired Features:: Various other features. @@ -966,7 +966,7 @@ * Lunar Phases:: Displaying phases of the moon. * Other Calendars:: Converting dates to other calendar systems. * Diary:: Displaying events from your diary. -* Appointments:: Reminders when it's time to do something. +* Appointments:: Reminders when it's time to do something. * Importing Diary:: Converting diary events to/from other formats. * Daylight Saving:: How to specify when daylight saving time is active. * Time Intervals:: Keeping track of time intervals. @@ -976,23 +976,23 @@ * Calendar Unit Motion:: Moving by days, weeks, months, and years. * Move to Beginning or End:: Moving to start/end of weeks, months, and years. -* Specified Dates:: Moving to the current date or another - specific date. +* Specified Dates:: Moving to the current date or another + specific date. Conversion To and From Other Calendars -* Calendar Systems:: The calendars Emacs understands - (aside from Gregorian). -* To Other Calendar:: Converting the selected date to various calendars. -* From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. +* Calendar Systems:: The calendars Emacs understands + (aside from Gregorian). +* To Other Calendar:: Converting the selected date to various calendars. +* From Other Calendar:: Moving to a date specified in another calendar. +* Mayan Calendar:: Moving to a date specified in a Mayan calendar. The Diary * Displaying the Diary:: Viewing diary entries and associated calendar dates. * Format of Diary File:: Entering events in your diary. -* Date Formats:: Various ways you can specify dates. -* Adding to Diary:: Commands to create diary entries. +* Date Formats:: Various ways you can specify dates. +* Adding to Diary:: Commands to create diary entries. * Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. Customizing the Calendar and Diary @@ -1009,22 +1009,22 @@ Document Viewing -* Navigation:: Navigation inside DocView buffers. -* Searching:: Searching inside documents. -* Slicing:: Specifying which part of pages should be displayed. -* Conversion:: Influencing and triggering conversion. +* Navigation:: Navigation inside DocView buffers. +* Searching:: Searching inside documents. +* Slicing:: Specifying which part of pages should be displayed. +* Conversion:: Influencing and triggering conversion. Gnus -* Buffers of Gnus:: The group, summary, and article buffers. -* Gnus Startup:: What you should know about starting Gnus. -* Summary of Gnus:: A short description of the basic Gnus commands. +* Buffers of Gnus:: The group, summary, and article buffers. +* Gnus Startup:: What you should know about starting Gnus. +* Summary of Gnus:: A short description of the basic Gnus commands. Running Shell Commands from Emacs -* Single Shell:: How to run one shell command and return. -* Interactive Shell:: Permanent shell taking input via Emacs. -* Shell Mode:: Special Emacs commands used with permanent shell. +* Single Shell:: How to run one shell command and return. +* Interactive Shell:: Permanent shell taking input via Emacs. +* Shell Mode:: Special Emacs commands used with permanent shell. * Shell Prompts:: Two ways to recognize shell prompts. * Shell History:: Repeating previous commands in a shell buffer. * Directory Tracking:: Keeping track when the subshell changes directory. @@ -1032,7 +1032,7 @@ * Terminal emulator:: An Emacs window as a terminal emulator. * Term Mode:: Special Emacs commands used in Term mode. * Paging in Term:: Paging in the terminal emulator. -* Remote Host:: Connecting to another computer. +* Remote Host:: Connecting to another computer. * Serial Terminal:: Connecting to a serial port. Shell Command History @@ -1048,7 +1048,7 @@ Printing Hard Copies -* PostScript:: Printing buffers or regions as PostScript. +* PostScript:: Printing buffers or regions as PostScript. * PostScript Variables:: Customizing the PostScript printing commands. * Printing Package:: An optional advanced printing interface. @@ -1060,18 +1060,18 @@ Customization -* Minor Modes:: Each minor mode is a feature you can turn on - independently of any others. +* Minor Modes:: Each minor mode is a feature you can turn on + independently of any others. * Easy Customization:: Convenient way to browse and change settings. -* Variables:: Many Emacs commands examine Emacs variables - to decide what to do; by setting variables, - you can control their functioning. -* Key Bindings:: The keymaps say what command each key runs. - By changing them, you can "redefine keys". -* Syntax:: The syntax table controls how words and - expressions are parsed. -* Init File:: How to write common customizations in the - @file{.emacs} file. +* Variables:: Many Emacs commands examine Emacs variables + to decide what to do; by setting variables, + you can control their functioning. +* Key Bindings:: The keymaps say what command each key runs. + By changing them, you can "redefine keys". +* Syntax:: The syntax table controls how words and + expressions are parsed. +* Init File:: How to write common customizations in the + @file{.emacs} file. Easy Customization Interface @@ -1087,10 +1087,10 @@ Variables -* Examining:: Examining or setting one variable's value. -* Hooks:: Hook variables let you specify programs for parts - of Emacs to run on particular occasions. -* Locals:: Per-buffer values of variables. +* Examining:: Examining or setting one variable's value. +* Hooks:: Hook variables let you specify programs for parts + of Emacs to run on particular occasions. +* Locals:: Per-buffer values of variables. * File Variables:: How files can specify variable values. * Directory Variables:: How variable values can be specified by directory. @@ -1117,10 +1117,10 @@ The Init File, @file{~/.emacs} -* Init Syntax:: Syntax of constants in Emacs Lisp. +* Init Syntax:: Syntax of constants in Emacs Lisp. * Init Examples:: How to do some things with an init file. * Terminal Init:: Each terminal type can have an init file. -* Find Init:: How Emacs finds the init file. +* Find Init:: How Emacs finds the init file. * Init Non-ASCII:: Using non-@acronym{ASCII} characters in an init file. Dealing with Emacs Trouble @@ -1138,31 +1138,31 @@ Reporting Bugs * Bug Criteria:: Have you really found a bug? -* Understanding Bug Reporting:: How to report a bug effectively. -* Checklist:: Steps to follow for a good bug report. -* Sending Patches:: How to send a patch for GNU Emacs. +* Understanding Bug Reporting:: How to report a bug effectively. +* Checklist:: Steps to follow for a good bug report. +* Sending Patches:: How to send a patch for GNU Emacs. Command Line Arguments for Emacs Invocation -* Action Arguments:: Arguments to visit files, load libraries, - and call functions. +* Action Arguments:: Arguments to visit files, load libraries, + and call functions. * Initial Options:: Arguments that take effect while starting Emacs. * Command Example:: Examples of using command line arguments. -* Resume Arguments:: Specifying arguments when you resume a running Emacs. +* Resume Arguments:: Specifying arguments when you resume a running Emacs. * Environment:: Environment variables that Emacs uses. * Display X:: Changing the default display and using remote login. -* Font X:: Choosing a font for text, under X. -* Colors:: Choosing display colors. +* Font X:: Choosing a font for text, under X. +* Colors:: Choosing display colors. * Window Size X:: Start-up window size, under X. -* Borders X:: Internal and external borders, under X. +* Borders X:: Internal and external borders, under X. * Title X:: Specifying the initial frame's title. * Icons X:: Choosing what sort of icon to use, under X. * Misc X:: Other display options. Environment Variables -* General Variables:: Environment variables that all versions of Emacs use. -* Misc Variables:: Certain system-specific variables. +* General Variables:: Environment variables that all versions of Emacs use. +* Misc Variables:: Certain system-specific variables. * MS-Windows Registry:: An alternative to the environment on MS-Windows. X Options and Resources diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/emerge-xtra.texi --- a/doc/emacs/emerge-xtra.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/emerge-xtra.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the @@ -22,16 +23,16 @@ and @ref{Top, Ediff,, ediff, The Ediff Manual}. @menu -* Overview of Emerge:: How to start Emerge. Basic concepts. -* Submodes of Emerge:: Fast mode vs. Edit mode. - Skip Prefers mode and Auto Advance mode. -* State of Difference:: You do the merge by specifying state A or B - for each difference. -* Merge Commands:: Commands for selecting a difference, - changing states of differences, etc. -* Exiting Emerge:: What to do when you've finished the merge. -* Combining in Emerge:: How to keep both alternatives for a difference. -* Fine Points of Emerge:: Miscellaneous issues. +* Overview of Emerge:: How to start Emerge. Basic concepts. +* Submodes of Emerge:: Fast mode vs. Edit mode. + Skip Prefers mode and Auto Advance mode. +* State of Difference:: You do the merge by specifying state A or B + for each difference. +* Merge Commands:: Commands for selecting a difference, + changing states of differences, etc. +* Exiting Emerge:: What to do when you've finished the merge. +* Combining in Emerge:: How to keep both alternatives for a difference. +* Fine Points of Emerge:: Miscellaneous issues. @end menu @node Overview of Emerge diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/files.texi --- a/doc/emacs/files.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/files.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, -@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Files, Buffers, Keyboard Macros, Top @chapter File Handling @@ -553,9 +554,9 @@ another from the newly saved contents if you save again. @menu -* Names: Backup Names. How backup files are named. -* Deletion: Backup Deletion. Emacs deletes excess numbered backups. -* Copying: Backup Copying. Backups can be made by copying or renaming. +* Names: Backup Names. How backup files are named. +* Deletion: Backup Deletion. Emacs deletes excess numbered backups. +* Copying: Backup Copying. Backups can be made by copying or renaming. @end menu @node Backup Names @@ -994,7 +995,7 @@ * Files: Auto Save Files. The file where auto-saved changes are actually made until you save the file. * Control: Auto Save Control. Controlling when and how often to auto-save. -* Recover:: Recovering text from auto-save files. +* Recover:: Recovering text from auto-save files. @end menu @node Auto Save Files diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/fortran-xtra.texi --- a/doc/emacs/fortran-xtra.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/fortran-xtra.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,5 +1,6 @@ @c This is part of the Emacs manual. -@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @c @c This file is included either in emacs-xtra.texi (when producing the @@ -57,12 +58,12 @@ @end ifnottex @menu -* Motion: Fortran Motion. Moving point by statements or subprograms. -* Indent: Fortran Indent. Indentation commands for Fortran. -* Comments: Fortran Comments. Inserting and aligning comments. -* Autofill: Fortran Autofill. Auto fill support for Fortran. -* Columns: Fortran Columns. Measuring columns for valid Fortran. -* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. +* Motion: Fortran Motion. Moving point by statements or subprograms. +* Indent: Fortran Indent. Indentation commands for Fortran. +* Comments: Fortran Comments. Inserting and aligning comments. +* Autofill: Fortran Autofill. Auto fill support for Fortran. +* Columns: Fortran Columns. Measuring columns for valid Fortran. +* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. @end menu @node Fortran Motion diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/frames.texi --- a/doc/emacs/frames.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/frames.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, -@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Frames, International, Windows, Top @chapter Frames and Graphical Displays @@ -44,10 +45,10 @@ * Multiple Displays:: How one Emacs job can talk to several displays. * Special Buffer Frames:: You can make certain buffers have their own frames. * Frame Parameters:: Changing the colors and other modes of frames. -* Scroll Bars:: How to enable and disable scroll bars; how to use them. +* Scroll Bars:: How to enable and disable scroll bars; how to use them. * Wheeled Mice:: Using mouse wheels for scrolling. * Drag and Drop:: Using drag and drop to open files and insert text. -* Menu Bars:: Enabling and disabling the menu bar. +* Menu Bars:: Enabling and disabling the menu bar. * Tool Bars:: Enabling and disabling the tool bar. * Dialog Boxes:: Controlling use of dialog boxes. * Tooltips:: Displaying information at the current mouse position. diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/help.texi --- a/doc/emacs/help.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/help.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Help, Mark, M-x, Top @chapter Help @@ -69,14 +70,14 @@ @end table @menu -* Help Summary:: Brief list of all Help commands. -* Key Help:: Asking what a key does in Emacs. -* Name Help:: Asking about a command, variable or function name. -* Apropos:: Asking what pertains to a given topic. +* Help Summary:: Brief list of all Help commands. +* Key Help:: Asking what a key does in Emacs. +* Name Help:: Asking about a command, variable or function name. +* Apropos:: Asking what pertains to a given topic. * Help Mode:: Special features of Help mode and Help buffers. -* Library Keywords:: Finding Lisp libraries by keywords (topics). +* Library Keywords:: Finding Lisp libraries by keywords (topics). * Language Help:: Help relating to international language support. -* Misc Help:: Other help commands. +* Misc Help:: Other help commands. * Help Files:: Commands to display pre-written help files. * Help Echo:: Help on active text and tooltips (`balloon help'). @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/killing.texi --- a/doc/emacs/killing.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/killing.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Killing, Yanking, Mark, Top @@ -260,9 +261,9 @@ instead of text killed within Emacs. @menu -* Kill Ring:: Where killed text is stored. Basic yanking. -* Appending Kills:: Several kills in a row all yank together. -* Earlier Kills:: Yanking something killed some time ago. +* Kill Ring:: Where killed text is stored. Basic yanking. +* Appending Kills:: Several kills in a row all yank together. +* Earlier Kills:: Yanking something killed some time ago. @end menu @node Kill Ring diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/maintaining.texi --- a/doc/emacs/maintaining.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/maintaining.texi Sun Jul 11 22:57:47 2010 +0000 @@ -11,9 +11,9 @@ @menu * Version Control:: Using version control systems. -* Change Log:: Maintaining a change history for your program. -* Tags:: Go directly to any function in your program in one - command. Tags remembers which file it is in. +* Change Log:: Maintaining a change history for your program. +* Tags:: Go directly to any function in your program in one + command. Tags remembers which file it is in. * EDE:: An integrated development environment for Emacs. @ifnottex * Emerge:: A convenient way of merging two versions of a program. @@ -1570,13 +1570,13 @@ @xref{Top,, Ebrowse, ebrowse, Ebrowse User's Manual}. @menu -* Tag Syntax:: Tag syntax for various types of code and text files. -* Create Tags Table:: Creating a tags table with @code{etags}. +* Tag Syntax:: Tag syntax for various types of code and text files. +* Create Tags Table:: Creating a tags table with @code{etags}. * Etags Regexps:: Create arbitrary tags using regular expressions. -* Select Tags Table:: How to visit a tags table. -* Find Tag:: Commands to find the definition of a specific tag. -* Tags Search:: Using a tags table for searching and replacing. -* List Tags:: Listing and finding tags defined in a file. +* Select Tags Table:: How to visit a tags table. +* Find Tag:: Commands to find the definition of a specific tag. +* Tags Search:: Using a tags table for searching and replacing. +* List Tags:: Listing and finding tags defined in a file. @end menu @node Tag Syntax diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/mark.texi --- a/doc/emacs/mark.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/mark.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Mark, Killing, Help, Top @chapter The Mark and the Region @@ -41,13 +42,13 @@ non-@code{nil}, each window highlights its own region. @menu -* Setting Mark:: Commands to set the mark. -* Marking Objects:: Commands to put region around textual units. -* Using Region:: Summary of ways to operate on contents of the region. -* Mark Ring:: Previous mark positions saved so you can go back there. +* Setting Mark:: Commands to set the mark. +* Marking Objects:: Commands to put region around textual units. +* Using Region:: Summary of ways to operate on contents of the region. +* Mark Ring:: Previous mark positions saved so you can go back there. * Global Mark Ring:: Previous mark positions in various buffers. * Shift Selection:: Using shifted cursor motion keys. -* Persistent Mark:: Keeping the mark active all the time. +* Persistent Mark:: Keeping the mark active all the time. @end menu @node Setting Mark diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/mini.texi --- a/doc/emacs/mini.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/mini.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Minibuffer, M-x, Basic, Top @chapter The Minibuffer @@ -43,9 +44,9 @@ @menu * Minibuffer File:: Entering file names with the minibuffer. * Minibuffer Edit:: How to edit in the minibuffer. -* Completion:: An abbreviation facility for minibuffer input. +* Completion:: An abbreviation facility for minibuffer input. * Minibuffer History:: Reusing recent minibuffer arguments. -* Repetition:: Re-executing commands that used the minibuffer. +* Repetition:: Re-executing commands that used the minibuffer. * Passwords:: Entering passwords in the echo area. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/misc.texi --- a/doc/emacs/misc.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/misc.texi Sun Jul 11 22:57:47 2010 +0000 @@ -71,10 +71,10 @@ (@code{quit-window}). @menu -* Navigation:: Navigation inside DocView buffers. -* Searching:: Searching inside documents. -* Slicing:: Specifying which part of pages should be displayed. -* Conversion:: Influencing and triggering conversion. +* Navigation:: Navigation inside DocView buffers. +* Searching:: Searching inside documents. +* Slicing:: Specifying which part of pages should be displayed. +* Conversion:: Influencing and triggering conversion. @end menu @node Navigation @@ -211,9 +211,9 @@ To start Gnus, type @kbd{M-x gnus @key{RET}}. @menu -* Buffers of Gnus:: The group, summary, and article buffers. -* Gnus Startup:: What you should know about starting Gnus. -* Summary of Gnus:: A short description of the basic Gnus commands. +* Buffers of Gnus:: The group, summary, and article buffers. +* Gnus Startup:: What you should know about starting Gnus. +* Summary of Gnus:: A short description of the basic Gnus commands. @end menu @node Buffers of Gnus @@ -1757,7 +1757,7 @@ not compatible with @code{lpr}. @menu -* PostScript:: Printing buffers or regions as PostScript. +* PostScript:: Printing buffers or regions as PostScript. * PostScript Variables:: Customizing the PostScript printing commands. * Printing Package:: An optional advanced printing interface. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/msdog.texi --- a/doc/emacs/msdog.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/msdog.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top @appendix Emacs and Microsoft Windows/MS-DOS @@ -761,8 +762,8 @@ (setq ps-printer-name t) (setq ps-lpr-command "D:/gs6.01/bin/gswin32c.exe") (setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH" - "-sDEVICE=mswinpr2" - "-sPAPERSIZE=a4")) + "-sDEVICE=mswinpr2" + "-sPAPERSIZE=a4")) @end example @noindent diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/mule.texi --- a/doc/emacs/mule.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/mule.texi Sun Jul 11 22:57:47 2010 +0000 @@ -228,7 +228,7 @@ character: @`A (192, #o300, #xc0) preferred charset: unicode (Unicode (ISO10646)) code point: 0xC0 - syntax: w which means: word + syntax: w which means: word category: j:Japanese l:Latin v:Vietnamese buffer code: #xC3 #x80 file code: not encodable by coding system undecided-unix diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/programs.texi --- a/doc/emacs/programs.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/programs.texi Sun Jul 11 22:57:47 2010 +0000 @@ -34,7 +34,7 @@ of a program. * Program Indent:: Adjusting indentation to show the nesting. * Parentheses:: Commands that operate on parentheses. -* Comments:: Inserting, killing, and aligning comments. +* Comments:: Inserting, killing, and aligning comments. * Documentation:: Getting documentation of functions you plan to call. * Hideshow:: Displaying blocks selectively. * Symbol Completion:: Completion on symbol names of your program or language. @@ -354,11 +354,11 @@ single parenthetical grouping. @menu -* Basic Indent:: Indenting a single line. +* Basic Indent:: Indenting a single line. * Multi-line Indent:: Commands to reindent many lines at once. -* Lisp Indent:: Specifying how each Lisp function should be indented. -* C Indent:: Extra features for indenting C and related modes. -* Custom C Indent:: Controlling indentation style for C and related modes. +* Lisp Indent:: Specifying how each Lisp function should be indented. +* C Indent:: Extra features for indenting C and related modes. +* Custom C Indent:: Controlling indentation style for C and related modes. @end menu @cindex pretty-printer @@ -652,7 +652,7 @@ * Expressions:: Expressions with balanced parentheses. * Moving by Parens:: Commands for moving up, down and across in the structure of parentheses. -* Matching:: Insertion of a close-delimiter flashes matching open. +* Matching:: Insertion of a close-delimiter flashes matching open. @end menu @node Expressions diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/rmail.texi --- a/doc/emacs/rmail.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/rmail.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Rmail, Dired, Sending Mail, Top @chapter Reading Mail with Rmail @@ -21,7 +22,7 @@ * Deletion: Rmail Deletion. Deleting and expunging messages. * Inbox: Rmail Inbox. How mail gets into the Rmail file. * Files: Rmail Files. Using multiple Rmail files. -* Output: Rmail Output. Copying messages out to files. +* Output: Rmail Output. Copying messages out to files. * Labels: Rmail Labels. Classifying messages by labeling them. * Attrs: Rmail Attributes. Certain standard labels, called attributes. * Reply: Rmail Reply. Sending replies to messages you are viewing. @@ -31,7 +32,7 @@ * Coding: Rmail Coding. How Rmail handles decoding character sets. * Editing: Rmail Editing. Editing message text and headers in Rmail. * Digest: Rmail Digest. Extracting the messages from a digest message. -* Rot13: Rmail Rot13. Reading messages encoded in the rot13 code. +* Rot13: Rmail Rot13. Reading messages encoded in the rot13 code. * Movemail:: More details of fetching new mail. * Remote Mailboxes:: Retrieving mail from remote mailboxes. * Other Mailbox Formats:: Retrieving mail from local mailboxes in @@ -834,8 +835,8 @@ time. @menu -* Rmail Make Summary:: Making various sorts of summaries. -* Rmail Summary Edit:: Manipulating messages from the summary. +* Rmail Make Summary:: Making various sorts of summaries. +* Rmail Summary Edit:: Manipulating messages from the summary. @end menu @node Rmail Make Summary diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/screen.texi --- a/doc/emacs/screen.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/screen.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Screen, User Input, Acknowledgments, Top @chapter The Organization of the Screen @@ -53,10 +54,10 @@ selecting a particular frame selects a window in that frame. @menu -* Point:: The place in the text where editing commands operate. -* Echo Area:: Short messages appear at the bottom of the screen. -* Mode Line:: Interpreting the mode line. -* Menu Bar:: How to use the menu bar. +* Point:: The place in the text where editing commands operate. +* Echo Area:: Short messages appear at the bottom of the screen. +* Mode Line:: Interpreting the mode line. +* Menu Bar:: How to use the menu bar. @end menu @node Point diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/search.texi --- a/doc/emacs/search.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/search.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Search, Fixit, Display, Top @chapter Searching and Replacement @@ -19,16 +20,16 @@ @menu -* Incremental Search:: Search happens as you type the string. -* Nonincremental Search:: Specify entire string and then search. -* Word Search:: Search for sequence of words. -* Regexp Search:: Search for match for a regexp. -* Regexps:: Syntax of regular expressions. -* Regexp Backslash:: Regular expression constructs starting with `\'. -* Regexp Example:: A complex regular expression explained. -* Search Case:: To ignore case while searching, or not. -* Replace:: Search, and replace some or all matches. -* Other Repeating Search:: Operating on all matches for some regexp. +* Incremental Search:: Search happens as you type the string. +* Nonincremental Search:: Specify entire string and then search. +* Word Search:: Search for sequence of words. +* Regexp Search:: Search for match for a regexp. +* Regexps:: Syntax of regular expressions. +* Regexp Backslash:: Regular expression constructs starting with `\'. +* Regexp Example:: A complex regular expression explained. +* Search Case:: To ignore case while searching, or not. +* Replace:: Search, and replace some or all matches. +* Other Repeating Search:: Operating on all matches for some regexp. @end menu @node Incremental Search @@ -983,10 +984,10 @@ command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}). @menu -* Unconditional Replace:: Replacing all matches for a string. -* Regexp Replace:: Replacing all matches for a regexp. -* Replacement and Case:: How replacements preserve case of letters. -* Query Replace:: How to use querying. +* Unconditional Replace:: Replacing all matches for a string. +* Regexp Replace:: Replacing all matches for a regexp. +* Replacement and Case:: How replacements preserve case of letters. +* Query Replace:: How to use querying. @end menu @node Unconditional Replace, Regexp Replace, Replace, Replace diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/sending.texi --- a/doc/emacs/sending.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/sending.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Sending Mail @chapter Sending Mail @@ -63,7 +64,7 @@ cannot receive mail via SMTP (@pxref{Mail Headers}). @menu -* Format: Mail Format. Format of a mail message. +* Format: Mail Format. Format of a mail message. * Headers: Mail Headers. Details of some standard mail header fields. * Aliases: Mail Aliases. Abbreviating and grouping mail addresses. * Commands: Mail Commands. Special commands for editing mail being composed. diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/text.texi --- a/doc/emacs/text.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/text.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,6 +1,7 @@ @c This is part of the Emacs manual. @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Text, Programs, Indentation, Top @chapter Commands for Human Languages @@ -57,17 +58,17 @@ @inforef{Top,, autotype}. @menu -* Words:: Moving over and killing words. -* Sentences:: Moving over and killing sentences. -* Paragraphs:: Moving over paragraphs. -* Pages:: Moving over pages. -* Filling:: Filling or justifying text. -* Case:: Changing the case of text. -* Text Mode:: The major modes for editing text files. +* Words:: Moving over and killing words. +* Sentences:: Moving over and killing sentences. +* Paragraphs:: Moving over paragraphs. +* Pages:: Moving over pages. +* Filling:: Filling or justifying text. +* Case:: Changing the case of text. +* Text Mode:: The major modes for editing text files. * Outline Mode:: Editing outlines. -* TeX Mode:: Editing input to the formatter TeX. +* TeX Mode:: Editing input to the formatter TeX. * HTML Mode:: Editing HTML and SGML files. -* Nroff Mode:: Editing input to the formatter nroff. +* Nroff Mode:: Editing input to the formatter nroff. * Formatted Text:: Editing formatted text directly in WYSIWYG fashion. * Text Based Tables:: Editing text-based tables in WYSIWYG fashion. @end menu @@ -402,13 +403,12 @@ Text}). @menu -* Auto Fill:: Auto Fill mode breaks long lines automatically. -* Fill Commands:: Commands to refill paragraphs and center lines. -* Fill Prefix:: Filling paragraphs that are indented - or in a comment, etc. -* Adaptive Fill:: How Emacs can determine the fill prefix automatically. -* Refill:: Keeping paragraphs filled. -* Longlines:: Editing text with very long lines. +* Auto Fill:: Auto Fill mode breaks long lines automatically. +* Fill Commands:: Commands to refill paragraphs and center lines. +* Fill Prefix:: Filling paragraphs that are indented or in a comment, etc. +* Adaptive Fill:: How Emacs can determine the fill prefix automatically. +* Refill:: Keeping paragraphs filled. +* Longlines:: Editing text with very long lines. @end menu @node Auto Fill @@ -978,8 +978,8 @@ the hook @code{outline-mode-hook} (@pxref{Hooks}). @menu -* Format: Outline Format. What the text of an outline looks like. -* Motion: Outline Motion. Special commands for moving through +* Format: Outline Format. What the text of an outline looks like. +* Motion: Outline Motion. Special commands for moving through outlines. * Visibility: Outline Visibility. Commands to control what is visible. * Views: Outline Views. Outlines and multiple views. diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/trouble.texi --- a/doc/emacs/trouble.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/trouble.texi Sun Jul 11 22:57:47 2010 +0000 @@ -426,10 +426,10 @@ work-around, or give you additional information about related issues. @menu -* Criteria: Bug Criteria. Have you really found a bug? -* Understanding Bug Reporting:: How to report a bug effectively. -* Checklist:: Steps to follow for a good bug report. -* Sending Patches:: How to send a patch for GNU Emacs. +* Criteria: Bug Criteria. Have you really found a bug? +* Understanding Bug Reporting:: How to report a bug effectively. +* Checklist:: Steps to follow for a good bug report. +* Sending Patches:: How to send a patch for GNU Emacs. @end menu @node Bug Criteria diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/vc1-xtra.texi --- a/doc/emacs/vc1-xtra.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/vc1-xtra.texi Sun Jul 11 22:57:47 2010 +0000 @@ -220,8 +220,8 @@ stable version of the system that is ready for distribution to users. @menu -* Making Revision Tags:: The tag facilities. -* Revision Tag Caveats:: Things to be careful of when using tags. +* Making Revision Tags:: The tag facilities. +* Revision Tag Caveats:: Things to be careful of when using tags. @end menu @node Making Revision Tags diff -r 0b8608a36b55 -r 799b50142743 doc/emacs/xresources.texi --- a/doc/emacs/xresources.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/emacs/xresources.texi Sun Jul 11 22:57:47 2010 +0000 @@ -435,13 +435,14 @@ To specify a font, use fontconfig font names as values to the @code{faceName} resource. -If Emacs is not built with the Xft library, Lucid menus and dialogs can only -display old style fonts. If Emacs is built with Xft and you prefer the old -fonts, you have to specify @samp{none} to @code{faceName}: +If Emacs is not built with the Xft library, Lucid menus and dialogs +can only display old style fonts. If Emacs is built with Xft and you +prefer the old fonts, you have to specify @samp{none} to +@code{faceName}: @example -Emacs.pane.menubar.faceName: none -Emacs.pane.dialog.faceName: none +Emacs.pane.menubar.faceName: none +Emacs.pane.dialog.faceName: none @end example @noindent @@ -472,7 +473,7 @@ the font @samp{8x16} for the pop-up menu items, write this: @example -Emacs.menu*.font: 8x16 +Emacs.menu*.font: 8x16 @end example @noindent diff -r 0b8608a36b55 -r 799b50142743 doc/lispintro/ChangeLog --- a/doc/lispintro/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispintro/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,7 @@ +2010-06-23 Glenn Morris + + * emacs-lisp-intro.texi: Untabify. + 2010-05-07 Chong Yidong * Version 23.2 released. diff -r 0b8608a36b55 -r 799b50142743 doc/lispintro/emacs-lisp-intro.texi --- a/doc/lispintro/emacs-lisp-intro.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispintro/emacs-lisp-intro.texi Sun Jul 11 22:57:47 2010 +0000 @@ -17789,7 +17789,7 @@ This is an interface to the function `load'." (interactive (list (completing-read "Load library: " - (apply-partially 'locate-file-completion-table + (apply-partially 'locate-file-completion-table load-path (get-load-suffixes))))) (load library)) diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/ChangeLog --- a/doc/lispref/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,33 @@ +2010-07-09 Eli Zaretskii + + * internals.texi (Writing Emacs Primitives): Adapt to ANSI C + calling sequences, which are now the standard. + +2010-06-24 Chong Yidong + + * text.texi (Undo): Clarify command loop behavior (Bug#2433). + + * commands.texi (Command Overview): Mention undo-boundary call. + +2010-06-23 Glenn Morris + + * abbrevs.texi, commands.texi, compile.texi, debugging.texi: + * display.texi, edebug.texi, elisp.texi, eval.texi, files.texi: + * frames.texi, functions.texi, internals.texi, keymaps.texi: + * loading.texi, minibuf.texi, numbers.texi, os.texi, processes.texi: + * searching.texi, sequences.texi, strings.texi, syntax.texi: + * text.texi, tips.texi, vol1.texi, vol2.texi, windows.texi: + Untabify Texinfo files. + +2010-06-20 Chong Yidong + + * modes.texi (Minor Mode Conventions): Fix typo (Bug#6477). + +2010-06-19 Chong Yidong + + * errors.texi (Standard Errors): Remove unnecessary markup + (Bug#6461). + 2010-06-02 Chong Yidong * searching.texi (Regexp Special): Remove obsolete information diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/abbrevs.texi --- a/doc/lispref/abbrevs.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/abbrevs.texi Sun Jul 11 22:57:47 2010 +0000 @@ -376,10 +376,10 @@ (funcall expand)))) (add-hook 'foo-mode-hook - #'(lambda () - (add-hook 'abbrev-expand-functions - 'foo-mode-abbrev-expand-function - nil t))) + #'(lambda () + (add-hook 'abbrev-expand-functions + 'foo-mode-abbrev-expand-function + nil t))) @end smallexample @node Standard Abbrev Tables, Abbrev Properties, Abbrev Expansion, Abbrevs diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/commands.texi --- a/doc/lispref/commands.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/commands.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/commands @node Command Loop, Keymaps, Minibuffers, Top @@ -21,7 +22,7 @@ * Distinguish Interactive:: Making a command distinguish interactive calls. * Command Loop Info:: Variables set by the command loop for you to examine. * Adjusting Point:: Adjustment of point after a command. -* Input Events:: What input looks like when you read it. +* Input Events:: What input looks like when you read it. * Reading Input:: How to read input events from the keyboard or mouse. * Special Events:: Events processed immediately and individually. * Waiting:: Waiting for user input or elapsed time. @@ -52,16 +53,19 @@ command, which it then calls. This is done by the command @code{execute-extended-command} (@pxref{Interactive Call}). - To execute a command requires first reading the arguments for it. -This is done by calling @code{command-execute} (@pxref{Interactive -Call}). For commands written in Lisp, the @code{interactive} -specification says how to read the arguments. This may use the prefix -argument (@pxref{Prefix Command Arguments}) or may read with prompting -in the minibuffer (@pxref{Minibuffers}). For example, the command -@code{find-file} has an @code{interactive} specification which says to -read a file name using the minibuffer. The command's function body does -not use the minibuffer; if you call this command from Lisp code as a -function, you must supply the file name string as an ordinary Lisp + Prior to executing the command, Emacs runs @code{undo-boundary} to +create an undo boundary. @xref{Maintaining Undo}. + + To execute a command, Emacs first reads its arguments by calling +@code{command-execute} (@pxref{Interactive Call}). For commands +written in Lisp, the @code{interactive} specification says how to read +the arguments. This may use the prefix argument (@pxref{Prefix +Command Arguments}) or may read with prompting in the minibuffer +(@pxref{Minibuffers}). For example, the command @code{find-file} has +an @code{interactive} specification which says to read a file name +using the minibuffer. The function body of @code{find-file} does not +use the minibuffer, so if you call @code{find-file} as a function from +Lisp code, you must supply the file name string as an ordinary Lisp function argument. If the command is a string or vector (i.e., a keyboard macro) then @@ -968,23 +972,23 @@ @end defun @menu -* Keyboard Events:: Ordinary characters--keys with symbols on them. -* Function Keys:: Function keys--keys with names, not symbols. +* Keyboard Events:: Ordinary characters--keys with symbols on them. +* Function Keys:: Function keys--keys with names, not symbols. * Mouse Events:: Overview of mouse events. -* Click Events:: Pushing and releasing a mouse button. -* Drag Events:: Moving the mouse before releasing the button. -* Button-Down Events:: A button was pushed and not yet released. +* Click Events:: Pushing and releasing a mouse button. +* Drag Events:: Moving the mouse before releasing the button. +* Button-Down Events:: A button was pushed and not yet released. * Repeat Events:: Double and triple click (or drag, or down). -* Motion Events:: Just moving the mouse, not pushing a button. -* Focus Events:: Moving the mouse between frames. +* Motion Events:: Just moving the mouse, not pushing a button. +* Focus Events:: Moving the mouse between frames. * Misc Events:: Other events the system can generate. -* Event Examples:: Examples of the lists for mouse events. -* Classifying Events:: Finding the modifier keys in an event symbol. - Event types. -* Accessing Mouse:: Functions to extract info from mouse events. -* Accessing Scroll:: Functions to get info from scroll bar events. +* Event Examples:: Examples of the lists for mouse events. +* Classifying Events:: Finding the modifier keys in an event symbol. + Event types. +* Accessing Mouse:: Functions to extract info from mouse events. +* Accessing Scroll:: Functions to get info from scroll bar events. * Strings of Events:: Special considerations for putting - keyboard character events in a string. + keyboard character events in a string. @end menu @node Keyboard Events @@ -2158,12 +2162,12 @@ For higher-level input facilities, see @ref{Minibuffers}. @menu -* Key Sequence Input:: How to read one key sequence. -* Reading One Event:: How to read just one event. +* Key Sequence Input:: How to read one key sequence. +* Reading One Event:: How to read just one event. * Event Mod:: How Emacs modifies events as they are read. * Invoking the Input Method:: How reading an event uses the input method. -* Quoted Character Input:: Asking the user to specify a character. -* Event Input Misc:: How to reread or throw away input events. +* Quoted Character Input:: Asking the user to specify a character. +* Event Input Misc:: How to reread or throw away input events. @end menu @node Key Sequence Input @@ -2889,9 +2893,9 @@ (while (not done) (let ((inhibit-quit first) @dots{}) - (and prompt (message "%s-" prompt)) - (setq char (read-event)) - (if inhibit-quit (setq quit-flag nil))) + (and prompt (message "%s-" prompt)) + (setq char (read-event)) + (if inhibit-quit (setq quit-flag nil))) @r{@dots{}set the variable @code{code}@dots{}}) code)) @end example diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/compile.texi --- a/doc/lispref/compile.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/compile.texi Sun Jul 11 22:57:47 2010 +0000 @@ -47,9 +47,9 @@ * Compilation Functions:: Byte compilation functions. * Docs and Compilation:: Dynamic loading of documentation strings. * Dynamic Loading:: Dynamic loading of individual functions. -* Eval During Compile:: Code to be evaluated when you compile. +* Eval During Compile:: Code to be evaluated when you compile. * Compiler Errors:: Handling compiler error messages. -* Byte-Code Objects:: The data type used for byte-compiled functions. +* Byte-Code Objects:: The data type used for byte-compiled functions. * Disassembly:: Disassembling byte-code; how to read byte-code. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/debugging.texi --- a/doc/lispref/debugging.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/debugging.texi Sun Jul 11 22:57:47 2010 +0000 @@ -28,7 +28,7 @@ @menu * Debugger:: How the Emacs Lisp debugger is implemented. -* Edebug:: A source-level Emacs Lisp debugger. +* Edebug:: A source-level Emacs Lisp debugger. * Syntax Errors:: How to find syntax errors. * Test Coverage:: Ensuring you have tested all branches in your code. * Compilation Errors:: How to find errors that show up in byte compilation. @@ -58,7 +58,7 @@ @menu * Error Debugging:: Entering the debugger when an error happens. -* Infinite Loops:: Stopping and debugging a program that doesn't exit. +* Infinite Loops:: Stopping and debugging a program that doesn't exit. * Function Debugging:: Entering it when a certain function is called. * Explicit Debug:: Entering it at a certain point in the program. * Using Debugger:: What the debugger does; what you see while in it. diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/display.texi --- a/doc/lispref/display.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/display.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1181,7 +1181,7 @@ @menu * Managing Overlays:: Creating and moving overlays. * Overlay Properties:: How to read and set properties. - What properties do to the screen display. + What properties do to the screen display. * Finding Overlays:: Searching for overlays. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/edebug.texi --- a/doc/lispref/edebug.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/edebug.texi Sun Jul 11 22:57:47 2010 +0000 @@ -59,24 +59,24 @@ start using it. @menu -* Using Edebug:: Introduction to use of Edebug. -* Instrumenting:: You must instrument your code - in order to debug it with Edebug. +* Using Edebug:: Introduction to use of Edebug. +* Instrumenting:: You must instrument your code + in order to debug it with Edebug. * Modes: Edebug Execution Modes. Execution modes, stopping more or less often. -* Jumping:: Commands to jump to a specified place. -* Misc: Edebug Misc. Miscellaneous commands. +* Jumping:: Commands to jump to a specified place. +* Misc: Edebug Misc. Miscellaneous commands. * Breaks:: Setting breakpoints to make the program stop. -* Trapping Errors:: Trapping errors with Edebug. -* Views: Edebug Views. Views inside and outside of Edebug. -* Eval: Edebug Eval. Evaluating expressions within Edebug. -* Eval List:: Expressions whose values are displayed - each time you enter Edebug. -* Printing in Edebug:: Customization of printing. -* Trace Buffer:: How to produce trace output in a buffer. -* Coverage Testing:: How to test evaluation coverage. -* The Outside Context:: Data that Edebug saves and restores. -* Edebug and Macros:: Specifying how to handle macro calls. -* Options: Edebug Options. Option variables for customizing Edebug. +* Trapping Errors:: Trapping errors with Edebug. +* Views: Edebug Views. Views inside and outside of Edebug. +* Eval: Edebug Eval. Evaluating expressions within Edebug. +* Eval List:: Expressions whose values are displayed + each time you enter Edebug. +* Printing in Edebug:: Customization of printing. +* Trace Buffer:: How to produce trace output in a buffer. +* Coverage Testing:: How to test evaluation coverage. +* The Outside Context:: Data that Edebug saves and restores. +* Edebug and Macros:: Specifying how to handle macro calls. +* Options: Edebug Options. Option variables for customizing Edebug. @end menu @node Using Edebug @@ -429,8 +429,8 @@ @menu * Breakpoints:: Breakpoints at stop points. -* Global Break Condition:: Breaking on an event. -* Source Breakpoints:: Embedding breakpoints in source code. +* Global Break Condition:: Breaking on an event. +* Source Breakpoints:: Embedding breakpoints in source code. @end menu @node Breakpoints @@ -940,9 +940,9 @@ be completely transparent. @menu -* Checking Whether to Stop:: When Edebug decides what to do. -* Edebug Display Update:: When Edebug updates the display. -* Edebug Recursive Edit:: When Edebug stops execution. +* Checking Whether to Stop:: When Edebug decides what to do. +* Edebug Display Update:: When Edebug updates the display. +* Edebug Recursive Edit:: When Edebug stops execution. @end menu @node Checking Whether to Stop @@ -1074,9 +1074,9 @@ @menu * Instrumenting Macro Calls:: The basic problem. -* Specification List:: How to specify complex patterns of evaluation. -* Backtracking:: What Edebug does when matching fails. -* Specification Examples:: To help understand specifications. +* Specification List:: How to specify complex patterns of evaluation. +* Backtracking:: What Edebug does when matching fails. +* Specification Examples:: To help understand specifications. @end menu @node Instrumenting Macro Calls diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/elisp.texi --- a/doc/lispref/elisp.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/elisp.texi Sun Jul 11 22:57:47 2010 +0000 @@ -143,7 +143,7 @@ files are made. * Buffers:: Creating and using buffer objects. * Windows:: Manipulating windows and displaying buffers. -* Frames:: Making multiple system-level windows. +* Frames:: Making multiple system-level windows. * Positions:: Buffer positions and motion functions. * Markers:: Markers represent positions and update automatically when the text is changed. @@ -155,7 +155,7 @@ * Abbrevs:: How Abbrev mode works, and its data structures. * Processes:: Running and communicating with subprocesses. -* Display:: Features for controlling the screen display. +* Display:: Features for controlling the screen display. * System Interface:: Getting the user id, system type, environment variables, and other such things. @@ -291,10 +291,10 @@ Numbers * Integer Basics:: Representation and range of integers. -* Float Basics:: Representation and range of floating point. +* Float Basics:: Representation and range of floating point. * Predicates on Numbers:: Testing for numbers. * Comparison of Numbers:: Equality and inequality predicates. -* Numeric Conversions:: Converting float to integer and vice versa. +* Numeric Conversions:: Converting float to integer and vice versa. * Arithmetic Operations:: How to add, subtract, multiply and divide. * Rounding Operations:: Explicitly rounding floating point numbers. * Bitwise Operations:: Logical and, or, not, shifting. @@ -311,7 +311,7 @@ * String Conversion:: Converting to and from characters and strings. * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. * Case Conversion:: Case conversion functions. -* Case Tables:: Customizing case conversion. +* Case Tables:: Customizing case conversion. Lists @@ -379,7 +379,7 @@ * Symbol Forms:: Symbols evaluate as variables. * Classifying Lists:: How to distinguish various sorts of list forms. * Function Indirection:: When a symbol appears as the car of a list, - we find the real function via the symbol. + we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. * Special Forms:: "Special forms" are idiosyncratic primitives, @@ -460,9 +460,9 @@ * Function Cells:: Accessing or setting the function definition of a symbol. * Obsolete Functions:: Declaring functions obsolete. -* Inline Functions:: Defining functions that the compiler +* Inline Functions:: Defining functions that the compiler will open code. -* Declaring Functions:: Telling the compiler that a function is defined. +* Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives that have a special bearing on how @@ -522,9 +522,9 @@ * Repeated Loading:: Precautions about loading a file twice. * Named Features:: Loading a library if it isn't already loaded. * Where Defined:: Finding which file defined a certain symbol. -* Unloading:: How to "unload" a library that was loaded. -* Hooks for Loading:: Providing code to be run when - particular libraries are loaded. +* Unloading:: How to "unload" a library that was loaded. +* Hooks for Loading:: Providing code to be run when + particular libraries are loaded. Byte Compilation @@ -534,7 +534,7 @@ * Dynamic Loading:: Dynamic loading of individual functions. * Eval During Compile:: Code to be evaluated when you compile. * Compiler Errors:: Handling compiler error messages. -* Byte-Code Objects:: The data type used for byte-compiled functions. +* Byte-Code Objects:: The data type used for byte-compiled functions. * Disassembly:: Disassembling byte-code; how to read byte-code. Advising Emacs Lisp Functions @@ -563,7 +563,7 @@ The Lisp Debugger * Error Debugging:: Entering the debugger when an error happens. -* Infinite Loops:: Stopping and debugging a program that doesn't exit. +* Infinite Loops:: Stopping and debugging a program that doesn't exit. * Function Debugging:: Entering it when a certain function is called. * Explicit Debug:: Entering it at a certain point in the program. * Using Debugger:: What the debugger does; what you see while in it. @@ -573,24 +573,24 @@ Edebug -* Using Edebug:: Introduction to use of Edebug. -* Instrumenting:: You must instrument your code - in order to debug it with Edebug. +* Using Edebug:: Introduction to use of Edebug. +* Instrumenting:: You must instrument your code + in order to debug it with Edebug. * Edebug Execution Modes:: Execution modes, stopping more or less often. -* Jumping:: Commands to jump to a specified place. -* Edebug Misc:: Miscellaneous commands. -* Breaks:: Setting breakpoints to make the program stop. -* Trapping Errors:: Trapping errors with Edebug. -* Edebug Views:: Views inside and outside of Edebug. -* Edebug Eval:: Evaluating expressions within Edebug. -* Eval List:: Expressions whose values are displayed - each time you enter Edebug. -* Printing in Edebug:: Customization of printing. -* Trace Buffer:: How to produce trace output in a buffer. -* Coverage Testing:: How to test evaluation coverage. -* The Outside Context:: Data that Edebug saves and restores. +* Jumping:: Commands to jump to a specified place. +* Edebug Misc:: Miscellaneous commands. +* Breaks:: Setting breakpoints to make the program stop. +* Trapping Errors:: Trapping errors with Edebug. +* Edebug Views:: Views inside and outside of Edebug. +* Edebug Eval:: Evaluating expressions within Edebug. +* Eval List:: Expressions whose values are displayed + each time you enter Edebug. +* Printing in Edebug:: Customization of printing. +* Trace Buffer:: How to produce trace output in a buffer. +* Coverage Testing:: How to test evaluation coverage. +* The Outside Context:: Data that Edebug saves and restores. * Edebug and Macros:: Specifying how to handle macro calls. -* Edebug Options:: Option variables for customizing Edebug. +* Edebug Options:: Option variables for customizing Edebug. Breaks @@ -607,8 +607,8 @@ Edebug and Macros * Instrumenting Macro Calls::The basic problem. -* Specification List:: How to specify complex patterns of evaluation. -* Backtracking:: What Edebug does when matching fails. +* Specification List:: How to specify complex patterns of evaluation. +* Backtracking:: What Edebug does when matching fails. * Specification Examples:: To help understand specifications. Debugging Invalid Lisp Syntax @@ -633,13 +633,13 @@ * Intro to Minibuffers:: Basic information about minibuffers. * Text from Minibuffer:: How to read a straight text string. * Object from Minibuffer:: How to read a Lisp object or expression. -* Minibuffer History:: Recording previous minibuffer inputs - so the user can reuse them. +* Minibuffer History:: Recording previous minibuffer inputs + so the user can reuse them. * Initial Input:: Specifying initial contents for the minibuffer. * Completion:: How to invoke and customize completion. * Yes-or-No Queries:: Asking a question with a simple answer. -* Multiple Queries:: Asking a series of similar questions. -* Reading a Password:: Reading a password from the terminal. +* Multiple Queries:: Asking a series of similar questions. +* Reading a Password:: Reading a password from the terminal. * Minibuffer Commands:: Commands used as key bindings in minibuffers. * Minibuffer Contents:: How such commands access the minibuffer text. * Minibuffer Windows:: Operating on the special minibuffer windows. @@ -666,7 +666,7 @@ * Distinguish Interactive:: Making a command distinguish interactive calls. * Command Loop Info:: Variables set by the command loop for you to examine. * Adjusting Point:: Adjustment of point after a command. -* Input Events:: What input looks like when you read it. +* Input Events:: What input looks like when you read it. * Reading Input:: How to read input events from the keyboard or mouse. * Special Events:: Events processed immediately and individually. * Waiting:: Waiting for user input or elapsed time. @@ -700,7 +700,7 @@ * Event Examples:: Examples of the lists for mouse events. * Classifying Events:: Finding the modifier keys in an event symbol. Event types. -* Accessing Mouse:: Functions to extract info from mouse events. +* Accessing Mouse:: Functions to extract info from mouse events. * Accessing Scroll:: Functions to get info from scroll bar events. * Strings of Events:: Special considerations for putting keyboard character events in a string. @@ -850,9 +850,9 @@ * Changing Files:: Renaming files, changing protection, etc. * File Names:: Decomposing and expanding file names. * Contents of Directories:: Getting a list of the files in a directory. -* Create/Delete Dirs:: Creating and Deleting Directories. -* Magic File Names:: Defining "magic" special handling - for certain file names. +* Create/Delete Dirs:: Creating and Deleting Directories. +* Magic File Names:: Defining "magic" special handling + for certain file names. * Format Conversion:: Conversion to and from various file formats. Visiting Files @@ -864,7 +864,7 @@ * Testing Accessibility:: Is a given file readable? Writable? * Kinds of Files:: Is it a directory? A symbolic link? -* Truenames:: Eliminating symbolic links from a file name. +* Truenames:: Eliminating symbolic links from a file name. * File Attributes:: How large is it? Any other names? Etc. * Locating Files:: How to find a file in standard places. @@ -934,8 +934,8 @@ * Buffers and Windows:: Each window displays the contents of a buffer. * Displaying Buffers:: Higher-level functions for displaying a buffer and choosing a window for it. -* Choosing Window:: How to choose a window for displaying a buffer. -* Dedicated Windows:: How to avoid displaying another buffer in +* Choosing Window:: How to choose a window for displaying a buffer. +* Dedicated Windows:: How to avoid displaying another buffer in a specific window. * Window Point:: Each window has its own location of point. * Window Start and End:: Buffer positions indicating which text is @@ -955,37 +955,37 @@ Frames -* Creating Frames:: Creating additional frames. +* Creating Frames:: Creating additional frames. * Multiple Terminals:: Displaying on several different devices. -* Frame Parameters:: Controlling frame size, position, font, etc. +* Frame Parameters:: Controlling frame size, position, font, etc. * Terminal Parameters:: Parameters common for all frames on terminal. * Frame Titles:: Automatic updating of frame titles. -* Deleting Frames:: Frames last until explicitly deleted. -* Finding All Frames:: How to examine all existing frames. -* Frames and Windows:: A frame contains windows; - display of text always works through windows. +* Deleting Frames:: Frames last until explicitly deleted. +* Finding All Frames:: How to examine all existing frames. +* Frames and Windows:: A frame contains windows; + display of text always works through windows. * Minibuffers and Frames:: How a frame finds the minibuffer to use. -* Input Focus:: Specifying the selected frame. +* Input Focus:: Specifying the selected frame. * Visibility of Frames:: Frames may be visible or invisible, or icons. * Raising and Lowering:: Raising a frame makes it hide other windows; - lowering it makes the others hide it. + lowering it makes the others hide it. * Frame Configurations:: Saving the state of all frames. -* Mouse Tracking:: Getting events that say when the mouse moves. -* Mouse Position:: Asking where the mouse is, or moving it. -* Pop-Up Menus:: Displaying a menu for the user to select from. +* Mouse Tracking:: Getting events that say when the mouse moves. +* Mouse Position:: Asking where the mouse is, or moving it. +* Pop-Up Menus:: Displaying a menu for the user to select from. * Dialog Boxes:: Displaying a box to ask yes or no. * Pointer Shape:: Specifying the shape of the mouse pointer. * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. -* Color Names:: Getting the definitions of color names. +* Color Names:: Getting the definitions of color names. * Text Terminal Colors:: Defining colors for text-only terminals. -* Resources:: Getting resource values from the server. +* Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. Frame Parameters * Parameter Access:: How to change a frame's parameters. -* Initial Parameters:: Specifying frame parameters when you make a frame. +* Initial Parameters:: Specifying frame parameters when you make a frame. * Window Frame Parameters:: List of frame parameters for window systems. * Size and Position:: Changing the size and position of a frame. * Geometry:: Parsing geometry specifications. @@ -1044,7 +1044,7 @@ later use. * Undo:: Undoing changes to the text of a buffer. * Maintaining Undo:: How to enable and disable undo information. - How to control how much information is kept. + How to control how much information is kept. * Filling:: Functions for explicit filling. * Margins:: How to specify margins for filling commands. * Adaptive Fill:: Adaptive Fill mode chooses a fill prefix @@ -1070,7 +1070,7 @@ * Kill Functions:: Functions that kill text. * Yanking:: How yanking is done. * Yank Commands:: Commands that access the kill ring. -* Low-Level Kill Ring:: Functions and variables for kill ring access. +* Low-Level Kill Ring:: Functions and variables for kill ring access. * Internals of Kill Ring:: Variables that hold kill ring data. Indentation @@ -1085,9 +1085,9 @@ Text Properties * Examining Properties:: Looking at the properties of one character. -* Changing Properties:: Setting the properties of a range of text. -* Property Search:: Searching for where a property changes value. -* Special Properties:: Particular properties with special meanings. +* Changing Properties:: Setting the properties of a range of text. +* Property Search:: Searching for where a property changes value. +* Special Properties:: Particular properties with special meanings. * Format Properties:: Properties for representing formatting of text. * Sticky Properties:: How inserted text gets properties from neighboring text. @@ -1097,8 +1097,8 @@ do something when you click on them. * Fields:: The @code{field} property defines fields within the buffer. -* Not Intervals:: Why text properties do not use - Lisp-visible text intervals. +* Not Intervals:: Why text properties do not use + Lisp-visible text intervals. Non-@acronym{ASCII} Characters @@ -1141,7 +1141,7 @@ * POSIX Regexps:: Searching POSIX-style for the longest match. * Match Data:: Finding out which part of the text matched, after a string or regexp search. -* Search and Replace:: Commands that loop, searching and replacing. +* Search and Replace:: Commands that loop, searching and replacing. * Standard Regexps:: Useful regexps for finding sentences, pages,... Regular Expressions @@ -1158,9 +1158,9 @@ The Match Data -* Replacing Match:: Replacing a substring that was matched. +* Replacing Match:: Replacing a substring that was matched. * Simple Match Data:: Accessing single items of match data, - such as where a particular subexpression started. + such as where a particular subexpression started. * Entire Match Data:: Accessing the entire match data at once, as a list. * Saving Match Data:: Saving and restoring the match data. @@ -1170,7 +1170,7 @@ * Syntax Descriptors:: How characters are classified. * Syntax Table Functions:: How to create, examine and alter syntax tables. * Syntax Properties:: Overriding syntax with text properties. -* Motion and Syntax:: Moving over characters with certain syntaxes. +* Motion and Syntax:: Moving over characters with certain syntaxes. * Parsing Expressions:: Parsing balanced expressions using the syntax table. * Standard Syntax Tables:: Syntax tables used by various major modes. @@ -1259,10 +1259,10 @@ * Invisible Text:: Hiding part of the buffer text. * Selective Display:: Hiding part of the buffer text (the old way). * Temporary Displays:: Displays that go away automatically. -* Overlays:: Use overlays to highlight parts of the buffer. +* Overlays:: Use overlays to highlight parts of the buffer. * Width:: How wide a character or string is on the screen. * Line Height:: Controlling the height of lines. -* Faces:: A face defines a graphics style +* Faces:: A face defines a graphics style for text characters: font, colors, etc. * Fringes:: Controlling window fringes. * Scroll Bars:: Controlling vertical scroll bars. @@ -1271,9 +1271,9 @@ * Buttons:: Adding clickable buttons to Emacs buffers. * Abstract Display:: Emacs' Widget for Object Collections. * Blinking:: How Emacs shows the matching open parenthesis. -* Usual Display:: The usual conventions for displaying +* Usual Display:: The usual conventions for displaying nonprinting chars. -* Display Tables:: How to specify other conventions. +* Display Tables:: How to specify other conventions. * Beeping:: Audible signal to the user. * Window Systems:: Which window system is being used. @@ -1295,7 +1295,7 @@ * Managing Overlays:: Creating and moving overlays. * Overlay Properties:: How to read and set properties. - What properties do to the screen display. + What properties do to the screen display. * Finding Overlays:: Searching for overlays. Faces @@ -1375,14 +1375,14 @@ * Getting Out:: How exiting works (permanent or temporary). * System Environment:: Distinguish the name and kind of system. * User Identification:: Finding the name and user id of the user. -* Time of Day:: Getting the current time. +* Time of Day:: Getting the current time. * Time Conversion:: Converting a time from numeric form to calendrical data and vice versa. * Time Parsing:: Converting a time from numeric form to text and vice versa. * Processor Run Time:: Getting the run time used by Emacs. * Time Calculations:: Adding, subtracting, comparing times, etc. -* Timers:: Setting a timer to call a function at a +* Timers:: Setting a timer to call a function at a certain time. * Idle Timers:: Setting a timer to call a function when Emacs has been idle for a certain length of time. @@ -1409,8 +1409,8 @@ Terminal Input -* Input Modes:: Options for how input is processed. -* Recording Input:: Saving histories of recent or all input events. +* Input Modes:: Options for how input is processed. +* Recording Input:: Saving histories of recent or all input events. Tips and Conventions @@ -1420,7 +1420,7 @@ * Compilation Tips:: Making compiled code run fast. * Warning Tips:: Turning off compiler warnings. * Documentation Tips:: Writing readable documentation strings. -* Comment Tips:: Conventions for writing comments. +* Comment Tips:: Conventions for writing comments. * Library Headers:: Standard headers for library packages. GNU Emacs Internals diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/errors.texi --- a/doc/lispref/errors.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/errors.texi Sun Jul 11 22:57:47 2010 +0000 @@ -63,11 +63,11 @@ @xref{Lisp and Coding Systems}. @item cyclic-function-indirection -@code{"Symbol's chain of function indirections\@* contains a loop"}@* +@code{"Symbol's chain of function indirections contains a loop"}@* @xref{Function Indirection}. @item cyclic-variable-indirection -@code{"Symbol's chain of variable indirections\@* contains a loop"}@* +@code{"Symbol's chain of variable indirections contains a loop"}@* @xref{Variable Aliases}. @item end-of-buffer diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/eval.texi --- a/doc/lispref/eval.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/eval.texi Sun Jul 11 22:57:47 2010 +0000 @@ -110,7 +110,7 @@ * Symbol Forms:: Symbols evaluate as variables. * Classifying Lists:: How to distinguish various sorts of list forms. * Function Indirection:: When a symbol appears as the car of a list, - we find the real function via the symbol. + we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. * Special Forms:: "Special forms" are idiosyncratic primitives, diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/files.texi --- a/doc/lispref/files.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/files.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/files @node Files, Backups and Auto-Saving, Documentation, Top @@ -38,9 +39,9 @@ * Changing Files:: Renaming files, changing protection, etc. * File Names:: Decomposing and expanding file names. * Contents of Directories:: Getting a list of the files in a directory. -* Create/Delete Dirs:: Creating and Deleting Directories. -* Magic File Names:: Defining "magic" special handling - for certain file names. +* Create/Delete Dirs:: Creating and Deleting Directories. +* Magic File Names:: Defining "magic" special handling + for certain file names. * Format Conversion:: Conversion to and from various file formats. @end menu @@ -755,7 +756,7 @@ @menu * Testing Accessibility:: Is a given file readable? Writable? * Kinds of Files:: Is it a directory? A symbolic link? -* Truenames:: Eliminating symbolic links from a file name. +* Truenames:: Eliminating symbolic links from a file name. * File Attributes:: How large is it? Any other names? Etc. * Locating Files:: How to find a file in standard places. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/frames.texi --- a/doc/lispref/frames.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/frames.texi Sun Jul 11 22:57:47 2010 +0000 @@ -85,26 +85,26 @@ * Frame Parameters:: Controlling frame size, position, font, etc. * Terminal Parameters:: Parameters common for all frames on terminal. * Frame Titles:: Automatic updating of frame titles. -* Deleting Frames:: Frames last until explicitly deleted. -* Finding All Frames:: How to examine all existing frames. -* Frames and Windows:: A frame contains windows; - display of text always works through windows. -* Minibuffers and Frames:: How a frame finds the minibuffer to use. -* Input Focus:: Specifying the selected frame. -* Visibility of Frames:: Frames may be visible or invisible, or icons. -* Raising and Lowering:: Raising a frame makes it hide other windows; - lowering it makes the others hide it. -* Frame Configurations:: Saving the state of all frames. -* Mouse Tracking:: Getting events that say when the mouse moves. -* Mouse Position:: Asking where the mouse is, or moving it. -* Pop-Up Menus:: Displaying a menu for the user to select from. +* Deleting Frames:: Frames last until explicitly deleted. +* Finding All Frames:: How to examine all existing frames. +* Frames and Windows:: A frame contains windows; + display of text always works through windows. +* Minibuffers and Frames:: How a frame finds the minibuffer to use. +* Input Focus:: Specifying the selected frame. +* Visibility of Frames:: Frames may be visible or invisible, or icons. +* Raising and Lowering:: Raising a frame makes it hide other windows; + lowering it makes the others hide it. +* Frame Configurations:: Saving the state of all frames. +* Mouse Tracking:: Getting events that say when the mouse moves. +* Mouse Position:: Asking where the mouse is, or moving it. +* Pop-Up Menus:: Displaying a menu for the user to select from. * Dialog Boxes:: Displaying a box to ask yes or no. * Pointer Shape:: Specifying the shape of the mouse pointer. * Window System Selections:: Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. -* Color Names:: Getting the definitions of color names. +* Color Names:: Getting the definitions of color names. * Text Terminal Colors:: Defining colors for text-only terminals. -* Resources:: Getting resource values from the server. +* Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. @end menu @@ -343,7 +343,7 @@ @menu * Parameter Access:: How to change a frame's parameters. -* Initial Parameters:: Specifying frame parameters when you make a frame. +* Initial Parameters:: Specifying frame parameters when you make a frame. * Window Frame Parameters:: List of frame parameters for window systems. * Size and Position:: Changing the size and position of a frame. * Geometry:: Parsing geometry specifications. diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/functions.texi --- a/doc/lispref/functions.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/functions.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/functions @node Functions, Macros, Variables, Top @@ -22,7 +23,7 @@ * Function Cells:: Accessing or setting the function definition of a symbol. * Obsolete Functions:: Declaring functions obsolete. -* Inline Functions:: Defining functions that the compiler will open code. +* Inline Functions:: Defining functions that the compiler will open code. * Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/internals.texi --- a/doc/lispref/internals.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/internals.texi Sun Jul 11 22:57:47 2010 +0000 @@ -518,8 +518,7 @@ @end group @group usage: (or CONDITIONS ...) */) - (args) - Lisp_Object args; + (Lisp_Object args) @{ register Lisp_Object val = Qnil; struct gcpro gcpro1; @@ -618,15 +617,15 @@ too. @end table - After the call to the @code{DEFUN} macro, you must write the argument -name list that every C function must have, followed by ordinary C -declarations for the arguments. For a function with a fixed maximum -number of arguments, declare a C argument for each Lisp argument, and -give them all type @code{Lisp_Object}. When a Lisp function has no -upper limit on the number of arguments, its implementation in C actually -receives exactly two arguments: the first is the number of Lisp -arguments, and the second is the address of a block containing their -values. They have types @code{int} and @w{@code{Lisp_Object *}}. + After the call to the @code{DEFUN} macro, you must write the +argument list that every C function must have, including the types for +the arguments. For a function with a fixed maximum number of +arguments, declare a C argument for each Lisp argument, and give them +all type @code{Lisp_Object}. When a Lisp function has no upper limit +on the number of arguments, its implementation in C actually receives +exactly two arguments: the first is the number of Lisp arguments, and +the second is the address of a block containing their values. They +have types @code{int} and @w{@code{Lisp_Object *}}. @cindex @code{GCPRO} and @code{UNGCPRO} @cindex protect C variables from garbage collection @@ -761,22 +760,22 @@ @group switch (coordinates_in_window (XWINDOW (window), &x, &y)) @{ - case 0: /* NOT in window at all. */ + case 0: /* NOT in window at all. */ return Qnil; @end group @group - case 1: /* In text part of window. */ + case 1: /* In text part of window. */ return Fcons (make_number (x), make_number (y)); @end group @group - case 2: /* In mode line of window. */ + case 2: /* In mode line of window. */ return Qmode_line; @end group @group - case 3: /* On right border of window. */ + case 3: /* On right border of window. */ return Qvertical_line; @end group diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/keymaps.texi --- a/doc/lispref/keymaps.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/keymaps.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/keymaps @node Keymaps, Modes, Command Loop, Top @@ -16,19 +17,19 @@ is found. The whole process is called @dfn{key lookup}. @menu -* Key Sequences:: Key sequences as Lisp objects. +* Key Sequences:: Key sequences as Lisp objects. * Keymap Basics:: Basic concepts of keymaps. -* Format of Keymaps:: What a keymap looks like as a Lisp object. -* Creating Keymaps:: Functions to create and copy keymaps. -* Inheritance and Keymaps:: How one keymap can inherit the bindings - of another keymap. +* Format of Keymaps:: What a keymap looks like as a Lisp object. +* Creating Keymaps:: Functions to create and copy keymaps. +* Inheritance and Keymaps:: How one keymap can inherit the bindings + of another keymap. * Prefix Keys:: Defining a key with a keymap as its definition. * Active Keymaps:: How Emacs searches the active keymaps for a key binding. * Searching Keymaps:: A pseudo-Lisp summary of searching active maps. * Controlling Active Maps:: Each buffer has a local keymap to override the standard (global) bindings. - A minor mode can also override them. + A minor mode can also override them. * Key Lookup:: Finding a key's binding in one keymap. * Functions for Key Lookup:: How to request key lookup. * Changing Key Bindings:: Redefining a key in a keymap. @@ -36,7 +37,7 @@ * Translation Keymaps:: Keymaps for translating sequences of events. * Key Binding Commands:: Interactive interfaces for redefining keys. * Scanning Keymaps:: Looking through all keymaps, for printing help. -* Menu Keymaps:: Defining a menu as a keymap. +* Menu Keymaps:: Defining a menu as a keymap. @end menu @node Key Sequences @@ -1959,11 +1960,11 @@ feature. @menu -* Defining Menus:: How to make a keymap that defines a menu. -* Mouse Menus:: How users actuate the menu with the mouse. -* Keyboard Menus:: How users actuate the menu with the keyboard. -* Menu Example:: Making a simple menu. -* Menu Bar:: How to customize the menu bar. +* Defining Menus:: How to make a keymap that defines a menu. +* Mouse Menus:: How users actuate the menu with the mouse. +* Keyboard Menus:: How users actuate the menu with the keyboard. +* Menu Example:: Making a simple menu. +* Menu Bar:: How to customize the menu bar. * Tool Bar:: A tool bar is a row of images. * Modifying Menus:: How to add new items to a menu. @end menu @@ -2413,10 +2414,10 @@ @smallexample (define-key menu-bar-replace-menu [tags-repl-continue] '(menu-item "Continue Replace" tags-loop-continue - :help "Continue last tags replace operation")) + :help "Continue last tags replace operation")) (define-key menu-bar-replace-menu [tags-repl] '(menu-item "Replace in tagged files" tags-query-replace - :help "Interactively replace a regexp in all tagged files")) + :help "Interactively replace a regexp in all tagged files")) (define-key menu-bar-replace-menu [separator-replace-tags] '(menu-item "--")) ;; @r{@dots{}} @@ -2656,8 +2657,8 @@ By default, the global map binds @code{[tool-bar]} as follows: @example (global-set-key [tool-bar] - '(menu-item "tool bar" ignore - :filter (lambda (ignore) tool-bar-map))) + '(menu-item "tool bar" ignore + :filter (lambda (ignore) tool-bar-map))) @end example @noindent Thus the tool bar map is derived dynamically from the value of variable diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/loading.texi --- a/doc/lispref/loading.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/loading.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/loading @node Loading, Byte Compilation, Customization, Top @@ -43,9 +44,9 @@ * Repeated Loading:: Precautions about loading a file twice. * Named Features:: Loading a library if it isn't already loaded. * Where Defined:: Finding which file defined a certain symbol. -* Unloading:: How to "unload" a library that was loaded. -* Hooks for Loading:: Providing code to be run when - particular libraries are loaded. +* Unloading:: How to "unload" a library that was loaded. +* Hooks for Loading:: Providing code to be run when + particular libraries are loaded. @end menu @node How Programs Do Loading diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/minibuf.texi --- a/doc/lispref/minibuf.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/minibuf.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/minibuf @node Minibuffers, Command Loop, Read and Print, Top @@ -22,13 +23,13 @@ * Intro to Minibuffers:: Basic information about minibuffers. * Text from Minibuffer:: How to read a straight text string. * Object from Minibuffer:: How to read a Lisp object or expression. -* Minibuffer History:: Recording previous minibuffer inputs - so the user can reuse them. +* Minibuffer History:: Recording previous minibuffer inputs + so the user can reuse them. * Initial Input:: Specifying initial contents for the minibuffer. * Completion:: How to invoke and customize completion. * Yes-or-No Queries:: Asking a question with a simple answer. -* Multiple Queries:: Asking a series of similar questions. -* Reading a Password:: Reading a password from the terminal. +* Multiple Queries:: Asking a series of similar questions. +* Reading a Password:: Reading a password from the terminal. * Minibuffer Commands:: Commands used as key bindings in minibuffers. * Minibuffer Contents:: How such commands access the minibuffer text. * Minibuffer Windows:: Operating on the special minibuffer windows. diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/modes.texi --- a/doc/lispref/modes.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/modes.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1342,7 +1342,7 @@ Global minor modes distributed with Emacs should if possible support enabling and disabling via Custom (@pxref{Customization}). To do this, the first step is to define the mode variable with @code{defcustom}, and -specify @code{:type boolean}. +specify @code{:type 'boolean}. If just setting the variable is not sufficient to enable the mode, you should also specify a @code{:set} method which enables the mode by diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/numbers.texi --- a/doc/lispref/numbers.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/numbers.texi Sun Jul 11 22:57:47 2010 +0000 @@ -21,10 +21,10 @@ @menu * Integer Basics:: Representation and range of integers. -* Float Basics:: Representation and range of floating point. +* Float Basics:: Representation and range of floating point. * Predicates on Numbers:: Testing for numbers. * Comparison of Numbers:: Equality and inequality predicates. -* Numeric Conversions:: Converting float to integer and vice versa. +* Numeric Conversions:: Converting float to integer and vice versa. * Arithmetic Operations:: How to add, subtract, multiply and divide. * Rounding Operations:: Explicitly rounding floating point numbers. * Bitwise Operations:: Logical and, or, not, shifting. diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/os.texi --- a/doc/lispref/os.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/os.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/os @node System Interface, Antinews, Display, Top @@ -20,14 +21,14 @@ * Getting Out:: How exiting works (permanent or temporary). * System Environment:: Distinguish the name and kind of system. * User Identification:: Finding the name and user id of the user. -* Time of Day:: Getting the current time. +* Time of Day:: Getting the current time. * Time Conversion:: Converting a time from numeric form to calendrical data and vice versa. * Time Parsing:: Converting a time from numeric form to text and vice versa. * Processor Run Time:: Getting the run time used by Emacs. * Time Calculations:: Adding, subtracting, comparing times, etc. -* Timers:: Setting a timer to call a function at a certain time. +* Timers:: Setting a timer to call a function at a certain time. * Idle Timers:: Setting a timer to call a function when Emacs has been idle for a certain length of time. * Terminal Input:: Accessing and recording terminal input. @@ -1815,8 +1816,8 @@ functions. @menu -* Input Modes:: Options for how input is processed. -* Recording Input:: Saving histories of recent or all input events. +* Input Modes:: Options for how input is processed. +* Recording Input:: Saving histories of recent or all input events. @end menu @node Input Modes diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/processes.texi --- a/doc/lispref/processes.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/processes.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/processes @node Processes, Display, Abbrevs, Top @@ -51,13 +52,13 @@ * Sentinels:: Sentinels run when process run-status changes. * Query Before Exit:: Whether to query if exiting will kill a process. * System Processes:: Accessing other processes running on your system. -* Transaction Queues:: Transaction-based communication with subprocesses. +* Transaction Queues:: Transaction-based communication with subprocesses. * Network:: Opening network connections. * Network Servers:: Network servers let Emacs accept net connections. * Datagrams:: UDP network connections. * Low-Level Network:: Lower-level but more general function to create connections and servers. -* Misc Network:: Additional relevant functions for network connections. +* Misc Network:: Additional relevant functions for net connections. * Serial Ports:: Communicating with serial ports. * Byte Packing:: Using bindat to pack and unpack binary data. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/searching.texi --- a/doc/lispref/searching.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/searching.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/searching @node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top @@ -22,7 +23,7 @@ * POSIX Regexps:: Searching POSIX-style for the longest match. * Match Data:: Finding out which part of the text matched, after a string or regexp search. -* Search and Replace:: Commands that loop, searching and replacing. +* Search and Replace:: Commands that loop, searching and replacing. * Standard Regexps:: Useful regexps for finding sentences, pages,... @end menu @@ -609,8 +610,8 @@ For example, @samp{c[ad]\@{1,2\@}r} matches the strings @samp{car}, @samp{cdr}, @samp{caar}, @samp{cadr}, @samp{cdar}, and @samp{cddr}, and nothing else.@* -@samp{\@{0,1\@}} or @samp{\@{,1\@}} is equivalent to @samp{?}. @* -@samp{\@{0,\@}} or @samp{\@{,\@}} is equivalent to @samp{*}. @* +@samp{\@{0,1\@}} or @samp{\@{,1\@}} is equivalent to @samp{?}.@* +@samp{\@{0,\@}} or @samp{\@{,\@}} is equivalent to @samp{*}.@* @samp{\@{1,\@}} is equivalent to @samp{+}. @item \( @dots{} \) @@ -1213,9 +1214,9 @@ match data around it, to prevent it from being overwritten. @menu -* Replacing Match:: Replacing a substring that was matched. +* Replacing Match:: Replacing a substring that was matched. * Simple Match Data:: Accessing single items of match data, - such as where a particular subexpression started. + such as where a particular subexpression started. * Entire Match Data:: Accessing the entire match data at once, as a list. * Saving Match Data:: Saving and restoring the match data. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/sequences.texi --- a/doc/lispref/sequences.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/sequences.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/sequences @node Sequences Arrays Vectors, Hash Tables, Lists, Top @@ -669,13 +670,13 @@ (let (accumulator) (map-char-table #'(lambda (key value) - (setq accumulator - (cons (list - (if (consp key) - (list (car key) (cdr key)) - key) - value) - accumulator))) + (setq accumulator + (cons (list + (if (consp key) + (list (car key) (cdr key)) + key) + value) + accumulator))) (syntax-table)) accumulator) @result{} diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/strings.texi --- a/doc/lispref/strings.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/strings.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/strings @node Strings and Characters, Lists, Numbers, Top @@ -31,7 +32,7 @@ * String Conversion:: Converting to and from characters and strings. * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. * Case Conversion:: Case conversion functions. -* Case Tables:: Customizing case conversion. +* Case Tables:: Customizing case conversion. @end menu @node String Basics diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/syntax.texi --- a/doc/lispref/syntax.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/syntax.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/syntax @node Syntax Tables, Abbrevs, Searching and Matching, Top @@ -23,7 +24,7 @@ * Desc: Syntax Descriptors. How characters are classified. * Syntax Table Functions:: How to create, examine and alter syntax tables. * Syntax Properties:: Overriding syntax with text properties. -* Motion and Syntax:: Moving over characters with certain syntaxes. +* Motion and Syntax:: Moving over characters with certain syntaxes. * Parsing Expressions:: Parsing balanced expressions using the syntax table. * Standard Syntax Tables:: Syntax tables used by various major modes. diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/text.texi --- a/doc/lispref/text.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/text.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/text @node Text, Non-ASCII Characters, Markers, Top @@ -42,7 +43,7 @@ * The Kill Ring:: Where removed text sometimes is saved for later use. * Undo:: Undoing changes to the text of a buffer. * Maintaining Undo:: How to enable and disable undo information. - How to control how much information is kept. + How to control how much information is kept. * Filling:: Functions for explicit filling. * Margins:: How to specify margins for filling commands. * Adaptive Fill:: Adaptive Fill mode chooses a fill prefix from context. @@ -821,7 +822,7 @@ * Kill Functions:: Functions that kill text. * Yanking:: How yanking is done. * Yank Commands:: Commands that access the kill ring. -* Low-Level Kill Ring:: Functions and variables for kill ring access. +* Low-Level Kill Ring:: Functions and variables for kill ring access. * Internals of Kill Ring:: Variables that hold kill ring data. @end menu @@ -1298,13 +1299,16 @@ command stops at such a boundary, and successive undo commands undo to earlier and earlier boundaries. This function returns @code{nil}. -The editor command loop automatically creates an undo boundary before -each key sequence is executed. Thus, each undo normally undoes the -effects of one command. Self-inserting input characters are an -exception. The command loop makes a boundary for the first such -character; the next 19 consecutive self-inserting input characters do -not make boundaries, and then the 20th does, and so on as long as -self-inserting characters continue. +The editor command loop automatically calls @code{undo-boundary} just +before executing each key sequence, so that each undo normally undoes +the effects of one command. As an exception, the command +@code{self-insert-command}, which produces self-inserting input +characters (@pxref{Commands for Insertion}), may remove the boundary +inserted by the command loop: a boundary is accepted for the first +such character, the next 19 consecutive self-inserting input +characters do not have boundaries, and then the 20th does; and so on +as long as the self-inserting characters continue. Hence, sequences +of consecutive character insertions can be undone as a group. All buffer modifications add a boundary whenever the previous undoable change was made in some other buffer. This is to ensure that @@ -2593,9 +2597,9 @@ @menu * Examining Properties:: Looking at the properties of one character. -* Changing Properties:: Setting the properties of a range of text. -* Property Search:: Searching for where a property changes value. -* Special Properties:: Particular properties with special meanings. +* Changing Properties:: Setting the properties of a range of text. +* Property Search:: Searching for where a property changes value. +* Special Properties:: Particular properties with special meanings. * Format Properties:: Properties for representing formatting of text. * Sticky Properties:: How inserted text gets properties from neighboring text. @@ -2605,8 +2609,8 @@ do something when you click on them. * Fields:: The @code{field} property defines fields within the buffer. -* Not Intervals:: Why text properties do not use - Lisp-visible text intervals. +* Not Intervals:: Why text properties do not use + Lisp-visible text intervals. @end menu @node Examining Properties diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/tips.texi --- a/doc/lispref/tips.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/tips.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002, -@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/tips @node Tips, GNU Emacs Internals, GPL, Top @@ -28,7 +29,7 @@ * Compilation Tips:: Making compiled code run fast. * Warning Tips:: Turning off compiler warnings. * Documentation Tips:: Writing readable documentation strings. -* Comment Tips:: Conventions for writing comments. +* Comment Tips:: Conventions for writing comments. * Library Headers:: Standard headers for library packages. @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/vol1.texi --- a/doc/lispref/vol1.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/vol1.texi Sun Jul 11 22:57:47 2010 +0000 @@ -164,7 +164,7 @@ files are made. * Buffers:: Creating and using buffer objects. * Windows:: Manipulating windows and displaying buffers. -* Frames:: Making multiple system-level windows. +* Frames:: Making multiple system-level windows. * Positions:: Buffer positions and motion functions. * Markers:: Markers represent positions and update automatically when the text is changed. @@ -176,7 +176,7 @@ * Abbrevs:: How Abbrev mode works, and its data structures. * Processes:: Running and communicating with subprocesses. -* Display:: Features for controlling the screen display. +* Display:: Features for controlling the screen display. * System Interface:: Getting the user id, system type, environment variables, and other such things. @@ -311,10 +311,10 @@ Numbers * Integer Basics:: Representation and range of integers. -* Float Basics:: Representation and range of floating point. +* Float Basics:: Representation and range of floating point. * Predicates on Numbers:: Testing for numbers. * Comparison of Numbers:: Equality and inequality predicates. -* Numeric Conversions:: Converting float to integer and vice versa. +* Numeric Conversions:: Converting float to integer and vice versa. * Arithmetic Operations:: How to add, subtract, multiply and divide. * Rounding Operations:: Explicitly rounding floating point numbers. * Bitwise Operations:: Logical and, or, not, shifting. @@ -331,7 +331,7 @@ * String Conversion:: Converting to and from characters and strings. * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. * Case Conversion:: Case conversion functions. -* Case Tables:: Customizing case conversion. +* Case Tables:: Customizing case conversion. Lists @@ -399,7 +399,7 @@ * Symbol Forms:: Symbols evaluate as variables. * Classifying Lists:: How to distinguish various sorts of list forms. * Function Indirection:: When a symbol appears as the car of a list, - we find the real function via the symbol. + we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. * Special Forms:: "Special forms" are idiosyncratic primitives, @@ -480,9 +480,9 @@ * Function Cells:: Accessing or setting the function definition of a symbol. * Obsolete Functions:: Declaring functions obsolete. -* Inline Functions:: Defining functions that the compiler +* Inline Functions:: Defining functions that the compiler will open code. -* Declaring Functions:: Telling the compiler that a function is defined. +* Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives that have a special bearing on how @@ -542,9 +542,9 @@ * Repeated Loading:: Precautions about loading a file twice. * Named Features:: Loading a library if it isn't already loaded. * Where Defined:: Finding which file defined a certain symbol. -* Unloading:: How to "unload" a library that was loaded. -* Hooks for Loading:: Providing code to be run when - particular libraries are loaded. +* Unloading:: How to "unload" a library that was loaded. +* Hooks for Loading:: Providing code to be run when + particular libraries are loaded. Byte Compilation @@ -554,7 +554,7 @@ * Dynamic Loading:: Dynamic loading of individual functions. * Eval During Compile:: Code to be evaluated when you compile. * Compiler Errors:: Handling compiler error messages. -* Byte-Code Objects:: The data type used for byte-compiled functions. +* Byte-Code Objects:: The data type used for byte-compiled functions. * Disassembly:: Disassembling byte-code; how to read byte-code. Advising Emacs Lisp Functions @@ -583,7 +583,7 @@ The Lisp Debugger * Error Debugging:: Entering the debugger when an error happens. -* Infinite Loops:: Stopping and debugging a program that doesn't exit. +* Infinite Loops:: Stopping and debugging a program that doesn't exit. * Function Debugging:: Entering it when a certain function is called. * Explicit Debug:: Entering it at a certain point in the program. * Using Debugger:: What the debugger does; what you see while in it. @@ -593,24 +593,24 @@ Edebug -* Using Edebug:: Introduction to use of Edebug. -* Instrumenting:: You must instrument your code - in order to debug it with Edebug. +* Using Edebug:: Introduction to use of Edebug. +* Instrumenting:: You must instrument your code + in order to debug it with Edebug. * Edebug Execution Modes:: Execution modes, stopping more or less often. -* Jumping:: Commands to jump to a specified place. -* Edebug Misc:: Miscellaneous commands. -* Breaks:: Setting breakpoints to make the program stop. -* Trapping Errors:: Trapping errors with Edebug. -* Edebug Views:: Views inside and outside of Edebug. -* Edebug Eval:: Evaluating expressions within Edebug. -* Eval List:: Expressions whose values are displayed - each time you enter Edebug. -* Printing in Edebug:: Customization of printing. -* Trace Buffer:: How to produce trace output in a buffer. -* Coverage Testing:: How to test evaluation coverage. -* The Outside Context:: Data that Edebug saves and restores. +* Jumping:: Commands to jump to a specified place. +* Edebug Misc:: Miscellaneous commands. +* Breaks:: Setting breakpoints to make the program stop. +* Trapping Errors:: Trapping errors with Edebug. +* Edebug Views:: Views inside and outside of Edebug. +* Edebug Eval:: Evaluating expressions within Edebug. +* Eval List:: Expressions whose values are displayed + each time you enter Edebug. +* Printing in Edebug:: Customization of printing. +* Trace Buffer:: How to produce trace output in a buffer. +* Coverage Testing:: How to test evaluation coverage. +* The Outside Context:: Data that Edebug saves and restores. * Edebug and Macros:: Specifying how to handle macro calls. -* Edebug Options:: Option variables for customizing Edebug. +* Edebug Options:: Option variables for customizing Edebug. Breaks @@ -627,8 +627,8 @@ Edebug and Macros * Instrumenting Macro Calls::The basic problem. -* Specification List:: How to specify complex patterns of evaluation. -* Backtracking:: What Edebug does when matching fails. +* Specification List:: How to specify complex patterns of evaluation. +* Backtracking:: What Edebug does when matching fails. * Specification Examples:: To help understand specifications. Debugging Invalid Lisp Syntax @@ -653,13 +653,13 @@ * Intro to Minibuffers:: Basic information about minibuffers. * Text from Minibuffer:: How to read a straight text string. * Object from Minibuffer:: How to read a Lisp object or expression. -* Minibuffer History:: Recording previous minibuffer inputs - so the user can reuse them. +* Minibuffer History:: Recording previous minibuffer inputs + so the user can reuse them. * Initial Input:: Specifying initial contents for the minibuffer. * Completion:: How to invoke and customize completion. * Yes-or-No Queries:: Asking a question with a simple answer. -* Multiple Queries:: Asking a series of similar questions. -* Reading a Password:: Reading a password from the terminal. +* Multiple Queries:: Asking a series of similar questions. +* Reading a Password:: Reading a password from the terminal. * Minibuffer Commands:: Commands used as key bindings in minibuffers. * Minibuffer Contents:: How such commands access the minibuffer text. * Minibuffer Windows:: Operating on the special minibuffer windows. @@ -687,7 +687,7 @@ * Distinguish Interactive:: Making a command distinguish interactive calls. * Command Loop Info:: Variables set by the command loop for you to examine. * Adjusting Point:: Adjustment of point after a command. -* Input Events:: What input looks like when you read it. +* Input Events:: What input looks like when you read it. * Reading Input:: How to read input events from the keyboard or mouse. * Special Events:: Events processed immediately and individually. * Waiting:: Waiting for user input or elapsed time. @@ -721,7 +721,7 @@ * Event Examples:: Examples of the lists for mouse events. * Classifying Events:: Finding the modifier keys in an event symbol. Event types. -* Accessing Mouse:: Functions to extract info from mouse events. +* Accessing Mouse:: Functions to extract info from mouse events. * Accessing Scroll:: Functions to get info from scroll bar events. * Strings of Events:: Special considerations for putting keyboard character events in a string. @@ -871,9 +871,9 @@ * Changing Files:: Renaming files, changing protection, etc. * File Names:: Decomposing and expanding file names. * Contents of Directories:: Getting a list of the files in a directory. -* Create/Delete Dirs:: Creating and Deleting Directories. -* Magic File Names:: Defining "magic" special handling - for certain file names. +* Create/Delete Dirs:: Creating and Deleting Directories. +* Magic File Names:: Defining "magic" special handling + for certain file names. * Format Conversion:: Conversion to and from various file formats. Visiting Files @@ -885,7 +885,7 @@ * Testing Accessibility:: Is a given file readable? Writable? * Kinds of Files:: Is it a directory? A symbolic link? -* Truenames:: Eliminating symbolic links from a file name. +* Truenames:: Eliminating symbolic links from a file name. * File Attributes:: How large is it? Any other names? Etc. * Locating Files:: How to find a file in standard places. @@ -955,8 +955,8 @@ * Buffers and Windows:: Each window displays the contents of a buffer. * Displaying Buffers:: Higher-level functions for displaying a buffer and choosing a window for it. -* Choosing Window:: How to choose a window for displaying a buffer. -* Dedicated Windows:: How to avoid displaying another buffer in +* Choosing Window:: How to choose a window for displaying a buffer. +* Dedicated Windows:: How to avoid displaying another buffer in a specific window. * Window Point:: Each window has its own location of point. * Window Start and End:: Buffer positions indicating which text is @@ -976,37 +976,37 @@ Frames -* Creating Frames:: Creating additional frames. +* Creating Frames:: Creating additional frames. * Multiple Terminals:: Displaying on several different devices. -* Frame Parameters:: Controlling frame size, position, font, etc. +* Frame Parameters:: Controlling frame size, position, font, etc. * Terminal Parameters:: Parameters common for all frames on terminal. * Frame Titles:: Automatic updating of frame titles. -* Deleting Frames:: Frames last until explicitly deleted. -* Finding All Frames:: How to examine all existing frames. -* Frames and Windows:: A frame contains windows; - display of text always works through windows. +* Deleting Frames:: Frames last until explicitly deleted. +* Finding All Frames:: How to examine all existing frames. +* Frames and Windows:: A frame contains windows; + display of text always works through windows. * Minibuffers and Frames:: How a frame finds the minibuffer to use. -* Input Focus:: Specifying the selected frame. +* Input Focus:: Specifying the selected frame. * Visibility of Frames:: Frames may be visible or invisible, or icons. * Raising and Lowering:: Raising a frame makes it hide other windows; - lowering it makes the others hide it. + lowering it makes the others hide it. * Frame Configurations:: Saving the state of all frames. -* Mouse Tracking:: Getting events that say when the mouse moves. -* Mouse Position:: Asking where the mouse is, or moving it. -* Pop-Up Menus:: Displaying a menu for the user to select from. +* Mouse Tracking:: Getting events that say when the mouse moves. +* Mouse Position:: Asking where the mouse is, or moving it. +* Pop-Up Menus:: Displaying a menu for the user to select from. * Dialog Boxes:: Displaying a box to ask yes or no. * Pointer Shape:: Specifying the shape of the mouse pointer. * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. -* Color Names:: Getting the definitions of color names. +* Color Names:: Getting the definitions of color names. * Text Terminal Colors:: Defining colors for text-only terminals. -* Resources:: Getting resource values from the server. +* Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. Frame Parameters * Parameter Access:: How to change a frame's parameters. -* Initial Parameters:: Specifying frame parameters when you make a frame. +* Initial Parameters:: Specifying frame parameters when you make a frame. * Window Frame Parameters:: List of frame parameters for window systems. * Size and Position:: Changing the size and position of a frame. * Geometry:: Parsing geometry specifications. @@ -1065,7 +1065,7 @@ later use. * Undo:: Undoing changes to the text of a buffer. * Maintaining Undo:: How to enable and disable undo information. - How to control how much information is kept. + How to control how much information is kept. * Filling:: Functions for explicit filling. * Margins:: How to specify margins for filling commands. * Adaptive Fill:: Adaptive Fill mode chooses a fill prefix @@ -1091,7 +1091,7 @@ * Kill Functions:: Functions that kill text. * Yanking:: How yanking is done. * Yank Commands:: Commands that access the kill ring. -* Low-Level Kill Ring:: Functions and variables for kill ring access. +* Low-Level Kill Ring:: Functions and variables for kill ring access. * Internals of Kill Ring:: Variables that hold kill ring data. Indentation @@ -1106,9 +1106,9 @@ Text Properties * Examining Properties:: Looking at the properties of one character. -* Changing Properties:: Setting the properties of a range of text. -* Property Search:: Searching for where a property changes value. -* Special Properties:: Particular properties with special meanings. +* Changing Properties:: Setting the properties of a range of text. +* Property Search:: Searching for where a property changes value. +* Special Properties:: Particular properties with special meanings. * Format Properties:: Properties for representing formatting of text. * Sticky Properties:: How inserted text gets properties from neighboring text. @@ -1118,8 +1118,8 @@ do something when you click on them. * Fields:: The @code{field} property defines fields within the buffer. -* Not Intervals:: Why text properties do not use - Lisp-visible text intervals. +* Not Intervals:: Why text properties do not use + Lisp-visible text intervals. Non-@acronym{ASCII} Characters @@ -1162,7 +1162,7 @@ * POSIX Regexps:: Searching POSIX-style for the longest match. * Match Data:: Finding out which part of the text matched, after a string or regexp search. -* Search and Replace:: Commands that loop, searching and replacing. +* Search and Replace:: Commands that loop, searching and replacing. * Standard Regexps:: Useful regexps for finding sentences, pages,... Regular Expressions @@ -1179,9 +1179,9 @@ The Match Data -* Replacing Match:: Replacing a substring that was matched. +* Replacing Match:: Replacing a substring that was matched. * Simple Match Data:: Accessing single items of match data, - such as where a particular subexpression started. + such as where a particular subexpression started. * Entire Match Data:: Accessing the entire match data at once, as a list. * Saving Match Data:: Saving and restoring the match data. @@ -1191,7 +1191,7 @@ * Syntax Descriptors:: How characters are classified. * Syntax Table Functions:: How to create, examine and alter syntax tables. * Syntax Properties:: Overriding syntax with text properties. -* Motion and Syntax:: Moving over characters with certain syntaxes. +* Motion and Syntax:: Moving over characters with certain syntaxes. * Parsing Expressions:: Parsing balanced expressions using the syntax table. * Standard Syntax Tables:: Syntax tables used by various major modes. @@ -1280,10 +1280,10 @@ * Invisible Text:: Hiding part of the buffer text. * Selective Display:: Hiding part of the buffer text (the old way). * Temporary Displays:: Displays that go away automatically. -* Overlays:: Use overlays to highlight parts of the buffer. +* Overlays:: Use overlays to highlight parts of the buffer. * Width:: How wide a character or string is on the screen. * Line Height:: Controlling the height of lines. -* Faces:: A face defines a graphics style +* Faces:: A face defines a graphics style for text characters: font, colors, etc. * Fringes:: Controlling window fringes. * Scroll Bars:: Controlling vertical scroll bars. @@ -1292,9 +1292,9 @@ * Buttons:: Adding clickable buttons to Emacs buffers. * Abstract Display:: Emacs' Widget for Object Collections. * Blinking:: How Emacs shows the matching open parenthesis. -* Usual Display:: The usual conventions for displaying +* Usual Display:: The usual conventions for displaying nonprinting chars. -* Display Tables:: How to specify other conventions. +* Display Tables:: How to specify other conventions. * Beeping:: Audible signal to the user. * Window Systems:: Which window system is being used. @@ -1316,7 +1316,7 @@ * Managing Overlays:: Creating and moving overlays. * Overlay Properties:: How to read and set properties. - What properties do to the screen display. + What properties do to the screen display. * Finding Overlays:: Searching for overlays. Faces @@ -1396,14 +1396,14 @@ * Getting Out:: How exiting works (permanent or temporary). * System Environment:: Distinguish the name and kind of system. * User Identification:: Finding the name and user id of the user. -* Time of Day:: Getting the current time. +* Time of Day:: Getting the current time. * Time Conversion:: Converting a time from numeric form to calendrical data and vice versa. * Time Parsing:: Converting a time from numeric form to text and vice versa. * Processor Run Time:: Getting the run time used by Emacs. * Time Calculations:: Adding, subtracting, comparing times, etc. -* Timers:: Setting a timer to call a function at a +* Timers:: Setting a timer to call a function at a certain time. * Idle Timers:: Setting a timer to call a function when Emacs has been idle for a certain length of time. @@ -1430,8 +1430,8 @@ Terminal Input -* Input Modes:: Options for how input is processed. -* Recording Input:: Saving histories of recent or all input events. +* Input Modes:: Options for how input is processed. +* Recording Input:: Saving histories of recent or all input events. Tips and Conventions @@ -1441,7 +1441,7 @@ * Compilation Tips:: Making compiled code run fast. * Warning Tips:: Turning off compiler warnings. * Documentation Tips:: Writing readable documentation strings. -* Comment Tips:: Conventions for writing comments. +* Comment Tips:: Conventions for writing comments. * Library Headers:: Standard headers for library packages. GNU Emacs Internals diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/vol2.texi --- a/doc/lispref/vol2.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/vol2.texi Sun Jul 11 22:57:47 2010 +0000 @@ -163,7 +163,7 @@ files are made. * Buffers:: Creating and using buffer objects. * Windows:: Manipulating windows and displaying buffers. -* Frames:: Making multiple system-level windows. +* Frames:: Making multiple system-level windows. * Positions:: Buffer positions and motion functions. * Markers:: Markers represent positions and update automatically when the text is changed. @@ -175,7 +175,7 @@ * Abbrevs:: How Abbrev mode works, and its data structures. * Processes:: Running and communicating with subprocesses. -* Display:: Features for controlling the screen display. +* Display:: Features for controlling the screen display. * System Interface:: Getting the user id, system type, environment variables, and other such things. @@ -310,10 +310,10 @@ Numbers * Integer Basics:: Representation and range of integers. -* Float Basics:: Representation and range of floating point. +* Float Basics:: Representation and range of floating point. * Predicates on Numbers:: Testing for numbers. * Comparison of Numbers:: Equality and inequality predicates. -* Numeric Conversions:: Converting float to integer and vice versa. +* Numeric Conversions:: Converting float to integer and vice versa. * Arithmetic Operations:: How to add, subtract, multiply and divide. * Rounding Operations:: Explicitly rounding floating point numbers. * Bitwise Operations:: Logical and, or, not, shifting. @@ -330,7 +330,7 @@ * String Conversion:: Converting to and from characters and strings. * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. * Case Conversion:: Case conversion functions. -* Case Tables:: Customizing case conversion. +* Case Tables:: Customizing case conversion. Lists @@ -398,7 +398,7 @@ * Symbol Forms:: Symbols evaluate as variables. * Classifying Lists:: How to distinguish various sorts of list forms. * Function Indirection:: When a symbol appears as the car of a list, - we find the real function via the symbol. + we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. * Special Forms:: "Special forms" are idiosyncratic primitives, @@ -479,9 +479,9 @@ * Function Cells:: Accessing or setting the function definition of a symbol. * Obsolete Functions:: Declaring functions obsolete. -* Inline Functions:: Defining functions that the compiler +* Inline Functions:: Defining functions that the compiler will open code. -* Declaring Functions:: Telling the compiler that a function is defined. +* Declaring Functions:: Telling the compiler that a function is defined. * Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives that have a special bearing on how @@ -541,9 +541,9 @@ * Repeated Loading:: Precautions about loading a file twice. * Named Features:: Loading a library if it isn't already loaded. * Where Defined:: Finding which file defined a certain symbol. -* Unloading:: How to "unload" a library that was loaded. -* Hooks for Loading:: Providing code to be run when - particular libraries are loaded. +* Unloading:: How to "unload" a library that was loaded. +* Hooks for Loading:: Providing code to be run when + particular libraries are loaded. Byte Compilation @@ -553,7 +553,7 @@ * Dynamic Loading:: Dynamic loading of individual functions. * Eval During Compile:: Code to be evaluated when you compile. * Compiler Errors:: Handling compiler error messages. -* Byte-Code Objects:: The data type used for byte-compiled functions. +* Byte-Code Objects:: The data type used for byte-compiled functions. * Disassembly:: Disassembling byte-code; how to read byte-code. Advising Emacs Lisp Functions @@ -582,7 +582,7 @@ The Lisp Debugger * Error Debugging:: Entering the debugger when an error happens. -* Infinite Loops:: Stopping and debugging a program that doesn't exit. +* Infinite Loops:: Stopping and debugging a program that doesn't exit. * Function Debugging:: Entering it when a certain function is called. * Explicit Debug:: Entering it at a certain point in the program. * Using Debugger:: What the debugger does; what you see while in it. @@ -592,24 +592,24 @@ Edebug -* Using Edebug:: Introduction to use of Edebug. -* Instrumenting:: You must instrument your code - in order to debug it with Edebug. +* Using Edebug:: Introduction to use of Edebug. +* Instrumenting:: You must instrument your code + in order to debug it with Edebug. * Edebug Execution Modes:: Execution modes, stopping more or less often. -* Jumping:: Commands to jump to a specified place. -* Edebug Misc:: Miscellaneous commands. -* Breaks:: Setting breakpoints to make the program stop. -* Trapping Errors:: Trapping errors with Edebug. -* Edebug Views:: Views inside and outside of Edebug. -* Edebug Eval:: Evaluating expressions within Edebug. -* Eval List:: Expressions whose values are displayed - each time you enter Edebug. -* Printing in Edebug:: Customization of printing. -* Trace Buffer:: How to produce trace output in a buffer. -* Coverage Testing:: How to test evaluation coverage. -* The Outside Context:: Data that Edebug saves and restores. +* Jumping:: Commands to jump to a specified place. +* Edebug Misc:: Miscellaneous commands. +* Breaks:: Setting breakpoints to make the program stop. +* Trapping Errors:: Trapping errors with Edebug. +* Edebug Views:: Views inside and outside of Edebug. +* Edebug Eval:: Evaluating expressions within Edebug. +* Eval List:: Expressions whose values are displayed + each time you enter Edebug. +* Printing in Edebug:: Customization of printing. +* Trace Buffer:: How to produce trace output in a buffer. +* Coverage Testing:: How to test evaluation coverage. +* The Outside Context:: Data that Edebug saves and restores. * Edebug and Macros:: Specifying how to handle macro calls. -* Edebug Options:: Option variables for customizing Edebug. +* Edebug Options:: Option variables for customizing Edebug. Breaks @@ -626,8 +626,8 @@ Edebug and Macros * Instrumenting Macro Calls::The basic problem. -* Specification List:: How to specify complex patterns of evaluation. -* Backtracking:: What Edebug does when matching fails. +* Specification List:: How to specify complex patterns of evaluation. +* Backtracking:: What Edebug does when matching fails. * Specification Examples:: To help understand specifications. Debugging Invalid Lisp Syntax @@ -652,13 +652,13 @@ * Intro to Minibuffers:: Basic information about minibuffers. * Text from Minibuffer:: How to read a straight text string. * Object from Minibuffer:: How to read a Lisp object or expression. -* Minibuffer History:: Recording previous minibuffer inputs - so the user can reuse them. +* Minibuffer History:: Recording previous minibuffer inputs + so the user can reuse them. * Initial Input:: Specifying initial contents for the minibuffer. * Completion:: How to invoke and customize completion. * Yes-or-No Queries:: Asking a question with a simple answer. -* Multiple Queries:: Asking a series of similar questions. -* Reading a Password:: Reading a password from the terminal. +* Multiple Queries:: Asking a series of similar questions. +* Reading a Password:: Reading a password from the terminal. * Minibuffer Commands:: Commands used as key bindings in minibuffers. * Minibuffer Contents:: How such commands access the minibuffer text. * Minibuffer Windows:: Operating on the special minibuffer windows. @@ -686,7 +686,7 @@ * Distinguish Interactive:: Making a command distinguish interactive calls. * Command Loop Info:: Variables set by the command loop for you to examine. * Adjusting Point:: Adjustment of point after a command. -* Input Events:: What input looks like when you read it. +* Input Events:: What input looks like when you read it. * Reading Input:: How to read input events from the keyboard or mouse. * Special Events:: Events processed immediately and individually. * Waiting:: Waiting for user input or elapsed time. @@ -720,7 +720,7 @@ * Event Examples:: Examples of the lists for mouse events. * Classifying Events:: Finding the modifier keys in an event symbol. Event types. -* Accessing Mouse:: Functions to extract info from mouse events. +* Accessing Mouse:: Functions to extract info from mouse events. * Accessing Scroll:: Functions to get info from scroll bar events. * Strings of Events:: Special considerations for putting keyboard character events in a string. @@ -870,9 +870,9 @@ * Changing Files:: Renaming files, changing protection, etc. * File Names:: Decomposing and expanding file names. * Contents of Directories:: Getting a list of the files in a directory. -* Create/Delete Dirs:: Creating and Deleting Directories. -* Magic File Names:: Defining "magic" special handling - for certain file names. +* Create/Delete Dirs:: Creating and Deleting Directories. +* Magic File Names:: Defining "magic" special handling + for certain file names. * Format Conversion:: Conversion to and from various file formats. Visiting Files @@ -884,7 +884,7 @@ * Testing Accessibility:: Is a given file readable? Writable? * Kinds of Files:: Is it a directory? A symbolic link? -* Truenames:: Eliminating symbolic links from a file name. +* Truenames:: Eliminating symbolic links from a file name. * File Attributes:: How large is it? Any other names? Etc. * Locating Files:: How to find a file in standard places. @@ -954,8 +954,8 @@ * Buffers and Windows:: Each window displays the contents of a buffer. * Displaying Buffers:: Higher-level functions for displaying a buffer and choosing a window for it. -* Choosing Window:: How to choose a window for displaying a buffer. -* Dedicated Windows:: How to avoid displaying another buffer in +* Choosing Window:: How to choose a window for displaying a buffer. +* Dedicated Windows:: How to avoid displaying another buffer in a specific window. * Window Point:: Each window has its own location of point. * Window Start and End:: Buffer positions indicating which text is @@ -975,37 +975,37 @@ Frames -* Creating Frames:: Creating additional frames. +* Creating Frames:: Creating additional frames. * Multiple Terminals:: Displaying on several different devices. -* Frame Parameters:: Controlling frame size, position, font, etc. +* Frame Parameters:: Controlling frame size, position, font, etc. * Terminal Parameters:: Parameters common for all frames on terminal. * Frame Titles:: Automatic updating of frame titles. -* Deleting Frames:: Frames last until explicitly deleted. -* Finding All Frames:: How to examine all existing frames. -* Frames and Windows:: A frame contains windows; - display of text always works through windows. +* Deleting Frames:: Frames last until explicitly deleted. +* Finding All Frames:: How to examine all existing frames. +* Frames and Windows:: A frame contains windows; + display of text always works through windows. * Minibuffers and Frames:: How a frame finds the minibuffer to use. -* Input Focus:: Specifying the selected frame. +* Input Focus:: Specifying the selected frame. * Visibility of Frames:: Frames may be visible or invisible, or icons. * Raising and Lowering:: Raising a frame makes it hide other windows; - lowering it makes the others hide it. + lowering it makes the others hide it. * Frame Configurations:: Saving the state of all frames. -* Mouse Tracking:: Getting events that say when the mouse moves. -* Mouse Position:: Asking where the mouse is, or moving it. -* Pop-Up Menus:: Displaying a menu for the user to select from. +* Mouse Tracking:: Getting events that say when the mouse moves. +* Mouse Position:: Asking where the mouse is, or moving it. +* Pop-Up Menus:: Displaying a menu for the user to select from. * Dialog Boxes:: Displaying a box to ask yes or no. * Pointer Shape:: Specifying the shape of the mouse pointer. * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. -* Color Names:: Getting the definitions of color names. +* Color Names:: Getting the definitions of color names. * Text Terminal Colors:: Defining colors for text-only terminals. -* Resources:: Getting resource values from the server. +* Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. Frame Parameters * Parameter Access:: How to change a frame's parameters. -* Initial Parameters:: Specifying frame parameters when you make a frame. +* Initial Parameters:: Specifying frame parameters when you make a frame. * Window Frame Parameters:: List of frame parameters for window systems. * Size and Position:: Changing the size and position of a frame. * Geometry:: Parsing geometry specifications. @@ -1064,7 +1064,7 @@ later use. * Undo:: Undoing changes to the text of a buffer. * Maintaining Undo:: How to enable and disable undo information. - How to control how much information is kept. + How to control how much information is kept. * Filling:: Functions for explicit filling. * Margins:: How to specify margins for filling commands. * Adaptive Fill:: Adaptive Fill mode chooses a fill prefix @@ -1090,7 +1090,7 @@ * Kill Functions:: Functions that kill text. * Yanking:: How yanking is done. * Yank Commands:: Commands that access the kill ring. -* Low-Level Kill Ring:: Functions and variables for kill ring access. +* Low-Level Kill Ring:: Functions and variables for kill ring access. * Internals of Kill Ring:: Variables that hold kill ring data. Indentation @@ -1105,9 +1105,9 @@ Text Properties * Examining Properties:: Looking at the properties of one character. -* Changing Properties:: Setting the properties of a range of text. -* Property Search:: Searching for where a property changes value. -* Special Properties:: Particular properties with special meanings. +* Changing Properties:: Setting the properties of a range of text. +* Property Search:: Searching for where a property changes value. +* Special Properties:: Particular properties with special meanings. * Format Properties:: Properties for representing formatting of text. * Sticky Properties:: How inserted text gets properties from neighboring text. @@ -1117,8 +1117,8 @@ do something when you click on them. * Fields:: The @code{field} property defines fields within the buffer. -* Not Intervals:: Why text properties do not use - Lisp-visible text intervals. +* Not Intervals:: Why text properties do not use + Lisp-visible text intervals. Non-@acronym{ASCII} Characters @@ -1161,7 +1161,7 @@ * POSIX Regexps:: Searching POSIX-style for the longest match. * Match Data:: Finding out which part of the text matched, after a string or regexp search. -* Search and Replace:: Commands that loop, searching and replacing. +* Search and Replace:: Commands that loop, searching and replacing. * Standard Regexps:: Useful regexps for finding sentences, pages,... Regular Expressions @@ -1178,9 +1178,9 @@ The Match Data -* Replacing Match:: Replacing a substring that was matched. +* Replacing Match:: Replacing a substring that was matched. * Simple Match Data:: Accessing single items of match data, - such as where a particular subexpression started. + such as where a particular subexpression started. * Entire Match Data:: Accessing the entire match data at once, as a list. * Saving Match Data:: Saving and restoring the match data. @@ -1190,7 +1190,7 @@ * Syntax Descriptors:: How characters are classified. * Syntax Table Functions:: How to create, examine and alter syntax tables. * Syntax Properties:: Overriding syntax with text properties. -* Motion and Syntax:: Moving over characters with certain syntaxes. +* Motion and Syntax:: Moving over characters with certain syntaxes. * Parsing Expressions:: Parsing balanced expressions using the syntax table. * Standard Syntax Tables:: Syntax tables used by various major modes. @@ -1279,10 +1279,10 @@ * Invisible Text:: Hiding part of the buffer text. * Selective Display:: Hiding part of the buffer text (the old way). * Temporary Displays:: Displays that go away automatically. -* Overlays:: Use overlays to highlight parts of the buffer. +* Overlays:: Use overlays to highlight parts of the buffer. * Width:: How wide a character or string is on the screen. * Line Height:: Controlling the height of lines. -* Faces:: A face defines a graphics style +* Faces:: A face defines a graphics style for text characters: font, colors, etc. * Fringes:: Controlling window fringes. * Scroll Bars:: Controlling vertical scroll bars. @@ -1291,9 +1291,9 @@ * Buttons:: Adding clickable buttons to Emacs buffers. * Abstract Display:: Emacs' Widget for Object Collections. * Blinking:: How Emacs shows the matching open parenthesis. -* Usual Display:: The usual conventions for displaying +* Usual Display:: The usual conventions for displaying nonprinting chars. -* Display Tables:: How to specify other conventions. +* Display Tables:: How to specify other conventions. * Beeping:: Audible signal to the user. * Window Systems:: Which window system is being used. @@ -1315,7 +1315,7 @@ * Managing Overlays:: Creating and moving overlays. * Overlay Properties:: How to read and set properties. - What properties do to the screen display. + What properties do to the screen display. * Finding Overlays:: Searching for overlays. Faces @@ -1395,14 +1395,14 @@ * Getting Out:: How exiting works (permanent or temporary). * System Environment:: Distinguish the name and kind of system. * User Identification:: Finding the name and user id of the user. -* Time of Day:: Getting the current time. +* Time of Day:: Getting the current time. * Time Conversion:: Converting a time from numeric form to calendrical data and vice versa. * Time Parsing:: Converting a time from numeric form to text and vice versa. * Processor Run Time:: Getting the run time used by Emacs. * Time Calculations:: Adding, subtracting, comparing times, etc. -* Timers:: Setting a timer to call a function at a +* Timers:: Setting a timer to call a function at a certain time. * Idle Timers:: Setting a timer to call a function when Emacs has been idle for a certain length of time. @@ -1429,8 +1429,8 @@ Terminal Input -* Input Modes:: Options for how input is processed. -* Recording Input:: Saving histories of recent or all input events. +* Input Modes:: Options for how input is processed. +* Recording Input:: Saving histories of recent or all input events. Tips and Conventions @@ -1440,7 +1440,7 @@ * Compilation Tips:: Making compiled code run fast. * Warning Tips:: Turning off compiler warnings. * Documentation Tips:: Writing readable documentation strings. -* Comment Tips:: Conventions for writing comments. +* Comment Tips:: Conventions for writing comments. * Library Headers:: Standard headers for library packages. GNU Emacs Internals diff -r 0b8608a36b55 -r 799b50142743 doc/lispref/windows.texi --- a/doc/lispref/windows.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/lispref/windows.texi Sun Jul 11 22:57:47 2010 +0000 @@ -22,8 +22,8 @@ * Buffers and Windows:: Each window displays the contents of a buffer. * Displaying Buffers:: Higher-level functions for displaying a buffer and choosing a window for it. -* Choosing Window:: How to choose a window for displaying a buffer. -* Dedicated Windows:: How to avoid displaying another buffer in +* Choosing Window:: How to choose a window for displaying a buffer. +* Dedicated Windows:: How to avoid displaying another buffer in a specific window. * Window Point:: Each window has its own location of point. * Window Start and End:: Buffer positions indicating which text is diff -r 0b8608a36b55 -r 799b50142743 doc/misc/ChangeLog --- a/doc/misc/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,8 +1,46 @@ +2010-07-10 Michael Albinus + + * tramp.texi (Inline methods): Remove "kludgy" phrase. + (Filename Syntax): Describe port numbers. + +2010-07-09 Michael Albinus + + * dbus.texi (Top): Introduce Index. Emphasize "nil" whereever + forgotten. + (Type Conversion): Precise conversion of natural numbers. + (Errors and Events): Add "debugging" to concept index. Add variable + `dbus-debug'. + 2010-07-04 Michael Albinus * dbus.texi (Receiving Method Calls): Add optional argument EMITS-SIGNAL to `dbus-register-property'. +2010-06-27 Alex Schroeder + + * nxml-mode.texi (Commands for locating a schema): Fix typo. + +2010-06-24 Glenn Morris + + * ada-mode.texi, auth.texi, autotype.texi, calc.texi, cc-mode.texi: + * dired-x.texi, ebrowse.texi, ede.texi, edt.texi, eieio.texi: + * emacs-mime.texi, epa.texi, erc.texi, eshell.texi, eudc.texi: + * flymake.texi, gnus.texi, info.texi, mairix-el.texi, message.texi: + * newsticker.texi, org.texi, pgg.texi, rcirc.texi, reftex.texi: + * remember.texi, sasl.texi, semantic.texi, ses.texi, smtpmail.texi: + * speedbar.texi, tramp.texi, url.texi, viper.texi, widget.texi: + * woman.texi: Start direntry descriptions in column 32, per Texinfo + convention. Make them end with a period. + +2010-06-23 Glenn Morris + + * autotype.texi, cl.texi, dired-x.texi, ebrowse.texi, ede.texi: + * eieio.texi, epa.texi, faq.texi, flymake.texi, forms.texi: + * gnus-faq.texi, idlwave.texi, mh-e.texi, nxml-mode.texi, org.texi: + * pcl-cvs.texi, pgg.texi, reftex.texi, sasl.texi, sc.texi, + * sem-user.texi, semantic.texi, sieve.texi, smtpmail.texi, + * speedbar.texi, vip.texi, viper.texi, widget.texi: Untabify. + 2010-06-10 Glenn Morris * idlwave.texi (Load-Path Shadows): @@ -6456,10 +6494,6 @@ (INFO_TARGETS): Add ../info/cc-mode. (DVI_TARGETS): Add cc-mode.dvi. -1996-05-25 Karl Heuer - - * Version 19.31 released. - 1995-11-24 Richard Stallman * Version 19.30 released. diff -r 0b8608a36b55 -r 799b50142743 doc/misc/ada-mode.texi --- a/doc/misc/ada-mode.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/ada-mode.texi Sun Jul 11 22:57:47 2010 +0000 @@ -3,8 +3,8 @@ @settitle Ada Mode @copying -Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, -2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +2007, 2008, 2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -22,7 +22,7 @@ @dircategory Emacs @direntry -* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code. +* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/auth.texi --- a/doc/misc/auth.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/auth.texi Sun Jul 11 22:57:47 2010 +0000 @@ -31,7 +31,7 @@ @dircategory Emacs @direntry -* Auth-source: (auth). The Emacs auth-source library. +* Auth-source: (auth). The Emacs auth-source library. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/autotype.texi --- a/doc/misc/autotype.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/autotype.texi Sun Jul 11 22:57:47 2010 +0000 @@ -10,8 +10,8 @@ @c @cindex autotypist @copying -Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004, -2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004, 2005, +2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -29,8 +29,8 @@ @dircategory Emacs @direntry -* Autotype: (autotype). Convenient features for text that you enter frequently - in Emacs. +* Autotype: (autotype). Convenient features for text that you + enter frequently in Emacs. @end direntry @titlepage @@ -92,7 +92,7 @@ after point. * Autoinserting:: Filling up empty files as soon as you visit them. * Copyrights:: Inserting and updating copyrights. -* Executables:: Turning interpreter scripts into executables. +* Executables:: Turning interpreter scripts into executables. * Timestamps:: Updating dates and times in modified files. * QuickURL:: Inserting URLs based on text at point. * Tempo:: Flexible template insertion. @@ -201,7 +201,7 @@ @example (c-mode-abbrev-table) -"if" 0 "" c-if +"if" 0 "" c-if @end example @noindent diff -r 0b8608a36b55 -r 799b50142743 doc/misc/calc.texi --- a/doc/misc/calc.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/calc.texi Sun Jul 11 22:57:47 2010 +0000 @@ -111,7 +111,7 @@ @dircategory Emacs @direntry -* Calc: (calc). Advanced desk calculator and mathematical tool. +* Calc: (calc). Advanced desk calculator and mathematical tool. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/cc-mode.texi --- a/doc/misc/cc-mode.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/cc-mode.texi Sun Jul 11 22:57:47 2010 +0000 @@ -180,8 +180,8 @@ @comment here is by request from the FSF folks. @dircategory Emacs @direntry -* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, - Java, Pike, AWK, and CORBA IDL code. +* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, + Java, Pike, AWK, and CORBA IDL code. @end direntry @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff -r 0b8608a36b55 -r 799b50142743 doc/misc/cl.texi --- a/doc/misc/cl.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/cl.texi Sun Jul 11 22:57:47 2010 +0000 @@ -24,7 +24,7 @@ @dircategory Emacs @direntry -* CL: (cl). Partial Common Lisp support for Emacs Lisp. +* CL: (cl). Partial Common Lisp support for Emacs Lisp. @end direntry @finalout diff -r 0b8608a36b55 -r 799b50142743 doc/misc/dbus.texi --- a/doc/misc/dbus.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/dbus.texi Sun Jul 11 22:57:47 2010 +0000 @@ -5,6 +5,9 @@ @c @setchapternewpage odd @c %**end of header +@syncodeindex vr cp +@syncodeindex fn cp + @copying Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc. @@ -51,6 +54,8 @@ * Receiving Method Calls:: Offering own methods. * Signals:: Sending and receiving signals. * Errors and Events:: Errors and events. +* Index:: Index including concepts, functions, variables. + * GNU Free Documentation License:: The license for this documentation. @end menu @@ -418,7 +423,8 @@ @result{} "/org/freedesktop/SystemToolsBackends/UsersConfig" @end lisp -If @var{object} has no @var{attribute}, the function returns nil. +If @var{object} has no @var{attribute}, the function returns +@code{nil}. @end defun @@ -669,7 +675,7 @@ @defun dbus-get-property bus service path interface property This function returns the value of @var{property} of @var{interface}. It will be checked at @var{bus}, @var{service}, @var{path}. The -result can be any valid D-Bus value, or nil if there is no +result can be any valid D-Bus value, or @code{nil} if there is no @var{property}. Example: @lisp @@ -863,12 +869,12 @@ applied, when the corresponding D-Bus message is created: @example -@multitable {@code{t} and @code{nil}} {@expansion{}} {DBUS_TYPE_BOOLEAN} +@multitable {negative integer} {@expansion{}} {DBUS_TYPE_BOOLEAN} @item Lisp type @tab @tab D-Bus type @item @item @code{t} and @code{nil} @tab @expansion{} @tab DBUS_TYPE_BOOLEAN -@item number @tab @expansion{} @tab DBUS_TYPE_UINT32 -@item integer @tab @expansion{} @tab DBUS_TYPE_INT32 +@item natural number @tab @expansion{} @tab DBUS_TYPE_UINT32 +@item negative integer @tab @expansion{} @tab DBUS_TYPE_INT32 @item float @tab @expansion{} @tab DBUS_TYPE_DOUBLE @item string @tab @expansion{} @tab DBUS_TYPE_STRING @item list @tab @expansion{} @tab DBUS_TYPE_ARRAY @@ -889,19 +895,19 @@ Example: @lisp -(dbus-call-method @dots{} @var{NUMBER} @var{STRING}) +(dbus-call-method @dots{} @var{NAT-NUMBER} @var{STRING}) @end lisp is equivalent to @lisp -(dbus-call-method @dots{} :uint32 @var{NUMBER} :string @var{STRING}) +(dbus-call-method @dots{} :uint32 @var{NAT-NUMBER} :string @var{STRING}) @end lisp but different to @lisp -(dbus-call-method @dots{} :int32 @var{NUMBER} :signature @var{STRING}) +(dbus-call-method @dots{} :int32 @var{NAT-NUMBER} :signature @var{STRING}) @end lisp The value for a byte D-Bus type can be any integer in the range 0 @@ -994,17 +1000,17 @@ objects. @example -@multitable {DBUS_TYPE_OBJECT_PATH} {@expansion{}} {@code{t} or @code{nil}} +@multitable {DBUS_TYPE_OBJECT_PATH} {@expansion{}} {natural number or float} @item D-Bus type @tab @tab Lisp type @item @item DBUS_TYPE_BOOLEAN @tab @expansion{} @tab @code{t} or @code{nil} -@item DBUS_TYPE_BYTE @tab @expansion{} @tab number -@item DBUS_TYPE_UINT16 @tab @expansion{} @tab number -@item DBUS_TYPE_INT16 @tab @expansion{} @tab number -@item DBUS_TYPE_UINT32 @tab @expansion{} @tab number or float -@item DBUS_TYPE_INT32 @tab @expansion{} @tab number or float -@item DBUS_TYPE_UINT64 @tab @expansion{} @tab number or float -@item DBUS_TYPE_INT64 @tab @expansion{} @tab number or float +@item DBUS_TYPE_BYTE @tab @expansion{} @tab natural number +@item DBUS_TYPE_UINT16 @tab @expansion{} @tab natural number +@item DBUS_TYPE_INT16 @tab @expansion{} @tab integer +@item DBUS_TYPE_UINT32 @tab @expansion{} @tab natural number or float +@item DBUS_TYPE_INT32 @tab @expansion{} @tab integer or float +@item DBUS_TYPE_UINT64 @tab @expansion{} @tab natural number or float +@item DBUS_TYPE_INT64 @tab @expansion{} @tab integer or float @item DBUS_TYPE_DOUBLE @tab @expansion{} @tab float @item DBUS_TYPE_STRING @tab @expansion{} @tab string @item DBUS_TYPE_OBJECT_PATH @tab @expansion{} @tab string @@ -1030,7 +1036,7 @@ (@var{BOOL} stands here for either @code{nil} or @code{t}): @lisp -(@var{NUMBER} ((@var{STRING} @var{BOOL} @var{BOOL}) (@var{STRING} @var{BOOL} @var{BOOL}) @dots{})) +(@var{INTEGER} ((@var{STRING} @var{BOOL} @var{BOOL}) (@var{STRING} @var{BOOL} @var{BOOL}) @dots{})) @end lisp @defun dbus-byte-array-to-string byte-array @@ -1388,8 +1394,9 @@ The interface @samp{org.freedesktop.DBus.Properties} is added to @var{path}, including a default handler for the @samp{Get}, @samp{GetAll} and @samp{Set} methods of this interface. When -@var{emits-signal} is non-nil, the signal @samp{PropertiesChanged} is -sent when the property is changed by @code{dbus-set-property}. +@var{emits-signal} is non-@code{nil}, the signal +@samp{PropertiesChanged} is sent when the property is changed by +@code{dbus-set-property}. @noindent Example: @@ -1574,9 +1581,16 @@ @node Errors and Events @chapter Errors and events. +@cindex debugging @cindex errors @cindex events +The internal actions can be traced by running in a debug mode. + +@defvar dbus-debug +If this variable is non-@code{nil}, D-Bus specific debug messages are raised. +@end defvar + Input parameters of @code{dbus-call-method}, @code{dbus-call-method-non-blocking}, @code{dbus-call-method-asynchronously}, and @@ -1591,8 +1605,7 @@ @defspec dbus-ignore-errors forms@dots{} This executes @var{forms} exactly like a @code{progn}, except that @code{dbus-error} errors are ignored during the @var{forms}. These -errors can be made visible when variable @code{dbus-debug} is set to -@code{t}. +errors can be made visible when @code{dbus-debug} is set to @code{t}. @end defspec Incoming D-Bus messages are handled as Emacs events, see @pxref{Misc @@ -1640,12 +1653,12 @@ @defun dbus-event-message-type event Returns the message type of the corresponding D-Bus message. The -result is a number. +result is a natural number. @end defun @defun dbus-event-serial-number event Returns the serial number of the corresponding D-Bus message. -The result is a number. +The result is a natural number. @end defun @defun dbus-event-service-name event @@ -1695,6 +1708,12 @@ whether a given D-Bus error is related to them. +@node Index +@unnumbered Index + +@printindex cp + + @node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi diff -r 0b8608a36b55 -r 799b50142743 doc/misc/dired-x.texi --- a/doc/misc/dired-x.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/dired-x.texi Sun Jul 11 22:57:47 2010 +0000 @@ -3,7 +3,7 @@ @c dired-x.texi --- Sebastian Kremer's Extra DIRED hacked up for GNU Emacs @c @c Author: Sebastian Kremer -@c Lawrence R. Dodd +@c Lawrence R. Dodd @c [Dodd's address no longer valid.] @comment %**start of header (This is for running Texinfo on a region.) @@ -14,7 +14,7 @@ @iftex @finalout @end iftex -@c @setchapternewpage odd % For book style double sided manual. +@c @setchapternewpage odd % For book style double sided manual. @comment %**end of header (This is for running Texinfo on a region.) @copying @@ -37,7 +37,7 @@ @dircategory Emacs @direntry -* Dired-X: (dired-x). Dired Extra Features. +* Dired-X: (dired-x). Dired Extra Features. @end direntry @c @smallbook diff -r 0b8608a36b55 -r 799b50142743 doc/misc/ebrowse.texi --- a/doc/misc/ebrowse.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/ebrowse.texi Sun Jul 11 22:57:47 2010 +0000 @@ -29,7 +29,7 @@ @dircategory Emacs @direntry -* Ebrowse: (ebrowse). A C++ class browser for Emacs. +* Ebrowse: (ebrowse). A C++ class browser for Emacs. @end direntry @titlepage @@ -55,14 +55,14 @@ @end ifnottex @menu -* Overview:: What is it and how does it work? -* Generating browser files:: How to process C++ source files -* Loading a Tree:: How to start browsing -* Tree Buffers:: Traversing class hierarchies -* Member Buffers:: Looking at member information -* Tags-like Functions:: Finding members from source files +* Overview:: What is it and how does it work? +* Generating browser files:: How to process C++ source files +* Loading a Tree:: How to start browsing +* Tree Buffers:: Traversing class hierarchies +* Member Buffers:: Looking at member information +* Tags-like Functions:: Finding members from source files * GNU Free Documentation License:: The license for this documentation. -* Concept Index:: An entry for each concept defined +* Concept Index:: An entry for each concept defined @end menu @@ -215,10 +215,10 @@ available command line options.@refill @menu -* Input files:: Specifying which files to parse -* Output file:: Changing the output file name -* Structs and unions:: Omitting @code{struct}s and @code{union}s -* Matching:: Setting regular expression lengths +* Input files:: Specifying which files to parse +* Output file:: Changing the output file name +* Structs and unions:: Omitting @code{struct}s and @code{union}s +* Matching:: Setting regular expression lengths * Verbosity:: Getting feedback for lengthy operations @end menu @@ -454,17 +454,17 @@ buffers. @menu -* Source Display:: Viewing and finding a class declaration -* Member Display:: Showing members, switching to member buffers -* Go to Class:: Finding a class -* Quitting:: Discarding and burying the tree buffer -* File Name Display:: Showing file names in the tree -* Expanding and Collapsing:: Expanding and collapsing branches -* Tree Indentation:: Changing the tree indentation -* Killing Classes:: Removing class from the tree -* Saving a Tree:: Saving a modified tree -* Statistics:: Displaying class tree statistics -* Marking Classes:: Marking and unmarking classes +* Source Display:: Viewing and finding a class declaration +* Member Display:: Showing members, switching to member buffers +* Go to Class:: Finding a class +* Quitting:: Discarding and burying the tree buffer +* File Name Display:: Showing file names in the tree +* Expanding and Collapsing:: Expanding and collapsing branches +* Tree Indentation:: Changing the tree indentation +* Killing Classes:: Removing class from the tree +* Saving a Tree:: Saving a modified tree +* Statistics:: Displaying class tree statistics +* Marking Classes:: Marking and unmarking classes @end menu @@ -625,17 +625,15 @@ Here is an example of a tree buffer with file names displayed. @example -| Collection (unknown) -| IndexedCollection (indexedcltn.h) -| Array (array.h) -| FixedArray (fixedarray.h) -| Set (set.h) -| Dictionary (dict.h) +| Collection (unknown) +| IndexedCollection (indexedcltn.h) +| Array (array.h) +| FixedArray (fixedarray.h) +| Set (set.h) +| Dictionary (dict.h) @end example - - @node Expanding and Collapsing, Tree Indentation, File Name Display, Tree Buffers @comment node-name, next, previous, up @section Expanding and Collapsing a Tree @@ -818,20 +816,20 @@ buffer: members, classes, and the buffer itself. @menu -* Switching Member Lists:: Choosing which members to display -* Finding/Viewing:: Modifying source code -* Inherited Members:: Display of Inherited Members -* Searching Members:: Finding members in member buffer -* Switching to Tree:: Going back to the tree buffer -* Filters:: Selective member display -* Attributes:: Display of @code{virtual} etc. -* Long and Short Display:: Comprehensive and verbose display -* Regexp Display:: Showing matching regular expressions -* Switching Classes:: Displaying another class -* Killing/Burying:: Getting rid of the member buffer -* Column Width:: Display style -* Redisplay:: Redrawing the member list -* Getting Help:: How to get help for key bindings +* Switching Member Lists:: Choosing which members to display +* Finding/Viewing:: Modifying source code +* Inherited Members:: Display of Inherited Members +* Searching Members:: Finding members in member buffer +* Switching to Tree:: Going back to the tree buffer +* Filters:: Selective member display +* Attributes:: Display of @code{virtual} etc. +* Long and Short Display:: Comprehensive and verbose display +* Regexp Display:: Showing matching regular expressions +* Switching Classes:: Displaying another class +* Killing/Burying:: Getting rid of the member buffer +* Column Width:: Display style +* Redisplay:: Redrawing the member list +* Getting Help:: How to get help for key bindings @end menu @@ -1234,7 +1232,7 @@ @comment ************************************************************** -@comment *** TAGS LIKE FUNCTIONS +@comment *** TAGS LIKE FUNCTIONS @comment ************************************************************** @node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top @@ -1245,14 +1243,14 @@ Emacs Tags facility, but better suited to the needs of C++ programmers. @menu -* Finding and Viewing:: Going to a member declaration/definition -* Position Stack:: Moving to previous locations -* Search & Replace:: Searching and replacing over class tree files -* Members in Files:: Listing all members in a given file -* Apropos:: Listing members matching a regular expression -* Symbol Completion:: Completing names while editing +* Finding and Viewing:: Going to a member declaration/definition +* Position Stack:: Moving to previous locations +* Search & Replace:: Searching and replacing over class tree files +* Members in Files:: Listing all members in a given file +* Apropos:: Listing members matching a regular expression +* Symbol Completion:: Completing names while editing * Member Buffer Display:: Quickly display a member buffer for some - identifier + identifier @end menu diff -r 0b8608a36b55 -r 799b50142743 doc/misc/ede.texi --- a/doc/misc/ede.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/ede.texi Sun Jul 11 22:57:47 2010 +0000 @@ -5,8 +5,8 @@ @copying This file describes EDE, the Emacs Development Environment. -Copyright @copyright{} 1998, 1999, 2000, 2001, 2004, 2005, 2008, 2009, 2010 -Free Software Foundation, Inc. +Copyright @copyright{} 1998, 1999, 2000, 2001, 2004, 2005, 2008, 2009, +2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -24,7 +24,7 @@ @dircategory Emacs @direntry -* ede: (ede). Project management for Emacs +* ede: (ede). Project management for Emacs. @end direntry @titlepage @@ -404,8 +404,8 @@ @menu * ede-cpp-root:: This project marks the root of a C/C++ code project. * ede-simple subclassing:: Create your own simple project. -* ede-emacs:: A project for working with Emacs. -* ede-linux:: A project for working with Linux kernels. +* ede-emacs:: A project for working with Emacs. +* ede-linux:: A project for working with Linux kernels. * Custom Locate:: Customizing how to locate files in a simple project @end menu @@ -525,14 +525,14 @@ ) (add-to-list 'ede-project-class-files - (ede-project-autoload "cpp-root" - :name "CPP ROOT" - :file 'ede-cpp-root - :proj-file 'MY-FILE-FOR-DIR + (ede-project-autoload "cpp-root" + :name "CPP ROOT" + :file 'ede-cpp-root + :proj-file 'MY-FILE-FOR-DIR :proj-root 'MY-ROOT-FCN - :load-type 'MY-LOAD - :class-sym 'ede-cpp-root) - t) + :load-type 'MY-LOAD + :class-sym 'ede-cpp-root) + t) @end example This example only creates an auto-loader, and does not create a new kind @@ -751,9 +751,9 @@ @example (defvar ede-source-emacs (ede-sourcecode "ede-emacs-source" - :name "Emacs Lisp" - :sourcepattern "\\.el$" - :garbagepattern '("*.elc")) + :name "Emacs Lisp" + :sourcepattern "\\.el$" + :garbagepattern '("*.elc")) "Emacs Lisp source code definition.") @end example diff -r 0b8608a36b55 -r 799b50142743 doc/misc/edt.texi --- a/doc/misc/edt.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/edt.texi Sun Jul 11 22:57:47 2010 +0000 @@ -25,7 +25,7 @@ @dircategory Emacs @direntry -* EDT: (edt). An Emacs emulation of the EDT editor. +* EDT: (edt). An Emacs emulation of the EDT editor. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/eieio.texi --- a/doc/misc/eieio.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/eieio.texi Sun Jul 11 22:57:47 2010 +0000 @@ -29,7 +29,7 @@ @dircategory Emacs @direntry -* eieio: (eieio). Objects for Emacs +* eieio: (eieio). Objects for Emacs. @end direntry @titlepage @@ -295,8 +295,8 @@ @menu * Inheritance:: How to specify parents classes -* Slot Options:: How to specify features of a slot. -* Class Options:: How to specify features for this class. +* Slot Options:: How to specify features of a slot. +* Class Options:: How to specify features for this class. @end menu @node Inheritance diff -r 0b8608a36b55 -r 799b50142743 doc/misc/emacs-mime.texi --- a/doc/misc/emacs-mime.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/emacs-mime.texi Sun Jul 11 22:57:47 2010 +0000 @@ -31,7 +31,7 @@ @dircategory Emacs @direntry -* Emacs MIME: (emacs-mime). Emacs MIME de/composition library. +* Emacs MIME: (emacs-mime). Emacs MIME de/composition library. @end direntry @iftex @finalout diff -r 0b8608a36b55 -r 799b50142743 doc/misc/epa.texi --- a/doc/misc/epa.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/epa.texi Sun Jul 11 22:57:47 2010 +0000 @@ -33,7 +33,7 @@ @dircategory Emacs @direntry -* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard. +* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard. @end direntry @titlepage @@ -142,15 +142,15 @@ @example u Daiki Ueno u A5B6B2D4B15813FE 1024bits DSA - Created: 2001-10-09 - Expires: 2007-09-04 - Capabilities: sign certify - Fingerprint: 8003 7CD0 0F1A 9400 03CA 50AA A5B6 B2D4 B158 13FE + Created: 2001-10-09 + Expires: 2007-09-04 + Capabilities: sign certify + Fingerprint: 8003 7CD0 0F1A 9400 03CA 50AA A5B6 B2D4 B158 13FE u 4447461B2A9BEA2D 2048bits ELGAMAL_E - Created: 2001-10-09 - Expires: 2007-09-04 - Capabilities: encrypt - Fingerprint: 9003 D76B 73B7 4A8A E588 10AF 4447 461B 2A9B EA2D + Created: 2001-10-09 + Expires: 2007-09-04 + Capabilities: encrypt + Fingerprint: 9003 D76B 73B7 4A8A E588 10AF 4447 461B 2A9B EA2D @end example @noindent diff -r 0b8608a36b55 -r 799b50142743 doc/misc/erc.texi --- a/doc/misc/erc.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/erc.texi Sun Jul 11 22:57:47 2010 +0000 @@ -8,7 +8,8 @@ @copying This manual is for ERC version 5.3. -Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010 +Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -29,7 +30,7 @@ @dircategory Emacs @direntry -* ERC: (erc). Powerful, modular, and extensible IRC client for Emacs. +* ERC: (erc). Powerful and extensible IRC client for Emacs. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/eshell.texi --- a/doc/misc/eshell.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/eshell.texi Sun Jul 11 22:57:47 2010 +0000 @@ -8,8 +8,8 @@ @copying This manual is for Eshell, the Emacs shell. -Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, -2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +2007, 2008, 2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -27,7 +27,7 @@ @dircategory Emacs @direntry -* Eshell: (eshell). A command shell implemented in Emacs Lisp. +* Eshell: (eshell). A command shell implemented in Emacs Lisp. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/eudc.texi --- a/doc/misc/eudc.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/eudc.texi Sun Jul 11 22:57:47 2010 +0000 @@ -31,7 +31,7 @@ @dircategory Emacs @direntry -* EUDC: (eudc). An Emacs client for directory servers (LDAP, PH). +* EUDC: (eudc). Emacs client for directory servers (LDAP, PH). @end direntry @footnotestyle end diff -r 0b8608a36b55 -r 799b50142743 doc/misc/faq.texi --- a/doc/misc/faq.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/faq.texi Sun Jul 11 22:57:47 2010 +0000 @@ -41,7 +41,7 @@ @dircategory Emacs @direntry -* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. +* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. @end direntry @c The @titlepage stuff only appears in the printed version diff -r 0b8608a36b55 -r 799b50142743 doc/misc/flymake.texi --- a/doc/misc/flymake.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/flymake.texi Sun Jul 11 22:57:47 2010 +0000 @@ -11,8 +11,8 @@ This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), which is a universal on-the-fly syntax checker for GNU Emacs. -Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -Foundation, Inc. +Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 +Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -30,7 +30,7 @@ @dircategory Emacs @direntry -* Flymake: (flymake). A universal on-the-fly syntax checker. +* Flymake: (flymake). A universal on-the-fly syntax checker. @end direntry @titlepage @@ -409,7 +409,7 @@ (defun flymake-perl-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) - (local-file (file-relative-name + (local-file (file-relative-name temp-file (file-name-directory buffer-file-name)))) (list "perl" (list "-wc " local-file)))) diff -r 0b8608a36b55 -r 799b50142743 doc/misc/forms.texi --- a/doc/misc/forms.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/forms.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,4 +1,4 @@ -\input texinfo @c -*-texinfo-*- +\input texinfo @c -*-texinfo-*- @c documentation for forms-mode @c Written by Johan Vromans, and edited by Richard Stallman @@ -37,8 +37,8 @@ @dircategory Emacs @direntry -* Forms: (forms). Emacs package for editing data bases - by filling in forms. +* Forms: (forms). Emacs package for editing data bases + by filling in forms. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/gnus-faq.texi --- a/doc/misc/gnus-faq.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/gnus-faq.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,8 +1,8 @@ @c \input texinfo @c -*-texinfo-*- @c Uncomment 1st line before texing this file alone. @c %**start of header -@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -@c 2008, 2009, 2010 Free Software Foundation, Inc. +@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +@c 2009, 2010 Free Software Foundation, Inc. @c @c Do not modify this file, it was generated from gnus-faq.xml, available from @c . @@ -550,7 +550,7 @@ @example (add-to-list 'gnus-secondary-select-methods '(nnspool "" - (nnspool-directory "/usr/local/myspoolddir"))) + (nnspool-directory "/usr/local/myspoolddir"))) @end example @noindent @@ -635,8 +635,8 @@ @example (eval-after-load "mail-source" '(add-to-list 'mail-sources - '(directory :path "/path/to/procmail-dir/" - :suffix ".prcml"))) + '(directory :path "/path/to/procmail-dir/" + :suffix ".prcml"))) @end example @noindent @@ -691,10 +691,10 @@ @example (add-to-list 'gnus-secondary-select-methods - '(nnimap "Give the baby a name" - (nnimap-address "imap.yourProvider.net") - (nnimap-port 143) - (nnimap-list-pattern "archive.*"))) + '(nnimap "Give the baby a name" + (nnimap-address "imap.yourProvider.net") + (nnimap-port 143) + (nnimap-list-pattern "archive.*"))) @end example @noindent @@ -874,7 +874,7 @@ @example (setq gnus-visible-headers '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To" - "^User-Agent" "^X-Newsreader" "^X-Mailer")) + "^User-Agent" "^X-Newsreader" "^X-Mailer")) @end example @noindent @@ -1099,18 +1099,18 @@ (gnus-add-configuration '(article (horizontal 1.0 - (vertical 25 - (group 1.0)) - (vertical 1.0 - (summary 0.25 point) - (article 1.0))))) + (vertical 25 + (group 1.0)) + (vertical 1.0 + (summary 0.25 point) + (article 1.0))))) (gnus-add-configuration '(summary (horizontal 1.0 - (vertical 25 - (group 1.0)) - (vertical 1.0 - (summary 1.0 point))))) + (vertical 25 + (group 1.0)) + (vertical 1.0 + (summary 1.0 point))))) @end example @noindent @@ -1480,7 +1480,7 @@ alias syntax: @example -alias al "Al " +alias al "Al " @end example @noindent @@ -1644,9 +1644,9 @@ @example (setq gnus-message-archive-group - '((if (message-news-p) - "nnml:Send-News" - "nnml:Send-Mail"))) + '((if (message-news-p) + "nnml:Send-News" + "nnml:Send-Mail"))) @end example @noindent diff -r 0b8608a36b55 -r 799b50142743 doc/misc/gnus.texi --- a/doc/misc/gnus.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/gnus.texi Sun Jul 11 22:57:47 2010 +0000 @@ -322,7 +322,7 @@ @dircategory Emacs @direntry -* Gnus: (gnus). The newsreader Gnus. +* Gnus: (gnus). The newsreader Gnus. @end direntry @iftex @finalout diff -r 0b8608a36b55 -r 799b50142743 doc/misc/idlwave.texi --- a/doc/misc/idlwave.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/idlwave.texi Sun Jul 11 22:57:47 2010 +0000 @@ -41,7 +41,7 @@ @dircategory Emacs @direntry -* IDLWAVE: (idlwave). Major mode and shell for IDL files. +* IDLWAVE: (idlwave). Major mode and shell for IDL files. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/info.texi --- a/doc/misc/info.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/info.texi Sun Jul 11 22:57:47 2010 +0000 @@ -40,7 +40,7 @@ @dircategory Texinfo documentation system @direntry -* Info: (info). How to use the documentation browsing system. +* Info: (info). How to use the documentation browsing system. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/mairix-el.texi --- a/doc/misc/mairix-el.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/mairix-el.texi Sun Jul 11 22:57:47 2010 +0000 @@ -24,7 +24,7 @@ @dircategory Emacs @direntry -* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. +* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/message.texi --- a/doc/misc/message.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/message.texi Sun Jul 11 22:57:47 2010 +0000 @@ -27,7 +27,8 @@ @dircategory Emacs @direntry -* Message: (message). Mail and news composition mode that goes with Gnus. +* Message: (message). Mail and news composition mode that + goes with Gnus. @end direntry @iftex @finalout diff -r 0b8608a36b55 -r 799b50142743 doc/misc/mh-e.texi --- a/doc/misc/mh-e.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/mh-e.texi Sun Jul 11 22:57:47 2010 +0000 @@ -24,8 +24,8 @@ This is version @value{VERSION}@value{EDITION} of @cite{The MH-E Manual}, last updated @value{UPDATED}. -Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010 -Free Software Foundation, Inc. +Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008, + 2009, 2010 Free Software Foundation, Inc. @c This dual license has been agreed upon by the FSF. @@ -58,7 +58,7 @@ @c Info Directory Entry @dircategory Emacs @direntry -* MH-E: (mh-e). Emacs interface to the MH mail system. +* MH-E: (mh-e). Emacs interface to the MH mail system. @end direntry @c Title Page @@ -7767,7 +7767,7 @@ done by adding the following to your @file{crontab}: @smallexample -0 * * * * sa-learn --rebuild > /dev/null 2>&1 +0 * * * * sa-learn --rebuild > /dev/null 2>&1 @end smallexample @subheading Bogofilter diff -r 0b8608a36b55 -r 799b50142743 doc/misc/newsticker.texi --- a/doc/misc/newsticker.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/newsticker.texi Sun Jul 11 22:57:47 2010 +0000 @@ -32,7 +32,7 @@ @dircategory Emacs @direntry -* Newsticker: (newsticker). A Newsticker for Emacs. +* Newsticker: (newsticker). A Newsticker for Emacs. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/nxml-mode.texi --- a/doc/misc/nxml-mode.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/nxml-mode.texi Sun Jul 11 22:57:47 2010 +0000 @@ -187,7 +187,7 @@ @example Possible completions are: -xml:lang xmlns +xml:lang xmlns @end example @noindent @@ -520,7 +520,7 @@ If you want to use a schema that has not yet been added to the schema locating files, you can use the command @kbd{C-c C-s C-f} -to manually select the file contaiing the schema for the document in +to manually select the file containing the schema for the document in current buffer. Emacs will read the file-name of the schema from the minibuffer. After reading the file-name, Emacs will ask whether you wish to add a rule to a schema locating file that persistently diff -r 0b8608a36b55 -r 799b50142743 doc/misc/org.texi --- a/doc/misc/org.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/org.texi Sun Jul 11 22:57:47 2010 +0000 @@ -68,7 +68,7 @@ @dircategory Emacs @direntry -* Org Mode: (org). Outline-based notes management and organizer +* Org Mode: (org). Outline-based notes management and organizer. @end direntry @titlepage @@ -4702,7 +4702,7 @@ @example :COLUMNS: %25ITEM %9Approved(Approved?)@{X@} %Owner %11Status \@footnote{Please note that the COLUMNS definition must be on a single line---it is wrapped here only because of formatting constraints.} - %10Time_Estimate@{:@} %CLOCKSUM + %10Time_Estimate@{:@} %CLOCKSUM :Owner_ALL: Tammy Mark Karl Lisa Don :Status_ALL: "In progress" "Not started yet" "Finished" "" :Approved_ALL: "[ ]" "[X]" @@ -7482,12 +7482,12 @@ @group (defun org-my-auto-exclude-function (tag) (and (cond - ((string= tag "Net") - (/= 0 (call-process "/sbin/ping" nil nil nil - "-c1" "-q" "-t1" "mail.gnu.org"))) - ((or (string= tag "Errand") (string= tag "Call")) - (let ((hour (nth 2 (decode-time)))) - (or (< hour 8) (> hour 21))))) + ((string= tag "Net") + (/= 0 (call-process "/sbin/ping" nil nil nil + "-c1" "-q" "-t1" "mail.gnu.org"))) + ((or (string= tag "Errand") (string= tag "Call")) + (let ((hour (nth 2 (decode-time)))) + (or (< hour 8) (> hour 21))))) (concat "-" tag))) (setq org-agenda-auto-exclude-function 'org-my-auto-exclude-function) @@ -11340,9 +11340,9 @@ @lisp (add-hook 'org-mode-hook - (lambda () - (org-set-local 'yas/trigger-key [tab]) - (define-key yas/keymap [tab] 'yas/next-field-group))) + (lambda () + (org-set-local 'yas/trigger-key [tab]) + (define-key yas/keymap [tab] 'yas/next-field-group))) @end lisp @item @file{windmove.el} by Hovav Shacham diff -r 0b8608a36b55 -r 799b50142743 doc/misc/pcl-cvs.texi --- a/doc/misc/pcl-cvs.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/pcl-cvs.texi Sun Jul 11 22:57:47 2010 +0000 @@ -26,7 +26,7 @@ @dircategory Emacs @direntry -* PCL-CVS: (pcl-cvs). Emacs front-end to CVS. +* PCL-CVS: (pcl-cvs). Emacs front-end to CVS. @end direntry @c The titlepage section does not appear in the Info file. diff -r 0b8608a36b55 -r 799b50142743 doc/misc/pgg.texi --- a/doc/misc/pgg.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/pgg.texi Sun Jul 11 22:57:47 2010 +0000 @@ -8,8 +8,8 @@ This file describes PGG @value{VERSION}, an Emacs interface to various PGP implementations. -Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -Free Software Foundation, Inc. +Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -27,7 +27,7 @@ @dircategory Emacs @direntry -* PGG: (pgg). Emacs interface to various PGP implementations. +* PGG: (pgg). Emacs interface to various PGP implementations. @end direntry @titlepage @@ -133,7 +133,7 @@ * User Commands:: * Selecting an implementation:: * Caching passphrase:: -* Default user identity:: +* Default user identity:: @end menu @node User Commands @@ -376,7 +376,7 @@ (defun pgg-make-scheme-gpg () (or pgg-scheme-gpg-instance (setq pgg-scheme-gpg-instance - (luna-make-entity 'pgg-scheme-gpg)))) + (luna-make-entity 'pgg-scheme-gpg)))) @end lisp The name of the function must follow the diff -r 0b8608a36b55 -r 799b50142743 doc/misc/rcirc.texi --- a/doc/misc/rcirc.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/rcirc.texi Sun Jul 11 22:57:47 2010 +0000 @@ -5,7 +5,8 @@ @c %**end of header @copying -Copyright @copyright{} 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +Copyright @copyright{} 2006, 2007, 2008, 2009, 2010 +Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -23,7 +24,7 @@ @dircategory Emacs @direntry -* Rcirc: (rcirc). Internet Relay Chat (IRC) client. +* Rcirc: (rcirc). Internet Relay Chat (IRC) client. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/reftex.texi --- a/doc/misc/reftex.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/reftex.texi Sun Jul 11 22:57:47 2010 +0000 @@ -46,7 +46,8 @@ @dircategory Emacs @direntry -* RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. +* RefTeX: (reftex). Emacs support for LaTeX cross-references + and citations. @end direntry @finalout @@ -3281,7 +3282,7 @@ (TeX-add-style-hook "multind" (lambda () (and (fboundp 'reftex-add-index-macros) - (reftex-add-index-macros '(multind))))) + (reftex-add-index-macros '(multind))))) @end lisp If you have your own package @file{myindex} which defines the diff -r 0b8608a36b55 -r 799b50142743 doc/misc/remember.texi --- a/doc/misc/remember.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/remember.texi Sun Jul 11 22:57:47 2010 +0000 @@ -27,7 +27,7 @@ @dircategory Emacs @direntry -* Remember: (remember). Simple information manager for Emacs +* Remember: (remember). Simple information manager for Emacs. @end direntry @titlepage diff -r 0b8608a36b55 -r 799b50142743 doc/misc/sasl.texi --- a/doc/misc/sasl.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/sasl.texi Sun Jul 11 22:57:47 2010 +0000 @@ -32,7 +32,7 @@ @dircategory Emacs @direntry -* SASL: (sasl). The Emacs SASL library. +* SASL: (sasl). The Emacs SASL library. @end direntry @@ -148,7 +148,7 @@ @example (defconst sasl-anonymous-steps - '(identity ;no initial response + '(identity ;no initial response sasl-anonymous-response)) (put 'sasl-anonymous 'sasl-mechanism @@ -232,7 +232,7 @@ @example (process-send-string process - (if (sasl-step-data step) ;initial response + (if (sasl-step-data step) ;initial response (format "AUTH %s %s\r\n" name (base64-encode-string (sasl-step-data step) t)) (format "AUTH %s\r\n" name))) @end example diff -r 0b8608a36b55 -r 799b50142743 doc/misc/sc.texi --- a/doc/misc/sc.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/sc.texi Sun Jul 11 22:57:47 2010 +0000 @@ -7,7 +7,7 @@ @finalout @end iftex -@c @setchapternewpage odd % For book style double sided manual. +@c @setchapternewpage odd % For book style double sided manual. @comment %**end of header (This is for running Texinfo on a region.) @copying @@ -35,8 +35,8 @@ @dircategory Emacs @direntry -* SC: (sc). Supercite lets you cite parts of messages you're - replying to, in flexible ways. +* SC: (sc). Supercite lets you cite parts of messages + you're replying to, in flexible ways. @end direntry @titlepage @@ -1795,23 +1795,23 @@ a mail message to the Supercite mailing list: @example - Martin> Each news/mail-reader should provide a form of - Martin> mail-yank-original that + Martin> Each news/mail-reader should provide a form of + Martin> mail-yank-original that - Martin> 1: inserts the original message incl. header into the - Martin> reply buffer; no indentation/prefixing is done, the header - Martin> tends to be a "full blown" version rather than to be - Martin> stripped down. + Martin> 1: inserts the original message incl. header into the + Martin> reply buffer; no indentation/prefixing is done, the header + Martin> tends to be a "full blown" version rather than to be + Martin> stripped down. - Martin> 2: `point' is at the start of the header, `mark' at the - Martin> end of the message body. + Martin> 2: `point' is at the start of the header, `mark' at the + Martin> end of the message body. - Martin> 3: (run-hooks 'mail-yank-hooks) + Martin> 3: (run-hooks 'mail-yank-hooks) - Martin> [Supercite] should be run as such a hook and merely - Martin> rewrite the message. This way it isn't anymore - Martin> [Supercite]'s job to gather the original from obscure - Martin> sources. [@dots{}] + Martin> [Supercite] should be run as such a hook and merely + Martin> rewrite the message. This way it isn't anymore + Martin> [Supercite]'s job to gather the original from obscure + Martin> sources. [@dots{}] @end example @vindex mail-citation-hook diff -r 0b8608a36b55 -r 799b50142743 doc/misc/sem-user.texi --- a/doc/misc/sem-user.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/sem-user.texi Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,7 @@ @c This file is included by semantic.texi -@c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010 -@c Free Software Foundation, Inc. +@c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, +@c 2010 Free Software Foundation, Inc. @c Permission is granted to copy, distribute and/or modify this @c document under the terms of the GNU Free Documentation License, @@ -328,8 +328,8 @@ @example (setq-mode-local c-mode - semanticdb-find-default-throttle - '(project unloaded system recursive)) + semanticdb-find-default-throttle + '(project unloaded system recursive)) @end example @defvar semanticdb-find-default-throttle diff -r 0b8608a36b55 -r 799b50142743 doc/misc/semantic.texi --- a/doc/misc/semantic.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/semantic.texi Sun Jul 11 22:57:47 2010 +0000 @@ -43,7 +43,7 @@ @dircategory Emacs @direntry -* Semantic: (semantic). Source code parser library and utilities. +* Semantic: (semantic). Source code parser library and utilities. @end direntry @titlepage @@ -224,8 +224,8 @@ to learn more about how @semantic{} works. @menu -* Parser code :: Code used for the parsers -* Tag handling :: Code used for manipulating tags +* Parser code :: Code used for the parsers +* Tag handling :: Code used for manipulating tags * Semanticdb Internals :: Code used in the semantic database * Analyzer Internals :: Code used in the code analyzer * Tools :: Code used in user tools diff -r 0b8608a36b55 -r 799b50142743 doc/misc/ses.texi --- a/doc/misc/ses.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/ses.texi Sun Jul 11 22:57:47 2010 +0000 @@ -11,8 +11,8 @@ @copying This file documents SES: the Simple Emacs Spreadsheet. -Copyright @copyright{} 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -Free Software Foundation, Inc. +Copyright @copyright{} 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -30,7 +30,7 @@ @dircategory Emacs @direntry -* SES: (ses). Simple Emacs Spreadsheet +* SES: (ses). Simple Emacs Spreadsheet. @end direntry @finalout diff -r 0b8608a36b55 -r 799b50142743 doc/misc/sieve.texi --- a/doc/misc/sieve.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/sieve.texi Sun Jul 11 22:57:47 2010 +0000 @@ -8,8 +8,8 @@ @copying This file documents the Emacs Sieve package, for server-side mail filtering. -Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -Free Software Foundation, Inc. +Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -227,7 +227,7 @@ require "fileinto"; if address "sender" "owner-w3-beta@@xemacs.org" @{ - fileinto "INBOX.w3-beta"; + fileinto "INBOX.w3-beta"; @} @end example @@ -238,7 +238,7 @@ @example if header :contains "Delivered-To" "auc-tex@@sunsite.dk" @{ - fileinto "INBOX.auc-tex"; + fileinto "INBOX.auc-tex"; @} @end example @@ -249,7 +249,7 @@ @example if address ["to", "cc"] "kerberos@@mit.edu" @{ - fileinto "INBOX.kerberos"; + fileinto "INBOX.kerberos"; @} @end example diff -r 0b8608a36b55 -r 799b50142743 doc/misc/smtpmail.texi --- a/doc/misc/smtpmail.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/smtpmail.texi Sun Jul 11 22:57:47 2010 +0000 @@ -22,7 +22,7 @@ @dircategory Emacs @direntry -* SMTP: (smtpmail). Emacs library for sending mail via SMTP. +* SMTP: (smtpmail). Emacs library for sending mail via SMTP. @end direntry @titlepage @@ -44,17 +44,17 @@ @end ifnottex @menu -* How Mail Works:: Brief introduction to mail concepts. +* How Mail Works:: Brief introduction to mail concepts. * Emacs Speaks SMTP:: How to use the SMTP library in Emacs. -* Authentication:: Authenticating yourself to the server. -* Queued delivery:: Sending mail without an internet connection. -* Server workarounds:: Mail servers with special requirements. -* Debugging:: Tracking down problems. +* Authentication:: Authenticating yourself to the server. +* Queued delivery:: Sending mail without an internet connection. +* Server workarounds:: Mail servers with special requirements. +* Debugging:: Tracking down problems. * GNU Free Documentation License:: The license for this documentation. Indices -* Index:: Index over variables and functions. +* Index:: Index over variables and functions. @end menu @node How Mail Works @@ -355,15 +355,15 @@ set this unless you have get an error like: @example - Sending failed; SMTP protocol error + Sending failed; SMTP protocol error @end example when sending mail, and the debug buffer (@pxref{Debugging})) contains an error such as: @example - RCPT TO: @var{someone} - 501 @var{someone}: recipient address must contain a domain + RCPT TO: @var{someone} + 501 @var{someone}: recipient address must contain a domain @end example @end table diff -r 0b8608a36b55 -r 799b50142743 doc/misc/speedbar.texi --- a/doc/misc/speedbar.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/speedbar.texi Sun Jul 11 22:57:47 2010 +0000 @@ -23,7 +23,7 @@ @dircategory Emacs @direntry -* Speedbar: (speedbar). File/Tag summarizing utility. +* Speedbar: (speedbar). File/Tag summarizing utility. @end direntry @titlepage @@ -1131,7 +1131,7 @@ @example (add-to-list 'speedbar-dynamic-tags-function-list - '(my-fetch-dynamic-tags . my-insert-tag-list)) + '(my-fetch-dynamic-tags . my-insert-tag-list)) @end example If your parser is only good for a few types of files, make sure that it diff -r 0b8608a36b55 -r 799b50142743 doc/misc/tramp.texi Binary file doc/misc/tramp.texi has changed diff -r 0b8608a36b55 -r 799b50142743 doc/misc/url.texi --- a/doc/misc/url.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/url.texi Sun Jul 11 22:57:47 2010 +0000 @@ -15,7 +15,7 @@ @dircategory World Wide Web @dircategory Emacs @direntry -* URL: (url). URL loading package. +* URL: (url). URL loading package. @end direntry @copying diff -r 0b8608a36b55 -r 799b50142743 doc/misc/vip.texi --- a/doc/misc/vip.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/vip.texi Sun Jul 11 22:57:47 2010 +0000 @@ -3,8 +3,8 @@ @settitle VIP @copying -Copyright @copyright{} 1987, 2001, 2002, 2003, 2004, -2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +Copyright @copyright{} 1987, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -38,7 +38,7 @@ @dircategory Emacs @direntry -* VIP: (vip). An older VI-emulation for Emacs. +* VIP: (vip). An older VI-emulation for Emacs. @end direntry @ifnottex @@ -65,10 +65,10 @@ @end ifnottex @menu -* Survey:: A survey of VIP. -* Vi Commands:: Details of Vi commands. -* Ex Commands:: Details of Ex commands. -* Customization:: How to customize VIP. +* Survey:: A survey of VIP. +* Vi Commands:: Details of Vi commands. +* Ex Commands:: Details of Ex commands. +* Customization:: How to customize VIP. * GNU Free Documentation License:: The license for this documentation. @end menu @@ -99,10 +99,10 @@ found in Vi and on how to use VIP under GNU Emacs. @menu -* Basic Concepts:: Basic concepts in Emacs. -* Loading VIP:: How to load VIP automatically. -* Modes in VIP:: VIP has three modes, which are orthogonal to modes - in Emacs. +* Basic Concepts:: Basic concepts in Emacs. +* Loading VIP:: How to load VIP automatically. +* Modes in VIP:: VIP has three modes, which are orthogonal to modes + in Emacs. * Differences from Vi:: Differences of VIP from Vi is explained. @end menu @@ -253,10 +253,10 @@ @end ifinfo @menu -* Emacs Mode:: This is the mode you should know better. -* Vi Mode:: Vi commands are executed in this mode. -* Insert Mode:: You can enter text, and also can do editing if you - know enough Emacs commands. +* Emacs Mode:: This is the mode you should know better. +* Vi Mode:: Vi commands are executed in this mode. +* Insert Mode:: You can enter text, and also can do editing if you + know enough Emacs commands. @end menu @node Emacs Mode, Vi Mode, Modes in VIP, Modes in VIP @@ -306,23 +306,23 @@ The major differences from Vi are explained below. @menu -* Undoing:: You can undo more in VIP. -* Changing:: Commands for changing the text. -* Searching:: Search commands. -* z Command:: You can now use zH, zM and zL as well as z- etc. -* Counts:: Some Vi commands which do not accept a count now - accept one. -* Marking:: You can now mark the current point, beginning of - the buffer etc. -* Region Commands:: You can now give a region as an argument for delete - commands etc. -* New Commands:: Some new commands not available in Vi are added. -* New Bindings:: Bindings of some keys are changed for the - convenience of editing under Emacs. -* Window Commands:: Commands for moving among windows etc. -* Buffer Commands:: Commands for selecting buffers etc. -* File Commands:: Commands for visiting files etc. -* Misc Commands:: Other useful commands. +* Undoing:: You can undo more in VIP. +* Changing:: Commands for changing the text. +* Searching:: Search commands. +* z Command:: You can now use zH, zM and zL as well as z- etc. +* Counts:: Some Vi commands which do not accept a count now + accept one. +* Marking:: You can now mark the current point, beginning of + the buffer etc. +* Region Commands:: You can now give a region as an argument for delete + commands etc. +* New Commands:: Some new commands not available in Vi are added. +* New Bindings:: Bindings of some keys are changed for the + convenience of editing under Emacs. +* Window Commands:: Commands for moving among windows etc. +* Buffer Commands:: Commands for selecting buffers etc. +* File Commands:: Commands for visiting files etc. +* Misc Commands:: Other useful commands. @end menu @node Undoing, Changing, Differences from Vi, Differences from Vi @@ -693,17 +693,17 @@ commands described in this chapter are to be used in vi mode. @menu -* Numeric Arguments:: Many commands accept numeric arguments -* Important Keys:: Some very important keys. -* Buffers and Windows:: Commands for handling buffers and windows. -* Files:: Commands for handling files. -* Viewing the Buffer:: How you can view the current buffer. -* Mark Commands:: Marking positions in a buffer. -* Motion Commands:: Commands for moving point. -* Searching and Replacing:: Commands for searching and replacing. -* Modifying Commands:: Commands for modifying the buffer. -* Other Vi Commands:: Miscellaneous Commands. -* Commands in Insert Mode:: Commands for entering insert mode. +* Numeric Arguments:: Many commands accept numeric arguments +* Important Keys:: Some very important keys. +* Buffers and Windows:: Commands for handling buffers and windows. +* Files:: Commands for handling files. +* Viewing the Buffer:: How you can view the current buffer. +* Mark Commands:: Marking positions in a buffer. +* Motion Commands:: Commands for moving point. +* Searching and Replacing:: Commands for searching and replacing. +* Modifying Commands:: Commands for modifying the buffer. +* Other Vi Commands:: Miscellaneous Commands. +* Commands in Insert Mode:: Commands for entering insert mode. @end menu @node Numeric Arguments, Important Keys, Vi Commands, Vi Commands @@ -1265,7 +1265,7 @@ @var{newstring}. If the mode is regular expression, @var{string} is treated as a regular expression and every string matching the regular expression is replaced with @var{newstring} (@code{vip-replace-string}). -@item Q @var{string} RET @var{newstring} +@item Q @var{string} RET @var{newstring} @kindex 121 @kbd{Q} (@code{vip-query-replace}) Same as @kbd{R} except that you will be asked form confirmation before each replacement @@ -1311,10 +1311,10 @@ command. @menu -* Delete Commands:: Commands for deleting text. -* Yank Commands:: Commands for yanking text in Vi's sense. -* Put Back Commands:: Commands for putting back deleted/yanked text. -* Change Commands:: Commands for changing text. +* Delete Commands:: Commands for deleting text. +* Yank Commands:: Commands for yanking text in Vi's sense. +* Put Back Commands:: Commands for putting back deleted/yanked text. +* Change Commands:: Commands for changing text. * Repeating and Undoing Modifications:: @end menu @node Delete Commands, Yank Commands, Modifying Commands, Modifying Commands @@ -1713,7 +1713,7 @@ character @samp{|}. @menu -* Ex Command Reference:: Explain all the Ex commands available in VIP. +* Ex Command Reference:: Explain all the Ex commands available in VIP. @end menu @node Ex Command Reference, Customization, Ex Commands, Ex Commands @section Ex Command Reference @@ -1869,8 +1869,8 @@ customizing VIP. @menu -* Customizing Constants:: How to change values of constants. -* Customizing Key Bindings:: How to change key bindings. +* Customizing Constants:: How to change values of constants. +* Customizing Key Bindings:: How to change key bindings. @end menu @node Customizing Constants, Customizing Key Bindings, Customization, Customization diff -r 0b8608a36b55 -r 799b50142743 doc/misc/viper.texi --- a/doc/misc/viper.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/viper.texi Sun Jul 11 22:57:47 2010 +0000 @@ -26,9 +26,9 @@ @dircategory Emacs @direntry -* VIPER: (viper). The newest Emacs VI-emulation mode. - (also, A VI Plan for Emacs Rescue - or the VI PERil.) +* VIPER: (viper). The newest Emacs VI-emulation mode. + (also, A VI Plan for Emacs Rescue + or the VI PERil.) @end direntry @finalout @@ -3004,14 +3004,14 @@ found on the Vi archives. This reference has been adapted for Viper.@refill @menu -* Groundwork:: Textual Conventions and Viper basics -* Text Handling:: Moving, Editing, Undoing. -* Display:: Scrolling. -* File and Buffer Handling:: Editing, Writing and Quitting. -* Mapping:: Mapping Keys, Keyboard Macros -* Shell Commands:: Accessing Shell Commands, Processing Text -* Options:: Ex options, the @kbd{:set} commands -* Emacs Related Commands:: Meta Keys, Windows +* Groundwork:: Textual Conventions and Viper basics +* Text Handling:: Moving, Editing, Undoing. +* Display:: Scrolling. +* File and Buffer Handling:: Editing, Writing and Quitting. +* Mapping:: Mapping Keys, Keyboard Macros +* Shell Commands:: Accessing Shell Commands, Processing Text +* Options:: Ex options, the @kbd{:set} commands +* Emacs Related Commands:: Meta Keys, Windows * Mouse-bound Commands:: Search and insertion of text @end menu @@ -3230,15 +3230,15 @@ @section Text Handling @menu -* Move Commands:: Moving, Searching -* Marking:: Textmarkers in Viper and the Emacs Mark. -* Appending Text:: Text insertion, Shifting, Putting -* Editing in Insert State:: Autoindent, Quoting etc. -* Deleting Text:: Deleting -* Changing Text:: Changing, Replacement, Joining -* Search and Replace:: Searches, Query Replace, Pattern Commands -* Yanking:: Yanking, Viewing Registers -* Undoing:: Multiple Undo, Backups +* Move Commands:: Moving, Searching +* Marking:: Textmarkers in Viper and the Emacs Mark. +* Appending Text:: Text insertion, Shifting, Putting +* Editing in Insert State:: Autoindent, Quoting etc. +* Deleting Text:: Deleting +* Changing Text:: Changing, Replacement, Joining +* Search and Replace:: Searches, Query Replace, Pattern Commands +* Yanking:: Yanking, Viewing Registers +* Undoing:: Multiple Undo, Backups @end menu @node Move Commands,Marking,,Text Handling diff -r 0b8608a36b55 -r 799b50142743 doc/misc/widget.texi --- a/doc/misc/widget.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/widget.texi Sun Jul 11 22:57:47 2010 +0000 @@ -8,8 +8,8 @@ @c %**end of header @copying -Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, -2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -27,8 +27,8 @@ @dircategory Emacs @direntry -* Widget: (widget). The "widget" package used by the Emacs Customization - facility. +* Widget: (widget). The "widget" package used by the Emacs + Customization facility. @end direntry @contents @@ -338,71 +338,71 @@ (remove-overlays) (widget-insert "Here is some documentation.\n\n") (widget-create 'editable-field - :size 13 - :format "Name: %v " ; Text after the field! - "My Name") + :size 13 + :format "Name: %v " ; Text after the field! + "My Name") (widget-create 'menu-choice - :tag "Choose" - :value "This" - :help-echo "Choose me, please!" - :notify (lambda (widget &rest ignore) - (message "%s is a good choice!" - (widget-value widget))) - '(item :tag "This option" :value "This") - '(choice-item "That option") - '(editable-field :menu-tag "No option" "Thus option")) + :tag "Choose" + :value "This" + :help-echo "Choose me, please!" + :notify (lambda (widget &rest ignore) + (message "%s is a good choice!" + (widget-value widget))) + '(item :tag "This option" :value "This") + '(choice-item "That option") + '(editable-field :menu-tag "No option" "Thus option")) (widget-create 'editable-field - :format "Address: %v" - "Some Place\nIn some City\nSome country.") + :format "Address: %v" + "Some Place\nIn some City\nSome country.") (widget-insert "\nSee also ") (widget-create 'link - :notify (lambda (&rest ignore) - (widget-value-set widget-example-repeat - '("En" "To" "Tre")) - (widget-setup)) - "other work") + :notify (lambda (&rest ignore) + (widget-value-set widget-example-repeat + '("En" "To" "Tre")) + (widget-setup)) + "other work") (widget-insert " for more information.\n\nNumbers: count to three below\n") (setq widget-example-repeat - (widget-create 'editable-list - :entry-format "%i %d %v" - :notify (lambda (widget &rest ignore) - (let ((old (widget-get widget - ':example-length)) - (new (length (widget-value widget)))) - (unless (eq old new) - (widget-put widget ':example-length new) - (message "You can count to %d." new)))) - :value '("One" "Eh, two?" "Five!") - '(editable-field :value "three"))) + (widget-create 'editable-list + :entry-format "%i %d %v" + :notify (lambda (widget &rest ignore) + (let ((old (widget-get widget + ':example-length)) + (new (length (widget-value widget)))) + (unless (eq old new) + (widget-put widget ':example-length new) + (message "You can count to %d." new)))) + :value '("One" "Eh, two?" "Five!") + '(editable-field :value "three"))) (widget-insert "\n\nSelect multiple:\n\n") (widget-create 'checkbox t) (widget-insert " This\n") (widget-create 'checkbox nil) (widget-insert " That\n") (widget-create 'checkbox - :notify (lambda (&rest ignore) (message "Tickle")) - t) + :notify (lambda (&rest ignore) (message "Tickle")) + t) (widget-insert " Thus\n\nSelect one:\n\n") (widget-create 'radio-button-choice - :value "One" - :notify (lambda (widget &rest ignore) - (message "You selected %s" - (widget-value widget))) - '(item "One") '(item "Another One.") '(item "A Final One.")) + :value "One" + :notify (lambda (widget &rest ignore) + (message "You selected %s" + (widget-value widget))) + '(item "One") '(item "Another One.") '(item "A Final One.")) (widget-insert "\n") (widget-create 'push-button - :notify (lambda (&rest ignore) - (if (= (length (widget-value widget-example-repeat)) - 3) - (message "Congratulation!") - (error "Three was the count!"))) - "Apply Form") + :notify (lambda (&rest ignore) + (if (= (length (widget-value widget-example-repeat)) + 3) + (message "Congratulation!") + (error "Three was the count!"))) + "Apply Form") (widget-insert " ") (widget-create 'push-button - :notify (lambda (&rest ignore) - (widget-example)) - "Reset Form") + :notify (lambda (&rest ignore) + (widget-example)) + "Reset Form") (widget-insert "\n") (use-local-map widget-keymap) (widget-setup)) diff -r 0b8608a36b55 -r 799b50142743 doc/misc/woman.texi --- a/doc/misc/woman.texi Fri Jul 09 01:50:09 2010 +0000 +++ b/doc/misc/woman.texi Sun Jul 11 22:57:47 2010 +0000 @@ -4,7 +4,7 @@ @settitle WoMan: Browse Unix Manual Pages ``W.O. (without) Man'' @c FIXME @c Manual last updated: -@set UPDATED Time-stamp: +@set UPDATED Time-stamp: @c Software version: @set VERSION 0.54 (beta) @afourpaper @@ -37,7 +37,7 @@ @dircategory Emacs @direntry -* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". +* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". @end direntry @finalout diff -r 0b8608a36b55 -r 799b50142743 etc/ChangeLog --- a/etc/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/etc/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,7 @@ +2010-06-19 Ken Brown + + * PROBLEMS: Update Cygwin GCC information. (Bug#6458) + 2010-06-12 Glenn Morris * tutorials/TUTORIAL.bg, tutorials/TUTORIAL.es: Fix typos. diff -r 0b8608a36b55 -r 799b50142743 etc/PROBLEMS --- a/etc/PROBLEMS Fri Jul 09 01:50:09 2010 +0000 +++ b/etc/PROBLEMS Sun Jul 11 22:57:47 2010 +0000 @@ -2339,17 +2339,10 @@ (using the location of the 32-bit X libraries on your system). -*** Building the Cygwin port for MS-Windows can fail with some GCC versions - -Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is -reported to either fail or cause Emacs to segfault at run time. In -addition, the Cygwin GCC 3.4.4-2 has problems with generating debug -info. Cygwin users are advised not to use these versions of GCC for -compiling Emacs. GCC versions 4.0.3, 4.0.4, 4.1.1, and 4.1.2 -reportedly build a working Cygwin binary of Emacs, so we recommend -these GCC versions. Note that these versions of GCC, 4.0.3, 4.0.4, -4.1.1, and 4.1.2, are currently the _only_ versions known to succeed -in building Emacs (as of v22.1). +*** Building Emacs for Cygwin can fail with GCC 3 + +As of Emacs 22.1, there have been stability problems with Cygwin +builds of Emacs using GCC 3. Cygwin users are advised to use GCC 4. *** Building the native MS-Windows port fails due to unresolved externals diff -r 0b8608a36b55 -r 799b50142743 info/dir --- a/info/dir Fri Jul 09 01:50:09 2010 +0000 +++ b/info/dir Sun Jul 11 22:57:47 2010 +0000 @@ -19,75 +19,78 @@ * Menu: -* Info: (info). How to use the documentation browsing system. +* Info: (info). How to use the documentation browsing system. Emacs -* Emacs: (emacs). The extensible self-documenting text editor. -* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. +* Emacs: (emacs). The extensible self-documenting text editor. +* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. GNU Emacs Lisp -* Emacs Lisp Intro: (eintr). - A simple introduction to Emacs Lisp programming. -* Elisp: (elisp). The Emacs Lisp Reference Manual. +* Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming. +* Elisp: (elisp). The Emacs Lisp Reference Manual. Emacs editing modes -* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code. -* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, - Java, Pike, AWK, and CORBA IDL code. -* IDLWAVE: (idlwave). Major mode and shell for IDL files. +* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code. +* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, + Java, Pike, AWK, and CORBA IDL code. +* IDLWAVE: (idlwave). Major mode and shell for IDL files. * nXML Mode: (nxml-mode). XML editing mode with RELAX NG support. -* Org Mode: (org). Outline-based notes management and organizer +* Org Mode: (org). Outline-based notes management and organizer Emacs network features -* EUDC: (eudc). An Emacs client for directory servers (LDAP, PH). -* Gnus: (gnus). The newsreader Gnus. -* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. -* MH-E: (mh-e). Emacs interface to the MH mail system. -* Message: (message). Mail and news composition mode that goes with Gnus. -* Newsticker: (newsticker). A Newsticker for Emacs. -* PGG: (pgg). Emacs interface to various PGP implementations. -* ERC: (erc). Powerful, modular, and extensible IRC client for Emacs. -* Rcirc: (rcirc). Internet Relay Chat (IRC) client. -* SASL: (sasl). The Emacs SASL library. -* SC: (sc). Supercite lets you cite parts of messages you're - replying to, in flexible ways. +* EUDC: (eudc). Emacs client for directory servers (LDAP, PH). +* Gnus: (gnus). The newsreader Gnus. +* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. +* MH-E: (mh-e). Emacs interface to the MH mail system. +* Message: (message). Mail and news composition mode that + goes with Gnus. +* Newsticker: (newsticker). A Newsticker for Emacs. +* PGG: (pgg). Emacs interface to various PGP implementations. +* ERC: (erc). Powerful and extensible IRC client for Emacs. +* Rcirc: (rcirc). Internet Relay Chat (IRC) client. +* SASL: (sasl). The Emacs SASL library. +* SC: (sc). Supercite lets you cite parts of messages + you're replying to, in flexible ways. * Sieve: (sieve). Managing Sieve scripts in Emacs. -* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol - GNU Emacs remote file access via rsh and rcp. +* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol + GNU Emacs remote file access via rsh and rcp. Emacs misc features -* Autotype: (autotype). Convenient features for text that you enter frequently - in Emacs. -* Calc: (calc). Advanced desk calculator and mathematical tool. -* Dired-X: (dired-x). Dired Extra Features. -* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard. -* Ebrowse: (ebrowse). A C++ class browser for Emacs. -* EDE: (ede). The Emacs Development Environment. -* Ediff: (ediff). A visual interface for comparing and merging programs. -* EDT: (edt). An Emacs emulation of the EDT editor. -* EIEIO: (eieio). An object system for Emacs Lisp. -* Eshell: (eshell). A command shell implemented in Emacs Lisp. -* Flymake: (flymake). A universal on-the-fly syntax checker. -* Forms: (forms). Emacs package for editing data bases - by filling in forms. -* PCL-CVS: (pcl-cvs). Emacs front-end to CVS. -* RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. -* Remember: (remember). Simple information manager for Emacs. -* Semantic: (semantic). Source code parsing utilities for Emacs. -* SES: (ses). Simple Emacs Spreadsheet -* Speedbar: (speedbar). File/Tag summarizing utility. -* VIP: (vip). An older VI-emulation for Emacs. -* VIPER: (viper). The newest Emacs VI-emulation mode. - (also, A VI Plan for Emacs Rescue - or the VI PERil.) -* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". +* Autotype: (autotype). Convenient features for text that you enter + frequently in Emacs. +* Calc: (calc). Advanced desk calculator and mathematical tool. +* Dired-X: (dired-x). Dired Extra Features. +* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard. +* Ebrowse: (ebrowse). A C++ class browser for Emacs. +* EDE: (ede). The Emacs Development Environment. +* Ediff: (ediff). A visual interface for comparing and + merging programs. +* EDT: (edt). An Emacs emulation of the EDT editor. +* EIEIO: (eieio). An object system for Emacs Lisp. +* Eshell: (eshell). A command shell implemented in Emacs Lisp. +* Flymake: (flymake). A universal on-the-fly syntax checker. +* Forms: (forms). Emacs package for editing data bases + by filling in forms. +* PCL-CVS: (pcl-cvs). Emacs front-end to CVS. +* RefTeX: (reftex). Emacs support for LaTeX cross-references + and citations. +* Remember: (remember). Simple information manager for Emacs. +* Semantic: (semantic). Source code parsing utilities for Emacs. +* SES: (ses). Simple Emacs Spreadsheet +* Speedbar: (speedbar). File/Tag summarizing utility. +* VIP: (vip). An older VI-emulation for Emacs. +* VIPER: (viper). The newest Emacs VI-emulation mode. + (also, A VI Plan for Emacs Rescue + or the VI PERil.) +* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". Emacs lisp libraries -* Auth-source: (auth). A single configuration for multiple applications. -* CL: (cl). Partial Common Lisp support for Emacs Lisp. +* Auth-source: (auth). A single configuration for multiple + applications. +* CL: (cl). Partial Common Lisp support for Emacs Lisp. * D-Bus: (dbus). Using D-Bus in Emacs. -* Emacs MIME: (emacs-mime). Emacs MIME de/composition library. -* URL: (url). URL loading package. -* Widget: (widget). The "widget" package used by the Emacs Customization - facility. -* SMTP: (smtpmail). Emacs library for sending mail via SMTP. +* Emacs MIME: (emacs-mime). Emacs MIME de/composition library. +* URL: (url). URL loading package. +* Widget: (widget). The "widget" package used by the Emacs + Customization facility. +* SMTP: (smtpmail). Emacs library for sending mail via SMTP. diff -r 0b8608a36b55 -r 799b50142743 lib-src/ChangeLog --- a/lib-src/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/lib-src/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,23 @@ +2010-07-11 Andreas Schwab + + * emacsclient.c (set_local_socket): Use strchr, strrchr instead of + index, rindex. + * movemail.c (mail_spool_name, popmail): Likewise. + * pop.c (pop_list): Likewise. + +2010-07-11 Eli Zaretskii + + * makefile.w32-in (obj): Add menu.o, bidi.o, w32uniscrobe.o, + and unexw32.o. (Bug#6603) + +2010-07-10 Eli Zaretskii + + * Makefile.in ($(DESTDIR)${archlibdir}): Convert spaces to TABs. + +2010-07-09 Andreas Schwab + + * make-docfile.c (write_c_args): Restructure scanning loop. + 2010-07-09 Dan Nicolaescu * make-docfile.c (write_c_args): Deal with type names in DEFUN diff -r 0b8608a36b55 -r 799b50142743 lib-src/Makefile.in --- a/lib-src/Makefile.in Fri Jul 09 01:50:09 2010 +0000 +++ b/lib-src/Makefile.in Sun Jul 11 22:57:47 2010 +0000 @@ -245,7 +245,7 @@ chown ${gameuser} $(DESTDIR)${gamedir}; \ chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \ fi - if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \ + if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \ != `(cd ${srcdir} && /bin/pwd)` ]; then \ for file in ${SCRIPTS}; do \ $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \ diff -r 0b8608a36b55 -r 799b50142743 lib-src/emacsclient.c --- a/lib-src/emacsclient.c Fri Jul 09 01:50:09 2010 +0000 +++ b/lib-src/emacsclient.c Sun Jul 11 22:57:47 2010 +0000 @@ -1234,8 +1234,10 @@ char *server_name = "server"; char *tmpdir; - if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\')) - { /* socket_name is a file name component. */ + if (socket_name && !strchr (socket_name, '/') + && !strchr (socket_name, '\\')) + { + /* socket_name is a file name component. */ server_name = socket_name; socket_name = NULL; default_sock = 1; /* Try both UIDs. */ diff -r 0b8608a36b55 -r 799b50142743 lib-src/make-docfile.c --- a/lib-src/make-docfile.c Fri Jul 09 01:50:09 2010 +0000 +++ b/lib-src/make-docfile.c Sun Jul 11 22:57:47 2010 +0000 @@ -440,8 +440,8 @@ { register char *p; int in_ident = 0; - int just_spaced = 0; - int need_space = 1; + char *ident_start; + int ident_length; fprintf (out, "(fn"); @@ -450,25 +450,9 @@ for (p = buf; *p; p++) { - char c; - int ident_start = 0; - - /* FIXME: this must be made a bit more robust*/ - - /* Skip "register Lisp_Object", this can be removed when we get - rid of "register" for DEFUNs. */ - if (strncmp ("register Lisp_Object", p, 20) == 0) - p += 20; + char c = *p; - if (strncmp ("Lisp_Object", p, 11) == 0) - p += 11; - - if (strncmp ("void", p, 4) == 0) - p += 4; - - c = *p; - - /* Notice when we start printing a new identifier. */ + /* Notice when a new identifier starts. */ if ((('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z') || ('0' <= c && c <= '9') @@ -478,55 +462,50 @@ if (!in_ident) { in_ident = 1; - ident_start = 1; - - if (need_space) - putc (' ', out); - - if (minargs == 0 && maxargs > 0) - fprintf (out, "&optional "); - just_spaced = 1; - - minargs--; - maxargs--; + ident_start = p; } else - in_ident = 0; + { + in_ident = 0; + ident_length = p - ident_start; + } } - /* Print the C argument list as it would appear in lisp: - print underscores as hyphens, and print commas and newlines - as spaces. Collapse adjacent spaces into one. */ - if (c == '_') - c = '-'; - else if (c == ',' || c == '\n') - c = ' '; - - /* In C code, `default' is a reserved word, so we spell it - `defalt'; unmangle that here. */ - if (ident_start - && strncmp (p, "defalt", 6) == 0 - && ! (('A' <= p[6] && p[6] <= 'Z') - || ('a' <= p[6] && p[6] <= 'z') - || ('0' <= p[6] && p[6] <= '9') - || p[6] == '_')) + /* Found the end of an argument, write out the last seen + identifier. */ + if (c == ',' || c == ')') { - fprintf (out, "DEFAULT"); - p += 5; - in_ident = 0; - just_spaced = 0; + if (strncmp (ident_start, "void", ident_length) == 0) + continue; + + putc (' ', out); + + if (minargs == 0 && maxargs > 0) + fprintf (out, "&optional "); + + minargs--; + maxargs--; + + /* In C code, `default' is a reserved word, so we spell it + `defalt'; unmangle that here. */ + if (strncmp (ident_start, "defalt", ident_length) == 0) + fprintf (out, "DEFAULT"); + else + while (ident_length-- > 0) + { + c = *ident_start++; + if (c >= 'a' && c <= 'z') + /* Upcase the letter. */ + c += 'A' - 'a'; + else if (c == '_') + /* Print underscore as hyphen. */ + c = '-'; + putc (c, out); + } } - else if (c != ' ' || !just_spaced) - { - if (c >= 'a' && c <= 'z') - /* Upcase the letter. */ - c += 'A' - 'a'; - putc (c, out); - } + } - just_spaced = c == ' '; - need_space = 0; - } + putc (')', out); } /* Read through a c file. If a .o file is named, diff -r 0b8608a36b55 -r 799b50142743 lib-src/makefile.w32-in --- a/lib-src/makefile.w32-in Fri Jul 09 01:50:09 2010 +0000 +++ b/lib-src/makefile.w32-in Sun Jul 11 22:57:47 2010 +0000 @@ -143,11 +143,11 @@ # obj = dosfns.o msdos.o \ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ - fontset.o \ + fontset.o menu.o \ w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \ - font.o w32font.o \ - dispnew.o frame.o scroll.o xdisp.o window.o \ + font.o w32font.o w32uniscribe.o \ + dispnew.o frame.o scroll.o xdisp.o window.o bidi.o \ charset.o coding.o category.o ccl.o character.o chartab.o \ cm.o term.o terminal.o xfaces.o \ emacs.o keyboard.o macros.o keymap.o sysdep.o \ @@ -157,7 +157,7 @@ alloc.o data.o doc.o editfns.o callint.o \ eval.o floatfns.o fns.o print.o lread.o \ syntax.o bytecode.o \ - process.o callproc.o \ + process.o callproc.o unexw32.o \ region-cache.o sound.o atimer.o \ doprnt.o strftime.o intervals.o textprop.o composite.o md5.o diff -r 0b8608a36b55 -r 799b50142743 lib-src/movemail.c --- a/lib-src/movemail.c Fri Jul 09 01:50:09 2010 +0000 +++ b/lib-src/movemail.c Sun Jul 11 22:57:47 2010 +0000 @@ -146,12 +146,6 @@ #ifndef HAVE_STRERROR char *strerror (int); #endif -#ifdef HAVE_INDEX -extern char *index (const char *, int); -#endif -#ifdef HAVE_RINDEX -extern char *rindex (const char *, int); -#endif static void fatal (char *s1, char *s2, char *s3); static void error (char *s1, char *s2, char *s3); @@ -564,7 +558,7 @@ char *indir, *fname; int status; - if (! (fname = rindex (inname, '/'))) + if (! (fname = strrchr (inname, '/'))) return NULL; fname++; @@ -714,7 +708,7 @@ char *user, *hostname; user = mailbox; - if ((hostname = index(mailbox, ':'))) + if ((hostname = strchr (mailbox, ':'))) *hostname++ = '\0'; server = pop_open (hostname, user, password, POP_NO_GETPASS); diff -r 0b8608a36b55 -r 799b50142743 lib-src/pop.c --- a/lib-src/pop.c Fri Jul 09 01:50:09 2010 +0000 +++ b/lib-src/pop.c Sun Jul 11 22:57:47 2010 +0000 @@ -465,7 +465,7 @@ return (-1); } (*IDs)[0] = atoi (&fromserver[4]); - fromserver = index (&fromserver[4], ' '); + fromserver = strchr (&fromserver[4], ' '); if (! fromserver) { strcpy (pop_error, @@ -496,7 +496,7 @@ return (-1); } (*IDs)[i] = atoi (fromserver); - fromserver = index (fromserver, ' '); + fromserver = strchr (fromserver, ' '); if (! fromserver) { strcpy (pop_error, diff -r 0b8608a36b55 -r 799b50142743 lisp/ChangeLog --- a/lisp/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,18 @@ +2010-07-11 Chong Yidong + + * mouse.el (mouse-drag-track): Handle select-active-regions + (Bug#6612). + +2010-07-11 Magnus Henoch + + * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass + empty argument to gvfs-copy. + +2010-07-10 Aleksei Gusev (tiny change) + + * progmodes/compile.el (compilation-error-regexp-alist-alist): Add + regexps for cucumber and ruby. + 2010-07-08 Daiki Ueno * epa-file.el (epa-file-error, epa-file--find-file-not-found-function) @@ -17,6 +32,12 @@ (ispell-complete-word): Use ispell-complete-word-dict or ispell-alternate-dictionary. +2010-07-07 Christoph Scholtes + + * progmodes/python.el (python-font-lock-keywords): Add Python 2.7 + builtins (BufferError, BytesWarning, WindowsError; callables + bin, bytearray, bytes, format, memoryview, next, print; __package__). + 2010-07-07 Glenn Morris * play/zone.el (top-level): Do not require timer, tabify, or cl. @@ -207,6 +228,75 @@ 2010-06-21 Karl Fogel + * play/zone.el (zone-fall-through-ws): Fix next-line -> + forward-line fallout. + +2010-07-06 Chong Yidong + + * mouse.el (mouse-appearance-menu): Add docstring. + + * help.el (describe-key): Print up-event using key-description. + +2010-07-03 Michael Albinus + + * net/zeroconf.el (zeroconf-resolve-service) + (zeroconf-service-resolver-handler): Use + `dbus-byte-array-to-string'. + (zeroconf-publish-service): Use `dbus-string-to-byte-array'. + +2010-07-03 Jan Moringen + + * net/zeroconf.el (zeroconf-service-remove-hook): New defun. + +2010-06-30 Dan Nicolaescu + + Avoid displaying files with a nil state in vc-dir. + * vc-dir.el (vc-dir-update): Obey the noinsert argument in all + cases that cause insertion. + (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files + with a nil state. + +2010-06-30 Chong Yidong + + * xml.el (xml-parse-region): Avoid infloop (Bug#5281). + +2010-06-29 Leo + + * emacs-lisp/rx.el (rx): Doc fix. (Bug#6537) + +2010-06-27 Oleksandr Gavenko (tiny change) + + * generic-x.el (bat-generic-mode): Fix regexp for command line + switches (Bug#5719). + +2010-06-27 Masatake YAMATO + + * htmlfontify.el (hfy-face-attr-for-class): Use append instead + of nconc to avoid pure storage error (Bug#6239). + +2010-06-27 Christoph (tiny change) + + * bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window) + (bookmark-bmenu-other-window-with-mouse): Remove unnecessary + bindings of bookmark-automatically-show-annotations (Bug#6515). + +2010-06-25 Eli Zaretskii + + * arc-mode.el (archive-zip-extract): Don't quote the file name on + MS-Windows and MS-DOS. (Bug#6467, Bug#6144) + +2010-06-24 Å tÄ›pán NÄ›mec (tiny change) + + * comint.el (make-comint, make-comint-in-buffer): Mention return + value in the docstrings. (Bug#6498) + +2010-06-24 Yoni Rabkin + + * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern, + since it is not present when using some non-default switches. + +2010-06-23 Karl Fogel + * simple.el (compose-mail): Fix doc string to refer to `compose-mail-user-agent-warnings', instead of to the nonexistent `compose-mail-check-user-agent'. @@ -320,6 +410,66 @@ * emacs-lisp/package.el: New file. +2010-06-22 Dan Nicolaescu + + Fix vc-annotate for renamed files when using Git. + * vc-git.el (vc-git-find-revision): Deal with empty results from + ls-files. Doe not pass the object as a file name to cat-file, it + is not a file name. + (vc-git-annotate-command): Pass the file name using -- to avoid + ambiguity with the revision. + (vc-git-previous-revision): Pass a relative file name. + +2010-06-22 Glenn Morris + + * progmodes/js.el (js-mode-map): Use standard capitalization and + ellipses for menu entries. + + * wid-edit.el (widget-complete): Doc fix. + +2010-06-22 Jürgen Hötzel (tiny change) + + * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change. + +2010-06-22 Dan Nicolaescu + + Fix annotating other revisions for renamed files in vc-annotate. + * vc-annotate.el (vc-annotate): Add an optional argument for the + VC backend. Use it when non-nil. + (vc-annotate-warp-revision): Pass the VC backend to vc-annotate. (Bug#6487) + + Fix vc-annotate-show-changeset-diff-revision-at-line for git. + * vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal): + Do not pass the file name to the 'previous-revision call when we + don't want a file diff. (Bug#6489) + +2010-06-21 Dan Nicolaescu + + Fix finding revisions for renamed files in vc-annotate. + * vc.el (vc-find-revision): Add an optional argument for + the VC backend. Use it when non-nil. + * vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC + backend to vc-find-revision. (Bug#6487) + +2010-06-21 Dan Nicolaescu + + Fix reading file names in Git annotate buffers. + * vc-git.el (vc-git-annotate-extract-revision-at-line): Remove + trailing whitespace. Suggested by Eric Hanchrow. (Bug#6481) + +2010-06-20 Alan Mackenzie + + * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set + in file local variables, set it first. + +2010-06-19 Glenn Morris + + * descr-text.el (describe-char-unicode-data): Insert separating + space when needed. (Bug#6422) + + * progmodes/idlwave.el (idlwave-action-and-binding): + Fix typo in 2009-12-03 change. (Bug#6450) + 2010-06-17 Stefan Monnier * emacs-lisp/macroexp.el (macroexpand-all-1): Put back special @@ -335,6 +485,8 @@ * facemenu.el (list-colors-display): Call `pop-to-buffer' before `list-colors-print'. (Bug#6332) + * subr.el (read-quoted-char): Fix up last change (bug#6290). + 2010-06-16 Stefan Monnier * emacs-lisp/macroexp.el (macroexpand-all-1): Don't handle `lambda' diff -r 0b8608a36b55 -r 799b50142743 lisp/arc-mode.el --- a/lisp/arc-mode.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/arc-mode.el Sun Jul 11 22:57:47 2010 +0000 @@ -1811,10 +1811,13 @@ (t (archive-extract-by-stdout archive - ;; unzip expands wildcards in NAME, so we need to quote it. + ;; unzip expands wildcards in NAME, so we need to quote it. But + ;; not on DOS/Windows, since that fails extraction on those + ;; systems, and file names with wildcards in zip archives don't + ;; work there anyway. ;; FIXME: Does pkunzip need similar treatment? - ;; (7z doesn't need to quote wildcards) - (if (equal (car archive-zip-extract) "unzip") + (if (and (not (memq system-type '(windows-nt ms-dos))) + (equal (car archive-zip-extract) "unzip")) (shell-quote-argument name) name) archive-zip-extract)))) diff -r 0b8608a36b55 -r 799b50142743 lisp/bs.el --- a/lisp/bs.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/bs.el Sun Jul 11 22:57:47 2010 +0000 @@ -195,7 +195,7 @@ 'font-lock-constant-face 'font-lock-comment-face)) ;; Dired-Buffers - '("^..\\(.*Dired by .*\\)$" 1 font-lock-function-name-face) + '("^..\\(.*Dired .*\\)$" 1 font-lock-function-name-face) ;; the star for modified buffers '("^.\\(\\*\\) +[^\\*]" 1 font-lock-comment-face)) "Default font lock expressions for Buffer Selection Menu.") diff -r 0b8608a36b55 -r 799b50142743 lisp/comint.el --- a/lisp/comint.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/comint.el Sun Jul 11 22:57:47 2010 +0000 @@ -701,7 +701,9 @@ STARTFILE is the name of a file, whose contents are sent to the process as its initial input. -If PROGRAM is a string, any more args are arguments to PROGRAM." +If PROGRAM is a string, any more args are arguments to PROGRAM. + +Returns the (possibly newly created) process buffer." (or (fboundp 'start-file-process) (error "Multi-processing is not supported for this system")) (setq buffer (get-buffer-create (or buffer (concat "*" name "*")))) @@ -725,7 +727,9 @@ STARTFILE is the name of a file, whose contents are sent to the process as its initial input. -If PROGRAM is a string, any more args are arguments to PROGRAM." +If PROGRAM is a string, any more args are arguments to PROGRAM. + +Returns the (possibly newly created) process buffer." (apply #'make-comint-in-buffer name nil program startfile switches)) ;;;###autoload diff -r 0b8608a36b55 -r 799b50142743 lisp/descr-text.el --- a/lisp/descr-text.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/descr-text.el Sun Jul 11 22:57:47 2010 +0000 @@ -301,7 +301,7 @@ (lambda (arg) (string (string-to-number arg 16))) parts " ")) - (concat info parts)))) + (concat info (if info " ") parts)))) (list "Decimal digit value" (nth 5 fields)) (list "Digit value" diff -r 0b8608a36b55 -r 799b50142743 lisp/dnd.el --- a/lisp/dnd.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/dnd.el Sun Jul 11 22:57:47 2010 +0000 @@ -1,8 +1,9 @@ -;;; dnd.el --- drag and drop support. +;;; dnd.el --- drag and drop support. -*- coding: utf-8 -*- -;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. -;; Author: Jan Dj,Ad(Brv +;; Author: Jan Djärv ;; Maintainer: FSF ;; Keywords: window, drag, drop diff -r 0b8608a36b55 -r 799b50142743 lisp/emacs-lisp/rx.el --- a/lisp/emacs-lisp/rx.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/emacs-lisp/rx.el Sun Jul 11 22:57:47 2010 +0000 @@ -1053,9 +1053,6 @@ like `and', but makes the match accessible with `match-end', `match-beginning', and `match-string'. -`(group SEXP1 SEXP2 ...)' - another name for `submatch'. - `(or SEXP1 SEXP2 ...)' `(| SEXP1 SEXP2 ...)' matches anything that matches SEXP1 or SEXP2, etc. If all diff -r 0b8608a36b55 -r 799b50142743 lisp/emulation/cua-base.el --- a/lisp/emulation/cua-base.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/emulation/cua-base.el Sun Jul 11 22:57:47 2010 +0000 @@ -4,7 +4,7 @@ ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; Author: Kim F. Storm -;; Keywords: keyboard emulation convenience cua +;; Keywords: keyboard emulations convenience cua ;; This file is part of GNU Emacs. diff -r 0b8608a36b55 -r 799b50142743 lisp/emulation/pc-select.el --- a/lisp/emulation/pc-select.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/emulation/pc-select.el Sun Jul 11 22:57:47 2010 +0000 @@ -6,7 +6,7 @@ ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; Author: Michael Staats -;; Keywords: convenience emulation +;; Keywords: convenience emulations ;; Created: 26 Sep 1995 ;; This file is part of GNU Emacs. diff -r 0b8608a36b55 -r 799b50142743 lisp/generic-x.el --- a/lisp/generic-x.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/generic-x.el Sun Jul 11 22:57:47 2010 +0000 @@ -508,8 +508,7 @@ '("^[ \t]*\\(:\\sw+\\)" 1 font-lock-function-name-face t) '("\\(%\\sw+%\\)" 1 font-lock-variable-name-face t) '("\\(%[0-9]\\)" 1 font-lock-variable-name-face t) - '("\\(/[^/ \"\t\n]+\\)" 1 font-lock-type-face) - '("[\t ]+\\([+-][^\t\n\" ]+\\)" 1 font-lock-type-face) + '("[\t ]+\\([+-/][^\t\n\" ]+\\)" 1 font-lock-type-face) '("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) diff -r 0b8608a36b55 -r 799b50142743 lisp/help.el --- a/lisp/help.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/help.el Sun Jul 11 22:57:47 2010 +0000 @@ -768,9 +768,10 @@ ----------------- up-event %s---------------- -<%S>%s%s runs the command %S, which is " +%s%s%s runs the command %S, which is " (if mouse-1-tricky "(short click) " "") - ev-type mouse-msg + (key-description (vector up-event)) + mouse-msg (if mouse-1-remapped " is remapped to , which" "") defn-up)) diff -r 0b8608a36b55 -r 799b50142743 lisp/hl-line.el --- a/lisp/hl-line.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/hl-line.el Sun Jul 11 22:57:47 2010 +0000 @@ -1,12 +1,12 @@ ;;; hl-line.el --- highlight the current line -;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +;; 2008, 2009, 2010 Free Software Foundation, Inc. ;; Author: Dave Love ;; Maintainer: FSF ;; Created: 1998-09-13 -;; Keywords: faces, frames, emulation +;; Keywords: faces, frames, emulations ;; This file is part of GNU Emacs. diff -r 0b8608a36b55 -r 799b50142743 lisp/htmlfontify.el --- a/lisp/htmlfontify.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/htmlfontify.el Sun Jul 11 22:57:47 2010 +0000 @@ -926,7 +926,7 @@ new-spec))))) (if (or (memq :inherit face-spec) (eq 'default face)) face-spec - (nconc face-spec (list :inherit 'default))) )) + (append face-spec (list :inherit 'default))))) ;; construct an assoc of (css-tag-name . css-tag-value) pairs ;; from a face or assoc of face attributes: diff -r 0b8608a36b55 -r 799b50142743 lisp/mouse.el --- a/lisp/mouse.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/mouse.el Sun Jul 11 22:57:47 2010 +0000 @@ -956,9 +956,12 @@ (if (eq transient-mark-mode 'lambda) '(only) (cons 'only transient-mark-mode))) - (let ((range (mouse-start-end start-point start-point click-count))) + (let ((range (mouse-start-end start-point start-point click-count)) + ;; Prevent `push-mark' from clobbering the primary selection + ;; if the user clicks without dragging. + (select-active-regions nil)) (goto-char (nth 0 range)) - (push-mark nil nil t) + (push-mark nil t t) (goto-char (nth 1 range))) ;; Track the mouse until we get a non-movement event. @@ -1012,6 +1015,7 @@ mouse-set-region)))))) (if (and (/= (mark) (point)) (not do-multi-click)) + ;; If point has moved, finish the drag. (let* (last-command this-command) ;; Copy the region so that `select-active-regions' can @@ -1019,12 +1023,20 @@ (and mouse-drag-copy-region do-mouse-drag-region-post-process (let (deactivate-mark) - (copy-region-as-kill (mark) (point))))) + (copy-region-as-kill (mark) (point)))) + ;; For `select-active-regions' non-nil, ensure that + ;; further alterations of the region (e.g. via + ;; shift-selection) continue to update PRIMARY. + (and select-active-regions + (display-selections-p) + (x-set-selection 'PRIMARY (current-buffer)))) + ;; If point hasn't moved, run the binding of the ;; terminating up-event. (if do-multi-click (goto-char start-point) - (deactivate-mark)) + (let (select-active-regions) + (deactivate-mark))) (when (and (functionp fun) (= start-hscroll (window-hscroll start-window)) ;; Don't run the up-event handler if the window @@ -2357,6 +2369,7 @@ (declare-function font-face-attributes "font.c" (font &optional frame)) (defun mouse-appearance-menu (event) + "Show a menu for changing the default face in the current buffer." (interactive "@e") (require 'face-remap) (when (display-multi-font-p) diff -r 0b8608a36b55 -r 799b50142743 lisp/net/tramp-gvfs.el --- a/lisp/net/tramp-gvfs.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/net/tramp-gvfs.el Sun Jul 11 22:57:47 2010 +0000 @@ -551,11 +551,14 @@ (tramp-message v 4 "`copy-file' failed, trying `gvfs-copy'") (unless (zerop - (tramp-gvfs-send-command - v "gvfs-copy" - (if (or keep-date preserve-uid-gid) "--preserve" "") - (tramp-gvfs-url-file-name filename) - (tramp-gvfs-url-file-name newname))) + (let ((args + (append (if (or keep-date preserve-uid-gid) + (list "--preserve") + nil) + (list + (tramp-gvfs-url-file-name filename) + (tramp-gvfs-url-file-name newname))))) + (apply 'tramp-gvfs-send-command v "gvfs-copy" args))) ;; Propagate the error. (tramp-error v (car err) "%s" (cdr err))))))) diff -r 0b8608a36b55 -r 799b50142743 lisp/net/zeroconf.el --- a/lisp/net/zeroconf.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/net/zeroconf.el Sun Jul 11 22:57:47 2010 +0000 @@ -336,6 +336,23 @@ (puthash type l-hook zeroconf-service-removed-hooks-hash))) (t (error "EVENT must be either `:new' or `:removed'")))) +(defun zeroconf-service-remove-hook (type event function) + "Remove FUNCTION from the hook of service type TYPE. + +EVENT must be either :new or :removed and has to match the event +type used when registering FUNCTION." + (let* ((table (cond + ((equal event :new) + zeroconf-service-added-hooks-hash) + ((equal event :removed) + zeroconf-service-removed-hooks-hash) + (t (error "EVENT must be either `:new' or `:removed'")))) + (l-hook (gethash type table nil))) + (remove-hook 'l-hook function) + (if l-hook + (puthash type l-hook table) + (remhash type table)))) + (defun zeroconf-get-host () "Returns the local host name as string." (dbus-call-method @@ -407,7 +424,7 @@ (elt (nth 9 result))) ;; TXT. ;; The TXT field has the signature "aay". Transform to "as". (while elt - (setcar elt (apply 'string (car elt))) + (setcar elt (dbus-byte-array-to-string (car elt))) (setq elt (cdr elt))) (when nil ;; We discard it, no use so far. @@ -599,7 +616,7 @@ ;; The "TXT" field has the signature "aay". Transform to "as". (let ((elt (nth 9 val))) (while elt - (setcar elt (apply 'string (car elt))) + (setcar elt (dbus-byte-array-to-string (car elt))) (setq elt (cdr elt)))) (when zeroconf-debug (message "zeroconf-service-resolver-handler: %s %S" @@ -641,11 +658,7 @@ ;; The TXT field has the signature "as". Transform to "aay". (dolist (elt txt) - (let (args) - (add-to-list - 'result - (dolist (elt1 (string-to-list elt) (append '(:array) args)) - (setq args (append args (list :byte elt1))))))) + (add-to-list 'result (dbus-string-to-byte-array elt))) ;; Add the service. (dbus-call-method diff -r 0b8608a36b55 -r 799b50142743 lisp/play/zone.el --- a/lisp/play/zone.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/play/zone.el Sun Jul 11 22:57:47 2010 +0000 @@ -478,8 +478,10 @@ (wait 0.15) newpos fall-p) (while (when (save-excursion - (forward-line 1) - (and (= col (current-column)) + (and (zerop (forward-line 1)) + (progn + (forward-char col) + (= col (current-column))) (setq newpos (point)) (string= spaces (buffer-substring-no-properties newpos (+ newpos cw-ceil))) diff -r 0b8608a36b55 -r 799b50142743 lisp/progmodes/cc-mode.el --- a/lisp/progmodes/cc-mode.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/progmodes/cc-mode.el Sun Jul 11 22:57:47 2010 +0000 @@ -669,8 +669,13 @@ This function is called from the hook `before-hack-local-variables-hook'." (when c-buffer-is-cc-mode - (let ((stile (cdr (assq 'c-file-style file-local-variables-alist))) + (let ((mode-cons (assq 'mode file-local-variables-alist)) + (stile (cdr (assq 'c-file-style file-local-variables-alist))) (offsets (cdr (assq 'c-file-offsets file-local-variables-alist)))) + (when mode-cons + (hack-one-local-variable (car mode-cons) (cdr mode-cons)) + (setq file-local-variables-alist + (delq mode-cons file-local-variables-alist))) (when stile (or (stringp stile) (error "c-file-style is not a string")) (c-set-style stile)) diff -r 0b8608a36b55 -r 799b50142743 lisp/progmodes/compile.el --- a/lisp/progmodes/compile.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/progmodes/compile.el Sun Jul 11 22:57:47 2010 +0000 @@ -196,6 +196,10 @@ "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\ \\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4)) + (cucumber + "\\(?:^cucumber\\(?: -p [^[:space:]]+\\)?\\|#\\)\ +\\(?: \\)\\([^\(].*\\):\\([1-9][0-9]*\\)" 1 2) + (edg-1 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)" 1 2 nil (3 . 4)) @@ -325,6 +329,13 @@ "\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 2 3 nil nil) + (ruby + "^[\t ]*\\(?:from \\)?\ +\\([^\(\n][^[:space:]\n]*\\):\\([1-9][0-9]*\\)\\(:in `.*'\\)?.*$" 1 2) + + (ruby-Test::Unit + "[\t ]*\\[\\([^\(].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:$" 1 2) + (rxp "^\\(?:Error\\|Warnin\\(g\\)\\):.*\n.* line \\([0-9]+\\) char\ \\([0-9]+\\) of file://\\(.+\\)" @@ -2083,7 +2094,7 @@ pre-existing (let ((display-buffer-reuse-frames t) (pop-up-windows t)) - ;; Pop up a window. + ;; Pop up a window. (display-buffer (marker-buffer msg))))) (highlight-regexp (with-current-buffer (marker-buffer msg) ;; also do this while we change buffer diff -r 0b8608a36b55 -r 799b50142743 lisp/progmodes/idlwave.el --- a/lisp/progmodes/idlwave.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/progmodes/idlwave.el Sun Jul 11 22:57:47 2010 +0000 @@ -1602,7 +1602,7 @@ `(lambda () (interactive) (self-insert-command 1) - ,@(if (listp cmd) cmd (list cmd)))))) + ,(if (listp cmd) cmd (list cmd)))))) ;; Set action and key bindings. ;; See description of the function `idlwave-action-and-binding'. diff -r 0b8608a36b55 -r 799b50142743 lisp/progmodes/js.el --- a/lisp/progmodes/js.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/progmodes/js.el Sun Jul 11 22:57:47 2010 +0000 @@ -474,8 +474,7 @@ (defcustom js-js-tmpdir "~/.emacs.d/js/js" "Temporary directory used by `js-mode' to communicate with Mozilla. -This directory must be readable and writable by both Mozilla and -Emacs." +This directory must be readable and writable by both Mozilla and Emacs." :type 'directory :group 'js) @@ -499,11 +498,11 @@ (define-key keymap [(meta ?.)] #'js-find-symbol) (easy-menu-define nil keymap "Javascript Menu" '("Javascript" - ["Select new Mozilla context…" js-set-js-context + ["Select New Mozilla Context..." js-set-js-context (fboundp #'inferior-moz-process)] - ["Evaluate expression in Mozilla context…" js-eval + ["Evaluate Expression in Mozilla Context..." js-eval (fboundp #'inferior-moz-process)] - ["Send current function to Mozilla…" js-eval-defun + ["Send Current Function to Mozilla..." js-eval-defun (fboundp #'inferior-moz-process)])) keymap) "Keymap for `js-mode'.") diff -r 0b8608a36b55 -r 799b50142743 lisp/progmodes/python.el --- a/lisp/progmodes/python.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/progmodes/python.el Sun Jul 11 22:57:47 2010 +0000 @@ -93,7 +93,7 @@ (defvar python-font-lock-keywords `(,(rx symbol-start - ;; From v 2.5 reference, § keywords. + ;; From v 2.7 reference, § keywords. ;; def and class dealt with separately below (or "and" "as" "assert" "break" "continue" "del" "elif" "else" "except" "exec" "finally" "for" "from" "global" "if" @@ -102,7 +102,7 @@ ;; Not real keywords, but close enough to be fontified as such "self" "True" "False") symbol-end) - (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.5 manual + (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.7 manual . font-lock-constant-face) ;; Definitions (,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_)))) @@ -117,7 +117,7 @@ (0+ "." (1+ (or word ?_))))) (1 font-lock-type-face)) ;; Built-ins. (The next three blocks are from - ;; `__builtin__.__dict__.keys()' in Python 2.5.1.) These patterns + ;; `__builtin__.__dict__.keys()' in Python 2.7) These patterns ;; are debateable, but they at least help to spot possible ;; shadowing of builtins. (,(rx symbol-start (or @@ -135,7 +135,9 @@ "SystemExit" "TabError" "TypeError" "UnboundLocalError" "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError" "UnicodeTranslateError" "UnicodeWarning" "UserWarning" - "ValueError" "Warning" "ZeroDivisionError") symbol-end) + "ValueError" "Warning" "ZeroDivisionError" + ;; Python 2.7 + "BufferError" "BytesWarning" "WindowsError") symbol-end) . font-lock-type-face) (,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start (group (or @@ -152,12 +154,16 @@ "range" "raw_input" "reduce" "reload" "repr" "reversed" "round" "set" "setattr" "slice" "sorted" "staticmethod" "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars" - "xrange" "zip")) symbol-end) + "xrange" "zip" + ;; Python 2.7. + "bin" "bytearray" "bytes" "format" "memoryview" "next" "print" + )) symbol-end) (1 font-lock-builtin-face)) (,(rx symbol-start (or ;; other built-ins "True" "False" "None" "Ellipsis" - "_" "__debug__" "__doc__" "__import__" "__name__") symbol-end) + "_" "__debug__" "__doc__" "__import__" "__name__" "__package__") + symbol-end) . font-lock-builtin-face))) (defconst python-font-lock-syntactic-keywords diff -r 0b8608a36b55 -r 799b50142743 lisp/subr.el --- a/lisp/subr.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/subr.el Sun Jul 11 22:57:47 2010 +0000 @@ -1874,12 +1874,11 @@ ;; Note: `read-char' does it using the `ascii-character' property. ;; We should try and use read-key instead. (let ((translation (lookup-key local-function-key-map (vector char)))) - (if (arrayp translation) - (setq translated (aref translation 0)))) - (setq translated - (if (integerp char) - (char-resolve-modifiers char) - char)) + (setq translated (if (arrayp translation) + (aref translation 0) + char))) + (if (integerp translated) + (setq translated (char-resolve-modifiers translated))) (cond ((null translated)) ((not (integerp translated)) (setq unread-command-events (list char) diff -r 0b8608a36b55 -r 799b50142743 lisp/url/ChangeLog --- a/lisp/url/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/url/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -806,7 +806,7 @@ (url-http-parse-headers): Use it. (url-http-handle-authentication): Use subst-char-in-string. -2005-11-16 Juergen Hoetzel (tiny change) +2005-11-16 Jürgen Hötzel (tiny change) * url-handlers.el (url-insert-file-contents): Use the charset info provided by the HTTP server, if any. diff -r 0b8608a36b55 -r 799b50142743 lisp/vc/vc-annotate.el --- a/lisp/vc/vc-annotate.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/vc/vc-annotate.el Sun Jul 11 22:57:47 2010 +0000 @@ -315,7 +315,7 @@ vc-annotate-display-mode)))) ;;;###autoload -(defun vc-annotate (file rev &optional display-mode buf move-point-to) +(defun vc-annotate (file rev &optional display-mode buf move-point-to vc-bk) "Display the edit history of the current FILE using colors. This command creates a buffer that shows, for each line of the current @@ -336,6 +336,8 @@ If MOVE-POINT-TO is given, move the point to that line. +If VC-BK is given used that VC backend. + Customization variables: `vc-annotate-menu-elements' customizes the menu elements of the @@ -376,7 +378,7 @@ ;; In case it had to be uniquified. (setq temp-buffer-name (buffer-name)))) (with-output-to-temp-buffer temp-buffer-name - (let ((backend (vc-backend file)) + (let ((backend (or vc-bk (vc-backend file))) (coding-system-for-read buffer-file-coding-system)) (vc-call-backend backend 'annotate-command file (get-buffer temp-buffer-name) rev) @@ -462,7 +464,7 @@ (if (not rev-at-line) (message "Cannot extract revision number from the current line") (switch-to-buffer-other-window - (vc-find-revision (cdr rev-at-line) (car rev-at-line))))))) + (vc-find-revision (cdr rev-at-line) (car rev-at-line) vc-annotate-backend)))))) (defun vc-annotate-revision-previous-to-line () "Visit the annotation of the revision before the revision at line." @@ -527,7 +529,7 @@ (message "Cannot extract revision number from the current line") (setq prev-rev (vc-call-backend vc-annotate-backend 'previous-revision - fname rev)) + (if filediff fname nil) rev)) (if (not prev-rev) (message "Cannot diff from any revision prior to %s" rev) (save-window-excursion @@ -597,7 +599,8 @@ ;; place the point in the line. (min oldline (progn (goto-char (point-max)) (forward-line -1) - (line-number-at-pos)))))))) + (line-number-at-pos))) + vc-annotate-backend))))) (defun vc-annotate-compcar (threshold a-list) "Test successive cons cells of A-LIST against THRESHOLD. diff -r 0b8608a36b55 -r 799b50142743 lisp/vc/vc-dir.el --- a/lisp/vc/vc-dir.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/vc/vc-dir.el Sun Jul 11 22:57:47 2010 +0000 @@ -412,22 +412,24 @@ (setq entry (car entries)) (setq node (ewoc-next vc-ewoc node))) (t - (ewoc-enter-before vc-ewoc node - (apply 'vc-dir-create-fileinfo entry)) + (unless noinsert + (ewoc-enter-before vc-ewoc node + (apply 'vc-dir-create-fileinfo entry))) (setq entries (cdr entries)) (setq entry (car entries)))))) (t - ;; We might need to insert a directory node if the - ;; previous node was in a different directory. - (let* ((rd (file-relative-name entrydir)) - (prev-node (ewoc-prev vc-ewoc node)) - (prev-dir (vc-dir-node-directory prev-node))) - (unless (string-equal entrydir prev-dir) - (ewoc-enter-before - vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) - ;; Now insert the node itself. - (ewoc-enter-before vc-ewoc node - (apply 'vc-dir-create-fileinfo entry)) + (unless noinsert + ;; We might need to insert a directory node if the + ;; previous node was in a different directory. + (let* ((rd (file-relative-name entrydir)) + (prev-node (ewoc-prev vc-ewoc node)) + (prev-dir (vc-dir-node-directory prev-node))) + (unless (string-equal entrydir prev-dir) + (ewoc-enter-before + vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) + ;; Now insert the node itself. + (ewoc-enter-before vc-ewoc node + (apply 'vc-dir-create-fileinfo entry))) (setq entries (cdr entries) entry (car entries)))))) ;; We're past the last node, all remaining entries go to the end. (unless (or node noinsert) @@ -902,10 +904,12 @@ (vc-dir-resync-directory-files file) (ewoc-set-hf vc-ewoc (vc-dir-headers vc-dir-backend default-directory) "")) - (let ((state (vc-dir-recompute-file-state file ddir))) + (let* ((complete-state (vc-dir-recompute-file-state file ddir)) + (state (cadr complete-state))) (vc-dir-update - (list state) - status-buf (eq (cadr state) 'up-to-date)))))))))) + (list complete-state) + status-buf (or (not state) + (eq state 'up-to-date))))))))))) ;; Remove out-of-date entries from vc-dir-buffers. (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers))))) diff -r 0b8608a36b55 -r 799b50142743 lisp/vc/vc-git.el --- a/lisp/vc/vc-git.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/vc/vc-git.el Sun Jul 11 22:57:47 2010 +0000 @@ -563,13 +563,18 @@ (let* (process-file-side-effects (coding-system-for-read 'binary) (coding-system-for-write 'binary) - (fullname (substring - (vc-git--run-command-string - file "ls-files" "-z" "--full-name" "--") - 0 -1))) + (fullname + (let ((fn (vc-git--run-command-string + file "ls-files" "-z" "--full-name" "--"))) + ;; ls-files does not return anything when looking for a + ;; revision of a file that has been renamed or removed. + (if (string= fn "") + (file-relative-name file (vc-git-root default-directory)) + (substring fn 0 -1))))) (vc-git-command buffer 0 - (concat (if rev rev "HEAD") ":" fullname) "cat-file" "blob"))) + nil + "cat-file" "blob" (concat (if rev rev "HEAD") ":" fullname)))) (defun vc-git-checkout (file &optional editable rev) (vc-git-command nil 0 file "checkout" (or rev "HEAD"))) @@ -723,7 +728,7 @@ (defun vc-git-annotate-command (file buf &optional rev) (let ((name (file-relative-name file))) - (vc-git-command buf 'async name "blame" "--date=iso" "-C" "-C" rev))) + (vc-git-command buf 'async nil "blame" "--date=iso" "-C" "-C" rev "--" name))) (declare-function vc-annotate-convert-time "vc-annotate" (time)) @@ -740,8 +745,12 @@ (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?") (let ((revision (match-string-no-properties 1))) (if (match-beginning 2) - (cons revision (expand-file-name (match-string-no-properties 3) - (vc-git-root default-directory))) + (let ((fname (match-string-no-properties 3))) + ;; Remove trailing whitespace from the file name. + (when (string-match " +\\'" fname) + (setq fname (substring fname 0 (match-beginning 0)))) + (cons revision + (expand-file-name fname (vc-git-root default-directory)))) revision))))) ;;; TAG SYSTEM @@ -765,11 +774,10 @@ (defun vc-git-previous-revision (file rev) "Git-specific version of `vc-previous-revision'." (if file - (let* ((default-directory (file-name-directory (expand-file-name file))) - (file (file-name-nondirectory file)) + (let* ((fname (file-relative-name file)) (prev-rev (with-temp-buffer (and - (vc-git--out-ok "rev-list" "-2" rev "--" file) + (vc-git--out-ok "rev-list" "-2" rev "--" fname) (goto-char (point-max)) (bolp) (zerop (forward-line -1)) diff -r 0b8608a36b55 -r 799b50142743 lisp/vc/vc.el --- a/lisp/vc/vc.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/vc/vc.el Sun Jul 11 22:57:47 2010 +0000 @@ -1700,8 +1700,9 @@ rev))) (switch-to-buffer-other-window (vc-find-revision file revision)))) -(defun vc-find-revision (file revision) - "Read REVISION of FILE into a buffer and return the buffer." +(defun vc-find-revision (file revision &optional backend) + "Read REVISION of FILE into a buffer and return the buffer. +Use BACKEND as the VC backend if specified." (let ((automatic-backup (vc-version-backup-file-name file revision)) (filebuf (or (get-file-buffer file) (current-buffer))) (filename (vc-version-backup-file-name file revision 'manual))) @@ -1719,7 +1720,9 @@ ;; Change buffer to get local value of ;; vc-checkout-switches. (with-current-buffer filebuf - (vc-call find-revision file revision outbuf)))) + (if backend + (vc-call-backend backend 'find-revision file revision outbuf) + (vc-call find-revision file revision outbuf))))) (setq failed nil)) (when (and failed (file-exists-p filename)) (delete-file filename)))) diff -r 0b8608a36b55 -r 799b50142743 lisp/wid-edit.el --- a/lisp/wid-edit.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/wid-edit.el Sun Jul 11 22:57:47 2010 +0000 @@ -1156,14 +1156,17 @@ (if field (narrow-to-region (line-beginning-position) (line-end-position))))) +;; This used to say: +;; "When not inside a field, move to the previous button or field." +;; but AFAICS, it has always just thrown an error. (defun widget-complete () "Complete content of editable field from point. -When not inside a field, move to the previous button or field." +When not inside a field, signal an error." (interactive) (let ((field (widget-field-find (point)))) - (when field - (widget-apply field :complete)) - (error "Not in an editable field"))) + (if field + (widget-apply field :complete) + (error "Not in an editable field")))) ;;; Setting up the buffer. diff -r 0b8608a36b55 -r 799b50142743 lisp/x-dnd.el --- a/lisp/x-dnd.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/x-dnd.el Sun Jul 11 22:57:47 2010 +0000 @@ -1,9 +1,9 @@ -;;; x-dnd.el --- drag and drop support for X. +;;; x-dnd.el --- drag and drop support for X -*- coding: utf-8 -*- ;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 ;; Free Software Foundation, Inc. -;; Author: Jan Dj,Ad(Brv +;; Author: Jan Djärv ;; Maintainer: FSF ;; Keywords: window, drag, drop diff -r 0b8608a36b55 -r 799b50142743 lisp/xml.el --- a/lisp/xml.el Fri Jul 09 01:50:09 2010 +0000 +++ b/lisp/xml.el Sun Jul 11 22:57:47 2010 +0000 @@ -321,18 +321,20 @@ (progn (forward-char -1) (setq result (xml-parse-tag parse-dtd parse-ns)) - (if (and xml result (not xml-sub-parser)) - ;; translation of rule [1] of XML specifications - (error "XML: (Not Well-Formed) Only one root tag allowed") - (cond - ((null result)) - ((and (listp (car result)) - parse-dtd) - (setq dtd (car result)) - (if (cdr result) ; possible leading comment - (add-to-list 'xml (cdr result)))) - (t - (add-to-list 'xml result))))) + (cond + ((null result) + ;; Not looking at an xml start tag. + (forward-char 1)) + ((and xml (not xml-sub-parser)) + ;; Translation of rule [1] of XML specifications + (error "XML: (Not Well-Formed) Only one root tag allowed")) + ((and (listp (car result)) + parse-dtd) + (setq dtd (car result)) + (if (cdr result) ; possible leading comment + (add-to-list 'xml (cdr result)))) + (t + (add-to-list 'xml result)))) (goto-char (point-max)))) (if parse-dtd (cons dtd (nreverse xml)) diff -r 0b8608a36b55 -r 799b50142743 msdos/ChangeLog --- a/msdos/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/msdos/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,13 @@ +2010-07-11 Eli Zaretskii + + * sed2v2.inp (HAVE_STRCHR, HAVE_STRRCHR): Don't edit, already + defined on . + +2010-07-11 Andreas Schwab + + * sed2v2.inp (HAVE_INDEX, HAVE_RINDEX): Don't edit. + (HAVE_STRCHR, HAVE_STRRCHR): Edit to 1. + 2010-07-08 Eli Zaretskii * sed1v2.inp (stamp-oldxmenu): Don't edit out in `temacs:' target, diff -r 0b8608a36b55 -r 799b50142743 msdos/sed2v2.inp --- a/msdos/sed2v2.inp Fri Jul 09 01:50:09 2010 +0000 +++ b/msdos/sed2v2.inp Sun Jul 11 22:57:47 2010 +0000 @@ -46,9 +46,7 @@ /^#undef HAVE_TM_GMTOFF *$/s/^.*$/#define HAVE_TM_GMTOFF 1/ /^#undef HAVE_MBLEN *$/s/^.*$/#define HAVE_MBLEN 1/ /^#undef HAVE_STRUCT_TIMEZONE *$/s/^.*$/#define HAVE_STRUCT_TIMEZONE 1/ -/^#undef HAVE_INDEX *$/s/^.*$/#define HAVE_INDEX 1/ /^#undef HAVE_SIZE_T *$/s/^.*$/#define HAVE_SIZE_T 1/ -/^#undef HAVE_RINDEX *$/s/^.*$/#define HAVE_RINDEX 1/ /^#undef HAVE_MKSTEMP *$/s/^.*$/#define HAVE_MKSTEMP 1/ /^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/ /^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/ diff -r 0b8608a36b55 -r 799b50142743 src/ChangeLog --- a/src/ChangeLog Fri Jul 09 01:50:09 2010 +0000 +++ b/src/ChangeLog Sun Jul 11 22:57:47 2010 +0000 @@ -1,3 +1,127 @@ +2010-07-11 Andreas Schwab + + * blockinput.h: Remove obsolete comment. + + * lisp.h: Include . + (OFFSETOF): Don't define. + (VECSIZE): Use offsetof instead of OFFSETOF. + (PSEUDOVECSIZE): Likewise. + * process.c (conv_sockaddr_to_lisp): Likewise. + * alloc.c: Don't include . + * buffer.h (PER_BUFFER_VAR_OFFSET): Use offsetof. + + * process.c: Remove obsolete comment. + +2010-07-11 Chong Yidong + + * xfaces.c (Vface_remapping_alist): Doc fix (Bug#6091). + +2010-07-11 Andreas Schwab + + * callint.c (Fcall_interactively): Use strchr, strrchr instead of + index, rindex. + * doc.c (get_doc_string, Fsnarf_documentation): Likewise. + * editfns.c (Fuser_full_name, Fformat): Likewise. + * emacs.c (argmatch, sort_args, decode_env_path): Likewise. + * fileio.c (Ffile_symlink_p): Likewise. + * filelock.c (current_lock_owner): Likewise. + * font.c (font_parse_name, font_parse_family_registry): Likewise. + * fontset.c (fontset_pattern_regexp): Likewise. + * lread.c (read1): Likewise. + * sysdep.c (init_system_name): Likewise. + * xfns.c (select_visual): Likewise. + * s/hpux10-20.h (index, rindex): Don't define. + * s/ms-w32.h (index): Likewise. + * s/usg5-4.h: Likewise. + + * callproc.c (relocate_fd): Use F_DUPFD if defined. + + * alloc.c (pending_malloc_warning, malloc_warning): Add const. + * callproc.c (relocate_fd, getenv_internal_1, getenv_internal) + (egetenv): Likewise. + * doprnt.c (doprnt): Likewise. + * editfns.c (set_time_zone_rule, format2): Likewise. + * emacs.c (decode_env_path): Likewise. + * eval.c (signal_error, error): Likewise. + * insdel.c (replace_range_2): Likewise. + * keyboard.c (cmd_error_internal): Likewise. + * lread.c (isfloat_string, make_symbol, dir_warning): Likewise. + * print.c (write_string, write_string_1, print_error_message): + Likewise. + * vm-limit.c (warn_function, memory_warnings): Likewise. + * xdisp.c (message1, message1_nolog, message_with_string) + (vmessage, message, message_nolog): Likewise. + * emacs.c: Remove duplicate declaration. + * keyboard.h: Likewise. + * lisp.h: Update prototypes. + + * eval.c: Fix indentation problem. + + * keyboard.c: Include "process.h" + + * eval.c: Remove obsolete noinline declaration. + * fns.c: Likewise. + +2010-07-11 Ken Raeburn + + * doprnt.c (doprnt): Take a va_list argument instead of count and + pointer. + * eval.c (error): Change to a standard-C variadic function. + * xdisp.c (vmessage): Renamed from message, made static, and + changed to take a va_list argument. + (message): New variadic wrapper. + (message_nolog): Now a variadic function, calling vmessage. + * lisp.h: Include stdarg.h for va_list. + (doprnt, error, message, message_nolog): Decls updated. + +2010-07-11 Eli Zaretskii + + * process.c (syms_of_process) : Define + even if !subprocesses. + (delete_exited_processes): Ditto. + + * msdos.c (syms_of_msdos) : Remove DEFVAR. + (delete_exited_processes): Don't define. + +2010-07-10 Chong Yidong + + * frame.c (make_frame): Initialize menu_bar_lines and + tool_bar_lines members. + (make_initial_frame, make_terminal_frame): Initialize + menu_bar_lines using value of menu-bar-mode. + + * msdos.c (IT_set_frame_parameters): Don't set menu-bar-lines. + +2010-07-10 Eli Zaretskii + + * process.c: Reshuffle #include's. Condition some of the global + and static variables on `subprocesses'. + (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p): + Leave only one implementation. + (Fget_buffer_process, Fprocess_inherit_coding_system_flag) + (kill_buffer_processes, Flist_system_processes) + (Fprocess_attributes, init_process, syms_of_process): Unify the + implementations for with subprocesses and without them. + +2010-07-09 Jan Djärv + + * xmenu.c (set_frame_menubar): Must realize menubar_widget to get the + correct size for Motif. + (free_frame_menubar): Call x_set_window_size to update frame size. + + * xfns.c (x_window): Set borderWidth to 0 for pane and + EmacsFrame. Frame size calculation is wrong otherwise. + +2010-07-09 Michael Albinus + + * dbusbind.c (xd_initialize): Add new argument RAISE_ERROR, which + allows to suppress errors when polling in Emacs' main loop. + (Fdbus_init_bus, Fdbus_get_unique_name, Fdbus_call_method) + (Fdbus_call_method_asynchronously, Fdbus_method_return_internal) + (Fdbus_method_error_internal, Fdbus_send_signal) + (xd_get_dispatch_status, xd_read_message, Fdbus_register_signal) + (Fdbus_register_method): Use it. (Bug#6579) + 2010-07-08 Dan Nicolaescu * alloc.c: Convert DEFUNs to standard C. @@ -772,7 +896,55 @@ Improve documentation. Return font regardless of use_system_font. (syms_of_xsettings): Improve documentation for font-use-system-font. -2009-06-17 Naohiro Aota (tiny change) +2010-07-10 Chong Yidong + + * xfaces.c (realize_face): Garbage the frame if a face is removed + (Bug#6593). + +2010-07-05 Andreas Schwab + + * keyboard.c: Remove duplicate . + (read_key_sequence): Remove volatile qualifiers. + +2010-07-05 YAMAMOTO Mitsuharu + + * dispextern.h (FRINGE_HEIGHT_BITS): New define. + (struct glyph_row): New members left_fringe_offset and + right_fringe_offset. + + * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap + specially. + * w32term.c (w32_draw_fringe_bitmap): Likewise. + * nsterm.m (ns_draw_fringe_bitmap): Likewise. + + * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here. + Take account of bitmap offset. + (draw_window_fringes): Take account of window vscroll. + (update_window_fringes): Likewise. Extend top-aligned top indicator + or bottom-aligned bottom indicator to adjacent rows if it doesn't fit + in one row. Don't set redraw_fringe_bitmaps_p outside row comparison. + Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325). + +2010-07-04 Juanma Barranquero + + * w32fns.c (Qtooltip): Declare. + Suggested by Andy Moreton . + +2010-07-03 Jan Djärv + + * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid + grab on just Press (Bug#6499). + +2010-07-02 Chong Yidong + + * frame.c (Qtooltip): New var. + (delete_frame): Use it. Fix faulty if statement. Don't update + mode line for tooltip frames. Suggested by Martin Rudalics. + + * xfns.c (x_create_tip_frame): + * w32fns.c (x_create_tip_frame): Use it. + +2010-06-17 Naohiro Aota (tiny change) * xftfont.c (xftfont_open): Check font width one by one also when spacing is dual. @@ -951,6 +1123,30 @@ * m/ibms390x.h: Rather than duplicating ibms390.h, just include it. +2010-06-26 Andreas Schwab + + * alloc.c (Fmake_byte_code): Don't access undefined argument + (Bug#6517). + +2010-06-25 Chong Yidong + + * xdisp.c (next_element_from_image): Ensure that after-strings are + read the next time we hit handle_stop (Bug#1336). + +2010-06-23 Andreas Schwab + + * lread.c (read1): Signal error if #s is not followed by paren. + +2010-06-19 Chong Yidong + + * image.c (free_image): Mark frame as garbaged (Bug#6426). + + * keymap.c (Fdefine_key): Doc fix (Bug#6460). + +2010-06-15 Glenn Morris + + * editfns.c (Fbyte_to_string): Pacify compiler. + 2010-06-09 Stefan Monnier * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string. diff -r 0b8608a36b55 -r 799b50142743 src/alloc.c --- a/src/alloc.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/alloc.c Sun Jul 11 22:57:47 2010 +0000 @@ -23,10 +23,6 @@ #include /* For CHAR_BIT. */ #include -#ifdef STDC_HEADERS -#include /* For offsetof, used by PSEUDOVECSIZE. */ -#endif - #ifdef ALLOC_DEBUG #undef INLINE #endif @@ -298,7 +294,7 @@ /* If nonzero, this is a warning delivered by malloc and not yet displayed. */ -char *pending_malloc_warning; +const char *pending_malloc_warning; /* Pre-computed signal argument for use when memory is exhausted. */ @@ -514,7 +510,7 @@ /* Function malloc calls this if it finds we are near exhausting storage. */ void -malloc_warning (char *str) +malloc_warning (const char *str) { pending_malloc_warning = str; } @@ -3030,7 +3026,7 @@ else val = Fmake_vector (len, Qnil); - if (STRINGP (args[1]) && STRING_MULTIBYTE (args[1])) + if (nargs > 1 && STRINGP (args[1]) && STRING_MULTIBYTE (args[1])) /* BYTECODE-STRING must have been produced by Emacs 20.2 or the earlier because they produced a raw 8-bit string for byte-code and now such a byte-code string is loaded as multibyte while diff -r 0b8608a36b55 -r 799b50142743 src/blockinput.h --- a/src/blockinput.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/blockinput.h Sun Jul 11 22:57:47 2010 +0000 @@ -122,7 +122,6 @@ #define INPUT_BLOCKED_P (interrupt_input_blocked > 0) /* Defined in keyboard.c */ -/* Don't use a prototype here; it causes trouble in some files. */ extern void reinvoke_input_signal (void); #endif /* EMACS_BLOCKINPUT_H */ diff -r 0b8608a36b55 -r 799b50142743 src/buffer.h --- a/src/buffer.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/buffer.h Sun Jul 11 22:57:47 2010 +0000 @@ -954,7 +954,7 @@ from the start of a buffer structure. */ #define PER_BUFFER_VAR_OFFSET(VAR) \ - ((char *) &((struct buffer *)0)->VAR - (char *) ((struct buffer *)0)) + offsetof (struct buffer, VAR) /* Return the index of buffer-local variable VAR. Each per-buffer variable has an index > 0 associated with it, except when it always diff -r 0b8608a36b55 -r 799b50142743 src/callint.c --- a/src/callint.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/callint.c Sun Jul 11 22:57:47 2010 +0000 @@ -29,10 +29,6 @@ #include "window.h" #include "keymap.h" -#ifdef HAVE_INDEX -extern char *index (const char *, int); -#endif - extern Lisp_Object Qcursor_in_echo_area; extern Lisp_Object Qfile_directory_p; extern Lisp_Object Qonly; @@ -469,7 +465,7 @@ j += 2; else j++; - tem = (unsigned char *) index (tem, '\n'); + tem = (unsigned char *) strchr (tem, '\n'); if (tem) ++tem; else @@ -500,11 +496,11 @@ { strncpy (prompt1, tem + 1, sizeof prompt1 - 1); prompt1[sizeof prompt1 - 1] = 0; - tem1 = (char *) index (prompt1, '\n'); + tem1 = strchr (prompt1, '\n'); if (tem1) *tem1 = 0; visargs[0] = build_string (prompt1); - if (index (prompt1, '%')) + if (strchr (prompt1, '%')) callint_message = Fformat (i, visargs); else callint_message = visargs[0]; @@ -809,7 +805,7 @@ if (NILP (visargs[i]) && STRINGP (args[i])) visargs[i] = args[i]; - tem = (unsigned char *) index (tem, '\n'); + tem = (unsigned char *) strchr (tem, '\n'); if (tem) tem++; else tem = (unsigned char *) ""; } diff -r 0b8608a36b55 -r 799b50142743 src/callproc.c --- a/src/callproc.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/callproc.c Sun Jul 11 22:57:47 2010 +0000 @@ -1288,27 +1288,34 @@ return fd; else { - int new = dup (fd); + int new; +#ifdef F_DUPFD + new = fcntl (fd, F_DUPFD, minfd); +#else + new = dup (fd); + if (new != -1) + /* Note that we hold the original FD open while we recurse, + to guarantee we'll get a new FD if we need it. */ + new = relocate_fd (new, minfd); +#endif if (new == -1) { - char *message1 = "Error while setting up child: "; - char *errmessage = strerror (errno); - char *message2 = "\n"; + const char *message1 = "Error while setting up child: "; + const char *errmessage = strerror (errno); + const char *message2 = "\n"; emacs_write (2, message1, strlen (message1)); emacs_write (2, errmessage, strlen (errmessage)); emacs_write (2, message2, strlen (message2)); _exit (1); } - /* Note that we hold the original FD open while we recurse, - to guarantee we'll get a new FD if we need it. */ - new = relocate_fd (new, minfd); emacs_close (fd); return new; } } static int -getenv_internal_1 (char *var, int varlen, char **value, int *valuelen, Lisp_Object env) +getenv_internal_1 (const char *var, int varlen, char **value, int *valuelen, + Lisp_Object env) { for (; CONSP (env); env = XCDR (env)) { @@ -1342,7 +1349,8 @@ } static int -getenv_internal (char *var, int varlen, char **value, int *valuelen, Lisp_Object frame) +getenv_internal (const char *var, int varlen, char **value, int *valuelen, + Lisp_Object frame) { /* Try to find VAR in Vprocess_environment first. */ if (getenv_internal_1 (var, varlen, value, valuelen, @@ -1403,7 +1411,7 @@ /* A version of getenv that consults the Lisp environment lists, easily callable from C. */ char * -egetenv (char *var) +egetenv (const char *var) { char *value; int valuelen; diff -r 0b8608a36b55 -r 799b50142743 src/config.in --- a/src/config.in Fri Jul 09 01:50:09 2010 +0000 +++ b/src/config.in Sun Jul 11 22:57:47 2010 +0000 @@ -288,9 +288,6 @@ /* Define to 1 if netdb.h declares h_errno. */ #undef HAVE_H_ERRNO -/* Define to 1 if you have the `index' function. */ -#undef HAVE_INDEX - /* Define to 1 if you have inet sockets. */ #undef HAVE_INET_SOCKETS @@ -537,9 +534,6 @@ /* Define to 1 if res_init is available. */ #undef HAVE_RES_INIT -/* Define to 1 if you have the `rindex' function. */ -#undef HAVE_RINDEX - /* Define to 1 if you have the `rint' function. */ #undef HAVE_RINT @@ -597,6 +591,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H +/* Define to 1 if you have the `strchr' function. */ +#undef HAVE_STRCHR + /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR @@ -609,6 +606,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H +/* Define to 1 if you have the `strrchr' function. */ +#undef HAVE_STRRCHR + /* Define to 1 if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL @@ -1154,6 +1154,14 @@ typedef unsigned size_t; #endif +#ifndef HAVE_STRCHR +#define strchr(a, b) index (a, b) +#endif + +#ifndef HAVE_STRRCHR +#define strrchr(a, b) rindex (a, b) +#endif + #if defined __GNUC__ && (__GNUC__ > 2 \ || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) #define NO_RETURN __attribute__ ((__noreturn__)) diff -r 0b8608a36b55 -r 799b50142743 src/dbusbind.c --- a/src/dbusbind.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/dbusbind.c Sun Jul 11 22:57:47 2010 +0000 @@ -714,9 +714,11 @@ } /* Initialize D-Bus connection. BUS is a Lisp symbol, either :system - or :session. It tells which D-Bus to be initialized. */ + or :session. It tells which D-Bus to be initialized. RAISE_ERROR + can be TRUE or FALSE, it controls whether an error is signalled in + case the connection cannot be initialized. */ static DBusConnection * -xd_initialize (Lisp_Object bus) +xd_initialize (Lisp_Object bus, int raise_error) { DBusConnection *connection; DBusError derror; @@ -724,12 +726,18 @@ /* Parameter check. */ CHECK_SYMBOL (bus); if (!(EQ (bus, QCdbus_system_bus) || EQ (bus, QCdbus_session_bus))) - XD_SIGNAL2 (build_string ("Wrong bus name"), bus); + if (raise_error == TRUE) + XD_SIGNAL2 (build_string ("Wrong bus name"), bus); + else + return NULL; /* We do not want to have an autolaunch for the session bus. */ if (EQ (bus, QCdbus_session_bus) && getenv ("DBUS_SESSION_BUS_ADDRESS") == NULL) - XD_SIGNAL2 (build_string ("No connection to bus"), bus); + if (raise_error == TRUE) + XD_SIGNAL2 (build_string ("No connection to bus"), bus); + else + return NULL; /* Open a connection to the bus. */ dbus_error_init (&derror); @@ -740,9 +748,12 @@ connection = dbus_bus_get (DBUS_BUS_SESSION, &derror); if (dbus_error_is_set (&derror)) - XD_ERROR (derror); + if (raise_error == TRUE) + XD_ERROR (derror); + else + connection = NULL; - if (connection == NULL) + if ((connection == NULL) && (raise_error == TRUE)) XD_SIGNAL2 (build_string ("No connection to bus"), bus); /* Cleanup. */ @@ -829,7 +840,7 @@ CHECK_SYMBOL (bus); /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Add the watch functions. We pass also the bus as data, in order to distinguish between the busses in xd_remove_watch. */ @@ -855,7 +866,7 @@ CHECK_SYMBOL (bus); /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Request the name. */ name = dbus_bus_get_unique_name (connection); @@ -970,7 +981,7 @@ SDATA (method)); /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Create the message. */ dmessage = dbus_message_new_method_call (SDATA (service), @@ -1153,7 +1164,7 @@ SDATA (method)); /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Create the message. */ dmessage = dbus_message_new_method_call (SDATA (service), @@ -1268,7 +1279,7 @@ XD_DEBUG_MESSAGE ("%lu %s ", (unsigned long) XUINT (serial), SDATA (service)); /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Create the message. */ dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_METHOD_RETURN); @@ -1360,7 +1371,7 @@ XD_DEBUG_MESSAGE ("%lu %s ", (unsigned long) XUINT (serial), SDATA (service)); /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Create the message. */ dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_ERROR); @@ -1483,7 +1494,7 @@ SDATA (signal)); /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Create the message. */ dmessage = dbus_message_new_signal (SDATA (path), @@ -1548,7 +1559,8 @@ DBusConnection *connection; /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, FALSE); + if (connection == NULL) return FALSE; /* Non blocking read of the next available message. */ dbus_connection_read_write (connection, 0); @@ -1592,7 +1604,7 @@ const char *uname, *path, *interface, *member; /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Non blocking read of the next available message. */ dbus_connection_read_write (connection, 0); @@ -1842,7 +1854,7 @@ if (NILP (uname) || (SBYTES (uname) > 0)) { /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Create a rule to receive related signals. */ sprintf (rule, @@ -1932,7 +1944,7 @@ a segmentation fault. */ /* Open a connection to the bus. */ - connection = xd_initialize (bus); + connection = xd_initialize (bus, TRUE); /* Request the known name from the bus. We can ignore the result, it is set to -1 if there is an error - kind of redundancy. */ diff -r 0b8608a36b55 -r 799b50142743 src/dispextern.h --- a/src/dispextern.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/dispextern.h Sun Jul 11 22:57:47 2010 +0000 @@ -105,6 +105,8 @@ /* Number of bits allocated to store fringe bitmap numbers. */ #define FRINGE_ID_BITS 16 +/* Number of bits allocated to store fringe bitmap height. */ +#define FRINGE_HEIGHT_BITS 8 /*********************************************************************** @@ -800,6 +802,12 @@ /* Face of the right fringe glyph. */ unsigned right_fringe_face_id : FACE_ID_BITS; + /* Vertical offset of the left fringe bitmap. */ + signed left_fringe_offset : FRINGE_HEIGHT_BITS; + + /* Vertical offset of the right fringe bitmap. */ + signed right_fringe_offset : FRINGE_HEIGHT_BITS; + /* 1 means that we must draw the bitmaps of this row. */ unsigned redraw_fringe_bitmaps_p : 1; diff -r 0b8608a36b55 -r 799b50142743 src/doc.c --- a/src/doc.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/doc.c Sun Jul 11 22:57:47 2010 +0000 @@ -45,10 +45,6 @@ #include "keymap.h" #include "buildobj.h" -#ifdef HAVE_INDEX -extern char *index (const char *, int); -#endif - Lisp_Object Vdoc_file_name; Lisp_Object Qfunction_documentation; @@ -218,9 +214,9 @@ if (!nread) break; if (p == get_doc_string_buffer) - p1 = (char *) index (p + offset, '\037'); + p1 = strchr (p + offset, '\037'); else - p1 = (char *) index (p, '\037'); + p1 = strchr (p, '\037'); if (p1) { *p1 = 0; @@ -633,7 +629,7 @@ /* p points to ^_Ffunctionname\n or ^_Vvarname\n. */ if (p != end) { - end = (char *) index (p, '\n'); + end = strchr (p, '\n'); /* See if this is a file name, and if it is a file in build-files. */ if (p[1] == 'S' && end - p > 4 && end[-2] == '.' diff -r 0b8608a36b55 -r 799b50142743 src/doprnt.c --- a/src/doprnt.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/doprnt.c Sun Jul 11 22:57:47 2010 +0000 @@ -59,10 +59,10 @@ Integers are passed as C integers. */ int -doprnt (char *buffer, register int bufsize, char *format, char *format_end, int nargs, char **args) +doprnt (char *buffer, register int bufsize, const char *format, + const char *format_end, va_list ap) { - int cnt = 0; /* Number of arg to gobble next */ - register char *fmt = format; /* Pointer into format string */ + const char *fmt = format; /* Pointer into format string */ register char *bufptr = buffer; /* Pointer into output buffer.. */ /* Use this for sprintf unless we need something really big. */ @@ -161,8 +161,6 @@ case 'd': case 'o': case 'x': - if (cnt == nargs) - error ("Not enough arguments for format string"); if (sizeof (int) == sizeof (EMACS_INT)) ; else if (sizeof (long) == sizeof (EMACS_INT)) @@ -173,7 +171,7 @@ string++; else abort (); - sprintf (sprintf_buffer, fmtcpy, args[cnt++]); + sprintf (sprintf_buffer, fmtcpy, va_arg(ap, char *)); /* Now copy into final output, truncating as nec. */ string = (unsigned char *) sprintf_buffer; goto doit; @@ -182,12 +180,8 @@ case 'e': case 'g': { - union { double d; char *half[2]; } u; - if (cnt + 1 == nargs) - error ("Not enough arguments for format string"); - u.half[0] = args[cnt++]; - u.half[1] = args[cnt++]; - sprintf (sprintf_buffer, fmtcpy, u.d); + double d = va_arg(ap, double); + sprintf (sprintf_buffer, fmtcpy, d); /* Now copy into final output, truncating as nec. */ string = (unsigned char *) sprintf_buffer; goto doit; @@ -196,11 +190,9 @@ case 'S': string[-1] = 's'; case 's': - if (cnt == nargs) - error ("Not enough arguments for format string"); if (fmtcpy[1] != 's') minlen = atoi (&fmtcpy[1]); - string = (unsigned char *) args[cnt++]; + string = va_arg(ap, unsigned char *); tem = strlen (string); width = strwidth (string, tem); goto doit1; @@ -250,16 +242,21 @@ continue; case 'c': - if (cnt == nargs) - error ("Not enough arguments for format string"); - tem = CHAR_STRING ((int) (EMACS_INT) args[cnt], charbuf); - string = charbuf; - cnt++; - string[tem] = 0; - width = strwidth (string, tem); - if (fmtcpy[1] != 'c') - minlen = atoi (&fmtcpy[1]); - goto doit1; + { + /* Sometimes for %c we pass a char, which would widen + to int. Sometimes we pass XFASTINT() or XINT() + values, which would be EMACS_INT. Let's hope that + both are passed the same way, otherwise we'll need + to rewrite callers. */ + EMACS_INT chr = va_arg(ap, EMACS_INT); + tem = CHAR_STRING ((int) chr, charbuf); + string = charbuf; + string[tem] = 0; + width = strwidth (string, tem); + if (fmtcpy[1] != 'c') + minlen = atoi (&fmtcpy[1]); + goto doit1; + } case '%': fmt--; /* Drop thru and this % will be treated as normal */ diff -r 0b8608a36b55 -r 799b50142743 src/editfns.c --- a/src/editfns.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/editfns.c Sun Jul 11 22:57:47 2010 +0000 @@ -109,10 +109,6 @@ static Lisp_Object subst_char_in_region_unwind_1 (Lisp_Object); static void transpose_markers (int, int, int, int, int, int, int, int); -#ifdef HAVE_INDEX -extern char *index (const char *, int); -#endif - Lisp_Object Vbuffer_access_fontify_functions; Lisp_Object Qbuffer_access_fontify_functions; Lisp_Object Vbuffer_access_fontified_property; @@ -1369,12 +1365,12 @@ p = (unsigned char *) USER_FULL_NAME; /* Chop off everything after the first comma. */ - q = (unsigned char *) index (p, ','); + q = (unsigned char *) strchr (p, ','); full = make_string (p, q ? q - p : strlen (p)); #ifdef AMPERSAND_FULL_NAME p = SDATA (full); - q = (unsigned char *) index (p, '&'); + q = (unsigned char *) strchr (p, '&'); /* Substitute the login name for the &, upcasing the first character. */ if (q) { @@ -2045,7 +2041,7 @@ responsibility to free. */ void -set_time_zone_rule (char *tzstring) +set_time_zone_rule (const char *tzstring) { int envptrs; char **from, **to, **newenv; @@ -3813,7 +3809,7 @@ discarded[format - format_start] = 1; format++; - while (index ("-+0# ", *format)) + while (strchr ("-+0# ", *format)) { if (*format == '-') { @@ -4111,7 +4107,7 @@ } Lisp_Object -format2 (char *string1, Lisp_Object arg0, Lisp_Object arg1) +format2 (const char *string1, Lisp_Object arg0, Lisp_Object arg1) { Lisp_Object args[3]; args[0] = build_string (string1); diff -r 0b8608a36b55 -r 799b50142743 src/emacs.c --- a/src/emacs.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/emacs.c Sun Jul 11 22:57:47 2010 +0000 @@ -90,12 +90,6 @@ const char emacs_copyright[] = "Copyright (C) 2010 Free Software Foundation, Inc."; const char emacs_version[] = "24.0.50"; -extern void malloc_warning (char *); -extern void set_time_zone_rule (char *); -#ifdef HAVE_INDEX -extern char *index (const char *, int); -#endif - /* Make these values available in GDB, which doesn't see macros. */ #ifdef USE_LSB_TAG @@ -664,7 +658,7 @@ *skipptr += 1; return 1; } - arglen = (valptr != NULL && (p = index (arg, '=')) != NULL + arglen = (valptr != NULL && (p = strchr (arg, '=')) != NULL ? p - arg : strlen (arg)); if (lstr == 0 || arglen < minlen || strncmp (arg, lstr, arglen) != 0) return 0; @@ -1976,7 +1970,7 @@ { match = -1; thislen = strlen (argv[from]); - equals = index (argv[from], '='); + equals = strchr (argv[from], '='); if (equals != 0) thislen = equals - argv[from]; @@ -2344,17 +2338,16 @@ #endif Lisp_Object -decode_env_path (evarname, defalt) - char *evarname, *defalt; +decode_env_path (const char *evarname, const char *defalt) { - register char *path, *p; + const char *path, *p; Lisp_Object lpath, element, tem; /* It's okay to use getenv here, because this function is only used to initialize variables when Emacs starts up, and isn't called after that. */ if (evarname != 0) - path = (char *) getenv (evarname); + path = getenv (evarname); else path = 0; if (!path) @@ -2363,18 +2356,18 @@ /* Ensure values from the environment use the proper directory separator. */ if (path) { - p = alloca (strlen (path) + 1); - strcpy (p, path); - path = p; - - dostounix_filename (path); + char *path_copy = alloca (strlen (path) + 1); + strcpy (path_copy, path); + dostounix_filename (path_copy); + path = path_copy; } #endif lpath = Qnil; while (1) { - p = index (path, SEPCHAR); - if (!p) p = path + strlen (path); + p = strchr (path, SEPCHAR); + if (!p) + p = path + strlen (path); element = (p - path ? make_string (path, p - path) : build_string (".")); diff -r 0b8608a36b55 -r 799b50142743 src/eval.c --- a/src/eval.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/eval.c Sun Jul 11 22:57:47 2010 +0000 @@ -1,7 +1,7 @@ /* Evaluator for GNU Emacs Lisp interpreter. Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 - Free Software Foundation, Inc. + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -172,14 +172,6 @@ static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*); static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN; - -#if __GNUC__ -/* "gcc -O3" enables automatic function inlining, which optimizes out - the arguments for the invocations of these functions, whereas they - expect these values on the stack. */ -Lisp_Object apply1 (Lisp_Object fn, Lisp_Object arg) __attribute__((noinline)); -Lisp_Object call2 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2) __attribute__((noinline)); -#endif void init_eval_once (void) @@ -435,7 +427,7 @@ do { if (!(argnum++)) - val = Feval (Fcar (args_left)); + val = Feval (Fcar (args_left)); else Feval (Fcar (args_left)); args_left = Fcdr (args_left); @@ -470,7 +462,7 @@ do { if (!(argnum++)) - val = Feval (Fcar (args_left)); + val = Feval (Fcar (args_left)); else Feval (Fcar (args_left)); args_left = Fcdr (args_left); @@ -944,30 +936,30 @@ /* If indirect and there's an alias loop, don't check anything else. */ if (XSYMBOL (variable)->redirect == SYMBOL_VARALIAS && NILP (internal_condition_case_1 (lisp_indirect_variable, variable, - Qt, user_variable_p_eh))) + Qt, user_variable_p_eh))) return Qnil; while (1) { documentation = Fget (variable, Qvariable_documentation); if (INTEGERP (documentation) && XINT (documentation) < 0) - return Qt; + return Qt; if (STRINGP (documentation) - && ((unsigned char) SREF (documentation, 0) == '*')) - return Qt; + && ((unsigned char) SREF (documentation, 0) == '*')) + return Qt; /* If it is (STRING . INTEGER), a negative integer means a user variable. */ if (CONSP (documentation) - && STRINGP (XCAR (documentation)) - && INTEGERP (XCDR (documentation)) - && XINT (XCDR (documentation)) < 0) - return Qt; + && STRINGP (XCAR (documentation)) + && INTEGERP (XCDR (documentation)) + && XINT (XCDR (documentation)) < 0) + return Qt; /* Customizable? See `custom-variable-p'. */ if ((!NILP (Fget (variable, intern ("standard-value")))) - || (!NILP (Fget (variable, intern ("custom-autoload"))))) - return Qt; + || (!NILP (Fget (variable, intern ("custom-autoload"))))) + return Qt; if (!(XSYMBOL (variable)->redirect == SYMBOL_VARALIAS)) - return Qnil; + return Qnil; /* An indirect variable? Let's follow the chain. */ XSETSYMBOL (variable, SYMBOL_ALIAS (XSYMBOL (variable))); @@ -1254,7 +1246,7 @@ last_time = catchlist == catch; /* Unwind the specpdl stack, and then restore the proper set of - handlers. */ + handlers. */ unbind_to (catchlist->pdlcount, Qnil); handlerlist = catchlist->handlerlist; catchlist = catchlist->next; @@ -1265,8 +1257,8 @@ /* If x_catch_errors was done, turn it off now. (First we give unbind_to a chance to do that.) */ #if 0 /* This would disable x_catch_errors after x_connection_closed. - * The catch must remain in effect during that delicate - * state. --lorentey */ + The catch must remain in effect during that delicate + state. --lorentey */ x_fully_uncatch_errors (); #endif #endif @@ -1342,13 +1334,13 @@ When a handler handles an error, control returns to the `condition-case' and it executes the handler's BODY... with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error. -(If VAR is nil, the handler can't access that information.) +\(If VAR is nil, the handler can't access that information.) Then the value of the last BODY form is returned from the `condition-case' expression. See also the function `signal' for more info. usage: (condition-case VAR BODYFORM &rest HANDLERS) */) -(Lisp_Object args) + (Lisp_Object args) { register Lisp_Object bodyform, handlers; volatile Lisp_Object var; @@ -1397,7 +1389,7 @@ if (_setjmp (c.jmp)) { if (!NILP (h.var)) - specbind (h.var, c.val); + specbind (h.var, c.val); val = Fprogn (Fcdr (h.chosen_clause)); /* Note that this just undoes the binding of h.var; whoever @@ -1619,7 +1611,7 @@ static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object, - Lisp_Object, Lisp_Object); + Lisp_Object, Lisp_Object); DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0, doc: /* Signal an error. Args are ERROR-SYMBOL and associated DATA. @@ -1783,7 +1775,7 @@ If ARG is not a genuine list, make it a one-element list. */ void -signal_error (char *s, Lisp_Object arg) +signal_error (const char *s, Lisp_Object arg) { Lisp_Object tortoise, hare; @@ -2003,9 +1995,7 @@ /* VARARGS 1 */ void -error (m, a1, a2, a3) - char *m; - char *a1, *a2, *a3; +error (const char *m, ...) { char buf[200]; int size = 200; @@ -2015,15 +2005,18 @@ int allocated = 0; Lisp_Object string; - args[0] = a1; - args[1] = a2; - args[2] = a3; - mlen = strlen (m); while (1) { - int used = doprnt (buffer, size, m, m + mlen, 3, args); + va_list ap; + int used; + + /* A va_list can't be reused if we have to go around the loop + again; we need to "reinitialize" it each time. */ + va_start(ap, m); + used = doprnt (buffer, size, m, m + mlen, ap); + va_end(ap); if (used < size) break; size *= 2; @@ -2515,7 +2508,7 @@ enum run_hooks_condition {to_completion, until_success, until_failure}; static Lisp_Object run_hook_with_args (int, Lisp_Object *, - enum run_hooks_condition); + enum run_hooks_condition); DEFUN ("run-hooks", Frun_hooks, Srun_hooks, 0, MANY, 0, doc: /* Run each hook in HOOKS. @@ -3253,18 +3246,17 @@ case SYMBOL_VARALIAS: sym = indirect_variable (sym); XSETSYMBOL (symbol, sym); goto start; case SYMBOL_PLAINVAL: - { /* The most common case is that of a non-constant symbol with a - trivial value. Make that as fast as we can. */ - specpdl_ptr->symbol = symbol; - specpdl_ptr->old_value = SYMBOL_VAL (sym); - specpdl_ptr->func = NULL; - ++specpdl_ptr; - if (!sym->constant) - SET_SYMBOL_VAL (sym, value); - else - set_internal (symbol, value, Qnil, 1); - break; - } + /* The most common case is that of a non-constant symbol with a + trivial value. Make that as fast as we can. */ + specpdl_ptr->symbol = symbol; + specpdl_ptr->old_value = SYMBOL_VAL (sym); + specpdl_ptr->func = NULL; + ++specpdl_ptr; + if (!sym->constant) + SET_SYMBOL_VAL (sym, value); + else + set_internal (symbol, value, Qnil, 1); + break; case SYMBOL_LOCALIZED: if (SYMBOL_BLV (sym)->frame_local) error ("Frame-local vars cannot be let-bound"); @@ -3374,7 +3366,7 @@ bound a variable that had a buffer-local or frame-local binding. WHERE nil means that the variable had the default value when it was bound. CURRENT-BUFFER is the buffer that - was current when the variable was bound. */ + was current when the variable was bound. */ else if (CONSP (this_binding.symbol)) { Lisp_Object symbol, where; diff -r 0b8608a36b55 -r 799b50142743 src/fileio.c --- a/src/fileio.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/fileio.c Sun Jul 11 22:57:47 2010 +0000 @@ -1455,7 +1455,7 @@ /* Get past ~ to user */ unsigned char *user = nm + 1; /* Find end of name. */ - unsigned char *ptr = (unsigned char *) index (user, '/'); + unsigned char *ptr = (unsigned char *) strchr (user, '/'); int len = ptr ? ptr - user : strlen (user); /* Copy the user name into temp storage. */ o = (unsigned char *) alloca (len + 1); @@ -2729,7 +2729,7 @@ while (valsize >= bufsize); val = make_string (buf, valsize); - if (buf[0] == '/' && index (buf, ':')) + if (buf[0] == '/' && strchr (buf, ':')) val = concat2 (build_string ("/:"), val); xfree (buf); val = DECODE_FILE (val); diff -r 0b8608a36b55 -r 799b50142743 src/filelock.c --- a/src/filelock.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/filelock.c Sun Jul 11 22:57:47 2010 +0000 @@ -413,9 +413,6 @@ static int current_lock_owner (lock_info_type *owner, char *lfname) { -#ifndef index - extern char *rindex (const char *, int), *index (const char *, int); -#endif int len, ret; int local_owner = 0; char *at, *dot, *colon; @@ -457,8 +454,8 @@ /* Parse USER@HOST.PID:BOOT_TIME. If can't parse, return -1. */ /* The USER is everything before the last @. */ - at = rindex (lfinfo, '@'); - dot = rindex (lfinfo, '.'); + at = strrchr (lfinfo, '@'); + dot = strrchr (lfinfo, '.'); if (!at || !dot) { xfree (lfinfo); diff -r 0b8608a36b55 -r 799b50142743 src/fns.c --- a/src/fns.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/fns.c Sun Jul 11 22:57:47 2010 +0000 @@ -371,14 +371,8 @@ return i1 < SCHARS (s2) ? Qt : Qnil; } -#if __GNUC__ -/* "gcc -O3" enables automatic function inlining, which optimizes out - the arguments for the invocations of this function, whereas it - expects these values on the stack. */ -static Lisp_Object concat (int nargs, Lisp_Object *args, enum Lisp_Type target_type, int last_special) __attribute__((noinline)); -#else /* !__GNUC__ */ -static Lisp_Object concat (int nargs, Lisp_Object *args, enum Lisp_Type target_type, int last_special); -#endif +static Lisp_Object concat (int nargs, Lisp_Object *args, + enum Lisp_Type target_type, int last_special); /* ARGSUSED */ Lisp_Object diff -r 0b8608a36b55 -r 799b50142743 src/font.c --- a/src/font.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/font.c Sun Jul 11 22:57:47 2010 +0000 @@ -1815,7 +1815,7 @@ static int font_parse_name (char *name, Lisp_Object font) { - if (name[0] == '-' || index (name, '*') || index (name, '?')) + if (name[0] == '-' || strchr (name, '*') || strchr (name, '?')) return font_parse_xlfd (name, font); return font_parse_fcname (name, font); } @@ -1837,7 +1837,7 @@ CHECK_STRING (family); len = SBYTES (family); p0 = (char *) SDATA (family); - p1 = index (p0, '-'); + p1 = strchr (p0, '-'); if (p1) { if ((*p0 != '*' && p1 - p0 > 0) @@ -1856,7 +1856,7 @@ CHECK_STRING (registry); len = SBYTES (registry); p0 = (char *) SDATA (registry); - p1 = index (p0, '-'); + p1 = strchr (p0, '-'); if (! p1) { if (SDATA (registry)[len - 1] == '*') diff -r 0b8608a36b55 -r 799b50142743 src/fontset.c --- a/src/fontset.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/fontset.c Sun Jul 11 22:57:47 2010 +0000 @@ -1065,8 +1065,8 @@ static Lisp_Object fontset_pattern_regexp (Lisp_Object pattern) { - if (!index ((char *) SDATA (pattern), '*') - && !index ((char *) SDATA (pattern), '?')) + if (!strchr ((char *) SDATA (pattern), '*') + && !strchr ((char *) SDATA (pattern), '?')) /* PATTERN does not contain any wild cards. */ return Qnil; diff -r 0b8608a36b55 -r 799b50142743 src/frame.c --- a/src/frame.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/frame.c Sun Jul 11 22:57:47 2010 +0000 @@ -100,6 +100,7 @@ Lisp_Object Qheight, Qwidth; Lisp_Object Qleft, Qright; Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name; +Lisp_Object Qtooltip; Lisp_Object Qinternal_border_width; Lisp_Object Qmouse_color; Lisp_Object Qminibuffer; @@ -326,6 +327,8 @@ f->n_tool_bar_items = 0; f->left_fringe_width = f->right_fringe_width = 0; f->fringe_cols = 0; + f->menu_bar_lines = 0; + f->tool_bar_lines = 0; f->scroll_bar_actual_width = 0; f->border_width = 0; f->internal_border_width = 0; @@ -550,6 +553,7 @@ FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none; + FRAME_MENU_BAR_LINES(f) = NILP (Vmenu_bar_mode) ? 0 : 1; #ifdef CANNOT_DUMP if (!noninteractive) @@ -600,6 +604,7 @@ FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none; + FRAME_MENU_BAR_LINES(f) = NILP (Vmenu_bar_mode) ? 0 : 1; /* Set the top frame to the newly created frame. */ if (FRAMEP (FRAME_TTY (f)->top_frame) @@ -1298,7 +1303,7 @@ struct frame *sf = SELECTED_FRAME (); struct kboard *kb; - int minibuffer_selected; + int minibuffer_selected, tooltip_frame; if (EQ (frame, Qnil)) { @@ -1350,13 +1355,15 @@ } } + tooltip_frame = !NILP (Fframe_parameter (frame, intern ("tooltip"))); + /* Run `delete-frame-functions' unless FORCE is `noelisp' or frame is a tooltip. FORCE is set to `noelisp' when handling a disconnect from the terminal, so we don't dare call Lisp code. */ - if (NILP (Vrun_hooks) || !NILP (Fframe_parameter (frame, intern ("tooltip")))) + if (NILP (Vrun_hooks) || tooltip_frame) ; - if (EQ (force, Qnoelisp)) + else if (EQ (force, Qnoelisp)) pending_funcalls = Fcons (list3 (Qrun_hook_with_args, Qdelete_frame_functions, frame), pending_funcalls); @@ -1602,7 +1609,8 @@ } /* Cause frame titles to update--necessary if we now have just one frame. */ - update_mode_lines = 1; + if (!tooltip_frame) + update_mode_lines = 1; return Qnil; } @@ -4320,6 +4328,8 @@ staticpro (&Qicon_left); Qicon_top = intern_c_string ("icon-top"); staticpro (&Qicon_top); + Qtooltip = intern_c_string ("tooltip"); + staticpro (&Qtooltip); Qleft = intern_c_string ("left"); staticpro (&Qleft); Qright = intern_c_string ("right"); diff -r 0b8608a36b55 -r 799b50142743 src/fringe.c --- a/src/fringe.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/fringe.c Sun Jul 11 22:57:47 2010 +0000 @@ -555,23 +555,26 @@ struct fringe_bitmap *fb; int period; int face_id = DEFAULT_FACE_ID; + int offset, header_line_height; - p.cursor_p = 0; p.overlay_p = (overlay & 1) == 1; p.cursor_p = (overlay & 2) == 2; if (which != NO_FRINGE_BITMAP) { + offset = 0; } else if (left_p) { which = row->left_fringe_bitmap; face_id = row->left_fringe_face_id; + offset = row->left_fringe_offset; } else { which = row->right_fringe_bitmap; face_id = row->right_fringe_face_id; + offset = row->right_fringe_offset; } if (face_id == DEFAULT_FACE_ID) @@ -591,7 +594,7 @@ period = fb->period; /* Convert row to frame coordinates. */ - p.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); + p.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y) + offset; p.which = which; p.bits = fb->bits; @@ -600,9 +603,19 @@ p.h = fb->height; p.dh = (period > 0 ? (p.y % period) : 0); p.h -= p.dh; - /* Clip bitmap if too high. */ - if (p.h > row->height) - p.h = row->height; + + /* Adjust y to the offset in the row to start drawing the bitmap. */ + switch (fb->align) + { + case ALIGN_BITMAP_CENTER: + p.y += (row->height - p.h) / 2; + break; + case ALIGN_BITMAP_BOTTOM: + p.y += (row->visible_height - p.h); + break; + case ALIGN_BITMAP_TOP: + break; + } p.face = FACE_FROM_ID (f, face_id); @@ -618,6 +631,9 @@ /* Clear left fringe if no bitmap to draw or if bitmap doesn't fill the fringe. */ p.bx = -1; + header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); + p.by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, row->y)); + p.ny = row->visible_height; if (left_p) { int wd = WINDOW_LEFT_FRINGE_WIDTH (w); @@ -628,7 +644,7 @@ p.wd = wd; p.x = x - p.wd - (wd - p.wd) / 2; - if (p.wd < wd || row->height > p.h) + if (p.wd < wd || p.y > p.by || p.y + p.h < p.by + p.ny) { /* If W has a vertical border to its left, don't draw over it. */ wd -= ((!WINDOW_LEFTMOST_P (w) @@ -650,35 +666,13 @@ p.x = x + (wd - p.wd) / 2; /* Clear right fringe if no bitmap to draw of if bitmap doesn't fill the fringe. */ - if (p.wd < wd || row->height > p.h) + if (p.wd < wd || p.y > p.by || p.y + p.h < p.by + p.ny) { p.bx = x; p.nx = wd; } } - if (p.bx >= 0) - { - int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); - - p.by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, row->y)); - p.ny = row->visible_height; - } - - /* Adjust y to the offset in the row to start drawing the bitmap. */ - switch (fb->align) - { - case ALIGN_BITMAP_CENTER: - p.y += (row->height - p.h) / 2; - break; - case ALIGN_BITMAP_BOTTOM: - p.h = fb->height; - p.y += (row->visible_height - p.h); - break; - case ALIGN_BITMAP_TOP: - break; - } - FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p); } @@ -892,7 +886,7 @@ struct glyph_row *row; int yb = window_text_bottom_y (w); int nrows = w->current_matrix->nrows; - int y = 0, rn; + int y, rn; int updated = 0; if (w->pseudo_window_p) @@ -904,7 +898,7 @@ || WINDOW_RIGHT_FRINGE_WIDTH (w) == 0)) updated++; - for (y = 0, rn = 0, row = w->current_matrix->rows; + for (y = w->vscroll, rn = 0, row = w->current_matrix->rows; y < yb && rn < nrows; y += row->height, ++row, ++rn) { @@ -938,6 +932,9 @@ Lisp_Object ind = Qnil; #define MAX_BITMAP_CACHE (8*4) int bitmap_cache[MAX_BITMAP_CACHE]; + int top_ind_rn, bot_ind_rn; + int top_ind_min_y, bot_ind_max_y; + int top_row_ends_at_zv_p, bot_row_ends_at_zv_p; if (w->pseudo_window_p) return 0; @@ -966,11 +963,10 @@ boundary_top = boundary_bot = Qleft; } + top_ind_rn = bot_ind_rn = -1; if (!NILP (ind)) { - int done_top = 0, done_bot = 0; - - for (y = 0, rn = 0; + for (y = w->vscroll, rn = 0; y < yb && rn < nrows; y += row->height, ++rn) { @@ -991,31 +987,25 @@ if (!row->mode_line_p) { - if (!done_top) + if (top_ind_rn < 0 && row->visible_height > 0) { if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer)) && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P (w, row)) row->indicate_bob_p = !NILP (boundary_top); else row->indicate_top_line_p = !NILP (arrow_top); - done_top = 1; + top_ind_rn = rn; } - if (!done_bot) + if (bot_ind_rn < 0) { if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer)) && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P (w, row)) - row->indicate_eob_p = !NILP (boundary_bot), done_bot = 1; + row->indicate_eob_p = !NILP (boundary_bot), bot_ind_rn = rn; else if (y + row->height >= yb) - row->indicate_bottom_line_p = !NILP (arrow_bot), done_bot = 1; + row->indicate_bottom_line_p = !NILP (arrow_bot), bot_ind_rn = rn; } } - - if (indicate_bob_p != row->indicate_bob_p - || indicate_top_line_p != row->indicate_top_line_p - || indicate_eob_p != row->indicate_eob_p - || indicate_bottom_line_p != row->indicate_bottom_line_p) - row->redraw_fringe_bitmaps_p = 1; } } @@ -1039,12 +1029,139 @@ get_logical_fringe_bitmap (w, which, 1, partial_p))) - for (y = 0, rn = 0; + /* Extend top-aligned top indicator (or bottom-aligned bottom + indicator) to adjacent rows if it doesn't fit in one row. */ + top_ind_min_y = bot_ind_max_y = -1; + if (top_ind_rn >= 0) + { + int bn = NO_FRINGE_BITMAP; + + row = w->desired_matrix->rows + top_ind_rn; + if (!row->enabled_p) + row = w->current_matrix->rows + top_ind_rn; + + top_row_ends_at_zv_p = row->ends_at_zv_p; + if (row->indicate_bob_p) + { + if (EQ (boundary_top, Qleft)) + bn = ((row->indicate_eob_p && EQ (boundary_bot, Qleft)) + ? LEFT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p) + : LEFT_FRINGE (2, Qtop, 0)); + else + bn = ((row->indicate_eob_p && EQ (boundary_bot, Qright)) + ? RIGHT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p) + : RIGHT_FRINGE (2, Qtop, 0)); + } + else if (row->indicate_top_line_p) + { + if (EQ (arrow_top, Qleft)) + bn = LEFT_FRINGE (6, Qup, 0); + else + bn = RIGHT_FRINGE (6, Qup, 0); + } + + if (bn != NO_FRINGE_BITMAP) + { + struct fringe_bitmap *fb; + + fb = fringe_bitmaps[bn]; + if (fb == NULL) + fb = &standard_bitmaps[bn < MAX_STANDARD_FRINGE_BITMAPS + ? bn : UNDEF_FRINGE_BITMAP]; + if (fb->align == ALIGN_BITMAP_TOP && fb->period == 0) + { + struct glyph_row *row1; + int top_ind_max_y; + + top_ind_min_y = WINDOW_HEADER_LINE_HEIGHT (w); + top_ind_max_y = top_ind_min_y + fb->height; + if (top_ind_max_y > yb) + top_ind_max_y = yb; + + for (y = row->y + row->height, rn = top_ind_rn + 1; + y < top_ind_max_y && rn < nrows; + y += row1->height, rn++) + { + if (bot_ind_rn >= 0 && rn >= bot_ind_rn) + break; + + row1 = w->desired_matrix->rows + rn; + if (!row1->enabled_p) + row1 = w->current_matrix->rows + rn; + + row1->indicate_bob_p = row->indicate_bob_p; + row1->indicate_top_line_p = row->indicate_top_line_p; + } + } + } + } + if (bot_ind_rn >= 0) + { + int bn = NO_FRINGE_BITMAP; + + row = w->desired_matrix->rows + bot_ind_rn; + if (!row->enabled_p) + row = w->current_matrix->rows + bot_ind_rn; + + bot_row_ends_at_zv_p = row->ends_at_zv_p; + if (row->indicate_eob_p) + { + if (EQ (boundary_bot, Qleft)) + bn = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p); + else + bn = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p); + } + else if (row->indicate_bottom_line_p) + { + if (EQ (arrow_bot, Qleft)) + bn = LEFT_FRINGE (7, Qdown, 0); + else + bn = RIGHT_FRINGE (7, Qdown, 0); + } + + if (bn != NO_FRINGE_BITMAP) + { + struct fringe_bitmap *fb; + + fb = fringe_bitmaps[bn]; + if (fb == NULL) + fb = &standard_bitmaps[bn < MAX_STANDARD_FRINGE_BITMAPS + ? bn : UNDEF_FRINGE_BITMAP]; + if (fb->align == ALIGN_BITMAP_BOTTOM && fb->period == 0) + { + struct glyph_row *row1; + int bot_ind_min_y; + + bot_ind_max_y = row->y + row->visible_height; + bot_ind_min_y = bot_ind_max_y - fb->height; + if (bot_ind_min_y < WINDOW_HEADER_LINE_HEIGHT (w)) + bot_ind_min_y = WINDOW_HEADER_LINE_HEIGHT (w); + + for (y = row->y, rn = bot_ind_rn - 1; + y >= bot_ind_min_y && rn >= 0; + y -= row1->height, rn--) + { + if (top_ind_rn >= 0 && rn <= top_ind_rn) + break; + + row1 = w->desired_matrix->rows + rn; + if (!row1->enabled_p) + row1 = w->current_matrix->rows + rn; + + row1->indicate_eob_p = row->indicate_eob_p; + row1->indicate_bottom_line_p = row->indicate_bottom_line_p; + } + } + } + } + + for (y = w->vscroll, rn = 0; y < yb && rn < nrows; y += row->height, rn++) { int left, right; unsigned left_face_id, right_face_id; + int left_offset, right_offset; row = w->desired_matrix->rows + rn; cur = w->current_matrix->rows + rn; @@ -1052,6 +1169,7 @@ row = cur; left_face_id = right_face_id = DEFAULT_FACE_ID; + left_offset = right_offset = 0; /* Decide which bitmap to draw in the left fringe. */ if (WINDOW_LEFT_FRINGE_WIDTH (w) == 0) @@ -1065,20 +1183,35 @@ || (row->reversed_p && row->truncated_on_right_p)) left = LEFT_FRINGE(0, Qtruncation, 0); else if (row->indicate_bob_p && EQ (boundary_top, Qleft)) - left = ((row->indicate_eob_p && EQ (boundary_bot, Qleft)) - ? LEFT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p) - : LEFT_FRINGE (2, Qtop, 0)); + { + left = ((row->indicate_eob_p && EQ (boundary_bot, Qleft)) + ? LEFT_FRINGE (1, Qtop_bottom, top_row_ends_at_zv_p) + : LEFT_FRINGE (2, Qtop, 0)); + if (top_ind_min_y >= 0) + left_offset = top_ind_min_y - row->y; + } else if (row->indicate_eob_p && EQ (boundary_bot, Qleft)) - left = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p); - else if ((!row->reversed_p && MATRIX_ROW_CONTINUATION_LINE_P (row)) - || (row->reversed_p && row->continued_p)) + { + left = LEFT_FRINGE (3, Qbottom, bot_row_ends_at_zv_p); + if (bot_ind_max_y >= 0) + left_offset = bot_ind_max_y - (row->y + row->visible_height); + } + else if (MATRIX_ROW_CONTINUATION_LINE_P (row)) left = LEFT_FRINGE (4, Qcontinuation, 0); else if (row->indicate_empty_line_p && EQ (empty_pos, Qleft)) left = LEFT_FRINGE (5, Qempty_line, 0); else if (row->indicate_top_line_p && EQ (arrow_top, Qleft)) - left = LEFT_FRINGE (6, Qup, 0); + { + left = LEFT_FRINGE (6, Qup, 0); + if (top_ind_min_y >= 0) + left_offset = top_ind_min_y - row->y; + } else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qleft)) - left = LEFT_FRINGE (7, Qdown, 0); + { + left = LEFT_FRINGE (7, Qdown, 0); + if (bot_ind_max_y >= 0) + left_offset = bot_ind_max_y - (row->y + row->visible_height); + } else left = NO_FRINGE_BITMAP; @@ -1094,18 +1227,33 @@ || (row->reversed_p && row->truncated_on_left_p)) right = RIGHT_FRINGE (0, Qtruncation, 0); else if (row->indicate_bob_p && EQ (boundary_top, Qright)) - right = ((row->indicate_eob_p && EQ (boundary_bot, Qright)) - ? RIGHT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p) - : RIGHT_FRINGE (2, Qtop, 0)); + { + right = ((row->indicate_eob_p && EQ (boundary_bot, Qright)) + ? RIGHT_FRINGE (1, Qtop_bottom, top_row_ends_at_zv_p) + : RIGHT_FRINGE (2, Qtop, 0)); + if (top_ind_min_y >= 0) + right_offset = top_ind_min_y - row->y; + } else if (row->indicate_eob_p && EQ (boundary_bot, Qright)) - right = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p); - else if ((!row->reversed_p && row->continued_p) - || (row->reversed_p && MATRIX_ROW_CONTINUATION_LINE_P (row))) + { + right = RIGHT_FRINGE (3, Qbottom, bot_row_ends_at_zv_p); + if (bot_ind_max_y >= 0) + right_offset = bot_ind_max_y - (row->y + row->visible_height); + } + else if (row->continued_p) right = RIGHT_FRINGE (4, Qcontinuation, 0); else if (row->indicate_top_line_p && EQ (arrow_top, Qright)) - right = RIGHT_FRINGE (6, Qup, 0); + { + right = RIGHT_FRINGE (6, Qup, 0); + if (top_ind_min_y >= 0) + right_offset = top_ind_min_y - row->y; + } else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qright)) - right = RIGHT_FRINGE (7, Qdown, 0); + { + right = RIGHT_FRINGE (7, Qdown, 0); + if (bot_ind_max_y >= 0) + right_offset = bot_ind_max_y - (row->y + row->visible_height); + } else if (row->indicate_empty_line_p && EQ (empty_pos, Qright)) right = RIGHT_FRINGE (5, Qempty_line, 0); else @@ -1118,6 +1266,8 @@ || right != cur->right_fringe_bitmap || left_face_id != cur->left_fringe_face_id || right_face_id != cur->right_fringe_face_id + || left_offset != cur->left_fringe_offset + || right_offset != cur->right_fringe_offset || cur->redraw_fringe_bitmaps_p) { redraw_p = row->redraw_fringe_bitmaps_p = 1; @@ -1128,6 +1278,8 @@ cur->right_fringe_bitmap = right; cur->left_fringe_face_id = left_face_id; cur->right_fringe_face_id = right_face_id; + cur->left_fringe_offset = left_offset; + cur->right_fringe_offset = right_offset; } } @@ -1144,9 +1296,8 @@ row->right_fringe_bitmap = right; row->left_fringe_face_id = left_face_id; row->right_fringe_face_id = right_face_id; - - if (rn > 0 && row->redraw_fringe_bitmaps_p) - row[-1].redraw_fringe_bitmaps_p = cur[-1].redraw_fringe_bitmaps_p = 1; + row->left_fringe_offset = left_offset; + row->right_fringe_offset = right_offset; } return redraw_p && !keep_current_p; diff -r 0b8608a36b55 -r 799b50142743 src/image.c --- a/src/image.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/image.c Sun Jul 11 22:57:47 2010 +0000 @@ -1053,6 +1053,10 @@ /* Free resources, then free IMG. */ img->type->free (f, img); xfree (img); + + /* As display glyphs may still be referring to the image ID, we + must garbage the frame (Bug#6426). */ + SET_FRAME_GARBAGED (f); } } diff -r 0b8608a36b55 -r 799b50142743 src/insdel.c --- a/src/insdel.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/insdel.c Sun Jul 11 22:57:47 2010 +0000 @@ -1628,7 +1628,7 @@ void replace_range_2 (EMACS_INT from, EMACS_INT from_byte, EMACS_INT to, EMACS_INT to_byte, - char *ins, EMACS_INT inschars, EMACS_INT insbytes, + const char *ins, EMACS_INT inschars, EMACS_INT insbytes, int markers) { EMACS_INT nbytes_del, nchars_del; diff -r 0b8608a36b55 -r 799b50142743 src/keyboard.c --- a/src/keyboard.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/keyboard.c Sun Jul 11 22:57:47 2010 +0000 @@ -42,7 +42,7 @@ #include "puresize.h" #include "systime.h" #include "atimer.h" -#include +#include "process.h" #include #ifdef HAVE_GTK_AND_PTHREAD @@ -1238,7 +1238,7 @@ string. */ void -cmd_error_internal (Lisp_Object data, char *context) +cmd_error_internal (Lisp_Object data, const char *context) { struct frame *sf = SELECTED_FRAME (); @@ -9000,48 +9000,48 @@ int dont_downcase_last, int can_return_switch_frame, int fix_current_buffer) { - volatile Lisp_Object from_string; - volatile int count = SPECPDL_INDEX (); + Lisp_Object from_string; + int count = SPECPDL_INDEX (); /* How many keys there are in the current key sequence. */ - volatile int t; + int t; /* The length of the echo buffer when we started reading, and the length of this_command_keys when we started reading. */ - volatile int echo_start; - volatile int keys_start; + int echo_start; + int keys_start; /* The number of keymaps we're scanning right now, and the number of keymaps we have allocated space for. */ - volatile int nmaps; - volatile int nmaps_allocated = 0; + int nmaps; + int nmaps_allocated = 0; /* defs[0..nmaps-1] are the definitions of KEYBUF[0..t-1] in the current keymaps. */ - Lisp_Object *volatile defs = NULL; + Lisp_Object *defs = NULL; /* submaps[0..nmaps-1] are the prefix definitions of KEYBUF[0..t-1] in the current keymaps, or nil where it is not a prefix. */ - Lisp_Object *volatile submaps = NULL; + Lisp_Object *submaps = NULL; /* The local map to start out with at start of key sequence. */ - volatile Lisp_Object orig_local_map; + Lisp_Object orig_local_map; /* The map from the `keymap' property to start out with at start of key sequence. */ - volatile Lisp_Object orig_keymap; + Lisp_Object orig_keymap; /* 1 if we have already considered switching to the local-map property of the place where a mouse click occurred. */ - volatile int localized_local_map = 0; + int localized_local_map = 0; /* The index in submaps[] of the first keymap that has a binding for this key sequence. In other words, the lowest i such that submaps[i] is non-nil. */ - volatile int first_binding; + int first_binding; /* Index of the first key that has no binding. It is useless to try fkey.start larger than that. */ - volatile int first_unbound; + int first_unbound; /* If t < mock_input, then KEYBUF[t] should be read as the next input key. @@ -9056,7 +9056,7 @@ restart_sequence; the loop will read keys from keybuf up until mock_input, thus rebuilding the state; and then it will resume reading characters from the keyboard. */ - volatile int mock_input = 0; + int mock_input = 0; /* If the sequence is unbound in submaps[], then keybuf[fkey.start..fkey.end-1] is a prefix in Vfunction_key_map, @@ -9066,28 +9066,28 @@ should hold off until t reaches them. We do this when we've just recognized a function key, to avoid searching for the function key's again in Vfunction_key_map. */ - volatile keyremap fkey; + keyremap fkey; /* Likewise, for key_translation_map and input-decode-map. */ - volatile keyremap keytran, indec; + keyremap keytran, indec; /* Non-zero if we are trying to map a key by changing an upper-case letter to lower case, or a shifted function key to an unshifted one. */ - volatile int shift_translated = 0; + int shift_translated = 0; /* If we receive a `switch-frame' or `select-window' event in the middle of a key sequence, we put it off for later. While we're reading, we keep the event here. */ - volatile Lisp_Object delayed_switch_frame; + Lisp_Object delayed_switch_frame; /* See the comment below... */ #if defined (GOBBLE_FIRST_EVENT) Lisp_Object first_event; #endif - volatile Lisp_Object original_uppercase; - volatile int original_uppercase_position = -1; + Lisp_Object original_uppercase; + int original_uppercase_position = -1; /* Gets around Microsoft compiler limitations. */ int dummyflag = 0; @@ -9095,7 +9095,7 @@ struct buffer *starting_buffer; /* List of events for which a fake prefix key has been generated. */ - volatile Lisp_Object fake_prefixed_keys = Qnil; + Lisp_Object fake_prefixed_keys = Qnil; #if defined (GOBBLE_FIRST_EVENT) int junk; @@ -9252,13 +9252,13 @@ (say, a mouse click on the mode line which is being treated as [mode-line (mouse-...)], then we backtrack to this point of keybuf. */ - volatile int last_real_key_start; + int last_real_key_start; /* These variables are analogous to echo_start and keys_start; while those allow us to restart the entire key sequence, echo_local_start and keys_local_start allow us to throw away just one key. */ - volatile int echo_local_start, keys_local_start, local_first_binding; + int echo_local_start, keys_local_start, local_first_binding; eassert (indec.end == t || (indec.end > t && indec.end <= mock_input)); eassert (indec.start <= indec.end); diff -r 0b8608a36b55 -r 799b50142743 src/keyboard.h --- a/src/keyboard.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/keyboard.h Sun Jul 11 22:57:47 2010 +0000 @@ -468,7 +468,6 @@ extern void swallow_events (int); extern int help_char_p (Lisp_Object); extern void quit_throw_to_read_char (void) NO_RETURN; -extern void cmd_error_internal (Lisp_Object, char *); extern int lucid_event_type_list_p (Lisp_Object); extern void kbd_buffer_store_event (struct input_event *); extern void kbd_buffer_store_event_hold (struct input_event *, diff -r 0b8608a36b55 -r 799b50142743 src/keymap.c --- a/src/keymap.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/keymap.c Sun Jul 11 22:57:47 2010 +0000 @@ -1126,11 +1126,13 @@ doc: /* In KEYMAP, define key sequence KEY as DEF. KEYMAP is a keymap. -KEY is a string or a vector of symbols and characters meaning a +KEY is a string or a vector of symbols and characters, representing a sequence of keystrokes and events. Non-ASCII characters with codes -above 127 (such as ISO Latin-1) can be included if you use a vector. -Using [t] for KEY creates a default definition, which applies to any -event type that has no other definition in this keymap. +above 127 (such as ISO Latin-1) can be represented by vectors. +Two types of vector have special meanings: + [remap COMMAND] remaps any key binding for COMMAND. + [t] creates a default definition, which applies to any event with no + other definition in KEYMAP. DEF is anything that can be a key's definition: nil (means key is undefined in this keymap), diff -r 0b8608a36b55 -r 799b50142743 src/lisp.h --- a/src/lisp.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/lisp.h Sun Jul 11 22:57:47 2010 +0000 @@ -21,6 +21,9 @@ #ifndef EMACS_LISP_H #define EMACS_LISP_H +#include +#include + /* Use the configure flag --enable-checking[=LIST] to enable various types of run time checks for Lisp objects. */ @@ -782,13 +785,6 @@ unsigned char *data; }; -#ifdef offsetof -#define OFFSETOF(type,field) offsetof(type,field) -#else -#define OFFSETOF(type,field) \ - ((int)((char*)&((type*)0)->field - (char*)0)) -#endif - struct Lisp_Vector { EMACS_UINT size; @@ -799,7 +795,7 @@ /* If a struct is made to look like a vector, this macro returns the length of the shortest vector that would hold that struct. */ #define VECSIZE(type) ((sizeof (type) \ - - OFFSETOF (struct Lisp_Vector, contents[0]) \ + - offsetof (struct Lisp_Vector, contents[0]) \ + sizeof(Lisp_Object) - 1) /* round up */ \ / sizeof (Lisp_Object)) @@ -807,7 +803,7 @@ at the end and we need to compute the number of Lisp_Object fields (the ones that the GC needs to trace). */ #define PSEUDOVECSIZE(type, nonlispfield) \ - ((OFFSETOF(type, nonlispfield) - OFFSETOF(struct Lisp_Vector, contents[0])) \ + ((offsetof(type, nonlispfield) - offsetof(struct Lisp_Vector, contents[0])) \ / sizeof (Lisp_Object)) /* A char-table is a kind of vectorlike, with contents are like a @@ -2614,7 +2610,7 @@ EMACS_INT, EMACS_INT); extern void replace_range (EMACS_INT, EMACS_INT, Lisp_Object, int, int, int); extern void replace_range_2 (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT, - char *, EMACS_INT, EMACS_INT, int); + const char *, EMACS_INT, EMACS_INT, int); extern void syms_of_insdel (void); /* Defined in dispnew.c */ @@ -2648,16 +2644,16 @@ extern Lisp_Object current_message (void); extern void set_message (const char *s, Lisp_Object, int, int); extern void clear_message (int, int); -extern void message (/* char *, ... */); -extern void message_nolog (/* char *, ... */); -extern void message1 (char *); -extern void message1_nolog (char *); +extern void message (const char *, ...); +extern void message_nolog (const char *, ...); +extern void message1 (const char *); +extern void message1_nolog (const char *); extern void message2 (const char *, int, int); extern void message2_nolog (const char *, int, int); extern void message3 (Lisp_Object, int, int); extern void message3_nolog (Lisp_Object, int, int); extern void message_dolog (const char *, int, int, int); -extern void message_with_string (char *, Lisp_Object, int); +extern void message_with_string (const char *, Lisp_Object, int); extern void message_log_maybe_newline (void); extern void update_echo_area (void); extern void truncate_echo_area (int); @@ -2678,14 +2674,14 @@ extern void syms_of_xsettings (void); /* Defined in vm-limit.c. */ -extern void memory_warnings (POINTER_TYPE *, void (*warnfun) (char*)); +extern void memory_warnings (POINTER_TYPE *, void (*warnfun) (const char *)); /* Defined in alloc.c */ extern void check_pure_size (void); extern void allocate_string_data (struct Lisp_String *, int, int); extern void reset_malloc_hooks (void); extern void uninterrupt_malloc (void); -extern void malloc_warning (char *); +extern void malloc_warning (const char *); extern void memory_full (void) NO_RETURN; extern void buffer_memory_full (void) NO_RETURN; extern int survives_gc_p (Lisp_Object); @@ -2789,16 +2785,17 @@ extern void temp_output_buffer_setup (const char *); extern int print_level, print_escape_newlines; extern Lisp_Object Qprint_escape_newlines; -extern void write_string (char *, int); -extern void write_string_1 (char *, int, Lisp_Object); -extern void print_error_message (Lisp_Object, Lisp_Object, char *, Lisp_Object); +extern void write_string (const char *, int); +extern void write_string_1 (const char *, int, Lisp_Object); +extern void print_error_message (Lisp_Object, Lisp_Object, const char *, + Lisp_Object); extern Lisp_Object internal_with_output_to_temp_buffer (const char *, Lisp_Object (*) (Lisp_Object), Lisp_Object); extern void float_to_string (unsigned char *, double); extern void syms_of_print (void); /* Defined in doprnt.c */ -extern int doprnt (char *, int, char *, char *, int, char **); +extern int doprnt (char *, int, const char *, const char *, va_list); /* Defined in lread.c */ extern Lisp_Object Qvariable_documentation, Qstandard_input; @@ -2817,7 +2814,7 @@ extern Lisp_Object check_obarray (Lisp_Object); extern Lisp_Object intern (const char *); extern Lisp_Object intern_c_string (const char *); -extern Lisp_Object make_symbol (char *); +extern Lisp_Object make_symbol (const char *); extern Lisp_Object oblookup (Lisp_Object, const char *, int, int); #define LOADHIST_ATTACH(x) \ do { \ @@ -2827,10 +2824,10 @@ extern Lisp_Object Vload_history, Vload_suffixes, Vload_file_rep_suffixes; extern int openp (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object *, Lisp_Object); -extern int isfloat_string (char *, int); +extern int isfloat_string (const char *, int); extern void map_obarray (Lisp_Object, void (*) (Lisp_Object, Lisp_Object), Lisp_Object); -extern void dir_warning (char *, Lisp_Object); +extern void dir_warning (const char *, Lisp_Object); extern void close_load_descs (void); extern void init_obarray (void); extern void init_lread (void); @@ -2883,7 +2880,7 @@ extern void xsignal1 (Lisp_Object, Lisp_Object) NO_RETURN; extern void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN; extern void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN; -extern void signal_error (char *, Lisp_Object) NO_RETURN; +extern void signal_error (const char *, Lisp_Object) NO_RETURN; EXFUN (Fautoload, 5); EXFUN (Fcommandp, 2); EXFUN (Feval, 1); @@ -2910,7 +2907,7 @@ extern void specbind (Lisp_Object, Lisp_Object); extern void record_unwind_protect (Lisp_Object (*) (Lisp_Object), Lisp_Object); extern Lisp_Object unbind_to (int, Lisp_Object); -extern void error (/* char *, ... */) NO_RETURN; +extern void error (const char *, ...) NO_RETURN; extern void do_autoload (Lisp_Object, Lisp_Object); extern Lisp_Object un_autoload (Lisp_Object); EXFUN (Ffetch_bytecode, 1); @@ -2949,7 +2946,7 @@ EXFUN (Fbobp, 0); EXFUN (Fformat, MANY); EXFUN (Fmessage, MANY); -extern Lisp_Object format2 (char *, Lisp_Object, Lisp_Object); +extern Lisp_Object format2 (const char *, Lisp_Object, Lisp_Object); EXFUN (Fbuffer_substring, 2); EXFUN (Fbuffer_string, 0); extern Lisp_Object save_excursion_save (void); @@ -2975,7 +2972,7 @@ EXFUN (Ffield_beginning, 3); EXFUN (Ffield_end, 3); EXFUN (Ffield_string_no_properties, 1); -extern void set_time_zone_rule (char *); +extern void set_time_zone_rule (const char *); /* Defined in buffer.c */ extern int mouse_face_overlay_overlaps (Lisp_Object); @@ -3175,7 +3172,7 @@ extern int detect_input_pending_ignore_squeezables (void); extern int detect_input_pending_run_timers (int); extern void safe_run_hooks (Lisp_Object); -extern void cmd_error_internal (Lisp_Object, char *); +extern void cmd_error_internal (Lisp_Object, const char *); extern Lisp_Object command_loop_1 (void); extern Lisp_Object recursive_edit_1 (void); extern void record_auto_save (void); @@ -3239,7 +3236,7 @@ extern void syms_of_frame (void); /* Defined in emacs.c */ -extern Lisp_Object decode_env_path (char *, char *); +extern Lisp_Object decode_env_path (const char *, const char *); extern Lisp_Object Vinvocation_name, Vinvocation_directory; extern Lisp_Object Vbefore_init_time, Vafter_init_time; extern Lisp_Object Vinstallation_directory; @@ -3525,7 +3522,7 @@ extern char *xstrdup (const char *); -extern char *egetenv (char *); +extern char *egetenv (const char *); /* Set up the name of the machine we're running on. */ extern void init_system_name (void); diff -r 0b8608a36b55 -r 799b50142743 src/lread.c --- a/src/lread.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/lread.c Sun Jul 11 22:57:47 2010 +0000 @@ -2316,28 +2316,28 @@ /* This is repetitive but fast and simple. */ params[param_count] = QCsize; params[param_count+1] = Fplist_get (tmp, Qsize); - if (!NILP (params[param_count+1])) - param_count+=2; + if (!NILP (params[param_count + 1])) + param_count += 2; params[param_count] = QCtest; params[param_count+1] = Fplist_get (tmp, Qtest); - if (!NILP (params[param_count+1])) - param_count+=2; + if (!NILP (params[param_count + 1])) + param_count += 2; params[param_count] = QCweakness; params[param_count+1] = Fplist_get (tmp, Qweakness); - if (!NILP (params[param_count+1])) - param_count+=2; + if (!NILP (params[param_count + 1])) + param_count += 2; params[param_count] = QCrehash_size; params[param_count+1] = Fplist_get (tmp, Qrehash_size); - if (!NILP (params[param_count+1])) - param_count+=2; + if (!NILP (params[param_count + 1])) + param_count += 2; params[param_count] = QCrehash_threshold; params[param_count+1] = Fplist_get (tmp, Qrehash_threshold); - if (!NILP (params[param_count+1])) - param_count+=2; + if (!NILP (params[param_count + 1])) + param_count += 2; /* This is the hashtable data. */ data = Fplist_get (tmp, Qdata); @@ -2358,6 +2358,8 @@ return ht; } + UNREAD (c); + invalid_syntax ("#", 1); } if (c == '^') { @@ -2723,7 +2725,7 @@ ok = (next_next_char <= 040 || (next_next_char < 0200 - && (index ("\"';([#?", next_next_char) + && (strchr ("\"';([#?", next_next_char) || (!first_in_list && next_next_char == '`') || (new_backquote_flag && next_next_char == ',')))); } @@ -2731,7 +2733,7 @@ { ok = (next_char <= 040 || (next_char < 0200 - && (index ("\"';()[]#?", next_char) + && (strchr ("\"';()[]#?", next_char) || (!first_in_list && next_char == '`') || (new_backquote_flag && next_char == ',')))); } @@ -2876,7 +2878,7 @@ if (next_char <= 040 || (next_char < 0200 - && (index ("\"';([#?", next_char) + && (strchr ("\"';([#?", next_char) || (!first_in_list && next_char == '`') || (new_backquote_flag && next_char == ',')))) { @@ -2903,7 +2905,7 @@ while (c > 040 && c != 0x8a0 /* NBSP */ && (c >= 0200 - || (!index ("\"';()[]#", c) + || (!strchr ("\"';()[]#", c) && !(!first_in_list && c == '`') && !(new_backquote_flag && c == ',')))) { @@ -3188,11 +3190,10 @@ #define EXP_INT 16 int -isfloat_string (register char *cp, int ignore_trailing) +isfloat_string (const char *cp, int ignore_trailing) { - register int state; - - char *start = cp; + int state; + const char *start = cp; state = 0; if (*cp == '+' || *cp == '-') @@ -3243,7 +3244,8 @@ } return ((ignore_trailing - || (*cp == 0) || (*cp == ' ') || (*cp == '\t') || (*cp == '\n') || (*cp == '\r') || (*cp == '\f')) + || *cp == 0 || *cp == ' ' || *cp == '\t' || *cp == '\n' + || *cp == '\r' || *cp == '\f') && (state == (LEAD_INT|DOT_CHAR|TRAIL_INT) || state == (DOT_CHAR|TRAIL_INT) || state == (LEAD_INT|E_CHAR|EXP_INT) @@ -3586,13 +3588,13 @@ /* Create an uninterned symbol with name STR. */ Lisp_Object -make_symbol (char *str) +make_symbol (const char *str) { int len = strlen (str); - return Fmake_symbol ((!NILP (Vpurify_flag) - ? make_pure_string (str, len, len, 0) - : make_string (str, len))); + return Fmake_symbol (!NILP (Vpurify_flag) + ? make_pure_string (str, len, len, 0) + : make_string (str, len)); } DEFUN ("intern", Fintern, Sintern, 1, 2, 0, @@ -4168,7 +4170,7 @@ does not exist. Print it on stderr and put it in *Messages*. */ void -dir_warning (char *format, Lisp_Object dirname) +dir_warning (const char *format, Lisp_Object dirname) { char *buffer = (char *) alloca (SCHARS (dirname) + strlen (format) + 5); diff -r 0b8608a36b55 -r 799b50142743 src/msdos.c --- a/src/msdos.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/msdos.c Sun Jul 11 22:57:47 2010 +0000 @@ -2074,10 +2074,6 @@ unsigned long orig_fg, orig_bg; Lisp_Object frame_bg, frame_fg; struct tty_display_info *tty = FRAME_TTY (f); - extern Lisp_Object Qmenu_bar_lines; - extern Lisp_Object Vmenu_bar_mode; - int menu_bar_lines_defined = - !NILP (Fassq (Qmenu_bar_lines, Vdefault_frame_alist)); /* If we are creating a new frame, begin with the original screen colors used for the initial frame. */ @@ -2116,8 +2112,6 @@ if (EQ (prop, Qreverse)) reverse = EQ (val, Qt); - else if (!menu_bar_lines_defined && EQ (prop, Qmenu_bar_lines)) - menu_bar_lines_defined = 1; } if (tty->termscript && reverse) @@ -2217,18 +2211,6 @@ store_frame_param (f, prop, val); } - /* If menu-bar-lines is neither in the frame parameters nor in - default-frame-alist, set it according to menu-bar-mode. */ - if (!menu_bar_lines_defined) - { - store_frame_param (f, Qmenu_bar_lines, - NILP (Vmenu_bar_mode) - ? make_number (0) : make_number (1)); - if (tty->termscript) - fprintf (tty->termscript, "y); - if (p->y < rowY) - { - /* Adjust position of "bottom aligned" bitmap on partially - visible last row. */ - int oldY = row->y; - int oldVH = row->visible_height; - row->visible_height = p->h; - row->y -= rowY - p->y; - ns_clip_to_row (w, row, -1, NO); - row->y = oldY; - row->visible_height = oldVH; - } - else - ns_clip_to_row (w, row, -1, YES); + ns_clip_to_row (w, row, -1, YES); if (p->bx >= 0 && !p->overlay_p) { diff -r 0b8608a36b55 -r 799b50142743 src/print.c --- a/src/print.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/print.c Sun Jul 11 22:57:47 2010 +0000 @@ -540,7 +540,7 @@ Do not use this on the contents of a Lisp string. */ void -write_string (char *data, int size) +write_string (const char *data, int size) { PRINTDECLARE; Lisp_Object printcharfun; @@ -557,7 +557,7 @@ Do not use this on the contents of a Lisp string. */ void -write_string_1 (char *data, int size, Lisp_Object printcharfun) +write_string_1 (const char *data, int size, Lisp_Object printcharfun) { PRINTDECLARE; @@ -1007,7 +1007,8 @@ CALLER is the Lisp function inside which the error was signaled. */ void -print_error_message (Lisp_Object data, Lisp_Object stream, char *context, Lisp_Object caller) +print_error_message (Lisp_Object data, Lisp_Object stream, const char *context, + Lisp_Object caller) { Lisp_Object errname, errmsg, file_error, tail; struct gcpro gcpro1; diff -r 0b8608a36b55 -r 799b50142743 src/process.c --- a/src/process.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/process.c Sun Jul 11 22:57:47 2010 +0000 @@ -21,17 +21,6 @@ #include #include - -/* This file is split into two parts by the following preprocessor - conditional. The 'then' clause contains all of the support for - asynchronous subprocesses. The 'else' clause contains stub - versions of some of the asynchronous subprocess routines that are - often called elsewhere in Emacs, so we don't have to #ifdef the - sections that call them. */ - - -#ifdef subprocesses - #include #include #include @@ -51,6 +40,9 @@ #endif #include +/* Only MS-DOS does not define `subprocesses'. */ +#ifdef subprocesses + #ifdef HAVE_SOCKETS /* TCP connection support, if kernel can do it */ #include #include @@ -101,6 +93,8 @@ #include #endif +#endif /* subprocesses */ + #include "lisp.h" #include "systime.h" #include "systty.h" @@ -119,11 +113,16 @@ #include "dispextern.h" #include "composite.h" #include "atimer.h" +#include "sysselect.h" +#include "syssignal.h" +#include "syswait.h" #if defined (USE_GTK) || defined (HAVE_GCONF) #include "xgselect.h" #endif /* defined (USE_GTK) || defined (HAVE_GCONF) */ +#ifdef subprocesses + Lisp_Object Qprocessp; Lisp_Object Qrun, Qstop, Qsignal; Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten; @@ -135,7 +134,7 @@ Lisp_Object QCport, QCspeed, QCprocess; Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven; Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary; -Lisp_Object QCname, QCbuffer, QChost, QCservice, QCtype; +Lisp_Object QCbuffer, QChost, QCservice; Lisp_Object QClocal, QCremote, QCcoding; Lisp_Object QCserver, QCnowait, QCnoquery, QCstop; Lisp_Object QCsentinel, QClog, QCoptions, QCplist; @@ -151,11 +150,6 @@ /* QCfilter is defined in keyboard.c. */ extern Lisp_Object QCfilter; -Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid; -Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime; -Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs; -Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime; - #ifdef HAVE_SOCKETS #define NETCONN_P(p) (EQ (XPROCESS (p)->type, Qnetwork)) #define NETCONN1_P(p) (EQ ((p)->type, Qnetwork)) @@ -178,10 +172,6 @@ #define SIGCHLD SIGCLD #endif /* SIGCLD */ -#include "syssignal.h" - -#include "syswait.h" - extern char *get_operating_system_release (void); /* Serial processes require termios or Windows. */ @@ -282,9 +272,6 @@ #define process_output_delay_count 0 #endif - -#include "sysselect.h" - static int keyboard_bit_set (SELECT_TYPE *); static void deactivate_process (Lisp_Object); static void status_notify (struct Lisp_Process *); @@ -300,16 +287,29 @@ static Lisp_Object get_process (register Lisp_Object name); static void exec_sentinel (Lisp_Object proc, Lisp_Object reason); +#endif /* subprocesses */ + extern int timers_run; + +Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid; +Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime; +Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs; +Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime; +Lisp_Object QCname, QCtype; +/* Non-zero if keyboard input is on hold, zero otherwise. */ + +static int kbd_is_on_hold; + +/* Nonzero means delete a process right away if it exits. */ +static int delete_exited_processes; + +#ifdef subprocesses + /* Mask of bits indicating the descriptors that we wait for input on. */ static SELECT_TYPE input_wait_mask; -/* Non-zero if keyboard input is on hold, zero otherwise. */ - -static int kbd_is_on_hold; - /* Mask that excludes keyboard input descriptor(s). */ static SELECT_TYPE non_keyboard_wait_mask; @@ -333,9 +333,9 @@ static int num_pending_connects; #define IF_NON_BLOCKING_CONNECT(s) s -#else +#else /* NON_BLOCKING_CONNECT */ #define IF_NON_BLOCKING_CONNECT(s) -#endif +#endif /* NON_BLOCKING_CONNECT */ /* The largest descriptor currently in use for a process object. */ static int max_process_desc; @@ -346,9 +346,6 @@ /* The largest descriptor currently in use for gpm mouse input. */ static int max_gpm_desc; -/* Nonzero means delete a process right away if it exits. */ -static int delete_exited_processes; - /* Indexed by descriptor, gives the process (if any) for that descriptor */ Lisp_Object chan_process[MAXDESC]; @@ -695,26 +692,6 @@ return Fcdr (Fassoc (name, Vprocess_alist)); } -DEFUN ("get-buffer-process", Fget_buffer_process, Sget_buffer_process, 1, 1, 0, - doc: /* Return the (or a) process associated with BUFFER. -BUFFER may be a buffer or the name of one. */) - (register Lisp_Object buffer) -{ - register Lisp_Object buf, tail, proc; - - if (NILP (buffer)) return Qnil; - buf = Fget_buffer (buffer); - if (NILP (buf)) return Qnil; - - for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail)) - { - proc = Fcdr (XCAR (tail)); - if (PROCESSP (proc) && EQ (XPROCESS (proc)->buffer, buf)) - return proc; - } - return Qnil; -} - /* This is how commands for the user decode process arguments. It accepts a process, a process name, a buffer, a buffer name, or nil. Buffers denote the first process in the buffer, and nil denotes the @@ -1096,19 +1073,6 @@ return flag; } -DEFUN ("process-inherit-coding-system-flag", - Fprocess_inherit_coding_system_flag, Sprocess_inherit_coding_system_flag, - 1, 1, 0, - doc: /* Return the value of inherit-coding-system flag for PROCESS. -If this flag is t, `buffer-file-coding-system' of the buffer -associated with PROCESS will inherit the coding system used to decode -the process output. */) - (register Lisp_Object process) -{ - CHECK_PROCESS (process); - return XPROCESS (process)->inherit_coding_system_flag ? Qt : Qnil; -} - DEFUN ("set-process-query-on-exit-flag", Fset_process_query_on_exit_flag, Sset_process_query_on_exit_flag, 2, 2, 0, @@ -2299,7 +2263,7 @@ /* Workaround for a bug in getsockname on BSD: Names bound to sockets in the UNIX domain are inaccessible; getsockname returns a zero length name. */ - if (len < OFFSETOF (struct sockaddr, sa_family) + sizeof (sa->sa_family)) + if (len < offsetof (struct sockaddr, sa_family) + sizeof (sa->sa_family)) return empty_unibyte_string; switch (sa->sa_family) @@ -2339,7 +2303,7 @@ } #endif default: - len -= OFFSETOF (struct sockaddr, sa_family) + sizeof (sa->sa_family); + len -= offsetof (struct sockaddr, sa_family) + sizeof (sa->sa_family); address = Fcons (make_number (sa->sa_family), Fmake_vector (make_number (len), Qnil)); p = XVECTOR (XCDR (address)); @@ -6474,28 +6438,6 @@ } return process; } - -/* Kill all processes associated with `buffer'. - If `buffer' is nil, kill all processes */ - -void -kill_buffer_processes (Lisp_Object buffer) -{ - Lisp_Object tail, proc; - - for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail)) - { - proc = XCDR (XCAR (tail)); - if (PROCESSP (proc) - && (NILP (buffer) || EQ (XPROCESS (proc)->buffer, buffer))) - { - if (NETCONN_P (proc) || SERIALCONN_P (proc)) - Fdelete_process (proc); - else if (XPROCESS (proc)->infd >= 0) - process_send_signal (proc, SIGHUP, Qnil, 1); - } - } -} /* On receipt of a signal that a child status has changed, loop asking about children with changed statuses until the system says there @@ -6960,29 +6902,6 @@ -/* Stop reading input from keyboard sources. */ - -void -hold_keyboard_input (void) -{ - kbd_is_on_hold = 1; -} - -/* Resume reading input from keyboard sources. */ - -void -unhold_keyboard_input (void) -{ - kbd_is_on_hold = 0; -} - -/* Return non-zero if keyboard input is on hold, zero otherwise. */ - -int -kbd_on_hold_p (void) -{ - return kbd_is_on_hold; -} /* Add DESC to the set of keyboard input descriptors. */ @@ -7060,491 +6979,15 @@ return 0; } - -/* Enumeration of and access to system processes a-la ps(1). */ - -DEFUN ("list-system-processes", Flist_system_processes, Slist_system_processes, - 0, 0, 0, - doc: /* Return a list of numerical process IDs of all running processes. -If this functionality is unsupported, return nil. - -See `process-attributes' for getting attributes of a process given its ID. */) - (void) -{ - return list_system_processes (); -} - -DEFUN ("process-attributes", Fprocess_attributes, - Sprocess_attributes, 1, 1, 0, - doc: /* Return attributes of the process given by its PID, a number. - -Value is an alist where each element is a cons cell of the form - - \(KEY . VALUE) - -If this functionality is unsupported, the value is nil. - -See `list-system-processes' for getting a list of all process IDs. - -The KEYs of the attributes that this function may return are listed -below, together with the type of the associated VALUE (in parentheses). -Not all platforms support all of these attributes; unsupported -attributes will not appear in the returned alist. -Unless explicitly indicated otherwise, numbers can have either -integer or floating point values. - - euid -- Effective user User ID of the process (number) - user -- User name corresponding to euid (string) - egid -- Effective user Group ID of the process (number) - group -- Group name corresponding to egid (string) - comm -- Command name (executable name only) (string) - state -- Process state code, such as "S", "R", or "T" (string) - ppid -- Parent process ID (number) - pgrp -- Process group ID (number) - sess -- Session ID, i.e. process ID of session leader (number) - ttname -- Controlling tty name (string) - tpgid -- ID of foreground process group on the process's tty (number) - minflt -- number of minor page faults (number) - majflt -- number of major page faults (number) - cminflt -- cumulative number of minor page faults (number) - cmajflt -- cumulative number of major page faults (number) - utime -- user time used by the process, in the (HIGH LOW USEC) format - stime -- system time used by the process, in the (HIGH LOW USEC) format - time -- sum of utime and stime, in the (HIGH LOW USEC) format - cutime -- user time used by the process and its children, (HIGH LOW USEC) - cstime -- system time used by the process and its children, (HIGH LOW USEC) - ctime -- sum of cutime and cstime, in the (HIGH LOW USEC) format - pri -- priority of the process (number) - nice -- nice value of the process (number) - thcount -- process thread count (number) - start -- time the process started, in the (HIGH LOW USEC) format - vsize -- virtual memory size of the process in KB's (number) - rss -- resident set size of the process in KB's (number) - etime -- elapsed time the process is running, in (HIGH LOW USEC) format - pcpu -- percents of CPU time used by the process (floating-point number) - pmem -- percents of total physical memory used by process's resident set - (floating-point number) - args -- command line which invoked the process (string). */) - ( Lisp_Object pid) -{ - return system_process_attributes (pid); -} - -void -init_process (void) -{ - register int i; - - inhibit_sentinels = 0; - -#ifdef SIGCHLD -#ifndef CANNOT_DUMP - if (! noninteractive || initialized) -#endif - signal (SIGCHLD, sigchld_handler); -#endif - - FD_ZERO (&input_wait_mask); - FD_ZERO (&non_keyboard_wait_mask); - FD_ZERO (&non_process_wait_mask); - max_process_desc = 0; - -#ifdef NON_BLOCKING_CONNECT - FD_ZERO (&connect_wait_mask); - num_pending_connects = 0; -#endif - -#ifdef ADAPTIVE_READ_BUFFERING - process_output_delay_count = 0; - process_output_skip = 0; -#endif - - /* Don't do this, it caused infinite select loops. The display - method should call add_keyboard_wait_descriptor on stdin if it - needs that. */ -#if 0 - FD_SET (0, &input_wait_mask); -#endif - - Vprocess_alist = Qnil; -#ifdef SIGCHLD - deleted_pid_list = Qnil; -#endif - for (i = 0; i < MAXDESC; i++) - { - chan_process[i] = Qnil; - proc_buffered_char[i] = -1; - } - memset (proc_decode_coding_system, 0, sizeof proc_decode_coding_system); - memset (proc_encode_coding_system, 0, sizeof proc_encode_coding_system); -#ifdef DATAGRAM_SOCKETS - memset (datagram_address, 0, sizeof datagram_address); -#endif - -#ifdef HAVE_SOCKETS - { - Lisp_Object subfeatures = Qnil; - const struct socket_options *sopt; - -#define ADD_SUBFEATURE(key, val) \ - subfeatures = pure_cons (pure_cons (key, pure_cons (val, Qnil)), subfeatures) - -#ifdef NON_BLOCKING_CONNECT - ADD_SUBFEATURE (QCnowait, Qt); -#endif -#ifdef DATAGRAM_SOCKETS - ADD_SUBFEATURE (QCtype, Qdatagram); -#endif -#ifdef HAVE_SEQPACKET - ADD_SUBFEATURE (QCtype, Qseqpacket); -#endif -#ifdef HAVE_LOCAL_SOCKETS - ADD_SUBFEATURE (QCfamily, Qlocal); -#endif - ADD_SUBFEATURE (QCfamily, Qipv4); -#ifdef AF_INET6 - ADD_SUBFEATURE (QCfamily, Qipv6); -#endif -#ifdef HAVE_GETSOCKNAME - ADD_SUBFEATURE (QCservice, Qt); -#endif -#if defined(O_NONBLOCK) || defined(O_NDELAY) - ADD_SUBFEATURE (QCserver, Qt); -#endif - - for (sopt = socket_options; sopt->name; sopt++) - subfeatures = pure_cons (intern_c_string (sopt->name), subfeatures); - - Fprovide (intern_c_string ("make-network-process"), subfeatures); - } -#endif /* HAVE_SOCKETS */ - -#if defined (DARWIN_OS) - /* PTYs are broken on Darwin < 6, but are sometimes useful for interactive - processes. As such, we only change the default value. */ - if (initialized) - { - char *release = get_operating_system_release (); - if (!release || !release[0] || (release[0] < MIN_PTY_KERNEL_VERSION - && release[1] == '.')) { - Vprocess_connection_type = Qnil; - } - } -#endif -} - -void -syms_of_process (void) -{ - Qprocessp = intern_c_string ("processp"); - staticpro (&Qprocessp); - Qrun = intern_c_string ("run"); - staticpro (&Qrun); - Qstop = intern_c_string ("stop"); - staticpro (&Qstop); - Qsignal = intern_c_string ("signal"); - staticpro (&Qsignal); - - /* Qexit is already staticpro'd by syms_of_eval; don't staticpro it - here again. - - Qexit = intern_c_string ("exit"); - staticpro (&Qexit); */ - - Qopen = intern_c_string ("open"); - staticpro (&Qopen); - Qclosed = intern_c_string ("closed"); - staticpro (&Qclosed); - Qconnect = intern_c_string ("connect"); - staticpro (&Qconnect); - Qfailed = intern_c_string ("failed"); - staticpro (&Qfailed); - Qlisten = intern_c_string ("listen"); - staticpro (&Qlisten); - Qlocal = intern_c_string ("local"); - staticpro (&Qlocal); - Qipv4 = intern_c_string ("ipv4"); - staticpro (&Qipv4); -#ifdef AF_INET6 - Qipv6 = intern_c_string ("ipv6"); - staticpro (&Qipv6); -#endif - Qdatagram = intern_c_string ("datagram"); - staticpro (&Qdatagram); - Qseqpacket = intern_c_string ("seqpacket"); - staticpro (&Qseqpacket); - - QCport = intern_c_string (":port"); - staticpro (&QCport); - QCspeed = intern_c_string (":speed"); - staticpro (&QCspeed); - QCprocess = intern_c_string (":process"); - staticpro (&QCprocess); - - QCbytesize = intern_c_string (":bytesize"); - staticpro (&QCbytesize); - QCstopbits = intern_c_string (":stopbits"); - staticpro (&QCstopbits); - QCparity = intern_c_string (":parity"); - staticpro (&QCparity); - Qodd = intern_c_string ("odd"); - staticpro (&Qodd); - Qeven = intern_c_string ("even"); - staticpro (&Qeven); - QCflowcontrol = intern_c_string (":flowcontrol"); - staticpro (&QCflowcontrol); - Qhw = intern_c_string ("hw"); - staticpro (&Qhw); - Qsw = intern_c_string ("sw"); - staticpro (&Qsw); - QCsummary = intern_c_string (":summary"); - staticpro (&QCsummary); - - Qreal = intern_c_string ("real"); - staticpro (&Qreal); - Qnetwork = intern_c_string ("network"); - staticpro (&Qnetwork); - Qserial = intern_c_string ("serial"); - staticpro (&Qserial); - - QCname = intern_c_string (":name"); - staticpro (&QCname); - QCbuffer = intern_c_string (":buffer"); - staticpro (&QCbuffer); - QChost = intern_c_string (":host"); - staticpro (&QChost); - QCservice = intern_c_string (":service"); - staticpro (&QCservice); - QCtype = intern_c_string (":type"); - staticpro (&QCtype); - QClocal = intern_c_string (":local"); - staticpro (&QClocal); - QCremote = intern_c_string (":remote"); - staticpro (&QCremote); - QCcoding = intern_c_string (":coding"); - staticpro (&QCcoding); - QCserver = intern_c_string (":server"); - staticpro (&QCserver); - QCnowait = intern_c_string (":nowait"); - staticpro (&QCnowait); - QCsentinel = intern_c_string (":sentinel"); - staticpro (&QCsentinel); - QClog = intern_c_string (":log"); - staticpro (&QClog); - QCnoquery = intern_c_string (":noquery"); - staticpro (&QCnoquery); - QCstop = intern_c_string (":stop"); - staticpro (&QCstop); - QCoptions = intern_c_string (":options"); - staticpro (&QCoptions); - QCplist = intern_c_string (":plist"); - staticpro (&QCplist); - - Qlast_nonmenu_event = intern_c_string ("last-nonmenu-event"); - staticpro (&Qlast_nonmenu_event); - - staticpro (&Vprocess_alist); -#ifdef SIGCHLD - staticpro (&deleted_pid_list); -#endif - - Qeuid = intern_c_string ("euid"); - staticpro (&Qeuid); - Qegid = intern_c_string ("egid"); - staticpro (&Qegid); - Quser = intern_c_string ("user"); - staticpro (&Quser); - Qgroup = intern_c_string ("group"); - staticpro (&Qgroup); - Qcomm = intern_c_string ("comm"); - staticpro (&Qcomm); - Qstate = intern_c_string ("state"); - staticpro (&Qstate); - Qppid = intern_c_string ("ppid"); - staticpro (&Qppid); - Qpgrp = intern_c_string ("pgrp"); - staticpro (&Qpgrp); - Qsess = intern_c_string ("sess"); - staticpro (&Qsess); - Qttname = intern_c_string ("ttname"); - staticpro (&Qttname); - Qtpgid = intern_c_string ("tpgid"); - staticpro (&Qtpgid); - Qminflt = intern_c_string ("minflt"); - staticpro (&Qminflt); - Qmajflt = intern_c_string ("majflt"); - staticpro (&Qmajflt); - Qcminflt = intern_c_string ("cminflt"); - staticpro (&Qcminflt); - Qcmajflt = intern_c_string ("cmajflt"); - staticpro (&Qcmajflt); - Qutime = intern_c_string ("utime"); - staticpro (&Qutime); - Qstime = intern_c_string ("stime"); - staticpro (&Qstime); - Qtime = intern_c_string ("time"); - staticpro (&Qtime); - Qcutime = intern_c_string ("cutime"); - staticpro (&Qcutime); - Qcstime = intern_c_string ("cstime"); - staticpro (&Qcstime); - Qctime = intern_c_string ("ctime"); - staticpro (&Qctime); - Qpri = intern_c_string ("pri"); - staticpro (&Qpri); - Qnice = intern_c_string ("nice"); - staticpro (&Qnice); - Qthcount = intern_c_string ("thcount"); - staticpro (&Qthcount); - Qstart = intern_c_string ("start"); - staticpro (&Qstart); - Qvsize = intern_c_string ("vsize"); - staticpro (&Qvsize); - Qrss = intern_c_string ("rss"); - staticpro (&Qrss); - Qetime = intern_c_string ("etime"); - staticpro (&Qetime); - Qpcpu = intern_c_string ("pcpu"); - staticpro (&Qpcpu); - Qpmem = intern_c_string ("pmem"); - staticpro (&Qpmem); - Qargs = intern_c_string ("args"); - staticpro (&Qargs); - - DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes, - doc: /* *Non-nil means delete processes immediately when they exit. -A value of nil means don't delete them until `list-processes' is run. */); - - delete_exited_processes = 1; - - DEFVAR_LISP ("process-connection-type", &Vprocess_connection_type, - doc: /* Control type of device used to communicate with subprocesses. -Values are nil to use a pipe, or t or `pty' to use a pty. -The value has no effect if the system has no ptys or if all ptys are busy: -then a pipe is used in any case. -The value takes effect when `start-process' is called. */); - Vprocess_connection_type = Qt; - -#ifdef ADAPTIVE_READ_BUFFERING - DEFVAR_LISP ("process-adaptive-read-buffering", &Vprocess_adaptive_read_buffering, - doc: /* If non-nil, improve receive buffering by delaying after short reads. -On some systems, when Emacs reads the output from a subprocess, the output data -is read in very small blocks, potentially resulting in very poor performance. -This behavior can be remedied to some extent by setting this variable to a -non-nil value, as it will automatically delay reading from such processes, to -allow them to produce more output before Emacs tries to read it. -If the value is t, the delay is reset after each write to the process; any other -non-nil value means that the delay is not reset on write. -The variable takes effect when `start-process' is called. */); - Vprocess_adaptive_read_buffering = Qt; -#endif - - defsubr (&Sprocessp); - defsubr (&Sget_process); - defsubr (&Sget_buffer_process); - defsubr (&Sdelete_process); - defsubr (&Sprocess_status); - defsubr (&Sprocess_exit_status); - defsubr (&Sprocess_id); - defsubr (&Sprocess_name); - defsubr (&Sprocess_tty_name); - defsubr (&Sprocess_command); - defsubr (&Sset_process_buffer); - defsubr (&Sprocess_buffer); - defsubr (&Sprocess_mark); - defsubr (&Sset_process_filter); - defsubr (&Sprocess_filter); - defsubr (&Sset_process_sentinel); - defsubr (&Sprocess_sentinel); - defsubr (&Sset_process_window_size); - defsubr (&Sset_process_inherit_coding_system_flag); - defsubr (&Sprocess_inherit_coding_system_flag); - defsubr (&Sset_process_query_on_exit_flag); - defsubr (&Sprocess_query_on_exit_flag); - defsubr (&Sprocess_contact); - defsubr (&Sprocess_plist); - defsubr (&Sset_process_plist); - defsubr (&Slist_processes); - defsubr (&Sprocess_list); - defsubr (&Sstart_process); -#ifdef HAVE_SERIAL - defsubr (&Sserial_process_configure); - defsubr (&Smake_serial_process); -#endif /* HAVE_SERIAL */ -#ifdef HAVE_SOCKETS - defsubr (&Sset_network_process_option); - defsubr (&Smake_network_process); - defsubr (&Sformat_network_address); -#endif /* HAVE_SOCKETS */ -#if defined(HAVE_SOCKETS) && defined(HAVE_NET_IF_H) && defined(HAVE_SYS_IOCTL_H) -#ifdef SIOCGIFCONF - defsubr (&Snetwork_interface_list); -#endif -#if defined(SIOCGIFADDR) || defined(SIOCGIFHWADDR) || defined(SIOCGIFFLAGS) - defsubr (&Snetwork_interface_info); -#endif -#endif /* HAVE_SOCKETS ... */ -#ifdef DATAGRAM_SOCKETS - defsubr (&Sprocess_datagram_address); - defsubr (&Sset_process_datagram_address); -#endif - defsubr (&Saccept_process_output); - defsubr (&Sprocess_send_region); - defsubr (&Sprocess_send_string); - defsubr (&Sinterrupt_process); - defsubr (&Skill_process); - defsubr (&Squit_process); - defsubr (&Sstop_process); - defsubr (&Scontinue_process); - defsubr (&Sprocess_running_child_p); - defsubr (&Sprocess_send_eof); - defsubr (&Ssignal_process); - defsubr (&Swaiting_for_user_input_p); - defsubr (&Sprocess_type); - defsubr (&Sset_process_coding_system); - defsubr (&Sprocess_coding_system); - defsubr (&Sset_process_filter_multibyte); - defsubr (&Sprocess_filter_multibyte_p); - defsubr (&Slist_system_processes); - defsubr (&Sprocess_attributes); -} - - -#else /* not subprocesses */ - -#include -#include -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "lisp.h" -#include "systime.h" -#include "character.h" -#include "coding.h" -#include "termopts.h" -#include "sysselect.h" - -extern int frame_garbaged; - -extern EMACS_TIME timer_check (); -extern int timers_run; - -Lisp_Object QCtype, QCname; - -Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid; -Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime; -Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs; -Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime; - -/* Non-zero if keyboard input is on hold, zero otherwise. */ -static int kbd_is_on_hold; - -/* As described above, except assuming that there are no subprocesses: + +#else /* not subprocesses */ + +/* Defined on msdos.c. */ +extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *, + EMACS_TIME *); + +/* Implementation of wait_reading_process_output, assuming that there + are no subprocesses. Used only by the MS-DOS build. Wait for timeout to elapse and/or keyboard input to be available. @@ -7720,15 +7163,6 @@ else error ("select error: %s", emacs_strerror (xerrno)); } -#ifdef SOLARIS2 - else if (nfds > 0 && (waitchannels & 1) && interrupt_input) - /* System sometimes fails to deliver SIGIO. */ - kill (getpid (), SIGIO); -#endif -#ifdef SIGIO - if (read_kbd && interrupt_input && (waitchannels & 1)) - kill (getpid (), SIGIO); -#endif /* Check for keyboard input */ @@ -7769,40 +7203,78 @@ return 0; } - -/* Don't confuse make-docfile by having two doc strings for this function. - make-docfile does not pay attention to #if, for good reason! */ +#endif /* not subprocesses */ + +/* The following functions are needed even if async subprocesses are + not supported. Some of them are no-op stubs in that case. */ + DEFUN ("get-buffer-process", Fget_buffer_process, Sget_buffer_process, 1, 1, 0, - 0) - (register Lisp_Object name) + doc: /* Return the (or a) process associated with BUFFER. +BUFFER may be a buffer or the name of one. */) + (register Lisp_Object buffer) { +#ifdef subprocesses + register Lisp_Object buf, tail, proc; + + if (NILP (buffer)) return Qnil; + buf = Fget_buffer (buffer); + if (NILP (buf)) return Qnil; + + for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail)) + { + proc = Fcdr (XCAR (tail)); + if (PROCESSP (proc) && EQ (XPROCESS (proc)->buffer, buf)) + return proc; + } +#endif /* subprocesses */ return Qnil; } - /* Don't confuse make-docfile by having two doc strings for this function. - make-docfile does not pay attention to #if, for good reason! */ DEFUN ("process-inherit-coding-system-flag", Fprocess_inherit_coding_system_flag, Sprocess_inherit_coding_system_flag, 1, 1, 0, - 0) + doc: /* Return the value of inherit-coding-system flag for PROCESS. +If this flag is t, `buffer-file-coding-system' of the buffer +associated with PROCESS will inherit the coding system used to decode +the process output. */) (register Lisp_Object process) { +#ifdef subprocesses + CHECK_PROCESS (process); + return XPROCESS (process)->inherit_coding_system_flag ? Qt : Qnil; +#else /* Ignore the argument and return the value of inherit-process-coding-system. */ return inherit_process_coding_system ? Qt : Qnil; +#endif } /* Kill all processes associated with `buffer'. - If `buffer' is nil, kill all processes. - Since we have no subprocesses, this does nothing. */ + If `buffer' is nil, kill all processes */ void -kill_buffer_processes (buffer) - Lisp_Object buffer; +kill_buffer_processes (Lisp_Object buffer) { +#ifdef subprocesses + Lisp_Object tail, proc; + + for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail)) + { + proc = XCDR (XCAR (tail)); + if (PROCESSP (proc) + && (NILP (buffer) || EQ (XPROCESS (proc)->buffer, buffer))) + { + if (NETCONN_P (proc) || SERIALCONN_P (proc)) + Fdelete_process (proc); + else if (XPROCESS (proc)->infd >= 0) + process_send_signal (proc, SIGHUP, Qnil, 1); + } + } +#else /* subprocesses */ + /* Since we have no subprocesses, this does nothing. */ +#endif /* subprocesses */ } - /* Stop reading input from keyboard sources. */ void @@ -7827,6 +7299,9 @@ return kbd_is_on_hold; } + +/* Enumeration of and access to system processes a-la ps(1). */ + DEFUN ("list-system-processes", Flist_system_processes, Slist_system_processes, 0, 0, 0, doc: /* Return a list of numerical process IDs of all running processes. @@ -7888,29 +7363,238 @@ pcpu -- percents of CPU time used by the process (floating-point number) pmem -- percents of total physical memory used by process's resident set (floating-point number) - args -- command line which invoked the process (string). */) + args -- command line which invoked the process (string). */) ( Lisp_Object pid) { return system_process_attributes (pid); } + void -init_process () +init_process (void) { +#ifdef subprocesses + register int i; + + inhibit_sentinels = 0; + +#ifdef SIGCHLD +#ifndef CANNOT_DUMP + if (! noninteractive || initialized) +#endif + signal (SIGCHLD, sigchld_handler); +#endif + + FD_ZERO (&input_wait_mask); + FD_ZERO (&non_keyboard_wait_mask); + FD_ZERO (&non_process_wait_mask); + max_process_desc = 0; + +#ifdef NON_BLOCKING_CONNECT + FD_ZERO (&connect_wait_mask); + num_pending_connects = 0; +#endif + +#ifdef ADAPTIVE_READ_BUFFERING + process_output_delay_count = 0; + process_output_skip = 0; +#endif + + /* Don't do this, it caused infinite select loops. The display + method should call add_keyboard_wait_descriptor on stdin if it + needs that. */ +#if 0 + FD_SET (0, &input_wait_mask); +#endif + + Vprocess_alist = Qnil; +#ifdef SIGCHLD + deleted_pid_list = Qnil; +#endif + for (i = 0; i < MAXDESC; i++) + { + chan_process[i] = Qnil; + proc_buffered_char[i] = -1; + } + memset (proc_decode_coding_system, 0, sizeof proc_decode_coding_system); + memset (proc_encode_coding_system, 0, sizeof proc_encode_coding_system); +#ifdef DATAGRAM_SOCKETS + memset (datagram_address, 0, sizeof datagram_address); +#endif + +#ifdef HAVE_SOCKETS + { + Lisp_Object subfeatures = Qnil; + const struct socket_options *sopt; + +#define ADD_SUBFEATURE(key, val) \ + subfeatures = pure_cons (pure_cons (key, pure_cons (val, Qnil)), subfeatures) + +#ifdef NON_BLOCKING_CONNECT + ADD_SUBFEATURE (QCnowait, Qt); +#endif +#ifdef DATAGRAM_SOCKETS + ADD_SUBFEATURE (QCtype, Qdatagram); +#endif +#ifdef HAVE_SEQPACKET + ADD_SUBFEATURE (QCtype, Qseqpacket); +#endif +#ifdef HAVE_LOCAL_SOCKETS + ADD_SUBFEATURE (QCfamily, Qlocal); +#endif + ADD_SUBFEATURE (QCfamily, Qipv4); +#ifdef AF_INET6 + ADD_SUBFEATURE (QCfamily, Qipv6); +#endif +#ifdef HAVE_GETSOCKNAME + ADD_SUBFEATURE (QCservice, Qt); +#endif +#if defined(O_NONBLOCK) || defined(O_NDELAY) + ADD_SUBFEATURE (QCserver, Qt); +#endif + + for (sopt = socket_options; sopt->name; sopt++) + subfeatures = pure_cons (intern_c_string (sopt->name), subfeatures); + + Fprovide (intern_c_string ("make-network-process"), subfeatures); + } +#endif /* HAVE_SOCKETS */ + +#if defined (DARWIN_OS) + /* PTYs are broken on Darwin < 6, but are sometimes useful for interactive + processes. As such, we only change the default value. */ + if (initialized) + { + char *release = get_operating_system_release (); + if (!release || !release[0] || (release[0] < MIN_PTY_KERNEL_VERSION + && release[1] == '.')) { + Vprocess_connection_type = Qnil; + } + } +#endif +#endif /* subprocesses */ kbd_is_on_hold = 0; } void -syms_of_process () +syms_of_process (void) { - QCtype = intern_c_string (":type"); - staticpro (&QCtype); +#ifdef subprocesses + + Qprocessp = intern_c_string ("processp"); + staticpro (&Qprocessp); + Qrun = intern_c_string ("run"); + staticpro (&Qrun); + Qstop = intern_c_string ("stop"); + staticpro (&Qstop); + Qsignal = intern_c_string ("signal"); + staticpro (&Qsignal); + + /* Qexit is already staticpro'd by syms_of_eval; don't staticpro it + here again. + + Qexit = intern_c_string ("exit"); + staticpro (&Qexit); */ + + Qopen = intern_c_string ("open"); + staticpro (&Qopen); + Qclosed = intern_c_string ("closed"); + staticpro (&Qclosed); + Qconnect = intern_c_string ("connect"); + staticpro (&Qconnect); + Qfailed = intern_c_string ("failed"); + staticpro (&Qfailed); + Qlisten = intern_c_string ("listen"); + staticpro (&Qlisten); + Qlocal = intern_c_string ("local"); + staticpro (&Qlocal); + Qipv4 = intern_c_string ("ipv4"); + staticpro (&Qipv4); +#ifdef AF_INET6 + Qipv6 = intern_c_string ("ipv6"); + staticpro (&Qipv6); +#endif + Qdatagram = intern_c_string ("datagram"); + staticpro (&Qdatagram); + Qseqpacket = intern_c_string ("seqpacket"); + staticpro (&Qseqpacket); + + QCport = intern_c_string (":port"); + staticpro (&QCport); + QCspeed = intern_c_string (":speed"); + staticpro (&QCspeed); + QCprocess = intern_c_string (":process"); + staticpro (&QCprocess); + + QCbytesize = intern_c_string (":bytesize"); + staticpro (&QCbytesize); + QCstopbits = intern_c_string (":stopbits"); + staticpro (&QCstopbits); + QCparity = intern_c_string (":parity"); + staticpro (&QCparity); + Qodd = intern_c_string ("odd"); + staticpro (&Qodd); + Qeven = intern_c_string ("even"); + staticpro (&Qeven); + QCflowcontrol = intern_c_string (":flowcontrol"); + staticpro (&QCflowcontrol); + Qhw = intern_c_string ("hw"); + staticpro (&Qhw); + Qsw = intern_c_string ("sw"); + staticpro (&Qsw); + QCsummary = intern_c_string (":summary"); + staticpro (&QCsummary); + + Qreal = intern_c_string ("real"); + staticpro (&Qreal); + Qnetwork = intern_c_string ("network"); + staticpro (&Qnetwork); + Qserial = intern_c_string ("serial"); + staticpro (&Qserial); + QCbuffer = intern_c_string (":buffer"); + staticpro (&QCbuffer); + QChost = intern_c_string (":host"); + staticpro (&QChost); + QCservice = intern_c_string (":service"); + staticpro (&QCservice); + QClocal = intern_c_string (":local"); + staticpro (&QClocal); + QCremote = intern_c_string (":remote"); + staticpro (&QCremote); + QCcoding = intern_c_string (":coding"); + staticpro (&QCcoding); + QCserver = intern_c_string (":server"); + staticpro (&QCserver); + QCnowait = intern_c_string (":nowait"); + staticpro (&QCnowait); + QCsentinel = intern_c_string (":sentinel"); + staticpro (&QCsentinel); + QClog = intern_c_string (":log"); + staticpro (&QClog); + QCnoquery = intern_c_string (":noquery"); + staticpro (&QCnoquery); + QCstop = intern_c_string (":stop"); + staticpro (&QCstop); + QCoptions = intern_c_string (":options"); + staticpro (&QCoptions); + QCplist = intern_c_string (":plist"); + staticpro (&QCplist); + + Qlast_nonmenu_event = intern_c_string ("last-nonmenu-event"); + staticpro (&Qlast_nonmenu_event); + + staticpro (&Vprocess_alist); +#ifdef SIGCHLD + staticpro (&deleted_pid_list); +#endif + +#endif /* subprocesses */ + QCname = intern_c_string (":name"); staticpro (&QCname); QCtype = intern_c_string (":type"); staticpro (&QCtype); - QCname = intern_c_string (":name"); - staticpro (&QCname); + Qeuid = intern_c_string ("euid"); staticpro (&Qeuid); Qegid = intern_c_string ("egid"); @@ -7974,14 +7658,107 @@ Qargs = intern_c_string ("args"); staticpro (&Qargs); + DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes, + doc: /* *Non-nil means delete processes immediately when they exit. +A value of nil means don't delete them until `list-processes' is run. */); + + delete_exited_processes = 1; + +#ifdef subprocesses + DEFVAR_LISP ("process-connection-type", &Vprocess_connection_type, + doc: /* Control type of device used to communicate with subprocesses. +Values are nil to use a pipe, or t or `pty' to use a pty. +The value has no effect if the system has no ptys or if all ptys are busy: +then a pipe is used in any case. +The value takes effect when `start-process' is called. */); + Vprocess_connection_type = Qt; + +#ifdef ADAPTIVE_READ_BUFFERING + DEFVAR_LISP ("process-adaptive-read-buffering", &Vprocess_adaptive_read_buffering, + doc: /* If non-nil, improve receive buffering by delaying after short reads. +On some systems, when Emacs reads the output from a subprocess, the output data +is read in very small blocks, potentially resulting in very poor performance. +This behavior can be remedied to some extent by setting this variable to a +non-nil value, as it will automatically delay reading from such processes, to +allow them to produce more output before Emacs tries to read it. +If the value is t, the delay is reset after each write to the process; any other +non-nil value means that the delay is not reset on write. +The variable takes effect when `start-process' is called. */); + Vprocess_adaptive_read_buffering = Qt; +#endif + + defsubr (&Sprocessp); + defsubr (&Sget_process); + defsubr (&Sdelete_process); + defsubr (&Sprocess_status); + defsubr (&Sprocess_exit_status); + defsubr (&Sprocess_id); + defsubr (&Sprocess_name); + defsubr (&Sprocess_tty_name); + defsubr (&Sprocess_command); + defsubr (&Sset_process_buffer); + defsubr (&Sprocess_buffer); + defsubr (&Sprocess_mark); + defsubr (&Sset_process_filter); + defsubr (&Sprocess_filter); + defsubr (&Sset_process_sentinel); + defsubr (&Sprocess_sentinel); + defsubr (&Sset_process_window_size); + defsubr (&Sset_process_inherit_coding_system_flag); + defsubr (&Sset_process_query_on_exit_flag); + defsubr (&Sprocess_query_on_exit_flag); + defsubr (&Sprocess_contact); + defsubr (&Sprocess_plist); + defsubr (&Sset_process_plist); + defsubr (&Slist_processes); + defsubr (&Sprocess_list); + defsubr (&Sstart_process); +#ifdef HAVE_SERIAL + defsubr (&Sserial_process_configure); + defsubr (&Smake_serial_process); +#endif /* HAVE_SERIAL */ +#ifdef HAVE_SOCKETS + defsubr (&Sset_network_process_option); + defsubr (&Smake_network_process); + defsubr (&Sformat_network_address); +#endif /* HAVE_SOCKETS */ +#if defined(HAVE_SOCKETS) && defined(HAVE_NET_IF_H) && defined(HAVE_SYS_IOCTL_H) +#ifdef SIOCGIFCONF + defsubr (&Snetwork_interface_list); +#endif +#if defined(SIOCGIFADDR) || defined(SIOCGIFHWADDR) || defined(SIOCGIFFLAGS) + defsubr (&Snetwork_interface_info); +#endif +#endif /* HAVE_SOCKETS ... */ +#ifdef DATAGRAM_SOCKETS + defsubr (&Sprocess_datagram_address); + defsubr (&Sset_process_datagram_address); +#endif + defsubr (&Saccept_process_output); + defsubr (&Sprocess_send_region); + defsubr (&Sprocess_send_string); + defsubr (&Sinterrupt_process); + defsubr (&Skill_process); + defsubr (&Squit_process); + defsubr (&Sstop_process); + defsubr (&Scontinue_process); + defsubr (&Sprocess_running_child_p); + defsubr (&Sprocess_send_eof); + defsubr (&Ssignal_process); + defsubr (&Swaiting_for_user_input_p); + defsubr (&Sprocess_type); + defsubr (&Sset_process_coding_system); + defsubr (&Sprocess_coding_system); + defsubr (&Sset_process_filter_multibyte); + defsubr (&Sprocess_filter_multibyte_p); + +#endif /* subprocesses */ + defsubr (&Sget_buffer_process); defsubr (&Sprocess_inherit_coding_system_flag); defsubr (&Slist_system_processes); defsubr (&Sprocess_attributes); } - -#endif /* not subprocesses */ - /* arch-tag: 3706c011-7b9a-4117-bd4f-59e7f701a4c4 (do not change this comment) */ diff -r 0b8608a36b55 -r 799b50142743 src/s/hpux10-20.h --- a/src/s/hpux10-20.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/s/hpux10-20.h Sun Jul 11 22:57:47 2010 +0000 @@ -146,9 +146,5 @@ /* No underscore please. */ #define LDAV_SYMBOL "avenrun" -/* On USG systems these have different names. */ -#define index strchr -#define rindex strrchr - /* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6 (do not change this comment) */ diff -r 0b8608a36b55 -r 799b50142743 src/s/ms-w32.h --- a/src/s/ms-w32.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/s/ms-w32.h Sun Jul 11 22:57:47 2010 +0000 @@ -274,8 +274,6 @@ #define pclose _pclose #define umask _umask #define utimbuf _utimbuf -#define index strchr -#define rindex strrchr #define strdup _strdup #define strupr _strupr #define strnicmp _strnicmp diff -r 0b8608a36b55 -r 799b50142743 src/s/usg5-4.h --- a/src/s/usg5-4.h Fri Jul 09 01:50:09 2010 +0000 +++ b/src/s/usg5-4.h Sun Jul 11 22:57:47 2010 +0000 @@ -50,14 +50,6 @@ #define _setjmp setjmp #define _longjmp longjmp -/* On USG systems these have different names. */ -#ifndef HAVE_INDEX -#define index strchr -#endif /* ! defined (HAVE_INDEX) */ -#ifndef HAVE_RINDEX -#define rindex strrchr -#endif /* ! defined (HAVE_RINDEX) */ - /* The docs for system V/386 suggest v.3 has sigpause, so let's try it. */ #define HAVE_SYSV_SIGPAUSE diff -r 0b8608a36b55 -r 799b50142743 src/sysdep.c --- a/src/sysdep.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/sysdep.c Sun Jul 11 22:57:47 2010 +0000 @@ -1555,7 +1555,7 @@ #ifndef CANNOT_DUMP if (initialized) #endif /* not CANNOT_DUMP */ - if (! index (hostname, '.')) + if (! strchr (hostname, '.')) { int count; #ifdef HAVE_GETADDRINFO @@ -1584,7 +1584,7 @@ while (it) { char *fqdn = it->ai_canonname; - if (fqdn && index (fqdn, '.') + if (fqdn && strchr (fqdn, '.') && strcmp (fqdn, "localhost.localdomain") != 0) break; it = it->ai_next; @@ -1620,13 +1620,13 @@ { char *fqdn = (char *) hp->h_name; - if (!index (fqdn, '.')) + if (!strchr (fqdn, '.')) { /* We still don't have a fully qualified domain name. Try to find one in the list of alternate names */ char **alias = hp->h_aliases; while (*alias - && (!index (*alias, '.') + && (!strchr (*alias, '.') || !strcmp (*alias, "localhost.localdomain"))) alias++; if (*alias) diff -r 0b8608a36b55 -r 799b50142743 src/vm-limit.c --- a/src/vm-limit.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/vm-limit.c Sun Jul 11 22:57:47 2010 +0000 @@ -42,7 +42,7 @@ /* Function to call to issue a warning; 0 means don't issue them. */ -static void (*warn_function) (char *); +static void (*warn_function) (const char *); /* Start of data space; can be changed by calling malloc_init. */ static POINTER data_space_start; @@ -289,7 +289,7 @@ WARNFUN specifies the function to call to issue a warning. */ void -memory_warnings (POINTER start, void (*warnfun) (char *)) +memory_warnings (POINTER start, void (*warnfun) (const char *)) { extern void (* __after_morecore_hook) (void); /* From gmalloc.c */ diff -r 0b8608a36b55 -r 799b50142743 src/w32fns.c --- a/src/w32fns.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/w32fns.c Sun Jul 11 22:57:47 2010 +0000 @@ -288,10 +288,15 @@ #define MENU_FREE_DELAY 1000 static unsigned menu_free_timer = 0; +/* In dispnew.c */ + +extern Lisp_Object Vwindow_system_version; + /* The below are defined in frame.c. */ extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode; extern Lisp_Object Vwindow_system_version; +extern Lisp_Object Qtooltip; #ifdef GLYPH_DEBUG int image_cache_refcount, dpyinfo_refcount; @@ -5476,9 +5481,8 @@ change_frame_size (f, height, width, 1, 0, 0); /* Add `tooltip' frame parameter's default value. */ - if (NILP (Fframe_parameter (frame, intern ("tooltip")))) - Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), - Qnil)); + if (NILP (Fframe_parameter (frame, Qtooltip))) + Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil)); /* Set up faces after all frame parameters are known. This call also merges in face attributes specified for new frames. diff -r 0b8608a36b55 -r 799b50142743 src/w32term.c --- a/src/w32term.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/w32term.c Sun Jul 11 22:57:47 2010 +0000 @@ -737,7 +737,6 @@ struct frame *f = XFRAME (WINDOW_FRAME (w)); HDC hdc; struct face *face = p->face; - int rowY; hdc = get_frame_dc (f); @@ -796,21 +795,7 @@ } /* Must clip because of partially visible lines. */ - rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); - if (p->y < rowY) - { - /* Adjust position of "bottom aligned" bitmap on partially - visible last row. */ - int oldY = row->y; - int oldVH = row->visible_height; - row->visible_height = p->h; - row->y -= rowY - p->y; - w32_clip_to_row (w, row, -1, hdc); - row->y = oldY; - row->visible_height = oldVH; - } - else - w32_clip_to_row (w, row, -1, hdc); + w32_clip_to_row (w, row, -1, hdc); if (p->which && p->which < max_fringe_bmp) { diff -r 0b8608a36b55 -r 799b50142743 src/xdisp.c --- a/src/xdisp.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/xdisp.c Sun Jul 11 22:57:47 2010 +0000 @@ -6625,6 +6625,7 @@ next_element_from_image (struct it *it) { it->what = IT_IMAGE; + it->ignore_overlay_strings_at_pos_p = 0; return 1; } @@ -8412,7 +8413,7 @@ that was alloca'd. */ void -message1 (char *m) +message1 (const char *m) { message2 (m, (m ? strlen (m) : 0), 0); } @@ -8421,7 +8422,7 @@ /* The non-logging counterpart of message1. */ void -message1_nolog (char *m) +message1_nolog (const char *m) { message2_nolog (m, (m ? strlen (m) : 0), 0); } @@ -8430,7 +8431,7 @@ which gets replaced with STRING. */ void -message_with_string (char *m, Lisp_Object string, int log) +message_with_string (const char *m, Lisp_Object string, int log) { CHECK_STRING (string); @@ -8493,9 +8494,8 @@ /* Dump an informative message to the minibuf. If M is 0, clear out any existing message, and let the mini-buffer text show through. */ -/* VARARGS 1 */ -void -message (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3) +static void +vmessage (const char *m, va_list ap) { if (noninteractive) { @@ -8504,7 +8504,7 @@ if (noninteractive_need_newline) putc ('\n', stderr); noninteractive_need_newline = 0; - fprintf (stderr, m, a1, a2, a3); + vfprintf (stderr, m, ap); if (cursor_in_echo_area == 0) fprintf (stderr, "\n"); fflush (stderr); @@ -8532,13 +8532,9 @@ if (m) { int len; - char *a[3]; - a[0] = (char *) a1; - a[1] = (char *) a2; - a[2] = (char *) a3; len = doprnt (FRAME_MESSAGE_BUF (f), - FRAME_MESSAGE_BUF_SIZE (f), m, (char *)0, 3, a); + FRAME_MESSAGE_BUF_SIZE (f), m, (char *)0, ap); message2 (FRAME_MESSAGE_BUF (f), len, 0); } @@ -8552,17 +8548,29 @@ } } +void +message (const char *m, ...) +{ + va_list ap; + va_start (ap, m); + vmessage (m, ap); + va_end (ap); +} + /* The non-logging version of message. */ void -message_nolog (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3) +message_nolog (const char *m, ...) { Lisp_Object old_log_max; + va_list ap; + va_start (ap, m); old_log_max = Vmessage_log_max; Vmessage_log_max = Qnil; - message (m, a1, a2, a3); + vmessage (m, ap); Vmessage_log_max = old_log_max; + va_end (ap); } diff -r 0b8608a36b55 -r 799b50142743 src/xfaces.c --- a/src/xfaces.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/xfaces.c Sun Jul 11 22:57:47 2010 +0000 @@ -5605,6 +5605,7 @@ struct face *former_face = cache->faces_by_id[former_face_id]; uncache_face (cache, former_face); free_realized_face (cache->f, former_face); + SET_FRAME_GARBAGED (cache->f); } if (FRAME_WINDOW_P (cache->f)) @@ -6790,10 +6791,10 @@ (FACE REPLACEMENT...), which causes display of the face FACE to use REPLACEMENT... instead. -REPLACEMENT... is interpreted the same way the value of a `face' text -property is: it may be (1) A face name, (2) A list of face names, (3) A -property-list of face attribute/value pairs, or (4) A list of face names -intermixed with lists containing face attribute/value pairs. +REPLACEMENT... is interpreted the same way as the value of a `face' +text property: it may be (1) A face name, (2) A list of face names, +(3) A property-list of face attribute/value pairs, or (4) A list of +face names or lists containing face attribute/value pairs. Multiple entries in REPLACEMENT... are merged together to form the final result, with faces or attributes earlier in the list taking precedence @@ -6817,7 +6818,11 @@ `my-mode-default', and then in the mode setup function, do: (set (make-local-variable 'face-remapping-alist) - '((default my-mode-default)))). */); + '((default my-mode-default)))). + +Because Emacs normally only redraws screen areas when the underlying +buffer contents change, you may need to call `redraw-display' after +changing this variable for it to take effect. */); Vface_remapping_alist = Qnil; DEFVAR_LISP ("face-font-rescale-alist", &Vface_font_rescale_alist, diff -r 0b8608a36b55 -r 799b50142743 src/xfns.c --- a/src/xfns.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/xfns.c Sun Jul 11 22:57:47 2010 +0000 @@ -205,6 +205,7 @@ /* The below are defined in frame.c. */ extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode; +extern Lisp_Object Qtooltip; #if GLYPH_DEBUG int image_cache_refcount, dpyinfo_refcount; @@ -2450,6 +2451,7 @@ XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++; XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++; XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; + XtSetArg (al[ac], XtNborderWidth, 0); ac++; XtSetValues (pane_widget, al, ac); f->output_data.x->column_widget = pane_widget; @@ -2465,6 +2467,7 @@ XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++; XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++; XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; + XtSetArg (al[ac], XtNborderWidth, 0); ac++; frame_widget = XtCreateWidget (f->namebuf, emacsFrameClass, pane_widget, al, ac); @@ -4002,7 +4005,7 @@ XVisualInfo vinfo; strcpy (s, SDATA (value)); - dash = index (s, '-'); + dash = strchr (s, '-'); if (dash) { dpyinfo->n_planes = atoi (dash + 1); @@ -4845,9 +4848,8 @@ change_frame_size (f, height, width, 1, 0, 0); /* Add `tooltip' frame parameter's default value. */ - if (NILP (Fframe_parameter (frame, intern ("tooltip")))) - Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), - Qnil)); + if (NILP (Fframe_parameter (frame, Qtooltip))) + Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil)); /* FIXME - can this be done in a similar way to normal frames? http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00641.html */ diff -r 0b8608a36b55 -r 799b50142743 src/xmenu.c --- a/src/xmenu.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/xmenu.c Sun Jul 11 22:57:47 2010 +0000 @@ -676,6 +676,14 @@ set_frame_menubar (f, 0, 1); BLOCK_INPUT; #ifdef USE_GTK + /* If we click outside any menu item, the menu bar still grabs. + So we send Press and the Release. If outside, grab is released. + If on a menu item, it is popped up normally. + PutBack is like a stack, so we put back in reverse order. */ + f->output_data.x->saved_menu_event->type = ButtonRelease; + XPutBackEvent (f->output_data.x->display_info->display, + f->output_data.x->saved_menu_event); + f->output_data.x->saved_menu_event->type = ButtonPress; XPutBackEvent (f->output_data.x->display_info->display, f->output_data.x->saved_menu_event); popup_activated_flag = 1; @@ -1285,6 +1293,9 @@ } { + if (f->output_data.x->menubar_widget) + XtRealizeWidget (f->output_data.x->menubar_widget); + int menubar_size = (f->output_data.x->menubar_widget ? (f->output_data.x->menubar_widget->core.height @@ -1385,7 +1396,7 @@ XtVaSetValues (f->output_data.x->widget, XtNx, x0, XtNy, y0, NULL); } #endif - + x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f)); UNBLOCK_INPUT; } } diff -r 0b8608a36b55 -r 799b50142743 src/xterm.c --- a/src/xterm.c Fri Jul 09 01:50:09 2010 +0000 +++ b/src/xterm.c Sun Jul 11 22:57:47 2010 +0000 @@ -753,24 +753,9 @@ Window window = FRAME_X_WINDOW (f); GC gc = f->output_data.x->normal_gc; struct face *face = p->face; - int rowY; /* Must clip because of partially visible lines. */ - rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); - if (p->y < rowY) - { - /* Adjust position of "bottom aligned" bitmap on partially - visible last row. */ - int oldY = row->y; - int oldVH = row->visible_height; - row->visible_height = p->h; - row->y -= rowY - p->y; - x_clip_to_row (w, row, -1, gc); - row->y = oldY; - row->visible_height = oldVH; - } - else - x_clip_to_row (w, row, -1, gc); + x_clip_to_row (w, row, -1, gc); if (!p->overlay_p) {