aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2010-07-12 11:28:50 +0900
committerKenichi Handa2010-07-12 11:28:50 +0900
commit2300368463c9719839a0289cd6dccaa93d3274cf (patch)
treed3e5e3b91444fb135bdedf40d0b4f597d47b40de
parent892dd5657e548f66bbcfb07a9556cc5fc9f17b8d (diff)
parentf479ef6e6f5c77ba0f1f6b60c1146f324d604e92 (diff)
downloademacs-2300368463c9719839a0289cd6dccaa93d3274cf.tar.gz
emacs-2300368463c9719839a0289cd6dccaa93d3274cf.zip
merge trunk
-rw-r--r--ChangeLog10
-rw-r--r--admin/CPP-DEFINES2
-rw-r--r--admin/ChangeLog4
-rwxr-xr-xconfigure417
-rw-r--r--configure.in10
-rw-r--r--doc/emacs/ChangeLog10
-rw-r--r--doc/emacs/abbrevs.texi4
-rw-r--r--doc/emacs/basic.texi10
-rw-r--r--doc/emacs/buffers.texi9
-rw-r--r--doc/emacs/building.texi15
-rw-r--r--doc/emacs/calendar.texi16
-rw-r--r--doc/emacs/custom.texi40
-rw-r--r--doc/emacs/dired.texi12
-rw-r--r--doc/emacs/display.texi4
-rw-r--r--doc/emacs/emacs.texi456
-rw-r--r--doc/emacs/emerge-xtra.texi23
-rw-r--r--doc/emacs/files.texi11
-rw-r--r--doc/emacs/fortran-xtra.texi15
-rw-r--r--doc/emacs/frames.texi7
-rw-r--r--doc/emacs/help.texi15
-rw-r--r--doc/emacs/killing.texi9
-rw-r--r--doc/emacs/maintaining.texi18
-rw-r--r--doc/emacs/mark.texi13
-rw-r--r--doc/emacs/mini.texi7
-rw-r--r--doc/emacs/misc.texi16
-rw-r--r--doc/emacs/msdog.texi7
-rw-r--r--doc/emacs/mule.texi2
-rw-r--r--doc/emacs/programs.texi12
-rw-r--r--doc/emacs/rmail.texi11
-rw-r--r--doc/emacs/screen.texi11
-rw-r--r--doc/emacs/search.texi31
-rw-r--r--doc/emacs/sending.texi5
-rw-r--r--doc/emacs/text.texi38
-rw-r--r--doc/emacs/trouble.texi8
-rw-r--r--doc/emacs/vc1-xtra.texi4
-rw-r--r--doc/emacs/xresources.texi13
-rw-r--r--doc/lispintro/ChangeLog4
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi2
-rw-r--r--doc/lispref/ChangeLog30
-rw-r--r--doc/lispref/abbrevs.texi8
-rw-r--r--doc/lispref/commands.texi68
-rw-r--r--doc/lispref/compile.texi4
-rw-r--r--doc/lispref/debugging.texi4
-rw-r--r--doc/lispref/display.texi2
-rw-r--r--doc/lispref/edebug.texi48
-rw-r--r--doc/lispref/elisp.texi156
-rw-r--r--doc/lispref/errors.texi4
-rw-r--r--doc/lispref/eval.texi2
-rw-r--r--doc/lispref/files.texi11
-rw-r--r--doc/lispref/frames.texi32
-rw-r--r--doc/lispref/functions.texi5
-rw-r--r--doc/lispref/internals.texi29
-rw-r--r--doc/lispref/keymaps.texi35
-rw-r--r--doc/lispref/loading.texi9
-rw-r--r--doc/lispref/minibuf.texi11
-rw-r--r--doc/lispref/modes.texi2
-rw-r--r--doc/lispref/numbers.texi4
-rw-r--r--doc/lispref/os.texi11
-rw-r--r--doc/lispref/processes.texi7
-rw-r--r--doc/lispref/searching.texi13
-rw-r--r--doc/lispref/sequences.texi17
-rw-r--r--doc/lispref/strings.texi5
-rw-r--r--doc/lispref/syntax.texi5
-rw-r--r--doc/lispref/text.texi34
-rw-r--r--doc/lispref/tips.texi5
-rw-r--r--doc/lispref/vol1.texi156
-rw-r--r--doc/lispref/vol2.texi156
-rw-r--r--doc/lispref/windows.texi4
-rw-r--r--doc/misc/ChangeLog42
-rw-r--r--doc/misc/ada-mode.texi6
-rw-r--r--doc/misc/auth.texi2
-rw-r--r--doc/misc/autotype.texi12
-rw-r--r--doc/misc/calc.texi2
-rw-r--r--doc/misc/cc-mode.texi4
-rw-r--r--doc/misc/cl.texi2
-rw-r--r--doc/misc/dbus.texi65
-rw-r--r--doc/misc/dired-x.texi6
-rw-r--r--doc/misc/ebrowse.texi104
-rw-r--r--doc/misc/ede.texi30
-rw-r--r--doc/misc/edt.texi2
-rw-r--r--doc/misc/eieio.texi6
-rw-r--r--doc/misc/emacs-mime.texi2
-rw-r--r--doc/misc/epa.texi18
-rw-r--r--doc/misc/erc.texi5
-rw-r--r--doc/misc/eshell.texi6
-rw-r--r--doc/misc/eudc.texi2
-rw-r--r--doc/misc/faq.texi2
-rw-r--r--doc/misc/flymake.texi8
-rw-r--r--doc/misc/forms.texi6
-rw-r--r--doc/misc/gnus-faq.texi46
-rw-r--r--doc/misc/gnus.texi2
-rw-r--r--doc/misc/idlwave.texi2
-rw-r--r--doc/misc/info.texi2
-rw-r--r--doc/misc/mairix-el.texi2
-rw-r--r--doc/misc/message.texi3
-rw-r--r--doc/misc/mh-e.texi8
-rw-r--r--doc/misc/newsticker.texi2
-rw-r--r--doc/misc/nxml-mode.texi4
-rw-r--r--doc/misc/org.texi22
-rw-r--r--doc/misc/pcl-cvs.texi2
-rw-r--r--doc/misc/pgg.texi10
-rw-r--r--doc/misc/rcirc.texi5
-rw-r--r--doc/misc/reftex.texi5
-rw-r--r--doc/misc/remember.texi2
-rw-r--r--doc/misc/sasl.texi6
-rw-r--r--doc/misc/sc.texi32
-rw-r--r--doc/misc/sem-user.texi8
-rw-r--r--doc/misc/semantic.texi6
-rw-r--r--doc/misc/ses.texi6
-rw-r--r--doc/misc/sieve.texi10
-rw-r--r--doc/misc/smtpmail.texi20
-rw-r--r--doc/misc/speedbar.texi4
-rw-r--r--doc/misc/tramp.texi19
-rw-r--r--doc/misc/url.texi2
-rw-r--r--doc/misc/vip.texi102
-rw-r--r--doc/misc/viper.texi40
-rw-r--r--doc/misc/widget.texi100
-rw-r--r--doc/misc/woman.texi4
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/PROBLEMS15
-rw-r--r--info/dir117
-rw-r--r--lib-src/ChangeLog20
-rw-r--r--lib-src/Makefile.in2
-rw-r--r--lib-src/emacsclient.c6
-rw-r--r--lib-src/make-docfile.c103
-rw-r--r--lib-src/makefile.w32-in8
-rw-r--r--lib-src/movemail.c10
-rw-r--r--lib-src/pop.c4
-rw-r--r--lisp/ChangeLog152
-rw-r--r--lisp/arc-mode.el9
-rw-r--r--lisp/bs.el2
-rw-r--r--lisp/comint.el8
-rw-r--r--lisp/descr-text.el2
-rw-r--r--lisp/dnd.el7
-rw-r--r--lisp/emacs-lisp/rx.el3
-rw-r--r--lisp/emulation/cua-base.el2
-rw-r--r--lisp/emulation/pc-select.el2
-rw-r--r--lisp/generic-x.el3
-rw-r--r--lisp/help.el5
-rw-r--r--lisp/hl-line.el6
-rw-r--r--lisp/htmlfontify.el2
-rw-r--r--lisp/mouse.el21
-rw-r--r--lisp/net/tramp-gvfs.el13
-rw-r--r--lisp/net/zeroconf.el27
-rw-r--r--lisp/play/zone.el6
-rw-r--r--lisp/progmodes/cc-mode.el7
-rw-r--r--lisp/progmodes/compile.el13
-rw-r--r--lisp/progmodes/idlwave.el2
-rw-r--r--lisp/progmodes/js.el9
-rw-r--r--lisp/progmodes/python.el18
-rw-r--r--lisp/subr.el11
-rw-r--r--lisp/url/ChangeLog2
-rw-r--r--lisp/vc/vc-annotate.el13
-rw-r--r--lisp/vc/vc-dir.el36
-rw-r--r--lisp/vc/vc-git.el30
-rw-r--r--lisp/vc/vc.el9
-rw-r--r--lisp/wid-edit.el11
-rw-r--r--lisp/x-dnd.el4
-rw-r--r--lisp/xml.el26
-rw-r--r--msdos/ChangeLog10
-rw-r--r--msdos/sed2v2.inp2
-rw-r--r--src/ChangeLog198
-rw-r--r--src/alloc.c10
-rw-r--r--src/blockinput.h1
-rw-r--r--src/buffer.h2
-rw-r--r--src/callint.c12
-rw-r--r--src/callproc.c28
-rw-r--r--src/config.in20
-rw-r--r--src/dbusbind.c46
-rw-r--r--src/dispextern.h8
-rw-r--r--src/doc.c10
-rw-r--r--src/doprnt.c47
-rw-r--r--src/editfns.c14
-rw-r--r--src/emacs.c31
-rw-r--r--src/eval.c98
-rw-r--r--src/fileio.c4
-rw-r--r--src/filelock.c7
-rw-r--r--src/fns.c10
-rw-r--r--src/font.c6
-rw-r--r--src/fontset.c4
-rw-r--r--src/frame.c18
-rw-r--r--src/fringe.c281
-rw-r--r--src/image.c4
-rw-r--r--src/insdel.c2
-rw-r--r--src/keyboard.c52
-rw-r--r--src/keyboard.h1
-rw-r--r--src/keymap.c10
-rw-r--r--src/lisp.h59
-rw-r--r--src/lread.c50
-rw-r--r--src/msdos.c31
-rw-r--r--src/nsterm.m15
-rw-r--r--src/print.c7
-rw-r--r--src/process.c957
-rw-r--r--src/s/hpux10-20.h4
-rw-r--r--src/s/ms-w32.h2
-rw-r--r--src/s/usg5-4.h8
-rw-r--r--src/sysdep.c8
-rw-r--r--src/vm-limit.c4
-rw-r--r--src/w32fns.c10
-rw-r--r--src/w32term.c17
-rw-r--r--src/xdisp.c36
-rw-r--r--src/xfaces.c15
-rw-r--r--src/xfns.c10
-rw-r--r--src/xmenu.c13
-rw-r--r--src/xterm.c17
205 files changed, 3205 insertions, 2730 deletions
diff --git a/ChangeLog b/ChangeLog
index 13b2fff124a..ef939acaf2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
12010-07-11 Andreas Schwab <schwab@linux-m68k.org>
2
3 * configure.in: Don't check for index and rindex, check for strchr
4 and strrchr. Define strchr and strrchr as index and rindex,
5 resp., in src/config.h if not available.
6
12010-07-08 Dan Nicolaescu <dann@ics.uci.edu> 72010-07-08 Dan Nicolaescu <dann@ics.uci.edu>
2 8
3 * configure.in: Use -Wold-style-definition if available. 9 * configure.in: Use -Wold-style-definition if available.
@@ -55,6 +61,10 @@
55 61
56 * config.bat: Remove white space around "+" in COPY commands. 62 * config.bat: Remove white space around "+" in COPY commands.
57 63
642010-06-23 Glenn Morris <rgm@gnu.org>
65
66 * info/dir: Start descriptions in column 32, per Texinfo convention.
67
582010-06-16 Chong Yidong <cyd@stupidchicken.com> 682010-06-16 Chong Yidong <cyd@stupidchicken.com>
59 69
60 * INSTALL: Update font information (Bug#6389). 70 * INSTALL: Update font information (Bug#6389).
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index af818babb16..b647370a781 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -143,7 +143,6 @@ HAVE_GETPT
143HAVE_GETTIMEOFDAY 143HAVE_GETTIMEOFDAY
144HAVE_GETWD 144HAVE_GETWD
145HAVE_H_ERRNO 145HAVE_H_ERRNO
146HAVE_INDEX
147HAVE_INET_SOCKETS 146HAVE_INET_SOCKETS
148HAVE_INVERSE_HYPERBOLIC 147HAVE_INVERSE_HYPERBOLIC
149HAVE_LIBKSTAT 148HAVE_LIBKSTAT
@@ -162,7 +161,6 @@ HAVE_PWD_H
162HAVE_RANDOM 161HAVE_RANDOM
163HAVE_RENAME 162HAVE_RENAME
164HAVE_RES_INIT 163HAVE_RES_INIT
165HAVE_RINDEX
166HAVE_RINT 164HAVE_RINT
167HAVE_RMDIR 165HAVE_RMDIR
168HAVE_SELECT 166HAVE_SELECT
diff --git a/admin/ChangeLog b/admin/ChangeLog
index d36e6979dc3..7a3104c9c40 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
12010-07-11 Andreas Schwab <schwab@linux-m68k.org>
2
3 * CPP-DEFINES (HAVE_INDEX, HAVE_RINDEX): Remove.
4
12010-07-08 Eli Zaretskii <eliz@gnu.org> 52010-07-08 Eli Zaretskii <eliz@gnu.org>
2 6
3 * MAINTAINERS: Update my responsibilities. 7 * MAINTAINERS: Update my responsibilities.
diff --git a/configure b/configure
index c430dec9ee2..0d3de7bd154 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,11 @@
1#! /bin/sh 1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles. 2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.65 for emacs 24.0.50. 3# Generated by GNU Autoconf 2.66 for emacs 24.0.50.
4# 4#
5# 5#
6# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 6# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
7# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 7# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
8# Inc. 8# Foundation, Inc.
9# 9#
10# 10#
11# This configure script is free software; the Free Software Foundation 11# This configure script is free software; the Free Software Foundation
@@ -316,7 +316,7 @@ $as_echo X"$as_dir" |
316 test -d "$as_dir" && break 316 test -d "$as_dir" && break
317 done 317 done
318 test -z "$as_dirs" || eval "mkdir $as_dirs" 318 test -z "$as_dirs" || eval "mkdir $as_dirs"
319 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" 319 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
320 320
321 321
322} # as_fn_mkdir_p 322} # as_fn_mkdir_p
@@ -356,19 +356,19 @@ else
356fi # as_fn_arith 356fi # as_fn_arith
357 357
358 358
359# as_fn_error ERROR [LINENO LOG_FD] 359# as_fn_error STATUS ERROR [LINENO LOG_FD]
360# --------------------------------- 360# ----------------------------------------
361# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 361# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
362# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 362# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
363# script with status $?, using 1 if that was 0. 363# script with STATUS, using 1 if that was 0.
364as_fn_error () 364as_fn_error ()
365{ 365{
366 as_status=$?; test $as_status -eq 0 && as_status=1 366 as_status=$1; test $as_status -eq 0 && as_status=1
367 if test "$3"; then 367 if test "$4"; then
368 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 368 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
369 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 369 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
370 fi 370 fi
371 $as_echo "$as_me: error: $1" >&2 371 $as_echo "$as_me: error: $2" >&2
372 as_fn_exit $as_status 372 as_fn_exit $as_status
373} # as_fn_error 373} # as_fn_error
374 374
@@ -530,7 +530,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
530exec 6>&1 530exec 6>&1
531 531
532# Name of the host. 532# Name of the host.
533# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, 533# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
534# so uname gets run too. 534# so uname gets run too.
535ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` 535ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
536 536
@@ -947,7 +947,7 @@ do
947 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` 947 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
948 # Reject names that are not valid shell variable names. 948 # Reject names that are not valid shell variable names.
949 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 949 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
950 as_fn_error "invalid feature name: $ac_useropt" 950 as_fn_error $? "invalid feature name: $ac_useropt"
951 ac_useropt_orig=$ac_useropt 951 ac_useropt_orig=$ac_useropt
952 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 952 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
953 case $ac_user_opts in 953 case $ac_user_opts in
@@ -973,7 +973,7 @@ do
973 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` 973 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
974 # Reject names that are not valid shell variable names. 974 # Reject names that are not valid shell variable names.
975 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 975 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
976 as_fn_error "invalid feature name: $ac_useropt" 976 as_fn_error $? "invalid feature name: $ac_useropt"
977 ac_useropt_orig=$ac_useropt 977 ac_useropt_orig=$ac_useropt
978 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 978 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
979 case $ac_user_opts in 979 case $ac_user_opts in
@@ -1177,7 +1177,7 @@ do
1177 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` 1177 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1178 # Reject names that are not valid shell variable names. 1178 # Reject names that are not valid shell variable names.
1179 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1179 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1180 as_fn_error "invalid package name: $ac_useropt" 1180 as_fn_error $? "invalid package name: $ac_useropt"
1181 ac_useropt_orig=$ac_useropt 1181 ac_useropt_orig=$ac_useropt
1182 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1182 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1183 case $ac_user_opts in 1183 case $ac_user_opts in
@@ -1193,7 +1193,7 @@ do
1193 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` 1193 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1194 # Reject names that are not valid shell variable names. 1194 # Reject names that are not valid shell variable names.
1195 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && 1195 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1196 as_fn_error "invalid package name: $ac_useropt" 1196 as_fn_error $? "invalid package name: $ac_useropt"
1197 ac_useropt_orig=$ac_useropt 1197 ac_useropt_orig=$ac_useropt
1198 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` 1198 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1199 case $ac_user_opts in 1199 case $ac_user_opts in
@@ -1223,8 +1223,8 @@ do
1223 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) 1223 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1224 x_libraries=$ac_optarg ;; 1224 x_libraries=$ac_optarg ;;
1225 1225
1226 -*) as_fn_error "unrecognized option: \`$ac_option' 1226 -*) as_fn_error $? "unrecognized option: \`$ac_option'
1227Try \`$0 --help' for more information." 1227Try \`$0 --help' for more information"
1228 ;; 1228 ;;
1229 1229
1230 *=*) 1230 *=*)
@@ -1232,7 +1232,7 @@ Try \`$0 --help' for more information."
1232 # Reject names that are not valid shell variable names. 1232 # Reject names that are not valid shell variable names.
1233 case $ac_envvar in #( 1233 case $ac_envvar in #(
1234 '' | [0-9]* | *[!_$as_cr_alnum]* ) 1234 '' | [0-9]* | *[!_$as_cr_alnum]* )
1235 as_fn_error "invalid variable name: \`$ac_envvar'" ;; 1235 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
1236 esac 1236 esac
1237 eval $ac_envvar=\$ac_optarg 1237 eval $ac_envvar=\$ac_optarg
1238 export $ac_envvar ;; 1238 export $ac_envvar ;;
@@ -1250,13 +1250,13 @@ done
1250 1250
1251if test -n "$ac_prev"; then 1251if test -n "$ac_prev"; then
1252 ac_option=--`echo $ac_prev | sed 's/_/-/g'` 1252 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1253 as_fn_error "missing argument to $ac_option" 1253 as_fn_error $? "missing argument to $ac_option"
1254fi 1254fi
1255 1255
1256if test -n "$ac_unrecognized_opts"; then 1256if test -n "$ac_unrecognized_opts"; then
1257 case $enable_option_checking in 1257 case $enable_option_checking in
1258 no) ;; 1258 no) ;;
1259 fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; 1259 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
1260 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; 1260 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1261 esac 1261 esac
1262fi 1262fi
@@ -1279,7 +1279,7 @@ do
1279 [\\/$]* | ?:[\\/]* ) continue;; 1279 [\\/$]* | ?:[\\/]* ) continue;;
1280 NONE | '' ) case $ac_var in *prefix ) continue;; esac;; 1280 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1281 esac 1281 esac
1282 as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" 1282 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
1283done 1283done
1284 1284
1285# There might be people who depend on the old broken behavior: `$host' 1285# There might be people who depend on the old broken behavior: `$host'
@@ -1293,8 +1293,8 @@ target=$target_alias
1293if test "x$host_alias" != x; then 1293if test "x$host_alias" != x; then
1294 if test "x$build_alias" = x; then 1294 if test "x$build_alias" = x; then
1295 cross_compiling=maybe 1295 cross_compiling=maybe
1296 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. 1296 $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
1297 If a cross compiler is detected then cross compile mode will be used." >&2 1297 If a cross compiler is detected then cross compile mode will be used" >&2
1298 elif test "x$build_alias" != "x$host_alias"; then 1298 elif test "x$build_alias" != "x$host_alias"; then
1299 cross_compiling=yes 1299 cross_compiling=yes
1300 fi 1300 fi
@@ -1309,9 +1309,9 @@ test "$silent" = yes && exec 6>/dev/null
1309ac_pwd=`pwd` && test -n "$ac_pwd" && 1309ac_pwd=`pwd` && test -n "$ac_pwd" &&
1310ac_ls_di=`ls -di .` && 1310ac_ls_di=`ls -di .` &&
1311ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || 1311ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1312 as_fn_error "working directory cannot be determined" 1312 as_fn_error $? "working directory cannot be determined"
1313test "X$ac_ls_di" = "X$ac_pwd_ls_di" || 1313test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1314 as_fn_error "pwd does not report name of working directory" 1314 as_fn_error $? "pwd does not report name of working directory"
1315 1315
1316 1316
1317# Find the source files, if location was not specified. 1317# Find the source files, if location was not specified.
@@ -1350,11 +1350,11 @@ else
1350fi 1350fi
1351if test ! -r "$srcdir/$ac_unique_file"; then 1351if test ! -r "$srcdir/$ac_unique_file"; then
1352 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." 1352 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1353 as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" 1353 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
1354fi 1354fi
1355ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" 1355ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1356ac_abs_confdir=`( 1356ac_abs_confdir=`(
1357 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" 1357 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
1358 pwd)` 1358 pwd)`
1359# When building in place, set srcdir=. 1359# When building in place, set srcdir=.
1360if test "$ac_abs_confdir" = "$ac_pwd"; then 1360if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1394,7 +1394,7 @@ Configuration:
1394 --help=short display options specific to this package 1394 --help=short display options specific to this package
1395 --help=recursive display the short help of all the included packages 1395 --help=recursive display the short help of all the included packages
1396 -V, --version display version information and exit 1396 -V, --version display version information and exit
1397 -q, --quiet, --silent do not print \`checking...' messages 1397 -q, --quiet, --silent do not print \`checking ...' messages
1398 --cache-file=FILE cache test results in FILE [disabled] 1398 --cache-file=FILE cache test results in FILE [disabled]
1399 -C, --config-cache alias for \`--cache-file=config.cache' 1399 -C, --config-cache alias for \`--cache-file=config.cache'
1400 -n, --no-create do not create output files 1400 -n, --no-create do not create output files
@@ -1610,9 +1610,9 @@ test -n "$ac_init_help" && exit $ac_status
1610if $ac_init_version; then 1610if $ac_init_version; then
1611 cat <<\_ACEOF 1611 cat <<\_ACEOF
1612emacs configure 24.0.50 1612emacs configure 24.0.50
1613generated by GNU Autoconf 2.65 1613generated by GNU Autoconf 2.66
1614 1614
1615Copyright (C) 2009 Free Software Foundation, Inc. 1615Copyright (C) 2010 Free Software Foundation, Inc.
1616This configure script is free software; the Free Software Foundation 1616This configure script is free software; the Free Software Foundation
1617gives unlimited permission to copy, distribute and modify it. 1617gives unlimited permission to copy, distribute and modify it.
1618_ACEOF 1618_ACEOF
@@ -1752,10 +1752,10 @@ fi
1752ac_fn_c_check_header_mongrel () 1752ac_fn_c_check_header_mongrel ()
1753{ 1753{
1754 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1754 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1755 if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1755 if eval "test \"\${$3+set}\"" = set; then :
1756 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1756 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1757$as_echo_n "checking for $2... " >&6; } 1757$as_echo_n "checking for $2... " >&6; }
1758if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1758if eval "test \"\${$3+set}\"" = set; then :
1759 $as_echo_n "(cached) " >&6 1759 $as_echo_n "(cached) " >&6
1760fi 1760fi
1761eval ac_res=\$$3 1761eval ac_res=\$$3
@@ -1818,7 +1818,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
1818esac 1818esac
1819 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1819 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1820$as_echo_n "checking for $2... " >&6; } 1820$as_echo_n "checking for $2... " >&6; }
1821if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1821if eval "test \"\${$3+set}\"" = set; then :
1822 $as_echo_n "(cached) " >&6 1822 $as_echo_n "(cached) " >&6
1823else 1823else
1824 eval "$3=\$ac_header_compiler" 1824 eval "$3=\$ac_header_compiler"
@@ -1882,7 +1882,7 @@ ac_fn_c_check_header_compile ()
1882 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1882 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1883 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1883 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1884$as_echo_n "checking for $2... " >&6; } 1884$as_echo_n "checking for $2... " >&6; }
1885if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1885if eval "test \"\${$3+set}\"" = set; then :
1886 $as_echo_n "(cached) " >&6 1886 $as_echo_n "(cached) " >&6
1887else 1887else
1888 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1888 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1904,15 +1904,18 @@ $as_echo "$ac_res" >&6; }
1904 1904
1905} # ac_fn_c_check_header_compile 1905} # ac_fn_c_check_header_compile
1906 1906
1907# ac_fn_c_check_decl LINENO SYMBOL VAR 1907# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
1908# ------------------------------------ 1908# ---------------------------------------------
1909# Tests whether SYMBOL is declared, setting cache variable VAR accordingly. 1909# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
1910# accordingly.
1910ac_fn_c_check_decl () 1911ac_fn_c_check_decl ()
1911{ 1912{
1912 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1913 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1913 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 1914 as_decl_name=`echo $2|sed 's/ *(.*//'`
1914$as_echo_n "checking whether $2 is declared... " >&6; } 1915 as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
1915if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1916 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
1917$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
1918if eval "test \"\${$3+set}\"" = set; then :
1916 $as_echo_n "(cached) " >&6 1919 $as_echo_n "(cached) " >&6
1917else 1920else
1918 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1921 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1921,8 +1924,12 @@ $4
1921int 1924int
1922main () 1925main ()
1923{ 1926{
1924#ifndef $2 1927#ifndef $as_decl_name
1925 (void) $2; 1928#ifdef __cplusplus
1929 (void) $as_decl_use;
1930#else
1931 (void) $as_decl_name;
1932#endif
1926#endif 1933#endif
1927 1934
1928 ; 1935 ;
@@ -1951,7 +1958,7 @@ ac_fn_c_check_header_preproc ()
1951 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1958 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1952 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 1959 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
1953$as_echo_n "checking for $2... " >&6; } 1960$as_echo_n "checking for $2... " >&6; }
1954if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 1961if eval "test \"\${$3+set}\"" = set; then :
1955 $as_echo_n "(cached) " >&6 1962 $as_echo_n "(cached) " >&6
1956else 1963else
1957 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1964 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1981,7 +1988,7 @@ ac_fn_c_check_member ()
1981 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 1988 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1982 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 1989 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
1983$as_echo_n "checking for $2.$3... " >&6; } 1990$as_echo_n "checking for $2.$3... " >&6; }
1984if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then : 1991if eval "test \"\${$4+set}\"" = set; then :
1985 $as_echo_n "(cached) " >&6 1992 $as_echo_n "(cached) " >&6
1986else 1993else
1987 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 1994 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2037,7 +2044,7 @@ ac_fn_c_check_func ()
2037 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2044 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2038 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2045 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2039$as_echo_n "checking for $2... " >&6; } 2046$as_echo_n "checking for $2... " >&6; }
2040if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2047if eval "test \"\${$3+set}\"" = set; then :
2041 $as_echo_n "(cached) " >&6 2048 $as_echo_n "(cached) " >&6
2042else 2049else
2043 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 2050 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2105,7 +2112,7 @@ ac_fn_c_check_type ()
2105 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 2112 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2106 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 2113 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2107$as_echo_n "checking for $2... " >&6; } 2114$as_echo_n "checking for $2... " >&6; }
2108if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : 2115if eval "test \"\${$3+set}\"" = set; then :
2109 $as_echo_n "(cached) " >&6 2116 $as_echo_n "(cached) " >&6
2110else 2117else
2111 eval "$3=no" 2118 eval "$3=no"
@@ -2154,7 +2161,7 @@ This file contains any messages produced by compilers while
2154running configure, to aid debugging if configure makes a mistake. 2161running configure, to aid debugging if configure makes a mistake.
2155 2162
2156It was created by emacs $as_me 24.0.50, which was 2163It was created by emacs $as_me 24.0.50, which was
2157generated by GNU Autoconf 2.65. Invocation command line was 2164generated by GNU Autoconf 2.66. Invocation command line was
2158 2165
2159 $ $0 $@ 2166 $ $0 $@
2160 2167
@@ -2264,11 +2271,9 @@ trap 'exit_status=$?
2264 { 2271 {
2265 echo 2272 echo
2266 2273
2267 cat <<\_ASBOX 2274 $as_echo "## ---------------- ##
2268## ---------------- ##
2269## Cache variables. ## 2275## Cache variables. ##
2270## ---------------- ## 2276## ---------------- ##"
2271_ASBOX
2272 echo 2277 echo
2273 # The following way of writing the cache mishandles newlines in values, 2278 # The following way of writing the cache mishandles newlines in values,
2274( 2279(
@@ -2302,11 +2307,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2302) 2307)
2303 echo 2308 echo
2304 2309
2305 cat <<\_ASBOX 2310 $as_echo "## ----------------- ##
2306## ----------------- ##
2307## Output variables. ## 2311## Output variables. ##
2308## ----------------- ## 2312## ----------------- ##"
2309_ASBOX
2310 echo 2313 echo
2311 for ac_var in $ac_subst_vars 2314 for ac_var in $ac_subst_vars
2312 do 2315 do
@@ -2319,11 +2322,9 @@ _ASBOX
2319 echo 2322 echo
2320 2323
2321 if test -n "$ac_subst_files"; then 2324 if test -n "$ac_subst_files"; then
2322 cat <<\_ASBOX 2325 $as_echo "## ------------------- ##
2323## ------------------- ##
2324## File substitutions. ## 2326## File substitutions. ##
2325## ------------------- ## 2327## ------------------- ##"
2326_ASBOX
2327 echo 2328 echo
2328 for ac_var in $ac_subst_files 2329 for ac_var in $ac_subst_files
2329 do 2330 do
@@ -2337,11 +2338,9 @@ _ASBOX
2337 fi 2338 fi
2338 2339
2339 if test -s confdefs.h; then 2340 if test -s confdefs.h; then
2340 cat <<\_ASBOX 2341 $as_echo "## ----------- ##
2341## ----------- ##
2342## confdefs.h. ## 2342## confdefs.h. ##
2343## ----------- ## 2343## ----------- ##"
2344_ASBOX
2345 echo 2344 echo
2346 cat confdefs.h 2345 cat confdefs.h
2347 echo 2346 echo
@@ -2396,7 +2395,12 @@ _ACEOF
2396ac_site_file1=NONE 2395ac_site_file1=NONE
2397ac_site_file2=NONE 2396ac_site_file2=NONE
2398if test -n "$CONFIG_SITE"; then 2397if test -n "$CONFIG_SITE"; then
2399 ac_site_file1=$CONFIG_SITE 2398 # We do not want a PATH search for config.site.
2399 case $CONFIG_SITE in #((
2400 -*) ac_site_file1=./$CONFIG_SITE;;
2401 */*) ac_site_file1=$CONFIG_SITE;;
2402 *) ac_site_file1=./$CONFIG_SITE;;
2403 esac
2400elif test "x$prefix" != xNONE; then 2404elif test "x$prefix" != xNONE; then
2401 ac_site_file1=$prefix/share/config.site 2405 ac_site_file1=$prefix/share/config.site
2402 ac_site_file2=$prefix/etc/config.site 2406 ac_site_file2=$prefix/etc/config.site
@@ -2411,7 +2415,11 @@ do
2411 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 2415 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2412$as_echo "$as_me: loading site script $ac_site_file" >&6;} 2416$as_echo "$as_me: loading site script $ac_site_file" >&6;}
2413 sed 's/^/| /' "$ac_site_file" >&5 2417 sed 's/^/| /' "$ac_site_file" >&5
2414 . "$ac_site_file" 2418 . "$ac_site_file" \
2419 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2420$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2421as_fn_error $? "failed to load site script $ac_site_file
2422See \`config.log' for more details" "$LINENO" 5; }
2415 fi 2423 fi
2416done 2424done
2417 2425
@@ -2492,7 +2500,7 @@ if $ac_cache_corrupted; then
2492$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 2500$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2493 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 2501 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2494$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} 2502$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2495 as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 2503 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2496fi 2504fi
2497## -------------------- ## 2505## -------------------- ##
2498## Main body of script. ## 2506## Main body of script. ##
@@ -2666,7 +2674,7 @@ if test "${with_x_toolkit+set}" = set; then :
2666 g | gt | gtk ) val=gtk ;; 2674 g | gt | gtk ) val=gtk ;;
2667 gtk3 ) val=gtk3 ;; 2675 gtk3 ) val=gtk3 ;;
2668 * ) 2676 * )
2669as_fn_error "\`--with-x-toolkit=$withval' is invalid; 2677as_fn_error $? "\`--with-x-toolkit=$withval' is invalid;
2670this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif', \`gtk' or 2678this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif', \`gtk' or
2671\`gtk3'. \`yes' and \`gtk' are synonyms. \`athena' and \`lucid' are synonyms." "$LINENO" 5 2679\`gtk3'. \`yes' and \`gtk' are synonyms. \`athena' and \`lucid' are synonyms." "$LINENO" 5
2672 ;; 2680 ;;
@@ -2945,7 +2953,7 @@ do
2945 stringfreelist) ac_gc_check_string_free_list=1 ;; 2953 stringfreelist) ac_gc_check_string_free_list=1 ;;
2946 xmallocoverrun) ac_xmalloc_overrun=1 ;; 2954 xmallocoverrun) ac_xmalloc_overrun=1 ;;
2947 conslist) ac_gc_check_cons_list=1 ;; 2955 conslist) ac_gc_check_cons_list=1 ;;
2948 *) as_fn_error "unknown check category $check" "$LINENO" 5 ;; 2956 *) as_fn_error $? "unknown check category $check" "$LINENO" 5 ;;
2949 esac 2957 esac
2950done 2958done
2951IFS="$ac_save_IFS" 2959IFS="$ac_save_IFS"
@@ -3061,16 +3069,22 @@ fi
3061 3069
3062ac_aux_dir= 3070ac_aux_dir=
3063for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do 3071for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
3064 for ac_t in install-sh install.sh shtool; do 3072 if test -f "$ac_dir/install-sh"; then
3065 if test -f "$ac_dir/$ac_t"; then 3073 ac_aux_dir=$ac_dir
3066 ac_aux_dir=$ac_dir 3074 ac_install_sh="$ac_aux_dir/install-sh -c"
3067 ac_install_sh="$ac_aux_dir/$ac_t -c" 3075 break
3068 break 2 3076 elif test -f "$ac_dir/install.sh"; then
3069 fi 3077 ac_aux_dir=$ac_dir
3070 done 3078 ac_install_sh="$ac_aux_dir/install.sh -c"
3079 break
3080 elif test -f "$ac_dir/shtool"; then
3081 ac_aux_dir=$ac_dir
3082 ac_install_sh="$ac_aux_dir/shtool install -c"
3083 break
3084 fi
3071done 3085done
3072if test -z "$ac_aux_dir"; then 3086if test -z "$ac_aux_dir"; then
3073 as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 3087 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
3074fi 3088fi
3075 3089
3076# These three variables are undocumented and unsupported, 3090# These three variables are undocumented and unsupported,
@@ -3084,7 +3098,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
3084 3098
3085# Make sure we can run config.sub. 3099# Make sure we can run config.sub.
3086$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 3100$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
3087 as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 3101 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
3088 3102
3089{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 3103{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
3090$as_echo_n "checking build system type... " >&6; } 3104$as_echo_n "checking build system type... " >&6; }
@@ -3095,16 +3109,16 @@ else
3095test "x$ac_build_alias" = x && 3109test "x$ac_build_alias" = x &&
3096 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 3110 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
3097test "x$ac_build_alias" = x && 3111test "x$ac_build_alias" = x &&
3098 as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 3112 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
3099ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 3113ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
3100 as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 3114 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
3101 3115
3102fi 3116fi
3103{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 3117{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
3104$as_echo "$ac_cv_build" >&6; } 3118$as_echo "$ac_cv_build" >&6; }
3105case $ac_cv_build in 3119case $ac_cv_build in
3106*-*-*) ;; 3120*-*-*) ;;
3107*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; 3121*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
3108esac 3122esac
3109build=$ac_cv_build 3123build=$ac_cv_build
3110ac_save_IFS=$IFS; IFS='-' 3124ac_save_IFS=$IFS; IFS='-'
@@ -3129,7 +3143,7 @@ else
3129 ac_cv_host=$ac_cv_build 3143 ac_cv_host=$ac_cv_build
3130else 3144else
3131 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 3145 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
3132 as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 3146 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
3133fi 3147fi
3134 3148
3135fi 3149fi
@@ -3137,7 +3151,7 @@ fi
3137$as_echo "$ac_cv_host" >&6; } 3151$as_echo "$ac_cv_host" >&6; }
3138case $ac_cv_host in 3152case $ac_cv_host in
3139*-*-*) ;; 3153*-*-*) ;;
3140*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; 3154*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
3141esac 3155esac
3142host=$ac_cv_host 3156host=$ac_cv_host
3143ac_save_IFS=$IFS; IFS='-' 3157ac_save_IFS=$IFS; IFS='-'
@@ -3431,7 +3445,7 @@ fi
3431 3445
3432 3446
3433if test $unported = yes; then 3447if test $unported = yes; then
3434 as_fn_error "Emacs hasn't been ported to \`${canonical}' systems. 3448 as_fn_error $? "Emacs hasn't been ported to \`${canonical}' systems.
3435Check \`etc/MACHINES' for recognized configuration names." "$LINENO" 5 3449Check \`etc/MACHINES' for recognized configuration names." "$LINENO" 5
3436fi 3450fi
3437 3451
@@ -3745,8 +3759,8 @@ fi
3745 3759
3746test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3760test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3747$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3761$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3748as_fn_error "no acceptable C compiler found in \$PATH 3762as_fn_error $? "no acceptable C compiler found in \$PATH
3749See \`config.log' for more details." "$LINENO" 5; } 3763See \`config.log' for more details" "$LINENO" 5; }
3750 3764
3751# Provide some information about the compiler. 3765# Provide some information about the compiler.
3752$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3766$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3860,9 +3874,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
3860 3874
3861{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3875{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3862$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3876$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3863{ as_fn_set_status 77 3877as_fn_error 77 "C compiler cannot create executables
3864as_fn_error "C compiler cannot create executables 3878See \`config.log' for more details" "$LINENO" 5; }
3865See \`config.log' for more details." "$LINENO" 5; }; }
3866else 3879else
3867 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3880 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3868$as_echo "yes" >&6; } 3881$as_echo "yes" >&6; }
@@ -3904,8 +3917,8 @@ done
3904else 3917else
3905 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3918 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3906$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3919$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3907as_fn_error "cannot compute suffix of executables: cannot compile and link 3920as_fn_error $? "cannot compute suffix of executables: cannot compile and link
3908See \`config.log' for more details." "$LINENO" 5; } 3921See \`config.log' for more details" "$LINENO" 5; }
3909fi 3922fi
3910rm -f conftest conftest$ac_cv_exeext 3923rm -f conftest conftest$ac_cv_exeext
3911{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 3924{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3962,9 +3975,9 @@ $as_echo "$ac_try_echo"; } >&5
3962 else 3975 else
3963 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3976 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3964$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3977$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3965as_fn_error "cannot run C compiled programs. 3978as_fn_error $? "cannot run C compiled programs.
3966If you meant to cross compile, use \`--host'. 3979If you meant to cross compile, use \`--host'.
3967See \`config.log' for more details." "$LINENO" 5; } 3980See \`config.log' for more details" "$LINENO" 5; }
3968 fi 3981 fi
3969 fi 3982 fi
3970fi 3983fi
@@ -4015,8 +4028,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
4015 4028
4016{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4029{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4017$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4030$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4018as_fn_error "cannot compute suffix of object files: cannot compile 4031as_fn_error $? "cannot compute suffix of object files: cannot compile
4019See \`config.log' for more details." "$LINENO" 5; } 4032See \`config.log' for more details" "$LINENO" 5; }
4020fi 4033fi
4021rm -f conftest.$ac_cv_objext conftest.$ac_ext 4034rm -f conftest.$ac_cv_objext conftest.$ac_ext
4022fi 4035fi
@@ -4435,8 +4448,8 @@ if $ac_preproc_ok; then :
4435else 4448else
4436 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4449 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4437$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4450$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4438as_fn_error "C preprocessor \"$CPP\" fails sanity check 4451as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
4439See \`config.log' for more details." "$LINENO" 5; } 4452See \`config.log' for more details" "$LINENO" 5; }
4440fi 4453fi
4441 4454
4442ac_ext=c 4455ac_ext=c
@@ -4497,7 +4510,7 @@ esac
4497 done 4510 done
4498IFS=$as_save_IFS 4511IFS=$as_save_IFS
4499 if test -z "$ac_cv_path_GREP"; then 4512 if test -z "$ac_cv_path_GREP"; then
4500 as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4513 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4501 fi 4514 fi
4502else 4515else
4503 ac_cv_path_GREP=$GREP 4516 ac_cv_path_GREP=$GREP
@@ -4563,7 +4576,7 @@ esac
4563 done 4576 done
4564IFS=$as_save_IFS 4577IFS=$as_save_IFS
4565 if test -z "$ac_cv_path_EGREP"; then 4578 if test -z "$ac_cv_path_EGREP"; then
4566 as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 4579 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4567 fi 4580 fi
4568else 4581else
4569 ac_cv_path_EGREP=$EGREP 4582 ac_cv_path_EGREP=$EGREP
@@ -4695,8 +4708,7 @@ do :
4695 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 4708 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
4696ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 4709ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
4697" 4710"
4698eval as_val=\$$as_ac_Header 4711if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
4699 if test "x$as_val" = x""yes; then :
4700 cat >>confdefs.h <<_ACEOF 4712 cat >>confdefs.h <<_ACEOF
4701#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 4713#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
4702_ACEOF 4714_ACEOF
@@ -4992,8 +5004,8 @@ if $ac_preproc_ok; then :
4992else 5004else
4993 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 5005 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4994$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 5006$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4995as_fn_error "C preprocessor \"$CPP\" fails sanity check 5007as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
4996See \`config.log' for more details." "$LINENO" 5; } 5008See \`config.log' for more details" "$LINENO" 5; }
4997fi 5009fi
4998 5010
4999ac_ext=c 5011ac_ext=c
@@ -5430,7 +5442,7 @@ if test "$MAKEINFO" = "no"; then
5430 if test "x${with_makeinfo}" = "xno"; then 5442 if test "x${with_makeinfo}" = "xno"; then
5431 MAKEINFO=off 5443 MAKEINFO=off
5432 elif test ! -e $srcdir/info/emacs; then 5444 elif test ! -e $srcdir/info/emacs; then
5433 as_fn_error "You do not seem to have makeinfo >= 4.6, and your 5445 as_fn_error $? "You do not seem to have makeinfo >= 4.6, and your
5434source tree does not seem to have pre-built manuals in the \`info' directory. 5446source tree does not seem to have pre-built manuals in the \`info' directory.
5435Either install a suitable version of makeinfo, or re-run configure 5447Either install a suitable version of makeinfo, or re-run configure
5436with the \`--without-makeinfo' option to build without the manuals. " "$LINENO" 5 5448with the \`--without-makeinfo' option to build without the manuals. " "$LINENO" 5
@@ -5606,7 +5618,7 @@ fi
5606 if test "x$GCC" = "xyes"; then 5618 if test "x$GCC" = "xyes"; then
5607 C_SWITCH_MACHINE="-fno-common" 5619 C_SWITCH_MACHINE="-fno-common"
5608 else 5620 else
5609 as_fn_error "What gives? Fix me if DEC Unix supports ELF now." "$LINENO" 5 5621 as_fn_error $? "What gives? Fix me if DEC Unix supports ELF now." "$LINENO" 5
5610 fi 5622 fi
5611 else 5623 else
5612 UNEXEC_OBJ=unexalpha.o 5624 UNEXEC_OBJ=unexalpha.o
@@ -5884,7 +5896,7 @@ else
5884 ## Some platforms don't use any of these files, so it is not 5896 ## Some platforms don't use any of these files, so it is not
5885 ## appropriate to put this test outside the if block. 5897 ## appropriate to put this test outside the if block.
5886 test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \ 5898 test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
5887 as_fn_error "crt*.o not found in specified location." "$LINENO" 5 5899 as_fn_error $? "crt*.o not found in specified location." "$LINENO" 5
5888 5900
5889fi 5901fi
5890 5902
@@ -5939,8 +5951,7 @@ if test "${with_sound}" != "no"; then
5939do : 5951do :
5940 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 5952 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
5941ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 5953ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
5942eval as_val=\$$as_ac_Header 5954if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
5943 if test "x$as_val" = x""yes; then :
5944 cat >>confdefs.h <<_ACEOF 5955 cat >>confdefs.h <<_ACEOF
5945#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 5956#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
5946_ACEOF 5957_ACEOF
@@ -6131,7 +6142,7 @@ else
6131fi 6142fi
6132rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 6143rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6133 if test "$emacs_alsa_subdir" != yes; then 6144 if test "$emacs_alsa_subdir" != yes; then
6134 as_fn_error "pkg-config found alsa, but it does not compile. See config.log for error messages." "$LINENO" 5 6145 as_fn_error $? "pkg-config found alsa, but it does not compile. See config.log for error messages." "$LINENO" 5
6135 fi 6146 fi
6136 ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE" 6147 ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
6137 fi 6148 fi
@@ -6166,8 +6177,7 @@ for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
6166do : 6177do :
6167 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 6178 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
6168ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 6179ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
6169eval as_val=\$$as_ac_Header 6180if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
6170 if test "x$as_val" = x""yes; then :
6171 cat >>confdefs.h <<_ACEOF 6181 cat >>confdefs.h <<_ACEOF
6172#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 6182#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
6173_ACEOF 6183_ACEOF
@@ -7009,7 +7019,7 @@ fi
7009$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } 7019$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
7010set x ${MAKE-make} 7020set x ${MAKE-make}
7011ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` 7021ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
7012if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : 7022if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
7013 $as_echo_n "(cached) " >&6 7023 $as_echo_n "(cached) " >&6
7014else 7024else
7015 cat >conftest.make <<\_ACEOF 7025 cat >conftest.make <<\_ACEOF
@@ -7017,7 +7027,7 @@ SHELL = /bin/sh
7017all: 7027all:
7018 @echo '@@@%%%=$(MAKE)=@@@%%%' 7028 @echo '@@@%%%=$(MAKE)=@@@%%%'
7019_ACEOF 7029_ACEOF
7020# GNU make sometimes prints "make[1]: Entering...", which would confuse us. 7030# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
7021case `${MAKE-make} -f conftest.make 2>/dev/null` in 7031case `${MAKE-make} -f conftest.make 2>/dev/null` in
7022 *@@@%%%=?*=@@@%%%*) 7032 *@@@%%%=?*=@@@%%%*)
7023 eval ac_cv_prog_make_${ac_make}_set=yes;; 7033 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -7153,7 +7163,7 @@ if test "x$with_x" = xno; then
7153 have_x=disabled 7163 have_x=disabled
7154else 7164else
7155 case $x_includes,$x_libraries in #( 7165 case $x_includes,$x_libraries in #(
7156 *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #( 7166 *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
7157 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 7167 *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
7158 $as_echo_n "(cached) " >&6 7168 $as_echo_n "(cached) " >&6
7159else 7169else
@@ -7171,7 +7181,7 @@ libdir:
7171 @echo libdir='${LIBDIR}' 7181 @echo libdir='${LIBDIR}'
7172_ACEOF 7182_ACEOF
7173 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then 7183 if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
7174 # GNU make sometimes prints "make[1]: Entering...", which would confuse us. 7184 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
7175 for ac_var in incroot usrlibdir libdir; do 7185 for ac_var in incroot usrlibdir libdir; do
7176 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" 7186 eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
7177 done 7187 done
@@ -7441,7 +7451,7 @@ if test "${with_ns}" != no; then
7441if test "x$ac_cv_header_AppKit_AppKit_h" = x""yes; then : 7451if test "x$ac_cv_header_AppKit_AppKit_h" = x""yes; then :
7442 HAVE_NS=yes 7452 HAVE_NS=yes
7443else 7453else
7444 as_fn_error "\`--with-ns' was specified, but the include 7454 as_fn_error $? "\`--with-ns' was specified, but the include
7445 files are missing or cannot be compiled." "$LINENO" 5 7455 files are missing or cannot be compiled." "$LINENO" 5
7446fi 7456fi
7447 7457
@@ -7557,7 +7567,7 @@ fi
7557 if test "$HAVE_XSERVER" = true || 7567 if test "$HAVE_XSERVER" = true ||
7558 test -n "$DISPLAY" || 7568 test -n "$DISPLAY" ||
7559 test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then 7569 test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
7560 as_fn_error "You seem to be running X, but no X development libraries 7570 as_fn_error $? "You seem to be running X, but no X development libraries
7561were found. You should install the relevant development files for X 7571were found. You should install the relevant development files for X
7562and for the toolkit you want, such as Gtk+, Lesstif or Motif. Also make 7572and for the toolkit you want, such as Gtk+, Lesstif or Motif. Also make
7563sure you have development files for image handling, i.e. 7573sure you have development files for image handling, i.e.
@@ -7680,8 +7690,7 @@ do :
7680 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 7690 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
7681ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default 7691ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
7682" 7692"
7683eval as_val=\$$as_ac_Header 7693if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
7684 if test "x$as_val" = x""yes; then :
7685 cat >>confdefs.h <<_ACEOF 7694 cat >>confdefs.h <<_ACEOF
7686#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 7695#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
7687_ACEOF 7696_ACEOF
@@ -7787,6 +7796,7 @@ int
7787main () 7796main ()
7788{ 7797{
7789 char *data, *data2, *data3; 7798 char *data, *data2, *data3;
7799 const char *cdata2;
7790 int i, pagesize; 7800 int i, pagesize;
7791 int fd, fd2; 7801 int fd, fd2;
7792 7802
@@ -7811,10 +7821,10 @@ main ()
7811 fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); 7821 fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
7812 if (fd2 < 0) 7822 if (fd2 < 0)
7813 return 4; 7823 return 4;
7814 data2 = ""; 7824 cdata2 = "";
7815 if (write (fd2, data2, 1) != 1) 7825 if (write (fd2, cdata2, 1) != 1)
7816 return 5; 7826 return 5;
7817 data2 = mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); 7827 data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
7818 if (data2 == MAP_FAILED) 7828 if (data2 == MAP_FAILED)
7819 return 6; 7829 return 6;
7820 for (i = 0; i < pagesize; ++i) 7830 for (i = 0; i < pagesize; ++i)
@@ -8186,8 +8196,7 @@ XScreenNumberOfScreen XSetWMProtocols
8186do : 8196do :
8187 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 8197 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
8188ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 8198ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
8189eval as_val=\$$as_ac_var 8199if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
8190 if test "x$as_val" = x""yes; then :
8191 cat >>confdefs.h <<_ACEOF 8200 cat >>confdefs.h <<_ACEOF
8192#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 8201#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
8193_ACEOF 8202_ACEOF
@@ -8468,7 +8477,7 @@ $as_echo "no" >&6; }
8468 fi 8477 fi
8469 8478
8470 if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then 8479 if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
8471 as_fn_error "$GTK_PKG_ERRORS" "$LINENO" 5 8480 as_fn_error $? "$GTK_PKG_ERRORS" "$LINENO" 5
8472 fi 8481 fi
8473fi 8482fi
8474 8483
@@ -8574,7 +8583,7 @@ $as_echo "no" >&6; }
8574 fi 8583 fi
8575 8584
8576 if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then 8585 if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
8577 as_fn_error "$GTK_PKG_ERRORS" "$LINENO" 5 8586 as_fn_error $? "$GTK_PKG_ERRORS" "$LINENO" 5
8578 fi 8587 fi
8579fi 8588fi
8580fi 8589fi
@@ -8601,7 +8610,7 @@ done
8601 8610
8602 if test "${GTK_COMPILES}" != "yes"; then 8611 if test "${GTK_COMPILES}" != "yes"; then
8603 if test "$USE_X_TOOLKIT" != "maybe"; then 8612 if test "$USE_X_TOOLKIT" != "maybe"; then
8604 as_fn_error "Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" "$LINENO" 5; 8613 as_fn_error $? "Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" "$LINENO" 5;
8605 fi 8614 fi
8606 else 8615 else
8607 HAVE_GTK=yes 8616 HAVE_GTK=yes
@@ -8731,8 +8740,7 @@ $as_echo "#define HAVE_GTK_AND_PTHREAD 1" >>confdefs.h
8731do : 8740do :
8732 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 8741 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
8733ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 8742ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
8734eval as_val=\$$as_ac_var 8743if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
8735 if test "x$as_val" = x""yes; then :
8736 cat >>confdefs.h <<_ACEOF 8744 cat >>confdefs.h <<_ACEOF
8737#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 8745#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
8738_ACEOF 8746_ACEOF
@@ -9097,7 +9105,7 @@ $as_echo "yes; using Lucid toolkit" >&6; }
9097 USE_X_TOOLKIT=LUCID 9105 USE_X_TOOLKIT=LUCID
9098 LUCID_LIBW=-lXaw 9106 LUCID_LIBW=-lXaw
9099 elif test x"${USE_X_TOOLKIT}" = xLUCID; then 9107 elif test x"${USE_X_TOOLKIT}" = xLUCID; then
9100 as_fn_error "Lucid toolkit requires X11/Xaw include files" "$LINENO" 5 9108 as_fn_error $? "Lucid toolkit requires X11/Xaw include files" "$LINENO" 5
9101 else 9109 else
9102 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no; do not use toolkit by default" >&5 9110 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no; do not use toolkit by default" >&5
9103$as_echo "no; do not use toolkit by default" >&6; } 9111$as_echo "no; do not use toolkit by default" >&6; }
@@ -10274,8 +10282,7 @@ if test "${HAVE_X11}" = "yes"; then
10274do : 10282do :
10275 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 10283 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
10276ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 10284ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
10277eval as_val=\$$as_ac_Header 10285if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
10278 if test "x$as_val" = x""yes; then :
10279 cat >>confdefs.h <<_ACEOF 10286 cat >>confdefs.h <<_ACEOF
10280#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 10287#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
10281_ACEOF 10288_ACEOF
@@ -10527,7 +10534,7 @@ if test "${HAVE_X11}" = "yes"; then
10527 MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no" 10534 MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
10528 10535
10529 if test "X${MISSING}" != X; then 10536 if test "X${MISSING}" != X; then
10530 as_fn_error "The following required libraries were not found: 10537 as_fn_error $? "The following required libraries were not found:
10531 $MISSING 10538 $MISSING
10532Maybe some development libraries/packages are missing? 10539Maybe some development libraries/packages are missing?
10533If you don't want to link with them give 10540If you don't want to link with them give
@@ -10862,8 +10869,7 @@ if test $ac_cv_os_cray = yes; then
10862 for ac_func in _getb67 GETB67 getb67; do 10869 for ac_func in _getb67 GETB67 getb67; do
10863 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 10870 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
10864ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 10871ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
10865eval as_val=\$$as_ac_var 10872if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
10866 if test "x$as_val" = x""yes; then :
10867 10873
10868cat >>confdefs.h <<_ACEOF 10874cat >>confdefs.h <<_ACEOF
10869#define CRAY_STACKSEG_END $ac_func 10875#define CRAY_STACKSEG_END $ac_func
@@ -10927,7 +10933,7 @@ fi
10927 10933
10928 10934
10929if test x"$ac_cv_func_alloca_works" != xyes; then 10935if test x"$ac_cv_func_alloca_works" != xyes; then
10930 as_fn_error "a system implementation of alloca is required " "$LINENO" 5 10936 as_fn_error $? "a system implementation of alloca is required " "$LINENO" 5
10931fi 10937fi
10932 10938
10933# fmod, logb, and frexp are found in -lm on most systems. 10939# fmod, logb, and frexp are found in -lm on most systems.
@@ -11123,7 +11129,7 @@ fi
11123 11129
11124 11130
11125 if test $ac_cv_prog_liblockfile = yes; then 11131 if test $ac_cv_prog_liblockfile = yes; then
11126 as_fn_error "Shared liblockfile found but can't link against it. 11132 as_fn_error $? "Shared liblockfile found but can't link against it.
11127This probably means that movemail could lose mail. 11133This probably means that movemail could lose mail.
11128There may be a \`development' package to install containing liblockfile." "$LINENO" 5 11134There may be a \`development' package to install containing liblockfile." "$LINENO" 5
11129 fi 11135 fi
@@ -11204,7 +11210,7 @@ rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
11204random lrand48 logb frexp fmod rint cbrt ftime setsid \ 11210random lrand48 logb frexp fmod rint cbrt ftime setsid \
11205strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ 11211strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
11206utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \ 11212utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
11207__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ 11213__fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \
11208sendto recvfrom getsockopt setsockopt getsockname getpeername \ 11214sendto recvfrom getsockopt setsockopt getsockname getpeername \
11209gai_strerror mkstemp getline getdelim mremap memmove fsync sync \ 11215gai_strerror mkstemp getline getdelim mremap memmove fsync sync \
11210memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \ 11216memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
@@ -11212,8 +11218,7 @@ cfmakeraw cfsetspeed isnan copysign
11212do : 11218do :
11213 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 11219 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
11214ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 11220ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
11215eval as_val=\$$as_ac_var 11221if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
11216 if test "x$as_val" = x""yes; then :
11217 cat >>confdefs.h <<_ACEOF 11222 cat >>confdefs.h <<_ACEOF
11218#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 11223#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
11219_ACEOF 11224_ACEOF
@@ -11244,8 +11249,7 @@ done
11244do : 11249do :
11245 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 11250 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
11246ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 11251ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
11247eval as_val=\$$as_ac_var 11252if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
11248 if test "x$as_val" = x""yes; then :
11249 cat >>confdefs.h <<_ACEOF 11253 cat >>confdefs.h <<_ACEOF
11250#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 11254#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
11251_ACEOF 11255_ACEOF
@@ -11297,8 +11301,8 @@ static time_t time_t_max;
11297static time_t time_t_min; 11301static time_t time_t_min;
11298 11302
11299/* Values we'll use to set the TZ environment variable. */ 11303/* Values we'll use to set the TZ environment variable. */
11300static char *tz_strings[] = { 11304static const char *tz_strings[] = {
11301 (char *) 0, "TZ=GMT0", "TZ=JST-9", 11305 (const char *) 0, "TZ=GMT0", "TZ=JST-9",
11302 "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" 11306 "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
11303}; 11307};
11304#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) 11308#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
@@ -11315,7 +11319,7 @@ spring_forward_gap ()
11315 instead of "TZ=America/Vancouver" in order to detect the bug even 11319 instead of "TZ=America/Vancouver" in order to detect the bug even
11316 on systems that don't support the Olson extension, or don't have the 11320 on systems that don't support the Olson extension, or don't have the
11317 full zoneinfo tables installed. */ 11321 full zoneinfo tables installed. */
11318 putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); 11322 putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
11319 11323
11320 tm.tm_year = 98; 11324 tm.tm_year = 98;
11321 tm.tm_mon = 3; 11325 tm.tm_mon = 3;
@@ -11328,16 +11332,14 @@ spring_forward_gap ()
11328} 11332}
11329 11333
11330static int 11334static int
11331mktime_test1 (now) 11335mktime_test1 (time_t now)
11332 time_t now;
11333{ 11336{
11334 struct tm *lt; 11337 struct tm *lt;
11335 return ! (lt = localtime (&now)) || mktime (lt) == now; 11338 return ! (lt = localtime (&now)) || mktime (lt) == now;
11336} 11339}
11337 11340
11338static int 11341static int
11339mktime_test (now) 11342mktime_test (time_t now)
11340 time_t now;
11341{ 11343{
11342 return (mktime_test1 (now) 11344 return (mktime_test1 (now)
11343 && mktime_test1 ((time_t) (time_t_max - now)) 11345 && mktime_test1 ((time_t) (time_t_max - now))
@@ -11361,8 +11363,7 @@ irix_6_4_bug ()
11361} 11363}
11362 11364
11363static int 11365static int
11364bigtime_test (j) 11366bigtime_test (int j)
11365 int j;
11366{ 11367{
11367 struct tm tm; 11368 struct tm tm;
11368 time_t now; 11369 time_t now;
@@ -11406,7 +11407,7 @@ year_2050_test ()
11406 instead of "TZ=America/Vancouver" in order to detect the bug even 11407 instead of "TZ=America/Vancouver" in order to detect the bug even
11407 on systems that don't support the Olson extension, or don't have the 11408 on systems that don't support the Olson extension, or don't have the
11408 full zoneinfo tables installed. */ 11409 full zoneinfo tables installed. */
11409 putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); 11410 putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
11410 11411
11411 t = mktime (&tm); 11412 t = mktime (&tm);
11412 11413
@@ -11441,7 +11442,7 @@ main ()
11441 for (i = 0; i < N_STRINGS; i++) 11442 for (i = 0; i < N_STRINGS; i++)
11442 { 11443 {
11443 if (tz_strings[i]) 11444 if (tz_strings[i])
11444 putenv (tz_strings[i]); 11445 putenv ((char*) tz_strings[i]);
11445 11446
11446 for (t = 0; t <= time_t_max - delta; t += delta) 11447 for (t = 0; t <= time_t_max - delta; t += delta)
11447 if (! mktime_test (t)) 11448 if (! mktime_test (t))
@@ -11493,7 +11494,7 @@ ac_have_func=no # yes means we've found a way to get the load average.
11493 11494
11494# Make sure getloadavg.c is where it belongs, at configure-time. 11495# Make sure getloadavg.c is where it belongs, at configure-time.
11495test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" || 11496test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" ||
11496 as_fn_error "$srcdir/$ac_config_libobj_dir/getloadavg.c is missing" "$LINENO" 5 11497 as_fn_error $? "$srcdir/$ac_config_libobj_dir/getloadavg.c is missing" "$LINENO" 5
11497 11498
11498ac_save_LIBS=$LIBS 11499ac_save_LIBS=$LIBS
11499 11500
@@ -12362,7 +12363,7 @@ else
12362fi 12363fi
12363 12364
12364if test "$have_tputs_et_al" != true; then 12365if test "$have_tputs_et_al" != true; then
12365 as_fn_error "I couldn't find termcap functions (tputs and friends). 12366 as_fn_error $? "I couldn't find termcap functions (tputs and friends).
12366Maybe some development libraries/packages are missing? Try installing 12367Maybe some development libraries/packages are missing? Try installing
12367libncurses-dev(el), libterminfo-dev(el) or similar." "$LINENO" 5 12368libncurses-dev(el), libterminfo-dev(el) or similar." "$LINENO" 5
12368fi 12369fi
@@ -13509,8 +13510,7 @@ for ac_func in fork vfork
13509do : 13510do :
13510 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` 13511 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
13511ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" 13512ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
13512eval as_val=\$$as_ac_var 13513if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
13513 if test "x$as_val" = x""yes; then :
13514 cat >>confdefs.h <<_ACEOF 13514 cat >>confdefs.h <<_ACEOF
13515#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 13515#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
13516_ACEOF 13516_ACEOF
@@ -13884,14 +13884,14 @@ if test "x$GCC" = xyes \
13884 && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \ 13884 && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
13885 && test x"`echo $CFLAGS | grep '\-O[23]'`" != x \ 13885 && test x"`echo $CFLAGS | grep '\-O[23]'`" != x \
13886 && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then 13886 && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
13887 as_fn_error "GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'." "$LINENO" 5 13887 as_fn_error $? "GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'." "$LINENO" 5
13888fi 13888fi
13889 13889
13890#### Find out which version of Emacs this is. 13890#### Find out which version of Emacs this is.
13891version=`grep 'const char emacs_version' ${srcdir}/src/emacs.c \ 13891version=`grep 'const char emacs_version' ${srcdir}/src/emacs.c \
13892 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` 13892 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
13893if test x"${version}" = x; then 13893if test x"${version}" = x; then
13894 as_fn_error "can't find current emacs version in \`${srcdir}/src/emacs.c'." "$LINENO" 5 13894 as_fn_error $? "can't find current emacs version in \`${srcdir}/src/emacs.c'." "$LINENO" 5
13895fi 13895fi
13896if test x"${version}" != x"$PACKAGE_VERSION"; then 13896if test x"${version}" != x"$PACKAGE_VERSION"; then
13897 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: version mismatch between \`${srcdir}/configure.in' and \`${srcdir}/src/emacs.c'." >&5 13897 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: version mismatch between \`${srcdir}/configure.in' and \`${srcdir}/src/emacs.c'." >&5
@@ -14452,6 +14452,7 @@ DEFS=-DHAVE_CONFIG_H
14452 14452
14453ac_libobjs= 14453ac_libobjs=
14454ac_ltlibobjs= 14454ac_ltlibobjs=
14455U=
14455for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue 14456for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
14456 # 1. Remove the extension, and $U if already installed. 14457 # 1. Remove the extension, and $U if already installed.
14457 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' 14458 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -14613,19 +14614,19 @@ export LANGUAGE
14613(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 14614(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
14614 14615
14615 14616
14616# as_fn_error ERROR [LINENO LOG_FD] 14617# as_fn_error STATUS ERROR [LINENO LOG_FD]
14617# --------------------------------- 14618# ----------------------------------------
14618# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 14619# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
14619# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 14620# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
14620# script with status $?, using 1 if that was 0. 14621# script with STATUS, using 1 if that was 0.
14621as_fn_error () 14622as_fn_error ()
14622{ 14623{
14623 as_status=$?; test $as_status -eq 0 && as_status=1 14624 as_status=$1; test $as_status -eq 0 && as_status=1
14624 if test "$3"; then 14625 if test "$4"; then
14625 as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 14626 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
14626 $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 14627 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
14627 fi 14628 fi
14628 $as_echo "$as_me: error: $1" >&2 14629 $as_echo "$as_me: error: $2" >&2
14629 as_fn_exit $as_status 14630 as_fn_exit $as_status
14630} # as_fn_error 14631} # as_fn_error
14631 14632
@@ -14821,7 +14822,7 @@ $as_echo X"$as_dir" |
14821 test -d "$as_dir" && break 14822 test -d "$as_dir" && break
14822 done 14823 done
14823 test -z "$as_dirs" || eval "mkdir $as_dirs" 14824 test -z "$as_dirs" || eval "mkdir $as_dirs"
14824 } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" 14825 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
14825 14826
14826 14827
14827} # as_fn_mkdir_p 14828} # as_fn_mkdir_p
@@ -14875,7 +14876,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
14875# values after options handling. 14876# values after options handling.
14876ac_log=" 14877ac_log="
14877This file was extended by emacs $as_me 24.0.50, which was 14878This file was extended by emacs $as_me 24.0.50, which was
14878generated by GNU Autoconf 2.65. Invocation command line was 14879generated by GNU Autoconf 2.66. Invocation command line was
14879 14880
14880 CONFIG_FILES = $CONFIG_FILES 14881 CONFIG_FILES = $CONFIG_FILES
14881 CONFIG_HEADERS = $CONFIG_HEADERS 14882 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -14941,10 +14942,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
14941ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 14942ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
14942ac_cs_version="\\ 14943ac_cs_version="\\
14943emacs config.status 24.0.50 14944emacs config.status 24.0.50
14944configured by $0, generated by GNU Autoconf 2.65, 14945configured by $0, generated by GNU Autoconf 2.66,
14945 with options \\"\$ac_cs_config\\" 14946 with options \\"\$ac_cs_config\\"
14946 14947
14947Copyright (C) 2009 Free Software Foundation, Inc. 14948Copyright (C) 2010 Free Software Foundation, Inc.
14948This config.status script is free software; the Free Software Foundation 14949This config.status script is free software; the Free Software Foundation
14949gives unlimited permission to copy, distribute and modify it." 14950gives unlimited permission to copy, distribute and modify it."
14950 14951
@@ -14998,7 +14999,7 @@ do
14998 ac_need_defaults=false;; 14999 ac_need_defaults=false;;
14999 --he | --h) 15000 --he | --h)
15000 # Conflict between --help and --header 15001 # Conflict between --help and --header
15001 as_fn_error "ambiguous option: \`$1' 15002 as_fn_error $? "ambiguous option: \`$1'
15002Try \`$0 --help' for more information.";; 15003Try \`$0 --help' for more information.";;
15003 --help | --hel | -h ) 15004 --help | --hel | -h )
15004 $as_echo "$ac_cs_usage"; exit ;; 15005 $as_echo "$ac_cs_usage"; exit ;;
@@ -15007,7 +15008,7 @@ Try \`$0 --help' for more information.";;
15007 ac_cs_silent=: ;; 15008 ac_cs_silent=: ;;
15008 15009
15009 # This is an error. 15010 # This is an error.
15010 -*) as_fn_error "unrecognized option: \`$1' 15011 -*) as_fn_error $? "unrecognized option: \`$1'
15011Try \`$0 --help' for more information." ;; 15012Try \`$0 --help' for more information." ;;
15012 15013
15013 *) as_fn_append ac_config_targets " $1" 15014 *) as_fn_append ac_config_targets " $1"
@@ -15075,7 +15076,7 @@ do
15075 "leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;; 15076 "leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;;
15076 "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; 15077 "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
15077 15078
15078 *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 15079 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
15079 esac 15080 esac
15080done 15081done
15081 15082
@@ -15113,7 +15114,7 @@ $debug ||
15113{ 15114{
15114 tmp=./conf$$-$RANDOM 15115 tmp=./conf$$-$RANDOM
15115 (umask 077 && mkdir "$tmp") 15116 (umask 077 && mkdir "$tmp")
15116} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 15117} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
15117 15118
15118# Set up the scripts for CONFIG_FILES section. 15119# Set up the scripts for CONFIG_FILES section.
15119# No need to generate them if there are no CONFIG_FILES. 15120# No need to generate them if there are no CONFIG_FILES.
@@ -15147,7 +15148,7 @@ if test "x$ac_cr" = x; then
15147fi 15148fi
15148ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 15149ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
15149if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 15150if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
15150 ac_cs_awk_cr='\r' 15151 ac_cs_awk_cr='\\r'
15151else 15152else
15152 ac_cs_awk_cr=$ac_cr 15153 ac_cs_awk_cr=$ac_cr
15153fi 15154fi
@@ -15164,7 +15165,7 @@ _ACEOF
15164 echo "_ACEOF" 15165 echo "_ACEOF"
15165} >conf$$files.sh && 15166} >conf$$files.sh &&
15166. ./conf$$files.sh || 15167. ./conf$$files.sh ||
15167 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 15168 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
15168rm -f conf$$files.sh 15169rm -f conf$$files.sh
15169 15170
15170{ 15171{
@@ -15172,18 +15173,18 @@ rm -f conf$$files.sh
15172 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && 15173 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
15173 echo "_ACEOF" 15174 echo "_ACEOF"
15174} >conf$$subs.sh || 15175} >conf$$subs.sh ||
15175 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 15176 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
15176ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` 15177ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
15177ac_delim='%!_!# ' 15178ac_delim='%!_!# '
15178for ac_last_try in false false false false false :; do 15179for ac_last_try in false false false false false :; do
15179 . ./conf$$subs.sh || 15180 . ./conf$$subs.sh ||
15180 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 15181 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
15181 15182
15182 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` 15183 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
15183 if test $ac_delim_n = $ac_delim_num; then 15184 if test $ac_delim_n = $ac_delim_num; then
15184 break 15185 break
15185 elif $ac_last_try; then 15186 elif $ac_last_try; then
15186 as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 15187 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
15187 else 15188 else
15188 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 15189 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
15189 fi 15190 fi
@@ -15278,20 +15279,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
15278else 15279else
15279 cat 15280 cat
15280fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 15281fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
15281 || as_fn_error "could not setup config files machinery" "$LINENO" 5 15282 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
15282_ACEOF 15283_ACEOF
15283 15284
15284# VPATH may cause trouble with some makes, so we remove $(srcdir), 15285# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
15285# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and 15286# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
15286# trailing colons and then remove the whole line if VPATH becomes empty 15287# trailing colons and then remove the whole line if VPATH becomes empty
15287# (actually we leave an empty line to preserve line numbers). 15288# (actually we leave an empty line to preserve line numbers).
15288if test "x$srcdir" = x.; then 15289if test "x$srcdir" = x.; then
15289 ac_vpsub='/^[ ]*VPATH[ ]*=/{ 15290 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
15290s/:*\$(srcdir):*/:/ 15291h
15291s/:*\${srcdir}:*/:/ 15292s///
15292s/:*@srcdir@:*/:/ 15293s/^/:/
15293s/^\([^=]*=[ ]*\):*/\1/ 15294s/[ ]*$/:/
15295s/:\$(srcdir):/:/g
15296s/:\${srcdir}:/:/g
15297s/:@srcdir@:/:/g
15298s/^:*//
15294s/:*$// 15299s/:*$//
15300x
15301s/\(=[ ]*\).*/\1/
15302G
15303s/\n//
15295s/^[^=]*=[ ]*$// 15304s/^[^=]*=[ ]*$//
15296}' 15305}'
15297fi 15306fi
@@ -15319,7 +15328,7 @@ for ac_last_try in false false :; do
15319 if test -z "$ac_t"; then 15328 if test -z "$ac_t"; then
15320 break 15329 break
15321 elif $ac_last_try; then 15330 elif $ac_last_try; then
15322 as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 15331 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
15323 else 15332 else
15324 ac_delim="$ac_delim!$ac_delim _$ac_delim!! " 15333 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
15325 fi 15334 fi
@@ -15404,7 +15413,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15404_ACAWK 15413_ACAWK
15405_ACEOF 15414_ACEOF
15406cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 15415cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15407 as_fn_error "could not setup config headers machinery" "$LINENO" 5 15416 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
15408fi # test -n "$CONFIG_HEADERS" 15417fi # test -n "$CONFIG_HEADERS"
15409 15418
15410 15419
@@ -15417,7 +15426,7 @@ do
15417 esac 15426 esac
15418 case $ac_mode$ac_tag in 15427 case $ac_mode$ac_tag in
15419 :[FHL]*:*);; 15428 :[FHL]*:*);;
15420 :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; 15429 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
15421 :[FH]-) ac_tag=-:-;; 15430 :[FH]-) ac_tag=-:-;;
15422 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 15431 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
15423 esac 15432 esac
@@ -15445,7 +15454,7 @@ do
15445 [\\/$]*) false;; 15454 [\\/$]*) false;;
15446 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 15455 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
15447 esac || 15456 esac ||
15448 as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; 15457 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
15449 esac 15458 esac
15450 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 15459 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
15451 as_fn_append ac_file_inputs " '$ac_f'" 15460 as_fn_append ac_file_inputs " '$ac_f'"
@@ -15472,7 +15481,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
15472 15481
15473 case $ac_tag in 15482 case $ac_tag in
15474 *:-:* | *:-) cat >"$tmp/stdin" \ 15483 *:-:* | *:-) cat >"$tmp/stdin" \
15475 || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; 15484 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
15476 esac 15485 esac
15477 ;; 15486 ;;
15478 esac 15487 esac
@@ -15608,22 +15617,22 @@ if $ac_cs_awk_getline; then
15608else 15617else
15609 $AWK -f "$tmp/subs.awk" | $SHELL 15618 $AWK -f "$tmp/subs.awk" | $SHELL
15610fi >$tmp/out \ 15619fi >$tmp/out \
15611 || as_fn_error "could not create $ac_file" "$LINENO" 5 15620 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
15612 15621
15613test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 15622test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
15614 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 15623 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
15615 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 15624 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
15616 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 15625 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
15617which seems to be undefined. Please make sure it is defined." >&5 15626which seems to be undefined. Please make sure it is defined" >&5
15618$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 15627$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
15619which seems to be undefined. Please make sure it is defined." >&2;} 15628which seems to be undefined. Please make sure it is defined" >&2;}
15620 15629
15621 rm -f "$tmp/stdin" 15630 rm -f "$tmp/stdin"
15622 case $ac_file in 15631 case $ac_file in
15623 -) cat "$tmp/out" && rm -f "$tmp/out";; 15632 -) cat "$tmp/out" && rm -f "$tmp/out";;
15624 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 15633 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
15625 esac \ 15634 esac \
15626 || as_fn_error "could not create $ac_file" "$LINENO" 5 15635 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
15627 ;; 15636 ;;
15628 :H) 15637 :H)
15629 # 15638 #
@@ -15634,19 +15643,19 @@ which seems to be undefined. Please make sure it is defined." >&2;}
15634 $as_echo "/* $configure_input */" \ 15643 $as_echo "/* $configure_input */" \
15635 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 15644 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
15636 } >"$tmp/config.h" \ 15645 } >"$tmp/config.h" \
15637 || as_fn_error "could not create $ac_file" "$LINENO" 5 15646 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
15638 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 15647 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
15639 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 15648 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
15640$as_echo "$as_me: $ac_file is unchanged" >&6;} 15649$as_echo "$as_me: $ac_file is unchanged" >&6;}
15641 else 15650 else
15642 rm -f "$ac_file" 15651 rm -f "$ac_file"
15643 mv "$tmp/config.h" "$ac_file" \ 15652 mv "$tmp/config.h" "$ac_file" \
15644 || as_fn_error "could not create $ac_file" "$LINENO" 5 15653 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
15645 fi 15654 fi
15646 else 15655 else
15647 $as_echo "/* $configure_input */" \ 15656 $as_echo "/* $configure_input */" \
15648 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 15657 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
15649 || as_fn_error "could not create -" "$LINENO" 5 15658 || as_fn_error $? "could not create -" "$LINENO" 5
15650 fi 15659 fi
15651 ;; 15660 ;;
15652 15661
@@ -15683,7 +15692,7 @@ _ACEOF
15683ac_clean_files=$ac_clean_files_save 15692ac_clean_files=$ac_clean_files_save
15684 15693
15685test $ac_write_fail = 0 || 15694test $ac_write_fail = 0 ||
15686 as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 15695 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
15687 15696
15688 15697
15689# configure is writing to config.log, and then calls config.status. 15698# configure is writing to config.log, and then calls config.status.
@@ -15704,7 +15713,7 @@ if test "$no_create" != yes; then
15704 exec 5>>config.log 15713 exec 5>>config.log
15705 # Use ||, not &&, to avoid exiting from the if with $? = 1, which 15714 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
15706 # would make configure fail if this is the last instruction. 15715 # would make configure fail if this is the last instruction.
15707 $ac_cs_success || as_fn_exit $? 15716 $ac_cs_success || as_fn_exit 1
15708fi 15717fi
15709if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 15718if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
15710 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 15719 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --git a/configure.in b/configure.in
index aee62c0e11d..0f0cb8f6a3f 100644
--- a/configure.in
+++ b/configure.in
@@ -2635,7 +2635,7 @@ rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
2635random lrand48 logb frexp fmod rint cbrt ftime setsid \ 2635random lrand48 logb frexp fmod rint cbrt ftime setsid \
2636strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ 2636strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
2637utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \ 2637utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
2638__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ 2638__fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \
2639sendto recvfrom getsockopt setsockopt getsockname getpeername \ 2639sendto recvfrom getsockopt setsockopt getsockname getpeername \
2640gai_strerror mkstemp getline getdelim mremap memmove fsync sync \ 2640gai_strerror mkstemp getline getdelim mremap memmove fsync sync \
2641memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \ 2641memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
@@ -3601,6 +3601,14 @@ void *alloca (size_t);
3601typedef unsigned size_t; 3601typedef unsigned size_t;
3602#endif 3602#endif
3603 3603
3604#ifndef HAVE_STRCHR
3605#define strchr(a, b) index (a, b)
3606#endif
3607
3608#ifndef HAVE_STRRCHR
3609#define strrchr(a, b) rindex (a, b)
3610#endif
3611
3604#if defined __GNUC__ && (__GNUC__ > 2 \ 3612#if defined __GNUC__ && (__GNUC__ > 2 \
3605 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) 3613 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
3606#define NO_RETURN __attribute__ ((__noreturn__)) 3614#define NO_RETURN __attribute__ ((__noreturn__))
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index e954fe496c4..487663109bd 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,13 @@
12010-06-23 Glenn Morris <rgm@gnu.org>
2
3 * abbrevs.texi, basic.texi, buffers.texi, building.texi, calendar.texi:
4 * custom.texi, dired.texi, display.texi, emacs.texi, emerge-xtra.texi:
5 * files.texi, fortran-xtra.texi, frames.texi, help.texi, killing.texi:
6 * maintaining.texi, mark.texi, mini.texi, misc.texi, msdog.texi:
7 * mule.texi, programs.texi, rmail.texi, screen.texi, search.texi:
8 * sending.texi, text.texi, trouble.texi, vc1-xtra.texi, xresources.texi:
9 Untabify Texinfo files.
10
12010-06-10 Glenn Morris <rgm@gnu.org> 112010-06-10 Glenn Morris <rgm@gnu.org>
2 12
3 * basic.texi (Inserting Text): Minor clarification. (Bug#6374) 13 * basic.texi (Inserting Text): Minor clarification. (Bug#6374)
diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi
index 7a291742386..9039ca662a0 100644
--- a/doc/emacs/abbrevs.texi
+++ b/doc/emacs/abbrevs.texi
@@ -235,9 +235,9 @@ Edit a list of abbrevs; you can add, alter or remove definitions.
235@example 235@example
236@var{various other tables@dots{}} 236@var{various other tables@dots{}}
237(lisp-mode-abbrev-table) 237(lisp-mode-abbrev-table)
238"dk" 0 "define-key" 238"dk" 0 "define-key"
239(global-abbrev-table) 239(global-abbrev-table)
240"dfn" 0 "definition" 240"dfn" 0 "definition"
241@end example 241@end example
242 242
243@noindent 243@noindent
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index b5a194f1ccf..a4751e7f99d 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -17,15 +17,15 @@ suggest you first run the Emacs learn-by-doing tutorial, by typing
17 17
18* Inserting Text:: Inserting text by simply typing it. 18* Inserting Text:: Inserting text by simply typing it.
19* Moving Point:: Moving the cursor to the place where you want to 19* Moving Point:: Moving the cursor to the place where you want to
20 change something. 20 change something.
21* Erasing:: Deleting and killing text. 21* Erasing:: Deleting and killing text.
22* Basic Undo:: Undoing recent changes in the text. 22* Basic Undo:: Undoing recent changes in the text.
23* Files: Basic Files. Visiting, creating, and saving files. 23* Files: Basic Files. Visiting, creating, and saving files.
24* Help: Basic Help. Asking what a character does. 24* Help: Basic Help. Asking what a character does.
25* Blank Lines:: Making and deleting blank lines. 25* Blank Lines:: Making and deleting blank lines.
26* Continuation Lines:: How Emacs displays lines too wide for the screen. 26* Continuation Lines:: How Emacs displays lines too wide for the screen.
27* Position Info:: What page, line, row, or column is point on? 27* Position Info:: What page, line, row, or column is point on?
28* Arguments:: Numeric arguments for repeating a command N times. 28* Arguments:: Numeric arguments for repeating a command N times.
29* Repeating:: Repeating the previous command quickly. 29* Repeating:: Repeating the previous command quickly.
30@end menu 30@end menu
31 31
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index 499556401fc..ca9279a9df4 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Buffers, Windows, Files, Top 6@node Buffers, Windows, Files, Top
6@chapter Using Multiple Buffers 7@chapter Using Multiple Buffers
@@ -49,10 +50,10 @@ using that data type. For 32-bit machines, the largest buffer size is
49@menu 50@menu
50* Select Buffer:: Creating a new buffer or reselecting an old one. 51* Select Buffer:: Creating a new buffer or reselecting an old one.
51* List Buffers:: Getting a list of buffers that exist. 52* List Buffers:: Getting a list of buffers that exist.
52* Misc Buffer:: Renaming; changing read-onlyness; copying text. 53* Misc Buffer:: Renaming; changing read-onlyness; copying text.
53* Kill Buffer:: Killing buffers you no longer need. 54* Kill Buffer:: Killing buffers you no longer need.
54* Several Buffers:: How to go through the list of all buffers 55* Several Buffers:: How to go through the list of all buffers
55 and operate variously on several of them. 56 and operate variously on several of them.
56* Indirect Buffers:: An indirect buffer shares the text of another buffer. 57* Indirect Buffers:: An indirect buffer shares the text of another buffer.
57* Buffer Convenience:: Convenience and customization features for 58* Buffer Convenience:: Convenience and customization features for
58 buffer handling. 59 buffer handling.
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 9a1ec894815..dca76407e23 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Building, Maintaining, Programs, Top 6@node Building, Maintaining, Programs, Top
6@chapter Compiling and Testing Programs 7@chapter Compiling and Testing Programs
@@ -20,14 +21,14 @@ in the larger process of compiling and testing programs.
20 for use in the compilation buffer. 21 for use in the compilation buffer.
21* Grep Searching:: Searching with grep. 22* Grep Searching:: Searching with grep.
22* Flymake:: Finding syntax errors on the fly. 23* Flymake:: Finding syntax errors on the fly.
23* Debuggers:: Running symbolic debuggers for non-Lisp programs. 24* Debuggers:: Running symbolic debuggers for non-Lisp programs.
24* Executing Lisp:: Various modes for editing Lisp programs, 25* Executing Lisp:: Various modes for editing Lisp programs,
25 with different facilities for running 26 with different facilities for running
26 the Lisp programs. 27 the Lisp programs.
27* Libraries: Lisp Libraries. Creating Lisp programs to run in Emacs. 28* Libraries: Lisp Libraries. Creating Lisp programs to run in Emacs.
28* Eval: Lisp Eval. Executing a single Lisp expression in Emacs. 29* Eval: Lisp Eval. Executing a single Lisp expression in Emacs.
29* Interaction: Lisp Interaction. Executing Lisp in an Emacs buffer. 30* Interaction: Lisp Interaction. Executing Lisp in an Emacs buffer.
30* External Lisp:: Communicating through Emacs with a separate Lisp. 31* External Lisp:: Communicating through Emacs with a separate Lisp.
31@end menu 32@end menu
32 33
33@node Compilation 34@node Compilation
@@ -471,10 +472,10 @@ Lisp programs. @xref{Debugging,, The Lisp Debugger, elisp, the Emacs
471Lisp Reference Manual}, for information on the Emacs Lisp debugger. 472Lisp Reference Manual}, for information on the Emacs Lisp debugger.
472 473
473@menu 474@menu
474* Starting GUD:: How to start a debugger subprocess. 475* Starting GUD:: How to start a debugger subprocess.
475* Debugger Operation:: Connection between the debugger and source buffers. 476* Debugger Operation:: Connection between the debugger and source buffers.
476* Commands of GUD:: Key bindings for common commands. 477* Commands of GUD:: Key bindings for common commands.
477* GUD Customization:: Defining your own commands for GUD. 478* GUD Customization:: Defining your own commands for GUD.
478* GDB Graphical Interface:: An enhanced mode that uses GDB features to 479* GDB Graphical Interface:: An enhanced mode that uses GDB features to
479 implement a graphical debugging environment through 480 implement a graphical debugging environment through
480 Emacs. 481 Emacs.
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index ae4333cefbb..5698fd5ff58 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -42,7 +42,7 @@ about more specialized features.
42* Lunar Phases:: Displaying phases of the moon. 42* Lunar Phases:: Displaying phases of the moon.
43* Other Calendars:: Converting dates to other calendar systems. 43* Other Calendars:: Converting dates to other calendar systems.
44* Diary:: Displaying events from your diary. 44* Diary:: Displaying events from your diary.
45* Appointments:: Reminders when it's time to do something. 45* Appointments:: Reminders when it's time to do something.
46* Importing Diary:: Converting diary events to/from other formats. 46* Importing Diary:: Converting diary events to/from other formats.
47* Daylight Saving:: How to specify when daylight saving time is active. 47* Daylight Saving:: How to specify when daylight saving time is active.
48* Time Intervals:: Keeping track of time intervals. 48* Time Intervals:: Keeping track of time intervals.
@@ -674,11 +674,11 @@ Gregorian calendar did not exist.
674and from several other calendars. 674and from several other calendars.
675 675
676@menu 676@menu
677* Calendar Systems:: The calendars Emacs understands 677* Calendar Systems:: The calendars Emacs understands
678 (aside from Gregorian). 678 (aside from Gregorian).
679* To Other Calendar:: Converting the selected date to various calendars. 679* To Other Calendar:: Converting the selected date to various calendars.
680* From Other Calendar:: Moving to a date specified in another calendar. 680* From Other Calendar:: Moving to a date specified in another calendar.
681* Mayan Calendar:: Moving to a date specified in a Mayan calendar. 681* Mayan Calendar:: Moving to a date specified in a Mayan calendar.
682@end menu 682@end menu
683 683
684@node Calendar Systems 684@node Calendar Systems
@@ -1040,8 +1040,8 @@ entries.
1040@menu 1040@menu
1041* Displaying the Diary:: Viewing diary entries and associated calendar dates. 1041* Displaying the Diary:: Viewing diary entries and associated calendar dates.
1042* Format of Diary File:: Entering events in your diary. 1042* Format of Diary File:: Entering events in your diary.
1043* Date Formats:: Various ways you can specify dates. 1043* Date Formats:: Various ways you can specify dates.
1044* Adding to Diary:: Commands to create diary entries. 1044* Adding to Diary:: Commands to create diary entries.
1045* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. 1045* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc.
1046@end menu 1046@end menu
1047 1047
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index a8bba419c25..18fdb581210 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -24,18 +24,18 @@ Reference Manual}.
24@end ifnottex 24@end ifnottex
25 25
26@menu 26@menu
27* Minor Modes:: Each minor mode is a feature you can turn on 27* Minor Modes:: Each minor mode is a feature you can turn on
28 independently of any others. 28 independently of any others.
29* Easy Customization:: Convenient way to browse and change settings. 29* Easy Customization:: Convenient way to browse and change settings.
30* Variables:: Many Emacs commands examine Emacs variables 30* Variables:: Many Emacs commands examine Emacs variables
31 to decide what to do; by setting variables, 31 to decide what to do; by setting variables,
32 you can control their functioning. 32 you can control their functioning.
33* Key Bindings:: The keymaps say what command each key runs. 33* Key Bindings:: The keymaps say what command each key runs.
34 By changing them, you can "redefine keys". 34 By changing them, you can "redefine keys".
35* Syntax:: The syntax table controls how words and 35* Syntax:: The syntax table controls how words and
36 expressions are parsed. 36 expressions are parsed.
37* Init File:: How to write common customizations in the 37* Init File:: How to write common customizations in the
38 @file{.emacs} file. 38 @file{.emacs} file.
39@end menu 39@end menu
40 40
41@node Minor Modes 41@node Minor Modes
@@ -794,10 +794,10 @@ check the variable's documentation string to see kind of value it
794expects (@pxref{Examining}). 794expects (@pxref{Examining}).
795 795
796@menu 796@menu
797* Examining:: Examining or setting one variable's value. 797* Examining:: Examining or setting one variable's value.
798* Hooks:: Hook variables let you specify programs for parts 798* Hooks:: Hook variables let you specify programs for parts
799 of Emacs to run on particular occasions. 799 of Emacs to run on particular occasions.
800* Locals:: Per-buffer values of variables. 800* Locals:: Per-buffer values of variables.
801* File Variables:: How files can specify variable values. 801* File Variables:: How files can specify variable values.
802* Directory Variables:: How variable values can be specified by directory. 802* Directory Variables:: How variable values can be specified by directory.
803@end menu 803@end menu
@@ -943,12 +943,12 @@ lambda expression.
943@end group 943@end group
944@group 944@group
945 (c-cleanup-list . (scope-operator 945 (c-cleanup-list . (scope-operator
946 empty-defun-braces 946 empty-defun-braces
947 defun-close-semi)) 947 defun-close-semi))
948@end group 948@end group
949@group 949@group
950 (c-offsets-alist . ((arglist-close . c-lineup-arglist) 950 (c-offsets-alist . ((arglist-close . c-lineup-arglist)
951 (substatement-open . 0))))) 951 (substatement-open . 0)))))
952@end group 952@end group
953 953
954@group 954@group
@@ -2175,10 +2175,10 @@ Manual}.
2175@end ifnottex 2175@end ifnottex
2176 2176
2177@menu 2177@menu
2178* Init Syntax:: Syntax of constants in Emacs Lisp. 2178* Init Syntax:: Syntax of constants in Emacs Lisp.
2179* Init Examples:: How to do some things with an init file. 2179* Init Examples:: How to do some things with an init file.
2180* Terminal Init:: Each terminal type can have an init file. 2180* Terminal Init:: Each terminal type can have an init file.
2181* Find Init:: How Emacs finds the init file. 2181* Find Init:: How Emacs finds the init file.
2182* Init Non-ASCII:: Using non-@acronym{ASCII} characters in an init file. 2182* Init Non-ASCII:: Using non-@acronym{ASCII} characters in an init file.
2183@end menu 2183@end menu
2184 2184
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 4a1299c66a6..c8b4264d486 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -36,20 +36,20 @@ you to operate on the listed files. @xref{Directories}.
36* Deletion: Dired Deletion. Deleting files with Dired. 36* Deletion: Dired Deletion. Deleting files with Dired.
37* Flagging Many Files:: Flagging files based on their names. 37* Flagging Many Files:: Flagging files based on their names.
38* Visit: Dired Visiting. Other file operations through Dired. 38* Visit: Dired Visiting. Other file operations through Dired.
39* Marks vs Flags:: Flagging for deletion vs marking. 39* Marks vs Flags:: Flagging for deletion vs marking.
40* Operating on Files:: How to copy, rename, print, compress, etc. 40* Operating on Files:: How to copy, rename, print, compress, etc.
41 either one file or several files. 41 either one file or several files.
42* Shell Commands in Dired:: Running a shell command on the marked files. 42* Shell Commands in Dired:: Running a shell command on the marked files.
43* Transforming File Names:: Using patterns to rename multiple files. 43* Transforming File Names:: Using patterns to rename multiple files.
44* Comparison in Dired:: Running `diff' by way of Dired. 44* Comparison in Dired:: Running `diff' by way of Dired.
45* Subdirectories in Dired:: Adding subdirectories to the Dired buffer. 45* Subdirectories in Dired:: Adding subdirectories to the Dired buffer.
46@ifnottex 46@ifnottex
47* Subdir Switches:: Subdirectory switches in Dired. 47* Subdir Switches:: Subdirectory switches in Dired.
48@end ifnottex 48@end ifnottex
49* Subdirectory Motion:: Moving across subdirectories, and up and down. 49* Subdirectory Motion:: Moving across subdirectories, and up and down.
50* Hiding Subdirectories:: Making subdirectories visible or invisible. 50* Hiding Subdirectories:: Making subdirectories visible or invisible.
51* Updating: Dired Updating. Discarding lines for files of no interest. 51* Updating: Dired Updating. Discarding lines for files of no interest.
52* Find: Dired and Find. Using `find' to choose the files for Dired. 52* Find: Dired and Find. Using `find' to choose the files for Dired.
53* Wdired:: Operating on files by editing the Dired buffer. 53* Wdired:: Operating on files by editing the Dired buffer.
54* Image-Dired:: Viewing image thumbnails in Dired. 54* Image-Dired:: Viewing image thumbnails in Dired.
55* Misc: Misc Dired Features. Various other features. 55* Misc: Misc Dired Features. Various other features.
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 3d3a1e03e46..3b5e7b0b955 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -13,11 +13,11 @@ commands and variables allow you to specify which part of the text you
13want to see, and how to display it. 13want to see, and how to display it.
14 14
15@menu 15@menu
16* Scrolling:: Commands to move text up and down in a window. 16* Scrolling:: Commands to move text up and down in a window.
17* Auto Scrolling:: Redisplay scrolls text automatically when needed. 17* Auto Scrolling:: Redisplay scrolls text automatically when needed.
18* Horizontal Scrolling:: Moving text left and right in a window. 18* Horizontal Scrolling:: Moving text left and right in a window.
19* Follow Mode:: Follow mode lets two windows scroll as one. 19* Follow Mode:: Follow mode lets two windows scroll as one.
20* Faces:: How to change the display style using faces. 20* Faces:: How to change the display style using faces.
21* Standard Faces:: Emacs' predefined faces. 21* Standard Faces:: Emacs' predefined faces.
22* Temporary Face Changes:: Commands to temporarily modify the default text face 22* Temporary Face Changes:: Commands to temporarily modify the default text face
23* Font Lock:: Minor mode for syntactic highlighting using faces. 23* Font Lock:: Minor mode for syntactic highlighting using faces.
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 6eaee237510..4de9ee4a57a 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -33,7 +33,7 @@ developing GNU and promoting software freedom.''
33 33
34@dircategory Emacs 34@dircategory Emacs
35@direntry 35@direntry
36* Emacs: (emacs). The extensible self-documenting text editor. 36* Emacs: (emacs). The extensible self-documenting text editor.
37@end direntry 37@end direntry
38 38
39@c in general, keep the following line commented out, unless doing a 39@c in general, keep the following line commented out, unless doing a
@@ -134,13 +134,13 @@ and Sending Mail and Registers and Minibuffer.
134@end ignore 134@end ignore
135 135
136@menu 136@menu
137* Distrib:: How to get the latest Emacs distribution. 137* Distrib:: How to get the latest Emacs distribution.
138* Intro:: An introduction to Emacs concepts. 138* Intro:: An introduction to Emacs concepts.
139@c Note that in the printed manual, the glossary and indices come last. 139@c Note that in the printed manual, the glossary and indices come last.
140* Glossary:: Terms used in this manual. 140* Glossary:: Terms used in this manual.
141 141
142Indexes (each index contains a large menu) 142Indexes (each index contains a large menu)
143* Key Index:: An item for each standard Emacs key sequence. 143* Key Index:: An item for each standard Emacs key sequence.
144* Option Index:: An item for every command-line option. 144* Option Index:: An item for every command-line option.
145* Command Index:: An item for each command name. 145* Command Index:: An item for each command name.
146* Variable Index:: An item for each documented variable. 146* Variable Index:: An item for each documented variable.
@@ -149,100 +149,100 @@ Indexes (each index contains a large menu)
149* Acknowledgments:: Major contributors to GNU Emacs. 149* Acknowledgments:: Major contributors to GNU Emacs.
150 150
151Important General Concepts 151Important General Concepts
152* Screen:: How to interpret what you see on the screen. 152* Screen:: How to interpret what you see on the screen.
153* User Input:: Kinds of input events (characters, buttons, 153* User Input:: Kinds of input events (characters, buttons,
154 function keys). 154 function keys).
155* Keys:: Key sequences: what you type to request one 155* Keys:: Key sequences: what you type to request one
156 editing action. 156 editing action.
157* Commands:: Named functions run by key sequences to do editing. 157* Commands:: Named functions run by key sequences to do editing.
158* Entering Emacs:: Starting Emacs from the shell. 158* Entering Emacs:: Starting Emacs from the shell.
159* Exiting:: Stopping or killing Emacs. 159* Exiting:: Stopping or killing Emacs.
160 160
161Fundamental Editing Commands 161Fundamental Editing Commands
162* Basic:: The most basic editing commands. 162* Basic:: The most basic editing commands.
163* Minibuffer:: Entering arguments that are prompted for. 163* Minibuffer:: Entering arguments that are prompted for.
164* M-x:: Invoking commands by their names. 164* M-x:: Invoking commands by their names.
165* Help:: Commands for asking Emacs about its commands. 165* Help:: Commands for asking Emacs about its commands.
166 166
167Important Text-Changing Commands 167Important Text-Changing Commands
168* Mark:: The mark: how to delimit a ``region'' of text. 168* Mark:: The mark: how to delimit a ``region'' of text.
169* Killing:: Killing (cutting) text. 169* Killing:: Killing (cutting) text.
170* Yanking:: Recovering killed text. Moving text. (Pasting.) 170* Yanking:: Recovering killed text. Moving text. (Pasting.)
171* Accumulating Text:: Other ways of copying text. 171* Accumulating Text:: Other ways of copying text.
172* Rectangles:: Operating on the text inside a rectangle on the screen. 172* Rectangles:: Operating on the text inside a rectangle on the screen.
173* CUA Bindings:: Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} for copy 173* CUA Bindings:: Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} for copy
174 and paste, with enhanced rectangle support. 174 and paste, with enhanced rectangle support.
175* Registers:: Saving a text string or a location in the buffer. 175* Registers:: Saving a text string or a location in the buffer.
176* Display:: Controlling what text is displayed. 176* Display:: Controlling what text is displayed.
177* Search:: Finding or replacing occurrences of a string. 177* Search:: Finding or replacing occurrences of a string.
178* Fixit:: Commands especially useful for fixing typos. 178* Fixit:: Commands especially useful for fixing typos.
179* Keyboard Macros:: A keyboard macro records a sequence of 179* Keyboard Macros:: A keyboard macro records a sequence of
180 keystrokes to be replayed with a single command. 180 keystrokes to be replayed with a single command.
181 181
182Major Structures of Emacs 182Major Structures of Emacs
183* Files:: All about handling files. 183* Files:: All about handling files.
184* Buffers:: Multiple buffers; editing several files at once. 184* Buffers:: Multiple buffers; editing several files at once.
185* Windows:: Viewing two pieces of text at once. 185* Windows:: Viewing two pieces of text at once.
186* Frames:: Running the same Emacs session in multiple X windows. 186* Frames:: Running the same Emacs session in multiple X windows.
187* International:: Using non-@acronym{ASCII} character sets. 187* International:: Using non-@acronym{ASCII} character sets.
188 188
189Advanced Features 189Advanced Features
190* Major Modes:: Text mode vs. Lisp mode vs. C mode... 190* Major Modes:: Text mode vs. Lisp mode vs. C mode...
191* Indentation:: Editing the white space at the beginnings of lines. 191* Indentation:: Editing the white space at the beginnings of lines.
192* Text:: Commands and modes for editing English. 192* Text:: Commands and modes for editing English.
193* Programs:: Commands and modes for editing programs. 193* Programs:: Commands and modes for editing programs.
194* Building:: Compiling, running and debugging programs. 194* Building:: Compiling, running and debugging programs.
195* Maintaining:: Features for maintaining large programs. 195* Maintaining:: Features for maintaining large programs.
196* Abbrevs:: How to define text abbreviations to reduce 196* Abbrevs:: How to define text abbreviations to reduce
197 the number of characters you must type. 197 the number of characters you must type.
198@c AFAICS, the tex stuff generates its own index and does not use this one. 198@c AFAICS, the tex stuff generates its own index and does not use this one.
199@ifnottex 199@ifnottex
200* Picture Mode:: Editing pictures made up of characters using 200* Picture Mode:: Editing pictures made up of characters using
201 the quarter-plane screen model. 201 the quarter-plane screen model.
202@end ifnottex 202@end ifnottex
203* Sending Mail:: Sending mail in Emacs. 203* Sending Mail:: Sending mail in Emacs.
204* Rmail:: Reading mail in Emacs. 204* Rmail:: Reading mail in Emacs.
205* Dired:: You can ``edit'' a directory to manage files in it. 205* Dired:: You can ``edit'' a directory to manage files in it.
206* Calendar/Diary:: The calendar and diary facilities. 206* Calendar/Diary:: The calendar and diary facilities.
207* Document View:: Viewing PDF, PS and DVI files. 207* Document View:: Viewing PDF, PS and DVI files.
208* Gnus:: How to read netnews with Emacs. 208* Gnus:: How to read netnews with Emacs.
209* Shell:: Executing shell commands from Emacs. 209* Shell:: Executing shell commands from Emacs.
210* Emacs Server:: Using Emacs as an editing server for @code{mail}, etc. 210* Emacs Server:: Using Emacs as an editing server for @code{mail}, etc.
211* Printing:: Printing hardcopies of buffers or regions. 211* Printing:: Printing hardcopies of buffers or regions.
212* Sorting:: Sorting lines, paragraphs or pages within Emacs. 212* Sorting:: Sorting lines, paragraphs or pages within Emacs.
213* Narrowing:: Restricting display and editing to a portion 213* Narrowing:: Restricting display and editing to a portion
214 of the buffer. 214 of the buffer.
215* Two-Column:: Splitting apart columns to edit them 215* Two-Column:: Splitting apart columns to edit them
216 in side-by-side windows. 216 in side-by-side windows.
217* Editing Binary Files::Using Hexl mode to edit binary files. 217* Editing Binary Files::Using Hexl mode to edit binary files.
218* Saving Emacs Sessions:: Saving Emacs state from one session to the next. 218* Saving Emacs Sessions:: Saving Emacs state from one session to the next.
219* Recursive Edit:: A command can allow you to do editing 219* Recursive Edit:: A command can allow you to do editing
220 "within the command". This is called a 220 "within the command". This is called a
221 "recursive editing level". 221 "recursive editing level".
222* Emulation:: Emulating some other editors with Emacs. 222* Emulation:: Emulating some other editors with Emacs.
223* Hyperlinking:: Following links in buffers. 223* Hyperlinking:: Following links in buffers.
224* Dissociated Press:: Dissociating text for fun. 224* Dissociated Press:: Dissociating text for fun.
225* Amusements:: Various games and hacks. 225* Amusements:: Various games and hacks.
226* Customization:: Modifying the behavior of Emacs. 226* Customization:: Modifying the behavior of Emacs.
227 227
228Recovery from Problems 228Recovery from Problems
229* Quitting:: Quitting and aborting. 229* Quitting:: Quitting and aborting.
230* Lossage:: What to do if Emacs is hung or malfunctioning. 230* Lossage:: What to do if Emacs is hung or malfunctioning.
231* Bugs:: How and when to report a bug. 231* Bugs:: How and when to report a bug.
232* Contributing:: How to contribute improvements to Emacs. 232* Contributing:: How to contribute improvements to Emacs.
233* Service:: How to get help for your own Emacs needs. 233* Service:: How to get help for your own Emacs needs.
234 234
235Appendices 235Appendices
236* Copying:: The GNU General Public License gives you permission 236* Copying:: The GNU General Public License gives you permission
237 to redistribute GNU Emacs on certain terms; 237 to redistribute GNU Emacs on certain terms;
238 it also explains that there is no warranty. 238 it also explains that there is no warranty.
239* GNU Free Documentation License:: The license for this documentation. 239* GNU Free Documentation License:: The license for this documentation.
240* Emacs Invocation:: Hairy startup options. 240* Emacs Invocation:: Hairy startup options.
241* X Resources:: X resources for customizing Emacs. 241* X Resources:: X resources for customizing Emacs.
242* Antinews:: Information about Emacs version 22. 242* Antinews:: Information about Emacs version 22.
243* Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep. 243* Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep.
244* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS. 244* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS.
245* Manifesto:: What's GNU? Gnu's Not Unix! 245* Manifesto:: What's GNU? Gnu's Not Unix!
246 246
247@c Do NOT modify the following 3 lines! They must have this form to 247@c Do NOT modify the following 3 lines! They must have this form to
248@c be correctly identified by `texinfo-multiple-files-update'. In 248@c be correctly identified by `texinfo-multiple-files-update'. In
@@ -258,9 +258,9 @@ already listed, mentioned here so you can get to them in one step:
258 258
259The Organization of the Screen 259The Organization of the Screen
260 260
261* Point:: The place in the text where editing commands operate. 261* Point:: The place in the text where editing commands operate.
262* Echo Area:: Short messages appear at the bottom of the screen. 262* Echo Area:: Short messages appear at the bottom of the screen.
263* Mode Line:: Interpreting the mode line. 263* Mode Line:: Interpreting the mode line.
264* Menu Bar:: How to use the menu bar. 264* Menu Bar:: How to use the menu bar.
265 265
266Basic Editing Commands 266Basic Editing Commands
@@ -268,23 +268,23 @@ Basic Editing Commands
268* Inserting Text:: Inserting text by simply typing it. 268* Inserting Text:: Inserting text by simply typing it.
269* Moving Point:: Moving the cursor to the place where you want to 269* Moving Point:: Moving the cursor to the place where you want to
270 change something. 270 change something.
271* Erasing:: Deleting and killing text. 271* Erasing:: Deleting and killing text.
272* Basic Undo:: Undoing recent changes in the text. 272* Basic Undo:: Undoing recent changes in the text.
273* Basic Files:: Visiting, creating, and saving files. 273* Basic Files:: Visiting, creating, and saving files.
274* Basic Help:: Asking what a character does. 274* Basic Help:: Asking what a character does.
275* Blank Lines:: Making and deleting blank lines. 275* Blank Lines:: Making and deleting blank lines.
276* Continuation Lines:: How Emacs displays lines too wide for the screen. 276* Continuation Lines:: How Emacs displays lines too wide for the screen.
277* Position Info:: What page, line, row, or column is point on? 277* Position Info:: What page, line, row, or column is point on?
278* Arguments:: Numeric arguments for repeating a command N times. 278* Arguments:: Numeric arguments for repeating a command N times.
279* Repeating:: Repeating the previous command quickly. 279* Repeating:: Repeating the previous command quickly.
280 280
281The Minibuffer 281The Minibuffer
282 282
283* Minibuffer File:: Entering file names with the minibuffer. 283* Minibuffer File:: Entering file names with the minibuffer.
284* Minibuffer Edit:: How to edit in the minibuffer. 284* Minibuffer Edit:: How to edit in the minibuffer.
285* Completion:: An abbreviation facility for minibuffer input. 285* Completion:: An abbreviation facility for minibuffer input.
286* Minibuffer History:: Reusing recent minibuffer arguments. 286* Minibuffer History:: Reusing recent minibuffer arguments.
287* Repetition:: Re-executing commands that used the minibuffer. 287* Repetition:: Re-executing commands that used the minibuffer.
288* Passwords:: Entering passwords in the echo area. 288* Passwords:: Entering passwords in the echo area.
289 289
290Completion 290Completion
@@ -296,59 +296,59 @@ Completion
296 296
297Help 297Help
298 298
299* Help Summary:: Brief list of all Help commands. 299* Help Summary:: Brief list of all Help commands.
300* Key Help:: Asking what a key does in Emacs. 300* Key Help:: Asking what a key does in Emacs.
301* Name Help:: Asking about a command, variable or function name. 301* Name Help:: Asking about a command, variable or function name.
302* Apropos:: Asking what pertains to a given topic. 302* Apropos:: Asking what pertains to a given topic.
303* Help Mode:: Special features of Help mode and Help buffers. 303* Help Mode:: Special features of Help mode and Help buffers.
304* Library Keywords:: Finding Lisp libraries by keywords (topics). 304* Library Keywords:: Finding Lisp libraries by keywords (topics).
305* Language Help:: Help relating to international language support. 305* Language Help:: Help relating to international language support.
306* Misc Help:: Other help commands. 306* Misc Help:: Other help commands.
307* Help Files:: Commands to display pre-written help files. 307* Help Files:: Commands to display pre-written help files.
308* Help Echo:: Help on active text and tooltips (`balloon help'). 308* Help Echo:: Help on active text and tooltips (`balloon help').
309 309
310The Mark and the Region 310The Mark and the Region
311 311
312* Setting Mark:: Commands to set the mark. 312* Setting Mark:: Commands to set the mark.
313* Marking Objects:: Commands to put region around textual units. 313* Marking Objects:: Commands to put region around textual units.
314* Using Region:: Summary of ways to operate on contents of the region. 314* Using Region:: Summary of ways to operate on contents of the region.
315* Mark Ring:: Previous mark positions saved so you can go back there. 315* Mark Ring:: Previous mark positions saved so you can go back there.
316* Global Mark Ring:: Previous mark positions in various buffers. 316* Global Mark Ring:: Previous mark positions in various buffers.
317* Shift Selection:: Using shifted cursor motion keys. 317* Shift Selection:: Using shifted cursor motion keys.
318* Persistent Mark:: Keeping the mark active all the time. 318* Persistent Mark:: Keeping the mark active all the time.
319 319
320Killing and Moving Text 320Killing and Moving Text
321 321
322* Deletion:: Commands for deleting small amounts of text and 322* Deletion:: Commands for deleting small amounts of text and
323 blank areas. 323 blank areas.
324* Killing by Lines:: How to kill entire lines of text at one time. 324* Killing by Lines:: How to kill entire lines of text at one time.
325* Other Kill Commands:: Commands to kill large regions of text and 325* Other Kill Commands:: Commands to kill large regions of text and
326 syntactic units such as words and sentences. 326 syntactic units such as words and sentences.
327* Kill Options:: Options that affect killing. 327* Kill Options:: Options that affect killing.
328 328
329Yanking 329Yanking
330 330
331* Kill Ring:: Where killed text is stored. Basic yanking. 331* Kill Ring:: Where killed text is stored. Basic yanking.
332* Appending Kills:: Several kills in a row all yank together. 332* Appending Kills:: Several kills in a row all yank together.
333* Earlier Kills:: Yanking something killed some time ago. 333* Earlier Kills:: Yanking something killed some time ago.
334 334
335Registers 335Registers
336 336
337* RegPos:: Saving positions in registers. 337* RegPos:: Saving positions in registers.
338* RegText:: Saving text in registers. 338* RegText:: Saving text in registers.
339* RegRect:: Saving rectangles in registers. 339* RegRect:: Saving rectangles in registers.
340* RegConfig:: Saving window configurations in registers. 340* RegConfig:: Saving window configurations in registers.
341* RegNumbers:: Numbers in registers. 341* RegNumbers:: Numbers in registers.
342* RegFiles:: File names in registers. 342* RegFiles:: File names in registers.
343* Bookmarks:: Bookmarks are like registers, but persistent. 343* Bookmarks:: Bookmarks are like registers, but persistent.
344 344
345Controlling the Display 345Controlling the Display
346 346
347* Scrolling:: Commands to move text up and down in a window. 347* Scrolling:: Commands to move text up and down in a window.
348* Auto Scrolling:: Redisplay scrolls text automatically when needed. 348* Auto Scrolling:: Redisplay scrolls text automatically when needed.
349* Horizontal Scrolling:: Moving text left and right in a window. 349* Horizontal Scrolling:: Moving text left and right in a window.
350* Follow Mode:: Follow mode lets two windows scroll as one. 350* Follow Mode:: Follow mode lets two windows scroll as one.
351* Faces:: How to change the display style using faces. 351* Faces:: How to change the display style using faces.
352* Standard Faces:: Emacs' predefined faces. 352* Standard Faces:: Emacs' predefined faces.
353* Temporary Face Changes:: Commands to temporarily modify the default text face 353* Temporary Face Changes:: Commands to temporarily modify the default text face
354* Font Lock:: Minor mode for syntactic highlighting using faces. 354* Font Lock:: Minor mode for syntactic highlighting using faces.
@@ -367,15 +367,15 @@ Controlling the Display
367 367
368Searching and Replacement 368Searching and Replacement
369 369
370* Incremental Search:: Search happens as you type the string. 370* Incremental Search:: Search happens as you type the string.
371* Nonincremental Search:: Specify entire string and then search. 371* Nonincremental Search:: Specify entire string and then search.
372* Word Search:: Search for sequence of words. 372* Word Search:: Search for sequence of words.
373* Regexp Search:: Search for match for a regexp. 373* Regexp Search:: Search for match for a regexp.
374* Regexps:: Syntax of regular expressions. 374* Regexps:: Syntax of regular expressions.
375* Regexp Backslash:: Regular expression constructs starting with `\'. 375* Regexp Backslash:: Regular expression constructs starting with `\'.
376* Regexp Example:: A complex regular expression explained. 376* Regexp Example:: A complex regular expression explained.
377* Search Case:: To ignore case while searching, or not. 377* Search Case:: To ignore case while searching, or not.
378* Replace:: Search, and replace some or all matches. 378* Replace:: Search, and replace some or all matches.
379* Other Repeating Search:: Operating on all matches for some regexp. 379* Other Repeating Search:: Operating on all matches for some regexp.
380 380
381Incremental Search 381Incremental Search
@@ -393,16 +393,16 @@ Incremental Search
393Replacement Commands 393Replacement Commands
394 394
395* Unconditional Replace:: Replacing all matches for a string. 395* Unconditional Replace:: Replacing all matches for a string.
396* Regexp Replace:: Replacing all matches for a regexp. 396* Regexp Replace:: Replacing all matches for a regexp.
397* Replacement and Case:: How replacements preserve case of letters. 397* Replacement and Case:: How replacements preserve case of letters.
398* Query Replace:: How to use querying. 398* Query Replace:: How to use querying.
399 399
400Commands for Fixing Typos 400Commands for Fixing Typos
401 401
402* Undo:: The Undo commands. 402* Undo:: The Undo commands.
403* Transpose:: Exchanging two characters, words, lines, lists... 403* Transpose:: Exchanging two characters, words, lines, lists...
404* Fixing Case:: Correcting case of last word entered. 404* Fixing Case:: Correcting case of last word entered.
405* Spelling:: Apply spelling checker to a word, or a whole file. 405* Spelling:: Apply spelling checker to a word, or a whole file.
406 406
407Keyboard Macros 407Keyboard Macros
408 408
@@ -448,9 +448,9 @@ Saving Files
448 448
449Backup Files 449Backup Files
450 450
451* Backup Names:: How backup files are named. 451* Backup Names:: How backup files are named.
452* Backup Deletion:: Emacs deletes excess numbered backups. 452* Backup Deletion:: Emacs deletes excess numbered backups.
453* Backup Copying:: Backups can be made by copying or renaming. 453* Backup Copying:: Backups can be made by copying or renaming.
454 454
455Auto Reverting Non-File Buffers 455Auto Reverting Non-File Buffers
456 456
@@ -463,16 +463,16 @@ Auto-Saving: Protection Against Disasters
463* Auto Save Files:: The file where auto-saved changes are 463* Auto Save Files:: The file where auto-saved changes are
464 actually made until you save the file. 464 actually made until you save the file.
465* Auto Save Control:: Controlling when and how often to auto-save. 465* Auto Save Control:: Controlling when and how often to auto-save.
466* Recover:: Recovering text from auto-save files. 466* Recover:: Recovering text from auto-save files.
467 467
468Using Multiple Buffers 468Using Multiple Buffers
469 469
470* Select Buffer:: Creating a new buffer or reselecting an old one. 470* Select Buffer:: Creating a new buffer or reselecting an old one.
471* List Buffers:: Getting a list of buffers that exist. 471* List Buffers:: Getting a list of buffers that exist.
472* Misc Buffer:: Renaming; changing read-onlyness; copying text. 472* Misc Buffer:: Renaming; changing read-onlyness; copying text.
473* Kill Buffer:: Killing buffers you no longer need. 473* Kill Buffer:: Killing buffers you no longer need.
474* Several Buffers:: How to go through the list of all buffers 474* Several Buffers:: How to go through the list of all buffers
475 and operate variously on several of them. 475 and operate variously on several of them.
476* Indirect Buffers:: An indirect buffer shares the text of another buffer. 476* Indirect Buffers:: An indirect buffer shares the text of another buffer.
477* Buffer Convenience:: Convenience and customization features for 477* Buffer Convenience:: Convenience and customization features for
478 buffer handling. 478 buffer handling.
@@ -507,10 +507,10 @@ Frames and Graphical Displays
507* Multiple Displays:: How one Emacs job can talk to several displays. 507* Multiple Displays:: How one Emacs job can talk to several displays.
508* Special Buffer Frames:: You can make certain buffers have their own frames. 508* Special Buffer Frames:: You can make certain buffers have their own frames.
509* Frame Parameters:: Changing the colors and other modes of frames. 509* Frame Parameters:: Changing the colors and other modes of frames.
510* Scroll Bars:: How to enable and disable scroll bars; how to use them. 510* Scroll Bars:: How to enable and disable scroll bars; how to use them.
511* Wheeled Mice:: Using mouse wheels for scrolling. 511* Wheeled Mice:: Using mouse wheels for scrolling.
512* Drag and Drop:: Using drag and drop to open files and insert text. 512* Drag and Drop:: Using drag and drop to open files and insert text.
513* Menu Bars:: Enabling and disabling the menu bar. 513* Menu Bars:: Enabling and disabling the menu bar.
514* Tool Bars:: Enabling and disabling the tool bar. 514* Tool Bars:: Enabling and disabling the tool bar.
515* Dialog Boxes:: Controlling use of dialog boxes. 515* Dialog Boxes:: Controlling use of dialog boxes.
516* Tooltips:: Displaying information at the current mouse position. 516* Tooltips:: Displaying information at the current mouse position.
@@ -559,31 +559,31 @@ Major Modes
559Indentation 559Indentation
560 560
561* Indentation Commands:: Various commands and techniques for indentation. 561* Indentation Commands:: Various commands and techniques for indentation.
562* Tab Stops:: You can set arbitrary "tab stops" and then 562* Tab Stops:: You can set arbitrary "tab stops" and then
563 indent to the next tab stop when you want to. 563 indent to the next tab stop when you want to.
564* Just Spaces:: You can request indentation using just spaces. 564* Just Spaces:: You can request indentation using just spaces.
565 565
566Commands for Human Languages 566Commands for Human Languages
567 567
568* Words:: Moving over and killing words. 568* Words:: Moving over and killing words.
569* Sentences:: Moving over and killing sentences. 569* Sentences:: Moving over and killing sentences.
570* Paragraphs:: Moving over paragraphs. 570* Paragraphs:: Moving over paragraphs.
571* Pages:: Moving over pages. 571* Pages:: Moving over pages.
572* Filling:: Filling or justifying text. 572* Filling:: Filling or justifying text.
573* Case:: Changing the case of text. 573* Case:: Changing the case of text.
574* Text Mode:: The major modes for editing text files. 574* Text Mode:: The major modes for editing text files.
575* Outline Mode:: Editing outlines. 575* Outline Mode:: Editing outlines.
576* TeX Mode:: Editing input to the formatter TeX. 576* TeX Mode:: Editing input to the formatter TeX.
577* HTML Mode:: Editing HTML and SGML files. 577* HTML Mode:: Editing HTML and SGML files.
578* Nroff Mode:: Editing input to the formatter nroff. 578* Nroff Mode:: Editing input to the formatter nroff.
579* Formatted Text:: Editing formatted text directly in WYSIWYG fashion. 579* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
580* Text Based Tables:: Editing text-based tables in WYSIWYG fashion. 580* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
581 581
582Filling Text 582Filling Text
583 583
584* Auto Fill:: Auto Fill mode breaks long lines automatically. 584* Auto Fill:: Auto Fill mode breaks long lines automatically.
585* Fill Commands:: Commands to refill paragraphs and center lines. 585* Fill Commands:: Commands to refill paragraphs and center lines.
586* Fill Prefix:: Filling paragraphs that are indented 586* Fill Prefix:: Filling paragraphs that are indented
587 or in a comment, etc. 587 or in a comment, etc.
588* Adaptive Fill:: How Emacs can determine the fill prefix automatically. 588* Adaptive Fill:: How Emacs can determine the fill prefix automatically.
589* Refill:: Keeping paragraphs filled. 589* Refill:: Keeping paragraphs filled.
@@ -592,7 +592,7 @@ Filling Text
592Outline Mode 592Outline Mode
593 593
594* Outline Format:: What the text of an outline looks like. 594* Outline Format:: What the text of an outline looks like.
595* Outline Motion:: Special commands for moving through 595* Outline Motion:: Special commands for moving through
596 outlines. 596 outlines.
597* Outline Visibility:: Commands to control what is visible. 597* Outline Visibility:: Commands to control what is visible.
598* Outline Views:: Outlines and multiple views. 598* Outline Views:: Outlines and multiple views.
@@ -644,7 +644,7 @@ Editing Programs
644 of a program. 644 of a program.
645* Program Indent:: Adjusting indentation to show the nesting. 645* Program Indent:: Adjusting indentation to show the nesting.
646* Parentheses:: Commands that operate on parentheses. 646* Parentheses:: Commands that operate on parentheses.
647* Comments:: Inserting, killing, and aligning comments. 647* Comments:: Inserting, killing, and aligning comments.
648* Documentation:: Getting documentation of functions you plan to call. 648* Documentation:: Getting documentation of functions you plan to call.
649* Hideshow:: Displaying blocks selectively. 649* Hideshow:: Displaying blocks selectively.
650* Symbol Completion:: Completion on symbol names of your program or language. 650* Symbol Completion:: Completion on symbol names of your program or language.
@@ -666,18 +666,18 @@ Top-Level Definitions, or Defuns
666 666
667Indentation for Programs 667Indentation for Programs
668 668
669* Basic Indent:: Indenting a single line. 669* Basic Indent:: Indenting a single line.
670* Multi-line Indent:: Commands to reindent many lines at once. 670* Multi-line Indent:: Commands to reindent many lines at once.
671* Lisp Indent:: Specifying how each Lisp function should be indented. 671* Lisp Indent:: Specifying how each Lisp function should be indented.
672* C Indent:: Extra features for indenting C and related modes. 672* C Indent:: Extra features for indenting C and related modes.
673* Custom C Indent:: Controlling indentation style for C and related modes. 673* Custom C Indent:: Controlling indentation style for C and related modes.
674 674
675Commands for Editing with Parentheses 675Commands for Editing with Parentheses
676 676
677* Expressions:: Expressions with balanced parentheses. 677* Expressions:: Expressions with balanced parentheses.
678* Moving by Parens:: Commands for moving up, down and across 678* Moving by Parens:: Commands for moving up, down and across
679 in the structure of parentheses. 679 in the structure of parentheses.
680* Matching:: Insertion of a close-delimiter flashes matching open. 680* Matching:: Insertion of a close-delimiter flashes matching open.
681 681
682Manipulating Comments 682Manipulating Comments
683 683
@@ -702,12 +702,12 @@ C and Related Modes
702 702
703Fortran Mode 703Fortran Mode
704 704
705* Fortran Motion:: Moving point by statements or subprograms. 705* Fortran Motion:: Moving point by statements or subprograms.
706* Fortran Indent:: Indentation commands for Fortran. 706* Fortran Indent:: Indentation commands for Fortran.
707* Fortran Comments:: Inserting and aligning comments. 707* Fortran Comments:: Inserting and aligning comments.
708* Fortran Autofill:: Auto fill support for Fortran. 708* Fortran Autofill:: Auto fill support for Fortran.
709* Fortran Columns:: Measuring columns for valid Fortran. 709* Fortran Columns:: Measuring columns for valid Fortran.
710* Fortran Abbrev:: Built-in abbrevs for Fortran keywords. 710* Fortran Abbrev:: Built-in abbrevs for Fortran keywords.
711 711
712Fortran Indentation 712Fortran Indentation
713 713
@@ -719,28 +719,28 @@ Fortran Indentation
719 719
720Compiling and Testing Programs 720Compiling and Testing Programs
721 721
722* Compilation:: Compiling programs in languages other 722* Compilation:: Compiling programs in languages other
723 than Lisp (C, Pascal, etc.). 723 than Lisp (C, Pascal, etc.).
724* Compilation Mode:: The mode for visiting compiler errors. 724* Compilation Mode:: The mode for visiting compiler errors.
725* Compilation Shell:: Customizing your shell properly 725* Compilation Shell:: Customizing your shell properly
726 for use in the compilation buffer. 726 for use in the compilation buffer.
727* Grep Searching:: Searching with grep. 727* Grep Searching:: Searching with grep.
728* Flymake:: Finding syntax errors on the fly. 728* Flymake:: Finding syntax errors on the fly.
729* Debuggers:: Running symbolic debuggers for non-Lisp programs. 729* Debuggers:: Running symbolic debuggers for non-Lisp programs.
730* Executing Lisp:: Various modes for editing Lisp programs, 730* Executing Lisp:: Various modes for editing Lisp programs,
731 with different facilities for running 731 with different facilities for running
732 the Lisp programs. 732 the Lisp programs.
733* Lisp Libraries:: Creating Lisp programs to run in Emacs. 733* Lisp Libraries:: Creating Lisp programs to run in Emacs.
734* Lisp Eval:: Executing a single Lisp expression in Emacs. 734* Lisp Eval:: Executing a single Lisp expression in Emacs.
735* Lisp Interaction:: Executing Lisp in an Emacs buffer. 735* Lisp Interaction:: Executing Lisp in an Emacs buffer.
736* External Lisp:: Communicating through Emacs with a separate Lisp. 736* External Lisp:: Communicating through Emacs with a separate Lisp.
737 737
738Running Debuggers Under Emacs 738Running Debuggers Under Emacs
739 739
740* Starting GUD:: How to start a debugger subprocess. 740* Starting GUD:: How to start a debugger subprocess.
741* Debugger Operation:: Connection between the debugger and source buffers. 741* Debugger Operation:: Connection between the debugger and source buffers.
742* Commands of GUD:: Key bindings for common commands. 742* Commands of GUD:: Key bindings for common commands.
743* GUD Customization:: Defining your own commands for GUD. 743* GUD Customization:: Defining your own commands for GUD.
744* GDB Graphical Interface:: An enhanced mode that uses GDB features to 744* GDB Graphical Interface:: An enhanced mode that uses GDB features to
745 implement a graphical debugging environment through 745 implement a graphical debugging environment through
746 Emacs. 746 Emacs.
@@ -761,9 +761,9 @@ GDB Graphical Interface
761Maintaining Large Programs 761Maintaining Large Programs
762 762
763* Version Control:: Using version control systems. 763* Version Control:: Using version control systems.
764* Change Log:: Maintaining a change history for your program. 764* Change Log:: Maintaining a change history for your program.
765* Tags:: Go directly to any function in your program in one 765* Tags:: Go directly to any function in your program in one
766 command. Tags remembers which file it is in. 766 command. Tags remembers which file it is in.
767* EDE:: An integrated development environment for Emacs. 767* EDE:: An integrated development environment for Emacs.
768* Emerge:: A convenient way of merging two versions of a program. 768* Emerge:: A convenient way of merging two versions of a program.
769 769
@@ -844,25 +844,25 @@ Change Logs
844 844
845Tags Tables 845Tags Tables
846 846
847* Tag Syntax:: Tag syntax for various types of code and text files. 847* Tag Syntax:: Tag syntax for various types of code and text files.
848* Create Tags Table:: Creating a tags table with @code{etags}. 848* Create Tags Table:: Creating a tags table with @code{etags}.
849* Etags Regexps:: Create arbitrary tags using regular expressions. 849* Etags Regexps:: Create arbitrary tags using regular expressions.
850* Select Tags Table:: How to visit a tags table. 850* Select Tags Table:: How to visit a tags table.
851* Find Tag:: Commands to find the definition of a specific tag. 851* Find Tag:: Commands to find the definition of a specific tag.
852* Tags Search:: Using a tags table for searching and replacing. 852* Tags Search:: Using a tags table for searching and replacing.
853* List Tags:: Listing and finding tags defined in a file. 853* List Tags:: Listing and finding tags defined in a file.
854 854
855Merging Files with Emerge 855Merging Files with Emerge
856 856
857* Overview of Emerge:: How to start Emerge. Basic concepts. 857* Overview of Emerge:: How to start Emerge. Basic concepts.
858* Submodes of Emerge:: Fast mode vs. Edit mode. 858* Submodes of Emerge:: Fast mode vs. Edit mode.
859 Skip Prefers mode and Auto Advance mode. 859 Skip Prefers mode and Auto Advance mode.
860* State of Difference:: You do the merge by specifying state A or B 860* State of Difference:: You do the merge by specifying state A or B
861 for each difference. 861 for each difference.
862* Merge Commands:: Commands for selecting a difference, 862* Merge Commands:: Commands for selecting a difference,
863 changing states of differences, etc. 863 changing states of differences, etc.
864* Exiting Emerge:: What to do when you've finished the merge. 864* Exiting Emerge:: What to do when you've finished the merge.
865* Combining in Emerge:: How to keep both alternatives for a difference. 865* Combining in Emerge:: How to keep both alternatives for a difference.
866* Fine Points of Emerge:: Miscellaneous issues. 866* Fine Points of Emerge:: Miscellaneous issues.
867 867
868Abbrevs 868Abbrevs
@@ -887,10 +887,10 @@ Editing Pictures
887 887
888Sending Mail 888Sending Mail
889 889
890* Mail Format:: Format of the mail being composed. 890* Mail Format:: Format of the mail being composed.
891* Mail Headers:: Details of some standard mail header fields. 891* Mail Headers:: Details of some standard mail header fields.
892* Mail Aliases:: Abbreviating and grouping mail addresses. 892* Mail Aliases:: Abbreviating and grouping mail addresses.
893* Mail Commands:: Special commands for editing mail being composed. 893* Mail Commands:: Special commands for editing mail being composed.
894* Mail Signature:: Adding a signature to every message. 894* Mail Signature:: Adding a signature to every message.
895* Mail Amusements:: Distracting the NSA; adding fortune messages. 895* Mail Amusements:: Distracting the NSA; adding fortune messages.
896* Mail Methods:: Using alternative mail-composition methods. 896* Mail Methods:: Using alternative mail-composition methods.
@@ -928,28 +928,28 @@ Reading Mail with Rmail
928 928
929Summaries 929Summaries
930 930
931* Rmail Make Summary:: Making various sorts of summaries. 931* Rmail Make Summary:: Making various sorts of summaries.
932* Rmail Summary Edit:: Manipulating messages from the summary. 932* Rmail Summary Edit:: Manipulating messages from the summary.
933 933
934Dired, the Directory Editor 934Dired, the Directory Editor
935 935
936* Dired Enter:: How to invoke Dired. 936* Dired Enter:: How to invoke Dired.
937* Dired Navigation:: Special motion commands in the Dired buffer. 937* Dired Navigation:: Special motion commands in the Dired buffer.
938* Dired Deletion:: Deleting files with Dired. 938* Dired Deletion:: Deleting files with Dired.
939* Flagging Many Files:: Flagging files based on their names. 939* Flagging Many Files:: Flagging files based on their names.
940* Dired Visiting:: Other file operations through Dired. 940* Dired Visiting:: Other file operations through Dired.
941* Marks vs Flags:: Flagging for deletion vs marking. 941* Marks vs Flags:: Flagging for deletion vs marking.
942* Operating on Files:: How to copy, rename, print, compress, etc. 942* Operating on Files:: How to copy, rename, print, compress, etc.
943 either one file or several files. 943 either one file or several files.
944* Shell Commands in Dired:: Running a shell command on the marked files. 944* Shell Commands in Dired:: Running a shell command on the marked files.
945* Transforming File Names:: Using patterns to rename multiple files. 945* Transforming File Names:: Using patterns to rename multiple files.
946* Comparison in Dired:: Running `diff' by way of Dired. 946* Comparison in Dired:: Running `diff' by way of Dired.
947* Subdirectories in Dired:: Adding subdirectories to the Dired buffer. 947* Subdirectories in Dired:: Adding subdirectories to the Dired buffer.
948* Subdir Switches:: Subdirectory switches in Dired. 948* Subdir Switches:: Subdirectory switches in Dired.
949* Subdirectory Motion:: Moving across subdirectories, and up and down. 949* Subdirectory Motion:: Moving across subdirectories, and up and down.
950* Hiding Subdirectories:: Making subdirectories visible or invisible. 950* Hiding Subdirectories:: Making subdirectories visible or invisible.
951* Dired Updating:: Discarding lines for files of no interest. 951* Dired Updating:: Discarding lines for files of no interest.
952* Dired and Find:: Using `find' to choose the files for Dired. 952* Dired and Find:: Using `find' to choose the files for Dired.
953* Wdired:: Operating on files by editing the Dired buffer. 953* Wdired:: Operating on files by editing the Dired buffer.
954* Image-Dired:: Viewing image thumbnails in Dired. 954* Image-Dired:: Viewing image thumbnails in Dired.
955* Misc Dired Features:: Various other features. 955* Misc Dired Features:: Various other features.
@@ -966,7 +966,7 @@ The Calendar and the Diary
966* Lunar Phases:: Displaying phases of the moon. 966* Lunar Phases:: Displaying phases of the moon.
967* Other Calendars:: Converting dates to other calendar systems. 967* Other Calendars:: Converting dates to other calendar systems.
968* Diary:: Displaying events from your diary. 968* Diary:: Displaying events from your diary.
969* Appointments:: Reminders when it's time to do something. 969* Appointments:: Reminders when it's time to do something.
970* Importing Diary:: Converting diary events to/from other formats. 970* Importing Diary:: Converting diary events to/from other formats.
971* Daylight Saving:: How to specify when daylight saving time is active. 971* Daylight Saving:: How to specify when daylight saving time is active.
972* Time Intervals:: Keeping track of time intervals. 972* Time Intervals:: Keeping track of time intervals.
@@ -976,23 +976,23 @@ Movement in the Calendar
976 976
977* Calendar Unit Motion:: Moving by days, weeks, months, and years. 977* Calendar Unit Motion:: Moving by days, weeks, months, and years.
978* Move to Beginning or End:: Moving to start/end of weeks, months, and years. 978* Move to Beginning or End:: Moving to start/end of weeks, months, and years.
979* Specified Dates:: Moving to the current date or another 979* Specified Dates:: Moving to the current date or another
980 specific date. 980 specific date.
981 981
982Conversion To and From Other Calendars 982Conversion To and From Other Calendars
983 983
984* Calendar Systems:: The calendars Emacs understands 984* Calendar Systems:: The calendars Emacs understands
985 (aside from Gregorian). 985 (aside from Gregorian).
986* To Other Calendar:: Converting the selected date to various calendars. 986* To Other Calendar:: Converting the selected date to various calendars.
987* From Other Calendar:: Moving to a date specified in another calendar. 987* From Other Calendar:: Moving to a date specified in another calendar.
988* Mayan Calendar:: Moving to a date specified in a Mayan calendar. 988* Mayan Calendar:: Moving to a date specified in a Mayan calendar.
989 989
990The Diary 990The Diary
991 991
992* Displaying the Diary:: Viewing diary entries and associated calendar dates. 992* Displaying the Diary:: Viewing diary entries and associated calendar dates.
993* Format of Diary File:: Entering events in your diary. 993* Format of Diary File:: Entering events in your diary.
994* Date Formats:: Various ways you can specify dates. 994* Date Formats:: Various ways you can specify dates.
995* Adding to Diary:: Commands to create diary entries. 995* Adding to Diary:: Commands to create diary entries.
996* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. 996* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc.
997 997
998Customizing the Calendar and Diary 998Customizing the Calendar and Diary
@@ -1009,22 +1009,22 @@ Customizing the Calendar and Diary
1009 1009
1010Document Viewing 1010Document Viewing
1011 1011
1012* Navigation:: Navigation inside DocView buffers. 1012* Navigation:: Navigation inside DocView buffers.
1013* Searching:: Searching inside documents. 1013* Searching:: Searching inside documents.
1014* Slicing:: Specifying which part of pages should be displayed. 1014* Slicing:: Specifying which part of pages should be displayed.
1015* Conversion:: Influencing and triggering conversion. 1015* Conversion:: Influencing and triggering conversion.
1016 1016
1017Gnus 1017Gnus
1018 1018
1019* Buffers of Gnus:: The group, summary, and article buffers. 1019* Buffers of Gnus:: The group, summary, and article buffers.
1020* Gnus Startup:: What you should know about starting Gnus. 1020* Gnus Startup:: What you should know about starting Gnus.
1021* Summary of Gnus:: A short description of the basic Gnus commands. 1021* Summary of Gnus:: A short description of the basic Gnus commands.
1022 1022
1023Running Shell Commands from Emacs 1023Running Shell Commands from Emacs
1024 1024
1025* Single Shell:: How to run one shell command and return. 1025* Single Shell:: How to run one shell command and return.
1026* Interactive Shell:: Permanent shell taking input via Emacs. 1026* Interactive Shell:: Permanent shell taking input via Emacs.
1027* Shell Mode:: Special Emacs commands used with permanent shell. 1027* Shell Mode:: Special Emacs commands used with permanent shell.
1028* Shell Prompts:: Two ways to recognize shell prompts. 1028* Shell Prompts:: Two ways to recognize shell prompts.
1029* Shell History:: Repeating previous commands in a shell buffer. 1029* Shell History:: Repeating previous commands in a shell buffer.
1030* Directory Tracking:: Keeping track when the subshell changes directory. 1030* Directory Tracking:: Keeping track when the subshell changes directory.
@@ -1032,7 +1032,7 @@ Running Shell Commands from Emacs
1032* Terminal emulator:: An Emacs window as a terminal emulator. 1032* Terminal emulator:: An Emacs window as a terminal emulator.
1033* Term Mode:: Special Emacs commands used in Term mode. 1033* Term Mode:: Special Emacs commands used in Term mode.
1034* Paging in Term:: Paging in the terminal emulator. 1034* Paging in Term:: Paging in the terminal emulator.
1035* Remote Host:: Connecting to another computer. 1035* Remote Host:: Connecting to another computer.
1036* Serial Terminal:: Connecting to a serial port. 1036* Serial Terminal:: Connecting to a serial port.
1037 1037
1038Shell Command History 1038Shell Command History
@@ -1048,7 +1048,7 @@ Using Emacs as a Server
1048 1048
1049Printing Hard Copies 1049Printing Hard Copies
1050 1050
1051* PostScript:: Printing buffers or regions as PostScript. 1051* PostScript:: Printing buffers or regions as PostScript.
1052* PostScript Variables:: Customizing the PostScript printing commands. 1052* PostScript Variables:: Customizing the PostScript printing commands.
1053* Printing Package:: An optional advanced printing interface. 1053* Printing Package:: An optional advanced printing interface.
1054 1054
@@ -1060,18 +1060,18 @@ Hyperlinking and Navigation Features
1060 1060
1061Customization 1061Customization
1062 1062
1063* Minor Modes:: Each minor mode is a feature you can turn on 1063* Minor Modes:: Each minor mode is a feature you can turn on
1064 independently of any others. 1064 independently of any others.
1065* Easy Customization:: Convenient way to browse and change settings. 1065* Easy Customization:: Convenient way to browse and change settings.
1066* Variables:: Many Emacs commands examine Emacs variables 1066* Variables:: Many Emacs commands examine Emacs variables
1067 to decide what to do; by setting variables, 1067 to decide what to do; by setting variables,
1068 you can control their functioning. 1068 you can control their functioning.
1069* Key Bindings:: The keymaps say what command each key runs. 1069* Key Bindings:: The keymaps say what command each key runs.
1070 By changing them, you can "redefine keys". 1070 By changing them, you can "redefine keys".
1071* Syntax:: The syntax table controls how words and 1071* Syntax:: The syntax table controls how words and
1072 expressions are parsed. 1072 expressions are parsed.
1073* Init File:: How to write common customizations in the 1073* Init File:: How to write common customizations in the
1074 @file{.emacs} file. 1074 @file{.emacs} file.
1075 1075
1076Easy Customization Interface 1076Easy Customization Interface
1077 1077
@@ -1087,10 +1087,10 @@ Easy Customization Interface
1087 1087
1088Variables 1088Variables
1089 1089
1090* Examining:: Examining or setting one variable's value. 1090* Examining:: Examining or setting one variable's value.
1091* Hooks:: Hook variables let you specify programs for parts 1091* Hooks:: Hook variables let you specify programs for parts
1092 of Emacs to run on particular occasions. 1092 of Emacs to run on particular occasions.
1093* Locals:: Per-buffer values of variables. 1093* Locals:: Per-buffer values of variables.
1094* File Variables:: How files can specify variable values. 1094* File Variables:: How files can specify variable values.
1095* Directory Variables:: How variable values can be specified by directory. 1095* Directory Variables:: How variable values can be specified by directory.
1096 1096
@@ -1117,10 +1117,10 @@ Customizing Key Bindings
1117 1117
1118The Init File, @file{~/.emacs} 1118The Init File, @file{~/.emacs}
1119 1119
1120* Init Syntax:: Syntax of constants in Emacs Lisp. 1120* Init Syntax:: Syntax of constants in Emacs Lisp.
1121* Init Examples:: How to do some things with an init file. 1121* Init Examples:: How to do some things with an init file.
1122* Terminal Init:: Each terminal type can have an init file. 1122* Terminal Init:: Each terminal type can have an init file.
1123* Find Init:: How Emacs finds the init file. 1123* Find Init:: How Emacs finds the init file.
1124* Init Non-ASCII:: Using non-@acronym{ASCII} characters in an init file. 1124* Init Non-ASCII:: Using non-@acronym{ASCII} characters in an init file.
1125 1125
1126Dealing with Emacs Trouble 1126Dealing with Emacs Trouble
@@ -1138,31 +1138,31 @@ Dealing with Emacs Trouble
1138Reporting Bugs 1138Reporting Bugs
1139 1139
1140* Bug Criteria:: Have you really found a bug? 1140* Bug Criteria:: Have you really found a bug?
1141* Understanding Bug Reporting:: How to report a bug effectively. 1141* Understanding Bug Reporting:: How to report a bug effectively.
1142* Checklist:: Steps to follow for a good bug report. 1142* Checklist:: Steps to follow for a good bug report.
1143* Sending Patches:: How to send a patch for GNU Emacs. 1143* Sending Patches:: How to send a patch for GNU Emacs.
1144 1144
1145Command Line Arguments for Emacs Invocation 1145Command Line Arguments for Emacs Invocation
1146 1146
1147* Action Arguments:: Arguments to visit files, load libraries, 1147* Action Arguments:: Arguments to visit files, load libraries,
1148 and call functions. 1148 and call functions.
1149* Initial Options:: Arguments that take effect while starting Emacs. 1149* Initial Options:: Arguments that take effect while starting Emacs.
1150* Command Example:: Examples of using command line arguments. 1150* Command Example:: Examples of using command line arguments.
1151* Resume Arguments:: Specifying arguments when you resume a running Emacs. 1151* Resume Arguments:: Specifying arguments when you resume a running Emacs.
1152* Environment:: Environment variables that Emacs uses. 1152* Environment:: Environment variables that Emacs uses.
1153* Display X:: Changing the default display and using remote login. 1153* Display X:: Changing the default display and using remote login.
1154* Font X:: Choosing a font for text, under X. 1154* Font X:: Choosing a font for text, under X.
1155* Colors:: Choosing display colors. 1155* Colors:: Choosing display colors.
1156* Window Size X:: Start-up window size, under X. 1156* Window Size X:: Start-up window size, under X.
1157* Borders X:: Internal and external borders, under X. 1157* Borders X:: Internal and external borders, under X.
1158* Title X:: Specifying the initial frame's title. 1158* Title X:: Specifying the initial frame's title.
1159* Icons X:: Choosing what sort of icon to use, under X. 1159* Icons X:: Choosing what sort of icon to use, under X.
1160* Misc X:: Other display options. 1160* Misc X:: Other display options.
1161 1161
1162Environment Variables 1162Environment Variables
1163 1163
1164* General Variables:: Environment variables that all versions of Emacs use. 1164* General Variables:: Environment variables that all versions of Emacs use.
1165* Misc Variables:: Certain system-specific variables. 1165* Misc Variables:: Certain system-specific variables.
1166* MS-Windows Registry:: An alternative to the environment on MS-Windows. 1166* MS-Windows Registry:: An alternative to the environment on MS-Windows.
1167 1167
1168X Options and Resources 1168X Options and Resources
diff --git a/doc/emacs/emerge-xtra.texi b/doc/emacs/emerge-xtra.texi
index 762e2fc8727..f502d3f4728 100644
--- a/doc/emacs/emerge-xtra.texi
+++ b/doc/emacs/emerge-xtra.texi
@@ -1,5 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
3@c Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
4@c 5@c
5@c This file is included either in emacs-xtra.texi (when producing the 6@c This file is included either in emacs-xtra.texi (when producing the
@@ -22,16 +23,16 @@ easier. For other ways to compare files, see
22and @ref{Top, Ediff,, ediff, The Ediff Manual}. 23and @ref{Top, Ediff,, ediff, The Ediff Manual}.
23 24
24@menu 25@menu
25* Overview of Emerge:: How to start Emerge. Basic concepts. 26* Overview of Emerge:: How to start Emerge. Basic concepts.
26* Submodes of Emerge:: Fast mode vs. Edit mode. 27* Submodes of Emerge:: Fast mode vs. Edit mode.
27 Skip Prefers mode and Auto Advance mode. 28 Skip Prefers mode and Auto Advance mode.
28* State of Difference:: You do the merge by specifying state A or B 29* State of Difference:: You do the merge by specifying state A or B
29 for each difference. 30 for each difference.
30* Merge Commands:: Commands for selecting a difference, 31* Merge Commands:: Commands for selecting a difference,
31 changing states of differences, etc. 32 changing states of differences, etc.
32* Exiting Emerge:: What to do when you've finished the merge. 33* Exiting Emerge:: What to do when you've finished the merge.
33* Combining in Emerge:: How to keep both alternatives for a difference. 34* Combining in Emerge:: How to keep both alternatives for a difference.
34* Fine Points of Emerge:: Miscellaneous issues. 35* Fine Points of Emerge:: Miscellaneous issues.
35@end menu 36@end menu
36 37
37@node Overview of Emerge 38@node Overview of Emerge
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index d6a7692d3ab..4701c1a7a89 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Files, Buffers, Keyboard Macros, Top 6@node Files, Buffers, Keyboard Macros, Top
6@chapter File Handling 7@chapter File Handling
@@ -553,9 +554,9 @@ makes a backup from the previous contents, and arranges to make
553another from the newly saved contents if you save again. 554another from the newly saved contents if you save again.
554 555
555@menu 556@menu
556* Names: Backup Names. How backup files are named. 557* Names: Backup Names. How backup files are named.
557* Deletion: Backup Deletion. Emacs deletes excess numbered backups. 558* Deletion: Backup Deletion. Emacs deletes excess numbered backups.
558* Copying: Backup Copying. Backups can be made by copying or renaming. 559* Copying: Backup Copying. Backups can be made by copying or renaming.
559@end menu 560@end menu
560 561
561@node Backup Names 562@node Backup Names
@@ -994,7 +995,7 @@ execution of commands you have been typing.
994* Files: Auto Save Files. The file where auto-saved changes are 995* Files: Auto Save Files. The file where auto-saved changes are
995 actually made until you save the file. 996 actually made until you save the file.
996* Control: Auto Save Control. Controlling when and how often to auto-save. 997* Control: Auto Save Control. Controlling when and how often to auto-save.
997* Recover:: Recovering text from auto-save files. 998* Recover:: Recovering text from auto-save files.
998@end menu 999@end menu
999 1000
1000@node Auto Save Files 1001@node Auto Save Files
diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi
index f91297d4dd8..d875ed46812 100644
--- a/doc/emacs/fortran-xtra.texi
+++ b/doc/emacs/fortran-xtra.texi
@@ -1,5 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
3@c Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
4@c 5@c
5@c This file is included either in emacs-xtra.texi (when producing the 6@c This file is included either in emacs-xtra.texi (when producing the
@@ -57,12 +58,12 @@ command runs the hook @code{fortran-mode-hook}.
57@end ifnottex 58@end ifnottex
58 59
59@menu 60@menu
60* Motion: Fortran Motion. Moving point by statements or subprograms. 61* Motion: Fortran Motion. Moving point by statements or subprograms.
61* Indent: Fortran Indent. Indentation commands for Fortran. 62* Indent: Fortran Indent. Indentation commands for Fortran.
62* Comments: Fortran Comments. Inserting and aligning comments. 63* Comments: Fortran Comments. Inserting and aligning comments.
63* Autofill: Fortran Autofill. Auto fill support for Fortran. 64* Autofill: Fortran Autofill. Auto fill support for Fortran.
64* Columns: Fortran Columns. Measuring columns for valid Fortran. 65* Columns: Fortran Columns. Measuring columns for valid Fortran.
65* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. 66* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords.
66@end menu 67@end menu
67 68
68@node Fortran Motion 69@node Fortran Motion
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index cde901acf75..fbc21f17884 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Frames, International, Windows, Top 6@node Frames, International, Windows, Top
6@chapter Frames and Graphical Displays 7@chapter Frames and Graphical Displays
@@ -44,10 +45,10 @@ so that you can use many of the features described in this chapter.
44* Multiple Displays:: How one Emacs job can talk to several displays. 45* Multiple Displays:: How one Emacs job can talk to several displays.
45* Special Buffer Frames:: You can make certain buffers have their own frames. 46* Special Buffer Frames:: You can make certain buffers have their own frames.
46* Frame Parameters:: Changing the colors and other modes of frames. 47* Frame Parameters:: Changing the colors and other modes of frames.
47* Scroll Bars:: How to enable and disable scroll bars; how to use them. 48* Scroll Bars:: How to enable and disable scroll bars; how to use them.
48* Wheeled Mice:: Using mouse wheels for scrolling. 49* Wheeled Mice:: Using mouse wheels for scrolling.
49* Drag and Drop:: Using drag and drop to open files and insert text. 50* Drag and Drop:: Using drag and drop to open files and insert text.
50* Menu Bars:: Enabling and disabling the menu bar. 51* Menu Bars:: Enabling and disabling the menu bar.
51* Tool Bars:: Enabling and disabling the tool bar. 52* Tool Bars:: Enabling and disabling the tool bar.
52* Dialog Boxes:: Controlling use of dialog boxes. 53* Dialog Boxes:: Controlling use of dialog boxes.
53* Tooltips:: Displaying information at the current mouse position. 54* Tooltips:: Displaying information at the current mouse position.
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index ac3539881d8..3e298bb0f96 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Help, Mark, M-x, Top 6@node Help, Mark, M-x, Top
6@chapter Help 7@chapter Help
@@ -69,14 +70,14 @@ This displays the available Emacs packages based on keywords.
69@end table 70@end table
70 71
71@menu 72@menu
72* Help Summary:: Brief list of all Help commands. 73* Help Summary:: Brief list of all Help commands.
73* Key Help:: Asking what a key does in Emacs. 74* Key Help:: Asking what a key does in Emacs.
74* Name Help:: Asking about a command, variable or function name. 75* Name Help:: Asking about a command, variable or function name.
75* Apropos:: Asking what pertains to a given topic. 76* Apropos:: Asking what pertains to a given topic.
76* Help Mode:: Special features of Help mode and Help buffers. 77* Help Mode:: Special features of Help mode and Help buffers.
77* Library Keywords:: Finding Lisp libraries by keywords (topics). 78* Library Keywords:: Finding Lisp libraries by keywords (topics).
78* Language Help:: Help relating to international language support. 79* Language Help:: Help relating to international language support.
79* Misc Help:: Other help commands. 80* Misc Help:: Other help commands.
80* Help Files:: Commands to display pre-written help files. 81* Help Files:: Commands to display pre-written help files.
81* Help Echo:: Help on active text and tooltips (`balloon help'). 82* Help Echo:: Help on active text and tooltips (`balloon help').
82@end menu 83@end menu
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 07533a15a84..150f05b5994 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5 6
6@node Killing, Yanking, Mark, Top 7@node Killing, Yanking, Mark, Top
@@ -260,9 +261,9 @@ than you killed any text in Emacs, @kbd{C-y} copies the selection
260instead of text killed within Emacs. 261instead of text killed within Emacs.
261 262
262@menu 263@menu
263* Kill Ring:: Where killed text is stored. Basic yanking. 264* Kill Ring:: Where killed text is stored. Basic yanking.
264* Appending Kills:: Several kills in a row all yank together. 265* Appending Kills:: Several kills in a row all yank together.
265* Earlier Kills:: Yanking something killed some time ago. 266* Earlier Kills:: Yanking something killed some time ago.
266@end menu 267@end menu
267 268
268@node Kill Ring 269@node Kill Ring
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 8c417bc12ac..f5a93ec60e7 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -11,9 +11,9 @@ programs.
11 11
12@menu 12@menu
13* Version Control:: Using version control systems. 13* Version Control:: Using version control systems.
14* Change Log:: Maintaining a change history for your program. 14* Change Log:: Maintaining a change history for your program.
15* Tags:: Go directly to any function in your program in one 15* Tags:: Go directly to any function in your program in one
16 command. Tags remembers which file it is in. 16 command. Tags remembers which file it is in.
17* EDE:: An integrated development environment for Emacs. 17* EDE:: An integrated development environment for Emacs.
18@ifnottex 18@ifnottex
19* Emerge:: A convenient way of merging two versions of a program. 19* Emerge:: A convenient way of merging two versions of a program.
@@ -1570,13 +1570,13 @@ within that file where the function is defined.
1570@xref{Top,, Ebrowse, ebrowse, Ebrowse User's Manual}. 1570@xref{Top,, Ebrowse, ebrowse, Ebrowse User's Manual}.
1571 1571
1572@menu 1572@menu
1573* Tag Syntax:: Tag syntax for various types of code and text files. 1573* Tag Syntax:: Tag syntax for various types of code and text files.
1574* Create Tags Table:: Creating a tags table with @code{etags}. 1574* Create Tags Table:: Creating a tags table with @code{etags}.
1575* Etags Regexps:: Create arbitrary tags using regular expressions. 1575* Etags Regexps:: Create arbitrary tags using regular expressions.
1576* Select Tags Table:: How to visit a tags table. 1576* Select Tags Table:: How to visit a tags table.
1577* Find Tag:: Commands to find the definition of a specific tag. 1577* Find Tag:: Commands to find the definition of a specific tag.
1578* Tags Search:: Using a tags table for searching and replacing. 1578* Tags Search:: Using a tags table for searching and replacing.
1579* List Tags:: Listing and finding tags defined in a file. 1579* List Tags:: Listing and finding tags defined in a file.
1580@end menu 1580@end menu
1581 1581
1582@node Tag Syntax 1582@node Tag Syntax
diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi
index 4d6b38ad713..2ebab1daaeb 100644
--- a/doc/emacs/mark.texi
+++ b/doc/emacs/mark.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Mark, Killing, Help, Top 6@node Mark, Killing, Help, Top
6@chapter The Mark and the Region 7@chapter The Mark and the Region
@@ -41,13 +42,13 @@ if the variable @code{highlight-nonselected-windows} is
41non-@code{nil}, each window highlights its own region. 42non-@code{nil}, each window highlights its own region.
42 43
43@menu 44@menu
44* Setting Mark:: Commands to set the mark. 45* Setting Mark:: Commands to set the mark.
45* Marking Objects:: Commands to put region around textual units. 46* Marking Objects:: Commands to put region around textual units.
46* Using Region:: Summary of ways to operate on contents of the region. 47* Using Region:: Summary of ways to operate on contents of the region.
47* Mark Ring:: Previous mark positions saved so you can go back there. 48* Mark Ring:: Previous mark positions saved so you can go back there.
48* Global Mark Ring:: Previous mark positions in various buffers. 49* Global Mark Ring:: Previous mark positions in various buffers.
49* Shift Selection:: Using shifted cursor motion keys. 50* Shift Selection:: Using shifted cursor motion keys.
50* Persistent Mark:: Keeping the mark active all the time. 51* Persistent Mark:: Keeping the mark active all the time.
51@end menu 52@end menu
52 53
53@node Setting Mark 54@node Setting Mark
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index 1726a6780d5..3750e1d49e2 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Minibuffer, M-x, Basic, Top 6@node Minibuffer, M-x, Basic, Top
6@chapter The Minibuffer 7@chapter The Minibuffer
@@ -43,9 +44,9 @@ is in use, keystrokes do not echo.
43@menu 44@menu
44* Minibuffer File:: Entering file names with the minibuffer. 45* Minibuffer File:: Entering file names with the minibuffer.
45* Minibuffer Edit:: How to edit in the minibuffer. 46* Minibuffer Edit:: How to edit in the minibuffer.
46* Completion:: An abbreviation facility for minibuffer input. 47* Completion:: An abbreviation facility for minibuffer input.
47* Minibuffer History:: Reusing recent minibuffer arguments. 48* Minibuffer History:: Reusing recent minibuffer arguments.
48* Repetition:: Re-executing commands that used the minibuffer. 49* Repetition:: Re-executing commands that used the minibuffer.
49* Passwords:: Entering passwords in the echo area. 50* Passwords:: Entering passwords in the echo area.
50@end menu 51@end menu
51 52
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 8c89c7b7a27..387e1be715a 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -71,10 +71,10 @@ set or customize the variable @code{doc-view-resolution}.
71(@code{quit-window}). 71(@code{quit-window}).
72 72
73@menu 73@menu
74* Navigation:: Navigation inside DocView buffers. 74* Navigation:: Navigation inside DocView buffers.
75* Searching:: Searching inside documents. 75* Searching:: Searching inside documents.
76* Slicing:: Specifying which part of pages should be displayed. 76* Slicing:: Specifying which part of pages should be displayed.
77* Conversion:: Influencing and triggering conversion. 77* Conversion:: Influencing and triggering conversion.
78@end menu 78@end menu
79 79
80@node Navigation 80@node Navigation
@@ -211,9 +211,9 @@ manual.
211To start Gnus, type @kbd{M-x gnus @key{RET}}. 211To start Gnus, type @kbd{M-x gnus @key{RET}}.
212 212
213@menu 213@menu
214* Buffers of Gnus:: The group, summary, and article buffers. 214* Buffers of Gnus:: The group, summary, and article buffers.
215* Gnus Startup:: What you should know about starting Gnus. 215* Gnus Startup:: What you should know about starting Gnus.
216* Summary of Gnus:: A short description of the basic Gnus commands. 216* Summary of Gnus:: A short description of the basic Gnus commands.
217@end menu 217@end menu
218 218
219@node Buffers of Gnus 219@node Buffers of Gnus
@@ -1757,7 +1757,7 @@ whether to supply @samp{-T} and @samp{-J} options (suitable for
1757not compatible with @code{lpr}. 1757not compatible with @code{lpr}.
1758 1758
1759@menu 1759@menu
1760* PostScript:: Printing buffers or regions as PostScript. 1760* PostScript:: Printing buffers or regions as PostScript.
1761* PostScript Variables:: Customizing the PostScript printing commands. 1761* PostScript Variables:: Customizing the PostScript printing commands.
1762* Printing Package:: An optional advanced printing interface. 1762* Printing Package:: An optional advanced printing interface.
1763@end menu 1763@end menu
diff --git a/doc/emacs/msdog.texi b/doc/emacs/msdog.texi
index 5229d1effa2..a44438bf81f 100644
--- a/doc/emacs/msdog.texi
+++ b/doc/emacs/msdog.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top 6@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top
6@appendix Emacs and Microsoft Windows/MS-DOS 7@appendix Emacs and Microsoft Windows/MS-DOS
@@ -761,8 +762,8 @@ printer, put this in your @file{.emacs} file:
761(setq ps-printer-name t) 762(setq ps-printer-name t)
762(setq ps-lpr-command "D:/gs6.01/bin/gswin32c.exe") 763(setq ps-lpr-command "D:/gs6.01/bin/gswin32c.exe")
763(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH" 764(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH"
764 "-sDEVICE=mswinpr2" 765 "-sDEVICE=mswinpr2"
765 "-sPAPERSIZE=a4")) 766 "-sPAPERSIZE=a4"))
766@end example 767@end example
767 768
768@noindent 769@noindent
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index be639f45b0a..9fdef175826 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -228,7 +228,7 @@ in a buffer whose coding system is @code{utf-8-unix}:
228 character: @`A (192, #o300, #xc0) 228 character: @`A (192, #o300, #xc0)
229preferred charset: unicode (Unicode (ISO10646)) 229preferred charset: unicode (Unicode (ISO10646))
230 code point: 0xC0 230 code point: 0xC0
231 syntax: w which means: word 231 syntax: w which means: word
232 category: j:Japanese l:Latin v:Vietnamese 232 category: j:Japanese l:Latin v:Vietnamese
233 buffer code: #xC3 #x80 233 buffer code: #xC3 #x80
234 file code: not encodable by coding system undecided-unix 234 file code: not encodable by coding system undecided-unix
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 72541eccc6f..b729df105e7 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -34,7 +34,7 @@ Highlight program syntax (@pxref{Font Lock}).
34 of a program. 34 of a program.
35* Program Indent:: Adjusting indentation to show the nesting. 35* Program Indent:: Adjusting indentation to show the nesting.
36* Parentheses:: Commands that operate on parentheses. 36* Parentheses:: Commands that operate on parentheses.
37* Comments:: Inserting, killing, and aligning comments. 37* Comments:: Inserting, killing, and aligning comments.
38* Documentation:: Getting documentation of functions you plan to call. 38* Documentation:: Getting documentation of functions you plan to call.
39* Hideshow:: Displaying blocks selectively. 39* Hideshow:: Displaying blocks selectively.
40* Symbol Completion:: Completion on symbol names of your program or language. 40* Symbol Completion:: Completion on symbol names of your program or language.
@@ -354,11 +354,11 @@ single line, a specified number of lines, or all of the lines inside a
354single parenthetical grouping. 354single parenthetical grouping.
355 355
356@menu 356@menu
357* Basic Indent:: Indenting a single line. 357* Basic Indent:: Indenting a single line.
358* Multi-line Indent:: Commands to reindent many lines at once. 358* Multi-line Indent:: Commands to reindent many lines at once.
359* Lisp Indent:: Specifying how each Lisp function should be indented. 359* Lisp Indent:: Specifying how each Lisp function should be indented.
360* C Indent:: Extra features for indenting C and related modes. 360* C Indent:: Extra features for indenting C and related modes.
361* Custom C Indent:: Controlling indentation style for C and related modes. 361* Custom C Indent:: Controlling indentation style for C and related modes.
362@end menu 362@end menu
363 363
364@cindex pretty-printer 364@cindex pretty-printer
@@ -652,7 +652,7 @@ parentheses and unbalanced string quotes in the buffer.
652* Expressions:: Expressions with balanced parentheses. 652* Expressions:: Expressions with balanced parentheses.
653* Moving by Parens:: Commands for moving up, down and across 653* Moving by Parens:: Commands for moving up, down and across
654 in the structure of parentheses. 654 in the structure of parentheses.
655* Matching:: Insertion of a close-delimiter flashes matching open. 655* Matching:: Insertion of a close-delimiter flashes matching open.
656@end menu 656@end menu
657 657
658@node Expressions 658@node Expressions
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 8a4ce492ee1..d477ca73c46 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Rmail, Dired, Sending Mail, Top 6@node Rmail, Dired, Sending Mail, Top
6@chapter Reading Mail with Rmail 7@chapter Reading Mail with Rmail
@@ -21,7 +22,7 @@ Rmail mode, which redefines most letters to run commands for managing mail.
21* Deletion: Rmail Deletion. Deleting and expunging messages. 22* Deletion: Rmail Deletion. Deleting and expunging messages.
22* Inbox: Rmail Inbox. How mail gets into the Rmail file. 23* Inbox: Rmail Inbox. How mail gets into the Rmail file.
23* Files: Rmail Files. Using multiple Rmail files. 24* Files: Rmail Files. Using multiple Rmail files.
24* Output: Rmail Output. Copying messages out to files. 25* Output: Rmail Output. Copying messages out to files.
25* Labels: Rmail Labels. Classifying messages by labeling them. 26* Labels: Rmail Labels. Classifying messages by labeling them.
26* Attrs: Rmail Attributes. Certain standard labels, called attributes. 27* Attrs: Rmail Attributes. Certain standard labels, called attributes.
27* Reply: Rmail Reply. Sending replies to messages you are viewing. 28* Reply: Rmail Reply. Sending replies to messages you are viewing.
@@ -31,7 +32,7 @@ Rmail mode, which redefines most letters to run commands for managing mail.
31* Coding: Rmail Coding. How Rmail handles decoding character sets. 32* Coding: Rmail Coding. How Rmail handles decoding character sets.
32* Editing: Rmail Editing. Editing message text and headers in Rmail. 33* Editing: Rmail Editing. Editing message text and headers in Rmail.
33* Digest: Rmail Digest. Extracting the messages from a digest message. 34* Digest: Rmail Digest. Extracting the messages from a digest message.
34* Rot13: Rmail Rot13. Reading messages encoded in the rot13 code. 35* Rot13: Rmail Rot13. Reading messages encoded in the rot13 code.
35* Movemail:: More details of fetching new mail. 36* Movemail:: More details of fetching new mail.
36* Remote Mailboxes:: Retrieving mail from remote mailboxes. 37* Remote Mailboxes:: Retrieving mail from remote mailboxes.
37* Other Mailbox Formats:: Retrieving mail from local mailboxes in 38* Other Mailbox Formats:: Retrieving mail from local mailboxes in
@@ -834,8 +835,8 @@ Rmail buffer's name. Normally only one summary buffer is displayed at a
834time. 835time.
835 836
836@menu 837@menu
837* Rmail Make Summary:: Making various sorts of summaries. 838* Rmail Make Summary:: Making various sorts of summaries.
838* Rmail Summary Edit:: Manipulating messages from the summary. 839* Rmail Summary Edit:: Manipulating messages from the summary.
839@end menu 840@end menu
840 841
841@node Rmail Make Summary 842@node Rmail Make Summary
diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi
index 43a32d8680e..88d248a93bf 100644
--- a/doc/emacs/screen.texi
+++ b/doc/emacs/screen.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Screen, User Input, Acknowledgments, Top 6@node Screen, User Input, Acknowledgments, Top
6@chapter The Organization of the Screen 7@chapter The Organization of the Screen
@@ -53,10 +54,10 @@ reference. If you use multiple frames on a graphical display,
53selecting a particular frame selects a window in that frame. 54selecting a particular frame selects a window in that frame.
54 55
55@menu 56@menu
56* Point:: The place in the text where editing commands operate. 57* Point:: The place in the text where editing commands operate.
57* Echo Area:: Short messages appear at the bottom of the screen. 58* Echo Area:: Short messages appear at the bottom of the screen.
58* Mode Line:: Interpreting the mode line. 59* Mode Line:: Interpreting the mode line.
59* Menu Bar:: How to use the menu bar. 60* Menu Bar:: How to use the menu bar.
60@end menu 61@end menu
61 62
62@node Point 63@node Point
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 890dd48df9f..69532e6083d 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Search, Fixit, Display, Top 6@node Search, Fixit, Display, Top
6@chapter Searching and Replacement 7@chapter Searching and Replacement
@@ -19,16 +20,16 @@ thing, but search for patterns instead of fixed strings.
19 20
20 21
21@menu 22@menu
22* Incremental Search:: Search happens as you type the string. 23* Incremental Search:: Search happens as you type the string.
23* Nonincremental Search:: Specify entire string and then search. 24* Nonincremental Search:: Specify entire string and then search.
24* Word Search:: Search for sequence of words. 25* Word Search:: Search for sequence of words.
25* Regexp Search:: Search for match for a regexp. 26* Regexp Search:: Search for match for a regexp.
26* Regexps:: Syntax of regular expressions. 27* Regexps:: Syntax of regular expressions.
27* Regexp Backslash:: Regular expression constructs starting with `\'. 28* Regexp Backslash:: Regular expression constructs starting with `\'.
28* Regexp Example:: A complex regular expression explained. 29* Regexp Example:: A complex regular expression explained.
29* Search Case:: To ignore case while searching, or not. 30* Search Case:: To ignore case while searching, or not.
30* Replace:: Search, and replace some or all matches. 31* Replace:: Search, and replace some or all matches.
31* Other Repeating Search:: Operating on all matches for some regexp. 32* Other Repeating Search:: Operating on all matches for some regexp.
32@end menu 33@end menu
33 34
34@node Incremental Search 35@node Incremental Search
@@ -983,10 +984,10 @@ is possible to perform several replacements in parallel, using the
983command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}). 984command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}).
984 985
985@menu 986@menu
986* Unconditional Replace:: Replacing all matches for a string. 987* Unconditional Replace:: Replacing all matches for a string.
987* Regexp Replace:: Replacing all matches for a regexp. 988* Regexp Replace:: Replacing all matches for a regexp.
988* Replacement and Case:: How replacements preserve case of letters. 989* Replacement and Case:: How replacements preserve case of letters.
989* Query Replace:: How to use querying. 990* Query Replace:: How to use querying.
990@end menu 991@end menu
991 992
992@node Unconditional Replace, Regexp Replace, Replace, Replace 993@node Unconditional Replace, Regexp Replace, Replace, Replace
diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi
index 59f140e5f8a..95bf5873eb0 100644
--- a/doc/emacs/sending.texi
+++ b/doc/emacs/sending.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Sending Mail 6@node Sending Mail
6@chapter Sending Mail 7@chapter Sending Mail
@@ -63,7 +64,7 @@ you may need to customize @code{user-mail-address} if the system
63cannot receive mail via SMTP (@pxref{Mail Headers}). 64cannot receive mail via SMTP (@pxref{Mail Headers}).
64 65
65@menu 66@menu
66* Format: Mail Format. Format of a mail message. 67* Format: Mail Format. Format of a mail message.
67* Headers: Mail Headers. Details of some standard mail header fields. 68* Headers: Mail Headers. Details of some standard mail header fields.
68* Aliases: Mail Aliases. Abbreviating and grouping mail addresses. 69* Aliases: Mail Aliases. Abbreviating and grouping mail addresses.
69* Commands: Mail Commands. Special commands for editing mail being composed. 70* Commands: Mail Commands. Special commands for editing mail being composed.
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index c00410e047a..a9faa420967 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1,6 +1,7 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
5@node Text, Programs, Indentation, Top 6@node Text, Programs, Indentation, Top
6@chapter Commands for Human Languages 7@chapter Commands for Human Languages
@@ -57,17 +58,17 @@ for editing such pictures.
57@inforef{Top,, autotype}. 58@inforef{Top,, autotype}.
58 59
59@menu 60@menu
60* Words:: Moving over and killing words. 61* Words:: Moving over and killing words.
61* Sentences:: Moving over and killing sentences. 62* Sentences:: Moving over and killing sentences.
62* Paragraphs:: Moving over paragraphs. 63* Paragraphs:: Moving over paragraphs.
63* Pages:: Moving over pages. 64* Pages:: Moving over pages.
64* Filling:: Filling or justifying text. 65* Filling:: Filling or justifying text.
65* Case:: Changing the case of text. 66* Case:: Changing the case of text.
66* Text Mode:: The major modes for editing text files. 67* Text Mode:: The major modes for editing text files.
67* Outline Mode:: Editing outlines. 68* Outline Mode:: Editing outlines.
68* TeX Mode:: Editing input to the formatter TeX. 69* TeX Mode:: Editing input to the formatter TeX.
69* HTML Mode:: Editing HTML and SGML files. 70* HTML Mode:: Editing HTML and SGML files.
70* Nroff Mode:: Editing input to the formatter nroff. 71* Nroff Mode:: Editing input to the formatter nroff.
71* Formatted Text:: Editing formatted text directly in WYSIWYG fashion. 72* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
72* Text Based Tables:: Editing text-based tables in WYSIWYG fashion. 73* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
73@end menu 74@end menu
@@ -402,13 +403,12 @@ a style of filling for each portion of the text (@pxref{Formatted
402Text}). 403Text}).
403 404
404@menu 405@menu
405* Auto Fill:: Auto Fill mode breaks long lines automatically. 406* Auto Fill:: Auto Fill mode breaks long lines automatically.
406* Fill Commands:: Commands to refill paragraphs and center lines. 407* Fill Commands:: Commands to refill paragraphs and center lines.
407* Fill Prefix:: Filling paragraphs that are indented 408* Fill Prefix:: Filling paragraphs that are indented or in a comment, etc.
408 or in a comment, etc. 409* Adaptive Fill:: How Emacs can determine the fill prefix automatically.
409* Adaptive Fill:: How Emacs can determine the fill prefix automatically. 410* Refill:: Keeping paragraphs filled.
410* Refill:: Keeping paragraphs filled. 411* Longlines:: Editing text with very long lines.
411* Longlines:: Editing text with very long lines.
412@end menu 412@end menu
413 413
414@node Auto Fill 414@node Auto Fill
@@ -978,8 +978,8 @@ major mode's special commands. (The variable
978the hook @code{outline-mode-hook} (@pxref{Hooks}). 978the hook @code{outline-mode-hook} (@pxref{Hooks}).
979 979
980@menu 980@menu
981* Format: Outline Format. What the text of an outline looks like. 981* Format: Outline Format. What the text of an outline looks like.
982* Motion: Outline Motion. Special commands for moving through 982* Motion: Outline Motion. Special commands for moving through
983 outlines. 983 outlines.
984* Visibility: Outline Visibility. Commands to control what is visible. 984* Visibility: Outline Visibility. Commands to control what is visible.
985* Views: Outline Views. Outlines and multiple views. 985* Views: Outline Views. Outlines and multiple views.
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 69b5b82a056..0390b7da910 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -426,10 +426,10 @@ problem in these two documents might provide you with a solution or a
426work-around, or give you additional information about related issues. 426work-around, or give you additional information about related issues.
427 427
428@menu 428@menu
429* Criteria: Bug Criteria. Have you really found a bug? 429* Criteria: Bug Criteria. Have you really found a bug?
430* Understanding Bug Reporting:: How to report a bug effectively. 430* Understanding Bug Reporting:: How to report a bug effectively.
431* Checklist:: Steps to follow for a good bug report. 431* Checklist:: Steps to follow for a good bug report.
432* Sending Patches:: How to send a patch for GNU Emacs. 432* Sending Patches:: How to send a patch for GNU Emacs.
433@end menu 433@end menu
434 434
435@node Bug Criteria 435@node Bug Criteria
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index d93286befda..5095c3f4764 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -220,8 +220,8 @@ a symbolic name for a revision.
220stable version of the system that is ready for distribution to users. 220stable version of the system that is ready for distribution to users.
221 221
222@menu 222@menu
223* Making Revision Tags:: The tag facilities. 223* Making Revision Tags:: The tag facilities.
224* Revision Tag Caveats:: Things to be careful of when using tags. 224* Revision Tag Caveats:: Things to be careful of when using tags.
225@end menu 225@end menu
226 226
227@node Making Revision Tags 227@node Making Revision Tags
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index bc60ff946af..2a543eeee08 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -435,13 +435,14 @@ Emacs.pane.menubar.faceName: Courier-12
435To specify a font, use fontconfig font names as values to the @code{faceName} 435To specify a font, use fontconfig font names as values to the @code{faceName}
436resource. 436resource.
437 437
438If Emacs is not built with the Xft library, Lucid menus and dialogs can only 438If Emacs is not built with the Xft library, Lucid menus and dialogs
439display old style fonts. If Emacs is built with Xft and you prefer the old 439can only display old style fonts. If Emacs is built with Xft and you
440fonts, you have to specify @samp{none} to @code{faceName}: 440prefer the old fonts, you have to specify @samp{none} to
441@code{faceName}:
441 442
442@example 443@example
443Emacs.pane.menubar.faceName: none 444Emacs.pane.menubar.faceName: none
444Emacs.pane.dialog.faceName: none 445Emacs.pane.dialog.faceName: none
445@end example 446@end example
446 447
447@noindent 448@noindent
@@ -472,7 +473,7 @@ Resources for @emph{non-menubar} toolkit pop-up menus have
472the font @samp{8x16} for the pop-up menu items, write this: 473the font @samp{8x16} for the pop-up menu items, write this:
473 474
474@example 475@example
475Emacs.menu*.font: 8x16 476Emacs.menu*.font: 8x16
476@end example 477@end example
477 478
478@noindent 479@noindent
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index f52240fbdfd..093a7018ca3 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,7 @@
12010-06-23 Glenn Morris <rgm@gnu.org>
2
3 * emacs-lisp-intro.texi: Untabify.
4
12010-05-07 Chong Yidong <cyd@stupidchicken.com> 52010-05-07 Chong Yidong <cyd@stupidchicken.com>
2 6
3 * Version 23.2 released. 7 * Version 23.2 released.
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 0f3a3bc1993..dfba68cc911 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -17789,7 +17789,7 @@ Incidentally, @code{load-library} is an interactive interface to the
17789This is an interface to the function `load'." 17789This is an interface to the function `load'."
17790 (interactive 17790 (interactive
17791 (list (completing-read "Load library: " 17791 (list (completing-read "Load library: "
17792 (apply-partially 'locate-file-completion-table 17792 (apply-partially 'locate-file-completion-table
17793 load-path 17793 load-path
17794 (get-load-suffixes))))) 17794 (get-load-suffixes)))))
17795 (load library)) 17795 (load library))
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index cecb6f0c661..ee6ba8ed50b 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,33 @@
12010-07-09 Eli Zaretskii <eliz@gnu.org>
2
3 * internals.texi (Writing Emacs Primitives): Adapt to ANSI C
4 calling sequences, which are now the standard.
5
62010-06-24 Chong Yidong <cyd@stupidchicken.com>
7
8 * text.texi (Undo): Clarify command loop behavior (Bug#2433).
9
10 * commands.texi (Command Overview): Mention undo-boundary call.
11
122010-06-23 Glenn Morris <rgm@gnu.org>
13
14 * abbrevs.texi, commands.texi, compile.texi, debugging.texi:
15 * display.texi, edebug.texi, elisp.texi, eval.texi, files.texi:
16 * frames.texi, functions.texi, internals.texi, keymaps.texi:
17 * loading.texi, minibuf.texi, numbers.texi, os.texi, processes.texi:
18 * searching.texi, sequences.texi, strings.texi, syntax.texi:
19 * text.texi, tips.texi, vol1.texi, vol2.texi, windows.texi:
20 Untabify Texinfo files.
21
222010-06-20 Chong Yidong <cyd@stupidchicken.com>
23
24 * modes.texi (Minor Mode Conventions): Fix typo (Bug#6477).
25
262010-06-19 Chong Yidong <cyd@stupidchicken.com>
27
28 * errors.texi (Standard Errors): Remove unnecessary markup
29 (Bug#6461).
30
12010-06-02 Chong Yidong <cyd@stupidchicken.com> 312010-06-02 Chong Yidong <cyd@stupidchicken.com>
2 32
3 * searching.texi (Regexp Special): Remove obsolete information 33 * searching.texi (Regexp Special): Remove obsolete information
diff --git a/doc/lispref/abbrevs.texi b/doc/lispref/abbrevs.texi
index 1bb33475240..90da5aaa488 100644
--- a/doc/lispref/abbrevs.texi
+++ b/doc/lispref/abbrevs.texi
@@ -376,10 +376,10 @@ definitions of @code{local-abbrev-table} and @code{text-mode-abbrev-table}.
376 (funcall expand)))) 376 (funcall expand))))
377 377
378(add-hook 'foo-mode-hook 378(add-hook 'foo-mode-hook
379 #'(lambda () 379 #'(lambda ()
380 (add-hook 'abbrev-expand-functions 380 (add-hook 'abbrev-expand-functions
381 'foo-mode-abbrev-expand-function 381 'foo-mode-abbrev-expand-function
382 nil t))) 382 nil t)))
383@end smallexample 383@end smallexample
384 384
385@node Standard Abbrev Tables, Abbrev Properties, Abbrev Expansion, Abbrevs 385@node Standard Abbrev Tables, Abbrev Properties, Abbrev Expansion, Abbrevs
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index 463443f8e10..d22cfd955cb 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/commands 7@setfilename ../../info/commands
7@node Command Loop, Keymaps, Minibuffers, Top 8@node Command Loop, Keymaps, Minibuffers, Top
@@ -21,7 +22,7 @@ are done, and the subroutines that allow Lisp programs to do them.
21* Distinguish Interactive:: Making a command distinguish interactive calls. 22* Distinguish Interactive:: Making a command distinguish interactive calls.
22* Command Loop Info:: Variables set by the command loop for you to examine. 23* Command Loop Info:: Variables set by the command loop for you to examine.
23* Adjusting Point:: Adjustment of point after a command. 24* Adjusting Point:: Adjustment of point after a command.
24* Input Events:: What input looks like when you read it. 25* Input Events:: What input looks like when you read it.
25* Reading Input:: How to read input events from the keyboard or mouse. 26* Reading Input:: How to read input events from the keyboard or mouse.
26* Special Events:: Events processed immediately and individually. 27* Special Events:: Events processed immediately and individually.
27* Waiting:: Waiting for user input or elapsed time. 28* Waiting:: Waiting for user input or elapsed time.
@@ -52,16 +53,19 @@ function. If the key is @kbd{M-x}, then it reads the name of another
52command, which it then calls. This is done by the command 53command, which it then calls. This is done by the command
53@code{execute-extended-command} (@pxref{Interactive Call}). 54@code{execute-extended-command} (@pxref{Interactive Call}).
54 55
55 To execute a command requires first reading the arguments for it. 56 Prior to executing the command, Emacs runs @code{undo-boundary} to
56This is done by calling @code{command-execute} (@pxref{Interactive 57create an undo boundary. @xref{Maintaining Undo}.
57Call}). For commands written in Lisp, the @code{interactive} 58
58specification says how to read the arguments. This may use the prefix 59 To execute a command, Emacs first reads its arguments by calling
59argument (@pxref{Prefix Command Arguments}) or may read with prompting 60@code{command-execute} (@pxref{Interactive Call}). For commands
60in the minibuffer (@pxref{Minibuffers}). For example, the command 61written in Lisp, the @code{interactive} specification says how to read
61@code{find-file} has an @code{interactive} specification which says to 62the arguments. This may use the prefix argument (@pxref{Prefix
62read a file name using the minibuffer. The command's function body does 63Command Arguments}) or may read with prompting in the minibuffer
63not use the minibuffer; if you call this command from Lisp code as a 64(@pxref{Minibuffers}). For example, the command @code{find-file} has
64function, you must supply the file name string as an ordinary Lisp 65an @code{interactive} specification which says to read a file name
66using the minibuffer. The function body of @code{find-file} does not
67use the minibuffer, so if you call @code{find-file} as a function from
68Lisp code, you must supply the file name string as an ordinary Lisp
65function argument. 69function argument.
66 70
67 If the command is a string or vector (i.e., a keyboard macro) then 71 If the command is a string or vector (i.e., a keyboard macro) then
@@ -968,23 +972,23 @@ the current Emacs session. If a symbol has not yet been so used,
968@end defun 972@end defun
969 973
970@menu 974@menu
971* Keyboard Events:: Ordinary characters--keys with symbols on them. 975* Keyboard Events:: Ordinary characters--keys with symbols on them.
972* Function Keys:: Function keys--keys with names, not symbols. 976* Function Keys:: Function keys--keys with names, not symbols.
973* Mouse Events:: Overview of mouse events. 977* Mouse Events:: Overview of mouse events.
974* Click Events:: Pushing and releasing a mouse button. 978* Click Events:: Pushing and releasing a mouse button.
975* Drag Events:: Moving the mouse before releasing the button. 979* Drag Events:: Moving the mouse before releasing the button.
976* Button-Down Events:: A button was pushed and not yet released. 980* Button-Down Events:: A button was pushed and not yet released.
977* Repeat Events:: Double and triple click (or drag, or down). 981* Repeat Events:: Double and triple click (or drag, or down).
978* Motion Events:: Just moving the mouse, not pushing a button. 982* Motion Events:: Just moving the mouse, not pushing a button.
979* Focus Events:: Moving the mouse between frames. 983* Focus Events:: Moving the mouse between frames.
980* Misc Events:: Other events the system can generate. 984* Misc Events:: Other events the system can generate.
981* Event Examples:: Examples of the lists for mouse events. 985* Event Examples:: Examples of the lists for mouse events.
982* Classifying Events:: Finding the modifier keys in an event symbol. 986* Classifying Events:: Finding the modifier keys in an event symbol.
983 Event types. 987 Event types.
984* Accessing Mouse:: Functions to extract info from mouse events. 988* Accessing Mouse:: Functions to extract info from mouse events.
985* Accessing Scroll:: Functions to get info from scroll bar events. 989* Accessing Scroll:: Functions to get info from scroll bar events.
986* Strings of Events:: Special considerations for putting 990* Strings of Events:: Special considerations for putting
987 keyboard character events in a string. 991 keyboard character events in a string.
988@end menu 992@end menu
989 993
990@node Keyboard Events 994@node Keyboard Events
@@ -2158,12 +2162,12 @@ debugging terminal input.
2158 For higher-level input facilities, see @ref{Minibuffers}. 2162 For higher-level input facilities, see @ref{Minibuffers}.
2159 2163
2160@menu 2164@menu
2161* Key Sequence Input:: How to read one key sequence. 2165* Key Sequence Input:: How to read one key sequence.
2162* Reading One Event:: How to read just one event. 2166* Reading One Event:: How to read just one event.
2163* Event Mod:: How Emacs modifies events as they are read. 2167* Event Mod:: How Emacs modifies events as they are read.
2164* Invoking the Input Method:: How reading an event uses the input method. 2168* Invoking the Input Method:: How reading an event uses the input method.
2165* Quoted Character Input:: Asking the user to specify a character. 2169* Quoted Character Input:: Asking the user to specify a character.
2166* Event Input Misc:: How to reread or throw away input events. 2170* Event Input Misc:: How to reread or throw away input events.
2167@end menu 2171@end menu
2168 2172
2169@node Key Sequence Input 2173@node Key Sequence Input
@@ -2889,9 +2893,9 @@ normal quitting is permitted after the first character of input.
2889 (while (not done) 2893 (while (not done)
2890 (let ((inhibit-quit first) 2894 (let ((inhibit-quit first)
2891 @dots{}) 2895 @dots{})
2892 (and prompt (message "%s-" prompt)) 2896 (and prompt (message "%s-" prompt))
2893 (setq char (read-event)) 2897 (setq char (read-event))
2894 (if inhibit-quit (setq quit-flag nil))) 2898 (if inhibit-quit (setq quit-flag nil)))
2895 @r{@dots{}set the variable @code{code}@dots{}}) 2899 @r{@dots{}set the variable @code{code}@dots{}})
2896 code)) 2900 code))
2897@end example 2901@end example
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi
index b2ab9d67e59..1c28664e7c3 100644
--- a/doc/lispref/compile.texi
+++ b/doc/lispref/compile.texi
@@ -47,9 +47,9 @@ byte compilation.
47* Compilation Functions:: Byte compilation functions. 47* Compilation Functions:: Byte compilation functions.
48* Docs and Compilation:: Dynamic loading of documentation strings. 48* Docs and Compilation:: Dynamic loading of documentation strings.
49* Dynamic Loading:: Dynamic loading of individual functions. 49* Dynamic Loading:: Dynamic loading of individual functions.
50* Eval During Compile:: Code to be evaluated when you compile. 50* Eval During Compile:: Code to be evaluated when you compile.
51* Compiler Errors:: Handling compiler error messages. 51* Compiler Errors:: Handling compiler error messages.
52* Byte-Code Objects:: The data type used for byte-compiled functions. 52* Byte-Code Objects:: The data type used for byte-compiled functions.
53* Disassembly:: Disassembling byte-code; how to read byte-code. 53* Disassembly:: Disassembling byte-code; how to read byte-code.
54@end menu 54@end menu
55 55
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 669c07d5a0e..3d77a5fe0d5 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -28,7 +28,7 @@ compiler, you need to know how to examine the compiler's input buffer.
28 28
29@menu 29@menu
30* Debugger:: How the Emacs Lisp debugger is implemented. 30* Debugger:: How the Emacs Lisp debugger is implemented.
31* Edebug:: A source-level Emacs Lisp debugger. 31* Edebug:: A source-level Emacs Lisp debugger.
32* Syntax Errors:: How to find syntax errors. 32* Syntax Errors:: How to find syntax errors.
33* Test Coverage:: Ensuring you have tested all branches in your code. 33* Test Coverage:: Ensuring you have tested all branches in your code.
34* Compilation Errors:: How to find errors that show up in byte compilation. 34* Compilation Errors:: How to find errors that show up in byte compilation.
@@ -58,7 +58,7 @@ debugger recursively. @xref{Recursive Editing}.
58 58
59@menu 59@menu
60* Error Debugging:: Entering the debugger when an error happens. 60* Error Debugging:: Entering the debugger when an error happens.
61* Infinite Loops:: Stopping and debugging a program that doesn't exit. 61* Infinite Loops:: Stopping and debugging a program that doesn't exit.
62* Function Debugging:: Entering it when a certain function is called. 62* Function Debugging:: Entering it when a certain function is called.
63* Explicit Debug:: Entering it at a certain point in the program. 63* Explicit Debug:: Entering it at a certain point in the program.
64* Using Debugger:: What the debugger does; what you see while in it. 64* Using Debugger:: What the debugger does; what you see while in it.
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 622de2cd3cf..9f07fb42ef4 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -1181,7 +1181,7 @@ inside the overlay or outside, and likewise for the end of the overlay.
1181@menu 1181@menu
1182* Managing Overlays:: Creating and moving overlays. 1182* Managing Overlays:: Creating and moving overlays.
1183* Overlay Properties:: How to read and set properties. 1183* Overlay Properties:: How to read and set properties.
1184 What properties do to the screen display. 1184 What properties do to the screen display.
1185* Finding Overlays:: Searching for overlays. 1185* Finding Overlays:: Searching for overlays.
1186@end menu 1186@end menu
1187 1187
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index fba83980cd1..3733a8fb105 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -59,24 +59,24 @@ The first three sections below should tell you enough about Edebug to
59start using it. 59start using it.
60 60
61@menu 61@menu
62* Using Edebug:: Introduction to use of Edebug. 62* Using Edebug:: Introduction to use of Edebug.
63* Instrumenting:: You must instrument your code 63* Instrumenting:: You must instrument your code
64 in order to debug it with Edebug. 64 in order to debug it with Edebug.
65* Modes: Edebug Execution Modes. Execution modes, stopping more or less often. 65* Modes: Edebug Execution Modes. Execution modes, stopping more or less often.
66* Jumping:: Commands to jump to a specified place. 66* Jumping:: Commands to jump to a specified place.
67* Misc: Edebug Misc. Miscellaneous commands. 67* Misc: Edebug Misc. Miscellaneous commands.
68* Breaks:: Setting breakpoints to make the program stop. 68* Breaks:: Setting breakpoints to make the program stop.
69* Trapping Errors:: Trapping errors with Edebug. 69* Trapping Errors:: Trapping errors with Edebug.
70* Views: Edebug Views. Views inside and outside of Edebug. 70* Views: Edebug Views. Views inside and outside of Edebug.
71* Eval: Edebug Eval. Evaluating expressions within Edebug. 71* Eval: Edebug Eval. Evaluating expressions within Edebug.
72* Eval List:: Expressions whose values are displayed 72* Eval List:: Expressions whose values are displayed
73 each time you enter Edebug. 73 each time you enter Edebug.
74* Printing in Edebug:: Customization of printing. 74* Printing in Edebug:: Customization of printing.
75* Trace Buffer:: How to produce trace output in a buffer. 75* Trace Buffer:: How to produce trace output in a buffer.
76* Coverage Testing:: How to test evaluation coverage. 76* Coverage Testing:: How to test evaluation coverage.
77* The Outside Context:: Data that Edebug saves and restores. 77* The Outside Context:: Data that Edebug saves and restores.
78* Edebug and Macros:: Specifying how to handle macro calls. 78* Edebug and Macros:: Specifying how to handle macro calls.
79* Options: Edebug Options. Option variables for customizing Edebug. 79* Options: Edebug Options. Option variables for customizing Edebug.
80@end menu 80@end menu
81 81
82@node Using Edebug 82@node Using Edebug
@@ -429,8 +429,8 @@ breakpoints, the global break condition, and source breakpoints.
429 429
430@menu 430@menu
431* Breakpoints:: Breakpoints at stop points. 431* Breakpoints:: Breakpoints at stop points.
432* Global Break Condition:: Breaking on an event. 432* Global Break Condition:: Breaking on an event.
433* Source Breakpoints:: Embedding breakpoints in source code. 433* Source Breakpoints:: Embedding breakpoints in source code.
434@end menu 434@end menu
435 435
436@node Breakpoints 436@node Breakpoints
@@ -940,9 +940,9 @@ explains precisely what context Edebug restores, and how Edebug fails to
940be completely transparent. 940be completely transparent.
941 941
942@menu 942@menu
943* Checking Whether to Stop:: When Edebug decides what to do. 943* Checking Whether to Stop:: When Edebug decides what to do.
944* Edebug Display Update:: When Edebug updates the display. 944* Edebug Display Update:: When Edebug updates the display.
945* Edebug Recursive Edit:: When Edebug stops execution. 945* Edebug Recursive Edit:: When Edebug stops execution.
946@end menu 946@end menu
947 947
948@node Checking Whether to Stop 948@node Checking Whether to Stop
@@ -1074,9 +1074,9 @@ extra care is needed. This subsection explains the details.
1074 1074
1075@menu 1075@menu
1076* Instrumenting Macro Calls:: The basic problem. 1076* Instrumenting Macro Calls:: The basic problem.
1077* Specification List:: How to specify complex patterns of evaluation. 1077* Specification List:: How to specify complex patterns of evaluation.
1078* Backtracking:: What Edebug does when matching fails. 1078* Backtracking:: What Edebug does when matching fails.
1079* Specification Examples:: To help understand specifications. 1079* Specification Examples:: To help understand specifications.
1080@end menu 1080@end menu
1081 1081
1082@node Instrumenting Macro Calls 1082@node Instrumenting Macro Calls
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 0f746187212..4c5471cf169 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -143,7 +143,7 @@ Cover art by Etienne Suvasa.
143 files are made. 143 files are made.
144* Buffers:: Creating and using buffer objects. 144* Buffers:: Creating and using buffer objects.
145* Windows:: Manipulating windows and displaying buffers. 145* Windows:: Manipulating windows and displaying buffers.
146* Frames:: Making multiple system-level windows. 146* Frames:: Making multiple system-level windows.
147* Positions:: Buffer positions and motion functions. 147* Positions:: Buffer positions and motion functions.
148* Markers:: Markers represent positions and update 148* Markers:: Markers represent positions and update
149 automatically when the text is changed. 149 automatically when the text is changed.
@@ -155,7 +155,7 @@ Cover art by Etienne Suvasa.
155* Abbrevs:: How Abbrev mode works, and its data structures. 155* Abbrevs:: How Abbrev mode works, and its data structures.
156 156
157* Processes:: Running and communicating with subprocesses. 157* Processes:: Running and communicating with subprocesses.
158* Display:: Features for controlling the screen display. 158* Display:: Features for controlling the screen display.
159* System Interface:: Getting the user id, system type, environment 159* System Interface:: Getting the user id, system type, environment
160 variables, and other such things. 160 variables, and other such things.
161 161
@@ -291,10 +291,10 @@ Editing Types
291Numbers 291Numbers
292 292
293* Integer Basics:: Representation and range of integers. 293* Integer Basics:: Representation and range of integers.
294* Float Basics:: Representation and range of floating point. 294* Float Basics:: Representation and range of floating point.
295* Predicates on Numbers:: Testing for numbers. 295* Predicates on Numbers:: Testing for numbers.
296* Comparison of Numbers:: Equality and inequality predicates. 296* Comparison of Numbers:: Equality and inequality predicates.
297* Numeric Conversions:: Converting float to integer and vice versa. 297* Numeric Conversions:: Converting float to integer and vice versa.
298* Arithmetic Operations:: How to add, subtract, multiply and divide. 298* Arithmetic Operations:: How to add, subtract, multiply and divide.
299* Rounding Operations:: Explicitly rounding floating point numbers. 299* Rounding Operations:: Explicitly rounding floating point numbers.
300* Bitwise Operations:: Logical and, or, not, shifting. 300* Bitwise Operations:: Logical and, or, not, shifting.
@@ -311,7 +311,7 @@ Strings and Characters
311* String Conversion:: Converting to and from characters and strings. 311* String Conversion:: Converting to and from characters and strings.
312* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. 312* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}.
313* Case Conversion:: Case conversion functions. 313* Case Conversion:: Case conversion functions.
314* Case Tables:: Customizing case conversion. 314* Case Tables:: Customizing case conversion.
315 315
316Lists 316Lists
317 317
@@ -379,7 +379,7 @@ Kinds of Forms
379* Symbol Forms:: Symbols evaluate as variables. 379* Symbol Forms:: Symbols evaluate as variables.
380* Classifying Lists:: How to distinguish various sorts of list forms. 380* Classifying Lists:: How to distinguish various sorts of list forms.
381* Function Indirection:: When a symbol appears as the car of a list, 381* Function Indirection:: When a symbol appears as the car of a list,
382 we find the real function via the symbol. 382 we find the real function via the symbol.
383* Function Forms:: Forms that call functions. 383* Function Forms:: Forms that call functions.
384* Macro Forms:: Forms that call macros. 384* Macro Forms:: Forms that call macros.
385* Special Forms:: "Special forms" are idiosyncratic primitives, 385* Special Forms:: "Special forms" are idiosyncratic primitives,
@@ -460,9 +460,9 @@ Functions
460* Function Cells:: Accessing or setting the function definition 460* Function Cells:: Accessing or setting the function definition
461 of a symbol. 461 of a symbol.
462* Obsolete Functions:: Declaring functions obsolete. 462* Obsolete Functions:: Declaring functions obsolete.
463* Inline Functions:: Defining functions that the compiler 463* Inline Functions:: Defining functions that the compiler
464 will open code. 464 will open code.
465* Declaring Functions:: Telling the compiler that a function is defined. 465* Declaring Functions:: Telling the compiler that a function is defined.
466* Function Safety:: Determining whether a function is safe to call. 466* Function Safety:: Determining whether a function is safe to call.
467* Related Topics:: Cross-references to specific Lisp primitives 467* Related Topics:: Cross-references to specific Lisp primitives
468 that have a special bearing on how 468 that have a special bearing on how
@@ -522,9 +522,9 @@ Loading
522* Repeated Loading:: Precautions about loading a file twice. 522* Repeated Loading:: Precautions about loading a file twice.
523* Named Features:: Loading a library if it isn't already loaded. 523* Named Features:: Loading a library if it isn't already loaded.
524* Where Defined:: Finding which file defined a certain symbol. 524* Where Defined:: Finding which file defined a certain symbol.
525* Unloading:: How to "unload" a library that was loaded. 525* Unloading:: How to "unload" a library that was loaded.
526* Hooks for Loading:: Providing code to be run when 526* Hooks for Loading:: Providing code to be run when
527 particular libraries are loaded. 527 particular libraries are loaded.
528 528
529Byte Compilation 529Byte Compilation
530 530
@@ -534,7 +534,7 @@ Byte Compilation
534* Dynamic Loading:: Dynamic loading of individual functions. 534* Dynamic Loading:: Dynamic loading of individual functions.
535* Eval During Compile:: Code to be evaluated when you compile. 535* Eval During Compile:: Code to be evaluated when you compile.
536* Compiler Errors:: Handling compiler error messages. 536* Compiler Errors:: Handling compiler error messages.
537* Byte-Code Objects:: The data type used for byte-compiled functions. 537* Byte-Code Objects:: The data type used for byte-compiled functions.
538* Disassembly:: Disassembling byte-code; how to read byte-code. 538* Disassembly:: Disassembling byte-code; how to read byte-code.
539 539
540Advising Emacs Lisp Functions 540Advising Emacs Lisp Functions
@@ -563,7 +563,7 @@ Debugging Lisp Programs
563The Lisp Debugger 563The Lisp Debugger
564 564
565* Error Debugging:: Entering the debugger when an error happens. 565* Error Debugging:: Entering the debugger when an error happens.
566* Infinite Loops:: Stopping and debugging a program that doesn't exit. 566* Infinite Loops:: Stopping and debugging a program that doesn't exit.
567* Function Debugging:: Entering it when a certain function is called. 567* Function Debugging:: Entering it when a certain function is called.
568* Explicit Debug:: Entering it at a certain point in the program. 568* Explicit Debug:: Entering it at a certain point in the program.
569* Using Debugger:: What the debugger does; what you see while in it. 569* Using Debugger:: What the debugger does; what you see while in it.
@@ -573,24 +573,24 @@ The Lisp Debugger
573 573
574Edebug 574Edebug
575 575
576* Using Edebug:: Introduction to use of Edebug. 576* Using Edebug:: Introduction to use of Edebug.
577* Instrumenting:: You must instrument your code 577* Instrumenting:: You must instrument your code
578 in order to debug it with Edebug. 578 in order to debug it with Edebug.
579* Edebug Execution Modes:: Execution modes, stopping more or less often. 579* Edebug Execution Modes:: Execution modes, stopping more or less often.
580* Jumping:: Commands to jump to a specified place. 580* Jumping:: Commands to jump to a specified place.
581* Edebug Misc:: Miscellaneous commands. 581* Edebug Misc:: Miscellaneous commands.
582* Breaks:: Setting breakpoints to make the program stop. 582* Breaks:: Setting breakpoints to make the program stop.
583* Trapping Errors:: Trapping errors with Edebug. 583* Trapping Errors:: Trapping errors with Edebug.
584* Edebug Views:: Views inside and outside of Edebug. 584* Edebug Views:: Views inside and outside of Edebug.
585* Edebug Eval:: Evaluating expressions within Edebug. 585* Edebug Eval:: Evaluating expressions within Edebug.
586* Eval List:: Expressions whose values are displayed 586* Eval List:: Expressions whose values are displayed
587 each time you enter Edebug. 587 each time you enter Edebug.
588* Printing in Edebug:: Customization of printing. 588* Printing in Edebug:: Customization of printing.
589* Trace Buffer:: How to produce trace output in a buffer. 589* Trace Buffer:: How to produce trace output in a buffer.
590* Coverage Testing:: How to test evaluation coverage. 590* Coverage Testing:: How to test evaluation coverage.
591* The Outside Context:: Data that Edebug saves and restores. 591* The Outside Context:: Data that Edebug saves and restores.
592* Edebug and Macros:: Specifying how to handle macro calls. 592* Edebug and Macros:: Specifying how to handle macro calls.
593* Edebug Options:: Option variables for customizing Edebug. 593* Edebug Options:: Option variables for customizing Edebug.
594 594
595Breaks 595Breaks
596 596
@@ -607,8 +607,8 @@ The Outside Context
607Edebug and Macros 607Edebug and Macros
608 608
609* Instrumenting Macro Calls::The basic problem. 609* Instrumenting Macro Calls::The basic problem.
610* Specification List:: How to specify complex patterns of evaluation. 610* Specification List:: How to specify complex patterns of evaluation.
611* Backtracking:: What Edebug does when matching fails. 611* Backtracking:: What Edebug does when matching fails.
612* Specification Examples:: To help understand specifications. 612* Specification Examples:: To help understand specifications.
613 613
614Debugging Invalid Lisp Syntax 614Debugging Invalid Lisp Syntax
@@ -633,13 +633,13 @@ Minibuffers
633* Intro to Minibuffers:: Basic information about minibuffers. 633* Intro to Minibuffers:: Basic information about minibuffers.
634* Text from Minibuffer:: How to read a straight text string. 634* Text from Minibuffer:: How to read a straight text string.
635* Object from Minibuffer:: How to read a Lisp object or expression. 635* Object from Minibuffer:: How to read a Lisp object or expression.
636* Minibuffer History:: Recording previous minibuffer inputs 636* Minibuffer History:: Recording previous minibuffer inputs
637 so the user can reuse them. 637 so the user can reuse them.
638* Initial Input:: Specifying initial contents for the minibuffer. 638* Initial Input:: Specifying initial contents for the minibuffer.
639* Completion:: How to invoke and customize completion. 639* Completion:: How to invoke and customize completion.
640* Yes-or-No Queries:: Asking a question with a simple answer. 640* Yes-or-No Queries:: Asking a question with a simple answer.
641* Multiple Queries:: Asking a series of similar questions. 641* Multiple Queries:: Asking a series of similar questions.
642* Reading a Password:: Reading a password from the terminal. 642* Reading a Password:: Reading a password from the terminal.
643* Minibuffer Commands:: Commands used as key bindings in minibuffers. 643* Minibuffer Commands:: Commands used as key bindings in minibuffers.
644* Minibuffer Contents:: How such commands access the minibuffer text. 644* Minibuffer Contents:: How such commands access the minibuffer text.
645* Minibuffer Windows:: Operating on the special minibuffer windows. 645* Minibuffer Windows:: Operating on the special minibuffer windows.
@@ -666,7 +666,7 @@ Command Loop
666* Distinguish Interactive:: Making a command distinguish interactive calls. 666* Distinguish Interactive:: Making a command distinguish interactive calls.
667* Command Loop Info:: Variables set by the command loop for you to examine. 667* Command Loop Info:: Variables set by the command loop for you to examine.
668* Adjusting Point:: Adjustment of point after a command. 668* Adjusting Point:: Adjustment of point after a command.
669* Input Events:: What input looks like when you read it. 669* Input Events:: What input looks like when you read it.
670* Reading Input:: How to read input events from the keyboard or mouse. 670* Reading Input:: How to read input events from the keyboard or mouse.
671* Special Events:: Events processed immediately and individually. 671* Special Events:: Events processed immediately and individually.
672* Waiting:: Waiting for user input or elapsed time. 672* Waiting:: Waiting for user input or elapsed time.
@@ -700,7 +700,7 @@ Input Events
700* Event Examples:: Examples of the lists for mouse events. 700* Event Examples:: Examples of the lists for mouse events.
701* Classifying Events:: Finding the modifier keys in an event symbol. 701* Classifying Events:: Finding the modifier keys in an event symbol.
702 Event types. 702 Event types.
703* Accessing Mouse:: Functions to extract info from mouse events. 703* Accessing Mouse:: Functions to extract info from mouse events.
704* Accessing Scroll:: Functions to get info from scroll bar events. 704* Accessing Scroll:: Functions to get info from scroll bar events.
705* Strings of Events:: Special considerations for putting 705* Strings of Events:: Special considerations for putting
706 keyboard character events in a string. 706 keyboard character events in a string.
@@ -850,9 +850,9 @@ Files
850* Changing Files:: Renaming files, changing protection, etc. 850* Changing Files:: Renaming files, changing protection, etc.
851* File Names:: Decomposing and expanding file names. 851* File Names:: Decomposing and expanding file names.
852* Contents of Directories:: Getting a list of the files in a directory. 852* Contents of Directories:: Getting a list of the files in a directory.
853* Create/Delete Dirs:: Creating and Deleting Directories. 853* Create/Delete Dirs:: Creating and Deleting Directories.
854* Magic File Names:: Defining "magic" special handling 854* Magic File Names:: Defining "magic" special handling
855 for certain file names. 855 for certain file names.
856* Format Conversion:: Conversion to and from various file formats. 856* Format Conversion:: Conversion to and from various file formats.
857 857
858Visiting Files 858Visiting Files
@@ -864,7 +864,7 @@ Information about Files
864 864
865* Testing Accessibility:: Is a given file readable? Writable? 865* Testing Accessibility:: Is a given file readable? Writable?
866* Kinds of Files:: Is it a directory? A symbolic link? 866* Kinds of Files:: Is it a directory? A symbolic link?
867* Truenames:: Eliminating symbolic links from a file name. 867* Truenames:: Eliminating symbolic links from a file name.
868* File Attributes:: How large is it? Any other names? Etc. 868* File Attributes:: How large is it? Any other names? Etc.
869* Locating Files:: How to find a file in standard places. 869* Locating Files:: How to find a file in standard places.
870 870
@@ -934,8 +934,8 @@ Windows
934* Buffers and Windows:: Each window displays the contents of a buffer. 934* Buffers and Windows:: Each window displays the contents of a buffer.
935* Displaying Buffers:: Higher-level functions for displaying a buffer 935* Displaying Buffers:: Higher-level functions for displaying a buffer
936 and choosing a window for it. 936 and choosing a window for it.
937* Choosing Window:: How to choose a window for displaying a buffer. 937* Choosing Window:: How to choose a window for displaying a buffer.
938* Dedicated Windows:: How to avoid displaying another buffer in 938* Dedicated Windows:: How to avoid displaying another buffer in
939 a specific window. 939 a specific window.
940* Window Point:: Each window has its own location of point. 940* Window Point:: Each window has its own location of point.
941* Window Start and End:: Buffer positions indicating which text is 941* Window Start and End:: Buffer positions indicating which text is
@@ -955,37 +955,37 @@ Windows
955 955
956Frames 956Frames
957 957
958* Creating Frames:: Creating additional frames. 958* Creating Frames:: Creating additional frames.
959* Multiple Terminals:: Displaying on several different devices. 959* Multiple Terminals:: Displaying on several different devices.
960* Frame Parameters:: Controlling frame size, position, font, etc. 960* Frame Parameters:: Controlling frame size, position, font, etc.
961* Terminal Parameters:: Parameters common for all frames on terminal. 961* Terminal Parameters:: Parameters common for all frames on terminal.
962* Frame Titles:: Automatic updating of frame titles. 962* Frame Titles:: Automatic updating of frame titles.
963* Deleting Frames:: Frames last until explicitly deleted. 963* Deleting Frames:: Frames last until explicitly deleted.
964* Finding All Frames:: How to examine all existing frames. 964* Finding All Frames:: How to examine all existing frames.
965* Frames and Windows:: A frame contains windows; 965* Frames and Windows:: A frame contains windows;
966 display of text always works through windows. 966 display of text always works through windows.
967* Minibuffers and Frames:: How a frame finds the minibuffer to use. 967* Minibuffers and Frames:: How a frame finds the minibuffer to use.
968* Input Focus:: Specifying the selected frame. 968* Input Focus:: Specifying the selected frame.
969* Visibility of Frames:: Frames may be visible or invisible, or icons. 969* Visibility of Frames:: Frames may be visible or invisible, or icons.
970* Raising and Lowering:: Raising a frame makes it hide other windows; 970* Raising and Lowering:: Raising a frame makes it hide other windows;
971 lowering it makes the others hide it. 971 lowering it makes the others hide it.
972* Frame Configurations:: Saving the state of all frames. 972* Frame Configurations:: Saving the state of all frames.
973* Mouse Tracking:: Getting events that say when the mouse moves. 973* Mouse Tracking:: Getting events that say when the mouse moves.
974* Mouse Position:: Asking where the mouse is, or moving it. 974* Mouse Position:: Asking where the mouse is, or moving it.
975* Pop-Up Menus:: Displaying a menu for the user to select from. 975* Pop-Up Menus:: Displaying a menu for the user to select from.
976* Dialog Boxes:: Displaying a box to ask yes or no. 976* Dialog Boxes:: Displaying a box to ask yes or no.
977* Pointer Shape:: Specifying the shape of the mouse pointer. 977* Pointer Shape:: Specifying the shape of the mouse pointer.
978* Window System Selections::Transferring text to and from other X clients. 978* Window System Selections::Transferring text to and from other X clients.
979* Drag and Drop:: Internals of Drag-and-Drop implementation. 979* Drag and Drop:: Internals of Drag-and-Drop implementation.
980* Color Names:: Getting the definitions of color names. 980* Color Names:: Getting the definitions of color names.
981* Text Terminal Colors:: Defining colors for text-only terminals. 981* Text Terminal Colors:: Defining colors for text-only terminals.
982* Resources:: Getting resource values from the server. 982* Resources:: Getting resource values from the server.
983* Display Feature Testing:: Determining the features of a terminal. 983* Display Feature Testing:: Determining the features of a terminal.
984 984
985Frame Parameters 985Frame Parameters
986 986
987* Parameter Access:: How to change a frame's parameters. 987* Parameter Access:: How to change a frame's parameters.
988* Initial Parameters:: Specifying frame parameters when you make a frame. 988* Initial Parameters:: Specifying frame parameters when you make a frame.
989* Window Frame Parameters:: List of frame parameters for window systems. 989* Window Frame Parameters:: List of frame parameters for window systems.
990* Size and Position:: Changing the size and position of a frame. 990* Size and Position:: Changing the size and position of a frame.
991* Geometry:: Parsing geometry specifications. 991* Geometry:: Parsing geometry specifications.
@@ -1044,7 +1044,7 @@ Text
1044 later use. 1044 later use.
1045* Undo:: Undoing changes to the text of a buffer. 1045* Undo:: Undoing changes to the text of a buffer.
1046* Maintaining Undo:: How to enable and disable undo information. 1046* Maintaining Undo:: How to enable and disable undo information.
1047 How to control how much information is kept. 1047 How to control how much information is kept.
1048* Filling:: Functions for explicit filling. 1048* Filling:: Functions for explicit filling.
1049* Margins:: How to specify margins for filling commands. 1049* Margins:: How to specify margins for filling commands.
1050* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix 1050* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix
@@ -1070,7 +1070,7 @@ The Kill Ring
1070* Kill Functions:: Functions that kill text. 1070* Kill Functions:: Functions that kill text.
1071* Yanking:: How yanking is done. 1071* Yanking:: How yanking is done.
1072* Yank Commands:: Commands that access the kill ring. 1072* Yank Commands:: Commands that access the kill ring.
1073* Low-Level Kill Ring:: Functions and variables for kill ring access. 1073* Low-Level Kill Ring:: Functions and variables for kill ring access.
1074* Internals of Kill Ring:: Variables that hold kill ring data. 1074* Internals of Kill Ring:: Variables that hold kill ring data.
1075 1075
1076Indentation 1076Indentation
@@ -1085,9 +1085,9 @@ Indentation
1085Text Properties 1085Text Properties
1086 1086
1087* Examining Properties:: Looking at the properties of one character. 1087* Examining Properties:: Looking at the properties of one character.
1088* Changing Properties:: Setting the properties of a range of text. 1088* Changing Properties:: Setting the properties of a range of text.
1089* Property Search:: Searching for where a property changes value. 1089* Property Search:: Searching for where a property changes value.
1090* Special Properties:: Particular properties with special meanings. 1090* Special Properties:: Particular properties with special meanings.
1091* Format Properties:: Properties for representing formatting of text. 1091* Format Properties:: Properties for representing formatting of text.
1092* Sticky Properties:: How inserted text gets properties from 1092* Sticky Properties:: How inserted text gets properties from
1093 neighboring text. 1093 neighboring text.
@@ -1097,8 +1097,8 @@ Text Properties
1097 do something when you click on them. 1097 do something when you click on them.
1098* Fields:: The @code{field} property defines 1098* Fields:: The @code{field} property defines
1099 fields within the buffer. 1099 fields within the buffer.
1100* Not Intervals:: Why text properties do not use 1100* Not Intervals:: Why text properties do not use
1101 Lisp-visible text intervals. 1101 Lisp-visible text intervals.
1102 1102
1103Non-@acronym{ASCII} Characters 1103Non-@acronym{ASCII} Characters
1104 1104
@@ -1141,7 +1141,7 @@ Searching and Matching
1141* POSIX Regexps:: Searching POSIX-style for the longest match. 1141* POSIX Regexps:: Searching POSIX-style for the longest match.
1142* Match Data:: Finding out which part of the text matched, 1142* Match Data:: Finding out which part of the text matched,
1143 after a string or regexp search. 1143 after a string or regexp search.
1144* Search and Replace:: Commands that loop, searching and replacing. 1144* Search and Replace:: Commands that loop, searching and replacing.
1145* Standard Regexps:: Useful regexps for finding sentences, pages,... 1145* Standard Regexps:: Useful regexps for finding sentences, pages,...
1146 1146
1147Regular Expressions 1147Regular Expressions
@@ -1158,9 +1158,9 @@ Syntax of Regular Expressions
1158 1158
1159The Match Data 1159The Match Data
1160 1160
1161* Replacing Match:: Replacing a substring that was matched. 1161* Replacing Match:: Replacing a substring that was matched.
1162* Simple Match Data:: Accessing single items of match data, 1162* Simple Match Data:: Accessing single items of match data,
1163 such as where a particular subexpression started. 1163 such as where a particular subexpression started.
1164* Entire Match Data:: Accessing the entire match data at once, as a list. 1164* Entire Match Data:: Accessing the entire match data at once, as a list.
1165* Saving Match Data:: Saving and restoring the match data. 1165* Saving Match Data:: Saving and restoring the match data.
1166 1166
@@ -1170,7 +1170,7 @@ Syntax Tables
1170* Syntax Descriptors:: How characters are classified. 1170* Syntax Descriptors:: How characters are classified.
1171* Syntax Table Functions:: How to create, examine and alter syntax tables. 1171* Syntax Table Functions:: How to create, examine and alter syntax tables.
1172* Syntax Properties:: Overriding syntax with text properties. 1172* Syntax Properties:: Overriding syntax with text properties.
1173* Motion and Syntax:: Moving over characters with certain syntaxes. 1173* Motion and Syntax:: Moving over characters with certain syntaxes.
1174* Parsing Expressions:: Parsing balanced expressions 1174* Parsing Expressions:: Parsing balanced expressions
1175 using the syntax table. 1175 using the syntax table.
1176* Standard Syntax Tables:: Syntax tables used by various major modes. 1176* Standard Syntax Tables:: Syntax tables used by various major modes.
@@ -1259,10 +1259,10 @@ Emacs Display
1259* Invisible Text:: Hiding part of the buffer text. 1259* Invisible Text:: Hiding part of the buffer text.
1260* Selective Display:: Hiding part of the buffer text (the old way). 1260* Selective Display:: Hiding part of the buffer text (the old way).
1261* Temporary Displays:: Displays that go away automatically. 1261* Temporary Displays:: Displays that go away automatically.
1262* Overlays:: Use overlays to highlight parts of the buffer. 1262* Overlays:: Use overlays to highlight parts of the buffer.
1263* Width:: How wide a character or string is on the screen. 1263* Width:: How wide a character or string is on the screen.
1264* Line Height:: Controlling the height of lines. 1264* Line Height:: Controlling the height of lines.
1265* Faces:: A face defines a graphics style 1265* Faces:: A face defines a graphics style
1266 for text characters: font, colors, etc. 1266 for text characters: font, colors, etc.
1267* Fringes:: Controlling window fringes. 1267* Fringes:: Controlling window fringes.
1268* Scroll Bars:: Controlling vertical scroll bars. 1268* Scroll Bars:: Controlling vertical scroll bars.
@@ -1271,9 +1271,9 @@ Emacs Display
1271* Buttons:: Adding clickable buttons to Emacs buffers. 1271* Buttons:: Adding clickable buttons to Emacs buffers.
1272* Abstract Display:: Emacs' Widget for Object Collections. 1272* Abstract Display:: Emacs' Widget for Object Collections.
1273* Blinking:: How Emacs shows the matching open parenthesis. 1273* Blinking:: How Emacs shows the matching open parenthesis.
1274* Usual Display:: The usual conventions for displaying 1274* Usual Display:: The usual conventions for displaying
1275 nonprinting chars. 1275 nonprinting chars.
1276* Display Tables:: How to specify other conventions. 1276* Display Tables:: How to specify other conventions.
1277* Beeping:: Audible signal to the user. 1277* Beeping:: Audible signal to the user.
1278* Window Systems:: Which window system is being used. 1278* Window Systems:: Which window system is being used.
1279 1279
@@ -1295,7 +1295,7 @@ Overlays
1295 1295
1296* Managing Overlays:: Creating and moving overlays. 1296* Managing Overlays:: Creating and moving overlays.
1297* Overlay Properties:: How to read and set properties. 1297* Overlay Properties:: How to read and set properties.
1298 What properties do to the screen display. 1298 What properties do to the screen display.
1299* Finding Overlays:: Searching for overlays. 1299* Finding Overlays:: Searching for overlays.
1300 1300
1301Faces 1301Faces
@@ -1375,14 +1375,14 @@ Operating System Interface
1375* Getting Out:: How exiting works (permanent or temporary). 1375* Getting Out:: How exiting works (permanent or temporary).
1376* System Environment:: Distinguish the name and kind of system. 1376* System Environment:: Distinguish the name and kind of system.
1377* User Identification:: Finding the name and user id of the user. 1377* User Identification:: Finding the name and user id of the user.
1378* Time of Day:: Getting the current time. 1378* Time of Day:: Getting the current time.
1379* Time Conversion:: Converting a time from numeric form to 1379* Time Conversion:: Converting a time from numeric form to
1380 calendrical data and vice versa. 1380 calendrical data and vice versa.
1381* Time Parsing:: Converting a time from numeric form to text 1381* Time Parsing:: Converting a time from numeric form to text
1382 and vice versa. 1382 and vice versa.
1383* Processor Run Time:: Getting the run time used by Emacs. 1383* Processor Run Time:: Getting the run time used by Emacs.
1384* Time Calculations:: Adding, subtracting, comparing times, etc. 1384* Time Calculations:: Adding, subtracting, comparing times, etc.
1385* Timers:: Setting a timer to call a function at a 1385* Timers:: Setting a timer to call a function at a
1386 certain time. 1386 certain time.
1387* Idle Timers:: Setting a timer to call a function when Emacs has 1387* Idle Timers:: Setting a timer to call a function when Emacs has
1388 been idle for a certain length of time. 1388 been idle for a certain length of time.
@@ -1409,8 +1409,8 @@ Getting Out of Emacs
1409 1409
1410Terminal Input 1410Terminal Input
1411 1411
1412* Input Modes:: Options for how input is processed. 1412* Input Modes:: Options for how input is processed.
1413* Recording Input:: Saving histories of recent or all input events. 1413* Recording Input:: Saving histories of recent or all input events.
1414 1414
1415Tips and Conventions 1415Tips and Conventions
1416 1416
@@ -1420,7 +1420,7 @@ Tips and Conventions
1420* Compilation Tips:: Making compiled code run fast. 1420* Compilation Tips:: Making compiled code run fast.
1421* Warning Tips:: Turning off compiler warnings. 1421* Warning Tips:: Turning off compiler warnings.
1422* Documentation Tips:: Writing readable documentation strings. 1422* Documentation Tips:: Writing readable documentation strings.
1423* Comment Tips:: Conventions for writing comments. 1423* Comment Tips:: Conventions for writing comments.
1424* Library Headers:: Standard headers for library packages. 1424* Library Headers:: Standard headers for library packages.
1425 1425
1426GNU Emacs Internals 1426GNU Emacs Internals
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi
index e9ef1999589..b1b1747d86c 100644
--- a/doc/lispref/errors.texi
+++ b/doc/lispref/errors.texi
@@ -63,11 +63,11 @@ sequence or buffer.@*
63@xref{Lisp and Coding Systems}. 63@xref{Lisp and Coding Systems}.
64 64
65@item cyclic-function-indirection 65@item cyclic-function-indirection
66@code{"Symbol's chain of function indirections\@* contains a loop"}@* 66@code{"Symbol's chain of function indirections contains a loop"}@*
67@xref{Function Indirection}. 67@xref{Function Indirection}.
68 68
69@item cyclic-variable-indirection 69@item cyclic-variable-indirection
70@code{"Symbol's chain of variable indirections\@* contains a loop"}@* 70@code{"Symbol's chain of variable indirections contains a loop"}@*
71@xref{Variable Aliases}. 71@xref{Variable Aliases}.
72 72
73@item end-of-buffer 73@item end-of-buffer
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
index f0d710f9775..6ed38f45dc8 100644
--- a/doc/lispref/eval.texi
+++ b/doc/lispref/eval.texi
@@ -110,7 +110,7 @@ forms.
110* Symbol Forms:: Symbols evaluate as variables. 110* Symbol Forms:: Symbols evaluate as variables.
111* Classifying Lists:: How to distinguish various sorts of list forms. 111* Classifying Lists:: How to distinguish various sorts of list forms.
112* Function Indirection:: When a symbol appears as the car of a list, 112* Function Indirection:: When a symbol appears as the car of a list,
113 we find the real function via the symbol. 113 we find the real function via the symbol.
114* Function Forms:: Forms that call functions. 114* Function Forms:: Forms that call functions.
115* Macro Forms:: Forms that call macros. 115* Macro Forms:: Forms that call macros.
116* Special Forms:: "Special forms" are idiosyncratic primitives, 116* Special Forms:: "Special forms" are idiosyncratic primitives,
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 699a33ff22b..abdd2814b56 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/files 7@setfilename ../../info/files
7@node Files, Backups and Auto-Saving, Documentation, Top 8@node Files, Backups and Auto-Saving, Documentation, Top
@@ -38,9 +39,9 @@ to locale @code{system-message-locale}, and decoded using coding system
38* Changing Files:: Renaming files, changing protection, etc. 39* Changing Files:: Renaming files, changing protection, etc.
39* File Names:: Decomposing and expanding file names. 40* File Names:: Decomposing and expanding file names.
40* Contents of Directories:: Getting a list of the files in a directory. 41* Contents of Directories:: Getting a list of the files in a directory.
41* Create/Delete Dirs:: Creating and Deleting Directories. 42* Create/Delete Dirs:: Creating and Deleting Directories.
42* Magic File Names:: Defining "magic" special handling 43* Magic File Names:: Defining "magic" special handling
43 for certain file names. 44 for certain file names.
44* Format Conversion:: Conversion to and from various file formats. 45* Format Conversion:: Conversion to and from various file formats.
45@end menu 46@end menu
46 47
@@ -755,7 +756,7 @@ otherwise noted.
755@menu 756@menu
756* Testing Accessibility:: Is a given file readable? Writable? 757* Testing Accessibility:: Is a given file readable? Writable?
757* Kinds of Files:: Is it a directory? A symbolic link? 758* Kinds of Files:: Is it a directory? A symbolic link?
758* Truenames:: Eliminating symbolic links from a file name. 759* Truenames:: Eliminating symbolic links from a file name.
759* File Attributes:: How large is it? Any other names? Etc. 760* File Attributes:: How large is it? Any other names? Etc.
760* Locating Files:: How to find a file in standard places. 761* Locating Files:: How to find a file in standard places.
761@end menu 762@end menu
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 9994210bd17..7dfe3242c5d 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -85,26 +85,26 @@ is the same as for @code{framep} above.
85* Frame Parameters:: Controlling frame size, position, font, etc. 85* Frame Parameters:: Controlling frame size, position, font, etc.
86* Terminal Parameters:: Parameters common for all frames on terminal. 86* Terminal Parameters:: Parameters common for all frames on terminal.
87* Frame Titles:: Automatic updating of frame titles. 87* Frame Titles:: Automatic updating of frame titles.
88* Deleting Frames:: Frames last until explicitly deleted. 88* Deleting Frames:: Frames last until explicitly deleted.
89* Finding All Frames:: How to examine all existing frames. 89* Finding All Frames:: How to examine all existing frames.
90* Frames and Windows:: A frame contains windows; 90* Frames and Windows:: A frame contains windows;
91 display of text always works through windows. 91 display of text always works through windows.
92* Minibuffers and Frames:: How a frame finds the minibuffer to use. 92* Minibuffers and Frames:: How a frame finds the minibuffer to use.
93* Input Focus:: Specifying the selected frame. 93* Input Focus:: Specifying the selected frame.
94* Visibility of Frames:: Frames may be visible or invisible, or icons. 94* Visibility of Frames:: Frames may be visible or invisible, or icons.
95* Raising and Lowering:: Raising a frame makes it hide other windows; 95* Raising and Lowering:: Raising a frame makes it hide other windows;
96 lowering it makes the others hide it. 96 lowering it makes the others hide it.
97* Frame Configurations:: Saving the state of all frames. 97* Frame Configurations:: Saving the state of all frames.
98* Mouse Tracking:: Getting events that say when the mouse moves. 98* Mouse Tracking:: Getting events that say when the mouse moves.
99* Mouse Position:: Asking where the mouse is, or moving it. 99* Mouse Position:: Asking where the mouse is, or moving it.
100* Pop-Up Menus:: Displaying a menu for the user to select from. 100* Pop-Up Menus:: Displaying a menu for the user to select from.
101* Dialog Boxes:: Displaying a box to ask yes or no. 101* Dialog Boxes:: Displaying a box to ask yes or no.
102* Pointer Shape:: Specifying the shape of the mouse pointer. 102* Pointer Shape:: Specifying the shape of the mouse pointer.
103* Window System Selections:: Transferring text to and from other X clients. 103* Window System Selections:: Transferring text to and from other X clients.
104* Drag and Drop:: Internals of Drag-and-Drop implementation. 104* Drag and Drop:: Internals of Drag-and-Drop implementation.
105* Color Names:: Getting the definitions of color names. 105* Color Names:: Getting the definitions of color names.
106* Text Terminal Colors:: Defining colors for text-only terminals. 106* Text Terminal Colors:: Defining colors for text-only terminals.
107* Resources:: Getting resource values from the server. 107* Resources:: Getting resource values from the server.
108* Display Feature Testing:: Determining the features of a terminal. 108* Display Feature Testing:: Determining the features of a terminal.
109@end menu 109@end menu
110 110
@@ -343,7 +343,7 @@ variables. @xref{Frame-Local Variables}.
343 343
344@menu 344@menu
345* Parameter Access:: How to change a frame's parameters. 345* Parameter Access:: How to change a frame's parameters.
346* Initial Parameters:: Specifying frame parameters when you make a frame. 346* Initial Parameters:: Specifying frame parameters when you make a frame.
347* Window Frame Parameters:: List of frame parameters for window systems. 347* Window Frame Parameters:: List of frame parameters for window systems.
348* Size and Position:: Changing the size and position of a frame. 348* Size and Position:: Changing the size and position of a frame.
349* Geometry:: Parsing geometry specifications. 349* Geometry:: Parsing geometry specifications.
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 37e8726592a..6f3fd63013c 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/functions 7@setfilename ../../info/functions
7@node Functions, Macros, Variables, Top 8@node Functions, Macros, Variables, Top
@@ -22,7 +23,7 @@ define them.
22* Function Cells:: Accessing or setting the function definition 23* Function Cells:: Accessing or setting the function definition
23 of a symbol. 24 of a symbol.
24* Obsolete Functions:: Declaring functions obsolete. 25* Obsolete Functions:: Declaring functions obsolete.
25* Inline Functions:: Defining functions that the compiler will open code. 26* Inline Functions:: Defining functions that the compiler will open code.
26* Declaring Functions:: Telling the compiler that a function is defined. 27* Declaring Functions:: Telling the compiler that a function is defined.
27* Function Safety:: Determining whether a function is safe to call. 28* Function Safety:: Determining whether a function is safe to call.
28* Related Topics:: Cross-references to specific Lisp primitives 29* Related Topics:: Cross-references to specific Lisp primitives
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index 6b076d8ee3a..2420e777fe8 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -518,8 +518,7 @@ If all args return nil, return nil.
518@end group 518@end group
519@group 519@group
520usage: (or CONDITIONS ...) */) 520usage: (or CONDITIONS ...) */)
521 (args) 521 (Lisp_Object args)
522 Lisp_Object args;
523@{ 522@{
524 register Lisp_Object val = Qnil; 523 register Lisp_Object val = Qnil;
525 struct gcpro gcpro1; 524 struct gcpro gcpro1;
@@ -618,15 +617,15 @@ All the usual rules for documentation strings in Lisp code
618too. 617too.
619@end table 618@end table
620 619
621 After the call to the @code{DEFUN} macro, you must write the argument 620 After the call to the @code{DEFUN} macro, you must write the
622name list that every C function must have, followed by ordinary C 621argument list that every C function must have, including the types for
623declarations for the arguments. For a function with a fixed maximum 622the arguments. For a function with a fixed maximum number of
624number of arguments, declare a C argument for each Lisp argument, and 623arguments, declare a C argument for each Lisp argument, and give them
625give them all type @code{Lisp_Object}. When a Lisp function has no 624all type @code{Lisp_Object}. When a Lisp function has no upper limit
626upper limit on the number of arguments, its implementation in C actually 625on the number of arguments, its implementation in C actually receives
627receives exactly two arguments: the first is the number of Lisp 626exactly two arguments: the first is the number of Lisp arguments, and
628arguments, and the second is the address of a block containing their 627the second is the address of a block containing their values. They
629values. They have types @code{int} and @w{@code{Lisp_Object *}}. 628have types @code{int} and @w{@code{Lisp_Object *}}.
630 629
631@cindex @code{GCPRO} and @code{UNGCPRO} 630@cindex @code{GCPRO} and @code{UNGCPRO}
632@cindex protect C variables from garbage collection 631@cindex protect C variables from garbage collection
@@ -761,22 +760,22 @@ If they are on the border between WINDOW and its right sibling,\n\
761@group 760@group
762 switch (coordinates_in_window (XWINDOW (window), &x, &y)) 761 switch (coordinates_in_window (XWINDOW (window), &x, &y))
763 @{ 762 @{
764 case 0: /* NOT in window at all. */ 763 case 0: /* NOT in window at all. */
765 return Qnil; 764 return Qnil;
766@end group 765@end group
767 766
768@group 767@group
769 case 1: /* In text part of window. */ 768 case 1: /* In text part of window. */
770 return Fcons (make_number (x), make_number (y)); 769 return Fcons (make_number (x), make_number (y));
771@end group 770@end group
772 771
773@group 772@group
774 case 2: /* In mode line of window. */ 773 case 2: /* In mode line of window. */
775 return Qmode_line; 774 return Qmode_line;
776@end group 775@end group
777 776
778@group 777@group
779 case 3: /* On right border of window. */ 778 case 3: /* On right border of window. */
780 return Qvertical_line; 779 return Qvertical_line;
781@end group 780@end group
782 781
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index d886b990dd8..e1052a9912e 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/keymaps 7@setfilename ../../info/keymaps
7@node Keymaps, Modes, Command Loop, Top 8@node Keymaps, Modes, Command Loop, Top
@@ -16,19 +17,19 @@ used to look up the next input event; this continues until a command
16is found. The whole process is called @dfn{key lookup}. 17is found. The whole process is called @dfn{key lookup}.
17 18
18@menu 19@menu
19* Key Sequences:: Key sequences as Lisp objects. 20* Key Sequences:: Key sequences as Lisp objects.
20* Keymap Basics:: Basic concepts of keymaps. 21* Keymap Basics:: Basic concepts of keymaps.
21* Format of Keymaps:: What a keymap looks like as a Lisp object. 22* Format of Keymaps:: What a keymap looks like as a Lisp object.
22* Creating Keymaps:: Functions to create and copy keymaps. 23* Creating Keymaps:: Functions to create and copy keymaps.
23* Inheritance and Keymaps:: How one keymap can inherit the bindings 24* Inheritance and Keymaps:: How one keymap can inherit the bindings
24 of another keymap. 25 of another keymap.
25* Prefix Keys:: Defining a key with a keymap as its definition. 26* Prefix Keys:: Defining a key with a keymap as its definition.
26* Active Keymaps:: How Emacs searches the active keymaps 27* Active Keymaps:: How Emacs searches the active keymaps
27 for a key binding. 28 for a key binding.
28* Searching Keymaps:: A pseudo-Lisp summary of searching active maps. 29* Searching Keymaps:: A pseudo-Lisp summary of searching active maps.
29* Controlling Active Maps:: Each buffer has a local keymap 30* Controlling Active Maps:: Each buffer has a local keymap
30 to override the standard (global) bindings. 31 to override the standard (global) bindings.
31 A minor mode can also override them. 32 A minor mode can also override them.
32* Key Lookup:: Finding a key's binding in one keymap. 33* Key Lookup:: Finding a key's binding in one keymap.
33* Functions for Key Lookup:: How to request key lookup. 34* Functions for Key Lookup:: How to request key lookup.
34* Changing Key Bindings:: Redefining a key in a keymap. 35* Changing Key Bindings:: Redefining a key in a keymap.
@@ -36,7 +37,7 @@ is found. The whole process is called @dfn{key lookup}.
36* Translation Keymaps:: Keymaps for translating sequences of events. 37* Translation Keymaps:: Keymaps for translating sequences of events.
37* Key Binding Commands:: Interactive interfaces for redefining keys. 38* Key Binding Commands:: Interactive interfaces for redefining keys.
38* Scanning Keymaps:: Looking through all keymaps, for printing help. 39* Scanning Keymaps:: Looking through all keymaps, for printing help.
39* Menu Keymaps:: Defining a menu as a keymap. 40* Menu Keymaps:: Defining a menu as a keymap.
40@end menu 41@end menu
41 42
42@node Key Sequences 43@node Key Sequences
@@ -1959,11 +1960,11 @@ is active for the next input event, that activates the keyboard menu
1959feature. 1960feature.
1960 1961
1961@menu 1962@menu
1962* Defining Menus:: How to make a keymap that defines a menu. 1963* Defining Menus:: How to make a keymap that defines a menu.
1963* Mouse Menus:: How users actuate the menu with the mouse. 1964* Mouse Menus:: How users actuate the menu with the mouse.
1964* Keyboard Menus:: How users actuate the menu with the keyboard. 1965* Keyboard Menus:: How users actuate the menu with the keyboard.
1965* Menu Example:: Making a simple menu. 1966* Menu Example:: Making a simple menu.
1966* Menu Bar:: How to customize the menu bar. 1967* Menu Bar:: How to customize the menu bar.
1967* Tool Bar:: A tool bar is a row of images. 1968* Tool Bar:: A tool bar is a row of images.
1968* Modifying Menus:: How to add new items to a menu. 1969* Modifying Menus:: How to add new items to a menu.
1969@end menu 1970@end menu
@@ -2413,10 +2414,10 @@ Next we define the menu items:
2413@smallexample 2414@smallexample
2414(define-key menu-bar-replace-menu [tags-repl-continue] 2415(define-key menu-bar-replace-menu [tags-repl-continue]
2415 '(menu-item "Continue Replace" tags-loop-continue 2416 '(menu-item "Continue Replace" tags-loop-continue
2416 :help "Continue last tags replace operation")) 2417 :help "Continue last tags replace operation"))
2417(define-key menu-bar-replace-menu [tags-repl] 2418(define-key menu-bar-replace-menu [tags-repl]
2418 '(menu-item "Replace in tagged files" tags-query-replace 2419 '(menu-item "Replace in tagged files" tags-query-replace
2419 :help "Interactively replace a regexp in all tagged files")) 2420 :help "Interactively replace a regexp in all tagged files"))
2420(define-key menu-bar-replace-menu [separator-replace-tags] 2421(define-key menu-bar-replace-menu [separator-replace-tags]
2421 '(menu-item "--")) 2422 '(menu-item "--"))
2422;; @r{@dots{}} 2423;; @r{@dots{}}
@@ -2656,8 +2657,8 @@ using an indirection through @code{tool-bar-map}.
2656By default, the global map binds @code{[tool-bar]} as follows: 2657By default, the global map binds @code{[tool-bar]} as follows:
2657@example 2658@example
2658(global-set-key [tool-bar] 2659(global-set-key [tool-bar]
2659 '(menu-item "tool bar" ignore 2660 '(menu-item "tool bar" ignore
2660 :filter (lambda (ignore) tool-bar-map))) 2661 :filter (lambda (ignore) tool-bar-map)))
2661@end example 2662@end example
2662@noindent 2663@noindent
2663Thus the tool bar map is derived dynamically from the value of variable 2664Thus the tool bar map is derived dynamically from the value of variable
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 7e3240d72de..bbdd67fc3a5 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/loading 7@setfilename ../../info/loading
7@node Loading, Byte Compilation, Customization, Top 8@node Loading, Byte Compilation, Customization, Top
@@ -43,9 +44,9 @@ containing Lisp code.
43* Repeated Loading:: Precautions about loading a file twice. 44* Repeated Loading:: Precautions about loading a file twice.
44* Named Features:: Loading a library if it isn't already loaded. 45* Named Features:: Loading a library if it isn't already loaded.
45* Where Defined:: Finding which file defined a certain symbol. 46* Where Defined:: Finding which file defined a certain symbol.
46* Unloading:: How to "unload" a library that was loaded. 47* Unloading:: How to "unload" a library that was loaded.
47* Hooks for Loading:: Providing code to be run when 48* Hooks for Loading:: Providing code to be run when
48 particular libraries are loaded. 49 particular libraries are loaded.
49@end menu 50@end menu
50 51
51@node How Programs Do Loading 52@node How Programs Do Loading
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index bfe73ce27f4..3588704b054 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/minibuf 7@setfilename ../../info/minibuf
7@node Minibuffers, Command Loop, Read and Print, Top 8@node Minibuffers, Command Loop, Read and Print, Top
@@ -22,13 +23,13 @@ argument.
22* Intro to Minibuffers:: Basic information about minibuffers. 23* Intro to Minibuffers:: Basic information about minibuffers.
23* Text from Minibuffer:: How to read a straight text string. 24* Text from Minibuffer:: How to read a straight text string.
24* Object from Minibuffer:: How to read a Lisp object or expression. 25* Object from Minibuffer:: How to read a Lisp object or expression.
25* Minibuffer History:: Recording previous minibuffer inputs 26* Minibuffer History:: Recording previous minibuffer inputs
26 so the user can reuse them. 27 so the user can reuse them.
27* Initial Input:: Specifying initial contents for the minibuffer. 28* Initial Input:: Specifying initial contents for the minibuffer.
28* Completion:: How to invoke and customize completion. 29* Completion:: How to invoke and customize completion.
29* Yes-or-No Queries:: Asking a question with a simple answer. 30* Yes-or-No Queries:: Asking a question with a simple answer.
30* Multiple Queries:: Asking a series of similar questions. 31* Multiple Queries:: Asking a series of similar questions.
31* Reading a Password:: Reading a password from the terminal. 32* Reading a Password:: Reading a password from the terminal.
32* Minibuffer Commands:: Commands used as key bindings in minibuffers. 33* Minibuffer Commands:: Commands used as key bindings in minibuffers.
33* Minibuffer Contents:: How such commands access the minibuffer text. 34* Minibuffer Contents:: How such commands access the minibuffer text.
34* Minibuffer Windows:: Operating on the special minibuffer windows. 35* Minibuffer Windows:: Operating on the special minibuffer windows.
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index e5eb90863af..858226ecdfc 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1342,7 +1342,7 @@ or like this, using @code{add-to-list} (@pxref{List Variables}):
1342 Global minor modes distributed with Emacs should if possible support 1342 Global minor modes distributed with Emacs should if possible support
1343enabling and disabling via Custom (@pxref{Customization}). To do this, 1343enabling and disabling via Custom (@pxref{Customization}). To do this,
1344the first step is to define the mode variable with @code{defcustom}, and 1344the first step is to define the mode variable with @code{defcustom}, and
1345specify @code{:type boolean}. 1345specify @code{:type 'boolean}.
1346 1346
1347 If just setting the variable is not sufficient to enable the mode, you 1347 If just setting the variable is not sufficient to enable the mode, you
1348should also specify a @code{:set} method which enables the mode by 1348should also specify a @code{:set} method which enables the mode by
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index fdec0448e02..62b4796350e 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -21,10 +21,10 @@ exact; they have a fixed, limited amount of precision.
21 21
22@menu 22@menu
23* Integer Basics:: Representation and range of integers. 23* Integer Basics:: Representation and range of integers.
24* Float Basics:: Representation and range of floating point. 24* Float Basics:: Representation and range of floating point.
25* Predicates on Numbers:: Testing for numbers. 25* Predicates on Numbers:: Testing for numbers.
26* Comparison of Numbers:: Equality and inequality predicates. 26* Comparison of Numbers:: Equality and inequality predicates.
27* Numeric Conversions:: Converting float to integer and vice versa. 27* Numeric Conversions:: Converting float to integer and vice versa.
28* Arithmetic Operations:: How to add, subtract, multiply and divide. 28* Arithmetic Operations:: How to add, subtract, multiply and divide.
29* Rounding Operations:: Explicitly rounding floating point numbers. 29* Rounding Operations:: Explicitly rounding floating point numbers.
30* Bitwise Operations:: Logical and, or, not, shifting. 30* Bitwise Operations:: Logical and, or, not, shifting.
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 9fbc51ae12f..4f37eb10b7a 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/os 7@setfilename ../../info/os
7@node System Interface, Antinews, Display, Top 8@node System Interface, Antinews, Display, Top
@@ -20,14 +21,14 @@ terminal and the screen.
20* Getting Out:: How exiting works (permanent or temporary). 21* Getting Out:: How exiting works (permanent or temporary).
21* System Environment:: Distinguish the name and kind of system. 22* System Environment:: Distinguish the name and kind of system.
22* User Identification:: Finding the name and user id of the user. 23* User Identification:: Finding the name and user id of the user.
23* Time of Day:: Getting the current time. 24* Time of Day:: Getting the current time.
24* Time Conversion:: Converting a time from numeric form to 25* Time Conversion:: Converting a time from numeric form to
25 calendrical data and vice versa. 26 calendrical data and vice versa.
26* Time Parsing:: Converting a time from numeric form to text 27* Time Parsing:: Converting a time from numeric form to text
27 and vice versa. 28 and vice versa.
28* Processor Run Time:: Getting the run time used by Emacs. 29* Processor Run Time:: Getting the run time used by Emacs.
29* Time Calculations:: Adding, subtracting, comparing times, etc. 30* Time Calculations:: Adding, subtracting, comparing times, etc.
30* Timers:: Setting a timer to call a function at a certain time. 31* Timers:: Setting a timer to call a function at a certain time.
31* Idle Timers:: Setting a timer to call a function when Emacs has 32* Idle Timers:: Setting a timer to call a function when Emacs has
32 been idle for a certain length of time. 33 been idle for a certain length of time.
33* Terminal Input:: Accessing and recording terminal input. 34* Terminal Input:: Accessing and recording terminal input.
@@ -1815,8 +1816,8 @@ manipulating terminal input. See @ref{Display}, for related
1815functions. 1816functions.
1816 1817
1817@menu 1818@menu
1818* Input Modes:: Options for how input is processed. 1819* Input Modes:: Options for how input is processed.
1819* Recording Input:: Saving histories of recent or all input events. 1820* Recording Input:: Saving histories of recent or all input events.
1820@end menu 1821@end menu
1821 1822
1822@node Input Modes 1823@node Input Modes
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 85628bdfac6..1a4a766c81c 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/processes 7@setfilename ../../info/processes
7@node Processes, Display, Abbrevs, Top 8@node Processes, Display, Abbrevs, Top
@@ -51,13 +52,13 @@ Processes}.
51* Sentinels:: Sentinels run when process run-status changes. 52* Sentinels:: Sentinels run when process run-status changes.
52* Query Before Exit:: Whether to query if exiting will kill a process. 53* Query Before Exit:: Whether to query if exiting will kill a process.
53* System Processes:: Accessing other processes running on your system. 54* System Processes:: Accessing other processes running on your system.
54* Transaction Queues:: Transaction-based communication with subprocesses. 55* Transaction Queues:: Transaction-based communication with subprocesses.
55* Network:: Opening network connections. 56* Network:: Opening network connections.
56* Network Servers:: Network servers let Emacs accept net connections. 57* Network Servers:: Network servers let Emacs accept net connections.
57* Datagrams:: UDP network connections. 58* Datagrams:: UDP network connections.
58* Low-Level Network:: Lower-level but more general function 59* Low-Level Network:: Lower-level but more general function
59 to create connections and servers. 60 to create connections and servers.
60* Misc Network:: Additional relevant functions for network connections. 61* Misc Network:: Additional relevant functions for net connections.
61* Serial Ports:: Communicating with serial ports. 62* Serial Ports:: Communicating with serial ports.
62* Byte Packing:: Using bindat to pack and unpack binary data. 63* Byte Packing:: Using bindat to pack and unpack binary data.
63@end menu 64@end menu
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 722f76cdd7f..b4b4c23b1ed 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/searching 7@setfilename ../../info/searching
7@node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top 8@node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top
@@ -22,7 +23,7 @@ portions of it.
22* POSIX Regexps:: Searching POSIX-style for the longest match. 23* POSIX Regexps:: Searching POSIX-style for the longest match.
23* Match Data:: Finding out which part of the text matched, 24* Match Data:: Finding out which part of the text matched,
24 after a string or regexp search. 25 after a string or regexp search.
25* Search and Replace:: Commands that loop, searching and replacing. 26* Search and Replace:: Commands that loop, searching and replacing.
26* Standard Regexps:: Useful regexps for finding sentences, pages,... 27* Standard Regexps:: Useful regexps for finding sentences, pages,...
27@end menu 28@end menu
28 29
@@ -609,8 +610,8 @@ maximum.
609For example, @samp{c[ad]\@{1,2\@}r} matches the strings @samp{car}, 610For example, @samp{c[ad]\@{1,2\@}r} matches the strings @samp{car},
610@samp{cdr}, @samp{caar}, @samp{cadr}, @samp{cdar}, and @samp{cddr}, and 611@samp{cdr}, @samp{caar}, @samp{cadr}, @samp{cdar}, and @samp{cddr}, and
611nothing else.@* 612nothing else.@*
612@samp{\@{0,1\@}} or @samp{\@{,1\@}} is equivalent to @samp{?}. @* 613@samp{\@{0,1\@}} or @samp{\@{,1\@}} is equivalent to @samp{?}.@*
613@samp{\@{0,\@}} or @samp{\@{,\@}} is equivalent to @samp{*}. @* 614@samp{\@{0,\@}} or @samp{\@{,\@}} is equivalent to @samp{*}.@*
614@samp{\@{1,\@}} is equivalent to @samp{+}. 615@samp{\@{1,\@}} is equivalent to @samp{+}.
615 616
616@item \( @dots{} \) 617@item \( @dots{} \)
@@ -1213,9 +1214,9 @@ can't avoid another intervening search, you must save and restore the
1213match data around it, to prevent it from being overwritten. 1214match data around it, to prevent it from being overwritten.
1214 1215
1215@menu 1216@menu
1216* Replacing Match:: Replacing a substring that was matched. 1217* Replacing Match:: Replacing a substring that was matched.
1217* Simple Match Data:: Accessing single items of match data, 1218* Simple Match Data:: Accessing single items of match data,
1218 such as where a particular subexpression started. 1219 such as where a particular subexpression started.
1219* Entire Match Data:: Accessing the entire match data at once, as a list. 1220* Entire Match Data:: Accessing the entire match data at once, as a list.
1220* Saving Match Data:: Saving and restoring the match data. 1221* Saving Match Data:: Saving and restoring the match data.
1221@end menu 1222@end menu
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index f55c93abf31..a73c4790b96 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/sequences 7@setfilename ../../info/sequences
7@node Sequences Arrays Vectors, Hash Tables, Lists, Top 8@node Sequences Arrays Vectors, Hash Tables, Lists, Top
@@ -669,13 +670,13 @@ For example, here is how to examine the elements of the syntax table:
669(let (accumulator) 670(let (accumulator)
670 (map-char-table 671 (map-char-table
671 #'(lambda (key value) 672 #'(lambda (key value)
672 (setq accumulator 673 (setq accumulator
673 (cons (list 674 (cons (list
674 (if (consp key) 675 (if (consp key)
675 (list (car key) (cdr key)) 676 (list (car key) (cdr key))
676 key) 677 key)
677 value) 678 value)
678 accumulator))) 679 accumulator)))
679 (syntax-table)) 680 (syntax-table))
680 accumulator) 681 accumulator)
681@result{} 682@result{}
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 34613a823ba..1128ca87d8a 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/strings 7@setfilename ../../info/strings
7@node Strings and Characters, Lists, Numbers, Top 8@node Strings and Characters, Lists, Numbers, Top
@@ -31,7 +32,7 @@ keyboard character events.
31* String Conversion:: Converting to and from characters and strings. 32* String Conversion:: Converting to and from characters and strings.
32* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. 33* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}.
33* Case Conversion:: Case conversion functions. 34* Case Conversion:: Case conversion functions.
34* Case Tables:: Customizing case conversion. 35* Case Tables:: Customizing case conversion.
35@end menu 36@end menu
36 37
37@node String Basics 38@node String Basics
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index a3d5631baf8..9add9b76e79 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/syntax 7@setfilename ../../info/syntax
7@node Syntax Tables, Abbrevs, Searching and Matching, Top 8@node Syntax Tables, Abbrevs, Searching and Matching, Top
@@ -23,7 +24,7 @@ functions in this chapter.
23* Desc: Syntax Descriptors. How characters are classified. 24* Desc: Syntax Descriptors. How characters are classified.
24* Syntax Table Functions:: How to create, examine and alter syntax tables. 25* Syntax Table Functions:: How to create, examine and alter syntax tables.
25* Syntax Properties:: Overriding syntax with text properties. 26* Syntax Properties:: Overriding syntax with text properties.
26* Motion and Syntax:: Moving over characters with certain syntaxes. 27* Motion and Syntax:: Moving over characters with certain syntaxes.
27* Parsing Expressions:: Parsing balanced expressions 28* Parsing Expressions:: Parsing balanced expressions
28 using the syntax table. 29 using the syntax table.
29* Standard Syntax Tables:: Syntax tables used by various major modes. 30* Standard Syntax Tables:: Syntax tables used by various major modes.
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 2eff8b109a0..f52d1db5c9c 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/text 7@setfilename ../../info/text
7@node Text, Non-ASCII Characters, Markers, Top 8@node Text, Non-ASCII Characters, Markers, Top
@@ -42,7 +43,7 @@ the character after point.
42* The Kill Ring:: Where removed text sometimes is saved for later use. 43* The Kill Ring:: Where removed text sometimes is saved for later use.
43* Undo:: Undoing changes to the text of a buffer. 44* Undo:: Undoing changes to the text of a buffer.
44* Maintaining Undo:: How to enable and disable undo information. 45* Maintaining Undo:: How to enable and disable undo information.
45 How to control how much information is kept. 46 How to control how much information is kept.
46* Filling:: Functions for explicit filling. 47* Filling:: Functions for explicit filling.
47* Margins:: How to specify margins for filling commands. 48* Margins:: How to specify margins for filling commands.
48* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix from context. 49* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix from context.
@@ -821,7 +822,7 @@ would be difficult to change the terminology now.
821* Kill Functions:: Functions that kill text. 822* Kill Functions:: Functions that kill text.
822* Yanking:: How yanking is done. 823* Yanking:: How yanking is done.
823* Yank Commands:: Commands that access the kill ring. 824* Yank Commands:: Commands that access the kill ring.
824* Low-Level Kill Ring:: Functions and variables for kill ring access. 825* Low-Level Kill Ring:: Functions and variables for kill ring access.
825* Internals of Kill Ring:: Variables that hold kill ring data. 826* Internals of Kill Ring:: Variables that hold kill ring data.
826@end menu 827@end menu
827 828
@@ -1298,13 +1299,16 @@ This function places a boundary element in the undo list. The undo
1298command stops at such a boundary, and successive undo commands undo 1299command stops at such a boundary, and successive undo commands undo
1299to earlier and earlier boundaries. This function returns @code{nil}. 1300to earlier and earlier boundaries. This function returns @code{nil}.
1300 1301
1301The editor command loop automatically creates an undo boundary before 1302The editor command loop automatically calls @code{undo-boundary} just
1302each key sequence is executed. Thus, each undo normally undoes the 1303before executing each key sequence, so that each undo normally undoes
1303effects of one command. Self-inserting input characters are an 1304the effects of one command. As an exception, the command
1304exception. The command loop makes a boundary for the first such 1305@code{self-insert-command}, which produces self-inserting input
1305character; the next 19 consecutive self-inserting input characters do 1306characters (@pxref{Commands for Insertion}), may remove the boundary
1306not make boundaries, and then the 20th does, and so on as long as 1307inserted by the command loop: a boundary is accepted for the first
1307self-inserting characters continue. 1308such character, the next 19 consecutive self-inserting input
1309characters do not have boundaries, and then the 20th does; and so on
1310as long as the self-inserting characters continue. Hence, sequences
1311of consecutive character insertions can be undone as a group.
1308 1312
1309All buffer modifications add a boundary whenever the previous undoable 1313All buffer modifications add a boundary whenever the previous undoable
1310change was made in some other buffer. This is to ensure that 1314change was made in some other buffer. This is to ensure that
@@ -2593,9 +2597,9 @@ along with the characters; this includes such diverse functions as
2593 2597
2594@menu 2598@menu
2595* Examining Properties:: Looking at the properties of one character. 2599* Examining Properties:: Looking at the properties of one character.
2596* Changing Properties:: Setting the properties of a range of text. 2600* Changing Properties:: Setting the properties of a range of text.
2597* Property Search:: Searching for where a property changes value. 2601* Property Search:: Searching for where a property changes value.
2598* Special Properties:: Particular properties with special meanings. 2602* Special Properties:: Particular properties with special meanings.
2599* Format Properties:: Properties for representing formatting of text. 2603* Format Properties:: Properties for representing formatting of text.
2600* Sticky Properties:: How inserted text gets properties from 2604* Sticky Properties:: How inserted text gets properties from
2601 neighboring text. 2605 neighboring text.
@@ -2605,8 +2609,8 @@ along with the characters; this includes such diverse functions as
2605 do something when you click on them. 2609 do something when you click on them.
2606* Fields:: The @code{field} property defines 2610* Fields:: The @code{field} property defines
2607 fields within the buffer. 2611 fields within the buffer.
2608* Not Intervals:: Why text properties do not use 2612* Not Intervals:: Why text properties do not use
2609 Lisp-visible text intervals. 2613 Lisp-visible text intervals.
2610@end menu 2614@end menu
2611 2615
2612@node Examining Properties 2616@node Examining Properties
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index c1f1423dabf..de281b0e147 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002,
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/tips 7@setfilename ../../info/tips
7@node Tips, GNU Emacs Internals, GPL, Top 8@node Tips, GNU Emacs Internals, GPL, Top
@@ -28,7 +29,7 @@ all.
28* Compilation Tips:: Making compiled code run fast. 29* Compilation Tips:: Making compiled code run fast.
29* Warning Tips:: Turning off compiler warnings. 30* Warning Tips:: Turning off compiler warnings.
30* Documentation Tips:: Writing readable documentation strings. 31* Documentation Tips:: Writing readable documentation strings.
31* Comment Tips:: Conventions for writing comments. 32* Comment Tips:: Conventions for writing comments.
32* Library Headers:: Standard headers for library packages. 33* Library Headers:: Standard headers for library packages.
33@end menu 34@end menu
34 35
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi
index a0590c3d282..ae90d23c70b 100644
--- a/doc/lispref/vol1.texi
+++ b/doc/lispref/vol1.texi
@@ -164,7 +164,7 @@ Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}.
164 files are made. 164 files are made.
165* Buffers:: Creating and using buffer objects. 165* Buffers:: Creating and using buffer objects.
166* Windows:: Manipulating windows and displaying buffers. 166* Windows:: Manipulating windows and displaying buffers.
167* Frames:: Making multiple system-level windows. 167* Frames:: Making multiple system-level windows.
168* Positions:: Buffer positions and motion functions. 168* Positions:: Buffer positions and motion functions.
169* Markers:: Markers represent positions and update 169* Markers:: Markers represent positions and update
170 automatically when the text is changed. 170 automatically when the text is changed.
@@ -176,7 +176,7 @@ Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}.
176* Abbrevs:: How Abbrev mode works, and its data structures. 176* Abbrevs:: How Abbrev mode works, and its data structures.
177 177
178* Processes:: Running and communicating with subprocesses. 178* Processes:: Running and communicating with subprocesses.
179* Display:: Features for controlling the screen display. 179* Display:: Features for controlling the screen display.
180* System Interface:: Getting the user id, system type, environment 180* System Interface:: Getting the user id, system type, environment
181 variables, and other such things. 181 variables, and other such things.
182 182
@@ -311,10 +311,10 @@ Editing Types
311Numbers 311Numbers
312 312
313* Integer Basics:: Representation and range of integers. 313* Integer Basics:: Representation and range of integers.
314* Float Basics:: Representation and range of floating point. 314* Float Basics:: Representation and range of floating point.
315* Predicates on Numbers:: Testing for numbers. 315* Predicates on Numbers:: Testing for numbers.
316* Comparison of Numbers:: Equality and inequality predicates. 316* Comparison of Numbers:: Equality and inequality predicates.
317* Numeric Conversions:: Converting float to integer and vice versa. 317* Numeric Conversions:: Converting float to integer and vice versa.
318* Arithmetic Operations:: How to add, subtract, multiply and divide. 318* Arithmetic Operations:: How to add, subtract, multiply and divide.
319* Rounding Operations:: Explicitly rounding floating point numbers. 319* Rounding Operations:: Explicitly rounding floating point numbers.
320* Bitwise Operations:: Logical and, or, not, shifting. 320* Bitwise Operations:: Logical and, or, not, shifting.
@@ -331,7 +331,7 @@ Strings and Characters
331* String Conversion:: Converting to and from characters and strings. 331* String Conversion:: Converting to and from characters and strings.
332* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. 332* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}.
333* Case Conversion:: Case conversion functions. 333* Case Conversion:: Case conversion functions.
334* Case Tables:: Customizing case conversion. 334* Case Tables:: Customizing case conversion.
335 335
336Lists 336Lists
337 337
@@ -399,7 +399,7 @@ Kinds of Forms
399* Symbol Forms:: Symbols evaluate as variables. 399* Symbol Forms:: Symbols evaluate as variables.
400* Classifying Lists:: How to distinguish various sorts of list forms. 400* Classifying Lists:: How to distinguish various sorts of list forms.
401* Function Indirection:: When a symbol appears as the car of a list, 401* Function Indirection:: When a symbol appears as the car of a list,
402 we find the real function via the symbol. 402 we find the real function via the symbol.
403* Function Forms:: Forms that call functions. 403* Function Forms:: Forms that call functions.
404* Macro Forms:: Forms that call macros. 404* Macro Forms:: Forms that call macros.
405* Special Forms:: "Special forms" are idiosyncratic primitives, 405* Special Forms:: "Special forms" are idiosyncratic primitives,
@@ -480,9 +480,9 @@ Functions
480* Function Cells:: Accessing or setting the function definition 480* Function Cells:: Accessing or setting the function definition
481 of a symbol. 481 of a symbol.
482* Obsolete Functions:: Declaring functions obsolete. 482* Obsolete Functions:: Declaring functions obsolete.
483* Inline Functions:: Defining functions that the compiler 483* Inline Functions:: Defining functions that the compiler
484 will open code. 484 will open code.
485* Declaring Functions:: Telling the compiler that a function is defined. 485* Declaring Functions:: Telling the compiler that a function is defined.
486* Function Safety:: Determining whether a function is safe to call. 486* Function Safety:: Determining whether a function is safe to call.
487* Related Topics:: Cross-references to specific Lisp primitives 487* Related Topics:: Cross-references to specific Lisp primitives
488 that have a special bearing on how 488 that have a special bearing on how
@@ -542,9 +542,9 @@ Loading
542* Repeated Loading:: Precautions about loading a file twice. 542* Repeated Loading:: Precautions about loading a file twice.
543* Named Features:: Loading a library if it isn't already loaded. 543* Named Features:: Loading a library if it isn't already loaded.
544* Where Defined:: Finding which file defined a certain symbol. 544* Where Defined:: Finding which file defined a certain symbol.
545* Unloading:: How to "unload" a library that was loaded. 545* Unloading:: How to "unload" a library that was loaded.
546* Hooks for Loading:: Providing code to be run when 546* Hooks for Loading:: Providing code to be run when
547 particular libraries are loaded. 547 particular libraries are loaded.
548 548
549Byte Compilation 549Byte Compilation
550 550
@@ -554,7 +554,7 @@ Byte Compilation
554* Dynamic Loading:: Dynamic loading of individual functions. 554* Dynamic Loading:: Dynamic loading of individual functions.
555* Eval During Compile:: Code to be evaluated when you compile. 555* Eval During Compile:: Code to be evaluated when you compile.
556* Compiler Errors:: Handling compiler error messages. 556* Compiler Errors:: Handling compiler error messages.
557* Byte-Code Objects:: The data type used for byte-compiled functions. 557* Byte-Code Objects:: The data type used for byte-compiled functions.
558* Disassembly:: Disassembling byte-code; how to read byte-code. 558* Disassembly:: Disassembling byte-code; how to read byte-code.
559 559
560Advising Emacs Lisp Functions 560Advising Emacs Lisp Functions
@@ -583,7 +583,7 @@ Debugging Lisp Programs
583The Lisp Debugger 583The Lisp Debugger
584 584
585* Error Debugging:: Entering the debugger when an error happens. 585* Error Debugging:: Entering the debugger when an error happens.
586* Infinite Loops:: Stopping and debugging a program that doesn't exit. 586* Infinite Loops:: Stopping and debugging a program that doesn't exit.
587* Function Debugging:: Entering it when a certain function is called. 587* Function Debugging:: Entering it when a certain function is called.
588* Explicit Debug:: Entering it at a certain point in the program. 588* Explicit Debug:: Entering it at a certain point in the program.
589* Using Debugger:: What the debugger does; what you see while in it. 589* Using Debugger:: What the debugger does; what you see while in it.
@@ -593,24 +593,24 @@ The Lisp Debugger
593 593
594Edebug 594Edebug
595 595
596* Using Edebug:: Introduction to use of Edebug. 596* Using Edebug:: Introduction to use of Edebug.
597* Instrumenting:: You must instrument your code 597* Instrumenting:: You must instrument your code
598 in order to debug it with Edebug. 598 in order to debug it with Edebug.
599* Edebug Execution Modes:: Execution modes, stopping more or less often. 599* Edebug Execution Modes:: Execution modes, stopping more or less often.
600* Jumping:: Commands to jump to a specified place. 600* Jumping:: Commands to jump to a specified place.
601* Edebug Misc:: Miscellaneous commands. 601* Edebug Misc:: Miscellaneous commands.
602* Breaks:: Setting breakpoints to make the program stop. 602* Breaks:: Setting breakpoints to make the program stop.
603* Trapping Errors:: Trapping errors with Edebug. 603* Trapping Errors:: Trapping errors with Edebug.
604* Edebug Views:: Views inside and outside of Edebug. 604* Edebug Views:: Views inside and outside of Edebug.
605* Edebug Eval:: Evaluating expressions within Edebug. 605* Edebug Eval:: Evaluating expressions within Edebug.
606* Eval List:: Expressions whose values are displayed 606* Eval List:: Expressions whose values are displayed
607 each time you enter Edebug. 607 each time you enter Edebug.
608* Printing in Edebug:: Customization of printing. 608* Printing in Edebug:: Customization of printing.
609* Trace Buffer:: How to produce trace output in a buffer. 609* Trace Buffer:: How to produce trace output in a buffer.
610* Coverage Testing:: How to test evaluation coverage. 610* Coverage Testing:: How to test evaluation coverage.
611* The Outside Context:: Data that Edebug saves and restores. 611* The Outside Context:: Data that Edebug saves and restores.
612* Edebug and Macros:: Specifying how to handle macro calls. 612* Edebug and Macros:: Specifying how to handle macro calls.
613* Edebug Options:: Option variables for customizing Edebug. 613* Edebug Options:: Option variables for customizing Edebug.
614 614
615Breaks 615Breaks
616 616
@@ -627,8 +627,8 @@ The Outside Context
627Edebug and Macros 627Edebug and Macros
628 628
629* Instrumenting Macro Calls::The basic problem. 629* Instrumenting Macro Calls::The basic problem.
630* Specification List:: How to specify complex patterns of evaluation. 630* Specification List:: How to specify complex patterns of evaluation.
631* Backtracking:: What Edebug does when matching fails. 631* Backtracking:: What Edebug does when matching fails.
632* Specification Examples:: To help understand specifications. 632* Specification Examples:: To help understand specifications.
633 633
634Debugging Invalid Lisp Syntax 634Debugging Invalid Lisp Syntax
@@ -653,13 +653,13 @@ Minibuffers
653* Intro to Minibuffers:: Basic information about minibuffers. 653* Intro to Minibuffers:: Basic information about minibuffers.
654* Text from Minibuffer:: How to read a straight text string. 654* Text from Minibuffer:: How to read a straight text string.
655* Object from Minibuffer:: How to read a Lisp object or expression. 655* Object from Minibuffer:: How to read a Lisp object or expression.
656* Minibuffer History:: Recording previous minibuffer inputs 656* Minibuffer History:: Recording previous minibuffer inputs
657 so the user can reuse them. 657 so the user can reuse them.
658* Initial Input:: Specifying initial contents for the minibuffer. 658* Initial Input:: Specifying initial contents for the minibuffer.
659* Completion:: How to invoke and customize completion. 659* Completion:: How to invoke and customize completion.
660* Yes-or-No Queries:: Asking a question with a simple answer. 660* Yes-or-No Queries:: Asking a question with a simple answer.
661* Multiple Queries:: Asking a series of similar questions. 661* Multiple Queries:: Asking a series of similar questions.
662* Reading a Password:: Reading a password from the terminal. 662* Reading a Password:: Reading a password from the terminal.
663* Minibuffer Commands:: Commands used as key bindings in minibuffers. 663* Minibuffer Commands:: Commands used as key bindings in minibuffers.
664* Minibuffer Contents:: How such commands access the minibuffer text. 664* Minibuffer Contents:: How such commands access the minibuffer text.
665* Minibuffer Windows:: Operating on the special minibuffer windows. 665* Minibuffer Windows:: Operating on the special minibuffer windows.
@@ -687,7 +687,7 @@ Command Loop
687* Distinguish Interactive:: Making a command distinguish interactive calls. 687* Distinguish Interactive:: Making a command distinguish interactive calls.
688* Command Loop Info:: Variables set by the command loop for you to examine. 688* Command Loop Info:: Variables set by the command loop for you to examine.
689* Adjusting Point:: Adjustment of point after a command. 689* Adjusting Point:: Adjustment of point after a command.
690* Input Events:: What input looks like when you read it. 690* Input Events:: What input looks like when you read it.
691* Reading Input:: How to read input events from the keyboard or mouse. 691* Reading Input:: How to read input events from the keyboard or mouse.
692* Special Events:: Events processed immediately and individually. 692* Special Events:: Events processed immediately and individually.
693* Waiting:: Waiting for user input or elapsed time. 693* Waiting:: Waiting for user input or elapsed time.
@@ -721,7 +721,7 @@ Input Events
721* Event Examples:: Examples of the lists for mouse events. 721* Event Examples:: Examples of the lists for mouse events.
722* Classifying Events:: Finding the modifier keys in an event symbol. 722* Classifying Events:: Finding the modifier keys in an event symbol.
723 Event types. 723 Event types.
724* Accessing Mouse:: Functions to extract info from mouse events. 724* Accessing Mouse:: Functions to extract info from mouse events.
725* Accessing Scroll:: Functions to get info from scroll bar events. 725* Accessing Scroll:: Functions to get info from scroll bar events.
726* Strings of Events:: Special considerations for putting 726* Strings of Events:: Special considerations for putting
727 keyboard character events in a string. 727 keyboard character events in a string.
@@ -871,9 +871,9 @@ Files
871* Changing Files:: Renaming files, changing protection, etc. 871* Changing Files:: Renaming files, changing protection, etc.
872* File Names:: Decomposing and expanding file names. 872* File Names:: Decomposing and expanding file names.
873* Contents of Directories:: Getting a list of the files in a directory. 873* Contents of Directories:: Getting a list of the files in a directory.
874* Create/Delete Dirs:: Creating and Deleting Directories. 874* Create/Delete Dirs:: Creating and Deleting Directories.
875* Magic File Names:: Defining "magic" special handling 875* Magic File Names:: Defining "magic" special handling
876 for certain file names. 876 for certain file names.
877* Format Conversion:: Conversion to and from various file formats. 877* Format Conversion:: Conversion to and from various file formats.
878 878
879Visiting Files 879Visiting Files
@@ -885,7 +885,7 @@ Information about Files
885 885
886* Testing Accessibility:: Is a given file readable? Writable? 886* Testing Accessibility:: Is a given file readable? Writable?
887* Kinds of Files:: Is it a directory? A symbolic link? 887* Kinds of Files:: Is it a directory? A symbolic link?
888* Truenames:: Eliminating symbolic links from a file name. 888* Truenames:: Eliminating symbolic links from a file name.
889* File Attributes:: How large is it? Any other names? Etc. 889* File Attributes:: How large is it? Any other names? Etc.
890* Locating Files:: How to find a file in standard places. 890* Locating Files:: How to find a file in standard places.
891 891
@@ -955,8 +955,8 @@ Windows
955* Buffers and Windows:: Each window displays the contents of a buffer. 955* Buffers and Windows:: Each window displays the contents of a buffer.
956* Displaying Buffers:: Higher-level functions for displaying a buffer 956* Displaying Buffers:: Higher-level functions for displaying a buffer
957 and choosing a window for it. 957 and choosing a window for it.
958* Choosing Window:: How to choose a window for displaying a buffer. 958* Choosing Window:: How to choose a window for displaying a buffer.
959* Dedicated Windows:: How to avoid displaying another buffer in 959* Dedicated Windows:: How to avoid displaying another buffer in
960 a specific window. 960 a specific window.
961* Window Point:: Each window has its own location of point. 961* Window Point:: Each window has its own location of point.
962* Window Start and End:: Buffer positions indicating which text is 962* Window Start and End:: Buffer positions indicating which text is
@@ -976,37 +976,37 @@ Windows
976 976
977Frames 977Frames
978 978
979* Creating Frames:: Creating additional frames. 979* Creating Frames:: Creating additional frames.
980* Multiple Terminals:: Displaying on several different devices. 980* Multiple Terminals:: Displaying on several different devices.
981* Frame Parameters:: Controlling frame size, position, font, etc. 981* Frame Parameters:: Controlling frame size, position, font, etc.
982* Terminal Parameters:: Parameters common for all frames on terminal. 982* Terminal Parameters:: Parameters common for all frames on terminal.
983* Frame Titles:: Automatic updating of frame titles. 983* Frame Titles:: Automatic updating of frame titles.
984* Deleting Frames:: Frames last until explicitly deleted. 984* Deleting Frames:: Frames last until explicitly deleted.
985* Finding All Frames:: How to examine all existing frames. 985* Finding All Frames:: How to examine all existing frames.
986* Frames and Windows:: A frame contains windows; 986* Frames and Windows:: A frame contains windows;
987 display of text always works through windows. 987 display of text always works through windows.
988* Minibuffers and Frames:: How a frame finds the minibuffer to use. 988* Minibuffers and Frames:: How a frame finds the minibuffer to use.
989* Input Focus:: Specifying the selected frame. 989* Input Focus:: Specifying the selected frame.
990* Visibility of Frames:: Frames may be visible or invisible, or icons. 990* Visibility of Frames:: Frames may be visible or invisible, or icons.
991* Raising and Lowering:: Raising a frame makes it hide other windows; 991* Raising and Lowering:: Raising a frame makes it hide other windows;
992 lowering it makes the others hide it. 992 lowering it makes the others hide it.
993* Frame Configurations:: Saving the state of all frames. 993* Frame Configurations:: Saving the state of all frames.
994* Mouse Tracking:: Getting events that say when the mouse moves. 994* Mouse Tracking:: Getting events that say when the mouse moves.
995* Mouse Position:: Asking where the mouse is, or moving it. 995* Mouse Position:: Asking where the mouse is, or moving it.
996* Pop-Up Menus:: Displaying a menu for the user to select from. 996* Pop-Up Menus:: Displaying a menu for the user to select from.
997* Dialog Boxes:: Displaying a box to ask yes or no. 997* Dialog Boxes:: Displaying a box to ask yes or no.
998* Pointer Shape:: Specifying the shape of the mouse pointer. 998* Pointer Shape:: Specifying the shape of the mouse pointer.
999* Window System Selections::Transferring text to and from other X clients. 999* Window System Selections::Transferring text to and from other X clients.
1000* Drag and Drop:: Internals of Drag-and-Drop implementation. 1000* Drag and Drop:: Internals of Drag-and-Drop implementation.
1001* Color Names:: Getting the definitions of color names. 1001* Color Names:: Getting the definitions of color names.
1002* Text Terminal Colors:: Defining colors for text-only terminals. 1002* Text Terminal Colors:: Defining colors for text-only terminals.
1003* Resources:: Getting resource values from the server. 1003* Resources:: Getting resource values from the server.
1004* Display Feature Testing:: Determining the features of a terminal. 1004* Display Feature Testing:: Determining the features of a terminal.
1005 1005
1006Frame Parameters 1006Frame Parameters
1007 1007
1008* Parameter Access:: How to change a frame's parameters. 1008* Parameter Access:: How to change a frame's parameters.
1009* Initial Parameters:: Specifying frame parameters when you make a frame. 1009* Initial Parameters:: Specifying frame parameters when you make a frame.
1010* Window Frame Parameters:: List of frame parameters for window systems. 1010* Window Frame Parameters:: List of frame parameters for window systems.
1011* Size and Position:: Changing the size and position of a frame. 1011* Size and Position:: Changing the size and position of a frame.
1012* Geometry:: Parsing geometry specifications. 1012* Geometry:: Parsing geometry specifications.
@@ -1065,7 +1065,7 @@ Text
1065 later use. 1065 later use.
1066* Undo:: Undoing changes to the text of a buffer. 1066* Undo:: Undoing changes to the text of a buffer.
1067* Maintaining Undo:: How to enable and disable undo information. 1067* Maintaining Undo:: How to enable and disable undo information.
1068 How to control how much information is kept. 1068 How to control how much information is kept.
1069* Filling:: Functions for explicit filling. 1069* Filling:: Functions for explicit filling.
1070* Margins:: How to specify margins for filling commands. 1070* Margins:: How to specify margins for filling commands.
1071* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix 1071* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix
@@ -1091,7 +1091,7 @@ The Kill Ring
1091* Kill Functions:: Functions that kill text. 1091* Kill Functions:: Functions that kill text.
1092* Yanking:: How yanking is done. 1092* Yanking:: How yanking is done.
1093* Yank Commands:: Commands that access the kill ring. 1093* Yank Commands:: Commands that access the kill ring.
1094* Low-Level Kill Ring:: Functions and variables for kill ring access. 1094* Low-Level Kill Ring:: Functions and variables for kill ring access.
1095* Internals of Kill Ring:: Variables that hold kill ring data. 1095* Internals of Kill Ring:: Variables that hold kill ring data.
1096 1096
1097Indentation 1097Indentation
@@ -1106,9 +1106,9 @@ Indentation
1106Text Properties 1106Text Properties
1107 1107
1108* Examining Properties:: Looking at the properties of one character. 1108* Examining Properties:: Looking at the properties of one character.
1109* Changing Properties:: Setting the properties of a range of text. 1109* Changing Properties:: Setting the properties of a range of text.
1110* Property Search:: Searching for where a property changes value. 1110* Property Search:: Searching for where a property changes value.
1111* Special Properties:: Particular properties with special meanings. 1111* Special Properties:: Particular properties with special meanings.
1112* Format Properties:: Properties for representing formatting of text. 1112* Format Properties:: Properties for representing formatting of text.
1113* Sticky Properties:: How inserted text gets properties from 1113* Sticky Properties:: How inserted text gets properties from
1114 neighboring text. 1114 neighboring text.
@@ -1118,8 +1118,8 @@ Text Properties
1118 do something when you click on them. 1118 do something when you click on them.
1119* Fields:: The @code{field} property defines 1119* Fields:: The @code{field} property defines
1120 fields within the buffer. 1120 fields within the buffer.
1121* Not Intervals:: Why text properties do not use 1121* Not Intervals:: Why text properties do not use
1122 Lisp-visible text intervals. 1122 Lisp-visible text intervals.
1123 1123
1124Non-@acronym{ASCII} Characters 1124Non-@acronym{ASCII} Characters
1125 1125
@@ -1162,7 +1162,7 @@ Searching and Matching
1162* POSIX Regexps:: Searching POSIX-style for the longest match. 1162* POSIX Regexps:: Searching POSIX-style for the longest match.
1163* Match Data:: Finding out which part of the text matched, 1163* Match Data:: Finding out which part of the text matched,
1164 after a string or regexp search. 1164 after a string or regexp search.
1165* Search and Replace:: Commands that loop, searching and replacing. 1165* Search and Replace:: Commands that loop, searching and replacing.
1166* Standard Regexps:: Useful regexps for finding sentences, pages,... 1166* Standard Regexps:: Useful regexps for finding sentences, pages,...
1167 1167
1168Regular Expressions 1168Regular Expressions
@@ -1179,9 +1179,9 @@ Syntax of Regular Expressions
1179 1179
1180The Match Data 1180The Match Data
1181 1181
1182* Replacing Match:: Replacing a substring that was matched. 1182* Replacing Match:: Replacing a substring that was matched.
1183* Simple Match Data:: Accessing single items of match data, 1183* Simple Match Data:: Accessing single items of match data,
1184 such as where a particular subexpression started. 1184 such as where a particular subexpression started.
1185* Entire Match Data:: Accessing the entire match data at once, as a list. 1185* Entire Match Data:: Accessing the entire match data at once, as a list.
1186* Saving Match Data:: Saving and restoring the match data. 1186* Saving Match Data:: Saving and restoring the match data.
1187 1187
@@ -1191,7 +1191,7 @@ Syntax Tables
1191* Syntax Descriptors:: How characters are classified. 1191* Syntax Descriptors:: How characters are classified.
1192* Syntax Table Functions:: How to create, examine and alter syntax tables. 1192* Syntax Table Functions:: How to create, examine and alter syntax tables.
1193* Syntax Properties:: Overriding syntax with text properties. 1193* Syntax Properties:: Overriding syntax with text properties.
1194* Motion and Syntax:: Moving over characters with certain syntaxes. 1194* Motion and Syntax:: Moving over characters with certain syntaxes.
1195* Parsing Expressions:: Parsing balanced expressions 1195* Parsing Expressions:: Parsing balanced expressions
1196 using the syntax table. 1196 using the syntax table.
1197* Standard Syntax Tables:: Syntax tables used by various major modes. 1197* Standard Syntax Tables:: Syntax tables used by various major modes.
@@ -1280,10 +1280,10 @@ Emacs Display
1280* Invisible Text:: Hiding part of the buffer text. 1280* Invisible Text:: Hiding part of the buffer text.
1281* Selective Display:: Hiding part of the buffer text (the old way). 1281* Selective Display:: Hiding part of the buffer text (the old way).
1282* Temporary Displays:: Displays that go away automatically. 1282* Temporary Displays:: Displays that go away automatically.
1283* Overlays:: Use overlays to highlight parts of the buffer. 1283* Overlays:: Use overlays to highlight parts of the buffer.
1284* Width:: How wide a character or string is on the screen. 1284* Width:: How wide a character or string is on the screen.
1285* Line Height:: Controlling the height of lines. 1285* Line Height:: Controlling the height of lines.
1286* Faces:: A face defines a graphics style 1286* Faces:: A face defines a graphics style
1287 for text characters: font, colors, etc. 1287 for text characters: font, colors, etc.
1288* Fringes:: Controlling window fringes. 1288* Fringes:: Controlling window fringes.
1289* Scroll Bars:: Controlling vertical scroll bars. 1289* Scroll Bars:: Controlling vertical scroll bars.
@@ -1292,9 +1292,9 @@ Emacs Display
1292* Buttons:: Adding clickable buttons to Emacs buffers. 1292* Buttons:: Adding clickable buttons to Emacs buffers.
1293* Abstract Display:: Emacs' Widget for Object Collections. 1293* Abstract Display:: Emacs' Widget for Object Collections.
1294* Blinking:: How Emacs shows the matching open parenthesis. 1294* Blinking:: How Emacs shows the matching open parenthesis.
1295* Usual Display:: The usual conventions for displaying 1295* Usual Display:: The usual conventions for displaying
1296 nonprinting chars. 1296 nonprinting chars.
1297* Display Tables:: How to specify other conventions. 1297* Display Tables:: How to specify other conventions.
1298* Beeping:: Audible signal to the user. 1298* Beeping:: Audible signal to the user.
1299* Window Systems:: Which window system is being used. 1299* Window Systems:: Which window system is being used.
1300 1300
@@ -1316,7 +1316,7 @@ Overlays
1316 1316
1317* Managing Overlays:: Creating and moving overlays. 1317* Managing Overlays:: Creating and moving overlays.
1318* Overlay Properties:: How to read and set properties. 1318* Overlay Properties:: How to read and set properties.
1319 What properties do to the screen display. 1319 What properties do to the screen display.
1320* Finding Overlays:: Searching for overlays. 1320* Finding Overlays:: Searching for overlays.
1321 1321
1322Faces 1322Faces
@@ -1396,14 +1396,14 @@ Operating System Interface
1396* Getting Out:: How exiting works (permanent or temporary). 1396* Getting Out:: How exiting works (permanent or temporary).
1397* System Environment:: Distinguish the name and kind of system. 1397* System Environment:: Distinguish the name and kind of system.
1398* User Identification:: Finding the name and user id of the user. 1398* User Identification:: Finding the name and user id of the user.
1399* Time of Day:: Getting the current time. 1399* Time of Day:: Getting the current time.
1400* Time Conversion:: Converting a time from numeric form to 1400* Time Conversion:: Converting a time from numeric form to
1401 calendrical data and vice versa. 1401 calendrical data and vice versa.
1402* Time Parsing:: Converting a time from numeric form to text 1402* Time Parsing:: Converting a time from numeric form to text
1403 and vice versa. 1403 and vice versa.
1404* Processor Run Time:: Getting the run time used by Emacs. 1404* Processor Run Time:: Getting the run time used by Emacs.
1405* Time Calculations:: Adding, subtracting, comparing times, etc. 1405* Time Calculations:: Adding, subtracting, comparing times, etc.
1406* Timers:: Setting a timer to call a function at a 1406* Timers:: Setting a timer to call a function at a
1407 certain time. 1407 certain time.
1408* Idle Timers:: Setting a timer to call a function when Emacs has 1408* Idle Timers:: Setting a timer to call a function when Emacs has
1409 been idle for a certain length of time. 1409 been idle for a certain length of time.
@@ -1430,8 +1430,8 @@ Getting Out of Emacs
1430 1430
1431Terminal Input 1431Terminal Input
1432 1432
1433* Input Modes:: Options for how input is processed. 1433* Input Modes:: Options for how input is processed.
1434* Recording Input:: Saving histories of recent or all input events. 1434* Recording Input:: Saving histories of recent or all input events.
1435 1435
1436Tips and Conventions 1436Tips and Conventions
1437 1437
@@ -1441,7 +1441,7 @@ Tips and Conventions
1441* Compilation Tips:: Making compiled code run fast. 1441* Compilation Tips:: Making compiled code run fast.
1442* Warning Tips:: Turning off compiler warnings. 1442* Warning Tips:: Turning off compiler warnings.
1443* Documentation Tips:: Writing readable documentation strings. 1443* Documentation Tips:: Writing readable documentation strings.
1444* Comment Tips:: Conventions for writing comments. 1444* Comment Tips:: Conventions for writing comments.
1445* Library Headers:: Standard headers for library packages. 1445* Library Headers:: Standard headers for library packages.
1446 1446
1447GNU Emacs Internals 1447GNU Emacs Internals
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi
index ad4c74611a8..6de6ac7182b 100644
--- a/doc/lispref/vol2.texi
+++ b/doc/lispref/vol2.texi
@@ -163,7 +163,7 @@ Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}.
163 files are made. 163 files are made.
164* Buffers:: Creating and using buffer objects. 164* Buffers:: Creating and using buffer objects.
165* Windows:: Manipulating windows and displaying buffers. 165* Windows:: Manipulating windows and displaying buffers.
166* Frames:: Making multiple system-level windows. 166* Frames:: Making multiple system-level windows.
167* Positions:: Buffer positions and motion functions. 167* Positions:: Buffer positions and motion functions.
168* Markers:: Markers represent positions and update 168* Markers:: Markers represent positions and update
169 automatically when the text is changed. 169 automatically when the text is changed.
@@ -175,7 +175,7 @@ Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}.
175* Abbrevs:: How Abbrev mode works, and its data structures. 175* Abbrevs:: How Abbrev mode works, and its data structures.
176 176
177* Processes:: Running and communicating with subprocesses. 177* Processes:: Running and communicating with subprocesses.
178* Display:: Features for controlling the screen display. 178* Display:: Features for controlling the screen display.
179* System Interface:: Getting the user id, system type, environment 179* System Interface:: Getting the user id, system type, environment
180 variables, and other such things. 180 variables, and other such things.
181 181
@@ -310,10 +310,10 @@ Editing Types
310Numbers 310Numbers
311 311
312* Integer Basics:: Representation and range of integers. 312* Integer Basics:: Representation and range of integers.
313* Float Basics:: Representation and range of floating point. 313* Float Basics:: Representation and range of floating point.
314* Predicates on Numbers:: Testing for numbers. 314* Predicates on Numbers:: Testing for numbers.
315* Comparison of Numbers:: Equality and inequality predicates. 315* Comparison of Numbers:: Equality and inequality predicates.
316* Numeric Conversions:: Converting float to integer and vice versa. 316* Numeric Conversions:: Converting float to integer and vice versa.
317* Arithmetic Operations:: How to add, subtract, multiply and divide. 317* Arithmetic Operations:: How to add, subtract, multiply and divide.
318* Rounding Operations:: Explicitly rounding floating point numbers. 318* Rounding Operations:: Explicitly rounding floating point numbers.
319* Bitwise Operations:: Logical and, or, not, shifting. 319* Bitwise Operations:: Logical and, or, not, shifting.
@@ -330,7 +330,7 @@ Strings and Characters
330* String Conversion:: Converting to and from characters and strings. 330* String Conversion:: Converting to and from characters and strings.
331* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. 331* Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}.
332* Case Conversion:: Case conversion functions. 332* Case Conversion:: Case conversion functions.
333* Case Tables:: Customizing case conversion. 333* Case Tables:: Customizing case conversion.
334 334
335Lists 335Lists
336 336
@@ -398,7 +398,7 @@ Kinds of Forms
398* Symbol Forms:: Symbols evaluate as variables. 398* Symbol Forms:: Symbols evaluate as variables.
399* Classifying Lists:: How to distinguish various sorts of list forms. 399* Classifying Lists:: How to distinguish various sorts of list forms.
400* Function Indirection:: When a symbol appears as the car of a list, 400* Function Indirection:: When a symbol appears as the car of a list,
401 we find the real function via the symbol. 401 we find the real function via the symbol.
402* Function Forms:: Forms that call functions. 402* Function Forms:: Forms that call functions.
403* Macro Forms:: Forms that call macros. 403* Macro Forms:: Forms that call macros.
404* Special Forms:: "Special forms" are idiosyncratic primitives, 404* Special Forms:: "Special forms" are idiosyncratic primitives,
@@ -479,9 +479,9 @@ Functions
479* Function Cells:: Accessing or setting the function definition 479* Function Cells:: Accessing or setting the function definition
480 of a symbol. 480 of a symbol.
481* Obsolete Functions:: Declaring functions obsolete. 481* Obsolete Functions:: Declaring functions obsolete.
482* Inline Functions:: Defining functions that the compiler 482* Inline Functions:: Defining functions that the compiler
483 will open code. 483 will open code.
484* Declaring Functions:: Telling the compiler that a function is defined. 484* Declaring Functions:: Telling the compiler that a function is defined.
485* Function Safety:: Determining whether a function is safe to call. 485* Function Safety:: Determining whether a function is safe to call.
486* Related Topics:: Cross-references to specific Lisp primitives 486* Related Topics:: Cross-references to specific Lisp primitives
487 that have a special bearing on how 487 that have a special bearing on how
@@ -541,9 +541,9 @@ Loading
541* Repeated Loading:: Precautions about loading a file twice. 541* Repeated Loading:: Precautions about loading a file twice.
542* Named Features:: Loading a library if it isn't already loaded. 542* Named Features:: Loading a library if it isn't already loaded.
543* Where Defined:: Finding which file defined a certain symbol. 543* Where Defined:: Finding which file defined a certain symbol.
544* Unloading:: How to "unload" a library that was loaded. 544* Unloading:: How to "unload" a library that was loaded.
545* Hooks for Loading:: Providing code to be run when 545* Hooks for Loading:: Providing code to be run when
546 particular libraries are loaded. 546 particular libraries are loaded.
547 547
548Byte Compilation 548Byte Compilation
549 549
@@ -553,7 +553,7 @@ Byte Compilation
553* Dynamic Loading:: Dynamic loading of individual functions. 553* Dynamic Loading:: Dynamic loading of individual functions.
554* Eval During Compile:: Code to be evaluated when you compile. 554* Eval During Compile:: Code to be evaluated when you compile.
555* Compiler Errors:: Handling compiler error messages. 555* Compiler Errors:: Handling compiler error messages.
556* Byte-Code Objects:: The data type used for byte-compiled functions. 556* Byte-Code Objects:: The data type used for byte-compiled functions.
557* Disassembly:: Disassembling byte-code; how to read byte-code. 557* Disassembly:: Disassembling byte-code; how to read byte-code.
558 558
559Advising Emacs Lisp Functions 559Advising Emacs Lisp Functions
@@ -582,7 +582,7 @@ Debugging Lisp Programs
582The Lisp Debugger 582The Lisp Debugger
583 583
584* Error Debugging:: Entering the debugger when an error happens. 584* Error Debugging:: Entering the debugger when an error happens.
585* Infinite Loops:: Stopping and debugging a program that doesn't exit. 585* Infinite Loops:: Stopping and debugging a program that doesn't exit.
586* Function Debugging:: Entering it when a certain function is called. 586* Function Debugging:: Entering it when a certain function is called.
587* Explicit Debug:: Entering it at a certain point in the program. 587* Explicit Debug:: Entering it at a certain point in the program.
588* Using Debugger:: What the debugger does; what you see while in it. 588* Using Debugger:: What the debugger does; what you see while in it.
@@ -592,24 +592,24 @@ The Lisp Debugger
592 592
593Edebug 593Edebug
594 594
595* Using Edebug:: Introduction to use of Edebug. 595* Using Edebug:: Introduction to use of Edebug.
596* Instrumenting:: You must instrument your code 596* Instrumenting:: You must instrument your code
597 in order to debug it with Edebug. 597 in order to debug it with Edebug.
598* Edebug Execution Modes:: Execution modes, stopping more or less often. 598* Edebug Execution Modes:: Execution modes, stopping more or less often.
599* Jumping:: Commands to jump to a specified place. 599* Jumping:: Commands to jump to a specified place.
600* Edebug Misc:: Miscellaneous commands. 600* Edebug Misc:: Miscellaneous commands.
601* Breaks:: Setting breakpoints to make the program stop. 601* Breaks:: Setting breakpoints to make the program stop.
602* Trapping Errors:: Trapping errors with Edebug. 602* Trapping Errors:: Trapping errors with Edebug.
603* Edebug Views:: Views inside and outside of Edebug. 603* Edebug Views:: Views inside and outside of Edebug.
604* Edebug Eval:: Evaluating expressions within Edebug. 604* Edebug Eval:: Evaluating expressions within Edebug.
605* Eval List:: Expressions whose values are displayed 605* Eval List:: Expressions whose values are displayed
606 each time you enter Edebug. 606 each time you enter Edebug.
607* Printing in Edebug:: Customization of printing. 607* Printing in Edebug:: Customization of printing.
608* Trace Buffer:: How to produce trace output in a buffer. 608* Trace Buffer:: How to produce trace output in a buffer.
609* Coverage Testing:: How to test evaluation coverage. 609* Coverage Testing:: How to test evaluation coverage.
610* The Outside Context:: Data that Edebug saves and restores. 610* The Outside Context:: Data that Edebug saves and restores.
611* Edebug and Macros:: Specifying how to handle macro calls. 611* Edebug and Macros:: Specifying how to handle macro calls.
612* Edebug Options:: Option variables for customizing Edebug. 612* Edebug Options:: Option variables for customizing Edebug.
613 613
614Breaks 614Breaks
615 615
@@ -626,8 +626,8 @@ The Outside Context
626Edebug and Macros 626Edebug and Macros
627 627
628* Instrumenting Macro Calls::The basic problem. 628* Instrumenting Macro Calls::The basic problem.
629* Specification List:: How to specify complex patterns of evaluation. 629* Specification List:: How to specify complex patterns of evaluation.
630* Backtracking:: What Edebug does when matching fails. 630* Backtracking:: What Edebug does when matching fails.
631* Specification Examples:: To help understand specifications. 631* Specification Examples:: To help understand specifications.
632 632
633Debugging Invalid Lisp Syntax 633Debugging Invalid Lisp Syntax
@@ -652,13 +652,13 @@ Minibuffers
652* Intro to Minibuffers:: Basic information about minibuffers. 652* Intro to Minibuffers:: Basic information about minibuffers.
653* Text from Minibuffer:: How to read a straight text string. 653* Text from Minibuffer:: How to read a straight text string.
654* Object from Minibuffer:: How to read a Lisp object or expression. 654* Object from Minibuffer:: How to read a Lisp object or expression.
655* Minibuffer History:: Recording previous minibuffer inputs 655* Minibuffer History:: Recording previous minibuffer inputs
656 so the user can reuse them. 656 so the user can reuse them.
657* Initial Input:: Specifying initial contents for the minibuffer. 657* Initial Input:: Specifying initial contents for the minibuffer.
658* Completion:: How to invoke and customize completion. 658* Completion:: How to invoke and customize completion.
659* Yes-or-No Queries:: Asking a question with a simple answer. 659* Yes-or-No Queries:: Asking a question with a simple answer.
660* Multiple Queries:: Asking a series of similar questions. 660* Multiple Queries:: Asking a series of similar questions.
661* Reading a Password:: Reading a password from the terminal. 661* Reading a Password:: Reading a password from the terminal.
662* Minibuffer Commands:: Commands used as key bindings in minibuffers. 662* Minibuffer Commands:: Commands used as key bindings in minibuffers.
663* Minibuffer Contents:: How such commands access the minibuffer text. 663* Minibuffer Contents:: How such commands access the minibuffer text.
664* Minibuffer Windows:: Operating on the special minibuffer windows. 664* Minibuffer Windows:: Operating on the special minibuffer windows.
@@ -686,7 +686,7 @@ Command Loop
686* Distinguish Interactive:: Making a command distinguish interactive calls. 686* Distinguish Interactive:: Making a command distinguish interactive calls.
687* Command Loop Info:: Variables set by the command loop for you to examine. 687* Command Loop Info:: Variables set by the command loop for you to examine.
688* Adjusting Point:: Adjustment of point after a command. 688* Adjusting Point:: Adjustment of point after a command.
689* Input Events:: What input looks like when you read it. 689* Input Events:: What input looks like when you read it.
690* Reading Input:: How to read input events from the keyboard or mouse. 690* Reading Input:: How to read input events from the keyboard or mouse.
691* Special Events:: Events processed immediately and individually. 691* Special Events:: Events processed immediately and individually.
692* Waiting:: Waiting for user input or elapsed time. 692* Waiting:: Waiting for user input or elapsed time.
@@ -720,7 +720,7 @@ Input Events
720* Event Examples:: Examples of the lists for mouse events. 720* Event Examples:: Examples of the lists for mouse events.
721* Classifying Events:: Finding the modifier keys in an event symbol. 721* Classifying Events:: Finding the modifier keys in an event symbol.
722 Event types. 722 Event types.
723* Accessing Mouse:: Functions to extract info from mouse events. 723* Accessing Mouse:: Functions to extract info from mouse events.
724* Accessing Scroll:: Functions to get info from scroll bar events. 724* Accessing Scroll:: Functions to get info from scroll bar events.
725* Strings of Events:: Special considerations for putting 725* Strings of Events:: Special considerations for putting
726 keyboard character events in a string. 726 keyboard character events in a string.
@@ -870,9 +870,9 @@ Files
870* Changing Files:: Renaming files, changing protection, etc. 870* Changing Files:: Renaming files, changing protection, etc.
871* File Names:: Decomposing and expanding file names. 871* File Names:: Decomposing and expanding file names.
872* Contents of Directories:: Getting a list of the files in a directory. 872* Contents of Directories:: Getting a list of the files in a directory.
873* Create/Delete Dirs:: Creating and Deleting Directories. 873* Create/Delete Dirs:: Creating and Deleting Directories.
874* Magic File Names:: Defining "magic" special handling 874* Magic File Names:: Defining "magic" special handling
875 for certain file names. 875 for certain file names.
876* Format Conversion:: Conversion to and from various file formats. 876* Format Conversion:: Conversion to and from various file formats.
877 877
878Visiting Files 878Visiting Files
@@ -884,7 +884,7 @@ Information about Files
884 884
885* Testing Accessibility:: Is a given file readable? Writable? 885* Testing Accessibility:: Is a given file readable? Writable?
886* Kinds of Files:: Is it a directory? A symbolic link? 886* Kinds of Files:: Is it a directory? A symbolic link?
887* Truenames:: Eliminating symbolic links from a file name. 887* Truenames:: Eliminating symbolic links from a file name.
888* File Attributes:: How large is it? Any other names? Etc. 888* File Attributes:: How large is it? Any other names? Etc.
889* Locating Files:: How to find a file in standard places. 889* Locating Files:: How to find a file in standard places.
890 890
@@ -954,8 +954,8 @@ Windows
954* Buffers and Windows:: Each window displays the contents of a buffer. 954* Buffers and Windows:: Each window displays the contents of a buffer.
955* Displaying Buffers:: Higher-level functions for displaying a buffer 955* Displaying Buffers:: Higher-level functions for displaying a buffer
956 and choosing a window for it. 956 and choosing a window for it.
957* Choosing Window:: How to choose a window for displaying a buffer. 957* Choosing Window:: How to choose a window for displaying a buffer.
958* Dedicated Windows:: How to avoid displaying another buffer in 958* Dedicated Windows:: How to avoid displaying another buffer in
959 a specific window. 959 a specific window.
960* Window Point:: Each window has its own location of point. 960* Window Point:: Each window has its own location of point.
961* Window Start and End:: Buffer positions indicating which text is 961* Window Start and End:: Buffer positions indicating which text is
@@ -975,37 +975,37 @@ Windows
975 975
976Frames 976Frames
977 977
978* Creating Frames:: Creating additional frames. 978* Creating Frames:: Creating additional frames.
979* Multiple Terminals:: Displaying on several different devices. 979* Multiple Terminals:: Displaying on several different devices.
980* Frame Parameters:: Controlling frame size, position, font, etc. 980* Frame Parameters:: Controlling frame size, position, font, etc.
981* Terminal Parameters:: Parameters common for all frames on terminal. 981* Terminal Parameters:: Parameters common for all frames on terminal.
982* Frame Titles:: Automatic updating of frame titles. 982* Frame Titles:: Automatic updating of frame titles.
983* Deleting Frames:: Frames last until explicitly deleted. 983* Deleting Frames:: Frames last until explicitly deleted.
984* Finding All Frames:: How to examine all existing frames. 984* Finding All Frames:: How to examine all existing frames.
985* Frames and Windows:: A frame contains windows; 985* Frames and Windows:: A frame contains windows;
986 display of text always works through windows. 986 display of text always works through windows.
987* Minibuffers and Frames:: How a frame finds the minibuffer to use. 987* Minibuffers and Frames:: How a frame finds the minibuffer to use.
988* Input Focus:: Specifying the selected frame. 988* Input Focus:: Specifying the selected frame.
989* Visibility of Frames:: Frames may be visible or invisible, or icons. 989* Visibility of Frames:: Frames may be visible or invisible, or icons.
990* Raising and Lowering:: Raising a frame makes it hide other windows; 990* Raising and Lowering:: Raising a frame makes it hide other windows;
991 lowering it makes the others hide it. 991 lowering it makes the others hide it.
992* Frame Configurations:: Saving the state of all frames. 992* Frame Configurations:: Saving the state of all frames.
993* Mouse Tracking:: Getting events that say when the mouse moves. 993* Mouse Tracking:: Getting events that say when the mouse moves.
994* Mouse Position:: Asking where the mouse is, or moving it. 994* Mouse Position:: Asking where the mouse is, or moving it.
995* Pop-Up Menus:: Displaying a menu for the user to select from. 995* Pop-Up Menus:: Displaying a menu for the user to select from.
996* Dialog Boxes:: Displaying a box to ask yes or no. 996* Dialog Boxes:: Displaying a box to ask yes or no.
997* Pointer Shape:: Specifying the shape of the mouse pointer. 997* Pointer Shape:: Specifying the shape of the mouse pointer.
998* Window System Selections::Transferring text to and from other X clients. 998* Window System Selections::Transferring text to and from other X clients.
999* Drag and Drop:: Internals of Drag-and-Drop implementation. 999* Drag and Drop:: Internals of Drag-and-Drop implementation.
1000* Color Names:: Getting the definitions of color names. 1000* Color Names:: Getting the definitions of color names.
1001* Text Terminal Colors:: Defining colors for text-only terminals. 1001* Text Terminal Colors:: Defining colors for text-only terminals.
1002* Resources:: Getting resource values from the server. 1002* Resources:: Getting resource values from the server.
1003* Display Feature Testing:: Determining the features of a terminal. 1003* Display Feature Testing:: Determining the features of a terminal.
1004 1004
1005Frame Parameters 1005Frame Parameters
1006 1006
1007* Parameter Access:: How to change a frame's parameters. 1007* Parameter Access:: How to change a frame's parameters.
1008* Initial Parameters:: Specifying frame parameters when you make a frame. 1008* Initial Parameters:: Specifying frame parameters when you make a frame.
1009* Window Frame Parameters:: List of frame parameters for window systems. 1009* Window Frame Parameters:: List of frame parameters for window systems.
1010* Size and Position:: Changing the size and position of a frame. 1010* Size and Position:: Changing the size and position of a frame.
1011* Geometry:: Parsing geometry specifications. 1011* Geometry:: Parsing geometry specifications.
@@ -1064,7 +1064,7 @@ Text
1064 later use. 1064 later use.
1065* Undo:: Undoing changes to the text of a buffer. 1065* Undo:: Undoing changes to the text of a buffer.
1066* Maintaining Undo:: How to enable and disable undo information. 1066* Maintaining Undo:: How to enable and disable undo information.
1067 How to control how much information is kept. 1067 How to control how much information is kept.
1068* Filling:: Functions for explicit filling. 1068* Filling:: Functions for explicit filling.
1069* Margins:: How to specify margins for filling commands. 1069* Margins:: How to specify margins for filling commands.
1070* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix 1070* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix
@@ -1090,7 +1090,7 @@ The Kill Ring
1090* Kill Functions:: Functions that kill text. 1090* Kill Functions:: Functions that kill text.
1091* Yanking:: How yanking is done. 1091* Yanking:: How yanking is done.
1092* Yank Commands:: Commands that access the kill ring. 1092* Yank Commands:: Commands that access the kill ring.
1093* Low-Level Kill Ring:: Functions and variables for kill ring access. 1093* Low-Level Kill Ring:: Functions and variables for kill ring access.
1094* Internals of Kill Ring:: Variables that hold kill ring data. 1094* Internals of Kill Ring:: Variables that hold kill ring data.
1095 1095
1096Indentation 1096Indentation
@@ -1105,9 +1105,9 @@ Indentation
1105Text Properties 1105Text Properties
1106 1106
1107* Examining Properties:: Looking at the properties of one character. 1107* Examining Properties:: Looking at the properties of one character.
1108* Changing Properties:: Setting the properties of a range of text. 1108* Changing Properties:: Setting the properties of a range of text.
1109* Property Search:: Searching for where a property changes value. 1109* Property Search:: Searching for where a property changes value.
1110* Special Properties:: Particular properties with special meanings. 1110* Special Properties:: Particular properties with special meanings.
1111* Format Properties:: Properties for representing formatting of text. 1111* Format Properties:: Properties for representing formatting of text.
1112* Sticky Properties:: How inserted text gets properties from 1112* Sticky Properties:: How inserted text gets properties from
1113 neighboring text. 1113 neighboring text.
@@ -1117,8 +1117,8 @@ Text Properties
1117 do something when you click on them. 1117 do something when you click on them.
1118* Fields:: The @code{field} property defines 1118* Fields:: The @code{field} property defines
1119 fields within the buffer. 1119 fields within the buffer.
1120* Not Intervals:: Why text properties do not use 1120* Not Intervals:: Why text properties do not use
1121 Lisp-visible text intervals. 1121 Lisp-visible text intervals.
1122 1122
1123Non-@acronym{ASCII} Characters 1123Non-@acronym{ASCII} Characters
1124 1124
@@ -1161,7 +1161,7 @@ Searching and Matching
1161* POSIX Regexps:: Searching POSIX-style for the longest match. 1161* POSIX Regexps:: Searching POSIX-style for the longest match.
1162* Match Data:: Finding out which part of the text matched, 1162* Match Data:: Finding out which part of the text matched,
1163 after a string or regexp search. 1163 after a string or regexp search.
1164* Search and Replace:: Commands that loop, searching and replacing. 1164* Search and Replace:: Commands that loop, searching and replacing.
1165* Standard Regexps:: Useful regexps for finding sentences, pages,... 1165* Standard Regexps:: Useful regexps for finding sentences, pages,...
1166 1166
1167Regular Expressions 1167Regular Expressions
@@ -1178,9 +1178,9 @@ Syntax of Regular Expressions
1178 1178
1179The Match Data 1179The Match Data
1180 1180
1181* Replacing Match:: Replacing a substring that was matched. 1181* Replacing Match:: Replacing a substring that was matched.
1182* Simple Match Data:: Accessing single items of match data, 1182* Simple Match Data:: Accessing single items of match data,
1183 such as where a particular subexpression started. 1183 such as where a particular subexpression started.
1184* Entire Match Data:: Accessing the entire match data at once, as a list. 1184* Entire Match Data:: Accessing the entire match data at once, as a list.
1185* Saving Match Data:: Saving and restoring the match data. 1185* Saving Match Data:: Saving and restoring the match data.
1186 1186
@@ -1190,7 +1190,7 @@ Syntax Tables
1190* Syntax Descriptors:: How characters are classified. 1190* Syntax Descriptors:: How characters are classified.
1191* Syntax Table Functions:: How to create, examine and alter syntax tables. 1191* Syntax Table Functions:: How to create, examine and alter syntax tables.
1192* Syntax Properties:: Overriding syntax with text properties. 1192* Syntax Properties:: Overriding syntax with text properties.
1193* Motion and Syntax:: Moving over characters with certain syntaxes. 1193* Motion and Syntax:: Moving over characters with certain syntaxes.
1194* Parsing Expressions:: Parsing balanced expressions 1194* Parsing Expressions:: Parsing balanced expressions
1195 using the syntax table. 1195 using the syntax table.
1196* Standard Syntax Tables:: Syntax tables used by various major modes. 1196* Standard Syntax Tables:: Syntax tables used by various major modes.
@@ -1279,10 +1279,10 @@ Emacs Display
1279* Invisible Text:: Hiding part of the buffer text. 1279* Invisible Text:: Hiding part of the buffer text.
1280* Selective Display:: Hiding part of the buffer text (the old way). 1280* Selective Display:: Hiding part of the buffer text (the old way).
1281* Temporary Displays:: Displays that go away automatically. 1281* Temporary Displays:: Displays that go away automatically.
1282* Overlays:: Use overlays to highlight parts of the buffer. 1282* Overlays:: Use overlays to highlight parts of the buffer.
1283* Width:: How wide a character or string is on the screen. 1283* Width:: How wide a character or string is on the screen.
1284* Line Height:: Controlling the height of lines. 1284* Line Height:: Controlling the height of lines.
1285* Faces:: A face defines a graphics style 1285* Faces:: A face defines a graphics style
1286 for text characters: font, colors, etc. 1286 for text characters: font, colors, etc.
1287* Fringes:: Controlling window fringes. 1287* Fringes:: Controlling window fringes.
1288* Scroll Bars:: Controlling vertical scroll bars. 1288* Scroll Bars:: Controlling vertical scroll bars.
@@ -1291,9 +1291,9 @@ Emacs Display
1291* Buttons:: Adding clickable buttons to Emacs buffers. 1291* Buttons:: Adding clickable buttons to Emacs buffers.
1292* Abstract Display:: Emacs' Widget for Object Collections. 1292* Abstract Display:: Emacs' Widget for Object Collections.
1293* Blinking:: How Emacs shows the matching open parenthesis. 1293* Blinking:: How Emacs shows the matching open parenthesis.
1294* Usual Display:: The usual conventions for displaying 1294* Usual Display:: The usual conventions for displaying
1295 nonprinting chars. 1295 nonprinting chars.
1296* Display Tables:: How to specify other conventions. 1296* Display Tables:: How to specify other conventions.
1297* Beeping:: Audible signal to the user. 1297* Beeping:: Audible signal to the user.
1298* Window Systems:: Which window system is being used. 1298* Window Systems:: Which window system is being used.
1299 1299
@@ -1315,7 +1315,7 @@ Overlays
1315 1315
1316* Managing Overlays:: Creating and moving overlays. 1316* Managing Overlays:: Creating and moving overlays.
1317* Overlay Properties:: How to read and set properties. 1317* Overlay Properties:: How to read and set properties.
1318 What properties do to the screen display. 1318 What properties do to the screen display.
1319* Finding Overlays:: Searching for overlays. 1319* Finding Overlays:: Searching for overlays.
1320 1320
1321Faces 1321Faces
@@ -1395,14 +1395,14 @@ Operating System Interface
1395* Getting Out:: How exiting works (permanent or temporary). 1395* Getting Out:: How exiting works (permanent or temporary).
1396* System Environment:: Distinguish the name and kind of system. 1396* System Environment:: Distinguish the name and kind of system.
1397* User Identification:: Finding the name and user id of the user. 1397* User Identification:: Finding the name and user id of the user.
1398* Time of Day:: Getting the current time. 1398* Time of Day:: Getting the current time.
1399* Time Conversion:: Converting a time from numeric form to 1399* Time Conversion:: Converting a time from numeric form to
1400 calendrical data and vice versa. 1400 calendrical data and vice versa.
1401* Time Parsing:: Converting a time from numeric form to text 1401* Time Parsing:: Converting a time from numeric form to text
1402 and vice versa. 1402 and vice versa.
1403* Processor Run Time:: Getting the run time used by Emacs. 1403* Processor Run Time:: Getting the run time used by Emacs.
1404* Time Calculations:: Adding, subtracting, comparing times, etc. 1404* Time Calculations:: Adding, subtracting, comparing times, etc.
1405* Timers:: Setting a timer to call a function at a 1405* Timers:: Setting a timer to call a function at a
1406 certain time. 1406 certain time.
1407* Idle Timers:: Setting a timer to call a function when Emacs has 1407* Idle Timers:: Setting a timer to call a function when Emacs has
1408 been idle for a certain length of time. 1408 been idle for a certain length of time.
@@ -1429,8 +1429,8 @@ Getting Out of Emacs
1429 1429
1430Terminal Input 1430Terminal Input
1431 1431
1432* Input Modes:: Options for how input is processed. 1432* Input Modes:: Options for how input is processed.
1433* Recording Input:: Saving histories of recent or all input events. 1433* Recording Input:: Saving histories of recent or all input events.
1434 1434
1435Tips and Conventions 1435Tips and Conventions
1436 1436
@@ -1440,7 +1440,7 @@ Tips and Conventions
1440* Compilation Tips:: Making compiled code run fast. 1440* Compilation Tips:: Making compiled code run fast.
1441* Warning Tips:: Turning off compiler warnings. 1441* Warning Tips:: Turning off compiler warnings.
1442* Documentation Tips:: Writing readable documentation strings. 1442* Documentation Tips:: Writing readable documentation strings.
1443* Comment Tips:: Conventions for writing comments. 1443* Comment Tips:: Conventions for writing comments.
1444* Library Headers:: Standard headers for library packages. 1444* Library Headers:: Standard headers for library packages.
1445 1445
1446GNU Emacs Internals 1446GNU Emacs Internals
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index de7ebbc405e..704f3ad3321 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -22,8 +22,8 @@ windows.
22* Buffers and Windows:: Each window displays the contents of a buffer. 22* Buffers and Windows:: Each window displays the contents of a buffer.
23* Displaying Buffers:: Higher-level functions for displaying a buffer 23* Displaying Buffers:: Higher-level functions for displaying a buffer
24 and choosing a window for it. 24 and choosing a window for it.
25* Choosing Window:: How to choose a window for displaying a buffer. 25* Choosing Window:: How to choose a window for displaying a buffer.
26* Dedicated Windows:: How to avoid displaying another buffer in 26* Dedicated Windows:: How to avoid displaying another buffer in
27 a specific window. 27 a specific window.
28* Window Point:: Each window has its own location of point. 28* Window Point:: Each window has its own location of point.
29* Window Start and End:: Buffer positions indicating which text is 29* Window Start and End:: Buffer positions indicating which text is
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 4187d9909fd..2f8a89d4b3c 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,8 +1,46 @@
12010-07-10 Michael Albinus <michael.albinus@gmx.de>
2
3 * tramp.texi (Inline methods): Remove "kludgy" phrase.
4 (Filename Syntax): Describe port numbers.
5
62010-07-09 Michael Albinus <michael.albinus@gmx.de>
7
8 * dbus.texi (Top): Introduce Index. Emphasize "nil" whereever
9 forgotten.
10 (Type Conversion): Precise conversion of natural numbers.
11 (Errors and Events): Add "debugging" to concept index. Add variable
12 `dbus-debug'.
13
12010-07-04 Michael Albinus <michael.albinus@gmx.de> 142010-07-04 Michael Albinus <michael.albinus@gmx.de>
2 15
3 * dbus.texi (Receiving Method Calls): Add optional argument 16 * dbus.texi (Receiving Method Calls): Add optional argument
4 EMITS-SIGNAL to `dbus-register-property'. 17 EMITS-SIGNAL to `dbus-register-property'.
5 18
192010-06-27 Alex Schroeder <alex@gnu.org>
20
21 * nxml-mode.texi (Commands for locating a schema): Fix typo.
22
232010-06-24 Glenn Morris <rgm@gnu.org>
24
25 * ada-mode.texi, auth.texi, autotype.texi, calc.texi, cc-mode.texi:
26 * dired-x.texi, ebrowse.texi, ede.texi, edt.texi, eieio.texi:
27 * emacs-mime.texi, epa.texi, erc.texi, eshell.texi, eudc.texi:
28 * flymake.texi, gnus.texi, info.texi, mairix-el.texi, message.texi:
29 * newsticker.texi, org.texi, pgg.texi, rcirc.texi, reftex.texi:
30 * remember.texi, sasl.texi, semantic.texi, ses.texi, smtpmail.texi:
31 * speedbar.texi, tramp.texi, url.texi, viper.texi, widget.texi:
32 * woman.texi: Start direntry descriptions in column 32, per Texinfo
33 convention. Make them end with a period.
34
352010-06-23 Glenn Morris <rgm@gnu.org>
36
37 * autotype.texi, cl.texi, dired-x.texi, ebrowse.texi, ede.texi:
38 * eieio.texi, epa.texi, faq.texi, flymake.texi, forms.texi:
39 * gnus-faq.texi, idlwave.texi, mh-e.texi, nxml-mode.texi, org.texi:
40 * pcl-cvs.texi, pgg.texi, reftex.texi, sasl.texi, sc.texi,
41 * sem-user.texi, semantic.texi, sieve.texi, smtpmail.texi,
42 * speedbar.texi, vip.texi, viper.texi, widget.texi: Untabify.
43
62010-06-10 Glenn Morris <rgm@gnu.org> 442010-06-10 Glenn Morris <rgm@gnu.org>
7 45
8 * idlwave.texi (Load-Path Shadows): 46 * idlwave.texi (Load-Path Shadows):
@@ -6456,10 +6494,6 @@
6456 (INFO_TARGETS): Add ../info/cc-mode. 6494 (INFO_TARGETS): Add ../info/cc-mode.
6457 (DVI_TARGETS): Add cc-mode.dvi. 6495 (DVI_TARGETS): Add cc-mode.dvi.
6458 6496
64591996-05-25 Karl Heuer <kwzh@gnu.ai.mit.edu>
6460
6461 * Version 19.31 released.
6462
64631995-11-24 Richard Stallman <rms@mole.gnu.ai.mit.edu> 64971995-11-24 Richard Stallman <rms@mole.gnu.ai.mit.edu>
6464 6498
6465 * Version 19.30 released. 6499 * Version 19.30 released.
diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi
index 86d63e5ed9b..b746824df67 100644
--- a/doc/misc/ada-mode.texi
+++ b/doc/misc/ada-mode.texi
@@ -3,8 +3,8 @@
3@settitle Ada Mode 3@settitle Ada Mode
4 4
5@copying 5@copying
6Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 6Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
72005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 72007, 2008, 2009, 2010 Free Software Foundation, Inc.
8 8
9@quotation 9@quotation
10Permission is granted to copy, distribute and/or modify this document 10Permission is granted to copy, distribute and/or modify this document
@@ -22,7 +22,7 @@ developing GNU and promoting software freedom.''
22 22
23@dircategory Emacs 23@dircategory Emacs
24@direntry 24@direntry
25* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code. 25* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code.
26@end direntry 26@end direntry
27 27
28@titlepage 28@titlepage
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi
index a2c319c583f..85e691d4b62 100644
--- a/doc/misc/auth.texi
+++ b/doc/misc/auth.texi
@@ -31,7 +31,7 @@ license to the document, as described in section 6 of the license.
31 31
32@dircategory Emacs 32@dircategory Emacs
33@direntry 33@direntry
34* Auth-source: (auth). The Emacs auth-source library. 34* Auth-source: (auth). The Emacs auth-source library.
35@end direntry 35@end direntry
36 36
37@titlepage 37@titlepage
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index a2ea8ad2c11..3f7ad21f1d3 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -10,8 +10,8 @@
10@c @cindex autotypist 10@c @cindex autotypist
11 11
12@copying 12@copying
13Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004, 13Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004, 2005,
142005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 142006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -29,8 +29,8 @@ developing GNU and promoting software freedom.''
29 29
30@dircategory Emacs 30@dircategory Emacs
31@direntry 31@direntry
32* Autotype: (autotype). Convenient features for text that you enter frequently 32* Autotype: (autotype). Convenient features for text that you
33 in Emacs. 33 enter frequently in Emacs.
34@end direntry 34@end direntry
35 35
36@titlepage 36@titlepage
@@ -92,7 +92,7 @@ completions and expansions of text at point.
92 after point. 92 after point.
93* Autoinserting:: Filling up empty files as soon as you visit them. 93* Autoinserting:: Filling up empty files as soon as you visit them.
94* Copyrights:: Inserting and updating copyrights. 94* Copyrights:: Inserting and updating copyrights.
95* Executables:: Turning interpreter scripts into executables. 95* Executables:: Turning interpreter scripts into executables.
96* Timestamps:: Updating dates and times in modified files. 96* Timestamps:: Updating dates and times in modified files.
97* QuickURL:: Inserting URLs based on text at point. 97* QuickURL:: Inserting URLs based on text at point.
98* Tempo:: Flexible template insertion. 98* Tempo:: Flexible template insertion.
@@ -201,7 +201,7 @@ the output from @kbd{M-x list-abbrevs} to make it look like this:
201 201
202@example 202@example
203(c-mode-abbrev-table) 203(c-mode-abbrev-table)
204"if" 0 "" c-if 204"if" 0 "" c-if
205@end example 205@end example
206 206
207@noindent 207@noindent
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 12b8d8e162d..ab81cf1bca2 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -111,7 +111,7 @@ developing GNU and promoting software freedom.''
111 111
112@dircategory Emacs 112@dircategory Emacs
113@direntry 113@direntry
114* Calc: (calc). Advanced desk calculator and mathematical tool. 114* Calc: (calc). Advanced desk calculator and mathematical tool.
115@end direntry 115@end direntry
116 116
117@titlepage 117@titlepage
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index bfe09b64244..c1d8db80dae 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -180,8 +180,8 @@ developing GNU and promoting software freedom.''
180@comment here is by request from the FSF folks. 180@comment here is by request from the FSF folks.
181@dircategory Emacs 181@dircategory Emacs
182@direntry 182@direntry
183* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, 183* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C,
184 Java, Pike, AWK, and CORBA IDL code. 184 Java, Pike, AWK, and CORBA IDL code.
185@end direntry 185@end direntry
186 186
187@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 187@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index 39561341b0d..755b2f3f1b7 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -24,7 +24,7 @@ developing GNU and promoting software freedom.''
24 24
25@dircategory Emacs 25@dircategory Emacs
26@direntry 26@direntry
27* CL: (cl). Partial Common Lisp support for Emacs Lisp. 27* CL: (cl). Partial Common Lisp support for Emacs Lisp.
28@end direntry 28@end direntry
29 29
30@finalout 30@finalout
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi
index 43e92785082..248884532df 100644
--- a/doc/misc/dbus.texi
+++ b/doc/misc/dbus.texi
@@ -5,6 +5,9 @@
5@c @setchapternewpage odd 5@c @setchapternewpage odd
6@c %**end of header 6@c %**end of header
7 7
8@syncodeindex vr cp
9@syncodeindex fn cp
10
8@copying 11@copying
9Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 12Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
10 13
@@ -51,6 +54,8 @@ another. An overview of D-Bus can be found at
51* Receiving Method Calls:: Offering own methods. 54* Receiving Method Calls:: Offering own methods.
52* Signals:: Sending and receiving signals. 55* Signals:: Sending and receiving signals.
53* Errors and Events:: Errors and events. 56* Errors and Events:: Errors and events.
57* Index:: Index including concepts, functions, variables.
58
54* GNU Free Documentation License:: The license for this documentation. 59* GNU Free Documentation License:: The license for this documentation.
55@end menu 60@end menu
56 61
@@ -418,7 +423,8 @@ Example:
418@result{} "/org/freedesktop/SystemToolsBackends/UsersConfig" 423@result{} "/org/freedesktop/SystemToolsBackends/UsersConfig"
419@end lisp 424@end lisp
420 425
421If @var{object} has no @var{attribute}, the function returns nil. 426If @var{object} has no @var{attribute}, the function returns
427@code{nil}.
422@end defun 428@end defun
423 429
424 430
@@ -669,7 +675,7 @@ A @var{property} value can be retrieved by the function
669@defun dbus-get-property bus service path interface property 675@defun dbus-get-property bus service path interface property
670This function returns the value of @var{property} of @var{interface}. 676This function returns the value of @var{property} of @var{interface}.
671It will be checked at @var{bus}, @var{service}, @var{path}. The 677It will be checked at @var{bus}, @var{service}, @var{path}. The
672result can be any valid D-Bus value, or nil if there is no 678result can be any valid D-Bus value, or @code{nil} if there is no
673@var{property}. Example: 679@var{property}. Example:
674 680
675@lisp 681@lisp
@@ -863,12 +869,12 @@ Lisp function call. The following mapping to D-Bus types is
863applied, when the corresponding D-Bus message is created: 869applied, when the corresponding D-Bus message is created:
864 870
865@example 871@example
866@multitable {@code{t} and @code{nil}} {@expansion{}} {DBUS_TYPE_BOOLEAN} 872@multitable {negative integer} {@expansion{}} {DBUS_TYPE_BOOLEAN}
867@item Lisp type @tab @tab D-Bus type 873@item Lisp type @tab @tab D-Bus type
868@item 874@item
869@item @code{t} and @code{nil} @tab @expansion{} @tab DBUS_TYPE_BOOLEAN 875@item @code{t} and @code{nil} @tab @expansion{} @tab DBUS_TYPE_BOOLEAN
870@item number @tab @expansion{} @tab DBUS_TYPE_UINT32 876@item natural number @tab @expansion{} @tab DBUS_TYPE_UINT32
871@item integer @tab @expansion{} @tab DBUS_TYPE_INT32 877@item negative integer @tab @expansion{} @tab DBUS_TYPE_INT32
872@item float @tab @expansion{} @tab DBUS_TYPE_DOUBLE 878@item float @tab @expansion{} @tab DBUS_TYPE_DOUBLE
873@item string @tab @expansion{} @tab DBUS_TYPE_STRING 879@item string @tab @expansion{} @tab DBUS_TYPE_STRING
874@item list @tab @expansion{} @tab DBUS_TYPE_ARRAY 880@item list @tab @expansion{} @tab DBUS_TYPE_ARRAY
@@ -889,19 +895,19 @@ types are represented by the type symbols @code{:byte},
889Example: 895Example:
890 896
891@lisp 897@lisp
892(dbus-call-method @dots{} @var{NUMBER} @var{STRING}) 898(dbus-call-method @dots{} @var{NAT-NUMBER} @var{STRING})
893@end lisp 899@end lisp
894 900
895is equivalent to 901is equivalent to
896 902
897@lisp 903@lisp
898(dbus-call-method @dots{} :uint32 @var{NUMBER} :string @var{STRING}) 904(dbus-call-method @dots{} :uint32 @var{NAT-NUMBER} :string @var{STRING})
899@end lisp 905@end lisp
900 906
901but different to 907but different to
902 908
903@lisp 909@lisp
904(dbus-call-method @dots{} :int32 @var{NUMBER} :signature @var{STRING}) 910(dbus-call-method @dots{} :int32 @var{NAT-NUMBER} :signature @var{STRING})
905@end lisp 911@end lisp
906 912
907The value for a byte D-Bus type can be any integer in the range 0 913The value for a byte D-Bus type can be any integer in the range 0
@@ -994,17 +1000,17 @@ Output parameters of D-Bus methods and signals are mapped to Lisp
994objects. 1000objects.
995 1001
996@example 1002@example
997@multitable {DBUS_TYPE_OBJECT_PATH} {@expansion{}} {@code{t} or @code{nil}} 1003@multitable {DBUS_TYPE_OBJECT_PATH} {@expansion{}} {natural number or float}
998@item D-Bus type @tab @tab Lisp type 1004@item D-Bus type @tab @tab Lisp type
999@item 1005@item
1000@item DBUS_TYPE_BOOLEAN @tab @expansion{} @tab @code{t} or @code{nil} 1006@item DBUS_TYPE_BOOLEAN @tab @expansion{} @tab @code{t} or @code{nil}
1001@item DBUS_TYPE_BYTE @tab @expansion{} @tab number 1007@item DBUS_TYPE_BYTE @tab @expansion{} @tab natural number
1002@item DBUS_TYPE_UINT16 @tab @expansion{} @tab number 1008@item DBUS_TYPE_UINT16 @tab @expansion{} @tab natural number
1003@item DBUS_TYPE_INT16 @tab @expansion{} @tab number 1009@item DBUS_TYPE_INT16 @tab @expansion{} @tab integer
1004@item DBUS_TYPE_UINT32 @tab @expansion{} @tab number or float 1010@item DBUS_TYPE_UINT32 @tab @expansion{} @tab natural number or float
1005@item DBUS_TYPE_INT32 @tab @expansion{} @tab number or float 1011@item DBUS_TYPE_INT32 @tab @expansion{} @tab integer or float
1006@item DBUS_TYPE_UINT64 @tab @expansion{} @tab number or float 1012@item DBUS_TYPE_UINT64 @tab @expansion{} @tab natural number or float
1007@item DBUS_TYPE_INT64 @tab @expansion{} @tab number or float 1013@item DBUS_TYPE_INT64 @tab @expansion{} @tab integer or float
1008@item DBUS_TYPE_DOUBLE @tab @expansion{} @tab float 1014@item DBUS_TYPE_DOUBLE @tab @expansion{} @tab float
1009@item DBUS_TYPE_STRING @tab @expansion{} @tab string 1015@item DBUS_TYPE_STRING @tab @expansion{} @tab string
1010@item DBUS_TYPE_OBJECT_PATH @tab @expansion{} @tab string 1016@item DBUS_TYPE_OBJECT_PATH @tab @expansion{} @tab string
@@ -1030,7 +1036,7 @@ The signal @code{PropertyModified}, discussed as example in
1030(@var{BOOL} stands here for either @code{nil} or @code{t}): 1036(@var{BOOL} stands here for either @code{nil} or @code{t}):
1031 1037
1032@lisp 1038@lisp
1033(@var{NUMBER} ((@var{STRING} @var{BOOL} @var{BOOL}) (@var{STRING} @var{BOOL} @var{BOOL}) @dots{})) 1039(@var{INTEGER} ((@var{STRING} @var{BOOL} @var{BOOL}) (@var{STRING} @var{BOOL} @var{BOOL}) @dots{}))
1034@end lisp 1040@end lisp
1035 1041
1036@defun dbus-byte-array-to-string byte-array 1042@defun dbus-byte-array-to-string byte-array
@@ -1388,8 +1394,9 @@ only way to change their values. Properties with access type
1388The interface @samp{org.freedesktop.DBus.Properties} is added to 1394The interface @samp{org.freedesktop.DBus.Properties} is added to
1389@var{path}, including a default handler for the @samp{Get}, 1395@var{path}, including a default handler for the @samp{Get},
1390@samp{GetAll} and @samp{Set} methods of this interface. When 1396@samp{GetAll} and @samp{Set} methods of this interface. When
1391@var{emits-signal} is non-nil, the signal @samp{PropertiesChanged} is 1397@var{emits-signal} is non-@code{nil}, the signal
1392sent when the property is changed by @code{dbus-set-property}. 1398@samp{PropertiesChanged} is sent when the property is changed by
1399@code{dbus-set-property}.
1393 1400
1394@noindent Example: 1401@noindent Example:
1395 1402
@@ -1574,9 +1581,16 @@ which objects the GNU/Linux @code{hal} daemon adds.
1574 1581
1575@node Errors and Events 1582@node Errors and Events
1576@chapter Errors and events. 1583@chapter Errors and events.
1584@cindex debugging
1577@cindex errors 1585@cindex errors
1578@cindex events 1586@cindex events
1579 1587
1588The internal actions can be traced by running in a debug mode.
1589
1590@defvar dbus-debug
1591If this variable is non-@code{nil}, D-Bus specific debug messages are raised.
1592@end defvar
1593
1580Input parameters of @code{dbus-call-method}, 1594Input parameters of @code{dbus-call-method},
1581@code{dbus-call-method-non-blocking}, 1595@code{dbus-call-method-non-blocking},
1582@code{dbus-call-method-asynchronously}, and 1596@code{dbus-call-method-asynchronously}, and
@@ -1591,8 +1605,7 @@ appended to the @code{dbus-error}.
1591@defspec dbus-ignore-errors forms@dots{} 1605@defspec dbus-ignore-errors forms@dots{}
1592This executes @var{forms} exactly like a @code{progn}, except that 1606This executes @var{forms} exactly like a @code{progn}, except that
1593@code{dbus-error} errors are ignored during the @var{forms}. These 1607@code{dbus-error} errors are ignored during the @var{forms}. These
1594errors can be made visible when variable @code{dbus-debug} is set to 1608errors can be made visible when @code{dbus-debug} is set to @code{t}.
1595@code{t}.
1596@end defspec 1609@end defspec
1597 1610
1598Incoming D-Bus messages are handled as Emacs events, see @pxref{Misc 1611Incoming D-Bus messages are handled as Emacs events, see @pxref{Misc
@@ -1640,12 +1653,12 @@ The result is either the symbol @code{:system} or the symbol @code{:session}.
1640 1653
1641@defun dbus-event-message-type event 1654@defun dbus-event-message-type event
1642Returns the message type of the corresponding D-Bus message. The 1655Returns the message type of the corresponding D-Bus message. The
1643result is a number. 1656result is a natural number.
1644@end defun 1657@end defun
1645 1658
1646@defun dbus-event-serial-number event 1659@defun dbus-event-serial-number event
1647Returns the serial number of the corresponding D-Bus message. 1660Returns the serial number of the corresponding D-Bus message.
1648The result is a number. 1661The result is a natural number.
1649@end defun 1662@end defun
1650 1663
1651@defun dbus-event-service-name event 1664@defun dbus-event-service-name event
@@ -1695,6 +1708,12 @@ D-Bus applications running. Therefore, they shall check carefully,
1695whether a given D-Bus error is related to them. 1708whether a given D-Bus error is related to them.
1696 1709
1697 1710
1711@node Index
1712@unnumbered Index
1713
1714@printindex cp
1715
1716
1698@node GNU Free Documentation License 1717@node GNU Free Documentation License
1699@appendix GNU Free Documentation License 1718@appendix GNU Free Documentation License
1700@include doclicense.texi 1719@include doclicense.texi
diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi
index 5e70153f9a2..0d05833d0ac 100644
--- a/doc/misc/dired-x.texi
+++ b/doc/misc/dired-x.texi
@@ -3,7 +3,7 @@
3@c dired-x.texi --- Sebastian Kremer's Extra DIRED hacked up for GNU Emacs 3@c dired-x.texi --- Sebastian Kremer's Extra DIRED hacked up for GNU Emacs
4@c 4@c
5@c Author: Sebastian Kremer <sk@thp.uni-koeln.de> 5@c Author: Sebastian Kremer <sk@thp.uni-koeln.de>
6@c Lawrence R. Dodd <dodd@roebling.poly.edu> 6@c Lawrence R. Dodd <dodd@roebling.poly.edu>
7@c [Dodd's address no longer valid.] 7@c [Dodd's address no longer valid.]
8 8
9@comment %**start of header (This is for running Texinfo on a region.) 9@comment %**start of header (This is for running Texinfo on a region.)
@@ -14,7 +14,7 @@
14@iftex 14@iftex
15@finalout 15@finalout
16@end iftex 16@end iftex
17@c @setchapternewpage odd % For book style double sided manual. 17@c @setchapternewpage odd % For book style double sided manual.
18@comment %**end of header (This is for running Texinfo on a region.) 18@comment %**end of header (This is for running Texinfo on a region.)
19 19
20@copying 20@copying
@@ -37,7 +37,7 @@ developing GNU and promoting software freedom.''
37 37
38@dircategory Emacs 38@dircategory Emacs
39@direntry 39@direntry
40* Dired-X: (dired-x). Dired Extra Features. 40* Dired-X: (dired-x). Dired Extra Features.
41@end direntry 41@end direntry
42 42
43@c @smallbook 43@c @smallbook
diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi
index 2c9df216681..86cae35a6f4 100644
--- a/doc/misc/ebrowse.texi
+++ b/doc/misc/ebrowse.texi
@@ -29,7 +29,7 @@ developing GNU and promoting software freedom.''
29 29
30@dircategory Emacs 30@dircategory Emacs
31@direntry 31@direntry
32* Ebrowse: (ebrowse). A C++ class browser for Emacs. 32* Ebrowse: (ebrowse). A C++ class browser for Emacs.
33@end direntry 33@end direntry
34 34
35@titlepage 35@titlepage
@@ -55,14 +55,14 @@ Ebrowse.
55@end ifnottex 55@end ifnottex
56 56
57@menu 57@menu
58* Overview:: What is it and how does it work? 58* Overview:: What is it and how does it work?
59* Generating browser files:: How to process C++ source files 59* Generating browser files:: How to process C++ source files
60* Loading a Tree:: How to start browsing 60* Loading a Tree:: How to start browsing
61* Tree Buffers:: Traversing class hierarchies 61* Tree Buffers:: Traversing class hierarchies
62* Member Buffers:: Looking at member information 62* Member Buffers:: Looking at member information
63* Tags-like Functions:: Finding members from source files 63* Tags-like Functions:: Finding members from source files
64* GNU Free Documentation License:: The license for this documentation. 64* GNU Free Documentation License:: The license for this documentation.
65* Concept Index:: An entry for each concept defined 65* Concept Index:: An entry for each concept defined
66@end menu 66@end menu
67 67
68 68
@@ -215,10 +215,10 @@ When invoked with option @samp{--help}, @command{ebrowse} prints a list of
215available command line options.@refill 215available command line options.@refill
216 216
217@menu 217@menu
218* Input files:: Specifying which files to parse 218* Input files:: Specifying which files to parse
219* Output file:: Changing the output file name 219* Output file:: Changing the output file name
220* Structs and unions:: Omitting @code{struct}s and @code{union}s 220* Structs and unions:: Omitting @code{struct}s and @code{union}s
221* Matching:: Setting regular expression lengths 221* Matching:: Setting regular expression lengths
222* Verbosity:: Getting feedback for lengthy operations 222* Verbosity:: Getting feedback for lengthy operations
223@end menu 223@end menu
224 224
@@ -454,17 +454,17 @@ Tree-specific commands are bound to simple keystrokes, similar to
454buffers. 454buffers.
455 455
456@menu 456@menu
457* Source Display:: Viewing and finding a class declaration 457* Source Display:: Viewing and finding a class declaration
458* Member Display:: Showing members, switching to member buffers 458* Member Display:: Showing members, switching to member buffers
459* Go to Class:: Finding a class 459* Go to Class:: Finding a class
460* Quitting:: Discarding and burying the tree buffer 460* Quitting:: Discarding and burying the tree buffer
461* File Name Display:: Showing file names in the tree 461* File Name Display:: Showing file names in the tree
462* Expanding and Collapsing:: Expanding and collapsing branches 462* Expanding and Collapsing:: Expanding and collapsing branches
463* Tree Indentation:: Changing the tree indentation 463* Tree Indentation:: Changing the tree indentation
464* Killing Classes:: Removing class from the tree 464* Killing Classes:: Removing class from the tree
465* Saving a Tree:: Saving a modified tree 465* Saving a Tree:: Saving a modified tree
466* Statistics:: Displaying class tree statistics 466* Statistics:: Displaying class tree statistics
467* Marking Classes:: Marking and unmarking classes 467* Marking Classes:: Marking and unmarking classes
468@end menu 468@end menu
469 469
470 470
@@ -625,17 +625,15 @@ given by a prefix argument.
625Here is an example of a tree buffer with file names displayed. 625Here is an example of a tree buffer with file names displayed.
626 626
627@example 627@example
628| Collection (unknown) 628| Collection (unknown)
629| IndexedCollection (indexedcltn.h) 629| IndexedCollection (indexedcltn.h)
630| Array (array.h) 630| Array (array.h)
631| FixedArray (fixedarray.h) 631| FixedArray (fixedarray.h)
632| Set (set.h) 632| Set (set.h)
633| Dictionary (dict.h) 633| Dictionary (dict.h)
634@end example 634@end example
635 635
636 636
637
638
639@node Expanding and Collapsing, Tree Indentation, File Name Display, Tree Buffers 637@node Expanding and Collapsing, Tree Indentation, File Name Display, Tree Buffers
640@comment node-name, next, previous, up 638@comment node-name, next, previous, up
641@section Expanding and Collapsing a Tree 639@section Expanding and Collapsing a Tree
@@ -818,20 +816,20 @@ like in tree buffers, menus are provided for certain areas in the
818buffer: members, classes, and the buffer itself. 816buffer: members, classes, and the buffer itself.
819 817
820@menu 818@menu
821* Switching Member Lists:: Choosing which members to display 819* Switching Member Lists:: Choosing which members to display
822* Finding/Viewing:: Modifying source code 820* Finding/Viewing:: Modifying source code
823* Inherited Members:: Display of Inherited Members 821* Inherited Members:: Display of Inherited Members
824* Searching Members:: Finding members in member buffer 822* Searching Members:: Finding members in member buffer
825* Switching to Tree:: Going back to the tree buffer 823* Switching to Tree:: Going back to the tree buffer
826* Filters:: Selective member display 824* Filters:: Selective member display
827* Attributes:: Display of @code{virtual} etc. 825* Attributes:: Display of @code{virtual} etc.
828* Long and Short Display:: Comprehensive and verbose display 826* Long and Short Display:: Comprehensive and verbose display
829* Regexp Display:: Showing matching regular expressions 827* Regexp Display:: Showing matching regular expressions
830* Switching Classes:: Displaying another class 828* Switching Classes:: Displaying another class
831* Killing/Burying:: Getting rid of the member buffer 829* Killing/Burying:: Getting rid of the member buffer
832* Column Width:: Display style 830* Column Width:: Display style
833* Redisplay:: Redrawing the member list 831* Redisplay:: Redrawing the member list
834* Getting Help:: How to get help for key bindings 832* Getting Help:: How to get help for key bindings
835@end menu 833@end menu
836 834
837 835
@@ -1234,7 +1232,7 @@ This key is bound to @code{describe-mode}.
1234 1232
1235 1233
1236@comment ************************************************************** 1234@comment **************************************************************
1237@comment *** TAGS LIKE FUNCTIONS 1235@comment *** TAGS LIKE FUNCTIONS
1238@comment ************************************************************** 1236@comment **************************************************************
1239 1237
1240@node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top 1238@node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top
@@ -1245,14 +1243,14 @@ Ebrowse provides tags functions similar to those of the standard
1245Emacs Tags facility, but better suited to the needs of C++ programmers. 1243Emacs Tags facility, but better suited to the needs of C++ programmers.
1246 1244
1247@menu 1245@menu
1248* Finding and Viewing:: Going to a member declaration/definition 1246* Finding and Viewing:: Going to a member declaration/definition
1249* Position Stack:: Moving to previous locations 1247* Position Stack:: Moving to previous locations
1250* Search & Replace:: Searching and replacing over class tree files 1248* Search & Replace:: Searching and replacing over class tree files
1251* Members in Files:: Listing all members in a given file 1249* Members in Files:: Listing all members in a given file
1252* Apropos:: Listing members matching a regular expression 1250* Apropos:: Listing members matching a regular expression
1253* Symbol Completion:: Completing names while editing 1251* Symbol Completion:: Completing names while editing
1254* Member Buffer Display:: Quickly display a member buffer for some 1252* Member Buffer Display:: Quickly display a member buffer for some
1255 identifier 1253 identifier
1256@end menu 1254@end menu
1257 1255
1258 1256
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index ace3c25914d..7e1d6c7907a 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -5,8 +5,8 @@
5@copying 5@copying
6This file describes EDE, the Emacs Development Environment. 6This file describes EDE, the Emacs Development Environment.
7 7
8Copyright @copyright{} 1998, 1999, 2000, 2001, 2004, 2005, 2008, 2009, 2010 8Copyright @copyright{} 1998, 1999, 2000, 2001, 2004, 2005, 2008, 2009,
9Free Software Foundation, Inc. 92010 Free Software Foundation, Inc.
10 10
11@quotation 11@quotation
12Permission is granted to copy, distribute and/or modify this document 12Permission is granted to copy, distribute and/or modify this document
@@ -24,7 +24,7 @@ developing GNU and promoting software freedom.''
24 24
25@dircategory Emacs 25@dircategory Emacs
26@direntry 26@direntry
27* ede: (ede). Project management for Emacs 27* ede: (ede). Project management for Emacs.
28@end direntry 28@end direntry
29 29
30@titlepage 30@titlepage
@@ -404,8 +404,8 @@ lookup for @semantic{}, improving code completion performance.
404@menu 404@menu
405* ede-cpp-root:: This project marks the root of a C/C++ code project. 405* ede-cpp-root:: This project marks the root of a C/C++ code project.
406* ede-simple subclassing:: Create your own simple project. 406* ede-simple subclassing:: Create your own simple project.
407* ede-emacs:: A project for working with Emacs. 407* ede-emacs:: A project for working with Emacs.
408* ede-linux:: A project for working with Linux kernels. 408* ede-linux:: A project for working with Linux kernels.
409* Custom Locate:: Customizing how to locate files in a simple project 409* Custom Locate:: Customizing how to locate files in a simple project
410@end menu 410@end menu
411 411
@@ -525,14 +525,14 @@ Return nil if there isn't one."
525 ) 525 )
526 526
527(add-to-list 'ede-project-class-files 527(add-to-list 'ede-project-class-files
528 (ede-project-autoload "cpp-root" 528 (ede-project-autoload "cpp-root"
529 :name "CPP ROOT" 529 :name "CPP ROOT"
530 :file 'ede-cpp-root 530 :file 'ede-cpp-root
531 :proj-file 'MY-FILE-FOR-DIR 531 :proj-file 'MY-FILE-FOR-DIR
532 :proj-root 'MY-ROOT-FCN 532 :proj-root 'MY-ROOT-FCN
533 :load-type 'MY-LOAD 533 :load-type 'MY-LOAD
534 :class-sym 'ede-cpp-root) 534 :class-sym 'ede-cpp-root)
535 t) 535 t)
536@end example 536@end example
537 537
538This example only creates an auto-loader, and does not create a new kind 538This example only creates an auto-loader, and does not create a new kind
@@ -751,9 +751,9 @@ Here is an example for an instantiation of an Emacs Lisp source code object:
751@example 751@example
752(defvar ede-source-emacs 752(defvar ede-source-emacs
753 (ede-sourcecode "ede-emacs-source" 753 (ede-sourcecode "ede-emacs-source"
754 :name "Emacs Lisp" 754 :name "Emacs Lisp"
755 :sourcepattern "\\.el$" 755 :sourcepattern "\\.el$"
756 :garbagepattern '("*.elc")) 756 :garbagepattern '("*.elc"))
757 "Emacs Lisp source code definition.") 757 "Emacs Lisp source code definition.")
758@end example 758@end example
759 759
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index a93aada07a1..d394137d76b 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -25,7 +25,7 @@ developing GNU and promoting software freedom.''
25 25
26@dircategory Emacs 26@dircategory Emacs
27@direntry 27@direntry
28* EDT: (edt). An Emacs emulation of the EDT editor. 28* EDT: (edt). An Emacs emulation of the EDT editor.
29@end direntry 29@end direntry
30 30
31@titlepage 31@titlepage
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index b5567f3a489..169e52c1bd0 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -29,7 +29,7 @@ developing GNU and promoting software freedom.''
29 29
30@dircategory Emacs 30@dircategory Emacs
31@direntry 31@direntry
32* eieio: (eieio). Objects for Emacs 32* eieio: (eieio). Objects for Emacs.
33@end direntry 33@end direntry
34 34
35@titlepage 35@titlepage
@@ -295,8 +295,8 @@ This option is here to support programs written with older versions of
295 295
296@menu 296@menu
297* Inheritance:: How to specify parents classes 297* Inheritance:: How to specify parents classes
298* Slot Options:: How to specify features of a slot. 298* Slot Options:: How to specify features of a slot.
299* Class Options:: How to specify features for this class. 299* Class Options:: How to specify features for this class.
300@end menu 300@end menu
301 301
302@node Inheritance 302@node Inheritance
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 0ce94bfcf69..713a55c7cc7 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -31,7 +31,7 @@ developing GNU and promoting software freedom.''
31 31
32@dircategory Emacs 32@dircategory Emacs
33@direntry 33@direntry
34* Emacs MIME: (emacs-mime). Emacs MIME de/composition library. 34* Emacs MIME: (emacs-mime). Emacs MIME de/composition library.
35@end direntry 35@end direntry
36@iftex 36@iftex
37@finalout 37@finalout
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index b02e41e914b..f9c48b1588a 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -33,7 +33,7 @@ license to the document, as described in section 6 of the license.
33 33
34@dircategory Emacs 34@dircategory Emacs
35@direntry 35@direntry
36* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard. 36* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard.
37@end direntry 37@end direntry
38 38
39@titlepage 39@titlepage
@@ -142,15 +142,15 @@ about the key you selected.
142@example 142@example
143 u Daiki Ueno <ueno@@unixuser.org> 143 u Daiki Ueno <ueno@@unixuser.org>
144 u A5B6B2D4B15813FE 1024bits DSA 144 u A5B6B2D4B15813FE 1024bits DSA
145 Created: 2001-10-09 145 Created: 2001-10-09
146 Expires: 2007-09-04 146 Expires: 2007-09-04
147 Capabilities: sign certify 147 Capabilities: sign certify
148 Fingerprint: 8003 7CD0 0F1A 9400 03CA 50AA A5B6 B2D4 B158 13FE 148 Fingerprint: 8003 7CD0 0F1A 9400 03CA 50AA A5B6 B2D4 B158 13FE
149 u 4447461B2A9BEA2D 2048bits ELGAMAL_E 149 u 4447461B2A9BEA2D 2048bits ELGAMAL_E
150 Created: 2001-10-09 150 Created: 2001-10-09
151 Expires: 2007-09-04 151 Expires: 2007-09-04
152 Capabilities: encrypt 152 Capabilities: encrypt
153 Fingerprint: 9003 D76B 73B7 4A8A E588 10AF 4447 461B 2A9B EA2D 153 Fingerprint: 9003 D76B 73B7 4A8A E588 10AF 4447 461B 2A9B EA2D
154@end example 154@end example
155 155
156@noindent 156@noindent
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index 537a34b6d68..1c547bf80e5 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -8,7 +8,8 @@
8@copying 8@copying
9This manual is for ERC version 5.3. 9This manual is for ERC version 5.3.
10 10
11Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 11Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010
12Free Software Foundation, Inc.
12 13
13@quotation 14@quotation
14Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -29,7 +30,7 @@ and modified without restriction.
29 30
30@dircategory Emacs 31@dircategory Emacs
31@direntry 32@direntry
32* ERC: (erc). Powerful, modular, and extensible IRC client for Emacs. 33* ERC: (erc). Powerful and extensible IRC client for Emacs.
33@end direntry 34@end direntry
34 35
35@titlepage 36@titlepage
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 96825559197..6ec431dccfd 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -8,8 +8,8 @@
8@copying 8@copying
9This manual is for Eshell, the Emacs shell. 9This manual is for Eshell, the Emacs shell.
10 10
11Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 11Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
122005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 122007, 2008, 2009, 2010 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -27,7 +27,7 @@ developing GNU and promoting software freedom.''
27 27
28@dircategory Emacs 28@dircategory Emacs
29@direntry 29@direntry
30* Eshell: (eshell). A command shell implemented in Emacs Lisp. 30* Eshell: (eshell). A command shell implemented in Emacs Lisp.
31@end direntry 31@end direntry
32 32
33@titlepage 33@titlepage
diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi
index 09d7f5cb5a8..48606e0d664 100644
--- a/doc/misc/eudc.texi
+++ b/doc/misc/eudc.texi
@@ -31,7 +31,7 @@ developing GNU and promoting software freedom.''
31 31
32@dircategory Emacs 32@dircategory Emacs
33@direntry 33@direntry
34* EUDC: (eudc). An Emacs client for directory servers (LDAP, PH). 34* EUDC: (eudc). Emacs client for directory servers (LDAP, PH).
35@end direntry 35@end direntry
36 36
37@footnotestyle end 37@footnotestyle end
diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi
index 924240aeb53..f4dc0247197 100644
--- a/doc/misc/faq.texi
+++ b/doc/misc/faq.texi
@@ -41,7 +41,7 @@ distribution.]
41 41
42@dircategory Emacs 42@dircategory Emacs
43@direntry 43@direntry
44* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. 44* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs.
45@end direntry 45@end direntry
46 46
47@c The @titlepage stuff only appears in the printed version 47@c The @titlepage stuff only appears in the printed version
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 764c6481641..0606fcc134d 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -11,8 +11,8 @@
11This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), 11This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}),
12which is a universal on-the-fly syntax checker for GNU Emacs. 12which is a universal on-the-fly syntax checker for GNU Emacs.
13 13
14Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software 14Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010
15Foundation, Inc. 15Free Software Foundation, Inc.
16 16
17@quotation 17@quotation
18Permission is granted to copy, distribute and/or modify this document 18Permission is granted to copy, distribute and/or modify this document
@@ -30,7 +30,7 @@ developing GNU and promoting software freedom.''
30 30
31@dircategory Emacs 31@dircategory Emacs
32@direntry 32@direntry
33* Flymake: (flymake). A universal on-the-fly syntax checker. 33* Flymake: (flymake). A universal on-the-fly syntax checker.
34@end direntry 34@end direntry
35 35
36@titlepage 36@titlepage
@@ -409,7 +409,7 @@ First, we write the @code{init-function}:
409(defun flymake-perl-init () 409(defun flymake-perl-init ()
410 (let* ((temp-file (flymake-init-create-temp-buffer-copy 410 (let* ((temp-file (flymake-init-create-temp-buffer-copy
411 'flymake-create-temp-inplace)) 411 'flymake-create-temp-inplace))
412 (local-file (file-relative-name 412 (local-file (file-relative-name
413 temp-file 413 temp-file
414 (file-name-directory buffer-file-name)))) 414 (file-name-directory buffer-file-name))))
415 (list "perl" (list "-wc " local-file)))) 415 (list "perl" (list "-wc " local-file))))
diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi
index 614844fd6c2..a7779763c3f 100644
--- a/doc/misc/forms.texi
+++ b/doc/misc/forms.texi
@@ -1,4 +1,4 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@c documentation for forms-mode 2@c documentation for forms-mode
3@c Written by Johan Vromans, and edited by Richard Stallman 3@c Written by Johan Vromans, and edited by Richard Stallman
4 4
@@ -37,8 +37,8 @@ developing GNU and promoting software freedom.''
37 37
38@dircategory Emacs 38@dircategory Emacs
39@direntry 39@direntry
40* Forms: (forms). Emacs package for editing data bases 40* Forms: (forms). Emacs package for editing data bases
41 by filling in forms. 41 by filling in forms.
42@end direntry 42@end direntry
43 43
44@titlepage 44@titlepage
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 2b3c0aa5e25..78a22740e32 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -1,8 +1,8 @@
1@c \input texinfo @c -*-texinfo-*- 1@c \input texinfo @c -*-texinfo-*-
2@c Uncomment 1st line before texing this file alone. 2@c Uncomment 1st line before texing this file alone.
3@c %**start of header 3@c %**start of header
4@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 4@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
5@c 2008, 2009, 2010 Free Software Foundation, Inc. 5@c 2009, 2010 Free Software Foundation, Inc.
6@c 6@c
7@c Do not modify this file, it was generated from gnus-faq.xml, available from 7@c Do not modify this file, it was generated from gnus-faq.xml, available from
8@c <URL:http://my.gnus.org/FAQ/>. 8@c <URL:http://my.gnus.org/FAQ/>.
@@ -550,7 +550,7 @@ want something different, change the line above to something like this:
550@example 550@example
551(add-to-list 'gnus-secondary-select-methods 551(add-to-list 'gnus-secondary-select-methods
552 '(nnspool "" 552 '(nnspool ""
553 (nnspool-directory "/usr/local/myspoolddir"))) 553 (nnspool-directory "/usr/local/myspoolddir")))
554@end example 554@end example
555@noindent 555@noindent
556 556
@@ -635,8 +635,8 @@ mail, it's
635@example 635@example
636(eval-after-load "mail-source" 636(eval-after-load "mail-source"
637 '(add-to-list 'mail-sources 637 '(add-to-list 'mail-sources
638 '(directory :path "/path/to/procmail-dir/" 638 '(directory :path "/path/to/procmail-dir/"
639 :suffix ".prcml"))) 639 :suffix ".prcml")))
640@end example 640@end example
641@noindent 641@noindent
642 642
@@ -691,10 +691,10 @@ about the server there.
691 691
692@example 692@example
693(add-to-list 'gnus-secondary-select-methods 693(add-to-list 'gnus-secondary-select-methods
694 '(nnimap "Give the baby a name" 694 '(nnimap "Give the baby a name"
695 (nnimap-address "imap.yourProvider.net") 695 (nnimap-address "imap.yourProvider.net")
696 (nnimap-port 143) 696 (nnimap-port 143)
697 (nnimap-list-pattern "archive.*"))) 697 (nnimap-list-pattern "archive.*")))
698@end example 698@end example
699@noindent 699@noindent
700 700
@@ -874,7 +874,7 @@ say this in ~/.gnus.el:
874@example 874@example
875(setq gnus-visible-headers 875(setq gnus-visible-headers
876 '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To" 876 '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To"
877 "^User-Agent" "^X-Newsreader" "^X-Mailer")) 877 "^User-Agent" "^X-Newsreader" "^X-Mailer"))
878@end example 878@end example
879@noindent 879@noindent
880 880
@@ -1099,18 +1099,18 @@ buffer top-right, article buffer bottom-right:
1099(gnus-add-configuration 1099(gnus-add-configuration
1100 '(article 1100 '(article
1101 (horizontal 1.0 1101 (horizontal 1.0
1102 (vertical 25 1102 (vertical 25
1103 (group 1.0)) 1103 (group 1.0))
1104 (vertical 1.0 1104 (vertical 1.0
1105 (summary 0.25 point) 1105 (summary 0.25 point)
1106 (article 1.0))))) 1106 (article 1.0)))))
1107(gnus-add-configuration 1107(gnus-add-configuration
1108 '(summary 1108 '(summary
1109 (horizontal 1.0 1109 (horizontal 1.0
1110 (vertical 25 1110 (vertical 25
1111 (group 1.0)) 1111 (group 1.0))
1112 (vertical 1.0 1112 (vertical 1.0
1113 (summary 1.0 point))))) 1113 (summary 1.0 point)))))
1114@end example 1114@end example
1115@noindent 1115@noindent
1116 1116
@@ -1480,7 +1480,7 @@ You can store your mail addresses in a ~/.mailrc file using a simple
1480alias syntax: 1480alias syntax:
1481 1481
1482@example 1482@example
1483alias al "Al <al@@english-heritage.invalid>" 1483alias al "Al <al@@english-heritage.invalid>"
1484@end example 1484@end example
1485@noindent 1485@noindent
1486 1486
@@ -1644,9 +1644,9 @@ the group to use.
1644 1644
1645@example 1645@example
1646(setq gnus-message-archive-group 1646(setq gnus-message-archive-group
1647 '((if (message-news-p) 1647 '((if (message-news-p)
1648 "nnml:Send-News" 1648 "nnml:Send-News"
1649 "nnml:Send-Mail"))) 1649 "nnml:Send-Mail")))
1650@end example 1650@end example
1651@noindent 1651@noindent
1652 1652
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 3ef173c8db0..c3a7058289d 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -322,7 +322,7 @@ developing GNU and promoting software freedom.''
322 322
323@dircategory Emacs 323@dircategory Emacs
324@direntry 324@direntry
325* Gnus: (gnus). The newsreader Gnus. 325* Gnus: (gnus). The newsreader Gnus.
326@end direntry 326@end direntry
327@iftex 327@iftex
328@finalout 328@finalout
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 94a2c2c6db7..0618f110c30 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -41,7 +41,7 @@ developing GNU and promoting software freedom.''
41 41
42@dircategory Emacs 42@dircategory Emacs
43@direntry 43@direntry
44* IDLWAVE: (idlwave). Major mode and shell for IDL files. 44* IDLWAVE: (idlwave). Major mode and shell for IDL files.
45@end direntry 45@end direntry
46 46
47@titlepage 47@titlepage
diff --git a/doc/misc/info.texi b/doc/misc/info.texi
index b1157c0c4eb..97cc17812e4 100644
--- a/doc/misc/info.texi
+++ b/doc/misc/info.texi
@@ -40,7 +40,7 @@ license to the document, as described in section 6 of the license.
40 40
41@dircategory Texinfo documentation system 41@dircategory Texinfo documentation system
42@direntry 42@direntry
43* Info: (info). How to use the documentation browsing system. 43* Info: (info). How to use the documentation browsing system.
44@end direntry 44@end direntry
45 45
46@titlepage 46@titlepage
diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi
index b08d5d8e316..578164e8e57 100644
--- a/doc/misc/mairix-el.texi
+++ b/doc/misc/mairix-el.texi
@@ -24,7 +24,7 @@ developing GNU and promoting software freedom.''
24 24
25@dircategory Emacs 25@dircategory Emacs
26@direntry 26@direntry
27* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. 27* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer.
28@end direntry 28@end direntry
29 29
30@titlepage 30@titlepage
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 1667c5ca503..283d29c0de4 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -27,7 +27,8 @@ developing GNU and promoting software freedom.''
27 27
28@dircategory Emacs 28@dircategory Emacs
29@direntry 29@direntry
30* Message: (message). Mail and news composition mode that goes with Gnus. 30* Message: (message). Mail and news composition mode that
31 goes with Gnus.
31@end direntry 32@end direntry
32@iftex 33@iftex
33@finalout 34@finalout
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index f7a46778c96..ed64f91ac39 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -24,8 +24,8 @@
24This is version @value{VERSION}@value{EDITION} of @cite{The MH-E 24This is version @value{VERSION}@value{EDITION} of @cite{The MH-E
25Manual}, last updated @value{UPDATED}. 25Manual}, last updated @value{UPDATED}.
26 26
27Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010 27Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008,
28Free Software Foundation, Inc. 28 2009, 2010 Free Software Foundation, Inc.
29 29
30@c This dual license has been agreed upon by the FSF. 30@c This dual license has been agreed upon by the FSF.
31 31
@@ -58,7 +58,7 @@ Public License.''
58@c Info Directory Entry 58@c Info Directory Entry
59@dircategory Emacs 59@dircategory Emacs
60@direntry 60@direntry
61* MH-E: (mh-e). Emacs interface to the MH mail system. 61* MH-E: (mh-e). Emacs interface to the MH mail system.
62@end direntry 62@end direntry
63 63
64@c Title Page 64@c Title Page
@@ -7767,7 +7767,7 @@ will need to run @samp{sa-learn --rebuild} periodically. This can be
7767done by adding the following to your @file{crontab}: 7767done by adding the following to your @file{crontab}:
7768 7768
7769@smallexample 7769@smallexample
77700 * * * * sa-learn --rebuild > /dev/null 2>&1 77700 * * * * sa-learn --rebuild > /dev/null 2>&1
7771@end smallexample 7771@end smallexample
7772 7772
7773@subheading Bogofilter 7773@subheading Bogofilter
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index 926885b7e13..5c975772139 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -32,7 +32,7 @@ developing GNU and promoting software freedom.''
32 32
33@dircategory Emacs 33@dircategory Emacs
34@direntry 34@direntry
35* Newsticker: (newsticker). A Newsticker for Emacs. 35* Newsticker: (newsticker). A Newsticker for Emacs.
36@end direntry 36@end direntry
37 37
38@titlepage 38@titlepage
diff --git a/doc/misc/nxml-mode.texi b/doc/misc/nxml-mode.texi
index c1ea64fe9a9..593bf92d00a 100644
--- a/doc/misc/nxml-mode.texi
+++ b/doc/misc/nxml-mode.texi
@@ -187,7 +187,7 @@ and the buffer showing possible completions will contain
187 187
188@example 188@example
189Possible completions are: 189Possible completions are:
190xml:lang xmlns 190xml:lang xmlns
191@end example 191@end example
192 192
193@noindent 193@noindent
@@ -520,7 +520,7 @@ enough.
520 520
521If you want to use a schema that has not yet been added to the 521If you want to use a schema that has not yet been added to the
522schema locating files, you can use the command @kbd{C-c C-s C-f} 522schema locating files, you can use the command @kbd{C-c C-s C-f}
523to manually select the file contaiing the schema for the document in 523to manually select the file containing the schema for the document in
524current buffer. Emacs will read the file-name of the schema from the 524current buffer. Emacs will read the file-name of the schema from the
525minibuffer. After reading the file-name, Emacs will ask whether you 525minibuffer. After reading the file-name, Emacs will ask whether you
526wish to add a rule to a schema locating file that persistently 526wish to add a rule to a schema locating file that persistently
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index c4285d59f27..0c708c9ac75 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -68,7 +68,7 @@ license to the document, as described in section 6 of the license.
68 68
69@dircategory Emacs 69@dircategory Emacs
70@direntry 70@direntry
71* Org Mode: (org). Outline-based notes management and organizer 71* Org Mode: (org). Outline-based notes management and organizer.
72@end direntry 72@end direntry
73 73
74@titlepage 74@titlepage
@@ -4702,7 +4702,7 @@ values.
4702 4702
4703@example 4703@example
4704: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.} 4704: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.}
4705 %10Time_Estimate@{:@} %CLOCKSUM 4705 %10Time_Estimate@{:@} %CLOCKSUM
4706:Owner_ALL: Tammy Mark Karl Lisa Don 4706:Owner_ALL: Tammy Mark Karl Lisa Don
4707:Status_ALL: "In progress" "Not started yet" "Finished" "" 4707:Status_ALL: "In progress" "Not started yet" "Finished" ""
4708:Approved_ALL: "[ ]" "[X]" 4708:Approved_ALL: "[ ]" "[X]"
@@ -7482,12 +7482,12 @@ Internet, and outside of business hours, with something like this:
7482@group 7482@group
7483(defun org-my-auto-exclude-function (tag) 7483(defun org-my-auto-exclude-function (tag)
7484 (and (cond 7484 (and (cond
7485 ((string= tag "Net") 7485 ((string= tag "Net")
7486 (/= 0 (call-process "/sbin/ping" nil nil nil 7486 (/= 0 (call-process "/sbin/ping" nil nil nil
7487 "-c1" "-q" "-t1" "mail.gnu.org"))) 7487 "-c1" "-q" "-t1" "mail.gnu.org")))
7488 ((or (string= tag "Errand") (string= tag "Call")) 7488 ((or (string= tag "Errand") (string= tag "Call"))
7489 (let ((hour (nth 2 (decode-time)))) 7489 (let ((hour (nth 2 (decode-time))))
7490 (or (< hour 8) (> hour 21))))) 7490 (or (< hour 8) (> hour 21)))))
7491 (concat "-" tag))) 7491 (concat "-" tag)))
7492 7492
7493(setq org-agenda-auto-exclude-function 'org-my-auto-exclude-function) 7493(setq org-agenda-auto-exclude-function 'org-my-auto-exclude-function)
@@ -11340,9 +11340,9 @@ fixed this problem:
11340 11340
11341@lisp 11341@lisp
11342(add-hook 'org-mode-hook 11342(add-hook 'org-mode-hook
11343 (lambda () 11343 (lambda ()
11344 (org-set-local 'yas/trigger-key [tab]) 11344 (org-set-local 'yas/trigger-key [tab])
11345 (define-key yas/keymap [tab] 'yas/next-field-group))) 11345 (define-key yas/keymap [tab] 'yas/next-field-group)))
11346@end lisp 11346@end lisp
11347 11347
11348@item @file{windmove.el} by Hovav Shacham 11348@item @file{windmove.el} by Hovav Shacham
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index 625d83a0e2c..e4adf47ddb2 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -26,7 +26,7 @@ developing GNU and promoting software freedom.''
26 26
27@dircategory Emacs 27@dircategory Emacs
28@direntry 28@direntry
29* PCL-CVS: (pcl-cvs). Emacs front-end to CVS. 29* PCL-CVS: (pcl-cvs). Emacs front-end to CVS.
30@end direntry 30@end direntry
31 31
32@c The titlepage section does not appear in the Info file. 32@c The titlepage section does not appear in the Info file.
diff --git a/doc/misc/pgg.texi b/doc/misc/pgg.texi
index d2fd8fc097d..640dfd8f749 100644
--- a/doc/misc/pgg.texi
+++ b/doc/misc/pgg.texi
@@ -8,8 +8,8 @@
8This file describes PGG @value{VERSION}, an Emacs interface to various 8This file describes PGG @value{VERSION}, an Emacs interface to various
9PGP implementations. 9PGP implementations.
10 10
11Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 11Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
12Free Software Foundation, Inc. 122010 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -27,7 +27,7 @@ developing GNU and promoting software freedom.''
27 27
28@dircategory Emacs 28@dircategory Emacs
29@direntry 29@direntry
30* PGG: (pgg). Emacs interface to various PGP implementations. 30* PGG: (pgg). Emacs interface to various PGP implementations.
31@end direntry 31@end direntry
32 32
33@titlepage 33@titlepage
@@ -133,7 +133,7 @@ list autoload setting for desired functions as follows.
133* User Commands:: 133* User Commands::
134* Selecting an implementation:: 134* Selecting an implementation::
135* Caching passphrase:: 135* Caching passphrase::
136* Default user identity:: 136* Default user identity::
137@end menu 137@end menu
138 138
139@node User Commands 139@node User Commands
@@ -376,7 +376,7 @@ variable @code{pgg-scheme-gpg-instance} and will be reused from now on.
376(defun pgg-make-scheme-gpg () 376(defun pgg-make-scheme-gpg ()
377 (or pgg-scheme-gpg-instance 377 (or pgg-scheme-gpg-instance
378 (setq pgg-scheme-gpg-instance 378 (setq pgg-scheme-gpg-instance
379 (luna-make-entity 'pgg-scheme-gpg)))) 379 (luna-make-entity 'pgg-scheme-gpg))))
380@end lisp 380@end lisp
381 381
382The name of the function must follow the 382The name of the function must follow the
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi
index 8d3f5e73966..c27cf4dc182 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -5,7 +5,8 @@
5@c %**end of header 5@c %**end of header
6 6
7@copying 7@copying
8Copyright @copyright{} 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 8Copyright @copyright{} 2006, 2007, 2008, 2009, 2010
9Free Software Foundation, Inc.
9 10
10@quotation 11@quotation
11Permission is granted to copy, distribute and/or modify this document 12Permission is granted to copy, distribute and/or modify this document
@@ -23,7 +24,7 @@ developing GNU and promoting software freedom.''
23 24
24@dircategory Emacs 25@dircategory Emacs
25@direntry 26@direntry
26* Rcirc: (rcirc). Internet Relay Chat (IRC) client. 27* Rcirc: (rcirc). Internet Relay Chat (IRC) client.
27@end direntry 28@end direntry
28 29
29@titlepage 30@titlepage
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index f2d03afc924..9d06ceccd9e 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -46,7 +46,8 @@ developing GNU and promoting software freedom.''
46 46
47@dircategory Emacs 47@dircategory Emacs
48@direntry 48@direntry
49* RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. 49* RefTeX: (reftex). Emacs support for LaTeX cross-references
50 and citations.
50@end direntry 51@end direntry
51 52
52@finalout 53@finalout
@@ -3281,7 +3282,7 @@ the style @file{multind.el} contains
3281(TeX-add-style-hook "multind" 3282(TeX-add-style-hook "multind"
3282 (lambda () 3283 (lambda ()
3283 (and (fboundp 'reftex-add-index-macros) 3284 (and (fboundp 'reftex-add-index-macros)
3284 (reftex-add-index-macros '(multind))))) 3285 (reftex-add-index-macros '(multind)))))
3285@end lisp 3286@end lisp
3286 3287
3287If you have your own package @file{myindex} which defines the 3288If you have your own package @file{myindex} which defines the
diff --git a/doc/misc/remember.texi b/doc/misc/remember.texi
index f60d43031be..f9b75e1be00 100644
--- a/doc/misc/remember.texi
+++ b/doc/misc/remember.texi
@@ -27,7 +27,7 @@ developing GNU and promoting software freedom.''
27 27
28@dircategory Emacs 28@dircategory Emacs
29@direntry 29@direntry
30* Remember: (remember). Simple information manager for Emacs 30* Remember: (remember). Simple information manager for Emacs.
31@end direntry 31@end direntry
32 32
33@titlepage 33@titlepage
diff --git a/doc/misc/sasl.texi b/doc/misc/sasl.texi
index ff3481b306a..8a8421b4870 100644
--- a/doc/misc/sasl.texi
+++ b/doc/misc/sasl.texi
@@ -32,7 +32,7 @@ license to the document, as described in section 6 of the license.
32 32
33@dircategory Emacs 33@dircategory Emacs
34@direntry 34@direntry
35* SASL: (sasl). The Emacs SASL library. 35* SASL: (sasl). The Emacs SASL library.
36@end direntry 36@end direntry
37 37
38 38
@@ -148,7 +148,7 @@ of authentication functions.
148 148
149@example 149@example
150(defconst sasl-anonymous-steps 150(defconst sasl-anonymous-steps
151 '(identity ;no initial response 151 '(identity ;no initial response
152 sasl-anonymous-response)) 152 sasl-anonymous-response))
153 153
154(put 'sasl-anonymous 'sasl-mechanism 154(put 'sasl-anonymous 'sasl-mechanism
@@ -232,7 +232,7 @@ authentication protocol exchange. For example,
232@example 232@example
233(process-send-string 233(process-send-string
234 process 234 process
235 (if (sasl-step-data step) ;initial response 235 (if (sasl-step-data step) ;initial response
236 (format "AUTH %s %s\r\n" name (base64-encode-string (sasl-step-data step) t)) 236 (format "AUTH %s %s\r\n" name (base64-encode-string (sasl-step-data step) t))
237 (format "AUTH %s\r\n" name))) 237 (format "AUTH %s\r\n" name)))
238@end example 238@end example
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index 55d0d733cf0..72a6bfc8989 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -7,7 +7,7 @@
7@finalout 7@finalout
8@end iftex 8@end iftex
9 9
10@c @setchapternewpage odd % For book style double sided manual. 10@c @setchapternewpage odd % For book style double sided manual.
11@comment %**end of header (This is for running Texinfo on a region.) 11@comment %**end of header (This is for running Texinfo on a region.)
12 12
13@copying 13@copying
@@ -35,8 +35,8 @@ developing GNU and promoting software freedom.''
35 35
36@dircategory Emacs 36@dircategory Emacs
37@direntry 37@direntry
38* SC: (sc). Supercite lets you cite parts of messages you're 38* SC: (sc). Supercite lets you cite parts of messages
39 replying to, in flexible ways. 39 you're replying to, in flexible ways.
40@end direntry 40@end direntry
41 41
42@titlepage 42@titlepage
@@ -1795,23 +1795,23 @@ interface was formally proposed by Martin Neitzel on Fri, 23 Jun 89, in
1795a mail message to the Supercite mailing list: 1795a mail message to the Supercite mailing list:
1796 1796
1797@example 1797@example
1798 Martin> Each news/mail-reader should provide a form of 1798 Martin> Each news/mail-reader should provide a form of
1799 Martin> mail-yank-original that 1799 Martin> mail-yank-original that
1800 1800
1801 Martin> 1: inserts the original message incl. header into the 1801 Martin> 1: inserts the original message incl. header into the
1802 Martin> reply buffer; no indentation/prefixing is done, the header 1802 Martin> reply buffer; no indentation/prefixing is done, the header
1803 Martin> tends to be a "full blown" version rather than to be 1803 Martin> tends to be a "full blown" version rather than to be
1804 Martin> stripped down. 1804 Martin> stripped down.
1805 1805
1806 Martin> 2: `point' is at the start of the header, `mark' at the 1806 Martin> 2: `point' is at the start of the header, `mark' at the
1807 Martin> end of the message body. 1807 Martin> end of the message body.
1808 1808
1809 Martin> 3: (run-hooks 'mail-yank-hooks) 1809 Martin> 3: (run-hooks 'mail-yank-hooks)
1810 1810
1811 Martin> [Supercite] should be run as such a hook and merely 1811 Martin> [Supercite] should be run as such a hook and merely
1812 Martin> rewrite the message. This way it isn't anymore 1812 Martin> rewrite the message. This way it isn't anymore
1813 Martin> [Supercite]'s job to gather the original from obscure 1813 Martin> [Supercite]'s job to gather the original from obscure
1814 Martin> sources. [@dots{}] 1814 Martin> sources. [@dots{}]
1815@end example 1815@end example
1816 1816
1817@vindex mail-citation-hook 1817@vindex mail-citation-hook
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi
index 5ad3b9c6e3d..c731c1843dd 100644
--- a/doc/misc/sem-user.texi
+++ b/doc/misc/sem-user.texi
@@ -1,7 +1,7 @@
1@c This file is included by semantic.texi 1@c This file is included by semantic.texi
2 2
3@c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010 3@c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009,
4@c Free Software Foundation, Inc. 4@c 2010 Free Software Foundation, Inc.
5 5
6@c Permission is granted to copy, distribute and/or modify this 6@c Permission is granted to copy, distribute and/or modify this
7@c document under the terms of the GNU Free Documentation License, 7@c document under the terms of the GNU Free Documentation License,
@@ -328,8 +328,8 @@ for a given major mode, like this:
328 328
329@example 329@example
330(setq-mode-local c-mode 330(setq-mode-local c-mode
331 semanticdb-find-default-throttle 331 semanticdb-find-default-throttle
332 '(project unloaded system recursive)) 332 '(project unloaded system recursive))
333@end example 333@end example
334 334
335@defvar semanticdb-find-default-throttle 335@defvar semanticdb-find-default-throttle
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index 08d82d35a43..65bd718dfff 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -43,7 +43,7 @@ developing GNU and promoting software freedom.''
43 43
44@dircategory Emacs 44@dircategory Emacs
45@direntry 45@direntry
46* Semantic: (semantic). Source code parser library and utilities. 46* Semantic: (semantic). Source code parser library and utilities.
47@end direntry 47@end direntry
48 48
49@titlepage 49@titlepage
@@ -224,8 +224,8 @@ grammar developers; it is useful mostly for the hackers who would like
224to learn more about how @semantic{} works. 224to learn more about how @semantic{} works.
225 225
226@menu 226@menu
227* Parser code :: Code used for the parsers 227* Parser code :: Code used for the parsers
228* Tag handling :: Code used for manipulating tags 228* Tag handling :: Code used for manipulating tags
229* Semanticdb Internals :: Code used in the semantic database 229* Semanticdb Internals :: Code used in the semantic database
230* Analyzer Internals :: Code used in the code analyzer 230* Analyzer Internals :: Code used in the code analyzer
231* Tools :: Code used in user tools 231* Tools :: Code used in user tools
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index af3970884c7..60d419083e2 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -11,8 +11,8 @@
11@copying 11@copying
12This file documents SES: the Simple Emacs Spreadsheet. 12This file documents SES: the Simple Emacs Spreadsheet.
13 13
14Copyright @copyright{} 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 14Copyright @copyright{} 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
15Free Software Foundation, Inc. 152010 Free Software Foundation, Inc.
16 16
17@quotation 17@quotation
18Permission is granted to copy, distribute and/or modify this document 18Permission is granted to copy, distribute and/or modify this document
@@ -30,7 +30,7 @@ developing GNU and promoting software freedom.''
30 30
31@dircategory Emacs 31@dircategory Emacs
32@direntry 32@direntry
33* SES: (ses). Simple Emacs Spreadsheet 33* SES: (ses). Simple Emacs Spreadsheet.
34@end direntry 34@end direntry
35 35
36@finalout 36@finalout
diff --git a/doc/misc/sieve.texi b/doc/misc/sieve.texi
index 8473f6cd359..9a1a0faf4c8 100644
--- a/doc/misc/sieve.texi
+++ b/doc/misc/sieve.texi
@@ -8,8 +8,8 @@
8@copying 8@copying
9This file documents the Emacs Sieve package, for server-side mail filtering. 9This file documents the Emacs Sieve package, for server-side mail filtering.
10 10
11Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 11Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
12Free Software Foundation, Inc. 122009, 2010 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -227,7 +227,7 @@ the @code{fileinto} command.
227require "fileinto"; 227require "fileinto";
228 228
229if address "sender" "owner-w3-beta@@xemacs.org" @{ 229if address "sender" "owner-w3-beta@@xemacs.org" @{
230 fileinto "INBOX.w3-beta"; 230 fileinto "INBOX.w3-beta";
231@} 231@}
232@end example 232@end example
233 233
@@ -238,7 +238,7 @@ required.
238 238
239@example 239@example
240if header :contains "Delivered-To" "auc-tex@@sunsite.dk" @{ 240if header :contains "Delivered-To" "auc-tex@@sunsite.dk" @{
241 fileinto "INBOX.auc-tex"; 241 fileinto "INBOX.auc-tex";
242@} 242@}
243@end example 243@end example
244 244
@@ -249,7 +249,7 @@ has been required.
249 249
250@example 250@example
251if address ["to", "cc"] "kerberos@@mit.edu" @{ 251if address ["to", "cc"] "kerberos@@mit.edu" @{
252 fileinto "INBOX.kerberos"; 252 fileinto "INBOX.kerberos";
253@} 253@}
254@end example 254@end example
255 255
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi
index fcb6ea65472..05bae38e7a8 100644
--- a/doc/misc/smtpmail.texi
+++ b/doc/misc/smtpmail.texi
@@ -22,7 +22,7 @@ developing GNU and promoting software freedom.''
22 22
23@dircategory Emacs 23@dircategory Emacs
24@direntry 24@direntry
25* SMTP: (smtpmail). Emacs library for sending mail via SMTP. 25* SMTP: (smtpmail). Emacs library for sending mail via SMTP.
26@end direntry 26@end direntry
27 27
28@titlepage 28@titlepage
@@ -44,17 +44,17 @@ developing GNU and promoting software freedom.''
44@end ifnottex 44@end ifnottex
45 45
46@menu 46@menu
47* How Mail Works:: Brief introduction to mail concepts. 47* How Mail Works:: Brief introduction to mail concepts.
48* Emacs Speaks SMTP:: How to use the SMTP library in Emacs. 48* Emacs Speaks SMTP:: How to use the SMTP library in Emacs.
49* Authentication:: Authenticating yourself to the server. 49* Authentication:: Authenticating yourself to the server.
50* Queued delivery:: Sending mail without an internet connection. 50* Queued delivery:: Sending mail without an internet connection.
51* Server workarounds:: Mail servers with special requirements. 51* Server workarounds:: Mail servers with special requirements.
52* Debugging:: Tracking down problems. 52* Debugging:: Tracking down problems.
53* GNU Free Documentation License:: The license for this documentation. 53* GNU Free Documentation License:: The license for this documentation.
54 54
55Indices 55Indices
56 56
57* Index:: Index over variables and functions. 57* Index:: Index over variables and functions.
58@end menu 58@end menu
59 59
60@node How Mail Works 60@node How Mail Works
@@ -355,15 +355,15 @@ configurations of sendmail requires this behavior. Don't bother to
355set this unless you have get an error like: 355set this unless you have get an error like:
356 356
357@example 357@example
358 Sending failed; SMTP protocol error 358 Sending failed; SMTP protocol error
359@end example 359@end example
360 360
361when sending mail, and the debug buffer (@pxref{Debugging})) contains 361when sending mail, and the debug buffer (@pxref{Debugging})) contains
362an error such as: 362an error such as:
363 363
364@example 364@example
365 RCPT TO: @var{someone} 365 RCPT TO: @var{someone}
366 501 @var{someone}: recipient address must contain a domain 366 501 @var{someone}: recipient address must contain a domain
367@end example 367@end example
368 368
369@end table 369@end table
diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi
index 8434e8aa28d..aaf9e938de7 100644
--- a/doc/misc/speedbar.texi
+++ b/doc/misc/speedbar.texi
@@ -23,7 +23,7 @@ developing GNU and promoting software freedom.''
23 23
24@dircategory Emacs 24@dircategory Emacs
25@direntry 25@direntry
26* Speedbar: (speedbar). File/Tag summarizing utility. 26* Speedbar: (speedbar). File/Tag summarizing utility.
27@end direntry 27@end direntry
28 28
29@titlepage 29@titlepage
@@ -1131,7 +1131,7 @@ beginning, like this:
1131 1131
1132@example 1132@example
1133(add-to-list 'speedbar-dynamic-tags-function-list 1133(add-to-list 'speedbar-dynamic-tags-function-list
1134 '(my-fetch-dynamic-tags . my-insert-tag-list)) 1134 '(my-fetch-dynamic-tags . my-insert-tag-list))
1135@end example 1135@end example
1136 1136
1137If your parser is only good for a few types of files, make sure that it 1137If your parser is only good for a few types of files, make sure that it
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 7d41049897e..4d853a5fb2c 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -57,8 +57,8 @@ supports it in developing GNU and promoting software freedom.''
57@c Entries for @command{install-info} to use 57@c Entries for @command{install-info} to use
58@dircategory @value{emacsname} 58@dircategory @value{emacsname}
59@direntry 59@direntry
60* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol 60* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol
61 @value{emacsname} remote file access via rsh and rcp. 61 @value{emacsname} remote file access via rsh and rcp.
62@end direntry 62@end direntry
63 63
64@titlepage 64@titlepage
@@ -629,11 +629,11 @@ Two other variants, @option{ssh1_old} and @option{ssh2_old}, use the
629@command{ssh1} and @command{ssh2} commands explicitly. If you don't 629@command{ssh1} and @command{ssh2} commands explicitly. If you don't
630know what these are, you do not need these options. 630know what these are, you do not need these options.
631 631
632All the methods based on @command{ssh} have an additional kludgy 632All the methods based on @command{ssh} have an additional feature: you
633feature: you can specify a host name which looks like @file{host#42} 633can specify a host name which looks like @file{host#42} (the real host
634(the real host name, then a hash sign, then a port number). This 634name, then a hash sign, then a port number). This means to connect to
635means to connect to the given host but to also pass @code{-p 42} as 635the given host but to also pass @code{-p 42} as arguments to the
636arguments to the @command{ssh} command. 636@command{ssh} command.
637 637
638 638
639@item @option{telnet} 639@item @option{telnet}
@@ -2310,6 +2310,11 @@ using the @option{ssh} method to transfer files, and edit
2310@file{.emacs} in my home directory I would specify the filename 2310@file{.emacs} in my home directory I would specify the filename
2311@file{@trampfn{ssh, daniel, melancholia, .emacs}}. 2311@file{@trampfn{ssh, daniel, melancholia, .emacs}}.
2312 2312
2313Finally, for some methods it is possible to specify a different port
2314number than the default one, given by the method. This is specified
2315by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh,
2316daniel, melancholia#42, .emacs}}.
2317
2313 2318
2314@node Alternative Syntax 2319@node Alternative Syntax
2315@section URL-like filename syntax 2320@section URL-like filename syntax
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index ea7f3211f52..a6bbf0bd3eb 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -15,7 +15,7 @@
15@dircategory World Wide Web 15@dircategory World Wide Web
16@dircategory Emacs 16@dircategory Emacs
17@direntry 17@direntry
18* URL: (url). URL loading package. 18* URL: (url). URL loading package.
19@end direntry 19@end direntry
20 20
21@copying 21@copying
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index 26acf25cb8e..2a4d4191082 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -3,8 +3,8 @@
3@settitle VIP 3@settitle VIP
4 4
5@copying 5@copying
6Copyright @copyright{} 1987, 2001, 2002, 2003, 2004, 6Copyright @copyright{} 1987, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
72005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 72008, 2009, 2010 Free Software Foundation, Inc.
8 8
9@quotation 9@quotation
10Permission is granted to copy, distribute and/or modify this document 10Permission is granted to copy, distribute and/or modify this document
@@ -38,7 +38,7 @@ developing GNU and promoting software freedom.''
38 38
39@dircategory Emacs 39@dircategory Emacs
40@direntry 40@direntry
41* VIP: (vip). An older VI-emulation for Emacs. 41* VIP: (vip). An older VI-emulation for Emacs.
42@end direntry 42@end direntry
43 43
44@ifnottex 44@ifnottex
@@ -65,10 +65,10 @@ Comments and bug reports are welcome. Please send messages to
65@end ifnottex 65@end ifnottex
66 66
67@menu 67@menu
68* Survey:: A survey of VIP. 68* Survey:: A survey of VIP.
69* Vi Commands:: Details of Vi commands. 69* Vi Commands:: Details of Vi commands.
70* Ex Commands:: Details of Ex commands. 70* Ex Commands:: Details of Ex commands.
71* Customization:: How to customize VIP. 71* Customization:: How to customize VIP.
72* GNU Free Documentation License:: The license for this documentation. 72* GNU Free Documentation License:: The license for this documentation.
73 73
74@end menu 74@end menu
@@ -99,10 +99,10 @@ In this chapter we describe basics of VIP with emphasis on the features not
99found in Vi and on how to use VIP under GNU Emacs. 99found in Vi and on how to use VIP under GNU Emacs.
100 100
101@menu 101@menu
102* Basic Concepts:: Basic concepts in Emacs. 102* Basic Concepts:: Basic concepts in Emacs.
103* Loading VIP:: How to load VIP automatically. 103* Loading VIP:: How to load VIP automatically.
104* Modes in VIP:: VIP has three modes, which are orthogonal to modes 104* Modes in VIP:: VIP has three modes, which are orthogonal to modes
105 in Emacs. 105 in Emacs.
106* Differences from Vi:: Differences of VIP from Vi is explained. 106* Differences from Vi:: Differences of VIP from Vi is explained.
107@end menu 107@end menu
108 108
@@ -253,10 +253,10 @@ emacs mode vi mode insert mode
253@end ifinfo 253@end ifinfo
254 254
255@menu 255@menu
256* Emacs Mode:: This is the mode you should know better. 256* Emacs Mode:: This is the mode you should know better.
257* Vi Mode:: Vi commands are executed in this mode. 257* Vi Mode:: Vi commands are executed in this mode.
258* Insert Mode:: You can enter text, and also can do editing if you 258* Insert Mode:: You can enter text, and also can do editing if you
259 know enough Emacs commands. 259 know enough Emacs commands.
260@end menu 260@end menu
261 261
262@node Emacs Mode, Vi Mode, Modes in VIP, Modes in VIP 262@node Emacs Mode, Vi Mode, Modes in VIP, Modes in VIP
@@ -306,23 +306,23 @@ Thus typing @kbd{C-z x} in insert mode will have the same effect as typing
306The major differences from Vi are explained below. 306The major differences from Vi are explained below.
307 307
308@menu 308@menu
309* Undoing:: You can undo more in VIP. 309* Undoing:: You can undo more in VIP.
310* Changing:: Commands for changing the text. 310* Changing:: Commands for changing the text.
311* Searching:: Search commands. 311* Searching:: Search commands.
312* z Command:: You can now use zH, zM and zL as well as z- etc. 312* z Command:: You can now use zH, zM and zL as well as z- etc.
313* Counts:: Some Vi commands which do not accept a count now 313* Counts:: Some Vi commands which do not accept a count now
314 accept one. 314 accept one.
315* Marking:: You can now mark the current point, beginning of 315* Marking:: You can now mark the current point, beginning of
316 the buffer etc. 316 the buffer etc.
317* Region Commands:: You can now give a region as an argument for delete 317* Region Commands:: You can now give a region as an argument for delete
318 commands etc. 318 commands etc.
319* New Commands:: Some new commands not available in Vi are added. 319* New Commands:: Some new commands not available in Vi are added.
320* New Bindings:: Bindings of some keys are changed for the 320* New Bindings:: Bindings of some keys are changed for the
321 convenience of editing under Emacs. 321 convenience of editing under Emacs.
322* Window Commands:: Commands for moving among windows etc. 322* Window Commands:: Commands for moving among windows etc.
323* Buffer Commands:: Commands for selecting buffers etc. 323* Buffer Commands:: Commands for selecting buffers etc.
324* File Commands:: Commands for visiting files etc. 324* File Commands:: Commands for visiting files etc.
325* Misc Commands:: Other useful commands. 325* Misc Commands:: Other useful commands.
326@end menu 326@end menu
327 327
328@node Undoing, Changing, Differences from Vi, Differences from Vi 328@node Undoing, Changing, Differences from Vi, Differences from Vi
@@ -693,17 +693,17 @@ VIP. Except for the last section which discusses insert mode, all the
693commands described in this chapter are to be used in vi mode. 693commands described in this chapter are to be used in vi mode.
694 694
695@menu 695@menu
696* Numeric Arguments:: Many commands accept numeric arguments 696* Numeric Arguments:: Many commands accept numeric arguments
697* Important Keys:: Some very important keys. 697* Important Keys:: Some very important keys.
698* Buffers and Windows:: Commands for handling buffers and windows. 698* Buffers and Windows:: Commands for handling buffers and windows.
699* Files:: Commands for handling files. 699* Files:: Commands for handling files.
700* Viewing the Buffer:: How you can view the current buffer. 700* Viewing the Buffer:: How you can view the current buffer.
701* Mark Commands:: Marking positions in a buffer. 701* Mark Commands:: Marking positions in a buffer.
702* Motion Commands:: Commands for moving point. 702* Motion Commands:: Commands for moving point.
703* Searching and Replacing:: Commands for searching and replacing. 703* Searching and Replacing:: Commands for searching and replacing.
704* Modifying Commands:: Commands for modifying the buffer. 704* Modifying Commands:: Commands for modifying the buffer.
705* Other Vi Commands:: Miscellaneous Commands. 705* Other Vi Commands:: Miscellaneous Commands.
706* Commands in Insert Mode:: Commands for entering insert mode. 706* Commands in Insert Mode:: Commands for entering insert mode.
707@end menu 707@end menu
708 708
709@node Numeric Arguments, Important Keys, Vi Commands, Vi Commands 709@node Numeric Arguments, Important Keys, Vi Commands, Vi Commands
@@ -1265,7 +1265,7 @@ vanilla, this command replaces every occurrence of @var{string} with
1265@var{newstring}. If the mode is regular expression, @var{string} is 1265@var{newstring}. If the mode is regular expression, @var{string} is
1266treated as a regular expression and every string matching the regular 1266treated as a regular expression and every string matching the regular
1267expression is replaced with @var{newstring} (@code{vip-replace-string}). 1267expression is replaced with @var{newstring} (@code{vip-replace-string}).
1268@item Q @var{string} RET @var{newstring} 1268@item Q @var{string} RET @var{newstring}
1269@kindex 121 @kbd{Q} (@code{vip-query-replace}) 1269@kindex 121 @kbd{Q} (@code{vip-query-replace})
1270Same as @kbd{R} except that you will be asked form confirmation before each 1270Same as @kbd{R} except that you will be asked form confirmation before each
1271replacement 1271replacement
@@ -1311,10 +1311,10 @@ the region}), and then the enlarged region will be affected by the modifying
1311command. 1311command.
1312 1312
1313@menu 1313@menu
1314* Delete Commands:: Commands for deleting text. 1314* Delete Commands:: Commands for deleting text.
1315* Yank Commands:: Commands for yanking text in Vi's sense. 1315* Yank Commands:: Commands for yanking text in Vi's sense.
1316* Put Back Commands:: Commands for putting back deleted/yanked text. 1316* Put Back Commands:: Commands for putting back deleted/yanked text.
1317* Change Commands:: Commands for changing text. 1317* Change Commands:: Commands for changing text.
1318* Repeating and Undoing Modifications:: 1318* Repeating and Undoing Modifications::
1319@end menu 1319@end menu
1320@node Delete Commands, Yank Commands, Modifying Commands, Modifying Commands 1320@node Delete Commands, Yank Commands, Modifying Commands, Modifying Commands
@@ -1713,7 +1713,7 @@ Several Ex commands can be entered in a line by separating them by a pipe
1713character @samp{|}. 1713character @samp{|}.
1714 1714
1715@menu 1715@menu
1716* Ex Command Reference:: Explain all the Ex commands available in VIP. 1716* Ex Command Reference:: Explain all the Ex commands available in VIP.
1717@end menu 1717@end menu
1718@node Ex Command Reference, Customization, Ex Commands, Ex Commands 1718@node Ex Command Reference, Customization, Ex Commands, Ex Commands
1719@section Ex Command Reference 1719@section Ex Command Reference
@@ -1869,8 +1869,8 @@ will also be loaded when VIP is loaded. This file is thus useful for
1869customizing VIP. 1869customizing VIP.
1870 1870
1871@menu 1871@menu
1872* Customizing Constants:: How to change values of constants. 1872* Customizing Constants:: How to change values of constants.
1873* Customizing Key Bindings:: How to change key bindings. 1873* Customizing Key Bindings:: How to change key bindings.
1874@end menu 1874@end menu
1875 1875
1876@node Customizing Constants, Customizing Key Bindings, Customization, Customization 1876@node Customizing Constants, Customizing Key Bindings, Customization, Customization
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 497d1b373e1..2100e652950 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -26,9 +26,9 @@ developing GNU and promoting software freedom.''
26 26
27@dircategory Emacs 27@dircategory Emacs
28@direntry 28@direntry
29* VIPER: (viper). The newest Emacs VI-emulation mode. 29* VIPER: (viper). The newest Emacs VI-emulation mode.
30 (also, A VI Plan for Emacs Rescue 30 (also, A VI Plan for Emacs Rescue
31 or the VI PERil.) 31 or the VI PERil.)
32@end direntry 32@end direntry
33 33
34@finalout 34@finalout
@@ -3004,14 +3004,14 @@ reference created by @* @samp{maart@@cs.vu.nl} and others. It can be
3004found on the Vi archives. This reference has been adapted for Viper.@refill 3004found on the Vi archives. This reference has been adapted for Viper.@refill
3005 3005
3006@menu 3006@menu
3007* Groundwork:: Textual Conventions and Viper basics 3007* Groundwork:: Textual Conventions and Viper basics
3008* Text Handling:: Moving, Editing, Undoing. 3008* Text Handling:: Moving, Editing, Undoing.
3009* Display:: Scrolling. 3009* Display:: Scrolling.
3010* File and Buffer Handling:: Editing, Writing and Quitting. 3010* File and Buffer Handling:: Editing, Writing and Quitting.
3011* Mapping:: Mapping Keys, Keyboard Macros 3011* Mapping:: Mapping Keys, Keyboard Macros
3012* Shell Commands:: Accessing Shell Commands, Processing Text 3012* Shell Commands:: Accessing Shell Commands, Processing Text
3013* Options:: Ex options, the @kbd{:set} commands 3013* Options:: Ex options, the @kbd{:set} commands
3014* Emacs Related Commands:: Meta Keys, Windows 3014* Emacs Related Commands:: Meta Keys, Windows
3015* Mouse-bound Commands:: Search and insertion of text 3015* Mouse-bound Commands:: Search and insertion of text
3016@end menu 3016@end menu
3017 3017
@@ -3230,15 +3230,15 @@ inserts them automatically in front of the Ex command.
3230@section Text Handling 3230@section Text Handling
3231 3231
3232@menu 3232@menu
3233* Move Commands:: Moving, Searching 3233* Move Commands:: Moving, Searching
3234* Marking:: Textmarkers in Viper and the Emacs Mark. 3234* Marking:: Textmarkers in Viper and the Emacs Mark.
3235* Appending Text:: Text insertion, Shifting, Putting 3235* Appending Text:: Text insertion, Shifting, Putting
3236* Editing in Insert State:: Autoindent, Quoting etc. 3236* Editing in Insert State:: Autoindent, Quoting etc.
3237* Deleting Text:: Deleting 3237* Deleting Text:: Deleting
3238* Changing Text:: Changing, Replacement, Joining 3238* Changing Text:: Changing, Replacement, Joining
3239* Search and Replace:: Searches, Query Replace, Pattern Commands 3239* Search and Replace:: Searches, Query Replace, Pattern Commands
3240* Yanking:: Yanking, Viewing Registers 3240* Yanking:: Yanking, Viewing Registers
3241* Undoing:: Multiple Undo, Backups 3241* Undoing:: Multiple Undo, Backups
3242@end menu 3242@end menu
3243 3243
3244@node Move Commands,Marking,,Text Handling 3244@node Move Commands,Marking,,Text Handling
diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
index fc8f3b2ea58..2d95daf36d4 100644
--- a/doc/misc/widget.texi
+++ b/doc/misc/widget.texi
@@ -8,8 +8,8 @@
8@c %**end of header 8@c %**end of header
9 9
10@copying 10@copying
11Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 11Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
122006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 122008, 2009, 2010 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -27,8 +27,8 @@ developing GNU and promoting software freedom.''
27 27
28@dircategory Emacs 28@dircategory Emacs
29@direntry 29@direntry
30* Widget: (widget). The "widget" package used by the Emacs Customization 30* Widget: (widget). The "widget" package used by the Emacs
31 facility. 31 Customization facility.
32@end direntry 32@end direntry
33 33
34@contents 34@contents
@@ -338,71 +338,71 @@ Interface}).
338 (remove-overlays) 338 (remove-overlays)
339 (widget-insert "Here is some documentation.\n\n") 339 (widget-insert "Here is some documentation.\n\n")
340 (widget-create 'editable-field 340 (widget-create 'editable-field
341 :size 13 341 :size 13
342 :format "Name: %v " ; Text after the field! 342 :format "Name: %v " ; Text after the field!
343 "My Name") 343 "My Name")
344 (widget-create 'menu-choice 344 (widget-create 'menu-choice
345 :tag "Choose" 345 :tag "Choose"
346 :value "This" 346 :value "This"
347 :help-echo "Choose me, please!" 347 :help-echo "Choose me, please!"
348 :notify (lambda (widget &rest ignore) 348 :notify (lambda (widget &rest ignore)
349 (message "%s is a good choice!" 349 (message "%s is a good choice!"
350 (widget-value widget))) 350 (widget-value widget)))
351 '(item :tag "This option" :value "This") 351 '(item :tag "This option" :value "This")
352 '(choice-item "That option") 352 '(choice-item "That option")
353 '(editable-field :menu-tag "No option" "Thus option")) 353 '(editable-field :menu-tag "No option" "Thus option"))
354 (widget-create 'editable-field 354 (widget-create 'editable-field
355 :format "Address: %v" 355 :format "Address: %v"
356 "Some Place\nIn some City\nSome country.") 356 "Some Place\nIn some City\nSome country.")
357 (widget-insert "\nSee also ") 357 (widget-insert "\nSee also ")
358 (widget-create 'link 358 (widget-create 'link
359 :notify (lambda (&rest ignore) 359 :notify (lambda (&rest ignore)
360 (widget-value-set widget-example-repeat 360 (widget-value-set widget-example-repeat
361 '("En" "To" "Tre")) 361 '("En" "To" "Tre"))
362 (widget-setup)) 362 (widget-setup))
363 "other work") 363 "other work")
364 (widget-insert 364 (widget-insert
365 " for more information.\n\nNumbers: count to three below\n") 365 " for more information.\n\nNumbers: count to three below\n")
366 (setq widget-example-repeat 366 (setq widget-example-repeat
367 (widget-create 'editable-list 367 (widget-create 'editable-list
368 :entry-format "%i %d %v" 368 :entry-format "%i %d %v"
369 :notify (lambda (widget &rest ignore) 369 :notify (lambda (widget &rest ignore)
370 (let ((old (widget-get widget 370 (let ((old (widget-get widget
371 ':example-length)) 371 ':example-length))
372 (new (length (widget-value widget)))) 372 (new (length (widget-value widget))))
373 (unless (eq old new) 373 (unless (eq old new)
374 (widget-put widget ':example-length new) 374 (widget-put widget ':example-length new)
375 (message "You can count to %d." new)))) 375 (message "You can count to %d." new))))
376 :value '("One" "Eh, two?" "Five!") 376 :value '("One" "Eh, two?" "Five!")
377 '(editable-field :value "three"))) 377 '(editable-field :value "three")))
378 (widget-insert "\n\nSelect multiple:\n\n") 378 (widget-insert "\n\nSelect multiple:\n\n")
379 (widget-create 'checkbox t) 379 (widget-create 'checkbox t)
380 (widget-insert " This\n") 380 (widget-insert " This\n")
381 (widget-create 'checkbox nil) 381 (widget-create 'checkbox nil)
382 (widget-insert " That\n") 382 (widget-insert " That\n")
383 (widget-create 'checkbox 383 (widget-create 'checkbox
384 :notify (lambda (&rest ignore) (message "Tickle")) 384 :notify (lambda (&rest ignore) (message "Tickle"))
385 t) 385 t)
386 (widget-insert " Thus\n\nSelect one:\n\n") 386 (widget-insert " Thus\n\nSelect one:\n\n")
387 (widget-create 'radio-button-choice 387 (widget-create 'radio-button-choice
388 :value "One" 388 :value "One"
389 :notify (lambda (widget &rest ignore) 389 :notify (lambda (widget &rest ignore)
390 (message "You selected %s" 390 (message "You selected %s"
391 (widget-value widget))) 391 (widget-value widget)))
392 '(item "One") '(item "Another One.") '(item "A Final One.")) 392 '(item "One") '(item "Another One.") '(item "A Final One."))
393 (widget-insert "\n") 393 (widget-insert "\n")
394 (widget-create 'push-button 394 (widget-create 'push-button
395 :notify (lambda (&rest ignore) 395 :notify (lambda (&rest ignore)
396 (if (= (length (widget-value widget-example-repeat)) 396 (if (= (length (widget-value widget-example-repeat))
397 3) 397 3)
398 (message "Congratulation!") 398 (message "Congratulation!")
399 (error "Three was the count!"))) 399 (error "Three was the count!")))
400 "Apply Form") 400 "Apply Form")
401 (widget-insert " ") 401 (widget-insert " ")
402 (widget-create 'push-button 402 (widget-create 'push-button
403 :notify (lambda (&rest ignore) 403 :notify (lambda (&rest ignore)
404 (widget-example)) 404 (widget-example))
405 "Reset Form") 405 "Reset Form")
406 (widget-insert "\n") 406 (widget-insert "\n")
407 (use-local-map widget-keymap) 407 (use-local-map widget-keymap)
408 (widget-setup)) 408 (widget-setup))
diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi
index c2de5d88b58..ba772c4b4a1 100644
--- a/doc/misc/woman.texi
+++ b/doc/misc/woman.texi
@@ -4,7 +4,7 @@
4@settitle WoMan: Browse Unix Manual Pages ``W.O. (without) Man'' 4@settitle WoMan: Browse Unix Manual Pages ``W.O. (without) Man''
5@c FIXME 5@c FIXME
6@c Manual last updated: 6@c Manual last updated:
7@set UPDATED Time-stamp: <Sat 16-Jan-2010 19:18:43 gm on grasmoor> 7@set UPDATED Time-stamp: <Thu 24-Jun-2010 00:06:54 gm on grasmoor>
8@c Software version: 8@c Software version:
9@set VERSION 0.54 (beta) 9@set VERSION 0.54 (beta)
10@afourpaper 10@afourpaper
@@ -37,7 +37,7 @@ developing GNU and promoting software freedom.''
37 37
38@dircategory Emacs 38@dircategory Emacs
39@direntry 39@direntry
40* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". 40* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man".
41@end direntry 41@end direntry
42 42
43@finalout 43@finalout
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 3e8adcb1b27..49626c5a86f 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12010-06-19 Ken Brown <kbrown@cornell.edu>
2
3 * PROBLEMS: Update Cygwin GCC information. (Bug#6458)
4
12010-06-12 Glenn Morris <rgm@gnu.org> 52010-06-12 Glenn Morris <rgm@gnu.org>
2 6
3 * tutorials/TUTORIAL.bg, tutorials/TUTORIAL.es: Fix typos. 7 * tutorials/TUTORIAL.bg, tutorials/TUTORIAL.es: Fix typos.
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 8c6a37dbd45..e6174b5edc6 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2339,17 +2339,10 @@ files are installed. Then use:
2339 2339
2340(using the location of the 32-bit X libraries on your system). 2340(using the location of the 32-bit X libraries on your system).
2341 2341
2342*** Building the Cygwin port for MS-Windows can fail with some GCC versions 2342*** Building Emacs for Cygwin can fail with GCC 3
2343 2343
2344Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is 2344As of Emacs 22.1, there have been stability problems with Cygwin
2345reported to either fail or cause Emacs to segfault at run time. In 2345builds of Emacs using GCC 3. Cygwin users are advised to use GCC 4.
2346addition, the Cygwin GCC 3.4.4-2 has problems with generating debug
2347info. Cygwin users are advised not to use these versions of GCC for
2348compiling Emacs. GCC versions 4.0.3, 4.0.4, 4.1.1, and 4.1.2
2349reportedly build a working Cygwin binary of Emacs, so we recommend
2350these GCC versions. Note that these versions of GCC, 4.0.3, 4.0.4,
23514.1.1, and 4.1.2, are currently the _only_ versions known to succeed
2352in building Emacs (as of v22.1).
2353 2346
2354*** Building the native MS-Windows port fails due to unresolved externals 2347*** Building the native MS-Windows port fails due to unresolved externals
2355 2348
diff --git a/info/dir b/info/dir
index 617bfc680bb..ae724d07195 100644
--- a/info/dir
+++ b/info/dir
@@ -19,75 +19,78 @@ The Info Directory
19 19
20* Menu: 20* Menu:
21 21
22* Info: (info). How to use the documentation browsing system. 22* Info: (info). How to use the documentation browsing system.
23 23
24Emacs 24Emacs
25* Emacs: (emacs). The extensible self-documenting text editor. 25* Emacs: (emacs). The extensible self-documenting text editor.
26* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. 26* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs.
27 27
28GNU Emacs Lisp 28GNU Emacs Lisp
29* Emacs Lisp Intro: (eintr). 29* Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming.
30 A simple introduction to Emacs Lisp programming. 30* Elisp: (elisp). The Emacs Lisp Reference Manual.
31* Elisp: (elisp). The Emacs Lisp Reference Manual.
32 31
33Emacs editing modes 32Emacs editing modes
34* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code. 33* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code.
35* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, 34* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C,
36 Java, Pike, AWK, and CORBA IDL code. 35 Java, Pike, AWK, and CORBA IDL code.
37* IDLWAVE: (idlwave). Major mode and shell for IDL files. 36* IDLWAVE: (idlwave). Major mode and shell for IDL files.
38* nXML Mode: (nxml-mode). XML editing mode with RELAX NG support. 37* nXML Mode: (nxml-mode). XML editing mode with RELAX NG support.
39* Org Mode: (org). Outline-based notes management and organizer 38* Org Mode: (org). Outline-based notes management and organizer
40 39
41Emacs network features 40Emacs network features
42* EUDC: (eudc). An Emacs client for directory servers (LDAP, PH). 41* EUDC: (eudc). Emacs client for directory servers (LDAP, PH).
43* Gnus: (gnus). The newsreader Gnus. 42* Gnus: (gnus). The newsreader Gnus.
44* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer. 43* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer.
45* MH-E: (mh-e). Emacs interface to the MH mail system. 44* MH-E: (mh-e). Emacs interface to the MH mail system.
46* Message: (message). Mail and news composition mode that goes with Gnus. 45* Message: (message). Mail and news composition mode that
47* Newsticker: (newsticker). A Newsticker for Emacs. 46 goes with Gnus.
48* PGG: (pgg). Emacs interface to various PGP implementations. 47* Newsticker: (newsticker). A Newsticker for Emacs.
49* ERC: (erc). Powerful, modular, and extensible IRC client for Emacs. 48* PGG: (pgg). Emacs interface to various PGP implementations.
50* Rcirc: (rcirc). Internet Relay Chat (IRC) client. 49* ERC: (erc). Powerful and extensible IRC client for Emacs.
51* SASL: (sasl). The Emacs SASL library. 50* Rcirc: (rcirc). Internet Relay Chat (IRC) client.
52* SC: (sc). Supercite lets you cite parts of messages you're 51* SASL: (sasl). The Emacs SASL library.
53 replying to, in flexible ways. 52* SC: (sc). Supercite lets you cite parts of messages
53 you're replying to, in flexible ways.
54* Sieve: (sieve). Managing Sieve scripts in Emacs. 54* Sieve: (sieve). Managing Sieve scripts in Emacs.
55* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol 55* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol
56 GNU Emacs remote file access via rsh and rcp. 56 GNU Emacs remote file access via rsh and rcp.
57 57
58Emacs misc features 58Emacs misc features
59* Autotype: (autotype). Convenient features for text that you enter frequently 59* Autotype: (autotype). Convenient features for text that you enter
60 in Emacs. 60 frequently in Emacs.
61* Calc: (calc). Advanced desk calculator and mathematical tool. 61* Calc: (calc). Advanced desk calculator and mathematical tool.
62* Dired-X: (dired-x). Dired Extra Features. 62* Dired-X: (dired-x). Dired Extra Features.
63* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard. 63* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard.
64* Ebrowse: (ebrowse). A C++ class browser for Emacs. 64* Ebrowse: (ebrowse). A C++ class browser for Emacs.
65* EDE: (ede). The Emacs Development Environment. 65* EDE: (ede). The Emacs Development Environment.
66* Ediff: (ediff). A visual interface for comparing and merging programs. 66* Ediff: (ediff). A visual interface for comparing and
67* EDT: (edt). An Emacs emulation of the EDT editor. 67 merging programs.
68* EIEIO: (eieio). An object system for Emacs Lisp. 68* EDT: (edt). An Emacs emulation of the EDT editor.
69* Eshell: (eshell). A command shell implemented in Emacs Lisp. 69* EIEIO: (eieio). An object system for Emacs Lisp.
70* Flymake: (flymake). A universal on-the-fly syntax checker. 70* Eshell: (eshell). A command shell implemented in Emacs Lisp.
71* Forms: (forms). Emacs package for editing data bases 71* Flymake: (flymake). A universal on-the-fly syntax checker.
72 by filling in forms. 72* Forms: (forms). Emacs package for editing data bases
73* PCL-CVS: (pcl-cvs). Emacs front-end to CVS. 73 by filling in forms.
74* RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. 74* PCL-CVS: (pcl-cvs). Emacs front-end to CVS.
75* Remember: (remember). Simple information manager for Emacs. 75* RefTeX: (reftex). Emacs support for LaTeX cross-references
76* Semantic: (semantic). Source code parsing utilities for Emacs. 76 and citations.
77* SES: (ses). Simple Emacs Spreadsheet 77* Remember: (remember). Simple information manager for Emacs.
78* Speedbar: (speedbar). File/Tag summarizing utility. 78* Semantic: (semantic). Source code parsing utilities for Emacs.
79* VIP: (vip). An older VI-emulation for Emacs. 79* SES: (ses). Simple Emacs Spreadsheet
80* VIPER: (viper). The newest Emacs VI-emulation mode. 80* Speedbar: (speedbar). File/Tag summarizing utility.
81 (also, A VI Plan for Emacs Rescue 81* VIP: (vip). An older VI-emulation for Emacs.
82 or the VI PERil.) 82* VIPER: (viper). The newest Emacs VI-emulation mode.
83* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". 83 (also, A VI Plan for Emacs Rescue
84 or the VI PERil.)
85* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man".
84 86
85Emacs lisp libraries 87Emacs lisp libraries
86* Auth-source: (auth). A single configuration for multiple applications. 88* Auth-source: (auth). A single configuration for multiple
87* CL: (cl). Partial Common Lisp support for Emacs Lisp. 89 applications.
90* CL: (cl). Partial Common Lisp support for Emacs Lisp.
88* D-Bus: (dbus). Using D-Bus in Emacs. 91* D-Bus: (dbus). Using D-Bus in Emacs.
89* Emacs MIME: (emacs-mime). Emacs MIME de/composition library. 92* Emacs MIME: (emacs-mime). Emacs MIME de/composition library.
90* URL: (url). URL loading package. 93* URL: (url). URL loading package.
91* Widget: (widget). The "widget" package used by the Emacs Customization 94* Widget: (widget). The "widget" package used by the Emacs
92 facility. 95 Customization facility.
93* SMTP: (smtpmail). Emacs library for sending mail via SMTP. 96* SMTP: (smtpmail). Emacs library for sending mail via SMTP.
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 4cbf5dd50f1..d0410f4c080 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,23 @@
12010-07-11 Andreas Schwab <schwab@linux-m68k.org>
2
3 * emacsclient.c (set_local_socket): Use strchr, strrchr instead of
4 index, rindex.
5 * movemail.c (mail_spool_name, popmail): Likewise.
6 * pop.c (pop_list): Likewise.
7
82010-07-11 Eli Zaretskii <eliz@gnu.org>
9
10 * makefile.w32-in (obj): Add menu.o, bidi.o, w32uniscrobe.o,
11 and unexw32.o. (Bug#6603)
12
132010-07-10 Eli Zaretskii <eliz@gnu.org>
14
15 * Makefile.in ($(DESTDIR)${archlibdir}): Convert spaces to TABs.
16
172010-07-09 Andreas Schwab <schwab@linux-m68k.org>
18
19 * make-docfile.c (write_c_args): Restructure scanning loop.
20
12010-07-09 Dan Nicolaescu <dann@ics.uci.edu> 212010-07-09 Dan Nicolaescu <dann@ics.uci.edu>
2 22
3 * make-docfile.c (write_c_args): Deal with type names in DEFUN 23 * make-docfile.c (write_c_args): Deal with type names in DEFUN
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 264f14b1d49..b5c557d8c7b 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -245,7 +245,7 @@ $(DESTDIR)${archlibdir}: all
245 chown ${gameuser} $(DESTDIR)${gamedir}; \ 245 chown ${gameuser} $(DESTDIR)${gamedir}; \
246 chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \ 246 chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \
247 fi 247 fi
248 if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \ 248 if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
249 != `(cd ${srcdir} && /bin/pwd)` ]; then \ 249 != `(cd ${srcdir} && /bin/pwd)` ]; then \
250 for file in ${SCRIPTS}; do \ 250 for file in ${SCRIPTS}; do \
251 $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \ 251 $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index cb8a4ebcaf8..79143ff7a34 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1234,8 +1234,10 @@ set_local_socket (void)
1234 char *server_name = "server"; 1234 char *server_name = "server";
1235 char *tmpdir; 1235 char *tmpdir;
1236 1236
1237 if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\')) 1237 if (socket_name && !strchr (socket_name, '/')
1238 { /* socket_name is a file name component. */ 1238 && !strchr (socket_name, '\\'))
1239 {
1240 /* socket_name is a file name component. */
1239 server_name = socket_name; 1241 server_name = socket_name;
1240 socket_name = NULL; 1242 socket_name = NULL;
1241 default_sock = 1; /* Try both UIDs. */ 1243 default_sock = 1; /* Try both UIDs. */
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 3df7ec607d9..51c30f91d8f 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -440,8 +440,8 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
440{ 440{
441 register char *p; 441 register char *p;
442 int in_ident = 0; 442 int in_ident = 0;
443 int just_spaced = 0; 443 char *ident_start;
444 int need_space = 1; 444 int ident_length;
445 445
446 fprintf (out, "(fn"); 446 fprintf (out, "(fn");
447 447
@@ -450,25 +450,9 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
450 450
451 for (p = buf; *p; p++) 451 for (p = buf; *p; p++)
452 { 452 {
453 char c; 453 char c = *p;
454 int ident_start = 0;
455 454
456 /* FIXME: this must be made a bit more robust*/ 455 /* Notice when a new identifier starts. */
457
458 /* Skip "register Lisp_Object", this can be removed when we get
459 rid of "register" for DEFUNs. */
460 if (strncmp ("register Lisp_Object", p, 20) == 0)
461 p += 20;
462
463 if (strncmp ("Lisp_Object", p, 11) == 0)
464 p += 11;
465
466 if (strncmp ("void", p, 4) == 0)
467 p += 4;
468
469 c = *p;
470
471 /* Notice when we start printing a new identifier. */
472 if ((('A' <= c && c <= 'Z') 456 if ((('A' <= c && c <= 'Z')
473 || ('a' <= c && c <= 'z') 457 || ('a' <= c && c <= 'z')
474 || ('0' <= c && c <= '9') 458 || ('0' <= c && c <= '9')
@@ -478,55 +462,50 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
478 if (!in_ident) 462 if (!in_ident)
479 { 463 {
480 in_ident = 1; 464 in_ident = 1;
481 ident_start = 1; 465 ident_start = p;
482
483 if (need_space)
484 putc (' ', out);
485
486 if (minargs == 0 && maxargs > 0)
487 fprintf (out, "&optional ");
488 just_spaced = 1;
489
490 minargs--;
491 maxargs--;
492 } 466 }
493 else 467 else
494 in_ident = 0; 468 {
469 in_ident = 0;
470 ident_length = p - ident_start;
471 }
495 } 472 }
496 473
497 /* Print the C argument list as it would appear in lisp: 474 /* Found the end of an argument, write out the last seen
498 print underscores as hyphens, and print commas and newlines 475 identifier. */
499 as spaces. Collapse adjacent spaces into one. */ 476 if (c == ',' || c == ')')
500 if (c == '_')
501 c = '-';
502 else if (c == ',' || c == '\n')
503 c = ' ';
504
505 /* In C code, `default' is a reserved word, so we spell it
506 `defalt'; unmangle that here. */
507 if (ident_start
508 && strncmp (p, "defalt", 6) == 0
509 && ! (('A' <= p[6] && p[6] <= 'Z')
510 || ('a' <= p[6] && p[6] <= 'z')
511 || ('0' <= p[6] && p[6] <= '9')
512 || p[6] == '_'))
513 {
514 fprintf (out, "DEFAULT");
515 p += 5;
516 in_ident = 0;
517 just_spaced = 0;
518 }
519 else if (c != ' ' || !just_spaced)
520 { 477 {
521 if (c >= 'a' && c <= 'z') 478 if (strncmp (ident_start, "void", ident_length) == 0)
522 /* Upcase the letter. */ 479 continue;
523 c += 'A' - 'a'; 480
524 putc (c, out); 481 putc (' ', out);
525 } 482
483 if (minargs == 0 && maxargs > 0)
484 fprintf (out, "&optional ");
526 485
527 just_spaced = c == ' '; 486 minargs--;
528 need_space = 0; 487 maxargs--;
488
489 /* In C code, `default' is a reserved word, so we spell it
490 `defalt'; unmangle that here. */
491 if (strncmp (ident_start, "defalt", ident_length) == 0)
492 fprintf (out, "DEFAULT");
493 else
494 while (ident_length-- > 0)
495 {
496 c = *ident_start++;
497 if (c >= 'a' && c <= 'z')
498 /* Upcase the letter. */
499 c += 'A' - 'a';
500 else if (c == '_')
501 /* Print underscore as hyphen. */
502 c = '-';
503 putc (c, out);
504 }
505 }
529 } 506 }
507
508 putc (')', out);
530} 509}
531 510
532/* Read through a c file. If a .o file is named, 511/* Read through a c file. If a .o file is named,
diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in
index cad3b838208..fbcab0183ce 100644
--- a/lib-src/makefile.w32-in
+++ b/lib-src/makefile.w32-in
@@ -143,11 +143,11 @@ $(BLD)/ctags.$(O): ctags.c
143# 143#
144obj = dosfns.o msdos.o \ 144obj = dosfns.o msdos.o \
145 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ 145 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
146 fontset.o \ 146 fontset.o menu.o \
147 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \ 147 w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
148 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \ 148 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
149 font.o w32font.o \ 149 font.o w32font.o w32uniscribe.o \
150 dispnew.o frame.o scroll.o xdisp.o window.o \ 150 dispnew.o frame.o scroll.o xdisp.o window.o bidi.o \
151 charset.o coding.o category.o ccl.o character.o chartab.o \ 151 charset.o coding.o category.o ccl.o character.o chartab.o \
152 cm.o term.o terminal.o xfaces.o \ 152 cm.o term.o terminal.o xfaces.o \
153 emacs.o keyboard.o macros.o keymap.o sysdep.o \ 153 emacs.o keyboard.o macros.o keymap.o sysdep.o \
@@ -157,7 +157,7 @@ obj = dosfns.o msdos.o \
157 alloc.o data.o doc.o editfns.o callint.o \ 157 alloc.o data.o doc.o editfns.o callint.o \
158 eval.o floatfns.o fns.o print.o lread.o \ 158 eval.o floatfns.o fns.o print.o lread.o \
159 syntax.o bytecode.o \ 159 syntax.o bytecode.o \
160 process.o callproc.o \ 160 process.o callproc.o unexw32.o \
161 region-cache.o sound.o atimer.o \ 161 region-cache.o sound.o atimer.o \
162 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o 162 doprnt.o strftime.o intervals.o textprop.o composite.o md5.o
163 163
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index dfa4a92d057..541edf545df 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -146,12 +146,6 @@ static char *mail_spool_name ();
146#ifndef HAVE_STRERROR 146#ifndef HAVE_STRERROR
147char *strerror (int); 147char *strerror (int);
148#endif 148#endif
149#ifdef HAVE_INDEX
150extern char *index (const char *, int);
151#endif
152#ifdef HAVE_RINDEX
153extern char *rindex (const char *, int);
154#endif
155 149
156static void fatal (char *s1, char *s2, char *s3); 150static void fatal (char *s1, char *s2, char *s3);
157static void error (char *s1, char *s2, char *s3); 151static void error (char *s1, char *s2, char *s3);
@@ -564,7 +558,7 @@ mail_spool_name (inname)
564 char *indir, *fname; 558 char *indir, *fname;
565 int status; 559 int status;
566 560
567 if (! (fname = rindex (inname, '/'))) 561 if (! (fname = strrchr (inname, '/')))
568 return NULL; 562 return NULL;
569 563
570 fname++; 564 fname++;
@@ -714,7 +708,7 @@ popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse
714 char *user, *hostname; 708 char *user, *hostname;
715 709
716 user = mailbox; 710 user = mailbox;
717 if ((hostname = index(mailbox, ':'))) 711 if ((hostname = strchr (mailbox, ':')))
718 *hostname++ = '\0'; 712 *hostname++ = '\0';
719 713
720 server = pop_open (hostname, user, password, POP_NO_GETPASS); 714 server = pop_open (hostname, user, password, POP_NO_GETPASS);
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 9eaefa4cb83..26a992fa0b0 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -465,7 +465,7 @@ pop_list (popserver server, int message, int **IDs, int **sizes)
465 return (-1); 465 return (-1);
466 } 466 }
467 (*IDs)[0] = atoi (&fromserver[4]); 467 (*IDs)[0] = atoi (&fromserver[4]);
468 fromserver = index (&fromserver[4], ' '); 468 fromserver = strchr (&fromserver[4], ' ');
469 if (! fromserver) 469 if (! fromserver)
470 { 470 {
471 strcpy (pop_error, 471 strcpy (pop_error,
@@ -496,7 +496,7 @@ pop_list (popserver server, int message, int **IDs, int **sizes)
496 return (-1); 496 return (-1);
497 } 497 }
498 (*IDs)[i] = atoi (fromserver); 498 (*IDs)[i] = atoi (fromserver);
499 fromserver = index (fromserver, ' '); 499 fromserver = strchr (fromserver, ' ');
500 if (! fromserver) 500 if (! fromserver)
501 { 501 {
502 strcpy (pop_error, 502 strcpy (pop_error,
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f793f91a932..e988b6bdef4 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,18 @@
12010-07-11 Chong Yidong <cyd@stupidchicken.com>
2
3 * mouse.el (mouse-drag-track): Handle select-active-regions
4 (Bug#6612).
5
62010-07-11 Magnus Henoch <magnus.henoch@gmail.com>
7
8 * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
9 empty argument to gvfs-copy.
10
112010-07-10 Aleksei Gusev <aleksei.gusev@gmail.com> (tiny change)
12
13 * progmodes/compile.el (compilation-error-regexp-alist-alist): Add
14 regexps for cucumber and ruby.
15
12010-07-08 Daiki Ueno <ueno@unixuser.org> 162010-07-08 Daiki Ueno <ueno@unixuser.org>
2 17
3 * epa-file.el (epa-file-error, epa-file--find-file-not-found-function) 18 * epa-file.el (epa-file-error, epa-file--find-file-not-found-function)
@@ -17,6 +32,12 @@
17 (ispell-complete-word): Use ispell-complete-word-dict or 32 (ispell-complete-word): Use ispell-complete-word-dict or
18 ispell-alternate-dictionary. 33 ispell-alternate-dictionary.
19 34
352010-07-07 Christoph Scholtes <cschol2112@gmail.com>
36
37 * progmodes/python.el (python-font-lock-keywords): Add Python 2.7
38 builtins (BufferError, BytesWarning, WindowsError; callables
39 bin, bytearray, bytes, format, memoryview, next, print; __package__).
40
202010-07-07 Glenn Morris <rgm@gnu.org> 412010-07-07 Glenn Morris <rgm@gnu.org>
21 42
22 * play/zone.el (top-level): Do not require timer, tabify, or cl. 43 * play/zone.el (top-level): Do not require timer, tabify, or cl.
@@ -207,6 +228,75 @@
207 228
2082010-06-21 Karl Fogel <kfogel@red-bean.com> 2292010-06-21 Karl Fogel <kfogel@red-bean.com>
209 230
231 * play/zone.el (zone-fall-through-ws): Fix next-line ->
232 forward-line fallout.
233
2342010-07-06 Chong Yidong <cyd@stupidchicken.com>
235
236 * mouse.el (mouse-appearance-menu): Add docstring.
237
238 * help.el (describe-key): Print up-event using key-description.
239
2402010-07-03 Michael Albinus <michael.albinus@gmx.de>
241
242 * net/zeroconf.el (zeroconf-resolve-service)
243 (zeroconf-service-resolver-handler): Use
244 `dbus-byte-array-to-string'.
245 (zeroconf-publish-service): Use `dbus-string-to-byte-array'.
246
2472010-07-03 Jan Moringen <jan.moringen@uni-bielefeld.de>
248
249 * net/zeroconf.el (zeroconf-service-remove-hook): New defun.
250
2512010-06-30 Dan Nicolaescu <dann@ics.uci.edu>
252
253 Avoid displaying files with a nil state in vc-dir.
254 * vc-dir.el (vc-dir-update): Obey the noinsert argument in all
255 cases that cause insertion.
256 (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
257 with a nil state.
258
2592010-06-30 Chong Yidong <cyd@stupidchicken.com>
260
261 * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
262
2632010-06-29 Leo <sdl.web@gmail.com>
264
265 * emacs-lisp/rx.el (rx): Doc fix. (Bug#6537)
266
2672010-06-27 Oleksandr Gavenko <gavenkoa@gmail.com> (tiny change)
268
269 * generic-x.el (bat-generic-mode): Fix regexp for command line
270 switches (Bug#5719).
271
2722010-06-27 Masatake YAMATO <yamato@redhat.com>
273
274 * htmlfontify.el (hfy-face-attr-for-class): Use append instead
275 of nconc to avoid pure storage error (Bug#6239).
276
2772010-06-27 Christoph <cschol2112@googlemail.com> (tiny change)
278
279 * bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window)
280 (bookmark-bmenu-other-window-with-mouse): Remove unnecessary
281 bindings of bookmark-automatically-show-annotations (Bug#6515).
282
2832010-06-25 Eli Zaretskii <eliz@gnu.org>
284
285 * arc-mode.el (archive-zip-extract): Don't quote the file name on
286 MS-Windows and MS-DOS. (Bug#6467, Bug#6144)
287
2882010-06-24 Štěpán Němec <stepnem@gmail.com> (tiny change)
289
290 * comint.el (make-comint, make-comint-in-buffer): Mention return
291 value in the docstrings. (Bug#6498)
292
2932010-06-24 Yoni Rabkin <yoni@rabkins.net>
294
295 * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
296 since it is not present when using some non-default switches.
297
2982010-06-23 Karl Fogel <kfogel@red-bean.com>
299
210 * simple.el (compose-mail): Fix doc string to refer to 300 * simple.el (compose-mail): Fix doc string to refer to
211 `compose-mail-user-agent-warnings', instead of to the 301 `compose-mail-user-agent-warnings', instead of to the
212 nonexistent `compose-mail-check-user-agent'. 302 nonexistent `compose-mail-check-user-agent'.
@@ -320,6 +410,66 @@
320 410
321 * emacs-lisp/package.el: New file. 411 * emacs-lisp/package.el: New file.
322 412
4132010-06-22 Dan Nicolaescu <dann@ics.uci.edu>
414
415 Fix vc-annotate for renamed files when using Git.
416 * vc-git.el (vc-git-find-revision): Deal with empty results from
417 ls-files. Doe not pass the object as a file name to cat-file, it
418 is not a file name.
419 (vc-git-annotate-command): Pass the file name using -- to avoid
420 ambiguity with the revision.
421 (vc-git-previous-revision): Pass a relative file name.
422
4232010-06-22 Glenn Morris <rgm@gnu.org>
424
425 * progmodes/js.el (js-mode-map): Use standard capitalization and
426 ellipses for menu entries.
427
428 * wid-edit.el (widget-complete): Doc fix.
429
4302010-06-22 Jürgen Hötzel <juergen@hoetzel.info> (tiny change)
431
432 * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
433
4342010-06-22 Dan Nicolaescu <dann@ics.uci.edu>
435
436 Fix annotating other revisions for renamed files in vc-annotate.
437 * vc-annotate.el (vc-annotate): Add an optional argument for the
438 VC backend. Use it when non-nil.
439 (vc-annotate-warp-revision): Pass the VC backend to vc-annotate. (Bug#6487)
440
441 Fix vc-annotate-show-changeset-diff-revision-at-line for git.
442 * vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
443 Do not pass the file name to the 'previous-revision call when we
444 don't want a file diff. (Bug#6489)
445
4462010-06-21 Dan Nicolaescu <dann@ics.uci.edu>
447
448 Fix finding revisions for renamed files in vc-annotate.
449 * vc.el (vc-find-revision): Add an optional argument for
450 the VC backend. Use it when non-nil.
451 * vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
452 backend to vc-find-revision. (Bug#6487)
453
4542010-06-21 Dan Nicolaescu <dann@ics.uci.edu>
455
456 Fix reading file names in Git annotate buffers.
457 * vc-git.el (vc-git-annotate-extract-revision-at-line): Remove
458 trailing whitespace. Suggested by Eric Hanchrow. (Bug#6481)
459
4602010-06-20 Alan Mackenzie <acm@muc.de>
461
462 * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
463 in file local variables, set it first.
464
4652010-06-19 Glenn Morris <rgm@gnu.org>
466
467 * descr-text.el (describe-char-unicode-data): Insert separating
468 space when needed. (Bug#6422)
469
470 * progmodes/idlwave.el (idlwave-action-and-binding):
471 Fix typo in 2009-12-03 change. (Bug#6450)
472
3232010-06-17 Stefan Monnier <monnier@iro.umontreal.ca> 4732010-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
324 474
325 * emacs-lisp/macroexp.el (macroexpand-all-1): Put back special 475 * emacs-lisp/macroexp.el (macroexpand-all-1): Put back special
@@ -335,6 +485,8 @@
335 * facemenu.el (list-colors-display): Call `pop-to-buffer' before 485 * facemenu.el (list-colors-display): Call `pop-to-buffer' before
336 `list-colors-print'. (Bug#6332) 486 `list-colors-print'. (Bug#6332)
337 487
488 * subr.el (read-quoted-char): Fix up last change (bug#6290).
489
3382010-06-16 Stefan Monnier <monnier@iro.umontreal.ca> 4902010-06-16 Stefan Monnier <monnier@iro.umontreal.ca>
339 491
340 * emacs-lisp/macroexp.el (macroexpand-all-1): Don't handle `lambda' 492 * emacs-lisp/macroexp.el (macroexpand-all-1): Don't handle `lambda'
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index fb6155dfd41..6dda7b2e40b 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1811,10 +1811,13 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
1811 (t 1811 (t
1812 (archive-extract-by-stdout 1812 (archive-extract-by-stdout
1813 archive 1813 archive
1814 ;; unzip expands wildcards in NAME, so we need to quote it. 1814 ;; unzip expands wildcards in NAME, so we need to quote it. But
1815 ;; not on DOS/Windows, since that fails extraction on those
1816 ;; systems, and file names with wildcards in zip archives don't
1817 ;; work there anyway.
1815 ;; FIXME: Does pkunzip need similar treatment? 1818 ;; FIXME: Does pkunzip need similar treatment?
1816 ;; (7z doesn't need to quote wildcards) 1819 (if (and (not (memq system-type '(windows-nt ms-dos)))
1817 (if (equal (car archive-zip-extract) "unzip") 1820 (equal (car archive-zip-extract) "unzip"))
1818 (shell-quote-argument name) 1821 (shell-quote-argument name)
1819 name) 1822 name)
1820 archive-zip-extract)))) 1823 archive-zip-extract))))
diff --git a/lisp/bs.el b/lisp/bs.el
index 3fa91b49178..0ce7670201d 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -195,7 +195,7 @@ return a string representing the column's value."
195 'font-lock-constant-face 195 'font-lock-constant-face
196 'font-lock-comment-face)) 196 'font-lock-comment-face))
197 ;; Dired-Buffers 197 ;; Dired-Buffers
198 '("^..\\(.*Dired by .*\\)$" 1 font-lock-function-name-face) 198 '("^..\\(.*Dired .*\\)$" 1 font-lock-function-name-face)
199 ;; the star for modified buffers 199 ;; the star for modified buffers
200 '("^.\\(\\*\\) +[^\\*]" 1 font-lock-comment-face)) 200 '("^.\\(\\*\\) +[^\\*]" 1 font-lock-comment-face))
201 "Default font lock expressions for Buffer Selection Menu.") 201 "Default font lock expressions for Buffer Selection Menu.")
diff --git a/lisp/comint.el b/lisp/comint.el
index b097baad189..071537ffd89 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -701,7 +701,9 @@ a running process in that buffer, it is not restarted. Optional fourth arg
701STARTFILE is the name of a file, whose contents are sent to the 701STARTFILE is the name of a file, whose contents are sent to the
702process as its initial input. 702process as its initial input.
703 703
704If PROGRAM is a string, any more args are arguments to PROGRAM." 704If PROGRAM is a string, any more args are arguments to PROGRAM.
705
706Returns the (possibly newly created) process buffer."
705 (or (fboundp 'start-file-process) 707 (or (fboundp 'start-file-process)
706 (error "Multi-processing is not supported for this system")) 708 (error "Multi-processing is not supported for this system"))
707 (setq buffer (get-buffer-create (or buffer (concat "*" name "*")))) 709 (setq buffer (get-buffer-create (or buffer (concat "*" name "*"))))
@@ -725,7 +727,9 @@ a running process in that buffer, it is not restarted. Optional third arg
725STARTFILE is the name of a file, whose contents are sent to the 727STARTFILE is the name of a file, whose contents are sent to the
726process as its initial input. 728process as its initial input.
727 729
728If PROGRAM is a string, any more args are arguments to PROGRAM." 730If PROGRAM is a string, any more args are arguments to PROGRAM.
731
732Returns the (possibly newly created) process buffer."
729 (apply #'make-comint-in-buffer name nil program startfile switches)) 733 (apply #'make-comint-in-buffer name nil program startfile switches))
730 734
731;;;###autoload 735;;;###autoload
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 735023ceb02..93c69e0eea5 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -301,7 +301,7 @@ This function is semi-obsolete. Use `get-char-code-property'."
301 (lambda (arg) 301 (lambda (arg)
302 (string (string-to-number arg 16))) 302 (string (string-to-number arg 16)))
303 parts " ")) 303 parts " "))
304 (concat info parts)))) 304 (concat info (if info " ") parts))))
305 (list "Decimal digit value" 305 (list "Decimal digit value"
306 (nth 5 fields)) 306 (nth 5 fields))
307 (list "Digit value" 307 (list "Digit value"
diff --git a/lisp/dnd.el b/lisp/dnd.el
index c064aa9897a..d7cbb641bab 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -1,8 +1,9 @@
1;;; dnd.el --- drag and drop support. 1;;; dnd.el --- drag and drop support. -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
4;; Free Software Foundation, Inc.
4 5
5;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 6;; Author: Jan Djärv <jan.h.d@swipnet.se>
6;; Maintainer: FSF 7;; Maintainer: FSF
7;; Keywords: window, drag, drop 8;; Keywords: window, drag, drop
8 9
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
index 5d04494ecb6..85fe3514b01 100644
--- a/lisp/emacs-lisp/rx.el
+++ b/lisp/emacs-lisp/rx.el
@@ -1053,9 +1053,6 @@ CHAR
1053 like `and', but makes the match accessible with `match-end', 1053 like `and', but makes the match accessible with `match-end',
1054 `match-beginning', and `match-string'. 1054 `match-beginning', and `match-string'.
1055 1055
1056`(group SEXP1 SEXP2 ...)'
1057 another name for `submatch'.
1058
1059`(or SEXP1 SEXP2 ...)' 1056`(or SEXP1 SEXP2 ...)'
1060`(| SEXP1 SEXP2 ...)' 1057`(| SEXP1 SEXP2 ...)'
1061 matches anything that matches SEXP1 or SEXP2, etc. If all 1058 matches anything that matches SEXP1 or SEXP2, etc. If all
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index c2ac7e3b3d0..f6749cd9e97 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -4,7 +4,7 @@
4;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5 5
6;; Author: Kim F. Storm <storm@cua.dk> 6;; Author: Kim F. Storm <storm@cua.dk>
7;; Keywords: keyboard emulation convenience cua 7;; Keywords: keyboard emulations convenience cua
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
10 10
diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el
index 529ba290cb8..857f94cb5f5 100644
--- a/lisp/emulation/pc-select.el
+++ b/lisp/emulation/pc-select.el
@@ -6,7 +6,7 @@
6;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 6;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
7 7
8;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE> 8;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
9;; Keywords: convenience emulation 9;; Keywords: convenience emulations
10;; Created: 26 Sep 1995 10;; Created: 26 Sep 1995
11 11
12;; This file is part of GNU Emacs. 12;; This file is part of GNU Emacs.
diff --git a/lisp/generic-x.el b/lisp/generic-x.el
index a96ab5cbbe9..0083989c75a 100644
--- a/lisp/generic-x.el
+++ b/lisp/generic-x.el
@@ -508,8 +508,7 @@ like an INI file. You can add this hook to `find-file-hook'."
508 '("^[ \t]*\\(:\\sw+\\)" 1 font-lock-function-name-face t) 508 '("^[ \t]*\\(:\\sw+\\)" 1 font-lock-function-name-face t)
509 '("\\(%\\sw+%\\)" 1 font-lock-variable-name-face t) 509 '("\\(%\\sw+%\\)" 1 font-lock-variable-name-face t)
510 '("\\(%[0-9]\\)" 1 font-lock-variable-name-face t) 510 '("\\(%[0-9]\\)" 1 font-lock-variable-name-face t)
511 '("\\(/[^/ \"\t\n]+\\)" 1 font-lock-type-face) 511 '("[\t ]+\\([+-/][^\t\n\" ]+\\)" 1 font-lock-type-face)
512 '("[\t ]+\\([+-][^\t\n\" ]+\\)" 1 font-lock-type-face)
513 '("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?" 512 '("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
514 (1 font-lock-keyword-face) 513 (1 font-lock-keyword-face)
515 (2 font-lock-function-name-face nil t)) 514 (2 font-lock-function-name-face nil t))
diff --git a/lisp/help.el b/lisp/help.el
index 899547aa0a1..9434201797e 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -768,9 +768,10 @@ temporarily enables it to allow getting help on disabled items and buttons."
768 768
769----------------- up-event %s---------------- 769----------------- up-event %s----------------
770 770
771<%S>%s%s runs the command %S, which is " 771%s%s%s runs the command %S, which is "
772 (if mouse-1-tricky "(short click) " "") 772 (if mouse-1-tricky "(short click) " "")
773 ev-type mouse-msg 773 (key-description (vector up-event))
774 mouse-msg
774 (if mouse-1-remapped 775 (if mouse-1-remapped
775 " is remapped to <mouse-2>, which" "") 776 " is remapped to <mouse-2>, which" "")
776 defn-up)) 777 defn-up))
diff --git a/lisp/hl-line.el b/lisp/hl-line.el
index 755ff696453..9a791076002 100644
--- a/lisp/hl-line.el
+++ b/lisp/hl-line.el
@@ -1,12 +1,12 @@
1;;; hl-line.el --- highlight the current line 1;;; hl-line.el --- highlight the current line
2 2
3;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 3;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4;; 2008, 2009, 2010 Free Software Foundation, Inc.
5 5
6;; Author: Dave Love <fx@gnu.org> 6;; Author: Dave Love <fx@gnu.org>
7;; Maintainer: FSF 7;; Maintainer: FSF
8;; Created: 1998-09-13 8;; Created: 1998-09-13
9;; Keywords: faces, frames, emulation 9;; Keywords: faces, frames, emulations
10 10
11;; This file is part of GNU Emacs. 11;; This file is part of GNU Emacs.
12 12
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index 12e54972461..035b6d384e7 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -926,7 +926,7 @@ See also `hfy-display-class' for details of valid values for CLASS."
926 new-spec))))) 926 new-spec)))))
927 (if (or (memq :inherit face-spec) (eq 'default face)) 927 (if (or (memq :inherit face-spec) (eq 'default face))
928 face-spec 928 face-spec
929 (nconc face-spec (list :inherit 'default))) )) 929 (append face-spec (list :inherit 'default)))))
930 930
931;; construct an assoc of (css-tag-name . css-tag-value) pairs 931;; construct an assoc of (css-tag-name . css-tag-value) pairs
932;; from a face or assoc of face attributes: 932;; from a face or assoc of face attributes:
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 53818635511..30fd26b51fc 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -956,9 +956,12 @@ DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by
956 (if (eq transient-mark-mode 'lambda) 956 (if (eq transient-mark-mode 'lambda)
957 '(only) 957 '(only)
958 (cons 'only transient-mark-mode))) 958 (cons 'only transient-mark-mode)))
959 (let ((range (mouse-start-end start-point start-point click-count))) 959 (let ((range (mouse-start-end start-point start-point click-count))
960 ;; Prevent `push-mark' from clobbering the primary selection
961 ;; if the user clicks without dragging.
962 (select-active-regions nil))
960 (goto-char (nth 0 range)) 963 (goto-char (nth 0 range))
961 (push-mark nil nil t) 964 (push-mark nil t t)
962 (goto-char (nth 1 range))) 965 (goto-char (nth 1 range)))
963 966
964 ;; Track the mouse until we get a non-movement event. 967 ;; Track the mouse until we get a non-movement event.
@@ -1012,6 +1015,7 @@ DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by
1012 mouse-set-region)))))) 1015 mouse-set-region))))))
1013 (if (and (/= (mark) (point)) 1016 (if (and (/= (mark) (point))
1014 (not do-multi-click)) 1017 (not do-multi-click))
1018
1015 ;; If point has moved, finish the drag. 1019 ;; If point has moved, finish the drag.
1016 (let* (last-command this-command) 1020 (let* (last-command this-command)
1017 ;; Copy the region so that `select-active-regions' can 1021 ;; Copy the region so that `select-active-regions' can
@@ -1019,12 +1023,20 @@ DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by
1019 (and mouse-drag-copy-region 1023 (and mouse-drag-copy-region
1020 do-mouse-drag-region-post-process 1024 do-mouse-drag-region-post-process
1021 (let (deactivate-mark) 1025 (let (deactivate-mark)
1022 (copy-region-as-kill (mark) (point))))) 1026 (copy-region-as-kill (mark) (point))))
1027 ;; For `select-active-regions' non-nil, ensure that
1028 ;; further alterations of the region (e.g. via
1029 ;; shift-selection) continue to update PRIMARY.
1030 (and select-active-regions
1031 (display-selections-p)
1032 (x-set-selection 'PRIMARY (current-buffer))))
1033
1023 ;; If point hasn't moved, run the binding of the 1034 ;; If point hasn't moved, run the binding of the
1024 ;; terminating up-event. 1035 ;; terminating up-event.
1025 (if do-multi-click 1036 (if do-multi-click
1026 (goto-char start-point) 1037 (goto-char start-point)
1027 (deactivate-mark)) 1038 (let (select-active-regions)
1039 (deactivate-mark)))
1028 (when (and (functionp fun) 1040 (when (and (functionp fun)
1029 (= start-hscroll (window-hscroll start-window)) 1041 (= start-hscroll (window-hscroll start-window))
1030 ;; Don't run the up-event handler if the window 1042 ;; Don't run the up-event handler if the window
@@ -2357,6 +2369,7 @@ choose a font."
2357(declare-function font-face-attributes "font.c" (font &optional frame)) 2369(declare-function font-face-attributes "font.c" (font &optional frame))
2358 2370
2359(defun mouse-appearance-menu (event) 2371(defun mouse-appearance-menu (event)
2372 "Show a menu for changing the default face in the current buffer."
2360 (interactive "@e") 2373 (interactive "@e")
2361 (require 'face-remap) 2374 (require 'face-remap)
2362 (when (display-multi-font-p) 2375 (when (display-multi-font-p)
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index a984dd37fd8..202eaf59835 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -551,11 +551,14 @@ is no information where to trace the message.")
551 (tramp-message v 4 "`copy-file' failed, trying `gvfs-copy'") 551 (tramp-message v 4 "`copy-file' failed, trying `gvfs-copy'")
552 (unless 552 (unless
553 (zerop 553 (zerop
554 (tramp-gvfs-send-command 554 (let ((args
555 v "gvfs-copy" 555 (append (if (or keep-date preserve-uid-gid)
556 (if (or keep-date preserve-uid-gid) "--preserve" "") 556 (list "--preserve")
557 (tramp-gvfs-url-file-name filename) 557 nil)
558 (tramp-gvfs-url-file-name newname))) 558 (list
559 (tramp-gvfs-url-file-name filename)
560 (tramp-gvfs-url-file-name newname)))))
561 (apply 'tramp-gvfs-send-command v "gvfs-copy" args)))
559 ;; Propagate the error. 562 ;; Propagate the error.
560 (tramp-error v (car err) "%s" (cdr err))))))) 563 (tramp-error v (car err) "%s" (cdr err)))))))
561 564
diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el
index b0b98fc57f3..e49a45c8a48 100644
--- a/lisp/net/zeroconf.el
+++ b/lisp/net/zeroconf.el
@@ -336,6 +336,23 @@ The attributes of SERVICE can be retrieved via the functions
336 (puthash type l-hook zeroconf-service-removed-hooks-hash))) 336 (puthash type l-hook zeroconf-service-removed-hooks-hash)))
337 (t (error "EVENT must be either `:new' or `:removed'")))) 337 (t (error "EVENT must be either `:new' or `:removed'"))))
338 338
339(defun zeroconf-service-remove-hook (type event function)
340 "Remove FUNCTION from the hook of service type TYPE.
341
342EVENT must be either :new or :removed and has to match the event
343type used when registering FUNCTION."
344 (let* ((table (cond
345 ((equal event :new)
346 zeroconf-service-added-hooks-hash)
347 ((equal event :removed)
348 zeroconf-service-removed-hooks-hash)
349 (t (error "EVENT must be either `:new' or `:removed'"))))
350 (l-hook (gethash type table nil)))
351 (remove-hook 'l-hook function)
352 (if l-hook
353 (puthash type l-hook table)
354 (remhash type table))))
355
339(defun zeroconf-get-host () 356(defun zeroconf-get-host ()
340 "Returns the local host name as string." 357 "Returns the local host name as string."
341 (dbus-call-method 358 (dbus-call-method
@@ -407,7 +424,7 @@ TYPE. The resulting list has the format
407 (elt (nth 9 result))) ;; TXT. 424 (elt (nth 9 result))) ;; TXT.
408 ;; The TXT field has the signature "aay". Transform to "as". 425 ;; The TXT field has the signature "aay". Transform to "as".
409 (while elt 426 (while elt
410 (setcar elt (apply 'string (car elt))) 427 (setcar elt (dbus-byte-array-to-string (car elt)))
411 (setq elt (cdr elt))) 428 (setq elt (cdr elt)))
412 429
413 (when nil ;; We discard it, no use so far. 430 (when nil ;; We discard it, no use so far.
@@ -599,7 +616,7 @@ DOMAIN is nil, the local domain is used."
599 ;; The "TXT" field has the signature "aay". Transform to "as". 616 ;; The "TXT" field has the signature "aay". Transform to "as".
600 (let ((elt (nth 9 val))) 617 (let ((elt (nth 9 val)))
601 (while elt 618 (while elt
602 (setcar elt (apply 'string (car elt))) 619 (setcar elt (dbus-byte-array-to-string (car elt)))
603 (setq elt (cdr elt)))) 620 (setq elt (cdr elt))))
604 (when zeroconf-debug 621 (when zeroconf-debug
605 (message "zeroconf-service-resolver-handler: %s %S" 622 (message "zeroconf-service-resolver-handler: %s %S"
@@ -641,11 +658,7 @@ For the description of arguments, see `zeroconf-resolved-services-hash'."
641 658
642 ;; The TXT field has the signature "as". Transform to "aay". 659 ;; The TXT field has the signature "as". Transform to "aay".
643 (dolist (elt txt) 660 (dolist (elt txt)
644 (let (args) 661 (add-to-list 'result (dbus-string-to-byte-array elt)))
645 (add-to-list
646 'result
647 (dolist (elt1 (string-to-list elt) (append '(:array) args))
648 (setq args (append args (list :byte elt1)))))))
649 662
650 ;; Add the service. 663 ;; Add the service.
651 (dbus-call-method 664 (dbus-call-method
diff --git a/lisp/play/zone.el b/lisp/play/zone.el
index 568d4cf2a19..4fa5a8c3920 100644
--- a/lisp/play/zone.el
+++ b/lisp/play/zone.el
@@ -478,8 +478,10 @@ If the element is a function or a list of a function and a number,
478 (wait 0.15) 478 (wait 0.15)
479 newpos fall-p) 479 newpos fall-p)
480 (while (when (save-excursion 480 (while (when (save-excursion
481 (forward-line 1) 481 (and (zerop (forward-line 1))
482 (and (= col (current-column)) 482 (progn
483 (forward-char col)
484 (= col (current-column)))
483 (setq newpos (point)) 485 (setq newpos (point))
484 (string= spaces (buffer-substring-no-properties 486 (string= spaces (buffer-substring-no-properties
485 newpos (+ newpos cw-ceil))) 487 newpos (+ newpos cw-ceil)))
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 9044b42a838..ed769158a50 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -669,8 +669,13 @@ They are set only when, respectively, the pseudo variables
669 669
670This function is called from the hook `before-hack-local-variables-hook'." 670This function is called from the hook `before-hack-local-variables-hook'."
671 (when c-buffer-is-cc-mode 671 (when c-buffer-is-cc-mode
672 (let ((stile (cdr (assq 'c-file-style file-local-variables-alist))) 672 (let ((mode-cons (assq 'mode file-local-variables-alist))
673 (stile (cdr (assq 'c-file-style file-local-variables-alist)))
673 (offsets (cdr (assq 'c-file-offsets file-local-variables-alist)))) 674 (offsets (cdr (assq 'c-file-offsets file-local-variables-alist))))
675 (when mode-cons
676 (hack-one-local-variable (car mode-cons) (cdr mode-cons))
677 (setq file-local-variables-alist
678 (delq mode-cons file-local-variables-alist)))
674 (when stile 679 (when stile
675 (or (stringp stile) (error "c-file-style is not a string")) 680 (or (stringp stile) (error "c-file-style is not a string"))
676 (c-set-style stile)) 681 (c-set-style stile))
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 7000b4bbc8a..76bd02615e3 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -196,6 +196,10 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
196 "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\ 196 "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\
197\\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4)) 197\\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4))
198 198
199 (cucumber
200 "\\(?:^cucumber\\(?: -p [^[:space:]]+\\)?\\|#\\)\
201\\(?: \\)\\([^\(].*\\):\\([1-9][0-9]*\\)" 1 2)
202
199 (edg-1 203 (edg-1
200 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)" 204 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)"
201 1 2 nil (3 . 4)) 205 1 2 nil (3 . 4))
@@ -325,6 +329,13 @@ during global destruction\\.$\\)" 1 2)
325 "\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 329 "\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)"
326 2 3 nil nil) 330 2 3 nil nil)
327 331
332 (ruby
333 "^[\t ]*\\(?:from \\)?\
334\\([^\(\n][^[:space:]\n]*\\):\\([1-9][0-9]*\\)\\(:in `.*'\\)?.*$" 1 2)
335
336 (ruby-Test::Unit
337 "[\t ]*\\[\\([^\(].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:$" 1 2)
338
328 (rxp 339 (rxp
329 "^\\(?:Error\\|Warnin\\(g\\)\\):.*\n.* line \\([0-9]+\\) char\ 340 "^\\(?:Error\\|Warnin\\(g\\)\\):.*\n.* line \\([0-9]+\\) char\
330 \\([0-9]+\\) of file://\\(.+\\)" 341 \\([0-9]+\\) of file://\\(.+\\)"
@@ -2083,7 +2094,7 @@ and overlay is highlighted between MK and END-MK."
2083 pre-existing 2094 pre-existing
2084 (let ((display-buffer-reuse-frames t) 2095 (let ((display-buffer-reuse-frames t)
2085 (pop-up-windows t)) 2096 (pop-up-windows t))
2086 ;; Pop up a window. 2097 ;; Pop up a window.
2087 (display-buffer (marker-buffer msg))))) 2098 (display-buffer (marker-buffer msg)))))
2088 (highlight-regexp (with-current-buffer (marker-buffer msg) 2099 (highlight-regexp (with-current-buffer (marker-buffer msg)
2089 ;; also do this while we change buffer 2100 ;; also do this while we change buffer
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 402893c5946..1d042c99451 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -1602,7 +1602,7 @@ Capitalize system variables - action only
1602 `(lambda () 1602 `(lambda ()
1603 (interactive) 1603 (interactive)
1604 (self-insert-command 1) 1604 (self-insert-command 1)
1605 ,@(if (listp cmd) cmd (list cmd)))))) 1605 ,(if (listp cmd) cmd (list cmd))))))
1606 1606
1607;; Set action and key bindings. 1607;; Set action and key bindings.
1608;; See description of the function `idlwave-action-and-binding'. 1608;; See description of the function `idlwave-action-and-binding'.
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 6bd8fbc2442..60ed14afbac 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -474,8 +474,7 @@ for preventing Firefox from stealing the keyboard focus."
474(defcustom js-js-tmpdir 474(defcustom js-js-tmpdir
475 "~/.emacs.d/js/js" 475 "~/.emacs.d/js/js"
476 "Temporary directory used by `js-mode' to communicate with Mozilla. 476 "Temporary directory used by `js-mode' to communicate with Mozilla.
477This directory must be readable and writable by both Mozilla and 477This directory must be readable and writable by both Mozilla and Emacs."
478Emacs."
479 :type 'directory 478 :type 'directory
480 :group 'js) 479 :group 'js)
481 480
@@ -499,11 +498,11 @@ getting timeout messages."
499 (define-key keymap [(meta ?.)] #'js-find-symbol) 498 (define-key keymap [(meta ?.)] #'js-find-symbol)
500 (easy-menu-define nil keymap "Javascript Menu" 499 (easy-menu-define nil keymap "Javascript Menu"
501 '("Javascript" 500 '("Javascript"
502 ["Select new Mozilla context…" js-set-js-context 501 ["Select New Mozilla Context..." js-set-js-context
503 (fboundp #'inferior-moz-process)] 502 (fboundp #'inferior-moz-process)]
504 ["Evaluate expression in Mozilla context…" js-eval 503 ["Evaluate Expression in Mozilla Context..." js-eval
505 (fboundp #'inferior-moz-process)] 504 (fboundp #'inferior-moz-process)]
506 ["Send current function to Mozilla…" js-eval-defun 505 ["Send Current Function to Mozilla..." js-eval-defun
507 (fboundp #'inferior-moz-process)])) 506 (fboundp #'inferior-moz-process)]))
508 keymap) 507 keymap)
509 "Keymap for `js-mode'.") 508 "Keymap for `js-mode'.")
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 4e0f326e2d4..2b09e346331 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -93,7 +93,7 @@
93 93
94(defvar python-font-lock-keywords 94(defvar python-font-lock-keywords
95 `(,(rx symbol-start 95 `(,(rx symbol-start
96 ;; From v 2.5 reference, § keywords. 96 ;; From v 2.7 reference, § keywords.
97 ;; def and class dealt with separately below 97 ;; def and class dealt with separately below
98 (or "and" "as" "assert" "break" "continue" "del" "elif" "else" 98 (or "and" "as" "assert" "break" "continue" "del" "elif" "else"
99 "except" "exec" "finally" "for" "from" "global" "if" 99 "except" "exec" "finally" "for" "from" "global" "if"
@@ -102,7 +102,7 @@
102 ;; Not real keywords, but close enough to be fontified as such 102 ;; Not real keywords, but close enough to be fontified as such
103 "self" "True" "False") 103 "self" "True" "False")
104 symbol-end) 104 symbol-end)
105 (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.5 manual 105 (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.7 manual
106 . font-lock-constant-face) 106 . font-lock-constant-face)
107 ;; Definitions 107 ;; Definitions
108 (,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_)))) 108 (,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_))))
@@ -117,7 +117,7 @@
117 (0+ "." (1+ (or word ?_))))) 117 (0+ "." (1+ (or word ?_)))))
118 (1 font-lock-type-face)) 118 (1 font-lock-type-face))
119 ;; Built-ins. (The next three blocks are from 119 ;; Built-ins. (The next three blocks are from
120 ;; `__builtin__.__dict__.keys()' in Python 2.5.1.) These patterns 120 ;; `__builtin__.__dict__.keys()' in Python 2.7) These patterns
121 ;; are debateable, but they at least help to spot possible 121 ;; are debateable, but they at least help to spot possible
122 ;; shadowing of builtins. 122 ;; shadowing of builtins.
123 (,(rx symbol-start (or 123 (,(rx symbol-start (or
@@ -135,7 +135,9 @@
135 "SystemExit" "TabError" "TypeError" "UnboundLocalError" 135 "SystemExit" "TabError" "TypeError" "UnboundLocalError"
136 "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError" 136 "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError"
137 "UnicodeTranslateError" "UnicodeWarning" "UserWarning" 137 "UnicodeTranslateError" "UnicodeWarning" "UserWarning"
138 "ValueError" "Warning" "ZeroDivisionError") symbol-end) 138 "ValueError" "Warning" "ZeroDivisionError"
139 ;; Python 2.7
140 "BufferError" "BytesWarning" "WindowsError") symbol-end)
139 . font-lock-type-face) 141 . font-lock-type-face)
140 (,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start 142 (,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start
141 (group (or 143 (group (or
@@ -152,12 +154,16 @@
152 "range" "raw_input" "reduce" "reload" "repr" "reversed" 154 "range" "raw_input" "reduce" "reload" "repr" "reversed"
153 "round" "set" "setattr" "slice" "sorted" "staticmethod" 155 "round" "set" "setattr" "slice" "sorted" "staticmethod"
154 "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars" 156 "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars"
155 "xrange" "zip")) symbol-end) 157 "xrange" "zip"
158 ;; Python 2.7.
159 "bin" "bytearray" "bytes" "format" "memoryview" "next" "print"
160 )) symbol-end)
156 (1 font-lock-builtin-face)) 161 (1 font-lock-builtin-face))
157 (,(rx symbol-start (or 162 (,(rx symbol-start (or
158 ;; other built-ins 163 ;; other built-ins
159 "True" "False" "None" "Ellipsis" 164 "True" "False" "None" "Ellipsis"
160 "_" "__debug__" "__doc__" "__import__" "__name__") symbol-end) 165 "_" "__debug__" "__doc__" "__import__" "__name__" "__package__")
166 symbol-end)
161 . font-lock-builtin-face))) 167 . font-lock-builtin-face)))
162 168
163(defconst python-font-lock-syntactic-keywords 169(defconst python-font-lock-syntactic-keywords
diff --git a/lisp/subr.el b/lisp/subr.el
index 16ba45f1c74..9fb737fd038 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1874,12 +1874,11 @@ any other non-digit terminates the character code and is then used as input."))
1874 ;; Note: `read-char' does it using the `ascii-character' property. 1874 ;; Note: `read-char' does it using the `ascii-character' property.
1875 ;; We should try and use read-key instead. 1875 ;; We should try and use read-key instead.
1876 (let ((translation (lookup-key local-function-key-map (vector char)))) 1876 (let ((translation (lookup-key local-function-key-map (vector char))))
1877 (if (arrayp translation) 1877 (setq translated (if (arrayp translation)
1878 (setq translated (aref translation 0)))) 1878 (aref translation 0)
1879 (setq translated 1879 char)))
1880 (if (integerp char) 1880 (if (integerp translated)
1881 (char-resolve-modifiers char) 1881 (setq translated (char-resolve-modifiers translated)))
1882 char))
1883 (cond ((null translated)) 1882 (cond ((null translated))
1884 ((not (integerp translated)) 1883 ((not (integerp translated))
1885 (setq unread-command-events (list char) 1884 (setq unread-command-events (list char)
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 1de6f93416a..24fa2c0c064 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -806,7 +806,7 @@
806 (url-http-parse-headers): Use it. 806 (url-http-parse-headers): Use it.
807 (url-http-handle-authentication): Use subst-char-in-string. 807 (url-http-handle-authentication): Use subst-char-in-string.
808 808
8092005-11-16 Juergen Hoetzel <emacs@hoetzel.info> (tiny change) 8092005-11-16 Jürgen Hötzel <emacs@hoetzel.info> (tiny change)
810 810
811 * url-handlers.el (url-insert-file-contents): Use the charset info 811 * url-handlers.el (url-insert-file-contents): Use the charset info
812 provided by the HTTP server, if any. 812 provided by the HTTP server, if any.
diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el
index d0951bdd404..c95fe54d04a 100644
--- a/lisp/vc/vc-annotate.el
+++ b/lisp/vc/vc-annotate.el
@@ -315,7 +315,7 @@ use; you may override this using the second optional arg MODE."
315 vc-annotate-display-mode)))) 315 vc-annotate-display-mode))))
316 316
317;;;###autoload 317;;;###autoload
318(defun vc-annotate (file rev &optional display-mode buf move-point-to) 318(defun vc-annotate (file rev &optional display-mode buf move-point-to vc-bk)
319 "Display the edit history of the current FILE using colors. 319 "Display the edit history of the current FILE using colors.
320 320
321This command creates a buffer that shows, for each line of the current 321This command creates a buffer that shows, for each line of the current
@@ -336,6 +336,8 @@ age, and everything that is older than that is shown in blue.
336 336
337If MOVE-POINT-TO is given, move the point to that line. 337If MOVE-POINT-TO is given, move the point to that line.
338 338
339If VC-BK is given used that VC backend.
340
339Customization variables: 341Customization variables:
340 342
341`vc-annotate-menu-elements' customizes the menu elements of the 343`vc-annotate-menu-elements' customizes the menu elements of the
@@ -376,7 +378,7 @@ mode-specific menu. `vc-annotate-color-map' and
376 ;; In case it had to be uniquified. 378 ;; In case it had to be uniquified.
377 (setq temp-buffer-name (buffer-name)))) 379 (setq temp-buffer-name (buffer-name))))
378 (with-output-to-temp-buffer temp-buffer-name 380 (with-output-to-temp-buffer temp-buffer-name
379 (let ((backend (vc-backend file)) 381 (let ((backend (or vc-bk (vc-backend file)))
380 (coding-system-for-read buffer-file-coding-system)) 382 (coding-system-for-read buffer-file-coding-system))
381 (vc-call-backend backend 'annotate-command file 383 (vc-call-backend backend 'annotate-command file
382 (get-buffer temp-buffer-name) rev) 384 (get-buffer temp-buffer-name) rev)
@@ -462,7 +464,7 @@ Return a cons (REV . FILENAME)."
462 (if (not rev-at-line) 464 (if (not rev-at-line)
463 (message "Cannot extract revision number from the current line") 465 (message "Cannot extract revision number from the current line")
464 (switch-to-buffer-other-window 466 (switch-to-buffer-other-window
465 (vc-find-revision (cdr rev-at-line) (car rev-at-line))))))) 467 (vc-find-revision (cdr rev-at-line) (car rev-at-line) vc-annotate-backend))))))
466 468
467(defun vc-annotate-revision-previous-to-line () 469(defun vc-annotate-revision-previous-to-line ()
468 "Visit the annotation of the revision before the revision at line." 470 "Visit the annotation of the revision before the revision at line."
@@ -527,7 +529,7 @@ the file in question, search for the log entry required and move point ."
527 (message "Cannot extract revision number from the current line") 529 (message "Cannot extract revision number from the current line")
528 (setq prev-rev 530 (setq prev-rev
529 (vc-call-backend vc-annotate-backend 'previous-revision 531 (vc-call-backend vc-annotate-backend 'previous-revision
530 fname rev)) 532 (if filediff fname nil) rev))
531 (if (not prev-rev) 533 (if (not prev-rev)
532 (message "Cannot diff from any revision prior to %s" rev) 534 (message "Cannot diff from any revision prior to %s" rev)
533 (save-window-excursion 535 (save-window-excursion
@@ -597,7 +599,8 @@ describes a revision number, so warp to that revision."
597 ;; place the point in the line. 599 ;; place the point in the line.
598 (min oldline (progn (goto-char (point-max)) 600 (min oldline (progn (goto-char (point-max))
599 (forward-line -1) 601 (forward-line -1)
600 (line-number-at-pos)))))))) 602 (line-number-at-pos)))
603 vc-annotate-backend)))))
601 604
602(defun vc-annotate-compcar (threshold a-list) 605(defun vc-annotate-compcar (threshold a-list)
603 "Test successive cons cells of A-LIST against THRESHOLD. 606 "Test successive cons cells of A-LIST against THRESHOLD.
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 161013fbae0..9cacef2f71b 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -412,22 +412,24 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc."
412 (setq entry (car entries)) 412 (setq entry (car entries))
413 (setq node (ewoc-next vc-ewoc node))) 413 (setq node (ewoc-next vc-ewoc node)))
414 (t 414 (t
415 (ewoc-enter-before vc-ewoc node 415 (unless noinsert
416 (apply 'vc-dir-create-fileinfo entry)) 416 (ewoc-enter-before vc-ewoc node
417 (apply 'vc-dir-create-fileinfo entry)))
417 (setq entries (cdr entries)) 418 (setq entries (cdr entries))
418 (setq entry (car entries)))))) 419 (setq entry (car entries))))))
419 (t 420 (t
420 ;; We might need to insert a directory node if the 421 (unless noinsert
421 ;; previous node was in a different directory. 422 ;; We might need to insert a directory node if the
422 (let* ((rd (file-relative-name entrydir)) 423 ;; previous node was in a different directory.
423 (prev-node (ewoc-prev vc-ewoc node)) 424 (let* ((rd (file-relative-name entrydir))
424 (prev-dir (vc-dir-node-directory prev-node))) 425 (prev-node (ewoc-prev vc-ewoc node))
425 (unless (string-equal entrydir prev-dir) 426 (prev-dir (vc-dir-node-directory prev-node)))
426 (ewoc-enter-before 427 (unless (string-equal entrydir prev-dir)
427 vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) 428 (ewoc-enter-before
428 ;; Now insert the node itself. 429 vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir))))
429 (ewoc-enter-before vc-ewoc node 430 ;; Now insert the node itself.
430 (apply 'vc-dir-create-fileinfo entry)) 431 (ewoc-enter-before vc-ewoc node
432 (apply 'vc-dir-create-fileinfo entry)))
431 (setq entries (cdr entries) entry (car entries)))))) 433 (setq entries (cdr entries) entry (car entries))))))
432 ;; We're past the last node, all remaining entries go to the end. 434 ;; We're past the last node, all remaining entries go to the end.
433 (unless (or node noinsert) 435 (unless (or node noinsert)
@@ -902,10 +904,12 @@ If it is a file, return the corresponding cons for the file itself."
902 (vc-dir-resync-directory-files file) 904 (vc-dir-resync-directory-files file)
903 (ewoc-set-hf vc-ewoc 905 (ewoc-set-hf vc-ewoc
904 (vc-dir-headers vc-dir-backend default-directory) "")) 906 (vc-dir-headers vc-dir-backend default-directory) ""))
905 (let ((state (vc-dir-recompute-file-state file ddir))) 907 (let* ((complete-state (vc-dir-recompute-file-state file ddir))
908 (state (cadr complete-state)))
906 (vc-dir-update 909 (vc-dir-update
907 (list state) 910 (list complete-state)
908 status-buf (eq (cadr state) 'up-to-date)))))))))) 911 status-buf (or (not state)
912 (eq state 'up-to-date)))))))))))
909 ;; Remove out-of-date entries from vc-dir-buffers. 913 ;; Remove out-of-date entries from vc-dir-buffers.
910 (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers))))) 914 (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers)))))
911 915
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 6129b21c324..cccccbdfd02 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -563,13 +563,18 @@ or an empty string if none."
563 (let* (process-file-side-effects 563 (let* (process-file-side-effects
564 (coding-system-for-read 'binary) 564 (coding-system-for-read 'binary)
565 (coding-system-for-write 'binary) 565 (coding-system-for-write 'binary)
566 (fullname (substring 566 (fullname
567 (vc-git--run-command-string 567 (let ((fn (vc-git--run-command-string
568 file "ls-files" "-z" "--full-name" "--") 568 file "ls-files" "-z" "--full-name" "--")))
569 0 -1))) 569 ;; ls-files does not return anything when looking for a
570 ;; revision of a file that has been renamed or removed.
571 (if (string= fn "")
572 (file-relative-name file (vc-git-root default-directory))
573 (substring fn 0 -1)))))
570 (vc-git-command 574 (vc-git-command
571 buffer 0 575 buffer 0
572 (concat (if rev rev "HEAD") ":" fullname) "cat-file" "blob"))) 576 nil
577 "cat-file" "blob" (concat (if rev rev "HEAD") ":" fullname))))
573 578
574(defun vc-git-checkout (file &optional editable rev) 579(defun vc-git-checkout (file &optional editable rev)
575 (vc-git-command nil 0 file "checkout" (or rev "HEAD"))) 580 (vc-git-command nil 0 file "checkout" (or rev "HEAD")))
@@ -723,7 +728,7 @@ or BRANCH^ (where \"^\" can be repeated)."
723 728
724(defun vc-git-annotate-command (file buf &optional rev) 729(defun vc-git-annotate-command (file buf &optional rev)
725 (let ((name (file-relative-name file))) 730 (let ((name (file-relative-name file)))
726 (vc-git-command buf 'async name "blame" "--date=iso" "-C" "-C" rev))) 731 (vc-git-command buf 'async nil "blame" "--date=iso" "-C" "-C" rev "--" name)))
727 732
728(declare-function vc-annotate-convert-time "vc-annotate" (time)) 733(declare-function vc-annotate-convert-time "vc-annotate" (time))
729 734
@@ -740,8 +745,12 @@ or BRANCH^ (where \"^\" can be repeated)."
740 (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?") 745 (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?")
741 (let ((revision (match-string-no-properties 1))) 746 (let ((revision (match-string-no-properties 1)))
742 (if (match-beginning 2) 747 (if (match-beginning 2)
743 (cons revision (expand-file-name (match-string-no-properties 3) 748 (let ((fname (match-string-no-properties 3)))
744 (vc-git-root default-directory))) 749 ;; Remove trailing whitespace from the file name.
750 (when (string-match " +\\'" fname)
751 (setq fname (substring fname 0 (match-beginning 0))))
752 (cons revision
753 (expand-file-name fname (vc-git-root default-directory))))
745 revision))))) 754 revision)))))
746 755
747;;; TAG SYSTEM 756;;; TAG SYSTEM
@@ -765,11 +774,10 @@ or BRANCH^ (where \"^\" can be repeated)."
765(defun vc-git-previous-revision (file rev) 774(defun vc-git-previous-revision (file rev)
766 "Git-specific version of `vc-previous-revision'." 775 "Git-specific version of `vc-previous-revision'."
767 (if file 776 (if file
768 (let* ((default-directory (file-name-directory (expand-file-name file))) 777 (let* ((fname (file-relative-name file))
769 (file (file-name-nondirectory file))
770 (prev-rev (with-temp-buffer 778 (prev-rev (with-temp-buffer
771 (and 779 (and
772 (vc-git--out-ok "rev-list" "-2" rev "--" file) 780 (vc-git--out-ok "rev-list" "-2" rev "--" fname)
773 (goto-char (point-max)) 781 (goto-char (point-max))
774 (bolp) 782 (bolp)
775 (zerop (forward-line -1)) 783 (zerop (forward-line -1))
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 23dd6f0f7ae..434c2a10e14 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1700,8 +1700,9 @@ If `F.~REV~' already exists, use it instead of checking it out again."
1700 rev))) 1700 rev)))
1701 (switch-to-buffer-other-window (vc-find-revision file revision)))) 1701 (switch-to-buffer-other-window (vc-find-revision file revision))))
1702 1702
1703(defun vc-find-revision (file revision) 1703(defun vc-find-revision (file revision &optional backend)
1704 "Read REVISION of FILE into a buffer and return the buffer." 1704 "Read REVISION of FILE into a buffer and return the buffer.
1705Use BACKEND as the VC backend if specified."
1705 (let ((automatic-backup (vc-version-backup-file-name file revision)) 1706 (let ((automatic-backup (vc-version-backup-file-name file revision))
1706 (filebuf (or (get-file-buffer file) (current-buffer))) 1707 (filebuf (or (get-file-buffer file) (current-buffer)))
1707 (filename (vc-version-backup-file-name file revision 'manual))) 1708 (filename (vc-version-backup-file-name file revision 'manual)))
@@ -1719,7 +1720,9 @@ If `F.~REV~' already exists, use it instead of checking it out again."
1719 ;; Change buffer to get local value of 1720 ;; Change buffer to get local value of
1720 ;; vc-checkout-switches. 1721 ;; vc-checkout-switches.
1721 (with-current-buffer filebuf 1722 (with-current-buffer filebuf
1722 (vc-call find-revision file revision outbuf)))) 1723 (if backend
1724 (vc-call-backend backend 'find-revision file revision outbuf)
1725 (vc-call find-revision file revision outbuf)))))
1723 (setq failed nil)) 1726 (setq failed nil))
1724 (when (and failed (file-exists-p filename)) 1727 (when (and failed (file-exists-p filename))
1725 (delete-file filename)))) 1728 (delete-file filename))))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 5e67c07957e..dfeb6371f5e 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1156,14 +1156,17 @@ the field."
1156 (if field 1156 (if field
1157 (narrow-to-region (line-beginning-position) (line-end-position))))) 1157 (narrow-to-region (line-beginning-position) (line-end-position)))))
1158 1158
1159;; This used to say:
1160;; "When not inside a field, move to the previous button or field."
1161;; but AFAICS, it has always just thrown an error.
1159(defun widget-complete () 1162(defun widget-complete ()
1160 "Complete content of editable field from point. 1163 "Complete content of editable field from point.
1161When not inside a field, move to the previous button or field." 1164When not inside a field, signal an error."
1162 (interactive) 1165 (interactive)
1163 (let ((field (widget-field-find (point)))) 1166 (let ((field (widget-field-find (point))))
1164 (when field 1167 (if field
1165 (widget-apply field :complete)) 1168 (widget-apply field :complete)
1166 (error "Not in an editable field"))) 1169 (error "Not in an editable field"))))
1167 1170
1168;;; Setting up the buffer. 1171;;; Setting up the buffer.
1169 1172
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index 328eb569c6f..6d38fd043fe 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -1,9 +1,9 @@
1;;; x-dnd.el --- drag and drop support for X. 1;;; x-dnd.el --- drag and drop support for X -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 3;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 6;; Author: Jan Djärv <jan.h.d@swipnet.se>
7;; Maintainer: FSF 7;; Maintainer: FSF
8;; Keywords: window, drag, drop 8;; Keywords: window, drag, drop
9 9
diff --git a/lisp/xml.el b/lisp/xml.el
index 20b595fd2d7..8e8981ac439 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -321,18 +321,20 @@ If PARSE-NS is non-nil, then QNAMES are expanded."
321 (progn 321 (progn
322 (forward-char -1) 322 (forward-char -1)
323 (setq result (xml-parse-tag parse-dtd parse-ns)) 323 (setq result (xml-parse-tag parse-dtd parse-ns))
324 (if (and xml result (not xml-sub-parser)) 324 (cond
325 ;; translation of rule [1] of XML specifications 325 ((null result)
326 (error "XML: (Not Well-Formed) Only one root tag allowed") 326 ;; Not looking at an xml start tag.
327 (cond 327 (forward-char 1))
328 ((null result)) 328 ((and xml (not xml-sub-parser))
329 ((and (listp (car result)) 329 ;; Translation of rule [1] of XML specifications
330 parse-dtd) 330 (error "XML: (Not Well-Formed) Only one root tag allowed"))
331 (setq dtd (car result)) 331 ((and (listp (car result))
332 (if (cdr result) ; possible leading comment 332 parse-dtd)
333 (add-to-list 'xml (cdr result)))) 333 (setq dtd (car result))
334 (t 334 (if (cdr result) ; possible leading comment
335 (add-to-list 'xml result))))) 335 (add-to-list 'xml (cdr result))))
336 (t
337 (add-to-list 'xml result))))
336 (goto-char (point-max)))) 338 (goto-char (point-max))))
337 (if parse-dtd 339 (if parse-dtd
338 (cons dtd (nreverse xml)) 340 (cons dtd (nreverse xml))
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index 658ea8146c7..c4268ef1ddd 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -1,3 +1,13 @@
12010-07-11 Eli Zaretskii <eliz@gnu.org>
2
3 * sed2v2.inp (HAVE_STRCHR, HAVE_STRRCHR): Don't edit, already
4 defined on <sys/config.h>.
5
62010-07-11 Andreas Schwab <schwab@linux-m68k.org>
7
8 * sed2v2.inp (HAVE_INDEX, HAVE_RINDEX): Don't edit.
9 (HAVE_STRCHR, HAVE_STRRCHR): Edit to 1.
10
12010-07-08 Eli Zaretskii <eliz@gnu.org> 112010-07-08 Eli Zaretskii <eliz@gnu.org>
2 12
3 * sed1v2.inp (stamp-oldxmenu): Don't edit out in `temacs:' target, 13 * sed1v2.inp (stamp-oldxmenu): Don't edit out in `temacs:' target,
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp
index a802202d9c4..7d5964089c4 100644
--- a/msdos/sed2v2.inp
+++ b/msdos/sed2v2.inp
@@ -46,9 +46,7 @@
46/^#undef HAVE_TM_GMTOFF *$/s/^.*$/#define HAVE_TM_GMTOFF 1/ 46/^#undef HAVE_TM_GMTOFF *$/s/^.*$/#define HAVE_TM_GMTOFF 1/
47/^#undef HAVE_MBLEN *$/s/^.*$/#define HAVE_MBLEN 1/ 47/^#undef HAVE_MBLEN *$/s/^.*$/#define HAVE_MBLEN 1/
48/^#undef HAVE_STRUCT_TIMEZONE *$/s/^.*$/#define HAVE_STRUCT_TIMEZONE 1/ 48/^#undef HAVE_STRUCT_TIMEZONE *$/s/^.*$/#define HAVE_STRUCT_TIMEZONE 1/
49/^#undef HAVE_INDEX *$/s/^.*$/#define HAVE_INDEX 1/
50/^#undef HAVE_SIZE_T *$/s/^.*$/#define HAVE_SIZE_T 1/ 49/^#undef HAVE_SIZE_T *$/s/^.*$/#define HAVE_SIZE_T 1/
51/^#undef HAVE_RINDEX *$/s/^.*$/#define HAVE_RINDEX 1/
52/^#undef HAVE_MKSTEMP *$/s/^.*$/#define HAVE_MKSTEMP 1/ 50/^#undef HAVE_MKSTEMP *$/s/^.*$/#define HAVE_MKSTEMP 1/
53/^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/ 51/^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/
54/^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/ 52/^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/
diff --git a/src/ChangeLog b/src/ChangeLog
index 1cd57516c45..5acf42608e4 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -11,6 +11,130 @@
11 return value changed. 11 return value changed.
12 (syms_of_font): Adjusted for the above change. 12 (syms_of_font): Adjusted for the above change.
13 13
142010-07-11 Andreas Schwab <schwab@linux-m68k.org>
15
16 * blockinput.h: Remove obsolete comment.
17
18 * lisp.h: Include <stddef.h>.
19 (OFFSETOF): Don't define.
20 (VECSIZE): Use offsetof instead of OFFSETOF.
21 (PSEUDOVECSIZE): Likewise.
22 * process.c (conv_sockaddr_to_lisp): Likewise.
23 * alloc.c: Don't include <stddef.h>.
24 * buffer.h (PER_BUFFER_VAR_OFFSET): Use offsetof.
25
26 * process.c: Remove obsolete comment.
27
282010-07-11 Chong Yidong <cyd@stupidchicken.com>
29
30 * xfaces.c (Vface_remapping_alist): Doc fix (Bug#6091).
31
322010-07-11 Andreas Schwab <schwab@linux-m68k.org>
33
34 * callint.c (Fcall_interactively): Use strchr, strrchr instead of
35 index, rindex.
36 * doc.c (get_doc_string, Fsnarf_documentation): Likewise.
37 * editfns.c (Fuser_full_name, Fformat): Likewise.
38 * emacs.c (argmatch, sort_args, decode_env_path): Likewise.
39 * fileio.c (Ffile_symlink_p): Likewise.
40 * filelock.c (current_lock_owner): Likewise.
41 * font.c (font_parse_name, font_parse_family_registry): Likewise.
42 * fontset.c (fontset_pattern_regexp): Likewise.
43 * lread.c (read1): Likewise.
44 * sysdep.c (init_system_name): Likewise.
45 * xfns.c (select_visual): Likewise.
46 * s/hpux10-20.h (index, rindex): Don't define.
47 * s/ms-w32.h (index): Likewise.
48 * s/usg5-4.h: Likewise.
49
50 * callproc.c (relocate_fd): Use F_DUPFD if defined.
51
52 * alloc.c (pending_malloc_warning, malloc_warning): Add const.
53 * callproc.c (relocate_fd, getenv_internal_1, getenv_internal)
54 (egetenv): Likewise.
55 * doprnt.c (doprnt): Likewise.
56 * editfns.c (set_time_zone_rule, format2): Likewise.
57 * emacs.c (decode_env_path): Likewise.
58 * eval.c (signal_error, error): Likewise.
59 * insdel.c (replace_range_2): Likewise.
60 * keyboard.c (cmd_error_internal): Likewise.
61 * lread.c (isfloat_string, make_symbol, dir_warning): Likewise.
62 * print.c (write_string, write_string_1, print_error_message):
63 Likewise.
64 * vm-limit.c (warn_function, memory_warnings): Likewise.
65 * xdisp.c (message1, message1_nolog, message_with_string)
66 (vmessage, message, message_nolog): Likewise.
67 * emacs.c: Remove duplicate declaration.
68 * keyboard.h: Likewise.
69 * lisp.h: Update prototypes.
70
71 * eval.c: Fix indentation problem.
72
73 * keyboard.c: Include "process.h"
74
75 * eval.c: Remove obsolete noinline declaration.
76 * fns.c: Likewise.
77
782010-07-11 Ken Raeburn <raeburn@raeburn.org>
79
80 * doprnt.c (doprnt): Take a va_list argument instead of count and
81 pointer.
82 * eval.c (error): Change to a standard-C variadic function.
83 * xdisp.c (vmessage): Renamed from message, made static, and
84 changed to take a va_list argument.
85 (message): New variadic wrapper.
86 (message_nolog): Now a variadic function, calling vmessage.
87 * lisp.h: Include stdarg.h for va_list.
88 (doprnt, error, message, message_nolog): Decls updated.
89
902010-07-11 Eli Zaretskii <eliz@gnu.org>
91
92 * process.c (syms_of_process) <delete-exited-processes>: Define
93 even if !subprocesses.
94 (delete_exited_processes): Ditto.
95
96 * msdos.c (syms_of_msdos) <delete-exited-processes>: Remove DEFVAR.
97 (delete_exited_processes): Don't define.
98
992010-07-10 Chong Yidong <cyd@stupidchicken.com>
100
101 * frame.c (make_frame): Initialize menu_bar_lines and
102 tool_bar_lines members.
103 (make_initial_frame, make_terminal_frame): Initialize
104 menu_bar_lines using value of menu-bar-mode.
105
106 * msdos.c (IT_set_frame_parameters): Don't set menu-bar-lines.
107
1082010-07-10 Eli Zaretskii <eliz@gnu.org>
109
110 * process.c: Reshuffle #include's. Condition some of the global
111 and static variables on `subprocesses'.
112 (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
113 Leave only one implementation.
114 (Fget_buffer_process, Fprocess_inherit_coding_system_flag)
115 (kill_buffer_processes, Flist_system_processes)
116 (Fprocess_attributes, init_process, syms_of_process): Unify the
117 implementations for with subprocesses and without them.
118
1192010-07-09 Jan Djärv <jan.h.d@swipnet.se>
120
121 * xmenu.c (set_frame_menubar): Must realize menubar_widget to get the
122 correct size for Motif.
123 (free_frame_menubar): Call x_set_window_size to update frame size.
124
125 * xfns.c (x_window): Set borderWidth to 0 for pane and
126 EmacsFrame. Frame size calculation is wrong otherwise.
127
1282010-07-09 Michael Albinus <michael.albinus@gmx.de>
129
130 * dbusbind.c (xd_initialize): Add new argument RAISE_ERROR, which
131 allows to suppress errors when polling in Emacs' main loop.
132 (Fdbus_init_bus, Fdbus_get_unique_name, Fdbus_call_method)
133 (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
134 (Fdbus_method_error_internal, Fdbus_send_signal)
135 (xd_get_dispatch_status, xd_read_message, Fdbus_register_signal)
136 (Fdbus_register_method): Use it. (Bug#6579)
137
142010-07-08 Dan Nicolaescu <dann@ics.uci.edu> 1382010-07-08 Dan Nicolaescu <dann@ics.uci.edu>
15 139
16 * alloc.c: Convert DEFUNs to standard C. 140 * alloc.c: Convert DEFUNs to standard C.
@@ -785,7 +909,55 @@
785 Improve documentation. Return font regardless of use_system_font. 909 Improve documentation. Return font regardless of use_system_font.
786 (syms_of_xsettings): Improve documentation for font-use-system-font. 910 (syms_of_xsettings): Improve documentation for font-use-system-font.
787 911
7882009-06-17 Naohiro Aota <naota@elisp.net> (tiny change) 9122010-07-10 Chong Yidong <cyd@stupidchicken.com>
913
914 * xfaces.c (realize_face): Garbage the frame if a face is removed
915 (Bug#6593).
916
9172010-07-05 Andreas Schwab <schwab@linux-m68k.org>
918
919 * keyboard.c: Remove duplicate <setjmp.h>.
920 (read_key_sequence): Remove volatile qualifiers.
921
9222010-07-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
923
924 * dispextern.h (FRINGE_HEIGHT_BITS): New define.
925 (struct glyph_row): New members left_fringe_offset and
926 right_fringe_offset.
927
928 * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
929 specially.
930 * w32term.c (w32_draw_fringe_bitmap): Likewise.
931 * nsterm.m (ns_draw_fringe_bitmap): Likewise.
932
933 * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
934 Take account of bitmap offset.
935 (draw_window_fringes): Take account of window vscroll.
936 (update_window_fringes): Likewise. Extend top-aligned top indicator
937 or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
938 in one row. Don't set redraw_fringe_bitmaps_p outside row comparison.
939 Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
940
9412010-07-04 Juanma Barranquero <lekktu@gmail.com>
942
943 * w32fns.c (Qtooltip): Declare.
944 Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
945
9462010-07-03 Jan Djärv <jan.h.d@swipnet.se>
947
948 * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
949 grab on just Press (Bug#6499).
950
9512010-07-02 Chong Yidong <cyd@stupidchicken.com>
952
953 * frame.c (Qtooltip): New var.
954 (delete_frame): Use it. Fix faulty if statement. Don't update
955 mode line for tooltip frames. Suggested by Martin Rudalics.
956
957 * xfns.c (x_create_tip_frame):
958 * w32fns.c (x_create_tip_frame): Use it.
959
9602010-06-17 Naohiro Aota <naota@elisp.net> (tiny change)
789 961
790 * xftfont.c (xftfont_open): Check font width one by one also when 962 * xftfont.c (xftfont_open): Check font width one by one also when
791 spacing is dual. 963 spacing is dual.
@@ -964,6 +1136,30 @@
964 1136
965 * m/ibms390x.h: Rather than duplicating ibms390.h, just include it. 1137 * m/ibms390x.h: Rather than duplicating ibms390.h, just include it.
966 1138
11392010-06-26 Andreas Schwab <schwab@linux-m68k.org>
1140
1141 * alloc.c (Fmake_byte_code): Don't access undefined argument
1142 (Bug#6517).
1143
11442010-06-25 Chong Yidong <cyd@stupidchicken.com>
1145
1146 * xdisp.c (next_element_from_image): Ensure that after-strings are
1147 read the next time we hit handle_stop (Bug#1336).
1148
11492010-06-23 Andreas Schwab <schwab@linux-m68k.org>
1150
1151 * lread.c (read1): Signal error if #s is not followed by paren.
1152
11532010-06-19 Chong Yidong <cyd@stupidchicken.com>
1154
1155 * image.c (free_image): Mark frame as garbaged (Bug#6426).
1156
1157 * keymap.c (Fdefine_key): Doc fix (Bug#6460).
1158
11592010-06-15 Glenn Morris <rgm@gnu.org>
1160
1161 * editfns.c (Fbyte_to_string): Pacify compiler.
1162
9672010-06-09 Stefan Monnier <monnier@iro.umontreal.ca> 11632010-06-09 Stefan Monnier <monnier@iro.umontreal.ca>
968 1164
969 * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string. 1165 * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
diff --git a/src/alloc.c b/src/alloc.c
index 2a15fd0d63d..5c860bc1f8e 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -23,10 +23,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
23#include <limits.h> /* For CHAR_BIT. */ 23#include <limits.h> /* For CHAR_BIT. */
24#include <setjmp.h> 24#include <setjmp.h>
25 25
26#ifdef STDC_HEADERS
27#include <stddef.h> /* For offsetof, used by PSEUDOVECSIZE. */
28#endif
29
30#ifdef ALLOC_DEBUG 26#ifdef ALLOC_DEBUG
31#undef INLINE 27#undef INLINE
32#endif 28#endif
@@ -298,7 +294,7 @@ static EMACS_INT pure_bytes_used_non_lisp;
298/* If nonzero, this is a warning delivered by malloc and not yet 294/* If nonzero, this is a warning delivered by malloc and not yet
299 displayed. */ 295 displayed. */
300 296
301char *pending_malloc_warning; 297const char *pending_malloc_warning;
302 298
303/* Pre-computed signal argument for use when memory is exhausted. */ 299/* Pre-computed signal argument for use when memory is exhausted. */
304 300
@@ -514,7 +510,7 @@ static POINTER_TYPE *pure_alloc (size_t, int);
514/* Function malloc calls this if it finds we are near exhausting storage. */ 510/* Function malloc calls this if it finds we are near exhausting storage. */
515 511
516void 512void
517malloc_warning (char *str) 513malloc_warning (const char *str)
518{ 514{
519 pending_malloc_warning = str; 515 pending_malloc_warning = str;
520} 516}
@@ -3030,7 +3026,7 @@ usage: (make-byte-code ARGLIST BYTE-CODE CONSTANTS DEPTH &optional DOCSTRING INT
3030 else 3026 else
3031 val = Fmake_vector (len, Qnil); 3027 val = Fmake_vector (len, Qnil);
3032 3028
3033 if (STRINGP (args[1]) && STRING_MULTIBYTE (args[1])) 3029 if (nargs > 1 && STRINGP (args[1]) && STRING_MULTIBYTE (args[1]))
3034 /* BYTECODE-STRING must have been produced by Emacs 20.2 or the 3030 /* BYTECODE-STRING must have been produced by Emacs 20.2 or the
3035 earlier because they produced a raw 8-bit string for byte-code 3031 earlier because they produced a raw 8-bit string for byte-code
3036 and now such a byte-code string is loaded as multibyte while 3032 and now such a byte-code string is loaded as multibyte while
diff --git a/src/blockinput.h b/src/blockinput.h
index 99c8274fc60..7ba6fc264fd 100644
--- a/src/blockinput.h
+++ b/src/blockinput.h
@@ -122,7 +122,6 @@ extern int pending_atimers;
122#define INPUT_BLOCKED_P (interrupt_input_blocked > 0) 122#define INPUT_BLOCKED_P (interrupt_input_blocked > 0)
123 123
124/* Defined in keyboard.c */ 124/* Defined in keyboard.c */
125/* Don't use a prototype here; it causes trouble in some files. */
126extern void reinvoke_input_signal (void); 125extern void reinvoke_input_signal (void);
127 126
128#endif /* EMACS_BLOCKINPUT_H */ 127#endif /* EMACS_BLOCKINPUT_H */
diff --git a/src/buffer.h b/src/buffer.h
index 8e4e5d569ae..339e7d9bb6d 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -954,7 +954,7 @@ extern int last_per_buffer_idx;
954 from the start of a buffer structure. */ 954 from the start of a buffer structure. */
955 955
956#define PER_BUFFER_VAR_OFFSET(VAR) \ 956#define PER_BUFFER_VAR_OFFSET(VAR) \
957 ((char *) &((struct buffer *)0)->VAR - (char *) ((struct buffer *)0)) 957 offsetof (struct buffer, VAR)
958 958
959/* Return the index of buffer-local variable VAR. Each per-buffer 959/* Return the index of buffer-local variable VAR. Each per-buffer
960 variable has an index > 0 associated with it, except when it always 960 variable has an index > 0 associated with it, except when it always
diff --git a/src/callint.c b/src/callint.c
index 3d4782e7bd6..fa0be112bea 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -29,10 +29,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
29#include "window.h" 29#include "window.h"
30#include "keymap.h" 30#include "keymap.h"
31 31
32#ifdef HAVE_INDEX
33extern char *index (const char *, int);
34#endif
35
36extern Lisp_Object Qcursor_in_echo_area; 32extern Lisp_Object Qcursor_in_echo_area;
37extern Lisp_Object Qfile_directory_p; 33extern Lisp_Object Qfile_directory_p;
38extern Lisp_Object Qonly; 34extern Lisp_Object Qonly;
@@ -469,7 +465,7 @@ invoke it. If KEYS is omitted or nil, the return value of
469 j += 2; 465 j += 2;
470 else 466 else
471 j++; 467 j++;
472 tem = (unsigned char *) index (tem, '\n'); 468 tem = (unsigned char *) strchr (tem, '\n');
473 if (tem) 469 if (tem)
474 ++tem; 470 ++tem;
475 else 471 else
@@ -500,11 +496,11 @@ invoke it. If KEYS is omitted or nil, the return value of
500 { 496 {
501 strncpy (prompt1, tem + 1, sizeof prompt1 - 1); 497 strncpy (prompt1, tem + 1, sizeof prompt1 - 1);
502 prompt1[sizeof prompt1 - 1] = 0; 498 prompt1[sizeof prompt1 - 1] = 0;
503 tem1 = (char *) index (prompt1, '\n'); 499 tem1 = strchr (prompt1, '\n');
504 if (tem1) *tem1 = 0; 500 if (tem1) *tem1 = 0;
505 501
506 visargs[0] = build_string (prompt1); 502 visargs[0] = build_string (prompt1);
507 if (index (prompt1, '%')) 503 if (strchr (prompt1, '%'))
508 callint_message = Fformat (i, visargs); 504 callint_message = Fformat (i, visargs);
509 else 505 else
510 callint_message = visargs[0]; 506 callint_message = visargs[0];
@@ -809,7 +805,7 @@ invoke it. If KEYS is omitted or nil, the return value of
809 if (NILP (visargs[i]) && STRINGP (args[i])) 805 if (NILP (visargs[i]) && STRINGP (args[i]))
810 visargs[i] = args[i]; 806 visargs[i] = args[i];
811 807
812 tem = (unsigned char *) index (tem, '\n'); 808 tem = (unsigned char *) strchr (tem, '\n');
813 if (tem) tem++; 809 if (tem) tem++;
814 else tem = (unsigned char *) ""; 810 else tem = (unsigned char *) "";
815 } 811 }
diff --git a/src/callproc.c b/src/callproc.c
index 674243f50de..4ad6bcf41ea 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -1288,27 +1288,34 @@ relocate_fd (int fd, int minfd)
1288 return fd; 1288 return fd;
1289 else 1289 else
1290 { 1290 {
1291 int new = dup (fd); 1291 int new;
1292#ifdef F_DUPFD
1293 new = fcntl (fd, F_DUPFD, minfd);
1294#else
1295 new = dup (fd);
1296 if (new != -1)
1297 /* Note that we hold the original FD open while we recurse,
1298 to guarantee we'll get a new FD if we need it. */
1299 new = relocate_fd (new, minfd);
1300#endif
1292 if (new == -1) 1301 if (new == -1)
1293 { 1302 {
1294 char *message1 = "Error while setting up child: "; 1303 const char *message1 = "Error while setting up child: ";
1295 char *errmessage = strerror (errno); 1304 const char *errmessage = strerror (errno);
1296 char *message2 = "\n"; 1305 const char *message2 = "\n";
1297 emacs_write (2, message1, strlen (message1)); 1306 emacs_write (2, message1, strlen (message1));
1298 emacs_write (2, errmessage, strlen (errmessage)); 1307 emacs_write (2, errmessage, strlen (errmessage));
1299 emacs_write (2, message2, strlen (message2)); 1308 emacs_write (2, message2, strlen (message2));
1300 _exit (1); 1309 _exit (1);
1301 } 1310 }
1302 /* Note that we hold the original FD open while we recurse,
1303 to guarantee we'll get a new FD if we need it. */
1304 new = relocate_fd (new, minfd);
1305 emacs_close (fd); 1311 emacs_close (fd);
1306 return new; 1312 return new;
1307 } 1313 }
1308} 1314}
1309 1315
1310static int 1316static int
1311getenv_internal_1 (char *var, int varlen, char **value, int *valuelen, Lisp_Object env) 1317getenv_internal_1 (const char *var, int varlen, char **value, int *valuelen,
1318 Lisp_Object env)
1312{ 1319{
1313 for (; CONSP (env); env = XCDR (env)) 1320 for (; CONSP (env); env = XCDR (env))
1314 { 1321 {
@@ -1342,7 +1349,8 @@ getenv_internal_1 (char *var, int varlen, char **value, int *valuelen, Lisp_Obje
1342} 1349}
1343 1350
1344static int 1351static int
1345getenv_internal (char *var, int varlen, char **value, int *valuelen, Lisp_Object frame) 1352getenv_internal (const char *var, int varlen, char **value, int *valuelen,
1353 Lisp_Object frame)
1346{ 1354{
1347 /* Try to find VAR in Vprocess_environment first. */ 1355 /* Try to find VAR in Vprocess_environment first. */
1348 if (getenv_internal_1 (var, varlen, value, valuelen, 1356 if (getenv_internal_1 (var, varlen, value, valuelen,
@@ -1403,7 +1411,7 @@ If optional parameter ENV is a list, then search this list instead of
1403/* A version of getenv that consults the Lisp environment lists, 1411/* A version of getenv that consults the Lisp environment lists,
1404 easily callable from C. */ 1412 easily callable from C. */
1405char * 1413char *
1406egetenv (char *var) 1414egetenv (const char *var)
1407{ 1415{
1408 char *value; 1416 char *value;
1409 int valuelen; 1417 int valuelen;
diff --git a/src/config.in b/src/config.in
index 1ef407c158b..40b62633446 100644
--- a/src/config.in
+++ b/src/config.in
@@ -288,9 +288,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
288/* Define to 1 if netdb.h declares h_errno. */ 288/* Define to 1 if netdb.h declares h_errno. */
289#undef HAVE_H_ERRNO 289#undef HAVE_H_ERRNO
290 290
291/* Define to 1 if you have the `index' function. */
292#undef HAVE_INDEX
293
294/* Define to 1 if you have inet sockets. */ 291/* Define to 1 if you have inet sockets. */
295#undef HAVE_INET_SOCKETS 292#undef HAVE_INET_SOCKETS
296 293
@@ -537,9 +534,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
537/* Define to 1 if res_init is available. */ 534/* Define to 1 if res_init is available. */
538#undef HAVE_RES_INIT 535#undef HAVE_RES_INIT
539 536
540/* Define to 1 if you have the `rindex' function. */
541#undef HAVE_RINDEX
542
543/* Define to 1 if you have the `rint' function. */ 537/* Define to 1 if you have the `rint' function. */
544#undef HAVE_RINT 538#undef HAVE_RINT
545 539
@@ -597,6 +591,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
597/* Define to 1 if you have the <stdlib.h> header file. */ 591/* Define to 1 if you have the <stdlib.h> header file. */
598#undef HAVE_STDLIB_H 592#undef HAVE_STDLIB_H
599 593
594/* Define to 1 if you have the `strchr' function. */
595#undef HAVE_STRCHR
596
600/* Define to 1 if you have the `strerror' function. */ 597/* Define to 1 if you have the `strerror' function. */
601#undef HAVE_STRERROR 598#undef HAVE_STRERROR
602 599
@@ -609,6 +606,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
609/* Define to 1 if you have the <string.h> header file. */ 606/* Define to 1 if you have the <string.h> header file. */
610#undef HAVE_STRING_H 607#undef HAVE_STRING_H
611 608
609/* Define to 1 if you have the `strrchr' function. */
610#undef HAVE_STRRCHR
611
612/* Define to 1 if you have the `strsignal' function. */ 612/* Define to 1 if you have the `strsignal' function. */
613#undef HAVE_STRSIGNAL 613#undef HAVE_STRSIGNAL
614 614
@@ -1154,6 +1154,14 @@ void *alloca (size_t);
1154typedef unsigned size_t; 1154typedef unsigned size_t;
1155#endif 1155#endif
1156 1156
1157#ifndef HAVE_STRCHR
1158#define strchr(a, b) index (a, b)
1159#endif
1160
1161#ifndef HAVE_STRRCHR
1162#define strrchr(a, b) rindex (a, b)
1163#endif
1164
1157#if defined __GNUC__ && (__GNUC__ > 2 \ 1165#if defined __GNUC__ && (__GNUC__ > 2 \
1158 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) 1166 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
1159#define NO_RETURN __attribute__ ((__noreturn__)) 1167#define NO_RETURN __attribute__ ((__noreturn__))
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 005b04950b9..c5dbb62aed9 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -714,9 +714,11 @@ xd_retrieve_arg (unsigned int dtype, DBusMessageIter *iter)
714} 714}
715 715
716/* Initialize D-Bus connection. BUS is a Lisp symbol, either :system 716/* Initialize D-Bus connection. BUS is a Lisp symbol, either :system
717 or :session. It tells which D-Bus to be initialized. */ 717 or :session. It tells which D-Bus to be initialized. RAISE_ERROR
718 can be TRUE or FALSE, it controls whether an error is signalled in
719 case the connection cannot be initialized. */
718static DBusConnection * 720static DBusConnection *
719xd_initialize (Lisp_Object bus) 721xd_initialize (Lisp_Object bus, int raise_error)
720{ 722{
721 DBusConnection *connection; 723 DBusConnection *connection;
722 DBusError derror; 724 DBusError derror;
@@ -724,12 +726,18 @@ xd_initialize (Lisp_Object bus)
724 /* Parameter check. */ 726 /* Parameter check. */
725 CHECK_SYMBOL (bus); 727 CHECK_SYMBOL (bus);
726 if (!(EQ (bus, QCdbus_system_bus) || EQ (bus, QCdbus_session_bus))) 728 if (!(EQ (bus, QCdbus_system_bus) || EQ (bus, QCdbus_session_bus)))
727 XD_SIGNAL2 (build_string ("Wrong bus name"), bus); 729 if (raise_error == TRUE)
730 XD_SIGNAL2 (build_string ("Wrong bus name"), bus);
731 else
732 return NULL;
728 733
729 /* We do not want to have an autolaunch for the session bus. */ 734 /* We do not want to have an autolaunch for the session bus. */
730 if (EQ (bus, QCdbus_session_bus) 735 if (EQ (bus, QCdbus_session_bus)
731 && getenv ("DBUS_SESSION_BUS_ADDRESS") == NULL) 736 && getenv ("DBUS_SESSION_BUS_ADDRESS") == NULL)
732 XD_SIGNAL2 (build_string ("No connection to bus"), bus); 737 if (raise_error == TRUE)
738 XD_SIGNAL2 (build_string ("No connection to bus"), bus);
739 else
740 return NULL;
733 741
734 /* Open a connection to the bus. */ 742 /* Open a connection to the bus. */
735 dbus_error_init (&derror); 743 dbus_error_init (&derror);
@@ -740,9 +748,12 @@ xd_initialize (Lisp_Object bus)
740 connection = dbus_bus_get (DBUS_BUS_SESSION, &derror); 748 connection = dbus_bus_get (DBUS_BUS_SESSION, &derror);
741 749
742 if (dbus_error_is_set (&derror)) 750 if (dbus_error_is_set (&derror))
743 XD_ERROR (derror); 751 if (raise_error == TRUE)
752 XD_ERROR (derror);
753 else
754 connection = NULL;
744 755
745 if (connection == NULL) 756 if ((connection == NULL) && (raise_error == TRUE))
746 XD_SIGNAL2 (build_string ("No connection to bus"), bus); 757 XD_SIGNAL2 (build_string ("No connection to bus"), bus);
747 758
748 /* Cleanup. */ 759 /* Cleanup. */
@@ -829,7 +840,7 @@ This is an internal function, it shall not be used outside dbus.el. */)
829 CHECK_SYMBOL (bus); 840 CHECK_SYMBOL (bus);
830 841
831 /* Open a connection to the bus. */ 842 /* Open a connection to the bus. */
832 connection = xd_initialize (bus); 843 connection = xd_initialize (bus, TRUE);
833 844
834 /* Add the watch functions. We pass also the bus as data, in order 845 /* Add the watch functions. We pass also the bus as data, in order
835 to distinguish between the busses in xd_remove_watch. */ 846 to distinguish between the busses in xd_remove_watch. */
@@ -855,7 +866,7 @@ DEFUN ("dbus-get-unique-name", Fdbus_get_unique_name, Sdbus_get_unique_name,
855 CHECK_SYMBOL (bus); 866 CHECK_SYMBOL (bus);
856 867
857 /* Open a connection to the bus. */ 868 /* Open a connection to the bus. */
858 connection = xd_initialize (bus); 869 connection = xd_initialize (bus, TRUE);
859 870
860 /* Request the name. */ 871 /* Request the name. */
861 name = dbus_bus_get_unique_name (connection); 872 name = dbus_bus_get_unique_name (connection);
@@ -970,7 +981,7 @@ usage: (dbus-call-method BUS SERVICE PATH INTERFACE METHOD &optional :timeout TI
970 SDATA (method)); 981 SDATA (method));
971 982
972 /* Open a connection to the bus. */ 983 /* Open a connection to the bus. */
973 connection = xd_initialize (bus); 984 connection = xd_initialize (bus, TRUE);
974 985
975 /* Create the message. */ 986 /* Create the message. */
976 dmessage = dbus_message_new_method_call (SDATA (service), 987 dmessage = dbus_message_new_method_call (SDATA (service),
@@ -1153,7 +1164,7 @@ usage: (dbus-call-method-asynchronously BUS SERVICE PATH INTERFACE METHOD HANDLE
1153 SDATA (method)); 1164 SDATA (method));
1154 1165
1155 /* Open a connection to the bus. */ 1166 /* Open a connection to the bus. */
1156 connection = xd_initialize (bus); 1167 connection = xd_initialize (bus, TRUE);
1157 1168
1158 /* Create the message. */ 1169 /* Create the message. */
1159 dmessage = dbus_message_new_method_call (SDATA (service), 1170 dmessage = dbus_message_new_method_call (SDATA (service),
@@ -1268,7 +1279,7 @@ usage: (dbus-method-return-internal BUS SERIAL SERVICE &rest ARGS) */)
1268 XD_DEBUG_MESSAGE ("%lu %s ", (unsigned long) XUINT (serial), SDATA (service)); 1279 XD_DEBUG_MESSAGE ("%lu %s ", (unsigned long) XUINT (serial), SDATA (service));
1269 1280
1270 /* Open a connection to the bus. */ 1281 /* Open a connection to the bus. */
1271 connection = xd_initialize (bus); 1282 connection = xd_initialize (bus, TRUE);
1272 1283
1273 /* Create the message. */ 1284 /* Create the message. */
1274 dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_METHOD_RETURN); 1285 dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_METHOD_RETURN);
@@ -1360,7 +1371,7 @@ usage: (dbus-method-error-internal BUS SERIAL SERVICE &rest ARGS) */)
1360 XD_DEBUG_MESSAGE ("%lu %s ", (unsigned long) XUINT (serial), SDATA (service)); 1371 XD_DEBUG_MESSAGE ("%lu %s ", (unsigned long) XUINT (serial), SDATA (service));
1361 1372
1362 /* Open a connection to the bus. */ 1373 /* Open a connection to the bus. */
1363 connection = xd_initialize (bus); 1374 connection = xd_initialize (bus, TRUE);
1364 1375
1365 /* Create the message. */ 1376 /* Create the message. */
1366 dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_ERROR); 1377 dmessage = dbus_message_new (DBUS_MESSAGE_TYPE_ERROR);
@@ -1483,7 +1494,7 @@ usage: (dbus-send-signal BUS SERVICE PATH INTERFACE SIGNAL &rest ARGS) */)
1483 SDATA (signal)); 1494 SDATA (signal));
1484 1495
1485 /* Open a connection to the bus. */ 1496 /* Open a connection to the bus. */
1486 connection = xd_initialize (bus); 1497 connection = xd_initialize (bus, TRUE);
1487 1498
1488 /* Create the message. */ 1499 /* Create the message. */
1489 dmessage = dbus_message_new_signal (SDATA (path), 1500 dmessage = dbus_message_new_signal (SDATA (path),
@@ -1548,7 +1559,8 @@ xd_get_dispatch_status (Lisp_Object bus)
1548 DBusConnection *connection; 1559 DBusConnection *connection;
1549 1560
1550 /* Open a connection to the bus. */ 1561 /* Open a connection to the bus. */
1551 connection = xd_initialize (bus); 1562 connection = xd_initialize (bus, FALSE);
1563 if (connection == NULL) return FALSE;
1552 1564
1553 /* Non blocking read of the next available message. */ 1565 /* Non blocking read of the next available message. */
1554 dbus_connection_read_write (connection, 0); 1566 dbus_connection_read_write (connection, 0);
@@ -1592,7 +1604,7 @@ xd_read_message (Lisp_Object bus)
1592 const char *uname, *path, *interface, *member; 1604 const char *uname, *path, *interface, *member;
1593 1605
1594 /* Open a connection to the bus. */ 1606 /* Open a connection to the bus. */
1595 connection = xd_initialize (bus); 1607 connection = xd_initialize (bus, TRUE);
1596 1608
1597 /* Non blocking read of the next available message. */ 1609 /* Non blocking read of the next available message. */
1598 dbus_connection_read_write (connection, 0); 1610 dbus_connection_read_write (connection, 0);
@@ -1842,7 +1854,7 @@ usage: (dbus-register-signal BUS SERVICE PATH INTERFACE SIGNAL HANDLER &rest ARG
1842 if (NILP (uname) || (SBYTES (uname) > 0)) 1854 if (NILP (uname) || (SBYTES (uname) > 0))
1843 { 1855 {
1844 /* Open a connection to the bus. */ 1856 /* Open a connection to the bus. */
1845 connection = xd_initialize (bus); 1857 connection = xd_initialize (bus, TRUE);
1846 1858
1847 /* Create a rule to receive related signals. */ 1859 /* Create a rule to receive related signals. */
1848 sprintf (rule, 1860 sprintf (rule,
@@ -1932,7 +1944,7 @@ used for composing the returning D-Bus message. */)
1932 a segmentation fault. */ 1944 a segmentation fault. */
1933 1945
1934 /* Open a connection to the bus. */ 1946 /* Open a connection to the bus. */
1935 connection = xd_initialize (bus); 1947 connection = xd_initialize (bus, TRUE);
1936 1948
1937 /* Request the known name from the bus. We can ignore the result, 1949 /* Request the known name from the bus. We can ignore the result,
1938 it is set to -1 if there is an error - kind of redundancy. */ 1950 it is set to -1 if there is an error - kind of redundancy. */
diff --git a/src/dispextern.h b/src/dispextern.h
index 9bafb49dd91..5ca7e813a1e 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -105,6 +105,8 @@ enum window_part
105/* Number of bits allocated to store fringe bitmap numbers. */ 105/* Number of bits allocated to store fringe bitmap numbers. */
106#define FRINGE_ID_BITS 16 106#define FRINGE_ID_BITS 16
107 107
108/* Number of bits allocated to store fringe bitmap height. */
109#define FRINGE_HEIGHT_BITS 8
108 110
109 111
110/*********************************************************************** 112/***********************************************************************
@@ -800,6 +802,12 @@ struct glyph_row
800 /* Face of the right fringe glyph. */ 802 /* Face of the right fringe glyph. */
801 unsigned right_fringe_face_id : FACE_ID_BITS; 803 unsigned right_fringe_face_id : FACE_ID_BITS;
802 804
805 /* Vertical offset of the left fringe bitmap. */
806 signed left_fringe_offset : FRINGE_HEIGHT_BITS;
807
808 /* Vertical offset of the right fringe bitmap. */
809 signed right_fringe_offset : FRINGE_HEIGHT_BITS;
810
803 /* 1 means that we must draw the bitmaps of this row. */ 811 /* 1 means that we must draw the bitmaps of this row. */
804 unsigned redraw_fringe_bitmaps_p : 1; 812 unsigned redraw_fringe_bitmaps_p : 1;
805 813
diff --git a/src/doc.c b/src/doc.c
index a8f6217c4ce..fc3cbc1c215 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -45,10 +45,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
45#include "keymap.h" 45#include "keymap.h"
46#include "buildobj.h" 46#include "buildobj.h"
47 47
48#ifdef HAVE_INDEX
49extern char *index (const char *, int);
50#endif
51
52Lisp_Object Vdoc_file_name; 48Lisp_Object Vdoc_file_name;
53 49
54Lisp_Object Qfunction_documentation; 50Lisp_Object Qfunction_documentation;
@@ -218,9 +214,9 @@ get_doc_string (Lisp_Object filepos, int unibyte, int definition)
218 if (!nread) 214 if (!nread)
219 break; 215 break;
220 if (p == get_doc_string_buffer) 216 if (p == get_doc_string_buffer)
221 p1 = (char *) index (p + offset, '\037'); 217 p1 = strchr (p + offset, '\037');
222 else 218 else
223 p1 = (char *) index (p, '\037'); 219 p1 = strchr (p, '\037');
224 if (p1) 220 if (p1)
225 { 221 {
226 *p1 = 0; 222 *p1 = 0;
@@ -633,7 +629,7 @@ the same file name is found in the `doc-directory'. */)
633 /* p points to ^_Ffunctionname\n or ^_Vvarname\n. */ 629 /* p points to ^_Ffunctionname\n or ^_Vvarname\n. */
634 if (p != end) 630 if (p != end)
635 { 631 {
636 end = (char *) index (p, '\n'); 632 end = strchr (p, '\n');
637 633
638 /* See if this is a file name, and if it is a file in build-files. */ 634 /* See if this is a file name, and if it is a file in build-files. */
639 if (p[1] == 'S' && end - p > 4 && end[-2] == '.' 635 if (p[1] == 'S' && end - p > 4 && end[-2] == '.'
diff --git a/src/doprnt.c b/src/doprnt.c
index 3ff2f70dd34..1b45b21e36b 100644
--- a/src/doprnt.c
+++ b/src/doprnt.c
@@ -59,10 +59,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
59 Integers are passed as C integers. */ 59 Integers are passed as C integers. */
60 60
61int 61int
62doprnt (char *buffer, register int bufsize, char *format, char *format_end, int nargs, char **args) 62doprnt (char *buffer, register int bufsize, const char *format,
63 const char *format_end, va_list ap)
63{ 64{
64 int cnt = 0; /* Number of arg to gobble next */ 65 const char *fmt = format; /* Pointer into format string */
65 register char *fmt = format; /* Pointer into format string */
66 register char *bufptr = buffer; /* Pointer into output buffer.. */ 66 register char *bufptr = buffer; /* Pointer into output buffer.. */
67 67
68 /* Use this for sprintf unless we need something really big. */ 68 /* Use this for sprintf unless we need something really big. */
@@ -161,8 +161,6 @@ doprnt (char *buffer, register int bufsize, char *format, char *format_end, int
161 case 'd': 161 case 'd':
162 case 'o': 162 case 'o':
163 case 'x': 163 case 'x':
164 if (cnt == nargs)
165 error ("Not enough arguments for format string");
166 if (sizeof (int) == sizeof (EMACS_INT)) 164 if (sizeof (int) == sizeof (EMACS_INT))
167 ; 165 ;
168 else if (sizeof (long) == sizeof (EMACS_INT)) 166 else if (sizeof (long) == sizeof (EMACS_INT))
@@ -173,7 +171,7 @@ doprnt (char *buffer, register int bufsize, char *format, char *format_end, int
173 string++; 171 string++;
174 else 172 else
175 abort (); 173 abort ();
176 sprintf (sprintf_buffer, fmtcpy, args[cnt++]); 174 sprintf (sprintf_buffer, fmtcpy, va_arg(ap, char *));
177 /* Now copy into final output, truncating as nec. */ 175 /* Now copy into final output, truncating as nec. */
178 string = (unsigned char *) sprintf_buffer; 176 string = (unsigned char *) sprintf_buffer;
179 goto doit; 177 goto doit;
@@ -182,12 +180,8 @@ doprnt (char *buffer, register int bufsize, char *format, char *format_end, int
182 case 'e': 180 case 'e':
183 case 'g': 181 case 'g':
184 { 182 {
185 union { double d; char *half[2]; } u; 183 double d = va_arg(ap, double);
186 if (cnt + 1 == nargs) 184 sprintf (sprintf_buffer, fmtcpy, d);
187 error ("Not enough arguments for format string");
188 u.half[0] = args[cnt++];
189 u.half[1] = args[cnt++];
190 sprintf (sprintf_buffer, fmtcpy, u.d);
191 /* Now copy into final output, truncating as nec. */ 185 /* Now copy into final output, truncating as nec. */
192 string = (unsigned char *) sprintf_buffer; 186 string = (unsigned char *) sprintf_buffer;
193 goto doit; 187 goto doit;
@@ -196,11 +190,9 @@ doprnt (char *buffer, register int bufsize, char *format, char *format_end, int
196 case 'S': 190 case 'S':
197 string[-1] = 's'; 191 string[-1] = 's';
198 case 's': 192 case 's':
199 if (cnt == nargs)
200 error ("Not enough arguments for format string");
201 if (fmtcpy[1] != 's') 193 if (fmtcpy[1] != 's')
202 minlen = atoi (&fmtcpy[1]); 194 minlen = atoi (&fmtcpy[1]);
203 string = (unsigned char *) args[cnt++]; 195 string = va_arg(ap, unsigned char *);
204 tem = strlen (string); 196 tem = strlen (string);
205 width = strwidth (string, tem); 197 width = strwidth (string, tem);
206 goto doit1; 198 goto doit1;
@@ -250,16 +242,21 @@ doprnt (char *buffer, register int bufsize, char *format, char *format_end, int
250 continue; 242 continue;
251 243
252 case 'c': 244 case 'c':
253 if (cnt == nargs) 245 {
254 error ("Not enough arguments for format string"); 246 /* Sometimes for %c we pass a char, which would widen
255 tem = CHAR_STRING ((int) (EMACS_INT) args[cnt], charbuf); 247 to int. Sometimes we pass XFASTINT() or XINT()
256 string = charbuf; 248 values, which would be EMACS_INT. Let's hope that
257 cnt++; 249 both are passed the same way, otherwise we'll need
258 string[tem] = 0; 250 to rewrite callers. */
259 width = strwidth (string, tem); 251 EMACS_INT chr = va_arg(ap, EMACS_INT);
260 if (fmtcpy[1] != 'c') 252 tem = CHAR_STRING ((int) chr, charbuf);
261 minlen = atoi (&fmtcpy[1]); 253 string = charbuf;
262 goto doit1; 254 string[tem] = 0;
255 width = strwidth (string, tem);
256 if (fmtcpy[1] != 'c')
257 minlen = atoi (&fmtcpy[1]);
258 goto doit1;
259 }
263 260
264 case '%': 261 case '%':
265 fmt--; /* Drop thru and this % will be treated as normal */ 262 fmt--; /* Drop thru and this % will be treated as normal */
diff --git a/src/editfns.c b/src/editfns.c
index fe493162c01..2d8fcb6c85b 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -109,10 +109,6 @@ static Lisp_Object subst_char_in_region_unwind (Lisp_Object);
109static Lisp_Object subst_char_in_region_unwind_1 (Lisp_Object); 109static Lisp_Object subst_char_in_region_unwind_1 (Lisp_Object);
110static void transpose_markers (int, int, int, int, int, int, int, int); 110static void transpose_markers (int, int, int, int, int, int, int, int);
111 111
112#ifdef HAVE_INDEX
113extern char *index (const char *, int);
114#endif
115
116Lisp_Object Vbuffer_access_fontify_functions; 112Lisp_Object Vbuffer_access_fontify_functions;
117Lisp_Object Qbuffer_access_fontify_functions; 113Lisp_Object Qbuffer_access_fontify_functions;
118Lisp_Object Vbuffer_access_fontified_property; 114Lisp_Object Vbuffer_access_fontified_property;
@@ -1369,12 +1365,12 @@ name, or nil if there is no such user. */)
1369 1365
1370 p = (unsigned char *) USER_FULL_NAME; 1366 p = (unsigned char *) USER_FULL_NAME;
1371 /* Chop off everything after the first comma. */ 1367 /* Chop off everything after the first comma. */
1372 q = (unsigned char *) index (p, ','); 1368 q = (unsigned char *) strchr (p, ',');
1373 full = make_string (p, q ? q - p : strlen (p)); 1369 full = make_string (p, q ? q - p : strlen (p));
1374 1370
1375#ifdef AMPERSAND_FULL_NAME 1371#ifdef AMPERSAND_FULL_NAME
1376 p = SDATA (full); 1372 p = SDATA (full);
1377 q = (unsigned char *) index (p, '&'); 1373 q = (unsigned char *) strchr (p, '&');
1378 /* Substitute the login name for the &, upcasing the first character. */ 1374 /* Substitute the login name for the &, upcasing the first character. */
1379 if (q) 1375 if (q)
1380 { 1376 {
@@ -2045,7 +2041,7 @@ static char set_time_zone_rule_tz2[] = "TZ=GMT+1";
2045 responsibility to free. */ 2041 responsibility to free. */
2046 2042
2047void 2043void
2048set_time_zone_rule (char *tzstring) 2044set_time_zone_rule (const char *tzstring)
2049{ 2045{
2050 int envptrs; 2046 int envptrs;
2051 char **from, **to, **newenv; 2047 char **from, **to, **newenv;
@@ -3813,7 +3809,7 @@ usage: (format STRING &rest OBJECTS) */)
3813 discarded[format - format_start] = 1; 3809 discarded[format - format_start] = 1;
3814 format++; 3810 format++;
3815 3811
3816 while (index ("-+0# ", *format)) 3812 while (strchr ("-+0# ", *format))
3817 { 3813 {
3818 if (*format == '-') 3814 if (*format == '-')
3819 { 3815 {
@@ -4111,7 +4107,7 @@ usage: (format STRING &rest OBJECTS) */)
4111} 4107}
4112 4108
4113Lisp_Object 4109Lisp_Object
4114format2 (char *string1, Lisp_Object arg0, Lisp_Object arg1) 4110format2 (const char *string1, Lisp_Object arg0, Lisp_Object arg1)
4115{ 4111{
4116 Lisp_Object args[3]; 4112 Lisp_Object args[3];
4117 args[0] = build_string (string1); 4113 args[0] = build_string (string1);
diff --git a/src/emacs.c b/src/emacs.c
index 92d8b82cbd7..e00c49b8d24 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -90,12 +90,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
90const char emacs_copyright[] = "Copyright (C) 2010 Free Software Foundation, Inc."; 90const char emacs_copyright[] = "Copyright (C) 2010 Free Software Foundation, Inc.";
91const char emacs_version[] = "24.0.50"; 91const char emacs_version[] = "24.0.50";
92 92
93extern void malloc_warning (char *);
94extern void set_time_zone_rule (char *);
95#ifdef HAVE_INDEX
96extern char *index (const char *, int);
97#endif
98
99/* Make these values available in GDB, which doesn't see macros. */ 93/* Make these values available in GDB, which doesn't see macros. */
100 94
101#ifdef USE_LSB_TAG 95#ifdef USE_LSB_TAG
@@ -664,7 +658,7 @@ argmatch (char **argv, int argc, char *sstr, char *lstr, int minlen, char **valp
664 *skipptr += 1; 658 *skipptr += 1;
665 return 1; 659 return 1;
666 } 660 }
667 arglen = (valptr != NULL && (p = index (arg, '=')) != NULL 661 arglen = (valptr != NULL && (p = strchr (arg, '=')) != NULL
668 ? p - arg : strlen (arg)); 662 ? p - arg : strlen (arg));
669 if (lstr == 0 || arglen < minlen || strncmp (arg, lstr, arglen) != 0) 663 if (lstr == 0 || arglen < minlen || strncmp (arg, lstr, arglen) != 0)
670 return 0; 664 return 0;
@@ -1976,7 +1970,7 @@ sort_args (int argc, char **argv)
1976 { 1970 {
1977 match = -1; 1971 match = -1;
1978 thislen = strlen (argv[from]); 1972 thislen = strlen (argv[from]);
1979 equals = index (argv[from], '='); 1973 equals = strchr (argv[from], '=');
1980 if (equals != 0) 1974 if (equals != 0)
1981 thislen = equals - argv[from]; 1975 thislen = equals - argv[from];
1982 1976
@@ -2344,17 +2338,16 @@ synchronize_system_messages_locale ()
2344#endif 2338#endif
2345 2339
2346Lisp_Object 2340Lisp_Object
2347decode_env_path (evarname, defalt) 2341decode_env_path (const char *evarname, const char *defalt)
2348 char *evarname, *defalt;
2349{ 2342{
2350 register char *path, *p; 2343 const char *path, *p;
2351 Lisp_Object lpath, element, tem; 2344 Lisp_Object lpath, element, tem;
2352 2345
2353 /* It's okay to use getenv here, because this function is only used 2346 /* It's okay to use getenv here, because this function is only used
2354 to initialize variables when Emacs starts up, and isn't called 2347 to initialize variables when Emacs starts up, and isn't called
2355 after that. */ 2348 after that. */
2356 if (evarname != 0) 2349 if (evarname != 0)
2357 path = (char *) getenv (evarname); 2350 path = getenv (evarname);
2358 else 2351 else
2359 path = 0; 2352 path = 0;
2360 if (!path) 2353 if (!path)
@@ -2363,18 +2356,18 @@ decode_env_path (evarname, defalt)
2363 /* Ensure values from the environment use the proper directory separator. */ 2356 /* Ensure values from the environment use the proper directory separator. */
2364 if (path) 2357 if (path)
2365 { 2358 {
2366 p = alloca (strlen (path) + 1); 2359 char *path_copy = alloca (strlen (path) + 1);
2367 strcpy (p, path); 2360 strcpy (path_copy, path);
2368 path = p; 2361 dostounix_filename (path_copy);
2369 2362 path = path_copy;
2370 dostounix_filename (path);
2371 } 2363 }
2372#endif 2364#endif
2373 lpath = Qnil; 2365 lpath = Qnil;
2374 while (1) 2366 while (1)
2375 { 2367 {
2376 p = index (path, SEPCHAR); 2368 p = strchr (path, SEPCHAR);
2377 if (!p) p = path + strlen (path); 2369 if (!p)
2370 p = path + strlen (path);
2378 element = (p - path ? make_string (path, p - path) 2371 element = (p - path ? make_string (path, p - path)
2379 : build_string (".")); 2372 : build_string ("."));
2380 2373
diff --git a/src/eval.c b/src/eval.c
index fa65a5f0d6e..1a7eb4a123e 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1,7 +1,7 @@
1/* Evaluator for GNU Emacs Lisp interpreter. 1/* Evaluator for GNU Emacs Lisp interpreter.
2 Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1999, 2000, 2001, 2 Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1999, 2000, 2001,
3 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
@@ -172,14 +172,6 @@ extern Lisp_Object Qfunction;
172 172
173static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*); 173static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*);
174static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN; 174static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN;
175
176#if __GNUC__
177/* "gcc -O3" enables automatic function inlining, which optimizes out
178 the arguments for the invocations of these functions, whereas they
179 expect these values on the stack. */
180Lisp_Object apply1 (Lisp_Object fn, Lisp_Object arg) __attribute__((noinline));
181Lisp_Object call2 (Lisp_Object fn, Lisp_Object arg1, Lisp_Object arg2) __attribute__((noinline));
182#endif
183 175
184void 176void
185init_eval_once (void) 177init_eval_once (void)
@@ -435,7 +427,7 @@ usage: (prog1 FIRST BODY...) */)
435 do 427 do
436 { 428 {
437 if (!(argnum++)) 429 if (!(argnum++))
438 val = Feval (Fcar (args_left)); 430 val = Feval (Fcar (args_left));
439 else 431 else
440 Feval (Fcar (args_left)); 432 Feval (Fcar (args_left));
441 args_left = Fcdr (args_left); 433 args_left = Fcdr (args_left);
@@ -470,7 +462,7 @@ usage: (prog2 FORM1 FORM2 BODY...) */)
470 do 462 do
471 { 463 {
472 if (!(argnum++)) 464 if (!(argnum++))
473 val = Feval (Fcar (args_left)); 465 val = Feval (Fcar (args_left));
474 else 466 else
475 Feval (Fcar (args_left)); 467 Feval (Fcar (args_left));
476 args_left = Fcdr (args_left); 468 args_left = Fcdr (args_left);
@@ -944,30 +936,30 @@ chain of symbols. */)
944 /* If indirect and there's an alias loop, don't check anything else. */ 936 /* If indirect and there's an alias loop, don't check anything else. */
945 if (XSYMBOL (variable)->redirect == SYMBOL_VARALIAS 937 if (XSYMBOL (variable)->redirect == SYMBOL_VARALIAS
946 && NILP (internal_condition_case_1 (lisp_indirect_variable, variable, 938 && NILP (internal_condition_case_1 (lisp_indirect_variable, variable,
947 Qt, user_variable_p_eh))) 939 Qt, user_variable_p_eh)))
948 return Qnil; 940 return Qnil;
949 941
950 while (1) 942 while (1)
951 { 943 {
952 documentation = Fget (variable, Qvariable_documentation); 944 documentation = Fget (variable, Qvariable_documentation);
953 if (INTEGERP (documentation) && XINT (documentation) < 0) 945 if (INTEGERP (documentation) && XINT (documentation) < 0)
954 return Qt; 946 return Qt;
955 if (STRINGP (documentation) 947 if (STRINGP (documentation)
956 && ((unsigned char) SREF (documentation, 0) == '*')) 948 && ((unsigned char) SREF (documentation, 0) == '*'))
957 return Qt; 949 return Qt;
958 /* If it is (STRING . INTEGER), a negative integer means a user variable. */ 950 /* If it is (STRING . INTEGER), a negative integer means a user variable. */
959 if (CONSP (documentation) 951 if (CONSP (documentation)
960 && STRINGP (XCAR (documentation)) 952 && STRINGP (XCAR (documentation))
961 && INTEGERP (XCDR (documentation)) 953 && INTEGERP (XCDR (documentation))
962 && XINT (XCDR (documentation)) < 0) 954 && XINT (XCDR (documentation)) < 0)
963 return Qt; 955 return Qt;
964 /* Customizable? See `custom-variable-p'. */ 956 /* Customizable? See `custom-variable-p'. */
965 if ((!NILP (Fget (variable, intern ("standard-value")))) 957 if ((!NILP (Fget (variable, intern ("standard-value"))))
966 || (!NILP (Fget (variable, intern ("custom-autoload"))))) 958 || (!NILP (Fget (variable, intern ("custom-autoload")))))
967 return Qt; 959 return Qt;
968 960
969 if (!(XSYMBOL (variable)->redirect == SYMBOL_VARALIAS)) 961 if (!(XSYMBOL (variable)->redirect == SYMBOL_VARALIAS))
970 return Qnil; 962 return Qnil;
971 963
972 /* An indirect variable? Let's follow the chain. */ 964 /* An indirect variable? Let's follow the chain. */
973 XSETSYMBOL (variable, SYMBOL_ALIAS (XSYMBOL (variable))); 965 XSETSYMBOL (variable, SYMBOL_ALIAS (XSYMBOL (variable)));
@@ -1254,7 +1246,7 @@ unwind_to_catch (struct catchtag *catch, Lisp_Object value)
1254 last_time = catchlist == catch; 1246 last_time = catchlist == catch;
1255 1247
1256 /* Unwind the specpdl stack, and then restore the proper set of 1248 /* Unwind the specpdl stack, and then restore the proper set of
1257 handlers. */ 1249 handlers. */
1258 unbind_to (catchlist->pdlcount, Qnil); 1250 unbind_to (catchlist->pdlcount, Qnil);
1259 handlerlist = catchlist->handlerlist; 1251 handlerlist = catchlist->handlerlist;
1260 catchlist = catchlist->next; 1252 catchlist = catchlist->next;
@@ -1265,8 +1257,8 @@ unwind_to_catch (struct catchtag *catch, Lisp_Object value)
1265 /* If x_catch_errors was done, turn it off now. 1257 /* If x_catch_errors was done, turn it off now.
1266 (First we give unbind_to a chance to do that.) */ 1258 (First we give unbind_to a chance to do that.) */
1267#if 0 /* This would disable x_catch_errors after x_connection_closed. 1259#if 0 /* This would disable x_catch_errors after x_connection_closed.
1268 * The catch must remain in effect during that delicate 1260 The catch must remain in effect during that delicate
1269 * state. --lorentey */ 1261 state. --lorentey */
1270 x_fully_uncatch_errors (); 1262 x_fully_uncatch_errors ();
1271#endif 1263#endif
1272#endif 1264#endif
@@ -1342,13 +1334,13 @@ instead of a single condition name. Then it handles all of them.
1342When a handler handles an error, control returns to the `condition-case' 1334When a handler handles an error, control returns to the `condition-case'
1343and it executes the handler's BODY... 1335and it executes the handler's BODY...
1344with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error. 1336with VAR bound to (ERROR-SYMBOL . SIGNAL-DATA) from the error.
1345(If VAR is nil, the handler can't access that information.) 1337\(If VAR is nil, the handler can't access that information.)
1346Then the value of the last BODY form is returned from the `condition-case' 1338Then the value of the last BODY form is returned from the `condition-case'
1347expression. 1339expression.
1348 1340
1349See also the function `signal' for more info. 1341See also the function `signal' for more info.
1350usage: (condition-case VAR BODYFORM &rest HANDLERS) */) 1342usage: (condition-case VAR BODYFORM &rest HANDLERS) */)
1351(Lisp_Object args) 1343 (Lisp_Object args)
1352{ 1344{
1353 register Lisp_Object bodyform, handlers; 1345 register Lisp_Object bodyform, handlers;
1354 volatile Lisp_Object var; 1346 volatile Lisp_Object var;
@@ -1397,7 +1389,7 @@ internal_lisp_condition_case (volatile Lisp_Object var, Lisp_Object bodyform,
1397 if (_setjmp (c.jmp)) 1389 if (_setjmp (c.jmp))
1398 { 1390 {
1399 if (!NILP (h.var)) 1391 if (!NILP (h.var))
1400 specbind (h.var, c.val); 1392 specbind (h.var, c.val);
1401 val = Fprogn (Fcdr (h.chosen_clause)); 1393 val = Fprogn (Fcdr (h.chosen_clause));
1402 1394
1403 /* Note that this just undoes the binding of h.var; whoever 1395 /* Note that this just undoes the binding of h.var; whoever
@@ -1619,7 +1611,7 @@ internal_condition_case_n (Lisp_Object (*bfun) (int, Lisp_Object*),
1619 1611
1620 1612
1621static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object, 1613static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object,
1622 Lisp_Object, Lisp_Object); 1614 Lisp_Object, Lisp_Object);
1623 1615
1624DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0, 1616DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,
1625 doc: /* Signal an error. Args are ERROR-SYMBOL and associated DATA. 1617 doc: /* Signal an error. Args are ERROR-SYMBOL and associated DATA.
@@ -1783,7 +1775,7 @@ xsignal3 (Lisp_Object error_symbol, Lisp_Object arg1, Lisp_Object arg2, Lisp_Obj
1783 If ARG is not a genuine list, make it a one-element list. */ 1775 If ARG is not a genuine list, make it a one-element list. */
1784 1776
1785void 1777void
1786signal_error (char *s, Lisp_Object arg) 1778signal_error (const char *s, Lisp_Object arg)
1787{ 1779{
1788 Lisp_Object tortoise, hare; 1780 Lisp_Object tortoise, hare;
1789 1781
@@ -2003,9 +1995,7 @@ find_handler_clause (Lisp_Object handlers, Lisp_Object conditions,
2003 1995
2004/* VARARGS 1 */ 1996/* VARARGS 1 */
2005void 1997void
2006error (m, a1, a2, a3) 1998error (const char *m, ...)
2007 char *m;
2008 char *a1, *a2, *a3;
2009{ 1999{
2010 char buf[200]; 2000 char buf[200];
2011 int size = 200; 2001 int size = 200;
@@ -2015,15 +2005,18 @@ error (m, a1, a2, a3)
2015 int allocated = 0; 2005 int allocated = 0;
2016 Lisp_Object string; 2006 Lisp_Object string;
2017 2007
2018 args[0] = a1;
2019 args[1] = a2;
2020 args[2] = a3;
2021
2022 mlen = strlen (m); 2008 mlen = strlen (m);
2023 2009
2024 while (1) 2010 while (1)
2025 { 2011 {
2026 int used = doprnt (buffer, size, m, m + mlen, 3, args); 2012 va_list ap;
2013 int used;
2014
2015 /* A va_list can't be reused if we have to go around the loop
2016 again; we need to "reinitialize" it each time. */
2017 va_start(ap, m);
2018 used = doprnt (buffer, size, m, m + mlen, ap);
2019 va_end(ap);
2027 if (used < size) 2020 if (used < size)
2028 break; 2021 break;
2029 size *= 2; 2022 size *= 2;
@@ -2515,7 +2508,7 @@ usage: (apply FUNCTION &rest ARGUMENTS) */)
2515 2508
2516enum run_hooks_condition {to_completion, until_success, until_failure}; 2509enum run_hooks_condition {to_completion, until_success, until_failure};
2517static Lisp_Object run_hook_with_args (int, Lisp_Object *, 2510static Lisp_Object run_hook_with_args (int, Lisp_Object *,
2518 enum run_hooks_condition); 2511 enum run_hooks_condition);
2519 2512
2520DEFUN ("run-hooks", Frun_hooks, Srun_hooks, 0, MANY, 0, 2513DEFUN ("run-hooks", Frun_hooks, Srun_hooks, 0, MANY, 0,
2521 doc: /* Run each hook in HOOKS. 2514 doc: /* Run each hook in HOOKS.
@@ -3253,18 +3246,17 @@ specbind (Lisp_Object symbol, Lisp_Object value)
3253 case SYMBOL_VARALIAS: 3246 case SYMBOL_VARALIAS:
3254 sym = indirect_variable (sym); XSETSYMBOL (symbol, sym); goto start; 3247 sym = indirect_variable (sym); XSETSYMBOL (symbol, sym); goto start;
3255 case SYMBOL_PLAINVAL: 3248 case SYMBOL_PLAINVAL:
3256 { /* The most common case is that of a non-constant symbol with a 3249 /* The most common case is that of a non-constant symbol with a
3257 trivial value. Make that as fast as we can. */ 3250 trivial value. Make that as fast as we can. */
3258 specpdl_ptr->symbol = symbol; 3251 specpdl_ptr->symbol = symbol;
3259 specpdl_ptr->old_value = SYMBOL_VAL (sym); 3252 specpdl_ptr->old_value = SYMBOL_VAL (sym);
3260 specpdl_ptr->func = NULL; 3253 specpdl_ptr->func = NULL;
3261 ++specpdl_ptr; 3254 ++specpdl_ptr;
3262 if (!sym->constant) 3255 if (!sym->constant)
3263 SET_SYMBOL_VAL (sym, value); 3256 SET_SYMBOL_VAL (sym, value);
3264 else 3257 else
3265 set_internal (symbol, value, Qnil, 1); 3258 set_internal (symbol, value, Qnil, 1);
3266 break; 3259 break;
3267 }
3268 case SYMBOL_LOCALIZED: 3260 case SYMBOL_LOCALIZED:
3269 if (SYMBOL_BLV (sym)->frame_local) 3261 if (SYMBOL_BLV (sym)->frame_local)
3270 error ("Frame-local vars cannot be let-bound"); 3262 error ("Frame-local vars cannot be let-bound");
@@ -3374,7 +3366,7 @@ unbind_to (int count, Lisp_Object value)
3374 bound a variable that had a buffer-local or frame-local 3366 bound a variable that had a buffer-local or frame-local
3375 binding. WHERE nil means that the variable had the default 3367 binding. WHERE nil means that the variable had the default
3376 value when it was bound. CURRENT-BUFFER is the buffer that 3368 value when it was bound. CURRENT-BUFFER is the buffer that
3377 was current when the variable was bound. */ 3369 was current when the variable was bound. */
3378 else if (CONSP (this_binding.symbol)) 3370 else if (CONSP (this_binding.symbol))
3379 { 3371 {
3380 Lisp_Object symbol, where; 3372 Lisp_Object symbol, where;
diff --git a/src/fileio.c b/src/fileio.c
index 7c0921a0e39..c942803e280 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1455,7 +1455,7 @@ See also the function `substitute-in-file-name'.")
1455 /* Get past ~ to user */ 1455 /* Get past ~ to user */
1456 unsigned char *user = nm + 1; 1456 unsigned char *user = nm + 1;
1457 /* Find end of name. */ 1457 /* Find end of name. */
1458 unsigned char *ptr = (unsigned char *) index (user, '/'); 1458 unsigned char *ptr = (unsigned char *) strchr (user, '/');
1459 int len = ptr ? ptr - user : strlen (user); 1459 int len = ptr ? ptr - user : strlen (user);
1460 /* Copy the user name into temp storage. */ 1460 /* Copy the user name into temp storage. */
1461 o = (unsigned char *) alloca (len + 1); 1461 o = (unsigned char *) alloca (len + 1);
@@ -2729,7 +2729,7 @@ points to a nonexistent file. */)
2729 while (valsize >= bufsize); 2729 while (valsize >= bufsize);
2730 2730
2731 val = make_string (buf, valsize); 2731 val = make_string (buf, valsize);
2732 if (buf[0] == '/' && index (buf, ':')) 2732 if (buf[0] == '/' && strchr (buf, ':'))
2733 val = concat2 (build_string ("/:"), val); 2733 val = concat2 (build_string ("/:"), val);
2734 xfree (buf); 2734 xfree (buf);
2735 val = DECODE_FILE (val); 2735 val = DECODE_FILE (val);
diff --git a/src/filelock.c b/src/filelock.c
index 8eb6060e531..c3f1bfde292 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -413,9 +413,6 @@ within_one_second (time_t a, time_t b)
413static int 413static int
414current_lock_owner (lock_info_type *owner, char *lfname) 414current_lock_owner (lock_info_type *owner, char *lfname)
415{ 415{
416#ifndef index
417 extern char *rindex (const char *, int), *index (const char *, int);
418#endif
419 int len, ret; 416 int len, ret;
420 int local_owner = 0; 417 int local_owner = 0;
421 char *at, *dot, *colon; 418 char *at, *dot, *colon;
@@ -457,8 +454,8 @@ current_lock_owner (lock_info_type *owner, char *lfname)
457 454
458 /* Parse USER@HOST.PID:BOOT_TIME. If can't parse, return -1. */ 455 /* Parse USER@HOST.PID:BOOT_TIME. If can't parse, return -1. */
459 /* The USER is everything before the last @. */ 456 /* The USER is everything before the last @. */
460 at = rindex (lfinfo, '@'); 457 at = strrchr (lfinfo, '@');
461 dot = rindex (lfinfo, '.'); 458 dot = strrchr (lfinfo, '.');
462 if (!at || !dot) 459 if (!at || !dot)
463 { 460 {
464 xfree (lfinfo); 461 xfree (lfinfo);
diff --git a/src/fns.c b/src/fns.c
index 42e7a715f76..0e220c5ee0b 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -371,14 +371,8 @@ Symbols are also allowed; their print names are used instead. */)
371 return i1 < SCHARS (s2) ? Qt : Qnil; 371 return i1 < SCHARS (s2) ? Qt : Qnil;
372} 372}
373 373
374#if __GNUC__ 374static Lisp_Object concat (int nargs, Lisp_Object *args,
375/* "gcc -O3" enables automatic function inlining, which optimizes out 375 enum Lisp_Type target_type, int last_special);
376 the arguments for the invocations of this function, whereas it
377 expects these values on the stack. */
378static Lisp_Object concat (int nargs, Lisp_Object *args, enum Lisp_Type target_type, int last_special) __attribute__((noinline));
379#else /* !__GNUC__ */
380static Lisp_Object concat (int nargs, Lisp_Object *args, enum Lisp_Type target_type, int last_special);
381#endif
382 376
383/* ARGSUSED */ 377/* ARGSUSED */
384Lisp_Object 378Lisp_Object
diff --git a/src/font.c b/src/font.c
index bf3c4b6c8c2..c72453d6702 100644
--- a/src/font.c
+++ b/src/font.c
@@ -1815,7 +1815,7 @@ font_unparse_gtkname (Lisp_Object font, struct frame *f, char *name, int nbytes)
1815static int 1815static int
1816font_parse_name (char *name, Lisp_Object font) 1816font_parse_name (char *name, Lisp_Object font)
1817{ 1817{
1818 if (name[0] == '-' || index (name, '*') || index (name, '?')) 1818 if (name[0] == '-' || strchr (name, '*') || strchr (name, '?'))
1819 return font_parse_xlfd (name, font); 1819 return font_parse_xlfd (name, font);
1820 return font_parse_fcname (name, font); 1820 return font_parse_fcname (name, font);
1821} 1821}
@@ -1837,7 +1837,7 @@ font_parse_family_registry (Lisp_Object family, Lisp_Object registry, Lisp_Objec
1837 CHECK_STRING (family); 1837 CHECK_STRING (family);
1838 len = SBYTES (family); 1838 len = SBYTES (family);
1839 p0 = (char *) SDATA (family); 1839 p0 = (char *) SDATA (family);
1840 p1 = index (p0, '-'); 1840 p1 = strchr (p0, '-');
1841 if (p1) 1841 if (p1)
1842 { 1842 {
1843 if ((*p0 != '*' && p1 - p0 > 0) 1843 if ((*p0 != '*' && p1 - p0 > 0)
@@ -1856,7 +1856,7 @@ font_parse_family_registry (Lisp_Object family, Lisp_Object registry, Lisp_Objec
1856 CHECK_STRING (registry); 1856 CHECK_STRING (registry);
1857 len = SBYTES (registry); 1857 len = SBYTES (registry);
1858 p0 = (char *) SDATA (registry); 1858 p0 = (char *) SDATA (registry);
1859 p1 = index (p0, '-'); 1859 p1 = strchr (p0, '-');
1860 if (! p1) 1860 if (! p1)
1861 { 1861 {
1862 if (SDATA (registry)[len - 1] == '*') 1862 if (SDATA (registry)[len - 1] == '*')
diff --git a/src/fontset.c b/src/fontset.c
index 676e96fd88c..9a27fc3e36b 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1065,8 +1065,8 @@ static Lisp_Object Vcached_fontset_data;
1065static Lisp_Object 1065static Lisp_Object
1066fontset_pattern_regexp (Lisp_Object pattern) 1066fontset_pattern_regexp (Lisp_Object pattern)
1067{ 1067{
1068 if (!index ((char *) SDATA (pattern), '*') 1068 if (!strchr ((char *) SDATA (pattern), '*')
1069 && !index ((char *) SDATA (pattern), '?')) 1069 && !strchr ((char *) SDATA (pattern), '?'))
1070 /* PATTERN does not contain any wild cards. */ 1070 /* PATTERN does not contain any wild cards. */
1071 return Qnil; 1071 return Qnil;
1072 1072
diff --git a/src/frame.c b/src/frame.c
index 37d1579dd4d..cebec92c426 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -100,6 +100,7 @@ Lisp_Object Qgeometry; /* Not used */
100Lisp_Object Qheight, Qwidth; 100Lisp_Object Qheight, Qwidth;
101Lisp_Object Qleft, Qright; 101Lisp_Object Qleft, Qright;
102Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name; 102Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name;
103Lisp_Object Qtooltip;
103Lisp_Object Qinternal_border_width; 104Lisp_Object Qinternal_border_width;
104Lisp_Object Qmouse_color; 105Lisp_Object Qmouse_color;
105Lisp_Object Qminibuffer; 106Lisp_Object Qminibuffer;
@@ -326,6 +327,8 @@ make_frame (int mini_p)
326 f->n_tool_bar_items = 0; 327 f->n_tool_bar_items = 0;
327 f->left_fringe_width = f->right_fringe_width = 0; 328 f->left_fringe_width = f->right_fringe_width = 0;
328 f->fringe_cols = 0; 329 f->fringe_cols = 0;
330 f->menu_bar_lines = 0;
331 f->tool_bar_lines = 0;
329 f->scroll_bar_actual_width = 0; 332 f->scroll_bar_actual_width = 0;
330 f->border_width = 0; 333 f->border_width = 0;
331 f->internal_border_width = 0; 334 f->internal_border_width = 0;
@@ -550,6 +553,7 @@ make_initial_frame (void)
550 553
551 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; 554 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
552 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none; 555 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
556 FRAME_MENU_BAR_LINES(f) = NILP (Vmenu_bar_mode) ? 0 : 1;
553 557
554#ifdef CANNOT_DUMP 558#ifdef CANNOT_DUMP
555 if (!noninteractive) 559 if (!noninteractive)
@@ -600,6 +604,7 @@ make_terminal_frame (struct terminal *terminal)
600 604
601 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; 605 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
602 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none; 606 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
607 FRAME_MENU_BAR_LINES(f) = NILP (Vmenu_bar_mode) ? 0 : 1;
603 608
604 /* Set the top frame to the newly created frame. */ 609 /* Set the top frame to the newly created frame. */
605 if (FRAMEP (FRAME_TTY (f)->top_frame) 610 if (FRAMEP (FRAME_TTY (f)->top_frame)
@@ -1298,7 +1303,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1298 struct frame *sf = SELECTED_FRAME (); 1303 struct frame *sf = SELECTED_FRAME ();
1299 struct kboard *kb; 1304 struct kboard *kb;
1300 1305
1301 int minibuffer_selected; 1306 int minibuffer_selected, tooltip_frame;
1302 1307
1303 if (EQ (frame, Qnil)) 1308 if (EQ (frame, Qnil))
1304 { 1309 {
@@ -1350,13 +1355,15 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1350 } 1355 }
1351 } 1356 }
1352 1357
1358 tooltip_frame = !NILP (Fframe_parameter (frame, intern ("tooltip")));
1359
1353 /* Run `delete-frame-functions' unless FORCE is `noelisp' or 1360 /* Run `delete-frame-functions' unless FORCE is `noelisp' or
1354 frame is a tooltip. FORCE is set to `noelisp' when handling 1361 frame is a tooltip. FORCE is set to `noelisp' when handling
1355 a disconnect from the terminal, so we don't dare call Lisp 1362 a disconnect from the terminal, so we don't dare call Lisp
1356 code. */ 1363 code. */
1357 if (NILP (Vrun_hooks) || !NILP (Fframe_parameter (frame, intern ("tooltip")))) 1364 if (NILP (Vrun_hooks) || tooltip_frame)
1358 ; 1365 ;
1359 if (EQ (force, Qnoelisp)) 1366 else if (EQ (force, Qnoelisp))
1360 pending_funcalls 1367 pending_funcalls
1361 = Fcons (list3 (Qrun_hook_with_args, Qdelete_frame_functions, frame), 1368 = Fcons (list3 (Qrun_hook_with_args, Qdelete_frame_functions, frame),
1362 pending_funcalls); 1369 pending_funcalls);
@@ -1602,7 +1609,8 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1602 } 1609 }
1603 1610
1604 /* Cause frame titles to update--necessary if we now have just one frame. */ 1611 /* Cause frame titles to update--necessary if we now have just one frame. */
1605 update_mode_lines = 1; 1612 if (!tooltip_frame)
1613 update_mode_lines = 1;
1606 1614
1607 return Qnil; 1615 return Qnil;
1608} 1616}
@@ -4320,6 +4328,8 @@ syms_of_frame (void)
4320 staticpro (&Qicon_left); 4328 staticpro (&Qicon_left);
4321 Qicon_top = intern_c_string ("icon-top"); 4329 Qicon_top = intern_c_string ("icon-top");
4322 staticpro (&Qicon_top); 4330 staticpro (&Qicon_top);
4331 Qtooltip = intern_c_string ("tooltip");
4332 staticpro (&Qtooltip);
4323 Qleft = intern_c_string ("left"); 4333 Qleft = intern_c_string ("left");
4324 staticpro (&Qleft); 4334 staticpro (&Qleft);
4325 Qright = intern_c_string ("right"); 4335 Qright = intern_c_string ("right");
diff --git a/src/fringe.c b/src/fringe.c
index 50d5a5c9747..399779009dc 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -555,23 +555,26 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
555 struct fringe_bitmap *fb; 555 struct fringe_bitmap *fb;
556 int period; 556 int period;
557 int face_id = DEFAULT_FACE_ID; 557 int face_id = DEFAULT_FACE_ID;
558 int offset, header_line_height;
558 559
559 p.cursor_p = 0;
560 p.overlay_p = (overlay & 1) == 1; 560 p.overlay_p = (overlay & 1) == 1;
561 p.cursor_p = (overlay & 2) == 2; 561 p.cursor_p = (overlay & 2) == 2;
562 562
563 if (which != NO_FRINGE_BITMAP) 563 if (which != NO_FRINGE_BITMAP)
564 { 564 {
565 offset = 0;
565 } 566 }
566 else if (left_p) 567 else if (left_p)
567 { 568 {
568 which = row->left_fringe_bitmap; 569 which = row->left_fringe_bitmap;
569 face_id = row->left_fringe_face_id; 570 face_id = row->left_fringe_face_id;
571 offset = row->left_fringe_offset;
570 } 572 }
571 else 573 else
572 { 574 {
573 which = row->right_fringe_bitmap; 575 which = row->right_fringe_bitmap;
574 face_id = row->right_fringe_face_id; 576 face_id = row->right_fringe_face_id;
577 offset = row->right_fringe_offset;
575 } 578 }
576 579
577 if (face_id == DEFAULT_FACE_ID) 580 if (face_id == DEFAULT_FACE_ID)
@@ -591,7 +594,7 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
591 period = fb->period; 594 period = fb->period;
592 595
593 /* Convert row to frame coordinates. */ 596 /* Convert row to frame coordinates. */
594 p.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); 597 p.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y) + offset;
595 598
596 p.which = which; 599 p.which = which;
597 p.bits = fb->bits; 600 p.bits = fb->bits;
@@ -600,9 +603,19 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
600 p.h = fb->height; 603 p.h = fb->height;
601 p.dh = (period > 0 ? (p.y % period) : 0); 604 p.dh = (period > 0 ? (p.y % period) : 0);
602 p.h -= p.dh; 605 p.h -= p.dh;
603 /* Clip bitmap if too high. */ 606
604 if (p.h > row->height) 607 /* Adjust y to the offset in the row to start drawing the bitmap. */
605 p.h = row->height; 608 switch (fb->align)
609 {
610 case ALIGN_BITMAP_CENTER:
611 p.y += (row->height - p.h) / 2;
612 break;
613 case ALIGN_BITMAP_BOTTOM:
614 p.y += (row->visible_height - p.h);
615 break;
616 case ALIGN_BITMAP_TOP:
617 break;
618 }
606 619
607 p.face = FACE_FROM_ID (f, face_id); 620 p.face = FACE_FROM_ID (f, face_id);
608 621
@@ -618,6 +631,9 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
618 /* Clear left fringe if no bitmap to draw or if bitmap doesn't fill 631 /* Clear left fringe if no bitmap to draw or if bitmap doesn't fill
619 the fringe. */ 632 the fringe. */
620 p.bx = -1; 633 p.bx = -1;
634 header_line_height = WINDOW_HEADER_LINE_HEIGHT (w);
635 p.by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, row->y));
636 p.ny = row->visible_height;
621 if (left_p) 637 if (left_p)
622 { 638 {
623 int wd = WINDOW_LEFT_FRINGE_WIDTH (w); 639 int wd = WINDOW_LEFT_FRINGE_WIDTH (w);
@@ -628,7 +644,7 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
628 p.wd = wd; 644 p.wd = wd;
629 p.x = x - p.wd - (wd - p.wd) / 2; 645 p.x = x - p.wd - (wd - p.wd) / 2;
630 646
631 if (p.wd < wd || row->height > p.h) 647 if (p.wd < wd || p.y > p.by || p.y + p.h < p.by + p.ny)
632 { 648 {
633 /* If W has a vertical border to its left, don't draw over it. */ 649 /* If W has a vertical border to its left, don't draw over it. */
634 wd -= ((!WINDOW_LEFTMOST_P (w) 650 wd -= ((!WINDOW_LEFTMOST_P (w)
@@ -650,35 +666,13 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
650 p.x = x + (wd - p.wd) / 2; 666 p.x = x + (wd - p.wd) / 2;
651 /* Clear right fringe if no bitmap to draw of if bitmap doesn't fill 667 /* Clear right fringe if no bitmap to draw of if bitmap doesn't fill
652 the fringe. */ 668 the fringe. */
653 if (p.wd < wd || row->height > p.h) 669 if (p.wd < wd || p.y > p.by || p.y + p.h < p.by + p.ny)
654 { 670 {
655 p.bx = x; 671 p.bx = x;
656 p.nx = wd; 672 p.nx = wd;
657 } 673 }
658 } 674 }
659 675
660 if (p.bx >= 0)
661 {
662 int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w);
663
664 p.by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, row->y));
665 p.ny = row->visible_height;
666 }
667
668 /* Adjust y to the offset in the row to start drawing the bitmap. */
669 switch (fb->align)
670 {
671 case ALIGN_BITMAP_CENTER:
672 p.y += (row->height - p.h) / 2;
673 break;
674 case ALIGN_BITMAP_BOTTOM:
675 p.h = fb->height;
676 p.y += (row->visible_height - p.h);
677 break;
678 case ALIGN_BITMAP_TOP:
679 break;
680 }
681
682 FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p); 676 FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p);
683} 677}
684 678
@@ -892,7 +886,7 @@ draw_window_fringes (struct window *w, int no_fringe)
892 struct glyph_row *row; 886 struct glyph_row *row;
893 int yb = window_text_bottom_y (w); 887 int yb = window_text_bottom_y (w);
894 int nrows = w->current_matrix->nrows; 888 int nrows = w->current_matrix->nrows;
895 int y = 0, rn; 889 int y, rn;
896 int updated = 0; 890 int updated = 0;
897 891
898 if (w->pseudo_window_p) 892 if (w->pseudo_window_p)
@@ -904,7 +898,7 @@ draw_window_fringes (struct window *w, int no_fringe)
904 || WINDOW_RIGHT_FRINGE_WIDTH (w) == 0)) 898 || WINDOW_RIGHT_FRINGE_WIDTH (w) == 0))
905 updated++; 899 updated++;
906 900
907 for (y = 0, rn = 0, row = w->current_matrix->rows; 901 for (y = w->vscroll, rn = 0, row = w->current_matrix->rows;
908 y < yb && rn < nrows; 902 y < yb && rn < nrows;
909 y += row->height, ++row, ++rn) 903 y += row->height, ++row, ++rn)
910 { 904 {
@@ -938,6 +932,9 @@ update_window_fringes (struct window *w, int keep_current_p)
938 Lisp_Object ind = Qnil; 932 Lisp_Object ind = Qnil;
939#define MAX_BITMAP_CACHE (8*4) 933#define MAX_BITMAP_CACHE (8*4)
940 int bitmap_cache[MAX_BITMAP_CACHE]; 934 int bitmap_cache[MAX_BITMAP_CACHE];
935 int top_ind_rn, bot_ind_rn;
936 int top_ind_min_y, bot_ind_max_y;
937 int top_row_ends_at_zv_p, bot_row_ends_at_zv_p;
941 938
942 if (w->pseudo_window_p) 939 if (w->pseudo_window_p)
943 return 0; 940 return 0;
@@ -966,11 +963,10 @@ update_window_fringes (struct window *w, int keep_current_p)
966 boundary_top = boundary_bot = Qleft; 963 boundary_top = boundary_bot = Qleft;
967 } 964 }
968 965
966 top_ind_rn = bot_ind_rn = -1;
969 if (!NILP (ind)) 967 if (!NILP (ind))
970 { 968 {
971 int done_top = 0, done_bot = 0; 969 for (y = w->vscroll, rn = 0;
972
973 for (y = 0, rn = 0;
974 y < yb && rn < nrows; 970 y < yb && rn < nrows;
975 y += row->height, ++rn) 971 y += row->height, ++rn)
976 { 972 {
@@ -991,31 +987,25 @@ update_window_fringes (struct window *w, int keep_current_p)
991 987
992 if (!row->mode_line_p) 988 if (!row->mode_line_p)
993 { 989 {
994 if (!done_top) 990 if (top_ind_rn < 0 && row->visible_height > 0)
995 { 991 {
996 if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer)) 992 if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer))
997 && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P (w, row)) 993 && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P (w, row))
998 row->indicate_bob_p = !NILP (boundary_top); 994 row->indicate_bob_p = !NILP (boundary_top);
999 else 995 else
1000 row->indicate_top_line_p = !NILP (arrow_top); 996 row->indicate_top_line_p = !NILP (arrow_top);
1001 done_top = 1; 997 top_ind_rn = rn;
1002 } 998 }
1003 999
1004 if (!done_bot) 1000 if (bot_ind_rn < 0)
1005 { 1001 {
1006 if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer)) 1002 if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer))
1007 && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P (w, row)) 1003 && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P (w, row))
1008 row->indicate_eob_p = !NILP (boundary_bot), done_bot = 1; 1004 row->indicate_eob_p = !NILP (boundary_bot), bot_ind_rn = rn;
1009 else if (y + row->height >= yb) 1005 else if (y + row->height >= yb)
1010 row->indicate_bottom_line_p = !NILP (arrow_bot), done_bot = 1; 1006 row->indicate_bottom_line_p = !NILP (arrow_bot), bot_ind_rn = rn;
1011 } 1007 }
1012 } 1008 }
1013
1014 if (indicate_bob_p != row->indicate_bob_p
1015 || indicate_top_line_p != row->indicate_top_line_p
1016 || indicate_eob_p != row->indicate_eob_p
1017 || indicate_bottom_line_p != row->indicate_bottom_line_p)
1018 row->redraw_fringe_bitmaps_p = 1;
1019 } 1009 }
1020 } 1010 }
1021 1011
@@ -1039,12 +1029,139 @@ update_window_fringes (struct window *w, int keep_current_p)
1039 get_logical_fringe_bitmap (w, which, 1, partial_p))) 1029 get_logical_fringe_bitmap (w, which, 1, partial_p)))
1040 1030
1041 1031
1042 for (y = 0, rn = 0; 1032 /* Extend top-aligned top indicator (or bottom-aligned bottom
1033 indicator) to adjacent rows if it doesn't fit in one row. */
1034 top_ind_min_y = bot_ind_max_y = -1;
1035 if (top_ind_rn >= 0)
1036 {
1037 int bn = NO_FRINGE_BITMAP;
1038
1039 row = w->desired_matrix->rows + top_ind_rn;
1040 if (!row->enabled_p)
1041 row = w->current_matrix->rows + top_ind_rn;
1042
1043 top_row_ends_at_zv_p = row->ends_at_zv_p;
1044 if (row->indicate_bob_p)
1045 {
1046 if (EQ (boundary_top, Qleft))
1047 bn = ((row->indicate_eob_p && EQ (boundary_bot, Qleft))
1048 ? LEFT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p)
1049 : LEFT_FRINGE (2, Qtop, 0));
1050 else
1051 bn = ((row->indicate_eob_p && EQ (boundary_bot, Qright))
1052 ? RIGHT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p)
1053 : RIGHT_FRINGE (2, Qtop, 0));
1054 }
1055 else if (row->indicate_top_line_p)
1056 {
1057 if (EQ (arrow_top, Qleft))
1058 bn = LEFT_FRINGE (6, Qup, 0);
1059 else
1060 bn = RIGHT_FRINGE (6, Qup, 0);
1061 }
1062
1063 if (bn != NO_FRINGE_BITMAP)
1064 {
1065 struct fringe_bitmap *fb;
1066
1067 fb = fringe_bitmaps[bn];
1068 if (fb == NULL)
1069 fb = &standard_bitmaps[bn < MAX_STANDARD_FRINGE_BITMAPS
1070 ? bn : UNDEF_FRINGE_BITMAP];
1071 if (fb->align == ALIGN_BITMAP_TOP && fb->period == 0)
1072 {
1073 struct glyph_row *row1;
1074 int top_ind_max_y;
1075
1076 top_ind_min_y = WINDOW_HEADER_LINE_HEIGHT (w);
1077 top_ind_max_y = top_ind_min_y + fb->height;
1078 if (top_ind_max_y > yb)
1079 top_ind_max_y = yb;
1080
1081 for (y = row->y + row->height, rn = top_ind_rn + 1;
1082 y < top_ind_max_y && rn < nrows;
1083 y += row1->height, rn++)
1084 {
1085 if (bot_ind_rn >= 0 && rn >= bot_ind_rn)
1086 break;
1087
1088 row1 = w->desired_matrix->rows + rn;
1089 if (!row1->enabled_p)
1090 row1 = w->current_matrix->rows + rn;
1091
1092 row1->indicate_bob_p = row->indicate_bob_p;
1093 row1->indicate_top_line_p = row->indicate_top_line_p;
1094 }
1095 }
1096 }
1097 }
1098 if (bot_ind_rn >= 0)
1099 {
1100 int bn = NO_FRINGE_BITMAP;
1101
1102 row = w->desired_matrix->rows + bot_ind_rn;
1103 if (!row->enabled_p)
1104 row = w->current_matrix->rows + bot_ind_rn;
1105
1106 bot_row_ends_at_zv_p = row->ends_at_zv_p;
1107 if (row->indicate_eob_p)
1108 {
1109 if (EQ (boundary_bot, Qleft))
1110 bn = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p);
1111 else
1112 bn = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p);
1113 }
1114 else if (row->indicate_bottom_line_p)
1115 {
1116 if (EQ (arrow_bot, Qleft))
1117 bn = LEFT_FRINGE (7, Qdown, 0);
1118 else
1119 bn = RIGHT_FRINGE (7, Qdown, 0);
1120 }
1121
1122 if (bn != NO_FRINGE_BITMAP)
1123 {
1124 struct fringe_bitmap *fb;
1125
1126 fb = fringe_bitmaps[bn];
1127 if (fb == NULL)
1128 fb = &standard_bitmaps[bn < MAX_STANDARD_FRINGE_BITMAPS
1129 ? bn : UNDEF_FRINGE_BITMAP];
1130 if (fb->align == ALIGN_BITMAP_BOTTOM && fb->period == 0)
1131 {
1132 struct glyph_row *row1;
1133 int bot_ind_min_y;
1134
1135 bot_ind_max_y = row->y + row->visible_height;
1136 bot_ind_min_y = bot_ind_max_y - fb->height;
1137 if (bot_ind_min_y < WINDOW_HEADER_LINE_HEIGHT (w))
1138 bot_ind_min_y = WINDOW_HEADER_LINE_HEIGHT (w);
1139
1140 for (y = row->y, rn = bot_ind_rn - 1;
1141 y >= bot_ind_min_y && rn >= 0;
1142 y -= row1->height, rn--)
1143 {
1144 if (top_ind_rn >= 0 && rn <= top_ind_rn)
1145 break;
1146
1147 row1 = w->desired_matrix->rows + rn;
1148 if (!row1->enabled_p)
1149 row1 = w->current_matrix->rows + rn;
1150
1151 row1->indicate_eob_p = row->indicate_eob_p;
1152 row1->indicate_bottom_line_p = row->indicate_bottom_line_p;
1153 }
1154 }
1155 }
1156 }
1157
1158 for (y = w->vscroll, rn = 0;
1043 y < yb && rn < nrows; 1159 y < yb && rn < nrows;
1044 y += row->height, rn++) 1160 y += row->height, rn++)
1045 { 1161 {
1046 int left, right; 1162 int left, right;
1047 unsigned left_face_id, right_face_id; 1163 unsigned left_face_id, right_face_id;
1164 int left_offset, right_offset;
1048 1165
1049 row = w->desired_matrix->rows + rn; 1166 row = w->desired_matrix->rows + rn;
1050 cur = w->current_matrix->rows + rn; 1167 cur = w->current_matrix->rows + rn;
@@ -1052,6 +1169,7 @@ update_window_fringes (struct window *w, int keep_current_p)
1052 row = cur; 1169 row = cur;
1053 1170
1054 left_face_id = right_face_id = DEFAULT_FACE_ID; 1171 left_face_id = right_face_id = DEFAULT_FACE_ID;
1172 left_offset = right_offset = 0;
1055 1173
1056 /* Decide which bitmap to draw in the left fringe. */ 1174 /* Decide which bitmap to draw in the left fringe. */
1057 if (WINDOW_LEFT_FRINGE_WIDTH (w) == 0) 1175 if (WINDOW_LEFT_FRINGE_WIDTH (w) == 0)
@@ -1065,20 +1183,35 @@ update_window_fringes (struct window *w, int keep_current_p)
1065 || (row->reversed_p && row->truncated_on_right_p)) 1183 || (row->reversed_p && row->truncated_on_right_p))
1066 left = LEFT_FRINGE(0, Qtruncation, 0); 1184 left = LEFT_FRINGE(0, Qtruncation, 0);
1067 else if (row->indicate_bob_p && EQ (boundary_top, Qleft)) 1185 else if (row->indicate_bob_p && EQ (boundary_top, Qleft))
1068 left = ((row->indicate_eob_p && EQ (boundary_bot, Qleft)) 1186 {
1069 ? LEFT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p) 1187 left = ((row->indicate_eob_p && EQ (boundary_bot, Qleft))
1070 : LEFT_FRINGE (2, Qtop, 0)); 1188 ? LEFT_FRINGE (1, Qtop_bottom, top_row_ends_at_zv_p)
1189 : LEFT_FRINGE (2, Qtop, 0));
1190 if (top_ind_min_y >= 0)
1191 left_offset = top_ind_min_y - row->y;
1192 }
1071 else if (row->indicate_eob_p && EQ (boundary_bot, Qleft)) 1193 else if (row->indicate_eob_p && EQ (boundary_bot, Qleft))
1072 left = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p); 1194 {
1073 else if ((!row->reversed_p && MATRIX_ROW_CONTINUATION_LINE_P (row)) 1195 left = LEFT_FRINGE (3, Qbottom, bot_row_ends_at_zv_p);
1074 || (row->reversed_p && row->continued_p)) 1196 if (bot_ind_max_y >= 0)
1197 left_offset = bot_ind_max_y - (row->y + row->visible_height);
1198 }
1199 else if (MATRIX_ROW_CONTINUATION_LINE_P (row))
1075 left = LEFT_FRINGE (4, Qcontinuation, 0); 1200 left = LEFT_FRINGE (4, Qcontinuation, 0);
1076 else if (row->indicate_empty_line_p && EQ (empty_pos, Qleft)) 1201 else if (row->indicate_empty_line_p && EQ (empty_pos, Qleft))
1077 left = LEFT_FRINGE (5, Qempty_line, 0); 1202 left = LEFT_FRINGE (5, Qempty_line, 0);
1078 else if (row->indicate_top_line_p && EQ (arrow_top, Qleft)) 1203 else if (row->indicate_top_line_p && EQ (arrow_top, Qleft))
1079 left = LEFT_FRINGE (6, Qup, 0); 1204 {
1205 left = LEFT_FRINGE (6, Qup, 0);
1206 if (top_ind_min_y >= 0)
1207 left_offset = top_ind_min_y - row->y;
1208 }
1080 else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qleft)) 1209 else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qleft))
1081 left = LEFT_FRINGE (7, Qdown, 0); 1210 {
1211 left = LEFT_FRINGE (7, Qdown, 0);
1212 if (bot_ind_max_y >= 0)
1213 left_offset = bot_ind_max_y - (row->y + row->visible_height);
1214 }
1082 else 1215 else
1083 left = NO_FRINGE_BITMAP; 1216 left = NO_FRINGE_BITMAP;
1084 1217
@@ -1094,18 +1227,33 @@ update_window_fringes (struct window *w, int keep_current_p)
1094 || (row->reversed_p && row->truncated_on_left_p)) 1227 || (row->reversed_p && row->truncated_on_left_p))
1095 right = RIGHT_FRINGE (0, Qtruncation, 0); 1228 right = RIGHT_FRINGE (0, Qtruncation, 0);
1096 else if (row->indicate_bob_p && EQ (boundary_top, Qright)) 1229 else if (row->indicate_bob_p && EQ (boundary_top, Qright))
1097 right = ((row->indicate_eob_p && EQ (boundary_bot, Qright)) 1230 {
1098 ? RIGHT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p) 1231 right = ((row->indicate_eob_p && EQ (boundary_bot, Qright))
1099 : RIGHT_FRINGE (2, Qtop, 0)); 1232 ? RIGHT_FRINGE (1, Qtop_bottom, top_row_ends_at_zv_p)
1233 : RIGHT_FRINGE (2, Qtop, 0));
1234 if (top_ind_min_y >= 0)
1235 right_offset = top_ind_min_y - row->y;
1236 }
1100 else if (row->indicate_eob_p && EQ (boundary_bot, Qright)) 1237 else if (row->indicate_eob_p && EQ (boundary_bot, Qright))
1101 right = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p); 1238 {
1102 else if ((!row->reversed_p && row->continued_p) 1239 right = RIGHT_FRINGE (3, Qbottom, bot_row_ends_at_zv_p);
1103 || (row->reversed_p && MATRIX_ROW_CONTINUATION_LINE_P (row))) 1240 if (bot_ind_max_y >= 0)
1241 right_offset = bot_ind_max_y - (row->y + row->visible_height);
1242 }
1243 else if (row->continued_p)
1104 right = RIGHT_FRINGE (4, Qcontinuation, 0); 1244 right = RIGHT_FRINGE (4, Qcontinuation, 0);
1105 else if (row->indicate_top_line_p && EQ (arrow_top, Qright)) 1245 else if (row->indicate_top_line_p && EQ (arrow_top, Qright))
1106 right = RIGHT_FRINGE (6, Qup, 0); 1246 {
1247 right = RIGHT_FRINGE (6, Qup, 0);
1248 if (top_ind_min_y >= 0)
1249 right_offset = top_ind_min_y - row->y;
1250 }
1107 else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qright)) 1251 else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qright))
1108 right = RIGHT_FRINGE (7, Qdown, 0); 1252 {
1253 right = RIGHT_FRINGE (7, Qdown, 0);
1254 if (bot_ind_max_y >= 0)
1255 right_offset = bot_ind_max_y - (row->y + row->visible_height);
1256 }
1109 else if (row->indicate_empty_line_p && EQ (empty_pos, Qright)) 1257 else if (row->indicate_empty_line_p && EQ (empty_pos, Qright))
1110 right = RIGHT_FRINGE (5, Qempty_line, 0); 1258 right = RIGHT_FRINGE (5, Qempty_line, 0);
1111 else 1259 else
@@ -1118,6 +1266,8 @@ update_window_fringes (struct window *w, int keep_current_p)
1118 || right != cur->right_fringe_bitmap 1266 || right != cur->right_fringe_bitmap
1119 || left_face_id != cur->left_fringe_face_id 1267 || left_face_id != cur->left_fringe_face_id
1120 || right_face_id != cur->right_fringe_face_id 1268 || right_face_id != cur->right_fringe_face_id
1269 || left_offset != cur->left_fringe_offset
1270 || right_offset != cur->right_fringe_offset
1121 || cur->redraw_fringe_bitmaps_p) 1271 || cur->redraw_fringe_bitmaps_p)
1122 { 1272 {
1123 redraw_p = row->redraw_fringe_bitmaps_p = 1; 1273 redraw_p = row->redraw_fringe_bitmaps_p = 1;
@@ -1128,6 +1278,8 @@ update_window_fringes (struct window *w, int keep_current_p)
1128 cur->right_fringe_bitmap = right; 1278 cur->right_fringe_bitmap = right;
1129 cur->left_fringe_face_id = left_face_id; 1279 cur->left_fringe_face_id = left_face_id;
1130 cur->right_fringe_face_id = right_face_id; 1280 cur->right_fringe_face_id = right_face_id;
1281 cur->left_fringe_offset = left_offset;
1282 cur->right_fringe_offset = right_offset;
1131 } 1283 }
1132 } 1284 }
1133 1285
@@ -1144,9 +1296,8 @@ update_window_fringes (struct window *w, int keep_current_p)
1144 row->right_fringe_bitmap = right; 1296 row->right_fringe_bitmap = right;
1145 row->left_fringe_face_id = left_face_id; 1297 row->left_fringe_face_id = left_face_id;
1146 row->right_fringe_face_id = right_face_id; 1298 row->right_fringe_face_id = right_face_id;
1147 1299 row->left_fringe_offset = left_offset;
1148 if (rn > 0 && row->redraw_fringe_bitmaps_p) 1300 row->right_fringe_offset = right_offset;
1149 row[-1].redraw_fringe_bitmaps_p = cur[-1].redraw_fringe_bitmaps_p = 1;
1150 } 1301 }
1151 1302
1152 return redraw_p && !keep_current_p; 1303 return redraw_p && !keep_current_p;
diff --git a/src/image.c b/src/image.c
index 064278eebbc..6e75921414b 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1053,6 +1053,10 @@ free_image (struct frame *f, struct image *img)
1053 /* Free resources, then free IMG. */ 1053 /* Free resources, then free IMG. */
1054 img->type->free (f, img); 1054 img->type->free (f, img);
1055 xfree (img); 1055 xfree (img);
1056
1057 /* As display glyphs may still be referring to the image ID, we
1058 must garbage the frame (Bug#6426). */
1059 SET_FRAME_GARBAGED (f);
1056 } 1060 }
1057} 1061}
1058 1062
diff --git a/src/insdel.c b/src/insdel.c
index 8c6e8f6364d..8b0b2f7ab01 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1628,7 +1628,7 @@ replace_range (EMACS_INT from, EMACS_INT to, Lisp_Object new,
1628void 1628void
1629replace_range_2 (EMACS_INT from, EMACS_INT from_byte, 1629replace_range_2 (EMACS_INT from, EMACS_INT from_byte,
1630 EMACS_INT to, EMACS_INT to_byte, 1630 EMACS_INT to, EMACS_INT to_byte,
1631 char *ins, EMACS_INT inschars, EMACS_INT insbytes, 1631 const char *ins, EMACS_INT inschars, EMACS_INT insbytes,
1632 int markers) 1632 int markers)
1633{ 1633{
1634 EMACS_INT nbytes_del, nchars_del; 1634 EMACS_INT nbytes_del, nchars_del;
diff --git a/src/keyboard.c b/src/keyboard.c
index 6ea0b90b9b4..bf3a01fc481 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -42,7 +42,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
42#include "puresize.h" 42#include "puresize.h"
43#include "systime.h" 43#include "systime.h"
44#include "atimer.h" 44#include "atimer.h"
45#include <setjmp.h> 45#include "process.h"
46#include <errno.h> 46#include <errno.h>
47 47
48#ifdef HAVE_GTK_AND_PTHREAD 48#ifdef HAVE_GTK_AND_PTHREAD
@@ -1238,7 +1238,7 @@ cmd_error (Lisp_Object data)
1238 string. */ 1238 string. */
1239 1239
1240void 1240void
1241cmd_error_internal (Lisp_Object data, char *context) 1241cmd_error_internal (Lisp_Object data, const char *context)
1242{ 1242{
1243 struct frame *sf = SELECTED_FRAME (); 1243 struct frame *sf = SELECTED_FRAME ();
1244 1244
@@ -9000,48 +9000,48 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9000 int dont_downcase_last, int can_return_switch_frame, 9000 int dont_downcase_last, int can_return_switch_frame,
9001 int fix_current_buffer) 9001 int fix_current_buffer)
9002{ 9002{
9003 volatile Lisp_Object from_string; 9003 Lisp_Object from_string;
9004 volatile int count = SPECPDL_INDEX (); 9004 int count = SPECPDL_INDEX ();
9005 9005
9006 /* How many keys there are in the current key sequence. */ 9006 /* How many keys there are in the current key sequence. */
9007 volatile int t; 9007 int t;
9008 9008
9009 /* The length of the echo buffer when we started reading, and 9009 /* The length of the echo buffer when we started reading, and
9010 the length of this_command_keys when we started reading. */ 9010 the length of this_command_keys when we started reading. */
9011 volatile int echo_start; 9011 int echo_start;
9012 volatile int keys_start; 9012 int keys_start;
9013 9013
9014 /* The number of keymaps we're scanning right now, and the number of 9014 /* The number of keymaps we're scanning right now, and the number of
9015 keymaps we have allocated space for. */ 9015 keymaps we have allocated space for. */
9016 volatile int nmaps; 9016 int nmaps;
9017 volatile int nmaps_allocated = 0; 9017 int nmaps_allocated = 0;
9018 9018
9019 /* defs[0..nmaps-1] are the definitions of KEYBUF[0..t-1] in 9019 /* defs[0..nmaps-1] are the definitions of KEYBUF[0..t-1] in
9020 the current keymaps. */ 9020 the current keymaps. */
9021 Lisp_Object *volatile defs = NULL; 9021 Lisp_Object *defs = NULL;
9022 9022
9023 /* submaps[0..nmaps-1] are the prefix definitions of KEYBUF[0..t-1] 9023 /* submaps[0..nmaps-1] are the prefix definitions of KEYBUF[0..t-1]
9024 in the current keymaps, or nil where it is not a prefix. */ 9024 in the current keymaps, or nil where it is not a prefix. */
9025 Lisp_Object *volatile submaps = NULL; 9025 Lisp_Object *submaps = NULL;
9026 9026
9027 /* The local map to start out with at start of key sequence. */ 9027 /* The local map to start out with at start of key sequence. */
9028 volatile Lisp_Object orig_local_map; 9028 Lisp_Object orig_local_map;
9029 9029
9030 /* The map from the `keymap' property to start out with at start of 9030 /* The map from the `keymap' property to start out with at start of
9031 key sequence. */ 9031 key sequence. */
9032 volatile Lisp_Object orig_keymap; 9032 Lisp_Object orig_keymap;
9033 9033
9034 /* 1 if we have already considered switching to the local-map property 9034 /* 1 if we have already considered switching to the local-map property
9035 of the place where a mouse click occurred. */ 9035 of the place where a mouse click occurred. */
9036 volatile int localized_local_map = 0; 9036 int localized_local_map = 0;
9037 9037
9038 /* The index in submaps[] of the first keymap that has a binding for 9038 /* The index in submaps[] of the first keymap that has a binding for
9039 this key sequence. In other words, the lowest i such that 9039 this key sequence. In other words, the lowest i such that
9040 submaps[i] is non-nil. */ 9040 submaps[i] is non-nil. */
9041 volatile int first_binding; 9041 int first_binding;
9042 /* Index of the first key that has no binding. 9042 /* Index of the first key that has no binding.
9043 It is useless to try fkey.start larger than that. */ 9043 It is useless to try fkey.start larger than that. */
9044 volatile int first_unbound; 9044 int first_unbound;
9045 9045
9046 /* If t < mock_input, then KEYBUF[t] should be read as the next 9046 /* If t < mock_input, then KEYBUF[t] should be read as the next
9047 input key. 9047 input key.
@@ -9056,7 +9056,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9056 restart_sequence; the loop will read keys from keybuf up until 9056 restart_sequence; the loop will read keys from keybuf up until
9057 mock_input, thus rebuilding the state; and then it will resume 9057 mock_input, thus rebuilding the state; and then it will resume
9058 reading characters from the keyboard. */ 9058 reading characters from the keyboard. */
9059 volatile int mock_input = 0; 9059 int mock_input = 0;
9060 9060
9061 /* If the sequence is unbound in submaps[], then 9061 /* If the sequence is unbound in submaps[], then
9062 keybuf[fkey.start..fkey.end-1] is a prefix in Vfunction_key_map, 9062 keybuf[fkey.start..fkey.end-1] is a prefix in Vfunction_key_map,
@@ -9066,28 +9066,28 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9066 should hold off until t reaches them. We do this when we've just 9066 should hold off until t reaches them. We do this when we've just
9067 recognized a function key, to avoid searching for the function 9067 recognized a function key, to avoid searching for the function
9068 key's again in Vfunction_key_map. */ 9068 key's again in Vfunction_key_map. */
9069 volatile keyremap fkey; 9069 keyremap fkey;
9070 9070
9071 /* Likewise, for key_translation_map and input-decode-map. */ 9071 /* Likewise, for key_translation_map and input-decode-map. */
9072 volatile keyremap keytran, indec; 9072 keyremap keytran, indec;
9073 9073
9074 /* Non-zero if we are trying to map a key by changing an upper-case 9074 /* Non-zero if we are trying to map a key by changing an upper-case
9075 letter to lower case, or a shifted function key to an unshifted 9075 letter to lower case, or a shifted function key to an unshifted
9076 one. */ 9076 one. */
9077 volatile int shift_translated = 0; 9077 int shift_translated = 0;
9078 9078
9079 /* If we receive a `switch-frame' or `select-window' event in the middle of 9079 /* If we receive a `switch-frame' or `select-window' event in the middle of
9080 a key sequence, we put it off for later. 9080 a key sequence, we put it off for later.
9081 While we're reading, we keep the event here. */ 9081 While we're reading, we keep the event here. */
9082 volatile Lisp_Object delayed_switch_frame; 9082 Lisp_Object delayed_switch_frame;
9083 9083
9084 /* See the comment below... */ 9084 /* See the comment below... */
9085#if defined (GOBBLE_FIRST_EVENT) 9085#if defined (GOBBLE_FIRST_EVENT)
9086 Lisp_Object first_event; 9086 Lisp_Object first_event;
9087#endif 9087#endif
9088 9088
9089 volatile Lisp_Object original_uppercase; 9089 Lisp_Object original_uppercase;
9090 volatile int original_uppercase_position = -1; 9090 int original_uppercase_position = -1;
9091 9091
9092 /* Gets around Microsoft compiler limitations. */ 9092 /* Gets around Microsoft compiler limitations. */
9093 int dummyflag = 0; 9093 int dummyflag = 0;
@@ -9095,7 +9095,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9095 struct buffer *starting_buffer; 9095 struct buffer *starting_buffer;
9096 9096
9097 /* List of events for which a fake prefix key has been generated. */ 9097 /* List of events for which a fake prefix key has been generated. */
9098 volatile Lisp_Object fake_prefixed_keys = Qnil; 9098 Lisp_Object fake_prefixed_keys = Qnil;
9099 9099
9100#if defined (GOBBLE_FIRST_EVENT) 9100#if defined (GOBBLE_FIRST_EVENT)
9101 int junk; 9101 int junk;
@@ -9252,13 +9252,13 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9252 (say, a mouse click on the mode line which is being treated 9252 (say, a mouse click on the mode line which is being treated
9253 as [mode-line (mouse-...)], then we backtrack to this point 9253 as [mode-line (mouse-...)], then we backtrack to this point
9254 of keybuf. */ 9254 of keybuf. */
9255 volatile int last_real_key_start; 9255 int last_real_key_start;
9256 9256
9257 /* These variables are analogous to echo_start and keys_start; 9257 /* These variables are analogous to echo_start and keys_start;
9258 while those allow us to restart the entire key sequence, 9258 while those allow us to restart the entire key sequence,
9259 echo_local_start and keys_local_start allow us to throw away 9259 echo_local_start and keys_local_start allow us to throw away
9260 just one key. */ 9260 just one key. */
9261 volatile int echo_local_start, keys_local_start, local_first_binding; 9261 int echo_local_start, keys_local_start, local_first_binding;
9262 9262
9263 eassert (indec.end == t || (indec.end > t && indec.end <= mock_input)); 9263 eassert (indec.end == t || (indec.end > t && indec.end <= mock_input));
9264 eassert (indec.start <= indec.end); 9264 eassert (indec.start <= indec.end);
diff --git a/src/keyboard.h b/src/keyboard.h
index 98c735023d7..a6eb750c373 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -468,7 +468,6 @@ extern void clear_waiting_for_input (void);
468extern void swallow_events (int); 468extern void swallow_events (int);
469extern int help_char_p (Lisp_Object); 469extern int help_char_p (Lisp_Object);
470extern void quit_throw_to_read_char (void) NO_RETURN; 470extern void quit_throw_to_read_char (void) NO_RETURN;
471extern void cmd_error_internal (Lisp_Object, char *);
472extern int lucid_event_type_list_p (Lisp_Object); 471extern int lucid_event_type_list_p (Lisp_Object);
473extern void kbd_buffer_store_event (struct input_event *); 472extern void kbd_buffer_store_event (struct input_event *);
474extern void kbd_buffer_store_event_hold (struct input_event *, 473extern void kbd_buffer_store_event_hold (struct input_event *,
diff --git a/src/keymap.c b/src/keymap.c
index 1245caf3b9b..40005a51008 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1126,11 +1126,13 @@ DEFUN ("define-key", Fdefine_key, Sdefine_key, 3, 3, 0,
1126 doc: /* In KEYMAP, define key sequence KEY as DEF. 1126 doc: /* In KEYMAP, define key sequence KEY as DEF.
1127KEYMAP is a keymap. 1127KEYMAP is a keymap.
1128 1128
1129KEY is a string or a vector of symbols and characters meaning a 1129KEY is a string or a vector of symbols and characters, representing a
1130sequence of keystrokes and events. Non-ASCII characters with codes 1130sequence of keystrokes and events. Non-ASCII characters with codes
1131above 127 (such as ISO Latin-1) can be included if you use a vector. 1131above 127 (such as ISO Latin-1) can be represented by vectors.
1132Using [t] for KEY creates a default definition, which applies to any 1132Two types of vector have special meanings:
1133event type that has no other definition in this keymap. 1133 [remap COMMAND] remaps any key binding for COMMAND.
1134 [t] creates a default definition, which applies to any event with no
1135 other definition in KEYMAP.
1134 1136
1135DEF is anything that can be a key's definition: 1137DEF is anything that can be a key's definition:
1136 nil (means key is undefined in this keymap), 1138 nil (means key is undefined in this keymap),
diff --git a/src/lisp.h b/src/lisp.h
index 02c9ed03e13..656e8fbb624 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -21,6 +21,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
21#ifndef EMACS_LISP_H 21#ifndef EMACS_LISP_H
22#define EMACS_LISP_H 22#define EMACS_LISP_H
23 23
24#include <stdarg.h>
25#include <stddef.h>
26
24/* Use the configure flag --enable-checking[=LIST] to enable various 27/* Use the configure flag --enable-checking[=LIST] to enable various
25 types of run time checks for Lisp objects. */ 28 types of run time checks for Lisp objects. */
26 29
@@ -782,13 +785,6 @@ struct Lisp_String
782 unsigned char *data; 785 unsigned char *data;
783 }; 786 };
784 787
785#ifdef offsetof
786#define OFFSETOF(type,field) offsetof(type,field)
787#else
788#define OFFSETOF(type,field) \
789 ((int)((char*)&((type*)0)->field - (char*)0))
790#endif
791
792struct Lisp_Vector 788struct Lisp_Vector
793 { 789 {
794 EMACS_UINT size; 790 EMACS_UINT size;
@@ -799,7 +795,7 @@ struct Lisp_Vector
799/* If a struct is made to look like a vector, this macro returns the length 795/* If a struct is made to look like a vector, this macro returns the length
800 of the shortest vector that would hold that struct. */ 796 of the shortest vector that would hold that struct. */
801#define VECSIZE(type) ((sizeof (type) \ 797#define VECSIZE(type) ((sizeof (type) \
802 - OFFSETOF (struct Lisp_Vector, contents[0]) \ 798 - offsetof (struct Lisp_Vector, contents[0]) \
803 + sizeof(Lisp_Object) - 1) /* round up */ \ 799 + sizeof(Lisp_Object) - 1) /* round up */ \
804 / sizeof (Lisp_Object)) 800 / sizeof (Lisp_Object))
805 801
@@ -807,7 +803,7 @@ struct Lisp_Vector
807 at the end and we need to compute the number of Lisp_Object fields (the 803 at the end and we need to compute the number of Lisp_Object fields (the
808 ones that the GC needs to trace). */ 804 ones that the GC needs to trace). */
809#define PSEUDOVECSIZE(type, nonlispfield) \ 805#define PSEUDOVECSIZE(type, nonlispfield) \
810 ((OFFSETOF(type, nonlispfield) - OFFSETOF(struct Lisp_Vector, contents[0])) \ 806 ((offsetof(type, nonlispfield) - offsetof(struct Lisp_Vector, contents[0])) \
811 / sizeof (Lisp_Object)) 807 / sizeof (Lisp_Object))
812 808
813/* A char-table is a kind of vectorlike, with contents are like a 809/* A char-table is a kind of vectorlike, with contents are like a
@@ -2614,7 +2610,7 @@ extern void adjust_markers_for_delete (EMACS_INT, EMACS_INT,
2614 EMACS_INT, EMACS_INT); 2610 EMACS_INT, EMACS_INT);
2615extern void replace_range (EMACS_INT, EMACS_INT, Lisp_Object, int, int, int); 2611extern void replace_range (EMACS_INT, EMACS_INT, Lisp_Object, int, int, int);
2616extern void replace_range_2 (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT, 2612extern void replace_range_2 (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT,
2617 char *, EMACS_INT, EMACS_INT, int); 2613 const char *, EMACS_INT, EMACS_INT, int);
2618extern void syms_of_insdel (void); 2614extern void syms_of_insdel (void);
2619 2615
2620/* Defined in dispnew.c */ 2616/* Defined in dispnew.c */
@@ -2648,16 +2644,16 @@ extern void restore_message (void);
2648extern Lisp_Object current_message (void); 2644extern Lisp_Object current_message (void);
2649extern void set_message (const char *s, Lisp_Object, int, int); 2645extern void set_message (const char *s, Lisp_Object, int, int);
2650extern void clear_message (int, int); 2646extern void clear_message (int, int);
2651extern void message (/* char *, ... */); 2647extern void message (const char *, ...);
2652extern void message_nolog (/* char *, ... */); 2648extern void message_nolog (const char *, ...);
2653extern void message1 (char *); 2649extern void message1 (const char *);
2654extern void message1_nolog (char *); 2650extern void message1_nolog (const char *);
2655extern void message2 (const char *, int, int); 2651extern void message2 (const char *, int, int);
2656extern void message2_nolog (const char *, int, int); 2652extern void message2_nolog (const char *, int, int);
2657extern void message3 (Lisp_Object, int, int); 2653extern void message3 (Lisp_Object, int, int);
2658extern void message3_nolog (Lisp_Object, int, int); 2654extern void message3_nolog (Lisp_Object, int, int);
2659extern void message_dolog (const char *, int, int, int); 2655extern void message_dolog (const char *, int, int, int);
2660extern void message_with_string (char *, Lisp_Object, int); 2656extern void message_with_string (const char *, Lisp_Object, int);
2661extern void message_log_maybe_newline (void); 2657extern void message_log_maybe_newline (void);
2662extern void update_echo_area (void); 2658extern void update_echo_area (void);
2663extern void truncate_echo_area (int); 2659extern void truncate_echo_area (int);
@@ -2678,14 +2674,14 @@ extern int pos_visible_p (struct window *, int, int *,
2678extern void syms_of_xsettings (void); 2674extern void syms_of_xsettings (void);
2679 2675
2680/* Defined in vm-limit.c. */ 2676/* Defined in vm-limit.c. */
2681extern void memory_warnings (POINTER_TYPE *, void (*warnfun) (char*)); 2677extern void memory_warnings (POINTER_TYPE *, void (*warnfun) (const char *));
2682 2678
2683/* Defined in alloc.c */ 2679/* Defined in alloc.c */
2684extern void check_pure_size (void); 2680extern void check_pure_size (void);
2685extern void allocate_string_data (struct Lisp_String *, int, int); 2681extern void allocate_string_data (struct Lisp_String *, int, int);
2686extern void reset_malloc_hooks (void); 2682extern void reset_malloc_hooks (void);
2687extern void uninterrupt_malloc (void); 2683extern void uninterrupt_malloc (void);
2688extern void malloc_warning (char *); 2684extern void malloc_warning (const char *);
2689extern void memory_full (void) NO_RETURN; 2685extern void memory_full (void) NO_RETURN;
2690extern void buffer_memory_full (void) NO_RETURN; 2686extern void buffer_memory_full (void) NO_RETURN;
2691extern int survives_gc_p (Lisp_Object); 2687extern int survives_gc_p (Lisp_Object);
@@ -2789,16 +2785,17 @@ extern Lisp_Object Qexternal_debugging_output;
2789extern void temp_output_buffer_setup (const char *); 2785extern void temp_output_buffer_setup (const char *);
2790extern int print_level, print_escape_newlines; 2786extern int print_level, print_escape_newlines;
2791extern Lisp_Object Qprint_escape_newlines; 2787extern Lisp_Object Qprint_escape_newlines;
2792extern void write_string (char *, int); 2788extern void write_string (const char *, int);
2793extern void write_string_1 (char *, int, Lisp_Object); 2789extern void write_string_1 (const char *, int, Lisp_Object);
2794extern void print_error_message (Lisp_Object, Lisp_Object, char *, Lisp_Object); 2790extern void print_error_message (Lisp_Object, Lisp_Object, const char *,
2791 Lisp_Object);
2795extern Lisp_Object internal_with_output_to_temp_buffer 2792extern Lisp_Object internal_with_output_to_temp_buffer
2796 (const char *, Lisp_Object (*) (Lisp_Object), Lisp_Object); 2793 (const char *, Lisp_Object (*) (Lisp_Object), Lisp_Object);
2797extern void float_to_string (unsigned char *, double); 2794extern void float_to_string (unsigned char *, double);
2798extern void syms_of_print (void); 2795extern void syms_of_print (void);
2799 2796
2800/* Defined in doprnt.c */ 2797/* Defined in doprnt.c */
2801extern int doprnt (char *, int, char *, char *, int, char **); 2798extern int doprnt (char *, int, const char *, const char *, va_list);
2802 2799
2803/* Defined in lread.c */ 2800/* Defined in lread.c */
2804extern Lisp_Object Qvariable_documentation, Qstandard_input; 2801extern Lisp_Object Qvariable_documentation, Qstandard_input;
@@ -2817,7 +2814,7 @@ EXFUN (Feval_region, 4);
2817extern Lisp_Object check_obarray (Lisp_Object); 2814extern Lisp_Object check_obarray (Lisp_Object);
2818extern Lisp_Object intern (const char *); 2815extern Lisp_Object intern (const char *);
2819extern Lisp_Object intern_c_string (const char *); 2816extern Lisp_Object intern_c_string (const char *);
2820extern Lisp_Object make_symbol (char *); 2817extern Lisp_Object make_symbol (const char *);
2821extern Lisp_Object oblookup (Lisp_Object, const char *, int, int); 2818extern Lisp_Object oblookup (Lisp_Object, const char *, int, int);
2822#define LOADHIST_ATTACH(x) \ 2819#define LOADHIST_ATTACH(x) \
2823 do { \ 2820 do { \
@@ -2827,10 +2824,10 @@ extern Lisp_Object Vcurrent_load_list;
2827extern Lisp_Object Vload_history, Vload_suffixes, Vload_file_rep_suffixes; 2824extern Lisp_Object Vload_history, Vload_suffixes, Vload_file_rep_suffixes;
2828extern int openp (Lisp_Object, Lisp_Object, Lisp_Object, 2825extern int openp (Lisp_Object, Lisp_Object, Lisp_Object,
2829 Lisp_Object *, Lisp_Object); 2826 Lisp_Object *, Lisp_Object);
2830extern int isfloat_string (char *, int); 2827extern int isfloat_string (const char *, int);
2831extern void map_obarray (Lisp_Object, void (*) (Lisp_Object, Lisp_Object), 2828extern void map_obarray (Lisp_Object, void (*) (Lisp_Object, Lisp_Object),
2832 Lisp_Object); 2829 Lisp_Object);
2833extern void dir_warning (char *, Lisp_Object); 2830extern void dir_warning (const char *, Lisp_Object);
2834extern void close_load_descs (void); 2831extern void close_load_descs (void);
2835extern void init_obarray (void); 2832extern void init_obarray (void);
2836extern void init_lread (void); 2833extern void init_lread (void);
@@ -2883,7 +2880,7 @@ extern void xsignal0 (Lisp_Object) NO_RETURN;
2883extern void xsignal1 (Lisp_Object, Lisp_Object) NO_RETURN; 2880extern void xsignal1 (Lisp_Object, Lisp_Object) NO_RETURN;
2884extern void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN; 2881extern void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN;
2885extern void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN; 2882extern void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN;
2886extern void signal_error (char *, Lisp_Object) NO_RETURN; 2883extern void signal_error (const char *, Lisp_Object) NO_RETURN;
2887EXFUN (Fautoload, 5); 2884EXFUN (Fautoload, 5);
2888EXFUN (Fcommandp, 2); 2885EXFUN (Fcommandp, 2);
2889EXFUN (Feval, 1); 2886EXFUN (Feval, 1);
@@ -2910,7 +2907,7 @@ extern Lisp_Object internal_condition_case_n (Lisp_Object (*) (int, Lisp_Object
2910extern void specbind (Lisp_Object, Lisp_Object); 2907extern void specbind (Lisp_Object, Lisp_Object);
2911extern void record_unwind_protect (Lisp_Object (*) (Lisp_Object), Lisp_Object); 2908extern void record_unwind_protect (Lisp_Object (*) (Lisp_Object), Lisp_Object);
2912extern Lisp_Object unbind_to (int, Lisp_Object); 2909extern Lisp_Object unbind_to (int, Lisp_Object);
2913extern void error (/* char *, ... */) NO_RETURN; 2910extern void error (const char *, ...) NO_RETURN;
2914extern void do_autoload (Lisp_Object, Lisp_Object); 2911extern void do_autoload (Lisp_Object, Lisp_Object);
2915extern Lisp_Object un_autoload (Lisp_Object); 2912extern Lisp_Object un_autoload (Lisp_Object);
2916EXFUN (Ffetch_bytecode, 1); 2913EXFUN (Ffetch_bytecode, 1);
@@ -2949,7 +2946,7 @@ EXFUN (Fbolp, 0);
2949EXFUN (Fbobp, 0); 2946EXFUN (Fbobp, 0);
2950EXFUN (Fformat, MANY); 2947EXFUN (Fformat, MANY);
2951EXFUN (Fmessage, MANY); 2948EXFUN (Fmessage, MANY);
2952extern Lisp_Object format2 (char *, Lisp_Object, Lisp_Object); 2949extern Lisp_Object format2 (const char *, Lisp_Object, Lisp_Object);
2953EXFUN (Fbuffer_substring, 2); 2950EXFUN (Fbuffer_substring, 2);
2954EXFUN (Fbuffer_string, 0); 2951EXFUN (Fbuffer_string, 0);
2955extern Lisp_Object save_excursion_save (void); 2952extern Lisp_Object save_excursion_save (void);
@@ -2975,7 +2972,7 @@ EXFUN (Fdelete_field, 1);
2975EXFUN (Ffield_beginning, 3); 2972EXFUN (Ffield_beginning, 3);
2976EXFUN (Ffield_end, 3); 2973EXFUN (Ffield_end, 3);
2977EXFUN (Ffield_string_no_properties, 1); 2974EXFUN (Ffield_string_no_properties, 1);
2978extern void set_time_zone_rule (char *); 2975extern void set_time_zone_rule (const char *);
2979 2976
2980/* Defined in buffer.c */ 2977/* Defined in buffer.c */
2981extern int mouse_face_overlay_overlaps (Lisp_Object); 2978extern int mouse_face_overlay_overlaps (Lisp_Object);
@@ -3175,7 +3172,7 @@ extern int detect_input_pending (void);
3175extern int detect_input_pending_ignore_squeezables (void); 3172extern int detect_input_pending_ignore_squeezables (void);
3176extern int detect_input_pending_run_timers (int); 3173extern int detect_input_pending_run_timers (int);
3177extern void safe_run_hooks (Lisp_Object); 3174extern void safe_run_hooks (Lisp_Object);
3178extern void cmd_error_internal (Lisp_Object, char *); 3175extern void cmd_error_internal (Lisp_Object, const char *);
3179extern Lisp_Object command_loop_1 (void); 3176extern Lisp_Object command_loop_1 (void);
3180extern Lisp_Object recursive_edit_1 (void); 3177extern Lisp_Object recursive_edit_1 (void);
3181extern void record_auto_save (void); 3178extern void record_auto_save (void);
@@ -3239,7 +3236,7 @@ extern void frames_bury_buffer (Lisp_Object);
3239extern void syms_of_frame (void); 3236extern void syms_of_frame (void);
3240 3237
3241/* Defined in emacs.c */ 3238/* Defined in emacs.c */
3242extern Lisp_Object decode_env_path (char *, char *); 3239extern Lisp_Object decode_env_path (const char *, const char *);
3243extern Lisp_Object Vinvocation_name, Vinvocation_directory; 3240extern Lisp_Object Vinvocation_name, Vinvocation_directory;
3244extern Lisp_Object Vbefore_init_time, Vafter_init_time; 3241extern Lisp_Object Vbefore_init_time, Vafter_init_time;
3245extern Lisp_Object Vinstallation_directory; 3242extern Lisp_Object Vinstallation_directory;
@@ -3525,7 +3522,7 @@ extern void xfree (POINTER_TYPE *);
3525 3522
3526extern char *xstrdup (const char *); 3523extern char *xstrdup (const char *);
3527 3524
3528extern char *egetenv (char *); 3525extern char *egetenv (const char *);
3529 3526
3530/* Set up the name of the machine we're running on. */ 3527/* Set up the name of the machine we're running on. */
3531extern void init_system_name (void); 3528extern void init_system_name (void);
diff --git a/src/lread.c b/src/lread.c
index 42925f8ac09..79214936f4c 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -2316,28 +2316,28 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
2316 /* This is repetitive but fast and simple. */ 2316 /* This is repetitive but fast and simple. */
2317 params[param_count] = QCsize; 2317 params[param_count] = QCsize;
2318 params[param_count+1] = Fplist_get (tmp, Qsize); 2318 params[param_count+1] = Fplist_get (tmp, Qsize);
2319 if (!NILP (params[param_count+1])) 2319 if (!NILP (params[param_count + 1]))
2320 param_count+=2; 2320 param_count += 2;
2321 2321
2322 params[param_count] = QCtest; 2322 params[param_count] = QCtest;
2323 params[param_count+1] = Fplist_get (tmp, Qtest); 2323 params[param_count+1] = Fplist_get (tmp, Qtest);
2324 if (!NILP (params[param_count+1])) 2324 if (!NILP (params[param_count + 1]))
2325 param_count+=2; 2325 param_count += 2;
2326 2326
2327 params[param_count] = QCweakness; 2327 params[param_count] = QCweakness;
2328 params[param_count+1] = Fplist_get (tmp, Qweakness); 2328 params[param_count+1] = Fplist_get (tmp, Qweakness);
2329 if (!NILP (params[param_count+1])) 2329 if (!NILP (params[param_count + 1]))
2330 param_count+=2; 2330 param_count += 2;
2331 2331
2332 params[param_count] = QCrehash_size; 2332 params[param_count] = QCrehash_size;
2333 params[param_count+1] = Fplist_get (tmp, Qrehash_size); 2333 params[param_count+1] = Fplist_get (tmp, Qrehash_size);
2334 if (!NILP (params[param_count+1])) 2334 if (!NILP (params[param_count + 1]))
2335 param_count+=2; 2335 param_count += 2;
2336 2336
2337 params[param_count] = QCrehash_threshold; 2337 params[param_count] = QCrehash_threshold;
2338 params[param_count+1] = Fplist_get (tmp, Qrehash_threshold); 2338 params[param_count+1] = Fplist_get (tmp, Qrehash_threshold);
2339 if (!NILP (params[param_count+1])) 2339 if (!NILP (params[param_count + 1]))
2340 param_count+=2; 2340 param_count += 2;
2341 2341
2342 /* This is the hashtable data. */ 2342 /* This is the hashtable data. */
2343 data = Fplist_get (tmp, Qdata); 2343 data = Fplist_get (tmp, Qdata);
@@ -2358,6 +2358,8 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
2358 2358
2359 return ht; 2359 return ht;
2360 } 2360 }
2361 UNREAD (c);
2362 invalid_syntax ("#", 1);
2361 } 2363 }
2362 if (c == '^') 2364 if (c == '^')
2363 { 2365 {
@@ -2723,7 +2725,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
2723 2725
2724 ok = (next_next_char <= 040 2726 ok = (next_next_char <= 040
2725 || (next_next_char < 0200 2727 || (next_next_char < 0200
2726 && (index ("\"';([#?", next_next_char) 2728 && (strchr ("\"';([#?", next_next_char)
2727 || (!first_in_list && next_next_char == '`') 2729 || (!first_in_list && next_next_char == '`')
2728 || (new_backquote_flag && next_next_char == ',')))); 2730 || (new_backquote_flag && next_next_char == ','))));
2729 } 2731 }
@@ -2731,7 +2733,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
2731 { 2733 {
2732 ok = (next_char <= 040 2734 ok = (next_char <= 040
2733 || (next_char < 0200 2735 || (next_char < 0200
2734 && (index ("\"';()[]#?", next_char) 2736 && (strchr ("\"';()[]#?", next_char)
2735 || (!first_in_list && next_char == '`') 2737 || (!first_in_list && next_char == '`')
2736 || (new_backquote_flag && next_char == ',')))); 2738 || (new_backquote_flag && next_char == ','))));
2737 } 2739 }
@@ -2876,7 +2878,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
2876 2878
2877 if (next_char <= 040 2879 if (next_char <= 040
2878 || (next_char < 0200 2880 || (next_char < 0200
2879 && (index ("\"';([#?", next_char) 2881 && (strchr ("\"';([#?", next_char)
2880 || (!first_in_list && next_char == '`') 2882 || (!first_in_list && next_char == '`')
2881 || (new_backquote_flag && next_char == ',')))) 2883 || (new_backquote_flag && next_char == ','))))
2882 { 2884 {
@@ -2903,7 +2905,7 @@ read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
2903 while (c > 040 2905 while (c > 040
2904 && c != 0x8a0 /* NBSP */ 2906 && c != 0x8a0 /* NBSP */
2905 && (c >= 0200 2907 && (c >= 0200
2906 || (!index ("\"';()[]#", c) 2908 || (!strchr ("\"';()[]#", c)
2907 && !(!first_in_list && c == '`') 2909 && !(!first_in_list && c == '`')
2908 && !(new_backquote_flag && c == ',')))) 2910 && !(new_backquote_flag && c == ','))))
2909 { 2911 {
@@ -3188,11 +3190,10 @@ substitute_in_interval (INTERVAL interval, Lisp_Object arg)
3188#define EXP_INT 16 3190#define EXP_INT 16
3189 3191
3190int 3192int
3191isfloat_string (register char *cp, int ignore_trailing) 3193isfloat_string (const char *cp, int ignore_trailing)
3192{ 3194{
3193 register int state; 3195 int state;
3194 3196 const char *start = cp;
3195 char *start = cp;
3196 3197
3197 state = 0; 3198 state = 0;
3198 if (*cp == '+' || *cp == '-') 3199 if (*cp == '+' || *cp == '-')
@@ -3243,7 +3244,8 @@ isfloat_string (register char *cp, int ignore_trailing)
3243 } 3244 }
3244 3245
3245 return ((ignore_trailing 3246 return ((ignore_trailing
3246 || (*cp == 0) || (*cp == ' ') || (*cp == '\t') || (*cp == '\n') || (*cp == '\r') || (*cp == '\f')) 3247 || *cp == 0 || *cp == ' ' || *cp == '\t' || *cp == '\n'
3248 || *cp == '\r' || *cp == '\f')
3247 && (state == (LEAD_INT|DOT_CHAR|TRAIL_INT) 3249 && (state == (LEAD_INT|DOT_CHAR|TRAIL_INT)
3248 || state == (DOT_CHAR|TRAIL_INT) 3250 || state == (DOT_CHAR|TRAIL_INT)
3249 || state == (LEAD_INT|E_CHAR|EXP_INT) 3251 || state == (LEAD_INT|E_CHAR|EXP_INT)
@@ -3586,13 +3588,13 @@ intern_c_string (const char *str)
3586/* Create an uninterned symbol with name STR. */ 3588/* Create an uninterned symbol with name STR. */
3587 3589
3588Lisp_Object 3590Lisp_Object
3589make_symbol (char *str) 3591make_symbol (const char *str)
3590{ 3592{
3591 int len = strlen (str); 3593 int len = strlen (str);
3592 3594
3593 return Fmake_symbol ((!NILP (Vpurify_flag) 3595 return Fmake_symbol (!NILP (Vpurify_flag)
3594 ? make_pure_string (str, len, len, 0) 3596 ? make_pure_string (str, len, len, 0)
3595 : make_string (str, len))); 3597 : make_string (str, len));
3596} 3598}
3597 3599
3598DEFUN ("intern", Fintern, Sintern, 1, 2, 0, 3600DEFUN ("intern", Fintern, Sintern, 1, 2, 0,
@@ -4168,7 +4170,7 @@ init_lread (void)
4168 does not exist. Print it on stderr and put it in *Messages*. */ 4170 does not exist. Print it on stderr and put it in *Messages*. */
4169 4171
4170void 4172void
4171dir_warning (char *format, Lisp_Object dirname) 4173dir_warning (const char *format, Lisp_Object dirname)
4172{ 4174{
4173 char *buffer 4175 char *buffer
4174 = (char *) alloca (SCHARS (dirname) + strlen (format) + 5); 4176 = (char *) alloca (SCHARS (dirname) + strlen (format) + 5);
diff --git a/src/msdos.c b/src/msdos.c
index 668243ef422..8bfdce22fcd 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -2074,10 +2074,6 @@ IT_set_frame_parameters (struct frame *f, Lisp_Object alist)
2074 unsigned long orig_fg, orig_bg; 2074 unsigned long orig_fg, orig_bg;
2075 Lisp_Object frame_bg, frame_fg; 2075 Lisp_Object frame_bg, frame_fg;
2076 struct tty_display_info *tty = FRAME_TTY (f); 2076 struct tty_display_info *tty = FRAME_TTY (f);
2077 extern Lisp_Object Qmenu_bar_lines;
2078 extern Lisp_Object Vmenu_bar_mode;
2079 int menu_bar_lines_defined =
2080 !NILP (Fassq (Qmenu_bar_lines, Vdefault_frame_alist));
2081 2077
2082 /* If we are creating a new frame, begin with the original screen colors 2078 /* If we are creating a new frame, begin with the original screen colors
2083 used for the initial frame. */ 2079 used for the initial frame. */
@@ -2116,8 +2112,6 @@ IT_set_frame_parameters (struct frame *f, Lisp_Object alist)
2116 2112
2117 if (EQ (prop, Qreverse)) 2113 if (EQ (prop, Qreverse))
2118 reverse = EQ (val, Qt); 2114 reverse = EQ (val, Qt);
2119 else if (!menu_bar_lines_defined && EQ (prop, Qmenu_bar_lines))
2120 menu_bar_lines_defined = 1;
2121 } 2115 }
2122 2116
2123 if (tty->termscript && reverse) 2117 if (tty->termscript && reverse)
@@ -2217,18 +2211,6 @@ IT_set_frame_parameters (struct frame *f, Lisp_Object alist)
2217 store_frame_param (f, prop, val); 2211 store_frame_param (f, prop, val);
2218 } 2212 }
2219 2213
2220 /* If menu-bar-lines is neither in the frame parameters nor in
2221 default-frame-alist, set it according to menu-bar-mode. */
2222 if (!menu_bar_lines_defined)
2223 {
2224 store_frame_param (f, Qmenu_bar_lines,
2225 NILP (Vmenu_bar_mode)
2226 ? make_number (0) : make_number (1));
2227 if (tty->termscript)
2228 fprintf (tty->termscript, "<MENU BAR LINES DEFAULTED: %d\n",
2229 !NILP (Vmenu_bar_mode));
2230 }
2231
2232 /* If they specified "reverse", but not the colors, we need to swap 2214 /* If they specified "reverse", but not the colors, we need to swap
2233 the current frame colors. */ 2215 the current frame colors. */
2234 if (reverse) 2216 if (reverse)
@@ -4719,13 +4701,6 @@ abort (void)
4719} 4701}
4720#endif 4702#endif
4721 4703
4722/* The following variables are required so that cus-start.el won't
4723 complain about unbound variables. */
4724#ifndef subprocesses
4725/* Nonzero means delete a process right away if it exits (process.c). */
4726static int delete_exited_processes;
4727#endif
4728
4729void 4704void
4730syms_of_msdos (void) 4705syms_of_msdos (void)
4731{ 4706{
@@ -4744,12 +4719,6 @@ This variable is used only by MS-DOS terminals. */);
4744 Vdos_unsupported_char_glyph = make_number ('\177'); 4719 Vdos_unsupported_char_glyph = make_number ('\177');
4745 4720
4746#endif 4721#endif
4747#ifndef subprocesses
4748 DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,
4749 doc: /* *Non-nil means delete processes immediately when they exit.
4750A value of nil means don't delete them until `list-processes' is run. */);
4751 delete_exited_processes = 0;
4752#endif
4753 4722
4754 defsubr (&Srecent_doskeys); 4723 defsubr (&Srecent_doskeys);
4755 defsubr (&Smsdos_long_file_names); 4724 defsubr (&Smsdos_long_file_names);
diff --git a/src/nsterm.m b/src/nsterm.m
index 62f1c0bcd57..58245f4aebf 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2177,20 +2177,7 @@ ns_draw_fringe_bitmap (struct window *w, struct glyph_row *row,
2177 2177
2178 /* Must clip because of partially visible lines. */ 2178 /* Must clip because of partially visible lines. */
2179 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); 2179 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
2180 if (p->y < rowY) 2180 ns_clip_to_row (w, row, -1, YES);
2181 {
2182 /* Adjust position of "bottom aligned" bitmap on partially
2183 visible last row. */
2184 int oldY = row->y;
2185 int oldVH = row->visible_height;
2186 row->visible_height = p->h;
2187 row->y -= rowY - p->y;
2188 ns_clip_to_row (w, row, -1, NO);
2189 row->y = oldY;
2190 row->visible_height = oldVH;
2191 }
2192 else
2193 ns_clip_to_row (w, row, -1, YES);
2194 2181
2195 if (p->bx >= 0 && !p->overlay_p) 2182 if (p->bx >= 0 && !p->overlay_p)
2196 { 2183 {
diff --git a/src/print.c b/src/print.c
index 0a0e6c7452c..97f6494678f 100644
--- a/src/print.c
+++ b/src/print.c
@@ -540,7 +540,7 @@ PRINTCHARFUN defaults to the value of `standard-output' (which see). */)
540 Do not use this on the contents of a Lisp string. */ 540 Do not use this on the contents of a Lisp string. */
541 541
542void 542void
543write_string (char *data, int size) 543write_string (const char *data, int size)
544{ 544{
545 PRINTDECLARE; 545 PRINTDECLARE;
546 Lisp_Object printcharfun; 546 Lisp_Object printcharfun;
@@ -557,7 +557,7 @@ write_string (char *data, int size)
557 Do not use this on the contents of a Lisp string. */ 557 Do not use this on the contents of a Lisp string. */
558 558
559void 559void
560write_string_1 (char *data, int size, Lisp_Object printcharfun) 560write_string_1 (const char *data, int size, Lisp_Object printcharfun)
561{ 561{
562 PRINTDECLARE; 562 PRINTDECLARE;
563 563
@@ -1007,7 +1007,8 @@ error message is constructed. */)
1007 CALLER is the Lisp function inside which the error was signaled. */ 1007 CALLER is the Lisp function inside which the error was signaled. */
1008 1008
1009void 1009void
1010print_error_message (Lisp_Object data, Lisp_Object stream, char *context, Lisp_Object caller) 1010print_error_message (Lisp_Object data, Lisp_Object stream, const char *context,
1011 Lisp_Object caller)
1011{ 1012{
1012 Lisp_Object errname, errmsg, file_error, tail; 1013 Lisp_Object errname, errmsg, file_error, tail;
1013 struct gcpro gcpro1; 1014 struct gcpro gcpro1;
diff --git a/src/process.c b/src/process.c
index 1eefae1adc9..0fec550ad8f 100644
--- a/src/process.c
+++ b/src/process.c
@@ -21,17 +21,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
21 21
22#include <config.h> 22#include <config.h>
23#include <signal.h> 23#include <signal.h>
24
25/* This file is split into two parts by the following preprocessor
26 conditional. The 'then' clause contains all of the support for
27 asynchronous subprocesses. The 'else' clause contains stub
28 versions of some of the asynchronous subprocess routines that are
29 often called elsewhere in Emacs, so we don't have to #ifdef the
30 sections that call them. */
31
32
33#ifdef subprocesses
34
35#include <stdio.h> 24#include <stdio.h>
36#include <errno.h> 25#include <errno.h>
37#include <setjmp.h> 26#include <setjmp.h>
@@ -51,6 +40,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
51#endif 40#endif
52#include <fcntl.h> 41#include <fcntl.h>
53 42
43/* Only MS-DOS does not define `subprocesses'. */
44#ifdef subprocesses
45
54#ifdef HAVE_SOCKETS /* TCP connection support, if kernel can do it */ 46#ifdef HAVE_SOCKETS /* TCP connection support, if kernel can do it */
55#include <sys/socket.h> 47#include <sys/socket.h>
56#include <netdb.h> 48#include <netdb.h>
@@ -101,6 +93,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
101#include <resolv.h> 93#include <resolv.h>
102#endif 94#endif
103 95
96#endif /* subprocesses */
97
104#include "lisp.h" 98#include "lisp.h"
105#include "systime.h" 99#include "systime.h"
106#include "systty.h" 100#include "systty.h"
@@ -119,11 +113,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
119#include "dispextern.h" 113#include "dispextern.h"
120#include "composite.h" 114#include "composite.h"
121#include "atimer.h" 115#include "atimer.h"
116#include "sysselect.h"
117#include "syssignal.h"
118#include "syswait.h"
122 119
123#if defined (USE_GTK) || defined (HAVE_GCONF) 120#if defined (USE_GTK) || defined (HAVE_GCONF)
124#include "xgselect.h" 121#include "xgselect.h"
125#endif /* defined (USE_GTK) || defined (HAVE_GCONF) */ 122#endif /* defined (USE_GTK) || defined (HAVE_GCONF) */
126 123
124#ifdef subprocesses
125
127Lisp_Object Qprocessp; 126Lisp_Object Qprocessp;
128Lisp_Object Qrun, Qstop, Qsignal; 127Lisp_Object Qrun, Qstop, Qsignal;
129Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten; 128Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten;
@@ -135,7 +134,7 @@ Lisp_Object Qipv6;
135Lisp_Object QCport, QCspeed, QCprocess; 134Lisp_Object QCport, QCspeed, QCprocess;
136Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven; 135Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven;
137Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary; 136Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary;
138Lisp_Object QCname, QCbuffer, QChost, QCservice, QCtype; 137Lisp_Object QCbuffer, QChost, QCservice;
139Lisp_Object QClocal, QCremote, QCcoding; 138Lisp_Object QClocal, QCremote, QCcoding;
140Lisp_Object QCserver, QCnowait, QCnoquery, QCstop; 139Lisp_Object QCserver, QCnowait, QCnoquery, QCstop;
141Lisp_Object QCsentinel, QClog, QCoptions, QCplist; 140Lisp_Object QCsentinel, QClog, QCoptions, QCplist;
@@ -151,11 +150,6 @@ extern Lisp_Object QCfamily;
151/* QCfilter is defined in keyboard.c. */ 150/* QCfilter is defined in keyboard.c. */
152extern Lisp_Object QCfilter; 151extern Lisp_Object QCfilter;
153 152
154Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
155Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
156Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
157Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
158
159#ifdef HAVE_SOCKETS 153#ifdef HAVE_SOCKETS
160#define NETCONN_P(p) (EQ (XPROCESS (p)->type, Qnetwork)) 154#define NETCONN_P(p) (EQ (XPROCESS (p)->type, Qnetwork))
161#define NETCONN1_P(p) (EQ ((p)->type, Qnetwork)) 155#define NETCONN1_P(p) (EQ ((p)->type, Qnetwork))
@@ -178,10 +172,6 @@ Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
178#define SIGCHLD SIGCLD 172#define SIGCHLD SIGCLD
179#endif /* SIGCLD */ 173#endif /* SIGCLD */
180 174
181#include "syssignal.h"
182
183#include "syswait.h"
184
185extern char *get_operating_system_release (void); 175extern char *get_operating_system_release (void);
186 176
187/* Serial processes require termios or Windows. */ 177/* Serial processes require termios or Windows. */
@@ -282,9 +272,6 @@ static Lisp_Object Vprocess_adaptive_read_buffering;
282#define process_output_delay_count 0 272#define process_output_delay_count 0
283#endif 273#endif
284 274
285
286#include "sysselect.h"
287
288static int keyboard_bit_set (SELECT_TYPE *); 275static int keyboard_bit_set (SELECT_TYPE *);
289static void deactivate_process (Lisp_Object); 276static void deactivate_process (Lisp_Object);
290static void status_notify (struct Lisp_Process *); 277static void status_notify (struct Lisp_Process *);
@@ -300,16 +287,29 @@ static void create_pty (Lisp_Object);
300static Lisp_Object get_process (register Lisp_Object name); 287static Lisp_Object get_process (register Lisp_Object name);
301static void exec_sentinel (Lisp_Object proc, Lisp_Object reason); 288static void exec_sentinel (Lisp_Object proc, Lisp_Object reason);
302 289
303extern int timers_run; 290#endif /* subprocesses */
304
305/* Mask of bits indicating the descriptors that we wait for input on. */
306 291
307static SELECT_TYPE input_wait_mask; 292extern int timers_run;
308 293
294Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
295Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
296Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
297Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
298Lisp_Object QCname, QCtype;
299
309/* Non-zero if keyboard input is on hold, zero otherwise. */ 300/* Non-zero if keyboard input is on hold, zero otherwise. */
310 301
311static int kbd_is_on_hold; 302static int kbd_is_on_hold;
312 303
304/* Nonzero means delete a process right away if it exits. */
305static int delete_exited_processes;
306
307#ifdef subprocesses
308
309/* Mask of bits indicating the descriptors that we wait for input on. */
310
311static SELECT_TYPE input_wait_mask;
312
313/* Mask that excludes keyboard input descriptor(s). */ 313/* Mask that excludes keyboard input descriptor(s). */
314 314
315static SELECT_TYPE non_keyboard_wait_mask; 315static SELECT_TYPE non_keyboard_wait_mask;
@@ -333,9 +333,9 @@ static SELECT_TYPE connect_wait_mask;
333static int num_pending_connects; 333static int num_pending_connects;
334 334
335#define IF_NON_BLOCKING_CONNECT(s) s 335#define IF_NON_BLOCKING_CONNECT(s) s
336#else 336#else /* NON_BLOCKING_CONNECT */
337#define IF_NON_BLOCKING_CONNECT(s) 337#define IF_NON_BLOCKING_CONNECT(s)
338#endif 338#endif /* NON_BLOCKING_CONNECT */
339 339
340/* The largest descriptor currently in use for a process object. */ 340/* The largest descriptor currently in use for a process object. */
341static int max_process_desc; 341static int max_process_desc;
@@ -346,9 +346,6 @@ static int max_keyboard_desc;
346/* The largest descriptor currently in use for gpm mouse input. */ 346/* The largest descriptor currently in use for gpm mouse input. */
347static int max_gpm_desc; 347static int max_gpm_desc;
348 348
349/* Nonzero means delete a process right away if it exits. */
350static int delete_exited_processes;
351
352/* Indexed by descriptor, gives the process (if any) for that descriptor */ 349/* Indexed by descriptor, gives the process (if any) for that descriptor */
353Lisp_Object chan_process[MAXDESC]; 350Lisp_Object chan_process[MAXDESC];
354 351
@@ -695,26 +692,6 @@ DEFUN ("get-process", Fget_process, Sget_process, 1, 1, 0,
695 return Fcdr (Fassoc (name, Vprocess_alist)); 692 return Fcdr (Fassoc (name, Vprocess_alist));
696} 693}
697 694
698DEFUN ("get-buffer-process", Fget_buffer_process, Sget_buffer_process, 1, 1, 0,
699 doc: /* Return the (or a) process associated with BUFFER.
700BUFFER may be a buffer or the name of one. */)
701 (register Lisp_Object buffer)
702{
703 register Lisp_Object buf, tail, proc;
704
705 if (NILP (buffer)) return Qnil;
706 buf = Fget_buffer (buffer);
707 if (NILP (buf)) return Qnil;
708
709 for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail))
710 {
711 proc = Fcdr (XCAR (tail));
712 if (PROCESSP (proc) && EQ (XPROCESS (proc)->buffer, buf))
713 return proc;
714 }
715 return Qnil;
716}
717
718/* This is how commands for the user decode process arguments. It 695/* This is how commands for the user decode process arguments. It
719 accepts a process, a process name, a buffer, a buffer name, or nil. 696 accepts a process, a process name, a buffer, a buffer name, or nil.
720 Buffers denote the first process in the buffer, and nil denotes the 697 Buffers denote the first process in the buffer, and nil denotes the
@@ -1096,19 +1073,6 @@ for the process which will run. */)
1096 return flag; 1073 return flag;
1097} 1074}
1098 1075
1099DEFUN ("process-inherit-coding-system-flag",
1100 Fprocess_inherit_coding_system_flag, Sprocess_inherit_coding_system_flag,
1101 1, 1, 0,
1102 doc: /* Return the value of inherit-coding-system flag for PROCESS.
1103If this flag is t, `buffer-file-coding-system' of the buffer
1104associated with PROCESS will inherit the coding system used to decode
1105the process output. */)
1106 (register Lisp_Object process)
1107{
1108 CHECK_PROCESS (process);
1109 return XPROCESS (process)->inherit_coding_system_flag ? Qt : Qnil;
1110}
1111
1112DEFUN ("set-process-query-on-exit-flag", 1076DEFUN ("set-process-query-on-exit-flag",
1113 Fset_process_query_on_exit_flag, Sset_process_query_on_exit_flag, 1077 Fset_process_query_on_exit_flag, Sset_process_query_on_exit_flag,
1114 2, 2, 0, 1078 2, 2, 0,
@@ -2299,7 +2263,7 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
2299 /* Workaround for a bug in getsockname on BSD: Names bound to 2263 /* Workaround for a bug in getsockname on BSD: Names bound to
2300 sockets in the UNIX domain are inaccessible; getsockname returns 2264 sockets in the UNIX domain are inaccessible; getsockname returns
2301 a zero length name. */ 2265 a zero length name. */
2302 if (len < OFFSETOF (struct sockaddr, sa_family) + sizeof (sa->sa_family)) 2266 if (len < offsetof (struct sockaddr, sa_family) + sizeof (sa->sa_family))
2303 return empty_unibyte_string; 2267 return empty_unibyte_string;
2304 2268
2305 switch (sa->sa_family) 2269 switch (sa->sa_family)
@@ -2339,7 +2303,7 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
2339 } 2303 }
2340#endif 2304#endif
2341 default: 2305 default:
2342 len -= OFFSETOF (struct sockaddr, sa_family) + sizeof (sa->sa_family); 2306 len -= offsetof (struct sockaddr, sa_family) + sizeof (sa->sa_family);
2343 address = Fcons (make_number (sa->sa_family), 2307 address = Fcons (make_number (sa->sa_family),
2344 Fmake_vector (make_number (len), Qnil)); 2308 Fmake_vector (make_number (len), Qnil));
2345 p = XVECTOR (XCDR (address)); 2309 p = XVECTOR (XCDR (address));
@@ -6474,28 +6438,6 @@ process has been transmitted to the serial port. */)
6474 } 6438 }
6475 return process; 6439 return process;
6476} 6440}
6477
6478/* Kill all processes associated with `buffer'.
6479 If `buffer' is nil, kill all processes */
6480
6481void
6482kill_buffer_processes (Lisp_Object buffer)
6483{
6484 Lisp_Object tail, proc;
6485
6486 for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail))
6487 {
6488 proc = XCDR (XCAR (tail));
6489 if (PROCESSP (proc)
6490 && (NILP (buffer) || EQ (XPROCESS (proc)->buffer, buffer)))
6491 {
6492 if (NETCONN_P (proc) || SERIALCONN_P (proc))
6493 Fdelete_process (proc);
6494 else if (XPROCESS (proc)->infd >= 0)
6495 process_send_signal (proc, SIGHUP, Qnil, 1);
6496 }
6497 }
6498}
6499 6441
6500/* On receipt of a signal that a child status has changed, loop asking 6442/* On receipt of a signal that a child status has changed, loop asking
6501 about children with changed statuses until the system says there 6443 about children with changed statuses until the system says there
@@ -6960,29 +6902,6 @@ DEFUN ("process-filter-multibyte-p", Fprocess_filter_multibyte_p,
6960 6902
6961 6903
6962 6904
6963/* Stop reading input from keyboard sources. */
6964
6965void
6966hold_keyboard_input (void)
6967{
6968 kbd_is_on_hold = 1;
6969}
6970
6971/* Resume reading input from keyboard sources. */
6972
6973void
6974unhold_keyboard_input (void)
6975{
6976 kbd_is_on_hold = 0;
6977}
6978
6979/* Return non-zero if keyboard input is on hold, zero otherwise. */
6980
6981int
6982kbd_on_hold_p (void)
6983{
6984 return kbd_is_on_hold;
6985}
6986 6905
6987/* Add DESC to the set of keyboard input descriptors. */ 6906/* Add DESC to the set of keyboard input descriptors. */
6988 6907
@@ -7060,6 +6979,326 @@ keyboard_bit_set (fd_set *mask)
7060 6979
7061 return 0; 6980 return 0;
7062} 6981}
6982
6983#else /* not subprocesses */
6984
6985/* Defined on msdos.c. */
6986extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *,
6987 EMACS_TIME *);
6988
6989/* Implementation of wait_reading_process_output, assuming that there
6990 are no subprocesses. Used only by the MS-DOS build.
6991
6992 Wait for timeout to elapse and/or keyboard input to be available.
6993
6994 time_limit is:
6995 timeout in seconds, or
6996 zero for no limit, or
6997 -1 means gobble data immediately available but don't wait for any.
6998
6999 read_kbd is a Lisp_Object:
7000 0 to ignore keyboard input, or
7001 1 to return when input is available, or
7002 -1 means caller will actually read the input, so don't throw to
7003 the quit handler.
7004
7005 see full version for other parameters. We know that wait_proc will
7006 always be NULL, since `subprocesses' isn't defined.
7007
7008 do_display != 0 means redisplay should be done to show subprocess
7009 output that arrives.
7010
7011 Return true if we received input from any process. */
7012
7013int
7014wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
7015 wait_for_cell, wait_proc, just_wait_proc)
7016 int time_limit, microsecs, read_kbd, do_display;
7017 Lisp_Object wait_for_cell;
7018 struct Lisp_Process *wait_proc;
7019 int just_wait_proc;
7020{
7021 register int nfds;
7022 EMACS_TIME end_time, timeout;
7023 SELECT_TYPE waitchannels;
7024 int xerrno;
7025
7026 /* What does time_limit really mean? */
7027 if (time_limit || microsecs)
7028 {
7029 EMACS_GET_TIME (end_time);
7030 EMACS_SET_SECS_USECS (timeout, time_limit, microsecs);
7031 EMACS_ADD_TIME (end_time, end_time, timeout);
7032 }
7033
7034 /* Turn off periodic alarms (in case they are in use)
7035 and then turn off any other atimers,
7036 because the select emulator uses alarms. */
7037 stop_polling ();
7038 turn_on_atimers (0);
7039
7040 while (1)
7041 {
7042 int timeout_reduced_for_timers = 0;
7043
7044 /* If calling from keyboard input, do not quit
7045 since we want to return C-g as an input character.
7046 Otherwise, do pending quit if requested. */
7047 if (read_kbd >= 0)
7048 QUIT;
7049
7050 /* Exit now if the cell we're waiting for became non-nil. */
7051 if (! NILP (wait_for_cell) && ! NILP (XCAR (wait_for_cell)))
7052 break;
7053
7054 /* Compute time from now till when time limit is up */
7055 /* Exit if already run out */
7056 if (time_limit == -1)
7057 {
7058 /* -1 specified for timeout means
7059 gobble output available now
7060 but don't wait at all. */
7061
7062 EMACS_SET_SECS_USECS (timeout, 0, 0);
7063 }
7064 else if (time_limit || microsecs)
7065 {
7066 EMACS_GET_TIME (timeout);
7067 EMACS_SUB_TIME (timeout, end_time, timeout);
7068 if (EMACS_TIME_NEG_P (timeout))
7069 break;
7070 }
7071 else
7072 {
7073 EMACS_SET_SECS_USECS (timeout, 100000, 0);
7074 }
7075
7076 /* If our caller will not immediately handle keyboard events,
7077 run timer events directly.
7078 (Callers that will immediately read keyboard events
7079 call timer_delay on their own.) */
7080 if (NILP (wait_for_cell))
7081 {
7082 EMACS_TIME timer_delay;
7083
7084 do
7085 {
7086 int old_timers_run = timers_run;
7087 timer_delay = timer_check (1);
7088 if (timers_run != old_timers_run && do_display)
7089 /* We must retry, since a timer may have requeued itself
7090 and that could alter the time delay. */
7091 redisplay_preserve_echo_area (14);
7092 else
7093 break;
7094 }
7095 while (!detect_input_pending ());
7096
7097 /* If there is unread keyboard input, also return. */
7098 if (read_kbd != 0
7099 && requeued_events_pending_p ())
7100 break;
7101
7102 if (! EMACS_TIME_NEG_P (timer_delay) && time_limit != -1)
7103 {
7104 EMACS_TIME difference;
7105 EMACS_SUB_TIME (difference, timer_delay, timeout);
7106 if (EMACS_TIME_NEG_P (difference))
7107 {
7108 timeout = timer_delay;
7109 timeout_reduced_for_timers = 1;
7110 }
7111 }
7112 }
7113
7114 /* Cause C-g and alarm signals to take immediate action,
7115 and cause input available signals to zero out timeout. */
7116 if (read_kbd < 0)
7117 set_waiting_for_input (&timeout);
7118
7119 /* Wait till there is something to do. */
7120
7121 if (! read_kbd && NILP (wait_for_cell))
7122 FD_ZERO (&waitchannels);
7123 else
7124 FD_SET (0, &waitchannels);
7125
7126 /* If a frame has been newly mapped and needs updating,
7127 reprocess its display stuff. */
7128 if (frame_garbaged && do_display)
7129 {
7130 clear_waiting_for_input ();
7131 redisplay_preserve_echo_area (15);
7132 if (read_kbd < 0)
7133 set_waiting_for_input (&timeout);
7134 }
7135
7136 if (read_kbd && detect_input_pending ())
7137 {
7138 nfds = 0;
7139 FD_ZERO (&waitchannels);
7140 }
7141 else
7142 nfds = select (1, &waitchannels, (SELECT_TYPE *)0, (SELECT_TYPE *)0,
7143 &timeout);
7144
7145 xerrno = errno;
7146
7147 /* Make C-g and alarm signals set flags again */
7148 clear_waiting_for_input ();
7149
7150 /* If we woke up due to SIGWINCH, actually change size now. */
7151 do_pending_window_change (0);
7152
7153 if (time_limit && nfds == 0 && ! timeout_reduced_for_timers)
7154 /* We waited the full specified time, so return now. */
7155 break;
7156
7157 if (nfds == -1)
7158 {
7159 /* If the system call was interrupted, then go around the
7160 loop again. */
7161 if (xerrno == EINTR)
7162 FD_ZERO (&waitchannels);
7163 else
7164 error ("select error: %s", emacs_strerror (xerrno));
7165 }
7166
7167 /* Check for keyboard input */
7168
7169 if (read_kbd
7170 && detect_input_pending_run_timers (do_display))
7171 {
7172 swallow_events (do_display);
7173 if (detect_input_pending_run_timers (do_display))
7174 break;
7175 }
7176
7177 /* If there is unread keyboard input, also return. */
7178 if (read_kbd
7179 && requeued_events_pending_p ())
7180 break;
7181
7182 /* If wait_for_cell. check for keyboard input
7183 but don't run any timers.
7184 ??? (It seems wrong to me to check for keyboard
7185 input at all when wait_for_cell, but the code
7186 has been this way since July 1994.
7187 Try changing this after version 19.31.) */
7188 if (! NILP (wait_for_cell)
7189 && detect_input_pending ())
7190 {
7191 swallow_events (do_display);
7192 if (detect_input_pending ())
7193 break;
7194 }
7195
7196 /* Exit now if the cell we're waiting for became non-nil. */
7197 if (! NILP (wait_for_cell) && ! NILP (XCAR (wait_for_cell)))
7198 break;
7199 }
7200
7201 start_polling ();
7202
7203 return 0;
7204}
7205
7206#endif /* not subprocesses */
7207
7208/* The following functions are needed even if async subprocesses are
7209 not supported. Some of them are no-op stubs in that case. */
7210
7211DEFUN ("get-buffer-process", Fget_buffer_process, Sget_buffer_process, 1, 1, 0,
7212 doc: /* Return the (or a) process associated with BUFFER.
7213BUFFER may be a buffer or the name of one. */)
7214 (register Lisp_Object buffer)
7215{
7216#ifdef subprocesses
7217 register Lisp_Object buf, tail, proc;
7218
7219 if (NILP (buffer)) return Qnil;
7220 buf = Fget_buffer (buffer);
7221 if (NILP (buf)) return Qnil;
7222
7223 for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail))
7224 {
7225 proc = Fcdr (XCAR (tail));
7226 if (PROCESSP (proc) && EQ (XPROCESS (proc)->buffer, buf))
7227 return proc;
7228 }
7229#endif /* subprocesses */
7230 return Qnil;
7231}
7232
7233DEFUN ("process-inherit-coding-system-flag",
7234 Fprocess_inherit_coding_system_flag, Sprocess_inherit_coding_system_flag,
7235 1, 1, 0,
7236 doc: /* Return the value of inherit-coding-system flag for PROCESS.
7237If this flag is t, `buffer-file-coding-system' of the buffer
7238associated with PROCESS will inherit the coding system used to decode
7239the process output. */)
7240 (register Lisp_Object process)
7241{
7242#ifdef subprocesses
7243 CHECK_PROCESS (process);
7244 return XPROCESS (process)->inherit_coding_system_flag ? Qt : Qnil;
7245#else
7246 /* Ignore the argument and return the value of
7247 inherit-process-coding-system. */
7248 return inherit_process_coding_system ? Qt : Qnil;
7249#endif
7250}
7251
7252/* Kill all processes associated with `buffer'.
7253 If `buffer' is nil, kill all processes */
7254
7255void
7256kill_buffer_processes (Lisp_Object buffer)
7257{
7258#ifdef subprocesses
7259 Lisp_Object tail, proc;
7260
7261 for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail))
7262 {
7263 proc = XCDR (XCAR (tail));
7264 if (PROCESSP (proc)
7265 && (NILP (buffer) || EQ (XPROCESS (proc)->buffer, buffer)))
7266 {
7267 if (NETCONN_P (proc) || SERIALCONN_P (proc))
7268 Fdelete_process (proc);
7269 else if (XPROCESS (proc)->infd >= 0)
7270 process_send_signal (proc, SIGHUP, Qnil, 1);
7271 }
7272 }
7273#else /* subprocesses */
7274 /* Since we have no subprocesses, this does nothing. */
7275#endif /* subprocesses */
7276}
7277
7278/* Stop reading input from keyboard sources. */
7279
7280void
7281hold_keyboard_input (void)
7282{
7283 kbd_is_on_hold = 1;
7284}
7285
7286/* Resume reading input from keyboard sources. */
7287
7288void
7289unhold_keyboard_input (void)
7290{
7291 kbd_is_on_hold = 0;
7292}
7293
7294/* Return non-zero if keyboard input is on hold, zero otherwise. */
7295
7296int
7297kbd_on_hold_p (void)
7298{
7299 return kbd_is_on_hold;
7300}
7301
7063 7302
7064/* Enumeration of and access to system processes a-la ps(1). */ 7303/* Enumeration of and access to system processes a-la ps(1). */
7065 7304
@@ -7129,10 +7368,12 @@ integer or floating point values.
7129{ 7368{
7130 return system_process_attributes (pid); 7369 return system_process_attributes (pid);
7131} 7370}
7371
7132 7372
7133void 7373void
7134init_process (void) 7374init_process (void)
7135{ 7375{
7376#ifdef subprocesses
7136 register int i; 7377 register int i;
7137 7378
7138 inhibit_sentinels = 0; 7379 inhibit_sentinels = 0;
@@ -7231,11 +7472,15 @@ init_process (void)
7231 } 7472 }
7232 } 7473 }
7233#endif 7474#endif
7475#endif /* subprocesses */
7476 kbd_is_on_hold = 0;
7234} 7477}
7235 7478
7236void 7479void
7237syms_of_process (void) 7480syms_of_process (void)
7238{ 7481{
7482#ifdef subprocesses
7483
7239 Qprocessp = intern_c_string ("processp"); 7484 Qprocessp = intern_c_string ("processp");
7240 staticpro (&Qprocessp); 7485 staticpro (&Qprocessp);
7241 Qrun = intern_c_string ("run"); 7486 Qrun = intern_c_string ("run");
@@ -7306,17 +7551,12 @@ syms_of_process (void)
7306 staticpro (&Qnetwork); 7551 staticpro (&Qnetwork);
7307 Qserial = intern_c_string ("serial"); 7552 Qserial = intern_c_string ("serial");
7308 staticpro (&Qserial); 7553 staticpro (&Qserial);
7309
7310 QCname = intern_c_string (":name");
7311 staticpro (&QCname);
7312 QCbuffer = intern_c_string (":buffer"); 7554 QCbuffer = intern_c_string (":buffer");
7313 staticpro (&QCbuffer); 7555 staticpro (&QCbuffer);
7314 QChost = intern_c_string (":host"); 7556 QChost = intern_c_string (":host");
7315 staticpro (&QChost); 7557 staticpro (&QChost);
7316 QCservice = intern_c_string (":service"); 7558 QCservice = intern_c_string (":service");
7317 staticpro (&QCservice); 7559 staticpro (&QCservice);
7318 QCtype = intern_c_string (":type");
7319 staticpro (&QCtype);
7320 QClocal = intern_c_string (":local"); 7560 QClocal = intern_c_string (":local");
7321 staticpro (&QClocal); 7561 staticpro (&QClocal);
7322 QCremote = intern_c_string (":remote"); 7562 QCremote = intern_c_string (":remote");
@@ -7348,6 +7588,13 @@ syms_of_process (void)
7348 staticpro (&deleted_pid_list); 7588 staticpro (&deleted_pid_list);
7349#endif 7589#endif
7350 7590
7591#endif /* subprocesses */
7592
7593 QCname = intern_c_string (":name");
7594 staticpro (&QCname);
7595 QCtype = intern_c_string (":type");
7596 staticpro (&QCtype);
7597
7351 Qeuid = intern_c_string ("euid"); 7598 Qeuid = intern_c_string ("euid");
7352 staticpro (&Qeuid); 7599 staticpro (&Qeuid);
7353 Qegid = intern_c_string ("egid"); 7600 Qegid = intern_c_string ("egid");
@@ -7417,6 +7664,7 @@ A value of nil means don't delete them until `list-processes' is run. */);
7417 7664
7418 delete_exited_processes = 1; 7665 delete_exited_processes = 1;
7419 7666
7667#ifdef subprocesses
7420 DEFVAR_LISP ("process-connection-type", &Vprocess_connection_type, 7668 DEFVAR_LISP ("process-connection-type", &Vprocess_connection_type,
7421 doc: /* Control type of device used to communicate with subprocesses. 7669 doc: /* Control type of device used to communicate with subprocesses.
7422Values are nil to use a pipe, or t or `pty' to use a pty. 7670Values are nil to use a pipe, or t or `pty' to use a pty.
@@ -7441,7 +7689,6 @@ The variable takes effect when `start-process' is called. */);
7441 7689
7442 defsubr (&Sprocessp); 7690 defsubr (&Sprocessp);
7443 defsubr (&Sget_process); 7691 defsubr (&Sget_process);
7444 defsubr (&Sget_buffer_process);
7445 defsubr (&Sdelete_process); 7692 defsubr (&Sdelete_process);
7446 defsubr (&Sprocess_status); 7693 defsubr (&Sprocess_status);
7447 defsubr (&Sprocess_exit_status); 7694 defsubr (&Sprocess_exit_status);
@@ -7458,7 +7705,6 @@ The variable takes effect when `start-process' is called. */);
7458 defsubr (&Sprocess_sentinel); 7705 defsubr (&Sprocess_sentinel);
7459 defsubr (&Sset_process_window_size); 7706 defsubr (&Sset_process_window_size);
7460 defsubr (&Sset_process_inherit_coding_system_flag); 7707 defsubr (&Sset_process_inherit_coding_system_flag);
7461 defsubr (&Sprocess_inherit_coding_system_flag);
7462 defsubr (&Sset_process_query_on_exit_flag); 7708 defsubr (&Sset_process_query_on_exit_flag);
7463 defsubr (&Sprocess_query_on_exit_flag); 7709 defsubr (&Sprocess_query_on_exit_flag);
7464 defsubr (&Sprocess_contact); 7710 defsubr (&Sprocess_contact);
@@ -7505,474 +7751,8 @@ The variable takes effect when `start-process' is called. */);
7505 defsubr (&Sprocess_coding_system); 7751 defsubr (&Sprocess_coding_system);
7506 defsubr (&Sset_process_filter_multibyte); 7752 defsubr (&Sset_process_filter_multibyte);
7507 defsubr (&Sprocess_filter_multibyte_p); 7753 defsubr (&Sprocess_filter_multibyte_p);
7508 defsubr (&Slist_system_processes);
7509 defsubr (&Sprocess_attributes);
7510}
7511
7512
7513#else /* not subprocesses */
7514 7754
7515#include <sys/types.h> 7755#endif /* subprocesses */
7516#include <errno.h>
7517#include <sys/stat.h>
7518#include <stdlib.h>
7519#include <fcntl.h>
7520#include <setjmp.h>
7521#ifdef HAVE_UNISTD_H
7522#include <unistd.h>
7523#endif
7524
7525#include "lisp.h"
7526#include "systime.h"
7527#include "character.h"
7528#include "coding.h"
7529#include "termopts.h"
7530#include "sysselect.h"
7531
7532extern int frame_garbaged;
7533
7534extern EMACS_TIME timer_check ();
7535extern int timers_run;
7536
7537Lisp_Object QCtype, QCname;
7538
7539Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
7540Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
7541Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
7542Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
7543
7544/* Non-zero if keyboard input is on hold, zero otherwise. */
7545static int kbd_is_on_hold;
7546
7547/* As described above, except assuming that there are no subprocesses:
7548
7549 Wait for timeout to elapse and/or keyboard input to be available.
7550
7551 time_limit is:
7552 timeout in seconds, or
7553 zero for no limit, or
7554 -1 means gobble data immediately available but don't wait for any.
7555
7556 read_kbd is a Lisp_Object:
7557 0 to ignore keyboard input, or
7558 1 to return when input is available, or
7559 -1 means caller will actually read the input, so don't throw to
7560 the quit handler.
7561
7562 see full version for other parameters. We know that wait_proc will
7563 always be NULL, since `subprocesses' isn't defined.
7564
7565 do_display != 0 means redisplay should be done to show subprocess
7566 output that arrives.
7567
7568 Return true if we received input from any process. */
7569
7570int
7571wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
7572 wait_for_cell, wait_proc, just_wait_proc)
7573 int time_limit, microsecs, read_kbd, do_display;
7574 Lisp_Object wait_for_cell;
7575 struct Lisp_Process *wait_proc;
7576 int just_wait_proc;
7577{
7578 register int nfds;
7579 EMACS_TIME end_time, timeout;
7580 SELECT_TYPE waitchannels;
7581 int xerrno;
7582
7583 /* What does time_limit really mean? */
7584 if (time_limit || microsecs)
7585 {
7586 EMACS_GET_TIME (end_time);
7587 EMACS_SET_SECS_USECS (timeout, time_limit, microsecs);
7588 EMACS_ADD_TIME (end_time, end_time, timeout);
7589 }
7590
7591 /* Turn off periodic alarms (in case they are in use)
7592 and then turn off any other atimers,
7593 because the select emulator uses alarms. */
7594 stop_polling ();
7595 turn_on_atimers (0);
7596
7597 while (1)
7598 {
7599 int timeout_reduced_for_timers = 0;
7600
7601 /* If calling from keyboard input, do not quit
7602 since we want to return C-g as an input character.
7603 Otherwise, do pending quit if requested. */
7604 if (read_kbd >= 0)
7605 QUIT;
7606
7607 /* Exit now if the cell we're waiting for became non-nil. */
7608 if (! NILP (wait_for_cell) && ! NILP (XCAR (wait_for_cell)))
7609 break;
7610
7611 /* Compute time from now till when time limit is up */
7612 /* Exit if already run out */
7613 if (time_limit == -1)
7614 {
7615 /* -1 specified for timeout means
7616 gobble output available now
7617 but don't wait at all. */
7618
7619 EMACS_SET_SECS_USECS (timeout, 0, 0);
7620 }
7621 else if (time_limit || microsecs)
7622 {
7623 EMACS_GET_TIME (timeout);
7624 EMACS_SUB_TIME (timeout, end_time, timeout);
7625 if (EMACS_TIME_NEG_P (timeout))
7626 break;
7627 }
7628 else
7629 {
7630 EMACS_SET_SECS_USECS (timeout, 100000, 0);
7631 }
7632
7633 /* If our caller will not immediately handle keyboard events,
7634 run timer events directly.
7635 (Callers that will immediately read keyboard events
7636 call timer_delay on their own.) */
7637 if (NILP (wait_for_cell))
7638 {
7639 EMACS_TIME timer_delay;
7640
7641 do
7642 {
7643 int old_timers_run = timers_run;
7644 timer_delay = timer_check (1);
7645 if (timers_run != old_timers_run && do_display)
7646 /* We must retry, since a timer may have requeued itself
7647 and that could alter the time delay. */
7648 redisplay_preserve_echo_area (14);
7649 else
7650 break;
7651 }
7652 while (!detect_input_pending ());
7653
7654 /* If there is unread keyboard input, also return. */
7655 if (read_kbd != 0
7656 && requeued_events_pending_p ())
7657 break;
7658
7659 if (! EMACS_TIME_NEG_P (timer_delay) && time_limit != -1)
7660 {
7661 EMACS_TIME difference;
7662 EMACS_SUB_TIME (difference, timer_delay, timeout);
7663 if (EMACS_TIME_NEG_P (difference))
7664 {
7665 timeout = timer_delay;
7666 timeout_reduced_for_timers = 1;
7667 }
7668 }
7669 }
7670
7671 /* Cause C-g and alarm signals to take immediate action,
7672 and cause input available signals to zero out timeout. */
7673 if (read_kbd < 0)
7674 set_waiting_for_input (&timeout);
7675
7676 /* Wait till there is something to do. */
7677
7678 if (! read_kbd && NILP (wait_for_cell))
7679 FD_ZERO (&waitchannels);
7680 else
7681 FD_SET (0, &waitchannels);
7682
7683 /* If a frame has been newly mapped and needs updating,
7684 reprocess its display stuff. */
7685 if (frame_garbaged && do_display)
7686 {
7687 clear_waiting_for_input ();
7688 redisplay_preserve_echo_area (15);
7689 if (read_kbd < 0)
7690 set_waiting_for_input (&timeout);
7691 }
7692
7693 if (read_kbd && detect_input_pending ())
7694 {
7695 nfds = 0;
7696 FD_ZERO (&waitchannels);
7697 }
7698 else
7699 nfds = select (1, &waitchannels, (SELECT_TYPE *)0, (SELECT_TYPE *)0,
7700 &timeout);
7701
7702 xerrno = errno;
7703
7704 /* Make C-g and alarm signals set flags again */
7705 clear_waiting_for_input ();
7706
7707 /* If we woke up due to SIGWINCH, actually change size now. */
7708 do_pending_window_change (0);
7709
7710 if (time_limit && nfds == 0 && ! timeout_reduced_for_timers)
7711 /* We waited the full specified time, so return now. */
7712 break;
7713
7714 if (nfds == -1)
7715 {
7716 /* If the system call was interrupted, then go around the
7717 loop again. */
7718 if (xerrno == EINTR)
7719 FD_ZERO (&waitchannels);
7720 else
7721 error ("select error: %s", emacs_strerror (xerrno));
7722 }
7723#ifdef SOLARIS2
7724 else if (nfds > 0 && (waitchannels & 1) && interrupt_input)
7725 /* System sometimes fails to deliver SIGIO. */
7726 kill (getpid (), SIGIO);
7727#endif
7728#ifdef SIGIO
7729 if (read_kbd && interrupt_input && (waitchannels & 1))
7730 kill (getpid (), SIGIO);
7731#endif
7732
7733 /* Check for keyboard input */
7734
7735 if (read_kbd
7736 && detect_input_pending_run_timers (do_display))
7737 {
7738 swallow_events (do_display);
7739 if (detect_input_pending_run_timers (do_display))
7740 break;
7741 }
7742
7743 /* If there is unread keyboard input, also return. */
7744 if (read_kbd
7745 && requeued_events_pending_p ())
7746 break;
7747
7748 /* If wait_for_cell. check for keyboard input
7749 but don't run any timers.
7750 ??? (It seems wrong to me to check for keyboard
7751 input at all when wait_for_cell, but the code
7752 has been this way since July 1994.
7753 Try changing this after version 19.31.) */
7754 if (! NILP (wait_for_cell)
7755 && detect_input_pending ())
7756 {
7757 swallow_events (do_display);
7758 if (detect_input_pending ())
7759 break;
7760 }
7761
7762 /* Exit now if the cell we're waiting for became non-nil. */
7763 if (! NILP (wait_for_cell) && ! NILP (XCAR (wait_for_cell)))
7764 break;
7765 }
7766
7767 start_polling ();
7768
7769 return 0;
7770}
7771
7772
7773/* Don't confuse make-docfile by having two doc strings for this function.
7774 make-docfile does not pay attention to #if, for good reason! */
7775DEFUN ("get-buffer-process", Fget_buffer_process, Sget_buffer_process, 1, 1, 0,
7776 0)
7777 (register Lisp_Object name)
7778{
7779 return Qnil;
7780}
7781
7782 /* Don't confuse make-docfile by having two doc strings for this function.
7783 make-docfile does not pay attention to #if, for good reason! */
7784DEFUN ("process-inherit-coding-system-flag",
7785 Fprocess_inherit_coding_system_flag, Sprocess_inherit_coding_system_flag,
7786 1, 1, 0,
7787 0)
7788 (register Lisp_Object process)
7789{
7790 /* Ignore the argument and return the value of
7791 inherit-process-coding-system. */
7792 return inherit_process_coding_system ? Qt : Qnil;
7793}
7794
7795/* Kill all processes associated with `buffer'.
7796 If `buffer' is nil, kill all processes.
7797 Since we have no subprocesses, this does nothing. */
7798
7799void
7800kill_buffer_processes (buffer)
7801 Lisp_Object buffer;
7802{
7803}
7804
7805
7806/* Stop reading input from keyboard sources. */
7807
7808void
7809hold_keyboard_input (void)
7810{
7811 kbd_is_on_hold = 1;
7812}
7813
7814/* Resume reading input from keyboard sources. */
7815
7816void
7817unhold_keyboard_input (void)
7818{
7819 kbd_is_on_hold = 0;
7820}
7821
7822/* Return non-zero if keyboard input is on hold, zero otherwise. */
7823
7824int
7825kbd_on_hold_p (void)
7826{
7827 return kbd_is_on_hold;
7828}
7829
7830DEFUN ("list-system-processes", Flist_system_processes, Slist_system_processes,
7831 0, 0, 0,
7832 doc: /* Return a list of numerical process IDs of all running processes.
7833If this functionality is unsupported, return nil.
7834
7835See `process-attributes' for getting attributes of a process given its ID. */)
7836 (void)
7837{
7838 return list_system_processes ();
7839}
7840
7841DEFUN ("process-attributes", Fprocess_attributes,
7842 Sprocess_attributes, 1, 1, 0,
7843 doc: /* Return attributes of the process given by its PID, a number.
7844
7845Value is an alist where each element is a cons cell of the form
7846
7847 \(KEY . VALUE)
7848
7849If this functionality is unsupported, the value is nil.
7850
7851See `list-system-processes' for getting a list of all process IDs.
7852
7853The KEYs of the attributes that this function may return are listed
7854below, together with the type of the associated VALUE (in parentheses).
7855Not all platforms support all of these attributes; unsupported
7856attributes will not appear in the returned alist.
7857Unless explicitly indicated otherwise, numbers can have either
7858integer or floating point values.
7859
7860 euid -- Effective user User ID of the process (number)
7861 user -- User name corresponding to euid (string)
7862 egid -- Effective user Group ID of the process (number)
7863 group -- Group name corresponding to egid (string)
7864 comm -- Command name (executable name only) (string)
7865 state -- Process state code, such as "S", "R", or "T" (string)
7866 ppid -- Parent process ID (number)
7867 pgrp -- Process group ID (number)
7868 sess -- Session ID, i.e. process ID of session leader (number)
7869 ttname -- Controlling tty name (string)
7870 tpgid -- ID of foreground process group on the process's tty (number)
7871 minflt -- number of minor page faults (number)
7872 majflt -- number of major page faults (number)
7873 cminflt -- cumulative number of minor page faults (number)
7874 cmajflt -- cumulative number of major page faults (number)
7875 utime -- user time used by the process, in the (HIGH LOW USEC) format
7876 stime -- system time used by the process, in the (HIGH LOW USEC) format
7877 time -- sum of utime and stime, in the (HIGH LOW USEC) format
7878 cutime -- user time used by the process and its children, (HIGH LOW USEC)
7879 cstime -- system time used by the process and its children, (HIGH LOW USEC)
7880 ctime -- sum of cutime and cstime, in the (HIGH LOW USEC) format
7881 pri -- priority of the process (number)
7882 nice -- nice value of the process (number)
7883 thcount -- process thread count (number)
7884 start -- time the process started, in the (HIGH LOW USEC) format
7885 vsize -- virtual memory size of the process in KB's (number)
7886 rss -- resident set size of the process in KB's (number)
7887 etime -- elapsed time the process is running, in (HIGH LOW USEC) format
7888 pcpu -- percents of CPU time used by the process (floating-point number)
7889 pmem -- percents of total physical memory used by process's resident set
7890 (floating-point number)
7891 args -- command line which invoked the process (string). */)
7892 ( Lisp_Object pid)
7893{
7894 return system_process_attributes (pid);
7895}
7896
7897void
7898init_process ()
7899{
7900 kbd_is_on_hold = 0;
7901}
7902
7903void
7904syms_of_process ()
7905{
7906 QCtype = intern_c_string (":type");
7907 staticpro (&QCtype);
7908 QCname = intern_c_string (":name");
7909 staticpro (&QCname);
7910 QCtype = intern_c_string (":type");
7911 staticpro (&QCtype);
7912 QCname = intern_c_string (":name");
7913 staticpro (&QCname);
7914 Qeuid = intern_c_string ("euid");
7915 staticpro (&Qeuid);
7916 Qegid = intern_c_string ("egid");
7917 staticpro (&Qegid);
7918 Quser = intern_c_string ("user");
7919 staticpro (&Quser);
7920 Qgroup = intern_c_string ("group");
7921 staticpro (&Qgroup);
7922 Qcomm = intern_c_string ("comm");
7923 staticpro (&Qcomm);
7924 Qstate = intern_c_string ("state");
7925 staticpro (&Qstate);
7926 Qppid = intern_c_string ("ppid");
7927 staticpro (&Qppid);
7928 Qpgrp = intern_c_string ("pgrp");
7929 staticpro (&Qpgrp);
7930 Qsess = intern_c_string ("sess");
7931 staticpro (&Qsess);
7932 Qttname = intern_c_string ("ttname");
7933 staticpro (&Qttname);
7934 Qtpgid = intern_c_string ("tpgid");
7935 staticpro (&Qtpgid);
7936 Qminflt = intern_c_string ("minflt");
7937 staticpro (&Qminflt);
7938 Qmajflt = intern_c_string ("majflt");
7939 staticpro (&Qmajflt);
7940 Qcminflt = intern_c_string ("cminflt");
7941 staticpro (&Qcminflt);
7942 Qcmajflt = intern_c_string ("cmajflt");
7943 staticpro (&Qcmajflt);
7944 Qutime = intern_c_string ("utime");
7945 staticpro (&Qutime);
7946 Qstime = intern_c_string ("stime");
7947 staticpro (&Qstime);
7948 Qtime = intern_c_string ("time");
7949 staticpro (&Qtime);
7950 Qcutime = intern_c_string ("cutime");
7951 staticpro (&Qcutime);
7952 Qcstime = intern_c_string ("cstime");
7953 staticpro (&Qcstime);
7954 Qctime = intern_c_string ("ctime");
7955 staticpro (&Qctime);
7956 Qpri = intern_c_string ("pri");
7957 staticpro (&Qpri);
7958 Qnice = intern_c_string ("nice");
7959 staticpro (&Qnice);
7960 Qthcount = intern_c_string ("thcount");
7961 staticpro (&Qthcount);
7962 Qstart = intern_c_string ("start");
7963 staticpro (&Qstart);
7964 Qvsize = intern_c_string ("vsize");
7965 staticpro (&Qvsize);
7966 Qrss = intern_c_string ("rss");
7967 staticpro (&Qrss);
7968 Qetime = intern_c_string ("etime");
7969 staticpro (&Qetime);
7970 Qpcpu = intern_c_string ("pcpu");
7971 staticpro (&Qpcpu);
7972 Qpmem = intern_c_string ("pmem");
7973 staticpro (&Qpmem);
7974 Qargs = intern_c_string ("args");
7975 staticpro (&Qargs);
7976 7756
7977 defsubr (&Sget_buffer_process); 7757 defsubr (&Sget_buffer_process);
7978 defsubr (&Sprocess_inherit_coding_system_flag); 7758 defsubr (&Sprocess_inherit_coding_system_flag);
@@ -7980,8 +7760,5 @@ syms_of_process ()
7980 defsubr (&Sprocess_attributes); 7760 defsubr (&Sprocess_attributes);
7981} 7761}
7982 7762
7983
7984#endif /* not subprocesses */
7985
7986/* arch-tag: 3706c011-7b9a-4117-bd4f-59e7f701a4c4 7763/* arch-tag: 3706c011-7b9a-4117-bd4f-59e7f701a4c4
7987 (do not change this comment) */ 7764 (do not change this comment) */
diff --git a/src/s/hpux10-20.h b/src/s/hpux10-20.h
index dd0e1bea9ad..ee841041edb 100644
--- a/src/s/hpux10-20.h
+++ b/src/s/hpux10-20.h
@@ -146,9 +146,5 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
146/* No underscore please. */ 146/* No underscore please. */
147#define LDAV_SYMBOL "avenrun" 147#define LDAV_SYMBOL "avenrun"
148 148
149/* On USG systems these have different names. */
150#define index strchr
151#define rindex strrchr
152
153/* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6 149/* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6
154 (do not change this comment) */ 150 (do not change this comment) */
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index df9929f6823..a87e22b338c 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -274,8 +274,6 @@ typedef int pid_t;
274#define pclose _pclose 274#define pclose _pclose
275#define umask _umask 275#define umask _umask
276#define utimbuf _utimbuf 276#define utimbuf _utimbuf
277#define index strchr
278#define rindex strrchr
279#define strdup _strdup 277#define strdup _strdup
280#define strupr _strupr 278#define strupr _strupr
281#define strnicmp _strnicmp 279#define strnicmp _strnicmp
diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h
index e667ffdc106..b92a5bbb450 100644
--- a/src/s/usg5-4.h
+++ b/src/s/usg5-4.h
@@ -50,14 +50,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
50#define _setjmp setjmp 50#define _setjmp setjmp
51#define _longjmp longjmp 51#define _longjmp longjmp
52 52
53/* On USG systems these have different names. */
54#ifndef HAVE_INDEX
55#define index strchr
56#endif /* ! defined (HAVE_INDEX) */
57#ifndef HAVE_RINDEX
58#define rindex strrchr
59#endif /* ! defined (HAVE_RINDEX) */
60
61/* The docs for system V/386 suggest v.3 has sigpause, so let's try it. */ 53/* The docs for system V/386 suggest v.3 has sigpause, so let's try it. */
62#define HAVE_SYSV_SIGPAUSE 54#define HAVE_SYSV_SIGPAUSE
63 55
diff --git a/src/sysdep.c b/src/sysdep.c
index daca9d12510..e45664a8bd6 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1555,7 +1555,7 @@ init_system_name (void)
1555#ifndef CANNOT_DUMP 1555#ifndef CANNOT_DUMP
1556 if (initialized) 1556 if (initialized)
1557#endif /* not CANNOT_DUMP */ 1557#endif /* not CANNOT_DUMP */
1558 if (! index (hostname, '.')) 1558 if (! strchr (hostname, '.'))
1559 { 1559 {
1560 int count; 1560 int count;
1561#ifdef HAVE_GETADDRINFO 1561#ifdef HAVE_GETADDRINFO
@@ -1584,7 +1584,7 @@ init_system_name (void)
1584 while (it) 1584 while (it)
1585 { 1585 {
1586 char *fqdn = it->ai_canonname; 1586 char *fqdn = it->ai_canonname;
1587 if (fqdn && index (fqdn, '.') 1587 if (fqdn && strchr (fqdn, '.')
1588 && strcmp (fqdn, "localhost.localdomain") != 0) 1588 && strcmp (fqdn, "localhost.localdomain") != 0)
1589 break; 1589 break;
1590 it = it->ai_next; 1590 it = it->ai_next;
@@ -1620,13 +1620,13 @@ init_system_name (void)
1620 { 1620 {
1621 char *fqdn = (char *) hp->h_name; 1621 char *fqdn = (char *) hp->h_name;
1622 1622
1623 if (!index (fqdn, '.')) 1623 if (!strchr (fqdn, '.'))
1624 { 1624 {
1625 /* We still don't have a fully qualified domain name. 1625 /* We still don't have a fully qualified domain name.
1626 Try to find one in the list of alternate names */ 1626 Try to find one in the list of alternate names */
1627 char **alias = hp->h_aliases; 1627 char **alias = hp->h_aliases;
1628 while (*alias 1628 while (*alias
1629 && (!index (*alias, '.') 1629 && (!strchr (*alias, '.')
1630 || !strcmp (*alias, "localhost.localdomain"))) 1630 || !strcmp (*alias, "localhost.localdomain")))
1631 alias++; 1631 alias++;
1632 if (*alias) 1632 if (*alias)
diff --git a/src/vm-limit.c b/src/vm-limit.c
index cb42f78701b..aca0e0afb47 100644
--- a/src/vm-limit.c
+++ b/src/vm-limit.c
@@ -42,7 +42,7 @@ static enum warnlevel warnlevel;
42 42
43/* Function to call to issue a warning; 43/* Function to call to issue a warning;
44 0 means don't issue them. */ 44 0 means don't issue them. */
45static void (*warn_function) (char *); 45static void (*warn_function) (const char *);
46 46
47/* Start of data space; can be changed by calling malloc_init. */ 47/* Start of data space; can be changed by calling malloc_init. */
48static POINTER data_space_start; 48static POINTER data_space_start;
@@ -289,7 +289,7 @@ start_of_data (void)
289 WARNFUN specifies the function to call to issue a warning. */ 289 WARNFUN specifies the function to call to issue a warning. */
290 290
291void 291void
292memory_warnings (POINTER start, void (*warnfun) (char *)) 292memory_warnings (POINTER start, void (*warnfun) (const char *))
293{ 293{
294 extern void (* __after_morecore_hook) (void); /* From gmalloc.c */ 294 extern void (* __after_morecore_hook) (void); /* From gmalloc.c */
295 295
diff --git a/src/w32fns.c b/src/w32fns.c
index 916aea28eea..c1791f2bf3e 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -288,10 +288,15 @@ unsigned int msh_mousewheel = 0;
288#define MENU_FREE_DELAY 1000 288#define MENU_FREE_DELAY 1000
289static unsigned menu_free_timer = 0; 289static unsigned menu_free_timer = 0;
290 290
291/* In dispnew.c */
292
293extern Lisp_Object Vwindow_system_version;
294
291/* The below are defined in frame.c. */ 295/* The below are defined in frame.c. */
292 296
293extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode; 297extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
294extern Lisp_Object Vwindow_system_version; 298extern Lisp_Object Vwindow_system_version;
299extern Lisp_Object Qtooltip;
295 300
296#ifdef GLYPH_DEBUG 301#ifdef GLYPH_DEBUG
297int image_cache_refcount, dpyinfo_refcount; 302int image_cache_refcount, dpyinfo_refcount;
@@ -5476,9 +5481,8 @@ x_create_tip_frame (struct w32_display_info *dpyinfo,
5476 change_frame_size (f, height, width, 1, 0, 0); 5481 change_frame_size (f, height, width, 1, 0, 0);
5477 5482
5478 /* Add `tooltip' frame parameter's default value. */ 5483 /* Add `tooltip' frame parameter's default value. */
5479 if (NILP (Fframe_parameter (frame, intern ("tooltip")))) 5484 if (NILP (Fframe_parameter (frame, Qtooltip)))
5480 Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), 5485 Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil));
5481 Qnil));
5482 5486
5483 /* Set up faces after all frame parameters are known. This call 5487 /* Set up faces after all frame parameters are known. This call
5484 also merges in face attributes specified for new frames. 5488 also merges in face attributes specified for new frames.
diff --git a/src/w32term.c b/src/w32term.c
index 7ace4b01f95..9db533eb5e9 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -737,7 +737,6 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row,
737 struct frame *f = XFRAME (WINDOW_FRAME (w)); 737 struct frame *f = XFRAME (WINDOW_FRAME (w));
738 HDC hdc; 738 HDC hdc;
739 struct face *face = p->face; 739 struct face *face = p->face;
740 int rowY;
741 740
742 hdc = get_frame_dc (f); 741 hdc = get_frame_dc (f);
743 742
@@ -796,21 +795,7 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row,
796 } 795 }
797 796
798 /* Must clip because of partially visible lines. */ 797 /* Must clip because of partially visible lines. */
799 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); 798 w32_clip_to_row (w, row, -1, hdc);
800 if (p->y < rowY)
801 {
802 /* Adjust position of "bottom aligned" bitmap on partially
803 visible last row. */
804 int oldY = row->y;
805 int oldVH = row->visible_height;
806 row->visible_height = p->h;
807 row->y -= rowY - p->y;
808 w32_clip_to_row (w, row, -1, hdc);
809 row->y = oldY;
810 row->visible_height = oldVH;
811 }
812 else
813 w32_clip_to_row (w, row, -1, hdc);
814 799
815 if (p->which && p->which < max_fringe_bmp) 800 if (p->which && p->which < max_fringe_bmp)
816 { 801 {
diff --git a/src/xdisp.c b/src/xdisp.c
index d145e7bd9f6..b68425da743 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -6625,6 +6625,7 @@ static int
6625next_element_from_image (struct it *it) 6625next_element_from_image (struct it *it)
6626{ 6626{
6627 it->what = IT_IMAGE; 6627 it->what = IT_IMAGE;
6628 it->ignore_overlay_strings_at_pos_p = 0;
6628 return 1; 6629 return 1;
6629} 6630}
6630 6631
@@ -8412,7 +8413,7 @@ message3_nolog (Lisp_Object m, int nbytes, int multibyte)
8412 that was alloca'd. */ 8413 that was alloca'd. */
8413 8414
8414void 8415void
8415message1 (char *m) 8416message1 (const char *m)
8416{ 8417{
8417 message2 (m, (m ? strlen (m) : 0), 0); 8418 message2 (m, (m ? strlen (m) : 0), 0);
8418} 8419}
@@ -8421,7 +8422,7 @@ message1 (char *m)
8421/* The non-logging counterpart of message1. */ 8422/* The non-logging counterpart of message1. */
8422 8423
8423void 8424void
8424message1_nolog (char *m) 8425message1_nolog (const char *m)
8425{ 8426{
8426 message2_nolog (m, (m ? strlen (m) : 0), 0); 8427 message2_nolog (m, (m ? strlen (m) : 0), 0);
8427} 8428}
@@ -8430,7 +8431,7 @@ message1_nolog (char *m)
8430 which gets replaced with STRING. */ 8431 which gets replaced with STRING. */
8431 8432
8432void 8433void
8433message_with_string (char *m, Lisp_Object string, int log) 8434message_with_string (const char *m, Lisp_Object string, int log)
8434{ 8435{
8435 CHECK_STRING (string); 8436 CHECK_STRING (string);
8436 8437
@@ -8493,9 +8494,8 @@ message_with_string (char *m, Lisp_Object string, int log)
8493/* Dump an informative message to the minibuf. If M is 0, clear out 8494/* Dump an informative message to the minibuf. If M is 0, clear out
8494 any existing message, and let the mini-buffer text show through. */ 8495 any existing message, and let the mini-buffer text show through. */
8495 8496
8496/* VARARGS 1 */ 8497static void
8497void 8498vmessage (const char *m, va_list ap)
8498message (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3)
8499{ 8499{
8500 if (noninteractive) 8500 if (noninteractive)
8501 { 8501 {
@@ -8504,7 +8504,7 @@ message (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3)
8504 if (noninteractive_need_newline) 8504 if (noninteractive_need_newline)
8505 putc ('\n', stderr); 8505 putc ('\n', stderr);
8506 noninteractive_need_newline = 0; 8506 noninteractive_need_newline = 0;
8507 fprintf (stderr, m, a1, a2, a3); 8507 vfprintf (stderr, m, ap);
8508 if (cursor_in_echo_area == 0) 8508 if (cursor_in_echo_area == 0)
8509 fprintf (stderr, "\n"); 8509 fprintf (stderr, "\n");
8510 fflush (stderr); 8510 fflush (stderr);
@@ -8532,13 +8532,9 @@ message (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3)
8532 if (m) 8532 if (m)
8533 { 8533 {
8534 int len; 8534 int len;
8535 char *a[3];
8536 a[0] = (char *) a1;
8537 a[1] = (char *) a2;
8538 a[2] = (char *) a3;
8539 8535
8540 len = doprnt (FRAME_MESSAGE_BUF (f), 8536 len = doprnt (FRAME_MESSAGE_BUF (f),
8541 FRAME_MESSAGE_BUF_SIZE (f), m, (char *)0, 3, a); 8537 FRAME_MESSAGE_BUF_SIZE (f), m, (char *)0, ap);
8542 8538
8543 message2 (FRAME_MESSAGE_BUF (f), len, 0); 8539 message2 (FRAME_MESSAGE_BUF (f), len, 0);
8544 } 8540 }
@@ -8552,17 +8548,29 @@ message (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3)
8552 } 8548 }
8553} 8549}
8554 8550
8551void
8552message (const char *m, ...)
8553{
8554 va_list ap;
8555 va_start (ap, m);
8556 vmessage (m, ap);
8557 va_end (ap);
8558}
8559
8555 8560
8556/* The non-logging version of message. */ 8561/* The non-logging version of message. */
8557 8562
8558void 8563void
8559message_nolog (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3) 8564message_nolog (const char *m, ...)
8560{ 8565{
8561 Lisp_Object old_log_max; 8566 Lisp_Object old_log_max;
8567 va_list ap;
8568 va_start (ap, m);
8562 old_log_max = Vmessage_log_max; 8569 old_log_max = Vmessage_log_max;
8563 Vmessage_log_max = Qnil; 8570 Vmessage_log_max = Qnil;
8564 message (m, a1, a2, a3); 8571 vmessage (m, ap);
8565 Vmessage_log_max = old_log_max; 8572 Vmessage_log_max = old_log_max;
8573 va_end (ap);
8566} 8574}
8567 8575
8568 8576
diff --git a/src/xfaces.c b/src/xfaces.c
index 520546c42b1..ad436f06202 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -5605,6 +5605,7 @@ realize_face (struct face_cache *cache, Lisp_Object *attrs, int former_face_id)
5605 struct face *former_face = cache->faces_by_id[former_face_id]; 5605 struct face *former_face = cache->faces_by_id[former_face_id];
5606 uncache_face (cache, former_face); 5606 uncache_face (cache, former_face);
5607 free_realized_face (cache->f, former_face); 5607 free_realized_face (cache->f, former_face);
5608 SET_FRAME_GARBAGED (cache->f);
5608 } 5609 }
5609 5610
5610 if (FRAME_WINDOW_P (cache->f)) 5611 if (FRAME_WINDOW_P (cache->f))
@@ -6790,10 +6791,10 @@ Each element is of the form:
6790 (FACE REPLACEMENT...), 6791 (FACE REPLACEMENT...),
6791 6792
6792which causes display of the face FACE to use REPLACEMENT... instead. 6793which causes display of the face FACE to use REPLACEMENT... instead.
6793REPLACEMENT... is interpreted the same way the value of a `face' text 6794REPLACEMENT... is interpreted the same way as the value of a `face'
6794property is: it may be (1) A face name, (2) A list of face names, (3) A 6795text property: it may be (1) A face name, (2) A list of face names,
6795property-list of face attribute/value pairs, or (4) A list of face names 6796(3) A property-list of face attribute/value pairs, or (4) A list of
6796intermixed with lists containing face attribute/value pairs. 6797face names or lists containing face attribute/value pairs.
6797 6798
6798Multiple entries in REPLACEMENT... are merged together to form the final 6799Multiple entries in REPLACEMENT... are merged together to form the final
6799result, with faces or attributes earlier in the list taking precedence 6800result, with faces or attributes earlier in the list taking precedence
@@ -6817,7 +6818,11 @@ face definitions. For instance, the mode my-mode could define a face
6817`my-mode-default', and then in the mode setup function, do: 6818`my-mode-default', and then in the mode setup function, do:
6818 6819
6819 (set (make-local-variable 'face-remapping-alist) 6820 (set (make-local-variable 'face-remapping-alist)
6820 '((default my-mode-default)))). */); 6821 '((default my-mode-default)))).
6822
6823Because Emacs normally only redraws screen areas when the underlying
6824buffer contents change, you may need to call `redraw-display' after
6825changing this variable for it to take effect. */);
6821 Vface_remapping_alist = Qnil; 6826 Vface_remapping_alist = Qnil;
6822 6827
6823 DEFVAR_LISP ("face-font-rescale-alist", &Vface_font_rescale_alist, 6828 DEFVAR_LISP ("face-font-rescale-alist", &Vface_font_rescale_alist,
diff --git a/src/xfns.c b/src/xfns.c
index 3f4f32bbb2c..5a96598eaee 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -205,6 +205,7 @@ extern Lisp_Object Vsystem_name;
205/* The below are defined in frame.c. */ 205/* The below are defined in frame.c. */
206 206
207extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode; 207extern Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
208extern Lisp_Object Qtooltip;
208 209
209#if GLYPH_DEBUG 210#if GLYPH_DEBUG
210int image_cache_refcount, dpyinfo_refcount; 211int image_cache_refcount, dpyinfo_refcount;
@@ -2450,6 +2451,7 @@ x_window (f, window_prompting, minibuffer_only)
2450 XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++; 2451 XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++;
2451 XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++; 2452 XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++;
2452 XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; 2453 XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++;
2454 XtSetArg (al[ac], XtNborderWidth, 0); ac++;
2453 XtSetValues (pane_widget, al, ac); 2455 XtSetValues (pane_widget, al, ac);
2454 f->output_data.x->column_widget = pane_widget; 2456 f->output_data.x->column_widget = pane_widget;
2455 2457
@@ -2465,6 +2467,7 @@ x_window (f, window_prompting, minibuffer_only)
2465 XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++; 2467 XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++;
2466 XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++; 2468 XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++;
2467 XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; 2469 XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++;
2470 XtSetArg (al[ac], XtNborderWidth, 0); ac++;
2468 frame_widget = XtCreateWidget (f->namebuf, emacsFrameClass, pane_widget, 2471 frame_widget = XtCreateWidget (f->namebuf, emacsFrameClass, pane_widget,
2469 al, ac); 2472 al, ac);
2470 2473
@@ -4002,7 +4005,7 @@ select_visual (struct x_display_info *dpyinfo)
4002 XVisualInfo vinfo; 4005 XVisualInfo vinfo;
4003 4006
4004 strcpy (s, SDATA (value)); 4007 strcpy (s, SDATA (value));
4005 dash = index (s, '-'); 4008 dash = strchr (s, '-');
4006 if (dash) 4009 if (dash)
4007 { 4010 {
4008 dpyinfo->n_planes = atoi (dash + 1); 4011 dpyinfo->n_planes = atoi (dash + 1);
@@ -4845,9 +4848,8 @@ x_create_tip_frame (struct x_display_info *dpyinfo, Lisp_Object parms, Lisp_Obje
4845 change_frame_size (f, height, width, 1, 0, 0); 4848 change_frame_size (f, height, width, 1, 0, 0);
4846 4849
4847 /* Add `tooltip' frame parameter's default value. */ 4850 /* Add `tooltip' frame parameter's default value. */
4848 if (NILP (Fframe_parameter (frame, intern ("tooltip")))) 4851 if (NILP (Fframe_parameter (frame, Qtooltip)))
4849 Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), 4852 Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil));
4850 Qnil));
4851 4853
4852 /* FIXME - can this be done in a similar way to normal frames? 4854 /* FIXME - can this be done in a similar way to normal frames?
4853 http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00641.html */ 4855 http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00641.html */
diff --git a/src/xmenu.c b/src/xmenu.c
index 431ef58e0b1..93a40792aec 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -676,6 +676,14 @@ x_activate_menubar (FRAME_PTR f)
676 set_frame_menubar (f, 0, 1); 676 set_frame_menubar (f, 0, 1);
677 BLOCK_INPUT; 677 BLOCK_INPUT;
678#ifdef USE_GTK 678#ifdef USE_GTK
679 /* If we click outside any menu item, the menu bar still grabs.
680 So we send Press and the Release. If outside, grab is released.
681 If on a menu item, it is popped up normally.
682 PutBack is like a stack, so we put back in reverse order. */
683 f->output_data.x->saved_menu_event->type = ButtonRelease;
684 XPutBackEvent (f->output_data.x->display_info->display,
685 f->output_data.x->saved_menu_event);
686 f->output_data.x->saved_menu_event->type = ButtonPress;
679 XPutBackEvent (f->output_data.x->display_info->display, 687 XPutBackEvent (f->output_data.x->display_info->display,
680 f->output_data.x->saved_menu_event); 688 f->output_data.x->saved_menu_event);
681 popup_activated_flag = 1; 689 popup_activated_flag = 1;
@@ -1285,6 +1293,9 @@ set_frame_menubar (FRAME_PTR f, int first_time, int deep_p)
1285 } 1293 }
1286 1294
1287 { 1295 {
1296 if (f->output_data.x->menubar_widget)
1297 XtRealizeWidget (f->output_data.x->menubar_widget);
1298
1288 int menubar_size 1299 int menubar_size
1289 = (f->output_data.x->menubar_widget 1300 = (f->output_data.x->menubar_widget
1290 ? (f->output_data.x->menubar_widget->core.height 1301 ? (f->output_data.x->menubar_widget->core.height
@@ -1385,7 +1396,7 @@ free_frame_menubar (f)
1385 XtVaSetValues (f->output_data.x->widget, XtNx, x0, XtNy, y0, NULL); 1396 XtVaSetValues (f->output_data.x->widget, XtNx, x0, XtNy, y0, NULL);
1386 } 1397 }
1387#endif 1398#endif
1388 1399 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
1389 UNBLOCK_INPUT; 1400 UNBLOCK_INPUT;
1390 } 1401 }
1391} 1402}
diff --git a/src/xterm.c b/src/xterm.c
index d1bf9eaa5ea..3ec0636fc60 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -753,24 +753,9 @@ x_draw_fringe_bitmap (struct window *w, struct glyph_row *row, struct draw_fring
753 Window window = FRAME_X_WINDOW (f); 753 Window window = FRAME_X_WINDOW (f);
754 GC gc = f->output_data.x->normal_gc; 754 GC gc = f->output_data.x->normal_gc;
755 struct face *face = p->face; 755 struct face *face = p->face;
756 int rowY;
757 756
758 /* Must clip because of partially visible lines. */ 757 /* Must clip because of partially visible lines. */
759 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); 758 x_clip_to_row (w, row, -1, gc);
760 if (p->y < rowY)
761 {
762 /* Adjust position of "bottom aligned" bitmap on partially
763 visible last row. */
764 int oldY = row->y;
765 int oldVH = row->visible_height;
766 row->visible_height = p->h;
767 row->y -= rowY - p->y;
768 x_clip_to_row (w, row, -1, gc);
769 row->y = oldY;
770 row->visible_height = oldVH;
771 }
772 else
773 x_clip_to_row (w, row, -1, gc);
774 759
775 if (!p->overlay_p) 760 if (!p->overlay_p)
776 { 761 {