aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2005-05-20 04:22:05 +0000
committerMiles Bader2005-05-20 04:22:05 +0000
commit64e9342958694825be1664890dcd22fffcd50d3a (patch)
treea43e1796f5a49ae7eeec671447d10ac3731a1834
parent5447510256e5a1b371407b751ddcc461044da5df (diff)
parenta18ff9886771c41186eebf8d7984fee2120dbe36 (diff)
downloademacs-64e9342958694825be1664890dcd22fffcd50d3a.tar.gz
emacs-64e9342958694825be1664890dcd22fffcd50d3a.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-53
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 302-319) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 69) - Update from CVS
-rw-r--r--ChangeLog12
-rw-r--r--admin/FOR-RELEASE24
-rw-r--r--admin/notes/years45
-rwxr-xr-xconfigure866
-rw-r--r--configure.in27
-rw-r--r--etc/ChangeLog29
-rw-r--r--etc/GNU31
-rw-r--r--etc/NEWS1551
-rw-r--r--etc/TODO3
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/make-docfile.c10
-rw-r--r--lisp/ChangeLog779
-rw-r--r--lisp/add-log.el11
-rw-r--r--lisp/align.el4
-rw-r--r--lisp/ansi-color.el2
-rw-r--r--lisp/array.el14
-rw-r--r--lisp/buff-menu.el3
-rw-r--r--lisp/calc/calc-comb.el2
-rw-r--r--lisp/calc/calc-cplx.el2
-rw-r--r--lisp/calc/calc-ext.el6
-rw-r--r--lisp/calc/calc-fin.el2
-rw-r--r--lisp/calc/calc-forms.el2
-rw-r--r--lisp/calc/calc-funcs.el2
-rw-r--r--lisp/calc/calc-graph.el1
-rw-r--r--lisp/calc/calc-help.el4
-rw-r--r--lisp/calc/calc-incom.el2
-rw-r--r--lisp/calc/calc-keypd.el2
-rw-r--r--lisp/calc/calc-macs.el2
-rw-r--r--lisp/calc/calc-map.el2
-rw-r--r--lisp/calc/calc-misc.el2
-rw-r--r--lisp/calc/calc-mode.el2
-rw-r--r--lisp/calc/calc-mtx.el2
-rw-r--r--lisp/calc/calc-poly.el15
-rw-r--r--lisp/calc/calc-prog.el1
-rw-r--r--lisp/calc/calc-rewr.el2
-rw-r--r--lisp/calc/calc-rules.el2
-rw-r--r--lisp/calc/calc-stat.el2
-rw-r--r--lisp/calc/calc-store.el143
-rw-r--r--lisp/calc/calc-stuff.el2
-rw-r--r--lisp/calc/calc-trail.el2
-rw-r--r--lisp/calc/calc-undo.el2
-rw-r--r--lisp/calc/calc-vec.el2
-rw-r--r--lisp/calc/calc.el2
-rw-r--r--lisp/calc/calcalg3.el2
-rw-r--r--lisp/calc/calcsel2.el2
-rw-r--r--lisp/calculator.el19
-rw-r--r--lisp/calendar/appt.el4
-rw-r--r--lisp/calendar/cal-bahai.el8
-rw-r--r--lisp/calendar/cal-hebrew.el8
-rw-r--r--lisp/calendar/cal-islam.el8
-rw-r--r--lisp/calendar/calendar.el4
-rw-r--r--lisp/calendar/diary-lib.el20
-rw-r--r--lisp/calendar/solar.el86
-rw-r--r--lisp/dabbrev.el3
-rw-r--r--lisp/diff-mode.el15
-rw-r--r--lisp/dired-aux.el47
-rw-r--r--lisp/dired-x.el16
-rw-r--r--lisp/dired.el47
-rw-r--r--lisp/dnd.el1
-rw-r--r--lisp/ediff-diff.el20
-rw-r--r--lisp/edmacro.el4
-rw-r--r--lisp/emacs-lisp/authors.el5
-rw-r--r--lisp/emacs-lisp/byte-run.el5
-rw-r--r--lisp/emacs-lisp/bytecomp.el28
-rw-r--r--lisp/emacs-lisp/cl-extra.el2
-rw-r--r--lisp/emacs-lisp/cl-macs.el4
-rw-r--r--lisp/emacs-lisp/cl-seq.el4
-rw-r--r--lisp/emacs-lisp/cl.el14
-rw-r--r--lisp/emacs-lisp/copyright.el42
-rw-r--r--lisp/emacs-lisp/derived.el4
-rw-r--r--lisp/emacs-lisp/easy-mmode.el23
-rw-r--r--lisp/emacs-lisp/easymenu.el6
-rw-r--r--lisp/emacs-lisp/eldoc.el7
-rw-r--r--lisp/emacs-lisp/generic.el74
-rw-r--r--lisp/emacs-lisp/lisp-mnt.el2
-rw-r--r--lisp/emacs-lisp/lisp-mode.el3
-rw-r--r--lisp/emacs-lisp/lisp.el9
-rw-r--r--lisp/emacs-lisp/re-builder.el2
-rw-r--r--lisp/emacs-lisp/testcover.el3
-rw-r--r--lisp/emerge.el20
-rw-r--r--lisp/emulation/crisp.el8
-rw-r--r--lisp/emulation/cua-base.el20
-rw-r--r--lisp/emulation/cua-rect.el6
-rw-r--r--lisp/emulation/edt.el8
-rw-r--r--lisp/emulation/pc-select.el2
-rw-r--r--lisp/emulation/tpu-edt.el2
-rw-r--r--lisp/emulation/tpu-extras.el8
-rw-r--r--lisp/emulation/vip.el6
-rw-r--r--lisp/emulation/viper-cmd.el2
-rw-r--r--lisp/emulation/viper-ex.el10
-rw-r--r--lisp/emulation/viper-keym.el2
-rw-r--r--lisp/emulation/viper-macs.el2
-rw-r--r--lisp/emulation/viper-util.el2
-rw-r--r--lisp/emulation/viper.el2
-rw-r--r--lisp/eshell/esh-mode.el5
-rw-r--r--lisp/faces.el24
-rw-r--r--lisp/files.el56
-rw-r--r--lisp/finder.el2
-rw-r--r--lisp/follow.el4
-rw-r--r--lisp/font-lock.el247
-rw-r--r--lisp/forms.el4
-rw-r--r--lisp/frame.el2
-rw-r--r--lisp/generic-x.el112
-rw-r--r--lisp/gnus/ChangeLog17
-rw-r--r--lisp/gnus/gnus-art.el3
-rw-r--r--lisp/gnus/gnus.el6
-rw-r--r--lisp/gnus/nndb.el15
-rw-r--r--lisp/gnus/nntp.el10
-rw-r--r--lisp/gnus/spam-report.el2
-rw-r--r--lisp/help-fns.el7
-rw-r--r--lisp/help-mode.el12
-rw-r--r--lisp/hexl.el2
-rw-r--r--lisp/ibuf-ext.el4
-rw-r--r--lisp/ibuffer.el4
-rw-r--r--lisp/ido.el87
-rw-r--r--lisp/imenu.el3
-rw-r--r--lisp/international/ccl.el7
-rw-r--r--lisp/international/characters.el8
-rw-r--r--lisp/international/codepage.el5
-rw-r--r--lisp/international/encoded-kb.el7
-rw-r--r--lisp/international/fontset.el7
-rw-r--r--lisp/international/isearch-x.el7
-rw-r--r--lisp/international/iso-ascii.el2
-rw-r--r--lisp/international/iso-cvt.el4
-rw-r--r--lisp/international/iso-transl.el3
-rw-r--r--lisp/international/ja-dic-cnv.el5
-rw-r--r--lisp/international/ja-dic-utl.el5
-rw-r--r--lisp/international/kinsoku.el6
-rw-r--r--lisp/international/kkc.el6
-rw-r--r--lisp/international/latexenc.el1
-rw-r--r--lisp/international/latin1-disp.el2
-rw-r--r--lisp/international/mule-cmds.el8
-rw-r--r--lisp/international/mule-conf.el8
-rw-r--r--lisp/international/mule-diag.el8
-rw-r--r--lisp/international/mule-util.el8
-rw-r--r--lisp/international/mule.el8
-rw-r--r--lisp/international/ogonek.el6
-rw-r--r--lisp/international/quail.el6
-rw-r--r--lisp/international/swedish.el2
-rw-r--r--lisp/international/titdic-cnv.el6
-rw-r--r--lisp/jit-lock.el5
-rw-r--r--lisp/language/china-util.el8
-rw-r--r--lisp/language/chinese.el6
-rw-r--r--lisp/language/cyril-util.el2
-rw-r--r--lisp/language/cyrillic.el7
-rw-r--r--lisp/language/devan-util.el6
-rw-r--r--lisp/language/devanagari.el2
-rw-r--r--lisp/language/english.el6
-rw-r--r--lisp/language/ethio-util.el7
-rw-r--r--lisp/language/ethiopic.el6
-rw-r--r--lisp/language/european.el8
-rw-r--r--lisp/language/greek.el5
-rw-r--r--lisp/language/hebrew.el7
-rw-r--r--lisp/language/indian.el5
-rw-r--r--lisp/language/japan-util.el7
-rw-r--r--lisp/language/japanese.el6
-rw-r--r--lisp/language/korea-util.el5
-rw-r--r--lisp/language/korean.el6
-rw-r--r--lisp/language/lao-util.el7
-rw-r--r--lisp/language/lao.el7
-rw-r--r--lisp/language/misc-lang.el5
-rw-r--r--lisp/language/tibet-util.el6
-rw-r--r--lisp/language/tibetan.el6
-rw-r--r--lisp/language/viet-util.el6
-rw-r--r--lisp/language/vietnamese.el7
-rw-r--r--lisp/mail/feedmail.el2
-rw-r--r--lisp/mail/mailalias.el2
-rw-r--r--lisp/mail/rmail.el2
-rw-r--r--lisp/mail/rmailsum.el24
-rw-r--r--lisp/mail/smtpmail.el2
-rw-r--r--lisp/mail/supercite.el8
-rw-r--r--lisp/mh-e/mh-acros.el2
-rw-r--r--lisp/mh-e/mh-alias.el3
-rw-r--r--lisp/mh-e/mh-comp.el3
-rw-r--r--lisp/mh-e/mh-customize.el2
-rw-r--r--lisp/mh-e/mh-e.el2
-rw-r--r--lisp/mh-e/mh-funcs.el2
-rw-r--r--lisp/mh-e/mh-gnus.el2
-rw-r--r--lisp/mh-e/mh-identity.el2
-rw-r--r--lisp/mh-e/mh-inc.el2
-rw-r--r--lisp/mh-e/mh-index.el2
-rw-r--r--lisp/mh-e/mh-init.el2
-rw-r--r--lisp/mh-e/mh-junk.el2
-rw-r--r--lisp/mh-e/mh-loaddefs.el2
-rw-r--r--lisp/mh-e/mh-mime.el3
-rw-r--r--lisp/mh-e/mh-pick.el2
-rw-r--r--lisp/mh-e/mh-print.el2
-rw-r--r--lisp/mh-e/mh-seq.el2
-rw-r--r--lisp/mh-e/mh-speed.el2
-rw-r--r--lisp/mh-e/mh-utils.el3
-rw-r--r--lisp/net/ange-ftp.el32
-rw-r--r--lisp/net/browse-url.el2
-rw-r--r--lisp/net/eudc.el2
-rw-r--r--lisp/net/ldap.el2
-rw-r--r--lisp/net/net-utils.el5
-rw-r--r--lisp/net/quickurl.el2
-rw-r--r--lisp/net/rlogin.el2
-rw-r--r--lisp/net/snmp-mode.el2
-rw-r--r--lisp/net/telnet.el26
-rw-r--r--lisp/net/tls.el2
-rw-r--r--lisp/net/tramp-ftp.el2
-rw-r--r--lisp/net/tramp-smb.el4
-rw-r--r--lisp/net/tramp-util.el2
-rw-r--r--lisp/net/tramp-uu.el2
-rw-r--r--lisp/net/tramp-vc.el2
-rw-r--r--lisp/net/tramp.el120
-rw-r--r--lisp/net/trampver.el4
-rw-r--r--lisp/net/webjump.el2
-rw-r--r--lisp/net/zone-mode.el2
-rw-r--r--lisp/newcomment.el21
-rw-r--r--lisp/obsolete/rsz-mini.el3
-rw-r--r--lisp/play/gametree.el6
-rw-r--r--lisp/progmodes/ada-xref.el6
-rw-r--r--lisp/progmodes/antlr-mode.el1
-rw-r--r--lisp/progmodes/cc-engine.el3
-rw-r--r--lisp/progmodes/cc-fonts.el2
-rw-r--r--lisp/progmodes/compile.el31
-rw-r--r--lisp/progmodes/cperl-mode.el2
-rw-r--r--lisp/progmodes/delphi.el2
-rw-r--r--lisp/progmodes/ebrowse.el12
-rw-r--r--lisp/progmodes/etags.el16
-rw-r--r--lisp/progmodes/flymake.el2
-rw-r--r--lisp/progmodes/gud.el8
-rw-r--r--lisp/progmodes/idlw-shell.el612
-rw-r--r--lisp/progmodes/inf-lisp.el12
-rw-r--r--lisp/progmodes/make-mode.el557
-rw-r--r--lisp/progmodes/perl-mode.el30
-rw-r--r--lisp/progmodes/prolog.el14
-rw-r--r--lisp/progmodes/ps-mode.el2
-rw-r--r--lisp/progmodes/sh-script.el60
-rw-r--r--lisp/progmodes/tcl.el33
-rw-r--r--lisp/progmodes/vhdl-mode.el8
-rw-r--r--lisp/replace.el20
-rw-r--r--lisp/reveal.el3
-rw-r--r--lisp/server.el6
-rw-r--r--lisp/shadowfile.el4
-rw-r--r--lisp/shell.el2
-rw-r--r--lisp/startup.el6
-rw-r--r--lisp/subr.el100
-rw-r--r--lisp/term.el2
-rw-r--r--lisp/term/mac-win.el9
-rw-r--r--lisp/term/sun-mouse.el2
-rw-r--r--lisp/term/w32-win.el2
-rw-r--r--lisp/term/x-win.el2
-rw-r--r--lisp/terminal.el2
-rw-r--r--lisp/textmodes/fill.el3
-rw-r--r--lisp/textmodes/ispell.el4
-rw-r--r--lisp/textmodes/nroff-mode.el2
-rw-r--r--lisp/textmodes/reftex-auc.el5
-rw-r--r--lisp/textmodes/reftex-cite.el14
-rw-r--r--lisp/textmodes/reftex-dcr.el5
-rw-r--r--lisp/textmodes/reftex-global.el9
-rw-r--r--lisp/textmodes/reftex-index.el2
-rw-r--r--lisp/textmodes/reftex-parse.el6
-rw-r--r--lisp/textmodes/reftex-ref.el7
-rw-r--r--lisp/textmodes/reftex-sel.el42
-rw-r--r--lisp/textmodes/reftex-toc.el5
-rw-r--r--lisp/textmodes/reftex-vars.el25
-rw-r--r--lisp/textmodes/reftex.el49
-rw-r--r--lisp/textmodes/spell.el6
-rw-r--r--lisp/textmodes/table.el3
-rw-r--r--lisp/textmodes/texinfmt.el2
-rw-r--r--lisp/time-stamp.el10
-rw-r--r--lisp/time.el2
-rw-r--r--lisp/timezone.el16
-rw-r--r--lisp/tmm.el5
-rw-r--r--lisp/toolbar/tool-bar.el2
-rw-r--r--lisp/uniquify.el24
-rw-r--r--lisp/url/ChangeLog18
-rw-r--r--lisp/url/url-auth.el2
-rw-r--r--lisp/url/url-cookie.el28
-rw-r--r--lisp/url/url-dav.el22
-rw-r--r--lisp/url/url-http.el10
-rw-r--r--lisp/url/url-ns.el6
-rw-r--r--lisp/url/url-parse.el2
-rw-r--r--lisp/url/url-util.el2
-rw-r--r--lisp/vms-patch.el2
-rw-r--r--lisp/w32-vars.el3
-rw-r--r--lispref/ChangeLog70
-rw-r--r--lispref/elisp.texi8
-rw-r--r--lispref/keymaps.texi1
-rw-r--r--lispref/loading.texi8
-rw-r--r--lispref/modes.texi599
-rw-r--r--lispref/processes.texi41
-rw-r--r--lispref/tips.texi21
-rw-r--r--lispref/variables.texi174
-rw-r--r--mac/ChangeLog45
-rw-r--r--mac/inc/config.h1208
-rw-r--r--mac/inc/m-mac.h26
-rw-r--r--mac/inc/s-mac.h77
-rw-r--r--mac/inc/sys/time.h15
-rw-r--r--mac/makefile.MPW170
-rw-r--r--man/ChangeLog75
-rw-r--r--man/basic.texi27
-rw-r--r--man/buffers.texi17
-rw-r--r--man/building.texi23
-rw-r--r--man/calc.texi60
-rw-r--r--man/custom.texi12
-rw-r--r--man/display.texi40
-rw-r--r--man/ediff.texi6
-rw-r--r--man/emacs.texi141
-rw-r--r--man/files.texi7
-rw-r--r--man/frames.texi2
-rw-r--r--man/killing.texi2
-rw-r--r--man/kmacro.texi7
-rw-r--r--man/maintaining.texi7
-rw-r--r--man/major.texi3
-rw-r--r--man/mini.texi11
-rw-r--r--man/misc.texi6
-rw-r--r--man/mule.texi7
-rw-r--r--man/programs.texi9
-rw-r--r--man/reftex.texi54
-rw-r--r--man/trampver.texi2
-rw-r--r--man/url.texi7
-rw-r--r--src/.gdbinit38
-rw-r--r--src/ChangeLog87
-rw-r--r--src/alloc.c7
-rw-r--r--src/emacs.c23
-rw-r--r--src/fileio.c51
-rw-r--r--src/keyboard.c82
-rw-r--r--src/mac.c299
-rw-r--r--src/macfns.c1
-rw-r--r--src/macmenu.c1
-rw-r--r--src/macselect.c4
-rw-r--r--src/macterm.c85
-rw-r--r--src/process.c7
-rw-r--r--src/unexmacosx.c98
-rw-r--r--src/xdisp.c23
328 files changed, 6817 insertions, 4410 deletions
diff --git a/ChangeLog b/ChangeLog
index 7468324b229..1ac3ab67cb8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
12005-05-11 J,Ai(Br,At(Bme Marant <jmarant@marant.org>
2
3 * configure.in: Add --enable-locallisppath.
4 * configure: Regenerate.
5
62005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7
8 * configure.in: Don't check HAVE_CARBON if HAVE_X11 is set to yes.
9 Check HAVE_CARBON before USE_TOOLKIT_SCROLL_BARS. Define
10 USE_TOOLKIT_SCROLL_BARS by default if HAVE_CARBON is set to yes.
11 * configure: Regenerate.
12
12005-05-07 J,Ai(Br,At(Bme Marant <jerome@marant.org> 132005-05-07 J,Ai(Br,At(Bme Marant <jerome@marant.org>
2 14
3 * make-dist: Remove references to makefile.nt and makefile.def. 15 * make-dist: Remove references to makefile.nt and makefile.def.
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index b0169008af0..c1e91ff9595 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -93,11 +93,19 @@ you're going to handle.
93 93
94DIRECTORY STATUS IN CHARGE 94DIRECTORY STATUS IN CHARGE
95--------- ------ --------- 95--------- ------ ---------
96lisp/international working Kenichi Handa 96leim working Kenichi Handa
97lisp/languages working Kenichi Handa 97lisp/calc done Thien-Thi Nguyen
98lisp/net working Thien-Thi Nguyen 98lisp/calendar working Glenn Morris
99lisp/emulation done Thien-Thi Nguyen
100lisp/eshell working Thien-Thi Nguyen
101lisp/international done Kenichi Handa
102lisp/languages done Kenichi Handa
103lisp/mh-e done Thien-Thi Nguyen
104lisp/net done Thien-Thi Nguyen
99lisp/play done Thien-Thi Nguyen 105lisp/play done Thien-Thi Nguyen
100lisp/term working Thien-Thi Nguyen 106lisp/term done Thien-Thi Nguyen
107lisp/toolbar done Thien-Thi Nguyen
108lisp/url working Thien-Thi Nguyen
101 109
102** Update AUTHORS. 110** Update AUTHORS.
103 111
@@ -216,10 +224,10 @@ lispref/windows.texi "Luc Teirlinck" Chong Yidong
216 224
217** Check the Emacs Tutorial. 225** Check the Emacs Tutorial.
218 226
219The first line of every tutorial must begin with a sentence saying 227The first line of every tutorial must begin with text ending in a period
220"Emacs Tutorial" in the respective language. This should be followed 228(".", ASCII 0x2E) saying "Emacs Tutorial" in the respective language.
221by "See end for copying conditions", likewise in the respective 229This should be followed by "See end for copying conditions", likewise
222language. 230in the respective language.
223 231
224After each file name, on the same line or the following line, come the 232After each file name, on the same line or the following line, come the
225names of the people who have checked it. 233names of the people who have checked it.
diff --git a/admin/notes/years b/admin/notes/years
new file mode 100644
index 00000000000..72f217e925d
--- /dev/null
+++ b/admin/notes/years
@@ -0,0 +1,45 @@
1How to Maintain Copyright Years for GNU Emacs
2
3
4Principle: Individual files need to have the year of the release
5 in the copyright notice if there is significant change.
6
7
8Practice:
9
10- individual files
11 - each must be examined, along w/ its history, by a human
12 - automated tools facilitate but can never replace this process
13
14- year of the release
15 - may be different from year of file introduction,
16 or year of last significant change
17 - sometimes the release year slips, leaving a file w/ prematurely
18 marked release year => need update (e.g., s/2004/2005/ for Emacs 22)
19 - intervening years (between releases) are not valid and may cause
20 embarrassment later in case of dispute => remove (however, see next)
21 - years for new files (merged, contributed) that have been separately
22 published are valid even if between releases => leave alone
23
24- significant change
25 - insignificant
26 - whitespace
27 - copyright notice
28 - version control tags
29 - simple var/func renaming
30 - in-file reorganization/reordering
31 - typos
32 - small bugfixes
33 - small docfixes
34 - filename renaming
35 - most everything else is significant
36 - change to interface
37 - change in functionality
38 - new file
39 - many small changes may be significant in aggregate
40
41- when in doubt, ask (and update these guidelines -- thanks!)
42
43- sometimes people make mistakes
44 - if they have not read these guidelines, point them here
45 - if the guidelines are not helpful, improve the guidelines
diff --git a/configure b/configure
index a260e19cf19..7e57b2d6dc0 100755
--- a/configure
+++ b/configure
@@ -859,6 +859,9 @@ Optional Features:
859 --enable-asserts compile code with asserts enabled 859 --enable-asserts compile code with asserts enabled
860 --enable-maintainer-mode enable make rules and dependencies not useful 860 --enable-maintainer-mode enable make rules and dependencies not useful
861 (and sometimes confusing) to the casual installer 861 (and sometimes confusing) to the casual installer
862 --enable-locallisppath=PATH
863 directories Emacs should search for lisp files
864 specific to this site
862 --disable-largefile omit support for large files 865 --disable-largefile omit support for large files
863 866
864Optional Packages: 867Optional Packages:
@@ -985,7 +988,7 @@ esac
985 else 988 else
986 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 989 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
987 fi 990 fi
988 cd $ac_popdir 991 cd "$ac_popdir"
989 done 992 done
990fi 993fi
991 994
@@ -1543,6 +1546,16 @@ else
1543fi 1546fi
1544 1547
1545 1548
1549# Check whether --enable-locallisppath or --disable-locallisppath was given.
1550if test "${enable_locallisppath+set}" = set; then
1551 enableval="$enable_locallisppath"
1552 if test "${enableval}" = "no"; then
1553 locallisppath=
1554elif test "${enableval}" != "yes"; then
1555 locallisppath=${enableval}
1556fi
1557fi;
1558
1546#### Make srcdir absolute, if it isn't already. It's important to 1559#### Make srcdir absolute, if it isn't already. It's important to
1547#### avoid running the path through pwd unnecessarily, since pwd can 1560#### avoid running the path through pwd unnecessarily, since pwd can
1548#### give you automounter prefixes, which can go away. We do all this 1561#### give you automounter prefixes, which can go away. We do all this
@@ -3254,8 +3267,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3254 cat conftest.err >&5 3267 cat conftest.err >&5
3255 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3268 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3256 (exit $ac_status); } && 3269 (exit $ac_status); } &&
3257 { ac_try='test -z "$ac_c_werror_flag" 3270 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3258 || test ! -s conftest.err'
3259 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3271 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3260 (eval $ac_try) 2>&5 3272 (eval $ac_try) 2>&5
3261 ac_status=$? 3273 ac_status=$?
@@ -3313,8 +3325,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3313 cat conftest.err >&5 3325 cat conftest.err >&5
3314 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3326 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3315 (exit $ac_status); } && 3327 (exit $ac_status); } &&
3316 { ac_try='test -z "$ac_c_werror_flag" 3328 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3317 || test ! -s conftest.err'
3318 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3329 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3319 (eval $ac_try) 2>&5 3330 (eval $ac_try) 2>&5
3320 ac_status=$? 3331 ac_status=$?
@@ -3430,8 +3441,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3430 cat conftest.err >&5 3441 cat conftest.err >&5
3431 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3442 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3432 (exit $ac_status); } && 3443 (exit $ac_status); } &&
3433 { ac_try='test -z "$ac_c_werror_flag" 3444 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3434 || test ! -s conftest.err'
3435 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3445 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3436 (eval $ac_try) 2>&5 3446 (eval $ac_try) 2>&5
3437 ac_status=$? 3447 ac_status=$?
@@ -3485,8 +3495,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3485 cat conftest.err >&5 3495 cat conftest.err >&5
3486 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3496 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3487 (exit $ac_status); } && 3497 (exit $ac_status); } &&
3488 { ac_try='test -z "$ac_c_werror_flag" 3498 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3489 || test ! -s conftest.err'
3490 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3499 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3491 (eval $ac_try) 2>&5 3500 (eval $ac_try) 2>&5
3492 ac_status=$? 3501 ac_status=$?
@@ -3531,8 +3540,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3531 cat conftest.err >&5 3540 cat conftest.err >&5
3532 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3541 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3533 (exit $ac_status); } && 3542 (exit $ac_status); } &&
3534 { ac_try='test -z "$ac_c_werror_flag" 3543 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3535 || test ! -s conftest.err'
3536 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3544 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3537 (eval $ac_try) 2>&5 3545 (eval $ac_try) 2>&5
3538 ac_status=$? 3546 ac_status=$?
@@ -3576,8 +3584,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
3576 cat conftest.err >&5 3584 cat conftest.err >&5
3577 echo "$as_me:$LINENO: \$? = $ac_status" >&5 3585 echo "$as_me:$LINENO: \$? = $ac_status" >&5
3578 (exit $ac_status); } && 3586 (exit $ac_status); } &&
3579 { ac_try='test -z "$ac_c_werror_flag" 3587 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
3580 || test ! -s conftest.err'
3581 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 3588 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
3582 (eval $ac_try) 2>&5 3589 (eval $ac_try) 2>&5
3583 ac_status=$? 3590 ac_status=$?
@@ -4210,8 +4217,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4210 cat conftest.err >&5 4217 cat conftest.err >&5
4211 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4218 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4212 (exit $ac_status); } && 4219 (exit $ac_status); } &&
4213 { ac_try='test -z "$ac_c_werror_flag" 4220 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4214 || test ! -s conftest.err'
4215 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4221 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4216 (eval $ac_try) 2>&5 4222 (eval $ac_try) 2>&5
4217 ac_status=$? 4223 ac_status=$?
@@ -4487,8 +4493,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4487 cat conftest.err >&5 4493 cat conftest.err >&5
4488 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4494 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4489 (exit $ac_status); } && 4495 (exit $ac_status); } &&
4490 { ac_try='test -z "$ac_c_werror_flag" 4496 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4491 || test ! -s conftest.err'
4492 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4497 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4493 (eval $ac_try) 2>&5 4498 (eval $ac_try) 2>&5
4494 ac_status=$? 4499 ac_status=$?
@@ -4517,8 +4522,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4517 cat conftest.err >&5 4522 cat conftest.err >&5
4518 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4523 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4519 (exit $ac_status); } && 4524 (exit $ac_status); } &&
4520 { ac_try='test -z "$ac_c_werror_flag" 4525 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4521 || test ! -s conftest.err'
4522 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4526 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4523 (eval $ac_try) 2>&5 4527 (eval $ac_try) 2>&5
4524 ac_status=$? 4528 ac_status=$?
@@ -4588,8 +4592,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4588 cat conftest.err >&5 4592 cat conftest.err >&5
4589 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4593 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4590 (exit $ac_status); } && 4594 (exit $ac_status); } &&
4591 { ac_try='test -z "$ac_c_werror_flag" 4595 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4592 || test ! -s conftest.err'
4593 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4596 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4594 (eval $ac_try) 2>&5 4597 (eval $ac_try) 2>&5
4595 ac_status=$? 4598 ac_status=$?
@@ -4641,8 +4644,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4641 cat conftest.err >&5 4644 cat conftest.err >&5
4642 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4645 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4643 (exit $ac_status); } && 4646 (exit $ac_status); } &&
4644 { ac_try='test -z "$ac_c_werror_flag" 4647 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4645 || test ! -s conftest.err'
4646 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4648 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4647 (eval $ac_try) 2>&5 4649 (eval $ac_try) 2>&5
4648 ac_status=$? 4650 ac_status=$?
@@ -4713,8 +4715,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4713 cat conftest.err >&5 4715 cat conftest.err >&5
4714 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4716 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4715 (exit $ac_status); } && 4717 (exit $ac_status); } &&
4716 { ac_try='test -z "$ac_c_werror_flag" 4718 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4717 || test ! -s conftest.err'
4718 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4719 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4719 (eval $ac_try) 2>&5 4720 (eval $ac_try) 2>&5
4720 ac_status=$? 4721 ac_status=$?
@@ -4766,8 +4767,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4766 cat conftest.err >&5 4767 cat conftest.err >&5
4767 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4768 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4768 (exit $ac_status); } && 4769 (exit $ac_status); } &&
4769 { ac_try='test -z "$ac_c_werror_flag" 4770 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4770 || test ! -s conftest.err'
4771 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4771 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4772 (eval $ac_try) 2>&5 4772 (eval $ac_try) 2>&5
4773 ac_status=$? 4773 ac_status=$?
@@ -4837,8 +4837,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4837 cat conftest.err >&5 4837 cat conftest.err >&5
4838 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4838 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4839 (exit $ac_status); } && 4839 (exit $ac_status); } &&
4840 { ac_try='test -z "$ac_c_werror_flag" 4840 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
4841 || test ! -s conftest.err'
4842 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 4841 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4843 (eval $ac_try) 2>&5 4842 (eval $ac_try) 2>&5
4844 ac_status=$? 4843 ac_status=$?
@@ -5008,8 +5007,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5008 cat conftest.err >&5 5007 cat conftest.err >&5
5009 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5008 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5010 (exit $ac_status); } && 5009 (exit $ac_status); } &&
5011 { ac_try='test -z "$ac_c_werror_flag" 5010 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5012 || test ! -s conftest.err'
5013 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5011 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5014 (eval $ac_try) 2>&5 5012 (eval $ac_try) 2>&5
5015 ac_status=$? 5013 ac_status=$?
@@ -5078,8 +5076,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5078 cat conftest.err >&5 5076 cat conftest.err >&5
5079 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5077 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5080 (exit $ac_status); } && 5078 (exit $ac_status); } &&
5081 { ac_try='test -z "$ac_c_werror_flag" 5079 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5082 || test ! -s conftest.err'
5083 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5080 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5084 (eval $ac_try) 2>&5 5081 (eval $ac_try) 2>&5
5085 ac_status=$? 5082 ac_status=$?
@@ -5233,8 +5230,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
5233 cat conftest.err >&5 5230 cat conftest.err >&5
5234 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5231 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5235 (exit $ac_status); } && 5232 (exit $ac_status); } &&
5236 { ac_try='test -z "$ac_c_werror_flag" 5233 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5237 || test ! -s conftest.err'
5238 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5234 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5239 (eval $ac_try) 2>&5 5235 (eval $ac_try) 2>&5
5240 ac_status=$? 5236 ac_status=$?
@@ -5330,8 +5326,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5330 cat conftest.err >&5 5326 cat conftest.err >&5
5331 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5327 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5332 (exit $ac_status); } && 5328 (exit $ac_status); } &&
5333 { ac_try='test -z "$ac_c_werror_flag" 5329 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5334 || test ! -s conftest.err'
5335 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5330 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5336 (eval $ac_try) 2>&5 5331 (eval $ac_try) 2>&5
5337 ac_status=$? 5332 ac_status=$?
@@ -5473,8 +5468,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5473 cat conftest.err >&5 5468 cat conftest.err >&5
5474 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5469 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5475 (exit $ac_status); } && 5470 (exit $ac_status); } &&
5476 { ac_try='test -z "$ac_c_werror_flag" 5471 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5477 || test ! -s conftest.err'
5478 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5472 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5479 (eval $ac_try) 2>&5 5473 (eval $ac_try) 2>&5
5480 ac_status=$? 5474 ac_status=$?
@@ -5593,8 +5587,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5593 cat conftest.err >&5 5587 cat conftest.err >&5
5594 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5588 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5595 (exit $ac_status); } && 5589 (exit $ac_status); } &&
5596 { ac_try='test -z "$ac_c_werror_flag" 5590 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5597 || test ! -s conftest.err'
5598 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5591 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5599 (eval $ac_try) 2>&5 5592 (eval $ac_try) 2>&5
5600 ac_status=$? 5593 ac_status=$?
@@ -5759,8 +5752,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5759 cat conftest.err >&5 5752 cat conftest.err >&5
5760 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5753 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5761 (exit $ac_status); } && 5754 (exit $ac_status); } &&
5762 { ac_try='test -z "$ac_c_werror_flag" 5755 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5763 || test ! -s conftest.err'
5764 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5756 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5765 (eval $ac_try) 2>&5 5757 (eval $ac_try) 2>&5
5766 ac_status=$? 5758 ac_status=$?
@@ -5823,8 +5815,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5823 cat conftest.err >&5 5815 cat conftest.err >&5
5824 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5816 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5825 (exit $ac_status); } && 5817 (exit $ac_status); } &&
5826 { ac_try='test -z "$ac_c_werror_flag" 5818 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5827 || test ! -s conftest.err'
5828 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5819 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5829 (eval $ac_try) 2>&5 5820 (eval $ac_try) 2>&5
5830 ac_status=$? 5821 ac_status=$?
@@ -5897,8 +5888,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5897 cat conftest.err >&5 5888 cat conftest.err >&5
5898 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5889 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5899 (exit $ac_status); } && 5890 (exit $ac_status); } &&
5900 { ac_try='test -z "$ac_c_werror_flag" 5891 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5901 || test ! -s conftest.err'
5902 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5892 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5903 (eval $ac_try) 2>&5 5893 (eval $ac_try) 2>&5
5904 ac_status=$? 5894 ac_status=$?
@@ -5984,8 +5974,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5984 cat conftest.err >&5 5974 cat conftest.err >&5
5985 echo "$as_me:$LINENO: \$? = $ac_status" >&5 5975 echo "$as_me:$LINENO: \$? = $ac_status" >&5
5986 (exit $ac_status); } && 5976 (exit $ac_status); } &&
5987 { ac_try='test -z "$ac_c_werror_flag" 5977 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
5988 || test ! -s conftest.err'
5989 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 5978 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5990 (eval $ac_try) 2>&5 5979 (eval $ac_try) 2>&5
5991 ac_status=$? 5980 ac_status=$?
@@ -6058,8 +6047,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6058 cat conftest.err >&5 6047 cat conftest.err >&5
6059 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6048 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6060 (exit $ac_status); } && 6049 (exit $ac_status); } &&
6061 { ac_try='test -z "$ac_c_werror_flag" 6050 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6062 || test ! -s conftest.err'
6063 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6051 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6064 (eval $ac_try) 2>&5 6052 (eval $ac_try) 2>&5
6065 ac_status=$? 6053 ac_status=$?
@@ -6129,8 +6117,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6129 cat conftest.err >&5 6117 cat conftest.err >&5
6130 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6118 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6131 (exit $ac_status); } && 6119 (exit $ac_status); } &&
6132 { ac_try='test -z "$ac_c_werror_flag" 6120 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6133 || test ! -s conftest.err'
6134 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6121 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6135 (eval $ac_try) 2>&5 6122 (eval $ac_try) 2>&5
6136 ac_status=$? 6123 ac_status=$?
@@ -6189,8 +6176,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6189 cat conftest.err >&5 6176 cat conftest.err >&5
6190 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6177 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6191 (exit $ac_status); } && 6178 (exit $ac_status); } &&
6192 { ac_try='test -z "$ac_c_werror_flag" 6179 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6193 || test ! -s conftest.err'
6194 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6180 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6195 (eval $ac_try) 2>&5 6181 (eval $ac_try) 2>&5
6196 ac_status=$? 6182 ac_status=$?
@@ -6259,8 +6245,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6259 cat conftest.err >&5 6245 cat conftest.err >&5
6260 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6246 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6261 (exit $ac_status); } && 6247 (exit $ac_status); } &&
6262 { ac_try='test -z "$ac_c_werror_flag" 6248 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6263 || test ! -s conftest.err'
6264 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6249 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6265 (eval $ac_try) 2>&5 6250 (eval $ac_try) 2>&5
6266 ac_status=$? 6251 ac_status=$?
@@ -6321,8 +6306,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6321 cat conftest.err >&5 6306 cat conftest.err >&5
6322 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6307 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6323 (exit $ac_status); } && 6308 (exit $ac_status); } &&
6324 { ac_try='test -z "$ac_c_werror_flag" 6309 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6325 || test ! -s conftest.err'
6326 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6310 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6327 (eval $ac_try) 2>&5 6311 (eval $ac_try) 2>&5
6328 ac_status=$? 6312 ac_status=$?
@@ -6388,8 +6372,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6388 cat conftest.err >&5 6372 cat conftest.err >&5
6389 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6373 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6390 (exit $ac_status); } && 6374 (exit $ac_status); } &&
6391 { ac_try='test -z "$ac_c_werror_flag" 6375 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6392 || test ! -s conftest.err'
6393 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6376 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6394 (eval $ac_try) 2>&5 6377 (eval $ac_try) 2>&5
6395 ac_status=$? 6378 ac_status=$?
@@ -6535,8 +6518,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6535 cat conftest.err >&5 6518 cat conftest.err >&5
6536 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6519 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6537 (exit $ac_status); } && 6520 (exit $ac_status); } &&
6538 { ac_try='test -z "$ac_c_werror_flag" 6521 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6539 || test ! -s conftest.err'
6540 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6522 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6541 (eval $ac_try) 2>&5 6523 (eval $ac_try) 2>&5
6542 ac_status=$? 6524 ac_status=$?
@@ -6600,8 +6582,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6600 cat conftest.err >&5 6582 cat conftest.err >&5
6601 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6583 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6602 (exit $ac_status); } && 6584 (exit $ac_status); } &&
6603 { ac_try='test -z "$ac_c_werror_flag" 6585 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6604 || test ! -s conftest.err'
6605 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6586 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6606 (eval $ac_try) 2>&5 6587 (eval $ac_try) 2>&5
6607 ac_status=$? 6588 ac_status=$?
@@ -6666,8 +6647,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6666 cat conftest.err >&5 6647 cat conftest.err >&5
6667 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6648 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6668 (exit $ac_status); } && 6649 (exit $ac_status); } &&
6669 { ac_try='test -z "$ac_c_werror_flag" 6650 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6670 || test ! -s conftest.err'
6671 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6651 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6672 (eval $ac_try) 2>&5 6652 (eval $ac_try) 2>&5
6673 ac_status=$? 6653 ac_status=$?
@@ -6713,8 +6693,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6713 cat conftest.err >&5 6693 cat conftest.err >&5
6714 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6694 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6715 (exit $ac_status); } && 6695 (exit $ac_status); } &&
6716 { ac_try='test -z "$ac_c_werror_flag" 6696 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6717 || test ! -s conftest.err'
6718 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6697 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6719 (eval $ac_try) 2>&5 6698 (eval $ac_try) 2>&5
6720 ac_status=$? 6699 ac_status=$?
@@ -6788,8 +6767,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6788 cat conftest.err >&5 6767 cat conftest.err >&5
6789 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6768 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6790 (exit $ac_status); } && 6769 (exit $ac_status); } &&
6791 { ac_try='test -z "$ac_c_werror_flag" 6770 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6792 || test ! -s conftest.err'
6793 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6771 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6794 (eval $ac_try) 2>&5 6772 (eval $ac_try) 2>&5
6795 ac_status=$? 6773 ac_status=$?
@@ -6854,8 +6832,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6854 cat conftest.err >&5 6832 cat conftest.err >&5
6855 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6833 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6856 (exit $ac_status); } && 6834 (exit $ac_status); } &&
6857 { ac_try='test -z "$ac_c_werror_flag" 6835 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6858 || test ! -s conftest.err'
6859 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6836 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6860 (eval $ac_try) 2>&5 6837 (eval $ac_try) 2>&5
6861 ac_status=$? 6838 ac_status=$?
@@ -6899,8 +6876,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6899 cat conftest.err >&5 6876 cat conftest.err >&5
6900 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6877 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6901 (exit $ac_status); } && 6878 (exit $ac_status); } &&
6902 { ac_try='test -z "$ac_c_werror_flag" 6879 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6903 || test ! -s conftest.err'
6904 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6880 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6905 (eval $ac_try) 2>&5 6881 (eval $ac_try) 2>&5
6906 ac_status=$? 6882 ac_status=$?
@@ -6971,8 +6947,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
6971 cat conftest.err >&5 6947 cat conftest.err >&5
6972 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6948 echo "$as_me:$LINENO: \$? = $ac_status" >&5
6973 (exit $ac_status); } && 6949 (exit $ac_status); } &&
6974 { ac_try='test -z "$ac_c_werror_flag" 6950 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
6975 || test ! -s conftest.err'
6976 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6951 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6977 (eval $ac_try) 2>&5 6952 (eval $ac_try) 2>&5
6978 ac_status=$? 6953 ac_status=$?
@@ -7022,8 +6997,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7022 cat conftest.err >&5 6997 cat conftest.err >&5
7023 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6998 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7024 (exit $ac_status); } && 6999 (exit $ac_status); } &&
7025 { ac_try='test -z "$ac_c_werror_flag" 7000 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7026 || test ! -s conftest.err'
7027 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7001 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7028 (eval $ac_try) 2>&5 7002 (eval $ac_try) 2>&5
7029 ac_status=$? 7003 ac_status=$?
@@ -7094,8 +7068,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7094 cat conftest.err >&5 7068 cat conftest.err >&5
7095 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7069 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7096 (exit $ac_status); } && 7070 (exit $ac_status); } &&
7097 { ac_try='test -z "$ac_c_werror_flag" 7071 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7098 || test ! -s conftest.err'
7099 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7072 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7100 (eval $ac_try) 2>&5 7073 (eval $ac_try) 2>&5
7101 ac_status=$? 7074 ac_status=$?
@@ -7145,8 +7118,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7145 cat conftest.err >&5 7118 cat conftest.err >&5
7146 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7119 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7147 (exit $ac_status); } && 7120 (exit $ac_status); } &&
7148 { ac_try='test -z "$ac_c_werror_flag" 7121 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7149 || test ! -s conftest.err'
7150 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7122 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7151 (eval $ac_try) 2>&5 7123 (eval $ac_try) 2>&5
7152 ac_status=$? 7124 ac_status=$?
@@ -7217,8 +7189,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7217 cat conftest.err >&5 7189 cat conftest.err >&5
7218 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7190 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7219 (exit $ac_status); } && 7191 (exit $ac_status); } &&
7220 { ac_try='test -z "$ac_c_werror_flag" 7192 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7221 || test ! -s conftest.err'
7222 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7193 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7223 (eval $ac_try) 2>&5 7194 (eval $ac_try) 2>&5
7224 ac_status=$? 7195 ac_status=$?
@@ -7268,8 +7239,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7268 cat conftest.err >&5 7239 cat conftest.err >&5
7269 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7240 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7270 (exit $ac_status); } && 7241 (exit $ac_status); } &&
7271 { ac_try='test -z "$ac_c_werror_flag" 7242 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7272 || test ! -s conftest.err'
7273 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7243 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7274 (eval $ac_try) 2>&5 7244 (eval $ac_try) 2>&5
7275 ac_status=$? 7245 ac_status=$?
@@ -7340,8 +7310,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7340 cat conftest.err >&5 7310 cat conftest.err >&5
7341 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7311 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7342 (exit $ac_status); } && 7312 (exit $ac_status); } &&
7343 { ac_try='test -z "$ac_c_werror_flag" 7313 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7344 || test ! -s conftest.err'
7345 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7314 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7346 (eval $ac_try) 2>&5 7315 (eval $ac_try) 2>&5
7347 ac_status=$? 7316 ac_status=$?
@@ -7391,8 +7360,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7391 cat conftest.err >&5 7360 cat conftest.err >&5
7392 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7361 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7393 (exit $ac_status); } && 7362 (exit $ac_status); } &&
7394 { ac_try='test -z "$ac_c_werror_flag" 7363 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7395 || test ! -s conftest.err'
7396 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7364 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7397 (eval $ac_try) 2>&5 7365 (eval $ac_try) 2>&5
7398 ac_status=$? 7366 ac_status=$?
@@ -7463,8 +7431,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7463 cat conftest.err >&5 7431 cat conftest.err >&5
7464 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7432 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7465 (exit $ac_status); } && 7433 (exit $ac_status); } &&
7466 { ac_try='test -z "$ac_c_werror_flag" 7434 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7467 || test ! -s conftest.err'
7468 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7435 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7469 (eval $ac_try) 2>&5 7436 (eval $ac_try) 2>&5
7470 ac_status=$? 7437 ac_status=$?
@@ -7514,8 +7481,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7514 cat conftest.err >&5 7481 cat conftest.err >&5
7515 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7482 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7516 (exit $ac_status); } && 7483 (exit $ac_status); } &&
7517 { ac_try='test -z "$ac_c_werror_flag" 7484 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7518 || test ! -s conftest.err'
7519 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7485 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7520 (eval $ac_try) 2>&5 7486 (eval $ac_try) 2>&5
7521 ac_status=$? 7487 ac_status=$?
@@ -7602,8 +7568,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7602 cat conftest.err >&5 7568 cat conftest.err >&5
7603 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7569 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7604 (exit $ac_status); } && 7570 (exit $ac_status); } &&
7605 { ac_try='test -z "$ac_c_werror_flag" 7571 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7606 || test ! -s conftest.err'
7607 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7572 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7608 (eval $ac_try) 2>&5 7573 (eval $ac_try) 2>&5
7609 ac_status=$? 7574 ac_status=$?
@@ -7709,8 +7674,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7709 cat conftest.err >&5 7674 cat conftest.err >&5
7710 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7675 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7711 (exit $ac_status); } && 7676 (exit $ac_status); } &&
7712 { ac_try='test -z "$ac_c_werror_flag" 7677 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7713 || test ! -s conftest.err'
7714 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7678 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7715 (eval $ac_try) 2>&5 7679 (eval $ac_try) 2>&5
7716 ac_status=$? 7680 ac_status=$?
@@ -7770,8 +7734,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7770 cat conftest.err >&5 7734 cat conftest.err >&5
7771 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7735 echo "$as_me:$LINENO: \$? = $ac_status" >&5
7772 (exit $ac_status); } && 7736 (exit $ac_status); } &&
7773 { ac_try='test -z "$ac_c_werror_flag" 7737 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
7774 || test ! -s conftest.err'
7775 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7738 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7776 (eval $ac_try) 2>&5 7739 (eval $ac_try) 2>&5
7777 ac_status=$? 7740 ac_status=$?
@@ -7895,6 +7858,7 @@ fi
7895echo "$as_me:$LINENO: checking for X" >&5 7858echo "$as_me:$LINENO: checking for X" >&5
7896echo $ECHO_N "checking for X... $ECHO_C" >&6 7859echo $ECHO_N "checking for X... $ECHO_C" >&6
7897 7860
7861ac_path_x_has_been_run=yes
7898 7862
7899# Check whether --with-x or --without-x was given. 7863# Check whether --with-x or --without-x was given.
7900if test "${with_x+set}" = set; then 7864if test "${with_x+set}" = set; then
@@ -7987,7 +7951,7 @@ ac_x_header_dirs='
7987/usr/openwin/share/include' 7951/usr/openwin/share/include'
7988 7952
7989if test "$ac_x_includes" = no; then 7953if test "$ac_x_includes" = no; then
7990 # Guess where to find include files, by looking for Intrinsic.h. 7954 # Guess where to find include files, by looking for a specified header file.
7991 # First, try using that file with no special directory specified. 7955 # First, try using that file with no special directory specified.
7992 cat >conftest.$ac_ext <<_ACEOF 7956 cat >conftest.$ac_ext <<_ACEOF
7993/* confdefs.h. */ 7957/* confdefs.h. */
@@ -8061,8 +8025,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8061 cat conftest.err >&5 8025 cat conftest.err >&5
8062 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8026 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8063 (exit $ac_status); } && 8027 (exit $ac_status); } &&
8064 { ac_try='test -z "$ac_c_werror_flag" 8028 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8065 || test ! -s conftest.err'
8066 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8029 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8067 (eval $ac_try) 2>&5 8030 (eval $ac_try) 2>&5
8068 ac_status=$? 8031 ac_status=$?
@@ -8122,8 +8085,12 @@ else
8122 # Update the cache value to reflect the command line values. 8085 # Update the cache value to reflect the command line values.
8123 ac_cv_have_x="have_x=yes \ 8086 ac_cv_have_x="have_x=yes \
8124 ac_x_includes=$x_includes ac_x_libraries=$x_libraries" 8087 ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
8125 echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 8088 # It might be that x_includes is empty (headers are found in the
8126echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 8089 # standard search path. Then output the corresponding message
8090 ac_out_x_includes=$x_includes
8091 test "x$x_includes" = x && ac_out_x_includes="in standard search path"
8092 echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5
8093echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6
8127fi 8094fi
8128 8095
8129if test "$no_x" = yes; then 8096if test "$no_x" = yes; then
@@ -8215,6 +8182,153 @@ if test "${opsys}" = "hpux9shr"; then
8215 esac 8182 esac
8216fi 8183fi
8217 8184
8185HAVE_CARBON=no
8186if test "${HAVE_X11}" != "yes"; then
8187 if test "${with_carbon}" != "no"; then
8188 if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
8189 echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
8190echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6
8191if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
8192 echo $ECHO_N "(cached) $ECHO_C" >&6
8193fi
8194echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
8195echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
8196else
8197 # Is the header compilable?
8198echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5
8199echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6
8200cat >conftest.$ac_ext <<_ACEOF
8201/* confdefs.h. */
8202_ACEOF
8203cat confdefs.h >>conftest.$ac_ext
8204cat >>conftest.$ac_ext <<_ACEOF
8205/* end confdefs.h. */
8206$ac_includes_default
8207#include <Carbon/Carbon.h>
8208_ACEOF
8209rm -f conftest.$ac_objext
8210if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8211 (eval $ac_compile) 2>conftest.er1
8212 ac_status=$?
8213 grep -v '^ *+' conftest.er1 >conftest.err
8214 rm -f conftest.er1
8215 cat conftest.err >&5
8216 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8217 (exit $ac_status); } &&
8218 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8219 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8220 (eval $ac_try) 2>&5
8221 ac_status=$?
8222 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8223 (exit $ac_status); }; } &&
8224 { ac_try='test -s conftest.$ac_objext'
8225 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8226 (eval $ac_try) 2>&5
8227 ac_status=$?
8228 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8229 (exit $ac_status); }; }; then
8230 ac_header_compiler=yes
8231else
8232 echo "$as_me: failed program was:" >&5
8233sed 's/^/| /' conftest.$ac_ext >&5
8234
8235ac_header_compiler=no
8236fi
8237rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
8238echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
8239echo "${ECHO_T}$ac_header_compiler" >&6
8240
8241# Is the header present?
8242echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5
8243echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6
8244cat >conftest.$ac_ext <<_ACEOF
8245/* confdefs.h. */
8246_ACEOF
8247cat confdefs.h >>conftest.$ac_ext
8248cat >>conftest.$ac_ext <<_ACEOF
8249/* end confdefs.h. */
8250#include <Carbon/Carbon.h>
8251_ACEOF
8252if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
8253 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
8254 ac_status=$?
8255 grep -v '^ *+' conftest.er1 >conftest.err
8256 rm -f conftest.er1
8257 cat conftest.err >&5
8258 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8259 (exit $ac_status); } >/dev/null; then
8260 if test -s conftest.err; then
8261 ac_cpp_err=$ac_c_preproc_warn_flag
8262 ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
8263 else
8264 ac_cpp_err=
8265 fi
8266else
8267 ac_cpp_err=yes
8268fi
8269if test -z "$ac_cpp_err"; then
8270 ac_header_preproc=yes
8271else
8272 echo "$as_me: failed program was:" >&5
8273sed 's/^/| /' conftest.$ac_ext >&5
8274
8275 ac_header_preproc=no
8276fi
8277rm -f conftest.err conftest.$ac_ext
8278echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
8279echo "${ECHO_T}$ac_header_preproc" >&6
8280
8281# So? What about this header?
8282case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
8283 yes:no: )
8284 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5
8285echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
8286 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&5
8287echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&2;}
8288 ac_header_preproc=yes
8289 ;;
8290 no:yes:* )
8291 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5
8292echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;}
8293 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&5
8294echo "$as_me: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&2;}
8295 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&5
8296echo "$as_me: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&2;}
8297 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&5
8298echo "$as_me: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&2;}
8299 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5
8300echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;}
8301 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&5
8302echo "$as_me: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&2;}
8303 (
8304 cat <<\_ASBOX
8305## ------------------------------------------ ##
8306## Report this to the AC_PACKAGE_NAME lists. ##
8307## ------------------------------------------ ##
8308_ASBOX
8309 ) |
8310 sed "s/^/$as_me: WARNING: /" >&2
8311 ;;
8312esac
8313echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
8314echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6
8315if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
8316 echo $ECHO_N "(cached) $ECHO_C" >&6
8317else
8318 ac_cv_header_Carbon_Carbon_h=$ac_header_preproc
8319fi
8320echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
8321echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
8322
8323fi
8324if test $ac_cv_header_Carbon_Carbon_h = yes; then
8325 HAVE_CARBON=yes
8326fi
8327
8328
8329 fi
8330fi
8331
8218### Compute the unexec source name from the object name. 8332### Compute the unexec source name from the object name.
8219UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" 8333UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
8220 8334
@@ -8287,8 +8401,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8287 cat conftest.err >&5 8401 cat conftest.err >&5
8288 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8402 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8289 (exit $ac_status); } && 8403 (exit $ac_status); } &&
8290 { ac_try='test -z "$ac_c_werror_flag" 8404 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8291 || test ! -s conftest.err'
8292 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8405 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8293 (eval $ac_try) 2>&5 8406 (eval $ac_try) 2>&5
8294 ac_status=$? 8407 ac_status=$?
@@ -8383,8 +8496,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8383 cat conftest.err >&5 8496 cat conftest.err >&5
8384 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8497 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8385 (exit $ac_status); } && 8498 (exit $ac_status); } &&
8386 { ac_try='test -z "$ac_c_werror_flag" 8499 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8387 || test ! -s conftest.err'
8388 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8500 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8389 (eval $ac_try) 2>&5 8501 (eval $ac_try) 2>&5
8390 ac_status=$? 8502 ac_status=$?
@@ -8443,8 +8555,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8443 cat conftest.err >&5 8555 cat conftest.err >&5
8444 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8556 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8445 (exit $ac_status); } && 8557 (exit $ac_status); } &&
8446 { ac_try='test -z "$ac_c_werror_flag" 8558 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8447 || test ! -s conftest.err'
8448 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8559 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8449 (eval $ac_try) 2>&5 8560 (eval $ac_try) 2>&5
8450 ac_status=$? 8561 ac_status=$?
@@ -8528,8 +8639,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
8528 cat conftest.err >&5 8639 cat conftest.err >&5
8529 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8640 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8530 (exit $ac_status); } && 8641 (exit $ac_status); } &&
8531 { ac_try='test -z "$ac_c_werror_flag" 8642 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8532 || test ! -s conftest.err'
8533 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8643 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8534 (eval $ac_try) 2>&5 8644 (eval $ac_try) 2>&5
8535 ac_status=$? 8645 ac_status=$?
@@ -8713,8 +8823,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8713 cat conftest.err >&5 8823 cat conftest.err >&5
8714 echo "$as_me:$LINENO: \$? = $ac_status" >&5 8824 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8715 (exit $ac_status); } && 8825 (exit $ac_status); } &&
8716 { ac_try='test -z "$ac_c_werror_flag" 8826 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8717 || test ! -s conftest.err'
8718 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 8827 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8719 (eval $ac_try) 2>&5 8828 (eval $ac_try) 2>&5
8720 ac_status=$? 8829 ac_status=$?
@@ -8966,8 +9075,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8966 cat conftest.err >&5 9075 cat conftest.err >&5
8967 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9076 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8968 (exit $ac_status); } && 9077 (exit $ac_status); } &&
8969 { ac_try='test -z "$ac_c_werror_flag" 9078 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
8970 || test ! -s conftest.err'
8971 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9079 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8972 (eval $ac_try) 2>&5 9080 (eval $ac_try) 2>&5
8973 ac_status=$? 9081 ac_status=$?
@@ -9034,8 +9142,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9034 cat conftest.err >&5 9142 cat conftest.err >&5
9035 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9143 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9036 (exit $ac_status); } && 9144 (exit $ac_status); } &&
9037 { ac_try='test -z "$ac_c_werror_flag" 9145 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9038 || test ! -s conftest.err'
9039 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9146 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9040 (eval $ac_try) 2>&5 9147 (eval $ac_try) 2>&5
9041 ac_status=$? 9148 ac_status=$?
@@ -9104,8 +9211,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9104 cat conftest.err >&5 9211 cat conftest.err >&5
9105 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9212 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9106 (exit $ac_status); } && 9213 (exit $ac_status); } &&
9107 { ac_try='test -z "$ac_c_werror_flag" 9214 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9108 || test ! -s conftest.err'
9109 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9215 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9110 (eval $ac_try) 2>&5 9216 (eval $ac_try) 2>&5
9111 ac_status=$? 9217 ac_status=$?
@@ -9190,8 +9296,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9190 cat conftest.err >&5 9296 cat conftest.err >&5
9191 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9297 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9192 (exit $ac_status); } && 9298 (exit $ac_status); } &&
9193 { ac_try='test -z "$ac_c_werror_flag" 9299 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9194 || test ! -s conftest.err'
9195 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9300 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9196 (eval $ac_try) 2>&5 9301 (eval $ac_try) 2>&5
9197 ac_status=$? 9302 ac_status=$?
@@ -9268,8 +9373,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9268 cat conftest.err >&5 9373 cat conftest.err >&5
9269 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9374 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9270 (exit $ac_status); } && 9375 (exit $ac_status); } &&
9271 { ac_try='test -z "$ac_c_werror_flag" 9376 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9272 || test ! -s conftest.err'
9273 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9377 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9274 (eval $ac_try) 2>&5 9378 (eval $ac_try) 2>&5
9275 ac_status=$? 9379 ac_status=$?
@@ -9323,8 +9427,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9323 cat conftest.err >&5 9427 cat conftest.err >&5
9324 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9428 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9325 (exit $ac_status); } && 9429 (exit $ac_status); } &&
9326 { ac_try='test -z "$ac_c_werror_flag" 9430 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9327 || test ! -s conftest.err'
9328 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9431 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9329 (eval $ac_try) 2>&5 9432 (eval $ac_try) 2>&5
9330 ac_status=$? 9433 ac_status=$?
@@ -9393,8 +9496,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9393 cat conftest.err >&5 9496 cat conftest.err >&5
9394 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9497 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9395 (exit $ac_status); } && 9498 (exit $ac_status); } &&
9396 { ac_try='test -z "$ac_c_werror_flag" 9499 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9397 || test ! -s conftest.err'
9398 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9500 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9399 (eval $ac_try) 2>&5 9501 (eval $ac_try) 2>&5
9400 ac_status=$? 9502 ac_status=$?
@@ -9498,8 +9600,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9498 cat conftest.err >&5 9600 cat conftest.err >&5
9499 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9601 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9500 (exit $ac_status); } && 9602 (exit $ac_status); } &&
9501 { ac_try='test -z "$ac_c_werror_flag" 9603 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9502 || test ! -s conftest.err'
9503 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9604 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9504 (eval $ac_try) 2>&5 9605 (eval $ac_try) 2>&5
9505 ac_status=$? 9606 ac_status=$?
@@ -9566,8 +9667,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9566 cat conftest.err >&5 9667 cat conftest.err >&5
9567 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9668 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9568 (exit $ac_status); } && 9669 (exit $ac_status); } &&
9569 { ac_try='test -z "$ac_c_werror_flag" 9670 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9570 || test ! -s conftest.err'
9571 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9671 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9572 (eval $ac_try) 2>&5 9672 (eval $ac_try) 2>&5
9573 ac_status=$? 9673 ac_status=$?
@@ -9637,8 +9737,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9637 cat conftest.err >&5 9737 cat conftest.err >&5
9638 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9738 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9639 (exit $ac_status); } && 9739 (exit $ac_status); } &&
9640 { ac_try='test -z "$ac_c_werror_flag" 9740 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9641 || test ! -s conftest.err'
9642 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9741 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9643 (eval $ac_try) 2>&5 9742 (eval $ac_try) 2>&5
9644 ac_status=$? 9743 ac_status=$?
@@ -9878,8 +9977,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9878 cat conftest.err >&5 9977 cat conftest.err >&5
9879 echo "$as_me:$LINENO: \$? = $ac_status" >&5 9978 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9880 (exit $ac_status); } && 9979 (exit $ac_status); } &&
9881 { ac_try='test -z "$ac_c_werror_flag" 9980 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9882 || test ! -s conftest.err'
9883 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 9981 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9884 (eval $ac_try) 2>&5 9982 (eval $ac_try) 2>&5
9885 ac_status=$? 9983 ac_status=$?
@@ -9988,8 +10086,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
9988 cat conftest.err >&5 10086 cat conftest.err >&5
9989 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10087 echo "$as_me:$LINENO: \$? = $ac_status" >&5
9990 (exit $ac_status); } && 10088 (exit $ac_status); } &&
9991 { ac_try='test -z "$ac_c_werror_flag" 10089 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
9992 || test ! -s conftest.err'
9993 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10090 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
9994 (eval $ac_try) 2>&5 10091 (eval $ac_try) 2>&5
9995 ac_status=$? 10092 ac_status=$?
@@ -10092,8 +10189,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10092 cat conftest.err >&5 10189 cat conftest.err >&5
10093 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10190 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10094 (exit $ac_status); } && 10191 (exit $ac_status); } &&
10095 { ac_try='test -z "$ac_c_werror_flag" 10192 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10096 || test ! -s conftest.err'
10097 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10193 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10098 (eval $ac_try) 2>&5 10194 (eval $ac_try) 2>&5
10099 ac_status=$? 10195 ac_status=$?
@@ -10171,8 +10267,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10171 cat conftest.err >&5 10267 cat conftest.err >&5
10172 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10268 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10173 (exit $ac_status); } && 10269 (exit $ac_status); } &&
10174 { ac_try='test -z "$ac_c_werror_flag" 10270 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10175 || test ! -s conftest.err'
10176 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10271 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10177 (eval $ac_try) 2>&5 10272 (eval $ac_try) 2>&5
10178 ac_status=$? 10273 ac_status=$?
@@ -10326,8 +10421,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10326 cat conftest.err >&5 10421 cat conftest.err >&5
10327 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10422 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10328 (exit $ac_status); } && 10423 (exit $ac_status); } &&
10329 { ac_try='test -z "$ac_c_werror_flag" 10424 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10330 || test ! -s conftest.err'
10331 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10425 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10332 (eval $ac_try) 2>&5 10426 (eval $ac_try) 2>&5
10333 ac_status=$? 10427 ac_status=$?
@@ -10401,8 +10495,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10401 cat conftest.err >&5 10495 cat conftest.err >&5
10402 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10496 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10403 (exit $ac_status); } && 10497 (exit $ac_status); } &&
10404 { ac_try='test -z "$ac_c_werror_flag" 10498 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10405 || test ! -s conftest.err'
10406 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10499 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10407 (eval $ac_try) 2>&5 10500 (eval $ac_try) 2>&5
10408 ac_status=$? 10501 ac_status=$?
@@ -10474,8 +10567,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10474 cat conftest.err >&5 10567 cat conftest.err >&5
10475 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10568 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10476 (exit $ac_status); } && 10569 (exit $ac_status); } &&
10477 { ac_try='test -z "$ac_c_werror_flag" 10570 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10478 || test ! -s conftest.err'
10479 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10571 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10480 (eval $ac_try) 2>&5 10572 (eval $ac_try) 2>&5
10481 ac_status=$? 10573 ac_status=$?
@@ -10557,8 +10649,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10557 cat conftest.err >&5 10649 cat conftest.err >&5
10558 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10650 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10559 (exit $ac_status); } && 10651 (exit $ac_status); } &&
10560 { ac_try='test -z "$ac_c_werror_flag" 10652 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10561 || test ! -s conftest.err'
10562 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10653 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10563 (eval $ac_try) 2>&5 10654 (eval $ac_try) 2>&5
10564 ac_status=$? 10655 ac_status=$?
@@ -10637,8 +10728,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10637 cat conftest.err >&5 10728 cat conftest.err >&5
10638 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10729 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10639 (exit $ac_status); } && 10730 (exit $ac_status); } &&
10640 { ac_try='test -z "$ac_c_werror_flag" 10731 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10641 || test ! -s conftest.err'
10642 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10732 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10643 (eval $ac_try) 2>&5 10733 (eval $ac_try) 2>&5
10644 ac_status=$? 10734 ac_status=$?
@@ -10709,8 +10799,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10709 cat conftest.err >&5 10799 cat conftest.err >&5
10710 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10800 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10711 (exit $ac_status); } && 10801 (exit $ac_status); } &&
10712 { ac_try='test -z "$ac_c_werror_flag" 10802 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10713 || test ! -s conftest.err'
10714 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10803 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10715 (eval $ac_try) 2>&5 10804 (eval $ac_try) 2>&5
10716 ac_status=$? 10805 ac_status=$?
@@ -10779,8 +10868,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10779 cat conftest.err >&5 10868 cat conftest.err >&5
10780 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10869 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10781 (exit $ac_status); } && 10870 (exit $ac_status); } &&
10782 { ac_try='test -z "$ac_c_werror_flag" 10871 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10783 || test ! -s conftest.err'
10784 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10872 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10785 (eval $ac_try) 2>&5 10873 (eval $ac_try) 2>&5
10786 ac_status=$? 10874 ac_status=$?
@@ -10853,8 +10941,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
10853 cat conftest.err >&5 10941 cat conftest.err >&5
10854 echo "$as_me:$LINENO: \$? = $ac_status" >&5 10942 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10855 (exit $ac_status); } && 10943 (exit $ac_status); } &&
10856 { ac_try='test -z "$ac_c_werror_flag" 10944 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10857 || test ! -s conftest.err'
10858 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 10945 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10859 (eval $ac_try) 2>&5 10946 (eval $ac_try) 2>&5
10860 ac_status=$? 10947 ac_status=$?
@@ -10977,8 +11064,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
10977 cat conftest.err >&5 11064 cat conftest.err >&5
10978 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11065 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10979 (exit $ac_status); } && 11066 (exit $ac_status); } &&
10980 { ac_try='test -z "$ac_c_werror_flag" 11067 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
10981 || test ! -s conftest.err'
10982 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11068 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
10983 (eval $ac_try) 2>&5 11069 (eval $ac_try) 2>&5
10984 ac_status=$? 11070 ac_status=$?
@@ -11045,6 +11131,12 @@ _ACEOF
11045_ACEOF 11131_ACEOF
11046 11132
11047 USE_TOOLKIT_SCROLL_BARS=yes 11133 USE_TOOLKIT_SCROLL_BARS=yes
11134 elif test "${HAVE_CARBON}" = "yes"; then
11135 cat >>confdefs.h <<\_ACEOF
11136#define USE_TOOLKIT_SCROLL_BARS 1
11137_ACEOF
11138
11139 USE_TOOLKIT_SCROLL_BARS=yes
11048 fi 11140 fi
11049fi 11141fi
11050 11142
@@ -11074,8 +11166,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11074 cat conftest.err >&5 11166 cat conftest.err >&5
11075 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11167 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11076 (exit $ac_status); } && 11168 (exit $ac_status); } &&
11077 { ac_try='test -z "$ac_c_werror_flag" 11169 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11078 || test ! -s conftest.err'
11079 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11170 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11080 (eval $ac_try) 2>&5 11171 (eval $ac_try) 2>&5
11081 ac_status=$? 11172 ac_status=$?
@@ -11155,8 +11246,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11155 cat conftest.err >&5 11246 cat conftest.err >&5
11156 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11247 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11157 (exit $ac_status); } && 11248 (exit $ac_status); } &&
11158 { ac_try='test -z "$ac_c_werror_flag" 11249 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11159 || test ! -s conftest.err'
11160 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11250 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11161 (eval $ac_try) 2>&5 11251 (eval $ac_try) 2>&5
11162 ac_status=$? 11252 ac_status=$?
@@ -11224,8 +11314,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11224 cat conftest.err >&5 11314 cat conftest.err >&5
11225 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11315 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11226 (exit $ac_status); } && 11316 (exit $ac_status); } &&
11227 { ac_try='test -z "$ac_c_werror_flag" 11317 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11228 || test ! -s conftest.err'
11229 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11318 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11230 (eval $ac_try) 2>&5 11319 (eval $ac_try) 2>&5
11231 ac_status=$? 11320 ac_status=$?
@@ -11370,8 +11459,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11370 cat conftest.err >&5 11459 cat conftest.err >&5
11371 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11460 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11372 (exit $ac_status); } && 11461 (exit $ac_status); } &&
11373 { ac_try='test -z "$ac_c_werror_flag" 11462 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11374 || test ! -s conftest.err'
11375 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11463 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11376 (eval $ac_try) 2>&5 11464 (eval $ac_try) 2>&5
11377 ac_status=$? 11465 ac_status=$?
@@ -11480,8 +11568,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11480 cat conftest.err >&5 11568 cat conftest.err >&5
11481 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11569 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11482 (exit $ac_status); } && 11570 (exit $ac_status); } &&
11483 { ac_try='test -z "$ac_c_werror_flag" 11571 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11484 || test ! -s conftest.err'
11485 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11572 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11486 (eval $ac_try) 2>&5 11573 (eval $ac_try) 2>&5
11487 ac_status=$? 11574 ac_status=$?
@@ -11626,8 +11713,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11626 cat conftest.err >&5 11713 cat conftest.err >&5
11627 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11714 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11628 (exit $ac_status); } && 11715 (exit $ac_status); } &&
11629 { ac_try='test -z "$ac_c_werror_flag" 11716 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11630 || test ! -s conftest.err'
11631 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11717 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11632 (eval $ac_try) 2>&5 11718 (eval $ac_try) 2>&5
11633 ac_status=$? 11719 ac_status=$?
@@ -11734,8 +11820,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11734 cat conftest.err >&5 11820 cat conftest.err >&5
11735 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11821 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11736 (exit $ac_status); } && 11822 (exit $ac_status); } &&
11737 { ac_try='test -z "$ac_c_werror_flag" 11823 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11738 || test ! -s conftest.err'
11739 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11824 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11740 (eval $ac_try) 2>&5 11825 (eval $ac_try) 2>&5
11741 ac_status=$? 11826 ac_status=$?
@@ -11889,8 +11974,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
11889 cat conftest.err >&5 11974 cat conftest.err >&5
11890 echo "$as_me:$LINENO: \$? = $ac_status" >&5 11975 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11891 (exit $ac_status); } && 11976 (exit $ac_status); } &&
11892 { ac_try='test -z "$ac_c_werror_flag" 11977 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11893 || test ! -s conftest.err'
11894 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 11978 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11895 (eval $ac_try) 2>&5 11979 (eval $ac_try) 2>&5
11896 ac_status=$? 11980 ac_status=$?
@@ -11965,8 +12049,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
11965 cat conftest.err >&5 12049 cat conftest.err >&5
11966 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12050 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11967 (exit $ac_status); } && 12051 (exit $ac_status); } &&
11968 { ac_try='test -z "$ac_c_werror_flag" 12052 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
11969 || test ! -s conftest.err'
11970 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12053 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
11971 (eval $ac_try) 2>&5 12054 (eval $ac_try) 2>&5
11972 ac_status=$? 12055 ac_status=$?
@@ -12114,8 +12197,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12114 cat conftest.err >&5 12197 cat conftest.err >&5
12115 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12198 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12116 (exit $ac_status); } && 12199 (exit $ac_status); } &&
12117 { ac_try='test -z "$ac_c_werror_flag" 12200 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
12118 || test ! -s conftest.err'
12119 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12201 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12120 (eval $ac_try) 2>&5 12202 (eval $ac_try) 2>&5
12121 ac_status=$? 12203 ac_status=$?
@@ -12192,8 +12274,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12192 cat conftest.err >&5 12274 cat conftest.err >&5
12193 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12275 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12194 (exit $ac_status); } && 12276 (exit $ac_status); } &&
12195 { ac_try='test -z "$ac_c_werror_flag" 12277 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
12196 || test ! -s conftest.err'
12197 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12278 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12198 (eval $ac_try) 2>&5 12279 (eval $ac_try) 2>&5
12199 ac_status=$? 12280 ac_status=$?
@@ -12340,8 +12421,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12340 cat conftest.err >&5 12421 cat conftest.err >&5
12341 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12422 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12342 (exit $ac_status); } && 12423 (exit $ac_status); } &&
12343 { ac_try='test -z "$ac_c_werror_flag" 12424 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
12344 || test ! -s conftest.err'
12345 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12425 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12346 (eval $ac_try) 2>&5 12426 (eval $ac_try) 2>&5
12347 ac_status=$? 12427 ac_status=$?
@@ -12384,153 +12464,6 @@ _ACEOF
12384 fi 12464 fi
12385fi 12465fi
12386 12466
12387### Use Mac OS X Carbon API to implement GUI.
12388HAVE_CARBON=no
12389if test "${with_carbon}" != "no"; then
12390 if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
12391 echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
12392echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6
12393if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
12394 echo $ECHO_N "(cached) $ECHO_C" >&6
12395fi
12396echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
12397echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
12398else
12399 # Is the header compilable?
12400echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5
12401echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6
12402cat >conftest.$ac_ext <<_ACEOF
12403/* confdefs.h. */
12404_ACEOF
12405cat confdefs.h >>conftest.$ac_ext
12406cat >>conftest.$ac_ext <<_ACEOF
12407/* end confdefs.h. */
12408$ac_includes_default
12409#include <Carbon/Carbon.h>
12410_ACEOF
12411rm -f conftest.$ac_objext
12412if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12413 (eval $ac_compile) 2>conftest.er1
12414 ac_status=$?
12415 grep -v '^ *+' conftest.er1 >conftest.err
12416 rm -f conftest.er1
12417 cat conftest.err >&5
12418 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12419 (exit $ac_status); } &&
12420 { ac_try='test -z "$ac_c_werror_flag"
12421 || test ! -s conftest.err'
12422 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12423 (eval $ac_try) 2>&5
12424 ac_status=$?
12425 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12426 (exit $ac_status); }; } &&
12427 { ac_try='test -s conftest.$ac_objext'
12428 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12429 (eval $ac_try) 2>&5
12430 ac_status=$?
12431 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12432 (exit $ac_status); }; }; then
12433 ac_header_compiler=yes
12434else
12435 echo "$as_me: failed program was:" >&5
12436sed 's/^/| /' conftest.$ac_ext >&5
12437
12438ac_header_compiler=no
12439fi
12440rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
12441echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
12442echo "${ECHO_T}$ac_header_compiler" >&6
12443
12444# Is the header present?
12445echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5
12446echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6
12447cat >conftest.$ac_ext <<_ACEOF
12448/* confdefs.h. */
12449_ACEOF
12450cat confdefs.h >>conftest.$ac_ext
12451cat >>conftest.$ac_ext <<_ACEOF
12452/* end confdefs.h. */
12453#include <Carbon/Carbon.h>
12454_ACEOF
12455if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
12456 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
12457 ac_status=$?
12458 grep -v '^ *+' conftest.er1 >conftest.err
12459 rm -f conftest.er1
12460 cat conftest.err >&5
12461 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12462 (exit $ac_status); } >/dev/null; then
12463 if test -s conftest.err; then
12464 ac_cpp_err=$ac_c_preproc_warn_flag
12465 ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
12466 else
12467 ac_cpp_err=
12468 fi
12469else
12470 ac_cpp_err=yes
12471fi
12472if test -z "$ac_cpp_err"; then
12473 ac_header_preproc=yes
12474else
12475 echo "$as_me: failed program was:" >&5
12476sed 's/^/| /' conftest.$ac_ext >&5
12477
12478 ac_header_preproc=no
12479fi
12480rm -f conftest.err conftest.$ac_ext
12481echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
12482echo "${ECHO_T}$ac_header_preproc" >&6
12483
12484# So? What about this header?
12485case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
12486 yes:no: )
12487 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5
12488echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
12489 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&5
12490echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&2;}
12491 ac_header_preproc=yes
12492 ;;
12493 no:yes:* )
12494 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5
12495echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;}
12496 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&5
12497echo "$as_me: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&2;}
12498 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&5
12499echo "$as_me: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&2;}
12500 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&5
12501echo "$as_me: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&2;}
12502 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5
12503echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;}
12504 { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&5
12505echo "$as_me: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&2;}
12506 (
12507 cat <<\_ASBOX
12508## ------------------------------------------ ##
12509## Report this to the AC_PACKAGE_NAME lists. ##
12510## ------------------------------------------ ##
12511_ASBOX
12512 ) |
12513 sed "s/^/$as_me: WARNING: /" >&2
12514 ;;
12515esac
12516echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
12517echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6
12518if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
12519 echo $ECHO_N "(cached) $ECHO_C" >&6
12520else
12521 ac_cv_header_Carbon_Carbon_h=$ac_header_preproc
12522fi
12523echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
12524echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
12525
12526fi
12527if test $ac_cv_header_Carbon_Carbon_h = yes; then
12528 HAVE_CARBON=yes
12529fi
12530
12531
12532fi
12533
12534if test "${ac_cv_header_malloc_malloc_h+set}" = set; then 12467if test "${ac_cv_header_malloc_malloc_h+set}" = set; then
12535 echo "$as_me:$LINENO: checking for malloc/malloc.h" >&5 12468 echo "$as_me:$LINENO: checking for malloc/malloc.h" >&5
12536echo $ECHO_N "checking for malloc/malloc.h... $ECHO_C" >&6 12469echo $ECHO_N "checking for malloc/malloc.h... $ECHO_C" >&6
@@ -12561,8 +12494,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12561 cat conftest.err >&5 12494 cat conftest.err >&5
12562 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12495 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12563 (exit $ac_status); } && 12496 (exit $ac_status); } &&
12564 { ac_try='test -z "$ac_c_werror_flag" 12497 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
12565 || test ! -s conftest.err'
12566 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12498 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12567 (eval $ac_try) 2>&5 12499 (eval $ac_try) 2>&5
12568 ac_status=$? 12500 ac_status=$?
@@ -12678,6 +12610,7 @@ fi
12678 12610
12679 12611
12680 12612
12613### Use Mac OS X Carbon API to implement GUI.
12681if test "${HAVE_CARBON}" = "yes"; then 12614if test "${HAVE_CARBON}" = "yes"; then
12682 12615
12683cat >>confdefs.h <<\_ACEOF 12616cat >>confdefs.h <<\_ACEOF
@@ -12730,8 +12663,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
12730 cat conftest.err >&5 12663 cat conftest.err >&5
12731 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12664 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12732 (exit $ac_status); } && 12665 (exit $ac_status); } &&
12733 { ac_try='test -z "$ac_c_werror_flag" 12666 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
12734 || test ! -s conftest.err'
12735 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12667 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12736 (eval $ac_try) 2>&5 12668 (eval $ac_try) 2>&5
12737 ac_status=$? 12669 ac_status=$?
@@ -12876,8 +12808,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12876 cat conftest.err >&5 12808 cat conftest.err >&5
12877 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12809 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12878 (exit $ac_status); } && 12810 (exit $ac_status); } &&
12879 { ac_try='test -z "$ac_c_werror_flag" 12811 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
12880 || test ! -s conftest.err'
12881 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12812 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12882 (eval $ac_try) 2>&5 12813 (eval $ac_try) 2>&5
12883 ac_status=$? 12814 ac_status=$?
@@ -12953,8 +12884,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
12953 cat conftest.err >&5 12884 cat conftest.err >&5
12954 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12885 echo "$as_me:$LINENO: \$? = $ac_status" >&5
12955 (exit $ac_status); } && 12886 (exit $ac_status); } &&
12956 { ac_try='test -z "$ac_c_werror_flag" 12887 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
12957 || test ! -s conftest.err'
12958 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12888 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
12959 (eval $ac_try) 2>&5 12889 (eval $ac_try) 2>&5
12960 ac_status=$? 12890 ac_status=$?
@@ -13017,8 +12947,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13017 cat conftest.err >&5 12947 cat conftest.err >&5
13018 echo "$as_me:$LINENO: \$? = $ac_status" >&5 12948 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13019 (exit $ac_status); } && 12949 (exit $ac_status); } &&
13020 { ac_try='test -z "$ac_c_werror_flag" 12950 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13021 || test ! -s conftest.err'
13022 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 12951 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13023 (eval $ac_try) 2>&5 12952 (eval $ac_try) 2>&5
13024 ac_status=$? 12953 ac_status=$?
@@ -13099,8 +13028,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13099 cat conftest.err >&5 13028 cat conftest.err >&5
13100 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13029 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13101 (exit $ac_status); } && 13030 (exit $ac_status); } &&
13102 { ac_try='test -z "$ac_c_werror_flag" 13031 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13103 || test ! -s conftest.err'
13104 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13032 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13105 (eval $ac_try) 2>&5 13033 (eval $ac_try) 2>&5
13106 ac_status=$? 13034 ac_status=$?
@@ -13241,8 +13169,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13241 cat conftest.err >&5 13169 cat conftest.err >&5
13242 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13170 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13243 (exit $ac_status); } && 13171 (exit $ac_status); } &&
13244 { ac_try='test -z "$ac_c_werror_flag" 13172 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13245 || test ! -s conftest.err'
13246 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13173 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13247 (eval $ac_try) 2>&5 13174 (eval $ac_try) 2>&5
13248 ac_status=$? 13175 ac_status=$?
@@ -13387,8 +13314,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13387 cat conftest.err >&5 13314 cat conftest.err >&5
13388 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13315 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13389 (exit $ac_status); } && 13316 (exit $ac_status); } &&
13390 { ac_try='test -z "$ac_c_werror_flag" 13317 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13391 || test ! -s conftest.err'
13392 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13318 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13393 (eval $ac_try) 2>&5 13319 (eval $ac_try) 2>&5
13394 ac_status=$? 13320 ac_status=$?
@@ -13464,8 +13390,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13464 cat conftest.err >&5 13390 cat conftest.err >&5
13465 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13391 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13466 (exit $ac_status); } && 13392 (exit $ac_status); } &&
13467 { ac_try='test -z "$ac_c_werror_flag" 13393 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13468 || test ! -s conftest.err'
13469 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13394 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13470 (eval $ac_try) 2>&5 13395 (eval $ac_try) 2>&5
13471 ac_status=$? 13396 ac_status=$?
@@ -13538,8 +13463,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13538 cat conftest.err >&5 13463 cat conftest.err >&5
13539 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13464 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13540 (exit $ac_status); } && 13465 (exit $ac_status); } &&
13541 { ac_try='test -z "$ac_c_werror_flag" 13466 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13542 || test ! -s conftest.err'
13543 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13467 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13544 (eval $ac_try) 2>&5 13468 (eval $ac_try) 2>&5
13545 ac_status=$? 13469 ac_status=$?
@@ -13694,8 +13618,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
13694 cat conftest.err >&5 13618 cat conftest.err >&5
13695 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13619 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13696 (exit $ac_status); } && 13620 (exit $ac_status); } &&
13697 { ac_try='test -z "$ac_c_werror_flag" 13621 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13698 || test ! -s conftest.err'
13699 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13622 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13700 (eval $ac_try) 2>&5 13623 (eval $ac_try) 2>&5
13701 ac_status=$? 13624 ac_status=$?
@@ -13761,8 +13684,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
13761 cat conftest.err >&5 13684 cat conftest.err >&5
13762 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13685 echo "$as_me:$LINENO: \$? = $ac_status" >&5
13763 (exit $ac_status); } && 13686 (exit $ac_status); } &&
13764 { ac_try='test -z "$ac_c_werror_flag" 13687 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
13765 || test ! -s conftest.err'
13766 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13688 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
13767 (eval $ac_try) 2>&5 13689 (eval $ac_try) 2>&5
13768 ac_status=$? 13690 ac_status=$?
@@ -14021,8 +13943,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14021 cat conftest.err >&5 13943 cat conftest.err >&5
14022 echo "$as_me:$LINENO: \$? = $ac_status" >&5 13944 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14023 (exit $ac_status); } && 13945 (exit $ac_status); } &&
14024 { ac_try='test -z "$ac_c_werror_flag" 13946 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
14025 || test ! -s conftest.err'
14026 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 13947 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14027 (eval $ac_try) 2>&5 13948 (eval $ac_try) 2>&5
14028 ac_status=$? 13949 ac_status=$?
@@ -14089,8 +14010,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14089 cat conftest.err >&5 14010 cat conftest.err >&5
14090 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14011 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14091 (exit $ac_status); } && 14012 (exit $ac_status); } &&
14092 { ac_try='test -z "$ac_c_werror_flag" 14013 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
14093 || test ! -s conftest.err'
14094 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14014 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14095 (eval $ac_try) 2>&5 14015 (eval $ac_try) 2>&5
14096 ac_status=$? 14016 ac_status=$?
@@ -14242,8 +14162,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
14242 cat conftest.err >&5 14162 cat conftest.err >&5
14243 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14163 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14244 (exit $ac_status); } && 14164 (exit $ac_status); } &&
14245 { ac_try='test -z "$ac_c_werror_flag" 14165 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
14246 || test ! -s conftest.err'
14247 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14166 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14248 (eval $ac_try) 2>&5 14167 (eval $ac_try) 2>&5
14249 ac_status=$? 14168 ac_status=$?
@@ -14427,8 +14346,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14427 cat conftest.err >&5 14346 cat conftest.err >&5
14428 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14347 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14429 (exit $ac_status); } && 14348 (exit $ac_status); } &&
14430 { ac_try='test -z "$ac_c_werror_flag" 14349 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
14431 || test ! -s conftest.err'
14432 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14350 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14433 (eval $ac_try) 2>&5 14351 (eval $ac_try) 2>&5
14434 ac_status=$? 14352 ac_status=$?
@@ -14755,8 +14673,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14755 cat conftest.err >&5 14673 cat conftest.err >&5
14756 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14674 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14757 (exit $ac_status); } && 14675 (exit $ac_status); } &&
14758 { ac_try='test -z "$ac_c_werror_flag" 14676 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
14759 || test ! -s conftest.err'
14760 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14677 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14761 (eval $ac_try) 2>&5 14678 (eval $ac_try) 2>&5
14762 ac_status=$? 14679 ac_status=$?
@@ -14857,8 +14774,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14857 cat conftest.err >&5 14774 cat conftest.err >&5
14858 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14775 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14859 (exit $ac_status); } && 14776 (exit $ac_status); } &&
14860 { ac_try='test -z "$ac_c_werror_flag" 14777 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
14861 || test ! -s conftest.err'
14862 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14778 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14863 (eval $ac_try) 2>&5 14779 (eval $ac_try) 2>&5
14864 ac_status=$? 14780 ac_status=$?
@@ -14931,8 +14847,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
14931 cat conftest.err >&5 14847 cat conftest.err >&5
14932 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14848 echo "$as_me:$LINENO: \$? = $ac_status" >&5
14933 (exit $ac_status); } && 14849 (exit $ac_status); } &&
14934 { ac_try='test -z "$ac_c_werror_flag" 14850 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
14935 || test ! -s conftest.err'
14936 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14851 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
14937 (eval $ac_try) 2>&5 14852 (eval $ac_try) 2>&5
14938 ac_status=$? 14853 ac_status=$?
@@ -15011,8 +14926,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15011 cat conftest.err >&5 14926 cat conftest.err >&5
15012 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14927 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15013 (exit $ac_status); } && 14928 (exit $ac_status); } &&
15014 { ac_try='test -z "$ac_c_werror_flag" 14929 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15015 || test ! -s conftest.err'
15016 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14930 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15017 (eval $ac_try) 2>&5 14931 (eval $ac_try) 2>&5
15018 ac_status=$? 14932 ac_status=$?
@@ -15081,8 +14995,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15081 cat conftest.err >&5 14995 cat conftest.err >&5
15082 echo "$as_me:$LINENO: \$? = $ac_status" >&5 14996 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15083 (exit $ac_status); } && 14997 (exit $ac_status); } &&
15084 { ac_try='test -z "$ac_c_werror_flag" 14998 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15085 || test ! -s conftest.err'
15086 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 14999 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15087 (eval $ac_try) 2>&5 15000 (eval $ac_try) 2>&5
15088 ac_status=$? 15001 ac_status=$?
@@ -15150,8 +15063,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15150 cat conftest.err >&5 15063 cat conftest.err >&5
15151 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15064 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15152 (exit $ac_status); } && 15065 (exit $ac_status); } &&
15153 { ac_try='test -z "$ac_c_werror_flag" 15066 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15154 || test ! -s conftest.err'
15155 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15067 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15156 (eval $ac_try) 2>&5 15068 (eval $ac_try) 2>&5
15157 ac_status=$? 15069 ac_status=$?
@@ -15225,8 +15137,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15225 cat conftest.err >&5 15137 cat conftest.err >&5
15226 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15138 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15227 (exit $ac_status); } && 15139 (exit $ac_status); } &&
15228 { ac_try='test -z "$ac_c_werror_flag" 15140 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15229 || test ! -s conftest.err'
15230 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15141 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15231 (eval $ac_try) 2>&5 15142 (eval $ac_try) 2>&5
15232 ac_status=$? 15143 ac_status=$?
@@ -15330,8 +15241,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15330 cat conftest.err >&5 15241 cat conftest.err >&5
15331 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15242 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15332 (exit $ac_status); } && 15243 (exit $ac_status); } &&
15333 { ac_try='test -z "$ac_c_werror_flag" 15244 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15334 || test ! -s conftest.err'
15335 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15245 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15336 (eval $ac_try) 2>&5 15246 (eval $ac_try) 2>&5
15337 ac_status=$? 15247 ac_status=$?
@@ -15406,8 +15316,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15406 cat conftest.err >&5 15316 cat conftest.err >&5
15407 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15317 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15408 (exit $ac_status); } && 15318 (exit $ac_status); } &&
15409 { ac_try='test -z "$ac_c_werror_flag" 15319 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15410 || test ! -s conftest.err'
15411 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15320 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15412 (eval $ac_try) 2>&5 15321 (eval $ac_try) 2>&5
15413 ac_status=$? 15322 ac_status=$?
@@ -15559,8 +15468,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15559 cat conftest.err >&5 15468 cat conftest.err >&5
15560 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15469 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15561 (exit $ac_status); } && 15470 (exit $ac_status); } &&
15562 { ac_try='test -z "$ac_c_werror_flag" 15471 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15563 || test ! -s conftest.err'
15564 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15472 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15565 (eval $ac_try) 2>&5 15473 (eval $ac_try) 2>&5
15566 ac_status=$? 15474 ac_status=$?
@@ -15628,8 +15536,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15628 cat conftest.err >&5 15536 cat conftest.err >&5
15629 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15537 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15630 (exit $ac_status); } && 15538 (exit $ac_status); } &&
15631 { ac_try='test -z "$ac_c_werror_flag" 15539 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15632 || test ! -s conftest.err'
15633 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15540 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15634 (eval $ac_try) 2>&5 15541 (eval $ac_try) 2>&5
15635 ac_status=$? 15542 ac_status=$?
@@ -15806,8 +15713,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
15806 cat conftest.err >&5 15713 cat conftest.err >&5
15807 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15714 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15808 (exit $ac_status); } && 15715 (exit $ac_status); } &&
15809 { ac_try='test -z "$ac_c_werror_flag" 15716 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15810 || test ! -s conftest.err'
15811 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15717 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15812 (eval $ac_try) 2>&5 15718 (eval $ac_try) 2>&5
15813 ac_status=$? 15719 ac_status=$?
@@ -15883,8 +15789,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
15883 cat conftest.err >&5 15789 cat conftest.err >&5
15884 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15790 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15885 (exit $ac_status); } && 15791 (exit $ac_status); } &&
15886 { ac_try='test -z "$ac_c_werror_flag" 15792 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
15887 || test ! -s conftest.err'
15888 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15793 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
15889 (eval $ac_try) 2>&5 15794 (eval $ac_try) 2>&5
15890 ac_status=$? 15795 ac_status=$?
@@ -16038,8 +15943,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16038 cat conftest.err >&5 15943 cat conftest.err >&5
16039 echo "$as_me:$LINENO: \$? = $ac_status" >&5 15944 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16040 (exit $ac_status); } && 15945 (exit $ac_status); } &&
16041 { ac_try='test -z "$ac_c_werror_flag" 15946 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16042 || test ! -s conftest.err'
16043 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 15947 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16044 (eval $ac_try) 2>&5 15948 (eval $ac_try) 2>&5
16045 ac_status=$? 15949 ac_status=$?
@@ -16190,8 +16094,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16190 cat conftest.err >&5 16094 cat conftest.err >&5
16191 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16095 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16192 (exit $ac_status); } && 16096 (exit $ac_status); } &&
16193 { ac_try='test -z "$ac_c_werror_flag" 16097 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16194 || test ! -s conftest.err'
16195 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16098 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16196 (eval $ac_try) 2>&5 16099 (eval $ac_try) 2>&5
16197 ac_status=$? 16100 ac_status=$?
@@ -16342,8 +16245,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16342 cat conftest.err >&5 16245 cat conftest.err >&5
16343 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16246 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16344 (exit $ac_status); } && 16247 (exit $ac_status); } &&
16345 { ac_try='test -z "$ac_c_werror_flag" 16248 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16346 || test ! -s conftest.err'
16347 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16249 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16348 (eval $ac_try) 2>&5 16250 (eval $ac_try) 2>&5
16349 ac_status=$? 16251 ac_status=$?
@@ -16485,8 +16387,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16485 cat conftest.err >&5 16387 cat conftest.err >&5
16486 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16388 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16487 (exit $ac_status); } && 16389 (exit $ac_status); } &&
16488 { ac_try='test -z "$ac_c_werror_flag" 16390 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16489 || test ! -s conftest.err'
16490 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16391 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16491 (eval $ac_try) 2>&5 16392 (eval $ac_try) 2>&5
16492 ac_status=$? 16393 ac_status=$?
@@ -16530,8 +16431,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16530 cat conftest.err >&5 16431 cat conftest.err >&5
16531 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16432 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16532 (exit $ac_status); } && 16433 (exit $ac_status); } &&
16533 { ac_try='test -z "$ac_c_werror_flag" 16434 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16534 || test ! -s conftest.err'
16535 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16435 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16536 (eval $ac_try) 2>&5 16436 (eval $ac_try) 2>&5
16537 ac_status=$? 16437 ac_status=$?
@@ -16677,8 +16577,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16677 cat conftest.err >&5 16577 cat conftest.err >&5
16678 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16578 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16679 (exit $ac_status); } && 16579 (exit $ac_status); } &&
16680 { ac_try='test -z "$ac_c_werror_flag" 16580 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16681 || test ! -s conftest.err'
16682 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16581 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16683 (eval $ac_try) 2>&5 16582 (eval $ac_try) 2>&5
16684 ac_status=$? 16583 ac_status=$?
@@ -16722,8 +16621,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16722 cat conftest.err >&5 16621 cat conftest.err >&5
16723 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16622 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16724 (exit $ac_status); } && 16623 (exit $ac_status); } &&
16725 { ac_try='test -z "$ac_c_werror_flag" 16624 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16726 || test ! -s conftest.err'
16727 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16625 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16728 (eval $ac_try) 2>&5 16626 (eval $ac_try) 2>&5
16729 ac_status=$? 16627 ac_status=$?
@@ -16788,8 +16686,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16788 cat conftest.err >&5 16686 cat conftest.err >&5
16789 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16687 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16790 (exit $ac_status); } && 16688 (exit $ac_status); } &&
16791 { ac_try='test -z "$ac_c_werror_flag" 16689 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16792 || test ! -s conftest.err'
16793 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16690 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16794 (eval $ac_try) 2>&5 16691 (eval $ac_try) 2>&5
16795 ac_status=$? 16692 ac_status=$?
@@ -16852,8 +16749,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
16852 cat conftest.err >&5 16749 cat conftest.err >&5
16853 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16750 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16854 (exit $ac_status); } && 16751 (exit $ac_status); } &&
16855 { ac_try='test -z "$ac_c_werror_flag" 16752 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16856 || test ! -s conftest.err'
16857 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16753 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16858 (eval $ac_try) 2>&5 16754 (eval $ac_try) 2>&5
16859 ac_status=$? 16755 ac_status=$?
@@ -16955,8 +16851,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
16955 cat conftest.err >&5 16851 cat conftest.err >&5
16956 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16852 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16957 (exit $ac_status); } && 16853 (exit $ac_status); } &&
16958 { ac_try='test -z "$ac_c_werror_flag" 16854 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
16959 || test ! -s conftest.err'
16960 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16855 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
16961 (eval $ac_try) 2>&5 16856 (eval $ac_try) 2>&5
16962 ac_status=$? 16857 ac_status=$?
@@ -17025,8 +16920,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17025 cat conftest.err >&5 16920 cat conftest.err >&5
17026 echo "$as_me:$LINENO: \$? = $ac_status" >&5 16921 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17027 (exit $ac_status); } && 16922 (exit $ac_status); } &&
17028 { ac_try='test -z "$ac_c_werror_flag" 16923 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17029 || test ! -s conftest.err'
17030 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 16924 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17031 (eval $ac_try) 2>&5 16925 (eval $ac_try) 2>&5
17032 ac_status=$? 16926 ac_status=$?
@@ -17133,8 +17027,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17133 cat conftest.err >&5 17027 cat conftest.err >&5
17134 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17028 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17135 (exit $ac_status); } && 17029 (exit $ac_status); } &&
17136 { ac_try='test -z "$ac_c_werror_flag" 17030 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17137 || test ! -s conftest.err'
17138 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17031 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17139 (eval $ac_try) 2>&5 17032 (eval $ac_try) 2>&5
17140 ac_status=$? 17033 ac_status=$?
@@ -17237,8 +17130,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17237 cat conftest.err >&5 17130 cat conftest.err >&5
17238 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17131 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17239 (exit $ac_status); } && 17132 (exit $ac_status); } &&
17240 { ac_try='test -z "$ac_c_werror_flag" 17133 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17241 || test ! -s conftest.err'
17242 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17134 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17243 (eval $ac_try) 2>&5 17135 (eval $ac_try) 2>&5
17244 ac_status=$? 17136 ac_status=$?
@@ -17314,8 +17206,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17314 cat conftest.err >&5 17206 cat conftest.err >&5
17315 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17207 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17316 (exit $ac_status); } && 17208 (exit $ac_status); } &&
17317 { ac_try='test -z "$ac_c_werror_flag" 17209 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17318 || test ! -s conftest.err'
17319 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17210 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17320 (eval $ac_try) 2>&5 17211 (eval $ac_try) 2>&5
17321 ac_status=$? 17212 ac_status=$?
@@ -17419,8 +17310,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17419 cat conftest.err >&5 17310 cat conftest.err >&5
17420 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17311 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17421 (exit $ac_status); } && 17312 (exit $ac_status); } &&
17422 { ac_try='test -z "$ac_c_werror_flag" 17313 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17423 || test ! -s conftest.err'
17424 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17314 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17425 (eval $ac_try) 2>&5 17315 (eval $ac_try) 2>&5
17426 ac_status=$? 17316 ac_status=$?
@@ -17512,8 +17402,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17512 cat conftest.err >&5 17402 cat conftest.err >&5
17513 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17403 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17514 (exit $ac_status); } && 17404 (exit $ac_status); } &&
17515 { ac_try='test -z "$ac_c_werror_flag" 17405 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17516 || test ! -s conftest.err'
17517 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17406 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17518 (eval $ac_try) 2>&5 17407 (eval $ac_try) 2>&5
17519 ac_status=$? 17408 ac_status=$?
@@ -17578,8 +17467,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17578 cat conftest.err >&5 17467 cat conftest.err >&5
17579 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17468 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17580 (exit $ac_status); } && 17469 (exit $ac_status); } &&
17581 { ac_try='test -z "$ac_c_werror_flag" 17470 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17582 || test ! -s conftest.err'
17583 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17471 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17584 (eval $ac_try) 2>&5 17472 (eval $ac_try) 2>&5
17585 ac_status=$? 17473 ac_status=$?
@@ -17645,8 +17533,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17645 cat conftest.err >&5 17533 cat conftest.err >&5
17646 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17534 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17647 (exit $ac_status); } && 17535 (exit $ac_status); } &&
17648 { ac_try='test -z "$ac_c_werror_flag" 17536 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17649 || test ! -s conftest.err'
17650 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17537 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17651 (eval $ac_try) 2>&5 17538 (eval $ac_try) 2>&5
17652 ac_status=$? 17539 ac_status=$?
@@ -17756,8 +17643,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17756 cat conftest.err >&5 17643 cat conftest.err >&5
17757 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17644 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17758 (exit $ac_status); } && 17645 (exit $ac_status); } &&
17759 { ac_try='test -z "$ac_c_werror_flag" 17646 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17760 || test ! -s conftest.err'
17761 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17647 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17762 (eval $ac_try) 2>&5 17648 (eval $ac_try) 2>&5
17763 ac_status=$? 17649 ac_status=$?
@@ -17822,8 +17708,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17822 cat conftest.err >&5 17708 cat conftest.err >&5
17823 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17709 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17824 (exit $ac_status); } && 17710 (exit $ac_status); } &&
17825 { ac_try='test -z "$ac_c_werror_flag" 17711 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17826 || test ! -s conftest.err'
17827 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17712 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17828 (eval $ac_try) 2>&5 17713 (eval $ac_try) 2>&5
17829 ac_status=$? 17714 ac_status=$?
@@ -17903,8 +17788,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17903 cat conftest.err >&5 17788 cat conftest.err >&5
17904 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17789 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17905 (exit $ac_status); } && 17790 (exit $ac_status); } &&
17906 { ac_try='test -z "$ac_c_werror_flag" 17791 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17907 || test ! -s conftest.err'
17908 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17792 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17909 (eval $ac_try) 2>&5 17793 (eval $ac_try) 2>&5
17910 ac_status=$? 17794 ac_status=$?
@@ -17977,8 +17861,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
17977 cat conftest.err >&5 17861 cat conftest.err >&5
17978 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17862 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17979 (exit $ac_status); } && 17863 (exit $ac_status); } &&
17980 { ac_try='test -z "$ac_c_werror_flag" 17864 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
17981 || test ! -s conftest.err'
17982 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17865 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
17983 (eval $ac_try) 2>&5 17866 (eval $ac_try) 2>&5
17984 ac_status=$? 17867 ac_status=$?
@@ -18051,8 +17934,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
18051 cat conftest.err >&5 17934 cat conftest.err >&5
18052 echo "$as_me:$LINENO: \$? = $ac_status" >&5 17935 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18053 (exit $ac_status); } && 17936 (exit $ac_status); } &&
18054 { ac_try='test -z "$ac_c_werror_flag" 17937 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18055 || test ! -s conftest.err'
18056 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 17938 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18057 (eval $ac_try) 2>&5 17939 (eval $ac_try) 2>&5
18058 ac_status=$? 17940 ac_status=$?
@@ -18125,8 +18007,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
18125 cat conftest.err >&5 18007 cat conftest.err >&5
18126 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18008 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18127 (exit $ac_status); } && 18009 (exit $ac_status); } &&
18128 { ac_try='test -z "$ac_c_werror_flag" 18010 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18129 || test ! -s conftest.err'
18130 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18011 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18131 (eval $ac_try) 2>&5 18012 (eval $ac_try) 2>&5
18132 ac_status=$? 18013 ac_status=$?
@@ -18200,8 +18081,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
18200 cat conftest.err >&5 18081 cat conftest.err >&5
18201 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18082 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18202 (exit $ac_status); } && 18083 (exit $ac_status); } &&
18203 { ac_try='test -z "$ac_c_werror_flag" 18084 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18204 || test ! -s conftest.err'
18205 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18085 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18206 (eval $ac_try) 2>&5 18086 (eval $ac_try) 2>&5
18207 ac_status=$? 18087 ac_status=$?
@@ -18273,8 +18153,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
18273 cat conftest.err >&5 18153 cat conftest.err >&5
18274 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18154 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18275 (exit $ac_status); } && 18155 (exit $ac_status); } &&
18276 { ac_try='test -z "$ac_c_werror_flag" 18156 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18277 || test ! -s conftest.err'
18278 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18157 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18279 (eval $ac_try) 2>&5 18158 (eval $ac_try) 2>&5
18280 ac_status=$? 18159 ac_status=$?
@@ -18349,8 +18228,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
18349 cat conftest.err >&5 18228 cat conftest.err >&5
18350 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18229 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18351 (exit $ac_status); } && 18230 (exit $ac_status); } &&
18352 { ac_try='test -z "$ac_c_werror_flag" 18231 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18353 || test ! -s conftest.err'
18354 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18232 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18355 (eval $ac_try) 2>&5 18233 (eval $ac_try) 2>&5
18356 ac_status=$? 18234 ac_status=$?
@@ -18422,8 +18300,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
18422 cat conftest.err >&5 18300 cat conftest.err >&5
18423 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18301 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18424 (exit $ac_status); } && 18302 (exit $ac_status); } &&
18425 { ac_try='test -z "$ac_c_werror_flag" 18303 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18426 || test ! -s conftest.err'
18427 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18304 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18428 (eval $ac_try) 2>&5 18305 (eval $ac_try) 2>&5
18429 ac_status=$? 18306 ac_status=$?
@@ -18496,8 +18373,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18496 cat conftest.err >&5 18373 cat conftest.err >&5
18497 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18374 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18498 (exit $ac_status); } && 18375 (exit $ac_status); } &&
18499 { ac_try='test -z "$ac_c_werror_flag" 18376 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18500 || test ! -s conftest.err'
18501 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18377 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18502 (eval $ac_try) 2>&5 18378 (eval $ac_try) 2>&5
18503 ac_status=$? 18379 ac_status=$?
@@ -18647,8 +18523,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18647 cat conftest.err >&5 18523 cat conftest.err >&5
18648 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18524 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18649 (exit $ac_status); } && 18525 (exit $ac_status); } &&
18650 { ac_try='test -z "$ac_c_werror_flag" 18526 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18651 || test ! -s conftest.err'
18652 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18527 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18653 (eval $ac_try) 2>&5 18528 (eval $ac_try) 2>&5
18654 ac_status=$? 18529 ac_status=$?
@@ -18794,8 +18669,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18794 cat conftest.err >&5 18669 cat conftest.err >&5
18795 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18670 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18796 (exit $ac_status); } && 18671 (exit $ac_status); } &&
18797 { ac_try='test -z "$ac_c_werror_flag" 18672 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18798 || test ! -s conftest.err'
18799 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18673 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18800 (eval $ac_try) 2>&5 18674 (eval $ac_try) 2>&5
18801 ac_status=$? 18675 ac_status=$?
@@ -18941,8 +18815,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
18941 cat conftest.err >&5 18815 cat conftest.err >&5
18942 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18816 echo "$as_me:$LINENO: \$? = $ac_status" >&5
18943 (exit $ac_status); } && 18817 (exit $ac_status); } &&
18944 { ac_try='test -z "$ac_c_werror_flag" 18818 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
18945 || test ! -s conftest.err'
18946 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18819 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
18947 (eval $ac_try) 2>&5 18820 (eval $ac_try) 2>&5
18948 ac_status=$? 18821 ac_status=$?
@@ -19099,8 +18972,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19099 cat conftest.err >&5 18972 cat conftest.err >&5
19100 echo "$as_me:$LINENO: \$? = $ac_status" >&5 18973 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19101 (exit $ac_status); } && 18974 (exit $ac_status); } &&
19102 { ac_try='test -z "$ac_c_werror_flag" 18975 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
19103 || test ! -s conftest.err'
19104 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 18976 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19105 (eval $ac_try) 2>&5 18977 (eval $ac_try) 2>&5
19106 ac_status=$? 18978 ac_status=$?
@@ -19246,8 +19118,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19246 cat conftest.err >&5 19118 cat conftest.err >&5
19247 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19119 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19248 (exit $ac_status); } && 19120 (exit $ac_status); } &&
19249 { ac_try='test -z "$ac_c_werror_flag" 19121 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
19250 || test ! -s conftest.err'
19251 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19122 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19252 (eval $ac_try) 2>&5 19123 (eval $ac_try) 2>&5
19253 ac_status=$? 19124 ac_status=$?
@@ -19393,8 +19264,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19393 cat conftest.err >&5 19264 cat conftest.err >&5
19394 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19265 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19395 (exit $ac_status); } && 19266 (exit $ac_status); } &&
19396 { ac_try='test -z "$ac_c_werror_flag" 19267 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
19397 || test ! -s conftest.err'
19398 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19268 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19399 (eval $ac_try) 2>&5 19269 (eval $ac_try) 2>&5
19400 ac_status=$? 19270 ac_status=$?
@@ -19552,8 +19422,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19552 cat conftest.err >&5 19422 cat conftest.err >&5
19553 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19423 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19554 (exit $ac_status); } && 19424 (exit $ac_status); } &&
19555 { ac_try='test -z "$ac_c_werror_flag" 19425 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
19556 || test ! -s conftest.err'
19557 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19426 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19558 (eval $ac_try) 2>&5 19427 (eval $ac_try) 2>&5
19559 ac_status=$? 19428 ac_status=$?
@@ -19711,8 +19580,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
19711 cat conftest.err >&5 19580 cat conftest.err >&5
19712 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19581 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19713 (exit $ac_status); } && 19582 (exit $ac_status); } &&
19714 { ac_try='test -z "$ac_c_werror_flag" 19583 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
19715 || test ! -s conftest.err'
19716 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19584 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19717 (eval $ac_try) 2>&5 19585 (eval $ac_try) 2>&5
19718 ac_status=$? 19586 ac_status=$?
@@ -19901,8 +19769,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
19901 cat conftest.err >&5 19769 cat conftest.err >&5
19902 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19770 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19903 (exit $ac_status); } && 19771 (exit $ac_status); } &&
19904 { ac_try='test -z "$ac_c_werror_flag" 19772 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
19905 || test ! -s conftest.err'
19906 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19773 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19907 (eval $ac_try) 2>&5 19774 (eval $ac_try) 2>&5
19908 ac_status=$? 19775 ac_status=$?
@@ -19975,8 +19842,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
19975 cat conftest.err >&5 19842 cat conftest.err >&5
19976 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19843 echo "$as_me:$LINENO: \$? = $ac_status" >&5
19977 (exit $ac_status); } && 19844 (exit $ac_status); } &&
19978 { ac_try='test -z "$ac_c_werror_flag" 19845 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
19979 || test ! -s conftest.err'
19980 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19846 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
19981 (eval $ac_try) 2>&5 19847 (eval $ac_try) 2>&5
19982 ac_status=$? 19848 ac_status=$?
@@ -20044,8 +19910,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20044 cat conftest.err >&5 19910 cat conftest.err >&5
20045 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19911 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20046 (exit $ac_status); } && 19912 (exit $ac_status); } &&
20047 { ac_try='test -z "$ac_c_werror_flag" 19913 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20048 || test ! -s conftest.err'
20049 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19914 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20050 (eval $ac_try) 2>&5 19915 (eval $ac_try) 2>&5
20051 ac_status=$? 19916 ac_status=$?
@@ -20091,8 +19956,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20091 cat conftest.err >&5 19956 cat conftest.err >&5
20092 echo "$as_me:$LINENO: \$? = $ac_status" >&5 19957 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20093 (exit $ac_status); } && 19958 (exit $ac_status); } &&
20094 { ac_try='test -z "$ac_c_werror_flag" 19959 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20095 || test ! -s conftest.err'
20096 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 19960 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20097 (eval $ac_try) 2>&5 19961 (eval $ac_try) 2>&5
20098 ac_status=$? 19962 ac_status=$?
@@ -20166,8 +20030,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
20166 cat conftest.err >&5 20030 cat conftest.err >&5
20167 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20031 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20168 (exit $ac_status); } && 20032 (exit $ac_status); } &&
20169 { ac_try='test -z "$ac_c_werror_flag" 20033 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20170 || test ! -s conftest.err'
20171 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20034 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20172 (eval $ac_try) 2>&5 20035 (eval $ac_try) 2>&5
20173 ac_status=$? 20036 ac_status=$?
@@ -20231,8 +20094,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20231 cat conftest.err >&5 20094 cat conftest.err >&5
20232 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20095 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20233 (exit $ac_status); } && 20096 (exit $ac_status); } &&
20234 { ac_try='test -z "$ac_c_werror_flag" 20097 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20235 || test ! -s conftest.err'
20236 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20098 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20237 (eval $ac_try) 2>&5 20099 (eval $ac_try) 2>&5
20238 ac_status=$? 20100 ac_status=$?
@@ -20370,8 +20232,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
20370 cat conftest.err >&5 20232 cat conftest.err >&5
20371 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20233 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20372 (exit $ac_status); } && 20234 (exit $ac_status); } &&
20373 { ac_try='test -z "$ac_c_werror_flag" 20235 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20374 || test ! -s conftest.err'
20375 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20236 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20376 (eval $ac_try) 2>&5 20237 (eval $ac_try) 2>&5
20377 ac_status=$? 20238 ac_status=$?
@@ -20432,8 +20293,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20432 cat conftest.err >&5 20293 cat conftest.err >&5
20433 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20294 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20434 (exit $ac_status); } && 20295 (exit $ac_status); } &&
20435 { ac_try='test -z "$ac_c_werror_flag" 20296 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20436 || test ! -s conftest.err'
20437 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20297 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20438 (eval $ac_try) 2>&5 20298 (eval $ac_try) 2>&5
20439 ac_status=$? 20299 ac_status=$?
@@ -20578,8 +20438,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20578 cat conftest.err >&5 20438 cat conftest.err >&5
20579 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20439 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20580 (exit $ac_status); } && 20440 (exit $ac_status); } &&
20581 { ac_try='test -z "$ac_c_werror_flag" 20441 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20582 || test ! -s conftest.err'
20583 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20442 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20584 (eval $ac_try) 2>&5 20443 (eval $ac_try) 2>&5
20585 ac_status=$? 20444 ac_status=$?
@@ -20735,8 +20594,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20735 cat conftest.err >&5 20594 cat conftest.err >&5
20736 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20595 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20737 (exit $ac_status); } && 20596 (exit $ac_status); } &&
20738 { ac_try='test -z "$ac_c_werror_flag" 20597 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20739 || test ! -s conftest.err'
20740 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20598 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20741 (eval $ac_try) 2>&5 20599 (eval $ac_try) 2>&5
20742 ac_status=$? 20600 ac_status=$?
@@ -20907,8 +20765,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20907 cat conftest.err >&5 20765 cat conftest.err >&5
20908 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20766 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20909 (exit $ac_status); } && 20767 (exit $ac_status); } &&
20910 { ac_try='test -z "$ac_c_werror_flag" 20768 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20911 || test ! -s conftest.err'
20912 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20769 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20913 (eval $ac_try) 2>&5 20770 (eval $ac_try) 2>&5
20914 ac_status=$? 20771 ac_status=$?
@@ -20976,8 +20833,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
20976 cat conftest.err >&5 20833 cat conftest.err >&5
20977 echo "$as_me:$LINENO: \$? = $ac_status" >&5 20834 echo "$as_me:$LINENO: \$? = $ac_status" >&5
20978 (exit $ac_status); } && 20835 (exit $ac_status); } &&
20979 { ac_try='test -z "$ac_c_werror_flag" 20836 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
20980 || test ! -s conftest.err'
20981 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 20837 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
20982 (eval $ac_try) 2>&5 20838 (eval $ac_try) 2>&5
20983 ac_status=$? 20839 ac_status=$?
@@ -21162,8 +21018,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
21162 cat conftest.err >&5 21018 cat conftest.err >&5
21163 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21019 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21164 (exit $ac_status); } && 21020 (exit $ac_status); } &&
21165 { ac_try='test -z "$ac_c_werror_flag" 21021 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
21166 || test ! -s conftest.err'
21167 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21022 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21168 (eval $ac_try) 2>&5 21023 (eval $ac_try) 2>&5
21169 ac_status=$? 21024 ac_status=$?
@@ -21456,8 +21311,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
21456 cat conftest.err >&5 21311 cat conftest.err >&5
21457 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21312 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21458 (exit $ac_status); } && 21313 (exit $ac_status); } &&
21459 { ac_try='test -z "$ac_c_werror_flag" 21314 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
21460 || test ! -s conftest.err'
21461 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21315 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21462 (eval $ac_try) 2>&5 21316 (eval $ac_try) 2>&5
21463 ac_status=$? 21317 ac_status=$?
@@ -21522,8 +21376,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
21522 cat conftest.err >&5 21376 cat conftest.err >&5
21523 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21377 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21524 (exit $ac_status); } && 21378 (exit $ac_status); } &&
21525 { ac_try='test -z "$ac_c_werror_flag" 21379 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
21526 || test ! -s conftest.err'
21527 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21380 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21528 (eval $ac_try) 2>&5 21381 (eval $ac_try) 2>&5
21529 ac_status=$? 21382 ac_status=$?
@@ -21586,8 +21439,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
21586 cat conftest.err >&5 21439 cat conftest.err >&5
21587 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21440 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21588 (exit $ac_status); } && 21441 (exit $ac_status); } &&
21589 { ac_try='test -z "$ac_c_werror_flag" 21442 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
21590 || test ! -s conftest.err'
21591 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21443 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21592 (eval $ac_try) 2>&5 21444 (eval $ac_try) 2>&5
21593 ac_status=$? 21445 ac_status=$?
@@ -21653,8 +21505,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
21653 cat conftest.err >&5 21505 cat conftest.err >&5
21654 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21506 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21655 (exit $ac_status); } && 21507 (exit $ac_status); } &&
21656 { ac_try='test -z "$ac_c_werror_flag" 21508 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
21657 || test ! -s conftest.err'
21658 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21509 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21659 (eval $ac_try) 2>&5 21510 (eval $ac_try) 2>&5
21660 ac_status=$? 21511 ac_status=$?
@@ -21695,8 +21546,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
21695 cat conftest.err >&5 21546 cat conftest.err >&5
21696 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21547 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21697 (exit $ac_status); } && 21548 (exit $ac_status); } &&
21698 { ac_try='test -z "$ac_c_werror_flag" 21549 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
21699 || test ! -s conftest.err'
21700 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21550 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21701 (eval $ac_try) 2>&5 21551 (eval $ac_try) 2>&5
21702 ac_status=$? 21552 ac_status=$?
@@ -21763,8 +21613,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
21763 cat conftest.err >&5 21613 cat conftest.err >&5
21764 echo "$as_me:$LINENO: \$? = $ac_status" >&5 21614 echo "$as_me:$LINENO: \$? = $ac_status" >&5
21765 (exit $ac_status); } && 21615 (exit $ac_status); } &&
21766 { ac_try='test -z "$ac_c_werror_flag" 21616 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
21767 || test ! -s conftest.err'
21768 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 21617 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
21769 (eval $ac_try) 2>&5 21618 (eval $ac_try) 2>&5
21770 ac_status=$? 21619 ac_status=$?
@@ -22878,11 +22727,6 @@ esac
22878 *) ac_INSTALL=$ac_top_builddir$INSTALL ;; 22727 *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
22879 esac 22728 esac
22880 22729
22881 if test x"$ac_file" != x-; then
22882 { echo "$as_me:$LINENO: creating $ac_file" >&5
22883echo "$as_me: creating $ac_file" >&6;}
22884 rm -f "$ac_file"
22885 fi
22886 # Let's still pretend it is `configure' which instantiates (i.e., don't 22730 # Let's still pretend it is `configure' which instantiates (i.e., don't
22887 # use $as_me), people would be surprised to read: 22731 # use $as_me), people would be surprised to read:
22888 # /* config.h. Generated by config.status. */ 22732 # /* config.h. Generated by config.status. */
@@ -22921,6 +22765,12 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
22921 fi;; 22765 fi;;
22922 esac 22766 esac
22923 done` || { (exit 1); exit 1; } 22767 done` || { (exit 1); exit 1; }
22768
22769 if test x"$ac_file" != x-; then
22770 { echo "$as_me:$LINENO: creating $ac_file" >&5
22771echo "$as_me: creating $ac_file" >&6;}
22772 rm -f "$ac_file"
22773 fi
22924_ACEOF 22774_ACEOF
22925cat >>$CONFIG_STATUS <<_ACEOF 22775cat >>$CONFIG_STATUS <<_ACEOF
22926 sed "$ac_vpsub 22776 sed "$ac_vpsub
diff --git a/configure.in b/configure.in
index 136cd510307..22ed448803b 100644
--- a/configure.in
+++ b/configure.in
@@ -142,6 +142,16 @@ else
142fi 142fi
143AC_SUBST(MAINT) 143AC_SUBST(MAINT)
144 144
145AC_ARG_ENABLE(locallisppath,
146[ --enable-locallisppath=PATH
147 directories Emacs should search for lisp files
148 specific to this site],
149if test "${enableval}" = "no"; then
150 locallisppath=
151elif test "${enableval}" != "yes"; then
152 locallisppath=${enableval}
153fi)
154
145#### Make srcdir absolute, if it isn't already. It's important to 155#### Make srcdir absolute, if it isn't already. It's important to
146#### avoid running the path through pwd unnecessarily, since pwd can 156#### avoid running the path through pwd unnecessarily, since pwd can
147#### give you automounter prefixes, which can go away. We do all this 157#### give you automounter prefixes, which can go away. We do all this
@@ -1694,6 +1704,13 @@ if test "${opsys}" = "hpux9shr"; then
1694 esac 1704 esac
1695fi 1705fi
1696 1706
1707HAVE_CARBON=no
1708if test "${HAVE_X11}" != "yes"; then
1709 if test "${with_carbon}" != "no"; then
1710 AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
1711 fi
1712fi
1713
1697### Compute the unexec source name from the object name. 1714### Compute the unexec source name from the object name.
1698UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" 1715UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1699 1716
@@ -2155,6 +2172,9 @@ if test "${with_toolkit_scroll_bars}" != "no"; then
2155 elif test "${HAVE_GTK}" = "yes"; then 2172 elif test "${HAVE_GTK}" = "yes"; then
2156 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) 2173 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2157 USE_TOOLKIT_SCROLL_BARS=yes 2174 USE_TOOLKIT_SCROLL_BARS=yes
2175 elif test "${HAVE_CARBON}" = "yes"; then
2176 AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
2177 USE_TOOLKIT_SCROLL_BARS=yes
2158 fi 2178 fi
2159fi 2179fi
2160 2180
@@ -2308,15 +2328,10 @@ if test "${HAVE_X11}" = "yes"; then
2308 fi 2328 fi
2309fi 2329fi
2310 2330
2311### Use Mac OS X Carbon API to implement GUI.
2312HAVE_CARBON=no
2313if test "${with_carbon}" != "no"; then
2314 AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
2315fi
2316
2317dnl Check for malloc/malloc.h on darwin 2331dnl Check for malloc/malloc.h on darwin
2318AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])) 2332AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.]))
2319 2333
2334### Use Mac OS X Carbon API to implement GUI.
2320if test "${HAVE_CARBON}" = "yes"; then 2335if test "${HAVE_CARBON}" = "yes"; then
2321 AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.]) 2336 AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
2322 window_system=mac 2337 window_system=mac
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 95f847ac9ee..0efca03ac29 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,22 @@
12005-05-19 Nick Roberts <nickrob@snap.net.nz>
2
3 * TODO: post-command-idle-hook has gone.
4
52005-05-16 Juanma Barranquero <lekktu@gmail.com>
6
7 * NEWS: Remove references to open-network-stream-nowait and
8 open-network-stream-server.
9
102005-05-15 Richard M. Stallman <rms@gnu.org>
11
12 * GNU: Correct/improve previous change.
13
142005-05-14 Richard M. Stallman <rms@gnu.org>
15
16 * GNU: Update footnotes.
17
18 * NEWS: Lots of clarifications and cleanups.
19
12005-05-05 Slawomir Nowaczyk <slawek@cs.lth.se> (tiny change) 202005-05-05 Slawomir Nowaczyk <slawek@cs.lth.se> (tiny change)
2 21
3 * TUTORIAL.pl: Updated header. 22 * TUTORIAL.pl: Updated header.
@@ -87,9 +106,9 @@
87 * TUTORIAL.pl, TUTORIAL.pt_BR, TUTORIAL.ro, TUTORIAL.ru, 106 * TUTORIAL.pl, TUTORIAL.pt_BR, TUTORIAL.ro, TUTORIAL.ru,
88 * TUTORIAL.sk, TUTORIAL.sl, TUTORIAL.th, TUTORIAL.zh: Fix title 107 * TUTORIAL.sk, TUTORIAL.sl, TUTORIAL.th, TUTORIAL.zh: Fix title
89 line. 108 line.
90 109
912005-04-01 Ognyan Kulev <ogi@fmi.uni-sofia.bg> 1102005-04-01 Ognyan Kulev <ogi@fmi.uni-sofia.bg>
92 111
93 * TUTORIAL.bg: Fix title line; Applied TUTORIAL changes in 112 * TUTORIAL.bg: Fix title line; Applied TUTORIAL changes in
94 2005-02-08T14:20:54Z!lute@gnu.org, "Emacs" is not transliterated to cyrillic anymore; 113 2005-02-08T14:20:54Z!lute@gnu.org, "Emacs" is not transliterated to cyrillic anymore;
95 Minor fixes. 114 Minor fixes.
@@ -1836,9 +1855,9 @@
1836 * emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=. 1855 * emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=.
1837 1856
1838 * emacsstool.1: update to document environment variables. 1857 * emacsstool.1: update to document environment variables.
1839 1858
18401989-02-21 Mosur Mohan (email@notavailable) 18591989-02-21 Mosur Mohan (email@notavailable)
1841 1860
1842 * etags.c (PAS_funcs): New function. 1861 * etags.c (PAS_funcs): New function.
1843 1862
18441989-02-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 18631989-02-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
@@ -1863,7 +1882,7 @@
1863 1882
18641989-01-19 Sam Kendall (email@notavailable) 18831989-01-19 Sam Kendall (email@notavailable)
1865 1884
1866 * etags.c: Greatly rewritten for C++ support and for multiple tags 1885 * etags.c: Greatly rewritten for C++ support and for multiple tags
1867 per line. 1886 per line.
1868 1887
18691989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 18881989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
diff --git a/etc/GNU b/etc/GNU
index 1df59f049ee..4ee6ef03153 100644
--- a/etc/GNU
+++ b/etc/GNU
@@ -1,4 +1,4 @@
1Copyright (C) 1985, 1993, 2003 Free Software Foundation, Inc. 1Copyright (C) 1985, 1993, 2003, 2005 Free Software Foundation, Inc.
2 2
3 Permission is granted to anyone to make or distribute verbatim copies 3 Permission is granted to anyone to make or distribute verbatim copies
4of this document, in any medium, provided that the copyright notice and 4of this document, in any medium, provided that the copyright notice and
@@ -446,7 +446,7 @@ operating systems onto the new hardware.
446 The sale of teaching, hand-holding and maintenance services could 446 The sale of teaching, hand-holding and maintenance services could
447also employ programmers. 447also employ programmers.
448 448
449 People with new ideas could distribute programs as freeware, asking 449 People with new ideas could distribute programs as freeware(7), asking
450for donations from satisfied users, or selling hand-holding services. 450for donations from satisfied users, or selling hand-holding services.
451I have met people who are already working this way successfully. 451I have met people who are already working this way successfully.
452 452
@@ -518,23 +518,26 @@ friends or over the net. But it does suggest the wrong idea.
518 518
519 (3) Several such companies now exist. 519 (3) Several such companies now exist.
520 520
521 (4) The Free Software Foundation raises most of its funds from a 521 (4) The Free Software Foundation raised most of its funds for 10
522distribution service, although it is a charity rather than a company. 522years from a distribution service, although it is a charity rather
523If *no one* chooses to obtain copies by ordering from the FSF, it 523than a company.
524will be unable to do its work. But this does not mean that proprietary
525restrictions are justified to force every user to pay. If a small
526fraction of all the users order copies from the FSF, that is sufficient
527to keep the FSF afloat. So we ask users to choose to support us in
528this way. Have you done your part?
529 524
530 (5) A group of computer companies recently pooled funds to support 525 (5) A group of computer companies pooled funds around 1991 to
531maintenance of the GNU C Compiler. 526support maintenance of the GNU C Compiler.
532 527
533 (6) In the 80s I had not yet realized how confusing it was to speak 528 (6) In the 80s I had not yet realized how confusing it was to speak
534of "the issue" of "intellectual property". That term is obviously 529of "the issue" of "intellectual property". That term is obviously
535biased; more subtle is the fact that it lumps together various 530biased; more subtle is the fact that it lumps together various
536disparate laws which raise very different issues. Nowadays I urge 531disparate laws which raise very different issues. Nowadays I urge
537people to reject the term "intellectual property" entirely, lest it 532people to reject the term "intellectual property" entirely, lest it
538lead others to suppose this is one coherent issue. The way to be 533lead others to suppose that those laws form one coherent issue. The way to be
539clear is to to discuss patents, copyrights, and trademarks separately. 534clear is to to discuss patents, copyrights, and trademarks separately.
540See http://www.gnu.org/philosophy/words-to-avoid.html. \ No newline at end of file 535See http://www.gnu.org/philosophy/not-ipr.xhtml for more explanation
536of how this term spreads confusion and bias.
537
538 (7) In 1985 I had not yet recognized the importance of distinguishing
539between "free software" and "freeware". The term "freeware" means
540software you are free to redistribute, but usually you are not free to study
541and change the source code, so most of it is not free software.
542See http://www.gnu.org/philosophy/words-to-avoid.html for more
543explanation.
diff --git a/etc/NEWS b/etc/NEWS
index 927bc08f605..1f1d13819a8 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -106,7 +106,7 @@ when you run configure. This requires Gtk+ 2.0 or newer. This port
106provides a way to display multilingual text in menus (with some caveats). 106provides a way to display multilingual text in menus (with some caveats).
107 107
108--- 108---
109** The `emacsserver' program has been removed, replaced with elisp code. 109** The `emacsserver' program has been removed, replaced with Lisp code.
110 110
111--- 111---
112** By default, Emacs now uses a setgid helper program to update game 112** By default, Emacs now uses a setgid helper program to update game
@@ -752,14 +752,8 @@ elements are deleted.
752When the file is maintained under version control, that information 752When the file is maintained under version control, that information
753appears between the position information and the major mode. 753appears between the position information and the major mode.
754 754
755*** Easy to overlook single character negation is now font-locked.
756You can use the new variable `font-lock-negation-char-face' and the face of
757the same name to customize this. Currently the cc-modes, sh-script-mode,
758cperl-mode and make-mode support this.
759
760+++ 755+++
761*** Control characters and escape glyphs are now shown in the new 756*** New face `escape-glyph' highlights control characters and escape glyphs.
762escape-glyph face.
763 757
764+++ 758+++
765*** Non-breaking space and hyphens are now prefixed with an escape 759*** Non-breaking space and hyphens are now prefixed with an escape
@@ -895,6 +889,16 @@ font-lock now highlights any such open-paren-in-column-zero in bold-red
895if it is inside a string or a comment, to indicate that it can cause 889if it is inside a string or a comment, to indicate that it can cause
896trouble with fontification and/or indentation. 890trouble with fontification and/or indentation.
897 891
892+++
893*** New standard font-lock face `font-lock-preprocessor-face'.
894
895*** New standard font-lock face `font-lock-comment-delimiter-face'.
896
897*** Easy to overlook single character negation can now be font-locked.
898You can use the new variable `font-lock-negation-char-face' and the face of
899the same name to customize this. Currently the cc-modes, sh-script-mode,
900cperl-mode and make-mode support this.
901
898--- 902---
899*** The default settings for JIT stealth lock parameters are changed. 903*** The default settings for JIT stealth lock parameters are changed.
900The default value for the user option jit-lock-stealth-time is now 16 904The default value for the user option jit-lock-stealth-time is now 16
@@ -1027,9 +1031,11 @@ variable mouse-drag-copy-region to nil.
1027(rather than a fixed number of lines) and the scrolling is `progressive'. 1031(rather than a fixed number of lines) and the scrolling is `progressive'.
1028 1032
1029--- 1033---
1030*** Unexpected yanking of text due to accidental clicking on the mouse 1034*** Emacs ignores mouse-2 clicks while the mouse wheel is being moved.
1031wheel button (typically mouse-2) during wheel scrolling is now avoided. 1035
1032This behavior can be customized via the mouse-wheel-click-event and 1036People tend to push the mouse wheel (which counts as a mouse-2 click)
1037unintentionally while turning the wheel, so these clicks are now
1038ignored. You can customize this with the mouse-wheel-click-event and
1033mouse-wheel-inhibit-click-time variables. 1039mouse-wheel-inhibit-click-time variables.
1034 1040
1035+++ 1041+++
@@ -1352,6 +1358,15 @@ buffer causes automatic display in another window of the corresponding
1352matches, compilation errors, etc. This minor mode can be toggled with 1358matches, compilation errors, etc. This minor mode can be toggled with
1353C-c C-f. 1359C-c C-f.
1354 1360
1361*** When the left fringe is displayed, an arrow points to current message in
1362the compilation buffer.
1363
1364*** The new variable `compilation-context-lines' controls lines of leading
1365context before the current message. If nil and the left fringe is displayed,
1366it doesn't scroll the compilation output window. If there is no left fringe,
1367no arrow is displayed and a value of nil means display the message at the top
1368of the window.
1369
1355** Occur mode changes: 1370** Occur mode changes:
1356 1371
1357+++ 1372+++
@@ -1499,10 +1514,6 @@ colors as on X.
1499* New Modes and Packages in Emacs 22.1 1514* New Modes and Packages in Emacs 22.1
1500 1515
1501+++ 1516+++
1502** New package benchmark.el contains simple support for convenient
1503timing measurements of code (including the garbage collection component).
1504
1505+++
1506** Filesets are collections of files. You can define a fileset in 1517** Filesets are collections of files. You can define a fileset in
1507various ways, such as based on a directory tree or based on 1518various ways, such as based on a directory tree or based on
1508program files that include other program files. 1519program files that include other program files.
@@ -1520,16 +1531,20 @@ type "C-h i m calc RET" to read that manual. A reference card is
1520available in `etc/calccard.tex' and `etc/calccard.ps'. 1531available in `etc/calccard.tex' and `etc/calccard.ps'.
1521 1532
1522--- 1533---
1523** `cfengine-mode' is a major mode for editing GNU Cfengine 1534** The new package ibuffer provides a powerful, completely
1524configuration files. 1535customizable replacement for buff-menu.el.
1536
1537---
1538** Ido mode is now part of the Emacs distribution.
1539
1540The ido (interactively do) package is an extension of the iswitchb
1541package to do interactive opening of files and directories in addition
1542to interactive buffer switching. Ido is a superset of iswitchb (with
1543a few exceptions), so don't enable both packages.
1525 1544
1526+++ 1545+++
1527** The new package conf-mode.el handles thousands of configuration files, with 1546** Image files are normally visited in Image mode, which lets you toggle
1528varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, 1547between viewing the image and viewing the text using C-c C-c.
1529var : value, var value or keyword var value) and sections ([section] or
1530section { }). Many files under /etc/, or with suffixes like .cf through
1531.config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are
1532recognized.
1533 1548
1534--- 1549---
1535** CUA mode is now part of the Emacs distribution. 1550** CUA mode is now part of the Emacs distribution.
@@ -1542,7 +1557,7 @@ region (like delete-selection-mode). Do not enable these modes with
1542cua-mode. Customize the variable `cua-mode' to enable cua. 1557cua-mode. Customize the variable `cua-mode' to enable cua.
1543 1558
1544In addition, cua provides unified rectangle support with visible 1559In addition, cua provides unified rectangle support with visible
1545rectangle highlighting: Use S-return to start a rectangle, extend it 1560rectangle highlighting: Use C-return to start a rectangle, extend it
1546using the movement commands (or mouse-3), and cut or copy it using C-x 1561using the movement commands (or mouse-3), and cut or copy it using C-x
1547or C-c (using C-w and M-w also works). 1562or C-c (using C-w and M-w also works).
1548 1563
@@ -1593,28 +1608,6 @@ be displayed by customizing the variable `file-name-shadow-properties'.
1593** The new package flymake.el does on-the-fly syntax checking of program 1608** The new package flymake.el does on-the-fly syntax checking of program
1594source files. See the Flymake's Info manual for more details. 1609source files. See the Flymake's Info manual for more details.
1595 1610
1596---
1597** The new Lisp library fringe.el controls the appearance of fringes.
1598
1599---
1600** GDB-Script-mode is used for files like .gdbinit.
1601
1602---
1603** The new package ibuffer provides a powerful, completely
1604customizable replacement for buff-menu.el.
1605
1606---
1607** Ido mode is now part of the Emacs distribution.
1608
1609The ido (interactively do) package is an extension of the iswitchb
1610package to do interactive opening of files and directories in addition
1611to interactive buffer switching. Ido is a superset of iswitchb (with
1612a few exceptions), so don't enable both packages.
1613
1614+++
1615** Image files are normally visited in Image mode, which lets you toggle
1616between viewing the image and viewing the text using C-c C-c.
1617
1618+++ 1611+++
1619** The new keypad setup package provides several common bindings for 1612** The new keypad setup package provides several common bindings for
1620the numeric keypad which is available on most keyboards. The numeric 1613the numeric keypad which is available on most keyboards. The numeric
@@ -1674,6 +1667,15 @@ Keyboard macros can now be debugged and edited interactively.
1674C-x C-k SPC steps through the last keyboard macro one key sequence 1667C-x C-k SPC steps through the last keyboard macro one key sequence
1675at a time, prompting for the actions to take. 1668at a time, prompting for the actions to take.
1676 1669
1670---
1671** New minor mode, Visible mode, toggles invisibility in the current buffer.
1672When enabled, it makes all invisible text visible. When disabled, it
1673restores the previous value of `buffer-invisibility-spec'.
1674
1675+++
1676** The wdired.el package allows you to use normal editing commands on Dired
1677buffers to change filenames, permissions, etc...
1678
1677+++ 1679+++
1678** The new package longlines.el provides a minor mode for editing text 1680** The new package longlines.el provides a minor mode for editing text
1679files composed of long lines, based on the `use-hard-newlines' 1681files composed of long lines, based on the `use-hard-newlines'
@@ -1694,9 +1696,6 @@ ghostview, use ghostscript to print (if you don't have a PostScript
1694printer) or send directly to printer a PostScript code generated by 1696printer) or send directly to printer a PostScript code generated by
1695`ps-print' package. Use M-x pr-help for more information. 1697`ps-print' package. Use M-x pr-help for more information.
1696 1698
1697+++
1698** The new python.el package is used to edit Python and Jython programs.
1699
1700--- 1699---
1701** The minor mode Reveal mode makes text visible on the fly as you 1700** The minor mode Reveal mode makes text visible on the fly as you
1702move your cursor into hidden regions of the buffer. 1701move your cursor into hidden regions of the buffer.
@@ -1754,114 +1753,72 @@ If you want to disable Tramp you should set
1754 (setq tramp-default-method "ftp") 1753 (setq tramp-default-method "ftp")
1755 1754
1756--- 1755---
1757** The library tree-widget.el provides a new widget to display a set
1758of hierarchical data as an outline. For example, the tree-widget is
1759well suited to display a hierarchy of directories and files.
1760
1761---
1762** The URL package (which had been part of W3) is now part of Emacs. 1756** The URL package (which had been part of W3) is now part of Emacs.
1763 1757
1764--- 1758---
1765** New minor mode, Visible mode, toggles invisibility in the current buffer. 1759** `cfengine-mode' is a major mode for editing GNU Cfengine
1766When enabled, it makes all invisible text visible. When disabled, it 1760configuration files.
1767restores the previous value of `buffer-invisibility-spec'.
1768 1761
1769+++ 1762+++
1770** The wdired.el package allows you to use normal editing commands on Dired 1763** The new package conf-mode.el handles thousands of configuration files, with
1771buffers to change filenames, permissions, etc... 1764varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
1765var : value, var value or keyword var value) and sections ([section] or
1766section { }). Many files under /etc/, or with suffixes like .cf through
1767.config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are
1768recognized.
1772 1769
1773--- 1770---
1774** The TCL package tcl-mode.el was replaced by tcl.el. 1771** GDB-Script-mode is used for files like .gdbinit.
1775This was actually done in Emacs-21.1, and was not documented.
1776
1777** The new package bindat.el provides functions to unpack and pack
1778binary data structures, such as network packets, to and from Lisp
1779data structures.
1780 1772
1781+++ 1773+++
1782** The new package button.el implements simple and fast `clickable buttons' 1774** The new python.el package is used to edit Python and Jython programs.
1783in emacs buffers. `buttons' are much lighter-weight than the `widgets'
1784implemented by widget.el, and can be used by lisp code that doesn't
1785require the full power of widgets. Emacs uses buttons for such things
1786as help and apropos buffers.
1787 1775
1788--- 1776---
1789** master-mode.el implements a minor mode for scrolling a slave 1777** The TCL package tcl-mode.el was replaced by tcl.el.
1790buffer without leaving your current buffer, the master buffer. 1778This was actually done in Emacs-21.1, and was not documented.
1791
1792It can be used by sql.el, for example: the SQL buffer is the master
1793and its SQLi buffer is the slave. This allows you to scroll the SQLi
1794buffer containing the output from the SQL buffer containing the
1795commands.
1796
1797This is how to use sql.el and master.el together: the variable
1798sql-buffer contains the slave buffer. It is a local variable in the
1799SQL buffer.
1800
1801(add-hook 'sql-mode-hook
1802 (function (lambda ()
1803 (master-mode t)
1804 (master-set-slave sql-buffer))))
1805(add-hook 'sql-set-sqli-hook
1806 (function (lambda ()
1807 (master-set-slave sql-buffer))))
1808
1809+++
1810** New Lisp library testcover.el works with edebug to help you determine
1811whether you've tested all your Lisp code. Function testcover-start
1812instruments all functions in a given file. Then test your code. Function
1813testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to
1814show where coverage is lacking. Command testcover-next-mark (bind it to
1815a key!) will move point forward to the next spot that has a splotch.
1816
1817Normally, a red splotch indicates the form was never completely
1818evaluated; a brown splotch means it always evaluated to the same
1819value. The red splotches are skipped for forms that can't possibly
1820complete their evaluation, such as `error'. The brown splotches are
1821skipped for forms that are expected to always evaluate to the same
1822value, such as (setq x 14).
1823
1824For difficult cases, you can add do-nothing macros to your code to
1825help out the test coverage tool. The macro `noreturn' suppresses a
1826red splotch. It is an error if the argument to `noreturn' does
1827return. The macro 1value suppresses a brown splotch for its argument.
1828This macro is a no-op except during test-coverage -- then it signals
1829an error if the argument actually returns differing values.
1830 1779
1831* Changes in Specialized Modes and Packages in Emacs 22.1: 1780* Changes in Specialized Modes and Packages in Emacs 22.1:
1832 1781
1782** Makefile mode has submodes for automake, gmake, makepp and BSD make.
1783
1784The former two couldn't be differentiated before, and the latter two
1785are new. Font-locking is robust now and offers new customizable
1786faces.
1787
1833+++ 1788+++
1834** In Outline mode, hide-body no longer hides lines at the top 1789** In Outline mode, `hide-body' no longer hides lines at the top
1835of the file that precede the first header line. 1790of the file that precede the first header line.
1836 1791
1837+++ 1792+++
1838** Telnet now prompts you for a port number with C-u M-x telnet. 1793** Telnet now prompts you for a port number with C-u M-x telnet.
1839 1794
1840--- 1795---
1841** The terminal emulation code in term.el has been improved, it can 1796** The terminal emulation code in term.el has been improved; it can
1842run most curses applications now. 1797run most curses applications now.
1843 1798
1844+++ 1799+++
1845** M-x diff uses diff-mode instead of compilation-mode. 1800** M-x diff uses Diff mode instead of Compilation mode.
1846 1801
1847+++ 1802+++
1848** You can now customize fill-nobreak-predicate to control where 1803** You can now customize `fill-nobreak-predicate' to control where
1849filling can break lines. The value is now normally a list of 1804filling can break lines. The value is now normally a list of
1850functions, but it can also be a single function, for compatibility. 1805functions, but it can also be a single function, for compatibility.
1851 1806
1852We provide two sample predicates, fill-single-word-nobreak-p and 1807Emacs provide two predicates, `fill-single-word-nobreak-p' and
1853fill-french-nobreak-p, for use in the value of fill-nobreak-predicate. 1808`fill-french-nobreak-p', for use as the value of
1809`fill-nobreak-predicate'.
1854 1810
1855--- 1811---
1856** M-x view-file and commands that use it now avoid interfering 1812** M-x view-file and commands that use it now avoid interfering
1857with special modes such as Tar mode. 1813with special modes such as Tar mode.
1858 1814
1859--- 1815---
1860** Commands winner-redo and winner-undo, from winner.el, are now bound to 1816** Commands `winner-redo' and `winner-undo', from winner.el, are now
1861C-c <left> and C-c <right>, respectively. This is an incompatible change. 1817bound to C-c <left> and C-c <right>, respectively. This is an
1818incompatible change.
1862 1819
1863--- 1820---
1864** global-whitespace-mode is a new alias for whitespace-global-mode. 1821** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
1865 1822
1866+++ 1823+++
1867** M-x compare-windows now can automatically skip non-matching text to 1824** M-x compare-windows now can automatically skip non-matching text to
@@ -1869,6 +1826,7 @@ resync points in both windows.
1869 1826
1870+++ 1827+++
1871** New user option `add-log-always-start-new-record'. 1828** New user option `add-log-always-start-new-record'.
1829
1872When this option is enabled, M-x add-change-log-entry always 1830When this option is enabled, M-x add-change-log-entry always
1873starts a new record regardless of when the last record is. 1831starts a new record regardless of when the last record is.
1874 1832
@@ -1880,10 +1838,11 @@ when Emacs visits them.
1880 1838
1881+++ 1839+++
1882*** A numeric prefix argument of `info' selects an Info buffer 1840*** A numeric prefix argument of `info' selects an Info buffer
1883with the number appended to the *info* buffer name (e.g. "*info*<2>"). 1841with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
1884 1842
1885--- 1843---
1886*** isearch in Info uses Info-search and searches through multiple nodes. 1844*** isearch in Info uses Info-search and searches through multiple nodes.
1845
1887Before leaving the initial Info node isearch fails once with the error 1846Before leaving the initial Info node isearch fails once with the error
1888message [initial node], and with subsequent C-s/C-r continues through 1847message [initial node], and with subsequent C-s/C-r continues through
1889other nodes. When isearch fails for the rest of the manual, it wraps 1848other nodes. When isearch fails for the rest of the manual, it wraps
@@ -1922,11 +1881,13 @@ references and following them calls `browse-url'.
1922 1881
1923+++ 1882+++
1924*** Info now hides node names in menus and cross references by default. 1883*** Info now hides node names in menus and cross references by default.
1884
1925If you prefer the old behavior, you can set the new user option 1885If you prefer the old behavior, you can set the new user option
1926`Info-hide-note-references' to nil. 1886`Info-hide-note-references' to nil.
1927 1887
1928--- 1888---
1929*** Images in Info pages are supported. 1889*** Images in Info pages are supported.
1890
1930Info pages show embedded images, in Emacs frames with image support. 1891Info pages show embedded images, in Emacs frames with image support.
1931Info documentation that includes images, processed with makeinfo 1892Info documentation that includes images, processed with makeinfo
1932version 4.7 or newer, compiles to Info pages with embedded images. 1893version 4.7 or newer, compiles to Info pages with embedded images.
@@ -1935,25 +1896,24 @@ version 4.7 or newer, compiles to Info pages with embedded images.
1935*** The default value for `Info-scroll-prefer-subnodes' is now nil. 1896*** The default value for `Info-scroll-prefer-subnodes' is now nil.
1936 1897
1937--- 1898---
1938*** Info-index offers completion. 1899*** `Info-index' offers completion.
1939 1900
1940** Lisp mode changes: 1901** Lisp mode changes:
1941 1902
1942--- 1903---
1943*** Lisp mode now uses font-lock-doc-face for the docstrings. 1904*** Lisp mode now uses `font-lock-doc-face' for doc strings.
1944 1905
1945+++ 1906+++
1946*** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the 1907*** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point.
1947list starting after point.
1948 1908
1949*** New features in evaluation commands 1909*** New features in evaluation commands
1950 1910
1951+++ 1911+++
1952*** The function `eval-defun' (C-M-x) called on defface reinitializes 1912**** The function `eval-defun' (C-M-x) called on defface reinitializes
1953the face to the value specified in the defface expression. 1913the face to the value specified in the defface expression.
1954 1914
1955+++ 1915+++
1956*** Typing C-x C-e twice prints the value of the integer result 1916**** Typing C-x C-e twice prints the value of the integer result
1957in additional formats (octal, hexadecimal, character) specified 1917in additional formats (octal, hexadecimal, character) specified
1958by the new function `eval-expression-print-format'. The same 1918by the new function `eval-expression-print-format'. The same
1959function also defines the result format for `eval-expression' (M-:), 1919function also defines the result format for `eval-expression' (M-:),
@@ -2079,23 +2039,23 @@ module-open, module-close, inmodule, composition-open,
2079composition-close, and incomposition. 2039composition-close, and incomposition.
2080 2040
2081*** New functions to do hungry delete without enabling hungry delete mode. 2041*** New functions to do hungry delete without enabling hungry delete mode.
2082The functions c-hungry-backspace and c-hungry-delete-forward can be 2042The functions `c-hungry-backspace' and `c-hungry-delete-forward' can be
2083bound to keys to get this feature without toggling a mode. 2043bound to keys to get this feature without toggling a mode.
2084Contributed by Kevin Ryde.
2085 2044
2086*** Better control over require-final-newline. The variable that 2045*** Better control over `require-final-newline'.
2087controls how to handle a final newline when the buffer is saved, 2046
2088require-final-newline, is now customizable on a per-mode basis through 2047The variable `c-require-final-newline' specifies which of the modes
2089c-require-final-newline. That is a list of modes, and only those 2048implemented by CC mode should insert final newlines. Its value is a
2090modes set require-final-newline. By default that's C, C++ and 2049list of modes, and only those modes should do it. By default the list
2091Objective-C. 2050includes C, C++ and Objective-C modes.
2092 2051
2093The specified modes set require-final-newline based on 2052Whichever modes are in this list will set `require-final-newline'
2094mode-require-final-newline, as usual. 2053based on `mode-require-final-newline'.
2095 2054
2096*** Format change for syntactic context elements. 2055*** Format change for syntactic context elements.
2097The elements in the syntactic context returned by c-guess-basic-syntax 2056
2098and stored in c-syntactic-context has been changed somewhat to allow 2057The elements in the syntactic context returned by `c-guess-basic-syntax'
2058and stored in `c-syntactic-context' has been changed somewhat to allow
2099attaching more information. They are now lists instead of single cons 2059attaching more information. They are now lists instead of single cons
2100cells. E.g. a line that previously had the syntactic analysis 2060cells. E.g. a line that previously had the syntactic analysis
2101 2061
@@ -2108,12 +2068,13 @@ is now analysed as
2108In some cases there are more than one position given for a syntactic 2068In some cases there are more than one position given for a syntactic
2109symbol. 2069symbol.
2110 2070
2111This change might affect code that call c-guess-basic-syntax directly, 2071This change might affect code that call `c-guess-basic-syntax' directly,
2112and custom lineup functions if they use c-syntactic-context. However, 2072and custom lineup functions if they use `c-syntactic-context'. However,
2113the argument given to lineup functions is still a single cons cell 2073the argument given to lineup functions is still a single cons cell
2114with nil or an integer in the cdr. 2074with nil or an integer in the cdr.
2115 2075
2116*** API changes for derived modes. 2076*** API changes for derived modes.
2077
2117There have been extensive changes "under the hood" which can affect 2078There have been extensive changes "under the hood" which can affect
2118derived mode writers. Some of these changes are likely to cause 2079derived mode writers. Some of these changes are likely to cause
2119incompatibilities with existing derived modes, but on the other hand 2080incompatibilities with existing derived modes, but on the other hand
@@ -2125,8 +2086,8 @@ See the comment blurb near the top of cc-langs.el.
2125 2086
2126**** New initialization functions. 2087**** New initialization functions.
2127The initialization procedure has been split up into more functions to 2088The initialization procedure has been split up into more functions to
2128give better control: c-basic-common-init, c-font-lock-init, and 2089give better control: `c-basic-common-init', `c-font-lock-init', and
2129c-init-language-vars. 2090`c-init-language-vars'.
2130 2091
2131*** Changes in analysis of nested syntactic constructs. 2092*** Changes in analysis of nested syntactic constructs.
2132The syntactic analysis engine has better handling of cases where 2093The syntactic analysis engine has better handling of cases where
@@ -2152,33 +2113,34 @@ its substatement. E.g:
2152**** Syntactic indentation inside macros. 2113**** Syntactic indentation inside macros.
2153The contents of multiline #define's are now analyzed and indented 2114The contents of multiline #define's are now analyzed and indented
2154syntactically just like other code. This can be disabled by the new 2115syntactically just like other code. This can be disabled by the new
2155variable c-syntactic-indentation-in-macros. A new syntactic symbol 2116variable `c-syntactic-indentation-in-macros'. A new syntactic symbol
2156cpp-define-intro has been added to control the initial indentation 2117`cpp-define-intro' has been added to control the initial indentation
2157inside #define's. 2118inside `#define's.
2119
2120**** New lineup function `c-lineup-cpp-define'.
2158 2121
2159**** New lineup function c-lineup-cpp-define.
2160Now used by default to line up macro continuation lines. The behavior 2122Now used by default to line up macro continuation lines. The behavior
2161of this function closely mimics the indentation one gets if the macro 2123of this function closely mimics the indentation one gets if the macro
2162is indented while the line continuation backslashes are temporarily 2124is indented while the line continuation backslashes are temporarily
2163removed. If syntactic indentation in macros is turned off, it works 2125removed. If syntactic indentation in macros is turned off, it works
2164much line c-lineup-dont-change, which was used earlier, but handles 2126much line `c-lineup-dont-change', which was used earlier, but handles
2165empty lines within the macro better. 2127empty lines within the macro better.
2166 2128
2167**** Automatically inserted newlines continues the macro if used within one. 2129**** Automatically inserted newlines continues the macro if used within one.
2168This applies to the newlines inserted by the auto-newline mode, and to 2130This applies to the newlines inserted by the auto-newline mode, and to
2169c-context-line-break and c-context-open-line. 2131`c-context-line-break' and `c-context-open-line'.
2170 2132
2171**** Better alignment of line continuation backslashes. 2133**** Better alignment of line continuation backslashes.
2172c-backslash-region tries to adapt to surrounding backslashes. New 2134`c-backslash-region' tries to adapt to surrounding backslashes. New
2173variable c-backslash-max-column which put a limit on how far out 2135variable `c-backslash-max-column' which put a limit on how far out
2174backslashes can be moved. 2136backslashes can be moved.
2175 2137
2176**** Automatic alignment of line continuation backslashes. 2138**** Automatic alignment of line continuation backslashes.
2177This is controlled by the new variable c-auto-align-backslashes. It 2139This is controlled by the new variable `c-auto-align-backslashes'. It
2178affects c-context-line-break, c-context-open-line and newlines 2140affects `c-context-line-break', `c-context-open-line' and newlines
2179inserted in auto-newline mode. 2141inserted in Auto-Newline mode.
2180
2181**** Line indentation works better inside macros. 2142**** Line indentation works better inside macros.
2143
2182Regardless whether syntactic indentation and syntactic indentation 2144Regardless whether syntactic indentation and syntactic indentation
2183inside macros are enabled or not, line indentation now ignores the 2145inside macros are enabled or not, line indentation now ignores the
2184line continuation backslashes. This is most noticeable when syntactic 2146line continuation backslashes. This is most noticeable when syntactic
@@ -2187,37 +2149,35 @@ backslash) in the macro.
2187 2149
2188*** indent-for-comment is more customizable. 2150*** indent-for-comment is more customizable.
2189The behavior of M-; (indent-for-comment) is now configurable through 2151The behavior of M-; (indent-for-comment) is now configurable through
2190the variable c-indent-comment-alist. The indentation behavior based 2152the variable `c-indent-comment-alist'. The indentation behavior based
2191on the preceding code on the line, e.g. to get two spaces after #else 2153on the preceding code on the line, e.g. to get two spaces after #else
2192and #endif but indentation to comment-column in most other cases 2154and #endif but indentation to `comment-column' in most other cases
2193(something which was hardcoded earlier). 2155(something which was hardcoded earlier).
2194 2156
2195*** New function c-context-open-line. 2157*** New function `c-context-open-line'.
2196It's the open-line equivalent of c-context-line-break. 2158It's the open-line equivalent of `c-context-line-break'.
2197 2159
2198*** New lineup functions 2160*** New lineup functions
2199 2161
2200**** c-lineup-string-cont 2162**** `c-lineup-string-cont'
2201This lineup function lines up a continued string under the one it 2163This lineup function lines up a continued string under the one it
2202continues. E.g: 2164continues. E.g:
2203 2165
2204result = prefix + "A message " 2166result = prefix + "A message "
2205 "string."; <- c-lineup-string-cont 2167 "string."; <- c-lineup-string-cont
2206 2168
2207**** c-lineup-cascaded-calls 2169**** `c-lineup-cascaded-calls'
2208Lines up series of calls separated by "->" or ".". 2170Lines up series of calls separated by "->" or ".".
2209 2171
2210**** c-lineup-knr-region-comment 2172**** `c-lineup-knr-region-comment'
2211Gives (what most people think is) better indentation of comments in 2173Gives (what most people think is) better indentation of comments in
2212the "K&R region" between the function header and its body. 2174the "K&R region" between the function header and its body.
2213 2175
2214**** c-lineup-gcc-asm-reg 2176**** `c-lineup-gcc-asm-reg'
2215Provides better indentation inside asm blocks. Contributed by Kevin 2177Provides better indentation inside asm blocks.
2216Ryde.
2217 2178
2218**** c-lineup-argcont 2179**** `c-lineup-argcont'
2219Lines up continued function arguments after the preceding comma. 2180Lines up continued function arguments after the preceding comma.
2220Contributed by Kevin Ryde.
2221 2181
2222*** Better caching of the syntactic context. 2182*** Better caching of the syntactic context.
2223CC Mode caches the positions of the opening parentheses (of any kind) 2183CC Mode caches the positions of the opening parentheses (of any kind)
@@ -2237,7 +2197,7 @@ Statements are recognized most of the time even when they occur in an
2237"invalid" context, e.g. in a function argument. In practice that can 2197"invalid" context, e.g. in a function argument. In practice that can
2238happen when macros are involved. 2198happen when macros are involved.
2239 2199
2240*** Improved the way c-indent-exp chooses the block to indent. 2200*** Improved the way `c-indent-exp' chooses the block to indent.
2241It now indents the block for the closest sexp following the point 2201It now indents the block for the closest sexp following the point
2242whose closing paren ends on a different line. This means that the 2202whose closing paren ends on a different line. This means that the
2243point doesn't have to be immediately before the block to indent. 2203point doesn't have to be immediately before the block to indent.
@@ -2245,7 +2205,7 @@ Also, only the block and the closing line is indented; the current
2245line is left untouched. 2205line is left untouched.
2246 2206
2247*** Added toggle for syntactic indentation. 2207*** Added toggle for syntactic indentation.
2248The function c-toggle-syntactic-indentation can be used to toggle 2208The function `c-toggle-syntactic-indentation' can be used to toggle
2249syntactic indentation. 2209syntactic indentation.
2250 2210
2251--- 2211---
@@ -2275,7 +2235,7 @@ Lines that match are never indented, and are given distinctive font-locking.
2275`fortran-beginning-of-block'. 2235`fortran-beginning-of-block'.
2276 2236
2277--- 2237---
2278*** F90 mode and Fortran mode have support for hs-minor-mode (hideshow). 2238*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
2279It cannot deal with every code format, but ought to handle a sizeable 2239It cannot deal with every code format, but ought to handle a sizeable
2280majority. 2240majority.
2281 2241
@@ -2320,50 +2280,51 @@ TeX commands to use at startup.
2320and super/sub-scripts are made into super/sub-scripts. 2280and super/sub-scripts are made into super/sub-scripts.
2321 2281
2322+++ 2282+++
2323*** New major mode doctex-mode for *.dtx files. 2283*** New major mode Doctex mode, for *.dtx files.
2324 2284
2325** BibTeX mode: 2285** BibTeX mode:
2326*** The new command bibtex-url browses a URL for the BibTeX entry at 2286
2287*** The new command `bibtex-url' browses a URL for the BibTeX entry at
2327point (bound to C-c C-l and mouse-2, RET on clickable fields). 2288point (bound to C-c C-l and mouse-2, RET on clickable fields).
2328 2289
2329*** The new command bibtex-entry-update (bound to C-c C-u) updates 2290*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
2330an existing BibTeX entry. 2291an existing BibTeX entry.
2331 2292
2332*** New `bibtex-entry-format' option `required-fields', enabled by default. 2293*** New `bibtex-entry-format' option `required-fields', enabled by default.
2333 2294
2334*** bibtex-maintain-sorted-entries can take values `plain', 2295*** `bibtex-maintain-sorted-entries' can take values `plain',
2335`crossref', and `entry-class' which control the sorting scheme used 2296`crossref', and `entry-class' which control the sorting scheme used
2336for BibTeX entries. `bibtex-sort-entry-class' controls the sorting 2297for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
2337scheme `entry-class'. TAB completion for reference keys and 2298scheme `entry-class'. TAB completion for reference keys and
2338automatic detection of duplicates does not require anymore that 2299automatic detection of duplicates does not require anymore that
2339bibtex-maintain-sorted-entries is non-nil. 2300`bibtex-maintain-sorted-entries' is non-nil.
2340 2301
2341*** If the new variable bibtex-parse-keys-fast is non-nil, 2302*** If the new variable `bibtex-parse-keys-fast' is non-nil,
2342use fast but simplified algorithm for parsing BibTeX keys. 2303use fast but simplified algorithm for parsing BibTeX keys.
2343 2304
2344*** If the new variable bibtex-autoadd-commas is non-nil, 2305*** If the new variable `bibtex-autoadd-commas' is non-nil,
2345automatically add missing commas at end of BibTeX fields. 2306automatically add missing commas at end of BibTeX fields.
2346 2307
2347*** The new variable bibtex-autofill-types contains a list of entry 2308*** The new variable `bibtex-autofill-types' contains a list of entry
2348types for which fields are filled automatically (if possible). 2309types for which fields are filled automatically (if possible).
2349 2310
2350*** The new command bibtex-complete completes word fragment before 2311*** The new command `bibtex-complete' completes word fragment before
2351point according to context (bound to M-tab). 2312point according to context (bound to M-tab).
2352 2313
2353*** The new commands bibtex-find-entry and bibtex-find-crossref 2314*** The new commands `bibtex-find-entry' and `bibtex-find-crossref'
2354locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). 2315locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
2355Crossref fields are clickable (bound to mouse-2, RET). 2316Crossref fields are clickable (bound to mouse-2, RET).
2356 2317
2357*** In BibTeX mode the command fill-paragraph (bound to M-q) fills 2318*** In BibTeX mode the command `fill-paragraph' (M-q) fills
2358individual fields of a BibTeX entry. 2319individual fields of a BibTeX entry.
2359 2320
2360*** The new variables bibtex-files and bibtex-file-path define a set 2321*** The new variables `bibtex-files' and `bibtex-file-path' define a set
2361of BibTeX files that are searched for entry keys. 2322of BibTeX files that are searched for entry keys.
2362 2323
2363*** The new command bibtex-validate-globally checks for duplicate keys 2324*** The new command `bibtex-validate-globally' checks for duplicate keys
2364in multiple BibTeX files. 2325in multiple BibTeX files.
2365 2326
2366*** The new command bibtex-copy-summary-as-kill pushes summary 2327*** The new command `bibtex-copy-summary-as-kill' pushes summary
2367of BibTeX entry to kill ring (bound to C-c C-t). 2328of BibTeX entry to kill ring (bound to C-c C-t).
2368 2329
2369+++ 2330+++
@@ -2385,14 +2346,16 @@ and other common debugger commands.
2385*** The new package gdb-ui.el provides an enhanced graphical interface to 2346*** The new package gdb-ui.el provides an enhanced graphical interface to
2386GDB. You can interact with GDB through the GUD buffer in the usual way, but 2347GDB. You can interact with GDB through the GUD buffer in the usual way, but
2387there are also further buffers which control the execution and describe the 2348there are also further buffers which control the execution and describe the
2388state of your program. It separates the input/output of your program from 2349state of your program. It can separate the input/output of your program from
2389that of GDB and watches expressions in the speedbar. It also uses features of 2350that of GDB and watches expressions in the speedbar. It also uses features of
2390Emacs 21 such as the display margin for breakpoints, and the toolbar. 2351Emacs 21/22 such as the the toolbar, and bitmaps in the fringe to indicate
2352breakpoints.
2391 2353
2392Use M-x gdba to start GDB-UI. 2354Use M-x gdb to start GDB-UI.
2393 2355
2394*** GUD tooltips can be toggled independently of normal tooltips 2356*** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be
2395with the minor mode, gud-tooltip-mode. 2357toggled independently of normal tooltips with the minor mode
2358`gud-tooltip-mode'.
2396 2359
2397+++ 2360+++
2398*** In graphical mode, with a C program, GUD Tooltips have been extended to 2361*** In graphical mode, with a C program, GUD Tooltips have been extended to
@@ -2418,27 +2381,27 @@ not executing.
2418 2381
2419*** The previous method of searching for source files has been 2382*** The previous method of searching for source files has been
2420 preserved in case someone still wants/needs to use it. 2383 preserved in case someone still wants/needs to use it.
2421 Set gud-jdb-use-classpath to nil. 2384 Set `gud-jdb-use-classpath' to nil.
2422 2385
2423 Added Customization Variables 2386 Added Customization Variables
2424 2387
2425*** gud-jdb-command-name. What command line to use to invoke jdb. 2388*** `gud-jdb-command-name'. What command line to use to invoke jdb.
2426 2389
2427*** gud-jdb-use-classpath. Allows selection of java source file searching 2390*** `gud-jdb-use-classpath'. Allows selection of java source file searching
2428 method: set to t for new method, nil to scan gud-jdb-directories for 2391 method: set to t for new method, nil to scan `gud-jdb-directories' for
2429 java sources (previous method). 2392 java sources (previous method).
2430 2393
2431*** gud-jdb-directories. List of directories to scan and search for java 2394*** `gud-jdb-directories'. List of directories to scan and search for java
2432 classes using the original gud-jdb method (if gud-jdb-use-classpath 2395 classes using the original gud-jdb method (if `gud-jdb-use-classpath'
2433 is nil). 2396 is nil).
2434 2397
2435 Minor Improvements 2398 Minor Improvements
2436 2399
2437*** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS 2400*** The STARTTLS wrapper (starttls.el) can now use GNUTLS
2438instead of the OpenSSL based "starttls" tool. For backwards 2401instead of the OpenSSL based `starttls' tool. For backwards
2439compatibility, it prefers "starttls", but you can toggle 2402compatibility, it prefers `starttls', but you can toggle
2440`starttls-use-gnutls' to switch to GNUTLS (or simply remove the 2403`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
2441"starttls" tool). 2404`starttls' tool).
2442 2405
2443*** Do not allow debugger output history variable to grow without bounds. 2406*** Do not allow debugger output history variable to grow without bounds.
2444 2407
@@ -2446,6 +2409,7 @@ compatibility, it prefers "starttls", but you can toggle
2446 2409
2447+++ 2410+++
2448*** You can now use Auto Revert mode to `tail' a file. 2411*** You can now use Auto Revert mode to `tail' a file.
2412
2449If point is at the end of a file buffer before reverting, Auto Revert 2413If point is at the end of a file buffer before reverting, Auto Revert
2450mode keeps it at the end after reverting. Similarly if point is 2414mode keeps it at the end after reverting. Similarly if point is
2451displayed at the end of a file buffer in any window, it stays at 2415displayed at the end of a file buffer in any window, it stays at
@@ -2501,17 +2465,20 @@ old name remains available as alias, but has been marked obsolete.
2501** Desktop package 2465** Desktop package
2502 2466
2503+++ 2467+++
2504*** Desktop saving is now a minor mode, desktop-save-mode. Variable 2468*** Desktop saving is now a minor mode, `desktop-save-mode'.
2505desktop-enable is obsolete. Customize desktop-save-mode to enable desktop 2469
2506saving. 2470*** The variable `desktop-enable' is obsolete.
2471
2472Customize `desktop-save-mode' to enable desktop saving.
2507 2473
2508--- 2474---
2509*** Buffers are saved in the desktop file in the same order as that in the 2475*** Buffers are saved in the desktop file in the same order as that in the
2510buffer list. 2476buffer list.
2511 2477
2512+++ 2478+++
2513*** The desktop package can be customized to restore only some buffers immediately, 2479*** The desktop package can be customized to restore only some buffers
2514remaining buffers are restored lazily (when Emacs is idle). 2480immediately, remaining buffers are restored lazily (when Emacs is
2481idle).
2515 2482
2516+++ 2483+++
2517*** New commands: 2484*** New commands:
@@ -2547,6 +2514,7 @@ remaining buffers are restored lazily (when Emacs is idle).
2547 2514
2548--- 2515---
2549** The saveplace.el package now filters out unreadable files. 2516** The saveplace.el package now filters out unreadable files.
2517
2550When you exit Emacs, the saved positions in visited files no longer 2518When you exit Emacs, the saved positions in visited files no longer
2551include files that aren't readable, e.g. files that don't exist. 2519include files that aren't readable, e.g. files that don't exist.
2552Customize the new option `save-place-forget-unreadable-files' to nil 2520Customize the new option `save-place-forget-unreadable-files' to nil
@@ -2579,6 +2547,7 @@ backup using `ediff'. If you specify the name of a backup file,
2579*** New regular expressions features 2547*** New regular expressions features
2580 2548
2581**** New syntax for regular expressions, multi-line regular expressions. 2549**** New syntax for regular expressions, multi-line regular expressions.
2550
2582The syntax --ignore-case-regexp=/regex/ is now undocumented and retained 2551The syntax --ignore-case-regexp=/regex/ is now undocumented and retained
2583only for backward compatibility. The new equivalent syntax is 2552only for backward compatibility. The new equivalent syntax is
2584--regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, 2553--regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS,
@@ -2590,39 +2559,47 @@ expressions: `m' allows regexps to match more than one line, while `s'
2590span newlines allows writing of much more powerful regular expressions 2559span newlines allows writing of much more powerful regular expressions
2591and rapid prototyping for tagging new languages. 2560and rapid prototyping for tagging new languages.
2592 2561
2593**** Regular expressions can use char escape sequences as in Gcc. 2562**** Regular expressions can use char escape sequences as in GCC.
2563
2594The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, 2564The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v,
2595respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, 2565respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL,
2596CR, TAB, VT, 2566CR, TAB, VT,
2597 2567
2598**** Regular expressions can be bound to a given language. 2568**** Regular expressions can be bound to a given language.
2569
2599The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags 2570The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags
2600only for files of language LANGUAGE, and ignored otherwise. This is 2571only for files of language LANGUAGE, and ignored otherwise. This is
2601particularly useful when storing regexps in a file. 2572particularly useful when storing regexps in a file.
2602 2573
2603**** Regular expressions can be read from a file. 2574**** Regular expressions can be read from a file.
2575
2604The --regex=@regexfile option means read the regexps from a file, one 2576The --regex=@regexfile option means read the regexps from a file, one
2605per line. Lines beginning with space or tab are ignored. 2577per line. Lines beginning with space or tab are ignored.
2606 2578
2607*** New language parsing features 2579*** New language parsing features
2608 2580
2609**** The `::' qualifier triggers C++ parsing in C file. 2581**** The `::' qualifier triggers C++ parsing in C file.
2582
2610Previously, only the `template' and `class' keywords had this effect. 2583Previously, only the `template' and `class' keywords had this effect.
2611 2584
2612**** The gnucc __attribute__ keyword is now recognised and ignored. 2585**** The GCC __attribute__ keyword is now recognised and ignored.
2613 2586
2614**** New language HTML. 2587**** New language HTML.
2615Title and h1, h2, h3 are tagged. Also, tags are generated when name= is 2588
2616used inside an anchor and whenever id= is used. 2589Tags are generated for `title' as well as `h1', `h2', and `h3'. Also,
2590when `name=' is used inside an anchor and whenever `id=' is used.
2617 2591
2618**** In Makefiles, constants are tagged. 2592**** In Makefiles, constants are tagged.
2593
2619If you want the old behavior instead, thus avoiding to increase the 2594If you want the old behavior instead, thus avoiding to increase the
2620size of the tags file, use the --no-globals option. 2595size of the tags file, use the --no-globals option.
2621 2596
2622**** New language Lua. 2597**** New language Lua.
2598
2623All functions are tagged. 2599All functions are tagged.
2624 2600
2625**** In Perl, packages are tags. 2601**** In Perl, packages are tags.
2602
2626Subroutine tags are named from their package. You can jump to sub tags 2603Subroutine tags are named from their package. You can jump to sub tags
2627as you did before, by the sub name, or additionally by looking for 2604as you did before, by the sub name, or additionally by looking for
2628package::sub. 2605package::sub.
@@ -2630,14 +2607,17 @@ package::sub.
2630**** In Prolog, etags creates tags for rules in addition to predicates. 2607**** In Prolog, etags creates tags for rules in addition to predicates.
2631 2608
2632**** New language PHP. 2609**** New language PHP.
2633Tags are functions, classes and defines. 2610
2634If the --members option is specified to etags, tags are variables also. 2611Functions, classes and defines are tags. If the --members option is
2612specified to etags, variables are tags also.
2635 2613
2636**** New default keywords for TeX. 2614**** New default keywords for TeX.
2615
2637The new keywords are def, newcommand, renewcommand, newenvironment and 2616The new keywords are def, newcommand, renewcommand, newenvironment and
2638renewenvironment. 2617renewenvironment.
2639 2618
2640*** Honour #line directives. 2619*** Honour #line directives.
2620
2641When Etags parses an input file that contains C preprocessor's #line 2621When Etags parses an input file that contains C preprocessor's #line
2642directives, it creates tags using the file name and line number 2622directives, it creates tags using the file name and line number
2643specified in those directives. This is useful when dealing with code 2623specified in those directives. This is useful when dealing with code
@@ -2645,6 +2625,7 @@ created from Cweb source files. When Etags tags the generated file, it
2645writes tags pointing to the source file. 2625writes tags pointing to the source file.
2646 2626
2647*** New option --parse-stdin=FILE. 2627*** New option --parse-stdin=FILE.
2628
2648This option is mostly useful when calling etags from programs. It can 2629This option is mostly useful when calling etags from programs. It can
2649be used (only once) in place of a file name on the command line. Etags 2630be used (only once) in place of a file name on the command line. Etags
2650reads from standard input and marks the produced tags as belonging to 2631reads from standard input and marks the produced tags as belonging to
@@ -2653,31 +2634,33 @@ the file FILE.
2653** VC Changes 2634** VC Changes
2654 2635
2655+++ 2636+++
2656*** The key C-x C-q no longer checks files in or out, it only changes 2637*** The key C-x C-q only changes the read-only state of the buffer
2657the read-only state of the buffer (toggle-read-only). We made this 2638(toggle-read-only). It no longer checks files in or out.
2658change because we held a poll and found that many users were unhappy 2639
2659with the previous behavior. If you do prefer this behavior, you 2640We made this change because we held a poll and found that many users
2660can bind `vc-toggle-read-only' to C-x C-q in your .emacs: 2641were unhappy with the previous behavior. If you do prefer this
2642behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
2643`.emacs' file:
2661 2644
2662 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) 2645 (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
2663 2646
2664The function `vc-toggle-read-only' will continue to exist. 2647The function `vc-toggle-read-only' will continue to exist.
2665 2648
2666+++ 2649+++
2667*** There is a new user option `vc-cvs-global-switches' that allows 2650*** The new variable `vc-cvs-global-switches' specifies switches that
2668you to specify switches that are passed to any CVS command invoked 2651are passed to any CVS command invoked by VC.
2669by VC. These switches are used as "global options" for CVS, which 2652
2670means they are inserted before the command name. For example, this 2653These switches are used as "global options" for CVS, which means they
2671allows you to specify a compression level using the "-z#" option for 2654are inserted before the command name. For example, this allows you to
2672CVS. 2655specify a compression level using the `-z#' option for CVS.
2673 2656
2674+++ 2657+++
2675*** New backends for Subversion and Meta-CVS. 2658*** New backends for Subversion and Meta-CVS.
2676 2659
2677+++ 2660+++
2678*** vc-annotate-mode enhancements 2661*** VC-Annotate mode enhancements
2679 2662
2680In vc-annotate mode, you can now use the following key bindings for 2663In VC-Annotate mode, you can now use the following key bindings for
2681enhanced functionality to browse the annotations of past revisions, or 2664enhanced functionality to browse the annotations of past revisions, or
2682to view diffs or log entries directly from vc-annotate-mode: 2665to view diffs or log entries directly from vc-annotate-mode:
2683 2666
@@ -2699,18 +2682,18 @@ in the repository.
2699+++ 2682+++
2700*** In pcl-cvs mode, there is a new `d r' command to view the changes 2683*** In pcl-cvs mode, there is a new `d r' command to view the changes
2701anyone has committed to the repository since you last executed 2684anyone has committed to the repository since you last executed
2702"checkout", "update" or "commit". That means using cvs diff options 2685`checkout', `update' or `commit'. That means using cvs diff options
2703-rBASE -rHEAD. 2686-rBASE -rHEAD.
2704 2687
2705+++ 2688+++
2706** There is a new user option `mail-default-directory' that allows you 2689** The new variable `mail-default-directory' specifies
2707to specify the value of `default-directory' for mail buffers. This 2690`default-directory' for mail buffers. This directory is used for
2708directory is used for auto-save files of mail buffers. It defaults to 2691auto-save files of mail buffers. It defaults to "~/".
2709"~/".
2710 2692
2711+++ 2693+++
2712** Emacs can now indicate in the mode-line the presence of new e-mail 2694** The mode line can indicate new mail in a directory or file.
2713in a directory or in a file. See the documentation of the user option 2695
2696See the documentation of the user option
2714`display-time-mail-directory'. 2697`display-time-mail-directory'.
2715 2698
2716** Rmail changes: 2699** Rmail changes:
@@ -2720,6 +2703,7 @@ in a directory or in a file. See the documentation of the user option
2720 2703
2721+++ 2704+++
2722*** Support for `movemail' from GNU mailutils was added to Rmail. 2705*** Support for `movemail' from GNU mailutils was added to Rmail.
2706
2723This version of `movemail' allows to read mail from a wide range of 2707This version of `movemail' allows to read mail from a wide range of
2724mailbox formats, including remote POP3 and IMAP4 mailboxes with or 2708mailbox formats, including remote POP3 and IMAP4 mailboxes with or
2725without TLS encryption. If GNU mailutils is installed on the system 2709without TLS encryption. If GNU mailutils is installed on the system
@@ -2730,11 +2714,13 @@ used instead of the native one.
2730 2714
2731--- 2715---
2732*** Gnus now includes Sieve and PGG 2716*** Gnus now includes Sieve and PGG
2717
2733Sieve is a library for managing Sieve scripts. PGG is a library to handle 2718Sieve is a library for managing Sieve scripts. PGG is a library to handle
2734PGP/MIME. 2719PGP/MIME.
2735 2720
2736--- 2721---
2737*** There are many news features, bug fixes and improvements. 2722*** There are many news features, bug fixes and improvements.
2723
2738See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. 2724See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
2739 2725
2740--- 2726---
@@ -2786,10 +2772,10 @@ This can be controlled through the variables `diary-header-line-flag'
2786and `diary-header-line-format'. 2772and `diary-header-line-format'.
2787 2773
2788+++ 2774+++
2789*** The procedure for activating appointment reminders has changed: use 2775*** The procedure for activating appointment reminders has changed:
2790the new function `appt-activate'. The new variable 2776use the new function `appt-activate'. The new variable
2791`appt-display-format' controls how reminders are displayed, replacing 2777`appt-display-format' controls how reminders are displayed, replacing
2792appt-issue-message, appt-visible, and appt-msg-window. 2778`appt-issue-message', `appt-visible', and `appt-msg-window'.
2793 2779
2794+++ 2780+++
2795*** The new functions `diary-from-outlook', `diary-from-outlook-gnus', 2781*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
@@ -2827,24 +2813,26 @@ The current product name will be shown on the mode line following the
2827SQL mode indicator. 2813SQL mode indicator.
2828 2814
2829The technique of setting `sql-mode-font-lock-defaults' directly in 2815The technique of setting `sql-mode-font-lock-defaults' directly in
2830your .emacs will no longer establish the default highlighting -- Use 2816your `.emacs' will no longer establish the default highlighting -- Use
2831`sql-product' to accomplish this. 2817`sql-product' to accomplish this.
2832 2818
2833ANSI keywords are always highlighted. 2819ANSI keywords are always highlighted.
2834 2820
2835*** The function `sql-add-product-keywords' can be used to add 2821*** The function `sql-add-product-keywords' can be used to add
2836font-lock rules to the product specific rules. For example, to have 2822font-lock rules to the product specific rules. For example, to have
2837all identifiers ending in "_t" under MS SQLServer treated as a type, 2823all identifiers ending in `_t' under MS SQLServer treated as a type,
2838you would use the following line in your .emacs file: 2824you would use the following line in your .emacs file:
2839 2825
2840 (sql-add-product-keywords 'ms 2826 (sql-add-product-keywords 'ms
2841 '(("\\<\\w+_t\\>" . font-lock-type-face))) 2827 '(("\\<\\w+_t\\>" . font-lock-type-face)))
2842 2828
2843*** Oracle support includes keyword highlighting for Oracle 9i. Most 2829*** Oracle support includes keyword highlighting for Oracle 9i.
2844SQL and PL/SQL keywords are implemented. SQL*Plus commands are 2830
2831Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are
2845highlighted in `font-lock-doc-face'. 2832highlighted in `font-lock-doc-face'.
2846 2833
2847*** Microsoft SQLServer support has been significantly improved. 2834*** Microsoft SQLServer support has been significantly improved.
2835
2848Keyword highlighting for SqlServer 2000 is implemented. 2836Keyword highlighting for SqlServer 2000 is implemented.
2849sql-interactive-mode defaults to use osql, rather than isql, because 2837sql-interactive-mode defaults to use osql, rather than isql, because
2850osql flushes its error stream more frequently. Thus error messages 2838osql flushes its error stream more frequently. Thus error messages
@@ -2852,7 +2840,7 @@ are displayed when they occur rather than when the session is
2852terminated. 2840terminated.
2853 2841
2854If the username and password are not provided to `sql-ms', osql is 2842If the username and password are not provided to `sql-ms', osql is
2855called with the -E command line argument to use the operating system 2843called with the `-E' command line argument to use the operating system
2856credentials to authenticate the user. 2844credentials to authenticate the user.
2857 2845
2858*** Postgres support is enhanced. 2846*** Postgres support is enhanced.
@@ -2867,33 +2855,36 @@ packages, procedures, functions, triggers, sequences, rules, and
2867defaults. 2855defaults.
2868 2856
2869*** Added SQL->Start SQLi Session menu entry which calls the 2857*** Added SQL->Start SQLi Session menu entry which calls the
2870appropriate sql-interactive-mode wrapper for the current setting of 2858appropriate `sql-interactive-mode' wrapper for the current setting of
2871`sql-product'. 2859`sql-product'.
2872 2860
2873--- 2861---
2874*** Support for the SQLite interpreter has been added to sql.el by calling 2862*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
2875'sql-sqlite'.
2876 2863
2877** FFAP changes: 2864** FFAP changes:
2878 2865
2879+++ 2866+++
2880*** New ffap commands and keybindings: C-x C-r (`ffap-read-only'), 2867*** New ffap commands and keybindings:
2868
2869C-x C-r (`ffap-read-only'),
2881C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), 2870C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
2882C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), 2871C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
2883C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). 2872C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
2884 2873
2885--- 2874---
2886*** FFAP accepts wildcards in a file name by default. C-x C-f passes 2875*** FFAP accepts wildcards in a file name by default.
2887it to `find-file' with non-nil WILDCARDS argument, which visits 2876
2888multiple files, and C-x d passes it to `dired'. 2877C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
2878argument, which visits multiple files, and C-x d passes it to `dired'.
2889 2879
2890--- 2880---
2891** skeleton.el now supports using - to mark the skeleton-point without 2881** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
2892 interregion interaction. @ has reverted to only setting 2882
2893 skeleton-positions and no longer sets skeleton-point. Skeletons 2883`@' has reverted to only setting `skeleton-positions' and no longer
2894 which used @ to mark skeleton-point independent of _ should now use - 2884sets `skeleton-point'. Skeletons which used @ to mark
2895 instead. The updated skeleton-insert docstring explains these new 2885`skeleton-point' independent of `_' should now use `-' instead. The
2896 features along with other details of skeleton construction. 2886updated `skeleton-insert' docstring explains these new features along
2887with other details of skeleton construction.
2897 2888
2898--- 2889---
2899** New variable `hs-set-up-overlay' allows customization of the overlay 2890** New variable `hs-set-up-overlay' allows customization of the overlay
@@ -2902,25 +2893,25 @@ handles the overlay property `display' specially, preserving it during
2902temporary overlay showing in the course of an isearch operation. 2893temporary overlay showing in the course of an isearch operation.
2903 2894
2904+++ 2895+++
2905** hide-ifdef-mode now uses overlays rather than selective-display 2896** `hide-ifdef-mode' now uses overlays rather than selective-display
2906to hide its text. This should be mostly transparent but slightly 2897to hide its text. This should be mostly transparent but slightly
2907changes the behavior of motion commands like C-e and C-p. 2898changes the behavior of motion commands like C-e and C-p.
2908 2899
2909--- 2900---
2910** partial-completion-mode now does partial completion on directory names. 2901** `partial-completion-mode' now handles partial completion on directory names.
2911 2902
2912--- 2903---
2913** The type-break package now allows `type-break-file-name' to be nil 2904** The type-break package now allows `type-break-file-name' to be nil
2914and if so, doesn't store any data across sessions. This is handy if 2905and if so, doesn't store any data across sessions. This is handy if
2915you don't want the .type-break file in your home directory or are 2906you don't want the `.type-break' file in your home directory or are
2916annoyed by the need for interaction when you kill Emacs. 2907annoyed by the need for interaction when you kill Emacs.
2917 2908
2918--- 2909---
2919** `ps-print' can now print characters from the mule-unicode charsets. 2910** `ps-print' can now print characters from the mule-unicode charsets.
2920 2911
2921Printing text with characters from the mule-unicode-* sets works with 2912Printing text with characters from the mule-unicode-* sets works with
2922ps-print, provided that you have installed the appropriate BDF fonts. 2913`ps-print', provided that you have installed the appropriate BDF
2923See the file INSTALL for URLs where you can find these fonts. 2914fonts. See the file INSTALL for URLs where you can find these fonts.
2924 2915
2925--- 2916---
2926** New command `strokes-global-set-stroke-string'. 2917** New command `strokes-global-set-stroke-string'.
@@ -2940,7 +2931,7 @@ using strokes as an input method.
2940 2931
2941+++ 2932+++
2942*** The `emacsclient' command understands the options `--eval' and 2933*** The `emacsclient' command understands the options `--eval' and
2943`--display' which tell Emacs respectively to evaluate the given elisp 2934`--display' which tell Emacs respectively to evaluate the given Lisp
2944expression and to use the given display when visiting files. 2935expression and to use the given display when visiting files.
2945 2936
2946+++ 2937+++
@@ -2951,11 +2942,10 @@ expression and to use the given display when visiting files.
2951 2942
2952+++ 2943+++
2953** You can now disable pc-selection-mode after enabling it. 2944** You can now disable pc-selection-mode after enabling it.
2954M-x pc-selection-mode behaves like a proper minor mode, and with no
2955argument it toggles the mode.
2956 2945
2957Turning off PC-Selection mode restores the global key bindings 2946M-x pc-selection-mode behaves like a proper minor mode, and with no
2958that were replaced by turning on the mode. 2947argument it toggles the mode. Turning off PC-Selection mode restores
2948the global key bindings that were replaced by turning on the mode.
2959 2949
2960--- 2950---
2961** `uniquify-strip-common-suffix' tells uniquify to prefer 2951** `uniquify-strip-common-suffix' tells uniquify to prefer
@@ -2963,9 +2953,10 @@ that were replaced by turning on the mode.
2963 2953
2964--- 2954---
2965** Support for `magic cookie' standout modes has been removed. 2955** Support for `magic cookie' standout modes has been removed.
2966Emacs will still work on terminals that require magic cookies in order 2956
2967to use standout mode, however they will not be able to display 2957Emacs still works on terminals that require magic cookies in order to
2968mode-lines in inverse-video. 2958use standout mode, but they can no longer display mode-lines in
2959inverse-video.
2969 2960
2970--- 2961---
2971** The game `mpuz' is enhanced. 2962** The game `mpuz' is enhanced.
@@ -2975,14 +2966,15 @@ default, all trivial operations involving whole lines are performed
2975automatically. The game uses faces for better visual feedback. 2966automatically. The game uses faces for better visual feedback.
2976 2967
2977--- 2968---
2978** display-battery has been replaced by display-battery-mode. 2969** display-battery-mode replaces display-battery.
2979 2970
2980--- 2971---
2981** calculator.el now has radix grouping mode, which is available when 2972** calculator.el now has radix grouping mode.
2982`calculator-output-radix' is non-nil. In this mode a separator 2973
2983character is used every few digits, making it easier to see byte 2974To enable this, set `calculator-output-radix' non-nil. In this mode a
2984boundries etc. For more info, see the documentation of the variable 2975separator character is used every few digits, making it easier to see
2985`calculator-radix-grouping-mode'. 2976byte boundries etc. For more info, see the documentation of the
2977variable `calculator-radix-grouping-mode'.
2986 2978
2987--- 2979---
2988** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. 2980** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead.
@@ -2991,12 +2983,13 @@ boundries etc. For more info, see the documentation of the variable
2991** iso-acc.el is now obsolete. Use one of the latin input methods instead. 2983** iso-acc.el is now obsolete. Use one of the latin input methods instead.
2992 2984
2993--- 2985---
2994** cplus-md.el has been removed to avoid problems with Custom. 2986** cplus-md.el has been deleted.
2995 2987
2996* Changes in Emacs 22.1 on non-free operating systems 2988* Changes in Emacs 22.1 on non-free operating systems
2997 2989
2998+++ 2990+++
2999** Passing resources on the command line now works on MS Windows. 2991** Passing resources on the command line now works on MS Windows.
2992
3000You can use --xrm to pass resource settings to Emacs, overriding any 2993You can use --xrm to pass resource settings to Emacs, overriding any
3001existing values. For example: 2994existing values. For example:
3002 2995
@@ -3007,15 +3000,18 @@ irrespective of geometry or background setting on the Windows registry.
3007 3000
3008--- 3001---
3009** On MS Windows, the "system caret" now follows the cursor. 3002** On MS Windows, the "system caret" now follows the cursor.
3003
3010This enables Emacs to work better with programs that need to track 3004This enables Emacs to work better with programs that need to track
3011the cursor, for example screen magnifiers and text to speech programs. 3005the cursor, for example screen magnifiers and text to speech programs.
3012 3006
3013--- 3007---
3014** Tooltips now work on MS Windows. 3008** Tooltips now work on MS Windows.
3009
3015See the Emacs 21.1 NEWS entry for tooltips for details. 3010See the Emacs 21.1 NEWS entry for tooltips for details.
3016 3011
3017--- 3012---
3018** Images are now supported on MS Windows. 3013** Images are now supported on MS Windows.
3014
3019PBM and XBM images are supported out of the box. Other image formats 3015PBM and XBM images are supported out of the box. Other image formats
3020depend on external libraries. All of these libraries have been ported 3016depend on external libraries. All of these libraries have been ported
3021to Windows, and can be found in both source and binary form at 3017to Windows, and can be found in both source and binary form at
@@ -3025,6 +3021,7 @@ against. For additional information, see nt/INSTALL.
3025 3021
3026--- 3022---
3027** Sound is now supported on MS Windows. 3023** Sound is now supported on MS Windows.
3024
3028WAV format is supported on all versions of Windows, other formats such 3025WAV format is supported on all versions of Windows, other formats such
3029as AU, AIFF and MP3 may be supported in the more recent versions of 3026as AU, AIFF and MP3 may be supported in the more recent versions of
3030Windows, or when other software provides hooks into the system level 3027Windows, or when other software provides hooks into the system level
@@ -3032,16 +3029,19 @@ sound support for those formats.
3032 3029
3033--- 3030---
3034** Different shaped mouse pointers are supported on MS Windows. 3031** Different shaped mouse pointers are supported on MS Windows.
3032
3035The mouse pointer changes shape depending on what is under the pointer. 3033The mouse pointer changes shape depending on what is under the pointer.
3036 3034
3037--- 3035---
3038** Pointing devices with more than 3 buttons are now supported on MS Windows. 3036** Pointing devices with more than 3 buttons are now supported on MS Windows.
3037
3039The new variable `w32-pass-extra-mouse-buttons-to-system' controls 3038The new variable `w32-pass-extra-mouse-buttons-to-system' controls
3040whether Emacs should handle the extra buttons itself (the default), or 3039whether Emacs should handle the extra buttons itself (the default), or
3041pass them to Windows to be handled with system-wide functions. 3040pass them to Windows to be handled with system-wide functions.
3042 3041
3043--- 3042---
3044** Emacs takes note of colors defined in Control Panel on MS-Windows. 3043** Emacs takes note of colors defined in Control Panel on MS-Windows.
3044
3045The Control Panel defines some default colors for applications in much 3045The Control Panel defines some default colors for applications in much
3046the same way as wildcard X Resources do on X. Emacs now adds these 3046the same way as wildcard X Resources do on X. Emacs now adds these
3047colors to the colormap prefixed by System (eg SystemMenu for the 3047colors to the colormap prefixed by System (eg SystemMenu for the
@@ -3052,6 +3052,7 @@ you wish to use them in other faces.
3052 3052
3053--- 3053---
3054** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. 3054** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
3055
3055Those systems use Unicode internally, so this allows Emacs to share 3056Those systems use Unicode internally, so this allows Emacs to share
3056multilingual text with other applications. On other versions of 3057multilingual text with other applications. On other versions of
3057MS Windows, Emacs now uses the appropriate locale coding-system, so 3058MS Windows, Emacs now uses the appropriate locale coding-system, so
@@ -3059,9 +3060,10 @@ the clipboard should work correctly for your local language without
3059any customizations. 3060any customizations.
3060 3061
3061--- 3062---
3062** On Mac OS, the value of the variable `keyboard-coding-system' is 3063** On Mac OS, `keyboard-coding-system' changes based on the keyboard script.
3063now dynamically changed according to the current keyboard script. The 3064
3064variable `mac-keyboard-text-encoding' and the constants 3065---
3066** The variable `mac-keyboard-text-encoding' and the constants
3065`kTextEncodingMacRoman', `kTextEncodingISOLatin1', and 3067`kTextEncodingMacRoman', `kTextEncodingISOLatin1', and
3066`kTextEncodingISOLatin2' are obsolete. 3068`kTextEncodingISOLatin2' are obsolete.
3067 3069
@@ -3085,6 +3087,10 @@ the command `undefined'. (In earlier Emacs versions, it used
3085 3087
3086** General Lisp changes: 3088** General Lisp changes:
3087 3089
3090---
3091*** The variables post-command-idle-hook and post-command-idle-delay have
3092 been removed. Use run-with-idle-timer instead.
3093
3088+++ 3094+++
3089*** The function `eql' is now available without requiring the CL package. 3095*** The function `eql' is now available without requiring the CL package.
3090 3096
@@ -3092,57 +3098,67 @@ the command `undefined'. (In earlier Emacs versions, it used
3092*** `makehash' is now obsolete. Use `make-hash-table' instead. 3098*** `makehash' is now obsolete. Use `make-hash-table' instead.
3093 3099
3094+++ 3100+++
3095*** If optional third argument APPEND to `add-to-list' is non-nil, a 3101*** `add-to-list' takes an optional third argument, APPEND.
3096new element gets added at the end of the list instead of at the
3097beginning. This change actually occurred in Emacs-21.1, but was not
3098documented.
3099 3102
3100+++ 3103If APPEND is non-nil, the new element gets added at the end of the
3101*** New function `copy-tree' makes a copy of a tree, recursively copying 3104list instead of at the beginning. This change actually occurred in
3102both cars and cdrs. 3105Emacs 21.1, but was not documented then.
3103 3106
3104+++ 3107+++
3105*** New function `delete-dups' destructively removes `equal' 3108*** New function `copy-tree' makes a copy of a tree.
3106duplicates from a list. Of several `equal' occurrences of an element 3109
3107in the list, the first one is kept. 3110It recursively copyies through both CARs and CDRs.
3108 3111
3109+++ 3112+++
3110*** `declare' is now a macro. This change was made mostly for 3113*** New function `delete-dups' deletes `equal' duplicate elements from a list.
3111documentation purposes and should have no real effect on Lisp code. 3114
3115It modifies the list destructively, like `delete'. Of several `equal'
3116occurrences of an element in the list, the one that's kept is the
3117first one.
3112 3118
3113+++ 3119+++
3114*** The new function `rassq-delete-all' deletes all elements from an 3120*** New function `rassq-delete-all'.
3115alist whose cdr is `eq' to a specified value. 3121
3122(rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose
3123CDR is `eq' to the specified value.
3116 3124
3117+++ 3125+++
3118*** The function `number-sequence' returns a list of equally-separated 3126*** The function `number-sequence' makes a list of equally-separated numbers.
3119numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). 3127
3120By default, the separation is 1, but you can specify a different separation 3128For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By
3121as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). 3129default, the separation is 1, but you can specify a different
3130separation as the third argument. (number-sequence 1.5 6 2) returns
3131(1.5 3.5 5.5).
3122 3132
3123+++ 3133+++
3124*** The variables `most-positive-fixnum' and `most-negative-fixnum' 3134*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
3125hold the largest and smallest possible integer values. 3135
3136They hold the largest and smallest possible integer values.
3126 3137
3127+++ 3138+++
3128*** The flags, width, and precision options for %-specifications in function 3139*** Minor change in the function `format'.
3129`format' are now documented. Some flags that were accepted but not 3140
3130implemented (such as "*") are no longer accepted. 3141Some flags that were accepted but not implemented (such as "*") are no
3142longer accepted.
3131 3143
3132+++ 3144+++
3133*** Functions `get' and `plist-get' no longer signals an error for 3145*** Functions `get' and `plist-get' no longer give errors for bad plists.
3134a malformed property list. They also detect cyclic lists. 3146
3147They return nil for a malformed property list or if the list is
3148cyclic.
3135 3149
3136+++ 3150+++
3137*** The new functions `lax-plist-get' and `lax-plist-put' are like 3151*** New functions `lax-plist-get' and `lax-plist-put'.
3138`plist-get' and `plist-put', except that they compare the property 3152
3139name using `equal' rather than `eq'. 3153They are like `plist-get' and `plist-put', except that they compare
3154the property name using `equal' rather than `eq'.
3140 3155
3141+++ 3156+++
3142*** The new variable `print-continuous-numbering', when non-nil, says 3157*** New variable `print-continuous-numbering'.
3143that successive calls to print functions should use the same 3158
3144numberings for circular structure references. This is only relevant 3159When this is non-nil, successive calls to print functions use a single
3145when `print-circle' is non-nil. 3160numbering scheme for circular structure references. This is only
3161relevant when `print-circle' is non-nil.
3146 3162
3147When you bind `print-continuous-numbering' to t, you should 3163When you bind `print-continuous-numbering' to t, you should
3148also bind `print-number-table' to nil. 3164also bind `print-number-table' to nil.
@@ -3162,44 +3178,55 @@ angle in radians between the vector [X, Y] and the X axis. (This is
3162equivalent to the standard C library function `atan2'.) 3178equivalent to the standard C library function `atan2'.)
3163 3179
3164+++ 3180+++
3165*** A function's doc string can now specify the calling pattern. 3181*** A function or macro's doc string can now specify the calling pattern.
3166 3182
3167You put this in the doc string's last line, which should match the 3183You put this info in the doc string's last line. It should be
3168regexp "\n\n(fn.*)\\'". 3184formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't
3185specify this explicitly, Emacs determines it from the actual argument
3186names. Usually that default is right, but not always.
3169 3187
3170+++ 3188+++
3171*** New macro `with-local-quit' temporarily sets `inhibit-quit' to nil. 3189*** New macro `with-local-quit' temporarily allows quitting.
3190
3191A quit inside the body of `with-local-quit' is caught by the
3192`with-local-quit' form itself, but another quit will happen later once
3193the code that has inhibitted quitting exits.
3172 3194
3173This is for use around potentially blocking or long-running code in 3195This is for use around potentially blocking or long-running code
3174timers and `post-command-hook' functions. 3196inside timer functions and `post-command-hook' functions.
3197
3198+++
3199*** New macro `define-obsolete-function-alias'.
3175 3200
3176*** `define-obsolete-function-alias' 3201This combines `defalias' and `make-obsolete'.
3177combines `defalias' and `make-obsolete'.
3178 3202
3179+++ 3203+++
3180*** New function `unsafep' returns nil if the given Lisp form can't 3204*** New function `unsafep' determines whether a Lisp form is safe.
3181possibly do anything dangerous; otherwise it returns a reason why the 3205
3182form might be unsafe (calls unknown function, alters global variable, 3206It returns nil if the given Lisp form can't possibly do anything
3183etc). 3207dangerous; otherwise it returns a reason why the form might be unsafe
3208(calls unknown function, alters global variable, etc).
3184 3209
3185** Lisp code indentation features: 3210** Lisp code indentation features:
3186 3211
3187+++ 3212+++
3188*** The `defmacro' form can contain declarations specifying how to 3213*** The `defmacro' form can contain indentation and edebug declarations.
3189indent the macro in Lisp mode and how to debug it with Edebug. The 3214
3190syntax of defmacro has been extended to 3215These declarations specify how to indent the macro calls in Lisp mode
3216and how to debug them with Edebug. You write them like this:
3191 3217
3192 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) 3218 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...)
3193 3219
3194DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The 3220DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The
3195declaration specifiers supported are: 3221possible declaration specifiers are:
3196 3222
3197(indent INDENT) 3223(indent INDENT)
3198 Set NAME's `lisp-indent-function' property to INDENT. 3224 Set NAME's `lisp-indent-function' property to INDENT.
3199 3225
3200(edebug DEBUG) 3226(edebug DEBUG)
3201 Set NAME's `edebug-form-spec' property to DEBUG. (This is 3227 Set NAME's `edebug-form-spec' property to DEBUG. (This is
3202 equivalent to writing a `def-edebug-spec' for the macro. 3228 equivalent to writing a `def-edebug-spec' for the macro,
3229 but this is cleaner.)
3203 3230
3204--- 3231---
3205*** cl-indent now allows customization of Indentation of backquoted forms. 3232*** cl-indent now allows customization of Indentation of backquoted forms.
@@ -3217,7 +3244,7 @@ forms.
3217+++ 3244+++
3218** Variable aliases: 3245** Variable aliases:
3219 3246
3220*** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] 3247*** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING]
3221 3248
3222This function defines the symbol ALIAS-VAR as a variable alias for 3249This function defines the symbol ALIAS-VAR as a variable alias for
3223symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR 3250symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR
@@ -3227,7 +3254,7 @@ changes the value of BASE-VAR.
3227DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has 3254DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has
3228the same documentation as BASE-VAR. 3255the same documentation as BASE-VAR.
3229 3256
3230*** indirect-variable VARIABLE 3257*** New function: indirect-variable VARIABLE
3231 3258
3232This function returns the variable at the end of the chain of aliases 3259This function returns the variable at the end of the chain of aliases
3233of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not 3260of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not
@@ -3243,24 +3270,22 @@ variables, including buffer-local and frame-local variables.
3243** defcustom changes: 3270** defcustom changes:
3244 3271
3245+++ 3272+++
3246*** defcustom and other custom declarations now use a default group 3273*** The new customization type `float' requires a floating point number.
3247(the last prior group defined in the same file) when no :group was given.
3248
3249---
3250*** The new customization type `float' specifies numbers with floating
3251point (no integers are allowed).
3252 3274
3253** String changes: 3275** String changes:
3254 3276
3255+++ 3277+++
3256*** The escape sequence \s is now interpreted as a SPACE character, 3278*** The escape sequence \s is now interpreted as a SPACE character.
3257unless it is followed by a `-' in a character constant (e.g. ?\s-A), 3279
3258in which case it is still interpreted as the super modifier. 3280Exception: In a character constant, if it is followed by a `-' in a
3259In strings, \s is always interpreted as a space. 3281character constant (e.g. ?\s-A), it is still interpreted as the super
3282modifier. In strings, \s is always interpreted as a space.
3260 3283
3261+++ 3284+++
3262*** A hex escape in a string forces the string to be multibyte. 3285*** A hex escape in a string constant forces the string to be multibyte.
3263An octal escape makes it unibyte. 3286
3287+++
3288*** An octal escape in a string constant forces the string to be unibyte.
3264 3289
3265+++ 3290+++
3266*** `split-string' now includes null substrings in the returned list if 3291*** `split-string' now includes null substrings in the returned list if
@@ -3274,7 +3299,7 @@ empty matches are omitted from the returned list.
3274multibyte string with the same individual character codes. 3299multibyte string with the same individual character codes.
3275 3300
3276+++ 3301+++
3277*** New function `substring-no-properties returns a substring without 3302*** New function `substring-no-properties' returns a substring without
3278text properties. 3303text properties.
3279 3304
3280+++ 3305+++
@@ -3282,18 +3307,13 @@ text properties.
3282`assoc-ignore-representation', which are still available, but have 3307`assoc-ignore-representation', which are still available, but have
3283been declared obsolete. 3308been declared obsolete.
3284 3309
3285** Buffer/variable changes:
3286
3287+++
3288*** The new function `buffer-local-value' returns the buffer-local
3289binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
3290have a buffer-local binding in buffer BUFFER, it returns the default
3291value of VARIABLE instead.
3292
3293+++ 3310+++
3294** There is a new facility for displaying warnings to the user. 3311** Displaying warnings to the user.
3295 3312
3296See the functions `warn' and `display-warning' . 3313See the functions `warn' and `display-warning', or the Lisp Manual.
3314If you want to be sure the warning will not be overlooked, this
3315facility is much better than using `message', since it displays
3316warnings in a separate window.
3297 3317
3298+++ 3318+++
3299** Progress reporters. 3319** Progress reporters.
@@ -3315,28 +3335,36 @@ the usable window height and width is used.
3315+++ 3335+++
3316*** The `line-move', `scroll-up', and `scroll-down' functions will now 3336*** The `line-move', `scroll-up', and `scroll-down' functions will now
3317modify the window vscroll to scroll through display rows that are 3337modify the window vscroll to scroll through display rows that are
3318taller that the height of the window, for example in the presense of 3338taller that the height of the window, for example in the presence of
3319large images. To disable this feature, Lisp code can bind the new 3339large images. To disable this feature, bind the new variable
3320variable `auto-window-vscroll' to nil. 3340`auto-window-vscroll' to nil.
3321 3341
3322+++ 3342+++
3323*** The argument to `forward-word', `backward-word', 3343*** The argument to `forward-word', `backward-word' is optional.
3324`forward-to-indentation' and `backward-to-indentation' is now 3344
3325optional, and defaults to 1. 3345It defaults to 1.
3346
3347+++
3348*** Argument to `forward-to-indentation' and `backward-to-indentation' is optional.
3349
3350It defaults to 1.
3326 3351
3327+++ 3352+++
3328*** Lisp code can now test if a given buffer position is inside a 3353*** New function `mouse-on-link-p' test if a position is in a clickable link.
3329clickable link with the new function `mouse-on-link-p'. This is the 3354
3330function used by the new `mouse-1-click-follows-link' functionality. 3355This is the function used by the new `mouse-1-click-follows-link'
3356functionality.
3331 3357
3332+++ 3358+++
3333*** New function `line-number-at-pos' returns the line number of the 3359*** New function `line-number-at-pos' returns the line number of a position.
3334current line in the current buffer, or if optional buffer position is 3360
3335given, line number of corresponding line in current buffer. 3361It an optional buffer position argument that defaults to point.
3336 3362
3337+++ 3363+++
3338*** `field-beginning' and `field-end' now accept an additional optional 3364*** `field-beginning' and `field-end' take new optional argument, LIMIT.
3339argument, LIMIT. 3365
3366This argument tells them not to search beyond LIMIT. Instead they
3367give up and return LIMIT.
3340 3368
3341+++ 3369+++
3342*** Function `pos-visible-in-window-p' now returns the pixel coordinates 3370*** Function `pos-visible-in-window-p' now returns the pixel coordinates
@@ -3351,23 +3379,29 @@ position or for a given window pixel coordinate.
3351** Text modification: 3379** Text modification:
3352 3380
3353+++ 3381+++
3354*** The new function `insert-buffer-substring-as-yank' works like 3382*** The new function `insert-for-yank' normally works like `insert', but
3355`insert-buffer-substring', but removes the text properties in the 3383removes the text properties in the `yank-excluded-properties' list
3356`yank-excluded-properties' list. 3384and handles the `yank-handler' text property.
3385
3386+++
3387*** The new function `insert-buffer-substring-as-yank' is like
3388`insert-for-yank' except that it gets the text from another buffer as
3389in `insert-buffer-substring'.
3357 3390
3358+++ 3391+++
3359*** The new function `insert-buffer-substring-no-properties' is like 3392*** The new function `insert-buffer-substring-no-properties' is like
3360insert-buffer-substring, but removes all text properties from the 3393`insert-buffer-substring', but removes all text properties from the
3361inserted substring. 3394inserted substring.
3362 3395
3363+++ 3396+++
3364*** The new function `filter-buffer-substring' extracts a buffer 3397*** The new function `filter-buffer-substring' extracts a buffer
3365substring, passes it through a set of filter functions, and returns 3398substring, passes it through a set of filter functions, and returns
3366the filtered substring. It is used instead of `buffer-substring' or 3399the filtered substring. Use it instead of `buffer-substring' or
3367`delete-and-extract-region' when copying text into a user-accessible 3400`delete-and-extract-region' when copying text into a user-accessible
3368data structure, like the kill-ring, X clipboard, or a register. The 3401data structure, such as the kill-ring, X clipboard, or a register.
3369list of filter function is specified by the new variable 3402
3370`buffer-substring-filters'. For example, Longlines mode uses 3403The list of filter function is specified by the new variable
3404`buffer-substring-filters'. For example, Longlines mode adds to
3371`buffer-substring-filters' to remove soft newlines from the copied 3405`buffer-substring-filters' to remove soft newlines from the copied
3372text. 3406text.
3373 3407
@@ -3390,42 +3424,80 @@ clone to the other.
3390--- 3424---
3391*** The function `insert-string' is now obsolete. 3425*** The function `insert-string' is now obsolete.
3392 3426
3393** Syntax table changes:
3394
3395+++ 3427+++
3396*** The macro `with-syntax-table' does not copy the table any more. 3428** Atomic change groups.
3397 3429
3398+++ 3430To perform some changes in the current buffer "atomically" so that
3399*** The new function `syntax-after' returns the syntax code 3431they either all succeed or are all undone, use `atomic-change-group'
3400of the character after a specified buffer position, taking account 3432around the code that makes changes. For instance:
3401of text properties as well as the character code.
3402 3433
3403+++ 3434 (atomic-change-group
3404*** `syntax-class' extracts the class of a syntax code (as returned 3435 (insert foo)
3405by syntax-after). 3436 (delete-region x y))
3406 3437
3407*** The new package `syntax.el' provides an efficient way to find the 3438If an error (or other nonlocal exit) occurs inside the body of
3408current syntactic context (as returned by `parse-partial-sexp'). 3439`atomic-change-group', it unmakes all the changes in that buffer that
3440were during the execution of the body. The change group has no effect
3441on any other buffers--any such changes remain.
3409 3442
3410** GC changes: 3443If you need something more sophisticated, you can directly call the
3444lower-level functions that `atomic-change-group' uses. Here is how.
3411 3445
3412+++ 3446To set up a change group for one buffer, call `prepare-change-group'.
3413*** New variables `gc-elapsed' and `gcs-done' provide extra information 3447Specify the buffer as argument; it defaults to the current buffer.
3414on garbage collection. 3448This function returns a "handle" for the change group. You must save
3449the handle to activate the change group and then finish it.
3415 3450
3416+++ 3451Before you change the buffer again, you must activate the change
3417*** Functions from `post-gc-hook' are run at the end of garbage 3452group. Pass the handle to `activate-change-group' afterward to
3418collection. The hook is run with GC inhibited, so use it with care. 3453do this.
3454
3455After you make the changes, you must finish the change group. You can
3456either accept the changes or cancel them all. Call
3457`accept-change-group' to accept the changes in the group as final;
3458call `cancel-change-group' to undo them all.
3459
3460You should use `unwind-protect' to make sure the group is always
3461finished. The call to `activate-change-group' should be inside the
3462`unwind-protect', in case the user types C-g just after it runs.
3463(This is one reason why `prepare-change-group' and
3464`activate-change-group' are separate functions.) Once you finish the
3465group, don't use the handle again--don't try to finish the same group
3466twice.
3467
3468To make a multibuffer change group, call `prepare-change-group' once
3469for each buffer you want to cover, then use `nconc' to combine the
3470returned values, like this:
3471
3472 (nconc (prepare-change-group buffer-1)
3473 (prepare-change-group buffer-2))
3474
3475You can then activate the multibuffer change group with a single call
3476to `activate-change-group', and finish it with a single call to
3477`accept-change-group' or `cancel-change-group'.
3478
3479Nested use of several change groups for the same buffer works as you
3480would expect. Non-nested use of change groups for the same buffer
3481will lead to undesirable results, so don't let it happen; the first
3482change group you start for any given buffer should be the last one
3483finished.
3419 3484
3420** Buffer-related changes: 3485** Buffer-related changes:
3421 3486
3422--- 3487---
3423*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. 3488*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
3489
3424If it is non-nil, it specifies which buffers to list. 3490If it is non-nil, it specifies which buffers to list.
3425 3491
3426+++ 3492+++
3427*** `kill-buffer-hook' is now a permanent local. 3493*** `kill-buffer-hook' is now a permanent local.
3428 3494
3495+++
3496*** The new function `buffer-local-value' returns the buffer-local
3497binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
3498have a buffer-local binding in buffer BUFFER, it returns the default
3499value of VARIABLE instead.
3500
3429** Local variables lists: 3501** Local variables lists:
3430 3502
3431+++ 3503+++
@@ -3452,25 +3524,65 @@ with the form as argument, and if any returns t, the form is ok to call.
3452If the form is not "ok to call", that means Emacs asks for 3524If the form is not "ok to call", that means Emacs asks for
3453confirmation as before. 3525confirmation as before.
3454 3526
3455** Abbrev changes: 3527** Searching and matching changes:
3456 3528
3457*** The new function copy-abbrev-table returns a new abbrev table that 3529+++
3458is a copy of a given abbrev table. 3530*** New function `looking-back' checks whether a regular expression matches
3531the text before point. Specifying the LIMIT argument bounds how far
3532back the match can start; this is a way to keep it from taking too long.
3459 3533
3460+++ 3534+++
3461*** define-abbrev now accepts an optional argument SYSTEM-FLAG. If 3535*** The new variable `search-spaces-regexp' controls how to search
3462non-nil, this marks the abbrev as a "system" abbrev, which means that 3536for spaces in a regular expression. If it is non-nil, it should be a
3463it won't be stored in the user's abbrevs file if he saves the abbrevs. 3537regular expression, and any series of spaces stands for that regular
3464Major modes that predefine some abbrevs should always specify this 3538expression. If it is nil, spaces stand for themselves.
3465flag. 3539
3540Spaces inside of constructs such as `[..]' and inside loops such as
3541`*', `+', and `?' are never replaced with `search-spaces-regexp'.
3542
3543+++
3544*** New regular expression operators, `\_<' and `\_>'.
3545
3546These match the beginning and end of a symbol. A symbol is a
3547non-empty sequence of either word or symbol constituent characters, as
3548specified by the syntax table.
3549
3550---
3551*** rx.el has new corresponding `symbol-end' and `symbol-start' elements.
3552
3553+++
3554*** `skip-chars-forward' and `skip-chars-backward' now handle
3555character classes such as `[:alpha:]', along with individual
3556characters and ranges.
3557
3558---
3559*** In `replace-match', the replacement text no longer inherits
3560properties from surrounding text.
3561
3562+++
3563*** The list returned by `(match-data t)' now has the buffer as a final
3564element, if the last match was on a buffer. `set-match-data'
3565accepts such a list for restoring the match state.
3566
3567+++
3568*** The default value of `sentence-end' is now defined using the new
3569variable `sentence-end-without-space', which contains such characters
3570that end a sentence without following spaces.
3571
3572The function `sentence-end' should be used to obtain the value of the
3573variable `sentence-end'. If the variable `sentence-end' is nil, then
3574this function returns the regexp constructed from the variables
3575`sentence-end-without-period', `sentence-end-double-space' and
3576`sentence-end-without-space'.
3466 3577
3467** Undo changes: 3578** Undo changes:
3468 3579
3469+++ 3580+++
3470*** An element of buffer-undo-list can now have the form (apply FUNNAME 3581*** `buffer-undo-list' can allows programmable elements.
3471. ARGS), where FUNNAME is a symbol other than t or nil. That stands 3582
3472for a high-level change that should be undone by evaluating (apply 3583These elements have the form (apply FUNNAME . ARGS), where FUNNAME is
3473FUNNAME ARGS). 3584a symbol other than t or nil. That stands for a high-level change
3585that should be undone by evaluating (apply FUNNAME ARGS).
3474 3586
3475These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) 3587These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
3476which indicates that the change which took place was limited to the 3588which indicates that the change which took place was limited to the
@@ -3478,20 +3590,20 @@ range BEG...END and increased the buffer size by DELTA.
3478 3590
3479+++ 3591+++
3480*** If the buffer's undo list for the current command gets longer than 3592*** If the buffer's undo list for the current command gets longer than
3481undo-outer-limit, garbage collection empties it. This is to prevent 3593`undo-outer-limit', garbage collection empties it. This is to prevent
3482it from using up the available memory and choking Emacs. 3594it from using up the available memory and choking Emacs.
3483 3595
3484+++ 3596+++
3485** New `yank-handler' text property can be used to control how 3597** New `yank-handler' text property can be used to control how
3486previously killed text on the kill-ring is reinserted. 3598previously killed text on the kill ring is reinserted.
3487 3599
3488The value of the yank-handler property must be a list with one to four 3600The value of the `yank-handler' property must be a list with one to four
3489elements with the following format: 3601elements with the following format:
3490 (FUNCTION PARAM NOEXCLUDE UNDO). 3602 (FUNCTION PARAM NOEXCLUDE UNDO).
3491 3603
3492The `insert-for-yank' function looks for a yank-handler property on 3604The `insert-for-yank' function looks for a yank-handler property on
3493the first character on its string argument (typically the first 3605the first character on its string argument (typically the first
3494element on the kill-ring). If a yank-handler property is found, 3606element on the kill-ring). If a `yank-handler' property is found,
3495the normal behavior of `insert-for-yank' is modified in various ways: 3607the normal behavior of `insert-for-yank' is modified in various ways:
3496 3608
3497 When FUNCTION is present and non-nil, it is called instead of `insert' 3609 When FUNCTION is present and non-nil, it is called instead of `insert'
@@ -3501,7 +3613,7 @@ passed to FUNCTION (or `insert'); for example, if FUNCTION is
3501`yank-rectangle', PARAM should be a list of strings to insert as a 3613`yank-rectangle', PARAM should be a list of strings to insert as a
3502rectangle. 3614rectangle.
3503 If NOEXCLUDE is present and non-nil, the normal removal of the 3615 If NOEXCLUDE is present and non-nil, the normal removal of the
3504yank-excluded-properties is not performed; instead FUNCTION is 3616`yank-excluded-properties' is not performed; instead FUNCTION is
3505responsible for removing those properties. This may be necessary 3617responsible for removing those properties. This may be necessary
3506if FUNCTION adjusts point before or after inserting the object. 3618if FUNCTION adjusts point before or after inserting the object.
3507 If UNDO is present and non-nil, it is a function that will be called 3619 If UNDO is present and non-nil, it is a function that will be called
@@ -3509,31 +3621,43 @@ by `yank-pop' to undo the insertion of the current object. It is
3509called with two arguments, the start and end of the current region. 3621called with two arguments, the start and end of the current region.
3510FUNCTION can set `yank-undo-function' to override the UNDO value. 3622FUNCTION can set `yank-undo-function' to override the UNDO value.
3511 3623
3512*** The functions kill-new, kill-append, and kill-region now have an 3624*** The functions `kill-new', `kill-append', and `kill-region' now have an
3513optional argument to specify the yank-handler text property to put on 3625optional argument to specify the `yank-handler' text property to put on
3514the killed text. 3626the killed text.
3515 3627
3516*** The function yank-pop will now use a non-nil value of the variable 3628*** The function `yank-pop' will now use a non-nil value of the variable
3517`yank-undo-function' (instead of delete-region) to undo the previous 3629`yank-undo-function' (instead of `delete-region') to undo the previous
3518yank or yank-pop command (or a call to insert-for-yank). The function 3630`yank' or `yank-pop' command (or a call to `insert-for-yank'). The function
3519insert-for-yank automatically sets that variable according to the UNDO 3631`insert-for-yank' automatically sets that variable according to the UNDO
3520element of the string argument's yank-handler text property if present. 3632element of the string argument's `yank-handler' text property if present.
3521 3633
3522*** The function `insert-for-yank' now supports strings where the 3634*** The function `insert-for-yank' now supports strings where the
3523`yank-handler' property does not span the first character of the 3635`yank-handler' property does not span the first character of the
3524string. The old behavior is available if you call 3636string. The old behavior is available if you call
3525`insert-for-yank-1' instead. 3637`insert-for-yank-1' instead.
3526 3638
3527*** The new function insert-for-yank normally works like `insert', but 3639** Syntax table changes:
3528removes the text properties in the `yank-excluded-properties' list. 3640
3529However, the insertion of the text can be modified by a `yank-handler' 3641+++
3530text property. 3642*** The macro `with-syntax-table' no longer copies the syntax table.
3643
3644+++
3645*** The new function `syntax-after' returns the syntax code
3646of the character after a specified buffer position, taking account
3647of text properties as well as the character code.
3648
3649+++
3650*** `syntax-class' extracts the class of a syntax code (as returned
3651by `syntax-after').
3652
3653*** The new function `syntax-ppss' rovides an efficient way to find the
3654current syntactic context at point.
3531 3655
3532** File operation changes: 3656** File operation changes:
3533 3657
3534+++ 3658+++
3535*** New vars `exec-suffixes' and `load-suffixes' used when 3659*** New vars `exec-suffixes' and `load-suffixes' used when
3536searching for an executable resp. an elisp file. 3660searching for an executable or an Emacs Lisp file.
3537 3661
3538+++ 3662+++
3539*** The new primitive `set-file-times' sets a file's access and 3663*** The new primitive `set-file-times' sets a file's access and
@@ -3547,8 +3671,8 @@ its own special methods and not directly through the file system).
3547The value in that case is an identifier for the remote file system. 3671The value in that case is an identifier for the remote file system.
3548 3672
3549+++ 3673+++
3550*** `auto-save-file-format' has been renamed to 3674*** `buffer-auto-save-file-format' is the new name for what was
3551`buffer-auto-save-file-format' and made into a permanent local. 3675formerly called `auto-save-file-format'. It is now a permanent local.
3552 3676
3553+++ 3677+++
3554*** Functions `file-name-sans-extension' and `file-name-extension' now 3678*** Functions `file-name-sans-extension' and `file-name-extension' now
@@ -3556,15 +3680,11 @@ ignore the leading dots in file names, so that file names such as
3556`.emacs' are treated as extensionless. 3680`.emacs' are treated as extensionless.
3557 3681
3558+++ 3682+++
3559*** copy-file now takes an additional option arg MUSTBENEW. 3683*** `copy-file' now takes an additional option arg MUSTBENEW.
3560 3684
3561This argument works like the MUSTBENEW argument of write-file. 3685This argument works like the MUSTBENEW argument of write-file.
3562 3686
3563+++ 3687+++
3564*** If the second argument to `copy-file' is the name of a directory,
3565the file is copied to that directory instead of signaling an error.
3566
3567+++
3568*** `visited-file-modtime' and `calendar-time-from-absolute' now return 3688*** `visited-file-modtime' and `calendar-time-from-absolute' now return
3569a list of two integers, instead of a cons. 3689a list of two integers, instead of a cons.
3570 3690
@@ -3581,9 +3701,9 @@ tasks, for example; it can be used by the copyright package to make
3581sure saved files have the current year in any copyright headers. 3701sure saved files have the current year in any copyright headers.
3582 3702
3583+++ 3703+++
3584*** If a buffer sets buffer-save-without-query to non-nil, 3704*** If `buffer-save-without-query' is non-nil in some buffer,
3585save-some-buffers will always save that buffer without asking 3705`save-some-buffers' will always save that buffer without asking (if
3586(if it's modified). 3706it's modified).
3587 3707
3588*** New function `locate-file' searches for a file in a list of directories. 3708*** New function `locate-file' searches for a file in a list of directories.
3589`locate-file' accepts a name of a file to search (a string), and two 3709`locate-file' accepts a name of a file to search (a string), and two
@@ -3598,12 +3718,13 @@ One advantage of using this function is that the list of suffixes in
3598executables without polluting Lisp code with OS dependancies. 3718executables without polluting Lisp code with OS dependancies.
3599 3719
3600--- 3720---
3601*** The precedence of file-name-handlers has been changed. 3721*** The precedence of file name handlers has been changed.
3602Instead of blindly choosing the first handler that matches, 3722
3603find-file-name-handler now gives precedence to a file-name handler 3723Instead of choosing the first handler that matches,
3604that matches near the end of the file name. More specifically, the 3724`find-file-name-handler' now gives precedence to a file name handler
3605handler whose (match-beginning 0) is the largest is chosen. 3725that matches nearest the end of the file name. More precisely, the
3606In case of ties, the old "first matched" rule applies. 3726handler whose (match-beginning 0) is the largest is chosen. In case
3727of ties, the old "first matched" rule applies.
3607 3728
3608+++ 3729+++
3609*** A file name handler can declare which operations it handles. 3730*** A file name handler can declare which operations it handles.
@@ -3621,7 +3742,7 @@ autoloaded when not really necessary.
3621+++ 3742+++
3622*** An interactive specification can now use the code letter 'U' to get 3743*** An interactive specification can now use the code letter 'U' to get
3623the up-event that was discarded in case the last key sequence read for a 3744the up-event that was discarded in case the last key sequence read for a
3624previous 'k' or 'K' argument was a down-event; otherwise nil is used. 3745previous `k' or `K' argument was a down-event; otherwise nil is used.
3625 3746
3626+++ 3747+++
3627*** The new interactive-specification `G' reads a file name 3748*** The new interactive-specification `G' reads a file name
@@ -3629,28 +3750,29 @@ much like `F', but if the input is a directory name (even defaulted),
3629it returns just the directory name. 3750it returns just the directory name.
3630 3751
3631--- 3752---
3632*** Functions y-or-n-p, read-char, read-key-sequence and the like, that 3753*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
3633display a prompt but don't use the minibuffer, now display the prompt 3754display a prompt but don't use the minibuffer, now display the prompt
3634using the text properties (esp. the face) of the prompt string. 3755using the text properties (esp. the face) of the prompt string.
3635 3756
3636+++ 3757+++
3637*** (while-no-input BODY...) runs BODY, but only so long as no input 3758*** (while-no-input BODY...) runs BODY, but only so long as no input
3638arrives. If the user types or clicks anything, BODY stops as if a 3759arrives. If the user types or clicks anything, BODY stops as if a
3639quit had occurred. while-no-input returns the value of BODY, if BODY 3760quit had occurred. `while-no-input' returns the value of BODY, if BODY
3640finishes. It returns nil if BODY was aborted. 3761finishes. It returns nil if BODY was aborted.
3641 3762
3642** Minibuffer changes: 3763** Minibuffer changes:
3643 3764
3765+++
3644*** The new function `minibufferp' returns non-nil if its optional 3766*** The new function `minibufferp' returns non-nil if its optional
3645buffer argument is a minibuffer. If the argument is omitted, it 3767buffer argument is a minibuffer. If the argument is omitted, it
3646defaults to the current buffer. 3768defaults to the current buffer.
3647 3769
3648+++ 3770+++
3649*** New function minibuffer-selected-window returns the window which 3771*** New function `minibuffer-selected-window' returns the window which
3650was selected when entering the minibuffer. 3772was selected when entering the minibuffer.
3651 3773
3652+++ 3774+++
3653*** read-from-minibuffer now accepts an additional argument KEEP-ALL 3775*** `read-from-minibuffer' now accepts an additional argument KEEP-ALL
3654saying to put all inputs in the history list, even empty ones. 3776saying to put all inputs in the history list, even empty ones.
3655 3777
3656+++ 3778+++
@@ -3661,8 +3783,8 @@ while reading the file name from the minibuffer; the predicate in this
3661variable is used by read-file-name-internal to filter the completion list. 3783variable is used by read-file-name-internal to filter the completion list.
3662 3784
3663--- 3785---
3664*** The new variable `read-file-name-function' can be used by lisp code 3786*** The new variable `read-file-name-function' can be used by Lisp code
3665to override the internal read-file-name function. 3787to override the built-in `read-file-name' function.
3666 3788
3667+++ 3789+++
3668*** The new variable `read-file-name-completion-ignore-case' specifies 3790*** The new variable `read-file-name-completion-ignore-case' specifies
@@ -3670,59 +3792,45 @@ whether completion ignores case when reading a file name with the
3670`read-file-name' function. 3792`read-file-name' function.
3671 3793
3672+++ 3794+++
3673*** The new function `read-directory-name' can be used instead of 3795*** The new function `read-directory-name' for reading a directory name.
3674`read-file-name' to read a directory name; when used, completion
3675will only show directories.
3676 3796
3677** Searching and matching changes: 3797It is like `read-file-name' except that the defaulting works better
3798for directories, and completion inside it shows only directories.
3678 3799
3679+++ 3800** Completion changes:
3680*** New function `looking-back' checks whether a regular expression matches
3681the text before point. Specifying the LIMIT argument bounds how far
3682back the match can start; this is a way to keep it from taking too long.
3683 3801
3684+++ 3802+++
3685*** The new variable search-spaces-regexp controls how to search 3803*** The functions `all-completions' and `try-completion' now accept lists
3686for spaces in a regular expression. If it is non-nil, it should be a 3804of strings as well as hash-tables additionally to alists, obarrays
3687regular expression, and any series of spaces stands for that regular 3805and functions. Furthermore, the function `test-completion' is now
3688expression. If it is nil, spaces stand for themselves. 3806exported to Lisp. The keys in alists and hash tables can be either
3689 3807strings or symbols, which are automatically converted with to strings.
3690Spaces inside of constructs such as [..] and *, +, ? are never
3691replaced with search-spaces-regexp.
3692 3808
3693+++ 3809+++
3694*** There are now two new regular expression operators, \_< and \_>, 3810*** The new macro `dynamic-completion-table' supports using functions
3695for matching the beginning and end of a symbol. A symbol is a 3811as a dynamic completion table.
3696non-empty sequence of either word or symbol constituent characters, as
3697specified by the syntax table.
3698 3812
3699+++ 3813 (dynamic-completion-table FUN)
3700*** skip-chars-forward and skip-chars-backward now handle
3701character classes such as [:alpha:], along with individual characters
3702and ranges.
3703 3814
3704--- 3815FUN is called with one argument, the string for which completion is required,
3705*** In `replace-match', the replacement text no longer inherits 3816and it should return an alist containing all the intended possible
3706properties from surrounding text. 3817completions. This alist can be a full list of possible completions so that FUN
3818can ignore the value of its argument. If completion is performed in the
3819minibuffer, FUN will be called in the buffer from which the minibuffer was
3820entered. `dynamic-completion-table' then computes the completion.
3707 3821
3708+++ 3822+++
3709*** The list returned by `(match-data t)' now has the buffer as a final 3823*** The new macro `lazy-completion-table' initializes a variable
3710element, if the last match was on a buffer. `set-match-data' 3824as a lazy completion table.
3711accepts such a list for restoring the match state.
3712
3713---
3714*** rx.el has new corresponding `symbol-end' and `symbol-start' elements.
3715 3825
3716+++ 3826 (lazy-completion-table VAR FUN &rest ARGS)
3717*** The default value of `sentence-end' is now defined using the new
3718variable `sentence-end-without-space', which contains such characters
3719that end a sentence without following spaces.
3720 3827
3721The function `sentence-end' should be used to obtain the value of the 3828If the completion table VAR is used for the first time (e.g., by passing VAR
3722variable `sentence-end'. If the variable `sentence-end' is nil, then 3829as an argument to `try-completion'), the function FUN is called with arguments
3723this function returns the regexp constructed from the variables 3830ARGS. FUN must return the completion table that will be stored in VAR. If
3724`sentence-end-without-period', `sentence-end-double-space' and 3831completion is requested in the minibuffer, FUN will be called in the buffer
3725`sentence-end-without-space'. 3832from which the minibuffer was entered. The return value of
3833`lazy-completion-table' must be used to initialize the value of VAR.
3726 3834
3727+++ 3835+++
3728** Enhancements to keymaps. 3836** Enhancements to keymaps.
@@ -3737,7 +3845,7 @@ example,
3737 3845
3738*** Interactive commands can be remapped through keymaps. 3846*** Interactive commands can be remapped through keymaps.
3739 3847
3740This is an alternative to using defadvice or substitute-key-definition 3848This is an alternative to using `defadvice' or `substitute-key-definition'
3741to modify the behavior of a key binding using the normal keymap 3849to modify the behavior of a key binding using the normal keymap
3742binding and lookup functionality. 3850binding and lookup functionality.
3743 3851
@@ -3746,26 +3854,25 @@ remapped to another command, that command is run instead of the
3746original command. 3854original command.
3747 3855
3748Example: 3856Example:
3749Suppose that minor mode my-mode has defined the commands 3857Suppose that minor mode `my-mode' has defined the commands
3750my-kill-line and my-kill-word, and it wants C-k (and any other key 3858`my-kill-line' and `my-kill-word', and it wants C-k (and any other key
3751bound to kill-line) to run the command my-kill-line instead of 3859bound to `kill-line') to run the command `my-kill-line' instead of
3752kill-line, and likewise it wants to run my-kill-word instead of 3860`kill-line', and likewise it wants to run `my-kill-word' instead of
3753kill-word. 3861`kill-word'.
3754 3862
3755Instead of rebinding C-k and the other keys in the minor mode map, 3863Instead of rebinding C-k and the other keys in the minor mode map,
3756command remapping allows you to directly map kill-line into 3864command remapping allows you to directly map `kill-line' into
3757my-kill-line and kill-word into my-kill-word through the minor mode 3865`my-kill-line' and `kill-word' into `my-kill-word' using `define-key':
3758map using define-key:
3759 3866
3760 (define-key my-mode-map [remap kill-line] 'my-kill-line) 3867 (define-key my-mode-map [remap kill-line] 'my-kill-line)
3761 (define-key my-mode-map [remap kill-word] 'my-kill-word) 3868 (define-key my-mode-map [remap kill-word] 'my-kill-word)
3762 3869
3763Now, when my-mode is enabled, and the user enters C-k or M-d, 3870When `my-mode' is enabled, its minor mode keymap is enabled too. So
3764the commands my-kill-line and my-kill-word are run. 3871when the user types C-k, that runs the command `my-kill-line'.
3765 3872
3766Notice that only one level of remapping is supported. In the above 3873Only one level of remapping is supported. In the above example, this
3767example, this means that if my-kill-line is remapped to other-kill, 3874means that if `my-kill-line' is remapped to `other-kill', then C-k still
3768then C-k still runs my-kill-line. 3875runs `my-kill-line'.
3769 3876
3770The following changes have been made to provide command remapping: 3877The following changes have been made to provide command remapping:
3771 3878
@@ -3777,15 +3884,15 @@ The following changes have been made to provide command remapping:
3777- The new function `command-remapping' returns the binding for a 3884- The new function `command-remapping' returns the binding for a
3778 remapped command in the current keymaps, or nil if not remapped. 3885 remapped command in the current keymaps, or nil if not remapped.
3779 3886
3780- key-binding now remaps interactive commands unless the optional 3887- `key-binding' now remaps interactive commands unless the optional
3781 third argument NO-REMAP is non-nil. 3888 third argument NO-REMAP is non-nil.
3782 3889
3783- where-is-internal now returns nil for a remapped command (e.g. 3890- `where-is-internal' now returns nil for a remapped command (e.g.
3784 kill-line if my-mode is enabled), and the actual key binding for 3891 `kill-line', when `my-mode' is enabled), and the actual key binding for
3785 the command it is remapped to (e.g. C-k for my-kill-line). 3892 the command it is remapped to (e.g. C-k for my-kill-line).
3786 It also has a new optional fifth argument, NO-REMAP, which inhibits 3893 It also has a new optional fifth argument, NO-REMAP, which inhibits
3787 remapping if non-nil (e.g. it returns C-k for kill-line and 3894 remapping if non-nil (e.g. it returns "C-k" for `kill-line', and
3788 <kill-line> for my-kill-line). 3895 "<kill-line>" for `my-kill-line').
3789 3896
3790- The new variable `this-original-command' contains the original 3897- The new variable `this-original-command' contains the original
3791 command before remapping. It is equal to `this-command' when the 3898 command before remapping. It is equal to `this-command' when the
@@ -3795,10 +3902,11 @@ The following changes have been made to provide command remapping:
3795over minor mode keymaps. 3902over minor mode keymaps.
3796 3903
3797*** The `keymap' property now also works at the ends of overlays and 3904*** The `keymap' property now also works at the ends of overlays and
3798text-properties, according to their stickiness. This also means that it 3905text properties, according to their stickiness. This also means that it
3799works with empty overlays. The same hold for the `local-map' property. 3906works with empty overlays. The same hold for the `local-map' property.
3800 3907
3801*** Dense keymaps now handle inheritance correctly. 3908*** Dense keymaps now handle inheritance correctly.
3909
3802Previously a dense keymap would hide all of the simple-char key 3910Previously a dense keymap would hide all of the simple-char key
3803bindings of the parent keymap. 3911bindings of the parent keymap.
3804 3912
@@ -3810,99 +3918,57 @@ active keymaps.
3810*** New function `describe-buffer-bindings' inserts the list of all 3918*** New function `describe-buffer-bindings' inserts the list of all
3811defined keys and their definitions. 3919defined keys and their definitions.
3812 3920
3813*** New function `keymap-prompt' returns the prompt-string of a keymap 3921*** New function `keymap-prompt' returns the prompt string of a keymap.
3814 3922
3815*** (map-keymap FUNCTION KEYMAP) applies the function to each binding 3923*** (map-keymap FUNCTION KEYMAP) applies the function to each binding
3816in the keymap. 3924in the keymap.
3817 3925
3818*** New variable emulation-mode-map-alists. 3926*** New variable `emulation-mode-map-alists'.
3819 3927
3820Lisp packages using many minor mode keymaps can now maintain their own 3928Lisp packages using many minor mode keymaps can now maintain their own
3821keymap alist separate from minor-mode-map-alist by adding their keymap 3929keymap alist separate from `minor-mode-map-alist' by adding their
3822alist to this list. 3930keymap alist to this list.
3823
3824+++
3825** Atomic change groups.
3826
3827To perform some changes in the current buffer "atomically" so that
3828they either all succeed or are all undone, use `atomic-change-group'
3829around the code that makes changes. For instance:
3830
3831 (atomic-change-group
3832 (insert foo)
3833 (delete-region x y))
3834
3835If an error (or other nonlocal exit) occurs inside the body of
3836`atomic-change-group', it unmakes all the changes in that buffer that
3837were during the execution of the body. The change group has no effect
3838on any other buffers--any such changes remain.
3839
3840If you need something more sophisticated, you can directly call the
3841lower-level functions that `atomic-change-group' uses. Here is how.
3842
3843To set up a change group for one buffer, call `prepare-change-group'.
3844Specify the buffer as argument; it defaults to the current buffer.
3845This function returns a "handle" for the change group. You must save
3846the handle to activate the change group and then finish it.
3847
3848Before you change the buffer again, you must activate the change
3849group. Pass the handle to `activate-change-group' afterward to
3850do this.
3851
3852After you make the changes, you must finish the change group. You can
3853either accept the changes or cancel them all. Call
3854`accept-change-group' to accept the changes in the group as final;
3855call `cancel-change-group' to undo them all.
3856 3931
3857You should use `unwind-protect' to make sure the group is always 3932** Abbrev changes:
3858finished. The call to `activate-change-group' should be inside the
3859`unwind-protect', in case the user types C-g just after it runs.
3860(This is one reason why `prepare-change-group' and
3861`activate-change-group' are separate functions.) Once you finish the
3862group, don't use the handle again--don't try to finish the same group
3863twice.
3864 3933
3865To make a multibuffer change group, call `prepare-change-group' once 3934+++
3866for each buffer you want to cover, then use `nconc' to combine the 3935*** The new function `copy-abbrev-table' copies an abbrev table.
3867returned values, like this:
3868 3936
3869 (nconc (prepare-change-group buffer-1) 3937It returns a new abbrev table that is a copy of a given abbrev table.
3870 (prepare-change-group buffer-2))
3871 3938
3872You can then activate the multibuffer change group with a single call 3939+++
3873to `activate-change-group', and finish it with a single call to 3940*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
3874`accept-change-group' or `cancel-change-group'.
3875 3941
3876Nested use of several change groups for the same buffer works as you 3942If non-nil, this marks the abbrev as a "system" abbrev, which means
3877would expect. Non-nested use of change groups for the same buffer 3943that it won't be stored in the user's abbrevs file if he saves the
3878will lead to undesirable results, so don't let it happen; the first 3944abbrevs. Major modes that predefine some abbrevs should always
3879change group you start for any given buffer should be the last one 3945specify this flag.
3880finished.
3881 3946
3882+++ 3947+++
3883** Enhancements to process support 3948** Enhancements to process support
3884 3949
3885*** Function list-processes now has an optional argument; if non-nil, 3950*** Function `list-processes' now has an optional argument; if non-nil,
3886only the processes whose query-on-exit flag is set are listed. 3951it lists only the processes whose query-on-exit flag is set.
3887 3952
3888*** New set-process-query-on-exit-flag and process-query-on-exit-flag 3953*** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'.
3889functions. The existing process-kill-without-query function is still
3890supported, but new code should use the new functions.
3891 3954
3892*** Function signal-process now accepts a process object or process 3955These replace the old function `process-kill-without-query'. That
3956function is still supported, but new code should use the new
3957functions.
3958
3959*** Function `signal-process' now accepts a process object or process
3893name in addition to a process id to identify the signalled process. 3960name in addition to a process id to identify the signalled process.
3894 3961
3895*** Processes now have an associated property list where programs can 3962*** Processes now have an associated property list where programs can
3896maintain process state and other per-process related information. 3963maintain process state and other per-process related information.
3897 3964
3898The new functions process-get and process-put are used to access, add, 3965Use the new functions `process-get' and `process-put' to access, add,
3899and modify elements on this property list. 3966and modify elements on this property list. Use the new functions
3967`process-plist' and `set-process-plist' to access and replace the
3968entire property list of a process.
3900 3969
3901The new low-level functions process-plist and set-process-plist are 3970*** Function `accept-process-output' has a new optional fourth arg
3902used to access and replace the entire property list of a process. 3971JUST-THIS-ONE. If non-nil, only output from the specified process
3903
3904*** Function accept-process-output now has an optional fourth arg
3905`just-this-one'. If non-nil, only output from the specified process
3906is handled, suspending output from other processes. If value is an 3972is handled, suspending output from other processes. If value is an
3907integer, also inhibit running timers. This feature is generally not 3973integer, also inhibit running timers. This feature is generally not
3908recommended, but may be necessary for specific applications, such as 3974recommended, but may be necessary for specific applications, such as
@@ -3913,7 +3979,7 @@ speech synthesis.
3913On some systems, when emacs reads the output from a subprocess, the 3979On some systems, when emacs reads the output from a subprocess, the
3914output data is read in very small blocks, potentially resulting in 3980output data is read in very small blocks, potentially resulting in
3915very poor performance. This behavior can be remedied to some extent 3981very poor performance. This behavior can be remedied to some extent
3916by setting the new variable process-adaptive-read-buffering to a 3982by setting the new variable `process-adaptive-read-buffering' to a
3917non-nil value (the default), as it will automatically delay reading 3983non-nil value (the default), as it will automatically delay reading
3918from such processes, to allowing them to produce more output before 3984from such processes, to allowing them to produce more output before
3919emacs tries to read it. 3985emacs tries to read it.
@@ -3927,10 +3993,12 @@ process.
3927obeys file handlers. The file handler is chosen based on 3993obeys file handlers. The file handler is chosen based on
3928`default-directory'. 3994`default-directory'.
3929 3995
3930*** A filter function of a process is called with a multibyte string 3996*** A process filter function gets the output as multibyte string
3931if the filter's multibyteness is t. That multibyteness is decided by 3997if the process specifies t for its filter's multibyteness.
3932the value of `default-enable-multibyte-characters' when the process is 3998
3933created and can be changed later by `set-process-filter-multibyte'. 3999That multibyteness is decided by the value of
4000`default-enable-multibyte-characters' when the process is created, and
4001you can change it later with `set-process-filter-multibyte'.
3934 4002
3935*** The new function `set-process-filter-multibyte' sets the 4003*** The new function `set-process-filter-multibyte' sets the
3936multibyteness of the strings passed to the process's filter. 4004multibyteness of the strings passed to the process's filter.
@@ -3947,8 +4015,8 @@ which was not compatible with the behavior of file reading.
3947+++ 4015+++
3948** Enhanced networking support. 4016** Enhanced networking support.
3949 4017
3950*** There is a new `make-network-process' function which supports 4018*** The new `make-network-process' function makes network connections.
3951opening of stream and datagram connections to a server, as well as 4019It allows opening of stream and datagram connections to a server, as well as
3952create a stream or datagram server inside emacs. 4020create a stream or datagram server inside emacs.
3953 4021
3954- A server is started using :server t arg. 4022- A server is started using :server t arg.
@@ -3963,65 +4031,53 @@ create a stream or datagram server inside emacs.
3963To test for the availability of a given feature, use featurep like this: 4031To test for the availability of a given feature, use featurep like this:
3964 (featurep 'make-network-process '(:type datagram)) 4032 (featurep 'make-network-process '(:type datagram))
3965 4033
3966*** Original open-network-stream is now emulated using make-network-process. 4034*** The old `open-network-stream' now uses `make-network-process'.
3967 4035
3968*** New function open-network-stream-nowait. 4036*** New functions `process-datagram-address', `set-process-datagram-address'.
3969
3970This function initiates a non-blocking connect and returns immediately
3971without waiting for the connection to be established. It takes the
3972filter and sentinel functions as arguments; when the non-blocking
3973connect completes, the sentinel is called with a status string
3974matching "open" or "failed".
3975
3976*** New function open-network-stream-server.
3977
3978This function creates a network server process for a TCP service.
3979When a client connects to the specified service, a new subprocess
3980is created to handle the new connection, and the sentinel function
3981is called for the new process.
3982
3983*** New functions process-datagram-address and set-process-datagram-address.
3984 4037
3985These functions are used with datagram-based network processes to get 4038These functions are used with datagram-based network processes to get
3986and set the current address of the remote partner. 4039and set the current address of the remote partner.
3987 4040
3988*** New function format-network-address. 4041*** New function `format-network-address'.
3989 4042
3990This function reformats the lisp representation of a network address 4043This function reformats the Lisp representation of a network address
3991to a printable string. For example, an IP address A.B.C.D and port 4044to a printable string. For example, an IP address A.B.C.D and port
3992number P is represented as a five element vector [A B C D P], and the 4045number P is represented as a five element vector [A B C D P], and the
3993printable string returned for this vector is "A.B.C.D:P". See the doc 4046printable string returned for this vector is "A.B.C.D:P". See the doc
3994string for other formatting options. 4047string for other formatting options.
3995 4048
3996*** By default, the function process-contact still returns (HOST SERVICE) 4049*** `process-contact' has an optional KEY argument.
3997for a network process. Using the new optional KEY arg, the complete list 4050
3998of network process properties or a specific property can be selected. 4051Depending on this argument, you can get the complete list of network
4052process properties or a specific property. Using :local or :remote as
4053the KEY, you get the address of the local or remote end-point.
3999 4054
4000Using :local and :remote as the KEY, the address of the local or 4055An Inet address is represented as a 5 element vector, where the first
4001remote end-point is returned. An Inet address is represented as a 5 40564 elements contain the IP address and the fifth is the port number.
4002element vector, where the first 4 elements contain the IP address and
4003the fifth is the port number.
4004 4057
4005*** Network processes can now be stopped and restarted with 4058*** New functions `stop-process' and `continue-process'.
4006`stop-process' and `continue-process'. For a server process, no
4007connections are accepted in the stopped state. For a client process,
4008no input is received in the stopped state.
4009 4059
4010*** New function network-interface-list. 4060These functions stop and restart communication through a network
4061connection. For a server process, no connections are accepted in the
4062stopped state. For a client process, no input is received in the
4063stopped state.
4064
4065*** New function `network-interface-list'.
4011 4066
4012This function returns a list of network interface names and their 4067This function returns a list of network interface names and their
4013current network addresses. 4068current network addresses.
4014 4069
4015*** New function network-interface-info. 4070*** New function `network-interface-info'.
4016 4071
4017This function returns the network address, hardware address, current 4072This function returns the network address, hardware address, current
4018status, and other information about a specific network interface. 4073status, and other information about a specific network interface.
4019 4074
4020*** The sentinel is now called when a network process is deleted with 4075*** Deleting a network process with `delete-process' calls the sentinel.
4021delete-process. The status message passed to the sentinel for a 4076
4022deleted network process is "deleted". The message passed to the 4077The status message passed to the sentinel for a deleted network
4023sentinel when the connection is closed by the remote peer has been 4078process is "deleted". The message passed to the sentinel when the
4024changed to "connection broken by remote peer". 4079connection is closed by the remote peer has been changed to
4080"connection broken by remote peer".
4025 4081
4026** Using window objects: 4082** Using window objects:
4027 4083
@@ -4034,7 +4090,7 @@ header line.
4034+++ 4090+++
4035*** New function `window-body-height'. 4091*** New function `window-body-height'.
4036 4092
4037This is like window-height but does not count the mode line 4093This is like `window-height' but does not count the mode line
4038or the header line. 4094or the header line.
4039 4095
4040+++ 4096+++
@@ -4061,7 +4117,7 @@ return window edges in units of pixels, rather than columns and lines.
4061selected window without impacting the order of `buffer-list'. 4117selected window without impacting the order of `buffer-list'.
4062 4118
4063+++ 4119+++
4064*** `select-window' takes an optional second argument `norecord'. 4120*** `select-window' takes an optional second argument NORECORD.
4065 4121
4066This is like `switch-to-buffer'. 4122This is like `switch-to-buffer'.
4067 4123
@@ -4088,12 +4144,12 @@ identifing the bitmap such as `left-truncation or `continued-line'.
4088*** New function `destroy-fringe-bitmap' deletes a fringe bitmap 4144*** New function `destroy-fringe-bitmap' deletes a fringe bitmap
4089or restores a built-in one to its default value. 4145or restores a built-in one to its default value.
4090 4146
4091*** New function `set-fringe-bitmap-face' can now be used to set a 4147*** New function `set-fringe-bitmap-face' specifies the face to be
4092specific face to be used for a specific fringe bitmap. The face is 4148used for a specific fringe bitmap. The face is automatically merged
4093automatically merged with the `fringe' face, so normally, the face 4149with the `fringe' face, so normally, the face should only specify the
4094should only specify the foreground color of the bitmap. 4150foreground color of the bitmap.
4095 4151
4096*** There are new display properties, `left-fringe; and `right-fringe', 4152*** There are new display properties, `left-fringe' and `right-fringe',
4097that can be used to show a specific bitmap in the left or right fringe 4153that can be used to show a specific bitmap in the left or right fringe
4098bitmap of the display line. 4154bitmap of the display line.
4099 4155
@@ -4236,7 +4292,7 @@ If the `line-spacing' property is a float or cons, the line spacing
4236is calculated as specified above for the `line-height' property. 4292is calculated as specified above for the `line-height' property.
4237 4293
4238+++ 4294+++
4239*** The buffer local line-spacing variable can now have a float value, 4295*** The buffer local `line-spacing' variable can now have a float value,
4240which is used as a height relative to the default frame line height. 4296which is used as a height relative to the default frame line height.
4241 4297
4242+++ 4298+++
@@ -4286,7 +4342,7 @@ For example, to align to the center of the left-margin, use
4286 4342
4287If no specific base offset is set for alignment, it is always relative 4343If no specific base offset is set for alignment, it is always relative
4288to the left edge of the text area. For example, :align-to 0 in a 4344to the left edge of the text area. For example, :align-to 0 in a
4289header-line aligns with the first text column in the text area. 4345header line aligns with the first text column in the text area.
4290 4346
4291The value of the form `(NUM . EXPR)' is the value of NUM multiplied by 4347The value of the form `(NUM . EXPR)' is the value of NUM multiplied by
4292the value of the expression EXPR. For example, (2 . in) specifies a 4348the value of the expression EXPR. For example, (2 . in) specifies a
@@ -4312,10 +4368,10 @@ supported on text terminals.
4312**** New display property (slice X Y WIDTH HEIGHT) can be used with 4368**** New display property (slice X Y WIDTH HEIGHT) can be used with
4313an image property to display only a specific slice of the image. 4369an image property to display only a specific slice of the image.
4314 4370
4315**** Function insert-image has new optional fourth arg to 4371**** Function `insert-image' has new optional fourth arg to
4316specify image slice (X Y WIDTH HEIGHT). 4372specify image slice (X Y WIDTH HEIGHT).
4317 4373
4318**** New function insert-sliced-image inserts a given image as a 4374**** New function `insert-sliced-image' inserts a given image as a
4319specified number of evenly sized slices (rows x columns). 4375specified number of evenly sized slices (rows x columns).
4320 4376
4321+++ 4377+++
@@ -4334,7 +4390,7 @@ When the mouse pointer is above a hot-spot area of an image, the
4334PLIST of that hot-spot is consulted; if it contains a `help-echo' 4390PLIST of that hot-spot is consulted; if it contains a `help-echo'
4335property it defines a tool-tip for the hot-spot, and if it contains 4391property it defines a tool-tip for the hot-spot, and if it contains
4336a `pointer' property, it defines the shape of the mouse cursor when 4392a `pointer' property, it defines the shape of the mouse cursor when
4337it is over the hot-spot. See the variable 'void-area-text-pointer' 4393it is over the hot-spot. See the variable `void-area-text-pointer'
4338for possible pointer shapes. 4394for possible pointer shapes.
4339 4395
4340When you click the mouse when the mouse pointer is over a hot-spot, 4396When you click the mouse when the mouse pointer is over a hot-spot,
@@ -4362,38 +4418,37 @@ controlled/overriden via the `pointer' text property.
4362** Mouse event enhancements: 4418** Mouse event enhancements:
4363 4419
4364+++ 4420+++
4365*** Mouse clicks on fringes now generates left-fringe or right-fringes 4421*** Mouse events for clicks on window fringes now specify `left-fringe'
4366events, rather than a text area click event. 4422or `right-fringe' as the area.
4367 4423
4368+++ 4424+++
4369*** Mouse clicks in the left and right marginal areas now includes a 4425*** All mouse events now include a buffer position regardless of where
4370sensible buffer position corresponding to the first character in the 4426you clicked. For mouse clicks in window margins and fringes, this is
4371corresponding text row. 4427a sensible buffer position corresponding to the surrounding text.
4372 4428
4373+++ 4429+++
4374*** Function `mouse-set-point' now works for events outside text area. 4430*** `posn-point' now returns buffer position for non-text area events.
4375
4376+++
4377*** Mouse events now includes buffer position for all event types.
4378 4431
4379+++ 4432+++
4380*** `posn-point' now returns buffer position for non-text area events. 4433*** Function `mouse-set-point' now works for events outside text area.
4381 4434
4382+++ 4435+++
4383*** New function `posn-area' returns window area clicked on (nil means 4436*** New function `posn-area' returns window area clicked on (nil means
4384text area). 4437text area).
4385 4438
4386+++ 4439+++
4387*** Mouse events include actual glyph column and row for all event types. 4440*** Mouse events include actual glyph column and row for all event types
4441and all areas.
4388 4442
4389+++ 4443+++
4390*** New function `posn-actual-col-row' returns actual glyph coordinates. 4444*** New function `posn-actual-col-row' returns the actual glyph coordinates
4445of the mouse event position.
4391 4446
4392+++ 4447+++
4393*** Mouse events can now include image object in addition to string object. 4448*** Mouse events can now indicate an image object clicked on.
4394 4449
4395+++ 4450+++
4396*** Mouse events include relative x and y pixel coordinates relative to 4451*** Mouse events include relative X and Y pixel coordinates relative to
4397the top left corner of the object (image or character) clicked on. 4452the top left corner of the object (image or character) clicked on.
4398 4453
4399+++ 4454+++
@@ -4401,19 +4456,20 @@ the top left corner of the object (image or character) clicked on.
4401(image or character) clicked on. 4456(image or character) clicked on.
4402 4457
4403+++ 4458+++
4404*** New functions 'posn-object', 'posn-object-x-y', and 4459*** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'.
4405'posn-object-width-height' return the image or string object of a mouse 4460
4406click, the x and y pixel coordinates relative to the top left corner 4461These return the image or string object of a mouse click, the X and Y
4407of that object, and the total width and height of that object. 4462pixel coordinates relative to the top left corner of that object, and
4463the total width and height of that object.
4408 4464
4409** Text property and overlay changes: 4465** Text property and overlay changes:
4410 4466
4411+++ 4467+++
4412*** Arguments for remove-overlays are now optional, so that you can 4468*** Arguments for `remove-overlays' are now optional, so that you can
4413remove all overlays in the buffer by just calling (remove-overlays). 4469remove all overlays in the buffer with just (remove-overlays).
4414 4470
4415+++ 4471+++
4416*** New variable char-property-alias-alist. 4472*** New variable `char-property-alias-alist'.
4417 4473
4418This variable allows you to create alternative names for text 4474This variable allows you to create alternative names for text
4419properties. It works at the same level as `default-text-properties', 4475properties. It works at the same level as `default-text-properties',
@@ -4428,9 +4484,10 @@ whose cdr is the overlay in which the property was found, or nil if
4428it was found as a text property or not found at all. 4484it was found as a text property or not found at all.
4429 4485
4430+++ 4486+++
4431*** The new function remove-list-of-text-properties is almost the same 4487*** The new function `remove-list-of-text-properties'.
4432as `remove-text-properties'. The only difference is that it takes a 4488
4433list of property names as argument rather than a property list. 4489It is like `remove-text-properties' except that it takes a list of
4490property names as argument rather than a property list.
4434 4491
4435** Face changes 4492** Face changes
4436 4493
@@ -4443,12 +4500,12 @@ is now the preferred method for defining default faces in a way that
4443makes a good use of the capabilities of the display. 4500makes a good use of the capabilities of the display.
4444 4501
4445+++ 4502+++
4446*** New function display-supports-face-attributes-p can be used to test 4503*** New function `display-supports-face-attributes-p' can be used to test
4447whether a given set of face attributes is actually displayable. 4504whether a given set of face attributes is actually displayable.
4448 4505
4449A new predicate `supports' has also been added to the `defface' face 4506A new predicate `supports' has also been added to the `defface' face
4450specification language, which can be used to do this test for faces 4507specification language, which can be used to do this test for faces
4451defined with defface. 4508defined with `defface'.
4452 4509
4453--- 4510---
4454*** The special treatment of faces whose names are of the form `fg:COLOR' 4511*** The special treatment of faces whose names are of the form `fg:COLOR'
@@ -4476,10 +4533,11 @@ whether the given face displays differently from the default face or
4476not (previously it did only a very cursory check). 4533not (previously it did only a very cursory check).
4477 4534
4478+++ 4535+++
4479*** `face-attribute', `face-foreground', `face-background', and 4536*** `face-attribute', `face-foreground', `face-background', `face-stipple'.
4480`face-stipple' now accept a new optional argument, INHERIT, which 4537
4481controls how face inheritance is used when determining the value of a 4538These now accept a new optional argument, INHERIT, which controls how
4482face attribute. 4539face inheritance is used when determining the value of a face
4540attribute.
4483 4541
4484+++ 4542+++
4485*** New functions `face-attribute-relative-p' and `merge-face-attribute' 4543*** New functions `face-attribute-relative-p' and `merge-face-attribute'
@@ -4494,9 +4552,6 @@ releases of Emacs, the order was the opposite. This change was made
4494so that :inherit face lists operate identically to face lists in text 4552so that :inherit face lists operate identically to face lists in text
4495`face' properties. 4553`face' properties.
4496 4554
4497+++
4498*** New standard font-lock face `font-lock-preprocessor-face'.
4499
4500--- 4555---
4501*** `set-fontset-font', `fontset-info', `fontset-font' now operate on 4556*** `set-fontset-font', `fontset-info', `fontset-font' now operate on
4502the default fontset if the argument NAME is nil.. 4557the default fontset if the argument NAME is nil..
@@ -4514,11 +4569,11 @@ new variable `char-property-alias-alist'.
4514+++ 4569+++
4515*** font-lock can manage arbitrary text-properties beside `face'. 4570*** font-lock can manage arbitrary text-properties beside `face'.
4516 4571
4517*** the FACENAME returned in `font-lock-keywords' can be a list of the 4572**** the FACENAME returned in `font-lock-keywords' can be a list of the
4518form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other 4573form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other
4519properties than `face'. 4574properties than `face'.
4520 4575
4521*** `font-lock-extra-managed-props' can be set to make sure those 4576**** `font-lock-extra-managed-props' can be set to make sure those
4522extra properties are automatically cleaned up by font-lock. 4577extra properties are automatically cleaned up by font-lock.
4523 4578
4524--- 4579---
@@ -4550,8 +4605,12 @@ declaration will give the buffer XML or SGML mode, based on the new
4550var `magic-mode-alist'. 4605var `magic-mode-alist'.
4551 4606
4552+++ 4607+++
4553*** Major mode functions now run the new normal hook 4608*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
4554`after-change-major-mode-hook', at their very end, after the mode hooks. 4609
4610+++
4611*** All major mode functions should now run the new normal hook
4612`after-change-major-mode-hook', at their very end, after the mode
4613hooks. `run-mode-hooks' does this automatically.
4555 4614
4556--- 4615---
4557*** If a major mode function has a non-nil `no-clone-indirect' 4616*** If a major mode function has a non-nil `no-clone-indirect'
@@ -4581,7 +4640,7 @@ and simply passes them to `defcustom', if applicable.
4581+++ 4640+++
4582*** `minor-mode-list' now holds a list of minor mode commands. 4641*** `minor-mode-list' now holds a list of minor mode commands.
4583 4642
4584--- 4643+++
4585*** `define-global-minor-mode'. 4644*** `define-global-minor-mode'.
4586 4645
4587This is a new name for what was formerly called 4646This is a new name for what was formerly called
@@ -4591,9 +4650,10 @@ This is a new name for what was formerly called
4591 4650
4592+++ 4651+++
4593*** The new function `called-interactively-p' does what many people 4652*** The new function `called-interactively-p' does what many people
4594have mistakenly believed `interactive-p' did: it returns t if the 4653have mistakenly believed `interactive-p' to do: it returns t if the
4595calling function was called through `call-interactively'. This should 4654calling function was called through `call-interactively'.
4596only be used when you cannot solve the problem by adding a new 4655
4656Only use this when you cannot solve the problem by adding a new
4597INTERACTIVE argument to the command. 4657INTERACTIVE argument to the command.
4598 4658
4599+++ 4659+++
@@ -4630,41 +4690,6 @@ been renamed to `disabled-command-function'. The variable
4630*** `emacsserver' now runs `pre-command-hook' and `post-command-hook' 4690*** `emacsserver' now runs `pre-command-hook' and `post-command-hook'
4631when it receives a request from emacsclient. 4691when it receives a request from emacsclient.
4632 4692
4633** Minibuffer changes:
4634
4635+++
4636*** The functions all-completions and try-completion now accept lists
4637of strings as well as hash-tables additionally to alists, obarrays
4638and functions. Furthermore, the function `test-completion' is now
4639exported to Lisp. The keys in alists and hash tables can be either
4640strings or symbols, which are automatically converted with to strings.
4641
4642+++
4643*** The new macro `dynamic-completion-table' supports using functions
4644as a dynamic completion table.
4645
4646 (dynamic-completion-table FUN)
4647
4648FUN is called with one argument, the string for which completion is required,
4649and it should return an alist containing all the intended possible
4650completions. This alist can be a full list of possible completions so that FUN
4651can ignore the value of its argument. If completion is performed in the
4652minibuffer, FUN will be called in the buffer from which the minibuffer was
4653entered. `dynamic-completion-table' then computes the completion.
4654
4655+++
4656*** The new macro `lazy-completion-table' initializes a variable
4657as a lazy completion table.
4658
4659 (lazy-completion-table VAR FUN &rest ARGS)
4660
4661If the completion table VAR is used for the first time (e.g., by passing VAR
4662as an argument to `try-completion'), the function FUN is called with arguments
4663ARGS. FUN must return the completion table that will be stored in VAR. If
4664completion is requested in the minibuffer, FUN will be called in the buffer
4665from which the minibuffer was entered. The return value of
4666`lazy-completion-table' must be used to initialize the value of VAR.
4667
4668** Lisp file loading changes: 4693** Lisp file loading changes:
4669 4694
4670+++ 4695+++
@@ -4677,8 +4702,8 @@ current file redefined it).
4677defined. For a variable, it records just the variable name. 4702defined. For a variable, it records just the variable name.
4678 4703
4679+++ 4704+++
4680*** The function symbol-file can now search specifically for function or 4705*** The function `symbol-file' can now search specifically for function,
4681variable definitions. 4706variable or face definitions.
4682 4707
4683+++ 4708+++
4684*** `provide' and `featurep' now accept an optional second argument 4709*** `provide' and `featurep' now accept an optional second argument
@@ -4693,10 +4718,11 @@ than 3 levels of nesting.
4693+++ 4718+++
4694** Byte compiler changes: 4719** Byte compiler changes:
4695 4720
4696*** The byte-compiler now displays the actual line and character 4721*** The byte compiler now displays the actual line and character
4697position of errors, where possible. Additionally, the form of its 4722position of errors, where possible. Additionally, the form of its
4698warning and error messages have been brought more in line with the 4723warning and error messages have been brought into line with GNU standards
4699output of other GNU tools. 4724for these. As a result, you can use next-error and friends on the
4725compilation output buffer.
4700 4726
4701*** The new macro `with-no-warnings' suppresses all compiler warnings 4727*** The new macro `with-no-warnings' suppresses all compiler warnings
4702inside its body. In terms of execution, it is equivalent to `progn'. 4728inside its body. In terms of execution, it is equivalent to `progn'.
@@ -4724,7 +4750,7 @@ efficient. Since byte code from recent versions of XEmacs won't
4724generally run in Emacs and vice versa, this optimization doesn't lose 4750generally run in Emacs and vice versa, this optimization doesn't lose
4725you anything. 4751you anything.
4726 4752
4727*** The local variable `no-byte-compile' in elisp files is now obeyed. 4753*** The local variable `no-byte-compile' in Lisp files is now obeyed.
4728 4754
4729--- 4755---
4730*** When a Lisp file uses CL functions at run-time, compiling the file 4756*** When a Lisp file uses CL functions at run-time, compiling the file
@@ -4772,7 +4798,7 @@ the time it takes to convert the format.
4772wasteful. 4798wasteful.
4773 4799
4774--- 4800---
4775*** set-buffer-file-coding-system now takes an additional argument, 4801*** `set-buffer-file-coding-system' now takes an additional argument,
4776NOMODIFY. If it is non-nil, it means don't mark the buffer modified. 4802NOMODIFY. If it is non-nil, it means don't mark the buffer modified.
4777 4803
4778+++ 4804+++
@@ -4799,7 +4825,7 @@ it is read from a file without decoding.
4799hash tables defined by the Lisp function `define-translation-hash-table'. 4825hash tables defined by the Lisp function `define-translation-hash-table'.
4800 4826
4801--- 4827---
4802*** New function quail-find-key returns a list of keys to type in the 4828*** New function `quail-find-key' returns a list of keys to type in the
4803current input method to input a character. 4829current input method to input a character.
4804 4830
4805** Mode line changes: 4831** Mode line changes:
@@ -4807,7 +4833,7 @@ current input method to input a character.
4807+++ 4833+++
4808*** New function `format-mode-line'. 4834*** New function `format-mode-line'.
4809 4835
4810This returns the mode-line or header-line of the selected (or a 4836This returns the mode line or header line of the selected (or a
4811specified) window as a string with or without text properties. 4837specified) window as a string with or without text properties.
4812 4838
4813+++ 4839+++
@@ -4869,13 +4895,13 @@ debugging output on the stderr file handle to a file.
4869+++ 4895+++
4870*** A number of hooks have been renamed to better follow the conventions: 4896*** A number of hooks have been renamed to better follow the conventions:
4871 4897
4872find-file-hooks to find-file-hook, 4898`find-file-hooks' to `find-file-hook',
4873find-file-not-found-hooks to find-file-not-found-functions, 4899`find-file-not-found-hooks' to `find-file-not-found-functions',
4874write-file-hooks to write-file-functions, 4900`write-file-hooks' to `write-file-functions',
4875write-contents-hooks to write-contents-functions, 4901`write-contents-hooks' to `write-contents-functions',
4876x-lost-selection-hooks to x-lost-selection-functions, 4902`x-lost-selection-hooks' to `x-lost-selection-functions',
4877x-sent-selection-hooks to x-sent-selection-functions, 4903`x-sent-selection-hooks' to `x-sent-selection-functions',
4878delete-frame-hook to delete-frame-functions. 4904`delete-frame-hook' to `delete-frame-functions'.
4879 4905
4880In each case the old name remains as an alias for the moment. 4906In each case the old name remains as an alias for the moment.
4881 4907
@@ -4887,6 +4913,87 @@ Use the LOCAL arg of `add-hook'.
4887--- 4913---
4888*** New function `x-send-client-message' sends a client message when 4914*** New function `x-send-client-message' sends a client message when
4889running under X. 4915running under X.
4916
4917** GC changes:
4918
4919+++
4920*** New variables `gc-elapsed' and `gcs-done' provide extra information
4921on garbage collection.
4922
4923+++
4924*** The normal hook `post-gc-hook' is run at the end of garbage collection.
4925
4926The hook is run with GC inhibited, so use it with care.
4927
4928* New Packages for Lisp Programming in Emacs 22.1
4929
4930+++
4931** The new library button.el implements simple and fast `clickable
4932buttons' in emacs buffers. Buttons are much lighter-weight than the
4933`widgets' implemented by widget.el, and can be used by lisp code that
4934doesn't require the full power of widgets. Emacs uses buttons for
4935such things as help and apropos buffers.
4936
4937---
4938** The new library tree-widget.el provides a widget to display a set
4939of hierarchical data as an outline. For example, the tree-widget is
4940well suited to display a hierarchy of directories and files.
4941
4942** The new library bindat.el provides functions to unpack and pack
4943binary data structures, such as network packets, to and from Lisp
4944data structures.
4945
4946---
4947** master-mode.el implements a minor mode for scrolling a slave
4948buffer without leaving your current buffer, the master buffer.
4949
4950It can be used by sql.el, for example: the SQL buffer is the master
4951and its SQLi buffer is the slave. This allows you to scroll the SQLi
4952buffer containing the output from the SQL buffer containing the
4953commands.
4954
4955This is how to use sql.el and master.el together: the variable
4956sql-buffer contains the slave buffer. It is a local variable in the
4957SQL buffer.
4958
4959(add-hook 'sql-mode-hook
4960 (function (lambda ()
4961 (master-mode t)
4962 (master-set-slave sql-buffer))))
4963(add-hook 'sql-set-sqli-hook
4964 (function (lambda ()
4965 (master-set-slave sql-buffer))))
4966
4967+++
4968** The new library benchmark.el does timing measurements on Lisp code.
4969
4970This includes measuring garbage collection time.
4971
4972+++
4973** The new library testcover.el does test coverage checking.
4974
4975This is so you can tell whether you've tested all paths in your Lisp
4976code. It works with edebug.
4977
4978The function `testcover-start' instruments all functions in a given
4979file. Then test your code. The function `testcover-mark-all' adds
4980overlay "splotches" to the Lisp file's buffer to show where coverage
4981is lacking. The command `testcover-next-mark' (bind it to a key!)
4982will move point forward to the next spot that has a splotch.
4983
4984Normally, a red splotch indicates the form was never completely
4985evaluated; a brown splotch means it always evaluated to the same
4986value. The red splotches are skipped for forms that can't possibly
4987complete their evaluation, such as `error'. The brown splotches are
4988skipped for forms that are expected to always evaluate to the same
4989value, such as (setq x 14).
4990
4991For difficult cases, you can add do-nothing macros to your code to
4992help out the test coverage tool. The macro `noreturn' suppresses a
4993red splotch. It is an error if the argument to `noreturn' does
4994return. The macro `1value' suppresses a brown splotch for its argument.
4995This macro is a no-op except during test-coverage -- then it signals
4996an error if the argument actually returns differing values.
4890 4997
4891* Installation changes in Emacs 21.3 4998* Installation changes in Emacs 21.3
4892 4999
@@ -10715,8 +10822,8 @@ can make FCC copies more closely resemble copies that recipients get
10715 10822
10716**** you can specify an arbitrary function for actually transmitting 10823**** you can specify an arbitrary function for actually transmitting
10717the message; included in feedmail are interfaces for /bin/[r]mail, 10824the message; included in feedmail are interfaces for /bin/[r]mail,
10718/usr/lib/sendmail, and elisp smtpmail; it's easy to write a new 10825/usr/lib/sendmail, and Emacs Lisp smtpmail; it's easy to write a new
10719function for something else (10-20 lines of elisp) 10826function for something else (10-20 lines of Lisp code).
10720 10827
10721** Dired changes 10828** Dired changes
10722 10829
diff --git a/etc/TODO b/etc/TODO
index d905a50cf4a..96138c606bb 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -9,9 +9,6 @@ to the FSF.
9 9
10* Small but important fixes needed in existing features: 10* Small but important fixes needed in existing features:
11 11
12** Convert everything that uses post-command-idle-hook
13 to use idle timers instead.
14
15** Fix the kill/yank treatment of invisible text. At the moment, 12** Fix the kill/yank treatment of invisible text. At the moment,
16 invisible text is placed in the kill-ring, so that the contents of 13 invisible text is placed in the kill-ring, so that the contents of
17 the ring may not correspond to the text as displayed to the user. It 14 the ring may not correspond to the text as displayed to the user. It
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 513bc8f21ba..1370f05a9d6 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
12005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * make-docfile.c (DIRECTORY_SEP): New macro.
4 (IS_DIRECTORY_SEP): Use it.
5
12005-03-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 62005-03-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 7
3 * emacsclient.c: Avoid expansion of getcwd when defined as a macro. 8 * emacsclient.c: Avoid expansion of getcwd when defined as a macro.
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index e502061b759..dafd8f8914c 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -60,8 +60,16 @@ Boston, MA 02111-1307, USA. */
60#define READ_BINARY "r" 60#define READ_BINARY "r"
61#endif /* not DOS_NT */ 61#endif /* not DOS_NT */
62 62
63#ifndef DIRECTORY_SEP
64#ifdef MAC_OS8
65#define DIRECTORY_SEP ':'
66#else /* not MAC_OS8 */
67#define DIRECTORY_SEP '/'
68#endif /* not MAC_OS8 */
69#endif
70
63#ifndef IS_DIRECTORY_SEP 71#ifndef IS_DIRECTORY_SEP
64#define IS_DIRECTORY_SEP(_c_) ((_c_) == '/') 72#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
65#endif 73#endif
66 74
67int scan_file (); 75int scan_file ();
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 766432edf98..aaaf1be4fa8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,632 @@
12005-05-20 Juanma Barranquero <lekktu@gmail.com>
2
3 * subr.el (send-string, send-region):
4 Remove obsolescence declaration.
5 (window-dot, set-window-dot, read-input, show-buffer)
6 (eval-current-buffer, string-to-int):
7 Add release number to obsolescence declarations.
8
92005-05-19 Kim F. Storm <storm@cua.dk>
10
11 * ido.el (ido-magic-forward-char): Enter ido-find-file at end of input.
12 (ido-magic-backward-char): Enter ido-switch-buffer at start of input.
13
142005-05-20 Matt Hodges <MPHodges@member.fsf.org>
15
16 * faces.el (list-faces-display): Make back button respect optional
17 regexp arg.
18
192005-05-19 Juanma Barranquero <lekktu@gmail.com>
20
21 * calculator.el (calculator-radix-grouping-mode)
22 (calculator-radix-grouping-digits, calculator-displayer)
23 (calculator-radix-grouping-separator, calculator-copy-displayer):
24 * dabbrev.el (dabbrev-search-these-buffers-only):
25 * diff-mode.el (diff-jump-to-old-file, diff-update-on-the-fly)
26 (diff-advance-after-apply-hunk, diff-mode-hook)
27 (diff-minor-mode-prefix):
28 * imenu.el (imenu-use-popup-menu):
29 * jit-lock.el (jit-lock-context-time):
30 * newcomment.el (comment-fill-column, comment-column)
31 (comment-style, comment-padding, comment-multi-line)
32 (comment-empty-lines, comment-auto-fill-only-comments):
33 * reveal.el (reveal-around-mark):
34 * uniquify.el (uniquify-buffer-name-style)
35 (uniquify-after-kill-buffer-p)
36 (uniquify-ask-about-buffer-names-p, uniquify-ignore-buffers-re)
37 (uniquify-min-dir-content, uniquify-separator)
38 (uniquify-trailing-separator-p, uniquify-strip-common-suffix):
39 * w32-vars.el (w32-fixed-font-alist):
40 * emacs-lisp/testcover.el (testcover-potentially-1value-functions):
41 * obsolete/rsz-mini.el (resize-minibuffer-frame-max-height):
42 * progmodes/antlr-mode.el (antlr-font-lock-maximum-decoration):
43 * progmodes/perl-mode.el (perl-indent-level)
44 (perl-continued-statement-offset, perl-continued-brace-offset)
45 (perl-brace-offset, perl-brace-imaginary-offset)
46 (perl-label-offset, perl-indent-continued-arguments)
47 (perl-tab-always-indent, perl-tab-to-comment, perl-nochange):
48 * progmodes/tcl.el (tcl-indent-level)
49 (tcl-continued-indent-level, tcl-auto-newline)
50 (tcl-tab-always-indent, tcl-electric-hash-style)
51 (tcl-help-directory-list, tcl-use-smart-word-finder)
52 (tcl-application, tcl-command-switches, tcl-prompt-regexp)
53 (inferior-tcl-source-command):
54 * textmodes/fill.el (enable-kinsoku):
55 * textmodes/reftex-vars.el (reftex-index-phrases-wrap-long-lines):
56 * textmodes/table.el (table-yank-handler):
57 Specify missing group (and type, if simple) in defcustom.
58
592005-05-19 Luc Teirlinck <teirllm@auburn.edu>
60
61 * progmodes/compile.el (compilation-finish-function): Fix defvar.
62
632005-05-19 Richard M. Stallman <rms@gnu.org>
64
65 * progmodes/make-mode.el (makefile-mode): Use run-mode-hooks.
66
67 * subr.el (event-basic-type): Don't get an error.
68 (left-fringe-p): Function deleted.
69
70 * buff-menu.el (Buffer-menu-buffer-face): In group Buffer-menu.
71
72 * dired-aux.el (dired-copy-file-recursive): Handle symlinks
73 in recursive copy.
74
75 * frame.el (show-trailing-whitespace): In group `whitespace-faces'.
76
77 * emacs-lisp/byte-run.el (eval-when-compile): Doc fix.
78
79 * emacs-lisp/bytecomp.el (byte-compile-file-form-custom-declare-variable):
80 Call byte-compile-nogroup-warn if appropriate.
81
82 * progmodes/compile.el (compilation-finish-function): Mark obsolete.
83 (compilation-set-window): Don't call left-fringe-p; do it directly.
84
852005-05-19 Jay Belanger <belanger@truman.edu>
86
87 * calc/calc-graph.el (calc-graph-format-data): Make sure
88 var-PlotRejects is bound before trying to check its value.
89
902005-05-19 Carsten Dominik <dominik@science.uva.nl>
91
92 * textmodes/reftex.el (reftex-isearch-minor-mode): Moved the
93 definition of this variable from reftex-global.el to reftex.el,
94 because it is needed in the menu.
95
962005-05-19 Lute Kamstra <lute@gnu.org>
97
98 * emacs-lisp/copyright.el (copyright-fix-years): Make sure all
99 years are fixed. Don't insert a space after a dash.
100
1012005-05-19 Kim F. Storm <storm@cua.dk>
102
103 * emulation/crisp.el (crisp-home, crisp-end): Put CUA property.
104
1052005-05-19 Daniel Pfeiffer <occitan@esperanto.org>
106
107 * font-lock.el (lisp-font-lock-keywords-2): Do \\) only in
108 strings, because (eq ... ?\\) is fairly frequent.
109
110 * progmodes/make-mode.el (makefile-add-this-line-targets):
111 Simplify and integrate into `makefile-pickup-targets'.
112 (makefile-add-this-line-macro): Simplify and integrate into
113 `makefile-pickup-macros.
114 (makefile-pickup-filenames-as-targets): Simplify.
115 (makefile-previous-dependency, makefile-match-dependency): Don't
116 stumble over `::'.
117
1182005-05-19 Nick Roberts <nickrob@snap.net.nz>
119
120 * subr.el (post-command-idle-hook, post-command-idle-delay):
121 Remove obsoletion of post-command-idle-hook and
122 post-command-idle-delay.
123
124 * faces.el (list-faces-display): Provide button when describe-face
125 is called to take user back to the list of faces.
126
127 * help-fns.el (describe-variable): Remove hyperlinks in a
128 variable's value as these are quite frequently inappropriate.
129
130 * follow.el (follow-submit-feedback, follow-mode): Remove
131 references to post-command-idle-hook.
132
1332005-05-18 Daniel Pfeiffer <occitan@esperanto.org>
134
135 * progmodes/make-mode.el (makefile-previous-dependency)
136 (makefile-match-dependency): Check for := (and in bsd mode also
137 !=) to give a better result, even when font-lock is not on.
138
1392005-05-18 Jay Belanger <belanger@truman.edu>
140
141 * calc/calc-help.el (calc-s-prefix-help): Add
142 `calc-copy-special-constant' to help string.
143
1442005-05-18 Luc Teirlinck <teirllm@auburn.edu>
145
146 * emacs-lisp/eldoc.el (eldoc-mode): Doc fix.
147
1482005-05-18 Jay Belanger <belanger@truman.edu>
149
150 * calc/calc-poly.el (math-factor-poly-coefs): Make sure the terms
151 in linear factors are in proper order.
152
1532005-05-18 Carsten Dominik <dominik@science.uva.nl>
154
155 * textmodes/reftex-vars.el (reftex-cite-format-builtin): Support
156 for jurabib.
157
158 * textmodes/reftex.el (featurep): Define aliases for overlay
159 commands, for XEmacs compatibility, and use these aliases in
160 overlay initializations.
161 (reftex-highlight): Use `reftex-move-overlay'.
162 (reftex-unhighlight): Use `reftex-delete-overlay'.
163 (reftex-uniq): Funktion removed. Use `reftex-uniquify' instead.
164 (reftex-access-search-path): Use `reftex-uniquify' instead of
165 `reftex-uniq'
166
167 * textmodes/reftex-sel.el (reftex-select-unmark): Overlay
168 `before-string' property modification enables for Emacs as well.
169 (reftex-select-item): Use `reftex-delete-overlay'.
170 (reftex-select-mark): Use `reftex-make-overlay' and
171 `reftex-overlay-put'.
172 (reftex-select-unmark): Use `reftex-delete-overlay' and
173 `reftex-overlay-put'.
174
1752005-05-18 Lute Kamstra <lute@gnu.org>
176
177 * emacs-lisp/lisp.el (check-parens): Fix docstring.
178
1792005-05-18 Juanma Barranquero <lekktu@gmail.com>
180
181 * add-log.el (add-change-log-entry):
182 * array.el (array-make-template, array-reconfigure-rows)
183 (array-init-max-row, array-init-max-column)
184 (array-init-columns-per-line, array-init-field-width):
185 * replace.el (replace-match-maybe-edit, perform-replace):
186 * textmodes/spell.el (spell-region):
187 Replace `read-input' by `read-string'.
188
189 * forms.el (forms-mode):
190 * finder.el (finder-compile-keywords):
191 * shadowfile.el (shadow-read-files):
192 Replace `eval-current-buffer' by `eval-buffer'.
193
194 * terminal.el (te-pass-through):
195 * net/ange-ftp.el (ange-ftp-process-filter, ange-ftp-gwp-filter)
196 (ange-ftp-raw-send-cmd):
197 * net/telnet.el (telnet-interrupt-subjob, telnet-c-z)
198 (send-process-next-char, telnet-initial-filter, telnet):
199 Replace `send-string' by `process-send-string'.
200
201 * progmodes/prolog.el (inferior-prolog-mode): Doc fix.
202 (prolog-consult-region): Replace `send-string' by
203 `process-send-string'; replace `send-region' by
204 `process-send-region'.
205
206 * progmodes/delphi.el (delphi-log-msg):
207 Replace `set-window-dot' by `set-window-point'.
208
209 * subr.el (window-dot, set-window-dot, read-input, send-string)
210 (send-region, show-buffer, eval-current-buffer):
211 Make really obsolete, as the comment says.
212
2132005-05-17 Kim F. Storm <storm@cua.dk>
214
215 * emulation/cua-base.el (cua-use-hyper-key): Doc fix.
216 (cua--init-keymaps): Bind C-return instead of S-return to set
217 rectangle mark.
218
219 * emulation/cua-rect.el (cua--init-rectangles): Bind C-return
220 instead of S-return to toggle/clear rectangle mark.
221
2222005-05-17 Daniel Pfeiffer <occitan@esperanto.org>
223
224 * progmodes/make-mode.el (makefile-dependency-skip): New variable.
225 (makefile-macroassign-regex, makefile-make-font-lock-keywords):
226 Also fontify plain strings assigned to variables, mostly so that a
227 colon has a face and is thus not taken as a dependency separator.
228 (makefile-previous-dependency): Inline the new matcher, because it
229 is too complex to work in both directions.
230 (makefile-match-dependency): Eliminate `backward' arg (see above).
231 Completely reimplemented so as to not sometimes go into an endless
232 loop. It should also be more efficient, because first it only
233 searches for `:', instead of applying the very complex regexp.
234 (makefile-mode): Cancel `font-lock-support-mode', because blocks
235 to be fontified in one piece can be too long for JIT. Makefiles
236 are never *that* big.
237
2382005-05-17 Reiner Steib <Reiner.Steib@gmx.de>
239
240 * dired.el (dired-mode): Simplify.
241
2422005-05-17 Lute Kamstra <lute@gnu.org>
243
244 * emacs-lisp/easy-mmode.el (define-minor-mode): Don't generate a
245 defcustom for the mode hook variable.
246
247 * emacs-lisp/authors.el (authors): Do parse the ChangeLogs of the
248 Emacs Lisp Reference Manual.
249
2502005-05-17 Juanma Barranquero <lekktu@gmail.com>
251
252 * emacs-lisp/cl.el (eql, floatp-safe, plusp, minusp, oddp)
253 (evenp, list*):
254 * emacs-lisp/cl-macs.el (macrolet, symbol-macrolet):
255 * emacs-lisp/cl-seq.el (subsetp, tree-equal): Doc fixes.
256
257 * net/tramp-smb.el (tramp-smb-open-connection):
258 Pass `tramp-chunksize' as fifth (required) argument.
259
2602005-05-16 Daniel Pfeiffer <occitan@esperanto.org>
261
262 * font-lock.el (lisp-font-lock-keywords-1): Set
263 `font-lock-negation-char-face' for [^...] char group.
264 (lisp-font-lock-keywords-2): Highlight regexp's \\( \\| \\).
265
266 * progmodes/make-mode.el (makefile-dependency-regex): Turn it into
267 a var, and refine it to mask one more level of nested vars.
268 (makefile-rule-action-regex): Turn it into a var, and refine it so
269 it recognizes backslashed continuation lines as belonging to the
270 same command.
271 (makefile-macroassign-regex): Refine it so it recognizes
272 backslashed continuation lines as belonging to the same command.
273 (makefile-var-use-regex): Don't look at the next char, because it
274 might be the same one to be skipped by the initial [^$], leading
275 to an overlooked variable use.
276 (makefile-make-font-lock-keywords): Remove two parameters, which
277 are now variables that some of the modes set locally. Handle
278 dependency and rule action matching through functions, because
279 regexps alone match too often. Dependency matching now comes
280 last, so it can check, whether a colon already matched something
281 else.
282 (makefile-mode): Inform that font-lock improves makefile parsing
283 capabilities.
284 (makefile-match-dependency, makefile-match-action): New functions.
285
2862005-05-16 Juanma Barranquero <lekktu@gmail.com>
287
288 * emacs-lisp/cl-extra.el (equalp): Doc fix.
289
290 * align.el (align-regexp):
291 * ansi-color.el (ansi-color-get-face):
292 * array.el (array-reconfigure-rows, array-init-max-row)
293 (array-init-max-column, array-init-columns-per-line)
294 (array-init-field-width):
295 * dired-aux.el (dired-trample-file-versions):
296 * dired-x.el (dired-mark-sexp):
297 * ediff-diff.el (ediff-extract-diffs, ediff-get-diff3-group):
298 * edmacro.el (edmacro-finish-edit, edmacro-parse-keys):
299 * emerge.el (emerge-extract-diffs, emerge-get-diff3-group):
300 * faces.el (face-read-integer):
301 * files.el (backup-extract-version, insert-directory):
302 * hexl.el (hexl-insert-decimal-char):
303 * server.el (server-process-filter):
304 * shell.el (shell-extract-num):
305 * startup.el (command-line-1):
306 * term.el (term-command-hook):
307 * time-stamp.el (time-stamp, time-stamp-string-preprocess)
308 (time-stamp-do-number):
309 * time.el (display-time-update):
310 * timezone.el (timezone-parse-date, timezone-zone-to-minute)
311 (timezone-fix-time):
312 * vms-patch.el (vms-suspend-resume-hook):
313 * calendar/appt.el (appt-convert-time):
314 * calendar/cal-bahai.el (mark-bahai-diary-entries):
315 * calendar/cal-hebrew.el (mark-hebrew-diary-entries):
316 * calendar/cal-islam.el (mark-islamic-diary-entries):
317 * calendar/calendar.el (calendar-cursor-to-date)
318 (calendar-star-date):
319 * calendar/diary-lib.el (diary-attrtype-convert)
320 (mark-diary-entries, diary-entry-time):
321 * calendar/solar.el (solar-get-number):
322 * emacs-lisp/lisp-mnt.el (lm-last-modified-date):
323 * emacs-lisp/re-builder.el (reb-display-subexp):
324 * emulation/edt.el (edt-set-scroll-margins):
325 * emulation/tpu-extras.el (tpu-set-scroll-margins):
326 * emulation/vip.el (vip-get-ex-token, vip-get-ex-buffer)
327 (vip-get-ex-count):
328 * emulation/viper-ex.el (viper-get-ex-token)
329 (viper-get-ex-buffer, viper-get-ex-count, ex-next):
330 * international/fontset.el (fontset-plain-name):
331 * mail/feedmail.el (feedmail-look-at-queue-directory):
332 * mail/mailalias.el (mail-get-names):
333 * mail/rmail.el (rmail-convert-to-babyl-format):
334 * mail/rmailsum.el (rmail-make-basic-summary-line)
335 (rmail-summary-next-same-subject, rmail-summary-rmail-update)
336 (rmail-summary-goto-msg):
337 * mail/smtpmail.el (smtpmail-read-response):
338 * net/ange-ftp.el (ange-ftp-guess-hash-mark-size)
339 (ange-ftp-vms-add-file-entry):
340 * play/gametree.el (gametree-looking-at-ply)
341 (gametree-current-branch-score):
342 * progmodes/ada-xref.el (ada-prj-find-prj-file)
343 (ada-xref-find-in-modified-ali, ada-find-in-src-path):
344 * progmodes/cperl-mode.el (condition-case):
345 * progmodes/ebrowse.el (ebrowse-set-tree-indentation)
346 (ebrowse-set-member-buffer-column-width)
347 (ebrowse-select-1st-to-9nth):
348 * progmodes/etags.el (etags-snarf-tag):
349 * progmodes/flymake.el (flymake-parse-line):
350 * progmodes/idlw-shell.el (idlwave-shell-parse-line)
351 (idlwave-shell-filter-bp, idlwave-shell-goto-next-error)
352 (idlwave-shell-menu-def):
353 * progmodes/ps-mode.el (ps-run-goto-error):
354 * progmodes/vhdl-mode.el (vhdl-read-offset, vhdl-load-cache)
355 (vhdl-speedbar-contract-level):
356 * term/mac-win.el (x-handle-numeric-switch):
357 * term/sun-mouse.el (sun-get-frame-data):
358 * term/w32-win.el (x-handle-numeric-switch):
359 * term/x-win.el (x-handle-numeric-switch):
360 * textmodes/ispell.el (ispell-parse-output):
361 * textmodes/nroff-mode.el (nroff-outline-level):
362 * textmodes/reftex-cite.el (reftex-bib-sort-year)
363 (reftex-bib-sort-year-reverse, reftex-format-citation):
364 * textmodes/reftex-parse.el (reftex-init-section-numbers)
365 (reftex-section-number):
366 * textmodes/texinfmt.el (texinfo-paragraphindent): Replace
367 `string-to-int' by `string-to-number'.
368
369 * international/latexenc.el: Add page marker to force the "Local
370 Variables:" string out of the last page.
371
3722005-05-16 Nick Roberts <nickrob@snap.net.nz>
373
374 * progmodes/gud.el (gud-tooltip-mode): Add gud prefix to
375 tooltip-change-major-mode.
376 (gud-tooltip-print-command): Remove case where gud-minor-mode
377 is gdb ("--fullname").
378 (gud-tooltip-tips): Turn GUD tooltips off for this case and
379 explain to user.
380
3812005-05-16 Jay Belanger <belanger@truman.edu>
382
383 * calc/calc-store.el (calc-copy-special-constant): New function.
384
385 * calc/calc-ext.el (calc-init-extensions): Add binding for
386 `calc-copy-special-constant'.
387
388 * calc/calc-prog.el (calc-edit-format-macro-buffer): Add a case
389 for the `calc-copy-special-constant' command.
390
3912005-05-16 Nick Roberts <nickrob@snap.net.nz>
392
393 * subr.el (left-fringe-p): New function.
394
395 * progmodes/compile.el (compilation-setup): Set local value of
396 overlay-arrow-string to "" always.
397 (compilation-set-window): Left fringe then don't scroll. No left
398 fringe then no arrow and scroll message to top.
399 (compilation-context-lines): Adjust doc string accordingly.
400
4012005-05-16 Kim F. Storm <storm@cua.dk>
402
403 * ido.el (ido-magic-forward-char, ido-magic-backward-char)
404 (ido-magic-delete-char): New commands for C-f, C-b, C-d.
405 (ido-wide-find-dir-or-delete-dir): New command for M-d.
406 (ido-define-mode-map): Bind them. Add C-x prefix to fallback commands.
407 (ido-read-file-name): Handle commands with ido property value
408 equal to find-file as reading a file name, to allow C-d to enter dired.
409 (ibuffer-find-file): Add ido property with value find-file.
410
4112005-05-15 Kim F. Storm <storm@cua.dk>
412
413 * subr.el (open-network-stream-nowait): Remove.
414 (open-network-stream-server): Remove.
415
4162005-05-15 Richard M. Stallman <rms@gnu.org>
417
418 * faces.el (describe-face): Output a definition link button.
419
420 * help-mode.el (help-face-def): New button type.
421
422 * emacs-lisp/copyright.el (copyright-fix-years):
423 Match properly if the first year is 2-digit.
424 Don't mess up the whitespace after the years by filling.
425
426 * dired-aux.el (dired-mark-confirm):
427 Pass t to dired-get-marked-files for DISTINGUISH-ONE-MARKED.
428
429 * dired.el (dired-map-over-marks): New arg DISTINGUISH-ONE-MARKED.
430 (dired-get-marked-files): New arg DISTINGUISH-ONE-MARKED.
431 (dired-mark-pop-up): Handle FILES = (t FILE) specially.
432
433 * emacs-lisp/lisp-mode.el (lisp-mode-variables):
434 Set font-lock-comment-start-skip.
435
436 * font-lock.el (font-lock-comment-start-skip): New variable.
437 (font-lock-comment-end-skip): New variable.
438 (font-lock-fontify-syntactically-region): Use them if non-nil.
439
4402005-05-15 Jay Belanger <belanger@truman.edu>
441
442 * calc/calc-store.el (calc-store-value): Return a string rather
443 than display it as a message.
444 Use calc-var-name for variable name.
445 (calc-store-into): Add the result of calc-store-value to message.
446 (calc-copy-variable): Add a message.
447 (calc-store-exchange): Improve error messages.
448 (calc-store-binary, calc-store-map): Don't reset the values of
449 special constants.
450
4512005-05-14 Luc Teirlinck <teirllm@auburn.edu>
452
453 * emacs-lisp/derived.el (define-derived-mode): Add link to Elisp
454 manual to docstring.
455
456 * files.el (hack-local-variables-confirm): Add STRING argument.
457 Make the function handle non file visiting buffers correctly.
458 (hack-local-variables-prop-line, hack-local-variables)
459 (hack-one-local-variable): Use STRING arg of
460 `hack-local-variables-confirm'.
461
4622005-05-14 Michael Albinus <michael.albinus@gmx.de>
463
464 Sync with Tramp 2.0.49.
465
466 * tramp.el (tramp-handle-dired-call-process)
467 (tramp-handle-insert-directory):`insert-buffer' cannot be used
468 because the contents of the Tramp buffer is changed before
469 insertion (`expand-file' and alike).
470 (tramp-handle-insert-directory): If `localname' has an empty
471 nondirectory name, it must not be quoted.
472 (tramp-pre-connection): Add parameter CHUNKSIZE. Make local
473 variable `tramp-chunksize'. Change callees.
474 (tramp-open-connection-setup-interactive-shell): Check remote host
475 for buggy `send-process-string' implementation. Set
476 `tramp-chunksize' if found. Reported by Michael Kifer
477 <kifer@cs.sunysb.edu> (and a lot of other people all the years).
478 (tramp-handle-shell-command): `insert-buffer' cannot be used
479 because the contents of the Tramp buffer is changed before
480 insertion (`expand-file' and alike). Reported by Fr,Ai(Bd,Ai(Bric Bothamy
481 <frederic.bothamy@free.fr>.
482 (tramp-set-auto-save): Actions should be done for Tramp file name
483 handler only. Ange-FTP has its own auto-save mechanism. Reported
484 by Richard G. Bielawski <Richard.G.Bielawski@wellsfargo.com>.
485 (tramp-set-auto-save-file-modes): Set file modes of
486 `buffer-auto-save-file-name' to ?\600 as fallback solution.
487 Reported by Ferenc Wagner <wferi@tba.elte.hu>.
488 (tramp-bug): Remove obsolete variable.
489 (tramp-append-tramp-buffers): Rewrite partly. More suitable check
490 for presence of `mml-mode'. Make it running for older Emacsen as
491 well.
492
4932005-05-14 John Paul Wallington <jpw@pobox.com>
494
495 * ibuf-ext.el (define-ibuffer-filter filename):
496 If `dired-directory' is a list, use its car.
497
4982005-05-14 Daniel Brockman <daniel@brockman.se> (tiny change)
499
500 * ibuffer.el (define-ibuffer-column filename):
501 If `dired-directory' is a list, use its car.
502
5032005-05-14 Richard M. Stallman <rms@gnu.org>
504
505 * subr.el (symbol-file): Doc fix.
506
507 * emacs-lisp/bytecomp.el (byte-compile-nogroup-warn): New function.
508 (byte-compile-form): Call byte-compile-nogroup-warn.
509 (byte-compile-warning-types): Doc fix.
510
511 * eshell/esh-mode.el (eshell-find-tag): Use with-no-warnings.
512
513 * progmodes/cc-engine.el (c-literal-faces):
514 Add font-lock-comment-delimiter-face.
515
516 * net/net-utils.el (dig): Use with-no-warnings.
517
518 * mail/supercite.el (sc-cite-frame-alist, sc-uncite-frame-alist)
519 (sc-recite-frame-alist, sc-default-cite-frame)
520 (sc-default-uncite-frame, sc-default-recite-frame)
521 (sc-attrib-selection-list, sc-rewrite-header-list):
522 Mark as risky-local-variable.
523
524 * international/ogonek.el (ogonek-jak, ogonek-how):
525 Don't use beginning-of-buffer.
526
527 * emacs-lisp/eldoc.el (eldoc-documentation-function): Add autoload.
528
529 * calendar/solar.el (solar-data-list): Move definition up.
530
531 * dnd.el (dnd-protocol-alist): Add autoload.
532
533 * progmodes/sh-script.el: Many doc usage fixes.
534 (sh-indent-after-do): Change default to match common styles.
535
5362005-05-13 Luc Teirlinck <teirllm@auburn.edu>
537
538 * files.el (interpreter-mode-alist)
539 (auto-mode-interpreter-regexp): Doc fixes.
540
5412005-05-13 Matt Hodges <MPHodges@member.fsf.org>
542
543 * tmm.el (tmm-get-keymap): Include only active menus and menu
544 items.
545
546 * emacs-lisp/easymenu.el (easy-menu-define): Doc fixes.
547
5482005-05-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
549
550 * dired.el (dired-mode): make-variable-buffer-local =>
551 make-local-variable
552
5532005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
554
555 * term/mac-win.el (mac-select-convert-to-string): Try coding
556 systems in mac-script-code-coding-systems if specified one cannot
557 encode string for `com.apple.traditional-mac-plain-text'.
558
5592005-05-13 Daniel Pfeiffer <occitan@esperanto.org>
560
561 * progmodes/make-mode.el (makefile-targets-face)
562 (makefile-shell-face, makefile-makepp-perl-face): New faces.
563 (makefile-dependency-regex): Fix it to not make the colon in
564 $(var:a=b) special.
565 (makefile-rule-action-regex): New regexp for highlighting embedded
566 Shell strings.
567 (makefile-macroassign-regex): Handle != for highlighting as
568 embedded Shell strings.
569 (makefile-var-use-regex): New const.
570 (makefile-statements, makefile-automake-statements)
571 (makefile-gmake-statements, makefile-makepp-statements)
572 (makefile-bsdmake-statements): New consts.
573 (makefile-make-font-lock-keywords): New function.
574 (makefile-automake-font-lock-keywords)
575 (makefile-gmake-font-lock-keywords)
576 (makefile-makepp-font-lock-keywords)
577 (makefile-bsdmake-font-lock-keywords): New consts.
578 (makefile-mode-map): Add switchers between the various submodes.
579 (makefile-mode): Document the availability of the variants.
580 (makefile-automake-mode, makefile-gmake-mode)
581 (makefile-makepp-mode, makefile-bsdmake-mode): New derived modes.
582
583 * files.el (auto-mode-alist, interpreter-mode-alist): Set up the
584 new variants of makefile-mode.
585
5862005-05-12 Stefan Monnier <monnier@iro.umontreal.ca>
587
588 * font-lock.el (font-lock-comment-delimiter-face): Fix up
589 the inheritance.
590
5912005-05-12 Luc Teirlinck <teirllm@auburn.edu>
592
593 * progmodes/inf-lisp.el (inferior-lisp-mode-hook)
594 (inferior-lisp-load-hook): Convert defcustoms back to defvars.
595
596 * files.el (normal-mode): Extend the scope of the
597 `enable-local-variables' binding to include the `set-auto-mode' call.
598 (magic-mode-alist): Doc fix.
599
6002005-05-12 Stefan Monnier <monnier@iro.umontreal.ca>
601
602 * font-lock.el (font-lock-comment-delimiter-face): Inherit from
603 font-lock-comment-face rather than copying its setting.
604
6052005-05-12 Andreas Schwab <schwab@suse.de>
606
607 * eshell/esh-mode.el (eshell-send-input): Doc fix.
608
6092005-05-12 Lute Kamstra <lute@gnu.org>
610
611 * emacs-lisp/generic.el (define-generic-mode): Don't generate a
612 defcustom for the mode hook variable. Delete the last argument.
613 * generic-x.el: Fix callers of define-generic-mode.
614 (generic-x-modes): Delete group.
615 (show-tabs-tab-face, show-tabs-space-face): Put them in the
616 generic-x customization group.
617
6182005-05-12 Kim F. Storm <storm@cua.dk>
619
620 * font-lock.el (font-lock-negation-char-face): Default to "off".
621
622 * progmodes/cc-fonts.el (c-basic-matchers-before): Don't apply
623 font-lock-negation-char-face to ! in !=.
624
6252005-05-12 Masatake YAMATO <jet@gyve.org>
626
627 * add-log.el (find-change-log): Fix typos in the docstring
628 of function.
629
12005-05-11 Arne J,Ax(Brgensen <arne@arnested.dk> 6302005-05-11 Arne J,Ax(Brgensen <arne@arnested.dk>
2 631
3 * international/latexenc.el (latexenc-find-file-coding-system): 632 * international/latexenc.el (latexenc-find-file-coding-system):
@@ -21,6 +650,12 @@
21 650
222005-05-11 Stefan Monnier <monnier@iro.umontreal.ca> 6512005-05-11 Stefan Monnier <monnier@iro.umontreal.ca>
23 652
653 * font-lock.el (font-lock-fontify-syntactically-region): Don't use
654 comment-end if comment-start-skip is not set.
655 Obey the font-lock-comment-delimiter-face variables.
656
6572005-05-11 Stefan Monnier <monnier@iro.umontreal.ca>
658
24 * files.el (executable-find): Move from executable.el. Use locate-file. 659 * files.el (executable-find): Move from executable.el. Use locate-file.
25 * progmodes/executable.el (executable-find): Move to files.el. 660 * progmodes/executable.el (executable-find): Move to files.el.
26 661
@@ -33,6 +668,11 @@
33 (mouse-select, mouse-select-internal, mouse-extend-internal): 668 (mouse-select, mouse-select-internal, mouse-extend-internal):
34 Use it to implement mouse-1-click-follows-link functionality. 669 Use it to implement mouse-1-click-follows-link functionality.
35 670
6712005-05-11 Richard M. Stallman <rms@gnu.org>
672
673 * font-lock.el (font-lock-fontify-syntactically-region):
674 Use font-lock-comment-delimiter-face for comment delimiters.
675
362005-05-10 Jay Belanger <belanger@truman.edu> 6762005-05-10 Jay Belanger <belanger@truman.edu>
37 677
38 * calc/calc-help.el (calc-m-prefix-help): Add mention of 678 * calc/calc-help.el (calc-m-prefix-help): Add mention of
@@ -53,6 +693,9 @@
53 * cus-edit.el (custom-file): Call file-chase-links. 693 * cus-edit.el (custom-file): Call file-chase-links.
54 694
55 * files.el (read-directory-name): Fix previous change. 695 * files.el (read-directory-name): Fix previous change.
696 (hack-local-variables-confirm): New function.
697 (hack-local-variables-prop-line, hack-local-variables)
698 (hack-one-local-variable): Use it.
56 699
572005-05-10 Lute Kamstra <lute@gnu.org> 7002005-05-10 Lute Kamstra <lute@gnu.org>
58 701
@@ -1123,7 +1766,7 @@
1123 1766
11242005-04-15 Carsten Dominik <dominik@science.uva.nl> 17672005-04-15 Carsten Dominik <dominik@science.uva.nl>
1125 1768
1126 * textmodes/org.el: (org-agenda-date-prompt): Rename from 1769 * textmodes/org.el (org-agenda-date-prompt): Rename from
1127 `org-agenda-date-today'. 1770 `org-agenda-date-today'.
1128 (org-evaluate-time-range): Insert at point instead of directly 1771 (org-evaluate-time-range): Insert at point instead of directly
1129 after time range. 1772 after time range.
@@ -1327,7 +1970,7 @@
1327 to dnd-insert-text. 1970 to dnd-insert-text.
1328 (x-dnd-protocol-alist, x-dnd-open-file-other-window) 1971 (x-dnd-protocol-alist, x-dnd-open-file-other-window)
1329 (x-dnd-handle-one-url, x-dnd-get-local-file-uri) 1972 (x-dnd-handle-one-url, x-dnd-get-local-file-uri)
1330 (x-dnd-get-local-file-name, x-dnd-open-local-file) 1973 (x-dnd-get-local-file-name, x-dnd-open-local-file)
1331 (x-dnd-open-file, x-dnd-insert-text): Move to dnd.el (without x-). 1974 (x-dnd-open-file, x-dnd-insert-text): Move to dnd.el (without x-).
1332 1975
1333 * dnd.el (dnd-protocol-alist): New file with generic DND functions. 1976 * dnd.el (dnd-protocol-alist): New file with generic DND functions.
@@ -2374,7 +3017,7 @@
2374 3017
23752005-03-24 Jay Belanger <belanger@truman.edu> 30182005-03-24 Jay Belanger <belanger@truman.edu>
2376 3019
2377 * calc/calc-embed.el (calc-embedded-mode-change): Save all 3020 * calc/calc-embed.el (calc-embedded-mode-change): Save all
2378 relevant mode settings in calc-embedded-original-modes when modes 3021 relevant mode settings in calc-embedded-original-modes when modes
2379 are permanently changed. 3022 are permanently changed.
2380 3023
@@ -4074,7 +4717,7 @@
4074 (calc-set-language): Set math-expr-special-function-mapping. 4717 (calc-set-language): Set math-expr-special-function-mapping.
4075 4718
4076 * calc/calc-prog.el (calc-edit-user-syntax, calc-fix-token-name) 4719 * calc/calc-prog.el (calc-edit-user-syntax, calc-fix-token-name)
4077 (calc-write-parse-table-part): Add LaTeX support. 4720 (calc-write-parse-table-part): Add LaTeX support.
4078 4721
4079 * calc/calc.el (calc-language): Adjust docstring. 4722 * calc/calc.el (calc-language): Adjust docstring.
4080 (calc-set-mode-line): Add LaTeX support. 4723 (calc-set-mode-line): Add LaTeX support.
@@ -5049,7 +5692,7 @@
5049 5692
50502004-12-31 Jay Belanger <belanger@truman.edu> 56932004-12-31 Jay Belanger <belanger@truman.edu>
5051 5694
5052 * calc/calc-store.el (calcVar-digit, calcVar-oper): Remove the need 5695 * calc/calc-store.el (calcVar-digit, calcVar-oper): Remove the need
5053 for "var-" at the beginning of the minibuffer. 5696 for "var-" at the beginning of the minibuffer.
5054 5697
50552004-12-31 Richard M. Stallman <rms@gnu.org> 56982004-12-31 Richard M. Stallman <rms@gnu.org>
@@ -5899,7 +6542,7 @@
5899 * calendar/holidays.el (holiday-easter-etc): Make arguments 6542 * calendar/holidays.el (holiday-easter-etc): Make arguments
5900 optional for backwards compatibility. Doc fix. 6543 optional for backwards compatibility. Doc fix.
5901 Remove un-necessary local vars mandatory, output-list. 6544 Remove un-necessary local vars mandatory, output-list.
5902 (holiday-advent): Make arguments optional for backwards 6545 (holiday-advent): Make arguments optional for backwards
5903 compatibility. Doc fix. 6546 compatibility. Doc fix.
5904 6547
59052004-12-06 Stefan Monnier <monnier@iro.umontreal.ca> 65482004-12-06 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -7008,7 +7651,7 @@
7008 disp-trail by declared variable. 7651 disp-trail by declared variable.
7009 7652
7010 * calc/calc-sel.el (calc-edit-disp-trail): Declare it. 7653 * calc/calc-sel.el (calc-edit-disp-trail): Declare it.
7011 (calc-finish-selection-edit): Replace variable disp-trail by 7654 (calc-finish-selection-edit): Replace variable disp-trail by
7012 declared variable. 7655 declared variable.
7013 (calc-selection-cache-entry): Move declaration to earlier in the file. 7656 (calc-selection-cache-entry): Move declaration to earlier in the file.
7014 (calc-selection-cache-num, calc-selection-cache-comp) 7657 (calc-selection-cache-num, calc-selection-cache-comp)
@@ -7024,14 +7667,14 @@
7024 (calc-sel-reselect): New variable. 7667 (calc-sel-reselect): New variable.
7025 (calc-auto-selection, calc-enter-selection, calc-edit-selection) 7668 (calc-auto-selection, calc-enter-selection, calc-edit-selection)
7026 (calc-sel-evaluate, calc-sel-expand-formula, calc-sel-expand-formula) 7669 (calc-sel-evaluate, calc-sel-expand-formula, calc-sel-expand-formula)
7027 (calc-sel-mult-both-sides, calc-sel-add-both-sides): Replace variable 7670 (calc-sel-mult-both-sides, calc-sel-add-both-sides): Replace variable
7028 reselect with declared variable. 7671 reselect with declared variable.
7029 7672
7030 * calc/calc-rewr.el (math-regs, math-num-regs, math-prog-last) 7673 * calc/calc-rewr.el (math-regs, math-num-regs, math-prog-last)
7031 (math-bound-vars, math-conds, math-copy-neg, math-rhs) 7674 (math-bound-vars, math-conds, math-copy-neg, math-rhs)
7032 (math-pattern, math-remembering, math-aliased-vars, math-mt-many) 7675 (math-pattern, math-remembering, math-aliased-vars, math-mt-many)
7033 (math-import-list, math-rewrite-phase): Declare them. 7676 (math-import-list, math-rewrite-phase): Declare them.
7034 (math-rewrite): Use let* to declare variables. 7677 (math-rewrite): Use let* to declare variables.
7035 (calc-rewrite-selection): Make rules a local variable. 7678 (calc-rewrite-selection): Make rules a local variable.
7036 (calc-rewr-sel): New variable. 7679 (calc-rewr-sel): New variable.
7037 (calc-rewrite-selection, calc-locate-selection-marker) 7680 (calc-rewrite-selection, calc-locate-selection-marker)
@@ -7264,15 +7907,15 @@
7264 7907
72652004-11-15 Jay Belanger <belanger@truman.edu> 79082004-11-15 Jay Belanger <belanger@truman.edu>
7266 7909
7267 * calc/calcalg2.el (math-integrate-by-parts): Remove unused 7910 * calc/calcalg2.el (math-integrate-by-parts): Remove unused
7268 variable var-thing. 7911 variable var-thing.
7269 (math-integ-depth, math-integ-level, math-integral-limit) 7912 (math-integ-depth, math-integ-level, math-integral-limit)
7270 (math-enable-subst, math-any-substs, math-integ-msg) 7913 (math-enable-subst, math-any-substs, math-integ-msg)
7271 (math-prev-parts-v, math-good-parts, math-max-integral-limit) 7914 (math-prev-parts-v, math-good-parts, math-max-integral-limit)
7272 (math-int-threshold, math-int-factors, math-double-roots) 7915 (math-int-threshold, math-int-factors, math-double-roots)
7273 (math-solve-simplifying, var-IntegLimit, math-solve-sign) 7916 (math-solve-simplifying, var-IntegLimit, math-solve-sign)
7274 (var-GenCount): Declare these variables. 7917 (var-GenCount): Declare these variables.
7275 (calcFunc-integ): Don't check if var-IntegLimit is bound. 7918 (calcFunc-integ): Don't check if var-IntegLimit is bound.
7276 (math-integral-cache, math-integral-cache-state): 7919 (math-integral-cache, math-integral-cache-state):
7277 Move declarations to earlier in the file. 7920 Move declarations to earlier in the file.
7278 (math-deriv-var, math-deriv-total, math-deriv-symb) 7921 (math-deriv-var, math-deriv-total, math-deriv-symb)
@@ -7280,7 +7923,7 @@
7280 (math-so-far, math-integ-expr, math-expr-parts, calc-low) 7923 (math-so-far, math-integ-expr, math-expr-parts, calc-low)
7281 (calc-high, math-solve-var, math-solve-full, math-solve-vars) 7924 (calc-high, math-solve-var, math-solve-full, math-solve-vars)
7282 (math-try-solve-sign, math-solve-b, math-solve-system-vv) 7925 (math-try-solve-sign, math-solve-b, math-solve-system-vv)
7283 (math-solve-res): New variables 7926 (math-solve-res): New variables
7284 (math-derivative, calcFunc-deriv, calcFunc-tderiv) 7927 (math-derivative, calcFunc-deriv, calcFunc-tderiv)
7285 (math-integral, math-replace-integral-parts) 7928 (math-integral, math-replace-integral-parts)
7286 (math-integrate-by-parts, calc-dump-integral-cache) 7929 (math-integrate-by-parts, calc-dump-integral-cache)
@@ -7384,18 +8027,18 @@
7384 8027
73852004-11-12 Jay Belanger <belanger@truman.edu> 80282004-11-12 Jay Belanger <belanger@truman.edu>
7386 8029
7387 * calc/calc-graph.el (calc-dumb-map): Declare it. 8030 * calc/calc-graph.el (calc-dumb-map): Declare it.
7388 (calc-graph-show-dumb): Check if calc-dumb-map is non-nil rather 8031 (calc-graph-show-dumb): Check if calc-dumb-map is non-nil rather
7389 than unbound. 8032 than unbound.
7390 (calc-graph-name): Made `end' a local variable. 8033 (calc-graph-name): Made `end' a local variable.
7391 (calc-graph-lookup): Made `varname' a local variable. 8034 (calc-graph-lookup): Made `varname' a local variable.
7392 (var-DUMMY, var-DUMMY2, var-PlotRejects, calc-gnuplot-trail-mark): 8035 (var-DUMMY, var-DUMMY2, var-PlotRejects, calc-gnuplot-trail-mark):
7393 Declare them. 8036 Declare them.
7394 (calc-graph-format-data): Don't check if var-PlotRejects is bound. 8037 (calc-graph-format-data): Don't check if var-PlotRejects is bound.
7395 (calc-graph-plot, calc-graph-compute-3d): Remove references to 8038 (calc-graph-plot, calc-graph-compute-3d): Remove references to
7396 the unused variable y3vec. 8039 the unused variable y3vec.
7397 (calc-graph-show-dumb): Remove reference to unused variable found-pt. 8040 (calc-graph-show-dumb): Remove reference to unused variable found-pt.
7398 (calc-graph-kill-hook, calc-graph-plot): Remove reference to 8041 (calc-graph-kill-hook, calc-graph-plot): Remove reference to
7399 calc-graph-prev-kill-hook. 8042 calc-graph-prev-kill-hook.
7400 (calc-graph-yvalue, calc-graph-yvec, calc-graph-numsteps) 8043 (calc-graph-yvalue, calc-graph-yvec, calc-graph-numsteps)
7401 (calc-graph-numsteps3, calc-graph-xvalue, calc-graph-xvec) 8044 (calc-graph-numsteps3, calc-graph-xvalue, calc-graph-xvec)
@@ -7408,7 +8051,7 @@
7408 (calc-graph-y3step, calc-graph-y3step, calc-graph-zval) 8051 (calc-graph-y3step, calc-graph-y3step, calc-graph-zval)
7409 (calc-graph-stepcount, calc-graph-is-splot) 8052 (calc-graph-stepcount, calc-graph-is-splot)
7410 (calc-graph-surprise-splot, calc-graph-blank) 8053 (calc-graph-surprise-splot, calc-graph-blank)
7411 (calc-graph-non-blank, calc-graph-curve-num): New variables. 8054 (calc-graph-non-blank, calc-graph-curve-num): New variables.
7412 (calc-graph-plot, calc-graph-compute-2d, calc-graph-refine-2d) 8055 (calc-graph-plot, calc-graph-compute-2d, calc-graph-refine-2d)
7413 (calc-graph-recompute-2d, calc-graph-compute-3d) 8056 (calc-graph-recompute-2d, calc-graph-compute-3d)
7414 (calc-graph-format-data): Replace undeclared variables with the 8057 (calc-graph-format-data): Replace undeclared variables with the
@@ -7482,28 +8125,28 @@
7482 8125
74832004-11-11 Jay Belanger <belanger@truman.edu> 81262004-11-11 Jay Belanger <belanger@truman.edu>
7484 8127
7485 * calc/calc-comb.el (math-prime-factors-finished): Declare it as 8128 * calc/calc-comb.el (math-prime-factors-finished): Declare it as
7486 a variable. 8129 a variable.
7487 (calcFunc-dfac): Replace unbound max by n. 8130 (calcFunc-dfac): Replace unbound max by n.
7488 (math-stirling-local-cache): New variable. 8131 (math-stirling-local-cache): New variable.
7489 (math-stirling-number, math-stirling-1, math-stirling-2): 8132 (math-stirling-number, math-stirling-1, math-stirling-2):
7490 Replace the variable `cache' by the declared variable 8133 Replace the variable `cache' by the declared variable
7491 math-stirling-local-cache. 8134 math-stirling-local-cache.
7492 (var-RandSeed): Declare it as a variable. 8135 (var-RandSeed): Declare it as a variable.
7493 (math-init-random-base, math-random-digit): Don't check to see if 8136 (math-init-random-base, math-random-digit): Don't check to see if
7494 var-RandSeed is bound. 8137 var-RandSeed is bound.
7495 (math-random-cache, math-gaussian-cache, calc-verbose-nextprime): 8138 (math-random-cache, math-gaussian-cache, calc-verbose-nextprime):
7496 Declare them instead of just setting them. 8139 Declare them instead of just setting them.
7497 (math-init-random-base): Made i a local variable. 8140 (math-init-random-base): Made i a local variable.
7498 (math-random-digit): Made math-random-last a local variable. 8141 (math-random-digit): Made math-random-last a local variable.
7499 (math-prime-test-cache): Move declaration to before it is used. 8142 (math-prime-test-cache): Move declaration to before it is used.
7500 (math-prime-test-cache-k, math-prime-test-cache-q) 8143 (math-prime-test-cache-k, math-prime-test-cache-q)
7501 (math-prime-test-cache-nm1, math-prime-factors-finished): 8144 (math-prime-test-cache-nm1, math-prime-factors-finished):
7502 Declare them as variables. 8145 Declare them as variables.
7503 8146
75042004-11-11 Jay Belanger <belanger@truman.edu> 81472004-11-11 Jay Belanger <belanger@truman.edu>
7505 8148
7506 * calc/calc-ext.el (math-defcache): Use defvar for the new 8149 * calc/calc-ext.el (math-defcache): Use defvar for the new
7507 variables it creates. 8150 variables it creates.
7508 8151
75092004-11-11 Lars Hansen <larsh@math.ku.dk> 81522004-11-11 Lars Hansen <larsh@math.ku.dk>
@@ -7519,45 +8162,45 @@
7519 8162
75202004-11-10 Jay Belanger <belanger@truman.edu> 81632004-11-10 Jay Belanger <belanger@truman.edu>
7521 8164
7522 * calc/calc-aent.el (calc-do-quick-calc): Use kill-new to append 8165 * calc/calc-aent.el (calc-do-quick-calc): Use kill-new to append
7523 string to kill-ring. 8166 string to kill-ring.
7524 8167
7525 * calc/calc-aent.el (calc-alg-exp, math-toks) 8168 * calc/calc-aent.el (calc-alg-exp, math-toks)
7526 (math-exp-pos,math-exp-old-pos, math-exp-token) 8169 (math-exp-pos,math-exp-old-pos, math-exp-token)
7527 (math-exp-keep-spaces, math-exp-str): New variables. 8170 (math-exp-keep-spaces, math-exp-str): New variables.
7528 (calc-do-alg-entry, calcAlg-equals, calcAlg-edit) 8171 (calc-do-alg-entry, calcAlg-equals, calcAlg-edit)
7529 (calcAlg-enter): Use declared variable calc-alg-exp. 8172 (calcAlg-enter): Use declared variable calc-alg-exp.
7530 (math-build-parse-table, math-find-user-token): Use declared 8173 (math-build-parse-table, math-find-user-token): Use declared
7531 variable math-toks. 8174 variable math-toks.
7532 (math-read-exprs, math-read-token, calc-check-user-syntax) 8175 (math-read-exprs, math-read-token, calc-check-user-syntax)
7533 (calc-match-user-syntax, match-factor-after, math-read-factor): 8176 (calc-match-user-syntax, match-factor-after, math-read-factor):
7534 Use declared variables math-exp-pos math-exp-old-pos. 8177 Use declared variables math-exp-pos math-exp-old-pos.
7535 (math-read-exprs, math-read-token, math-read-expr-level) 8178 (math-read-exprs, math-read-token, math-read-expr-level)
7536 (calc-check-user-syntax, calc-match-user-syntax) 8179 (calc-check-user-syntax, calc-match-user-syntax)
7537 (match-factor-after, math-read-factor): Use declared variable 8180 (match-factor-after, math-read-factor): Use declared variable
7538 math-exp-token. 8181 math-exp-token.
7539 (math-read-exprs, math-read-expr-list, math-read-token) 8182 (math-read-exprs, math-read-expr-list, math-read-token)
7540 (math-read-factor): Use declared variable math-exp-keep-spaces. 8183 (math-read-factor): Use declared variable math-exp-keep-spaces.
7541 (math-read-exprs, math-read-token): Use declared variable 8184 (math-read-exprs, math-read-token): Use declared variable
7542 math-exp-str. 8185 math-exp-str.
7543 (calc-match-user-syntax): Make m a local variable. 8186 (calc-match-user-syntax): Make m a local variable.
7544 8187
7545 * calc/calc-ext.el (math-read-expr): Use declared variables 8188 * calc/calc-ext.el (math-read-expr): Use declared variables
7546 math-exp-pos, math-exp-old-pos, math-exp-str, math-exp-token, 8189 math-exp-pos, math-exp-old-pos, math-exp-str, math-exp-token,
7547 math-exp-keep-spaces. 8190 math-exp-keep-spaces.
7548 8191
7549 * calc/calc-forms.el (math-read-angle-bracket): Use declared 8192 * calc/calc-forms.el (math-read-angle-bracket): Use declared
7550 variables math-exp-pos, math-exp-str. 8193 variables math-exp-pos, math-exp-str.
7551 8194
7552 * calc/calc-lang.el (math-parse-tex-sum): Use declared variable 8195 * calc/calc-lang.el (math-parse-tex-sum): Use declared variable
7553 math-exp-old-pos. 8196 math-exp-old-pos.
7554 (math-parse-fortran-vector, math-parse-fortran-vector-end) 8197 (math-parse-fortran-vector, math-parse-fortran-vector-end)
7555 (math-parse-eqn-prime): Use declared variable math-exp-token. 8198 (math-parse-eqn-prime): Use declared variable math-exp-token.
7556 8199
7557 * calc/calc-vec.el (math-read-brackets, math-check-for-commas): 8200 * calc/calc-vec.el (math-read-brackets, math-check-for-commas):
7558 Use declared variable math-exp-pos. 8201 Use declared variable math-exp-pos.
7559 (math-check-for-commas): Use declared variable math-exp-str. 8202 (math-check-for-commas): Use declared variable math-exp-str.
7560 (math-read-brackets): Use declared variables math-exp-old-pos, 8203 (math-read-brackets): Use declared variables math-exp-old-pos,
7561 math-exp-keep-spaces. 8204 math-exp-keep-spaces.
7562 (math-read-brackets, math-read-vector, math-read-matrix): 8205 (math-read-brackets, math-read-vector, math-read-matrix):
7563 Use declared variable math-exp-token. 8206 Use declared variable math-exp-token.
@@ -7595,42 +8238,42 @@
7595 8238
75962004-11-09 Jay Belanger <belanger@truman.edu> 82392004-11-09 Jay Belanger <belanger@truman.edu>
7597 8240
7598 * calc/calc-ext.el (calc-init-extensions): Remove old code. 8241 * calc/calc-ext.el (calc-init-extensions): Remove old code.
7599 8242
7600 * calc/calc-ext.el (math-expr-data, math-mt-many, math-mt-func) 8243 * calc/calc-ext.el (math-expr-data, math-mt-many, math-mt-func)
7601 (calc-z-prefix-buf, calc-z-prefix-msgs): New variables. 8244 (calc-z-prefix-buf, calc-z-prefix-msgs): New variables.
7602 (calc-z-prefix-help, calc-user-function-list): Use declared 8245 (calc-z-prefix-help, calc-user-function-list): Use declared
7603 variables calc-z-prefix-buf, calc-z-prefix-msgs. 8246 variables calc-z-prefix-buf, calc-z-prefix-msgs.
7604 (math-map-tree, math-map-tree-rec): Use declared variables 8247 (math-map-tree, math-map-tree-rec): Use declared variables
7605 math-mt-many, math-mt-func. 8248 math-mt-many, math-mt-func.
7606 (math-read-expression, math-read-string): Use declared variable 8249 (math-read-expression, math-read-string): Use declared variable
7607 math-expr-data. 8250 math-expr-data.
7608 8251
7609 * calc/calc-ext.el (math-normalize-nonstandard): Use declared 8252 * calc/calc-ext.el (math-normalize-nonstandard): Use declared
7610 variable math-normalize-a. 8253 variable math-normalize-a.
7611 8254
7612 * calc/calc.el (math-normalize-a): New variable. 8255 * calc/calc.el (math-normalize-a): New variable.
7613 (math-normalize): Use declared variable math-normalize-a. 8256 (math-normalize): Use declared variable math-normalize-a.
7614 8257
7615 * calc/calc-poly.el (math-expand-form): Use declared variable 8258 * calc/calc-poly.el (math-expand-form): Use declared variable
7616 math-mt-many. 8259 math-mt-many.
7617 8260
7618 * calc/calc-rewr.el (math-rewrite, math-rewrite-phase): 8261 * calc/calc-rewr.el (math-rewrite, math-rewrite-phase):
7619 Use declared variable math-mt-many. 8262 Use declared variable math-mt-many.
7620 (math-rewrite): Use declared variable math-mt-func. 8263 (math-rewrite): Use declared variable math-mt-func.
7621 8264
7622 * calc/calc-vec.el (math-read-brackets, math-read-vector) 8265 * calc/calc-vec.el (math-read-brackets, math-read-vector)
7623 (math-read-matrix): Use declared variable math-expr-data. 8266 (math-read-matrix): Use declared variable math-expr-data.
7624 8267
7625 * calc/calc-lang.el (math-parse-fortran-vector) 8268 * calc/calc-lang.el (math-parse-fortran-vector)
7626 (math-parse-fortran-vector-end, math-parse-tex-sum) 8269 (math-parse-fortran-vector-end, math-parse-tex-sum)
7627 (math-parse-eqn-matrix, math-parse-eqn-prime) 8270 (math-parse-eqn-matrix, math-parse-eqn-prime)
7628 (math-read-math-subscr): Use declared variable math-expr-data. 8271 (math-read-math-subscr): Use declared variable math-expr-data.
7629 8272
7630 * calc/calc-aent.el (math-read-exprs, math-read-expr-list) 8273 * calc/calc-aent.el (math-read-exprs, math-read-expr-list)
7631 (math-read-expr-level, math-read-token, calc-check-user-syntax) 8274 (math-read-expr-level, math-read-token, calc-check-user-syntax)
7632 (calc-match-user-syntax, math-read-if, math-factor-after) 8275 (calc-match-user-syntax, math-read-if, math-factor-after)
7633 (math-read-factor): Use declared variable math-expr-data. 8276 (math-read-factor): Use declared variable math-expr-data.
7634 8277
76352004-11-09 Glenn Morris <gmorris@ast.cam.ac.uk> 82782004-11-09 Glenn Morris <gmorris@ast.cam.ac.uk>
7636 8279
@@ -7663,14 +8306,14 @@
76632004-11-09 Jay Belanger <belanger@truman.edu> 83062004-11-09 Jay Belanger <belanger@truman.edu>
7664 8307
7665 * calc/calc.el (calc-mode-hook, calc-trail-mode-hook) 8308 * calc/calc.el (calc-mode-hook, calc-trail-mode-hook)
7666 (calc-start-hook, calc-end-hook, calc-load-hook): New variables. 8309 (calc-start-hook, calc-end-hook, calc-load-hook): New variables.
7667 8310
7668 * calc/calc.el (calc, calc-trail-display, calc-mode): 8311 * calc/calc.el (calc, calc-trail-display, calc-mode):
7669 Remove obsolete sections. 8312 Remove obsolete sections.
7670 8313
7671 * calc/calc.el (calc-x-paste-text): Remove. 8314 * calc/calc.el (calc-x-paste-text): Remove.
7672 8315
7673 * calc/calc-ext.el (calc-init-extensions): Bind calc-yank to 8316 * calc/calc-ext.el (calc-init-extensions): Bind calc-yank to
7674 mouse-2. 8317 mouse-2.
7675 8318
76762004-11-09 Nick Roberts <nickrob@snap.net.nz> 83192004-11-09 Nick Roberts <nickrob@snap.net.nz>
@@ -7716,14 +8359,14 @@
7716 8359
77172004-11-08 Jay Belanger <belanger@truman.edu> 83602004-11-08 Jay Belanger <belanger@truman.edu>
7718 8361
7719 * calc/calcalg2.el (math-do-integral-methods): Try linear then 8362 * calc/calcalg2.el (math-do-integral-methods): Try linear then
7720 non-linear substitutions. 8363 non-linear substitutions.
7721 8364
77222004-11-08 Jay Belanger <belanger@truman.edu> 83652004-11-08 Jay Belanger <belanger@truman.edu>
7723 8366
7724 * calc/calcalg2.el (math-linear-subst-tried): New variable. 8367 * calc/calcalg2.el (math-linear-subst-tried): New variable.
7725 (math-do-integral): Set `math-linear-subst-tried' to nil. 8368 (math-do-integral): Set `math-linear-subst-tried' to nil.
7726 (math-do-integral-methods): Use `math-linear-subst-tried' to 8369 (math-do-integral-methods): Use `math-linear-subst-tried' to
7727 determine what type of substitution to try. 8370 determine what type of substitution to try.
7728 (math-integ-try-linear-substituion): 8371 (math-integ-try-linear-substituion):
7729 Set `math-linear-subst-tried' to t. 8372 Set `math-linear-subst-tried' to t.
@@ -8327,7 +8970,7 @@
83272004-10-26 Jay Belanger <belanger@truman.edu> 89702004-10-26 Jay Belanger <belanger@truman.edu>
8328 8971
8329 * calc/calc.el (calc,full-calc, calc-quit, calc-keypad) 8972 * calc/calc.el (calc,full-calc, calc-quit, calc-keypad)
8330 (full-calc-keypad, calc-trail-display): Use an extra argument 8973 (full-calc-keypad, calc-trail-display): Use an extra argument
8331 instead of `interactive-p'. 8974 instead of `interactive-p'.
8332 8975
8333 * calc/calc-misc.el (calc-other-window): Use an extra argument 8976 * calc/calc-misc.el (calc-other-window): Use an extra argument
@@ -8372,7 +9015,7 @@
8372 9015
83732004-10-25 Jay Belanger <belanger@truman.edu> 90162004-10-25 Jay Belanger <belanger@truman.edu>
8374 9017
8375 * calc/calc-incom.el (calc-digit-dots): Inhibit read-only before 9018 * calc/calc-incom.el (calc-digit-dots): Inhibit read-only before
8376 erasing minibuffer. 9019 erasing minibuffer.
8377 9020
83782004-10-25 Simon Josefsson <jas@extundo.com> 90212004-10-25 Simon Josefsson <jas@extundo.com>
@@ -9358,7 +10001,7 @@
9358 (calc-invocation-macro, calc-show-banner): Give these values as 10001 (calc-invocation-macro, calc-show-banner): Give these values as
9359 part of `calc-mode-var-list's initialization after the variables 10002 part of `calc-mode-var-list's initialization after the variables
9360 are declared with defvar. 10003 are declared with defvar.
9361 (calc-bug-address): Change email address to send bug reports to. 10004 (calc-bug-address): Change email address to send bug reports to.
9362 Change the maintainer address at the top. 10005 Change the maintainer address at the top.
9363 (calc-mode): Compare `calc-settings-file' to `user-init-file' rather 10006 (calc-mode): Compare `calc-settings-file' to `user-init-file' rather
9364 than "\\.emacs" to determine if it is the user-init-file. 10007 than "\\.emacs" to determine if it is the user-init-file.
@@ -15654,7 +16297,7 @@
15654 16297
156552004-02-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 162982004-02-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
15656 16299
15657 * x-dnd.el (x-dnd-types-alist): Add COMPOUND_TEXT, FILE_NAME 16300 * x-dnd.el (x-dnd-types-alist): Add COMPOUND_TEXT, FILE_NAME
15658 handled by x-dnd-handle-file-name. 16301 handled by x-dnd-handle-file-name.
15659 (x-dnd-known-types): Add COMPOUND_TEXT. 16302 (x-dnd-known-types): Add COMPOUND_TEXT.
15660 (x-dnd-init-frame): Call x-dnd-init-motif-for-frame. 16303 (x-dnd-init-frame): Call x-dnd-init-motif-for-frame.
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 2714df554b8..6dcbfca0c26 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -250,6 +250,9 @@ Note: The search is conducted only within 10%, at the beginning of the file."
250 ;; Acknowledgements. 250 ;; Acknowledgements.
251 ;; Don't include plain "From" because that is vague; 251 ;; Don't include plain "From" because that is vague;
252 ;; we want to encourage people to say something more specific. 252 ;; we want to encourage people to say something more specific.
253 ;; Note that the FSF does not use "Patches by"; our convention
254 ;; is to put the name of the author of the changes at the top
255 ;; of the change log entry.
253 ("\\(^\\( +\\|\t\\)\\| \\)\\(Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)" 256 ("\\(^\\( +\\|\t\\)\\| \\)\\(Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)"
254 3 'change-log-acknowledgement-face)) 257 3 'change-log-acknowledgement-face))
255 "Additional expressions to highlight in Change Log mode.") 258 "Additional expressions to highlight in Change Log mode.")
@@ -375,10 +378,10 @@ nil, by matching `change-log-version-number-regexp-list'."
375 378
376Optional arg FILE-NAME specifies the file to use. 379Optional arg FILE-NAME specifies the file to use.
377If FILE-NAME is nil, use the value of `change-log-default-name'. 380If FILE-NAME is nil, use the value of `change-log-default-name'.
378If 'change-log-default-name' is nil, behave as though it were 'ChangeLog' 381If `change-log-default-name' is nil, behave as though it were 'ChangeLog'
379\(or whatever we use on this operating system). 382\(or whatever we use on this operating system).
380 383
381If 'change-log-default-name' contains a leading directory component, then 384If `change-log-default-name' contains a leading directory component, then
382simply find it in the current directory. Otherwise, search in the current 385simply find it in the current directory. Otherwise, search in the current
383directory and its successive parents for a file so named. 386directory and its successive parents for a file so named.
384 387
@@ -489,13 +492,13 @@ non-nil, otherwise in local time."
489 492
490 (if whoami 493 (if whoami
491 (progn 494 (progn
492 (setq full-name (read-input "Full name: " full-name)) 495 (setq full-name (read-string "Full name: " full-name))
493 ;; Note that some sites have room and phone number fields in 496 ;; Note that some sites have room and phone number fields in
494 ;; full name which look silly when inserted. Rather than do 497 ;; full name which look silly when inserted. Rather than do
495 ;; anything about that here, let user give prefix argument so that 498 ;; anything about that here, let user give prefix argument so that
496 ;; s/he can edit the full name field in prompter if s/he wants. 499 ;; s/he can edit the full name field in prompter if s/he wants.
497 (setq mailing-address 500 (setq mailing-address
498 (read-input "Mailing address: " mailing-address)))) 501 (read-string "Mailing address: " mailing-address))))
499 502
500 (unless (equal file-name buffer-file-name) 503 (unless (equal file-name buffer-file-name)
501 (if (or other-window (window-dedicated-p (selected-window))) 504 (if (or other-window (window-dedicated-p (selected-window)))
diff --git a/lisp/align.el b/lisp/align.el
index 5238a75807d..563e839f5fe 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -938,10 +938,10 @@ region, call `align-regexp' and type in that regular expression."
938 (if current-prefix-arg 938 (if current-prefix-arg
939 (list (read-string "Complex align using regexp: " 939 (list (read-string "Complex align using regexp: "
940 "\\(\\s-*\\)") 940 "\\(\\s-*\\)")
941 (string-to-int 941 (string-to-number
942 (read-string 942 (read-string
943 "Parenthesis group to modify (justify if negative): " "1")) 943 "Parenthesis group to modify (justify if negative): " "1"))
944 (string-to-int 944 (string-to-number
945 (read-string "Amount of spacing (or column if negative): " 945 (read-string "Amount of spacing (or column if negative): "
946 (number-to-string align-default-spacing))) 946 (number-to-string align-default-spacing)))
947 (y-or-n-p "Repeat throughout line? ")) 947 (y-or-n-p "Repeat throughout line? "))
diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el
index e505f91e901..9b36a403b5d 100644
--- a/lisp/ansi-color.el
+++ b/lisp/ansi-color.el
@@ -619,7 +619,7 @@ ESCAPE-SEQ is a SGR control sequences such as \\033[34m. The parameter
619 (while (string-match ansi-color-r escape-seq i) 619 (while (string-match ansi-color-r escape-seq i)
620 (setq i (match-end 0) 620 (setq i (match-end 0)
621 val (ansi-color-get-face-1 621 val (ansi-color-get-face-1
622 (string-to-int (match-string 0 escape-seq) 10))) 622 (string-to-number (match-string 0 escape-seq) 10)))
623 (cond ((not val)) 623 (cond ((not val))
624 ((eq val 'default) 624 ((eq val 'default)
625 (setq f (list val))) 625 (setq f (list val)))
diff --git a/lisp/array.el b/lisp/array.el
index 3aa5d4bd319..f65f14ac550 100644
--- a/lisp/array.el
+++ b/lisp/array.el
@@ -607,7 +607,7 @@ If optional ARG is given, copy through ARG rows up."
607 (let ((check t) 607 (let ((check t)
608 (len)) 608 (len))
609 (while check 609 (while check
610 (setq array-init-field (read-input "Initial field value: ")) 610 (setq array-init-field (read-string "Initial field value: "))
611 (setq len (length array-init-field)) 611 (setq len (length array-init-field))
612 (if (/= len array-field-width) 612 (if (/= len array-field-width)
613 (if (y-or-n-p (format "Change field width to %d? " len)) 613 (if (y-or-n-p (format "Change field width to %d? " len))
@@ -647,8 +647,8 @@ of array-rows-numbered."
647 (<= new-columns-per-line array-max-column)) 647 (<= new-columns-per-line array-max-column))
648 (setq check nil) 648 (setq check nil)
649 (setq new-columns-per-line 649 (setq new-columns-per-line
650 (string-to-int 650 (string-to-number
651 (read-input 651 (read-string
652 (format "Columns per line (1 - %d): " array-max-column))))))) 652 (format "Columns per line (1 - %d): " array-max-column)))))))
653 ;; Check on new-rows-numbered. It has to be done this way 653 ;; Check on new-rows-numbered. It has to be done this way
654 ;; because interactive does not have y-or-n-p. 654 ;; because interactive does not have y-or-n-p.
@@ -927,22 +927,22 @@ Entering array mode calls the function `array-mode-hook'."
927(defun array-init-max-row (&optional arg) 927(defun array-init-max-row (&optional arg)
928 "Initialize the value of `array-max-row'." 928 "Initialize the value of `array-max-row'."
929 (setq array-max-row 929 (setq array-max-row
930 (or arg (string-to-int (read-input "Number of array rows: "))))) 930 (or arg (string-to-number (read-string "Number of array rows: ")))))
931 931
932(defun array-init-max-column (&optional arg) 932(defun array-init-max-column (&optional arg)
933 "Initialize the value of `array-max-column'." 933 "Initialize the value of `array-max-column'."
934 (setq array-max-column 934 (setq array-max-column
935 (or arg (string-to-int (read-input "Number of array columns: "))))) 935 (or arg (string-to-number (read-string "Number of array columns: ")))))
936 936
937(defun array-init-columns-per-line (&optional arg) 937(defun array-init-columns-per-line (&optional arg)
938 "Initialize the value of `array-columns-per-line'." 938 "Initialize the value of `array-columns-per-line'."
939 (setq array-columns-per-line 939 (setq array-columns-per-line
940 (or arg (string-to-int (read-input "Array columns per line: "))))) 940 (or arg (string-to-number (read-string "Array columns per line: ")))))
941 941
942(defun array-init-field-width (&optional arg) 942(defun array-init-field-width (&optional arg)
943 "Initialize the value of `array-field-width'." 943 "Initialize the value of `array-field-width'."
944 (setq array-field-width 944 (setq array-field-width
945 (or arg (string-to-int (read-input "Field width: "))))) 945 (or arg (string-to-number (read-string "Field width: ")))))
946 946
947(defun array-init-rows-numbered (&optional arg) 947(defun array-init-rows-numbered (&optional arg)
948 "Initialize the value of `array-rows-numbered'." 948 "Initialize the value of `array-rows-numbered'."
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index 7d0ac885c2f..a968d14a0a9 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -77,6 +77,7 @@
77(defface Buffer-menu-buffer-face 77(defface Buffer-menu-buffer-face
78 '((t (:weight bold))) 78 '((t (:weight bold)))
79 "Face used to highlight buffer name." 79 "Face used to highlight buffer name."
80 :group 'Buffer-menu
80 :group 'font-lock-highlighting-faces) 81 :group 'font-lock-highlighting-faces)
81 82
82(defcustom Buffer-menu-buffer+size-width 26 83(defcustom Buffer-menu-buffer+size-width 26
@@ -754,7 +755,7 @@ For more information, see the function `buffer-menu'."
754 (int-to-string (nth 3 buffer)) 755 (int-to-string (nth 3 buffer))
755 `(buffer-name ,(nth 2 buffer) 756 `(buffer-name ,(nth 2 buffer)
756 buffer ,(car buffer) 757 buffer ,(car buffer)
757 face Buffer-menu-buffer-face 758 font-lock-face Buffer-menu-buffer-face
758 mouse-face highlight 759 mouse-face highlight
759 help-echo "mouse-2: select this buffer")) 760 help-echo "mouse-2: select this buffer"))
760 " " 761 " "
diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el
index c7bf225fe7c..b4b397c43f6 100644
--- a/lisp/calc/calc-comb.el
+++ b/lisp/calc/calc-comb.el
@@ -1,6 +1,6 @@
1;;; calc-comb.el --- combinatoric functions for Calc 1;;; calc-comb.el --- combinatoric functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-cplx.el b/lisp/calc/calc-cplx.el
index 90d90e666bb..32d8a07ffc0 100644
--- a/lisp/calc/calc-cplx.el
+++ b/lisp/calc/calc-cplx.el
@@ -1,6 +1,6 @@
1;;; calc-cplx.el --- Complex number functions for Calc 1;;; calc-cplx.el --- Complex number functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
index 5b23dabbbf5..adbdf7a96e2 100644
--- a/lisp/calc/calc-ext.el
+++ b/lisp/calc/calc-ext.el
@@ -1,6 +1,6 @@
1;;; calc-ext.el --- various extension functions for Calc 1;;; calc-ext.el --- various extension functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
@@ -416,6 +416,7 @@
416 (define-key calc-mode-map "sd" 'calc-declare-variable) 416 (define-key calc-mode-map "sd" 'calc-declare-variable)
417 (define-key calc-mode-map "se" 'calc-edit-variable) 417 (define-key calc-mode-map "se" 'calc-edit-variable)
418 (define-key calc-mode-map "si" 'calc-insert-variables) 418 (define-key calc-mode-map "si" 'calc-insert-variables)
419 (define-key calc-mode-map "sk" 'calc-copy-special-constant)
419 (define-key calc-mode-map "sl" 'calc-let) 420 (define-key calc-mode-map "sl" 'calc-let)
420 (define-key calc-mode-map "sm" 'calc-store-map) 421 (define-key calc-mode-map "sm" 'calc-store-map)
421 (define-key calc-mode-map "sn" 'calc-store-neg) 422 (define-key calc-mode-map "sn" 'calc-store-neg)
@@ -1075,7 +1076,8 @@ calc-vector-pop-covariance calc-vector-pop-sdev
1075calc-vector-pop-variance calc-vector-product calc-vector-sdev 1076calc-vector-pop-variance calc-vector-product calc-vector-sdev
1076calc-vector-sum calc-vector-variance) 1077calc-vector-sum calc-vector-variance)
1077 1078
1078 ("calc-store" calc-assign calc-copy-variable calc-declare-variable 1079 ("calc-store" calc-assign calc-copy-special-constant
1080calc-copy-variable calc-declare-variable
1079calc-edit-AlgSimpRules calc-edit-Decls calc-edit-EvalRules 1081calc-edit-AlgSimpRules calc-edit-Decls calc-edit-EvalRules
1080calc-edit-ExtSimpRules calc-edit-FitRules calc-edit-GenCount 1082calc-edit-ExtSimpRules calc-edit-FitRules calc-edit-GenCount
1081calc-edit-Holidays calc-edit-IntegLimit calc-edit-LineStyles 1083calc-edit-Holidays calc-edit-IntegLimit calc-edit-LineStyles
diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el
index 88af22746a0..c65e8341394 100644
--- a/lisp/calc/calc-fin.el
+++ b/lisp/calc/calc-fin.el
@@ -1,6 +1,6 @@
1;;; calc-fin.el --- financial functions for Calc 1;;; calc-fin.el --- financial functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el
index 10e4793c7a5..ad2ef9dbbff 100644
--- a/lisp/calc/calc-forms.el
+++ b/lisp/calc/calc-forms.el
@@ -1,6 +1,6 @@
1;;; calc-forms.el --- data format conversion functions for Calc 1;;; calc-forms.el --- data format conversion functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004, 2005 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: David Gillespie <daveg@synaptics.com> 6;; Author: David Gillespie <daveg@synaptics.com>
diff --git a/lisp/calc/calc-funcs.el b/lisp/calc/calc-funcs.el
index 9a0802f0a2b..7ae9f524c90 100644
--- a/lisp/calc/calc-funcs.el
+++ b/lisp/calc/calc-funcs.el
@@ -1,6 +1,6 @@
1;;; calc-funcs.el --- well-known functions for Calc 1;;; calc-funcs.el --- well-known functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
index 09bea69cf73..113cdcd33bc 100644
--- a/lisp/calc/calc-graph.el
+++ b/lisp/calc/calc-graph.el
@@ -864,6 +864,7 @@
864 "e" (int-to-string (nth 2 calc-graph-zval)))))) 864 "e" (int-to-string (nth 2 calc-graph-zval))))))
865 (insert "\n")) 865 (insert "\n"))
866 (and (not (equal calc-graph-zval '(skip))) 866 (and (not (equal calc-graph-zval '(skip)))
867 (boundp 'var-PlotRejects)
867 (eq (car-safe var-PlotRejects) 'vec) 868 (eq (car-safe var-PlotRejects) 'vec)
868 (nconc var-PlotRejects 869 (nconc var-PlotRejects
869 (list (list 'vec 870 (list (list 'vec
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index da2b8434c17..84176b36eea 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -1,6 +1,6 @@
1;;; calc-help.el --- help display functions for Calc, 1;;; calc-help.el --- help display functions for Calc,
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2004, 2005 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: David Gillespie <daveg@synaptics.com> 6;; Author: David Gillespie <daveg@synaptics.com>
@@ -526,7 +526,7 @@ C-w Describe how there is no warranty for Calc."
526 (interactive) 526 (interactive)
527 (calc-do-prefix-help 527 (calc-do-prefix-help
528 '("Store, inTo, Xchg, Unstore; Recall, 0-9; : (:=); = (=>)" 528 '("Store, inTo, Xchg, Unstore; Recall, 0-9; : (:=); = (=>)"
529 "Let; Copy; Declare; Insert, Perm; Edit" 529 "Let; Copy, K=copy constant; Declare; Insert, Perm; Edit"
530 "Negate, +, -, *, /, ^, &, |, [, ]; Map" 530 "Negate, +, -, *, /, ^, &, |, [, ]; Map"
531 "SHIFT + Decls, GenCount, TimeZone, Holidays; IntegLimit" 531 "SHIFT + Decls, GenCount, TimeZone, Holidays; IntegLimit"
532 "SHIFT + LineStyles, PointStyles, plotRejects; Units" 532 "SHIFT + LineStyles, PointStyles, plotRejects; Units"
diff --git a/lisp/calc/calc-incom.el b/lisp/calc/calc-incom.el
index 691380e18fe..3fdec5a4b06 100644
--- a/lisp/calc/calc-incom.el
+++ b/lisp/calc/calc-incom.el
@@ -1,6 +1,6 @@
1;;; calc-incom.el --- complex data type input functions for Calc 1;;; calc-incom.el --- complex data type input functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el
index 2c2a0f0f4aa..ad1e4664661 100644
--- a/lisp/calc/calc-keypd.el
+++ b/lisp/calc/calc-keypd.el
@@ -1,6 +1,6 @@
1;;; calc-keypd.el --- mouse-capable keypad input for Calc 1;;; calc-keypd.el --- mouse-capable keypad input for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-macs.el b/lisp/calc/calc-macs.el
index 8b532a49e98..1004a8f1f56 100644
--- a/lisp/calc/calc-macs.el
+++ b/lisp/calc/calc-macs.el
@@ -1,6 +1,6 @@
1;;; calc-macs.el --- important macros for Calc 1;;; calc-macs.el --- important macros for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el
index 726a500c10a..e636dd565fa 100644
--- a/lisp/calc/calc-map.el
+++ b/lisp/calc/calc-map.el
@@ -1,6 +1,6 @@
1;;; calc-map.el --- higher-order functions for Calc 1;;; calc-map.el --- higher-order functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
index 3b2f95d9be8..e8bdfe2fa5a 100644
--- a/lisp/calc/calc-misc.el
+++ b/lisp/calc/calc-misc.el
@@ -1,6 +1,6 @@
1;;; calc-misc.el --- miscellaenous functions for Calc 1;;; calc-misc.el --- miscellaenous functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
index 1c5bd29e804..e0e2ccbd717 100644
--- a/lisp/calc/calc-mode.el
+++ b/lisp/calc/calc-mode.el
@@ -1,6 +1,6 @@
1;;; calc-mode.el --- calculator modes for Calc 1;;; calc-mode.el --- calculator modes for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-mtx.el b/lisp/calc/calc-mtx.el
index 6cac30a3bb7..ea79c98252e 100644
--- a/lisp/calc/calc-mtx.el
+++ b/lisp/calc/calc-mtx.el
@@ -1,6 +1,6 @@
1;;; calc-mtx.el --- matrix functions for Calc 1;;; calc-mtx.el --- matrix functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el
index e887e77030e..89d8273d6d6 100644
--- a/lisp/calc/calc-poly.el
+++ b/lisp/calc/calc-poly.el
@@ -1,6 +1,6 @@
1;;; calc-poly.el --- polynomial functions for Calc 1;;; calc-poly.el --- polynomial functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
@@ -692,12 +692,13 @@
692 692
693 ;; Check if linear in math-fet-x. 693 ;; Check if linear in math-fet-x.
694 ((not (cdr (cdr p))) 694 ((not (cdr (cdr p)))
695 (math-add (math-factor-protect 695 (math-sort-terms
696 (math-sort-terms 696 (math-add (math-factor-protect
697 (math-factor-expr (car p)))) 697 (math-sort-terms
698 (math-mul math-fet-x (math-factor-protect 698 (math-factor-expr (car p))))
699 (math-sort-terms 699 (math-mul math-fet-x (math-factor-protect
700 (math-factor-expr (nth 1 p))))))) 700 (math-sort-terms
701 (math-factor-expr (nth 1 p))))))))
701 702
702 ;; If symbolic coefficients, use FactorRules. 703 ;; If symbolic coefficients, use FactorRules.
703 ((let ((pp p)) 704 ((let ((pp p))
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
index 01ca770ba27..230b0f6a6c5 100644
--- a/lisp/calc/calc-prog.el
+++ b/lisp/calc/calc-prog.el
@@ -902,6 +902,7 @@
902 (calc-edit-macro-combine-var-name)) 902 (calc-edit-macro-combine-var-name))
903 ((or 903 ((or
904 (string-equal type "calc-copy-variable") 904 (string-equal type "calc-copy-variable")
905 (string-equal type "calc-copy-special-constant")
905 (string-equal type "calc-declare-variable")) 906 (string-equal type "calc-declare-variable"))
906 (forward-line 1) 907 (forward-line 1)
907 (calc-edit-macro-combine-var-name) 908 (calc-edit-macro-combine-var-name)
diff --git a/lisp/calc/calc-rewr.el b/lisp/calc/calc-rewr.el
index c520c4d390c..2afb16b7535 100644
--- a/lisp/calc/calc-rewr.el
+++ b/lisp/calc/calc-rewr.el
@@ -1,6 +1,6 @@
1;;; calc-rewr.el --- rewriting functions for Calc 1;;; calc-rewr.el --- rewriting functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-rules.el b/lisp/calc/calc-rules.el
index 7a11cfa5012..14fb59ce376 100644
--- a/lisp/calc/calc-rules.el
+++ b/lisp/calc/calc-rules.el
@@ -1,6 +1,6 @@
1;;; calc-rules.el --- rules for simplifying algebraic expressions in Calc 1;;; calc-rules.el --- rules for simplifying algebraic expressions in Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el
index 9fdd634027e..c1b8ebc307c 100644
--- a/lisp/calc/calc-stat.el
+++ b/lisp/calc/calc-stat.el
@@ -1,6 +1,6 @@
1;;; calc-stat.el --- statistical functions for Calc 1;;; calc-stat.el --- statistical functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
index f59cad99802..35db6d71019 100644
--- a/lisp/calc/calc-store.el
+++ b/lisp/calc/calc-store.el
@@ -1,6 +1,6 @@
1;;; calc-store.el --- value storage functions for Calc 1;;; calc-store.el --- value storage functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
@@ -57,15 +57,20 @@
57 ( | . calc-store-concat ) )))) 57 ( | . calc-store-concat ) ))))
58 (if found 58 (if found
59 (funcall (cdr found)) 59 (funcall (cdr found))
60 (calc-store-value var (or calc-given-value (calc-top 1)) 60 (let ((msg
61 "" calc-given-value-flag) 61 (calc-store-value var (or calc-given-value (calc-top 1))
62 (message "Stored to variable \"%s\"" (calc-var-name var)))) 62 "" calc-given-value-flag)))
63 (message (concat "Stored to variable \"%s\"" msg)
64 (calc-var-name var)))))
63 (setq var (calc-is-assignments (calc-top 1))) 65 (setq var (calc-is-assignments (calc-top 1)))
64 (if var 66 (if var
65 (while var 67 (while var
66 (calc-store-value (car (car var)) (cdr (car var)) 68 (let ((msg
67 (if (not (cdr var)) "") 69 (calc-store-value (car (car var)) (cdr (car var))
68 (if (not (cdr var)) 1)) 70 (if (not (cdr var)) "")
71 (if (not (cdr var)) 1))))
72 (message (concat "Stored to variable \"%s\"" msg)
73 (calc-var-name var)))
69 (setq var (cdr var)))))))) 74 (setq var (cdr var))))))))
70 75
71(defun calc-store-plus (&optional var) 76(defun calc-store-plus (&optional var)
@@ -109,22 +114,26 @@
109 (calc-store-binary var "n" '- n)) 114 (calc-store-binary var "n" '- n))
110 115
111(defun calc-store-value (var value tag &optional pop) 116(defun calc-store-value (var value tag &optional pop)
112 (if var 117 (let ((msg ""))
113 (let ((old (calc-var-value var))) 118 (if var
114 (set var value) 119 (let ((old (calc-var-value var)))
115 (if pop (or calc-store-keep (calc-pop-stack pop))) 120 (set var value)
116 (calc-record-undo (list 'store (symbol-name var) old)) 121 (if pop (or calc-store-keep (calc-pop-stack pop)))
117 (if tag 122 (calc-record-undo (list 'store (symbol-name var) old))
118 (let ((calc-full-trail-vectors nil)) 123 (if tag
119 (calc-record value (format ">%s%s" tag (calc-var-name var))))) 124 (let ((calc-full-trail-vectors nil))
120 (and (memq var '(var-e var-i var-pi var-phi var-gamma)) 125 (calc-record value (format ">%s%s" tag (calc-var-name var)))))
121 (eq (car-safe old) 'special-const) 126 (cond
122 (message "(Note: Built-in definition of %s has been lost)" var)) 127 ((and (memq var '(var-e var-i var-pi var-phi var-gamma))
123 (and (memq var '(var-inf var-uinf var-nan)) 128 (eq (car-safe old) 'special-const))
124 (null old) 129 (setq msg (format " (Note: Built-in definition of %s has been lost)"
125 (message "(Note: %s has built-in meanings which may interfere)" 130 (calc-var-name var))))
126 var)) 131 ((and (memq var '(var-inf var-uinf var-nan))
127 (calc-refresh-evaltos var)))) 132 (null old))
133 (setq msg (format " (Note: %s has built-in meanings which may interfere)"
134 (calc-var-name var)))))
135 (calc-refresh-evaltos var)))
136 msg))
128 137
129(defun calc-var-name (var) 138(defun calc-var-name (var)
130 (if (symbolp var) (setq var (symbol-name var))) 139 (if (symbolp var) (setq var (symbol-name var)))
@@ -140,8 +149,12 @@
140 (or var (setq var (calc-read-var-name (format "Store %s: " tag)))) 149 (or var (setq var (calc-read-var-name (format "Store %s: " tag))))
141 (if var 150 (if var
142 (let ((old (calc-var-value var))) 151 (let ((old (calc-var-value var)))
143 (or old 152 (if (eq (car-safe old) 'special-const)
144 (error "No such variable: \"%s\"" (calc-var-name var))) 153 (error "\"%s\" is a special constant" (calc-var-name var)))
154 (if (not old)
155 (if (memq var '(var-inf var-uinf var-nan))
156 (error "\"%s\" is a special variable" (calc-var-name var))
157 (error "No such variable: \"%s\"" (calc-var-name var))))
145 (if (stringp old) 158 (if (stringp old)
146 (setq old (math-read-expr old))) 159 (setq old (math-read-expr old)))
147 (if (eq (car-safe old) 'error) 160 (if (eq (car-safe old) 'error)
@@ -151,7 +164,7 @@
151 (list func value old) 164 (list func value old)
152 (list func old value))) 165 (list func old value)))
153 tag (and (not val) 1)) 166 tag (and (not val) 1))
154 (message "Stored to variable \"%s\"" (calc-var-name var))))))) 167 (message "Variable \"%s\" changed" (calc-var-name var)))))))
155 168
156(defvar calc-var-name-map nil "Keymap for reading Calc variable names.") 169(defvar calc-var-name-map nil "Keymap for reading Calc variable names.")
157(if calc-var-name-map 170(if calc-var-name-map
@@ -228,26 +241,32 @@
228 (or var (setq var (calc-read-var-name (format "Store Mapping %s: " 241 (or var (setq var (calc-read-var-name (format "Store Mapping %s: "
229 (nth 2 oper))))) 242 (nth 2 oper)))))
230 (if var 243 (if var
231 (let ((old (or (calc-var-value var) 244 (let ((old (calc-var-value var)))
232 (error "No such variable: \"%s\"" 245 (if (eq (car-safe old) 'special-const)
233 (calc-var-name var)))) 246 (error "\"%s\" is a special constant" (calc-var-name var)))
234 (calc-simplify-mode (if (eq calc-simplify-mode 'none) 247 (if (not old)
235 'num calc-simplify-mode)) 248 (if (memq var '(var-inf var-uinf var-nan))
236 (values (and (> nargs 1) 249 (error "\"%s\" is a special variable" (calc-var-name var))
237 (calc-top-list (1- nargs) (1+ calc-dollar-used))))) 250 (error "No such variable: \"%s\"" (calc-var-name var))))
238 (message "Working...") 251 (let ((calc-simplify-mode (if (eq calc-simplify-mode 'none)
239 (calc-set-command-flag 'clear-message) 252 'num calc-simplify-mode))
240 (if (stringp old) 253 (values (and (> nargs 1)
241 (setq old (math-read-expr old))) 254 (calc-top-list (1- nargs) (1+ calc-dollar-used)))))
242 (if (eq (car-safe old) 'error) 255 (message "Working...")
243 (error "Bad format in variable contents: %s" (nth 2 old))) 256 (calc-set-command-flag 'clear-message)
244 (setq values (if (calc-is-inverse) 257 (if (stringp old)
245 (append values (list old)) 258 (setq old (math-read-expr old)))
246 (append (list old) values))) 259 (if (eq (car-safe old) 'error)
247 (calc-store-value var 260 (error "Bad format in variable contents: %s" (nth 2 old)))
248 (calc-normalize (cons (nth 1 oper) values)) 261 (setq values (if (calc-is-inverse)
249 (nth 2 oper) 262 (append values (list old))
250 (+ calc-dollar-used (1- nargs)))))))) 263 (append (list old) values)))
264 (calc-store-value var
265 (calc-normalize (cons (nth 1 oper) values))
266 (nth 2 oper)
267 (+ calc-dollar-used (1- nargs)))
268 (message "Variable \"%s\" changed" (calc-var-name var))))))))
269
251 270
252(defun calc-store-exchange (&optional var) 271(defun calc-store-exchange (&optional var)
253 (interactive) 272 (interactive)
@@ -258,10 +277,12 @@
258 (or var (setq var (calc-read-var-name "Exchange with: "))) 277 (or var (setq var (calc-read-var-name "Exchange with: ")))
259 (if var 278 (if var
260 (let ((value (calc-var-value var))) 279 (let ((value (calc-var-value var)))
261 (or value
262 (error "No such variable: \"%s\"" (calc-var-name var)))
263 (if (eq (car-safe value) 'special-const) 280 (if (eq (car-safe value) 'special-const)
264 (error "%s is a special constant" var)) 281 (error "\"%s\" is a special constant" (calc-var-name var)))
282 (if (not value)
283 (if (memq var '(var-inf var-uinf var-nan))
284 (error "\"%s\" is a special variable" (calc-var-name var))
285 (error "No such variable: \"%s\"" (calc-var-name var))))
265 (setq top (or calc-given-value (calc-top 1))) 286 (setq top (or calc-given-value (calc-top 1)))
266 (calc-store-value var top nil) 287 (calc-store-value var top nil)
267 (calc-pop-push-record calc-given-value-flag 288 (calc-pop-push-record calc-given-value-flag
@@ -366,6 +387,26 @@
366 (interactive) 387 (interactive)
367 (calc-recall (intern (format "var-q%c" last-command-char)))) 388 (calc-recall (intern (format "var-q%c" last-command-char))))
368 389
390(defun calc-copy-special-constant (&optional sconst var)
391 (interactive)
392 (let ((sc '(("")
393 ("e" . (special-const (math-e)))
394 ("pi" . (special-const (math-pi)))
395 ("i" . (special-const (math-imaginary 1)))
396 ("phi" . (special-const (math-phi)))
397 ("gamma" . (special-const (math-gamma-const))))))
398 (calc-wrapper
399 (or sconst (setq sconst (completing-read "Special constant: " sc nil t)))
400 (unless (string= sconst "")
401 (let ((value (cdr (assoc sconst sc))))
402 (or var (setq var (calc-read-var-name
403 (format "Copy special constant %s, to: "
404 sconst))))
405 (if var
406 (let ((msg (calc-store-value var value "")))
407 (message (concat "Special constant \"%s\" copied to \"%s\"" msg)
408 sconst (calc-var-name var)))))))))
409
369(defun calc-copy-variable (&optional var1 var2) 410(defun calc-copy-variable (&optional var1 var2)
370 (interactive) 411 (interactive)
371 (calc-wrapper 412 (calc-wrapper
@@ -378,7 +419,9 @@
378 (format "Copy variable: %s, to: " 419 (format "Copy variable: %s, to: "
379 (calc-var-name var1))))) 420 (calc-var-name var1)))))
380 (if var2 421 (if var2
381 (calc-store-value var2 value "")))))) 422 (let ((msg (calc-store-value var2 value "")))
423 (message (concat "Variable \"%s\" copied to \"%s\"" msg)
424 (calc-var-name var1) (calc-var-name var2))))))))
382 425
383(defvar calc-last-edited-variable nil) 426(defvar calc-last-edited-variable nil)
384(defun calc-edit-variable (&optional var) 427(defun calc-edit-variable (&optional var)
diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el
index 288ec70b00e..c6e8d8bbf27 100644
--- a/lisp/calc/calc-stuff.el
+++ b/lisp/calc/calc-stuff.el
@@ -1,6 +1,6 @@
1;;; calc-stuff.el --- miscellaneous functions for Calc 1;;; calc-stuff.el --- miscellaneous functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-trail.el b/lisp/calc/calc-trail.el
index 4ecc9a06651..e86117585ff 100644
--- a/lisp/calc/calc-trail.el
+++ b/lisp/calc/calc-trail.el
@@ -1,6 +1,6 @@
1;;; calc-trail.el --- functions for manipulating the Calc "trail" 1;;; calc-trail.el --- functions for manipulating the Calc "trail"
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-undo.el b/lisp/calc/calc-undo.el
index d946a1390d3..1837fe071f6 100644
--- a/lisp/calc/calc-undo.el
+++ b/lisp/calc/calc-undo.el
@@ -1,6 +1,6 @@
1;;; calc-undo.el --- undo functions for Calc 1;;; calc-undo.el --- undo functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el
index efe2e30ce71..1153eabed57 100644
--- a/lisp/calc/calc-vec.el
+++ b/lisp/calc/calc-vec.el
@@ -1,6 +1,6 @@
1;;; calc-vec.el --- vector functions for Calc 1;;; calc-vec.el --- vector functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 617fc1ddc89..173785dc912 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -1,6 +1,6 @@
1;;; calc.el --- the GNU Emacs calculator 1;;; calc.el --- the GNU Emacs calculator
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: David Gillespie <daveg@synaptics.com> 6;; Author: David Gillespie <daveg@synaptics.com>
diff --git a/lisp/calc/calcalg3.el b/lisp/calc/calcalg3.el
index bbba841c220..3fff729a012 100644
--- a/lisp/calc/calcalg3.el
+++ b/lisp/calc/calcalg3.el
@@ -1,6 +1,6 @@
1;;; calcalg3.el --- more algebraic functions for Calc 1;;; calcalg3.el --- more algebraic functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calcsel2.el b/lisp/calc/calcsel2.el
index 20020f57468..2a322b8b74b 100644
--- a/lisp/calc/calcsel2.el
+++ b/lisp/calc/calcsel2.el
@@ -1,6 +1,6 @@
1;;; calcsel2.el --- selection functions for Calc 1;;; calcsel2.el --- selection functions for Calc
2 2
3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: David Gillespie <daveg@synaptics.com> 5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Jay Belanger <belanger@truman.edu> 6;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calculator.el b/lisp/calculator.el
index 76ff4053c7f..f11be4747b1 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -105,15 +105,21 @@ at runtime."
105 "*Use digit grouping in radix output mode. 105 "*Use digit grouping in radix output mode.
106If this is set, chunks of `calculator-radix-grouping-digits' characters 106If this is set, chunks of `calculator-radix-grouping-digits' characters
107will be separated by `calculator-radix-grouping-separator' when in radix 107will be separated by `calculator-radix-grouping-separator' when in radix
108output mode is active (determined by `calculator-output-radix').") 108output mode is active (determined by `calculator-output-radix')."
109 :type 'boolean
110 :group 'calculator)
109 111
110(defcustom calculator-radix-grouping-digits 4 112(defcustom calculator-radix-grouping-digits 4
111 "*The number of digits used for grouping display in radix modes. 113 "*The number of digits used for grouping display in radix modes.
112See `calculator-radix-grouping-mode'.") 114See `calculator-radix-grouping-mode'."
115 :type 'integer
116 :group 'calculator)
113 117
114(defcustom calculator-radix-grouping-separator "'" 118(defcustom calculator-radix-grouping-separator "'"
115 "*The separator used in radix grouping display. 119 "*The separator used in radix grouping display.
116See `calculator-radix-grouping-mode'.") 120See `calculator-radix-grouping-mode'."
121 :type 'string
122 :group 'calculator)
117 123
118(defcustom calculator-remove-zeros t 124(defcustom calculator-remove-zeros t
119 "*Non-nil value means delete all redundant zero decimal digits. 125 "*Non-nil value means delete all redundant zero decimal digits.
@@ -140,7 +146,8 @@ of digits displayed).
140 146
141An exception to the above is the case of the list (std C) where C is a 147An exception to the above is the case of the list (std C) where C is a
142character, in this case the `calculator-standard-displayer' function 148character, in this case the `calculator-standard-displayer' function
143will be used with this character for a format string.") 149will be used with this character for a format string."
150 :group 'calculator)
144 151
145(defcustom calculator-displayers 152(defcustom calculator-displayers
146 '(((std ?n) "Standard display, decimal point or scientific") 153 '(((std ?n) "Standard display, decimal point or scientific")
@@ -169,7 +176,9 @@ floats, otherwise the Emacs reader will fail on them."
169 "*If non-nil, this is any value that can be used for 176 "*If non-nil, this is any value that can be used for
170`calculator-displayer', to format a string before copying it with 177`calculator-displayer', to format a string before copying it with
171`calculator-copy'. If nil, then `calculator-displayer's normal value is 178`calculator-copy'. If nil, then `calculator-displayer's normal value is
172used.") 179used."
180 :type 'boolean
181 :group 'calculator)
173 182
174(defcustom calculator-2s-complement nil 183(defcustom calculator-2s-complement nil
175 "*If non-nil, show negative numbers in 2s complement in radix modes. 184 "*If non-nil, show negative numbers in 2s complement in radix modes.
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index d007e5b4546..c3f29e3d371 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -633,11 +633,11 @@ hour and minute parts."
633 (min 0)) 633 (min 0))
634 634
635 (string-match "[:.]\\([0-9][0-9]\\)" time2conv) 635 (string-match "[:.]\\([0-9][0-9]\\)" time2conv)
636 (setq min (string-to-int 636 (setq min (string-to-number
637 (match-string 1 time2conv))) 637 (match-string 1 time2conv)))
638 638
639 (string-match "[0-9]?[0-9][:.]" time2conv) 639 (string-match "[0-9]?[0-9][:.]" time2conv)
640 (setq hr (string-to-int 640 (setq hr (string-to-number
641 (match-string 0 time2conv))) 641 (match-string 0 time2conv)))
642 642
643 ;; convert the time appointment time into 24 hour time 643 ;; convert the time appointment time into 24 hour time
diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
index 2bcfaf648ec..7e6149d8e94 100644
--- a/lisp/calendar/cal-bahai.el
+++ b/lisp/calendar/cal-bahai.el
@@ -340,13 +340,13 @@ nongregorian-diary-marking-hook."
340 (buffer-substring 340 (buffer-substring
341 (match-beginning m-name-pos) 341 (match-beginning m-name-pos)
342 (match-end m-name-pos)))) 342 (match-end m-name-pos))))
343 (mm (string-to-int 343 (mm (string-to-number
344 (if m-pos 344 (if m-pos
345 (buffer-substring 345 (buffer-substring
346 (match-beginning m-pos) 346 (match-beginning m-pos)
347 (match-end m-pos)) 347 (match-end m-pos))
348 ""))) 348 "")))
349 (dd (string-to-int 349 (dd (string-to-number
350 (if d-pos 350 (if d-pos
351 (buffer-substring 351 (buffer-substring
352 (match-beginning d-pos) 352 (match-beginning d-pos)
@@ -365,14 +365,14 @@ nongregorian-diary-marking-hook."
365 (calendar-bahai-from-absolute 365 (calendar-bahai-from-absolute
366 (calendar-absolute-from-gregorian 366 (calendar-absolute-from-gregorian
367 (calendar-current-date))))) 367 (calendar-current-date)))))
368 (y (+ (string-to-int y-str) 368 (y (+ (string-to-number y-str)
369 (* 100 (/ current-y 100))))) 369 (* 100 (/ current-y 100)))))
370 (if (> (- y current-y) 50) 370 (if (> (- y current-y) 50)
371 (- y 100) 371 (- y 100)
372 (if (> (- current-y y) 50) 372 (if (> (- current-y y) 50)
373 (+ y 100) 373 (+ y 100)
374 y))) 374 y)))
375 (string-to-int y-str))))) 375 (string-to-number y-str)))))
376 (if dd-name 376 (if dd-name
377 (mark-calendar-days-named 377 (mark-calendar-days-named
378 (cdr (assoc-string (substring dd-name 0 3) 378 (cdr (assoc-string (substring dd-name 0 3)
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index f66b4966e57..8f9f7723d5d 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -718,13 +718,13 @@ is provided for use as part of the nongregorian-diary-marking-hook."
718 (buffer-substring 718 (buffer-substring
719 (match-beginning m-name-pos) 719 (match-beginning m-name-pos)
720 (match-end m-name-pos)))) 720 (match-end m-name-pos))))
721 (mm (string-to-int 721 (mm (string-to-number
722 (if m-pos 722 (if m-pos
723 (buffer-substring 723 (buffer-substring
724 (match-beginning m-pos) 724 (match-beginning m-pos)
725 (match-end m-pos)) 725 (match-end m-pos))
726 ""))) 726 "")))
727 (dd (string-to-int 727 (dd (string-to-number
728 (if d-pos 728 (if d-pos
729 (buffer-substring 729 (buffer-substring
730 (match-beginning d-pos) 730 (match-beginning d-pos)
@@ -743,14 +743,14 @@ is provided for use as part of the nongregorian-diary-marking-hook."
743 (calendar-hebrew-from-absolute 743 (calendar-hebrew-from-absolute
744 (calendar-absolute-from-gregorian 744 (calendar-absolute-from-gregorian
745 (calendar-current-date))))) 745 (calendar-current-date)))))
746 (y (+ (string-to-int y-str) 746 (y (+ (string-to-number y-str)
747 (* 100 (/ current-y 100))))) 747 (* 100 (/ current-y 100)))))
748 (if (> (- y current-y) 50) 748 (if (> (- y current-y) 50)
749 (- y 100) 749 (- y 100)
750 (if (> (- current-y y) 50) 750 (if (> (- current-y y) 50)
751 (+ y 100) 751 (+ y 100)
752 y))) 752 y)))
753 (string-to-int y-str))))) 753 (string-to-number y-str)))))
754 (if dd-name 754 (if dd-name
755 (mark-calendar-days-named 755 (mark-calendar-days-named
756 (cdr (assoc-string dd-name 756 (cdr (assoc-string dd-name
diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el
index 1ac6f0677b1..786c71f24ce 100644
--- a/lisp/calendar/cal-islam.el
+++ b/lisp/calendar/cal-islam.el
@@ -337,13 +337,13 @@ provided for use as part of the nongregorian-diary-marking-hook."
337 (buffer-substring 337 (buffer-substring
338 (match-beginning m-name-pos) 338 (match-beginning m-name-pos)
339 (match-end m-name-pos)))) 339 (match-end m-name-pos))))
340 (mm (string-to-int 340 (mm (string-to-number
341 (if m-pos 341 (if m-pos
342 (buffer-substring 342 (buffer-substring
343 (match-beginning m-pos) 343 (match-beginning m-pos)
344 (match-end m-pos)) 344 (match-end m-pos))
345 ""))) 345 "")))
346 (dd (string-to-int 346 (dd (string-to-number
347 (if d-pos 347 (if d-pos
348 (buffer-substring 348 (buffer-substring
349 (match-beginning d-pos) 349 (match-beginning d-pos)
@@ -362,14 +362,14 @@ provided for use as part of the nongregorian-diary-marking-hook."
362 (calendar-islamic-from-absolute 362 (calendar-islamic-from-absolute
363 (calendar-absolute-from-gregorian 363 (calendar-absolute-from-gregorian
364 (calendar-current-date))))) 364 (calendar-current-date)))))
365 (y (+ (string-to-int y-str) 365 (y (+ (string-to-number y-str)
366 (* 100 (/ current-y 100))))) 366 (* 100 (/ current-y 100)))))
367 (if (> (- y current-y) 50) 367 (if (> (- y current-y) 50)
368 (- y 100) 368 (- y 100)
369 (if (> (- current-y y) 50) 369 (if (> (- current-y y) 50)
370 (+ y 100) 370 (+ y 100)
371 y))) 371 y)))
372 (string-to-int y-str))))) 372 (string-to-number y-str)))))
373 (if dd-name 373 (if dd-name
374 (mark-calendar-days-named 374 (mark-calendar-days-named
375 (cdr (assoc-string dd-name 375 (cdr (assoc-string dd-name
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 305ecc1e9bc..45754110319 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -2574,7 +2574,7 @@ ERROR is t, otherwise just returns nil."
2574 (if (not (looking-at " ")) 2574 (if (not (looking-at " "))
2575 (re-search-backward "[^0-9]")) 2575 (re-search-backward "[^0-9]"))
2576 (list month 2576 (list month
2577 (string-to-int (buffer-substring (1+ (point)) (+ 4 (point)))) 2577 (string-to-number (buffer-substring (1+ (point)) (+ 4 (point))))
2578 year)) 2578 year))
2579 (if (looking-at "\\*") 2579 (if (looking-at "\\*")
2580 (save-excursion 2580 (save-excursion
@@ -2964,7 +2964,7 @@ calendar window has been prepared."
2964 (make-local-variable 'calendar-starred-day) 2964 (make-local-variable 'calendar-starred-day)
2965 (forward-char 1) 2965 (forward-char 1)
2966 (setq calendar-starred-day 2966 (setq calendar-starred-day
2967 (string-to-int 2967 (string-to-number
2968 (buffer-substring (point) (- (point) 2)))) 2968 (buffer-substring (point) (- (point) 2))))
2969 (delete-char -2) 2969 (delete-char -2)
2970 (insert "**") 2970 (insert "**")
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 1832e0cd0fb..312b8841cf9 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -205,7 +205,7 @@ Valid TYPEs are: string, symbol, int, stringtnil, tnil."
205 (let (ret) 205 (let (ret)
206 (setq ret (cond ((eq type 'string) attrvalue) 206 (setq ret (cond ((eq type 'string) attrvalue)
207 ((eq type 'symbol) (read attrvalue)) 207 ((eq type 'symbol) (read attrvalue))
208 ((eq type 'int) (string-to-int attrvalue)) 208 ((eq type 'int) (string-to-number attrvalue))
209 ((eq type 'stringtnil) 209 ((eq type 'stringtnil)
210 (cond ((string= "t" attrvalue) t) 210 (cond ((string= "t" attrvalue) t)
211 ((string= "nil" attrvalue) nil) 211 ((string= "nil" attrvalue) nil)
@@ -908,13 +908,13 @@ diary entries."
908 (buffer-substring-no-properties 908 (buffer-substring-no-properties
909 (match-beginning m-name-pos) 909 (match-beginning m-name-pos)
910 (match-end m-name-pos)))) 910 (match-end m-name-pos))))
911 (mm (string-to-int 911 (mm (string-to-number
912 (if m-pos 912 (if m-pos
913 (buffer-substring-no-properties 913 (buffer-substring-no-properties
914 (match-beginning m-pos) 914 (match-beginning m-pos)
915 (match-end m-pos)) 915 (match-end m-pos))
916 ""))) 916 "")))
917 (dd (string-to-int 917 (dd (string-to-number
918 (if d-pos 918 (if d-pos
919 (buffer-substring-no-properties 919 (buffer-substring-no-properties
920 (match-beginning d-pos) 920 (match-beginning d-pos)
@@ -931,7 +931,7 @@ diary entries."
931 (let* ((current-y 931 (let* ((current-y
932 (extract-calendar-year 932 (extract-calendar-year
933 (calendar-current-date))) 933 (calendar-current-date)))
934 (y (+ (string-to-int y-str) 934 (y (+ (string-to-number y-str)
935 (* 100 935 (* 100
936 (/ current-y 100))))) 936 (/ current-y 100)))))
937 (if (> (- y current-y) 50) 937 (if (> (- y current-y) 50)
@@ -939,7 +939,7 @@ diary entries."
939 (if (> (- current-y y) 50) 939 (if (> (- current-y y) 50)
940 (+ y 100) 940 (+ y 100)
941 y))) 941 y)))
942 (string-to-int y-str)))) 942 (string-to-number y-str))))
943 (save-excursion 943 (save-excursion
944 (setq entry (buffer-substring-no-properties 944 (setq entry (buffer-substring-no-properties
945 (point) (line-end-position)) 945 (point) (line-end-position))
@@ -1149,22 +1149,22 @@ be used instead of a colon (:) to separate the hour and minute parts."
1149 (cond ((string-match ; Military time 1149 (cond ((string-match ; Military time
1150 "\\`[ \t\n\\^M]*\\([0-9]?[0-9]\\)[:.]?\\([0-9][0-9]\\)\\(\\>\\|[^ap]\\)" 1150 "\\`[ \t\n\\^M]*\\([0-9]?[0-9]\\)[:.]?\\([0-9][0-9]\\)\\(\\>\\|[^ap]\\)"
1151 s) 1151 s)
1152 (+ (* 100 (string-to-int 1152 (+ (* 100 (string-to-number
1153 (substring s (match-beginning 1) (match-end 1)))) 1153 (substring s (match-beginning 1) (match-end 1))))
1154 (string-to-int (substring s (match-beginning 2) (match-end 2))))) 1154 (string-to-number (substring s (match-beginning 2) (match-end 2)))))
1155 ((string-match ; Hour only XXam or XXpm 1155 ((string-match ; Hour only XXam or XXpm
1156 "\\`[ \t\n\\^M]*\\([0-9]?[0-9]\\)\\([ap]\\)m\\>" s) 1156 "\\`[ \t\n\\^M]*\\([0-9]?[0-9]\\)\\([ap]\\)m\\>" s)
1157 (+ (* 100 (% (string-to-int 1157 (+ (* 100 (% (string-to-number
1158 (substring s (match-beginning 1) (match-end 1))) 1158 (substring s (match-beginning 1) (match-end 1)))
1159 12)) 1159 12))
1160 (if (equal ?a (downcase (aref s (match-beginning 2)))) 1160 (if (equal ?a (downcase (aref s (match-beginning 2))))
1161 0 1200))) 1161 0 1200)))
1162 ((string-match ; Hour and minute XX:XXam or XX:XXpm 1162 ((string-match ; Hour and minute XX:XXam or XX:XXpm
1163 "\\`[ \t\n\\^M]*\\([0-9]?[0-9]\\)[:.]\\([0-9][0-9]\\)\\([ap]\\)m\\>" s) 1163 "\\`[ \t\n\\^M]*\\([0-9]?[0-9]\\)[:.]\\([0-9][0-9]\\)\\([ap]\\)m\\>" s)
1164 (+ (* 100 (% (string-to-int 1164 (+ (* 100 (% (string-to-number
1165 (substring s (match-beginning 1) (match-end 1))) 1165 (substring s (match-beginning 1) (match-end 1)))
1166 12)) 1166 12))
1167 (string-to-int (substring s (match-beginning 2) (match-end 2))) 1167 (string-to-number (substring s (match-beginning 2) (match-end 2)))
1168 (if (equal ?a (downcase (aref s (match-beginning 3)))) 1168 (if (equal ?a (downcase (aref s (match-beginning 3))))
1169 0 1200))) 1169 0 1200)))
1170 (t diary-unknown-time)))) ; Unrecognizable 1170 (t diary-unknown-time)))) ; Unrecognizable
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index 5eca356af59..8401aeb9bfd 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -227,7 +227,7 @@ Needed for polar areas, in order to know whether the day lasts 0 or 24 hours.")
227Returns nil if nothing was entered." 227Returns nil if nothing was entered."
228 (let ((x (read-string prompt ""))) 228 (let ((x (read-string prompt "")))
229 (if (not (string-equal x "")) 229 (if (not (string-equal x ""))
230 (string-to-int x)))) 230 (string-to-number x))))
231 231
232;; The condition-case stuff is needed to catch bogus arithmetic 232;; The condition-case stuff is needed to catch bogus arithmetic
233;; exceptions that occur on some machines (like Sparcs) 233;; exceptions that occur on some machines (like Sparcs)
@@ -643,48 +643,6 @@ since January 1st, 2000, at 12 ET."
643 ; equation of time, in hours 643 ; equation of time, in hours
644 (list app i time-eq nut))) 644 (list app i time-eq nut)))
645 645
646(defun solar-longitude (d)
647 "Longitude of sun on astronomical (Julian) day number D.
648Accurary is about 0.0006 degree (about 365.25*24*60*0.0006/360 = 1 minutes).
649
650The values of calendar-daylight-savings-starts,
651calendar-daylight-savings-starts-time, calendar-daylight-savings-ends,
652calendar-daylight-savings-ends-time, calendar-daylight-time-offset, and
653calendar-time-zone are used to interpret local time."
654 (let* ((a-d (calendar-absolute-from-astro d))
655 ;; get Universal Time
656 (date (calendar-astro-from-absolute
657 (- a-d
658 (if (dst-in-effect a-d)
659 (/ calendar-daylight-time-offset 24.0 60.0) 0)
660 (/ calendar-time-zone 60.0 24.0))))
661 ;; get Ephemeris Time
662 (date (+ date (solar-ephemeris-correction
663 (extract-calendar-year
664 (calendar-gregorian-from-absolute
665 (floor
666 (calendar-absolute-from-astro
667 date)))))))
668 (U (/ (- date 2451545) 3652500))
669 (longitude
670 (+ 4.9353929
671 (* 62833.1961680 U)
672 (* 0.0000001
673 (apply '+
674 (mapcar '(lambda (x)
675 (* (car x)
676 (sin (mod
677 (+ (car (cdr x))
678 (* (car (cdr (cdr x))) U))
679 (* 2 pi)))))
680 solar-data-list)))))
681 (aberration
682 (* 0.0000001 (- (* 17 (cos (+ 3.10 (* 62830.14 U)))) 973)))
683 (A1 (mod (+ 2.18 (* U (+ -3375.70 (* 0.36 U)))) (* 2 pi)))
684 (A2 (mod (+ 3.51 (* U (+ 125666.39 (* 0.10 U)))) (* 2 pi)))
685 (nutation (* -0.0000001 (+ (* 834 (sin A1)) (* 64 (sin A2))))))
686 (mod (radians-to-degrees (+ longitude aberration nutation)) 360.0)))
687
688(defconst solar-data-list 646(defconst solar-data-list
689 '((403406 4.721964 1.621043) 647 '((403406 4.721964 1.621043)
690 (195207 5.937458 62830.348067) 648 (195207 5.937458 62830.348067)
@@ -737,6 +695,48 @@ calendar-time-zone are used to interpret local time."
737 (10 1.50 21463.25) 695 (10 1.50 21463.25)
738 (10 2.55 157208.40))) 696 (10 2.55 157208.40)))
739 697
698(defun solar-longitude (d)
699 "Longitude of sun on astronomical (Julian) day number D.
700Accurary is about 0.0006 degree (about 365.25*24*60*0.0006/360 = 1 minutes).
701
702The values of calendar-daylight-savings-starts,
703calendar-daylight-savings-starts-time, calendar-daylight-savings-ends,
704calendar-daylight-savings-ends-time, calendar-daylight-time-offset, and
705calendar-time-zone are used to interpret local time."
706 (let* ((a-d (calendar-absolute-from-astro d))
707 ;; get Universal Time
708 (date (calendar-astro-from-absolute
709 (- a-d
710 (if (dst-in-effect a-d)
711 (/ calendar-daylight-time-offset 24.0 60.0) 0)
712 (/ calendar-time-zone 60.0 24.0))))
713 ;; get Ephemeris Time
714 (date (+ date (solar-ephemeris-correction
715 (extract-calendar-year
716 (calendar-gregorian-from-absolute
717 (floor
718 (calendar-absolute-from-astro
719 date)))))))
720 (U (/ (- date 2451545) 3652500))
721 (longitude
722 (+ 4.9353929
723 (* 62833.1961680 U)
724 (* 0.0000001
725 (apply '+
726 (mapcar '(lambda (x)
727 (* (car x)
728 (sin (mod
729 (+ (car (cdr x))
730 (* (car (cdr (cdr x))) U))
731 (* 2 pi)))))
732 solar-data-list)))))
733 (aberration
734 (* 0.0000001 (- (* 17 (cos (+ 3.10 (* 62830.14 U)))) 973)))
735 (A1 (mod (+ 2.18 (* U (+ -3375.70 (* 0.36 U)))) (* 2 pi)))
736 (A2 (mod (+ 3.51 (* U (+ 125666.39 (* 0.10 U)))) (* 2 pi)))
737 (nutation (* -0.0000001 (+ (* 834 (sin A1)) (* 64 (sin A2))))))
738 (mod (radians-to-degrees (+ longitude aberration nutation)) 360.0)))
739
740(defun solar-ephemeris-correction (year) 740(defun solar-ephemeris-correction (year)
741 "Ephemeris time minus Universal Time during Gregorian year. 741 "Ephemeris time minus Universal Time during Gregorian year.
742Result is in days. 742Result is in days.
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el
index 22e81db9210..5dea9892115 100644
--- a/lisp/dabbrev.el
+++ b/lisp/dabbrev.el
@@ -282,7 +282,8 @@ A mode setting this variable should make it buffer local."
282 "If non-nil, a list of buffers which dabbrev should search. 282 "If non-nil, a list of buffers which dabbrev should search.
283If this variable is non-nil, dabbrev will only look in these buffers. 283If this variable is non-nil, dabbrev will only look in these buffers.
284It will not even look in the current buffer if it is not a member of 284It will not even look in the current buffer if it is not a member of
285this list.") 285this list."
286 :group 'dabbrev)
286 287
287;;---------------------------------------------------------------- 288;;----------------------------------------------------------------
288;; Internal variables 289;; Internal variables
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el
index d69685ac86f..c16738f6570 100644
--- a/lisp/diff-mode.el
+++ b/lisp/diff-mode.el
@@ -70,7 +70,8 @@
70(defcustom diff-jump-to-old-file nil 70(defcustom diff-jump-to-old-file nil
71 "*Non-nil means `diff-goto-source' jumps to the old file. 71 "*Non-nil means `diff-goto-source' jumps to the old file.
72Else, it jumps to the new file." 72Else, it jumps to the new file."
73 :type '(boolean)) 73 :type 'boolean
74 :group 'diff-mode)
74 75
75(defcustom diff-update-on-the-fly t 76(defcustom diff-update-on-the-fly t
76 "*Non-nil means hunk headers are kept up-to-date on-the-fly. 77 "*Non-nil means hunk headers are kept up-to-date on-the-fly.
@@ -79,17 +80,20 @@ need to be kept consistent with the actual diff. This can
79either be done on the fly (but this sometimes interacts poorly with the 80either be done on the fly (but this sometimes interacts poorly with the
80undo mechanism) or whenever the file is written (can be slow 81undo mechanism) or whenever the file is written (can be slow
81when editing big diffs)." 82when editing big diffs)."
82 :type '(boolean)) 83 :type 'boolean
84 :group 'diff-mode)
83 85
84(defcustom diff-advance-after-apply-hunk t 86(defcustom diff-advance-after-apply-hunk t
85 "*Non-nil means `diff-apply-hunk' will move to the next hunk after applying." 87 "*Non-nil means `diff-apply-hunk' will move to the next hunk after applying."
86 :type 'boolean) 88 :type 'boolean
89 :group 'diff-mode)
87 90
88 91
89(defcustom diff-mode-hook nil 92(defcustom diff-mode-hook nil
90 "Run after setting up the `diff-mode' major mode." 93 "Run after setting up the `diff-mode' major mode."
91 :type 'hook 94 :type 'hook
92 :options '(diff-delete-empty-files diff-make-unified)) 95 :options '(diff-delete-empty-files diff-make-unified)
96 :group 'diff-mode)
93 97
94(defvar diff-outline-regexp 98(defvar diff-outline-regexp
95 "\\([*+][*+][*+] [^0-9]\\|@@ ...\\|\\*\\*\\* [0-9].\\|--- [0-9]..\\)") 99 "\\([*+][*+][*+] [^0-9]\\|@@ ...\\|\\*\\*\\* [0-9].\\|--- [0-9]..\\)")
@@ -159,7 +163,8 @@ when editing big diffs)."
159 163
160(defcustom diff-minor-mode-prefix "\C-c=" 164(defcustom diff-minor-mode-prefix "\C-c="
161 "Prefix key for `diff-minor-mode' commands." 165 "Prefix key for `diff-minor-mode' commands."
162 :type '(choice (string "\e") (string "C-c=") string)) 166 :type '(choice (string "\e") (string "C-c=") string)
167 :group 'diff-mode)
163 168
164(easy-mmode-defmap diff-minor-mode-map 169(easy-mmode-defmap diff-minor-mode-map
165 `((,diff-minor-mode-prefix . ,diff-mode-shared-map)) 170 `((,diff-minor-mode-prefix . ,diff-mode-shared-map))
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 9a1449823ca..eec3045b53a 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -428,7 +428,7 @@ with a prefix argument."
428 (setq base-version-list ; there was a base version to which 428 (setq base-version-list ; there was a base version to which
429 (assoc (substring fn 0 start-vn) ; this looks like a 429 (assoc (substring fn 0 start-vn) ; this looks like a
430 dired-file-version-alist)) ; subversion 430 dired-file-version-alist)) ; subversion
431 (not (memq (string-to-int (substring fn (+ 2 start-vn))) 431 (not (memq (string-to-number (substring fn (+ 2 start-vn)))
432 base-version-list)) ; this one doesn't make the cut 432 base-version-list)) ; this one doesn't make the cut
433 (progn (beginning-of-line) 433 (progn (beginning-of-line)
434 (delete-char 1) 434 (delete-char 1)
@@ -760,7 +760,10 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
760 ;; The files used are determined by ARG (as in dired-get-marked-files). 760 ;; The files used are determined by ARG (as in dired-get-marked-files).
761 (or (eq dired-no-confirm t) 761 (or (eq dired-no-confirm t)
762 (memq op-symbol dired-no-confirm) 762 (memq op-symbol dired-no-confirm)
763 (let ((files (dired-get-marked-files t arg)) 763 ;; Pass t for DISTINGUISH-ONE-MARKED so that a single file which
764 ;; is marked pops up a window. That will help the user see
765 ;; it isn't the current line file.
766 (let ((files (dired-get-marked-files t arg nil t))
764 (string (if (eq op-symbol 'compress) "Compress or uncompress" 767 (string (if (eq op-symbol 'compress) "Compress or uncompress"
765 (capitalize (symbol-name op-symbol))))) 768 (capitalize (symbol-name op-symbol)))))
766 (dired-mark-pop-up nil op-symbol files (function y-or-n-p) 769 (dired-mark-pop-up nil op-symbol files (function y-or-n-p)
@@ -1132,23 +1135,29 @@ Special value `always' suppresses confirmation."
1132 1135
1133(defun dired-copy-file-recursive (from to ok-flag &optional 1136(defun dired-copy-file-recursive (from to ok-flag &optional
1134 preserve-time top recursive) 1137 preserve-time top recursive)
1135 (if (and recursive 1138 (let ((attrs (file-attributes from)))
1136 (eq t (car (file-attributes from))) ; A directory, no symbolic link. 1139 (if (and recursive
1137 (or (eq recursive 'always) 1140 (eq t (car attrs))
1138 (yes-or-no-p (format "Recursive copies of %s " from)))) 1141 (or (eq recursive 'always)
1139 (let ((files (directory-files from nil dired-re-no-dot))) 1142 (yes-or-no-p (format "Recursive copies of %s " from))))
1140 (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask any more. 1143 ;; This is a directory.
1141 (if (file-exists-p to) 1144 (let ((files (directory-files from nil dired-re-no-dot)))
1142 (or top (dired-handle-overwrite to)) 1145 (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask any more.
1143 (make-directory to)) 1146 (if (file-exists-p to)
1144 (while files 1147 (or top (dired-handle-overwrite to))
1145 (dired-copy-file-recursive 1148 (make-directory to))
1146 (expand-file-name (car files) from) 1149 (while files
1147 (expand-file-name (car files) to) 1150 (dired-copy-file-recursive
1148 ok-flag preserve-time nil recursive) 1151 (expand-file-name (car files) from)
1149 (setq files (cdr files)))) 1152 (expand-file-name (car files) to)
1150 (or top (dired-handle-overwrite to)) ; Just a file. 1153 ok-flag preserve-time nil recursive)
1151 (copy-file from to ok-flag dired-copy-preserve-time))) 1154 (setq files (cdr files))))
1155 ;; Not a directory.
1156 (or top (dired-handle-overwrite to))
1157 (if (stringp (car attrs))
1158 ;; It is a symlink
1159 (make-symbolic-link (car attrs) to ok-flag)
1160 (copy-file from to ok-flag dired-copy-preserve-time)))))
1152 1161
1153;;;###autoload 1162;;;###autoload
1154(defun dired-rename-file (file newname ok-if-already-exists) 1163(defun dired-rename-file (file newname ok-if-already-exists)
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 6b44b73b170..86c955650e8 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -1501,10 +1501,10 @@ to mark all zero length files."
1501 (if (looking-at dired-re-inode-size) 1501 (if (looking-at dired-re-inode-size)
1502 (progn 1502 (progn
1503 (goto-char (match-end 0)) 1503 (goto-char (match-end 0))
1504 (setq inode (string-to-int (buffer-substring (match-beginning 1) 1504 (setq inode (string-to-number (buffer-substring (match-beginning 1)
1505 (match-end 1))) 1505 (match-end 1)))
1506 s (string-to-int (buffer-substring (match-beginning 2) 1506 s (string-to-number (buffer-substring (match-beginning 2)
1507 (match-end 2))))) 1507 (match-end 2)))))
1508 (setq inode nil 1508 (setq inode nil
1509 s nil)) 1509 s nil))
1510 (setq mode (buffer-substring (point) (+ mode-len (point)))) 1510 (setq mode (buffer-substring (point) (+ mode-len (point))))
@@ -1516,10 +1516,10 @@ to mark all zero length files."
1516 (re-search-forward dired-move-to-filename-regexp) 1516 (re-search-forward dired-move-to-filename-regexp)
1517 (goto-char (match-beginning 1)) 1517 (goto-char (match-beginning 1))
1518 (forward-char -1) 1518 (forward-char -1)
1519 (setq size (string-to-int (buffer-substring (save-excursion 1519 (setq size (string-to-number (buffer-substring (save-excursion
1520 (backward-word 1) 1520 (backward-word 1)
1521 (setq pos (point))) 1521 (setq pos (point)))
1522 (point)))) 1522 (point))))
1523 (goto-char pos) 1523 (goto-char pos)
1524 (backward-word 1) 1524 (backward-word 1)
1525 ;; if no gid is displayed, gid will be set to uid 1525 ;; if no gid is displayed, gid will be set to uid
diff --git a/lisp/dired.el b/lisp/dired.el
index afea6b173a6..43f05dcf881 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -450,7 +450,8 @@ Return value is the number of files marked, or nil if none were marked."
450 "flagged" "marked")))) 450 "flagged" "marked"))))
451 (and (> count 0) count))) 451 (and (> count 0) count)))
452 452
453(defmacro dired-map-over-marks (body arg &optional show-progress) 453(defmacro dired-map-over-marks (body arg &optional show-progress
454 distinguish-one-marked)
454 "Eval BODY with point on each marked line. Return a list of BODY's results. 455 "Eval BODY with point on each marked line. Return a list of BODY's results.
455If no marked file could be found, execute BODY on the current line. 456If no marked file could be found, execute BODY on the current line.
456 If ARG is an integer, use the next ARG (or previous -ARG, if ARG<0) 457 If ARG is an integer, use the next ARG (or previous -ARG, if ARG<0)
@@ -465,7 +466,10 @@ No guarantee is made about the position on the marked line.
465Search starts at the beginning of the buffer, thus the car of the list 466Search starts at the beginning of the buffer, thus the car of the list
466 corresponds to the line nearest to the buffer's bottom. This 467 corresponds to the line nearest to the buffer's bottom. This
467 is also true for (positive and negative) integer values of ARG. 468 is also true for (positive and negative) integer values of ARG.
468BODY should not be too long as it is expanded four times." 469BODY should not be too long as it is expanded four times.
470
471If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file,
472return (t FILENAME) instead of (FILENAME)."
469 ;; 473 ;;
470 ;;Warning: BODY must not add new lines before point - this may cause an 474 ;;Warning: BODY must not add new lines before point - this may cause an
471 ;;endless loop. 475 ;;endless loop.
@@ -505,13 +509,15 @@ BODY should not be too long as it is expanded four times."
505 (set-marker next-position nil) 509 (set-marker next-position nil)
506 (setq next-position (and (re-search-forward regexp nil t) 510 (setq next-position (and (re-search-forward regexp nil t)
507 (point-marker))))) 511 (point-marker)))))
512 (if (and ,distinguish-one-marked (= (length results) 1))
513 (setq results (cons t results)))
508 (if found 514 (if found
509 results 515 results
510 (list ,body))))) 516 (list ,body)))))
511 ;; save-excursion loses, again 517 ;; save-excursion loses, again
512 (dired-move-to-filename))) 518 (dired-move-to-filename)))
513 519
514(defun dired-get-marked-files (&optional localp arg filter) 520(defun dired-get-marked-files (&optional localp arg filter distinguish-one-marked)
515 "Return the marked files' names as list of strings. 521 "Return the marked files' names as list of strings.
516The list is in the same order as the buffer, that is, the car is the 522The list is in the same order as the buffer, that is, the car is the
517 first marked file. 523 first marked file.
@@ -522,13 +528,21 @@ Optional second argument ARG specifies files near point
522 If ARG is otherwise non-nil, use file. Usually ARG comes from 528 If ARG is otherwise non-nil, use file. Usually ARG comes from
523 the command's prefix arg. 529 the command's prefix arg.
524Optional third argument FILTER, if non-nil, is a function to select 530Optional third argument FILTER, if non-nil, is a function to select
525 some of the files--those for which (funcall FILTER FILENAME) is non-nil." 531 some of the files--those for which (funcall FILTER FILENAME) is non-nil.
526 (let ((all-of-them 532
527 (save-excursion 533If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file,
528 (dired-map-over-marks (dired-get-filename localp) arg))) 534return (t FILENAME) instead of (FILENAME).
529 result) 535Don't use that together with FILTER."
536 (let* ((all-of-them
537 (save-excursion
538 (dired-map-over-marks
539 (dired-get-filename localp)
540 arg nil distinguish-one-marked)))
541 result)
530 (if (not filter) 542 (if (not filter)
531 (nreverse all-of-them) 543 (if (and distinguish-one-marked (eq (car all-of-them) t))
544 all-of-them
545 (nreverse all-of-them))
532 (dolist (file all-of-them) 546 (dolist (file all-of-them)
533 (if (funcall filter file) 547 (if (funcall filter file)
534 (push file result))) 548 (push file result)))
@@ -1535,9 +1549,8 @@ Keybindings:
1535 (setq dired-switches-alist nil) 1549 (setq dired-switches-alist nil)
1536 (dired-sort-other dired-actual-switches t) 1550 (dired-sort-other dired-actual-switches t)
1537 (when (featurep 'dnd) 1551 (when (featurep 'dnd)
1538 (make-variable-buffer-local 'dnd-protocol-alist) 1552 (set (make-local-variable 'dnd-protocol-alist)
1539 (setq dnd-protocol-alist 1553 (append dired-dnd-protocol-alist dnd-protocol-alist)))
1540 (append dired-dnd-protocol-alist dnd-protocol-alist)))
1541 (run-mode-hooks 'dired-mode-hook)) 1554 (run-mode-hooks 'dired-mode-hook))
1542 1555
1543;; Idiosyncratic dired commands that don't deal with marks. 1556;; Idiosyncratic dired commands that don't deal with marks.
@@ -2537,15 +2550,21 @@ FUNCTION should not manipulate files, just read input
2537 (an argument or confirmation). 2550 (an argument or confirmation).
2538The window is not shown if there is just one file or 2551The window is not shown if there is just one file or
2539 OP-SYMBOL is a member of the list in `dired-no-confirm'. 2552 OP-SYMBOL is a member of the list in `dired-no-confirm'.
2540FILES is the list of marked files." 2553FILES is the list of marked files. It can also be (t FILENAME)
2554in the case of one marked file, to distinguish that from using
2555just the current file."
2541 (or bufname (setq bufname " *Marked Files*")) 2556 (or bufname (setq bufname " *Marked Files*"))
2542 (if (or (eq dired-no-confirm t) 2557 (if (or (eq dired-no-confirm t)
2543 (memq op-symbol dired-no-confirm) 2558 (memq op-symbol dired-no-confirm)
2559 ;; If FILES defaulted to the current line's file.
2544 (= (length files) 1)) 2560 (= (length files) 1))
2545 (apply function args) 2561 (apply function args)
2546 (with-current-buffer (get-buffer-create bufname) 2562 (with-current-buffer (get-buffer-create bufname)
2547 (erase-buffer) 2563 (erase-buffer)
2548 (dired-format-columns-of-files files) 2564 ;; Handle (t FILE) just like (FILE), here.
2565 ;; That value is used (only in some cases), to mean
2566 ;; just one file that was marked, rather than the current line file.
2567 (dired-format-columns-of-files (if (eq (car files) t) (cdr files) files))
2549 (remove-text-properties (point-min) (point-max) 2568 (remove-text-properties (point-min) (point-max)
2550 '(mouse-face nil help-echo nil))) 2569 '(mouse-face nil help-echo nil)))
2551 (save-window-excursion 2570 (save-window-excursion
diff --git a/lisp/dnd.el b/lisp/dnd.el
index 927f2e3bdb6..96c9e18a3f1 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -36,6 +36,7 @@
36;;; Customizable variables 36;;; Customizable variables
37 37
38 38
39;;;###autoload
39(defcustom dnd-protocol-alist 40(defcustom dnd-protocol-alist
40 '( 41 '(
41 ("^file:///" . dnd-open-local-file) ; XDND format. 42 ("^file:///" . dnd-open-local-file) ; XDND format.
diff --git a/lisp/ediff-diff.el b/lisp/ediff-diff.el
index c41d733aaca..4c13e6fc0e1 100644
--- a/lisp/ediff-diff.el
+++ b/lisp/ediff-diff.el
@@ -393,20 +393,20 @@ one optional arguments, diff-number to refine.")
393 (ediff-with-current-buffer diff-buffer 393 (ediff-with-current-buffer diff-buffer
394 (goto-char (point-min)) 394 (goto-char (point-min))
395 (while (re-search-forward ediff-match-diff-line nil t) 395 (while (re-search-forward ediff-match-diff-line nil t)
396 (let* ((a-begin (string-to-int (buffer-substring (match-beginning 1) 396 (let* ((a-begin (string-to-number (buffer-substring (match-beginning 1)
397 (match-end 1)))) 397 (match-end 1))))
398 (a-end (let ((b (match-beginning 3)) 398 (a-end (let ((b (match-beginning 3))
399 (e (match-end 3))) 399 (e (match-end 3)))
400 (if b 400 (if b
401 (string-to-int (buffer-substring b e)) 401 (string-to-number (buffer-substring b e))
402 a-begin))) 402 a-begin)))
403 (diff-type (buffer-substring (match-beginning 4) (match-end 4))) 403 (diff-type (buffer-substring (match-beginning 4) (match-end 4)))
404 (b-begin (string-to-int (buffer-substring (match-beginning 5) 404 (b-begin (string-to-number (buffer-substring (match-beginning 5)
405 (match-end 5)))) 405 (match-end 5))))
406 (b-end (let ((b (match-beginning 7)) 406 (b-end (let ((b (match-beginning 7))
407 (e (match-end 7))) 407 (e (match-end 7)))
408 (if b 408 (if b
409 (string-to-int (buffer-substring b e)) 409 (string-to-number (buffer-substring b e))
410 b-begin))) 410 b-begin)))
411 a-begin-pt a-end-pt b-begin-pt b-end-pt 411 a-begin-pt a-end-pt b-begin-pt b-end-pt
412 c-begin c-end c-begin-pt c-end-pt) 412 c-begin c-end c-begin-pt c-end-pt)
@@ -934,16 +934,16 @@ delimiter regions"))
934 ;; it is a "c" group 934 ;; it is a "c" group
935 (if (match-beginning 2) 935 (if (match-beginning 2)
936 ;; it has two numbers 936 ;; it has two numbers
937 (list (string-to-int 937 (list (string-to-number
938 (buffer-substring (match-beginning 1) (match-end 1))) 938 (buffer-substring (match-beginning 1) (match-end 1)))
939 (1+ (string-to-int 939 (1+ (string-to-number
940 (buffer-substring (match-beginning 3) (match-end 3))))) 940 (buffer-substring (match-beginning 3) (match-end 3)))))
941 ;; it has one number 941 ;; it has one number
942 (let ((x (string-to-int 942 (let ((x (string-to-number
943 (buffer-substring (match-beginning 1) (match-end 1))))) 943 (buffer-substring (match-beginning 1) (match-end 1)))))
944 (list x (1+ x)))) 944 (list x (1+ x))))
945 ;; it is an "a" group 945 ;; it is an "a" group
946 (let ((x (1+ (string-to-int 946 (let ((x (1+ (string-to-number
947 (buffer-substring (match-beginning 1) (match-end 1)))))) 947 (buffer-substring (match-beginning 1) (match-end 1))))))
948 (list x x))))) 948 (list x x)))))
949 949
diff --git a/lisp/edmacro.el b/lisp/edmacro.el
index 09872f3ef2c..a8382a7f081 100644
--- a/lisp/edmacro.el
+++ b/lisp/edmacro.el
@@ -280,7 +280,7 @@ or nil, use a compact 80-column format."
280 (let ((str (buffer-substring (match-beginning 1) 280 (let ((str (buffer-substring (match-beginning 1)
281 (match-end 1)))) 281 (match-end 1))))
282 (unless (equal str "") 282 (unless (equal str "")
283 (setq mac-counter (string-to-int str)))) 283 (setq mac-counter (string-to-number str))))
284 t) 284 t)
285 ((looking-at "Format:[ \t]*\"\\([^\n]*\\)\"[ \t]*$") 285 ((looking-at "Format:[ \t]*\"\\([^\n]*\\)\"[ \t]*$")
286 (when edmacro-store-hook 286 (when edmacro-store-hook
@@ -698,7 +698,7 @@ This function assumes that the events can be stored in a string."
698 (times 1)) 698 (times 1))
699 (setq pos (match-end 0)) 699 (setq pos (match-end 0))
700 (when (string-match "\\([0-9]+\\)\\*." word) 700 (when (string-match "\\([0-9]+\\)\\*." word)
701 (setq times (string-to-int (substring word 0 (match-end 1)))) 701 (setq times (string-to-number (substring word 0 (match-end 1))))
702 (setq word (substring word (1+ (match-end 1))))) 702 (setq word (substring word (1+ (match-end 1)))))
703 (cond ((string-match "^<<.+>>$" word) 703 (cond ((string-match "^<<.+>>$" word)
704 (setq key (vconcat (if (eq (key-binding [?\M-x]) 704 (setq key (vconcat (if (eq (key-binding [?\M-x])
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el
index 8eb177dd9ca..6280af2fb72 100644
--- a/lisp/emacs-lisp/authors.el
+++ b/lisp/emacs-lisp/authors.el
@@ -1,6 +1,6 @@
1;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: iso-2022-7bit;-*- 1;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 2000, 2003 Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2003, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Gerd Moellmann <gerd@gnu.org> 5;; Author: Gerd Moellmann <gerd@gnu.org>
6;; Maintainer: Kim F. Storm <storm@cua.dk> 6;; Maintainer: Kim F. Storm <storm@cua.dk>
@@ -597,8 +597,7 @@ buffer *Authors Errors* containing references to unknown files."
597 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 597 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
598 (error "Not the root directory of Emacs: %s" root)) 598 (error "Not the root directory of Emacs: %s" root))
599 (dolist (log logs) 599 (dolist (log logs)
600 (when (and (string-match "ChangeLog\\(.[0-9]+\\)?$" log) 600 (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
601 (not (string-match "/lispref/" log)))
602 (message "Scanning %s..." log) 601 (message "Scanning %s..." log)
603 (authors-scan-change-log log table))) 602 (authors-scan-change-log log table)))
604 (let ((els (authors-process-lines "find" root "-name" "*.el"))) 603 (let ((els (authors-process-lines "find" root "-name" "*.el")))
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index 1472d576e49..7fc01901cfe 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -175,8 +175,9 @@ If you think you need this, you're probably making a mistake somewhere."
175;;; byte-compile-macro-environment. 175;;; byte-compile-macro-environment.
176 176
177(defmacro eval-when-compile (&rest body) 177(defmacro eval-when-compile (&rest body)
178 "Like `progn', but evaluates the body at compile time. 178 "Like `progn', but evaluates the body at compile time if you're compiling.
179The result of the body appears to the compiler as a quoted constant." 179Thus, the result of the body appears to the compiler as a quoted constant.
180In interpreted code, this is entirely equivalent to `progn'."
180 (declare (debug t) (indent 0)) 181 (declare (debug t) (indent 0))
181 ;; Not necessary because we have it in b-c-initial-macro-environment 182 ;; Not necessary because we have it in b-c-initial-macro-environment
182 ;; (list 'quote (eval (cons 'progn body))) 183 ;; (list 'quote (eval (cons 'progn body)))
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index a752f9f9b61..f1798d941bf 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -338,8 +338,8 @@ Elements of the list may be be:
338 338
339 free-vars references to variables not in the current lexical scope. 339 free-vars references to variables not in the current lexical scope.
340 unresolved calls to unknown functions. 340 unresolved calls to unknown functions.
341 callargs lambda calls with args that don't match the definition. 341 callargs function calls with args that don't match the definition.
342 redefine function cell redefined from a macro to a lambda or vice 342 redefine function name redefined from a macro to ordinary function or vice
343 versa, or redefined to take a different number of arguments. 343 versa, or redefined to take a different number of arguments.
344 obsolete obsolete variables and functions. 344 obsolete obsolete variables and functions.
345 noruntime functions that may not be defined at runtime (typically 345 noruntime functions that may not be defined at runtime (typically
@@ -1244,6 +1244,20 @@ extra args."
1244(dolist (elt '(format message error)) 1244(dolist (elt '(format message error))
1245 (put elt 'byte-compile-format-like t)) 1245 (put elt 'byte-compile-format-like t))
1246 1246
1247;; Warn if a custom definition fails to specify :group.
1248(defun byte-compile-nogroup-warn (form)
1249 (let ((keyword-args (cdr (cdr (cdr (cdr form)))))
1250 (name (cadr form)))
1251 (unless (plist-get keyword-args :group)
1252 (byte-compile-warn
1253 "%s for `%s' fails to specify containing group"
1254 (cdr (assq (car form)
1255 '((custom-declare-group . defgroup)
1256 (custom-declare-face . defface)
1257 (custom-declare-variable . defcustom))))
1258 (if (and (consp name) (eq (car name) 'quote))
1259 (cadr name) name)))))
1260
1247;; Warn if the function or macro is being redefined with a different 1261;; Warn if the function or macro is being redefined with a different
1248;; number of arguments. 1262;; number of arguments.
1249(defun byte-compile-arglist-warn (form macrop) 1263(defun byte-compile-arglist-warn (form macrop)
@@ -2156,6 +2170,8 @@ list that represents a doc string reference.
2156(put 'custom-declare-variable 'byte-hunk-handler 2170(put 'custom-declare-variable 'byte-hunk-handler
2157 'byte-compile-file-form-custom-declare-variable) 2171 'byte-compile-file-form-custom-declare-variable)
2158(defun byte-compile-file-form-custom-declare-variable (form) 2172(defun byte-compile-file-form-custom-declare-variable (form)
2173 (when (memq 'callargs byte-compile-warnings)
2174 (byte-compile-nogroup-warn form))
2159 (when (memq 'free-vars byte-compile-warnings) 2175 (when (memq 'free-vars byte-compile-warnings)
2160 (push (nth 1 (nth 1 form)) byte-compile-bound-variables)) 2176 (push (nth 1 (nth 1 form)) byte-compile-bound-variables))
2161 (let ((tail (nthcdr 4 form))) 2177 (let ((tail (nthcdr 4 form)))
@@ -2729,7 +2745,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
2729 (when (byte-compile-const-symbol-p fn) 2745 (when (byte-compile-const-symbol-p fn)
2730 (byte-compile-warn "`%s' called as a function" fn)) 2746 (byte-compile-warn "`%s' called as a function" fn))
2731 (and (memq 'interactive-only byte-compile-warnings) 2747 (and (memq 'interactive-only byte-compile-warnings)
2732 (memq (car form) byte-compile-interactive-only-functions) 2748 (memq fn byte-compile-interactive-only-functions)
2733 (byte-compile-warn "`%s' used from Lisp code\n\ 2749 (byte-compile-warn "`%s' used from Lisp code\n\
2734That command is designed for interactive use only" fn)) 2750That command is designed for interactive use only" fn))
2735 (if (and handler 2751 (if (and handler
@@ -2739,8 +2755,10 @@ That command is designed for interactive use only" fn))
2739 (progn 2755 (progn
2740 (byte-compile-set-symbol-position fn) 2756 (byte-compile-set-symbol-position fn)
2741 (funcall handler form)) 2757 (funcall handler form))
2742 (if (memq 'callargs byte-compile-warnings) 2758 (when (memq 'callargs byte-compile-warnings)
2743 (byte-compile-callargs-warn form)) 2759 (if (memq fn '(custom-declare-group custom-declare-variable custom-declare-face))
2760 (byte-compile-nogroup-warn form))
2761 (byte-compile-callargs-warn form))
2744 (byte-compile-normal-call form)) 2762 (byte-compile-normal-call form))
2745 (if (memq 'cl-functions byte-compile-warnings) 2763 (if (memq 'cl-functions byte-compile-warnings)
2746 (byte-compile-cl-warn form)))) 2764 (byte-compile-cl-warn form))))
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index bfd21e27d05..727e45b1289 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -61,7 +61,7 @@ TYPE is a Common Lisp type specifier."
61;;; Predicates. 61;;; Predicates.
62 62
63(defun equalp (x y) 63(defun equalp (x y)
64 "T if two Lisp objects have similar structures and contents. 64 "Return t if two Lisp objects have similar structures and contents.
65This is like `equal', except that it accepts numerically equal 65This is like `equal', except that it accepts numerically equal
66numbers of different types (float vs. integer), and also compares 66numbers of different types (float vs. integer), and also compares
67strings case-insensitively." 67strings case-insensitively."
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 137366c1c13..8bc195bdae8 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -1335,7 +1335,7 @@ Unlike `flet', this macro is fully compliant with the Common Lisp standard.
1335;; The following ought to have a better definition for use with newer 1335;; The following ought to have a better definition for use with newer
1336;; byte compilers. 1336;; byte compilers.
1337(defmacro macrolet (bindings &rest body) 1337(defmacro macrolet (bindings &rest body)
1338 "Make temporary macro defns. 1338 "Make temporary macro definitions.
1339This is like `flet', but for macros instead of functions. 1339This is like `flet', but for macros instead of functions.
1340 1340
1341\(fn ((NAME ARGLIST BODY...) ...) FORM...)" 1341\(fn ((NAME ARGLIST BODY...) ...) FORM...)"
@@ -1351,7 +1351,7 @@ This is like `flet', but for macros instead of functions.
1351 cl-macro-environment)))))) 1351 cl-macro-environment))))))
1352 1352
1353(defmacro symbol-macrolet (bindings &rest body) 1353(defmacro symbol-macrolet (bindings &rest body)
1354 "Make symbol macro defns. 1354 "Make symbol macro definitions.
1355Within the body FORMs, references to the variable NAME will be replaced 1355Within the body FORMs, references to the variable NAME will be replaced
1356by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). 1356by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...).
1357 1357
diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el
index 93237f0206f..cb202700a00 100644
--- a/lisp/emacs-lisp/cl-seq.el
+++ b/lisp/emacs-lisp/cl-seq.el
@@ -800,7 +800,7 @@ Keywords supported: :test :test-not :key"
800 (apply 'nset-difference cl-list2 cl-list1 cl-keys))))) 800 (apply 'nset-difference cl-list2 cl-list1 cl-keys)))))
801 801
802(defun subsetp (cl-list1 cl-list2 &rest cl-keys) 802(defun subsetp (cl-list1 cl-list2 &rest cl-keys)
803 "True if LIST1 is a subset of LIST2. 803 "Return true if LIST1 is a subset of LIST2.
804I.e., if every element of LIST1 also appears in LIST2. 804I.e., if every element of LIST1 also appears in LIST2.
805Keywords supported: :test :test-not :key" 805Keywords supported: :test :test-not :key"
806 (cond ((null cl-list1) t) ((null cl-list2) nil) 806 (cond ((null cl-list1) t) ((null cl-list2) nil)
@@ -888,7 +888,7 @@ Keywords supported: :test :test-not :key"
888 (setq cl-tree (cdr cl-tree)))))) 888 (setq cl-tree (cdr cl-tree))))))
889 889
890(defun tree-equal (cl-x cl-y &rest cl-keys) 890(defun tree-equal (cl-x cl-y &rest cl-keys)
891 "T if trees X and Y have `eql' leaves. 891 "Return t if trees X and Y have `eql' leaves.
892Atoms are compared by `eql'; cons cells are compared recursively. 892Atoms are compared by `eql'; cons cells are compared recursively.
893Keywords supported: :test :test-not :key" 893Keywords supported: :test :test-not :key"
894 (cl-parsing-keywords (:test :test-not :key) () 894 (cl-parsing-keywords (:test :test-not :key) ()
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index 2f6c799f528..11835629bd7 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -115,7 +115,7 @@ a future Emacs interpreter will be able to use it.")
115;;; Predicates. 115;;; Predicates.
116 116
117(defun eql (a b) ; See compiler macro in cl-macs.el 117(defun eql (a b) ; See compiler macro in cl-macs.el
118 "T if the two args are the same Lisp object. 118 "Return t if the two args are the same Lisp object.
119Floating-point numbers of equal value are `eql', but they may not be `eq'." 119Floating-point numbers of equal value are `eql', but they may not be `eq'."
120 (if (numberp a) 120 (if (numberp a)
121 (equal a b) 121 (equal a b)
@@ -301,25 +301,25 @@ definitions to shadow the loaded ones for use in file byte-compilation."
301;;; Numbers. 301;;; Numbers.
302 302
303(defun floatp-safe (x) 303(defun floatp-safe (x)
304 "T if OBJECT is a floating point number. 304 "Return t if OBJECT is a floating point number.
305On Emacs versions that lack floating-point support, this function 305On Emacs versions that lack floating-point support, this function
306always returns nil." 306always returns nil."
307 (and (numberp x) (not (integerp x)))) 307 (and (numberp x) (not (integerp x))))
308 308
309(defun plusp (x) 309(defun plusp (x)
310 "T if NUMBER is positive." 310 "Return t if NUMBER is positive."
311 (> x 0)) 311 (> x 0))
312 312
313(defun minusp (x) 313(defun minusp (x)
314 "T if NUMBER is negative." 314 "Return t if NUMBER is negative."
315 (< x 0)) 315 (< x 0))
316 316
317(defun oddp (x) 317(defun oddp (x)
318 "T if INTEGER is odd." 318 "Return t if INTEGER is odd."
319 (eq (logand x 1) 1)) 319 (eq (logand x 1) 1))
320 320
321(defun evenp (x) 321(defun evenp (x)
322 "T if INTEGER is even." 322 "Return t if INTEGER is even."
323 (eq (logand x 1) 0)) 323 (eq (logand x 1) 0))
324 324
325(defvar *random-state* (vector 'cl-random-state-tag -1 30 (cl-random-time))) 325(defvar *random-state* (vector 'cl-random-state-tag -1 30 (cl-random-time)))
@@ -503,7 +503,7 @@ SEQ, this is like `mapcar'. With several, it is like the Common Lisp
503;; x)) 503;; x))
504 504
505(defun list* (arg &rest rest) ; See compiler macro in cl-macs.el 505(defun list* (arg &rest rest) ; See compiler macro in cl-macs.el
506 "Return a new list with specified args as elements, cons'd to last arg. 506 "Return a new list with specified args as elements, consed to last arg.
507Thus, `(list* A B C D)' is equivalent to `(nconc (list A B C) D)', or to 507Thus, `(list* A B C D)' is equivalent to `(nconc (list A B C) D)', or to
508`(cons A (cons B (cons C D)))'." 508`(cons A (cons B (cons C D)))'."
509 (cond ((not rest) arg) 509 (cond ((not rest) arg)
diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
index d0ceaa96716..0b46912c8fd 100644
--- a/lisp/emacs-lisp/copyright.el
+++ b/lisp/emacs-lisp/copyright.el
@@ -183,32 +183,36 @@ Uses heuristic: year >= 50 means 19xx, < 50 means 20xx."
183 (widen) 183 (widen)
184 (goto-char (point-min)) 184 (goto-char (point-min))
185 (if (re-search-forward copyright-regexp (+ (point) copyright-limit) t) 185 (if (re-search-forward copyright-regexp (+ (point) copyright-limit) t)
186 (let ((s (match-beginning 2)) (e (make-marker)) 186 (let ((s (match-beginning 2))
187 (e (copy-marker (1+ (match-end 2))))
188 (p (make-marker))
187 last) 189 last)
188 (set-marker e (1+ (match-end 2)))
189 (goto-char s) 190 (goto-char s)
190 (while (and (< (point) (marker-position e)) 191 (while (re-search-forward "[0-9]+" e t)
191 (re-search-forward "\\([^0-9]\\)\\([0-9]+\\)[^0-9]" 192 (set-marker p (point))
192 (marker-position e) t)) 193 (goto-char (match-beginning 0))
193 (let ((p (point)) 194 (let ((sep (char-before))
194 (sep (match-string 1)) 195 (year (string-to-number (match-string 0))))
195 (year (string-to-number (match-string 2)))) 196 (when (and sep
196 (goto-char (1+ (match-beginning 0))) 197 (/= (char-syntax sep) ?\s)
197 (unless (= (char-syntax (string-to-char sep)) ?\s) 198 (/= sep ?-))
198 (insert " ")) 199 (insert " "))
199 (if (< year 100) 200 (when (< year 100)
200 (insert (if (>= year 50) "19" "20"))) 201 (insert (if (>= year 50) "19" "20"))))
201 (goto-char p) 202 (goto-char p)
202 (setq last p))) 203 (setq last p))
203 (when last 204 (when last
204 (goto-char last) 205 (goto-char last)
205 (let ((fill-prefix " ")) 206 ;; Don't mess up whitespace after the years.
206 (fill-region s last)) 207 (skip-chars-backward " \t")
207 ) 208 (save-restriction
209 (narrow-to-region (point-min) (point))
210 (let ((fill-prefix " "))
211 (fill-region s last))))
208 (set-marker e nil) 212 (set-marker e nil)
213 (set-marker p nil)
209 (copyright-update nil t)) 214 (copyright-update nil t))
210 (message "No copyright message") 215 (message "No copyright message")))
211 (goto-char (point-min))))
212 216
213;;;###autoload 217;;;###autoload
214(define-skeleton copyright 218(define-skeleton copyright
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
index a10b8546d03..c00028ad218 100644
--- a/lisp/emacs-lisp/derived.el
+++ b/lisp/emacs-lisp/derived.el
@@ -158,7 +158,9 @@ Note that if the documentation string had been left out, it would have
158been generated automatically, with a reference to the keymap. 158been generated automatically, with a reference to the keymap.
159 159
160The new mode runs the hook constructed by the function 160The new mode runs the hook constructed by the function
161`derived-mode-hook-name'." 161`derived-mode-hook-name'.
162
163See Info node `(elisp)Derived Modes' for more details."
162 (declare (debug (&define name symbolp sexp [&optional stringp] 164 (declare (debug (&define name symbolp sexp [&optional stringp]
163 [&rest keywordp sexp] def-body))) 165 [&rest keywordp sexp] def-body)))
164 166
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index a02f7be7d13..0892af1bb35 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -36,7 +36,6 @@
36;; For each mode, easy-mmode defines the following: 36;; For each mode, easy-mmode defines the following:
37;; <mode> : The minor mode predicate. A buffer-local variable. 37;; <mode> : The minor mode predicate. A buffer-local variable.
38;; <mode>-map : The keymap possibly associated to <mode>. 38;; <mode>-map : The keymap possibly associated to <mode>.
39;; <mode>-hook : The hook run at the end of the toggle function.
40;; see `define-minor-mode' documentation 39;; see `define-minor-mode' documentation
41;; 40;;
42;; eval 41;; eval
@@ -90,7 +89,7 @@ replacing its case-insensitive matches with the literal string in LIGHTER."
90(defmacro define-minor-mode (mode doc &optional init-value lighter keymap &rest body) 89(defmacro define-minor-mode (mode doc &optional init-value lighter keymap &rest body)
91 "Define a new minor mode MODE. 90 "Define a new minor mode MODE.
92This function defines the associated control variable MODE, keymap MODE-map, 91This function defines the associated control variable MODE, keymap MODE-map,
93toggle command MODE, and hook MODE-hook. 92and toggle command MODE.
94 93
95DOC is the documentation for the mode toggle command. 94DOC is the documentation for the mode toggle command.
96Optional INIT-VALUE is the initial value of the mode's variable. 95Optional INIT-VALUE is the initial value of the mode's variable.
@@ -103,11 +102,11 @@ The above three arguments can be skipped if keyword arguments are
103used (see below). 102used (see below).
104 103
105BODY contains code that will be executed each time the mode is (dis)activated. 104BODY contains code that will be executed each time the mode is (dis)activated.
106 It will be executed after any toggling but before running the hooks. 105 It will be executed after any toggling but before running the hook variable
107 Before the actual body code, you can write 106 `mode-HOOK'.
108 keyword arguments (alternating keywords and values). 107 Before the actual body code, you can write keyword arguments (alternating
109 These following keyword arguments are supported (other keywords 108 keywords and values). These following keyword arguments are supported (other
110 will be passed to `defcustom' if the minor mode is global): 109 keywords will be passed to `defcustom' if the minor mode is global):
111:group GROUP Custom group name to use in all generated `defcustom' forms. 110:group GROUP Custom group name to use in all generated `defcustom' forms.
112 Defaults to MODE without the possible trailing \"-mode\". 111 Defaults to MODE without the possible trailing \"-mode\".
113 Don't use this default group name unless you have written a 112 Don't use this default group name unless you have written a
@@ -241,12 +240,6 @@ With zero or negative ARG turn mode off.
241 ;; up-to-here. 240 ;; up-to-here.
242 :autoload-end 241 :autoload-end
243 242
244 ;; The toggle's hook.
245 (defcustom ,hook nil
246 ,(format "Hook run at the end of function `%s'." mode-name)
247 ,@group
248 :type 'hook)
249
250 ;; Define the minor-mode keymap. 243 ;; Define the minor-mode keymap.
251 ,(unless (symbolp keymap) ;nil is also a symbol. 244 ,(unless (symbolp keymap) ;nil is also a symbol.
252 `(defvar ,keymap-sym 245 `(defvar ,keymap-sym
@@ -323,8 +316,8 @@ in which `%s' turns it on."
323 (with-current-buffer buf 316 (with-current-buffer buf
324 (if ,global-mode (,turn-on) (when ,mode (,mode -1)))))) 317 (if ,global-mode (,turn-on) (when ,mode (,mode -1))))))
325 318
326 ;; Autoloading easy-mmode-define-global-mode 319 ;; Autoloading define-global-minor-mode autoloads everything
327 ;; autoloads everything up-to-here. 320 ;; up-to-here.
328 :autoload-end 321 :autoload-end
329 322
330 ;; List of buffers left to process. 323 ;; List of buffers left to process.
diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el
index 78ba1fe27bf..c9f1769ae14 100644
--- a/lisp/emacs-lisp/easymenu.el
+++ b/lisp/emacs-lisp/easymenu.el
@@ -65,7 +65,7 @@ It returns the remaining items of the displayed menu.
65 :visible INCLUDE 65 :visible INCLUDE
66 66
67INCLUDE is an expression; this menu is only visible if this 67INCLUDE is an expression; this menu is only visible if this
68expression has a non-nil value. `:include' is an alias for `:visible'. 68expression has a non-nil value. `:included' is an alias for `:visible'.
69 69
70 :active ENABLE 70 :active ENABLE
71 71
@@ -110,10 +110,10 @@ keyboard equivalent.
110ENABLE is an expression; the item is enabled for selection 110ENABLE is an expression; the item is enabled for selection
111whenever this expression's value is non-nil. 111whenever this expression's value is non-nil.
112 112
113 :included INCLUDE 113 :visible INCLUDE
114 114
115INCLUDE is an expression; this item is only visible if this 115INCLUDE is an expression; this item is only visible if this
116expression has a non-nil value. 116expression has a non-nil value. `:included' is an alias for `:visible'.
117 117
118 :suffix FORM 118 :suffix FORM
119 119
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index b23217151e3..bf6b601ef7a 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -141,9 +141,9 @@ truncated to make more of the arglist or documentation string visible."
141 "Toggle ElDoc mode on or off. 141 "Toggle ElDoc mode on or off.
142In ElDoc mode, the echo area displays information about a 142In ElDoc mode, the echo area displays information about a
143function or variable in the text where point is. If point is 143function or variable in the text where point is. If point is
144on a documented variable, it displays that variable's doc string. 144on a documented variable, it displays the first line of that
145Otherwise it displays the argument list of the function called 145variable's doc string. Otherwise it displays the argument list
146in the expression point is on. 146of the function called in the expression point is on.
147 147
148With prefix ARG, turn ElDoc mode on if and only if ARG is positive." 148With prefix ARG, turn ElDoc mode on if and only if ARG is positive."
149 :group 'eldoc :lighter eldoc-minor-mode-string 149 :group 'eldoc :lighter eldoc-minor-mode-string
@@ -229,6 +229,7 @@ With prefix ARG, turn ElDoc mode on if and only if ARG is positive."
229 (not (eq (selected-window) (minibuffer-window))))) 229 (not (eq (selected-window) (minibuffer-window)))))
230 230
231 231
232;;;###autoload
232(defvar eldoc-documentation-function nil 233(defvar eldoc-documentation-function nil
233 "If non-nil, function to call to return doc string. 234 "If non-nil, function to call to return doc string.
234The function of no args should return a one-line string for displaying 235The function of no args should return a one-line string for displaying
diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el
index 410b1d8eaa5..e41de879846 100644
--- a/lisp/emacs-lisp/generic.el
+++ b/lisp/emacs-lisp/generic.el
@@ -117,46 +117,37 @@ instead (which see).")
117;;;###autoload 117;;;###autoload
118(defmacro define-generic-mode (mode comment-list keyword-list 118(defmacro define-generic-mode (mode comment-list keyword-list
119 font-lock-list auto-mode-list 119 font-lock-list auto-mode-list
120 function-list &optional docstring 120 function-list &optional docstring)
121 &rest custom-keyword-args)
122 "Create a new generic mode MODE. 121 "Create a new generic mode MODE.
123 122
124MODE is the name of the command for the generic mode; don't quote 123MODE is the name of the command for the generic mode; don't quote it.
125it. The optional DOCSTRING is the documentation for the mode 124The optional DOCSTRING is the documentation for the mode command. If
126command. If you do not supply it, `define-generic-mode' uses a 125you do not supply it, `define-generic-mode' uses a default
127default documentation string instead. 126documentation string instead.
128 127
129COMMENT-LIST is a list in which each element is either a 128COMMENT-LIST is a list in which each element is either a character, a
130character, a string of one or two characters, or a cons cell. A 129string of one or two characters, or a cons cell. A character or a
131character or a string is set up in the mode's syntax table as a 130string is set up in the mode's syntax table as a \"comment starter\".
132\"comment starter\". If the entry is a cons cell, the `car' is 131If the entry is a cons cell, the `car' is set up as a \"comment
133set up as a \"comment starter\" and the `cdr' as a \"comment 132starter\" and the `cdr' as a \"comment ender\". (Use nil for the
134ender\". (Use nil for the latter if you want comments to end at 133latter if you want comments to end at the end of the line.) Note that
135the end of the line.) Note that the syntax table has limitations 134the syntax table has limitations about what comment starters and
136about what comment starters and enders are actually possible. 135enders are actually possible.
137 136
138KEYWORD-LIST is a list of keywords to highlight with 137KEYWORD-LIST is a list of keywords to highlight with
139`font-lock-keyword-face'. Each keyword should be a string. 138`font-lock-keyword-face'. Each keyword should be a string.
140 139
141FONT-LOCK-LIST is a list of additional expressions to highlight. 140FONT-LOCK-LIST is a list of additional expressions to highlight. Each
142Each element of this list should have the same form as an element 141element of this list should have the same form as an element of
143of `font-lock-keywords'. 142`font-lock-keywords'.
144 143
145AUTO-MODE-LIST is a list of regular expressions to add to 144AUTO-MODE-LIST is a list of regular expressions to add to
146`auto-mode-alist'. These regular expressions are added when 145`auto-mode-alist'. These regular expressions are added when Emacs
147Emacs runs the macro expansion. 146runs the macro expansion.
148 147
149FUNCTION-LIST is a list of functions to call to do some 148FUNCTION-LIST is a list of functions to call to do some additional
150additional setup. The mode command calls these functions just 149setup. The mode command calls these functions just before it runs the
151before it runs the mode hook. 150mode hook `MODE-hook'.
152
153The optional CUSTOM-KEYWORD-ARGS are pairs of keywords and values
154to include in the generated `defcustom' form for the mode hook
155variable `MODE-hook'. The default value for the `:group' keyword
156is MODE with the final \"-mode\" (if any) removed. (Don't use
157this default group name unless you have written a `defgroup' to
158define that group properly.) You can specify keyword arguments
159without specifying a docstring.
160 151
161See the file generic-x.el for some examples of `define-generic-mode'." 152See the file generic-x.el for some examples of `define-generic-mode'."
162 (declare (debug (sexp def-form def-form def-form form def-form 153 (declare (debug (sexp def-form def-form def-form form def-form
@@ -167,22 +158,9 @@ See the file generic-x.el for some examples of `define-generic-mode'."
167 (when (eq (car-safe mode) 'quote) 158 (when (eq (car-safe mode) 'quote)
168 (setq mode (eval mode))) 159 (setq mode (eval mode)))
169 160
170 (when (and docstring (not (stringp docstring)))
171 ;; DOCSTRING is not a string so we assume that it's actually the
172 ;; first keyword of CUSTOM-KEYWORD-ARGS.
173 (push docstring custom-keyword-args)
174 (setq docstring nil))
175
176 (let* ((name (symbol-name mode)) 161 (let* ((name (symbol-name mode))
177 (pretty-name (capitalize (replace-regexp-in-string 162 (pretty-name (capitalize (replace-regexp-in-string
178 "-mode\\'" "" name))) 163 "-mode\\'" "" name))))
179 (mode-hook (intern (concat name "-hook"))))
180
181 (unless (plist-get custom-keyword-args :group)
182 (setq custom-keyword-args
183 (plist-put custom-keyword-args
184 :group `',(intern (replace-regexp-in-string
185 "-mode\\'" "" name)))))
186 164
187 `(progn 165 `(progn
188 ;; Add a new entry. 166 ;; Add a new entry.
@@ -192,15 +170,11 @@ See the file generic-x.el for some examples of `define-generic-mode'."
192 (dolist (re ,auto-mode-list) 170 (dolist (re ,auto-mode-list)
193 (add-to-list 'auto-mode-alist (cons re ',mode))) 171 (add-to-list 'auto-mode-alist (cons re ',mode)))
194 172
195 (defcustom ,mode-hook nil
196 ,(concat "Hook run when entering " pretty-name " mode.")
197 :type 'hook
198 ,@custom-keyword-args)
199
200 (defun ,mode () 173 (defun ,mode ()
201 ,(or docstring 174 ,(or docstring
202 (concat pretty-name " mode.\n" 175 (concat pretty-name " mode.\n"
203 "This a generic mode defined with `define-generic-mode'.")) 176 "This a generic mode defined with `define-generic-mode'.\n"
177 "It runs `" name "-hook' as the last thing it does."))
204 (interactive) 178 (interactive)
205 (generic-mode-internal ',mode ,comment-list ,keyword-list 179 (generic-mode-internal ',mode ,comment-list ,keyword-list
206 ,font-lock-list ,function-list))))) 180 ,font-lock-list ,function-list)))))
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index 701da1c4dec..a385a32935e 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -418,7 +418,7 @@ ISO-DATE non-nil means return the date in ISO 8601 format."
418 (format "%s-%s-%s" yyyy mm dd) 418 (format "%s-%s-%s" yyyy mm dd)
419 (format "%s %s %s" 419 (format "%s %s %s"
420 dd 420 dd
421 (nth (string-to-int mm) 421 (nth (string-to-number mm)
422 '("" "Jan" "Feb" "Mar" "Apr" "May" "Jun" 422 '("" "Jan" "Feb" "Mar" "Apr" "May" "Jun"
423 "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")) 423 "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"))
424 yyyy)))))) 424 yyyy))))))
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 8f4245cb9a1..bb815481bf0 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -192,6 +192,9 @@
192 ;; Look within the line for a ; following an even number of backslashes 192 ;; Look within the line for a ; following an even number of backslashes
193 ;; after either a non-backslash or the line beginning. 193 ;; after either a non-backslash or the line beginning.
194 (setq comment-start-skip "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *") 194 (setq comment-start-skip "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
195 (make-local-variable 'font-lock-comment-start-skip)
196 ;; Font lock mode uses this only when it KNOWS a comment is starting.
197 (setq font-lock-comment-start-skip ";+ *")
195 (make-local-variable 'comment-add) 198 (make-local-variable 'comment-add)
196 (setq comment-add 1) ;default to `;;' in comment-region 199 (setq comment-add 1) ;default to `;;' in comment-region
197 (make-local-variable 'comment-column) 200 (make-local-variable 'comment-column)
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index f9442bc0084..955bc4499bc 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -1,6 +1,7 @@
1;;; lisp.el --- Lisp editing commands for Emacs 1;;; lisp.el --- Lisp editing commands for Emacs
2 2
3;; Copyright (C) 1985, 86, 1994, 2000, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1985, 1986, 1994, 2000, 2004, 2005
4;; Free Software Foundation, Inc.
4 5
5;; Maintainer: FSF 6;; Maintainer: FSF
6;; Keywords: lisp, languages 7;; Keywords: lisp, languages
@@ -487,9 +488,9 @@ If region is active, insert enclosing characters at region boundaries."
487More accurately, check the narrowed part of the buffer for unbalanced 488More accurately, check the narrowed part of the buffer for unbalanced
488expressions (\"sexps\") in general. This is done according to the 489expressions (\"sexps\") in general. This is done according to the
489current syntax table and will find unbalanced brackets or quotes as 490current syntax table and will find unbalanced brackets or quotes as
490appropriate. (See Info node `(emacs)Lists and Sexps'.) If imbalance 491appropriate. (See Info node `(emacs)Parentheses'.) If imbalance is
491is found, an error is signalled and point is left at the first 492found, an error is signalled and point is left at the first unbalanced
492unbalanced character." 493character."
493 (interactive) 494 (interactive)
494 (condition-case data 495 (condition-case data
495 ;; Buffer can't have more than (point-max) sexps. 496 ;; Buffer can't have more than (point-max) sexps.
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index 1c8d12fef0e..a2aed39d00a 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -557,7 +557,7 @@ optional fourth argument FORCE is non-nil."
557 (interactive) 557 (interactive)
558 558
559 (setq reb-subexp-displayed 559 (setq reb-subexp-displayed
560 (or subexp (string-to-int (format "%c" last-command-char)))) 560 (or subexp (string-to-number (format "%c" last-command-char))))
561 (reb-update-modestring) 561 (reb-update-modestring)
562 (reb-do-update reb-subexp-displayed)) 562 (reb-do-update reb-subexp-displayed))
563 563
diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el
index 23e9a54b1bb..f77b1a00e2c 100644
--- a/lisp/emacs-lisp/testcover.el
+++ b/lisp/emacs-lisp/testcover.el
@@ -147,7 +147,8 @@ call to one of the `testcover-1value-functions'."
147(defcustom testcover-potentially-1value-functions 147(defcustom testcover-potentially-1value-functions
148 '(add-hook and beep or remove-hook unless when) 148 '(add-hook and beep or remove-hook unless when)
149 "Functions that are potentially 1-valued. No brown splotch if actually 149 "Functions that are potentially 1-valued. No brown splotch if actually
1501-valued, no error if actually multi-valued.") 1501-valued, no error if actually multi-valued."
151 :group 'testcover)
151 152
152(defface testcover-nohits-face 153(defface testcover-nohits-face
153 '((t (:background "DeepPink2"))) 154 '((t (:background "DeepPink2")))
diff --git a/lisp/emerge.el b/lisp/emerge.el
index f9821111e71..1f105163f46 100644
--- a/lisp/emerge.el
+++ b/lisp/emerge.el
@@ -657,20 +657,20 @@ This is *not* a user option, since Emerge uses it for its own processing.")
657 diff-buffer 657 diff-buffer
658 (goto-char (point-min)) 658 (goto-char (point-min))
659 (while (re-search-forward emerge-match-diff-line nil t) 659 (while (re-search-forward emerge-match-diff-line nil t)
660 (let* ((a-begin (string-to-int (buffer-substring (match-beginning 1) 660 (let* ((a-begin (string-to-number (buffer-substring (match-beginning 1)
661 (match-end 1)))) 661 (match-end 1))))
662 (a-end (let ((b (match-beginning 3)) 662 (a-end (let ((b (match-beginning 3))
663 (e (match-end 3))) 663 (e (match-end 3)))
664 (if b 664 (if b
665 (string-to-int (buffer-substring b e)) 665 (string-to-number (buffer-substring b e))
666 a-begin))) 666 a-begin)))
667 (diff-type (buffer-substring (match-beginning 4) (match-end 4))) 667 (diff-type (buffer-substring (match-beginning 4) (match-end 4)))
668 (b-begin (string-to-int (buffer-substring (match-beginning 5) 668 (b-begin (string-to-number (buffer-substring (match-beginning 5)
669 (match-end 5)))) 669 (match-end 5))))
670 (b-end (let ((b (match-beginning 7)) 670 (b-end (let ((b (match-beginning 7))
671 (e (match-end 7))) 671 (e (match-end 7)))
672 (if b 672 (if b
673 (string-to-int (buffer-substring b e)) 673 (string-to-number (buffer-substring b e))
674 b-begin)))) 674 b-begin))))
675 ;; fix the beginning and end numbers, because diff is somewhat 675 ;; fix the beginning and end numbers, because diff is somewhat
676 ;; strange about how it numbers lines 676 ;; strange about how it numbers lines
@@ -862,16 +862,16 @@ This is *not* a user option, since Emerge uses it for its own processing.")
862 ;; it is a "c" group 862 ;; it is a "c" group
863 (if (match-beginning 2) 863 (if (match-beginning 2)
864 ;; it has two numbers 864 ;; it has two numbers
865 (list (string-to-int 865 (list (string-to-number
866 (buffer-substring (match-beginning 1) (match-end 1))) 866 (buffer-substring (match-beginning 1) (match-end 1)))
867 (1+ (string-to-int 867 (1+ (string-to-number
868 (buffer-substring (match-beginning 3) (match-end 3))))) 868 (buffer-substring (match-beginning 3) (match-end 3)))))
869 ;; it has one number 869 ;; it has one number
870 (let ((x (string-to-int 870 (let ((x (string-to-number
871 (buffer-substring (match-beginning 1) (match-end 1))))) 871 (buffer-substring (match-beginning 1) (match-end 1)))))
872 (list x (1+ x)))) 872 (list x (1+ x))))
873 ;; it is an "a" group 873 ;; it is an "a" group
874 (let ((x (1+ (string-to-int 874 (let ((x (1+ (string-to-number
875 (buffer-substring (match-beginning 1) (match-end 1)))))) 875 (buffer-substring (match-beginning 1) (match-end 1))))))
876 (list x x))))) 876 (list x x)))))
877 877
diff --git a/lisp/emulation/crisp.el b/lisp/emulation/crisp.el
index 2ca819c0424..97706fdfab0 100644
--- a/lisp/emulation/crisp.el
+++ b/lisp/emulation/crisp.el
@@ -1,6 +1,6 @@
1;;; crisp.el --- CRiSP/Brief Emacs emulator 1;;; crisp.el --- CRiSP/Brief Emacs emulator
2 2
3;; Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1998, 1999, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Gary D. Foster <Gary.Foster@Corp.Sun.COM> 5;; Author: Gary D. Foster <Gary.Foster@Corp.Sun.COM>
6;; Keywords: emulations brief crisp 6;; Keywords: emulations brief crisp
@@ -386,10 +386,8 @@ With ARG, turn CRiSP mode on if ARG is positive, off otherwise."
386 minor-mode-map-alist)))) 386 minor-mode-map-alist))))
387 387
388;; Interaction with other packages. 388;; Interaction with other packages.
389(eval-after-load 'cua 389(put 'crisp-home 'CUA 'move)
390 '(progn 390(put 'crisp-end 'CUA 'move)
391 (add-to-list 'cua--standard-movement-commands 'crisp-home)
392 (add-to-list 'cua--standard-movement-commands 'crisp-end)))
393 391
394(run-hooks 'crisp-load-hook) 392(run-hooks 'crisp-load-hook)
395(provide 'crisp) 393(provide 'crisp)
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index e9679c66dd3..6ea6bfb7f3d 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -1,6 +1,6 @@
1;;; cua-base.el --- emulate CUA key bindings 1;;; cua-base.el --- emulate CUA key bindings
2 2
3;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Kim F. Storm <storm@cua.dk> 6;; Author: Kim F. Storm <storm@cua.dk>
@@ -159,13 +159,13 @@
159;; left edge of a rectangle start in the middle of a TAB character. 159;; left edge of a rectangle start in the middle of a TAB character.
160;; Sounds strange? Try it! 160;; Sounds strange? Try it!
161;; 161;;
162;; To start a rectangle, use [S-return] and extend it using the normal 162;; To start a rectangle, use [C-return] and extend it using the normal
163;; movement keys (up, down, left, right, home, end, C-home, 163;; movement keys (up, down, left, right, home, end, C-home,
164;; C-end). Once the rectangle has the desired size, you can cut or 164;; C-end). Once the rectangle has the desired size, you can cut or
165;; copy it using C-x and C-c (or C-w and M-w), and you can 165;; copy it using C-x and C-c (or C-w and M-w), and you can
166;; subsequently insert it - as a rectangle - using C-v (or C-y). So 166;; subsequently insert it - as a rectangle - using C-v (or C-y). So
167;; the only new command you need to know to work with cua-mode 167;; the only new command you need to know to work with cua-mode
168;; rectangles is S-return! 168;; rectangles is C-return!
169;; 169;;
170;; Normally, when you paste a rectangle using C-v (C-y), each line of 170;; Normally, when you paste a rectangle using C-v (C-y), each line of
171;; the rectangle is inserted into the existing lines in the buffer. 171;; the rectangle is inserted into the existing lines in the buffer.
@@ -183,7 +183,7 @@
183;; entire rectangle overlay (but not the contents) in the given 183;; entire rectangle overlay (but not the contents) in the given
184;; direction. 184;; direction.
185;; 185;;
186;; [S-return] cancels the rectangle 186;; [C-return] cancels the rectangle
187;; [C-space] activates the region bounded by the rectangle 187;; [C-space] activates the region bounded by the rectangle
188 188
189;; If you type a normal (self-inserting) character when the rectangle is 189;; If you type a normal (self-inserting) character when the rectangle is
@@ -194,7 +194,7 @@
194;; bottom of the rectangle. So, for example, to comment out an entire 194;; bottom of the rectangle. So, for example, to comment out an entire
195;; paragraph like this one, just place the cursor on the first character 195;; paragraph like this one, just place the cursor on the first character
196;; of the first line, and enter the following: 196;; of the first line, and enter the following:
197;; S-return M-} ; ; <space> S-return 197;; C-return M-} ; ; <space> C-return
198 198
199;; cua-mode's rectangle support also includes all the normal rectangle 199;; cua-mode's rectangle support also includes all the normal rectangle
200;; functions with easy access: 200;; functions with easy access:
@@ -330,12 +330,12 @@ interpreted as a register number."
330 :group 'cua) 330 :group 'cua)
331 331
332(defcustom cua-use-hyper-key nil 332(defcustom cua-use-hyper-key nil
333 "*If non-nil, bind rectangle commands to H-? instead of M-?. 333 "*If non-nil, bind rectangle commands to H-... instead of M-....
334If set to 'also, toggle region command is also on S-return. 334If set to 'also, toggle region command is also on C-return.
335Must be set prior to enabling CUA." 335Must be set prior to enabling CUA."
336 :type '(choice (const :tag "Meta key and S-return" nil) 336 :type '(choice (const :tag "Meta key and C-return" nil)
337 (const :tag "Hyper key only" only) 337 (const :tag "Hyper key only" only)
338 (const :tag "Hyper key and S-return" also)) 338 (const :tag "Hyper key and C-return" also))
339 :group 'cua) 339 :group 'cua)
340 340
341(defcustom cua-enable-region-auto-help nil 341(defcustom cua-enable-region-auto-help nil
@@ -1235,7 +1235,7 @@ If ARG is the atom `-', scroll upward by nearly full screen."
1235 1235
1236(defun cua--init-keymaps () 1236(defun cua--init-keymaps ()
1237 (unless (eq cua-use-hyper-key 'only) 1237 (unless (eq cua-use-hyper-key 'only)
1238 (define-key cua-global-keymap [(shift return)] 'cua-set-rectangle-mark)) 1238 (define-key cua-global-keymap [(control return)] 'cua-set-rectangle-mark))
1239 (when cua-use-hyper-key 1239 (when cua-use-hyper-key
1240 (cua--M/H-key cua-global-keymap 'space 'cua-set-rectangle-mark) 1240 (cua--M/H-key cua-global-keymap 'space 'cua-set-rectangle-mark)
1241 (define-key cua-global-keymap [(hyper mouse-1)] 'cua-mouse-set-rectangle-mark)) 1241 (define-key cua-global-keymap [(hyper mouse-1)] 'cua-mouse-set-rectangle-mark))
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index 5c24c2dc36f..932448079dd 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -1,6 +1,6 @@
1;;; cua-rect.el --- CUA unified rectangle support 1;;; cua-rect.el --- CUA unified rectangle support
2 2
3;; Copyright (C) 1997-2002, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1997-2002, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Kim F. Storm <storm@cua.dk> 5;; Author: Kim F. Storm <storm@cua.dk>
6;; Keywords: keyboard emulations convenience CUA 6;; Keywords: keyboard emulations convenience CUA
@@ -1403,8 +1403,8 @@ With prefix arg, indent to that column."
1403 1403
1404(defun cua--init-rectangles () 1404(defun cua--init-rectangles ()
1405 (unless (eq cua-use-hyper-key 'only) 1405 (unless (eq cua-use-hyper-key 'only)
1406 (define-key cua--rectangle-keymap [(shift return)] 'cua-clear-rectangle-mark) 1406 (define-key cua--rectangle-keymap [(control return)] 'cua-clear-rectangle-mark)
1407 (define-key cua--region-keymap [(shift return)] 'cua-toggle-rectangle-mark)) 1407 (define-key cua--region-keymap [(control return)] 'cua-toggle-rectangle-mark))
1408 (when cua-use-hyper-key 1408 (when cua-use-hyper-key
1409 (cua--rect-M/H-key 'space 'cua-clear-rectangle-mark) 1409 (cua--rect-M/H-key 'space 'cua-clear-rectangle-mark)
1410 (cua--M/H-key cua--region-keymap 'space 'cua-toggle-rectangle-mark)) 1410 (cua--M/H-key cua--region-keymap 'space 'cua-toggle-rectangle-mark))
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index ff0298e9a17..01f0af6f307 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -1256,16 +1256,16 @@ Argument BOTTOM is the bottom margin in number of lines or percent of window."
1256 ;; set top scroll margin 1256 ;; set top scroll margin
1257 (or (string= top "") 1257 (or (string= top "")
1258 (if (string= "%" (substring top -1)) 1258 (if (string= "%" (substring top -1))
1259 (setq edt-top-scroll-margin (string-to-int top)) 1259 (setq edt-top-scroll-margin (string-to-number top))
1260 (setq edt-top-scroll-margin 1260 (setq edt-top-scroll-margin
1261 (/ (1- (+ (* (string-to-int top) 100) (window-height))) 1261 (/ (1- (+ (* (string-to-number top) 100) (window-height)))
1262 (window-height))))) 1262 (window-height)))))
1263 ;; set bottom scroll margin 1263 ;; set bottom scroll margin
1264 (or (string= bottom "") 1264 (or (string= bottom "")
1265 (if (string= "%" (substring bottom -1)) 1265 (if (string= "%" (substring bottom -1))
1266 (setq edt-bottom-scroll-margin (string-to-int bottom)) 1266 (setq edt-bottom-scroll-margin (string-to-number bottom))
1267 (setq edt-bottom-scroll-margin 1267 (setq edt-bottom-scroll-margin
1268 (/ (1- (+ (* (string-to-int bottom) 100) (window-height))) 1268 (/ (1- (+ (* (string-to-number bottom) 100) (window-height)))
1269 (window-height))))) 1269 (window-height)))))
1270 ;; report scroll margin settings if running interactively 1270 ;; report scroll margin settings if running interactively
1271 (and (interactive-p) 1271 (and (interactive-p)
diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el
index 188e335687c..1221fca5199 100644
--- a/lisp/emulation/pc-select.el
+++ b/lisp/emulation/pc-select.el
@@ -2,7 +2,7 @@
2;;; (or MAC GUI or MS-windoze (bah)) look-and-feel 2;;; (or MAC GUI or MS-windoze (bah)) look-and-feel
3;;; including key bindings. 3;;; including key bindings.
4 4
5;; Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc. 5;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2005 Free Software Foundation, Inc.
6 6
7;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE> 7;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
8;; Keywords: convenience emulation 8;; Keywords: convenience emulation
diff --git a/lisp/emulation/tpu-edt.el b/lisp/emulation/tpu-edt.el
index f8f608b01d0..ec0eef05321 100644
--- a/lisp/emulation/tpu-edt.el
+++ b/lisp/emulation/tpu-edt.el
@@ -1,6 +1,6 @@
1;;; tpu-edt.el --- Emacs emulating TPU emulating EDT 1;;; tpu-edt.el --- Emacs emulating TPU emulating EDT
2 2
3;; Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1994, 1995, 2000, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Rob Riepel <riepel@networking.stanford.edu> 5;; Author: Rob Riepel <riepel@networking.stanford.edu>
6;; Maintainer: Rob Riepel <riepel@networking.stanford.edu> 6;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
diff --git a/lisp/emulation/tpu-extras.el b/lisp/emulation/tpu-extras.el
index ced88ff3fdf..9c417dd3a40 100644
--- a/lisp/emulation/tpu-extras.el
+++ b/lisp/emulation/tpu-extras.el
@@ -440,16 +440,16 @@ version that respects the bottom scroll margin."
440 ;; set top scroll margin 440 ;; set top scroll margin
441 (or (string= top "") 441 (or (string= top "")
442 (if (string= "%" (substring top -1)) 442 (if (string= "%" (substring top -1))
443 (setq tpu-top-scroll-margin (string-to-int top)) 443 (setq tpu-top-scroll-margin (string-to-number top))
444 (setq tpu-top-scroll-margin 444 (setq tpu-top-scroll-margin
445 (/ (1- (+ (* (string-to-int top) 100) (window-height))) 445 (/ (1- (+ (* (string-to-number top) 100) (window-height)))
446 (window-height))))) 446 (window-height)))))
447 ;; set bottom scroll margin 447 ;; set bottom scroll margin
448 (or (string= bottom "") 448 (or (string= bottom "")
449 (if (string= "%" (substring bottom -1)) 449 (if (string= "%" (substring bottom -1))
450 (setq tpu-bottom-scroll-margin (string-to-int bottom)) 450 (setq tpu-bottom-scroll-margin (string-to-number bottom))
451 (setq tpu-bottom-scroll-margin 451 (setq tpu-bottom-scroll-margin
452 (/ (1- (+ (* (string-to-int bottom) 100) (window-height))) 452 (/ (1- (+ (* (string-to-number bottom) 100) (window-height)))
453 (window-height))))) 453 (window-height)))))
454 ;; report scroll margin settings if running interactively 454 ;; report scroll margin settings if running interactively
455 (and (interactive-p) 455 (and (interactive-p)
diff --git a/lisp/emulation/vip.el b/lisp/emulation/vip.el
index af878085ba8..19f08d54989 100644
--- a/lisp/emulation/vip.el
+++ b/lisp/emulation/vip.el
@@ -2177,7 +2177,7 @@ a token has type \(command, address, end-mark\) and value."
2177 (cond ((string= ex-token-type "plus") "add-number") 2177 (cond ((string= ex-token-type "plus") "add-number")
2178 ((string= ex-token-type "minus") "sub-number") 2178 ((string= ex-token-type "minus") "sub-number")
2179 (t "abs-number"))) 2179 (t "abs-number")))
2180 (setq ex-token (string-to-int (buffer-substring (point) (mark))))) 2180 (setq ex-token (string-to-number (buffer-substring (point) (mark)))))
2181 ((looking-at "\\$") 2181 ((looking-at "\\$")
2182 (forward-char 1) 2182 (forward-char 1)
2183 (setq ex-token-type "end")) 2183 (setq ex-token-type "end"))
@@ -2471,7 +2471,7 @@ a token has type \(command, address, end-mark\) and value."
2471 (progn 2471 (progn
2472 (set-mark (point)) 2472 (set-mark (point))
2473 (re-search-forward "[0-9][0-9]*") 2473 (re-search-forward "[0-9][0-9]*")
2474 (setq ex-count (string-to-int (buffer-substring (point) (mark)))) 2474 (setq ex-count (string-to-number (buffer-substring (point) (mark))))
2475 (skip-chars-forward " \t"))) 2475 (skip-chars-forward " \t")))
2476 (if (looking-at "[pl#]") 2476 (if (looking-at "[pl#]")
2477 (progn 2477 (progn
@@ -2496,7 +2496,7 @@ a token has type \(command, address, end-mark\) and value."
2496 (progn 2496 (progn
2497 (set-mark (point)) 2497 (set-mark (point))
2498 (re-search-forward "[0-9][0-9]*") 2498 (re-search-forward "[0-9][0-9]*")
2499 (setq ex-count (string-to-int (buffer-substring (point) (mark)))) 2499 (setq ex-count (string-to-number (buffer-substring (point) (mark))))
2500 (skip-chars-forward " \t"))) 2500 (skip-chars-forward " \t")))
2501 (if (looking-at "[pl#]") 2501 (if (looking-at "[pl#]")
2502 (progn 2502 (progn
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index 8023336b18b..4593d84c6fc 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -1,6 +1,6 @@
1;;; viper-cmd.el --- Vi command support for Viper 1;;; viper-cmd.el --- Vi command support for Viper
2 2
3;; Copyright (C) 1997, 98, 99, 2000, 01, 02 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 98, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Michael Kifer <kifer@cs.stonybrook.edu> 5;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
6 6
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index 90b006ffb65..7e8a5cbeb99 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -1,6 +1,6 @@
1;;; viper-ex.el --- functions implementing the Ex commands for Viper 1;;; viper-ex.el --- functions implementing the Ex commands for Viper
2 2
3;; Copyright (C) 1994, 95, 96, 97, 98, 2000, 01, 02, 04, 05 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 95, 96, 97, 98, 2000, 01, 02, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Michael Kifer <kifer@cs.stonybrook.edu> 5;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
6 6
@@ -434,7 +434,7 @@ reversed."
434 ((eq ex-token-type 'minus) 'sub-number) 434 ((eq ex-token-type 'minus) 'sub-number)
435 (t 'abs-number))) 435 (t 'abs-number)))
436 (setq ex-token 436 (setq ex-token
437 (string-to-int (buffer-substring (point) (mark t))))) 437 (string-to-number (buffer-substring (point) (mark t)))))
438 ((looking-at "\\$") 438 ((looking-at "\\$")
439 (forward-char 1) 439 (forward-char 1)
440 (setq ex-token-type 'end)) 440 (setq ex-token-type 'end))
@@ -912,7 +912,7 @@ reversed."
912 (progn 912 (progn
913 (set-mark (point)) 913 (set-mark (point))
914 (re-search-forward "[0-9][0-9]*") 914 (re-search-forward "[0-9][0-9]*")
915 (setq ex-count (string-to-int (buffer-substring (point) (mark t)))) 915 (setq ex-count (string-to-number (buffer-substring (point) (mark t))))
916 (skip-chars-forward " \t"))) 916 (skip-chars-forward " \t")))
917 (if (looking-at "[pl#]") 917 (if (looking-at "[pl#]")
918 (progn 918 (progn
@@ -938,7 +938,7 @@ reversed."
938 (progn 938 (progn
939 (set-mark (point)) 939 (set-mark (point))
940 (re-search-forward "[0-9][0-9]*") 940 (re-search-forward "[0-9][0-9]*")
941 (setq ex-count (string-to-int (buffer-substring (point) (mark t)))) 941 (setq ex-count (string-to-number (buffer-substring (point) (mark t))))
942 (skip-chars-forward " \t"))) 942 (skip-chars-forward " \t")))
943 (if (looking-at "[pl#]") 943 (if (looking-at "[pl#]")
944 (progn 944 (progn
@@ -1490,7 +1490,7 @@ reversed."
1490 (progn 1490 (progn
1491 (ex-edit t) 1491 (ex-edit t)
1492 (throw 'ex-edit nil)) 1492 (throw 'ex-edit nil))
1493 (setq count (string-to-int ex-file)) 1493 (setq count (string-to-number ex-file))
1494 (if (= count 0) (setq count 1)) 1494 (if (= count 0) (setq count 1))
1495 (if (< count 0) (error "Usage: `next <count>' (count >= 0)")))) 1495 (if (< count 0) (error "Usage: `next <count>' (count >= 0)"))))
1496 (setq count 1)) 1496 (setq count 1))
diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el
index e5074b95838..a74ca05b3df 100644
--- a/lisp/emulation/viper-keym.el
+++ b/lisp/emulation/viper-keym.el
@@ -1,6 +1,6 @@
1;;; viper-keym.el --- Viper keymaps 1;;; viper-keym.el --- Viper keymaps
2 2
3;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Michael Kifer <kifer@cs.stonybrook.edu> 5;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
6 6
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
index df0e37e7c25..9fd73efb9b9 100644
--- a/lisp/emulation/viper-macs.el
+++ b/lisp/emulation/viper-macs.el
@@ -1,6 +1,6 @@
1;;; viper-macs.el --- functions implementing keyboard macros for Viper 1;;; viper-macs.el --- functions implementing keyboard macros for Viper
2 2
3;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Michael Kifer <kifer@cs.stonybrook.edu> 5;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
6 6
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index 527a04084e2..497e4a1e559 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -1,6 +1,6 @@
1;;; viper-util.el --- Utilities used by viper.el 1;;; viper-util.el --- Utilities used by viper.el
2 2
3;; Copyright (C) 1994, 95, 96, 97, 99, 2000, 01, 02 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 95, 96, 97, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Michael Kifer <kifer@cs.stonybrook.edu> 5;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
6 6
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index be5a8e3467a..e3582f2165a 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -3,7 +3,7 @@
3;; and a venomous VI PERil. 3;; and a venomous VI PERil.
4;; Viper Is also a Package for Emacs Rebels. 4;; Viper Is also a Package for Emacs Rebels.
5 5
6;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02, 05 Free Software Foundation, Inc. 6;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc.
7 7
8;; Author: Michael Kifer <kifer@cs.stonybrook.edu> 8;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
9;; Keywords: emulations 9;; Keywords: emulations
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index cbee9fd626e..050c82cc310 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -520,7 +520,8 @@ This is used by `eshell-watch-for-password-prompt'."
520 (let ((inhibit-read-only t) 520 (let ((inhibit-read-only t)
521 (no-default (eobp)) 521 (no-default (eobp))
522 (find-tag-default-function 'ignore)) 522 (find-tag-default-function 'ignore))
523 (setq tagname (car (find-tag-interactive "Find tag: "))) 523 (with-no-warnings
524 (setq tagname (car (find-tag-interactive "Find tag: "))))
524 (find-tag tagname next-p regexp-p))) 525 (find-tag tagname next-p regexp-p)))
525 526
526(defun eshell-move-argument (limit func property arg) 527(defun eshell-move-argument (limit func property arg)
@@ -666,7 +667,7 @@ waiting for input."
666 (eshell-match-result "alpha\n")) 667 (eshell-match-result "alpha\n"))
667 668
668(defun eshell-send-input (&optional use-region queue-p no-newline) 669(defun eshell-send-input (&optional use-region queue-p no-newline)
669 "Send the input received to Eshell for parsing and processing.. 670 "Send the input received to Eshell for parsing and processing.
670After `eshell-last-output-end', sends all text from that marker to 671After `eshell-last-output-end', sends all text from that marker to
671point as input. Before that marker, calls `eshell-get-old-input' to 672point as input. Before that marker, calls `eshell-get-old-input' to
672retrieve old input, copies it to the end of the buffer, and sends it. 673retrieve old input, copies it to the end of the buffer, and sends it.
diff --git a/lisp/faces.el b/lisp/faces.el
index 3b620927d10..f4522c8a155 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1014,7 +1014,7 @@ name of the attribute for prompting. Value is the new attribute value."
1014 ((member new-value '("unspecified-fg" "unspecified-bg")) 1014 ((member new-value '("unspecified-fg" "unspecified-bg"))
1015 new-value) 1015 new-value)
1016 (t 1016 (t
1017 (string-to-int new-value))))) 1017 (string-to-number new-value)))))
1018 1018
1019 1019
1020(defun read-face-attribute (face attribute &optional frame) 1020(defun read-face-attribute (face attribute &optional frame)
@@ -1184,6 +1184,7 @@ arg, prompt for a regular expression."
1184 (save-excursion 1184 (save-excursion
1185 (save-match-data 1185 (save-match-data
1186 (search-backward face-name) 1186 (search-backward face-name)
1187 (setq help-xref-stack-item `(list-faces-display ,regexp))
1187 (help-xref-button 0 'help-customize-face face))) 1188 (help-xref-button 0 'help-customize-face face)))
1188 (let ((beg (point)) 1189 (let ((beg (point))
1189 (line-beg (line-beginning-position))) 1190 (line-beg (line-beginning-position)))
@@ -1258,17 +1259,32 @@ If FRAME is omitted or nil, use the selected frame."
1258 (insert "Face: " (symbol-name f)) 1259 (insert "Face: " (symbol-name f))
1259 (if (not (facep f)) 1260 (if (not (facep f))
1260 (insert " undefined face.\n") 1261 (insert " undefined face.\n")
1261 (let ((customize-label "customize this face")) 1262 (let ((customize-label "customize this face")
1263 file-name)
1262 (princ (concat " (" customize-label ")\n")) 1264 (princ (concat " (" customize-label ")\n"))
1263 (insert "Documentation: " 1265 (insert "Documentation: "
1264 (or (face-documentation f) 1266 (or (face-documentation f)
1265 "Not documented as a face.") 1267 "Not documented as a face.")
1266 "\n\n") 1268 "\n")
1267 (with-current-buffer standard-output 1269 (with-current-buffer standard-output
1268 (save-excursion 1270 (save-excursion
1269 (re-search-backward 1271 (re-search-backward
1270 (concat "\\(" customize-label "\\)") nil t) 1272 (concat "\\(" customize-label "\\)") nil t)
1271 (help-xref-button 1 'help-customize-face f))) 1273 (help-xref-button 1 'help-customize-face f)))
1274 ;; The next 4 sexps are copied from describe-function-1
1275 ;; and simplified.
1276 (setq file-name (symbol-file f 'defface))
1277 (when file-name
1278 (princ "Defined in `")
1279 (princ file-name)
1280 (princ "'")
1281 ;; Make a hyperlink to the library.
1282 (save-excursion
1283 (re-search-backward "`\\([^`']+\\)'" nil t)
1284 (help-xref-button 1 'help-face-def f file-name))
1285 (princ ".")
1286 (terpri)
1287 (terpri))
1272 (dolist (a attrs) 1288 (dolist (a attrs)
1273 (let ((attr (face-attribute f (car a) frame))) 1289 (let ((attr (face-attribute f (car a) frame)))
1274 (insert (make-string (- max-width (length (cdr a))) ?\ ) 1290 (insert (make-string (- max-width (length (cdr a))) ?\ )
@@ -2048,7 +2064,7 @@ Note: Other faces cannot inherit from the cursor face."
2048 (t :inverse-video t)) 2064 (t :inverse-video t))
2049 "Basic face for highlighting trailing whitespace." 2065 "Basic face for highlighting trailing whitespace."
2050 :version "21.1" 2066 :version "21.1"
2051 :group 'font-lock ; like `show-trailing-whitespace' 2067 :group 'whitespace ; like `show-trailing-whitespace'
2052 :group 'basic-faces) 2068 :group 'basic-faces)
2053 2069
2054(defface escape-glyph '((((background dark)) :foreground "cyan") 2070(defface escape-glyph '((((background dark)) :foreground "cyan")
diff --git a/lisp/files.el b/lisp/files.el
index 99847b2f3fc..d519f041152 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -541,7 +541,7 @@ DIR should be an absolute directory name. It defaults to
541the value of `default-directory'." 541the value of `default-directory'."
542 (unless dir 542 (unless dir
543 (setq dir default-directory)) 543 (setq dir default-directory))
544 (read-file-name prompt dir (or default-dirname 544 (read-file-name prompt dir (or default-dirname
545 (if initial (expand-file-name initial dir) 545 (if initial (expand-file-name initial dir)
546 dir)) 546 dir))
547 mustmatch initial 547 mustmatch initial
@@ -1728,10 +1728,10 @@ or from Lisp without specifying the optional argument FIND-FILE;
1728in that case, this function acts as if `enable-local-variables' were t." 1728in that case, this function acts as if `enable-local-variables' were t."
1729 (interactive) 1729 (interactive)
1730 (or find-file (funcall (or default-major-mode 'fundamental-mode))) 1730 (or find-file (funcall (or default-major-mode 'fundamental-mode)))
1731 (report-errors "File mode specification error: %s" 1731 (let ((enable-local-variables (or (not find-file) enable-local-variables)))
1732 (set-auto-mode)) 1732 (report-errors "File mode specification error: %s"
1733 (report-errors "File local-variables error: %s" 1733 (set-auto-mode))
1734 (let ((enable-local-variables (or (not find-file) enable-local-variables))) 1734 (report-errors "File local-variables error: %s"
1735 (hack-local-variables))) 1735 (hack-local-variables)))
1736 (if (fboundp 'ucs-set-table-for-input) ; don't lose when building 1736 (if (fboundp 'ucs-set-table-for-input) ; don't lose when building
1737 (ucs-set-table-for-input))) 1737 (ucs-set-table-for-input)))
@@ -1762,9 +1762,11 @@ in that case, this function acts as if `enable-local-variables' were t."
1762 ("\\.ad[abs]\\'" . ada-mode) 1762 ("\\.ad[abs]\\'" . ada-mode)
1763 ("\\.ad[bs].dg\\'" . ada-mode) 1763 ("\\.ad[bs].dg\\'" . ada-mode)
1764 ("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode) 1764 ("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode)
1765 ("\\.mk\\'" . makefile-mode) 1765 ("\\.mk\\'" . makefile-gmake-mode) ; Might be any make, give Gnu the host advantage
1766 ("\\([Mm]\\|GNUm\\)akep*file\\'" . makefile-mode) 1766 ("[Mm]akefile\\'" . makefile-mode)
1767 ("\\.am\\'" . makefile-mode) ;For Automake. 1767 ("GNUmakefile\\'" . makefile-gmake-mode)
1768 ("Makeppfile\\'" . makefile-makepp-mode)
1769 ("\\.am\\'" . makefile-automake-mode)
1768 ;; Less common extensions come here 1770 ;; Less common extensions come here
1769 ;; so more common ones above are found faster. 1771 ;; so more common ones above are found faster.
1770 ("\\.texinfo\\'" . texinfo-mode) 1772 ("\\.texinfo\\'" . texinfo-mode)
@@ -1936,13 +1938,13 @@ and `magic-mode-alist', which determines modes based on file contents.")
1936 ("more" . text-mode) 1938 ("more" . text-mode)
1937 ("less" . text-mode) 1939 ("less" . text-mode)
1938 ("pg" . text-mode) 1940 ("pg" . text-mode)
1939 ("make" . makefile-mode) ; Debian uses this 1941 ("make" . makefile-gmake-mode) ; Debian uses this
1940 ("guile" . scheme-mode) 1942 ("guile" . scheme-mode)
1941 ("clisp" . lisp-mode))) 1943 ("clisp" . lisp-mode)))
1942 "Alist mapping interpreter names to major modes. 1944 "Alist mapping interpreter names to major modes.
1943This is used for files whose first lines match `auto-mode-interpreter-regexp'. 1945This is used for files whose first lines match `auto-mode-interpreter-regexp'.
1944Each element looks like (INTERPRETER . MODE). 1946Each element looks like (INTERPRETER . MODE).
1945The car of each element is compared with 1947The car of each element, a regular expression, is compared with
1946the name of the interpreter specified in the first line. 1948the name of the interpreter specified in the first line.
1947If it matches, mode MODE is selected. 1949If it matches, mode MODE is selected.
1948 1950
@@ -1959,13 +1961,12 @@ from the end of the file name anything that matches one of these regexps.")
1959(defvar auto-mode-interpreter-regexp 1961(defvar auto-mode-interpreter-regexp
1960 "#![ \t]?\\([^ \t\n]*\ 1962 "#![ \t]?\\([^ \t\n]*\
1961/bin/env[ \t]\\)?\\([^ \t\n]+\\)" 1963/bin/env[ \t]\\)?\\([^ \t\n]+\\)"
1962 "Regular expression matching interpreters, for file mode determination. 1964 "Regexp matching interpreters, for file mode determination.
1963This regular expression is matched against the first line of a file 1965This regular expression is matched against the first line of a file
1964to determine the file's mode in `set-auto-mode' when Emacs can't deduce 1966to determine the file's mode in `set-auto-mode'. If it matches, the file
1965a mode from the file's name. If it matches, the file is assumed to 1967is assumed to be interpreted by the interpreter matched by the second group
1966be interpreted by the interpreter matched by the second group of the 1968of the regular expression. The mode is then determined as the mode
1967regular expression. The mode is then determined as the mode associated 1969associated with that interpreter in `interpreter-mode-alist'.")
1968with that interpreter in `interpreter-mode-alist'.")
1969 1970
1970(defvar magic-mode-alist 1971(defvar magic-mode-alist
1971 `(;; The < comes before the groups (but the first) to reduce backtracking. 1972 `(;; The < comes before the groups (but the first) to reduce backtracking.
@@ -1992,7 +1993,7 @@ if REGEXP matches the text at the beginning of the buffer,
1992to decide the buffer's major mode. 1993to decide the buffer's major mode.
1993 1994
1994If FUNCTION is nil, then it is not called. (That is a way of saying 1995If FUNCTION is nil, then it is not called. (That is a way of saying
1995\"allow `auto-mode-alist' to decide for these files.") 1996\"allow `auto-mode-alist' to decide for these files.)")
1996 1997
1997(defun set-auto-mode (&optional keep-mode-if-same) 1998(defun set-auto-mode (&optional keep-mode-if-same)
1998 "Select major mode appropriate for current buffer. 1999 "Select major mode appropriate for current buffer.
@@ -2151,7 +2152,7 @@ Otherwise, return nil; point may be changed."
2151 (goto-char beg) 2152 (goto-char beg)
2152 end)))) 2153 end))))
2153 2154
2154(defun hack-local-variables-confirm () 2155(defun hack-local-variables-confirm (string)
2155 (or (eq enable-local-variables t) 2156 (or (eq enable-local-variables t)
2156 (and enable-local-variables 2157 (and enable-local-variables
2157 (save-window-excursion 2158 (save-window-excursion
@@ -2168,8 +2169,10 @@ Otherwise, return nil; point may be changed."
2168 (save-excursion 2169 (save-excursion
2169 (beginning-of-line) 2170 (beginning-of-line)
2170 (set-window-start (selected-window) (point))) 2171 (set-window-start (selected-window) (point)))
2171 (y-or-n-p (format "Set local variables as specified in -*- line of %s? " 2172 (y-or-n-p (format string
2172 (file-name-nondirectory buffer-file-name))))))) 2173 (if buffer-file-name
2174 (file-name-nondirectory buffer-file-name)
2175 (concat "buffer " (buffer-name)))))))))
2173 2176
2174(defun hack-local-variables-prop-line (&optional mode-only) 2177(defun hack-local-variables-prop-line (&optional mode-only)
2175 "Set local variables specified in the -*- line. 2178 "Set local variables specified in the -*- line.
@@ -2225,7 +2228,8 @@ is specified, returning t if it is specified."
2225 (if mode-only mode-specified 2228 (if mode-only mode-specified
2226 (if (and result 2229 (if (and result
2227 (or mode-only 2230 (or mode-only
2228 (hack-local-variables-confirm))) 2231 (hack-local-variables-confirm
2232 "Set local variables as specified in -*- line of %s? ")))
2229 (let ((enable-local-eval enable-local-eval)) 2233 (let ((enable-local-eval enable-local-eval))
2230 (while result 2234 (while result
2231 (hack-one-local-variable (car (car result)) (cdr (car result))) 2235 (hack-one-local-variable (car (car result)) (cdr (car result)))
@@ -2255,7 +2259,8 @@ is specified, returning t if it is specified."
2255 (when (let ((case-fold-search t)) 2259 (when (let ((case-fold-search t))
2256 (and (search-forward "Local Variables:" nil t) 2260 (and (search-forward "Local Variables:" nil t)
2257 (or mode-only 2261 (or mode-only
2258 (hack-local-variables-confirm)))) 2262 (hack-local-variables-confirm
2263 "Set local variables as specified at end of %s? "))))
2259 (skip-chars-forward " \t") 2264 (skip-chars-forward " \t")
2260 (let ((enable-local-eval enable-local-eval) 2265 (let ((enable-local-eval enable-local-eval)
2261 ;; suffix is what comes after "local variables:" in its line. 2266 ;; suffix is what comes after "local variables:" in its line.
@@ -2476,7 +2481,8 @@ is considered risky."
2476 (hack-one-local-variable-eval-safep val)) 2481 (hack-one-local-variable-eval-safep val))
2477 ;; Permit eval if not root and user says ok. 2482 ;; Permit eval if not root and user says ok.
2478 (and (not (zerop (user-uid))) 2483 (and (not (zerop (user-uid)))
2479 (hack-local-variables-confirm))) 2484 (hack-local-variables-confirm
2485 "Process `eval' or hook local variables in %s? ")))
2480 (if (eq var 'eval) 2486 (if (eq var 'eval)
2481 (save-excursion (eval val)) 2487 (save-excursion (eval val))
2482 (make-local-variable var) 2488 (make-local-variable var)
@@ -2982,7 +2988,7 @@ Uses the free variable `backup-extract-version-start', whose value should be
2982the index in the name where the version number begins." 2988the index in the name where the version number begins."
2983 (if (and (string-match "[0-9]+~$" fn backup-extract-version-start) 2989 (if (and (string-match "[0-9]+~$" fn backup-extract-version-start)
2984 (= (match-beginning 0) backup-extract-version-start)) 2990 (= (match-beginning 0) backup-extract-version-start))
2985 (string-to-int (substring fn backup-extract-version-start -1)) 2991 (string-to-number (substring fn backup-extract-version-start -1))
2986 0)) 2992 0))
2987 2993
2988;; I believe there is no need to alter this behavior for VMS; 2994;; I believe there is no need to alter this behavior for VMS;
@@ -4546,7 +4552,7 @@ normally equivalent short `-D' option is just passed on to
4546 (if (string-match "ls (.*utils) \\([0-9.]*\\)$" version-out) 4552 (if (string-match "ls (.*utils) \\([0-9.]*\\)$" version-out)
4547 (let* ((version (match-string 1 version-out)) 4553 (let* ((version (match-string 1 version-out))
4548 (split (split-string version "[.]")) 4554 (split (split-string version "[.]"))
4549 (numbers (mapcar 'string-to-int split)) 4555 (numbers (mapcar 'string-to-number split))
4550 (min '(5 2 1)) 4556 (min '(5 2 1))
4551 comparison) 4557 comparison)
4552 (while (and (not comparison) (or numbers min)) 4558 (while (and (not comparison) (or numbers min))
diff --git a/lisp/finder.el b/lisp/finder.el
index 7a886e5480f..fb327524793 100644
--- a/lisp/finder.el
+++ b/lisp/finder.el
@@ -182,7 +182,7 @@ no arguments compiles from `load-path'."
182;;; End: 182;;; End:
183;;; " (file-name-nondirectory generated-finder-keywords-file) " ends here\n") 183;;; " (file-name-nondirectory generated-finder-keywords-file) " ends here\n")
184 (kill-buffer "*finder-scratch*") 184 (kill-buffer "*finder-scratch*")
185 (eval-current-buffer) ;; So we get the new keyword list immediately 185 (eval-buffer) ;; So we get the new keyword list immediately
186 (basic-save-buffer)))) 186 (basic-save-buffer))))
187 187
188(defun finder-compile-keywords-make-dist () 188(defun finder-compile-keywords-make-dist ()
diff --git a/lisp/follow.el b/lisp/follow.el
index 61517a68ff1..74dc12f8881 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -394,7 +394,6 @@ Used by `follow-window-size-change'.")
394 "Anders Lindgren <andersl@andersl.com>" 394 "Anders Lindgren <andersl@andersl.com>"
395 "follow.el" 395 "follow.el"
396 '(post-command-hook 396 '(post-command-hook
397 post-command-idle-hook
398 pre-command-hook 397 pre-command-hook
399 window-size-change-functions 398 window-size-change-functions
400 window-scroll-functions 399 window-scroll-functions
@@ -683,9 +682,6 @@ Keys specific to Follow mode:
683 (set 'scroll-on-clipped-lines nil)) 682 (set 'scroll-on-clipped-lines nil))
684 (force-mode-line-update) 683 (force-mode-line-update)
685 (add-hook 'post-command-hook 'follow-post-command-hook t) 684 (add-hook 'post-command-hook 'follow-post-command-hook t)
686 (if (boundp 'post-command-idle-hook)
687 (add-hook 'post-command-idle-hook
688 'follow-avoid-tail-recenter t))
689 (run-hooks 'follow-mode-hook)) 685 (run-hooks 'follow-mode-hook))
690 686
691 ((and (not follow-mode) follow-mode-orig) ; Off 687 ((and (not follow-mode) follow-mode-orig) ; Off
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index aae73bd1e03..5065553121d 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1311,12 +1311,19 @@ START should be at the beginning of a line."
1311 1311
1312;;; Syntactic fontification functions. 1312;;; Syntactic fontification functions.
1313 1313
1314(defvar font-lock-comment-start-skip nil
1315 "If non-nil, Font Lock mode uses this instead of `comment-start-skip'.")
1316
1317(defvar font-lock-comment-end-skip nil
1318 "If non-nil, Font Lock mode uses this instead of `comment-end'.")
1319
1314(defun font-lock-fontify-syntactically-region (start end &optional loudly ppss) 1320(defun font-lock-fontify-syntactically-region (start end &optional loudly ppss)
1315 "Put proper face on each string and comment between START and END. 1321 "Put proper face on each string and comment between START and END.
1316START should be at the beginning of a line." 1322START should be at the beginning of a line."
1317 (let ((comment-end-regexp 1323 (let ((comment-end-regexp
1318 (regexp-quote 1324 (or font-lock-comment-end-skip
1319 (replace-regexp-in-string "^ *" "" comment-end))) 1325 (regexp-quote
1326 (replace-regexp-in-string "^ *" "" comment-end))))
1320 state face beg) 1327 state face beg)
1321 (if loudly (message "Fontifying %s... (syntactically...)" (buffer-name))) 1328 (if loudly (message "Fontifying %s... (syntactically...)" (buffer-name)))
1322 (goto-char start) 1329 (goto-char start)
@@ -1334,12 +1341,14 @@ START should be at the beginning of a line."
1334 'syntax-table)) 1341 'syntax-table))
1335 (when face (put-text-property beg (point) 'face face)) 1342 (when face (put-text-property beg (point) 'face face))
1336 (when (and (eq face 'font-lock-comment-face) 1343 (when (and (eq face 'font-lock-comment-face)
1337 comment-start-skip) 1344 (or font-lock-comment-start-skip
1345 comment-start-skip))
1338 ;; Find the comment delimiters 1346 ;; Find the comment delimiters
1339 ;; and use font-lock-comment-delimiter-face for them. 1347 ;; and use font-lock-comment-delimiter-face for them.
1340 (save-excursion 1348 (save-excursion
1341 (goto-char beg) 1349 (goto-char beg)
1342 (if (looking-at comment-start-skip) 1350 (if (looking-at (or font-lock-comment-start-skip
1351 comment-start-skip))
1343 (put-text-property beg (match-end 0) 'face 1352 (put-text-property beg (match-end 0) 'face
1344 font-lock-comment-delimiter-face))) 1353 font-lock-comment-delimiter-face)))
1345 (if (looking-back comment-end-regexp (point-at-bol)) 1354 (if (looking-back comment-end-regexp (point-at-bol))
@@ -1655,27 +1664,6 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
1655 1664
1656;; But now we do it the custom way. Note that `defface' will not overwrite any 1665;; But now we do it the custom way. Note that `defface' will not overwrite any
1657;; faces declared above via `custom-declare-face'. 1666;; faces declared above via `custom-declare-face'.
1658(defface font-lock-comment-delimiter-face
1659 '((((class grayscale) (background light))
1660 (:foreground "DimGray" :weight bold :slant italic))
1661 (((class grayscale) (background dark))
1662 (:foreground "LightGray" :weight bold :slant italic))
1663 (((class color) (min-colors 88) (background light))
1664 (:foreground "Firebrick"))
1665 (((class color) (min-colors 88) (background dark))
1666 (:foreground "chocolate1"))
1667 (((class color) (min-colors 16) (background light))
1668 (:foreground "red"))
1669 (((class color) (min-colors 16) (background dark))
1670 (:foreground "red1"))
1671 (((class color) (min-colors 8) (background light))
1672 (:foreground "red"))
1673 (((class color) (min-colors 8) (background dark))
1674 (:foreground "red1"))
1675 (t (:weight bold :slant italic)))
1676 "Font Lock mode face used to highlight comment delimiters."
1677 :group 'font-lock-highlighting-faces)
1678
1679(defface font-lock-comment-face 1667(defface font-lock-comment-face
1680 '((((class grayscale) (background light)) 1668 '((((class grayscale) (background light))
1681 (:foreground "DimGray" :weight bold :slant italic)) 1669 (:foreground "DimGray" :weight bold :slant italic))
@@ -1697,6 +1685,17 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
1697 "Font Lock mode face used to highlight comments." 1685 "Font Lock mode face used to highlight comments."
1698 :group 'font-lock-highlighting-faces) 1686 :group 'font-lock-highlighting-faces)
1699 1687
1688(defface font-lock-comment-delimiter-face
1689 '((default :inherit font-lock-comment-face)
1690 (((class grayscale)))
1691 (((class color) (min-colors 16)))
1692 (((class color) (min-colors 8) (background light))
1693 :foreground "red")
1694 (((class color) (min-colors 8) (background dark))
1695 :foreground "red1"))
1696 "Font Lock mode face used to highlight comment delimiters."
1697 :group 'font-lock-highlighting-faces)
1698
1700(defface font-lock-string-face 1699(defface font-lock-string-face
1701 '((((class grayscale) (background light)) (:foreground "DimGray" :slant italic)) 1700 '((((class grayscale) (background light)) (:foreground "DimGray" :slant italic))
1702 (((class grayscale) (background dark)) (:foreground "LightGray" :slant italic)) 1701 (((class grayscale) (background dark)) (:foreground "LightGray" :slant italic))
@@ -1798,13 +1797,8 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
1798 "Font Lock mode face used to highlight warnings." 1797 "Font Lock mode face used to highlight warnings."
1799 :group 'font-lock-highlighting-faces) 1798 :group 'font-lock-highlighting-faces)
1800 1799
1801;; Matches font-lock-builtin-face, because that is used for #ifndef and
1802;; font-lock-keyword-face, which alas make-mode uses for ifndef
1803(defface font-lock-negation-char-face 1800(defface font-lock-negation-char-face
1804 '((((class color) (min-colors 88) (background light)) (:foreground "VioletRed" :weight bold)) 1801 '((t nil))
1805 (((class color) (min-colors 88) (background dark)) (:foreground "MediumOrchid1" :weight bold))
1806 (((class color) (min-colors 8)) (:foreground "red" :weight bold))
1807 (t (:inverse-video t :weight bold)))
1808 "Font Lock mode face used to highlight easy to overlook negation." 1802 "Font Lock mode face used to highlight easy to overlook negation."
1809 :group 'font-lock-highlighting-faces) 1803 :group 'font-lock-highlighting-faces)
1810 1804
@@ -1974,109 +1968,112 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item."
1974 1968
1975(defconst lisp-font-lock-keywords-1 1969(defconst lisp-font-lock-keywords-1
1976 (eval-when-compile 1970 (eval-when-compile
1977 (list 1971 `(;; Definitions.
1978 ;; 1972 (,(concat "(\\(def\\("
1979 ;; Definitions. 1973 ;; Function declarations.
1980 (list (concat "(\\(def\\(" 1974 "\\(advice\\|varalias\\|alias\\|generic\\|macro\\*?\\|method\\|"
1981 ;; Function declarations. 1975 "setf\\|subst\\*?\\|un\\*?\\|"
1982 "\\(advice\\|varalias\\|alias\\|generic\\|macro\\*?\\|method\\|" 1976 "ine-\\(condition\\|\\(?:derived\\|minor\\|generic\\)-mode\\|"
1983 "setf\\|subst\\*?\\|un\\*?\\|" 1977 "method-combination\\|setf-expander\\|skeleton\\|widget\\|"
1984 "ine-\\(condition\\|\\(?:derived\\|minor\\|generic\\)-mode\\|" 1978 "function\\|\\(compiler\\|modify\\|symbol\\)-macro\\)\\)\\|"
1985 "method-combination\\|setf-expander\\|skeleton\\|widget\\|" 1979 ;; Variable declarations.
1986 "function\\|\\(compiler\\|modify\\|symbol\\)-macro\\)\\)\\|" 1980 "\\(const\\(ant\\)?\\|custom\\|face\\|parameter\\|var\\)\\|"
1987 ;; Variable declarations. 1981 ;; Structure declarations.
1988 "\\(const\\(ant\\)?\\|custom\\|face\\|parameter\\|var\\)\\|" 1982 "\\(class\\|group\\|theme\\|package\\|struct\\|type\\)"
1989 ;; Structure declarations. 1983 "\\)\\)\\>"
1990 "\\(class\\|group\\|theme\\|package\\|struct\\|type\\)" 1984 ;; Any whitespace and defined object.
1991 "\\)\\)\\>" 1985 "[ \t'\(]*"
1992 ;; Any whitespace and defined object. 1986 "\\(setf[ \t]+\\sw+)\\|\\sw+\\)?")
1993 "[ \t'\(]*" 1987 (1 font-lock-keyword-face)
1994 "\\(setf[ \t]+\\sw+)\\|\\sw+\\)?") 1988 (9 (cond ((match-beginning 3) font-lock-function-name-face)
1995 '(1 font-lock-keyword-face) 1989 ((match-beginning 6) font-lock-variable-name-face)
1996 '(9 (cond ((match-beginning 3) font-lock-function-name-face) 1990 (t font-lock-type-face))
1997 ((match-beginning 6) font-lock-variable-name-face) 1991 nil t))
1998 (t font-lock-type-face)) 1992 ;; Emacs Lisp autoload cookies.
1999 nil t)) 1993 ("^;;;###\\(autoload\\)" 1 font-lock-warning-face prepend)
2000 ;; 1994 ;; Regexp negated char group.
2001 ;; Emacs Lisp autoload cookies. 1995 ("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)))
2002 '("^;;;###\\(autoload\\)" 1 font-lock-warning-face prepend)
2003 ))
2004 "Subdued level highlighting for Lisp modes.") 1996 "Subdued level highlighting for Lisp modes.")
2005 1997
2006(defconst lisp-font-lock-keywords-2 1998(defconst lisp-font-lock-keywords-2
2007 (append lisp-font-lock-keywords-1 1999 (append lisp-font-lock-keywords-1
2008 (eval-when-compile 2000 (eval-when-compile
2009 (list 2001 `(;; Control structures. Emacs Lisp forms.
2010 ;; 2002 (,(concat
2011 ;; Control structures. Emacs Lisp forms. 2003 "(" (regexp-opt
2012 (cons (concat 2004 '("cond" "if" "while" "let" "let*"
2013 "(" (regexp-opt 2005 "prog" "progn" "progv" "prog1" "prog2" "prog*"
2014 '("cond" "if" "while" "let" "let*" 2006 "inline" "lambda" "save-restriction" "save-excursion"
2015 "prog" "progn" "progv" "prog1" "prog2" "prog*" 2007 "save-window-excursion" "save-selected-window"
2016 "inline" "lambda" "save-restriction" "save-excursion" 2008 "save-match-data" "save-current-buffer" "unwind-protect"
2017 "save-window-excursion" "save-selected-window" 2009 "condition-case" "track-mouse"
2018 "save-match-data" "save-current-buffer" "unwind-protect" 2010 "eval-after-load" "eval-and-compile" "eval-when-compile"
2019 "condition-case" "track-mouse" 2011 "eval-when"
2020 "eval-after-load" "eval-and-compile" "eval-when-compile" 2012 "with-category-table"
2021 "eval-when" 2013 "with-current-buffer" "with-electric-help"
2022 "with-category-table" 2014 "with-local-quit" "with-no-warnings"
2023 "with-current-buffer" "with-electric-help" 2015 "with-output-to-string" "with-output-to-temp-buffer"
2024 "with-local-quit" "with-no-warnings" 2016 "with-selected-window" "with-syntax-table"
2025 "with-output-to-string" "with-output-to-temp-buffer" 2017 "with-temp-buffer" "with-temp-file" "with-temp-message"
2026 "with-selected-window" "with-syntax-table" 2018 "with-timeout" "with-timeout-handler") t)
2027 "with-temp-buffer" "with-temp-file" "with-temp-message" 2019 "\\>")
2028 "with-timeout" "with-timeout-handler") t) 2020 . 1)
2029 "\\>") 2021 ;; Control structures. Common Lisp forms.
2030 1) 2022 (,(concat
2031 ;; 2023 "(" (regexp-opt
2032 ;; Control structures. Common Lisp forms. 2024 '("when" "unless" "case" "ecase" "typecase" "etypecase"
2033 (cons (concat 2025 "ccase" "ctypecase" "handler-case" "handler-bind"
2034 "(" (regexp-opt 2026 "restart-bind" "restart-case" "in-package"
2035 '("when" "unless" "case" "ecase" "typecase" "etypecase" 2027 "break" "ignore-errors"
2036 "ccase" "ctypecase" "handler-case" "handler-bind" 2028 "loop" "do" "do*" "dotimes" "dolist" "the" "locally"
2037 "restart-bind" "restart-case" "in-package" 2029 "proclaim" "declaim" "declare" "symbol-macrolet"
2038 "break" "ignore-errors" 2030 "lexical-let" "lexical-let*" "flet" "labels" "compiler-let"
2039 "loop" "do" "do*" "dotimes" "dolist" "the" "locally" 2031 "destructuring-bind" "macrolet" "tagbody" "block" "go"
2040 "proclaim" "declaim" "declare" "symbol-macrolet" 2032 "multiple-value-bind" "multiple-value-prog1"
2041 "lexical-let" "lexical-let*" "flet" "labels" "compiler-let" 2033 "return" "return-from"
2042 "destructuring-bind" "macrolet" "tagbody" "block" "go" 2034 "with-accessors" "with-compilation-unit"
2043 "multiple-value-bind" "multiple-value-prog1" 2035 "with-condition-restarts" "with-hash-table-iterator"
2044 "return" "return-from" 2036 "with-input-from-string" "with-open-file"
2045 "with-accessors" "with-compilation-unit" 2037 "with-open-stream" "with-output-to-string"
2046 "with-condition-restarts" "with-hash-table-iterator" 2038 "with-package-iterator" "with-simple-restart"
2047 "with-input-from-string" "with-open-file" 2039 "with-slots" "with-standard-io-syntax") t)
2048 "with-open-stream" "with-output-to-string" 2040 "\\>")
2049 "with-package-iterator" "with-simple-restart" 2041 . 1)
2050 "with-slots" "with-standard-io-syntax") t) 2042 ;; Exit/Feature symbols as constants.
2051 "\\>") 2043 (,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>"
2052 1) 2044 "[ \t']*\\(\\sw+\\)?")
2053 ;; 2045 (1 font-lock-keyword-face)
2054 ;; Exit/Feature symbols as constants. 2046 (2 font-lock-constant-face nil t))
2055 (list (concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\>" 2047 ;; Erroneous structures.
2056 "[ \t']*\\(\\sw+\\)?") 2048 ("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>" 1 font-lock-warning-face)
2057 '(1 font-lock-keyword-face) 2049 ;; Words inside \\[] tend to be for `substitute-command-keys'.
2058 '(2 font-lock-constant-face nil t)) 2050 ("\\\\\\\\\\[\\(\\sw+\\)]" 1 font-lock-constant-face prepend)
2059 ;; 2051 ;; Words inside `' tend to be symbol names.
2060 ;; Erroneous structures. 2052 ("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend)
2061 '("(\\(abort\\|assert\\|warn\\|check-type\\|cerror\\|error\\|signal\\)\\>" 1 font-lock-warning-face) 2053 ;; Constant values.
2062 ;; 2054 ("\\<:\\sw+\\>" 0 font-lock-builtin-face)
2063 ;; Words inside \\[] tend to be for `substitute-command-keys'. 2055 ;; ELisp and CLisp `&' keywords as types.
2064 '("\\\\\\\\\\[\\(\\sw+\\)]" 1 font-lock-constant-face prepend) 2056 ("\\&\\sw+\\>" . font-lock-type-face)
2065 ;; 2057 ;; Make regexp grouping constructs bold, so they stand out, but only in strings.
2066 ;; Words inside `' tend to be symbol names. 2058 ((lambda (bound)
2067 '("`\\(\\sw\\sw+\\)'" 1 font-lock-constant-face prepend) 2059 (if (re-search-forward "\\([\\][\\]\\)\\([(|)]\\)\\(\\?:\\)?" bound)
2068 ;; 2060 (let ((face (get-text-property (1- (point)) 'face)))
2069 ;; Constant values. 2061 (if (listp face)
2070 '("\\<:\\sw+\\>" 0 font-lock-builtin-face) 2062 (memq 'font-lock-string-face face)
2071 ;; 2063 (eq 'font-lock-string-face face)))))
2072 ;; ELisp and CLisp `&' keywords as types. 2064 (1 font-lock-comment-face prepend) ; Should we introduce a lowlight face for this?
2073 '("\\&\\sw+\\>" . font-lock-type-face) 2065 ; Ideally that would retain the color, dimmed 50%.
2074 ;; 2066 (2 'bold prepend)
2067 (3 font-lock-type-face prepend t))
2068 ;; Underline innermost grouping, so that you can more easily see what belongs together.
2069 ;; 2005-05-12: Font-lock can go into an unbreakable endless loop on this -- something's broken.
2070 ;;("[\\][\\][(]\\(?:\\?:\\)?\\(\\(?:[^\\\"]+\\|[\\]\\(?:[^\\]\\|[\\][^(]\\)\\)+?\\)[\\][\\][)]"
2071 ;;1 'underline prepend)
2075;;; This is too general -- rms. 2072;;; This is too general -- rms.
2076;;; A user complained that he has functions whose names start with `do' 2073;;; A user complained that he has functions whose names start with `do'
2077;;; and that they get the wrong color. 2074;;; and that they get the wrong color.
2078;;; ;; CL `with-' and `do-' constructs 2075;;; ;; CL `with-' and `do-' constructs
2079;;; '("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face) 2076;;; ("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
2080 ))) 2077 )))
2081 "Gaudy level highlighting for Lisp modes.") 2078 "Gaudy level highlighting for Lisp modes.")
2082 2079
diff --git a/lisp/forms.el b/lisp/forms.el
index aa0582c918a..61d2441a9ea 100644
--- a/lisp/forms.el
+++ b/lisp/forms.el
@@ -63,7 +63,7 @@
63;; Automatic mode switching is supported if you specify 63;; Automatic mode switching is supported if you specify
64;; "-*- forms -*-" in the first line of the control file. 64;; "-*- forms -*-" in the first line of the control file.
65;; 65;;
66;; The control file is visited, evaluated using `eval-current-buffer', 66;; The control file is visited, evaluated using `eval-buffer',
67;; and should set at least the following variables: 67;; and should set at least the following variables:
68;; 68;;
69;; forms-file [string] 69;; forms-file [string]
@@ -519,7 +519,7 @@ Commands: Equivalent keys in read-only mode:
519 (yes-or-no-p 519 (yes-or-no-p
520 (concat "Evaluate lisp code in buffer " 520 (concat "Evaluate lisp code in buffer "
521 (buffer-name) " to display forms "))) 521 (buffer-name) " to display forms ")))
522 (eval-current-buffer) 522 (eval-buffer)
523 (error "`enable-local-eval' inhibits buffer evaluation")) 523 (error "`enable-local-eval' inhibits buffer evaluation"))
524 524
525 ;; Check if the mandatory variables make sense. 525 ;; Check if the mandatory variables make sense.
diff --git a/lisp/frame.el b/lisp/frame.el
index e7cf62ef708..3693295e819 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1207,7 +1207,7 @@ left untouched. FRAME nil or omitted means use the selected frame."
1207This is done in the face `trailing-whitespace'." 1207This is done in the face `trailing-whitespace'."
1208 :tag "Highlight trailing whitespace." 1208 :tag "Highlight trailing whitespace."
1209 :type 'boolean 1209 :type 'boolean
1210 :group 'font-lock) 1210 :group 'whitespace-faces)
1211 1211
1212 1212
1213 1213
diff --git a/lisp/generic-x.el b/lisp/generic-x.el
index 31aa9299fbb..9ba06d42397 100644
--- a/lisp/generic-x.el
+++ b/lisp/generic-x.el
@@ -116,11 +116,6 @@
116 :group 'data 116 :group 'data
117 :version "20.3") 117 :version "20.3")
118 118
119(defgroup generic-x-modes nil
120 "Individual modes in the collection of generic modes."
121 :group 'generic-x
122 :version "22.1")
123
124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
125;; Default-Generic mode 120;; Default-Generic mode
126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -158,7 +153,7 @@ the regexp in `generic-find-file-regexp'. If the value is nil,
158 :type '(choice (const :tag "Don't check file names" nil) regexp)) 153 :type '(choice (const :tag "Don't check file names" nil) regexp))
159 154
160;; This generic mode is always defined 155;; This generic mode is always defined
161(define-generic-mode default-generic-mode (list ?#) nil nil nil nil :group 'generic-x-modes) 156(define-generic-mode default-generic-mode (list ?#) nil nil nil nil)
162 157
163;; A more general solution would allow us to enter generic-mode for 158;; A more general solution would allow us to enter generic-mode for
164;; *any* comment character, but would require us to synthesize a new 159;; *any* comment character, but would require us to synthesize a new
@@ -308,8 +303,7 @@ your changes into effect."
308 '((nil "^\\([-A-Za-z0-9_]+\\)" 1) 303 '((nil "^\\([-A-Za-z0-9_]+\\)" 1)
309 ("*Directories*" "^\\s-*<Directory\\s-*\\([^>]+\\)>" 1) 304 ("*Directories*" "^\\s-*<Directory\\s-*\\([^>]+\\)>" 1)
310 ("*Locations*" "^\\s-*<Location\\s-*\\([^>]+\\)>" 1)))))) 305 ("*Locations*" "^\\s-*<Location\\s-*\\([^>]+\\)>" 1))))))
311 "Generic mode for Apache or HTTPD configuration files." 306 "Generic mode for Apache or HTTPD configuration files."))
312 :group 'generic-x-modes))
313 307
314(when (memq 'apache-log-generic-mode generic-extras-enable-list) 308(when (memq 'apache-log-generic-mode generic-extras-enable-list)
315 309
@@ -322,8 +316,7 @@ your changes into effect."
322 (2 font-lock-variable-name-face))) 316 (2 font-lock-variable-name-face)))
323 '("access_log\\'") 317 '("access_log\\'")
324 nil 318 nil
325 "Mode for Apache log files" 319 "Mode for Apache log files"))
326 :group 'generic-x-modes))
327 320
328;;; Samba 321;;; Samba
329(when (memq 'samba-generic-mode generic-extras-enable-list) 322(when (memq 'samba-generic-mode generic-extras-enable-list)
@@ -337,8 +330,7 @@ your changes into effect."
337 (2 font-lock-type-face))) 330 (2 font-lock-type-face)))
338 '("smb\\.conf\\'") 331 '("smb\\.conf\\'")
339 '(generic-bracket-support) 332 '(generic-bracket-support)
340 "Generic mode for Samba configuration files." 333 "Generic mode for Samba configuration files."))
341 :group 'generic-x-modes))
342 334
343;;; Fvwm 335;;; Fvwm
344;; This is pretty basic. Also, modes for other window managers could 336;; This is pretty basic. Also, modes for other window managers could
@@ -363,8 +355,7 @@ your changes into effect."
363 nil 355 nil
364 '("\\.fvwmrc\\'" "\\.fvwm2rc\\'") 356 '("\\.fvwmrc\\'" "\\.fvwm2rc\\'")
365 nil 357 nil
366 "Generic mode for FVWM configuration files." 358 "Generic mode for FVWM configuration files."))
367 :group 'generic-x-modes))
368 359
369;;; X Resource 360;;; X Resource
370;; I'm pretty sure I've seen an actual mode to do this, but I don't 361;; I'm pretty sure I've seen an actual mode to do this, but I don't
@@ -377,8 +368,7 @@ your changes into effect."
377 '(("^\\([^:\n]+:\\)" 1 font-lock-variable-name-face)) 368 '(("^\\([^:\n]+:\\)" 1 font-lock-variable-name-face))
378 '("\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'") 369 '("\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'")
379 nil 370 nil
380 "Generic mode for X Resource configuration files." 371 "Generic mode for X Resource configuration files."))
381 :group 'generic-x-modes))
382 372
383;;; Hosts 373;;; Hosts
384(when (memq 'hosts-generic-mode generic-extras-enable-list) 374(when (memq 'hosts-generic-mode generic-extras-enable-list)
@@ -389,8 +379,7 @@ your changes into effect."
389 '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face)) 379 '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face))
390 '("[hH][oO][sS][tT][sS]\\'") 380 '("[hH][oO][sS][tT][sS]\\'")
391 nil 381 nil
392 "Generic mode for HOSTS files." 382 "Generic mode for HOSTS files."))
393 :group 'generic-x-modes))
394 383
395;;; Windows INF files 384;;; Windows INF files
396(when (memq 'inf-generic-mode generic-extras-enable-list) 385(when (memq 'inf-generic-mode generic-extras-enable-list)
@@ -401,8 +390,7 @@ your changes into effect."
401 '(("^\\(\\[.*\\]\\)" 1 font-lock-constant-face)) 390 '(("^\\(\\[.*\\]\\)" 1 font-lock-constant-face))
402 '("\\.[iI][nN][fF]\\'") 391 '("\\.[iI][nN][fF]\\'")
403 '(generic-bracket-support) 392 '(generic-bracket-support)
404 "Generic mode for MS-Windows INF files." 393 "Generic mode for MS-Windows INF files."))
405 :group 'generic-x-modes))
406 394
407;;; Windows INI files 395;;; Windows INI files
408;; Should define escape character as well! 396;; Should define escape character as well!
@@ -424,8 +412,7 @@ your changes into effect."
424 ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1)))))) 412 ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1))))))
425 "Generic mode for MS-Windows INI files. 413 "Generic mode for MS-Windows INI files.
426You can use `ini-generic-mode-find-file-hook' to enter this mode 414You can use `ini-generic-mode-find-file-hook' to enter this mode
427automatically for INI files whose names do not end in \".ini\"." 415automatically for INI files whose names do not end in \".ini\".")
428 :group 'generic-x-modes)
429 416
430(defun ini-generic-mode-find-file-hook () 417(defun ini-generic-mode-find-file-hook ()
431 "Hook function to enter Ini-Generic mode automatically for INI files. 418 "Hook function to enter Ini-Generic mode automatically for INI files.
@@ -453,8 +440,7 @@ like an INI file. You can add this hook to `find-file-hook'."
453 (lambda () 440 (lambda ()
454 (setq imenu-generic-expression 441 (setq imenu-generic-expression
455 '((nil "^\\s-*\\(.*\\)\\s-*=" 1)))))) 442 '((nil "^\\s-*\\(.*\\)\\s-*=" 1))))))
456 "Generic mode for MS-Windows Registry files." 443 "Generic mode for MS-Windows Registry files."))
457 :group 'generic-x-modes))
458 444
459;;; DOS/Windows BAT files 445;;; DOS/Windows BAT files
460(when (memq 'bat-generic-mode generic-extras-enable-list) 446(when (memq 'bat-generic-mode generic-extras-enable-list)
@@ -506,7 +492,7 @@ like an INI file. You can add this hook to `find-file-hook'."
506 "MD" "md" "Md" 492 "MD" "md" "Md"
507 "PATH" "path" "Path" 493 "PATH" "path" "Path"
508 "PAUSE" "pause" "Pause" 494 "PAUSE" "pause" "Pause"
509 "PROMPT" "prompt" "Prompt" 495 "PROMPT" "prompt" "Prompt"
510 "RD" "rd" "Rd" 496 "RD" "rd" "Rd"
511 "REN" "ren" "Ren" 497 "REN" "ren" "Ren"
512 "SET" "set" "Set" 498 "SET" "set" "Set"
@@ -528,8 +514,7 @@ like an INI file. You can add this hook to `find-file-hook'."
528 "\\`[cC][oO][nN][fF][iI][gG]\\." 514 "\\`[cC][oO][nN][fF][iI][gG]\\."
529 "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\.") 515 "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\.")
530 '(generic-bat-mode-setup-function) 516 '(generic-bat-mode-setup-function)
531 "Generic mode for MS-Windows BAT files." 517 "Generic mode for MS-Windows BAT files.")
532 :group 'generic-x-modes)
533 518
534(defvar bat-generic-mode-syntax-table nil 519(defvar bat-generic-mode-syntax-table nil
535 "Syntax table in use in `bat-generic-mode' buffers.") 520 "Syntax table in use in `bat-generic-mode' buffers.")
@@ -608,8 +593,7 @@ like an INI file. You can add this hook to `find-file-hook'."
608 (lambda () 593 (lambda ()
609 (setq imenu-generic-expression 594 (setq imenu-generic-expression
610 '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1)))))) 595 '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1))))))
611 "Mode for Mailagent rules files." 596 "Mode for Mailagent rules files."))
612 :group 'generic-x-modes))
613 597
614;; Solaris/Sys V prototype files 598;; Solaris/Sys V prototype files
615(when (memq 'prototype-generic-mode generic-extras-enable-list) 599(when (memq 'prototype-generic-mode generic-extras-enable-list)
@@ -632,8 +616,7 @@ like an INI file. You can add this hook to `find-file-hook'."
632 (2 font-lock-variable-name-face))) 616 (2 font-lock-variable-name-face)))
633 '("prototype\\'") 617 '("prototype\\'")
634 nil 618 nil
635 "Mode for Sys V prototype files." 619 "Mode for Sys V prototype files."))
636 :group 'generic-x-modes))
637 620
638;; Solaris/Sys V pkginfo files 621;; Solaris/Sys V pkginfo files
639(when (memq 'pkginfo-generic-mode generic-extras-enable-list) 622(when (memq 'pkginfo-generic-mode generic-extras-enable-list)
@@ -646,8 +629,7 @@ like an INI file. You can add this hook to `find-file-hook'."
646 (2 font-lock-variable-name-face))) 629 (2 font-lock-variable-name-face)))
647 '("pkginfo\\'") 630 '("pkginfo\\'")
648 nil 631 nil
649 "Mode for Sys V pkginfo files." 632 "Mode for Sys V pkginfo files."))
650 :group 'generic-x-modes))
651 633
652;; Javascript mode 634;; Javascript mode
653;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU] 635;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU]
@@ -726,8 +708,7 @@ like an INI file. You can add this hook to `find-file-hook'."
726 (setq imenu-generic-expression 708 (setq imenu-generic-expression
727 '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1) 709 '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)
728 ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1)))))) 710 ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1))))))
729 "Mode for JavaScript files." 711 "Mode for JavaScript files."))
730 :group 'generic-x-modes))
731 712
732;; VRML files 713;; VRML files
733(when (memq 'vrml-generic-mode generic-extras-enable-list) 714(when (memq 'vrml-generic-mode generic-extras-enable-list)
@@ -780,8 +761,7 @@ like an INI file. You can add this hook to `find-file-hook'."
780 ("*Definitions*" 761 ("*Definitions*"
781 "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{" 762 "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{"
782 1)))))) 763 1))))))
783 "Generic Mode for VRML files." 764 "Generic Mode for VRML files."))
784 :group 'generic-x-modes))
785 765
786;; Java Manifests 766;; Java Manifests
787(when (memq 'java-manifest-generic-mode generic-extras-enable-list) 767(when (memq 'java-manifest-generic-mode generic-extras-enable-list)
@@ -802,8 +782,7 @@ like an INI file. You can add this hook to `find-file-hook'."
802 (2 font-lock-constant-face))) 782 (2 font-lock-constant-face)))
803 '("[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'") 783 '("[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'")
804 nil 784 nil
805 "Mode for Java Manifest files" 785 "Mode for Java Manifest files"))
806 :group 'generic-x-modes))
807 786
808;; Java properties files 787;; Java properties files
809(when (memq 'java-properties-generic-mode generic-extras-enable-list) 788(when (memq 'java-properties-generic-mode generic-extras-enable-list)
@@ -835,8 +814,7 @@ like an INI file. You can add this hook to `find-file-hook'."
835 (lambda () 814 (lambda ()
836 (setq imenu-generic-expression 815 (setq imenu-generic-expression
837 '((nil "^\\([^#! \t\n\r=:]+\\)" 1)))))) 816 '((nil "^\\([^#! \t\n\r=:]+\\)" 1))))))
838 "Mode for Java properties files." 817 "Mode for Java properties files."))
839 :group 'generic-x-modes))
840 818
841;; C shell alias definitions 819;; C shell alias definitions
842(when (memq 'alias-generic-mode generic-extras-enable-list) 820(when (memq 'alias-generic-mode generic-extras-enable-list)
@@ -854,8 +832,7 @@ like an INI file. You can add this hook to `find-file-hook'."
854 (lambda () 832 (lambda ()
855 (setq imenu-generic-expression 833 (setq imenu-generic-expression
856 '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2)))))) 834 '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))))))
857 "Mode for C Shell alias files." 835 "Mode for C Shell alias files."))
858 :group 'generic-x-modes))
859 836
860;;; Windows RC files 837;;; Windows RC files
861;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira) 838;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira)
@@ -947,8 +924,7 @@ like an INI file. You can add this hook to `find-file-hook'."
947 (2 font-lock-variable-name-face nil t)))) 924 (2 font-lock-variable-name-face nil t))))
948 '("\\.[rR][cC]\\'") 925 '("\\.[rR][cC]\\'")
949 nil 926 nil
950 "Generic mode for MS-Windows Resource files." 927 "Generic mode for MS-Windows Resource files."))
951 :group 'generic-x-modes))
952 928
953;; InstallShield RUL files 929;; InstallShield RUL files
954;; Contributed by Alfred.Correira@Pervasive.Com 930;; Contributed by Alfred.Correira@Pervasive.Com
@@ -1568,8 +1544,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1568 font-lock-variable-name-face "[^_]" "[^_]"))) ; is this face the best choice? 1544 font-lock-variable-name-face "[^_]" "[^_]"))) ; is this face the best choice?
1569 '("\\.[rR][uU][lL]\\'") 1545 '("\\.[rR][uU][lL]\\'")
1570 '(generic-rul-mode-setup-function) 1546 '(generic-rul-mode-setup-function)
1571 "Generic mode for InstallShield RUL files." 1547 "Generic mode for InstallShield RUL files.")
1572 :group 'generic-x-modes)
1573 1548
1574(define-skeleton rul-if 1549(define-skeleton rul-if
1575 "Insert an if statement." 1550 "Insert an if statement."
@@ -1619,8 +1594,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1619 (2 font-lock-variable-name-face))) 1594 (2 font-lock-variable-name-face)))
1620 '("\\.mailrc\\'") 1595 '("\\.mailrc\\'")
1621 nil 1596 nil
1622 "Mode for mailrc files." 1597 "Mode for mailrc files."))
1623 :group 'generic-x-modes))
1624 1598
1625;; Inetd.conf 1599;; Inetd.conf
1626(when (memq 'inetd-conf-generic-mode generic-extras-enable-list) 1600(when (memq 'inetd-conf-generic-mode generic-extras-enable-list)
@@ -1640,8 +1614,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1640 (function 1614 (function
1641 (lambda () 1615 (lambda ()
1642 (setq imenu-generic-expression 1616 (setq imenu-generic-expression
1643 '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))))) 1617 '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
1644 :group 'generic-x-modes))
1645 1618
1646;; Services 1619;; Services
1647(when (memq 'etc-services-generic-mode generic-extras-enable-list) 1620(when (memq 'etc-services-generic-mode generic-extras-enable-list)
@@ -1659,8 +1632,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1659 (function 1632 (function
1660 (lambda () 1633 (lambda ()
1661 (setq imenu-generic-expression 1634 (setq imenu-generic-expression
1662 '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))))) 1635 '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
1663 :group 'generic-x-modes))
1664 1636
1665;; Password and Group files 1637;; Password and Group files
1666(when (memq 'etc-passwd-generic-mode generic-extras-enable-list) 1638(when (memq 'etc-passwd-generic-mode generic-extras-enable-list)
@@ -1702,8 +1674,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1702 (function 1674 (function
1703 (lambda () 1675 (lambda ()
1704 (setq imenu-generic-expression 1676 (setq imenu-generic-expression
1705 '((nil "^\\([-A-Za-z0-9_]+\\):" 1)))))) 1677 '((nil "^\\([-A-Za-z0-9_]+\\):" 1))))))))
1706 :group 'generic-x-modes))
1707 1678
1708;; Fstab 1679;; Fstab
1709(when (memq 'etc-fstab-generic-mode generic-extras-enable-list) 1680(when (memq 'etc-fstab-generic-mode generic-extras-enable-list)
@@ -1753,8 +1724,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1753 (function 1724 (function
1754 (lambda () 1725 (lambda ()
1755 (setq imenu-generic-expression 1726 (setq imenu-generic-expression
1756 '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1)))))) 1727 '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1))))))))
1757 :group 'generic-x-modes))
1758 1728
1759;; From Jacques Duthen <jacques.duthen@sncf.fr> 1729;; From Jacques Duthen <jacques.duthen@sncf.fr>
1760(when (memq 'show-tabs-generic-mode generic-extras-enable-list) 1730(when (memq 'show-tabs-generic-mode generic-extras-enable-list)
@@ -1780,7 +1750,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1780 (((class color)) (:background "red")) 1750 (((class color)) (:background "red"))
1781 (t (:weight bold))) 1751 (t (:weight bold)))
1782 "Font Lock mode face used to highlight TABs." 1752 "Font Lock mode face used to highlight TABs."
1783 :group 'generic-x-modes) 1753 :group 'generic-x)
1784 1754
1785(defface show-tabs-space-face 1755(defface show-tabs-space-face
1786 '((((class grayscale) (background light)) (:background "DimGray" :weight bold)) 1756 '((((class grayscale) (background light)) (:background "DimGray" :weight bold))
@@ -1789,7 +1759,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1789 (((class color)) (:background "yellow")) 1759 (((class color)) (:background "yellow"))
1790 (t (:weight bold))) 1760 (t (:weight bold)))
1791 "Font Lock mode face used to highlight spaces." 1761 "Font Lock mode face used to highlight spaces."
1792 :group 'generic-x-modes) 1762 :group 'generic-x)
1793 1763
1794(define-generic-mode show-tabs-generic-mode 1764(define-generic-mode show-tabs-generic-mode
1795 nil ;; no comment char 1765 nil ;; no comment char
@@ -1798,8 +1768,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1798 nil ;; no auto-mode-alist 1768 nil ;; no auto-mode-alist
1799 ;; '(show-tabs-generic-mode-hook-fun) 1769 ;; '(show-tabs-generic-mode-hook-fun)
1800 nil 1770 nil
1801 "Generic mode to show tabs and trailing spaces" 1771 "Generic mode to show tabs and trailing spaces"))
1802 :group 'generic-x-modes))
1803 1772
1804;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1805;; DNS modes 1774;; DNS modes
@@ -1822,8 +1791,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1822 ;; List of additional automode-alist expressions 1791 ;; List of additional automode-alist expressions
1823 '("/etc/named.boot\\'") 1792 '("/etc/named.boot\\'")
1824 ;; List of set up functions to call 1793 ;; List of set up functions to call
1825 nil 1794 nil))
1826 :group 'generic-x-modes))
1827 1795
1828(when (memq 'named-database-generic-mode generic-extras-enable-list) 1796(when (memq 'named-database-generic-mode generic-extras-enable-list)
1829 1797
@@ -1838,8 +1806,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1838 ;; List of additional auto-mode-alist expressions 1806 ;; List of additional auto-mode-alist expressions
1839 nil 1807 nil
1840 ;; List of set up functions to call 1808 ;; List of set up functions to call
1841 nil 1809 nil)
1842 :group 'generic-x-modes)
1843 1810
1844(defvar named-database-time-string "%Y%m%d%H" 1811(defvar named-database-time-string "%Y%m%d%H"
1845 "Timestring for named serial numbers.") 1812 "Timestring for named serial numbers.")
@@ -1861,8 +1828,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1861 ;; List of additional auto-mode-alist expressions 1828 ;; List of additional auto-mode-alist expressions
1862 '("/etc/resolv[e]?.conf\\'") 1829 '("/etc/resolv[e]?.conf\\'")
1863 ;; List of set up functions to call 1830 ;; List of set up functions to call
1864 nil 1831 nil))
1865 :group 'generic-x-modes))
1866 1832
1867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1833;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1868;; Modes for spice and common electrical engineering circuit netlist formats 1834;; Modes for spice and common electrical engineering circuit netlist formats
@@ -1906,8 +1872,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1906 (function 1872 (function
1907 (lambda() 1873 (lambda()
1908 (setq font-lock-defaults '(generic-font-lock-keywords nil t))))) 1874 (setq font-lock-defaults '(generic-font-lock-keywords nil t)))))
1909 "Generic mode for SPICE circuit netlist files." 1875 "Generic mode for SPICE circuit netlist files."))
1910 :group 'generic-x-modes))
1911 1876
1912(when (memq 'ibis-generic-mode generic-extras-enable-list) 1877(when (memq 'ibis-generic-mode generic-extras-enable-list)
1913 1878
@@ -1918,8 +1883,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1918 ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 font-lock-variable-name-face)) 1883 ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 font-lock-variable-name-face))
1919 '("\\.[iI][bB][sS]\\'") 1884 '("\\.[iI][bB][sS]\\'")
1920 '(generic-bracket-support) 1885 '(generic-bracket-support)
1921 "Generic mode for IBIS circuit netlist files." 1886 "Generic mode for IBIS circuit netlist files."))
1922 :group 'generic-x-modes))
1923 1887
1924(when (memq 'astap-generic-mode generic-extras-enable-list) 1888(when (memq 'astap-generic-mode generic-extras-enable-list)
1925 1889
@@ -1956,8 +1920,7 @@ like an INI file. You can add this hook to `find-file-hook'."
1956 (function 1920 (function
1957 (lambda() 1921 (lambda()
1958 (setq font-lock-defaults '(generic-font-lock-keywords nil t))))) 1922 (setq font-lock-defaults '(generic-font-lock-keywords nil t)))))
1959 "Generic mode for ASTAP circuit netlist files." 1923 "Generic mode for ASTAP circuit netlist files."))
1960 :group 'generic-x-modes))
1961 1924
1962(when (memq 'etc-modules-conf-generic-mode generic-extras-enable-list) 1925(when (memq 'etc-modules-conf-generic-mode generic-extras-enable-list)
1963 1926
@@ -2001,8 +1964,7 @@ like an INI file. You can add this hook to `find-file-hook'."
2001 ;; List of additional automode-alist expressions 1964 ;; List of additional automode-alist expressions
2002 '("/etc/modules.conf" "/etc/conf.modules") 1965 '("/etc/modules.conf" "/etc/conf.modules")
2003 ;; List of set up functions to call 1966 ;; List of set up functions to call
2004 nil 1967 nil))
2005 :group 'generic-x-modes))
2006 1968
2007(provide 'generic-x) 1969(provide 'generic-x)
2008 1970
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 9f3a114adbe..14450ee3a14 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,17 @@
12005-05-16 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-art.el: Don't autoload mail-extract-address-components.
4
5 * gnus.el: Use eval-and-compile to autoload message-y-or-n-p.
6
7 * nndb.el: Don't declare the nndb back end two or more times; don't
8 autoload news-reply-mode, news-setup, cancel-timer and telnet.
9
10 * nntp.el: Autoload format-spec instead of format; use
11 eval-and-compile to evaluate autoload forms.
12
13 * spam-report.el (spam-report-process-queue): Use gnus-point-at-eol.
14
12005-04-28 Katsumi Yamaoka <yamaoka@jpl.org> 152005-04-28 Katsumi Yamaoka <yamaoka@jpl.org>
2 16
3 * gnus-art.el (article-date-ut): Support converting date in 17 * gnus-art.el (article-date-ut): Support converting date in
@@ -345,9 +359,6 @@
345 359
346 * gnus-async.el: Ditto. 360 * gnus-async.el: Ditto.
347 361
348 * dgnushack.el: No need to ignore `run-with-idle-timer', XEmacs
349 has this function now.
350
3512005-03-16 Lute Kamstra <lute@gnu.org> 3622005-03-16 Lute Kamstra <lute@gnu.org>
352 363
353 * message.el (message-make-date): Require parse-time. 364 * message.el (message-make-date): Require parse-time.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 55aaed15d90..b1a51d65edd 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -481,9 +481,6 @@ be fed to `format-time-string'."
481 :link '(custom-manual "(gnus)Article Date") 481 :link '(custom-manual "(gnus)Article Date")
482 :group 'gnus-article-washing) 482 :group 'gnus-article-washing)
483 483
484(eval-and-compile
485 (autoload 'mail-extract-address-components "mail-extr"))
486
487(defcustom gnus-save-all-headers t 484(defcustom gnus-save-all-headers t
488 "*If non-nil, don't remove any headers before saving." 485 "*If non-nil, don't remove any headers before saving."
489 :group 'gnus-article-saving 486 :group 'gnus-article-saving
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 3112a07cb2e..98c41de45e5 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -1,7 +1,7 @@
1;;; gnus.el --- a newsreader for GNU Emacs 1;;; gnus.el --- a newsreader for GNU Emacs
2 2
3;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 3;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997,
4;; 1998, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 4;; 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5 5
6;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> 6;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
7;; Lars Magne Ingebrigtsen <larsi@gnus.org> 7;; Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -34,7 +34,6 @@
34(require 'wid-edit) 34(require 'wid-edit)
35(require 'mm-util) 35(require 'mm-util)
36(require 'nnheader) 36(require 'nnheader)
37(autoload 'message-y-or-n-p "message" nil nil 'macro)
38 37
39(defgroup gnus nil 38(defgroup gnus nil
40 "The coffee-brewing, all singing, all dancing, kitchen sink newsreader." 39 "The coffee-brewing, all singing, all dancing, kitchen sink newsreader."
@@ -3925,6 +3924,9 @@ If NEWSGROUP is nil, return the global kill file name instead."
3925 (setq valids (cdr valids))) 3924 (setq valids (cdr valids)))
3926 outs)) 3925 outs))
3927 3926
3927(eval-and-compile
3928 (autoload 'message-y-or-n-p "message" nil nil 'macro))
3929
3928(defun gnus-read-group (prompt &optional default) 3930(defun gnus-read-group (prompt &optional default)
3929 "Prompt the user for a group name. 3931 "Prompt the user for a group name.
3930Disallow invalid group names." 3932Disallow invalid group names."
diff --git a/lisp/gnus/nndb.el b/lisp/gnus/nndb.el
index bd8523f11b2..6aaf57c81e1 100644
--- a/lisp/gnus/nndb.el
+++ b/lisp/gnus/nndb.el
@@ -1,6 +1,7 @@
1;;; nndb.el --- nndb access for Gnus 1;;; nndb.el --- nndb access for Gnus
2 2
3;; Copyright (C) 1997, 1998, 2000, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1998, 2000, 2003, 2004, 2005
4;; Free Software Foundation, Inc.
4 5
5;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet> 6;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
6;; Kai Grossjohann <grossjohann@ls6.informatik.uni-dortmund.de> 7;; Kai Grossjohann <grossjohann@ls6.informatik.uni-dortmund.de>
@@ -50,7 +51,9 @@
50;;- 51;;-
51;; Register nndb with known select methods. 52;; Register nndb with known select methods.
52 53
53(gnus-declare-backend "nndb" 'mail 'respool 'address 'prompt-address) 54(require 'gnus-start)
55(unless (assoc "nndb" gnus-valid-select-methods)
56 (gnus-declare-backend "nndb" 'mail 'respool 'address 'prompt-address))
54 57
55;;; Code: 58;;; Code:
56 59
@@ -59,14 +62,6 @@
59(require 'nntp) 62(require 'nntp)
60(eval-when-compile (require 'cl)) 63(eval-when-compile (require 'cl))
61 64
62(eval-and-compile
63 (autoload 'news-setup "rnewspost")
64 (autoload 'news-reply-mode "rnewspost")
65 (autoload 'cancel-timer "timer")
66 (autoload 'telnet "telnet" nil t)
67 (autoload 'telnet-send-input "telnet" nil t)
68 (autoload 'gnus-declare-backend "gnus-start"))
69
70;; Declare nndb as derived from nntp 65;; Declare nndb as derived from nntp
71 66
72(nnoo-declare nndb nntp) 67(nnoo-declare nndb nntp)
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 8a10600fcb8..ab85ad25931 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -1,7 +1,8 @@
1;;; nntp.el --- nntp access for Gnus 1;;; nntp.el --- nntp access for Gnus
2 2
3;; Copyright (C) 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1996, 3;; Copyright (C) 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1996,
4;; 1997, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 4;; 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005
5;; Free Software Foundation, Inc.
5 6
6;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> 7;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
7;; Keywords: news 8;; Keywords: news
@@ -1147,9 +1148,10 @@ password contained in '~/.nntp-authinfo'."
1147(defun nntp-open-network-stream (buffer) 1148(defun nntp-open-network-stream (buffer)
1148 (open-network-stream "nntpd" buffer nntp-address nntp-port-number)) 1149 (open-network-stream "nntpd" buffer nntp-address nntp-port-number))
1149 1150
1150(autoload 'format-spec "format") 1151(eval-and-compile
1151(autoload 'format-spec-make "format") 1152 (autoload 'format-spec "format-spec")
1152(autoload 'open-tls-stream "tls") 1153 (autoload 'format-spec-make "format-spec")
1154 (autoload 'open-tls-stream "tls"))
1153 1155
1154(defun nntp-open-ssl-stream (buffer) 1156(defun nntp-open-ssl-stream (buffer)
1155 (let* ((process-connection-type nil) 1157 (let* ((process-connection-type nil)
diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el
index b8283ffaaa8..59119dc5438 100644
--- a/lisp/gnus/spam-report.el
+++ b/lisp/gnus/spam-report.el
@@ -159,7 +159,7 @@ symbol `ask', query before flushing the queue file."
159 (goto-char (point-min)) 159 (goto-char (point-min))
160 (while (and (not (eobp)) 160 (while (and (not (eobp))
161 (re-search-forward 161 (re-search-forward
162 "http://\\([^/]+\\)\\(/.*\\) *$" (point-at-eol) t)) 162 "http://\\([^/]+\\)\\(/.*\\) *$" (gnus-point-at-eol) t))
163 (funcall spam-report-url-ping-function (match-string 1) (match-string 2)) 163 (funcall spam-report-url-ping-function (match-string 1) (match-string 2))
164 (forward-line 1)) 164 (forward-line 1))
165 (if (or (eq keep nil) 165 (if (or (eq keep nil)
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 4bf0a4775a0..c11aaf6da76 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -535,7 +535,9 @@ it is displayed along with the global value."
535 (terpri) 535 (terpri)
536 (let ((from (point))) 536 (let ((from (point)))
537 (pp val) 537 (pp val)
538 (help-xref-on-pp from (point)) 538 ;; Hyperlinks in variable's value are quite frequently
539 ;; inappropriate e.g C-h v <RET> features <RET>
540 ;; (help-xref-on-pp from (point))
539 (if (< (point) (+ from 20)) 541 (if (< (point) (+ from 20))
540 (delete-region (1- from) from))))) 542 (delete-region (1- from) from)))))
541 (terpri) 543 (terpri)
@@ -556,7 +558,8 @@ it is displayed along with the global value."
556 ;; sensible size before prettyprinting. -- fx 558 ;; sensible size before prettyprinting. -- fx
557 (let ((from (point))) 559 (let ((from (point)))
558 (pp val) 560 (pp val)
559 (help-xref-on-pp from (point)) 561 ;; See previous comment for this function.
562 ;; (help-xref-on-pp from (point))
560 (if (< (point) (+ from 20)) 563 (if (< (point) (+ from 20))
561 (delete-region (1- from) from)))))) 564 (delete-region (1- from) from))))))
562 (terpri)) 565 (terpri))
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 8b0284089fc..d94f03200dc 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -169,6 +169,18 @@ The format is (FUNCTION ARGS...).")
169 (goto-char (cdr location)))) 169 (goto-char (cdr location))))
170 'help-echo (purecopy"mouse-2, RET: find variable's definition")) 170 'help-echo (purecopy"mouse-2, RET: find variable's definition"))
171 171
172(define-button-type 'help-face-def
173 :supertype 'help-xref
174 'help-function (lambda (fun file)
175 (require 'find-func)
176 ;; Don't use find-function-noselect because it follows
177 ;; aliases (which fails for built-in functions).
178 (let ((location
179 (find-function-search-for-symbol fun 'defface file)))
180 (pop-to-buffer (car location))
181 (goto-char (cdr location))))
182 'help-echo (purecopy "mouse-2, RET: find face's definition"))
183
172 184
173;;;###autoload 185;;;###autoload
174(defun help-mode () 186(defun help-mode ()
diff --git a/lisp/hexl.el b/lisp/hexl.el
index 99bbda91c6c..35674e1d10a 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -874,7 +874,7 @@ Embedded whitespace, dashes, and periods in the string are ignored."
874(defun hexl-insert-decimal-char (arg) 874(defun hexl-insert-decimal-char (arg)
875 "Insert a character given by its decimal code ARG times at point." 875 "Insert a character given by its decimal code ARG times at point."
876 (interactive "p") 876 (interactive "p")
877 (let ((num (string-to-int (read-string "Decimal Number: ")))) 877 (let ((num (string-to-number (read-string "Decimal Number: "))))
878 (if (< num 0) 878 (if (< num 0)
879 (error "Decimal number out of range") 879 (error "Decimal number out of range")
880 (hexl-insert-multibyte-char num arg)))) 880 (hexl-insert-multibyte-char num arg))))
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index e2e5d251371..87d9eb707eb 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1024,7 +1024,9 @@ currently used by buffers."
1024 (ibuffer-awhen (with-current-buffer buf 1024 (ibuffer-awhen (with-current-buffer buf
1025 (or buffer-file-name 1025 (or buffer-file-name
1026 (and (boundp 'dired-directory) 1026 (and (boundp 'dired-directory)
1027 dired-directory 1027 (if (stringp dired-directory)
1028 dired-directory
1029 (car dired-directory))
1028 (expand-file-name dired-directory)))) 1030 (expand-file-name dired-directory))))
1029 (string-match qualifier it))) 1031 (string-match qualifier it)))
1030 1032
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index f2ebb5db324..213160b6f37 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1688,7 +1688,9 @@ If point is on a group name, this function operates on that group."
1688 (abbreviate-file-name 1688 (abbreviate-file-name
1689 (or buffer-file-name 1689 (or buffer-file-name
1690 (and (boundp 'dired-directory) 1690 (and (boundp 'dired-directory)
1691 dired-directory) 1691 (if (stringp dired-directory)
1692 dired-directory
1693 (car dired-directory)))
1692 "")))) 1694 ""))))
1693 1695
1694(define-ibuffer-column filename-and-process 1696(define-ibuffer-column filename-and-process
diff --git a/lisp/ido.el b/lisp/ido.el
index 519d57cbb88..24b8ba34b75 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1392,10 +1392,15 @@ This function also adds a hook to the minibuffer."
1392 (define-key map [left] 'ido-prev-match) 1392 (define-key map [left] 'ido-prev-match)
1393 (define-key map "?" 'ido-completion-help) 1393 (define-key map "?" 'ido-completion-help)
1394 1394
1395 ;; Magic commands.
1396 (define-key map "\C-b" 'ido-magic-backward-char)
1397 (define-key map "\C-f" 'ido-magic-forward-char)
1398 (define-key map "\C-d" 'ido-magic-delete-char)
1399
1395 (when (memq ido-cur-item '(file dir)) 1400 (when (memq ido-cur-item '(file dir))
1396 (define-key map "\C-b" (or ido-context-switch-command 'ido-enter-switch-buffer)) 1401 (define-key map "\C-x\C-b" (or ido-context-switch-command 'ido-enter-switch-buffer))
1397 (define-key map "\C-d" (or (and ido-context-switch-command 'ignore) 'ido-enter-dired)) 1402 (define-key map "\C-x\C-f" 'ido-fallback-command)
1398 (define-key map "\C-f" 'ido-fallback-command) 1403 (define-key map "\C-x\C-d" (or (and ido-context-switch-command 'ignore) 'ido-enter-dired))
1399 (define-key map [down] 'ido-next-match-dir) 1404 (define-key map [down] 'ido-next-match-dir)
1400 (define-key map [up] 'ido-prev-match-dir) 1405 (define-key map [up] 'ido-prev-match-dir)
1401 (define-key map [(meta up)] 'ido-prev-work-directory) 1406 (define-key map [(meta up)] 'ido-prev-work-directory)
@@ -1405,7 +1410,7 @@ This function also adds a hook to the minibuffer."
1405 (define-key map [(meta backspace)] 'ido-delete-backward-word-updir) 1410 (define-key map [(meta backspace)] 'ido-delete-backward-word-updir)
1406 (define-key map [(control backspace)] 'ido-up-directory) 1411 (define-key map [(control backspace)] 'ido-up-directory)
1407 (define-key map "\C-l" 'ido-reread-directory) 1412 (define-key map "\C-l" 'ido-reread-directory)
1408 (define-key map [(meta ?d)] 'ido-wide-find-dir) 1413 (define-key map [(meta ?d)] 'ido-wide-find-dir-or-delete-dir)
1409 (define-key map [(meta ?b)] 'ido-push-dir) 1414 (define-key map [(meta ?b)] 'ido-push-dir)
1410 (define-key map [(meta ?f)] 'ido-wide-find-file-or-pop-dir) 1415 (define-key map [(meta ?f)] 'ido-wide-find-file-or-pop-dir)
1411 (define-key map [(meta ?k)] 'ido-forget-work-directory) 1416 (define-key map [(meta ?k)] 'ido-forget-work-directory)
@@ -1426,8 +1431,8 @@ This function also adds a hook to the minibuffer."
1426 ) 1431 )
1427 1432
1428 (when (eq ido-cur-item 'buffer) 1433 (when (eq ido-cur-item 'buffer)
1429 (define-key map "\C-f" (or ido-context-switch-command 'ido-enter-find-file)) 1434 (define-key map "\C-x\C-f" (or ido-context-switch-command 'ido-enter-find-file))
1430 (define-key map "\C-b" 'ido-fallback-command) 1435 (define-key map "\C-x\C-b" 'ido-fallback-command)
1431 (define-key map "\C-k" 'ido-kill-buffer-at-head) 1436 (define-key map "\C-k" 'ido-kill-buffer-at-head)
1432 ) 1437 )
1433 1438
@@ -2258,6 +2263,62 @@ If no merge has yet taken place, toggle automatic merging option."
2258 ((not ido-use-merged-list) 2263 ((not ido-use-merged-list)
2259 (ido-merge-work-directories)))) 2264 (ido-merge-work-directories))))
2260 2265
2266;;; Magic C-f
2267
2268(defun ido-magic-forward-char ()
2269 "Move forward in user input or perform magic action.
2270If no user input is present or at end of input, perform magic actions:
2271C-x C-b ... C-f switch to ido-find-file.
2272C-x C-f ... C-f fallback to non-ido find-file.
2273C-x C-d ... C-f fallback to non-ido brief dired.
2274C-x d ... C-f fallback to non-ido dired."
2275 (interactive)
2276 (cond
2277 ((not (eobp))
2278 (forward-char 1))
2279 ((memq ido-cur-item '(file dir))
2280 (ido-fallback-command))
2281 (ido-context-switch-command
2282 (call-interactively ido-context-switch-command))
2283 ((eq ido-cur-item 'buffer)
2284 (ido-enter-find-file))))
2285
2286;;; Magic C-b
2287
2288(defun ido-magic-backward-char ()
2289 "Move backward in user input or perform magic action.
2290If no user input is present, or at start of input, perform magic actions:
2291C-x C-f C-b switch to ido-switch-buffer.
2292C-x C-d C-b switch to ido-switch-buffer.
2293C-x d C-b switch to ido-switch-buffer.
2294C-x C-b C-b fallback to non-ido switch-to-buffer."
2295 (interactive)
2296 (cond
2297 ((> (point) (minibuffer-prompt-end))
2298 (forward-char -1))
2299 ((eq ido-cur-item 'buffer)
2300 (ido-fallback-command))
2301 (ido-context-switch-command
2302 (call-interactively ido-context-switch-command))
2303 (t
2304 (ido-enter-switch-buffer))))
2305
2306;;; Magic C-d
2307
2308(defun ido-magic-delete-char ()
2309 "Delete following char in user input or perform magic action.
2310If at end of user input, perform magic actions:
2311C-x C-f ... C-d enter dired on current directory."
2312 (interactive)
2313 (cond
2314 ((not (eobp))
2315 (delete-char 1))
2316 (ido-context-switch-command
2317 nil)
2318 ((memq ido-cur-item '(file dir))
2319 (ido-enter-dired))))
2320
2321
2261;;; TOGGLE FUNCTIONS 2322;;; TOGGLE FUNCTIONS
2262 2323
2263(defun ido-toggle-case () 2324(defun ido-toggle-case ()
@@ -2505,6 +2566,14 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one.
2505 (setq ido-rotate-temp t) 2566 (setq ido-rotate-temp t)
2506 (exit-minibuffer))) 2567 (exit-minibuffer)))
2507 2568
2569(defun ido-wide-find-dir-or-delete-dir (&optional dir)
2570 "Prompt for DIR to search for using find, starting from current directory.
2571If input stack is non-empty, delete current directory component."
2572 (interactive)
2573 (if ido-input-stack
2574 (ido-delete-backward-word-updir 1)
2575 (ido-wide-find-dir)))
2576
2508(defun ido-push-dir () 2577(defun ido-push-dir ()
2509 "Move to previous directory in file name, push current input on stack." 2578 "Move to previous directory in file name, push current input on stack."
2510 (interactive) 2579 (interactive)
@@ -4077,6 +4146,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
4077;;; Helper functions for other programs 4146;;; Helper functions for other programs
4078 4147
4079(put 'dired-do-rename 'ido 'ignore) 4148(put 'dired-do-rename 'ido 'ignore)
4149(put 'ibuffer-find-file 'ido 'find-file)
4080 4150
4081;;;###autoload 4151;;;###autoload
4082(defun ido-read-buffer (prompt &optional default require-match) 4152(defun ido-read-buffer (prompt &optional default require-match)
@@ -4111,7 +4181,8 @@ See `read-file-name' for additional parameters."
4111 (not (memq this-command ido-read-file-name-non-ido)) 4181 (not (memq this-command ido-read-file-name-non-ido))
4112 (or (null predicate) (eq predicate 'file-exists-p))) 4182 (or (null predicate) (eq predicate 'file-exists-p)))
4113 (let* (ido-saved-vc-hb 4183 (let* (ido-saved-vc-hb
4114 (ido-context-switch-command 'ignore) 4184 (ido-context-switch-command
4185 (if (eq (get this-command 'ido) 'find-file) nil 'ignore))
4115 (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends)) 4186 (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends))
4116 (ido-current-directory (ido-expand-directory dir)) 4187 (ido-current-directory (ido-expand-directory dir))
4117 (ido-directory-nonreadable (not (file-readable-p ido-current-directory))) 4188 (ido-directory-nonreadable (not (file-readable-p ido-current-directory)))
@@ -4126,6 +4197,8 @@ See `read-file-name' for additional parameters."
4126 (cond 4197 (cond
4127 ((eq ido-exit 'fallback) 4198 ((eq ido-exit 'fallback)
4128 (setq filename 'fallback)) 4199 (setq filename 'fallback))
4200 ((eq ido-exit 'dired)
4201 (setq filename ido-current-directory))
4129 (filename 4202 (filename
4130 (setq filename 4203 (setq filename
4131 (concat ido-current-directory filename)))))) 4204 (concat ido-current-directory filename))))))
diff --git a/lisp/imenu.el b/lisp/imenu.el
index 831550bd7a3..92e00282ea0 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -119,7 +119,8 @@ If t, always use a popup menu,
119If `on-mouse' use a popup menu when `imenu' was invoked with the mouse." 119If `on-mouse' use a popup menu when `imenu' was invoked with the mouse."
120 :type '(choice (const :tag "On Mouse" on-mouse) 120 :type '(choice (const :tag "On Mouse" on-mouse)
121 (const :tag "Never" nil) 121 (const :tag "Never" nil)
122 (other :tag "Always" t))) 122 (other :tag "Always" t))
123 :group 'imenu)
123 124
124(defcustom imenu-eager-completion-buffer 125(defcustom imenu-eager-completion-buffer
125 (not (eq imenu-always-use-completion-buffer-p 'never)) 126 (not (eq imenu-always-use-completion-buffer-p 'never))
diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
index bb717ec32ae..c445d7d40e1 100644
--- a/lisp/international/ccl.el
+++ b/lisp/international/ccl.el
@@ -1,8 +1,9 @@
1;;; ccl.el --- CCL (Code Conversion Language) compiler 1;;; ccl.el --- CCL (Code Conversion Language) compiler
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1998, 1999, 2000
5;; Copyright (C) 2002 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6 7
7;; Keywords: CCL, mule, multilingual, character set, coding-system 8;; Keywords: CCL, mule, multilingual, character set, coding-system
8 9
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index a8eeb2e4859..1bab1bcff33 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -1,8 +1,10 @@
1;;; characters.el --- set syntax and category for multibyte characters 1;;; characters.el --- set syntax and category for multibyte characters
2 2
3;; Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. 5;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/international/codepage.el b/lisp/international/codepage.el
index b9c819b7524..7571ccf986f 100644
--- a/lisp/international/codepage.el
+++ b/lisp/international/codepage.el
@@ -1,6 +1,9 @@
1;;; codepage.el --- MS-DOS/MS-Windows specific coding systems 1;;; codepage.el --- MS-DOS/MS-Windows specific coding systems
2 2
3;; Copyright (C) 1998, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
4;; Copyright (C) 2000
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
4 7
5;; Author: Eli Zaretskii 8;; Author: Eli Zaretskii
6;; Maintainer: FSF 9;; Maintainer: FSF
diff --git a/lisp/international/encoded-kb.el b/lisp/international/encoded-kb.el
index f016f1b9038..2354e658282 100644
--- a/lisp/international/encoded-kb.el
+++ b/lisp/international/encoded-kb.el
@@ -1,8 +1,9 @@
1;;; encoded-kb.el --- handler to input multibyte characters encoded somehow 1;;; encoded-kb.el --- handler to input multibyte characters encoded somehow
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2004, 2005
5;; Copyright (C) 2002 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 2831db2b026..ee8e08c3956 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -1,8 +1,9 @@
1;;; fontset.el --- commands for handling fontset 1;;; fontset.el --- commands for handling fontset
2 2
3;; Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
5;; Copyright (C) 2001 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el
index aad6b6e745e..31691268c9c 100644
--- a/lisp/international/isearch-x.el
+++ b/lisp/international/isearch-x.el
@@ -1,8 +1,9 @@
1;;; isearch-x.el --- extended isearch handling commands 1;;; isearch-x.el --- extended isearch handling commands
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 2001, 2004 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 2000
5;; Copyright (C) 2001 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6 7
7;; Keywords: multilingual, isearch 8;; Keywords: multilingual, isearch
8 9
diff --git a/lisp/international/iso-ascii.el b/lisp/international/iso-ascii.el
index 3bffb1795f0..0dbb4e4093a 100644
--- a/lisp/international/iso-ascii.el
+++ b/lisp/international/iso-ascii.el
@@ -1,6 +1,6 @@
1;;; iso-ascii.el --- set up char tables for ISO 8859/1 on ASCII terminals 1;;; iso-ascii.el --- set up char tables for ISO 8859/1 on ASCII terminals
2 2
3;; Copyright (C) 1987, 1995 Free Software Foundation, Inc. 3;; Copyright (C) 1987, 1995, 1998, 2003 Free Software Foundation, Inc.
4 4
5;; Author: Howard Gayle 5;; Author: Howard Gayle
6;; Maintainer: FSF 6;; Maintainer: FSF
diff --git a/lisp/international/iso-cvt.el b/lisp/international/iso-cvt.el
index 232fe5037ee..f7e325b0ca3 100644
--- a/lisp/international/iso-cvt.el
+++ b/lisp/international/iso-cvt.el
@@ -1,8 +1,8 @@
1;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: iso-latin-1 -*- 1;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: iso-latin-1 -*-
2;; This file was formerly called gm-lingo.el. 2;; This file was formerly called gm-lingo.el.
3 3
4;; Copyright (C) 1993, 1994, 1995, 1996, 1998, 2000, 2003, 2004 4;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2003, 2004
5;; Free Software Foundation, Inc. 5;; Free Software Foundation, Inc.
6 6
7;; Author: Michael Gschwind <mike@vlsivie.tuwien.ac.at> 7;; Author: Michael Gschwind <mike@vlsivie.tuwien.ac.at>
8;; Keywords: tex, iso, latin, i18n 8;; Keywords: tex, iso, latin, i18n
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el
index a071b14b3d2..e0aa17b4916 100644
--- a/lisp/international/iso-transl.el
+++ b/lisp/international/iso-transl.el
@@ -1,6 +1,7 @@
1;;; iso-transl.el --- keyboard input definitions for ISO 8859-1 -*- coding: iso-8859-1 -*- 1;;; iso-transl.el --- keyboard input definitions for ISO 8859-1 -*- coding: iso-8859-1 -*-
2 2
3;; Copyright (C) 1987, 1993, 1994, 1995, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
4;; Free Software Foundation, Inc.
4 5
5;; Author: Howard Gayle 6;; Author: Howard Gayle
6;; Maintainer: FSF 7;; Maintainer: FSF
diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el
index 682a2a8f2b5..f145c602ffe 100644
--- a/lisp/international/ja-dic-cnv.el
+++ b/lisp/international/ja-dic-cnv.el
@@ -1,7 +1,8 @@
1;;; ja-dic-cnv.el --- convert a Japanese dictionary (SKK-JISYO.L) to Emacs Lisp 1;;; ja-dic-cnv.el --- convert a Japanese dictionary (SKK-JISYO.L) to Emacs Lisp
2 2
3;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1995, 2000
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: mule, multilingual, Japanese 7;; Keywords: mule, multilingual, Japanese
7 8
diff --git a/lisp/international/ja-dic-utl.el b/lisp/international/ja-dic-utl.el
index 07d9e1ff760..ba00977832a 100644
--- a/lisp/international/ja-dic-utl.el
+++ b/lisp/international/ja-dic-utl.el
@@ -1,7 +1,8 @@
1;;; ja-dic-utl.el --- utilities for handling Japanese dictionary (SKK-JISYO.L) 1;;; ja-dic-utl.el --- utilities for handling Japanese dictionary (SKK-JISYO.L)
2 2
3;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1995, 2000
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: mule, multilingual, Japanese 7;; Keywords: mule, multilingual, Japanese
7 8
diff --git a/lisp/international/kinsoku.el b/lisp/international/kinsoku.el
index 28d6409d46b..76ec5ded397 100644
--- a/lisp/international/kinsoku.el
+++ b/lisp/international/kinsoku.el
@@ -1,7 +1,9 @@
1;;; kinsoku.el --- `Kinsoku' processing funcs -*- coding: iso-2022-7bit; -*- 1;;; kinsoku.el --- `Kinsoku' processing funcs -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 2003 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: mule, kinsoku 8;; Keywords: mule, kinsoku
7 9
diff --git a/lisp/international/kkc.el b/lisp/international/kkc.el
index 972bbbfdddf..be8d242c63e 100644
--- a/lisp/international/kkc.el
+++ b/lisp/international/kkc.el
@@ -1,7 +1,9 @@
1;;; kkc.el --- Kana Kanji converter -*- coding: iso-2022-7bit; -*- 1;;; kkc.el --- Kana Kanji converter -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 2000, 2001, 2003
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: mule, multilingual, Japanese 8;; Keywords: mule, multilingual, Japanese
7 9
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el
index 39acbb33dfd..88da8ffed79 100644
--- a/lisp/international/latexenc.el
+++ b/lisp/international/latexenc.el
@@ -173,6 +173,7 @@ coding system names is determined from `latex-inputenc-coding-alist'."
173 'undecided)))) 173 'undecided))))
174 'undecided)) 174 'undecided))
175 175
176
176(provide 'latexenc) 177(provide 'latexenc)
177 178
178;; arch-tag: f971bc3e-1fec-4609-8f2f-73dd41ab22e1 179;; arch-tag: f971bc3e-1fec-4609-8f2f-73dd41ab22e1
diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el
index 86f5bf7a726..12b0c22b7ab 100644
--- a/lisp/international/latin1-disp.el
+++ b/lisp/international/latin1-disp.el
@@ -1,6 +1,6 @@
1;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals -*-coding: iso-2022-7bit;-*- 1;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
4 4
5;; Author: Dave Love <fx@gnu.org> 5;; Author: Dave Love <fx@gnu.org>
6;; Keywords: i18n 6;; Keywords: i18n
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 8a2c8da2665..daab87259a3 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -1,8 +1,10 @@
1;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*- 1;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*-
2 2
3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
4;; Copyright (C) 1995, 2003 Electrotechnical Laboratory, JAPAN. 4;; Free Software Foundation, Inc.
5;; Licensed to the Free Software Foundation. 5;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el
index 79bf4f3432a..0fb5d93af65 100644
--- a/lisp/international/mule-conf.el
+++ b/lisp/international/mule-conf.el
@@ -1,8 +1,10 @@
1;;; mule-conf.el --- configure multilingual environment 1;;; mule-conf.el --- configure multilingual environment
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. 5;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el
index a4423a67181..c79eb158695 100644
--- a/lisp/international/mule-diag.el
+++ b/lisp/international/mule-diag.el
@@ -1,8 +1,10 @@
1;;; mule-diag.el --- show diagnosis of multilingual environment (Mule) 1;;; mule-diag.el --- show diagnosis of multilingual environment (Mule)
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. 5;; Copyright (C) 1995, 1997, 1999, 2000, 2001, 2002, 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el
index b85d98a1787..236a34b84ab 100644
--- a/lisp/international/mule-util.el
+++ b/lisp/international/mule-util.el
@@ -1,8 +1,10 @@
1;;; mule-util.el --- utility functions for mulitilingual environment (mule) 1;;; mule-util.el --- utility functions for mulitilingual environment (mule)
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc. 5;; Copyright (C) 1995, 1997, 1998, 1999, 2004
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index cc7f41706d9..a583498e8b2 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1,8 +1,10 @@
1;;; mule.el --- basic commands for multilingual environment 1;;; mule.el --- basic commands for multilingual environment
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. 5;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el
index ebe2eaec900..112bc22cfc6 100644
--- a/lisp/international/ogonek.el
+++ b/lisp/international/ogonek.el
@@ -1,6 +1,6 @@
1;;; ogonek.el --- change the encoding of Polish diacritics 1;;; ogonek.el --- change the encoding of Polish diacritics
2 2
3;; Copyright (C) 1997 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
4 4
5;; Author: W{\l}odek Bzyl, Ryszard Kubiak 5;; Author: W{\l}odek Bzyl, Ryszard Kubiak
6;; Maintainer: rysiek@ipipan.gda.pl (Ryszard Kubiak) 6;; Maintainer: rysiek@ipipan.gda.pl (Ryszard Kubiak)
@@ -166,7 +166,7 @@ znak/ow diakrytycznych. Funkcje te mo/zna pogrupowa/c nast/epuj/aco.
166 (set-buffer (get-buffer-create " *ogonek-jak*")) 166 (set-buffer (get-buffer-create " *ogonek-jak*"))
167 (insert ogonek-informacja) 167 (insert ogonek-informacja)
168 (switch-to-buffer " *ogonek-jak*") 168 (switch-to-buffer " *ogonek-jak*")
169 (beginning-of-buffer)) 169 (goto-char (point-min)))
170 170
171;; ------ A Little Info in English -------- 171;; ------ A Little Info in English --------
172 172
@@ -264,7 +264,7 @@ The functions come in the following groups.
264 (set-buffer (get-buffer-create " *ogonek-how*")) 264 (set-buffer (get-buffer-create " *ogonek-how*"))
265 (insert ogonek-information) 265 (insert ogonek-information)
266 (switch-to-buffer " *ogonek-how*") 266 (switch-to-buffer " *ogonek-how*")
267 (beginning-of-buffer)) 267 (goto-char (point-min)))
268 268
269;; ---- Variables keeping the suggested answers to dialogue questions ----- 269;; ---- Variables keeping the suggested answers to dialogue questions -----
270(defvar ogonek-encoding-choices 270(defvar ogonek-encoding-choices
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 7594923a7e9..01ec42109de 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -1,9 +1,7 @@
1;;; quail.el --- provides simple input method for multilingual text 1;;; quail.el --- provides simple input method for multilingual text
2 2
3;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004
5;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
6;; Copyright (C) 2005
7;; National Institute of Advanced Industrial Science and Technology (AIST) 5;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H14PRO021 6;; Registration Number H14PRO021
9 7
diff --git a/lisp/international/swedish.el b/lisp/international/swedish.el
index b13a5e685b9..bf9fce5de65 100644
--- a/lisp/international/swedish.el
+++ b/lisp/international/swedish.el
@@ -1,6 +1,6 @@
1;;; swedish.el --- miscellaneous functions for dealing with Swedish 1;;; swedish.el --- miscellaneous functions for dealing with Swedish
2 2
3;; Copyright (C) 1988 Free Software Foundation, Inc. 3;; Copyright (C) 1988, 2001 Free Software Foundation, Inc.
4 4
5;; Author: Howard Gayle 5;; Author: Howard Gayle
6;; Maintainer: FSF 6;; Maintainer: FSF
diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el
index e5772fdec00..46262938c68 100644
--- a/lisp/international/titdic-cnv.el
+++ b/lisp/international/titdic-cnv.el
@@ -1,7 +1,9 @@
1;;; titdic-cnv.el --- convert cxterm dictionary (TIT format) to Quail package -*- coding:iso-2022-7bit; -*- 1;;; titdic-cnv.el --- convert cxterm dictionary (TIT format) to Quail package -*- coding:iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2003 7;; Copyright (C) 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index 100eb6076db..b34e26f74d4 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -137,8 +137,9 @@ The value of this variable is used when JIT Lock mode is turned on."
137 137
138(defcustom jit-lock-context-time 0.5 138(defcustom jit-lock-context-time 0.5
139 "Idle time after which text is contextually refontified, if applicable." 139 "Idle time after which text is contextually refontified, if applicable."
140 :type '(number :tag "seconds")) 140 :type '(number :tag "seconds")
141 141 :group 'jit-lock)
142
142(defcustom jit-lock-defer-time nil ;; 0.25 143(defcustom jit-lock-defer-time nil ;; 0.25
143 "Idle time after which deferred fontification should take place. 144 "Idle time after which deferred fontification should take place.
144If nil, fontification is not deferred." 145If nil, fontification is not deferred."
diff --git a/lisp/language/china-util.el b/lisp/language/china-util.el
index d97ec4108bf..84f46c4bf2c 100644
--- a/lisp/language/china-util.el
+++ b/lisp/language/china-util.el
@@ -1,8 +1,10 @@
1;;; china-util.el --- utilities for Chinese -*- coding: iso-2022-7bit -*- 1;;; china-util.el --- utilities for Chinese -*- coding: iso-2022-7bit -*-
2 2
3;; Copyright (C) 1995, 2003 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1995, 2001, 2003
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 1995, 2001 Free Software Foundation, Inc. 5;; Copyright (C) 1995, 1997, 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/language/chinese.el b/lisp/language/chinese.el
index 93721b59afa..05b2405dc42 100644
--- a/lisp/language/chinese.el
+++ b/lisp/language/chinese.el
@@ -1,7 +1,9 @@
1;;; chinese.el --- support for Chinese -*- coding: iso-2022-7bit; -*- 1;;; chinese.el --- support for Chinese -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2001, 2003 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2003 7;; Copyright (C) 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/cyril-util.el b/lisp/language/cyril-util.el
index 1a5c435328d..eb19ca1aaa2 100644
--- a/lisp/language/cyril-util.el
+++ b/lisp/language/cyril-util.el
@@ -1,6 +1,6 @@
1;;; cyril-util.el --- utilities for Cyrillic scripts 1;;; cyril-util.el --- utilities for Cyrillic scripts
2 2
3;; Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
4 4
5;; Keywords: mule, multilingual, Cyrillic 5;; Keywords: mule, multilingual, Cyrillic
6 6
diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el
index b158f626d51..c3a0bceb688 100644
--- a/lisp/language/cyrillic.el
+++ b/lisp/language/cyrillic.el
@@ -1,8 +1,9 @@
1;;; cyrillic.el --- support for Cyrillic -*- coding: iso-2022-7bit; -*- 1;;; cyrillic.el --- support for Cyrillic -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004
5;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/devan-util.el b/lisp/language/devan-util.el
index 64dbf576af3..ba40b32db8f 100644
--- a/lisp/language/devan-util.el
+++ b/lisp/language/devan-util.el
@@ -1,6 +1,10 @@
1;;; devan-util.el --- Support for composing Devanagari characters -*-coding: iso-2022-7bit;-*- 1;;; devan-util.el --- Support for composing Devanagari characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1998, 2001, 2002, 2003
4;; Free Software Foundation, Inc.
5;; Copyright (C) 1997, 1998, 1999, 2000
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
4 8
5;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org> 9;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org>
6;; Keywords: multilingual, Devanagari 10;; Keywords: multilingual, Devanagari
diff --git a/lisp/language/devanagari.el b/lisp/language/devanagari.el
index 6b1ff46a0af..086368c15a0 100644
--- a/lisp/language/devanagari.el
+++ b/lisp/language/devanagari.el
@@ -1,6 +1,6 @@
1;;; devanagari.el --- Support for Devanagari -*- coding: iso-2022-7bit; no-byte-compile: t -*- 1;;; devanagari.el --- Support for Devanagari -*- coding: iso-2022-7bit; no-byte-compile: t -*-
2 2
3;; Copyright (C) 1996, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc.
4 4
5;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org> 5;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org>
6;; Keywords: multilingual, Indian, Devanagari 6;; Keywords: multilingual, Indian, Devanagari
diff --git a/lisp/language/english.el b/lisp/language/english.el
index 6d135197460..db496ad7600 100644
--- a/lisp/language/english.el
+++ b/lisp/language/english.el
@@ -1,7 +1,9 @@
1;;; english.el --- support for English -*- no-byte-compile: t -*- 1;;; english.el --- support for English -*- no-byte-compile: t -*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2003 7;; Copyright (C) 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el
index fb920e8f4e8..31248f1bcf3 100644
--- a/lisp/language/ethio-util.el
+++ b/lisp/language/ethio-util.el
@@ -1,7 +1,10 @@
1;;; ethio-util.el --- utilities for Ethiopic -*- coding: utf-8-emacs; -*- 1;;; ethio-util.el --- utilities for Ethiopic -*- coding: utf-8-emacs; -*-
2 2
3;; Copyright (C) 1997, 2001 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2002
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 1997, 1998, 1999, 2001, 2004, 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
5;; Copyright (C) 2005 8;; Copyright (C) 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number: H15PRO 110 10;; Registration Number: H15PRO 110
diff --git a/lisp/language/ethiopic.el b/lisp/language/ethiopic.el
index 609a87191b6..e526f02291d 100644
--- a/lisp/language/ethiopic.el
+++ b/lisp/language/ethiopic.el
@@ -1,7 +1,9 @@
1;;; ethiopic.el --- support for Ethiopic -*- coding: utf-8-emacs; -*- 1;;; ethiopic.el --- support for Ethiopic -*- coding: utf-8-emacs; -*-
2 2
3;; Copyright (C) 1995, 2001 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 2001
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2005 7;; Copyright (C) 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number: H15PRO 110 9;; Registration Number: H15PRO 110
diff --git a/lisp/language/european.el b/lisp/language/european.el
index 164d51c9aad..b497abfd599 100644
--- a/lisp/language/european.el
+++ b/lisp/language/european.el
@@ -1,8 +1,10 @@
1;;; european.el --- support for European languages -*- coding: iso-2022-7bit; -*- 1;;; european.el --- support for European languages -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995, 1997, 2001 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. 5;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6;; Copyright (C) 2003 8;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 9;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 10;; Registration Number H13PRO009
diff --git a/lisp/language/greek.el b/lisp/language/greek.el
index e3625b4c7c2..27dc26f2cfc 100644
--- a/lisp/language/greek.el
+++ b/lisp/language/greek.el
@@ -1,8 +1,9 @@
1;;; greek.el --- support for Greek -*- no-byte-compile: t -*- 1;;; greek.el --- support for Greek -*- no-byte-compile: t -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
4;; Licensed to the Free Software Foundation.
5;; Copyright (C) 2002 Free Software Foundation, Inc. 3;; Copyright (C) 2002 Free Software Foundation, Inc.
4;; Copyright (C) 1995
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/hebrew.el b/lisp/language/hebrew.el
index bc59d23b3ee..fcd9f56153d 100644
--- a/lisp/language/hebrew.el
+++ b/lisp/language/hebrew.el
@@ -1,8 +1,9 @@
1;;; hebrew.el --- support for Hebrew -*- coding: iso-2022-7bit; no-byte-compile: t -*- 1;;; hebrew.el --- support for Hebrew -*- coding: iso-2022-7bit; no-byte-compile: t -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995
5;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index e868718bfda..1307243e074 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -1,6 +1,9 @@
1;;; indian.el --- Indian languages support -*- coding: iso-2022-7bit; -*- 1;;; indian.el --- Indian languages support -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1999, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.
4;; Copyright (C) 2002, 2003
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
4 7
5;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org> 8;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org>
6;; Keywords: multilingual, i18n, Indian 9;; Keywords: multilingual, i18n, Indian
diff --git a/lisp/language/japan-util.el b/lisp/language/japan-util.el
index e9a80fc99a7..81a40a9c450 100644
--- a/lisp/language/japan-util.el
+++ b/lisp/language/japan-util.el
@@ -1,8 +1,9 @@
1;;; japan-util.el --- utilities for Japanese -*- coding: iso-2022-7bit; -*- 1;;; japan-util.el --- utilities for Japanese -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1998, 2000, 2003
5;; Copyright (C) 2001 Free SOftware Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6 7
7;; Keywords: mule, multilingual, Japanese 8;; Keywords: mule, multilingual, Japanese
8 9
diff --git a/lisp/language/japanese.el b/lisp/language/japanese.el
index 1c48228d2db..b882cd5e62b 100644
--- a/lisp/language/japanese.el
+++ b/lisp/language/japanese.el
@@ -1,7 +1,9 @@
1;;; japanese.el --- support for Japanese -*- coding: iso-2022-7bit; no-byte-compile: t -*- 1;;; japanese.el --- support for Japanese -*- coding: iso-2022-7bit; no-byte-compile: t -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2003 7;; Copyright (C) 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/korea-util.el b/lisp/language/korea-util.el
index 222832022ac..de940f5317f 100644
--- a/lisp/language/korea-util.el
+++ b/lisp/language/korea-util.el
@@ -1,6 +1,9 @@
1;;; korea-util.el --- utilities for Korean 1;;; korea-util.el --- utilities for Korean
2 2
3;; Copyright (C) 1997 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1999 Free Software Foundation, Inc.
4;; Copyright (C) 1997, 1998, 1999
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
4 7
5;; Keywords: mule, multilingual, Korean 8;; Keywords: mule, multilingual, Korean
6 9
diff --git a/lisp/language/korean.el b/lisp/language/korean.el
index 8624264185d..1657de90f4c 100644
--- a/lisp/language/korean.el
+++ b/lisp/language/korean.el
@@ -1,7 +1,9 @@
1;;; korean.el --- support for Korean -*- coding: iso-2022-7bit; no-byte-compile: t -*- 1;;; korean.el --- support for Korean -*- coding: iso-2022-7bit; no-byte-compile: t -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1998 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1998
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2003 7;; Copyright (C) 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/lao-util.el b/lisp/language/lao-util.el
index ad0253648ea..9141c34f3df 100644
--- a/lisp/language/lao-util.el
+++ b/lisp/language/lao-util.el
@@ -1,8 +1,9 @@
1;;; lao-util.el --- utilities for Lao -*- coding: iso-2022-7bit; -*- 1;;; lao-util.el --- utilities for Lao -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 1998, 1999, 2000
5;; Copyright (C) 2001 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/lao.el b/lisp/language/lao.el
index ec5c07342e4..f400bb50931 100644
--- a/lisp/language/lao.el
+++ b/lisp/language/lao.el
@@ -1,8 +1,9 @@
1;;; lao.el --- support for Lao -*- coding: iso-2022-7bit; no-byte-compile: t -*- 1;;; lao.el --- support for Lao -*- coding: iso-2022-7bit; no-byte-compile: t -*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 1998, 1999, 2002
5;; Copyright (C) 2001 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/misc-lang.el b/lisp/language/misc-lang.el
index 537267ce9ba..47993e16ea5 100644
--- a/lisp/language/misc-lang.el
+++ b/lisp/language/misc-lang.el
@@ -1,7 +1,8 @@
1;;; misc-lang.el --- support for miscellaneous languages (characters) -*- no-byte-compile: t -*- 1;;; misc-lang.el --- support for miscellaneous languages (characters) -*- no-byte-compile: t -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1995, 1997
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: multilingual, character set, coding system 7;; Keywords: multilingual, character set, coding system
7 8
diff --git a/lisp/language/tibet-util.el b/lisp/language/tibet-util.el
index ec53d121f02..ce83add4b6f 100644
--- a/lisp/language/tibet-util.el
+++ b/lisp/language/tibet-util.el
@@ -1,7 +1,9 @@
1;;; tibet-util.el --- utilities for Tibetan -*- coding: iso-2022-7bit; -*- 1;;; tibet-util.el --- utilities for Tibetan -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 2000
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, Tibetan 8;; Keywords: multilingual, Tibetan
7 9
diff --git a/lisp/language/tibetan.el b/lisp/language/tibetan.el
index 4b580f4a81c..9ed777585db 100644
--- a/lisp/language/tibetan.el
+++ b/lisp/language/tibetan.el
@@ -1,7 +1,9 @@
1;;; tibetan.el --- support for Tibetan language -*- coding: iso-2022-7bit; -*- 1;;; tibetan.el --- support for Tibetan language -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 1999, 2000
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2003 7;; Copyright (C) 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/viet-util.el b/lisp/language/viet-util.el
index c2f1218a536..c854238b6a4 100644
--- a/lisp/language/viet-util.el
+++ b/lisp/language/viet-util.el
@@ -1,7 +1,9 @@
1;;; viet-util.el --- utilities for Vietnamese -*- coding: iso-2022-7bit; -*- 1;;; viet-util.el --- utilities for Vietnamese -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1998 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5;; Copyright (C) 2003 7;; Copyright (C) 2003
6;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/language/vietnamese.el b/lisp/language/vietnamese.el
index a5360d781f5..9f7196c5adb 100644
--- a/lisp/language/vietnamese.el
+++ b/lisp/language/vietnamese.el
@@ -1,8 +1,9 @@
1;;; vietnamese.el --- support for Vietnamese -*- coding: iso-2022-7bit; -*- 1;;; vietnamese.el --- support for Vietnamese -*- coding: iso-2022-7bit; -*-
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1998, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1995, 1997, 1998, 2000
5;; Copyright (C) 2002 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6;; Copyright (C) 2003 7;; Copyright (C) 2003
7;; National Institute of Advanced Industrial Science and Technology (AIST) 8;; National Institute of Advanced Industrial Science and Technology (AIST)
8;; Registration Number H13PRO009 9;; Registration Number H13PRO009
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index 3d1b1951421..7c7265ac8c9 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -1835,7 +1835,7 @@ the counts."
1835 (setq blobbet (file-name-nondirectory blobby)) 1835 (setq blobbet (file-name-nondirectory blobby))
1836 (if (string-match "^[0-9][0-9][0-9]-" blobbet) 1836 (if (string-match "^[0-9][0-9][0-9]-" blobbet)
1837 (let ((water-mark)) 1837 (let ((water-mark))
1838 (setq water-mark (string-to-int (substring blobbet 0 3))) 1838 (setq water-mark (string-to-number (substring blobbet 0 3)))
1839 (if (> water-mark high-water) (setq high-water water-mark)))) 1839 (if (> water-mark high-water) (setq high-water water-mark))))
1840 (setq q-cnt (1+ q-cnt))) 1840 (setq q-cnt (1+ q-cnt)))
1841 (t (setq q-oth (1+ q-oth))) 1841 (t (setq q-oth (1+ q-oth)))
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
index b520841db3d..88f166707c3 100644
--- a/lisp/mail/mailalias.el
+++ b/lisp/mail/mailalias.el
@@ -449,7 +449,7 @@ PATTERN is the string we want to complete."
449 (add-to-list 'mail-local-names 449 (add-to-list 'mail-local-names
450 (cons (match-string 1) 450 (cons (match-string 1)
451 (user-full-name 451 (user-full-name
452 (string-to-int (match-string 2)))))) 452 (string-to-number (match-string 2))))))
453 (beginning-of-line 2)) 453 (beginning-of-line 2))
454 (kill-buffer (current-buffer)))) 454 (kill-buffer (current-buffer))))
455 (if (or (eq mail-names t) 455 (if (or (eq mail-names t)
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 1feaf94317f..858eeff40bf 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1990,7 +1990,7 @@ is non-nil if the user has supplied the password interactively.
1990 header-end t) 1990 header-end t)
1991 (let ((beg (point)) 1991 (let ((beg (point))
1992 (eol (progn (end-of-line) (point)))) 1992 (eol (progn (end-of-line) (point))))
1993 (string-to-int (buffer-substring beg eol))))))) 1993 (string-to-number (buffer-substring beg eol)))))))
1994 (and size 1994 (and size
1995 (if (and (natnump size) 1995 (if (and (natnump size)
1996 (<= (+ header-end size) (point-max)) 1996 (<= (+ header-end size) (point-max))
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index a49b47453d8..f551239907d 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -375,17 +375,17 @@ Setting this variable has an effect only before reading a mail."
375 (cond ((re-search-forward "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- \t_]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)" 375 (cond ((re-search-forward "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- \t_]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)"
376 (save-excursion (end-of-line) (point)) t) 376 (save-excursion (end-of-line) (point)) t)
377 (format "%2d-%3s" 377 (format "%2d-%3s"
378 (string-to-int (buffer-substring 378 (string-to-number (buffer-substring
379 (match-beginning 2) 379 (match-beginning 2)
380 (match-end 2))) 380 (match-end 2)))
381 (buffer-substring 381 (buffer-substring
382 (match-beginning 4) (match-end 4)))) 382 (match-beginning 4) (match-end 4))))
383 ((re-search-forward "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z \t_]*\\)\\([0-9][0-9]?\\)" 383 ((re-search-forward "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z \t_]*\\)\\([0-9][0-9]?\\)"
384 (save-excursion (end-of-line) (point)) t) 384 (save-excursion (end-of-line) (point)) t)
385 (format "%2d-%3s" 385 (format "%2d-%3s"
386 (string-to-int (buffer-substring 386 (string-to-number (buffer-substring
387 (match-beginning 4) 387 (match-beginning 4)
388 (match-end 4))) 388 (match-end 4)))
389 (buffer-substring 389 (buffer-substring
390 (match-beginning 2) (match-end 2)))) 390 (match-beginning 2) (match-end 2))))
391 ((re-search-forward "\\(19\\|20\\)\\([0-9][0-9]\\)-\\([01][0-9]\\)-\\([0-3][0-9]\\)" 391 ((re-search-forward "\\(19\\|20\\)\\([0-9][0-9]\\)-\\([01][0-9]\\)-\\([0-3][0-9]\\)"
@@ -580,7 +580,7 @@ If N is negative, go backwards."
580 ;; Advance thru summary. 580 ;; Advance thru summary.
581 (forward-line (if forward 1 -1)) 581 (forward-line (if forward 1 -1))
582 ;; Get msg number of this line. 582 ;; Get msg number of this line.
583 (setq i (string-to-int 583 (setq i (string-to-number
584 (buffer-substring (point) 584 (buffer-substring (point)
585 (min (point-max) (+ 6 (point)))))) 585 (min (point-max) (+ 6 (point))))))
586 ;; See if that msg has desired subject. 586 ;; See if that msg has desired subject.
@@ -791,10 +791,10 @@ Search, the `unseen' attribute is restored.")
791 (forward-line -1)) 791 (forward-line -1))
792 (beginning-of-line) 792 (beginning-of-line)
793 (skip-chars-forward " ") 793 (skip-chars-forward " ")
794 (let ((msg-num (string-to-int (buffer-substring 794 (let ((msg-num (string-to-number (buffer-substring
795 (point) 795 (point)
796 (progn (skip-chars-forward "0-9") 796 (progn (skip-chars-forward "0-9")
797 (point)))))) 797 (point))))))
798 ;; Always leave `unseen' removed 798 ;; Always leave `unseen' removed
799 ;; if we get out of isearch mode. 799 ;; if we get out of isearch mode.
800 ;; Don't let a subsequent isearch restore that `unseen'. 800 ;; Don't let a subsequent isearch restore that `unseen'.
@@ -1061,7 +1061,7 @@ If SKIP-RMAIL, don't do anything to the Rmail buffer."
1061 (buf rmail-buffer) 1061 (buf rmail-buffer)
1062 (cur (point)) 1062 (cur (point))
1063 message-not-found 1063 message-not-found
1064 (curmsg (string-to-int 1064 (curmsg (string-to-number
1065 (buffer-substring (point) 1065 (buffer-substring (point)
1066 (min (point-max) (+ 6 (point)))))) 1066 (min (point-max) (+ 6 (point))))))
1067 (total (save-excursion (set-buffer buf) rmail-total-messages))) 1067 (total (save-excursion (set-buffer buf) rmail-total-messages)))
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 605af6cdbe7..3cf17f8968d 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -822,7 +822,7 @@ This is relative to `smtpmail-queue-dir'.")
822 nil 822 nil
823 (setq response-continue nil) 823 (setq response-continue nil)
824 (setq return-value 824 (setq return-value
825 (cons (string-to-int 825 (cons (string-to-number
826 (buffer-substring begin end)) 826 (buffer-substring begin end))
827 (nreverse response-strings))))) 827 (nreverse response-strings)))))
828 828
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el
index 6b769f53801..d9a9d78d0b9 100644
--- a/lisp/mail/supercite.el
+++ b/lisp/mail/supercite.el
@@ -153,6 +153,7 @@ a variable whose value is a citation frame."
153 (choice (repeat (repeat sexp)) 153 (choice (repeat (repeat sexp))
154 symbol))))) 154 symbol)))))
155 :group 'supercite-frames) 155 :group 'supercite-frames)
156(put 'sc-cite-frame-alist 'risky-local-variable t)
156 157
157(defcustom sc-uncite-frame-alist '() 158(defcustom sc-uncite-frame-alist '()
158 "*Alist for frame selection during unciting. 159 "*Alist for frame selection during unciting.
@@ -161,6 +162,7 @@ See the variable `sc-cite-frame-alist' for details."
161 (choice (repeat (repeat sexp)) 162 (choice (repeat (repeat sexp))
162 symbol))))) 163 symbol)))))
163 :group 'supercite-frames) 164 :group 'supercite-frames)
165(put 'sc-uncite-frame-alist 'risky-local-variable t)
164 166
165(defcustom sc-recite-frame-alist '() 167(defcustom sc-recite-frame-alist '()
166 "*Alist for frame selection during reciting. 168 "*Alist for frame selection during reciting.
@@ -169,6 +171,7 @@ See the variable `sc-cite-frame-alist' for details."
169 (choice (repeat (repeat sexp)) 171 (choice (repeat (repeat sexp))
170 symbol))))) 172 symbol)))))
171 :group 'supercite-frames) 173 :group 'supercite-frames)
174(put 'sc-recite-frame-alist 'risky-local-variable t)
172 175
173(defcustom sc-default-cite-frame 176(defcustom sc-default-cite-frame
174 '(;; initialize fill state and temporary variables when entering 177 '(;; initialize fill state and temporary variables when entering
@@ -214,6 +217,7 @@ See the variable `sc-cite-frame-alist' for details."
214 "*Default REGI frame for citing a region." 217 "*Default REGI frame for citing a region."
215 :type '(repeat (repeat sexp)) 218 :type '(repeat (repeat sexp))
216 :group 'supercite-frames) 219 :group 'supercite-frames)
220(put 'sc-default-cite-frame 'risky-local-variable t)
217 221
218(defcustom sc-default-uncite-frame 222(defcustom sc-default-uncite-frame
219 '(;; do nothing on a blank line 223 '(;; do nothing on a blank line
@@ -224,6 +228,7 @@ See the variable `sc-cite-frame-alist' for details."
224 "*Default REGI frame for unciting a region." 228 "*Default REGI frame for unciting a region."
225 :type '(repeat (repeat sexp)) 229 :type '(repeat (repeat sexp))
226 :group 'supercite-frames) 230 :group 'supercite-frames)
231(put 'sc-default-uncite-frame 'risky-local-variable t)
227 232
228(defcustom sc-default-recite-frame 233(defcustom sc-default-recite-frame
229 '(;; initialize fill state when entering frame 234 '(;; initialize fill state when entering frame
@@ -240,6 +245,7 @@ See the variable `sc-cite-frame-alist' for details."
240 "*Default REGI frame for reciting a region." 245 "*Default REGI frame for reciting a region."
241 :type '(repeat (repeat sexp)) 246 :type '(repeat (repeat sexp))
242 :group 'supercite-frames) 247 :group 'supercite-frames)
248(put 'sc-default-recite-frame 'risky-local-variable t)
243 249
244(defcustom sc-cite-region-limit t 250(defcustom sc-cite-region-limit t
245 "*This variable controls automatic citation of yanked text. 251 "*This variable controls automatic citation of yanked text.
@@ -427,6 +433,7 @@ to be consulted during attribution selection."
427 (choice (sexp :tag "List to eval") 433 (choice (sexp :tag "List to eval")
428 string))))) 434 string)))))
429 :group 'supercite-attr) 435 :group 'supercite-attr)
436(put 'sc-attrib-selection-list 'risky-local-variable t)
430 437
431(defcustom sc-attribs-preselect-hook nil 438(defcustom sc-attribs-preselect-hook nil
432 "*Hook to run before selecting an attribution." 439 "*Hook to run before selecting an attribution."
@@ -482,6 +489,7 @@ this list is chosen for automatic reference header insertions.
482Electric reference mode will cycle through this list of functions." 489Electric reference mode will cycle through this list of functions."
483 :type '(repeat sexp) 490 :type '(repeat sexp)
484 :group 'supercite) 491 :group 'supercite)
492(put 'sc-rewrite-header-list 'risky-local-variable t)
485 493
486(defcustom sc-titlecue-regexp "\\s +-+\\s +" 494(defcustom sc-titlecue-regexp "\\s +-+\\s +"
487 "*Regular expression describing the separator between names and titles. 495 "*Regular expression describing the separator between names and titles.
diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el
index 16383304503..e4921b047df 100644
--- a/lisp/mh-e/mh-acros.el
+++ b/lisp/mh-e/mh-acros.el
@@ -1,6 +1,6 @@
1;;; mh-acros.el --- Macros used in MH-E 1;;; mh-acros.el --- Macros used in MH-E
2 2
3;; Copyright (C) 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el
index 1356e2c8b95..7f2cd2f5266 100644
--- a/lisp/mh-e/mh-alias.el
+++ b/lisp/mh-e/mh-alias.el
@@ -1,7 +1,6 @@
1;;; mh-alias.el --- MH-E mail alias completion and expansion 1;;; mh-alias.el --- MH-E mail alias completion and expansion
2;; 2;;
3;; Copyright (C) 1994, 95, 96, 1997, 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4;; 2001, 02, 03, 2004 Free Software Foundation, Inc.
5 4
6;; Author: Peter S. Galbraith <psg@debian.org> 5;; Author: Peter S. Galbraith <psg@debian.org>
7;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index cde52c65043..4f7e413d464 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -1,7 +1,6 @@
1;;; mh-comp.el --- MH-E functions for composing messages 1;;; mh-comp.el --- MH-E functions for composing messages
2 2
3;; Copyright (C) 1993, 95, 1997, 3;; Copyright (C) 1993, 95, 1997, 2000, 2005 Free Software Foundation, Inc.
4;; 2000, 01, 02, 03, 2004 Free Software Foundation, Inc.
5 4
6;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el
index c9a4b11702d..c5689afc13e 100644
--- a/lisp/mh-e/mh-customize.el
+++ b/lisp/mh-e/mh-customize.el
@@ -1,6 +1,6 @@
1;;; mh-customize.el --- MH-E customization 1;;; mh-customize.el --- MH-E customization
2 2
3;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index c2322624507..b5eea79ae1e 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -1,7 +1,7 @@
1;;; mh-e.el --- GNU Emacs interface to the MH mail system 1;;; mh-e.el --- GNU Emacs interface to the MH mail system
2 2
3;; Copyright (C) 1985, 86, 87, 88, 90, 92, 93, 94, 95, 97, 1999, 3;; Copyright (C) 1985, 86, 87, 88, 90, 92, 93, 94, 95, 97, 1999,
4;; 2000, 01, 02, 03, 2004, 2005 Free Software Foundation, Inc. 4;; 2000, 2005 Free Software Foundation, Inc.
5 5
6;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el
index ef745f4c06f..a632efc7856 100644
--- a/lisp/mh-e/mh-funcs.el
+++ b/lisp/mh-e/mh-funcs.el
@@ -1,6 +1,6 @@
1;;; mh-funcs.el --- MH-E functions not everyone will use right away 1;;; mh-funcs.el --- MH-E functions not everyone will use right away
2 2
3;; Copyright (C) 1993, 1995, 2001, 02, 03, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el
index b850c8fdc43..e4b4a5b0d54 100644
--- a/lisp/mh-e/mh-gnus.el
+++ b/lisp/mh-e/mh-gnus.el
@@ -1,6 +1,6 @@
1;;; mh-gnus.el --- Make MH-E compatible with installed version of Gnus. 1;;; mh-gnus.el --- Make MH-E compatible with installed version of Gnus.
2 2
3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el
index 4bb5f90cf18..7b44dae1d06 100644
--- a/lisp/mh-e/mh-identity.el
+++ b/lisp/mh-e/mh-identity.el
@@ -1,6 +1,6 @@
1;;; mh-identity.el --- Multiple identify support for MH-E. 1;;; mh-identity.el --- Multiple identify support for MH-E.
2 2
3;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Peter S. Galbraith <psg@debian.org> 5;; Author: Peter S. Galbraith <psg@debian.org>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-inc.el b/lisp/mh-e/mh-inc.el
index 682b8aa7c53..95341fa75f7 100644
--- a/lisp/mh-e/mh-inc.el
+++ b/lisp/mh-e/mh-inc.el
@@ -1,6 +1,6 @@
1;;; mh-inc.el --- MH-E `inc' and separate mail spool handling 1;;; mh-inc.el --- MH-E `inc' and separate mail spool handling
2;; 2;;
3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Peter S. Galbraith <psg@debian.org> 5;; Author: Peter S. Galbraith <psg@debian.org>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-index.el b/lisp/mh-e/mh-index.el
index 91eed420e2e..cde630236b0 100644
--- a/lisp/mh-e/mh-index.el
+++ b/lisp/mh-e/mh-index.el
@@ -1,6 +1,6 @@
1;;; mh-index -- MH-E interface to indexing programs 1;;; mh-index -- MH-E interface to indexing programs
2 2
3;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-init.el b/lisp/mh-e/mh-init.el
index a975b882128..b97e9fcde65 100644
--- a/lisp/mh-e/mh-init.el
+++ b/lisp/mh-e/mh-init.el
@@ -1,6 +1,6 @@
1;;; mh-init.el --- MH-E initialization. 1;;; mh-init.el --- MH-E initialization.
2 2
3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Peter S. Galbraith <psg@debian.org> 5;; Author: Peter S. Galbraith <psg@debian.org>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el
index 095a8c3c3fd..29005d47aa6 100644
--- a/lisp/mh-e/mh-junk.el
+++ b/lisp/mh-e/mh-junk.el
@@ -1,6 +1,6 @@
1;;; mh-junk.el --- Interface to anti-spam measures 1;;; mh-junk.el --- Interface to anti-spam measures
2 2
3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>, 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>,
6;; Bill Wohler <wohler@newt.com> 6;; Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-loaddefs.el b/lisp/mh-e/mh-loaddefs.el
index fd989ffa3b9..4abe3b208ef 100644
--- a/lisp/mh-e/mh-loaddefs.el
+++ b/lisp/mh-e/mh-loaddefs.el
@@ -1,6 +1,6 @@
1;;; mh-loaddefs.el --- automatically extracted autoloads 1;;; mh-loaddefs.el --- automatically extracted autoloads
2;; 2;;
3;;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3;;; Copyright (C) 2005 Free Software Foundation, Inc.
4;;; Author: Bill Wohler <wohler@newt.com> 4;;; Author: Bill Wohler <wohler@newt.com>
5;;; Keywords: mail 5;;; Keywords: mail
6;;; Commentary: 6;;; Commentary:
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index bc870134779..d286069ba4b 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -1,7 +1,6 @@
1;;; mh-mime.el --- MH-E support for composing MIME messages 1;;; mh-mime.el --- MH-E support for composing MIME messages
2 2
3;; Copyright (C) 1993, 1995, 2001, 02, 03, 2004, 2005 3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
4;; Free Software Foundation, Inc.
5 4
6;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-pick.el b/lisp/mh-e/mh-pick.el
index b92a98f26cc..7b0ae4bafdf 100644
--- a/lisp/mh-e/mh-pick.el
+++ b/lisp/mh-e/mh-pick.el
@@ -1,6 +1,6 @@
1;;; mh-pick.el --- make a search pattern and search for a message in MH-E 1;;; mh-pick.el --- make a search pattern and search for a message in MH-E
2 2
3;; Copyright (C) 1993, 1995, 2001, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-print.el b/lisp/mh-e/mh-print.el
index 7539e455919..9a7df0b8fd4 100644
--- a/lisp/mh-e/mh-print.el
+++ b/lisp/mh-e/mh-print.el
@@ -1,6 +1,6 @@
1;;; mh-print.el --- MH-E printing support 1;;; mh-print.el --- MH-E printing support
2 2
3;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Jeffrey C Honig <jch@honig.net> 5;; Author: Jeffrey C Honig <jch@honig.net>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
index 8d2369ed19a..d09e9805682 100644
--- a/lisp/mh-e/mh-seq.el
+++ b/lisp/mh-e/mh-seq.el
@@ -1,6 +1,6 @@
1;;; mh-seq.el --- MH-E sequences support 1;;; mh-seq.el --- MH-E sequences support
2 2
3;; Copyright (C) 1993, 1995, 2001, 02, 03, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1993, 1995, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-speed.el b/lisp/mh-e/mh-speed.el
index 2617a941de1..a20e6e0a410 100644
--- a/lisp/mh-e/mh-speed.el
+++ b/lisp/mh-e/mh-speed.el
@@ -1,6 +1,6 @@
1;;; mh-speed.el --- Speedbar interface for MH-E. 1;;; mh-speed.el --- Speedbar interface for MH-E.
2 2
3;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2005 Free Software Foundation, Inc.
4 4
5;; Author: Satyaki Das <satyaki@theforce.stanford.edu> 5;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
6;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index a57567a7bd3..a7ba9311403 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -1,7 +1,6 @@
1;;; mh-utils.el --- MH-E code needed for both sending and reading 1;;; mh-utils.el --- MH-E code needed for both sending and reading
2 2
3;; Copyright (C) 1993, 95, 1997, 3;; Copyright (C) 1993, 95, 1997, 2000, 01, 2005 Free Software Foundation, Inc.
4;; 2000, 01, 02, 03, 2004 Free Software Foundation, Inc.
5 4
6;; Author: Bill Wohler <wohler@newt.com> 5;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 6;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 8b4ed89e7b0..7fd07ebccfb 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1,6 +1,6 @@
1;;; ange-ftp.el --- transparent FTP support for GNU Emacs 1;;; ange-ftp.el --- transparent FTP support for GNU Emacs
2 2
3;; Copyright (C) 1989,90,91,92,93,94,95,96,98, 2000, 2001 3;; Copyright (C) 1989,90,91,92,93,94,95,96,98, 2000, 2001, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Andy Norman (ange@hplb.hpl.hp.com) 6;; Author: Andy Norman (ange@hplb.hpl.hp.com)
@@ -1646,7 +1646,7 @@ good, skip, fatal, or unknown."
1646 ;; if we gave an empty password to the USER command earlier 1646 ;; if we gave an empty password to the USER command earlier
1647 ;; then we should send a null password now. 1647 ;; then we should send a null password now.
1648 (if (string-match "Password: *$" ange-ftp-process-string) 1648 (if (string-match "Password: *$" ange-ftp-process-string)
1649 (send-string proc "\n")))) 1649 (process-send-string proc "\n"))))
1650 (while (and ange-ftp-process-busy 1650 (while (and ange-ftp-process-busy
1651 (string-match "\n" ange-ftp-process-string)) 1651 (string-match "\n" ange-ftp-process-string))
1652 (let ((line (substring ange-ftp-process-string 1652 (let ((line (substring ange-ftp-process-string
@@ -1741,18 +1741,18 @@ good, skip, fatal, or unknown."
1741 ;; Replace STR by the result of the comint processing. 1741 ;; Replace STR by the result of the comint processing.
1742 (setq str (buffer-substring comint-last-output-start (process-mark proc)))) 1742 (setq str (buffer-substring comint-last-output-start (process-mark proc))))
1743 (cond ((string-match "login: *$" str) 1743 (cond ((string-match "login: *$" str)
1744 (send-string proc 1744 (process-send-string proc
1745 (concat 1745 (concat
1746 (let ((ange-ftp-default-user t)) 1746 (let ((ange-ftp-default-user t))
1747 (ange-ftp-get-user ange-ftp-gateway-host)) 1747 (ange-ftp-get-user ange-ftp-gateway-host))
1748 "\n"))) 1748 "\n")))
1749 ((string-match "Password: *$" str) 1749 ((string-match "Password: *$" str)
1750 (send-string proc 1750 (process-send-string proc
1751 (concat 1751 (concat
1752 (ange-ftp-get-passwd ange-ftp-gateway-host 1752 (ange-ftp-get-passwd ange-ftp-gateway-host
1753 (ange-ftp-get-user 1753 (ange-ftp-get-user
1754 ange-ftp-gateway-host)) 1754 ange-ftp-gateway-host))
1755 "\n"))) 1755 "\n")))
1756 ((string-match ange-ftp-gateway-fatal-msgs str) 1756 ((string-match ange-ftp-gateway-fatal-msgs str)
1757 (delete-process proc) 1757 (delete-process proc)
1758 (setq ange-ftp-gwp-running nil)) 1758 (setq ange-ftp-gwp-running nil))
@@ -1835,7 +1835,7 @@ been queued with no result. CONT will still be called, however."
1835 (insert (substring cmd 0 (match-end 0)) " Turtle Power!\n") 1835 (insert (substring cmd 0 (match-end 0)) " Turtle Power!\n")
1836 (insert cmd))) 1836 (insert cmd)))
1837 (move-marker comint-last-input-end (point)) 1837 (move-marker comint-last-input-end (point))
1838 (send-string proc cmd) 1838 (process-send-string proc cmd)
1839 (set-marker (process-mark proc) (point)) 1839 (set-marker (process-mark proc) (point))
1840 (if nowait 1840 (if nowait
1841 nil 1841 nil
@@ -2109,7 +2109,7 @@ suffix of the form #PORT to specify a non-default port"
2109 (line (cdr status))) 2109 (line (cdr status)))
2110 (save-match-data 2110 (save-match-data
2111 (if (string-match ange-ftp-hash-mark-msgs line) 2111 (if (string-match ange-ftp-hash-mark-msgs line)
2112 (let ((size (string-to-int (match-string 1 line)))) 2112 (let ((size (string-to-number (match-string 1 line))))
2113 (setq ange-ftp-ascii-hash-mark-size size 2113 (setq ange-ftp-ascii-hash-mark-size size
2114 ange-ftp-hash-mark-unit (ash size -4)) 2114 ange-ftp-hash-mark-unit (ash size -4))
2115 2115
@@ -5082,7 +5082,7 @@ Other orders of $ and _ seem to all work just fine.")
5082 (and (string-match regexp name) 5082 (and (string-match regexp name)
5083 (setq version 5083 (setq version
5084 (max version 5084 (max version
5085 (string-to-int (match-string 1 name)))))) 5085 (string-to-number (match-string 1 name))))))
5086 files) 5086 files)
5087 (setq version (1+ version)) 5087 (setq version (1+ version))
5088 (puthash 5088 (puthash
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 9b5708d6503..5cd8701d1a5 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -1,6 +1,6 @@
1;;; browse-url.el --- pass a URL to a WWW browser 1;;; browse-url.el --- pass a URL to a WWW browser
2 2
3;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001, 2004, 2005 3;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Denis Howe <dbh@doc.ic.ac.uk> 6;; Author: Denis Howe <dbh@doc.ic.ac.uk>
diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el
index 2e6b1625146..b279715329f 100644
--- a/lisp/net/eudc.el
+++ b/lisp/net/eudc.el
@@ -1,6 +1,6 @@
1;;; eudc.el --- Emacs Unified Directory Client 1;;; eudc.el --- Emacs Unified Directory Client
2 2
3;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: Pavel Janík <Pavel@Janik.cz> 6;; Maintainer: Pavel Janík <Pavel@Janik.cz>
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el
index b0409df2b7c..2917fab0a7b 100644
--- a/lisp/net/ldap.el
+++ b/lisp/net/ldap.el
@@ -1,6 +1,6 @@
1;;; ldap.el --- client interface to LDAP for Emacs 1;;; ldap.el --- client interface to LDAP for Emacs
2 2
3;; Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Oscar Figueiredo <oscar@cpe.fr> 5;; Author: Oscar Figueiredo <oscar@cpe.fr>
6;; Maintainer: FSF 6;; Maintainer: FSF
diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el
index 4a54702643a..c1c88dfc323 100644
--- a/lisp/net/net-utils.el
+++ b/lisp/net/net-utils.el
@@ -1,6 +1,6 @@
1;;; net-utils.el --- network functions 1;;; net-utils.el --- network functions
2 2
3;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Peter Breton <pbreton@cs.umb.edu> 5;; Author: Peter Breton <pbreton@cs.umb.edu>
6;; Created: Sun Mar 16 1997 6;; Created: Sun Mar 16 1997
@@ -468,7 +468,8 @@ If your system's ping continues until interrupted, you can try setting
468 (require 'ffap) 468 (require 'ffap)
469 (read-from-minibuffer 469 (read-from-minibuffer
470 "Lookup host: " 470 "Lookup host: "
471 (or (ffap-string-at-point 'machine) ""))))) 471 (with-no-warnings
472 (or (ffap-string-at-point 'machine) ""))))))
472 (net-utils-run-program 473 (net-utils-run-program
473 "Dig" 474 "Dig"
474 (concat "** " 475 (concat "** "
diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el
index 40a1e4bfad3..ebf4dcd3618 100644
--- a/lisp/net/quickurl.el
+++ b/lisp/net/quickurl.el
@@ -1,6 +1,6 @@
1;;; quickurl.el --- insert an URL based on text at point in buffer 1;;; quickurl.el --- insert an URL based on text at point in buffer
2 2
3;; Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. 3;; Copyright (C) 1999,2000,2001,2005 Free Software Foundation, Inc.
4 4
5;; Author: Dave Pearson <davep@davep.org> 5;; Author: Dave Pearson <davep@davep.org>
6;; Maintainer: Dave Pearson <davep@davep.org> 6;; Maintainer: Dave Pearson <davep@davep.org>
diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el
index 67521ca2e73..3ad66166ece 100644
--- a/lisp/net/rlogin.el
+++ b/lisp/net/rlogin.el
@@ -1,6 +1,6 @@
1;;; rlogin.el --- remote login interface 1;;; rlogin.el --- remote login interface
2 2
3;; Copyright (C) 1992, 93, 94, 95, 97, 1998, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 1992, 93, 94, 95, 97, 1998, 2002, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Noah Friedman 5;; Author: Noah Friedman
6;; Maintainer: Noah Friedman <friedman@splode.com> 6;; Maintainer: Noah Friedman <friedman@splode.com>
diff --git a/lisp/net/snmp-mode.el b/lisp/net/snmp-mode.el
index 9cbeee545b5..73fef1452a0 100644
--- a/lisp/net/snmp-mode.el
+++ b/lisp/net/snmp-mode.el
@@ -1,6 +1,6 @@
1;;; snmp-mode.el --- SNMP & SNMPv2 MIB major mode 1;;; snmp-mode.el --- SNMP & SNMPv2 MIB major mode
2 2
3;; Copyright (C) 1995, 1998, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 1995, 1998, 2002, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Paul D. Smith <psmith@BayNetworks.com> 5;; Author: Paul D. Smith <psmith@BayNetworks.com>
6;; Keywords: data 6;; Keywords: data
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el
index 40a28494774..94a7b325d0e 100644
--- a/lisp/net/telnet.el
+++ b/lisp/net/telnet.el
@@ -1,6 +1,6 @@
1;;; telnet.el --- run a telnet session from within an Emacs buffer 1;;; telnet.el --- run a telnet session from within an Emacs buffer
2 2
3;; Copyright (C) 1985, 88, 1992, 94, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1985, 88, 1992, 94, 2005 Free Software Foundation, Inc.
4 4
5;; Author: William F. Schelter 5;; Author: William F. Schelter
6;; Maintainer: FSF 6;; Maintainer: FSF
@@ -91,19 +91,19 @@ rejecting one login and prompting again for a username and password.")
91(defun telnet-interrupt-subjob () 91(defun telnet-interrupt-subjob ()
92 "Interrupt the program running through telnet on the remote host." 92 "Interrupt the program running through telnet on the remote host."
93 (interactive) 93 (interactive)
94 (send-string nil telnet-interrupt-string)) 94 (process-send-string nil telnet-interrupt-string))
95 95
96(defun telnet-c-z () 96(defun telnet-c-z ()
97 (interactive) 97 (interactive)
98 (send-string nil "\C-z")) 98 (process-send-string nil "\C-z"))
99 99
100(defun send-process-next-char () 100(defun send-process-next-char ()
101 (interactive) 101 (interactive)
102 (send-string nil 102 (process-send-string nil
103 (char-to-string 103 (char-to-string
104 (let ((inhibit-quit t)) 104 (let ((inhibit-quit t))
105 (prog1 (read-char) 105 (prog1 (read-char)
106 (setq quit-flag nil)))))) 106 (setq quit-flag nil))))))
107 107
108; initialization on first load. 108; initialization on first load.
109(if telnet-mode-map 109(if telnet-mode-map
@@ -141,8 +141,8 @@ rejecting one login and prompting again for a username and password.")
141 ((string-match "passw" string) 141 ((string-match "passw" string)
142 (telnet-filter proc string) 142 (telnet-filter proc string)
143 (setq telnet-count 0) 143 (setq telnet-count 0)
144 (send-string proc (concat (comint-read-noecho "Password: " t) 144 (process-send-string proc (concat (comint-read-noecho "Password: " t)
145 telnet-new-line)) 145 telnet-new-line))
146 (clear-this-command-keys)) 146 (clear-this-command-keys))
147 (t (telnet-check-software-type-initialize string) 147 (t (telnet-check-software-type-initialize string)
148 (telnet-filter proc string) 148 (telnet-filter proc string)
@@ -231,9 +231,9 @@ Normally input is edited in Emacs and sent a line at a time."
231 ;; Don't send the `open' cmd till telnet is ready for it. 231 ;; Don't send the `open' cmd till telnet is ready for it.
232 (accept-process-output process) 232 (accept-process-output process)
233 (erase-buffer) 233 (erase-buffer)
234 (send-string process (concat "open " host 234 (process-send-string process (concat "open " host
235 (if port " " "") (or port "") 235 (if port " " "") (or port "")
236 "\n")) 236 "\n"))
237 (telnet-mode) 237 (telnet-mode)
238 (setq comint-input-sender 'telnet-simple-send) 238 (setq comint-input-sender 'telnet-simple-send)
239 (setq telnet-count telnet-initial-count)))) 239 (setq telnet-count telnet-initial-count))))
diff --git a/lisp/net/tls.el b/lisp/net/tls.el
index fd747387100..2de9362ca07 100644
--- a/lisp/net/tls.el
+++ b/lisp/net/tls.el
@@ -1,6 +1,6 @@
1;;; tls.el --- TLS/SSL support via wrapper around GnuTLS 1;;; tls.el --- TLS/SSL support via wrapper around GnuTLS
2 2
3;; Copyright (C) 1996-1999, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1996-1999, 2003, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Simon Josefsson <simon@josefsson.org> 5;; Author: Simon Josefsson <simon@josefsson.org>
6;; Keywords: comm, tls, gnutls, ssl 6;; Keywords: comm, tls, gnutls, ssl
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el
index 3be891a49f8..496ee926d51 100644
--- a/lisp/net/tramp-ftp.el
+++ b/lisp/net/tramp-ftp.el
@@ -1,6 +1,6 @@
1;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP and EFS -*- coding: iso-8859-1; -*- 1;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP and EFS -*- coding: iso-8859-1; -*-
2 2
3;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Michael Albinus <Michael.Albinus@alcatel.de> 5;; Author: Michael Albinus <Michael.Albinus@alcatel.de>
6;; Keywords: comm, processes 6;; Keywords: comm, processes
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index ebdbc354ec4..c93bdfb8e61 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -1,6 +1,6 @@
1;;; tramp-smb.el --- Tramp access functions for SMB servers -*- coding: iso-8859-1; -*- 1;;; tramp-smb.el --- Tramp access functions for SMB servers -*- coding: iso-8859-1; -*-
2 2
3;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Michael Albinus <michael.albinus@gmx.de> 5;; Author: Michael Albinus <michael.albinus@gmx.de>
6;; Keywords: comm, processes 6;; Keywords: comm, processes
@@ -954,7 +954,7 @@ Domain names in USER and port numbers in HOST are acknowledged."
954 (when port (setq args (append args (list "-p" port)))) 954 (when port (setq args (append args (list "-p" port))))
955 955
956 ; OK, let's go 956 ; OK, let's go
957 (tramp-pre-connection nil tramp-smb-method user host) 957 (tramp-pre-connection nil tramp-smb-method user host tramp-chunksize)
958 (tramp-message 7 "Opening connection for //%s@%s/%s..." 958 (tramp-message 7 "Opening connection for //%s@%s/%s..."
959 user host (or share "")) 959 user host (or share ""))
960 960
diff --git a/lisp/net/tramp-util.el b/lisp/net/tramp-util.el
index 1621c2c818e..eff8130b996 100644
--- a/lisp/net/tramp-util.el
+++ b/lisp/net/tramp-util.el
@@ -1,7 +1,7 @@
1;;; -*- coding: iso-2022-7bit; -*- 1;;; -*- coding: iso-2022-7bit; -*-
2;;; tramp-util.el --- Misc utility functions to use with Tramp 2;;; tramp-util.el --- Misc utility functions to use with Tramp
3 3
4;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
5 5
6;; Author: kai.grossjohann@gmx.net 6;; Author: kai.grossjohann@gmx.net
7;; Keywords: comm, extensions, processes 7;; Keywords: comm, extensions, processes
diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el
index d18af101c48..09dfa7d04a5 100644
--- a/lisp/net/tramp-uu.el
+++ b/lisp/net/tramp-uu.el
@@ -1,7 +1,7 @@
1;;; -*- coding: iso-2022-7bit; -*- 1;;; -*- coding: iso-2022-7bit; -*-
2;;; tramp-uu.el --- uuencode in Lisp 2;;; tramp-uu.el --- uuencode in Lisp
3 3
4;; Copyright (C) 2002, 2004 Free Software Foundation, Inc. 4;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
5 5
6;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> 6;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
7;; Keywords: comm, terminals 7;; Keywords: comm, terminals
diff --git a/lisp/net/tramp-vc.el b/lisp/net/tramp-vc.el
index c58d83504c2..9a281d9d40d 100644
--- a/lisp/net/tramp-vc.el
+++ b/lisp/net/tramp-vc.el
@@ -1,6 +1,6 @@
1;;; tramp-vc.el --- Version control integration for TRAMP.el 1;;; tramp-vc.el --- Version control integration for TRAMP.el
2 2
3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2001, 2002, 2005 by Free Software Foundation, Inc.
4 4
5;; Author: Daniel Pittman <daniel@danann.net> 5;; Author: Daniel Pittman <daniel@danann.net>
6;; Keywords: comm, processes 6;; Keywords: comm, processes
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index bfdf7ed067a..a5ee3c9bc04 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1,7 +1,7 @@
1;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*- 1;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*-
2;;; tramp.el --- Transparent Remote Access, Multiple Protocol 2;;; tramp.el --- Transparent Remote Access, Multiple Protocol
3 3
4;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
5 5
6;; Author: kai.grossjohann@gmx.net 6;; Author: kai.grossjohann@gmx.net
7;; Keywords: comm, processes 7;; Keywords: comm, processes
@@ -1352,7 +1352,9 @@ autocorrect\" to the remote host."
1352 1352
1353;; Chunked sending kluge. We set this to 500 for black-listed constellations 1353;; Chunked sending kluge. We set this to 500 for black-listed constellations
1354;; known to have a bug in `process-send-string'; some ssh connections appear 1354;; known to have a bug in `process-send-string'; some ssh connections appear
1355;; to drop bytes when data is sent too quickly. 1355;; to drop bytes when data is sent too quickly. There is also a connection
1356;; buffer local variable, which is computed depending on remote host properties
1357;; when `tramp-chunksize' is zero or nil.
1356(defcustom tramp-chunksize 1358(defcustom tramp-chunksize
1357 (when (and (not (featurep 'xemacs)) 1359 (when (and (not (featurep 'xemacs))
1358 (memq system-type '(hpux))) 1360 (memq system-type '(hpux)))
@@ -3231,7 +3233,13 @@ This is like `dired-recursive-delete-directory' for tramp files."
3231 (mapconcat #'tramp-shell-quote-argument (cons program arguments) " ")) 3233 (mapconcat #'tramp-shell-quote-argument (cons program arguments) " "))
3232 (tramp-wait-for-output)) 3234 (tramp-wait-for-output))
3233 (unless discard 3235 (unless discard
3234 (insert-buffer (tramp-get-buffer multi-method method user host))) 3236 ;; We cannot use `insert-buffer' because the tramp buffer
3237 ;; changes its contents before insertion due to calling
3238 ;; `expand-file' and alike.
3239 (insert
3240 (with-current-buffer
3241 (tramp-get-buffer multi-method method user host)
3242 (buffer-string))))
3235 (save-excursion 3243 (save-excursion
3236 (prog1 3244 (prog1
3237 (tramp-send-command-and-check multi-method method user host nil) 3245 (tramp-send-command-and-check multi-method method user host nil)
@@ -3360,8 +3368,10 @@ This is like `dired-recursive-delete-directory' for tramp files."
3360 switches 3368 switches
3361 (if wildcard 3369 (if wildcard
3362 localname 3370 localname
3363 (tramp-shell-quote-argument 3371 (if (zerop (length (file-name-nondirectory localname)))
3364 (file-name-nondirectory localname)))))) 3372 ""
3373 (tramp-shell-quote-argument
3374 (file-name-nondirectory localname)))))))
3365 (sit-for 1) ;needed for rsh but not ssh? 3375 (sit-for 1) ;needed for rsh but not ssh?
3366 (tramp-wait-for-output)) 3376 (tramp-wait-for-output))
3367 ;; The following let-binding is used by code that's commented 3377 ;; The following let-binding is used by code that's commented
@@ -3369,8 +3379,13 @@ This is like `dired-recursive-delete-directory' for tramp files."
3369 ;; that the commented-out code is really not needed. Commenting-out 3379 ;; that the commented-out code is really not needed. Commenting-out
3370 ;; happened on 2003-03-13. 3380 ;; happened on 2003-03-13.
3371 (let ((old-pos (point))) 3381 (let ((old-pos (point)))
3372 (insert-buffer-substring 3382 ;; We cannot use `insert-buffer' because the tramp buffer
3373 (tramp-get-buffer multi-method method user host)) 3383 ;; changes its contents before insertion due to calling
3384 ;; `expand-file' and alike.
3385 (insert
3386 (with-current-buffer
3387 (tramp-get-buffer multi-method method user host)
3388 (buffer-string)))
3374 ;; On XEmacs, we want to call (exchange-point-and-mark t), but 3389 ;; On XEmacs, we want to call (exchange-point-and-mark t), but
3375 ;; that doesn't exist on Emacs, so we use this workaround instead. 3390 ;; that doesn't exist on Emacs, so we use this workaround instead.
3376 ;; Since zmacs-region-stays doesn't exist in Emacs, this ought to 3391 ;; Since zmacs-region-stays doesn't exist in Emacs, this ought to
@@ -3561,7 +3576,13 @@ This will break if COMMAND prints a newline, followed by the value of
3561 (unless asynchronous 3576 (unless asynchronous
3562 (tramp-wait-for-output))) 3577 (tramp-wait-for-output)))
3563 (unless asynchronous 3578 (unless asynchronous
3564 (insert-buffer (tramp-get-buffer multi-method method user host))) 3579 ;; We cannot use `insert-buffer' because the tramp buffer
3580 ;; changes its contents before insertion due to calling
3581 ;; `expand-file' and alike.
3582 (insert
3583 (with-current-buffer
3584 (tramp-get-buffer multi-method method user host)
3585 (buffer-string))))
3565 (when error-buffer 3586 (when error-buffer
3566 (save-excursion 3587 (save-excursion
3567 (unless (bufferp error-buffer) 3588 (unless (bufferp error-buffer)
@@ -3571,7 +3592,11 @@ This will break if COMMAND prints a newline, followed by the value of
3571 "cat /tmp/tramp.$$.err") 3592 "cat /tmp/tramp.$$.err")
3572 (tramp-wait-for-output) 3593 (tramp-wait-for-output)
3573 (set-buffer error-buffer) 3594 (set-buffer error-buffer)
3574 (insert-buffer (tramp-get-buffer multi-method method user host)) 3595 ;; Same comment as above
3596 (insert
3597 (with-current-buffer
3598 (tramp-get-buffer multi-method method user host)
3599 (buffer-string)))
3575 (tramp-send-command-and-check 3600 (tramp-send-command-and-check
3576 multi-method method user host "rm -f /tmp/tramp.$$.err"))) 3601 multi-method method user host "rm -f /tmp/tramp.$$.err")))
3577 (save-excursion 3602 (save-excursion
@@ -4834,6 +4859,9 @@ Function may have 0-3 parameters."
4834(defun tramp-set-auto-save () 4859(defun tramp-set-auto-save ()
4835 (when (and (buffer-file-name) 4860 (when (and (buffer-file-name)
4836 (tramp-tramp-file-p (buffer-file-name)) 4861 (tramp-tramp-file-p (buffer-file-name))
4862 ;; ange-ftp has its own auto-save mechanism
4863 (eq (tramp-find-foreign-file-name-handler (buffer-file-name))
4864 'tramp-sh-file-name-handler)
4837 auto-save-default) 4865 auto-save-default)
4838 (auto-save-mode 1))) 4866 (auto-save-mode 1)))
4839(add-hook 'find-file-hooks 'tramp-set-auto-save t) 4867(add-hook 'find-file-hooks 'tramp-set-auto-save t)
@@ -5417,7 +5445,7 @@ Maybe the different regular expressions need to be tuned.
5417 method)) 5445 method))
5418 (when multi-method 5446 (when multi-method
5419 (error "Cannot multi-connect using telnet connection method")) 5447 (error "Cannot multi-connect using telnet connection method"))
5420 (tramp-pre-connection multi-method method user host) 5448 (tramp-pre-connection multi-method method user host tramp-chunksize)
5421 (tramp-message 7 "Opening connection for %s@%s using %s..." 5449 (tramp-message 7 "Opening connection for %s@%s using %s..."
5422 (or user (user-login-name)) host method) 5450 (or user (user-login-name)) host method)
5423 (let ((process-environment (copy-sequence process-environment))) 5451 (let ((process-environment (copy-sequence process-environment)))
@@ -5475,7 +5503,7 @@ arguments, and xx will be used as the host name to connect to.
5475 (save-match-data 5503 (save-match-data
5476 (when multi-method 5504 (when multi-method
5477 (error "Cannot multi-connect using rsh connection method")) 5505 (error "Cannot multi-connect using rsh connection method"))
5478 (tramp-pre-connection multi-method method user host) 5506 (tramp-pre-connection multi-method method user host tramp-chunksize)
5479 (if (and user (not (string= user ""))) 5507 (if (and user (not (string= user "")))
5480 (tramp-message 7 "Opening connection for %s@%s using %s..." 5508 (tramp-message 7 "Opening connection for %s@%s using %s..."
5481 user host method) 5509 user host method)
@@ -5544,7 +5572,7 @@ prompt than you do, so it is not at all unlikely that the variable
5544 (error 5572 (error
5545 "Cannot connect to different host `%s' with `su' connection method" 5573 "Cannot connect to different host `%s' with `su' connection method"
5546 host)) 5574 host))
5547 (tramp-pre-connection multi-method method user host) 5575 (tramp-pre-connection multi-method method user host tramp-chunksize)
5548 (tramp-message 7 "Opening connection for `%s' using `%s'..." 5576 (tramp-message 7 "Opening connection for `%s' using `%s'..."
5549 (or user "<root>") method) 5577 (or user "<root>") method)
5550 (let ((process-environment (copy-sequence process-environment))) 5578 (let ((process-environment (copy-sequence process-environment)))
@@ -5609,7 +5637,7 @@ log in as u2 to h2."
5609 (unless (and (= (length method) (length user)) 5637 (unless (and (= (length method) (length user))
5610 (= (length method) (length host))) 5638 (= (length method) (length host)))
5611 (error "Arrays METHOD, USER, HOST must have equal length")) 5639 (error "Arrays METHOD, USER, HOST must have equal length"))
5612 (tramp-pre-connection multi-method method user host) 5640 (tramp-pre-connection multi-method method user host tramp-chunksize)
5613 (tramp-message 7 "Opening `%s' connection..." multi-method) 5641 (tramp-message 7 "Opening `%s' connection..." multi-method)
5614 (let ((process-environment (copy-sequence process-environment))) 5642 (let ((process-environment (copy-sequence process-environment)))
5615 (setenv "TERM" tramp-terminal-type) 5643 (setenv "TERM" tramp-terminal-type)
@@ -5810,7 +5838,7 @@ Uses PROMPT as a prompt and sends the password to process P."
5810;; HHH: Not Changed. This might handle the case where USER is not 5838;; HHH: Not Changed. This might handle the case where USER is not
5811;; given in the "File name" very poorly. Then, the local 5839;; given in the "File name" very poorly. Then, the local
5812;; variable tramp-current-user will be set to nil. 5840;; variable tramp-current-user will be set to nil.
5813(defun tramp-pre-connection (multi-method method user host) 5841(defun tramp-pre-connection (multi-method method user host chunksize)
5814 "Do some setup before actually logging in. 5842 "Do some setup before actually logging in.
5815METHOD, USER and HOST specify the connection." 5843METHOD, USER and HOST specify the connection."
5816 (set-buffer (tramp-get-buffer multi-method method user host)) 5844 (set-buffer (tramp-get-buffer multi-method method user host))
@@ -5818,6 +5846,7 @@ METHOD, USER and HOST specify the connection."
5818 (set (make-local-variable 'tramp-current-method) method) 5846 (set (make-local-variable 'tramp-current-method) method)
5819 (set (make-local-variable 'tramp-current-user) user) 5847 (set (make-local-variable 'tramp-current-user) user)
5820 (set (make-local-variable 'tramp-current-host) host) 5848 (set (make-local-variable 'tramp-current-host) host)
5849 (set (make-local-variable 'tramp-chunksize) chunksize)
5821 (set (make-local-variable 'inhibit-eol-conversion) nil) 5850 (set (make-local-variable 'inhibit-eol-conversion) nil)
5822 (erase-buffer)) 5851 (erase-buffer))
5823 5852
@@ -5869,6 +5898,20 @@ to set up. METHOD, USER and HOST specify the connection."
5869 (erase-buffer) 5898 (erase-buffer)
5870 (tramp-send-command-internal multi-method method user host 5899 (tramp-send-command-internal multi-method method user host
5871 "TERM=dumb; export TERM") 5900 "TERM=dumb; export TERM")
5901 (erase-buffer)
5902 ;; Check whether the remote host suffers from buggy `send-process-string'.
5903 ;; This is known for FreeBSD (see comment in `send_process', file process.c).
5904 ;; I've tested sending 624 bytes successfully, sending 625 bytes failed.
5905 ;; Emacs makes a hack when this host type is detected locally. It cannot
5906 ;; handle remote hosts, though.
5907 (when (or (not tramp-chunksize) (zerop tramp-chunksize))
5908 (tramp-message 9 "Checking remote host type for `send-process-string' bug")
5909 (tramp-send-command-internal multi-method method user host
5910 "(uname -sr) 2>/dev/null")
5911 (goto-char (point-min))
5912 (when (looking-at "FreeBSD")
5913 (setq tramp-chunksize 500)))
5914
5872 ;; Try to set up the coding system correctly. 5915 ;; Try to set up the coding system correctly.
5873 ;; CCC this can't be the right way to do it. Hm. 5916 ;; CCC this can't be the right way to do it. Hm.
5874 (save-excursion 5917 (save-excursion
@@ -6948,7 +6991,8 @@ as default."
6948 ;; Permissions should be set always, because there might be an old 6991 ;; Permissions should be set always, because there might be an old
6949 ;; auto-saved file belonging to another original file. This could 6992 ;; auto-saved file belonging to another original file. This could
6950 ;; be a security threat. 6993 ;; be a security threat.
6951 (set-file-modes buffer-auto-save-file-name (file-modes bfn))))) 6994 (set-file-modes buffer-auto-save-file-name
6995 (or (file-modes bfn) ?\600)))))
6952 6996
6953(unless (or (> emacs-major-version 21) 6997(unless (or (> emacs-major-version 21)
6954 (and (featurep 'xemacs) 6998 (and (featurep 'xemacs)
@@ -7226,7 +7270,6 @@ Only works for Bourne-like shells."
7226 tramp-yesno-prompt-regexp 7270 tramp-yesno-prompt-regexp
7227 tramp-yn-prompt-regexp 7271 tramp-yn-prompt-regexp
7228 tramp-terminal-prompt-regexp 7272 tramp-terminal-prompt-regexp
7229 tramp-out-of-band-prompt-regexp
7230 tramp-temp-name-prefix 7273 tramp-temp-name-prefix
7231 tramp-file-name-structure 7274 tramp-file-name-structure
7232 tramp-file-name-regexp 7275 tramp-file-name-regexp
@@ -7286,31 +7329,44 @@ report.
7286(defun tramp-append-tramp-buffers () 7329(defun tramp-append-tramp-buffers ()
7287 "Append Tramp buffers into the bug report." 7330 "Append Tramp buffers into the bug report."
7288 7331
7289 ;; We load mml.el from Gnus. 7332 ;; We load message.el and mml.el from Gnus.
7290 (if (featurep 'xemacs) 7333 (if (featurep 'xemacs)
7291 (load "mml" 'noerror) 7334 (progn
7335 (load "message" 'noerror)
7336 (load "mml" 'noerror))
7337 (require 'message nil 'noerror)
7292 (require 'mml nil 'noerror)) 7338 (require 'mml nil 'noerror))
7339 (when (functionp 'message-mode)
7340 (funcall 'message-mode))
7341 (when (functionp 'mml-mode)
7342 (funcall 'mml-mode t))
7293 7343
7294 (when (and 7344 (when (and
7295 ;; We don't want to add another dependency. 7345 (eq major-mode 'message-mode)
7296 (functionp 'mml-insert-empty-tag) 7346 (boundp 'mml-mode)
7297 ;; 2nd parameter since Emacs 22. 7347 (symbol-value 'mml-mode))
7298 (condition-case nil 7348
7299 (list-buffers-noselect nil nil) 7349 (let* ((tramp-buf-regexp "\\*\\(debug \\)?tramp/")
7300 (t nil))) 7350 (buffer-list
7301 (let ((buffer-list 7351 (delq nil
7302 (delq nil 7352 (mapcar '(lambda (b)
7303 (mapcar '(lambda (b) 7353 (when (string-match tramp-buf-regexp (buffer-name b)) b))
7304 (when (string-match "^\\*\\(debug \\)?tramp/" (buffer-name b)) b)) 7354 (buffer-list))))
7305 (buffer-list)))) 7355 (curbuf (current-buffer)))
7306 (curbuf (current-buffer)))
7307 7356
7308 ;; There is at least one Tramp buffer. 7357 ;; There is at least one Tramp buffer.
7309 (when buffer-list 7358 (when buffer-list
7310 (switch-to-buffer (list-buffers-noselect nil buffer-list)) 7359 (switch-to-buffer (list-buffers-noselect nil))
7311 (delete-other-windows) 7360 (delete-other-windows)
7312 (setq buffer-read-only nil) 7361 (setq buffer-read-only nil)
7313 (goto-char (point-max)) 7362 (goto-char (point-min))
7363 (while (not (eobp))
7364 (if (re-search-forward tramp-buf-regexp (tramp-point-at-eol) t)
7365 (forward-line 1)
7366 (forward-line 0)
7367 (let ((start (point)))
7368 (forward-line 1)
7369 (kill-region start (point)))))
7314 (insert " 7370 (insert "
7315The buffer(s) above will be appended to this message. If you don't want 7371The buffer(s) above will be appended to this message. If you don't want
7316to append a buffer because it contains sensible data, or because the buffer 7372to append a buffer because it contains sensible data, or because the buffer
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index 12e56600f00..c8ef71eb9f3 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -2,7 +2,7 @@
2;;; trampver.el --- Transparent Remote Access, Multiple Protocol 2;;; trampver.el --- Transparent Remote Access, Multiple Protocol
3;;; lisp/trampver.el. Generated from trampver.el.in by configure. 3;;; lisp/trampver.el. Generated from trampver.el.in by configure.
4 4
5;; Copyright (C) 2003 Free Software Foundation, Inc. 5;; Copyright (C) 2003, 2005 Free Software Foundation, Inc.
6 6
7;; Author: Kai.Grossjohann@CS.Uni-Dortmund.DE 7;; Author: Kai.Grossjohann@CS.Uni-Dortmund.DE
8;; Keywords: comm, processes 8;; Keywords: comm, processes
@@ -30,7 +30,7 @@
30;; are auto-frobbed from configure.ac, so you should edit that file and run 30;; are auto-frobbed from configure.ac, so you should edit that file and run
31;; "autoconf && ./configure" to change them. 31;; "autoconf && ./configure" to change them.
32 32
33(defconst tramp-version "2.0.48" 33(defconst tramp-version "2.0.49"
34 "This version of Tramp.") 34 "This version of Tramp.")
35 35
36(defconst tramp-bug-report-address "tramp-devel@gnu.org" 36(defconst tramp-bug-report-address "tramp-devel@gnu.org"
diff --git a/lisp/net/webjump.el b/lisp/net/webjump.el
index 0fc47fafa85..23c54d5a09f 100644
--- a/lisp/net/webjump.el
+++ b/lisp/net/webjump.el
@@ -1,6 +1,6 @@
1;;; webjump.el --- programmable Web hotlist 1;;; webjump.el --- programmable Web hotlist
2 2
3;; Copyright (C) 1996, 1997, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Neil W. Van Dyke <nwv@acm.org> 5;; Author: Neil W. Van Dyke <nwv@acm.org>
6;; Created: 09-Aug-1996 6;; Created: 09-Aug-1996
diff --git a/lisp/net/zone-mode.el b/lisp/net/zone-mode.el
index 6b4d22f9b13..c7999616375 100644
--- a/lisp/net/zone-mode.el
+++ b/lisp/net/zone-mode.el
@@ -1,6 +1,6 @@
1;;; zone-mode.el --- major mode for editing DNS zone files 1;;; zone-mode.el --- major mode for editing DNS zone files
2 2
3;; Copyright (C) 1998 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 2005 Free Software Foundation, Inc.
4 4
5;; Author: John Heidemann <johnh@isi.edu> 5;; Author: John Heidemann <johnh@isi.edu>
6;; Keywords: DNS, languages 6;; Keywords: DNS, languages
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 5a7b7666e89..59044da6ef9 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -90,7 +90,8 @@ Major modes should set this variable.")
90 90
91(defcustom comment-fill-column nil 91(defcustom comment-fill-column nil
92 "Column to use for `comment-indent'. If nil, use `fill-column' instead." 92 "Column to use for `comment-indent'. If nil, use `fill-column' instead."
93 :type '(choice (const nil) integer)) 93 :type '(choice (const nil) integer)
94 :group 'comment)
94 95
95;;;###autoload 96;;;###autoload
96(defcustom comment-column 32 97(defcustom comment-column 32
@@ -99,7 +100,8 @@ Each mode establishes a different default value for this variable; you
99can set the value for a particular mode using that mode's hook. 100can set the value for a particular mode using that mode's hook.
100Comments might be indented to a value smaller than this in order 101Comments might be indented to a value smaller than this in order
101not to go beyond `comment-fill-column'." 102not to go beyond `comment-fill-column'."
102 :type 'integer) 103 :type 'integer
104 :group 'comment)
103(make-variable-buffer-local 'comment-column) 105(make-variable-buffer-local 'comment-column)
104 106
105;;;###autoload 107;;;###autoload
@@ -201,7 +203,8 @@ INDENT specifies that the `comment-start' markers should not be put at the
201See `comment-styles' for a list of available styles." 203See `comment-styles' for a list of available styles."
202 :type (if (boundp 'comment-styles) 204 :type (if (boundp 'comment-styles)
203 `(choice ,@(mapcar (lambda (s) `(const ,(car s))) comment-styles)) 205 `(choice ,@(mapcar (lambda (s) `(const ,(car s))) comment-styles))
204 'symbol)) 206 'symbol)
207 :group 'comment)
205 208
206;;;###autoload 209;;;###autoload
207(defcustom comment-padding " " 210(defcustom comment-padding " "
@@ -211,7 +214,8 @@ of the corresponding number of spaces.
211 214
212Extra spacing between the comment characters and the comment text 215Extra spacing between the comment characters and the comment text
213makes the comment easier to read. Default is 1. nil means 0." 216makes the comment easier to read. Default is 1. nil means 0."
214 :type '(choice string integer (const nil))) 217 :type '(choice string integer (const nil))
218 :group 'comment)
215 219
216;;;###autoload 220;;;###autoload
217(defcustom comment-multi-line nil 221(defcustom comment-multi-line nil
@@ -222,7 +226,8 @@ customize this variable.
222 226
223It also affects \\[indent-new-comment-line]. However, if you want this 227It also affects \\[indent-new-comment-line]. However, if you want this
224behavior for explicit filling, you might as well use \\[newline-and-indent]." 228behavior for explicit filling, you might as well use \\[newline-and-indent]."
225 :type 'boolean) 229 :type 'boolean
230 :group 'comment)
226 231
227(defcustom comment-empty-lines nil 232(defcustom comment-empty-lines nil
228 "If nil, `comment-region' does not comment out empty lines. 233 "If nil, `comment-region' does not comment out empty lines.
@@ -231,7 +236,8 @@ if `eol' it only comments out empty lines if comments are
231terminated by the end of line (i.e. `comment-end' is empty)." 236terminated by the end of line (i.e. `comment-end' is empty)."
232 :type '(choice (const :tag "Never" nil) 237 :type '(choice (const :tag "Never" nil)
233 (const :tag "Always" t) 238 (const :tag "Always" t)
234 (const :tag "EOl-terminated" 'eol))) 239 (const :tag "EOl-terminated" 'eol))
240 :group 'comment)
235 241
236;;;; 242;;;;
237;;;; Helpers 243;;;; Helpers
@@ -1091,7 +1097,8 @@ Else, call `comment-indent'."
1091(defcustom comment-auto-fill-only-comments nil 1097(defcustom comment-auto-fill-only-comments nil
1092 "Non-nil means to only auto-fill inside comments. 1098 "Non-nil means to only auto-fill inside comments.
1093This has no effect in modes that do not define a comment syntax." 1099This has no effect in modes that do not define a comment syntax."
1094 :type 'boolean) 1100 :type 'boolean
1101 :group 'comment)
1095 1102
1096(defun comment-valid-prefix-p (prefix compos) 1103(defun comment-valid-prefix-p (prefix compos)
1097 (or 1104 (or
diff --git a/lisp/obsolete/rsz-mini.el b/lisp/obsolete/rsz-mini.el
index d44a88df801..a90cb625dc5 100644
--- a/lisp/obsolete/rsz-mini.el
+++ b/lisp/obsolete/rsz-mini.el
@@ -63,7 +63,8 @@
63 63
64;;;###autoload 64;;;###autoload
65(defcustom resize-minibuffer-frame-max-height nil 65(defcustom resize-minibuffer-frame-max-height nil
66 "*This variable is obsolete.") 66 "*This variable is obsolete."
67 :group 'resize-minibuffer)
67 68
68;;;###autoload 69;;;###autoload
69(defcustom resize-minibuffer-frame-exactly t 70(defcustom resize-minibuffer-frame-exactly t
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el
index f79ded4955e..abab58d6018 100644
--- a/lisp/play/gametree.el
+++ b/lisp/play/gametree.el
@@ -204,12 +204,12 @@ should be no leading white space."
204 gametree-half-ply-regexp "\\)")) 204 gametree-half-ply-regexp "\\)"))
205 (limit (save-excursion (beginning-of-line 1) (point)))) 205 (limit (save-excursion (beginning-of-line 1) (point))))
206 (if (looking-at boundary) 206 (if (looking-at boundary)
207 (+ (* 2 (string-to-int (match-string 1))) 207 (+ (* 2 (string-to-number (match-string 1)))
208 (if (string-match gametree-half-ply-regexp (match-string 2)) 1 0)) 208 (if (string-match gametree-half-ply-regexp (match-string 2)) 1 0))
209 (save-excursion 209 (save-excursion
210 (re-search-backward boundary limit) 210 (re-search-backward boundary limit)
211 (skip-chars-backward "0123456789") 211 (skip-chars-backward "0123456789")
212 (1+ (* 2 (string-to-int 212 (1+ (* 2 (string-to-number
213 (buffer-substring (point) (match-end 1)))))))))) 213 (buffer-substring (point) (match-end 1))))))))))
214 214
215(defun gametree-current-branch-ply () 215(defun gametree-current-branch-ply ()
@@ -345,7 +345,7 @@ This value is simply the outline heading level of the current line."
345 "Return score of current variation according to its score tag. 345 "Return score of current variation according to its score tag.
346When no score tag is present, use the value of `gametree-default-score'." 346When no score tag is present, use the value of `gametree-default-score'."
347 (if (looking-at gametree-score-regexp) 347 (if (looking-at gametree-score-regexp)
348 (string-to-int (match-string 3)) 348 (string-to-number (match-string 3))
349 gametree-default-score)) 349 gametree-default-score))
350 350
351(defun gametree-compute-reduced-score () 351(defun gametree-compute-reduced-score ()
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index e7eb0657eac..8dba21afe9b 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -672,7 +672,7 @@ file. If none is set, return nil."
672 (not (integerp choice)) 672 (not (integerp choice))
673 (< choice 1) 673 (< choice 1)
674 (> choice (length prj-files))) 674 (> choice (length prj-files)))
675 (setq choice (string-to-int 675 (setq choice (string-to-number
676 (read-from-minibuffer "Enter No. of your choice: ")))) 676 (read-from-minibuffer "Enter No. of your choice: "))))
677 (set 'selected (nth (1- choice) prj-files)))) 677 (set 'selected (nth (1- choice) prj-files))))
678 678
@@ -1800,7 +1800,7 @@ This function is disabled for operators, and only works for identifiers."
1800 (< choice 1) 1800 (< choice 1)
1801 (> choice len)) 1801 (> choice len))
1802 (setq choice 1802 (setq choice
1803 (string-to-int 1803 (string-to-number
1804 (read-from-minibuffer "Enter No. of your choice: ")))) 1804 (read-from-minibuffer "Enter No. of your choice: "))))
1805 ) 1805 )
1806 (set-buffer ali-buffer) 1806 (set-buffer ali-buffer)
@@ -1988,7 +1988,7 @@ is using."
1988 (< choice 1) 1988 (< choice 1)
1989 (> choice (length list))) 1989 (> choice (length list)))
1990 (setq choice 1990 (setq choice
1991 (string-to-int 1991 (string-to-number
1992 (read-from-minibuffer "Enter No. of your choice: ")))) 1992 (read-from-minibuffer "Enter No. of your choice: "))))
1993 ) 1993 )
1994 (set 'choice (1- choice)) 1994 (set 'choice (1- choice))
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index 1a35fe41860..03587577f59 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -785,6 +785,7 @@ bound to `antlr-language'. For example, with value
785 \((java-mode \. 2) (c++-mode \. 0)) 785 \((java-mode \. 2) (c++-mode \. 0))
786Java actions are fontified with level 2 and C++ actions are not 786Java actions are fontified with level 2 and C++ actions are not
787fontified at all." 787fontified at all."
788 :group 'antlr
788 :type '(choice (const :tag "None" none) 789 :type '(choice (const :tag "None" none)
789 (const :tag "Inherit" inherit) 790 (const :tag "Inherit" inherit)
790 (const :tag "Default" nil) 791 (const :tag "Default" nil)
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index ea36064412f..0a4cb6c8cd6 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -335,7 +335,8 @@ This function does not do any hidden buffer changes."
335;; locking is in use. This variable is extended with the face in 335;; locking is in use. This variable is extended with the face in
336;; `c-doc-face-name' when fontification is activated in cc-fonts.el. 336;; `c-doc-face-name' when fontification is activated in cc-fonts.el.
337(defvar c-literal-faces 337(defvar c-literal-faces
338 '(font-lock-comment-face font-lock-string-face)) 338 '(font-lock-comment-face font-lock-string-face
339 font-lock-comment-delimiter-face))
339 340
340(defun c-shift-line-indentation (shift-amt) 341(defun c-shift-line-indentation (shift-amt)
341 ;; This function does not do any hidden buffer changes. 342 ;; This function does not do any hidden buffer changes.
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 74efef4133f..26c0bdaf60f 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -673,7 +673,7 @@ casts and declarations are fontified. Used on level 2 and higher."
673 (c-font-lock-objc-iip-decl))) 673 (c-font-lock-objc-iip-decl)))
674 nil)))))) 674 nil))))))
675 675
676 ("!" . font-lock-negation-char-face) 676 ("\\(!\\)[^=]" 1 font-lock-negation-char-face)
677 )) 677 ))
678 678
679(defun c-font-lock-complex-decl-prepare (limit) 679(defun c-font-lock-complex-decl-prepare (limit)
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index f5180b1fb48..ad43228a100 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -119,6 +119,10 @@ nil means compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.")
119It is called with two arguments: the compilation buffer, and a string 119It is called with two arguments: the compilation buffer, and a string
120describing how the process finished.") 120describing how the process finished.")
121 121
122(make-obsolete-variable 'compilation-finish-function
123 "Use `compilation-finish-functions', but it works a little differently."
124 "22.1")
125
122;;;###autoload 126;;;###autoload
123(defvar compilation-finish-functions nil 127(defvar compilation-finish-functions nil
124 "Functions to call when a compilation process finishes. 128 "Functions to call when a compilation process finishes.
@@ -1247,8 +1251,7 @@ Optional argument MINOR indicates this is called from
1247 (make-local-variable 'compilation-messages-start) 1251 (make-local-variable 'compilation-messages-start)
1248 (make-local-variable 'compilation-error-screen-columns) 1252 (make-local-variable 'compilation-error-screen-columns)
1249 (make-local-variable 'overlay-arrow-position) 1253 (make-local-variable 'overlay-arrow-position)
1250 (set (make-local-variable 'overlay-arrow-string) 1254 (set (make-local-variable 'overlay-arrow-string) "")
1251 (if (display-graphic-p) "=>" ""))
1252 (setq next-error-overlay-arrow-position nil) 1255 (setq next-error-overlay-arrow-position nil)
1253 (add-hook 'kill-buffer-hook 1256 (add-hook 'kill-buffer-hook
1254 (lambda () (setq next-error-overlay-arrow-position nil)) nil t) 1257 (lambda () (setq next-error-overlay-arrow-position nil)) nil t)
@@ -1575,9 +1578,12 @@ region and the first line of the next region."
1575 (setcdr loc (list line file marker))) 1578 (setcdr loc (list line file marker)))
1576 loc)) 1579 loc))
1577 1580
1578(defcustom compilation-context-lines 0 1581(defcustom compilation-context-lines nil
1579 "*Display this many lines of leading context before message. 1582 "Display this many lines of leading context before the current message.
1580If nil, don't scroll the compilation output window." 1583If nil and the left fringe is displayed, don't scroll the
1584compilation output window; an arrow in the left fringe points to
1585the current message. If nil and there is no left fringe, the message
1586displays at the top of the window; there is no arrow."
1581 :type '(choice integer (const :tag "No window scrolling" nil)) 1587 :type '(choice integer (const :tag "No window scrolling" nil))
1582 :group 'compilation 1588 :group 'compilation
1583 :version "22.1") 1589 :version "22.1")
@@ -1586,10 +1592,17 @@ If nil, don't scroll the compilation output window."
1586 "Align the compilation output window W with marker MK near top." 1592 "Align the compilation output window W with marker MK near top."
1587 (if (integerp compilation-context-lines) 1593 (if (integerp compilation-context-lines)
1588 (set-window-start w (save-excursion 1594 (set-window-start w (save-excursion
1589 (goto-char mk) 1595 (goto-char mk)
1590 (beginning-of-line (- 1 compilation-context-lines)) 1596 (beginning-of-line
1591 (point)))) 1597 (- 1 compilation-context-lines))
1592 (set-window-point w mk)) 1598 (point)))
1599 ;; If there is no left fringe.
1600 (if (equal (car (window-fringes)) 0)
1601 (set-window-start w (save-excursion
1602 (goto-char mk)
1603 (beginning-of-line 1)
1604 (point)))))
1605 (set-window-point w mk))
1593 1606
1594(defvar next-error-highlight-timer) 1607(defvar next-error-highlight-timer)
1595 1608
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index e32a43ede9e..436bc04d044 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -120,7 +120,7 @@
120 ;; Probably will not work due to some save-excursion??? 120 ;; Probably will not work due to some save-excursion???
121 ;; Or save-file-position? 121 ;; Or save-file-position?
122 ;; (message "Did I get to line %s?" (elt (, elt) 1)) 122 ;; (message "Did I get to line %s?" (elt (, elt) 1))
123 `(goto-line (string-to-int (elt ,elt 1)))) 123 `(goto-line (string-to-number (elt ,elt 1))))
124 ;;) 124 ;;)
125 (defmacro cperl-etags-goto-tag-location (elt) 125 (defmacro cperl-etags-goto-tag-location (elt)
126 `(etags-goto-tag-location ,elt)))) 126 `(etags-goto-tag-location ,elt))))
diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el
index 4ebbc549697..8d3ee554026 100644
--- a/lisp/progmodes/delphi.el
+++ b/lisp/progmodes/delphi.el
@@ -1530,7 +1530,7 @@ before the indent, the point is moved to the indent."
1530 (save-selected-window 1530 (save-selected-window
1531 (switch-to-buffer-other-window to-buffer) 1531 (switch-to-buffer-other-window to-buffer)
1532 (goto-char (point-max)) 1532 (goto-char (point-max))
1533 (set-window-dot (get-buffer-window to-buffer) (point)) 1533 (set-window-point (get-buffer-window to-buffer) (point))
1534 (insert the-msg)))) 1534 (insert the-msg))))
1535 1535
1536;; Debugging helpers: 1536;; Debugging helpers:
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 457c00d9008..6dd15897e7b 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -1448,10 +1448,10 @@ Pop to member buffer if no prefix ARG, to tree buffer otherwise."
1448(defun ebrowse-set-tree-indentation () 1448(defun ebrowse-set-tree-indentation ()
1449 "Set the indentation width of the tree display." 1449 "Set the indentation width of the tree display."
1450 (interactive) 1450 (interactive)
1451 (let ((width (string-to-int (read-from-minibuffer 1451 (let ((width (string-to-number (read-from-minibuffer
1452 (concat "Indentation (" 1452 (concat "Indentation ("
1453 (int-to-string ebrowse--indentation) 1453 (int-to-string ebrowse--indentation)
1454 "): "))))) 1454 "): ")))))
1455 (when (plusp width) 1455 (when (plusp width)
1456 (setf ebrowse--indentation width) 1456 (setf ebrowse--indentation width)
1457 (ebrowse-redraw-tree)))) 1457 (ebrowse-redraw-tree))))
@@ -2329,7 +2329,7 @@ With prefix ARG, switch to the tree buffer else pop to it."
2329 "Set the column width of the member display. 2329 "Set the column width of the member display.
2330The new width is read from the minibuffer." 2330The new width is read from the minibuffer."
2331 (interactive) 2331 (interactive)
2332 (let ((width (string-to-int 2332 (let ((width (string-to-number
2333 (read-from-minibuffer 2333 (read-from-minibuffer
2334 (concat "Column width (" 2334 (concat "Column width ("
2335 (int-to-string (if ebrowse--long-display-flag 2335 (int-to-string (if ebrowse--long-display-flag
@@ -4313,7 +4313,7 @@ NUMBER-OF-STATIC-VARIABLES:"
4313 "Select the nth entry in the list by the keys 1..9." 4313 "Select the nth entry in the list by the keys 1..9."
4314 (interactive) 4314 (interactive)
4315 (let* ((maxlin (count-lines (point-min) (point-max))) 4315 (let* ((maxlin (count-lines (point-min) (point-max)))
4316 (n (min maxlin (+ 2 (string-to-int (this-command-keys)))))) 4316 (n (min maxlin (+ 2 (string-to-number (this-command-keys))))))
4317 (goto-line n) 4317 (goto-line n)
4318 (throw 'electric-buffer-menu-select (point)))) 4318 (throw 'electric-buffer-menu-select (point))))
4319 4319
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 0569d26db61..32ede0e1474 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1283,16 +1283,16 @@ where they were found."
1283 1283
1284 1284
1285 (if (looking-at "[0-9]") 1285 (if (looking-at "[0-9]")
1286 (setq line (string-to-int (buffer-substring 1286 (setq line (string-to-number (buffer-substring
1287 (point) 1287 (point)
1288 (progn (skip-chars-forward "0-9") 1288 (progn (skip-chars-forward "0-9")
1289 (point)))))) 1289 (point))))))
1290 (search-forward ",") 1290 (search-forward ",")
1291 (if (looking-at "[0-9]") 1291 (if (looking-at "[0-9]")
1292 (setq startpos (string-to-int (buffer-substring 1292 (setq startpos (string-to-number (buffer-substring
1293 (point) 1293 (point)
1294 (progn (skip-chars-forward "0-9") 1294 (progn (skip-chars-forward "0-9")
1295 (point))))))) 1295 (point)))))))
1296 ;; Leave point on the next line of the tags file. 1296 ;; Leave point on the next line of the tags file.
1297 (forward-line 1) 1297 (forward-line 1)
1298 (cons tag-text (cons line startpos)))) 1298 (cons tag-text (cons line startpos))))
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index a2fa660bff0..5463ee3ffa9 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -1004,7 +1004,7 @@ Return its components if so, nil if no."
1004 (line-idx (nth 2 (car patterns)))) 1004 (line-idx (nth 2 (car patterns))))
1005 1005
1006 (setq raw-file-name (if file-idx (match-string file-idx line) nil)) 1006 (setq raw-file-name (if file-idx (match-string file-idx line) nil))
1007 (setq line-no (if line-idx (string-to-int (match-string line-idx line)) 0)) 1007 (setq line-no (if line-idx (string-to-number (match-string line-idx line)) 0))
1008 (setq err-text (if (> (length (car patterns)) 4) 1008 (setq err-text (if (> (length (car patterns)) 4)
1009 (match-string (nth 4 (car patterns)) line) 1009 (match-string (nth 4 (car patterns)) line)
1010 (flymake-patch-err-text (substring line (match-end 0))))) 1010 (flymake-patch-err-text (substring line (match-end 0)))))
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 5c81ba7f6f9..4c95fc65d58 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -3215,7 +3215,7 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.")
3215 (add-hook 'tooltip-hook 'gud-tooltip-tips) 3215 (add-hook 'tooltip-hook 'gud-tooltip-tips)
3216 (define-key global-map [mouse-movement] 'gud-tooltip-mouse-motion)) 3216 (define-key global-map [mouse-movement] 'gud-tooltip-mouse-motion))
3217 (unless tooltip-mode (remove-hook 'pre-command-hook 'tooltip-hide) 3217 (unless tooltip-mode (remove-hook 'pre-command-hook 'tooltip-hide)
3218 (remove-hook 'change-major-mode-hook 'tooltip-change-major-mode) 3218 (remove-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode)
3219 (remove-hook 'tooltip-hook 'gud-tooltip-tips) 3219 (remove-hook 'tooltip-hook 'gud-tooltip-tips)
3220 (define-key global-map [mouse-movement] 'ignore))) 3220 (define-key global-map [mouse-movement] 'ignore)))
3221 (gud-tooltip-activate-mouse-motions-if-enabled) 3221 (gud-tooltip-activate-mouse-motions-if-enabled)
@@ -3253,7 +3253,7 @@ If GUD-TOOLTIP-DEREFERENCE is t, also prepend a `*' to EXPR."
3253 (when gud-tooltip-dereference 3253 (when gud-tooltip-dereference
3254 (setq expr (concat "*" expr))) 3254 (setq expr (concat "*" expr)))
3255 (case gud-minor-mode 3255 (case gud-minor-mode
3256 ((gdb gdba) (concat "server print " expr)) 3256 (gdba (concat "server print " expr))
3257 ((dbx gdbmi) (concat "print " expr)) 3257 ((dbx gdbmi) (concat "print " expr))
3258 (xdb (concat "p " expr)) 3258 (xdb (concat "p " expr))
3259 (sdb (concat expr "/")) 3259 (sdb (concat expr "/"))
@@ -3293,6 +3293,10 @@ This function must return nil if it doesn't handle EVENT."
3293 (tooltip-show (cdr define-elt)) 3293 (tooltip-show (cdr define-elt))
3294 expr)))) 3294 expr))))
3295 (let ((cmd (gud-tooltip-print-command expr))) 3295 (let ((cmd (gud-tooltip-print-command expr)))
3296 (when (and gud-tooltip-mode (eq gud-minor-mode 'gdb))
3297 (gud-tooltip-mode -1)
3298 (message-box "Using GUD tooltips in this mode is unsafe\n\
3299so they have been disabled."))
3296 (unless (null cmd) ; CMD can be nil if unknown debugger 3300 (unless (null cmd) ; CMD can be nil if unknown debugger
3297 (if (memq gud-minor-mode '(gdba gdbmi)) 3301 (if (memq gud-minor-mode '(gdba gdbmi))
3298 (if gdb-macro-info 3302 (if gdb-macro-info
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 221a6f4aebb..77244819f1b 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -45,7 +45,7 @@
45;; 45;;
46;; INSTALLATION: 46;; INSTALLATION:
47;; ============= 47;; =============
48;; 48;;
49;; Follow the instructions in the INSTALL file of the distribution. 49;; Follow the instructions in the INSTALL file of the distribution.
50;; In short, put this file on your load path and add the following 50;; In short, put this file on your load path and add the following
51;; lines to your .emacs file: 51;; lines to your .emacs file:
@@ -58,9 +58,9 @@
58;; 58;;
59;; The newest version of this file can be found on the maintainers 59;; The newest version of this file can be found on the maintainers
60;; web site. 60;; web site.
61;; 61;;
62;; http://idlwave.org 62;; http://idlwave.org
63;; 63;;
64;; DOCUMENTATION 64;; DOCUMENTATION
65;; ============= 65;; =============
66;; 66;;
@@ -77,7 +77,7 @@
77;; it is a bug in XEmacs. 77;; it is a bug in XEmacs.
78;; The Debug menu in source buffers *does* display the bindings correctly. 78;; The Debug menu in source buffers *does* display the bindings correctly.
79;; 79;;
80;; 80;;
81;; CUSTOMIZATION VARIABLES 81;; CUSTOMIZATION VARIABLES
82;; ======================= 82;; =======================
83;; 83;;
@@ -101,12 +101,12 @@
101 (condition-case () (require 'custom) (error nil)) 101 (condition-case () (require 'custom) (error nil))
102 (if (and (featurep 'custom) 102 (if (and (featurep 'custom)
103 (fboundp 'custom-declare-variable) 103 (fboundp 'custom-declare-variable)
104 (fboundp 'defface)) 104 (fboundp 'defface))
105 ;; We've got what we needed 105 ;; We've got what we needed
106 (setq idlwave-shell-have-new-custom t) 106 (setq idlwave-shell-have-new-custom t)
107 ;; We have the old or no custom-library, hack around it! 107 ;; We have the old or no custom-library, hack around it!
108 (defmacro defgroup (&rest args) nil) 108 (defmacro defgroup (&rest args) nil)
109 (defmacro defcustom (var value doc &rest args) 109 (defmacro defcustom (var value doc &rest args)
110 `(defvar ,var ,value ,doc)))) 110 `(defvar ,var ,value ,doc))))
111 111
112;;; Customizations: idlwave-shell group 112;;; Customizations: idlwave-shell group
@@ -118,10 +118,10 @@
118 :group 'idlwave) 118 :group 'idlwave)
119 119
120(defcustom idlwave-shell-prompt-pattern "^ ?IDL> " 120(defcustom idlwave-shell-prompt-pattern "^ ?IDL> "
121 "*Regexp to match IDL prompt at beginning of a line. 121 "*Regexp to match IDL prompt at beginning of a line.
122For example, \"^IDL> \" or \"^WAVE> \". 122For example, \"^IDL> \" or \"^WAVE> \".
123The \"^\" means beginning of line, and is required. 123The \"^\" means beginning of line, and is required.
124This variable is used to initialize `comint-prompt-regexp' in the 124This variable is used to initialize `comint-prompt-regexp' in the
125process buffer. 125process buffer.
126 126
127This is a fine thing to set in your `.emacs' file." 127This is a fine thing to set in your `.emacs' file."
@@ -210,7 +210,7 @@ So by default setting a breakpoint will be on C-c C-d C-b."
210 :type 'boolean) 210 :type 'boolean)
211 211
212(defcustom idlwave-shell-automatic-electric-debug 'breakpoint 212(defcustom idlwave-shell-automatic-electric-debug 'breakpoint
213 "Enter the electric-debug minor mode automatically. 213 "Enter the electric-debug minor mode automatically.
214This occurs at a breakpoint or any other halt. The mode is exited 214This occurs at a breakpoint or any other halt. The mode is exited
215upon return to the main level. Can be set to 'breakpoint to enter 215upon return to the main level. Can be set to 'breakpoint to enter
216electric debug mode only when breakpoints are tripped." 216electric debug mode only when breakpoints are tripped."
@@ -295,7 +295,7 @@ The history is only saved if the variable `idlwave-shell-save-command-history'
295is non-nil." 295is non-nil."
296 :group 'idlwave-shell-command-setup 296 :group 'idlwave-shell-command-setup
297 :type 'file) 297 :type 'file)
298 298
299(defcustom idlwave-shell-show-commands 299(defcustom idlwave-shell-show-commands
300 '(run misc breakpoint) 300 '(run misc breakpoint)
301 "*A list of command types to show output from in the shell. 301 "*A list of command types to show output from in the shell.
@@ -306,12 +306,12 @@ the copious shell traffic to be displayed."
306 :type '(choice 306 :type '(choice
307 (const everything) 307 (const everything)
308 (set :tag "Checklist" :greedy t 308 (set :tag "Checklist" :greedy t
309 (const :tag "All .run and .compile commands" run) 309 (const :tag "All .run and .compile commands" run)
310 (const :tag "All breakpoint commands" breakpoint) 310 (const :tag "All breakpoint commands" breakpoint)
311 (const :tag "All debug and stepping commands" debug) 311 (const :tag "All debug and stepping commands" debug)
312 (const :tag "Close, window, retall, etc. commands" misc)))) 312 (const :tag "Close, window, retall, etc. commands" misc))))
313 313
314(defcustom idlwave-shell-examine-alist 314(defcustom idlwave-shell-examine-alist
315 '(("Print" . "print,___") 315 '(("Print" . "print,___")
316 ("Help" . "help,___") 316 ("Help" . "help,___")
317 ("Structure Help" . "help,___,/STRUCTURE") 317 ("Structure Help" . "help,___,/STRUCTURE")
@@ -322,14 +322,14 @@ the copious shell traffic to be displayed."
322 ("Ptr Valid" . "print,ptr_valid(___)") 322 ("Ptr Valid" . "print,ptr_valid(___)")
323 ("Widget Valid" . "print,widget_info(___,/VALID)") 323 ("Widget Valid" . "print,widget_info(___,/VALID)")
324 ("Widget Geometry" . "help,widget_info(___,/GEOMETRY)")) 324 ("Widget Geometry" . "help,widget_info(___,/GEOMETRY)"))
325 "Alist of special examine commands for popup selection. 325 "Alist of special examine commands for popup selection.
326The keys are used in the selection popup created by 326The keys are used in the selection popup created by
327`idlwave-shell-examine-select', and the corresponding value is sent as 327`idlwave-shell-examine-select', and the corresponding value is sent as
328a command to the shell, with special sequence `___' replaced by the 328a command to the shell, with special sequence `___' replaced by the
329expression being examined." 329expression being examined."
330 :group 'idlwave-shell-command-setup 330 :group 'idlwave-shell-command-setup
331 :type '(repeat 331 :type '(repeat
332 (cons 332 (cons
333 (string :tag "Label ") 333 (string :tag "Label ")
334 (string :tag "Command")))) 334 (string :tag "Command"))))
335 335
@@ -340,7 +340,7 @@ expression being examined."
340 "*Non-nil mean, put output of examine commands in their own buffer." 340 "*Non-nil mean, put output of examine commands in their own buffer."
341 :group 'idlwave-shell-command-setup 341 :group 'idlwave-shell-command-setup
342 :type 'boolean) 342 :type 'boolean)
343 343
344(defcustom idlwave-shell-comint-settings 344(defcustom idlwave-shell-comint-settings
345 '((comint-scroll-to-bottom-on-input . t) 345 '((comint-scroll-to-bottom-on-input . t)
346 (comint-scroll-to-bottom-on-output . t) 346 (comint-scroll-to-bottom-on-output . t)
@@ -403,7 +403,7 @@ strings. Here is some example code which makes use of the default spells.
403 answer = GET_KBRD(1) 403 answer = GET_KBRD(1)
404 404
405Since the IDLWAVE shell defines the system variable `!IDLWAVE_VERSION', 405Since the IDLWAVE shell defines the system variable `!IDLWAVE_VERSION',
406you could actually check if you are running under Emacs before printing 406you could actually check if you are running under Emacs before printing
407the magic strings. Here is a procedure which uses this. 407the magic strings. Here is a procedure which uses this.
408 408
409Usage: 409Usage:
@@ -420,7 +420,7 @@ pro idlwave_char_input,on=on,off=off
420 if keyword_set(on) then print,'<chars>' $ 420 if keyword_set(on) then print,'<chars>' $
421 else if keyword_set(off) then print,'</chars>' $ 421 else if keyword_set(off) then print,'</chars>' $
422 else print,'<onechar>' 422 else print,'<onechar>'
423 endif 423 endif
424end" 424end"
425 :group 'idlwave-shell-command-setup 425 :group 'idlwave-shell-command-setup
426 :type '(list 426 :type '(list
@@ -478,10 +478,10 @@ line where IDL is stopped. See also `idlwave-shell-mark-stop-line'."
478 :group 'idlwave-shell-highlighting-and-faces 478 :group 'idlwave-shell-highlighting-and-faces
479 :type 'string) 479 :type 'string)
480 480
481(defcustom idlwave-shell-electric-stop-line-face 481(defcustom idlwave-shell-electric-stop-line-face
482 (prog1 482 (prog1
483 (copy-face 'modeline 'idlwave-shell-electric-stop-line-face) 483 (copy-face 'modeline 'idlwave-shell-electric-stop-line-face)
484 (set-face-background 'idlwave-shell-electric-stop-line-face 484 (set-face-background 'idlwave-shell-electric-stop-line-face
485 idlwave-shell-electric-stop-color) 485 idlwave-shell-electric-stop-color)
486 (condition-case nil 486 (condition-case nil
487 (set-face-foreground 'idlwave-shell-electric-stop-line-face nil) 487 (set-face-foreground 'idlwave-shell-electric-stop-line-face nil)
@@ -527,7 +527,7 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
527 ;; Just copy the underline face to be on the safe side. 527 ;; Just copy the underline face to be on the safe side.
528 (copy-face 'underline 'idlwave-shell-bp-face)) 528 (copy-face 'underline 'idlwave-shell-bp-face))
529 529
530(defcustom idlwave-shell-disabled-breakpoint-face 530(defcustom idlwave-shell-disabled-breakpoint-face
531 'idlwave-shell-disabled-bp-face 531 'idlwave-shell-disabled-bp-face
532 "*The face for disabled breakpoint lines in the source code. 532 "*The face for disabled breakpoint lines in the source code.
533Allows you to choose the font, color and other properties for 533Allows you to choose the font, color and other properties for
@@ -580,18 +580,18 @@ before use by the shell.")
580 580
581TYPE is either 'pro' or 'rinfo', and `idlwave-shell-temp-pro-file' or 581TYPE is either 'pro' or 'rinfo', and `idlwave-shell-temp-pro-file' or
582`idlwave-shell-temp-rinfo-save-file' is set (respectively)." 582`idlwave-shell-temp-rinfo-save-file' is set (respectively)."
583 (cond 583 (cond
584 ((eq type 'rinfo) 584 ((eq type 'rinfo)
585 (or idlwave-shell-temp-rinfo-save-file 585 (or idlwave-shell-temp-rinfo-save-file
586 (setq idlwave-shell-temp-rinfo-save-file 586 (setq idlwave-shell-temp-rinfo-save-file
587 (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) 587 (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix))))
588 ((eq type 'pro) 588 ((eq type 'pro)
589 (or idlwave-shell-temp-pro-file 589 (or idlwave-shell-temp-pro-file
590 (setq idlwave-shell-temp-pro-file 590 (setq idlwave-shell-temp-pro-file
591 (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix)))) 591 (idlwave-shell-make-temp-file idlwave-shell-temp-pro-prefix))))
592 (t (error "Wrong argument (idlwave-shell-temp-file): %s" 592 (t (error "Wrong argument (idlwave-shell-temp-file): %s"
593 (symbol-name type))))) 593 (symbol-name type)))))
594 594
595 595
596(defun idlwave-shell-make-temp-file (prefix) 596(defun idlwave-shell-make-temp-file (prefix)
597 "Create a temporary file." 597 "Create a temporary file."
@@ -619,7 +619,7 @@ TYPE is either 'pro' or 'rinfo', and `idlwave-shell-temp-pro-file' or
619 619
620 620
621(defvar idlwave-shell-dirstack-query "cd,current=___cur & print,___cur" 621(defvar idlwave-shell-dirstack-query "cd,current=___cur & print,___cur"
622 "Command used by `idlwave-shell-resync-dirs' to query IDL for 622 "Command used by `idlwave-shell-resync-dirs' to query IDL for
623the directory stack.") 623the directory stack.")
624 624
625(defvar idlwave-shell-path-query "print,'PATH:<'+transpose(expand_path(!PATH,/ARRAY))+'>' & print,'SYSDIR:<'+!dir+'>'" 625(defvar idlwave-shell-path-query "print,'PATH:<'+transpose(expand_path(!PATH,/ARRAY))+'>' & print,'SYSDIR:<'+!dir+'>'"
@@ -627,7 +627,7 @@ the directory stack.")
627 "The command which gets !PATH and !DIR info from the shell.") 627 "The command which gets !PATH and !DIR info from the shell.")
628 628
629(defvar idlwave-shell-mode-line-info nil 629(defvar idlwave-shell-mode-line-info nil
630 "Additional info displayed in the mode line") 630 "Additional info displayed in the mode line")
631 631
632(defvar idlwave-shell-default-directory nil 632(defvar idlwave-shell-default-directory nil
633 "The default directory in the idlwave-shell buffer, of outside use.") 633 "The default directory in the idlwave-shell buffer, of outside use.")
@@ -678,7 +678,7 @@ the directory stack.")
678 window-system) ; Window systems always 678 window-system) ; Window systems always
679 (progn 679 (progn
680 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) 680 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1))
681 (overlay-put idlwave-shell-stop-line-overlay 681 (overlay-put idlwave-shell-stop-line-overlay
682 'face idlwave-shell-stop-line-face)))) 682 'face idlwave-shell-stop-line-face))))
683 683
684 (t 684 (t
@@ -686,7 +686,7 @@ the directory stack.")
686 (if window-system 686 (if window-system
687 (progn 687 (progn
688 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1)) 688 (setq idlwave-shell-stop-line-overlay (make-overlay 1 1))
689 (overlay-put idlwave-shell-stop-line-overlay 689 (overlay-put idlwave-shell-stop-line-overlay
690 'face idlwave-shell-stop-line-face))))) 690 'face idlwave-shell-stop-line-face)))))
691 691
692;; Now the expression and output overlays 692;; Now the expression and output overlays
@@ -747,7 +747,7 @@ with `*'s."
747 747
748;;; The following are the types of messages we attempt to catch to 748;;; The following are the types of messages we attempt to catch to
749;;; resync our idea of where IDL execution currently is. 749;;; resync our idea of where IDL execution currently is.
750;;; 750;;;
751 751
752(defvar idlwave-shell-halt-frame nil 752(defvar idlwave-shell-halt-frame nil
753 "The frame associated with halt/breakpoint messages.") 753 "The frame associated with halt/breakpoint messages.")
@@ -791,7 +791,7 @@ IDL has currently stepped.")
791 791
792(defconst idlwave-shell-electric-debug-help 792(defconst idlwave-shell-electric-debug-help
793 " ==> IDLWAVE Electric Debug Mode Help <== 793 " ==> IDLWAVE Electric Debug Mode Help <==
794 794
795 Break Point Setting and Clearing: 795 Break Point Setting and Clearing:
796 b Set breakpoint ([C-u b] for conditional, [C-n b] nth hit, etc.). 796 b Set breakpoint ([C-u b] for conditional, [C-n b] nth hit, etc.).
797 d Clear nearby breakpoint. 797 d Clear nearby breakpoint.
@@ -817,7 +817,7 @@ IDL has currently stepped.")
817 Examining Expressions (with prefix for examining the region): 817 Examining Expressions (with prefix for examining the region):
818 p Print expression near point or in region ([C-u p]). 818 p Print expression near point or in region ([C-u p]).
819 ? Help on expression near point or in region ([C-u ?]). 819 ? Help on expression near point or in region ([C-u ?]).
820 x Examine expression near point or in region ([C-u x]) with 820 x Examine expression near point or in region ([C-u x]) with
821 letter completion of the examine type. 821 letter completion of the examine type.
822 822
823 Miscellaneous: 823 Miscellaneous:
@@ -871,18 +871,18 @@ IDL has currently stepped.")
871 `\\[idlwave-routine-info]' displays information about an IDL routine near point, 871 `\\[idlwave-routine-info]' displays information about an IDL routine near point,
872 just like in `idlwave-mode'. The module used is the one at point or 872 just like in `idlwave-mode'. The module used is the one at point or
873 the one whose argument list is being edited. 873 the one whose argument list is being edited.
874 To update IDLWAVE's knowledge about compiled or edited modules, use 874 To update IDLWAVE's knowledge about compiled or edited modules, use
875 \\[idlwave-update-routine-info]. 875 \\[idlwave-update-routine-info].
876 \\[idlwave-find-module] find the source of a module. 876 \\[idlwave-find-module] find the source of a module.
877 \\[idlwave-resolve] tells IDL to compile an unresolved module. 877 \\[idlwave-resolve] tells IDL to compile an unresolved module.
878 \\[idlwave-context-help] shows the online help on the item at 878 \\[idlwave-context-help] shows the online help on the item at
879 point, if online help has been installed. 879 point, if online help has been installed.
880 880
881 881
8824. Debugging 8824. Debugging
883 --------- 883 ---------
884 A complete set of commands for compiling and debugging IDL programs 884 A complete set of commands for compiling and debugging IDL programs
885 is available from the menu. Also keybindings starting with a 885 is available from the menu. Also keybindings starting with a
886 `C-c C-d' prefix are available for most commands in the *idl* buffer 886 `C-c C-d' prefix are available for most commands in the *idl* buffer
887 and also in source buffers. The best place to learn about the 887 and also in source buffers. The best place to learn about the
888 keybindings is again the menu. 888 keybindings is again the menu.
@@ -974,8 +974,8 @@ IDL has currently stepped.")
974 (idlwave-shell-display-line nil) 974 (idlwave-shell-display-line nil)
975 (setq idlwave-shell-calling-stack-index 0) 975 (setq idlwave-shell-calling-stack-index 0)
976 (setq idlwave-shell-only-prompt-pattern 976 (setq idlwave-shell-only-prompt-pattern
977 (concat "\\`[ \t\n]*" 977 (concat "\\`[ \t\n]*"
978 (substring idlwave-shell-prompt-pattern 1) 978 (substring idlwave-shell-prompt-pattern 1)
979 "[ \t\n]*\\'")) 979 "[ \t\n]*\\'"))
980 980
981 (when idlwave-shell-query-for-class 981 (when idlwave-shell-query-for-class
@@ -1010,14 +1010,14 @@ IDL has currently stepped.")
1010 (while (setq entry (pop list)) 1010 (while (setq entry (pop list))
1011 (set (make-local-variable (car entry)) (cdr entry))))) 1011 (set (make-local-variable (car entry)) (cdr entry)))))
1012 1012
1013 1013
1014 (unless (memq 'comint-carriage-motion 1014 (unless (memq 'comint-carriage-motion
1015 (default-value 'comint-output-filter-functions)) 1015 (default-value 'comint-output-filter-functions))
1016 ;; Strip those pesky ctrl-m's. 1016 ;; Strip those pesky ctrl-m's.
1017 (add-hook 'comint-output-filter-functions 1017 (add-hook 'comint-output-filter-functions
1018 (lambda (string) 1018 (lambda (string)
1019 (when (string-match "\r" string) 1019 (when (string-match "\r" string)
1020 (let ((pmark (process-mark (get-buffer-process 1020 (let ((pmark (process-mark (get-buffer-process
1021 (current-buffer))))) 1021 (current-buffer)))))
1022 (save-excursion 1022 (save-excursion
1023 ;; bare CR -> delete preceding line 1023 ;; bare CR -> delete preceding line
@@ -1059,8 +1059,8 @@ IDL has currently stepped.")
1059 (idlwave-shell-send-command idlwave-shell-initial-commands nil 'hide) 1059 (idlwave-shell-send-command idlwave-shell-initial-commands nil 'hide)
1060 ;; Turn off IDL's ^d interpreting, and define a system 1060 ;; Turn off IDL's ^d interpreting, and define a system
1061 ;; variable which knows the version of IDLWAVE 1061 ;; variable which knows the version of IDLWAVE
1062 (idlwave-shell-send-command 1062 (idlwave-shell-send-command
1063 (format "defsysv,'!idlwave_version','%s',1" 1063 (format "defsysv,'!idlwave_version','%s',1"
1064 idlwave-mode-version) 1064 idlwave-mode-version)
1065 nil 'hide) 1065 nil 'hide)
1066 ;; Get the paths if they weren't read in from file 1066 ;; Get the paths if they weren't read in from file
@@ -1081,7 +1081,7 @@ IDL has currently stepped.")
1081 (setq idlwave-system-directory sysdir) 1081 (setq idlwave-system-directory sysdir)
1082 (put 'idlwave-system-directory 'from-shell t)) 1082 (put 'idlwave-system-directory 'from-shell t))
1083 ;; Preserve any existing flags 1083 ;; Preserve any existing flags
1084 (setq idlwave-path-alist 1084 (setq idlwave-path-alist
1085 (mapcar (lambda (x) 1085 (mapcar (lambda (x)
1086 (let ((old-entry (assoc x old-path-alist))) 1086 (let ((old-entry (assoc x old-path-alist)))
1087 (if old-entry 1087 (if old-entry
@@ -1089,7 +1089,7 @@ IDL has currently stepped.")
1089 (list x)))) 1089 (list x))))
1090 dirs)) 1090 dirs))
1091 (put 'idlwave-path-alist 'from-shell t) 1091 (put 'idlwave-path-alist 'from-shell t)
1092 (if idlwave-path-alist 1092 (if idlwave-path-alist
1093 (if (and idlwave-auto-write-paths 1093 (if (and idlwave-auto-write-paths
1094 (not idlwave-library-path) 1094 (not idlwave-library-path)
1095 (not no-write) ) 1095 (not no-write) )
@@ -1125,8 +1125,8 @@ IDL has currently stepped.")
1125 (frame (selected-frame))) 1125 (frame (selected-frame)))
1126 (catch 'exit 1126 (catch 'exit
1127 (while flist 1127 (while flist
1128 (if (not (eq (car flist) 1128 (if (not (eq (car flist)
1129 idlwave-shell-idl-wframe)) 1129 idlwave-shell-idl-wframe))
1130 (throw 'exit (car flist)) 1130 (throw 'exit (car flist))
1131 (setq flist (cdr flist)))))) 1131 (setq flist (cdr flist))))))
1132 (make-frame)) 1132 (make-frame))
@@ -1144,9 +1144,9 @@ IDL has currently stepped.")
1144 ;; We do not have a source frame, so we use this one. 1144 ;; We do not have a source frame, so we use this one.
1145 (setq idlwave-shell-display-wframe (selected-frame))) 1145 (setq idlwave-shell-display-wframe (selected-frame)))
1146 ;; Return a new frame 1146 ;; Return a new frame
1147 (setq idlwave-shell-idl-wframe 1147 (setq idlwave-shell-idl-wframe
1148 (make-frame idlwave-shell-frame-parameters))))) 1148 (make-frame idlwave-shell-frame-parameters)))))
1149 1149
1150;;;###autoload 1150;;;###autoload
1151(defun idlwave-shell (&optional arg quick) 1151(defun idlwave-shell (&optional arg quick)
1152 "Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'. 1152 "Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'.
@@ -1173,14 +1173,14 @@ See also the variable `idlwave-shell-prompt-pattern'.
1173 (delete-other-windows)) 1173 (delete-other-windows))
1174 (and idlwave-shell-use-dedicated-frame 1174 (and idlwave-shell-use-dedicated-frame
1175 (setq idlwave-shell-idl-wframe (selected-frame))) 1175 (setq idlwave-shell-idl-wframe (selected-frame)))
1176 (add-hook 'idlwave-shell-sentinel-hook 1176 (add-hook 'idlwave-shell-sentinel-hook
1177 'save-buffers-kill-emacs t)) 1177 'save-buffers-kill-emacs t))
1178 1178
1179 ;; A non-nil arg means, we want a dedicated frame. This will last 1179 ;; A non-nil arg means, we want a dedicated frame. This will last
1180 ;; for the current editing session. 1180 ;; for the current editing session.
1181 (if arg (setq idlwave-shell-use-dedicated-frame t)) 1181 (if arg (setq idlwave-shell-use-dedicated-frame t))
1182 (if (equal arg '(16)) (setq idlwave-shell-use-dedicated-frame nil)) 1182 (if (equal arg '(16)) (setq idlwave-shell-use-dedicated-frame nil))
1183 1183
1184 ;; Check if the process still exists. If not, create it. 1184 ;; Check if the process still exists. If not, create it.
1185 (unless (comint-check-proc (idlwave-shell-buffer)) 1185 (unless (comint-check-proc (idlwave-shell-buffer))
1186 (let* ((prg (or idlwave-shell-explicit-file-name "idl")) 1186 (let* ((prg (or idlwave-shell-explicit-file-name "idl"))
@@ -1207,9 +1207,9 @@ See also the variable `idlwave-shell-prompt-pattern'.
1207 (if (eq (selected-frame) (window-frame window)) 1207 (if (eq (selected-frame) (window-frame window))
1208 (select-window window)))) 1208 (select-window window))))
1209 ;; Save the paths at the end 1209 ;; Save the paths at the end
1210 (add-hook 'idlwave-shell-sentinel-hook 1210 (add-hook 'idlwave-shell-sentinel-hook
1211 (lambda () 1211 (lambda ()
1212 (if (and 1212 (if (and
1213 idlwave-auto-write-paths 1213 idlwave-auto-write-paths
1214 idlwave-path-alist 1214 idlwave-path-alist
1215 (not idlwave-library-path) 1215 (not idlwave-library-path)
@@ -1240,7 +1240,7 @@ Return either nil or 'hide."
1240 (setq idlwave-shell-show-commands (list type)))) 1240 (setq idlwave-shell-show-commands (list type))))
1241 1241
1242 1242
1243(defun idlwave-shell-send-command (&optional cmd pcmd hide preempt 1243(defun idlwave-shell-send-command (&optional cmd pcmd hide preempt
1244 show-if-error) 1244 show-if-error)
1245 "Send a command to IDL process. 1245 "Send a command to IDL process.
1246 1246
@@ -1261,18 +1261,18 @@ If optional fourth argument PREEMPT is non-nil CMD is put at front of
1261`idlwave-shell-pending-commands'. If PREEMPT is 'wait, wait for all 1261`idlwave-shell-pending-commands'. If PREEMPT is 'wait, wait for all
1262output to complete and the next prompt to arrive before returning 1262output to complete and the next prompt to arrive before returning
1263\(useful if you need an answer now\). IDL is considered ready if the 1263\(useful if you need an answer now\). IDL is considered ready if the
1264prompt is present and if `idlwave-shell-ready' is non-nil. 1264prompt is present and if `idlwave-shell-ready' is non-nil.
1265 1265
1266If SHOW-IF-ERROR is non-nil, show the output it it contains an error 1266If SHOW-IF-ERROR is non-nil, show the output it it contains an error
1267message, independent of what HIDE is set to." 1267message, independent of what HIDE is set to."
1268 1268
1269; (setq hide nil) ; FIXME: turn this on for debugging only 1269; (setq hide nil) ; FIXME: turn this on for debugging only
1270; (if (null cmd) 1270; (if (null cmd)
1271; (progn 1271; (progn
1272; (message "SENDING Pending commands: %s" 1272; (message "SENDING Pending commands: %s"
1273; (prin1-to-string idlwave-shell-pending-commands))) 1273; (prin1-to-string idlwave-shell-pending-commands)))
1274; (message "SENDING %s|||%s" cmd pcmd)) 1274; (message "SENDING %s|||%s" cmd pcmd))
1275 (if (and (symbolp idlwave-shell-show-commands) 1275 (if (and (symbolp idlwave-shell-show-commands)
1276 (eq idlwave-shell-show-commands 'everything)) 1276 (eq idlwave-shell-show-commands 'everything))
1277 (setq hide nil)) 1277 (setq hide nil))
1278 (let ((save-buffer (current-buffer)) 1278 (let ((save-buffer (current-buffer))
@@ -1300,7 +1300,7 @@ message, independent of what HIDE is set to."
1300 (append (list (list cmd pcmd hide show-if-error)) 1300 (append (list (list cmd pcmd hide show-if-error))
1301 idlwave-shell-pending-commands) 1301 idlwave-shell-pending-commands)
1302 ;; Put at end. 1302 ;; Put at end.
1303 (append idlwave-shell-pending-commands 1303 (append idlwave-shell-pending-commands
1304 (list (list cmd pcmd hide show-if-error)))))) 1304 (list (list cmd pcmd hide show-if-error))))))
1305 ;; Check if IDL ready 1305 ;; Check if IDL ready
1306 (let ((save-point (point-marker))) 1306 (let ((save-point (point-marker)))
@@ -1349,7 +1349,7 @@ message, independent of what HIDE is set to."
1349 (if (or (not (setq buf (get-buffer (idlwave-shell-buffer)))) 1349 (if (or (not (setq buf (get-buffer (idlwave-shell-buffer))))
1350 (not (setq proc (get-buffer-process buf)))) 1350 (not (setq proc (get-buffer-process buf))))
1351 (funcall errf "Shell is not running")) 1351 (funcall errf "Shell is not running"))
1352 (if (equal c ?\C-g) 1352 (if (equal c ?\C-g)
1353 (funcall errf "Abort") 1353 (funcall errf "Abort")
1354 (comint-send-string proc (char-to-string c))))) 1354 (comint-send-string proc (char-to-string c)))))
1355 1355
@@ -1390,7 +1390,7 @@ when the IDL prompt gets displayed again after the current IDL command."
1390 (if idlwave-shell-ready 1390 (if idlwave-shell-ready
1391 (funcall errf "No IDL program seems to be waiting for input")) 1391 (funcall errf "No IDL program seems to be waiting for input"))
1392 1392
1393 ;; OK, start the loop 1393 ;; OK, start the loop
1394 (message "Character mode on: Sending single chars (`C-g' to exit)") 1394 (message "Character mode on: Sending single chars (`C-g' to exit)")
1395 (message 1395 (message
1396 (catch 'exit 1396 (catch 'exit
@@ -1470,14 +1470,14 @@ error messages, etc."
1470 (setq output (substring output (string-match "\n" output))) 1470 (setq output (substring output (string-match "\n" output)))
1471 (while (string-match "\\(\n\\|\\`\\)%.*\\(\n .*\\)*" output) 1471 (while (string-match "\\(\n\\|\\`\\)%.*\\(\n .*\\)*" output)
1472 (setq output (replace-match "" nil t output))) 1472 (setq output (replace-match "" nil t output)))
1473 (unless 1473 (unless
1474 (string-match idlwave-shell-only-prompt-pattern output) 1474 (string-match idlwave-shell-only-prompt-pattern output)
1475 output)) 1475 output))
1476 1476
1477(defvar idlwave-shell-hidden-output-buffer " *idlwave-shell-hidden-output*" 1477(defvar idlwave-shell-hidden-output-buffer " *idlwave-shell-hidden-output*"
1478 "Buffer containing hidden output from IDL commands.") 1478 "Buffer containing hidden output from IDL commands.")
1479(defvar idlwave-shell-current-state nil) 1479(defvar idlwave-shell-current-state nil)
1480 1480
1481(defun idlwave-shell-filter (proc string) 1481(defun idlwave-shell-filter (proc string)
1482 "Watch for IDL prompt and filter incoming text. 1482 "Watch for IDL prompt and filter incoming text.
1483When the IDL prompt is received executes `idlwave-shell-post-command-hook' 1483When the IDL prompt is received executes `idlwave-shell-post-command-hook'
@@ -1509,20 +1509,20 @@ and then calls `idlwave-shell-send-command' for any pending commands."
1509 (idlwave-shell-input-mode-magic 1509 (idlwave-shell-input-mode-magic
1510 (concat idlwave-shell-accumulation string))) 1510 (concat idlwave-shell-accumulation string)))
1511 (setq idlwave-shell-accumulation 1511 (setq idlwave-shell-accumulation
1512 (substring string 1512 (substring string
1513 (progn (string-match "\\(.*[\n\r]+\\)*" 1513 (progn (string-match "\\(.*[\n\r]+\\)*"
1514 string) 1514 string)
1515 (match-end 0))))) 1515 (match-end 0)))))
1516 (setq idlwave-shell-accumulation 1516 (setq idlwave-shell-accumulation
1517 (concat idlwave-shell-accumulation string))) 1517 (concat idlwave-shell-accumulation string)))
1518 1518
1519 1519
1520;;; Test/Debug code 1520;;; Test/Debug code
1521; (save-excursion (set-buffer 1521; (save-excursion (set-buffer
1522; (get-buffer-create "*idlwave-shell-output*")) 1522; (get-buffer-create "*idlwave-shell-output*"))
1523; (goto-char (point-max)) 1523; (goto-char (point-max))
1524; (insert "\nSTRING===>\n" string "\n<====\n")) 1524; (insert "\nSTRING===>\n" string "\n<====\n"))
1525 1525
1526 ;; Check for prompt in current accumulating output 1526 ;; Check for prompt in current accumulating output
1527 (if (setq idlwave-shell-ready 1527 (if (setq idlwave-shell-ready
1528 (string-match idlwave-shell-prompt-pattern 1528 (string-match idlwave-shell-prompt-pattern
@@ -1558,16 +1558,16 @@ and then calls `idlwave-shell-send-command' for any pending commands."
1558 (if (and idlwave-shell-show-if-error 1558 (if (and idlwave-shell-show-if-error
1559 (eq idlwave-shell-current-state 'error)) 1559 (eq idlwave-shell-current-state 'error))
1560 (idlwave-shell-comint-filter proc full-output) 1560 (idlwave-shell-comint-filter proc full-output)
1561 ;; If it's only *mostly* hidden, filter % lines, 1561 ;; If it's only *mostly* hidden, filter % lines,
1562 ;; and show anything that remains 1562 ;; and show anything that remains
1563 (if (eq idlwave-shell-hide-output 'mostly) 1563 (if (eq idlwave-shell-hide-output 'mostly)
1564 (let ((filtered 1564 (let ((filtered
1565 (idlwave-shell-filter-hidden-output 1565 (idlwave-shell-filter-hidden-output
1566 full-output))) 1566 full-output)))
1567 (if filtered 1567 (if filtered
1568 (idlwave-shell-comint-filter 1568 (idlwave-shell-comint-filter
1569 proc filtered)))))) 1569 proc filtered))))))
1570 1570
1571 ;; Call the post-command hook 1571 ;; Call the post-command hook
1572 (if (listp idlwave-shell-post-command-hook) 1572 (if (listp idlwave-shell-post-command-hook)
1573 (progn 1573 (progn
@@ -1612,7 +1612,7 @@ and then calls `idlwave-shell-send-command' for any pending commands."
1612 (condition-case nil 1612 (condition-case nil
1613 (comint-write-input-ring) 1613 (comint-write-input-ring)
1614 (error nil))))) 1614 (error nil)))))
1615 1615
1616 (when (and (> (length (frame-list)) 1) 1616 (when (and (> (length (frame-list)) 1)
1617 (frame-live-p idlwave-shell-idl-wframe)) 1617 (frame-live-p idlwave-shell-idl-wframe))
1618 (delete-frame idlwave-shell-idl-wframe) 1618 (delete-frame idlwave-shell-idl-wframe)
@@ -1636,8 +1636,8 @@ and then calls `idlwave-shell-send-command' for any pending commands."
1636;; in module and file names. I am not sure if it will be necessary to 1636;; in module and file names. I am not sure if it will be necessary to
1637;; change this. Currently it seems to work the way it is. 1637;; change this. Currently it seems to work the way it is.
1638(defvar idlwave-shell-syntax-error 1638(defvar idlwave-shell-syntax-error
1639 "^% Syntax error.\\s-*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" 1639 "^% Syntax error.\\s-*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)"
1640 "A regular expression to match an IDL syntax error. 1640 "A regular expression to match an IDL syntax error.
1641The 1st pair matches the file name, the second pair matches the line 1641The 1st pair matches the file name, the second pair matches the line
1642number.") 1642number.")
1643 1643
@@ -1645,16 +1645,16 @@ number.")
1645 "^% .*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)" 1645 "^% .*\n\\s-*At:\\s-*\\(.*\\),\\s-*Line\\s-*\\(.*\\)"
1646 "A regular expression to match any IDL error.") 1646 "A regular expression to match any IDL error.")
1647 1647
1648(defvar idlwave-shell-halting-error 1648(defvar idlwave-shell-halting-error
1649 "^% .*\n\\([^%].*\n\\)*% Execution halted at:\\(\\s-*\\S-+\\s-*[0-9]+\\s-*.*\\)\n" 1649 "^% .*\n\\([^%].*\n\\)*% Execution halted at:\\(\\s-*\\S-+\\s-*[0-9]+\\s-*.*\\)\n"
1650 "A regular expression to match errors which halt execution.") 1650 "A regular expression to match errors which halt execution.")
1651 1651
1652(defvar idlwave-shell-cant-continue-error 1652(defvar idlwave-shell-cant-continue-error
1653 "^% Can't continue from this point.\n" 1653 "^% Can't continue from this point.\n"
1654 "A regular expression to match errors stepping errors.") 1654 "A regular expression to match errors stepping errors.")
1655 1655
1656(defvar idlwave-shell-file-line-message 1656(defvar idlwave-shell-file-line-message
1657 (concat 1657 (concat
1658 "\\(" ; program name group (1) 1658 "\\(" ; program name group (1)
1659 "\\$MAIN\\$\\|" ; main level routine 1659 "\\$MAIN\\$\\|" ; main level routine
1660 "\\<[a-zA-Z][a-zA-Z0-9_$:]*" ; start with a letter followed by [..] 1660 "\\<[a-zA-Z][a-zA-Z0-9_$:]*" ; start with a letter followed by [..]
@@ -1672,7 +1672,7 @@ number.")
1672 "\\)" ; end line number group (5) 1672 "\\)" ; end line number group (5)
1673 ) 1673 )
1674 "*A regular expression to parse out the file name and line number. 1674 "*A regular expression to parse out the file name and line number.
1675The 1st group should match the subroutine name. 1675The 1st group should match the subroutine name.
1676The 3rd group is the line number. 1676The 3rd group is the line number.
1677The 5th group is the file name. 1677The 5th group is the file name.
1678All parts may contain linebreaks surrounded by spaces. This is important 1678All parts may contain linebreaks surrounded by spaces. This is important
@@ -1691,9 +1691,9 @@ the above."
1691 (cond 1691 (cond
1692 ;; Make sure we have output 1692 ;; Make sure we have output
1693 ((not idlwave-shell-command-output)) 1693 ((not idlwave-shell-command-output))
1694 1694
1695 ;; First Priority: Syntax and other errors 1695 ;; First Priority: Syntax and other errors
1696 ((or 1696 ((or
1697 (string-match idlwave-shell-syntax-error 1697 (string-match idlwave-shell-syntax-error
1698 idlwave-shell-command-output) 1698 idlwave-shell-command-output)
1699 (string-match idlwave-shell-other-error 1699 (string-match idlwave-shell-other-error
@@ -1707,19 +1707,19 @@ the above."
1707 (setq idlwave-shell-error-last (point))) 1707 (setq idlwave-shell-error-last (point)))
1708 (setq idlwave-shell-current-state 'error) 1708 (setq idlwave-shell-current-state 'error)
1709 (idlwave-shell-goto-next-error)) 1709 (idlwave-shell-goto-next-error))
1710 1710
1711 ;; Second Priority: Halting errors 1711 ;; Second Priority: Halting errors
1712 ((string-match idlwave-shell-halting-error 1712 ((string-match idlwave-shell-halting-error
1713 idlwave-shell-command-output) 1713 idlwave-shell-command-output)
1714 ;; Grab the file and line state info. 1714 ;; Grab the file and line state info.
1715 (setq idlwave-shell-calling-stack-index 0) 1715 (setq idlwave-shell-calling-stack-index 0)
1716 (setq idlwave-shell-halt-frame 1716 (setq idlwave-shell-halt-frame
1717 (idlwave-shell-parse-line 1717 (idlwave-shell-parse-line
1718 (substring idlwave-shell-command-output 1718 (substring idlwave-shell-command-output
1719 (match-beginning 2))) 1719 (match-beginning 2)))
1720 idlwave-shell-current-state 'error) 1720 idlwave-shell-current-state 'error)
1721 (idlwave-shell-display-line (idlwave-shell-pc-frame))) 1721 (idlwave-shell-display-line (idlwave-shell-pc-frame)))
1722 1722
1723 ;; Third Priority: Various types of innocuous HALT and 1723 ;; Third Priority: Various types of innocuous HALT and
1724 ;; TRACEBACK messages. 1724 ;; TRACEBACK messages.
1725 ((or (setq trace (string-match idlwave-shell-trace-message-re 1725 ((or (setq trace (string-match idlwave-shell-trace-message-re
@@ -1729,25 +1729,25 @@ the above."
1729 ;; Grab the file and line state info. 1729 ;; Grab the file and line state info.
1730 (setq idlwave-shell-calling-stack-index 0) 1730 (setq idlwave-shell-calling-stack-index 0)
1731 (setq idlwave-shell-halt-frame 1731 (setq idlwave-shell-halt-frame
1732 (idlwave-shell-parse-line 1732 (idlwave-shell-parse-line
1733 (substring idlwave-shell-command-output (match-end 0)))) 1733 (substring idlwave-shell-command-output (match-end 0))))
1734 (setq idlwave-shell-current-state 'halt) 1734 (setq idlwave-shell-current-state 'halt)
1735 ;; Don't debug trace messages 1735 ;; Don't debug trace messages
1736 (idlwave-shell-display-line (idlwave-shell-pc-frame) nil 1736 (idlwave-shell-display-line (idlwave-shell-pc-frame) nil
1737 (if trace 'no-debug))) 1737 (if trace 'no-debug)))
1738 1738
1739 ;; Fourth Priority: Breakpoints 1739 ;; Fourth Priority: Breakpoints
1740 ((string-match idlwave-shell-break-message 1740 ((string-match idlwave-shell-break-message
1741 idlwave-shell-command-output) 1741 idlwave-shell-command-output)
1742 (setq idlwave-shell-calling-stack-index 0) 1742 (setq idlwave-shell-calling-stack-index 0)
1743 (setq idlwave-shell-halt-frame 1743 (setq idlwave-shell-halt-frame
1744 (idlwave-shell-parse-line 1744 (idlwave-shell-parse-line
1745 (substring idlwave-shell-command-output (match-end 0)))) 1745 (substring idlwave-shell-command-output (match-end 0))))
1746 ;; We used to count hits on breakpoints 1746 ;; We used to count hits on breakpoints
1747 ;; this is no longer supported since IDL breakpoints 1747 ;; this is no longer supported since IDL breakpoints
1748 ;; have learned counting. 1748 ;; have learned counting.
1749 ;; Do breakpoint command processing 1749 ;; Do breakpoint command processing
1750 (let ((bp (assoc 1750 (let ((bp (assoc
1751 (list 1751 (list
1752 (nth 0 idlwave-shell-halt-frame) 1752 (nth 0 idlwave-shell-halt-frame)
1753 (nth 1 idlwave-shell-halt-frame)) 1753 (nth 1 idlwave-shell-halt-frame))
@@ -1760,9 +1760,9 @@ the above."
1760 ;; A breakpoint that we did not know about - perhaps it was 1760 ;; A breakpoint that we did not know about - perhaps it was
1761 ;; set by the user... Let's update our list. 1761 ;; set by the user... Let's update our list.
1762 (idlwave-shell-bp-query))) 1762 (idlwave-shell-bp-query)))
1763 (setq idlwave-shell-current-state 'breakpoint) 1763 (setq idlwave-shell-current-state 'breakpoint)
1764 (idlwave-shell-display-line (idlwave-shell-pc-frame))) 1764 (idlwave-shell-display-line (idlwave-shell-pc-frame)))
1765 1765
1766 ;; Last Priority: Can't Step errors 1766 ;; Last Priority: Can't Step errors
1767 ((string-match idlwave-shell-cant-continue-error 1767 ((string-match idlwave-shell-cant-continue-error
1768 idlwave-shell-command-output) 1768 idlwave-shell-command-output)
@@ -1777,7 +1777,7 @@ We need to work hard here to remove the stupid line breaks inserted by
1777IDL5. These line breaks can be right in the middle of procedure 1777IDL5. These line breaks can be right in the middle of procedure
1778or file names. 1778or file names.
1779It is very difficult to come up with a robust solution. This one seems 1779It is very difficult to come up with a robust solution. This one seems
1780to be pretty good though. 1780to be pretty good though.
1781 1781
1782Here is in what ways it improves over the previous solution: 1782Here is in what ways it improves over the previous solution:
1783 1783
@@ -1802,7 +1802,7 @@ statements."
1802 (setq procedure (match-string 1 string) 1802 (setq procedure (match-string 1 string)
1803 number (match-string 3 string) 1803 number (match-string 3 string)
1804 file (match-string 5 string)) 1804 file (match-string 5 string))
1805 1805
1806 ;; Repair the strings 1806 ;; Repair the strings
1807 (setq procedure (idlwave-shell-repair-string procedure)) 1807 (setq procedure (idlwave-shell-repair-string procedure))
1808 (setq number (idlwave-shell-repair-string number)) 1808 (setq number (idlwave-shell-repair-string number))
@@ -1811,7 +1811,7 @@ statements."
1811 ;; If we have a file, return the frame list 1811 ;; If we have a file, return the frame list
1812 (if file 1812 (if file
1813 (list (idlwave-shell-file-name file) 1813 (list (idlwave-shell-file-name file)
1814 (string-to-int number) 1814 (string-to-number number)
1815 procedure) 1815 procedure)
1816 ;; No success finding a file 1816 ;; No success finding a file
1817 nil)))) 1817 nil))))
@@ -1828,7 +1828,7 @@ The last line of STRING may be garbage - we check which one makes a valid
1828file name." 1828file name."
1829 (let ((file1 "") (file2 "") (start 0)) 1829 (let ((file1 "") (file2 "") (start 0))
1830 ;; We scan no further than to the next "^%" line 1830 ;; We scan no further than to the next "^%" line
1831 (if (string-match "^%" file) 1831 (if (string-match "^%" file)
1832 (setq file (substring file 0 (match-beginning 0)))) 1832 (setq file (substring file 0 (match-beginning 0))))
1833 ;; Take out the line breaks 1833 ;; Take out the line breaks
1834 (while (string-match "[ \t]*\n[ \t]*" file start) 1834 (while (string-match "[ \t]*\n[ \t]*" file start)
@@ -1883,7 +1883,7 @@ file name."
1883The size is given by `idlwave-shell-graphics-window-size'." 1883The size is given by `idlwave-shell-graphics-window-size'."
1884 (interactive "P") 1884 (interactive "P")
1885 (let ((n (if n (prefix-numeric-value n) 0))) 1885 (let ((n (if n (prefix-numeric-value n) 0)))
1886 (idlwave-shell-send-command 1886 (idlwave-shell-send-command
1887 (apply 'format "window,%d,xs=%d,ys=%d" 1887 (apply 'format "window,%d,xs=%d,ys=%d"
1888 n idlwave-shell-graphics-window-size) 1888 n idlwave-shell-graphics-window-size)
1889 nil (idlwave-shell-hide-p 'misc) nil t))) 1889 nil (idlwave-shell-hide-p 'misc) nil t)))
@@ -1903,16 +1903,16 @@ directory."
1903Also get rid of widget events in the queue." 1903Also get rid of widget events in the queue."
1904 (interactive "P") 1904 (interactive "P")
1905 (save-selected-window 1905 (save-selected-window
1906 ;;if (widget_info(/MANAGED))[0] gt 0 then for i=0,n_elements(widget_info(/MANAGED))-1 do widget_control,(widget_info(/MANAGED))[i],/clear_events & 1906 ;;if (widget_info(/MANAGED))[0] gt 0 then for i=0,n_elements(widget_info(/MANAGED))-1 do widget_control,(widget_info(/MANAGED))[i],/clear_events &
1907 (idlwave-shell-send-command "retall" nil 1907 (idlwave-shell-send-command "retall" nil
1908 (if (idlwave-shell-hide-p 'misc) 'mostly) 1908 (if (idlwave-shell-hide-p 'misc) 'mostly)
1909 nil t) 1909 nil t)
1910 (idlwave-shell-display-line nil))) 1910 (idlwave-shell-display-line nil)))
1911 1911
1912(defun idlwave-shell-closeall (&optional arg) 1912(defun idlwave-shell-closeall (&optional arg)
1913 "Close all open files." 1913 "Close all open files."
1914 (interactive "P") 1914 (interactive "P")
1915 (idlwave-shell-send-command "close,/all" nil 1915 (idlwave-shell-send-command "close,/all" nil
1916 (idlwave-shell-hide-p 'misc) nil t)) 1916 (idlwave-shell-hide-p 'misc) nil t))
1917 1917
1918(defun idlwave-shell-quit (&optional arg) 1918(defun idlwave-shell-quit (&optional arg)
@@ -1928,7 +1928,7 @@ With prefix ARG, exit without confirmation."
1928 1928
1929(defun idlwave-shell-reset (&optional hidden) 1929(defun idlwave-shell-reset (&optional hidden)
1930 "Reset IDL. Return to main level and destroy the leftover variables. 1930 "Reset IDL. Return to main level and destroy the leftover variables.
1931This issues the following commands: 1931This issues the following commands:
1932RETALL 1932RETALL
1933WIDGET_CONTROL,/RESET 1933WIDGET_CONTROL,/RESET
1934CLOSE, /ALL 1934CLOSE, /ALL
@@ -1978,14 +1978,14 @@ HEAP_GC, /VERBOSE"
1978 ;; Set dummy values and kill the text 1978 ;; Set dummy values and kill the text
1979 (setq sep "@" sep-re "@ *" text "") 1979 (setq sep "@" sep-re "@ *" text "")
1980 (if idlwave-idlwave_routine_info-compiled 1980 (if idlwave-idlwave_routine_info-compiled
1981 (message 1981 (message
1982 "Routine Info warning: No match for BEGIN line in \n>>>\n%s\n<<<\n" 1982 "Routine Info warning: No match for BEGIN line in \n>>>\n%s\n<<<\n"
1983 idlwave-shell-command-output))) 1983 idlwave-shell-command-output)))
1984 (if (string-match "^>>>END OF IDLWAVE ROUTINE INFO.*" text) 1984 (if (string-match "^>>>END OF IDLWAVE ROUTINE INFO.*" text)
1985 (setq text (substring text 0 (match-beginning 0))) 1985 (setq text (substring text 0 (match-beginning 0)))
1986 (if idlwave-idlwave_routine_info-compiled 1986 (if idlwave-idlwave_routine_info-compiled
1987 (message 1987 (message
1988 "Routine Info warning: No match for END line in \n>>>\n%s\n<<<\n" 1988 "Routine Info warning: No match for END line in \n>>>\n%s\n<<<\n"
1989 idlwave-shell-command-output))) 1989 idlwave-shell-command-output)))
1990 (if (string-match "\\S-" text) 1990 (if (string-match "\\S-" text)
1991 ;; Obviously, the pro worked. Make a note that we have it now. 1991 ;; Obviously, the pro worked. Make a note that we have it now.
@@ -2003,59 +2003,59 @@ HEAP_GC, /VERBOSE"
2003 key (nth 4 specs) 2003 key (nth 4 specs)
2004 keys (if (and (stringp key) 2004 keys (if (and (stringp key)
2005 (not (string-match "\\` *\\'" key))) 2005 (not (string-match "\\` *\\'" key)))
2006 (mapcar 'list 2006 (mapcar 'list
2007 (delete "" (idlwave-split-string key " +"))))) 2007 (delete "" (idlwave-split-string key " +")))))
2008 (setq name (idlwave-sintern-routine-or-method name class t) 2008 (setq name (idlwave-sintern-routine-or-method name class t)
2009 class (idlwave-sintern-class class t) 2009 class (idlwave-sintern-class class t)
2010 file (if (equal file "") nil file) 2010 file (if (equal file "") nil file)
2011 keys (mapcar (lambda (x) 2011 keys (mapcar (lambda (x)
2012 (list (idlwave-sintern-keyword (car x) t))) keys)) 2012 (list (idlwave-sintern-keyword (car x) t))) keys))
2013 2013
2014 ;; In the following ignore routines already defined in buffers, 2014 ;; In the following ignore routines already defined in buffers,
2015 ;; assuming that if the buffer stuff differs, it is a "new" 2015 ;; assuming that if the buffer stuff differs, it is a "new"
2016 ;; version, not yet compiled, and should take precedence. 2016 ;; version, not yet compiled, and should take precedence.
2017 ;; We could do the same for the library to avoid duplicates - 2017 ;; We could do the same for the library to avoid duplicates -
2018 ;; but I think frequently a user might have several versions of 2018 ;; but I think frequently a user might have several versions of
2019 ;; the same function in different programs, and in this case the 2019 ;; the same function in different programs, and in this case the
2020 ;; compiled one will be the best guess of all versions. 2020 ;; compiled one will be the best guess of all versions.
2021 ;; Therefore, we leave duplicates of library routines in. 2021 ;; Therefore, we leave duplicates of library routines in.
2022 (cond ((string= name "$MAIN$")) ; ignore this one 2022 (cond ((string= name "$MAIN$")) ; ignore this one
2023 ((and (string= type "PRO") 2023 ((and (string= type "PRO")
2024 ;; FIXME: is it OK to make the buffer routines dominate? 2024 ;; FIXME: is it OK to make the buffer routines dominate?
2025 (or t (null file) 2025 (or t (null file)
2026 (not (idlwave-rinfo-assq name 'pro class 2026 (not (idlwave-rinfo-assq name 'pro class
2027 idlwave-buffer-routines))) 2027 idlwave-buffer-routines)))
2028 ;; FIXME: is it OK to make the library routines dominate? 2028 ;; FIXME: is it OK to make the library routines dominate?
2029 ;;(not (idlwave-rinfo-assq name 'pro class 2029 ;;(not (idlwave-rinfo-assq name 'pro class
2030 ;; idlwave-library-routines)) 2030 ;; idlwave-library-routines))
2031 ) 2031 )
2032 (setq entry (list name 'pro class 2032 (setq entry (list name 'pro class
2033 (cons 'compiled 2033 (cons 'compiled
2034 (if file 2034 (if file
2035 (list 2035 (list
2036 (file-name-nondirectory file) 2036 (file-name-nondirectory file)
2037 (idlwave-sintern-dir 2037 (idlwave-sintern-dir
2038 (file-name-directory file))))) 2038 (file-name-directory file)))))
2039 cs (cons nil keys))) 2039 cs (cons nil keys)))
2040 (if file 2040 (if file
2041 (push entry idlwave-compiled-routines) 2041 (push entry idlwave-compiled-routines)
2042 (push entry idlwave-unresolved-routines))) 2042 (push entry idlwave-unresolved-routines)))
2043 2043
2044 ((and (string= type "FUN") 2044 ((and (string= type "FUN")
2045 ;; FIXME: is it OK to make the buffer routines dominate? 2045 ;; FIXME: is it OK to make the buffer routines dominate?
2046 (or t (not file) 2046 (or t (not file)
2047 (not (idlwave-rinfo-assq name 'fun class 2047 (not (idlwave-rinfo-assq name 'fun class
2048 idlwave-buffer-routines))) 2048 idlwave-buffer-routines)))
2049 ;; FIXME: is it OK to make the library routines dominate? 2049 ;; FIXME: is it OK to make the library routines dominate?
2050 ;; (not (idlwave-rinfo-assq name 'fun class 2050 ;; (not (idlwave-rinfo-assq name 'fun class
2051 ;; idlwave-library-routines)) 2051 ;; idlwave-library-routines))
2052 ) 2052 )
2053 (setq entry (list name 'fun class 2053 (setq entry (list name 'fun class
2054 (cons 'compiled 2054 (cons 'compiled
2055 (if file 2055 (if file
2056 (list 2056 (list
2057 (file-name-nondirectory file) 2057 (file-name-nondirectory file)
2058 (idlwave-sintern-dir 2058 (idlwave-sintern-dir
2059 (file-name-directory file))))) 2059 (file-name-directory file)))))
2060 cs (cons nil keys))) 2060 cs (cons nil keys)))
2061 (if file 2061 (if file
@@ -2072,7 +2072,7 @@ Change the default directory for the process buffer to concur."
2072 (set-buffer (idlwave-shell-buffer)) 2072 (set-buffer (idlwave-shell-buffer))
2073 (if (string-match ",___cur[\n\r]\\(\\S-*\\) *[\n\r]" 2073 (if (string-match ",___cur[\n\r]\\(\\S-*\\) *[\n\r]"
2074 idlwave-shell-command-output) 2074 idlwave-shell-command-output)
2075 (let ((dir (substring idlwave-shell-command-output 2075 (let ((dir (substring idlwave-shell-command-output
2076 (match-beginning 1) (match-end 1)))) 2076 (match-beginning 1) (match-end 1))))
2077; (message "Setting Emacs working dir to %s" dir) 2077; (message "Setting Emacs working dir to %s" dir)
2078 (setq idlwave-shell-default-directory dir) 2078 (setq idlwave-shell-default-directory dir)
@@ -2086,10 +2086,10 @@ Change the default directory for the process buffer to concur."
2086 expression) 2086 expression)
2087 (save-excursion 2087 (save-excursion
2088 (goto-char apos) 2088 (goto-char apos)
2089 (setq expression (buffer-substring 2089 (setq expression (buffer-substring
2090 (catch 'exit 2090 (catch 'exit
2091 (while t 2091 (while t
2092 (if (not (re-search-backward 2092 (if (not (re-search-backward
2093 "[^][.A-Za-z0-9_() ]" bos t)) 2093 "[^][.A-Za-z0-9_() ]" bos t))
2094 (throw 'exit bos)) ;ran into bos 2094 (throw 'exit bos)) ;ran into bos
2095 (if (not (idlwave-is-pointer-dereference bol)) 2095 (if (not (idlwave-is-pointer-dereference bol))
@@ -2117,7 +2117,7 @@ Change the default directory for the process buffer to concur."
2117 idlwave-shell-command-output)) 2117 idlwave-shell-command-output))
2118 (string-match (concat match "\\([A-Za-z_0-9]+\\)") 2118 (string-match (concat match "\\([A-Za-z_0-9]+\\)")
2119 idlwave-shell-command-output)) 2119 idlwave-shell-command-output))
2120 (setq idlwave-shell-get-object-class 2120 (setq idlwave-shell-get-object-class
2121 (match-string 1 idlwave-shell-command-output))))) 2121 (match-string 1 idlwave-shell-command-output)))))
2122 2122
2123(defvar idlwave-sint-sysvars nil) 2123(defvar idlwave-sint-sysvars nil)
@@ -2131,7 +2131,7 @@ keywords."
2131 (interactive "P") 2131 (interactive "P")
2132 (let (exec-cmd) 2132 (let (exec-cmd)
2133 (cond 2133 (cond
2134 ((and 2134 ((and
2135 (setq exec-cmd (idlwave-shell-executive-command)) 2135 (setq exec-cmd (idlwave-shell-executive-command))
2136 (cdr exec-cmd) 2136 (cdr exec-cmd)
2137 (member (upcase (cdr exec-cmd)) 2137 (member (upcase (cdr exec-cmd))
@@ -2141,7 +2141,7 @@ keywords."
2141 (idlwave-shell-complete-filename)) 2141 (idlwave-shell-complete-filename))
2142 2142
2143 ((car-safe exec-cmd) 2143 ((car-safe exec-cmd)
2144 (setq idlwave-completion-help-info 2144 (setq idlwave-completion-help-info
2145 '(idlwave-shell-complete-execcomm-help)) 2145 '(idlwave-shell-complete-execcomm-help))
2146 (idlwave-complete-in-buffer 'execcomm 'execcomm 2146 (idlwave-complete-in-buffer 'execcomm 'execcomm
2147 idlwave-executive-commands-alist nil 2147 idlwave-executive-commands-alist nil
@@ -2160,7 +2160,7 @@ keywords."
2160 (let ((case-fold-search t)) 2160 (let ((case-fold-search t))
2161 (not (looking-at ".*obj_new"))))) 2161 (not (looking-at ".*obj_new")))))
2162 (idlwave-shell-complete-filename)) 2162 (idlwave-shell-complete-filename))
2163 2163
2164 (t 2164 (t
2165 ;; Default completion of modules and keywords 2165 ;; Default completion of modules and keywords
2166 (idlwave-complete arg))))) 2166 (idlwave-complete arg)))))
@@ -2182,7 +2182,7 @@ keywords."
2182We assume that we are after a file name when completing one of the 2182We assume that we are after a file name when completing one of the
2183args of an executive .run, .rnew or .compile." 2183args of an executive .run, .rnew or .compile."
2184 ;; CWD might have changed, resync, to set default directory 2184 ;; CWD might have changed, resync, to set default directory
2185 (idlwave-shell-resync-dirs) 2185 (idlwave-shell-resync-dirs)
2186 (let ((comint-file-name-chars idlwave-shell-file-name-chars)) 2186 (let ((comint-file-name-chars idlwave-shell-file-name-chars))
2187 (comint-dynamic-complete-as-filename))) 2187 (comint-dynamic-complete-as-filename)))
2188 2188
@@ -2223,7 +2223,7 @@ args of an executive .run, .rnew or .compile."
2223 2223
2224(defun idlwave-shell-redisplay (&optional hide) 2224(defun idlwave-shell-redisplay (&optional hide)
2225 "Tries to resync the display with where execution has stopped. 2225 "Tries to resync the display with where execution has stopped.
2226Issues a \"help,/trace\" command followed by a call to 2226Issues a \"help,/trace\" command followed by a call to
2227`idlwave-shell-display-line'. Also updates the breakpoint 2227`idlwave-shell-display-line'. Also updates the breakpoint
2228overlays." 2228overlays."
2229 (interactive) 2229 (interactive)
@@ -2236,7 +2236,7 @@ overlays."
2236 (idlwave-shell-bp-query)) 2236 (idlwave-shell-bp-query))
2237 2237
2238(defun idlwave-shell-display-level-in-calling-stack (&optional hide) 2238(defun idlwave-shell-display-level-in-calling-stack (&optional hide)
2239 (idlwave-shell-send-command 2239 (idlwave-shell-send-command
2240 "help,/trace" 2240 "help,/trace"
2241 `(progn 2241 `(progn
2242 ;; scanning for the state will reset the stack level - restore it 2242 ;; scanning for the state will reset the stack level - restore it
@@ -2267,14 +2267,14 @@ overlays."
2267 (setq idlwave-shell-calling-stack-index nmin 2267 (setq idlwave-shell-calling-stack-index nmin
2268 message (format "%d is the current calling stack level - can't go further down" 2268 message (format "%d is the current calling stack level - can't go further down"
2269 (- nmin))))) 2269 (- nmin)))))
2270 (setq idlwave-shell-calling-stack-routine 2270 (setq idlwave-shell-calling-stack-routine
2271 (nth 2 (nth idlwave-shell-calling-stack-index stack))) 2271 (nth 2 (nth idlwave-shell-calling-stack-index stack)))
2272 2272
2273 ;; only edebug if in that mode already 2273 ;; only edebug if in that mode already
2274 (idlwave-shell-display-line 2274 (idlwave-shell-display-line
2275 (nth idlwave-shell-calling-stack-index stack) nil 2275 (nth idlwave-shell-calling-stack-index stack) nil
2276 (unless idlwave-shell-electric-debug-mode 'no-debug)) 2276 (unless idlwave-shell-electric-debug-mode 'no-debug))
2277 (message (or message 2277 (message (or message
2278 (format "In routine %s (stack level %d)" 2278 (format "In routine %s (stack level %d)"
2279 idlwave-shell-calling-stack-routine 2279 idlwave-shell-calling-stack-routine
2280 (- idlwave-shell-calling-stack-index)))))) 2280 (- idlwave-shell-calling-stack-index))))))
@@ -2305,7 +2305,7 @@ used. Does nothing if the resulting frame is nil."
2305(defun idlwave-shell-pc-frame () 2305(defun idlwave-shell-pc-frame ()
2306 "Returns the frame for IDL execution." 2306 "Returns the frame for IDL execution."
2307 (and idlwave-shell-halt-frame 2307 (and idlwave-shell-halt-frame
2308 (list (nth 0 idlwave-shell-halt-frame) 2308 (list (nth 0 idlwave-shell-halt-frame)
2309 (nth 1 idlwave-shell-halt-frame) 2309 (nth 1 idlwave-shell-halt-frame)
2310 (nth 2 idlwave-shell-halt-frame)))) 2310 (nth 2 idlwave-shell-halt-frame))))
2311 2311
@@ -2323,7 +2323,7 @@ column in the line. If NO-DEBUG is non-nil, do *not* toggle the electric
2323debug mode." 2323debug mode."
2324 (if (not frame) 2324 (if (not frame)
2325 ;; Remove stop-line overlay from old position 2325 ;; Remove stop-line overlay from old position
2326 (progn 2326 (progn
2327 (setq overlay-arrow-string nil) 2327 (setq overlay-arrow-string nil)
2328 (setq idlwave-shell-mode-line-info nil) 2328 (setq idlwave-shell-mode-line-info nil)
2329 (setq idlwave-shell-is-stopped nil) 2329 (setq idlwave-shell-is-stopped nil)
@@ -2340,10 +2340,10 @@ debug mode."
2340;;; 2340;;;
2341;;; buffer : the buffer to display a line in. 2341;;; buffer : the buffer to display a line in.
2342;;; select-shell: current buffer is the shell. 2342;;; select-shell: current buffer is the shell.
2343;;; 2343;;;
2344 (setq idlwave-shell-mode-line-info 2344 (setq idlwave-shell-mode-line-info
2345 (if (nth 2 frame) 2345 (if (nth 2 frame)
2346 (format "[%d:%s]" 2346 (format "[%d:%s]"
2347 (- idlwave-shell-calling-stack-index) 2347 (- idlwave-shell-calling-stack-index)
2348 (nth 2 frame)))) 2348 (nth 2 frame))))
2349 (let* ((buffer (idlwave-find-file-noselect (car frame) 'shell)) 2349 (let* ((buffer (idlwave-find-file-noselect (car frame) 'shell))
@@ -2367,7 +2367,7 @@ debug mode."
2367 (forward-line 0) 2367 (forward-line 0)
2368 (setq pos (point)) 2368 (setq pos (point))
2369 (setq idlwave-shell-is-stopped t) 2369 (setq idlwave-shell-is-stopped t)
2370 2370
2371 (if idlwave-shell-stop-line-overlay 2371 (if idlwave-shell-stop-line-overlay
2372 ;; Move overlay 2372 ;; Move overlay
2373 (move-overlay idlwave-shell-stop-line-overlay 2373 (move-overlay idlwave-shell-stop-line-overlay
@@ -2389,12 +2389,12 @@ debug mode."
2389 ;; If we have the column of the error, move the cursor there. 2389 ;; If we have the column of the error, move the cursor there.
2390 (if col (move-to-column col)) 2390 (if col (move-to-column col))
2391 (setq pos (point)) 2391 (setq pos (point))
2392 2392
2393 ;; Enter electric debug mode, if not prohibited and not in 2393 ;; Enter electric debug mode, if not prohibited and not in
2394 ;; it already 2394 ;; it already
2395 (when (and (or 2395 (when (and (or
2396 (eq idlwave-shell-automatic-electric-debug t) 2396 (eq idlwave-shell-automatic-electric-debug t)
2397 (and 2397 (and
2398 (eq idlwave-shell-automatic-electric-debug 'breakpoint) 2398 (eq idlwave-shell-automatic-electric-debug 'breakpoint)
2399 (not (eq idlwave-shell-current-state 'error)))) 2399 (not (eq idlwave-shell-current-state 'error))))
2400 (not no-debug) 2400 (not no-debug)
@@ -2402,14 +2402,14 @@ debug mode."
2402 (not idlwave-shell-electric-debug-mode)) 2402 (not idlwave-shell-electric-debug-mode))
2403 (idlwave-shell-electric-debug-mode) 2403 (idlwave-shell-electric-debug-mode)
2404 (setq electric t))) 2404 (setq electric t)))
2405 2405
2406 ;; Make sure pos is really displayed in the window. 2406 ;; Make sure pos is really displayed in the window.
2407 (set-window-point window pos) 2407 (set-window-point window pos)
2408 2408
2409 ;; If we came from the shell, go back there. Otherwise select 2409 ;; If we came from the shell, go back there. Otherwise select
2410 ;; the window where the error is displayed. 2410 ;; the window where the error is displayed.
2411 (if (or (and idlwave-shell-electric-zap-to-file electric) 2411 (if (or (and idlwave-shell-electric-zap-to-file electric)
2412 (and (equal (buffer-name) (idlwave-shell-buffer)) 2412 (and (equal (buffer-name) (idlwave-shell-buffer))
2413 (not select-shell))) 2413 (not select-shell)))
2414 (select-window window)))))) 2414 (select-window window))))))
2415 2415
@@ -2419,35 +2419,35 @@ debug mode."
2419 (interactive "p") 2419 (interactive "p")
2420 (or (not arg) (< arg 1) 2420 (or (not arg) (< arg 1)
2421 (setq arg 1)) 2421 (setq arg 1))
2422 (idlwave-shell-send-command 2422 (idlwave-shell-send-command
2423 (concat ".s " (if (integerp arg) (int-to-string arg) arg)) 2423 (concat ".s " (if (integerp arg) (int-to-string arg) arg))
2424 nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t)) 2424 nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t))
2425 2425
2426(defun idlwave-shell-stepover (arg) 2426(defun idlwave-shell-stepover (arg)
2427 "Stepover one source line. 2427 "Stepover one source line.
2428If given prefix argument ARG, step ARG source lines. 2428If given prefix argument ARG, step ARG source lines.
2429Uses IDL's stepover executive command which does not enter called functions." 2429Uses IDL's stepover executive command which does not enter called functions."
2430 (interactive "p") 2430 (interactive "p")
2431 (or (not arg) (< arg 1) 2431 (or (not arg) (< arg 1)
2432 (setq arg 1)) 2432 (setq arg 1))
2433 (idlwave-shell-send-command 2433 (idlwave-shell-send-command
2434 (concat ".so " (if (integerp arg) (int-to-string arg) arg)) 2434 (concat ".so " (if (integerp arg) (int-to-string arg) arg))
2435 nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t)) 2435 nil (if (idlwave-shell-hide-p 'debug) 'mostly) nil t))
2436 2436
2437(defun idlwave-shell-break-here (&optional count cmd condition no-show) 2437(defun idlwave-shell-break-here (&optional count cmd condition no-show)
2438 "Set breakpoint at current line. 2438 "Set breakpoint at current line.
2439 2439
2440If Count is nil then an ordinary breakpoint is set. We treat a count 2440If Count is nil then an ordinary breakpoint is set. We treat a count
2441of 1 as a temporary breakpoint using the ONCE keyword. Counts greater 2441of 1 as a temporary breakpoint using the ONCE keyword. Counts greater
2442than 1 use the IDL AFTER=count keyword to break only after reaching 2442than 1 use the IDL AFTER=count keyword to break only after reaching
2443the statement count times. 2443the statement count times.
2444 2444
2445Optional argument CMD is a list or function to evaluate upon reaching 2445Optional argument CMD is a list or function to evaluate upon reaching
2446the breakpoint." 2446the breakpoint."
2447 2447
2448 (interactive "P") 2448 (interactive "P")
2449 (when (listp count) 2449 (when (listp count)
2450 (if (equal (car count) 4) 2450 (if (equal (car count) 4)
2451 (setq condition (read-string "Break Condition: "))) 2451 (setq condition (read-string "Break Condition: ")))
2452 (setq count nil)) 2452 (setq count nil))
2453 (idlwave-shell-set-bp 2453 (idlwave-shell-set-bp
@@ -2470,7 +2470,7 @@ the problem with not being able to set the breakpoint."
2470 (progn 2470 (progn
2471 (if (progn 2471 (if (progn
2472 (beep) 2472 (beep)
2473 (y-or-n-p 2473 (y-or-n-p
2474 (concat "Okay to recompile file " 2474 (concat "Okay to recompile file "
2475 (idlwave-shell-bp-get bp 'file) " "))) 2475 (idlwave-shell-bp-get bp 'file) " ")))
2476 ;; Recompile 2476 ;; Recompile
@@ -2478,7 +2478,7 @@ the problem with not being able to set the breakpoint."
2478 ;; Clean up before retrying 2478 ;; Clean up before retrying
2479 (idlwave-shell-command-failure) 2479 (idlwave-shell-command-failure)
2480 (idlwave-shell-send-command 2480 (idlwave-shell-send-command
2481 (concat ".run " (idlwave-shell-bp-get bp 'file)) nil 2481 (concat ".run " (idlwave-shell-bp-get bp 'file)) nil
2482 (if (idlwave-shell-hide-p 'run) 'mostly) nil t) 2482 (if (idlwave-shell-hide-p 'run) 'mostly) nil t)
2483 ;; Try setting breakpoint again 2483 ;; Try setting breakpoint again
2484 (idlwave-shell-set-bp bp)) 2484 (idlwave-shell-set-bp bp))
@@ -2502,9 +2502,9 @@ breakpoint can not be set."
2502(defun idlwave-shell-cont (&optional no-show) 2502(defun idlwave-shell-cont (&optional no-show)
2503 "Continue executing." 2503 "Continue executing."
2504 (interactive) 2504 (interactive)
2505 (idlwave-shell-send-command ".c" (unless no-show 2505 (idlwave-shell-send-command ".c" (unless no-show
2506 '(idlwave-shell-redisplay 'hide)) 2506 '(idlwave-shell-redisplay 'hide))
2507 (if (idlwave-shell-hide-p 'debug) 'mostly) 2507 (if (idlwave-shell-hide-p 'debug) 'mostly)
2508 nil t)) 2508 nil t))
2509 2509
2510(defun idlwave-shell-go () 2510(defun idlwave-shell-go ()
@@ -2585,7 +2585,7 @@ at a breakpoint."
2585 ((eq force 'enable) (setq disabled t))) 2585 ((eq force 'enable) (setq disabled t)))
2586 (when bp 2586 (when bp
2587 (setf (nth 3 (cdr (cdr bp))) (not disabled)) 2587 (setf (nth 3 (cdr (cdr bp))) (not disabled))
2588 (idlwave-shell-send-command 2588 (idlwave-shell-send-command
2589 (concat "breakpoint," 2589 (concat "breakpoint,"
2590 (if disabled "/enable," "/disable,") 2590 (if disabled "/enable," "/disable,")
2591 (int-to-string (idlwave-shell-bp-get bp))) 2591 (int-to-string (idlwave-shell-bp-get bp)))
@@ -2599,13 +2599,13 @@ If ENABLE is non-nil, enable them instead."
2599 (while bpl 2599 (while bpl
2600 (setq disabled (idlwave-shell-bp-get (car bpl) 'disabled)) 2600 (setq disabled (idlwave-shell-bp-get (car bpl) 'disabled))
2601 (when (idlwave-xor (not disabled) (eq enable 'enable)) 2601 (when (idlwave-xor (not disabled) (eq enable 'enable))
2602 (idlwave-shell-toggle-enable-current-bp 2602 (idlwave-shell-toggle-enable-current-bp
2603 (car bpl) (if (eq enable 'enable) 'enable 'disable) no-update) 2603 (car bpl) (if (eq enable 'enable) 'enable 'disable) no-update)
2604 (push (car bpl) modified)) 2604 (push (car bpl) modified))
2605 (setq bpl (cdr bpl))) 2605 (setq bpl (cdr bpl)))
2606 (unless no-update (idlwave-shell-bp-query)) 2606 (unless no-update (idlwave-shell-bp-query))
2607 modified)) 2607 modified))
2608 2608
2609(defun idlwave-shell-to-here () 2609(defun idlwave-shell-to-here ()
2610 "Set a breakpoint with count 1 then continue." 2610 "Set a breakpoint with count 1 then continue."
2611 (interactive) 2611 (interactive)
@@ -2643,7 +2643,7 @@ in the current routine."
2643(defun idlwave-shell-set-bp-in-module (module) 2643(defun idlwave-shell-set-bp-in-module (module)
2644 "Set breakpoint in module. Assumes that `idlwave-shell-sources-alist' 2644 "Set breakpoint in module. Assumes that `idlwave-shell-sources-alist'
2645contains an entry for that module." 2645contains an entry for that module."
2646 (let ((source-file (car-safe 2646 (let ((source-file (car-safe
2647 (cdr-safe 2647 (cdr-safe
2648 (assoc (upcase module) 2648 (assoc (upcase module)
2649 idlwave-shell-sources-alist)))) 2649 idlwave-shell-sources-alist))))
@@ -2662,7 +2662,7 @@ contains an entry for that module."
2662 (save-excursion 2662 (save-excursion
2663 (goto-char (point-min)) 2663 (goto-char (point-min))
2664 (let ((case-fold-search t)) 2664 (let ((case-fold-search t))
2665 (if (re-search-forward 2665 (if (re-search-forward
2666 (concat "^[ \t]*\\(pro\\|function\\)[ \t]+" 2666 (concat "^[ \t]*\\(pro\\|function\\)[ \t]+"
2667 (downcase module) 2667 (downcase module)
2668 "[ \t\n,]") nil t) 2668 "[ \t\n,]") nil t)
@@ -2704,7 +2704,7 @@ Sets a breakpoint with count 1 at end of block, then continues."
2704 "Attempt to run until this procedure exits. 2704 "Attempt to run until this procedure exits.
2705Runs to the last statement and then steps 1 statement. Use the .out command." 2705Runs to the last statement and then steps 1 statement. Use the .out command."
2706 (interactive) 2706 (interactive)
2707 (idlwave-shell-send-command ".o" nil 2707 (idlwave-shell-send-command ".o" nil
2708 (if (idlwave-shell-hide-p 'debug) 'mostly) 2708 (if (idlwave-shell-hide-p 'debug) 'mostly)
2709 nil t)) 2709 nil t))
2710 2710
@@ -2751,7 +2751,7 @@ Runs to the last statement and then steps 1 statement. Use the .out command."
2751 (interactive "e") 2751 (interactive "e")
2752 (let ((transient-mark-mode t) 2752 (let ((transient-mark-mode t)
2753 (zmacs-regions t) 2753 (zmacs-regions t)
2754 (tracker (if (featurep 'xemacs) 2754 (tracker (if (featurep 'xemacs)
2755 (if (fboundp 'default-mouse-track-event-is-with-button) 2755 (if (fboundp 'default-mouse-track-event-is-with-button)
2756 'idlwave-xemacs-hack-mouse-track 2756 'idlwave-xemacs-hack-mouse-track
2757 'mouse-track) 2757 'mouse-track)
@@ -2769,7 +2769,7 @@ Runs to the last statement and then steps 1 statement. Use the .out command."
2769 (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button))) 2769 (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button)))
2770 (unwind-protect 2770 (unwind-protect
2771 (progn 2771 (progn
2772 (fset 'default-mouse-track-event-is-with-button 2772 (fset 'default-mouse-track-event-is-with-button
2773 'idlwave-default-mouse-track-event-is-with-button) 2773 'idlwave-default-mouse-track-event-is-with-button)
2774 (mouse-track event)) 2774 (mouse-track event))
2775 (fset 'default-mouse-track-event-is-with-button oldfunc)))) 2775 (fset 'default-mouse-track-event-is-with-button oldfunc))))
@@ -2801,7 +2801,7 @@ Runs to the last statement and then steps 1 statement. Use the .out command."
2801(defvar idlwave-shell-examine-completion-list nil) 2801(defvar idlwave-shell-examine-completion-list nil)
2802 2802
2803(defun idlwave-shell-print (arg &optional help ev complete-help-type) 2803(defun idlwave-shell-print (arg &optional help ev complete-help-type)
2804 "Print current expression. 2804 "Print current expression.
2805 2805
2806With HELP non-nil, show help on expression. If HELP is a string, 2806With HELP non-nil, show help on expression. If HELP is a string,
2807the expression will be put in place of ___, e.g.: 2807the expression will be put in place of ___, e.g.:
@@ -2834,11 +2834,11 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
2834 (save-excursion 2834 (save-excursion
2835 (let* ((process (get-buffer-process (current-buffer))) 2835 (let* ((process (get-buffer-process (current-buffer)))
2836 (process-mark (if process (process-mark process))) 2836 (process-mark (if process (process-mark process)))
2837 (stack-label 2837 (stack-label
2838 (if (and (integerp idlwave-shell-calling-stack-index) 2838 (if (and (integerp idlwave-shell-calling-stack-index)
2839 (> idlwave-shell-calling-stack-index 0)) 2839 (> idlwave-shell-calling-stack-index 0))
2840 (format " [-%d:%s]" 2840 (format " [-%d:%s]"
2841 idlwave-shell-calling-stack-index 2841 idlwave-shell-calling-stack-index
2842 idlwave-shell-calling-stack-routine))) 2842 idlwave-shell-calling-stack-routine)))
2843 expr beg end cmd examine-hook) 2843 expr beg end cmd examine-hook)
2844 (cond 2844 (cond
@@ -2868,7 +2868,7 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
2868 ;; an array 2868 ;; an array
2869 (forward-sexp)) 2869 (forward-sexp))
2870 (setq end (point))))) 2870 (setq end (point)))))
2871 2871
2872 ;; Get expression, but first move the begin mark if a 2872 ;; Get expression, but first move the begin mark if a
2873 ;; process-mark is inside the region, to keep the overlay from 2873 ;; process-mark is inside the region, to keep the overlay from
2874 ;; wandering in the Shell. 2874 ;; wandering in the Shell.
@@ -2879,17 +2879,17 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
2879 2879
2880 ;; Show the overlay(s) and attach any necessary hooks and filters 2880 ;; Show the overlay(s) and attach any necessary hooks and filters
2881 (when (and beg end idlwave-shell-expression-overlay) 2881 (when (and beg end idlwave-shell-expression-overlay)
2882 (move-overlay idlwave-shell-expression-overlay beg end 2882 (move-overlay idlwave-shell-expression-overlay beg end
2883 (current-buffer)) 2883 (current-buffer))
2884 (add-hook 'pre-command-hook 2884 (add-hook 'pre-command-hook
2885 'idlwave-shell-delete-expression-overlay)) 2885 'idlwave-shell-delete-expression-overlay))
2886 (setq examine-hook 2886 (setq examine-hook
2887 (if idlwave-shell-separate-examine-output 2887 (if idlwave-shell-separate-examine-output
2888 'idlwave-shell-examine-display 2888 'idlwave-shell-examine-display
2889 'idlwave-shell-examine-highlight)) 2889 'idlwave-shell-examine-highlight))
2890 (add-hook 'pre-command-hook 2890 (add-hook 'pre-command-hook
2891 'idlwave-shell-delete-output-overlay) 2891 'idlwave-shell-delete-output-overlay)
2892 2892
2893 ;; Remove empty or comment-only lines 2893 ;; Remove empty or comment-only lines
2894 (while (string-match "\n[ \t]*\\(;.*\\)?\r*\n" expr) 2894 (while (string-match "\n[ \t]*\\(;.*\\)?\r*\n" expr)
2895 (setq expr (replace-match "\n" t t expr))) 2895 (setq expr (replace-match "\n" t t expr)))
@@ -2899,41 +2899,41 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
2899 ;; Remove final newline 2899 ;; Remove final newline
2900 (if (string-match "\n[ \t\r]*\\'" expr) 2900 (if (string-match "\n[ \t\r]*\\'" expr)
2901 (setq expr (replace-match "" t t expr))) 2901 (setq expr (replace-match "" t t expr)))
2902 2902
2903 (catch 'exit 2903 (catch 'exit
2904 ;; Pop-up or complete on the examine selection list, if appropriate 2904 ;; Pop-up or complete on the examine selection list, if appropriate
2905 (if (or 2905 (if (or
2906 complete-help-type 2906 complete-help-type
2907 (and ev idlwave-shell-examine-alist) 2907 (and ev idlwave-shell-examine-alist)
2908 (consp help)) 2908 (consp help))
2909 (let ((help-cons 2909 (let ((help-cons
2910 (if (consp help) help 2910 (if (consp help) help
2911 (assoc 2911 (assoc
2912 ;; A cons from either a pop-up or mini-buffer completion 2912 ;; A cons from either a pop-up or mini-buffer completion
2913 (if complete-help-type 2913 (if complete-help-type
2914 (idlwave-one-key-select 'idlwave-shell-examine-alist 2914 (idlwave-one-key-select 'idlwave-shell-examine-alist
2915 "Examine with: " 1.5) 2915 "Examine with: " 1.5)
2916;; (idlwave-completing-read 2916;; (idlwave-completing-read
2917;; "Examine with: " 2917;; "Examine with: "
2918;; idlwave-shell-examine-alist nil nil nil 2918;; idlwave-shell-examine-alist nil nil nil
2919;; 'idlwave-shell-examine-completion-list 2919;; 'idlwave-shell-examine-completion-list
2920;; "Print") 2920;; "Print")
2921 (idlwave-popup-select 2921 (idlwave-popup-select
2922 ev 2922 ev
2923 (mapcar 'car idlwave-shell-examine-alist) 2923 (mapcar 'car idlwave-shell-examine-alist)
2924 "Examine with")) 2924 "Examine with"))
2925 idlwave-shell-examine-alist)))) 2925 idlwave-shell-examine-alist))))
2926 (setq help (cdr help-cons)) 2926 (setq help (cdr help-cons))
2927 (if (null help) (throw 'exit nil)) 2927 (if (null help) (throw 'exit nil))
2928 (if idlwave-shell-separate-examine-output 2928 (if idlwave-shell-separate-examine-output
2929 (setq idlwave-shell-examine-label 2929 (setq idlwave-shell-examine-label
2930 (concat 2930 (concat
2931 (format "==>%s<==\n%s:" expr (car help-cons)) 2931 (format "==>%s<==\n%s:" expr (car help-cons))
2932 stack-label "\n")))) 2932 stack-label "\n"))))
2933 ;; The regular help label (no popups, cons cells, etc.) 2933 ;; The regular help label (no popups, cons cells, etc.)
2934 (setq idlwave-shell-examine-label 2934 (setq idlwave-shell-examine-label
2935 (concat 2935 (concat
2936 (format "==>%s<==\n%s:" expr 2936 (format "==>%s<==\n%s:" expr
2937 (cond ((null help) "print") 2937 (cond ((null help) "print")
2938 ((stringp help) help) 2938 ((stringp help) help)
2939 (t (symbol-name help)))) 2939 (t (symbol-name help))))
@@ -2946,9 +2946,9 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
2946 idlwave-shell-calling-stack-index))) 2946 idlwave-shell-calling-stack-index)))
2947 (setq cmd (idlwave-shell-help-statement help expr)) 2947 (setq cmd (idlwave-shell-help-statement help expr))
2948 ;;(idlwave-shell-recenter-shell-window) 2948 ;;(idlwave-shell-recenter-shell-window)
2949 (idlwave-shell-send-command 2949 (idlwave-shell-send-command
2950 cmd 2950 cmd
2951 examine-hook 2951 examine-hook
2952 (if idlwave-shell-separate-examine-output 'hide)))))) 2952 (if idlwave-shell-separate-examine-output 'hide))))))
2953 2953
2954(defvar idlwave-shell-examine-window-alist nil 2954(defvar idlwave-shell-examine-window-alist nil
@@ -2975,9 +2975,9 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
2975 (let* ((end (or 2975 (let* ((end (or
2976 (re-search-backward idlwave-shell-prompt-pattern nil t) 2976 (re-search-backward idlwave-shell-prompt-pattern nil t)
2977 (point-max))) 2977 (point-max)))
2978 (beg (progn 2978 (beg (progn
2979 (goto-char 2979 (goto-char
2980 (or (progn (if (re-search-backward 2980 (or (progn (if (re-search-backward
2981 idlwave-shell-prompt-pattern nil t) 2981 idlwave-shell-prompt-pattern nil t)
2982 (match-end 0))) 2982 (match-end 0)))
2983 (point-min))) 2983 (point-min)))
@@ -2994,21 +2994,21 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
2994 (setq buffer-read-only t) 2994 (setq buffer-read-only t)
2995 (move-overlay idlwave-shell-output-overlay cur-beg cur-end 2995 (move-overlay idlwave-shell-output-overlay cur-beg cur-end
2996 (current-buffer)) 2996 (current-buffer))
2997 2997
2998 ;; Look for the examine buffer in all windows. If one is 2998 ;; Look for the examine buffer in all windows. If one is
2999 ;; found in a frame all by itself, use that, otherwise, switch 2999 ;; found in a frame all by itself, use that, otherwise, switch
3000 ;; to or create an examine window in this frame, and resize if 3000 ;; to or create an examine window in this frame, and resize if
3001 ;; it's a newly created window 3001 ;; it's a newly created window
3002 (let* ((winlist (get-buffer-window-list "*Examine*" nil 'visible))) 3002 (let* ((winlist (get-buffer-window-list "*Examine*" nil 'visible)))
3003 (setq win (idlwave-display-buffer 3003 (setq win (idlwave-display-buffer
3004 "*Examine*" 3004 "*Examine*"
3005 nil 3005 nil
3006 (let ((list winlist) thiswin) 3006 (let ((list winlist) thiswin)
3007 (catch 'exit 3007 (catch 'exit
3008 (save-selected-window 3008 (save-selected-window
3009 (while (setq thiswin (pop list)) 3009 (while (setq thiswin (pop list))
3010 (select-window thiswin) 3010 (select-window thiswin)
3011 (if (one-window-p) 3011 (if (one-window-p)
3012 (throw 'exit (window-frame thiswin))))))))) 3012 (throw 'exit (window-frame thiswin)))))))))
3013 (set-window-start win (point-min)) ; Ensure the point is visible. 3013 (set-window-start win (point-min)) ; Ensure the point is visible.
3014 (save-selected-window 3014 (save-selected-window
@@ -3029,7 +3029,7 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
3029 ;; And add the new value. 3029 ;; And add the new value.
3030 (if (setq elt (assoc win idlwave-shell-examine-window-alist)) 3030 (if (setq elt (assoc win idlwave-shell-examine-window-alist))
3031 (setcdr elt (window-height)) 3031 (setcdr elt (window-height))
3032 (add-to-list 'idlwave-shell-examine-window-alist 3032 (add-to-list 'idlwave-shell-examine-window-alist
3033 (cons win (window-height))))))))) 3033 (cons win (window-height)))))))))
3034 ;; Recenter for maximum output, after widened 3034 ;; Recenter for maximum output, after widened
3035 (save-selected-window 3035 (save-selected-window
@@ -3047,7 +3047,7 @@ idlw-shell-examine-alist via mini-buffer shortcut key."
3047 3047
3048(defun idlwave-shell-examine-display-clear () 3048(defun idlwave-shell-examine-display-clear ()
3049 (interactive) 3049 (interactive)
3050 (save-excursion 3050 (save-excursion
3051 (let ((buf (get-buffer "*Examine*"))) 3051 (let ((buf (get-buffer "*Examine*")))
3052 (when (bufferp buf) 3052 (when (bufferp buf)
3053 (set-buffer buf) 3053 (set-buffer buf)
@@ -3075,7 +3075,7 @@ versions of IDL."
3075 ;; break. We will look for identifiers and exclude cases where we 3075 ;; break. We will look for identifiers and exclude cases where we
3076 ;; know it is not a variable. To distinguish array references from 3076 ;; know it is not a variable. To distinguish array references from
3077 ;; function calls, we require that arrays use [] instead of () 3077 ;; function calls, we require that arrays use [] instead of ()
3078 3078
3079 (while (string-match 3079 (while (string-match
3080 "\\(\\`\\|[^a-zA-Z0-9$_][ \t]*\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)\\([ \t]*[^a-zA-Z0-9$_]\\|\\'\\)" expr start) 3080 "\\(\\`\\|[^a-zA-Z0-9$_][ \t]*\\)\\([a-zA-Z][a-zA-Z0-9$_]*\\)\\([ \t]*[^a-zA-Z0-9$_]\\|\\'\\)" expr start)
3081 (setq var (match-string 2 expr) 3081 (setq var (match-string 2 expr)
@@ -3091,7 +3091,7 @@ versions of IDL."
3091 ((string-match "->[ \t]*\\'" pre)) ;; a method 3091 ((string-match "->[ \t]*\\'" pre)) ;; a method
3092 ((string-match "\\.\\'" pre)) ;; structure member 3092 ((string-match "\\.\\'" pre)) ;; structure member
3093 ((and (string-match "\\([\"\']\\)[^\1]*$" pre) 3093 ((and (string-match "\\([\"\']\\)[^\1]*$" pre)
3094 (string-match (concat "^[^" (match-string 1 pre) "]*" 3094 (string-match (concat "^[^" (match-string 1 pre) "]*"
3095 (match-string 1 pre)) post))) 3095 (match-string 1 pre)) post)))
3096 (t ;; seems to be a variable - replace its name in the 3096 (t ;; seems to be a variable - replace its name in the
3097 ;; expression with the fetch. 3097 ;; expression with the fetch.
@@ -3109,13 +3109,13 @@ to insert expression in place of the marker ___, e.g.: print,
3109size(___,/DIMENSIONS)" 3109size(___,/DIMENSIONS)"
3110 (cond 3110 (cond
3111 ((null help) (concat "print, " expr)) 3111 ((null help) (concat "print, " expr))
3112 ((stringp help) 3112 ((stringp help)
3113 (if (string-match "\\(^\\|[^_]\\)\\(___\\)\\([^_]\\|$\\)" help) 3113 (if (string-match "\\(^\\|[^_]\\)\\(___\\)\\([^_]\\|$\\)" help)
3114 (concat (substring help 0 (match-beginning 2)) 3114 (concat (substring help 0 (match-beginning 2))
3115 expr 3115 expr
3116 (substring help (match-end 2))))) 3116 (substring help (match-end 2)))))
3117 (t (concat "help, " expr)))) 3117 (t (concat "help, " expr))))
3118 3118
3119 3119
3120(defun idlwave-shell-examine-highlight () 3120(defun idlwave-shell-examine-highlight ()
3121 "Highlight the most recent IDL output." 3121 "Highlight the most recent IDL output."
@@ -3123,7 +3123,7 @@ size(___,/DIMENSIONS)"
3123 (process (get-buffer-process buffer)) 3123 (process (get-buffer-process buffer))
3124 (process-mark (if process (process-mark process))) 3124 (process-mark (if process (process-mark process)))
3125 output-begin output-end) 3125 output-begin output-end)
3126 (save-excursion 3126 (save-excursion
3127 (set-buffer buffer) 3127 (set-buffer buffer)
3128 (goto-char process-mark) 3128 (goto-char process-mark)
3129 (beginning-of-line) 3129 (beginning-of-line)
@@ -3131,12 +3131,12 @@ size(___,/DIMENSIONS)"
3131 (re-search-backward idlwave-shell-prompt-pattern nil t) 3131 (re-search-backward idlwave-shell-prompt-pattern nil t)
3132 (beginning-of-line 2) 3132 (beginning-of-line 2)
3133 (setq output-begin (point))) 3133 (setq output-begin (point)))
3134 3134
3135 ;; First make sure the shell window is visible 3135 ;; First make sure the shell window is visible
3136 (idlwave-display-buffer (idlwave-shell-buffer) 3136 (idlwave-display-buffer (idlwave-shell-buffer)
3137 nil (idlwave-shell-shell-frame)) 3137 nil (idlwave-shell-shell-frame))
3138 (if (and idlwave-shell-output-overlay process-mark) 3138 (if (and idlwave-shell-output-overlay process-mark)
3139 (move-overlay idlwave-shell-output-overlay 3139 (move-overlay idlwave-shell-output-overlay
3140 output-begin output-end buffer)))) 3140 output-begin output-end buffer))))
3141 3141
3142(defun idlwave-shell-delete-output-overlay () 3142(defun idlwave-shell-delete-output-overlay ()
@@ -3147,7 +3147,7 @@ size(___,/DIMENSIONS)"
3147 (delete-overlay idlwave-shell-output-overlay)) 3147 (delete-overlay idlwave-shell-output-overlay))
3148 (error nil)) 3148 (error nil))
3149 (remove-hook 'pre-command-hook 'idlwave-shell-delete-output-overlay))) 3149 (remove-hook 'pre-command-hook 'idlwave-shell-delete-output-overlay)))
3150 3150
3151(defun idlwave-shell-delete-expression-overlay () 3151(defun idlwave-shell-delete-expression-overlay ()
3152 (unless (or (eq this-command 'idlwave-shell-mouse-nop) 3152 (unless (or (eq this-command 'idlwave-shell-mouse-nop)
3153 (eq this-command 'handle-switch-frame)) 3153 (eq this-command 'handle-switch-frame))
@@ -3176,7 +3176,7 @@ contains four items:
3176count - number of times to execute breakpoint. When count reaches 0 3176count - number of times to execute breakpoint. When count reaches 0
3177 the breakpoint is cleared and removed from the alist. 3177 the breakpoint is cleared and removed from the alist.
3178 3178
3179command - command to execute when breakpoint is reached, either a 3179command - command to execute when breakpoint is reached, either a
3180 lisp function to be called with `funcall' with no arguments or a 3180 lisp function to be called with `funcall' with no arguments or a
3181 list to be evaluated with `eval'. 3181 list to be evaluated with `eval'.
3182 3182
@@ -3209,11 +3209,11 @@ If there is a prefix argument, display IDL process."
3209 (insert "\nend\n")) 3209 (insert "\nend\n"))
3210 (save-buffer 0))) 3210 (save-buffer 0)))
3211 (idlwave-shell-send-command (concat ".run " idlwave-shell-temp-pro-file) 3211 (idlwave-shell-send-command (concat ".run " idlwave-shell-temp-pro-file)
3212 nil 3212 nil
3213 (if (idlwave-shell-hide-p 'run) 'mostly) 3213 (if (idlwave-shell-hide-p 'run) 'mostly)
3214 nil t) 3214 nil t)
3215 (if n 3215 (if n
3216 (idlwave-display-buffer (idlwave-shell-buffer) 3216 (idlwave-display-buffer (idlwave-shell-buffer)
3217 nil (idlwave-shell-shell-frame)))) 3217 nil (idlwave-shell-shell-frame))))
3218 3218
3219(defun idlwave-shell-evaluate-region (beg end &optional n) 3219(defun idlwave-shell-evaluate-region (beg end &optional n)
@@ -3224,7 +3224,7 @@ Does not work for a region with multiline blocks - use
3224 (interactive "r\nP") 3224 (interactive "r\nP")
3225 (idlwave-shell-send-command (buffer-substring beg end)) 3225 (idlwave-shell-send-command (buffer-substring beg end))
3226 (if n 3226 (if n
3227 (idlwave-display-buffer (idlwave-shell-buffer) 3227 (idlwave-display-buffer (idlwave-shell-buffer)
3228 nil (idlwave-shell-shell-frame)))) 3228 nil (idlwave-shell-shell-frame))))
3229 3229
3230(defun idlwave-shell-delete-temp-files () 3230(defun idlwave-shell-delete-temp-files ()
@@ -3279,7 +3279,7 @@ Queries IDL using the string in `idlwave-shell-bp-query'."
3279 'hide)) 3279 'hide))
3280 3280
3281(defun idlwave-shell-bp-get (bp &optional item) 3281(defun idlwave-shell-bp-get (bp &optional item)
3282 "Get a value for a breakpoint. 3282 "Get a value for a breakpoint.
3283BP has the form of elements in idlwave-shell-bp-alist. Optional 3283BP has the form of elements in idlwave-shell-bp-alist. Optional
3284second arg ITEM is the particular value to retrieve. ITEM can be 3284second arg ITEM is the particular value to retrieve. ITEM can be
3285'file, 'line, 'index, 'module, 'count, 'cmd, 'condition, 'disabled or 3285'file, 'line, 'index, 'module, 'count, 'cmd, 'condition, 'disabled or
@@ -3314,8 +3314,8 @@ breakpoint overlays."
3314 ;; Searching the breakpoints 3314 ;; Searching the breakpoints
3315 ;; In IDL 5.5, the breakpoint reporting format changed. 3315 ;; In IDL 5.5, the breakpoint reporting format changed.
3316 (bp-re54 "^[ \t]*\\([0-9]+\\)[ \t]+\\(\\S-+\\)?[ \t]+\\([0-9]+\\)[ \t]+\\(\\S-+\\)") 3316 (bp-re54 "^[ \t]*\\([0-9]+\\)[ \t]+\\(\\S-+\\)?[ \t]+\\([0-9]+\\)[ \t]+\\(\\S-+\\)")
3317 (bp-re55 3317 (bp-re55
3318 (concat 3318 (concat
3319 "^\\s-*\\([0-9]+\\)" ; 1 index 3319 "^\\s-*\\([0-9]+\\)" ; 1 index
3320 "\\s-+\\([0-9]+\\)" ; 2 line number 3320 "\\s-+\\([0-9]+\\)" ; 2 line number
3321 "\\s-+\\(Uncompiled\\|" ; 3-6 either uncompiled or routine name 3321 "\\s-+\\(Uncompiled\\|" ; 3-6 either uncompiled or routine name
@@ -3330,27 +3330,27 @@ breakpoint overlays."
3330 bp-re indmap) 3330 bp-re indmap)
3331 (setq idlwave-shell-bp-alist (list nil)) 3331 (setq idlwave-shell-bp-alist (list nil))
3332 ;; Search for either header type, and set the correct regexp 3332 ;; Search for either header type, and set the correct regexp
3333 (when (or 3333 (when (or
3334 (if (re-search-forward "^\\s-*Index.*\n\\s-*-" nil t) 3334 (if (re-search-forward "^\\s-*Index.*\n\\s-*-" nil t)
3335 (setq bp-re bp-re54 ; versions <= 5.4 3335 (setq bp-re bp-re54 ; versions <= 5.4
3336 indmap '(1 2 3 4))) ;index module line file 3336 indmap '(1 2 3 4))) ;index module line file
3337 (if (re-search-forward 3337 (if (re-search-forward
3338 "^\\s-*Index\\s-*Line\\s-*Attributes\\s-*File" nil t) 3338 "^\\s-*Index\\s-*Line\\s-*Attributes\\s-*File" nil t)
3339 (setq bp-re bp-re55 ; versions >= 5.5 3339 (setq bp-re bp-re55 ; versions >= 5.5
3340 indmap '(1 6 2 16)))) ; index module line file 3340 indmap '(1 6 2 16)))) ; index module line file
3341 ;; There seems to be a breakpoint listing here, parse breakpoint lines. 3341 ;; There seems to be a breakpoint listing here, parse breakpoint lines.
3342 (while (re-search-forward bp-re nil t) 3342 (while (re-search-forward bp-re nil t)
3343 (setq index (string-to-int (match-string (nth 0 indmap))) 3343 (setq index (string-to-number (match-string (nth 0 indmap)))
3344 module (match-string (nth 1 indmap)) 3344 module (match-string (nth 1 indmap))
3345 line (string-to-int (match-string (nth 2 indmap))) 3345 line (string-to-number (match-string (nth 2 indmap)))
3346 file (idlwave-shell-file-name (match-string (nth 3 indmap)))) 3346 file (idlwave-shell-file-name (match-string (nth 3 indmap))))
3347 (if (eq bp-re bp-re55) 3347 (if (eq bp-re bp-re55)
3348 (setq count (if (match-string 10) 1 3348 (setq count (if (match-string 10) 1
3349 (if (match-string 8) 3349 (if (match-string 8)
3350 (string-to-int (match-string 8)))) 3350 (string-to-number (match-string 8))))
3351 condition (match-string 13) 3351 condition (match-string 13)
3352 disabled (not (null (match-string 15))))) 3352 disabled (not (null (match-string 15)))))
3353 3353
3354 ;; Add the breakpoint info to the list 3354 ;; Add the breakpoint info to the list
3355 (nconc idlwave-shell-bp-alist 3355 (nconc idlwave-shell-bp-alist
3356 (list (cons (list file line) 3356 (list (cons (list file line)
@@ -3360,7 +3360,7 @@ breakpoint overlays."
3360 count nil condition disabled)))))) 3360 count nil condition disabled))))))
3361 (setq idlwave-shell-bp-alist (cdr idlwave-shell-bp-alist)) 3361 (setq idlwave-shell-bp-alist (cdr idlwave-shell-bp-alist))
3362 ;; Update breakpoint data 3362 ;; Update breakpoint data
3363 (if (eq bp-re bp-re54) 3363 (if (eq bp-re bp-re54)
3364 (mapcar 'idlwave-shell-update-bp old-bp-alist) 3364 (mapcar 'idlwave-shell-update-bp old-bp-alist)
3365 (mapcar 'idlwave-shell-update-bp-command-only old-bp-alist)))) 3365 (mapcar 'idlwave-shell-update-bp-command-only old-bp-alist))))
3366 ;; Update the breakpoint overlays 3366 ;; Update the breakpoint overlays
@@ -3375,8 +3375,8 @@ breakpoint overlays."
3375 "Update BP data in breakpoint list. 3375 "Update BP data in breakpoint list.
3376If BP frame is in `idlwave-shell-bp-alist' updates the breakpoint data." 3376If BP frame is in `idlwave-shell-bp-alist' updates the breakpoint data."
3377 (let ((match (assoc (car bp) idlwave-shell-bp-alist))) 3377 (let ((match (assoc (car bp) idlwave-shell-bp-alist)))
3378 (if match 3378 (if match
3379 (if command-only 3379 (if command-only
3380 (setf (nth 1 (cdr (cdr match))) (nth 1 (cdr (cdr match)))) 3380 (setf (nth 1 (cdr (cdr match))) (nth 1 (cdr (cdr match))))
3381 (setcdr (cdr match) (cdr (cdr bp))))))) 3381 (setcdr (cdr match) (cdr (cdr bp)))))))
3382 3382
@@ -3401,7 +3401,7 @@ Otherwise return the filename in bp."
3401 (let* 3401 (let*
3402 ((bp-file (idlwave-shell-bp-get bp 'file)) 3402 ((bp-file (idlwave-shell-bp-get bp 'file))
3403 (bp-module (idlwave-shell-bp-get bp 'module)) 3403 (bp-module (idlwave-shell-bp-get bp 'module))
3404 (internal-file-list 3404 (internal-file-list
3405 (cdr (assoc bp-module idlwave-shell-sources-alist)))) 3405 (cdr (assoc bp-module idlwave-shell-sources-alist))))
3406 (if (and internal-file-list 3406 (if (and internal-file-list
3407 (equal bp-file (nth 0 internal-file-list))) 3407 (equal bp-file (nth 0 internal-file-list)))
@@ -3409,14 +3409,14 @@ Otherwise return the filename in bp."
3409 bp-file))) 3409 bp-file)))
3410 3410
3411(defun idlwave-shell-set-bp (bp &optional no-show) 3411(defun idlwave-shell-set-bp (bp &optional no-show)
3412 "Try to set a breakpoint BP. 3412 "Try to set a breakpoint BP.
3413The breakpoint will be placed at the beginning of the statement on the 3413The breakpoint will be placed at the beginning of the statement on the
3414line specified by BP or at the next IDL statement if that line is not 3414line specified by BP or at the next IDL statement if that line is not
3415a statement. Determines IDL's internal representation for the 3415a statement. Determines IDL's internal representation for the
3416breakpoint, which may have occurred at a different line than 3416breakpoint, which may have occurred at a different line than
3417specified. If NO-SHOW is non-nil, don't do any updating." 3417specified. If NO-SHOW is non-nil, don't do any updating."
3418 ;; Get and save the old breakpoints 3418 ;; Get and save the old breakpoints
3419 (idlwave-shell-send-command 3419 (idlwave-shell-send-command
3420 idlwave-shell-bp-query 3420 idlwave-shell-bp-query
3421 `(progn 3421 `(progn
3422 (idlwave-shell-filter-bp (quote ,no-show)) 3422 (idlwave-shell-filter-bp (quote ,no-show))
@@ -3434,7 +3434,7 @@ specified. If NO-SHOW is non-nil, don't do any updating."
3434(defun idlwave-shell-set-bp2 (bp &optional no-show) 3434(defun idlwave-shell-set-bp2 (bp &optional no-show)
3435 "Use results of breakpoint and sources query to set bp. 3435 "Use results of breakpoint and sources query to set bp.
3436Use the count argument with IDLs breakpoint command. 3436Use the count argument with IDLs breakpoint command.
3437We treat a count of 1 as a temporary breakpoint. 3437We treat a count of 1 as a temporary breakpoint.
3438Counts greater than 1 use the IDL AFTER=count keyword to break 3438Counts greater than 1 use the IDL AFTER=count keyword to break
3439only after reaching the statement count times." 3439only after reaching the statement count times."
3440 (let* 3440 (let*
@@ -3446,11 +3446,11 @@ only after reaching the statement count times."
3446 ((> arg 1) 3446 ((> arg 1)
3447 (format ",after=%d" arg)))) 3447 (format ",after=%d" arg))))
3448 (condition (idlwave-shell-bp-get bp 'condition)) 3448 (condition (idlwave-shell-bp-get bp 'condition))
3449 (key (concat key 3449 (key (concat key
3450 (if condition (concat ",CONDITION=\"" condition "\"")))) 3450 (if condition (concat ",CONDITION=\"" condition "\""))))
3451 (line (idlwave-shell-bp-get bp 'line))) 3451 (line (idlwave-shell-bp-get bp 'line)))
3452 (idlwave-shell-send-command 3452 (idlwave-shell-send-command
3453 (concat "breakpoint,'" 3453 (concat "breakpoint,'"
3454 (idlwave-shell-sources-bp bp) "'," 3454 (idlwave-shell-sources-bp bp) "',"
3455 (if (integerp line) (setq line (int-to-string line))) 3455 (if (integerp line) (setq line (int-to-string line)))
3456 key) 3456 key)
@@ -3534,14 +3534,14 @@ Existing overlays are recycled, in order to minimize consumption."
3534 ov ov-list bp buf old-buffers win) 3534 ov ov-list bp buf old-buffers win)
3535 3535
3536 ;; Delete the old overlays from their buffers 3536 ;; Delete the old overlays from their buffers
3537 (if ov-alist 3537 (if ov-alist
3538 (while (setq ov-list (pop ov-alist)) 3538 (while (setq ov-list (pop ov-alist))
3539 (while (setq ov (pop (cdr ov-list))) 3539 (while (setq ov (pop (cdr ov-list)))
3540 (add-to-list 'old-buffers (overlay-buffer ov)) 3540 (add-to-list 'old-buffers (overlay-buffer ov))
3541 (delete-overlay ov)))) 3541 (delete-overlay ov))))
3542 3542
3543 (setq ov-alist idlwave-shell-bp-overlays 3543 (setq ov-alist idlwave-shell-bp-overlays
3544 idlwave-shell-bp-overlays 3544 idlwave-shell-bp-overlays
3545 (if idlwave-shell-bp-glyph 3545 (if idlwave-shell-bp-glyph
3546 (mapcar 'list (mapcar 'car idlwave-shell-bp-glyph)) 3546 (mapcar 'list (mapcar 'car idlwave-shell-bp-glyph))
3547 (list (list 'bp)))) 3547 (list (list 'bp))))
@@ -3565,7 +3565,7 @@ Existing overlays are recycled, in order to minimize consumption."
3565 (t 'bp-n))) 3565 (t 'bp-n)))
3566 (t 'bp)) 3566 (t 'bp))
3567 'bp)) 3567 'bp))
3568 (help-list 3568 (help-list
3569 (delq nil 3569 (delq nil
3570 (list 3570 (list
3571 (if count 3571 (if count
@@ -3573,7 +3573,7 @@ Existing overlays are recycled, in order to minimize consumption."
3573 (if condition 3573 (if condition
3574 (concat "condition: " condition)) 3574 (concat "condition: " condition))
3575 (if disabled "disabled")))) 3575 (if disabled "disabled"))))
3576 (help-text (if help-list 3576 (help-text (if help-list
3577 (mapconcat 'identity help-list ","))) 3577 (mapconcat 'identity help-list ",")))
3578 (full-type (if disabled 3578 (full-type (if disabled
3579 (intern (concat (symbol-name type) 3579 (intern (concat (symbol-name type)
@@ -3582,7 +3582,7 @@ Existing overlays are recycled, in order to minimize consumption."
3582 (ov-existing (assq full-type ov-alist)) 3582 (ov-existing (assq full-type ov-alist))
3583 (ov (or (and (cdr ov-existing) 3583 (ov (or (and (cdr ov-existing)
3584 (pop (cdr ov-existing))) 3584 (pop (cdr ov-existing)))
3585 (idlwave-shell-make-new-bp-overlay 3585 (idlwave-shell-make-new-bp-overlay
3586 type disabled help-text))) 3586 type disabled help-text)))
3587 match) 3587 match)
3588 (move-overlay ov beg end) 3588 (move-overlay ov beg end)
@@ -3592,7 +3592,7 @@ Existing overlays are recycled, in order to minimize consumption."
3592 (list (list full-type ov))))) 3592 (list (list full-type ov)))))
3593 ;; Take care of margins if using a glyph 3593 ;; Take care of margins if using a glyph
3594 (when use-glyph 3594 (when use-glyph
3595 (if old-buffers 3595 (if old-buffers
3596 (setq old-buffers (delq (current-buffer) old-buffers))) 3596 (setq old-buffers (delq (current-buffer) old-buffers)))
3597 (if (fboundp 'set-specifier) ;; XEmacs 3597 (if (fboundp 'set-specifier) ;; XEmacs
3598 (set-specifier left-margin-width (cons (current-buffer) 2)) 3598 (set-specifier left-margin-width (cons (current-buffer) 2))
@@ -3610,7 +3610,7 @@ Existing overlays are recycled, in order to minimize consumption."
3610 3610
3611 3611
3612(defun idlwave-shell-make-new-bp-overlay (&optional type disabled help) 3612(defun idlwave-shell-make-new-bp-overlay (&optional type disabled help)
3613 "Make a new overlay for highlighting breakpoints. 3613 "Make a new overlay for highlighting breakpoints.
3614 3614
3615This stuff is strongly dependant upon the version of Emacs. If TYPE 3615This stuff is strongly dependant upon the version of Emacs. If TYPE
3616is passed, make an overlay of that type ('bp or 'bp-cond, currently 3616is passed, make an overlay of that type ('bp or 'bp-cond, currently
@@ -3620,17 +3620,17 @@ text popup."
3620 (use-glyph (and (memq idlwave-shell-mark-breakpoints '(t glyph)) 3620 (use-glyph (and (memq idlwave-shell-mark-breakpoints '(t glyph))
3621 idlwave-shell-bp-glyph)) 3621 idlwave-shell-bp-glyph))
3622 (type (or type 'bp)) 3622 (type (or type 'bp))
3623 (face (if disabled 3623 (face (if disabled
3624 idlwave-shell-disabled-breakpoint-face 3624 idlwave-shell-disabled-breakpoint-face
3625 idlwave-shell-breakpoint-face))) 3625 idlwave-shell-breakpoint-face)))
3626 (if (featurep 'xemacs) 3626 (if (featurep 'xemacs)
3627 ;; This is XEmacs 3627 ;; This is XEmacs
3628 (progn 3628 (progn
3629 (cond 3629 (cond
3630 ;; tty's cannot display glyphs 3630 ;; tty's cannot display glyphs
3631 ((eq (console-type) 'tty) 3631 ((eq (console-type) 'tty)
3632 (set-extent-property ov 'face face)) 3632 (set-extent-property ov 'face face))
3633 3633
3634 ;; use the glyph 3634 ;; use the glyph
3635 (use-glyph 3635 (use-glyph
3636 (let ((glyph (cdr (assq type idlwave-shell-bp-glyph)))) 3636 (let ((glyph (cdr (assq type idlwave-shell-bp-glyph))))
@@ -3651,13 +3651,13 @@ text popup."
3651 (if use-glyph 3651 (if use-glyph
3652 (let ((image-props (cdr (assq type idlwave-shell-bp-glyph))) 3652 (let ((image-props (cdr (assq type idlwave-shell-bp-glyph)))
3653 string) 3653 string)
3654 3654
3655 (if disabled (setq image-props 3655 (if disabled (setq image-props
3656 (append image-props 3656 (append image-props
3657 (list :conversion 'disabled)))) 3657 (list :conversion 'disabled))))
3658 (setq string 3658 (setq string
3659 (propertize "@" 3659 (propertize "@"
3660 'display 3660 'display
3661 (list (list 'margin 'left-margin) 3661 (list (list 'margin 'left-margin)
3662 image-props) 3662 image-props)
3663 'mouse-face 'highlight 3663 'mouse-face 'highlight
@@ -3685,14 +3685,14 @@ text popup."
3685Also with prefix arg, ask for the command. You can also use the command 3685Also with prefix arg, ask for the command. You can also use the command
3686`idlwave-shell-edit-default-command-line' to edit the line." 3686`idlwave-shell-edit-default-command-line' to edit the line."
3687 (interactive "P") 3687 (interactive "P")
3688 (cond 3688 (cond
3689 ((equal arg '(16)) 3689 ((equal arg '(16))
3690 (setq idlwave-shell-command-line-to-execute nil)) 3690 (setq idlwave-shell-command-line-to-execute nil))
3691 ((equal arg '(4)) 3691 ((equal arg '(4))
3692 (setq idlwave-shell-command-line-to-execute 3692 (setq idlwave-shell-command-line-to-execute
3693 (read-string "IDL> " idlwave-shell-command-line-to-execute)))) 3693 (read-string "IDL> " idlwave-shell-command-line-to-execute))))
3694 (idlwave-shell-reset 'hidden) 3694 (idlwave-shell-reset 'hidden)
3695 (idlwave-shell-send-command 3695 (idlwave-shell-send-command
3696 (or idlwave-shell-command-line-to-execute 3696 (or idlwave-shell-command-line-to-execute
3697 (with-current-buffer (idlwave-shell-buffer) 3697 (with-current-buffer (idlwave-shell-buffer)
3698 (ring-ref comint-input-ring 0))) 3698 (ring-ref comint-input-ring 0)))
@@ -3702,7 +3702,7 @@ Also with prefix arg, ask for the command. You can also use the command
3702 "Save file and run it in IDL. 3702 "Save file and run it in IDL.
3703Runs `save-buffer' and sends a '.RUN' command for the associated file to IDL. 3703Runs `save-buffer' and sends a '.RUN' command for the associated file to IDL.
3704When called from the shell buffer, re-run the file which was last handled by 3704When called from the shell buffer, re-run the file which was last handled by
3705one of the save-and-.. commands." 3705one of the save-and-.. commands."
3706 (interactive) 3706 (interactive)
3707 (idlwave-shell-save-and-action 'run)) 3707 (idlwave-shell-save-and-action 'run))
3708 3708
@@ -3718,7 +3718,7 @@ one of the save-and-.. commands."
3718 "Save file and batch it in IDL. 3718 "Save file and batch it in IDL.
3719Runs `save-buffer' and sends a '@file' command for the associated file to IDL. 3719Runs `save-buffer' and sends a '@file' command for the associated file to IDL.
3720When called from the shell buffer, re-batch the file which was last handled by 3720When called from the shell buffer, re-batch the file which was last handled by
3721one of the save-and-.. commands." 3721one of the save-and-.. commands."
3722 (interactive) 3722 (interactive)
3723 (idlwave-shell-save-and-action 'batch)) 3723 (idlwave-shell-save-and-action 'batch))
3724 3724
@@ -3758,7 +3758,7 @@ handled by this command."
3758 'idlwave-shell-maybe-update-routine-info 3758 'idlwave-shell-maybe-update-routine-info
3759 (if (idlwave-shell-hide-p 'run) 'mostly) nil t) 3759 (if (idlwave-shell-hide-p 'run) 'mostly) nil t)
3760 (idlwave-shell-bp-query)) 3760 (idlwave-shell-bp-query))
3761 (let ((msg (format "No such file %s" 3761 (let ((msg (format "No such file %s"
3762 idlwave-shell-last-save-and-action-file))) 3762 idlwave-shell-last-save-and-action-file)))
3763 (setq idlwave-shell-last-save-and-action-file nil) 3763 (setq idlwave-shell-last-save-and-action-file nil)
3764 (error msg)))) 3764 (error msg))))
@@ -3791,7 +3791,7 @@ Queries IDL using the string in `idlwave-shell-sources-query'."
3791 3791
3792(defun idlwave-shell-sources-filter () 3792(defun idlwave-shell-sources-filter ()
3793 "Get source files from `idlwave-shell-sources-query' output. 3793 "Get source files from `idlwave-shell-sources-query' output.
3794Create `idlwave-shell-sources-alist' consisting of 3794Create `idlwave-shell-sources-alist' consisting of
3795list elements of the form: 3795list elements of the form:
3796 (module name . (source-file-truename idlwave-internal-filename))." 3796 (module name . (source-file-truename idlwave-internal-filename))."
3797 (save-excursion 3797 (save-excursion
@@ -3876,9 +3876,9 @@ list elements of the form:
3876 (list 3876 (list
3877 (save-match-data 3877 (save-match-data
3878 (idlwave-shell-file-name 3878 (idlwave-shell-file-name
3879 (buffer-substring (match-beginning 1 ) 3879 (buffer-substring (match-beginning 1 )
3880 (match-end 1)))) 3880 (match-end 1))))
3881 (string-to-int 3881 (string-to-number
3882 (buffer-substring (match-beginning 2) 3882 (buffer-substring (match-beginning 2)
3883 (match-end 2))))) 3883 (match-end 2)))))
3884 ;; Try to find the column of the error 3884 ;; Try to find the column of the error
@@ -3943,13 +3943,13 @@ Otherwise, just expand the file name."
3943 3943
3944;; The mouse bindings for PRINT and HELP 3944;; The mouse bindings for PRINT and HELP
3945(idlwave-shell-define-key-both 3945(idlwave-shell-define-key-both
3946 (if (featurep 'xemacs) 3946 (if (featurep 'xemacs)
3947 [(shift button2)] 3947 [(shift button2)]
3948 [(shift down-mouse-2)]) 3948 [(shift down-mouse-2)])
3949 'idlwave-shell-mouse-print) 3949 'idlwave-shell-mouse-print)
3950(idlwave-shell-define-key-both 3950(idlwave-shell-define-key-both
3951 (if (featurep 'xemacs) 3951 (if (featurep 'xemacs)
3952 [(control meta button2)] 3952 [(control meta button2)]
3953 [(control meta down-mouse-2)]) 3953 [(control meta down-mouse-2)])
3954 'idlwave-shell-mouse-help) 3954 'idlwave-shell-mouse-help)
3955(idlwave-shell-define-key-both 3955(idlwave-shell-define-key-both
@@ -3958,14 +3958,14 @@ Otherwise, just expand the file name."
3958 [(control shift down-mouse-2)]) 3958 [(control shift down-mouse-2)])
3959 'idlwave-shell-examine-select) 3959 'idlwave-shell-examine-select)
3960;; Add this one from the idlwave-mode-map 3960;; Add this one from the idlwave-mode-map
3961(define-key idlwave-shell-mode-map 3961(define-key idlwave-shell-mode-map
3962 (if (featurep 'xemacs) 3962 (if (featurep 'xemacs)
3963 [(shift button3)] 3963 [(shift button3)]
3964 [(shift mouse-3)]) 3964 [(shift mouse-3)])
3965 'idlwave-mouse-context-help) 3965 'idlwave-mouse-context-help)
3966 3966
3967;; For Emacs, we need to turn off the button release events. 3967;; For Emacs, we need to turn off the button release events.
3968(defun idlwave-shell-mouse-nop (event) 3968(defun idlwave-shell-mouse-nop (event)
3969 (interactive "e")) 3969 (interactive "e"))
3970(unless (featurep 'xemacs) 3970(unless (featurep 'xemacs)
3971 (idlwave-shell-define-key-both 3971 (idlwave-shell-define-key-both
@@ -3975,7 +3975,7 @@ Otherwise, just expand the file name."
3975 (idlwave-shell-define-key-both 3975 (idlwave-shell-define-key-both
3976 [(control meta mouse-2)] 'idlwave-shell-mouse-nop)) 3976 [(control meta mouse-2)] 'idlwave-shell-mouse-nop))
3977 3977
3978 3978
3979;; The following set of bindings is used to bind the debugging keys. 3979;; The following set of bindings is used to bind the debugging keys.
3980;; If `idlwave-shell-activate-prefix-keybindings' is non-nil, the 3980;; If `idlwave-shell-activate-prefix-keybindings' is non-nil, the
3981;; first key in the list gets bound the C-c C-d prefix map. If 3981;; first key in the list gets bound the C-c C-d prefix map. If
@@ -3984,10 +3984,10 @@ Otherwise, just expand the file name."
3984;; `idlwave-mode-map' and `idlwave-shell-mode-map'. The next list 3984;; `idlwave-mode-map' and `idlwave-shell-mode-map'. The next list
3985;; item, if non-nil, means to bind this as a single key in the 3985;; item, if non-nil, means to bind this as a single key in the
3986;; electric-debug-mode-map. 3986;; electric-debug-mode-map.
3987;; 3987;;
3988;; [C-c C-d]-binding debug-modifier-key command bind-electric-debug buf-only 3988;; [C-c C-d]-binding debug-modifier-key command bind-electric-debug buf-only
3989;; Used keys: abcdef hijklmnopqrstuvwxyz 3989;; Used keys: abcdef hijklmnopqrstuvwxyz
3990;; Unused keys: g 3990;; Unused keys: g
3991(let* ((specs 3991(let* ((specs
3992 '(([(control ?b)] ?b idlwave-shell-break-here t t) 3992 '(([(control ?b)] ?b idlwave-shell-break-here t t)
3993 ([(control ?i)] ?i idlwave-shell-break-in t t) 3993 ([(control ?i)] ?i idlwave-shell-break-in t t)
@@ -4037,10 +4037,10 @@ Otherwise, just expand the file name."
4037 electric (nth 3 s) 4037 electric (nth 3 s)
4038 only-buffer (nth 4 s) 4038 only-buffer (nth 4 s)
4039 cannotshift (and shift (char-valid-p c2) (eq c2 (upcase c2)))) 4039 cannotshift (and shift (char-valid-p c2) (eq c2 (upcase c2))))
4040 4040
4041 ;; The regular prefix keymap. 4041 ;; The regular prefix keymap.
4042 (when (and idlwave-shell-activate-prefix-keybindings k1) 4042 (when (and idlwave-shell-activate-prefix-keybindings k1)
4043 (unless only-buffer 4043 (unless only-buffer
4044 (define-key idlwave-shell-mode-prefix-map k1 cmd)) 4044 (define-key idlwave-shell-mode-prefix-map k1 cmd))
4045 (define-key idlwave-mode-prefix-map k1 cmd)) 4045 (define-key idlwave-mode-prefix-map k1 cmd))
4046 ;; The debug modifier map 4046 ;; The debug modifier map
@@ -4054,24 +4054,24 @@ Otherwise, just expand the file name."
4054 (unless only-buffer (define-key idlwave-shell-mode-map k2 cmd)))) 4054 (unless only-buffer (define-key idlwave-shell-mode-map k2 cmd))))
4055 ;; The electric debug single-keystroke map 4055 ;; The electric debug single-keystroke map
4056 (if (and electric (char-or-string-p c2)) 4056 (if (and electric (char-or-string-p c2))
4057 (define-key idlwave-shell-electric-debug-mode-map (char-to-string c2) 4057 (define-key idlwave-shell-electric-debug-mode-map (char-to-string c2)
4058 cmd)))) 4058 cmd))))
4059 4059
4060;; A few extras in the electric debug map 4060;; A few extras in the electric debug map
4061(define-key idlwave-shell-electric-debug-mode-map " " 'idlwave-shell-step) 4061(define-key idlwave-shell-electric-debug-mode-map " " 'idlwave-shell-step)
4062(define-key idlwave-shell-electric-debug-mode-map "+" 'idlwave-shell-stack-up) 4062(define-key idlwave-shell-electric-debug-mode-map "+" 'idlwave-shell-stack-up)
4063(define-key idlwave-shell-electric-debug-mode-map "=" 'idlwave-shell-stack-up) 4063(define-key idlwave-shell-electric-debug-mode-map "=" 'idlwave-shell-stack-up)
4064(define-key idlwave-shell-electric-debug-mode-map "-" 4064(define-key idlwave-shell-electric-debug-mode-map "-"
4065 'idlwave-shell-stack-down) 4065 'idlwave-shell-stack-down)
4066(define-key idlwave-shell-electric-debug-mode-map "_" 4066(define-key idlwave-shell-electric-debug-mode-map "_"
4067 'idlwave-shell-stack-down) 4067 'idlwave-shell-stack-down)
4068(define-key idlwave-shell-electric-debug-mode-map "q" 'idlwave-shell-retall) 4068(define-key idlwave-shell-electric-debug-mode-map "q" 'idlwave-shell-retall)
4069(define-key idlwave-shell-electric-debug-mode-map "t" 4069(define-key idlwave-shell-electric-debug-mode-map "t"
4070 '(lambda () (interactive) (idlwave-shell-send-command "help,/TRACE"))) 4070 '(lambda () (interactive) (idlwave-shell-send-command "help,/TRACE")))
4071(define-key idlwave-shell-electric-debug-mode-map [(control ??)] 4071(define-key idlwave-shell-electric-debug-mode-map [(control ??)]
4072 'idlwave-shell-electric-debug-help) 4072 'idlwave-shell-electric-debug-help)
4073(define-key idlwave-shell-electric-debug-mode-map "x" 4073(define-key idlwave-shell-electric-debug-mode-map "x"
4074 '(lambda (arg) (interactive "P") 4074 '(lambda (arg) (interactive "P")
4075 (idlwave-shell-print arg nil nil t))) 4075 (idlwave-shell-print arg nil nil t)))
4076 4076
4077 4077
@@ -4092,12 +4092,12 @@ Otherwise, just expand the file name."
4092 (setq idlwave-shell-suppress-electric-debug nil)) 4092 (setq idlwave-shell-suppress-electric-debug nil))
4093 (idlwave-shell-electric-debug-mode)) 4093 (idlwave-shell-electric-debug-mode))
4094 4094
4095(defvar idlwave-shell-electric-debug-read-only) 4095(defvar idlwave-shell-electric-debug-read-only)
4096(defvar idlwave-shell-electric-debug-buffers nil) 4096(defvar idlwave-shell-electric-debug-buffers nil)
4097 4097
4098(easy-mmode-define-minor-mode idlwave-shell-electric-debug-mode 4098(easy-mmode-define-minor-mode idlwave-shell-electric-debug-mode
4099 "Toggle Electric Debug mode. 4099 "Toggle Electric Debug mode.
4100With no argument, this command toggles the mode. 4100With no argument, this command toggles the mode.
4101Non-null prefix argument turns on the mode. 4101Non-null prefix argument turns on the mode.
4102Null prefix argument turns off the mode. 4102Null prefix argument turns off the mode.
4103 4103
@@ -4107,7 +4107,7 @@ nil
4107" *Debugging*" 4107" *Debugging*"
4108idlwave-shell-electric-debug-mode-map) 4108idlwave-shell-electric-debug-mode-map)
4109 4109
4110(add-hook 4110(add-hook
4111 'idlwave-shell-electric-debug-mode-on-hook 4111 'idlwave-shell-electric-debug-mode-on-hook
4112 (lambda () 4112 (lambda ()
4113 (set (make-local-variable 'idlwave-shell-electric-debug-read-only) 4113 (set (make-local-variable 'idlwave-shell-electric-debug-read-only)
@@ -4115,13 +4115,13 @@ idlwave-shell-electric-debug-mode-map)
4115 (setq buffer-read-only t) 4115 (setq buffer-read-only t)
4116 (add-to-list 'idlwave-shell-electric-debug-buffers (current-buffer)) 4116 (add-to-list 'idlwave-shell-electric-debug-buffers (current-buffer))
4117 (if idlwave-shell-stop-line-overlay 4117 (if idlwave-shell-stop-line-overlay
4118 (overlay-put idlwave-shell-stop-line-overlay 'face 4118 (overlay-put idlwave-shell-stop-line-overlay 'face
4119 idlwave-shell-electric-stop-line-face)) 4119 idlwave-shell-electric-stop-line-face))
4120 (if (facep 'fringe) 4120 (if (facep 'fringe)
4121 (set-face-foreground 'fringe idlwave-shell-electric-stop-color 4121 (set-face-foreground 'fringe idlwave-shell-electric-stop-color
4122 (selected-frame))))) 4122 (selected-frame)))))
4123 4123
4124(add-hook 4124(add-hook
4125 'idlwave-shell-electric-debug-mode-off-hook 4125 'idlwave-shell-electric-debug-mode-off-hook
4126 (lambda () 4126 (lambda ()
4127 ;; Return to previous read-only state 4127 ;; Return to previous read-only state
@@ -4130,7 +4130,7 @@ idlwave-shell-electric-debug-mode-map)
4130 (setq idlwave-shell-electric-debug-buffers 4130 (setq idlwave-shell-electric-debug-buffers
4131 (delq (current-buffer) idlwave-shell-electric-debug-buffers)) 4131 (delq (current-buffer) idlwave-shell-electric-debug-buffers))
4132 (if idlwave-shell-stop-line-overlay 4132 (if idlwave-shell-stop-line-overlay
4133 (overlay-put idlwave-shell-stop-line-overlay 'face 4133 (overlay-put idlwave-shell-stop-line-overlay 'face
4134 idlwave-shell-stop-line-face) 4134 idlwave-shell-stop-line-face)
4135 (if (facep 'fringe) 4135 (if (facep 'fringe)
4136 (set-face-foreground 'fringe (face-foreground 'default)))))) 4136 (set-face-foreground 'fringe (face-foreground 'default))))))
@@ -4161,7 +4161,7 @@ idlwave-shell-electric-debug-mode-map)
4161;; Show the help text 4161;; Show the help text
4162(defun idlwave-shell-electric-debug-help () 4162(defun idlwave-shell-electric-debug-help ()
4163 (interactive) 4163 (interactive)
4164 (with-output-to-temp-buffer "*IDLWAVE Electric Debug Help*" 4164 (with-output-to-temp-buffer "*IDLWAVE Electric Debug Help*"
4165 (princ idlwave-shell-electric-debug-help)) 4165 (princ idlwave-shell-electric-debug-help))
4166 (let* ((current-window (selected-window)) 4166 (let* ((current-window (selected-window))
4167 (window (get-buffer-window "*IDLWAVE Electric Debug Help*")) 4167 (window (get-buffer-window "*IDLWAVE Electric Debug Help*"))
@@ -4176,7 +4176,7 @@ idlwave-shell-electric-debug-mode-map)
4176 `("Debug" 4176 `("Debug"
4177 ["Electric Debug Mode" 4177 ["Electric Debug Mode"
4178 idlwave-shell-electric-debug-mode 4178 idlwave-shell-electric-debug-mode
4179 :style toggle :selected idlwave-shell-electric-debug-mode 4179 :style toggle :selected idlwave-shell-electric-debug-mode
4180 :included (eq major-mode 'idlwave-mode) :keys "C-c C-d C-v"] 4180 :included (eq major-mode 'idlwave-mode) :keys "C-c C-d C-v"]
4181 "--" 4181 "--"
4182 ("Compile & Run" 4182 ("Compile & Run"
@@ -4192,35 +4192,35 @@ idlwave-shell-electric-debug-mode-map)
4192 "--" 4192 "--"
4193 ["Goto Next Error" idlwave-shell-goto-next-error t] 4193 ["Goto Next Error" idlwave-shell-goto-next-error t]
4194 "--" 4194 "--"
4195 ["Compile and Run Region" idlwave-shell-run-region 4195 ["Compile and Run Region" idlwave-shell-run-region
4196 (eq major-mode 'idlwave-mode)] 4196 (eq major-mode 'idlwave-mode)]
4197 ["Evaluate Region" idlwave-shell-evaluate-region 4197 ["Evaluate Region" idlwave-shell-evaluate-region
4198 (eq major-mode 'idlwave-mode)] 4198 (eq major-mode 'idlwave-mode)]
4199 "--" 4199 "--"
4200 ["Execute Default Cmd" idlwave-shell-execute-default-command-line t] 4200 ["Execute Default Cmd" idlwave-shell-execute-default-command-line t]
4201 ["Edit Default Cmd" idlwave-shell-edit-default-command-line t]) 4201 ["Edit Default Cmd" idlwave-shell-edit-default-command-line t])
4202 ("Breakpoints" 4202 ("Breakpoints"
4203 ["Set Breakpoint" idlwave-shell-break-here 4203 ["Set Breakpoint" idlwave-shell-break-here
4204 :keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)] 4204 :keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)]
4205 ("Set Special Breakpoint" 4205 ("Set Special Breakpoint"
4206 ["Set After Count Breakpoint" 4206 ["Set After Count Breakpoint"
4207 (progn 4207 (progn
4208 (let ((count (string-to-int (read-string "Break after count: ")))) 4208 (let ((count (string-to-number (read-string "Break after count: "))))
4209 (if (integerp count) (idlwave-shell-break-here count)))) 4209 (if (integerp count) (idlwave-shell-break-here count))))
4210 :active (eq major-mode 'idlwave-mode)] 4210 :active (eq major-mode 'idlwave-mode)]
4211 ["Set Condition Breakpoint" 4211 ["Set Condition Breakpoint"
4212 (idlwave-shell-break-here '(4)) 4212 (idlwave-shell-break-here '(4))
4213 :active (eq major-mode 'idlwave-mode)]) 4213 :active (eq major-mode 'idlwave-mode)])
4214 ["Break in Module" idlwave-shell-break-in 4214 ["Break in Module" idlwave-shell-break-in
4215 :keys "C-c C-d C-i" :active (eq major-mode 'idlwave-mode)] 4215 :keys "C-c C-d C-i" :active (eq major-mode 'idlwave-mode)]
4216 ["Break in this Module" idlwave-shell-break-this-module 4216 ["Break in this Module" idlwave-shell-break-this-module
4217 :keys "C-c C-d C-j" :active (eq major-mode 'idlwave-mode)] 4217 :keys "C-c C-d C-j" :active (eq major-mode 'idlwave-mode)]
4218 ["Clear Breakpoint" idlwave-shell-clear-current-bp t] 4218 ["Clear Breakpoint" idlwave-shell-clear-current-bp t]
4219 ["Clear All Breakpoints" idlwave-shell-clear-all-bp t] 4219 ["Clear All Breakpoints" idlwave-shell-clear-all-bp t]
4220 ["Disable/Enable Breakpoint" idlwave-shell-toggle-enable-current-bp t] 4220 ["Disable/Enable Breakpoint" idlwave-shell-toggle-enable-current-bp t]
4221 ["Goto Previous Breakpoint" idlwave-shell-goto-previous-bp 4221 ["Goto Previous Breakpoint" idlwave-shell-goto-previous-bp
4222 :keys "C-c C-d [" :active (eq major-mode 'idlwave-mode)] 4222 :keys "C-c C-d [" :active (eq major-mode 'idlwave-mode)]
4223 ["Goto Next Breakpoint" idlwave-shell-goto-next-bp 4223 ["Goto Next Breakpoint" idlwave-shell-goto-next-bp
4224 :keys "C-c C-d ]" :active (eq major-mode 'idlwave-mode)] 4224 :keys "C-c C-d ]" :active (eq major-mode 'idlwave-mode)]
4225 ["List All Breakpoints" idlwave-shell-list-all-bp t] 4225 ["List All Breakpoints" idlwave-shell-list-all-bp t]
4226 ["Resync Breakpoints" idlwave-shell-bp-query t]) 4226 ["Resync Breakpoints" idlwave-shell-bp-query t])
@@ -4252,38 +4252,38 @@ idlwave-shell-electric-debug-mode-map)
4252 ["Redisplay and Sync" idlwave-shell-redisplay t]) 4252 ["Redisplay and Sync" idlwave-shell-redisplay t])
4253 ("Show Commands" 4253 ("Show Commands"
4254 ["Everything" (if (eq idlwave-shell-show-commands 'everything) 4254 ["Everything" (if (eq idlwave-shell-show-commands 'everything)
4255 (progn 4255 (progn
4256 (setq idlwave-shell-show-commands 4256 (setq idlwave-shell-show-commands
4257 (get 'idlwave-shell-show-commands 'last-val)) 4257 (get 'idlwave-shell-show-commands 'last-val))
4258 (put 'idlwave-shell-show-commands 'last-val nil)) 4258 (put 'idlwave-shell-show-commands 'last-val nil))
4259 (put 'idlwave-shell-show-commands 'last-val 4259 (put 'idlwave-shell-show-commands 'last-val
4260 idlwave-shell-show-commands) 4260 idlwave-shell-show-commands)
4261 (setq idlwave-shell-show-commands 'everything)) 4261 (setq idlwave-shell-show-commands 'everything))
4262 :style toggle :selected (and (not (listp idlwave-shell-show-commands)) 4262 :style toggle :selected (and (not (listp idlwave-shell-show-commands))
4263 (eq idlwave-shell-show-commands 4263 (eq idlwave-shell-show-commands
4264 'everything))] 4264 'everything))]
4265 "--" 4265 "--"
4266 ["Compiling Commands" (idlwave-shell-add-or-remove-show 'run) 4266 ["Compiling Commands" (idlwave-shell-add-or-remove-show 'run)
4267 :style toggle 4267 :style toggle
4268 :selected (not (idlwave-shell-hide-p 4268 :selected (not (idlwave-shell-hide-p
4269 'run 4269 'run
4270 (get 'idlwave-shell-show-commands 'last-val))) 4270 (get 'idlwave-shell-show-commands 'last-val)))
4271 :active (not (eq idlwave-shell-show-commands 'everything))] 4271 :active (not (eq idlwave-shell-show-commands 'everything))]
4272 ["Breakpoint Commands" (idlwave-shell-add-or-remove-show 'breakpoint) 4272 ["Breakpoint Commands" (idlwave-shell-add-or-remove-show 'breakpoint)
4273 :style toggle 4273 :style toggle
4274 :selected (not (idlwave-shell-hide-p 4274 :selected (not (idlwave-shell-hide-p
4275 'breakpoint 4275 'breakpoint
4276 (get 'idlwave-shell-show-commands 'last-val))) 4276 (get 'idlwave-shell-show-commands 'last-val)))
4277 :active (not (eq idlwave-shell-show-commands 'everything))] 4277 :active (not (eq idlwave-shell-show-commands 'everything))]
4278 ["Debug Commands" (idlwave-shell-add-or-remove-show 'debug) 4278 ["Debug Commands" (idlwave-shell-add-or-remove-show 'debug)
4279 :style toggle 4279 :style toggle
4280 :selected (not (idlwave-shell-hide-p 4280 :selected (not (idlwave-shell-hide-p
4281 'debug 4281 'debug
4282 (get 'idlwave-shell-show-commands 'last-val))) 4282 (get 'idlwave-shell-show-commands 'last-val)))
4283 :active (not (eq idlwave-shell-show-commands 'everything))] 4283 :active (not (eq idlwave-shell-show-commands 'everything))]
4284 ["Miscellaneous Commands" (idlwave-shell-add-or-remove-show 'misc) 4284 ["Miscellaneous Commands" (idlwave-shell-add-or-remove-show 'misc)
4285 :style toggle 4285 :style toggle
4286 :selected (not (idlwave-shell-hide-p 4286 :selected (not (idlwave-shell-hide-p
4287 'misc 4287 'misc
4288 (get 'idlwave-shell-show-commands 'last-val))) 4288 (get 'idlwave-shell-show-commands 'last-val)))
4289 :active (not (eq idlwave-shell-show-commands 'everything))]) 4289 :active (not (eq idlwave-shell-show-commands 'everything))])
@@ -4297,7 +4297,7 @@ idlwave-shell-electric-debug-mode-map)
4297 :style toggle :selected idlwave-shell-use-input-mode-magic]) 4297 :style toggle :selected idlwave-shell-use-input-mode-magic])
4298 "--" 4298 "--"
4299 ["Update Working Dir" idlwave-shell-resync-dirs t] 4299 ["Update Working Dir" idlwave-shell-resync-dirs t]
4300 ["Save Path Info" 4300 ["Save Path Info"
4301 (idlwave-shell-send-command idlwave-shell-path-query 4301 (idlwave-shell-send-command idlwave-shell-path-query
4302 'idlwave-shell-get-path-info 4302 'idlwave-shell-get-path-info
4303 'hide) 4303 'hide)
@@ -4309,7 +4309,7 @@ idlwave-shell-electric-debug-mode-map)
4309 4309
4310(if (or (featurep 'easymenu) (load "easymenu" t)) 4310(if (or (featurep 'easymenu) (load "easymenu" t))
4311 (progn 4311 (progn
4312 (easy-menu-define 4312 (easy-menu-define
4313 idlwave-mode-debug-menu idlwave-mode-map "IDL debugging menus" 4313 idlwave-mode-debug-menu idlwave-mode-map "IDL debugging menus"
4314 idlwave-shell-menu-def) 4314 idlwave-shell-menu-def)
4315 (easy-menu-define 4315 (easy-menu-define
@@ -4329,7 +4329,7 @@ idlwave-shell-electric-debug-mode-map)
4329(defvar idlwave-shell-bp-glyph nil 4329(defvar idlwave-shell-bp-glyph nil
4330 "The glyphs to mark breakpoint lines in the source code.") 4330 "The glyphs to mark breakpoint lines in the source code.")
4331 4331
4332(let ((image-alist 4332(let ((image-alist
4333 '((bp . "/* XPM */ 4333 '((bp . "/* XPM */
4334static char * file[] = { 4334static char * file[] = {
4335\"14 12 3 1\", 4335\"14 12 3 1\",
@@ -4462,7 +4462,7 @@ static char * file[] = {
4462\" .XXXX. \", 4462\" .XXXX. \",
4463\" .... \", 4463\" .... \",
4464\" \"};"))) im-cons im) 4464\" \"};"))) im-cons im)
4465 4465
4466 (while (setq im-cons (pop image-alist)) 4466 (while (setq im-cons (pop image-alist))
4467 (setq im (cond ((and (featurep 'xemacs) 4467 (setq im (cond ((and (featurep 'xemacs)
4468 (featurep 'xpm)) 4468 (featurep 'xpm))
@@ -4475,7 +4475,7 @@ static char * file[] = {
4475 ((and (not (featurep 'xemacs)) 4475 ((and (not (featurep 'xemacs))
4476 (fboundp 'image-type-available-p) 4476 (fboundp 'image-type-available-p)
4477 (image-type-available-p 'xpm)) 4477 (image-type-available-p 'xpm))
4478 (list 'image :type 'xpm :data (cdr im-cons) 4478 (list 'image :type 'xpm :data (cdr im-cons)
4479 :ascent 'center)) 4479 :ascent 'center))
4480 (t nil))) 4480 (t nil)))
4481 (if im (push (cons (car im-cons) im) idlwave-shell-bp-glyph)))) 4481 (if im (push (cons (car im-cons) im) idlwave-shell-bp-glyph))))
@@ -4485,7 +4485,7 @@ static char * file[] = {
4485 4485
4486;;; Load the toolbar when wanted by the user. 4486;;; Load the toolbar when wanted by the user.
4487 4487
4488(autoload 'idlwave-toolbar-toggle "idlw-toolbar" 4488(autoload 'idlwave-toolbar-toggle "idlw-toolbar"
4489 "Toggle the IDLWAVE toolbar") 4489 "Toggle the IDLWAVE toolbar")
4490(autoload 'idlwave-toolbar-add-everywhere "idlw-toolbar" 4490(autoload 'idlwave-toolbar-add-everywhere "idlw-toolbar"
4491 "Add IDLWAVE toolbar") 4491 "Add IDLWAVE toolbar")
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index 083d87f581c..13bc7f08999 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -214,10 +214,8 @@ processes, you can change `inferior-lisp-buffer' to another process
214buffer with \\[set-variable].") 214buffer with \\[set-variable].")
215 215
216;;;###autoload 216;;;###autoload
217(defcustom inferior-lisp-mode-hook '() 217(defvar inferior-lisp-mode-hook '()
218 "*Hook for customising Inferior Lisp mode." 218 "*Hook for customising Inferior Lisp mode.")
219 :type 'hook
220 :group 'inferior-lisp)
221 219
222(put 'inferior-lisp-mode 'mode-class 'special) 220(put 'inferior-lisp-mode 'mode-class 'special)
223 221
@@ -590,10 +588,8 @@ See variable `lisp-describe-sym-command'."
590 588
591;;; Do the user's customisation... 589;;; Do the user's customisation...
592;;;=============================== 590;;;===============================
593(defcustom inferior-lisp-load-hook nil 591(defvar inferior-lisp-load-hook nil
594 "This hook is run when the library `inf-lisp' is loaded." 592 "This hook is run when the library `inf-lisp' is loaded.")
595 :type 'hook
596 :group 'inferior-lisp)
597 593
598(run-hooks 'inferior-lisp-load-hook) 594(run-hooks 'inferior-lisp-load-hook)
599 595
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 7c1ccb25fb0..86002768757 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -100,12 +100,35 @@
100 :prefix "makefile-") 100 :prefix "makefile-")
101 101
102(defface makefile-space-face 102(defface makefile-space-face
103 '((((class color)) (:background "hotpink")) 103 '((((class color)) (:background "hotpink"))
104 (t (:reverse-video t))) 104 (t (:reverse-video t)))
105 "Face to use for highlighting leading spaces in Font-Lock mode." 105 "Face to use for highlighting leading spaces in Font-Lock mode."
106 :group 'faces 106 :group 'faces
107 :group 'makefile) 107 :group 'makefile)
108 108
109(defface makefile-targets-face
110 ;; This needs to go along both with foreground and background colors (i.e. shell)
111 '((t (:underline t)))
112 "Face to use for additionally highlighting rule targets in Font-Lock mode."
113 :group 'faces
114 :group 'makefile)
115
116(defface makefile-shell-face
117 '((((class color) (background light)) (:background "seashell1"))
118 (((class color) (background dark)) (:background "seashell4"))
119 (t (:reverse-video t)))
120 "Face to use for additionally highlighting Shell commands in Font-Lock mode."
121 :group 'faces
122 :group 'makefile)
123
124(defface makefile-makepp-perl-face
125 '((((class color) (background light)) (:background "LightBlue1")) ; Camel Book
126 (((class color) (background dark)) (:background "DarkBlue"))
127 (t (:reverse-video t)))
128 "Face to use for additionally highlighting Perl code in Font-Lock mode."
129 :group 'faces
130 :group 'makefile)
131
109(defcustom makefile-browser-buffer-name "*Macros and Targets*" 132(defcustom makefile-browser-buffer-name "*Macros and Targets*"
110 "*Name of the macro- and target browser buffer." 133 "*Name of the macro- and target browser buffer."
111 :type 'string 134 :type 'string
@@ -234,17 +257,29 @@ not be enclosed in { } or ( )."
234;; Note that the first big subexpression is used by font lock. Note 257;; Note that the first big subexpression is used by font lock. Note
235;; that if you change this regexp you might have to fix the imenu 258;; that if you change this regexp you might have to fix the imenu
236;; index in makefile-imenu-generic-expression. 259;; index in makefile-imenu-generic-expression.
237(defconst makefile-dependency-regex 260(defvar makefile-dependency-regex
238 "^ *\\([^ \n\t#:=]+\\([ \t]+\\([^ \t\n#:=]+\\|\\$[({][^ \t\n#})]+[})]\\)\\)*\\)[ \t]*:\\([ \t]*$\\|\\([^=\n].*$\\)\\)" 261 ;; Allow for two nested levels $(v1:$(v2:$(v3:a=b)=c)=d)
262 "^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\(:\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)"
239 "Regex used to find dependency lines in a makefile.") 263 "Regex used to find dependency lines in a makefile.")
240 264
241;; Note that the first subexpression is used by font lock. Note 265(defvar makefile-dependency-skip "^:"
242;; that if you change this regexp you might have to fix the imenu 266 "Characters to skip to find a line that might be a dependency.")
243;; index in makefile-imenu-generic-expression. 267
268(defvar makefile-rule-action-regex
269 "^\t[ \t]*\\([-@]*\\)[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)"
270 "Regex used to highlight rule action lines in font lock mode.")
271
272;; Note that the first and second subexpression is used by font lock. Note
273;; that if you change this regexp you might have to fix the imenu index in
274;; makefile-imenu-generic-expression.
244(defconst makefile-macroassign-regex 275(defconst makefile-macroassign-regex
245 "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*[*:+]?[:?]?=" 276 "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*\\(?:!=[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)\\|[*:+]?[:?]?=[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)\\)"
246 "Regex used to find macro assignment lines in a makefile.") 277 "Regex used to find macro assignment lines in a makefile.")
247 278
279(defconst makefile-var-use-regex
280 "[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%<?^+*][FD]?\\)"
281 "Regex used to find $(macro) uses in a makefile.")
282
248(defconst makefile-ignored-files-in-pickup-regex 283(defconst makefile-ignored-files-in-pickup-regex
249 "\\(^\\..*\\)\\|\\(.*~$\\)\\|\\(.*,v$\\)\\|\\(\\.[chy]\\)" 284 "\\(^\\..*\\)\\|\\(.*~$\\)\\|\\(.*,v$\\)\\|\\(\\.[chy]\\)"
250 "Regex for filenames that will NOT be included in the target list.") 285 "Regex for filenames that will NOT be included in the target list.")
@@ -254,50 +289,189 @@ not be enclosed in { } or ( )."
254(defvar makefile-space-face 'makefile-space-face 289(defvar makefile-space-face 'makefile-space-face
255 "Face to use for highlighting leading spaces in Font-Lock mode.") 290 "Face to use for highlighting leading spaces in Font-Lock mode.")
256 291
257(defconst makefile-font-lock-keywords 292;; These lists were inspired by the old solution. But they are silly, because
258 (list 293;; you can't differentiate what follows. They need to be split up.
294(defconst makefile-statements '("include")
295 "List of keywords understood by standard make.")
296
297(defconst makefile-automake-statements
298 `("if" "else" "endif" ,@makefile-statements)
299 "List of keywords understood by automake.")
300
301(defconst makefile-gmake-statements
302 `("-sinclude" "sinclude" "override" "vpath"
303 "ifdef" "ifndef" "ifeq" "ifneq" "-include" "define" "endef" "export"
304 "unexport"
305 ,@(cdr makefile-automake-statements))
306 "List of keywords understood by gmake.")
307
308;; These are even more silly, because you can have more spaces in between.
309(defconst makefile-makepp-statements
310 `("and ifdef" "and ifndef" "and ifeq" "and ifneq" "and ifperl"
311 "and ifmakeperl" "and ifsys" "and ifnsys" "build_cache" "build_check"
312 "else ifdef" "else ifndef" "else ifeq" "else ifneq" "else ifperl"
313 "else ifmakeperl" "else ifsys" "else ifnsys" "enddef" "load_makefile"
314 "ifperl" "ifmakeperl" "ifsys" "ifnsys" "_include" "makeperl" "makesub"
315 "no_implicit_load" "perl" "perl-begin" "perl_begin" "perl-end" "perl_end"
316 "prebuild" "or ifdef" "or ifndef" "or ifeq" "or ifneq" "or ifperl"
317 "or ifmakeperl" "or ifsys" "or ifnsys" "register_command_parser"
318 "register_scanner" "repository" "runtime" "signature" "sub"
319 ,@(nthcdr 4 makefile-gmake-statements))
320 "List of keywords understood by gmake.")
321
322(defconst makefile-bsdmake-statements
323 `(".elif" ".elifdef" ".elifmake" ".elifndef" ".elifnmake" ".else" ".endfor"
324 ".endif" ".for" ".if" ".ifdef" ".ifmake" ".ifndef" ".ifnmake" ".undef")
325 "List of keywords understood by BSD make.")
326
327(defun makefile-make-font-lock-keywords (var keywords space
328 &optional negation
329 &rest font-lock-keywords)
330 `(;; Do macro assignments. These get the "variable-name" face.
331 (,makefile-macroassign-regex
332 (1 font-lock-variable-name-face)
333 ;; This is for after !=
334 (2 'makefile-shell-face prepend t)
335 ;; This is for after normal assignment
336 (3 'font-lock-string-face prepend t))
337
338 ;; Rule actions.
339 (makefile-match-action
340 (1 font-lock-type-face)
341 (2 'makefile-shell-face prepend)
342 ;; Only makepp has builtin commands.
343 (3 font-lock-builtin-face prepend t))
344
345 ;; Variable references even in targets/strings/comments.
346 (,var 1 font-lock-variable-name-face prepend)
347
348 ;; Automatic variable references and single character variable references,
349 ;; but not shell variables references.
350 ("[^$]\\$\\([@%<?^+*_]\\|[a-zA-Z0-9]\\>\\)"
351 1 font-lock-constant-face prepend)
352 ("[^$]\\(\\$[@%*]\\)"
353 1 'makefile-targets-face prepend)
259 354
260 ;; Do macro assignments. These get the "variable-name" face rather 355 ;; Fontify conditionals and includes.
261 ;; arbitrarily. 356 (,(concat "^\\(?: [ \t]*\\)?"
262 (list makefile-macroassign-regex 1 'font-lock-variable-name-face) 357 (regexp-opt keywords t)
358 "\\>[ \t]*\\([^: \t\n#]*\\)")
359 (1 font-lock-keyword-face) (2 font-lock-variable-name-face))
263 360
264 ;; Do dependencies. These get the function name face. 361 ,@(if negation
265 (list makefile-dependency-regex 1 'font-lock-function-name-face) 362 `((,negation (1 font-lock-negation-char-face prepend)
363 (2 font-lock-negation-char-face prepend t))))
266 364
267 ;; Variable references even in targets/strings/comments. 365 ,@(if space
268 '("[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%<?^+*][FD]?\\)[}):]" 366 '(;; Highlight lines that contain just whitespace.
269 1 font-lock-constant-face prepend) 367 ;; They can cause trouble, especially if they start with a tab.
368 ("^[ \t]+$" . makefile-space-face)
270 369
271 ;; Automatic variable references and single character variable references, 370 ;; Highlight shell comments that Make treats as commands,
272 ;; but not shell variables references. 371 ;; since these can fool people.
273 '("[^$]\\$\\([@%<?^+*_]\\|[a-zA-Z0-9]\\>\\)" 372 ("^\t+#" 0 makefile-space-face t)
274 1 font-lock-constant-face prepend)
275 373
276 ;; Fontify conditionals and includes. 374 ;; Highlight spaces that precede tabs.
277 ;; Note that plain `if' is an automake conditional, and not a bug. 375 ;; They can make a tab fail to be effective.
278 (list 376 ("^\\( +\\)\t" 1 makefile-space-face)))
279 (concat "^\\(?: [ \t]*\\)?"
280 (regexp-opt '("-include" "-sinclude" "include" "sinclude" "ifeq"
281 "if" "ifneq" "ifdef" "ifndef" "endif" "else"
282 "define" "endef" "override"
283 "export" "unexport" "vpath") t)
284 "\\>[ \t]*\\([^: \t\n#]*\\)")
285 '(1 font-lock-keyword-face) '(2 font-lock-variable-name-face))
286 377
287 '("^\\(?: [ \t]*\\)?if\\(n\\)\\(?:def\\|eq\\)\\>" 378 ,@font-lock-keywords
288 1 font-lock-negation-char-face prepend)
289 379
290 ;; Highlight lines that contain just whitespace. 380 ;; Do dependencies.
291 ;; They can cause trouble, especially if they start with a tab. 381 (makefile-match-dependency
292 '("^[ \t]+$" . makefile-space-face) 382 (1 'makefile-targets-face prepend)
383 (3 'makefile-shell-face prepend t))))
293 384
294 ;; Highlight shell comments that Make treats as commands, 385(defconst makefile-font-lock-keywords
295 ;; since these can fool people. 386 (makefile-make-font-lock-keywords
296 '("^\t+#" 0 makefile-space-face t) 387 makefile-var-use-regex
388 makefile-statements
389 t))
390
391(defconst makefile-automake-font-lock-keywords
392 (makefile-make-font-lock-keywords
393 makefile-var-use-regex
394 makefile-automake-statements
395 t))
396
397(defconst makefile-gmake-font-lock-keywords
398 (makefile-make-font-lock-keywords
399 makefile-var-use-regex
400 makefile-gmake-statements
401 t
402 "^\\(?: [ \t]*\\)?if\\(n\\)\\(?:def\\|eq\\)\\>"
403
404 '("[^$]\\(\\$[({][@%*][DF][})]\\)"
405 1 'makefile-targets-face prepend)
406
407 ;; $(function ...) ${function ...}
408 '("[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\s \\)"
409 1 font-lock-function-name-face prepend)
410
411 ;; $(shell ...) ${shell ...}
412 '("[^$]\\$\\([({]\\)shell[ \t]+"
413 makefile-match-function-end nil nil
414 (1 'makefile-shell-face prepend t))))
415
416(defconst makefile-makepp-font-lock-keywords
417 (makefile-make-font-lock-keywords
418 makefile-var-use-regex
419 makefile-makepp-statements
420 nil
421 "^\\(?: [ \t]*\\)?\\(?:and[ \t]+\\|else[ \t]+\\|or[ \t]+\\)?if\\(n\\)\\(?:def\\|eq\\|sys\\)\\>"
422
423 '("[^$]\\(\\$[({]\\(?:target\\|output\\)s?\\_>.*?[})]\\)"
424 1 'makefile-targets-face prepend)
425
426 ;; Colon modifier keywords.
427 '("\\(:\\s *\\)\\(build_c\\(?:ache\\|heck\\)\\|env\\(?:ironment\\)?\\|foreach\\|signature\\|scanner\\|quickscan\\|smartscan\\)\\>\\([^:\n]*\\)"
428 (1 font-lock-type-face t)
429 (2 font-lock-keyword-face t)
430 (3 font-lock-variable-name-face t))
431
432 ;; $(function ...) $((function ...)) ${function ...} ${{function ...}}
433 '("[^$]\\$\\(?:((?\\|{{?\\)\\([-a-zA-Z0-9_.]+\\s \\)"
434 1 font-lock-function-name-face prepend)
435
436 ;; $(shell ...) $((shell ...)) ${shell ...} ${{shell ...}}
437 '("[^$]\\$\\(((?\\|{{?\\)shell\\(?:[-_]\\(?:global[-_]\\)?once\\)?[ \t]+"
438 makefile-match-function-end nil nil
439 (1 'makefile-shell-face prepend t))
440
441 ;; $(perl ...) $((perl ...)) ${perl ...} ${{perl ...}}
442 '("[^$]\\$\\(((?\\|{{?\\)makeperl[ \t]+"
443 makefile-match-function-end nil nil
444 (1 'makefile-makepp-perl-face prepend t))
445 '("[^$]\\$\\(((?\\|{{?\\)perl[ \t]+"
446 makefile-match-function-end nil nil
447 (1 'makefile-makepp-perl-face t t))
448
449 ;; Can we unify these with (if (match-end 1) 'prepend t)?
450 '("ifmakeperl\\s +\\(.*\\)" 1 'makefile-makepp-perl-face prepend)
451 '("ifperl\\s +\\(.*\\)" 1 'makefile-makepp-perl-face t)
452
453 ;; Perl block single- or multiline, as statement or rule action.
454 ;; Don't know why the initial newline in 2nd variant of group 2 doesn't get skipped.
455 '("\\<make\\(?:perl\\|sub\\s +\\S +\\)\\s *\n?\\s *{\\(?:{\\s *\n?\\(\\(?:.*\n\\)+?\\)\\s *}\\|\\s *\\(\\(?:.*?\\|\n?\\(?:.*\n\\)+?\\)\\)\\)}"
456 (1 'makefile-makepp-perl-face prepend t)
457 (2 'makefile-makepp-perl-face prepend t))
458 '("\\<\\(?:perl\\|sub\\s +\\S +\\)\\s *\n?\\s *{\\(?:{\\s *\n?\\(\\(?:.*\n\\)+?\\)\\s *}\\|\\s *\\(\\(?:.*?\\|\n?\\(?:.*\n\\)+?\\)\\)\\)}"
459 (1 'makefile-makepp-perl-face t t)
460 (2 'makefile-makepp-perl-face t t))
461
462 ;; Statement style perl block.
463 '("perl[-_]begin\\s *\\(?:\\s #.*\\)?\n\\(\\(?:.*\n\\)+?\\)\\s *perl[-_]end\\>"
464 1 'makefile-makepp-perl-face t)))
465
466(defconst makefile-bsdmake-font-lock-keywords
467 (makefile-make-font-lock-keywords
468 ;; A lot more could be done for variables here:
469 makefile-var-use-regex
470 makefile-bsdmake-statements
471 t
472 "^\\(?: [ \t]*\\)?\\.\\(?:el\\)?if\\(n?\\)\\(?:def\\|make\\)?\\>[ \t]*\\(!?\\)"
473 '("^[ \t]*\\.for[ \t].+[ \t]\\(in\\)\\>" 1 font-lock-keyword-face)))
297 474
298 ;; Highlight spaces that precede tabs.
299 ;; They can make a tab fail to be effective.
300 '("^\\( +\\)\t" 1 makefile-space-face)))
301 475
302(defconst makefile-font-lock-syntactic-keywords 476(defconst makefile-font-lock-syntactic-keywords
303 ;; From sh-script.el. 477 ;; From sh-script.el.
@@ -310,9 +484,8 @@ not be enclosed in { } or ( )."
310 ("\\\\\n" 0 "."))) 484 ("\\\\\n" 0 ".")))
311 485
312(defvar makefile-imenu-generic-expression 486(defvar makefile-imenu-generic-expression
313 (list 487 `(("Dependencies" ,makefile-dependency-regex 1)
314 (list "Dependencies" makefile-dependency-regex 1) 488 ("Macro Assignment" ,makefile-macroassign-regex 1))
315 (list "Macro Assignment" makefile-macroassign-regex 1))
316 "Imenu generic expression for Makefile mode. See `imenu-generic-expression'.") 489 "Imenu generic expression for Makefile mode. See `imenu-generic-expression'.")
317 490
318;;; ------------------------------------------------------------ 491;;; ------------------------------------------------------------
@@ -371,47 +544,50 @@ The function must satisfy this calling convention:
371 () 544 ()
372 (define-abbrev-table 'makefile-mode-abbrev-table ())) 545 (define-abbrev-table 'makefile-mode-abbrev-table ()))
373 546
374(defvar makefile-mode-map nil 547(defvar makefile-mode-map
548 (let ((map (make-sparse-keymap)))
549 ;; set up the keymap
550 (define-key map "\C-c:" 'makefile-insert-target-ref)
551 (if makefile-electric-keys
552 (progn
553 (define-key map "$" 'makefile-insert-macro-ref)
554 (define-key map ":" 'makefile-electric-colon)
555 (define-key map "=" 'makefile-electric-equal)
556 (define-key map "." 'makefile-electric-dot)))
557 (define-key map "\C-c\C-f" 'makefile-pickup-filenames-as-targets)
558 (define-key map "\C-c\C-b" 'makefile-switch-to-browser)
559 (define-key map "\C-c\C-c" 'comment-region)
560 (define-key map "\C-c\C-p" 'makefile-pickup-everything)
561 (define-key map "\C-c\C-u" 'makefile-create-up-to-date-overview)
562 (define-key map "\C-c\C-i" 'makefile-insert-gmake-function)
563 (define-key map "\C-c\C-\\" 'makefile-backslash-region)
564 (define-key map "\C-c\C-m\C-a" 'makefile-automake-mode)
565 (define-key map "\C-c\C-m\C-b" 'makefile-bsdmake-mode)
566 (define-key map "\C-c\C-m\C-g" 'makefile-gmake-mode)
567 (define-key map "\C-c\C-m\C-m" 'makefile-mode)
568 (define-key map "\C-c\C-m\C-p" 'makefile-makepp-mode)
569 (define-key map "\M-p" 'makefile-previous-dependency)
570 (define-key map "\M-n" 'makefile-next-dependency)
571 (define-key map "\e\t" 'makefile-complete)
572
573 ;; Make menus.
574 (define-key map [menu-bar makefile-mode]
575 (cons "Makefile" (make-sparse-keymap "Makefile")))
576
577 (define-key map [menu-bar makefile-mode browse]
578 '("Pop up Makefile Browser" . makefile-switch-to-browser))
579 (define-key map [menu-bar makefile-mode complete]
580 '("Complete Target or Macro" . makefile-complete))
581 (define-key map [menu-bar makefile-mode pickup]
582 '("Find Targets and Macros" . makefile-pickup-everything))
583
584 (define-key map [menu-bar makefile-mode prev]
585 '("Move to Previous Dependency" . makefile-previous-dependency))
586 (define-key map [menu-bar makefile-mode next]
587 '("Move to Next Dependency" . makefile-next-dependency))
588 map)
375 "The keymap that is used in Makefile mode.") 589 "The keymap that is used in Makefile mode.")
376 590
377(if makefile-mode-map
378 ()
379 (setq makefile-mode-map (make-sparse-keymap))
380 ;; set up the keymap
381 (define-key makefile-mode-map "\C-c:" 'makefile-insert-target-ref)
382 (if makefile-electric-keys
383 (progn
384 (define-key makefile-mode-map "$" 'makefile-insert-macro-ref)
385 (define-key makefile-mode-map ":" 'makefile-electric-colon)
386 (define-key makefile-mode-map "=" 'makefile-electric-equal)
387 (define-key makefile-mode-map "." 'makefile-electric-dot)))
388 (define-key makefile-mode-map "\C-c\C-f" 'makefile-pickup-filenames-as-targets)
389 (define-key makefile-mode-map "\C-c\C-b" 'makefile-switch-to-browser)
390 (define-key makefile-mode-map "\C-c\C-c" 'comment-region)
391 (define-key makefile-mode-map "\C-c\C-p" 'makefile-pickup-everything)
392 (define-key makefile-mode-map "\C-c\C-u" 'makefile-create-up-to-date-overview)
393 (define-key makefile-mode-map "\C-c\C-i" 'makefile-insert-gmake-function)
394 (define-key makefile-mode-map "\C-c\C-\\" 'makefile-backslash-region)
395 (define-key makefile-mode-map "\M-p" 'makefile-previous-dependency)
396 (define-key makefile-mode-map "\M-n" 'makefile-next-dependency)
397 (define-key makefile-mode-map "\e\t" 'makefile-complete)
398
399 ;; Make menus.
400 (define-key makefile-mode-map [menu-bar makefile-mode]
401 (cons "Makefile" (make-sparse-keymap "Makefile")))
402
403 (define-key makefile-mode-map [menu-bar makefile-mode browse]
404 '("Pop up Makefile Browser" . makefile-switch-to-browser))
405 (define-key makefile-mode-map [menu-bar makefile-mode complete]
406 '("Complete Target or Macro" . makefile-complete))
407 (define-key makefile-mode-map [menu-bar makefile-mode pickup]
408 '("Find Targets and Macros" . makefile-pickup-everything))
409
410 (define-key makefile-mode-map [menu-bar makefile-mode prev]
411 '("Move to Previous Dependency" . makefile-previous-dependency))
412 (define-key makefile-mode-map [menu-bar makefile-mode next]
413 '("Move to Next Dependency" . makefile-next-dependency)))
414
415(defvar makefile-browser-map nil 591(defvar makefile-browser-map nil
416 "The keymap that is used in the macro- and target browser.") 592 "The keymap that is used in the macro- and target browser.")
417(if makefile-browser-map 593(if makefile-browser-map
@@ -504,8 +680,19 @@ The function must satisfy this calling convention:
504 680
505;;;###autoload 681;;;###autoload
506(defun makefile-mode () 682(defun makefile-mode ()
507 "Major mode for editing Makefiles. 683 "Major mode for editing standard Makefiles.
508This function ends by invoking the function(s) `makefile-mode-hook'. 684
685If you are editing a file for a different make, try one of the
686variants `makefile-automake-mode', `makefile-gmake-mode',
687`makefile-makepp-mode' or `makefile-bsdmake-mode'. All but the
688last should be correctly chosen based on the file name, except if
689it is *.mk. This function ends by invoking the function(s)
690`makefile-mode-hook'.
691
692It is strongly recommended to use `font-lock-mode', because that
693provides additional parsing information. This is used for
694example to see that a rule action `echo foo: bar' is a not rule
695dependency, despite the colon.
509 696
510\\{makefile-mode-map} 697\\{makefile-mode-map}
511 698
@@ -601,7 +788,8 @@ Makefile mode can be configured by modifying the following variables:
601 nil nil 788 nil nil
602 ((?$ . ".")) 789 ((?$ . "."))
603 backward-paragraph 790 backward-paragraph
604 (font-lock-syntactic-keywords . makefile-font-lock-syntactic-keywords))) 791 (font-lock-syntactic-keywords . makefile-font-lock-syntactic-keywords)
792 (font-lock-support-mode))) ; JIT breaks on long series of continuation lines.
605 793
606 ;; Add-log. 794 ;; Add-log.
607 (make-local-variable 'add-log-current-defun-function) 795 (make-local-variable 'add-log-current-defun-function)
@@ -643,7 +831,45 @@ Makefile mode can be configured by modifying the following variables:
643 831
644 ;; Real TABs are important in makefiles 832 ;; Real TABs are important in makefiles
645 (setq indent-tabs-mode t) 833 (setq indent-tabs-mode t)
646 (run-hooks 'makefile-mode-hook)) 834 (run-mode-hooks 'makefile-mode-hook))
835
836;; These should do more than just differentiate font-lock.
837;;;###autoload
838(define-derived-mode makefile-automake-mode makefile-mode "Makefile.am"
839 "An adapted `makefile-mode' that knows about automake."
840 (setq font-lock-defaults
841 `(makefile-automake-font-lock-keywords ,@(cdr font-lock-defaults))))
842
843;;;###autoload
844(define-derived-mode makefile-gmake-mode makefile-mode "GNUmakefile"
845 "An adapted `makefile-mode' that knows about gmake."
846 (setq font-lock-defaults
847 `(makefile-gmake-font-lock-keywords ,@(cdr font-lock-defaults))))
848
849;;;###autoload
850(define-derived-mode makefile-makepp-mode makefile-mode "Makeppfile"
851 "An adapted `makefile-mode' that knows about makepp."
852 (set (make-local-variable 'makefile-rule-action-regex)
853 ;; Don't care about initial tab, but I don't know how to font-lock correctly without.
854 "^\t[ \t]*\\(\\(?:\\(?:noecho\\|ignore[-_]error\\|[-@]+\\)[ \t]*\\)*\\)\\(\\(&\\S +\\)?\\(?:.+\\\\\n\\)*.+\\)")
855
856 (setq font-lock-defaults
857 `(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults))))
858
859;;;###autoload
860(define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile"
861 "An adapted `makefile-mode' that knows about BSD make."
862 (set (make-local-variable 'makefile-dependency-regex)
863 ;; Identical to default, except allows `!' instead of `:'.
864 "^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\([:!]\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)")
865 (set (make-local-variable 'makefile-dependency-skip) "^:!")
866 (set (make-local-variable 'makefile-rule-action-regex)
867 "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)")
868 (setq font-lock-defaults
869 `(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))
870 imenu-generic-expression
871 `(("Dependencies" ,makefile-dependency-regex 1)
872 ,@(cdr imenu-generic-expression))))
647 873
648 874
649 875
@@ -654,18 +880,27 @@ Makefile mode can be configured by modifying the following variables:
654 (interactive) 880 (interactive)
655 (let ((here (point))) 881 (let ((here (point)))
656 (end-of-line) 882 (end-of-line)
657 (if (re-search-forward makefile-dependency-regex (point-max) t) 883 (if (makefile-match-dependency nil)
658 (progn (beginning-of-line) t) ; indicate success 884 (progn (beginning-of-line) t) ; indicate success
659 (goto-char here) nil))) 885 (goto-char here) nil)))
660 886
661(defun makefile-previous-dependency () 887(defun makefile-previous-dependency ()
662 "Move point to the beginning of the previous dependency line." 888 "Move point to the beginning of the previous dependency line."
663 (interactive) 889 (interactive)
664 (let ((here (point))) 890 (let ((pt (point)))
665 (beginning-of-line) 891 (beginning-of-line)
666 (if (re-search-backward makefile-dependency-regex (point-min) t) 892 ;; makefile-match-dependency done backwards:
667 (progn (beginning-of-line) t) ; indicate success 893 (catch 'found
668 (goto-char here) nil))) 894 (while (progn (skip-chars-backward makefile-dependency-skip)
895 (not (bobp)))
896 (or (prog1 (eq (char-after) ?=)
897 (backward-char))
898 (get-text-property (point) 'face)
899 (beginning-of-line)
900 (if (looking-at makefile-dependency-regex)
901 (throw 'found t))))
902 (goto-char pt)
903 nil)))
669 904
670 905
671 906
@@ -763,74 +998,56 @@ Anywhere else just self-inserts."
763(defun makefile-pickup-targets () 998(defun makefile-pickup-targets ()
764 "Notice names of all target definitions in Makefile." 999 "Notice names of all target definitions in Makefile."
765 (interactive) 1000 (interactive)
766 (if (not makefile-need-target-pickup) 1001 (when makefile-need-target-pickup
767 nil 1002 (setq makefile-need-target-pickup nil
768 (setq makefile-need-target-pickup nil) 1003 makefile-target-table nil
769 (setq makefile-target-table nil) 1004 makefile-has-prereqs nil)
770 (setq makefile-has-prereqs nil)
771 (save-excursion 1005 (save-excursion
772 (goto-char (point-min)) 1006 (goto-char (point-min))
773 (while (re-search-forward makefile-dependency-regex nil t) 1007 (while (makefile-match-dependency nil)
774 (makefile-add-this-line-targets))) 1008 (goto-char (match-beginning 1))
775 (message "Read targets OK."))) 1009 (while (let ((target-name
776 1010 (buffer-substring-no-properties (point)
777(defun makefile-add-this-line-targets () 1011 (progn
778 (save-excursion 1012 (skip-chars-forward "^ \t:#")
779 (beginning-of-line) 1013 (point))))
780 (let ((done-with-line nil)
781 (line-number (1+ (count-lines (point-min) (point)))))
782 (while (not done-with-line)
783 (skip-chars-forward " \t")
784 (if (not (setq done-with-line (or (eolp)
785 (char-equal (char-after (point)) ?:))))
786 (progn
787 (let* ((start-of-target-name (point))
788 (target-name
789 (progn
790 (skip-chars-forward "^ \t:#")
791 (buffer-substring start-of-target-name (point))))
792 (has-prereqs 1014 (has-prereqs
793 (not (looking-at ":[ \t]*$")))) 1015 (not (looking-at ":[ \t]*$"))))
794 (if (makefile-remember-target target-name has-prereqs) 1016 (if (makefile-remember-target target-name has-prereqs)
795 (message "Picked up target \"%s\" from line %d" 1017 (message "Picked up target \"%s\" from line %d"
796 target-name line-number))))))))) 1018 target-name (line-number-at-pos)))
1019 (skip-chars-forward " \t")
1020 (not (or (eolp) (eq (char-after) ?:)))))
1021 (forward-line)))
1022 (message "Read targets OK.")))
797 1023
798(defun makefile-pickup-macros () 1024(defun makefile-pickup-macros ()
799 "Notice names of all macro definitions in Makefile." 1025 "Notice names of all macro definitions in Makefile."
800 (interactive) 1026 (interactive)
801 (if (not makefile-need-macro-pickup) 1027 (when makefile-need-macro-pickup
802 nil 1028 (setq makefile-need-macro-pickup nil
803 (setq makefile-need-macro-pickup nil) 1029 makefile-macro-table nil)
804 (setq makefile-macro-table nil)
805 (save-excursion 1030 (save-excursion
806 (goto-char (point-min)) 1031 (goto-char (point-min))
807 (while (re-search-forward makefile-macroassign-regex nil t) 1032 (while (re-search-forward makefile-macroassign-regex nil t)
808 (makefile-add-this-line-macro) 1033 (goto-char (match-beginning 1))
809 (forward-line 1))) 1034 (let ((macro-name (buffer-substring-no-properties (point)
1035 (progn
1036 (skip-chars-forward "^ \t:#=*")
1037 (point)))))
1038 (if (makefile-remember-macro macro-name)
1039 (message "Picked up macro \"%s\" from line %d"
1040 macro-name (line-number-at-pos))))
1041 (forward-line)))
810 (message "Read macros OK."))) 1042 (message "Read macros OK.")))
811 1043
812(defun makefile-add-this-line-macro ()
813 (save-excursion
814 (beginning-of-line)
815 (skip-chars-forward " \t")
816 (unless (eolp)
817 (let* ((start-of-macro-name (point))
818 (line-number (1+ (count-lines (point-min) (point))))
819 (macro-name (progn
820 (skip-chars-forward "^ \t:#=*")
821 (buffer-substring start-of-macro-name (point)))))
822 (if (makefile-remember-macro macro-name)
823 (message "Picked up macro \"%s\" from line %d"
824 macro-name line-number))))))
825
826(defun makefile-pickup-everything (arg) 1044(defun makefile-pickup-everything (arg)
827 "Notice names of all macros and targets in Makefile. 1045 "Notice names of all macros and targets in Makefile.
828Prefix arg means force pickups to be redone." 1046Prefix arg means force pickups to be redone."
829 (interactive "P") 1047 (interactive "P")
830 (if arg 1048 (if arg
831 (progn 1049 (setq makefile-need-target-pickup t
832 (setq makefile-need-target-pickup t) 1050 makefile-need-macro-pickup t))
833 (setq makefile-need-macro-pickup t)))
834 (makefile-pickup-macros) 1051 (makefile-pickup-macros)
835 (makefile-pickup-targets) 1052 (makefile-pickup-targets)
836 (if makefile-pickup-everything-picks-up-filenames-p 1053 (if makefile-pickup-everything-picks-up-filenames-p
@@ -841,17 +1058,12 @@ Prefix arg means force pickups to be redone."
841Checks each filename against `makefile-ignored-files-in-pickup-regex' 1058Checks each filename against `makefile-ignored-files-in-pickup-regex'
842and adds all qualifying names to the list of known targets." 1059and adds all qualifying names to the list of known targets."
843 (interactive) 1060 (interactive)
844 (let* ((dir (file-name-directory (buffer-file-name))) 1061 (mapc (lambda (name)
845 (raw-filename-list (if dir 1062 (or (file-directory-p name)
846 (file-name-all-completions "" dir) 1063 (string-match makefile-ignored-files-in-pickup-regex name)
847 (file-name-all-completions "" "")))) 1064 (if (makefile-remember-target name)
848 (mapcar (lambda (name) 1065 (message "Picked up file \"%s\" as target" name))))
849 (if (and (not (file-directory-p name)) 1066 (file-name-all-completions "" (or (file-name-directory (buffer-file-name)) ""))))
850 (not (string-match makefile-ignored-files-in-pickup-regex
851 name)))
852 (if (makefile-remember-target name)
853 (message "Picked up file \"%s\" as target" name))))
854 raw-filename-list)))
855 1067
856 1068
857 1069
@@ -1453,6 +1665,41 @@ Then prompts for all required parameters."
1453;;; Utility functions 1665;;; Utility functions
1454;;; ------------------------------------------------------------ 1666;;; ------------------------------------------------------------
1455 1667
1668(defun makefile-match-function-end (end)
1669 "To be called as an anchored matcher by font-lock.
1670The anchor must have matched the opening parens in the first group."
1671 (let ((s (match-string-no-properties 1)))
1672 (setq s (cond ((string= s "(") "\\(.*?\\)[ \t]*)")
1673 ((string= s "{") "\\(.*?\\)[ \t]*}")
1674 ((string= s "((") "\\(.*?\\)[ \t]*))")
1675 ((string= s "{{") "\\(.*?\\)[ \t]*}}")))
1676 (if s (looking-at s))))
1677
1678(defun makefile-match-dependency (bound)
1679 "Search for `makefile-dependency-regex' up to BOUND.
1680Checks that the colon has not already been fontified, else we
1681matched in a rule action."
1682 (catch 'found
1683 (let ((pt (point)))
1684 (while (progn (skip-chars-forward makefile-dependency-skip bound)
1685 (not (eobp)))
1686 (forward-char)
1687 (or (eq (char-after) ?=)
1688 (get-text-property (1- (point)) 'face)
1689 (when (save-excursion
1690 (beginning-of-line)
1691 (looking-at makefile-dependency-regex))
1692 (end-of-line)
1693 (throw 'found (point)))))
1694 (goto-char pt))
1695 nil))
1696
1697(defun makefile-match-action (bound)
1698 (catch 'found
1699 (while (re-search-forward makefile-rule-action-regex bound t)
1700 (or (eq ?\\ (char-after (- (match-beginning 0) 2)))
1701 (throw 'found t)))))
1702
1456(defun makefile-do-macro-insertion (macro-name) 1703(defun makefile-do-macro-insertion (macro-name)
1457 "Insert a macro reference." 1704 "Insert a macro reference."
1458 (if (not (zerop (length macro-name))) 1705 (if (not (zerop (length macro-name)))
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index 0febea4450f..f2576ad94db 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -376,33 +376,41 @@ The expansion is entirely correct because it uses the C preprocessor."
376 376
377(defcustom perl-indent-level 4 377(defcustom perl-indent-level 4
378 "*Indentation of Perl statements with respect to containing block." 378 "*Indentation of Perl statements with respect to containing block."
379 :type 'integer) 379 :type 'integer
380 :group 'perl)
380(defcustom perl-continued-statement-offset 4 381(defcustom perl-continued-statement-offset 4
381 "*Extra indent for lines not starting new statements." 382 "*Extra indent for lines not starting new statements."
382 :type 'integer) 383 :type 'integer
384 :group 'perl)
383(defcustom perl-continued-brace-offset -4 385(defcustom perl-continued-brace-offset -4
384 "*Extra indent for substatements that start with open-braces. 386 "*Extra indent for substatements that start with open-braces.
385This is in addition to `perl-continued-statement-offset'." 387This is in addition to `perl-continued-statement-offset'."
386 :type 'integer) 388 :type 'integer
389 :group 'perl)
387(defcustom perl-brace-offset 0 390(defcustom perl-brace-offset 0
388 "*Extra indentation for braces, compared with other text in same context." 391 "*Extra indentation for braces, compared with other text in same context."
389 :type 'integer) 392 :type 'integer
393 :group 'perl)
390(defcustom perl-brace-imaginary-offset 0 394(defcustom perl-brace-imaginary-offset 0
391 "*Imagined indentation of an open brace that actually follows a statement." 395 "*Imagined indentation of an open brace that actually follows a statement."
392 :type 'integer) 396 :type 'integer
397 :group 'perl)
393(defcustom perl-label-offset -2 398(defcustom perl-label-offset -2
394 "*Offset of Perl label lines relative to usual indentation." 399 "*Offset of Perl label lines relative to usual indentation."
395 :type 'integer) 400 :type 'integer
401 :group 'perl)
396(defcustom perl-indent-continued-arguments nil 402(defcustom perl-indent-continued-arguments nil
397 "*If non-nil offset of argument lines relative to usual indentation. 403 "*If non-nil offset of argument lines relative to usual indentation.
398If nil, continued arguments are aligned with the first argument." 404If nil, continued arguments are aligned with the first argument."
399 :type '(choice integer (const nil))) 405 :type '(choice integer (const nil))
406 :group 'perl)
400 407
401(defcustom perl-tab-always-indent tab-always-indent 408(defcustom perl-tab-always-indent tab-always-indent
402 "Non-nil means TAB in Perl mode always indents the current line. 409 "Non-nil means TAB in Perl mode always indents the current line.
403Otherwise it inserts a tab character if you type it past the first 410Otherwise it inserts a tab character if you type it past the first
404nonwhite character on the line." 411nonwhite character on the line."
405 :type 'boolean) 412 :type 'boolean
413 :group 'perl)
406 414
407;; I changed the default to nil for consistency with general Emacs 415;; I changed the default to nil for consistency with general Emacs
408;; conventions -- rms. 416;; conventions -- rms.
@@ -411,11 +419,13 @@ nonwhite character on the line."
411For lines which don't need indenting, TAB either indents an 419For lines which don't need indenting, TAB either indents an
412existing comment, moves to end-of-line, or if at end-of-line already, 420existing comment, moves to end-of-line, or if at end-of-line already,
413create a new comment." 421create a new comment."
414 :type 'boolean) 422 :type 'boolean
423 :group 'perl)
415 424
416(defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]" 425(defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]"
417 "*Lines starting with this regular expression are not auto-indented." 426 "*Lines starting with this regular expression are not auto-indented."
418 :type 'regexp) 427 :type 'regexp
428 :group 'perl)
419 429
420;; Outline support 430;; Outline support
421 431
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 25bc337a7b2..73450dec61a 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -234,8 +234,8 @@ Entry to this mode calls the value of `prolog-mode-hook' with no arguments,
234if that value is non-nil. Likewise with the value of `comint-mode-hook'. 234if that value is non-nil. Likewise with the value of `comint-mode-hook'.
235`prolog-mode-hook' is called after `comint-mode-hook'. 235`prolog-mode-hook' is called after `comint-mode-hook'.
236 236
237You can send text to the inferior Prolog from other buffers 237You can send text to the inferior Prolog from other buffers using the commands
238using the commands `send-region', `send-string' and \\[prolog-consult-region]. 238`process-send-region', `process-send-string' and \\[prolog-consult-region].
239 239
240Commands: 240Commands:
241Tab indents for Prolog; with argument, shifts rest 241Tab indents for Prolog; with argument, shifts rest
@@ -265,12 +265,12 @@ If COMPILE (prefix arg) is not nil, use compile mode rather than consult mode."
265 (interactive "P\nr") 265 (interactive "P\nr")
266 (save-excursion 266 (save-excursion
267 (if compile 267 (if compile
268 (send-string "prolog" prolog-compile-string) 268 (process-send-string "prolog" prolog-compile-string)
269 (send-string "prolog" prolog-consult-string)) 269 (process-send-string "prolog" prolog-consult-string))
270 (send-region "prolog" beg end) 270 (process-send-region "prolog" beg end)
271 (send-string "prolog" "\n") ;May be unnecessary 271 (process-send-string "prolog" "\n") ;May be unnecessary
272 (if prolog-eof-string 272 (if prolog-eof-string
273 (send-string "prolog" prolog-eof-string) 273 (process-send-string "prolog" prolog-eof-string)
274 (process-send-eof "prolog")))) ;Send eof to prolog process. 274 (process-send-eof "prolog")))) ;Send eof to prolog process.
275 275
276(defun prolog-consult-region-and-go (compile beg end) 276(defun prolog-consult-region-and-go (compile beg end)
diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el
index b3495c74491..2d8f1d80aae 100644
--- a/lisp/progmodes/ps-mode.el
+++ b/lisp/progmodes/ps-mode.el
@@ -1173,7 +1173,7 @@ Use line numbers if `ps-run-error-line-numbers' is not nil"
1173 (let (i) 1173 (let (i)
1174 (setq 1174 (setq
1175 i 1175 i
1176 (string-to-int 1176 (string-to-number
1177 (buffer-substring (match-beginning 0) (match-end 0)))) 1177 (buffer-substring (match-beginning 0) (match-end 0))))
1178 (goto-char p) 1178 (goto-char p)
1179 (pop-to-buffer ps-run-parent) 1179 (pop-to-buffer ps-run-parent)
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index f2389d8defa..0173c419b5d 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1015,7 +1015,7 @@ Anything else means: whenever we have a \"good guess\" as to the value."
1015 :group 'sh-indentation) 1015 :group 'sh-indentation)
1016 1016
1017(defcustom sh-popup-occur-buffer nil 1017(defcustom sh-popup-occur-buffer nil
1018 "*Controls when `sh-learn-buffer-indent' pops the *indent* buffer. 1018 "*Controls when `sh-learn-buffer-indent' pops the `*indent*' buffer.
1019If t it is always shown. If nil, it is shown only when there 1019If t it is always shown. If nil, it is shown only when there
1020are conflicts." 1020are conflicts."
1021 :type '(choice 1021 :type '(choice
@@ -1044,7 +1044,7 @@ Can be set to a number, or to nil which means leave it as is."
1044 1044
1045(defcustom sh-basic-offset 4 1045(defcustom sh-basic-offset 4
1046 "*The default indentation increment. 1046 "*The default indentation increment.
1047This value is used for the + and - symbols in an indentation variable." 1047This value is used for the `+' and `-' symbols in an indentation variable."
1048 :type 'integer 1048 :type 'integer
1049 :group 'sh-indentation) 1049 :group 'sh-indentation)
1050 1050
@@ -1088,7 +1088,7 @@ a number means align to that column, e.g. 0 means fist column."
1088 :menu-tag "/ Indent left half sh-basic-offset"))) 1088 :menu-tag "/ Indent left half sh-basic-offset")))
1089 1089
1090(defcustom sh-indent-for-else 0 1090(defcustom sh-indent-for-else 0
1091 "*How much to indent an else relative to an if. Usually 0." 1091 "*How much to indent an `else' relative to its `if'. Usually 0."
1092 :type `(choice 1092 :type `(choice
1093 (integer :menu-tag "A number (positive=>indent right)" 1093 (integer :menu-tag "A number (positive=>indent right)"
1094 :tag "A number") 1094 :tag "A number")
@@ -1104,75 +1104,75 @@ a number means align to that column, e.g. 0 means fist column."
1104 sh-symbol-list)) 1104 sh-symbol-list))
1105 1105
1106(defcustom sh-indent-for-fi 0 1106(defcustom sh-indent-for-fi 0
1107 "*How much to indent a fi relative to an if. Usually 0." 1107 "*How much to indent a `fi' relative to its `if'. Usually 0."
1108 :type `(choice ,@ sh-number-or-symbol-list ) 1108 :type `(choice ,@ sh-number-or-symbol-list )
1109 :group 'sh-indentation) 1109 :group 'sh-indentation)
1110 1110
1111(defcustom sh-indent-for-done '0 1111(defcustom sh-indent-for-done 0
1112 "*How much to indent a done relative to its matching stmt. Usually 0." 1112 "*How much to indent a `done' relative to its matching stmt. Usually 0."
1113 :type `(choice ,@ sh-number-or-symbol-list ) 1113 :type `(choice ,@ sh-number-or-symbol-list )
1114 :group 'sh-indentation) 1114 :group 'sh-indentation)
1115 1115
1116(defcustom sh-indent-after-else '+ 1116(defcustom sh-indent-after-else '+
1117 "*How much to indent a statement after an else statement." 1117 "*How much to indent a statement after an `else' statement."
1118 :type `(choice ,@ sh-number-or-symbol-list ) 1118 :type `(choice ,@ sh-number-or-symbol-list )
1119 :group 'sh-indentation) 1119 :group 'sh-indentation)
1120 1120
1121(defcustom sh-indent-after-if '+ 1121(defcustom sh-indent-after-if '+
1122 "*How much to indent a statement after an if statement. 1122 "*How much to indent a statement after an `if' statement.
1123This includes lines after else and elif statements, too, but 1123This includes lines after `else' and `elif' statements, too, but
1124does not affect then else elif or fi statements themselves." 1124does not affect the `else', `elif' or `fi' statements themselves."
1125 :type `(choice ,@ sh-number-or-symbol-list ) 1125 :type `(choice ,@ sh-number-or-symbol-list )
1126 :group 'sh-indentation) 1126 :group 'sh-indentation)
1127 1127
1128(defcustom sh-indent-for-then 0 1128(defcustom sh-indent-for-then 0
1129 "*How much to indent a then relative to an if." 1129 "*How much to indent a `then' relative to its `if'."
1130 :type `(choice ,@ sh-number-or-symbol-list ) 1130 :type `(choice ,@ sh-number-or-symbol-list )
1131 :group 'sh-indentation) 1131 :group 'sh-indentation)
1132 1132
1133(defcustom sh-indent-for-do 0 1133(defcustom sh-indent-for-do 0
1134 "*How much to indent a do statement. 1134 "*How much to indent a `do' statement.
1135This is relative to the statement before the do, i.e. the 1135This is relative to the statement before the `do', typically a
1136while until or for statement." 1136`while', `until', `for', `repeat' or `select' statement."
1137 :type `(choice ,@ sh-number-or-symbol-list) 1137 :type `(choice ,@ sh-number-or-symbol-list)
1138 :group 'sh-indentation) 1138 :group 'sh-indentation)
1139 1139
1140(defcustom sh-indent-after-do '* 1140(defcustom sh-indent-after-do '+
1141 "*How much to indent a line after a do statement. 1141 "*How much to indent a line after a `do' statement.
1142This is used when the do is the first word of the line. 1142This is used when the `do' is the first word of the line.
1143This is relative to the statement before the do, e.g. a 1143This is relative to the statement before the `do', typically a
1144while for repeat or select statement." 1144`while', `until', `for', `repeat' or `select' statement."
1145 :type `(choice ,@ sh-number-or-symbol-list) 1145 :type `(choice ,@ sh-number-or-symbol-list)
1146 :group 'sh-indentation) 1146 :group 'sh-indentation)
1147 1147
1148(defcustom sh-indent-after-loop-construct '+ 1148(defcustom sh-indent-after-loop-construct '+
1149 "*How much to indent a statement after a loop construct. 1149 "*How much to indent a statement after a loop construct.
1150 1150
1151This variable is used when the keyword \"do\" is on the same line as the 1151This variable is used when the keyword `do' is on the same line as the
1152loop statement (e.g. \"until\", \"while\" or \"for\"). 1152loop statement (e.g., `until', `while' or `for').
1153If the do is on a line by itself, then `sh-indent-after-do' is used instead." 1153If the `do' is on a line by itself, then `sh-indent-after-do' is used instead."
1154 :type `(choice ,@ sh-number-or-symbol-list) 1154 :type `(choice ,@ sh-number-or-symbol-list)
1155 :group 'sh-indentation) 1155 :group 'sh-indentation)
1156 1156
1157 1157
1158(defcustom sh-indent-after-done 0 1158(defcustom sh-indent-after-done 0
1159 "*How much to indent a statement after a \"done\" keyword. 1159 "*How much to indent a statement after a `done' keyword.
1160Normally this is 0, which aligns the \"done\" to the matching 1160Normally this is 0, which aligns the `done' to the matching
1161looping construct line. 1161looping construct line.
1162Setting it non-zero allows you to have the \"do\" statement on a line 1162Setting it non-zero allows you to have the `do' statement on a line
1163by itself and align the done under to do." 1163by itself and align the done under to do."
1164 :type `(choice ,@ sh-number-or-symbol-list) 1164 :type `(choice ,@ sh-number-or-symbol-list)
1165 :group 'sh-indentation) 1165 :group 'sh-indentation)
1166 1166
1167(defcustom sh-indent-for-case-label '+ 1167(defcustom sh-indent-for-case-label '+
1168 "*How much to indent a case label statement. 1168 "*How much to indent a case label statement.
1169This is relative to the line containing the case statement." 1169This is relative to the line containing the `case' statement."
1170 :type `(choice ,@ sh-number-or-symbol-list) 1170 :type `(choice ,@ sh-number-or-symbol-list)
1171 :group 'sh-indentation) 1171 :group 'sh-indentation)
1172 1172
1173(defcustom sh-indent-for-case-alt '++ 1173(defcustom sh-indent-for-case-alt '++
1174 "*How much to indent statements after the case label. 1174 "*How much to indent statements after the case label.
1175This is relative to the line containing the case statement." 1175This is relative to the line containing the `case' statement."
1176 :type `(choice ,@ sh-number-or-symbol-list) 1176 :type `(choice ,@ sh-number-or-symbol-list)
1177 :group 'sh-indentation) 1177 :group 'sh-indentation)
1178 1178
@@ -1184,7 +1184,7 @@ This is relative to the line containing the case statement."
1184 1184
1185(defcustom sh-indent-after-open '+ 1185(defcustom sh-indent-after-open '+
1186 "*How much to indent after a line with an opening parenthesis or brace. 1186 "*How much to indent after a line with an opening parenthesis or brace.
1187For an open paren after a function `sh-indent-after-function' is used." 1187For an open paren after a function, `sh-indent-after-function' is used."
1188 :type `(choice ,@ sh-number-or-symbol-list) 1188 :type `(choice ,@ sh-number-or-symbol-list)
1189 :group 'sh-indentation) 1189 :group 'sh-indentation)
1190 1190
@@ -1196,13 +1196,13 @@ For an open paren after a function `sh-indent-after-function' is used."
1196;; These 2 are for the rc shell: 1196;; These 2 are for the rc shell:
1197 1197
1198(defcustom sh-indent-after-switch '+ 1198(defcustom sh-indent-after-switch '+
1199 "*How much to indent a case statement relative to the switch statement. 1199 "*How much to indent a `case' statement relative to the `switch' statement.
1200This is for the rc shell." 1200This is for the rc shell."
1201 :type `(choice ,@ sh-number-or-symbol-list) 1201 :type `(choice ,@ sh-number-or-symbol-list)
1202 :group 'sh-indentation) 1202 :group 'sh-indentation)
1203 1203
1204(defcustom sh-indent-after-case '+ 1204(defcustom sh-indent-after-case '+
1205 "*How much to indent a statement relative to the case statement. 1205 "*How much to indent a statement relative to the `case' statement.
1206This is for the rc shell." 1206This is for the rc shell."
1207 :type `(choice ,@ sh-number-or-symbol-list) 1207 :type `(choice ,@ sh-number-or-symbol-list)
1208 :group 'sh-indentation) 1208 :group 'sh-indentation)
diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el
index 95cfbb15196..a3447befa20 100644
--- a/lisp/progmodes/tcl.el
+++ b/lisp/progmodes/tcl.el
@@ -123,15 +123,18 @@
123 123
124(defcustom tcl-indent-level 4 124(defcustom tcl-indent-level 4
125 "*Indentation of Tcl statements with respect to containing block." 125 "*Indentation of Tcl statements with respect to containing block."
126 :type 'integer) 126 :type 'integer
127 :group 'tcl)
127 128
128(defcustom tcl-continued-indent-level 4 129(defcustom tcl-continued-indent-level 4
129 "*Indentation of continuation line relative to first line of command." 130 "*Indentation of continuation line relative to first line of command."
130 :type 'integer) 131 :type 'integer
132 :group 'tcl)
131 133
132(defcustom tcl-auto-newline nil 134(defcustom tcl-auto-newline nil
133 "*Non-nil means automatically newline before and after braces you insert." 135 "*Non-nil means automatically newline before and after braces you insert."
134 :type 'boolean) 136 :type 'boolean
137 :group 'tcl)
135 138
136(defcustom tcl-tab-always-indent tab-always-indent 139(defcustom tcl-tab-always-indent tab-always-indent
137 "*Control effect of TAB key. 140 "*Control effect of TAB key.
@@ -149,7 +152,8 @@ to take place:
149 6. Move backward to start of comment, indenting if necessary." 152 6. Move backward to start of comment, indenting if necessary."
150 :type '(choice (const :tag "Always" t) 153 :type '(choice (const :tag "Always" t)
151 (const :tag "Beginning only" nil) 154 (const :tag "Beginning only" nil)
152 (const :tag "Maybe move or make or delete comment" 'tcl))) 155 (const :tag "Maybe move or make or delete comment" 'tcl))
156 :group 'tcl)
153 157
154 158
155(defcustom tcl-electric-hash-style nil ;; 'smart 159(defcustom tcl-electric-hash-style nil ;; 'smart
@@ -160,23 +164,28 @@ meaning that the choice between `backslash' and `quote' should be
160made depending on the number of hashes inserted; or nil, meaning that 164made depending on the number of hashes inserted; or nil, meaning that
161no quoting should be done. Any other value for this variable is 165no quoting should be done. Any other value for this variable is
162taken to mean `smart'. The default is nil." 166taken to mean `smart'. The default is nil."
163 :type '(choice (const backslash) (const quote) (const smart) (const nil))) 167 :type '(choice (const backslash) (const quote) (const smart) (const nil))
168 :group 'tcl)
164 169
165(defcustom tcl-help-directory-list nil 170(defcustom tcl-help-directory-list nil
166 "*List of topmost directories containing TclX help files." 171 "*List of topmost directories containing TclX help files."
167 :type '(repeat directory)) 172 :type '(repeat directory)
173 :group 'tcl)
168 174
169(defcustom tcl-use-smart-word-finder t 175(defcustom tcl-use-smart-word-finder t
170 "*If not nil, use smart way to find current word, for Tcl help feature." 176 "*If not nil, use smart way to find current word, for Tcl help feature."
171 :type 'boolean) 177 :type 'boolean
178 :group 'tcl)
172 179
173(defcustom tcl-application "wish" 180(defcustom tcl-application "wish"
174 "*Name of Tcl program to run in inferior Tcl mode." 181 "*Name of Tcl program to run in inferior Tcl mode."
175 :type 'string) 182 :type 'string
183 :group 'tcl)
176 184
177(defcustom tcl-command-switches nil 185(defcustom tcl-command-switches nil
178 "*List of switches to supply to the `tcl-application' program." 186 "*List of switches to supply to the `tcl-application' program."
179 :type '(repeat string)) 187 :type '(repeat string)
188 :group 'tcl)
180 189
181(defcustom tcl-prompt-regexp "^\\(% \\|\\)" 190(defcustom tcl-prompt-regexp "^\\(% \\|\\)"
182 "*If not nil, a regexp that will match the prompt in the inferior process. 191 "*If not nil, a regexp that will match the prompt in the inferior process.
@@ -184,7 +193,8 @@ If nil, the prompt is the name of the application with \">\" appended.
184 193
185The default is \"^\\(% \\|\\)\", which will match the default primary 194The default is \"^\\(% \\|\\)\", which will match the default primary
186and secondary prompts for tclsh and wish." 195and secondary prompts for tclsh and wish."
187 :type 'regexp) 196 :type 'regexp
197 :group 'tcl)
188 198
189(defcustom inferior-tcl-source-command "source %s\n" 199(defcustom inferior-tcl-source-command "source %s\n"
190 "*Format-string for building a Tcl command to load a file. 200 "*Format-string for building a Tcl command to load a file.
@@ -192,7 +202,8 @@ This format string should use `%s' to substitute a file name
192and should result in a Tcl expression that will command the 202and should result in a Tcl expression that will command the
193inferior Tcl to load that file. The filename will be appropriately 203inferior Tcl to load that file. The filename will be appropriately
194quoted for Tcl." 204quoted for Tcl."
195 :type 'string) 205 :type 'string
206 :group 'tcl)
196 207
197(defface tcl-escaped-newline '((t :inherit font-lock-string-face)) 208(defface tcl-escaped-newline '((t :inherit font-lock-string-face))
198 "Face used for (non-escaped) backslash at end of a line in Tcl mode." 209 "Face used for (non-escaped) backslash at end of a line in Tcl mode."
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 9f0e63e80a6..12f04895f98 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -5082,7 +5082,7 @@ Return a valid value only."
5082 ((string-equal "++" input) '++) 5082 ((string-equal "++" input) '++)
5083 ((string-equal "--" input) '--) 5083 ((string-equal "--" input) '--)
5084 ((string-match "^-?[0-9]+$" input) 5084 ((string-match "^-?[0-9]+$" input)
5085 (string-to-int input)) 5085 (string-to-number input))
5086 ((fboundp (setq interned (intern input))) 5086 ((fboundp (setq interned (intern input)))
5087 interned) 5087 interned)
5088 ((boundp interned) interned) 5088 ((boundp interned) interned)
@@ -13701,10 +13701,10 @@ entity ENT-KEY."
13701 (condition-case () 13701 (condition-case ()
13702 (progn (load-file file-dir-name) 13702 (progn (load-file file-dir-name)
13703 (string< (mapconcat 13703 (string< (mapconcat
13704 (lambda (a) (format "%3d" (string-to-int a))) 13704 (lambda (a) (format "%3d" (string-to-number a)))
13705 (split-string "3.31.14" "\\.") "") 13705 (split-string "3.31.14" "\\.") "")
13706 (mapconcat 13706 (mapconcat
13707 (lambda (a) (format "%3d" (string-to-int a))) 13707 (lambda (a) (format "%3d" (string-to-number a)))
13708 (split-string vhdl-cache-version "\\.") ""))) 13708 (split-string vhdl-cache-version "\\.") "")))
13709 (error (progn (vhdl-warning (format "ERROR: Corrupted cache file: \"%s\"" file-dir-name)) 13709 (error (progn (vhdl-warning (format "ERROR: Corrupted cache file: \"%s\"" file-dir-name))
13710 nil)))))) 13710 nil))))))
@@ -14075,7 +14075,7 @@ otherwise use cached data."
14075 (beginning-of-line) (looking-at "^\\([0-9]+\\):")) 14075 (beginning-of-line) (looking-at "^\\([0-9]+\\):"))
14076 (re-search-backward 14076 (re-search-backward
14077 (format "^[0-%d]:\\s-*[[{<]-" 14077 (format "^[0-%d]:\\s-*[[{<]-"
14078 (max (1- (string-to-int (match-string 1))) 0)) nil t))) 14078 (max (1- (string-to-number (match-string 1))) 0)) nil t)))
14079 (goto-char (match-end 0)) 14079 (goto-char (match-end 0))
14080 (speedbar-do-function-pointer) 14080 (speedbar-do-function-pointer)
14081 (speedbar-center-buffer-smartly))) 14081 (speedbar-center-buffer-smartly)))
diff --git a/lisp/replace.el b/lisp/replace.el
index 1cef7ecc52a..c9c70b59de5 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -1288,14 +1288,14 @@ passed in. If LITERAL is set, no checking is done, anyway."
1288 (while (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\?\\)" 1288 (while (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\?\\)"
1289 newtext) 1289 newtext)
1290 (setq newtext 1290 (setq newtext
1291 (read-input "Edit replacement string: " 1291 (read-string "Edit replacement string: "
1292 (prog1 1292 (prog1
1293 (cons 1293 (cons
1294 (replace-match "" t t newtext 3) 1294 (replace-match "" t t newtext 3)
1295 (1+ (match-beginning 3))) 1295 (1+ (match-beginning 3)))
1296 (setq match-data 1296 (setq match-data
1297 (replace-match-data 1297 (replace-match-data
1298 nil match-data match-data)))) 1298 nil match-data match-data))))
1299 noedit nil))) 1299 noedit nil)))
1300 (set-match-data match-data) 1300 (set-match-data match-data)
1301 (replace-match newtext fixedcase literal) 1301 (replace-match newtext fixedcase literal)
@@ -1571,8 +1571,8 @@ make, or the user didn't cancel the call."
1571 nil real-match-data 1571 nil real-match-data
1572 real-match-data) 1572 real-match-data)
1573 next-replacement 1573 next-replacement
1574 (read-input "Edit replacement string: " 1574 (read-string "Edit replacement string: "
1575 next-replacement) 1575 next-replacement)
1576 noedit nil) 1576 noedit nil)
1577 (if replaced 1577 (if replaced
1578 (set-match-data real-match-data) 1578 (set-match-data real-match-data)
diff --git a/lisp/reveal.el b/lisp/reveal.el
index 97411fc1669..c08f9b604cb 100644
--- a/lisp/reveal.el
+++ b/lisp/reveal.el
@@ -54,7 +54,8 @@
54 54
55(defcustom reveal-around-mark t 55(defcustom reveal-around-mark t
56 "Reveal text around the mark, if active." 56 "Reveal text around the mark, if active."
57 :type 'boolean) 57 :type 'boolean
58 :group 'reveal)
58 59
59(defvar reveal-open-spots nil) 60(defvar reveal-open-spots nil)
60(make-variable-buffer-local 'reveal-open-spots) 61(make-variable-buffer-local 'reveal-open-spots)
diff --git a/lisp/server.el b/lisp/server.el
index a0f41e59ff8..0a5fc942206 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -325,11 +325,11 @@ PROC is the server process. Format of STRING is \"PATH PATH PATH... \\n\"."
325 (setq request ""))))) 325 (setq request "")))))
326 ;; ARG is a line number option. 326 ;; ARG is a line number option.
327 ((string-match "\\`\\+[0-9]+\\'" arg) 327 ((string-match "\\`\\+[0-9]+\\'" arg)
328 (setq lineno (string-to-int (substring arg 1)))) 328 (setq lineno (string-to-number (substring arg 1))))
329 ;; ARG is line number:column option. 329 ;; ARG is line number:column option.
330 ((string-match "\\`+\\([0-9]+\\):\\([0-9]+\\)\\'" arg) 330 ((string-match "\\`+\\([0-9]+\\):\\([0-9]+\\)\\'" arg)
331 (setq lineno (string-to-int (match-string 1 arg)) 331 (setq lineno (string-to-number (match-string 1 arg))
332 columnno (string-to-int (match-string 2 arg)))) 332 columnno (string-to-number (match-string 2 arg))))
333 (t 333 (t
334 ;; Undo the quoting that emacsclient does 334 ;; Undo the quoting that emacsclient does
335 ;; for certain special characters. 335 ;; for certain special characters.
diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el
index b3149500ae5..653c1e7f042 100644
--- a/lisp/shadowfile.el
+++ b/lisp/shadowfile.el
@@ -675,7 +675,7 @@ Returns t unless files were locked; then returns nil."
675 (message "Data recovered from %s." 675 (message "Data recovered from %s."
676 (car (insert-file-contents (make-auto-save-file-name)))) 676 (car (insert-file-contents (make-auto-save-file-name))))
677 (sit-for 1)) 677 (sit-for 1))
678 (eval-current-buffer)) 678 (eval-buffer))
679 (when shadow-todo-file 679 (when shadow-todo-file
680 (set-buffer (setq shadow-todo-buffer 680 (set-buffer (setq shadow-todo-buffer
681 (find-file-noselect shadow-todo-file))) 681 (find-file-noselect shadow-todo-file)))
@@ -686,7 +686,7 @@ Returns t unless files were locked; then returns nil."
686 (message "Data recovered from %s." 686 (message "Data recovered from %s."
687 (car (insert-file-contents (make-auto-save-file-name)))) 687 (car (insert-file-contents (make-auto-save-file-name))))
688 (sit-for 1)) 688 (sit-for 1))
689 (eval-current-buffer nil)) 689 (eval-buffer nil))
690 (shadow-invalidate-hashtable)) 690 (shadow-invalidate-hashtable))
691 t)) 691 t))
692 692
diff --git a/lisp/shell.el b/lisp/shell.el
index 354ed88f80f..fd5e6c25032 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -759,7 +759,7 @@ Environment variables are expanded, see function `substitute-in-file-name'."
759;; If STR is of the form +n, for n>0, return n. Otherwise, nil. 759;; If STR is of the form +n, for n>0, return n. Otherwise, nil.
760(defun shell-extract-num (str) 760(defun shell-extract-num (str)
761 (and (string-match "^\\+[1-9][0-9]*$" str) 761 (and (string-match "^\\+[1-9][0-9]*$" str)
762 (string-to-int str))) 762 (string-to-number str)))
763 763
764 764
765(defun shell-dirtrack-mode () 765(defun shell-dirtrack-mode ()
diff --git a/lisp/startup.el b/lisp/startup.el
index a6679f923d0..96213f2924e 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1634,11 +1634,11 @@ normal otherwise."
1634 (kill-emacs t)) 1634 (kill-emacs t))
1635 1635
1636 ((string-match "^\\+[0-9]+\\'" argi) 1636 ((string-match "^\\+[0-9]+\\'" argi)
1637 (setq line (string-to-int argi))) 1637 (setq line (string-to-number argi)))
1638 1638
1639 ((string-match "^\\+\\([0-9]+\\):\\([0-9]+\\)\\'" argi) 1639 ((string-match "^\\+\\([0-9]+\\):\\([0-9]+\\)\\'" argi)
1640 (setq line (string-to-int (match-string 1 argi)) 1640 (setq line (string-to-number (match-string 1 argi))
1641 column (string-to-int (match-string 2 argi)))) 1641 column (string-to-number (match-string 2 argi))))
1642 1642
1643 ((setq tem (assoc argi command-line-x-option-alist)) 1643 ((setq tem (assoc argi command-line-x-option-alist))
1644 ;; Ignore X-windows options and their args if not using X. 1644 ;; Ignore X-windows options and their args if not using X.
diff --git a/lisp/subr.el b/lisp/subr.el
index 1c2c01e6b16..d91642c5cbe 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -603,8 +603,13 @@ in the current Emacs session, then this function may return nil."
603 (setq event (car event))) 603 (setq event (car event)))
604 (if (symbolp event) 604 (if (symbolp event)
605 (car (get event 'event-symbol-elements)) 605 (car (get event 'event-symbol-elements))
606 (let ((base (logand event (1- ?\A-\^@)))) 606 (let* ((base (logand event (1- ?\A-\^@)))
607 (downcase (if (< base 32) (logior base 64) base))))) 607 (uncontrolled (if (< base 32) (logior base 64) base)))
608 ;; There are some numbers that are invalid characters and
609 ;; cause `downcase' to get an error.
610 (condition-case ()
611 (downcase uncontrolled)
612 (error uncontrolled)))))
608 613
609(defsubst mouse-movement-p (object) 614(defsubst mouse-movement-p (object)
610 "Return non-nil if OBJECT is a mouse movement event." 615 "Return non-nil if OBJECT is a mouse movement event."
@@ -753,16 +758,14 @@ and `event-end' functions."
753 758
754;;;; Obsolescent names for functions. 759;;;; Obsolescent names for functions.
755 760
756(defalias 'window-dot 'window-point) 761(define-obsolete-function-alias 'window-dot 'window-point "22.1")
757(defalias 'set-window-dot 'set-window-point) 762(define-obsolete-function-alias 'set-window-dot 'set-window-point "22.1")
758(defalias 'read-input 'read-string) 763(define-obsolete-function-alias 'read-input 'read-string "22.1")
759(defalias 'send-string 'process-send-string) 764(define-obsolete-function-alias 'show-buffer 'set-window-buffer "22.1")
760(defalias 'send-region 'process-send-region) 765(define-obsolete-function-alias 'eval-current-buffer 'eval-buffer "22.1")
761(defalias 'show-buffer 'set-window-buffer) 766(define-obsolete-function-alias 'string-to-int 'string-to-number "22.1")
762(defalias 'eval-current-buffer 'eval-buffer)
763 767
764(make-obsolete 'char-bytes "now always returns 1." "20.4") 768(make-obsolete 'char-bytes "now always returns 1." "20.4")
765(make-obsolete 'baud-rate "use the `baud-rate' variable instead." "before 19.15")
766 769
767(defun insert-string (&rest args) 770(defun insert-string (&rest args)
768 "Mocklisp-compatibility insert function. 771 "Mocklisp-compatibility insert function.
@@ -771,6 +774,7 @@ is converted into a string by expressing it in decimal."
771 (dolist (el args) 774 (dolist (el args)
772 (insert (if (integerp el) (number-to-string el) el)))) 775 (insert (if (integerp el) (number-to-string el) el))))
773(make-obsolete 'insert-string 'insert "22.1") 776(make-obsolete 'insert-string 'insert "22.1")
777
774(defun makehash (&optional test) (make-hash-table :test (or test 'eql))) 778(defun makehash (&optional test) (make-hash-table :test (or test 'eql)))
775(make-obsolete 'makehash 'make-hash-table "22.1") 779(make-obsolete 'makehash 'make-hash-table "22.1")
776 780
@@ -778,6 +782,7 @@ is converted into a string by expressing it in decimal."
778(defun baud-rate () 782(defun baud-rate ()
779 "Return the value of the `baud-rate' variable." 783 "Return the value of the `baud-rate' variable."
780 baud-rate) 784 baud-rate)
785(make-obsolete 'baud-rate "use the `baud-rate' variable instead." "before 19.15")
781 786
782 787
783;;;; Obsolescence declarations for variables, and aliases. 788;;;; Obsolescence declarations for variables, and aliases.
@@ -787,10 +792,6 @@ is converted into a string by expressing it in decimal."
787(make-obsolete-variable 'unread-command-char 792(make-obsolete-variable 'unread-command-char
788 "use `unread-command-events' instead. That variable is a list of events to reread, so it now uses nil to mean `no event', instead of -1." 793 "use `unread-command-events' instead. That variable is a list of events to reread, so it now uses nil to mean `no event', instead of -1."
789 "before 19.15") 794 "before 19.15")
790(make-obsolete-variable 'post-command-idle-hook
791 "use timers instead, with `run-with-idle-timer'." "before 19.34")
792(make-obsolete-variable 'post-command-idle-delay
793 "use timers instead, with `run-with-idle-timer'." "before 19.34")
794 795
795;; Lisp manual only updated in 22.1. 796;; Lisp manual only updated in 22.1.
796(define-obsolete-variable-alias 'executing-macro 'executing-kbd-macro 797(define-obsolete-variable-alias 'executing-macro 'executing-kbd-macro
@@ -805,6 +806,8 @@ is converted into a string by expressing it in decimal."
805 806
806;;;; Alternate names for functions - these are not being phased out. 807;;;; Alternate names for functions - these are not being phased out.
807 808
809(defalias 'send-string 'process-send-string)
810(defalias 'send-region 'process-send-region)
808(defalias 'string= 'string-equal) 811(defalias 'string= 'string-equal)
809(defalias 'string< 'string-lessp) 812(defalias 'string< 'string-lessp)
810(defalias 'move-marker 'set-marker) 813(defalias 'move-marker 'set-marker)
@@ -822,9 +825,6 @@ is converted into a string by expressing it in decimal."
822(defalias 'point-at-eol 'line-end-position) 825(defalias 'point-at-eol 'line-end-position)
823(defalias 'point-at-bol 'line-beginning-position) 826(defalias 'point-at-bol 'line-beginning-position)
824 827
825;;; Should this be an obsolete name? If you decide it should, you get
826;;; to go through all the sources and change them.
827(define-obsolete-function-alias 'string-to-int 'string-to-number)
828 828
829;;;; Hook manipulation functions. 829;;;; Hook manipulation functions.
830 830
@@ -983,7 +983,8 @@ It can also be nil, if the definition is not associated with any file.
983 983
984If TYPE is nil, then any kind of definition is acceptable. 984If TYPE is nil, then any kind of definition is acceptable.
985If TYPE is `defun' or `defvar', that specifies function 985If TYPE is `defun' or `defvar', that specifies function
986definition only or variable definition only." 986definition only or variable definition only.
987`defface' specifies a face definition only."
987 (if (and (or (null type) (eq type 'defun)) 988 (if (and (or (null type) (eq type 'defun))
988 (symbolp symbol) (fboundp symbol) 989 (symbolp symbol) (fboundp symbol)
989 (eq 'autoload (car-safe (symbol-function symbol)))) 990 (eq 'autoload (car-safe (symbol-function symbol))))
@@ -1040,12 +1041,10 @@ This makes or adds to an entry on `after-load-alist'.
1040FILE should be the name of a library, with no directory name." 1041FILE should be the name of a library, with no directory name."
1041 (eval-after-load file (read))) 1042 (eval-after-load file (read)))
1042 1043
1043;;; make-network-process wrappers 1044;;; open-network-stream is a wrapper around make-network-process.
1044 1045
1045(if (featurep 'make-network-process) 1046(when (featurep 'make-network-process)
1046 (progn 1047 (defun open-network-stream (name buffer host service)
1047
1048(defun open-network-stream (name buffer host service)
1049 "Open a TCP connection for a service to a host. 1048 "Open a TCP connection for a service to a host.
1050Returns a subprocess-object to represent the connection. 1049Returns a subprocess-object to represent the connection.
1051Input and output work as for subprocesses; `delete-process' closes it. 1050Input and output work as for subprocesses; `delete-process' closes it.
@@ -1061,56 +1060,7 @@ HOST is name of the host to connect to, or its IP address.
1061SERVICE is name of the service desired, or an integer specifying 1060SERVICE is name of the service desired, or an integer specifying
1062 a port number to connect to." 1061 a port number to connect to."
1063 (make-network-process :name name :buffer buffer 1062 (make-network-process :name name :buffer buffer
1064 :host host :service service)) 1063 :host host :service service)))
1065
1066(defun open-network-stream-nowait (name buffer host service &optional sentinel filter)
1067 "Initiate connection to a TCP connection for a service to a host.
1068It returns nil if non-blocking connects are not supported; otherwise,
1069it returns a subprocess-object to represent the connection.
1070
1071This function is similar to `open-network-stream', except that it
1072returns before the connection is established. When the connection
1073is completed, the sentinel function will be called with second arg
1074matching `open' (if successful) or `failed' (on error).
1075
1076Args are NAME BUFFER HOST SERVICE SENTINEL FILTER.
1077NAME, BUFFER, HOST, and SERVICE are as for `open-network-stream'.
1078Optional args SENTINEL and FILTER specify the sentinel and filter
1079functions to be used for this network stream."
1080 (if (featurep 'make-network-process '(:nowait t))
1081 (make-network-process :name name :buffer buffer :nowait t
1082 :host host :service service
1083 :filter filter :sentinel sentinel)))
1084
1085(defun open-network-stream-server (name buffer service &optional sentinel filter)
1086 "Create a network server process for a TCP service.
1087It returns nil if server processes are not supported; otherwise,
1088it returns a subprocess-object to represent the server.
1089
1090When a client connects to the specified service, a new subprocess
1091is created to handle the new connection, and the sentinel function
1092is called for the new process.
1093
1094Args are NAME BUFFER SERVICE SENTINEL FILTER.
1095NAME is name for the server process. Client processes are named by
1096 appending the ip-address and port number of the client to NAME.
1097BUFFER is the buffer (or buffer name) to associate with the server
1098 process. Client processes will not get a buffer if a process filter
1099 is specified or BUFFER is nil; otherwise, a new buffer is created for
1100 the client process. The name is similar to the process name.
1101Third arg SERVICE is name of the service desired, or an integer
1102 specifying a port number to connect to. It may also be t to select
1103 an unused port number for the server.
1104Optional args SENTINEL and FILTER specify the sentinel and filter
1105 functions to be used for the client processes; the server process
1106 does not use these function."
1107 (if (featurep 'make-network-process '(:server t))
1108 (make-network-process :name name :buffer buffer
1109 :service service :server t :noquery t
1110 :sentinel sentinel :filter filter)))
1111
1112)) ;; (featurep 'make-network-process)
1113
1114 1064
1115;; compatibility 1065;; compatibility
1116 1066
@@ -2362,7 +2312,7 @@ macros."
2362 "Delete from ALIST all elements whose car is `eq' to KEY. 2312 "Delete from ALIST all elements whose car is `eq' to KEY.
2363Return the modified alist. 2313Return the modified alist.
2364Elements of ALIST that are not conses are ignored." 2314Elements of ALIST that are not conses are ignored."
2365 (while (and (consp (car alist)) 2315 (while (and (consp (car alist))
2366 (eq (car (car alist)) key)) 2316 (eq (car (car alist)) key))
2367 (setq alist (cdr alist))) 2317 (setq alist (cdr alist)))
2368 (let ((tail alist) tail-cdr) 2318 (let ((tail alist) tail-cdr)
@@ -2377,7 +2327,7 @@ Elements of ALIST that are not conses are ignored."
2377 "Delete from ALIST all elements whose cdr is `eq' to VALUE. 2327 "Delete from ALIST all elements whose cdr is `eq' to VALUE.
2378Return the modified alist. 2328Return the modified alist.
2379Elements of ALIST that are not conses are ignored." 2329Elements of ALIST that are not conses are ignored."
2380 (while (and (consp (car alist)) 2330 (while (and (consp (car alist))
2381 (eq (cdr (car alist)) value)) 2331 (eq (cdr (car alist)) value))
2382 (setq alist (cdr alist))) 2332 (setq alist (cdr alist)))
2383 (let ((tail alist) tail-cdr) 2333 (let ((tail alist) tail-cdr)
diff --git a/lisp/term.el b/lisp/term.el
index 1e04f7ac015..7f8347a986d 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -3337,7 +3337,7 @@ The top-most line is line 0."
3337 (second-colon 3337 (second-colon
3338 (string-match ":" string (1+ first-colon))) 3338 (string-match ":" string (1+ first-colon)))
3339 (filename (substring string 1 first-colon)) 3339 (filename (substring string 1 first-colon))
3340 (fileline (string-to-int 3340 (fileline (string-to-number
3341 (substring string (1+ first-colon) second-colon)))) 3341 (substring string (1+ first-colon) second-colon))))
3342 (setq term-pending-frame (cons filename fileline)))) 3342 (setq term-pending-frame (cons filename fileline))))
3343 ((= (aref string 0) ?/) 3343 ((= (aref string 0) ?/)
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index 02a6564f6a1..f44fd616560 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -106,7 +106,7 @@
106 (let ((param (nth 3 aelt))) 106 (let ((param (nth 3 aelt)))
107 (setq default-frame-alist 107 (setq default-frame-alist
108 (cons (cons param 108 (cons (cons param
109 (string-to-int (car x-invocation-args))) 109 (string-to-number (car x-invocation-args)))
110 default-frame-alist) 110 default-frame-alist)
111 x-invocation-args 111 x-invocation-args
112 (cdr x-invocation-args)))))) 112 (cdr x-invocation-args))))))
@@ -1328,6 +1328,13 @@ in `selection-converter-alist', which see."
1328 coding 'utf-16))) 1328 coding 'utf-16)))
1329 (setq str (or s (encode-coding-string str 'utf-16-mac))))) 1329 (setq str (or s (encode-coding-string str 'utf-16-mac)))))
1330 ((eq type 'com.apple.traditional-mac-plain-text) 1330 ((eq type 'com.apple.traditional-mac-plain-text)
1331 (let ((encodables (find-coding-systems-string str))
1332 (rest mac-script-code-coding-systems))
1333 (unless (memq coding encodables)
1334 (while (and rest (not (memq (cdar rest) encodables)))
1335 (setq rest (cdr rest)))
1336 (if rest
1337 (setq coding (cdar rest)))))
1331 (setq coding (coding-system-change-eol-conversion coding 'mac)) 1338 (setq coding (coding-system-change-eol-conversion coding 'mac))
1332 (setq str (encode-coding-string str coding))) 1339 (setq str (encode-coding-string str coding)))
1333 (t 1340 (t
diff --git a/lisp/term/sun-mouse.el b/lisp/term/sun-mouse.el
index 8d9bfb67cf7..cee02919a66 100644
--- a/lisp/term/sun-mouse.el
+++ b/lisp/term/sun-mouse.el
@@ -615,7 +615,7 @@ CODE values: 13 = Tool-Position, 14 = Size-in-Pixels, 18 = Size-in-Chars."
615 (setq str (substring str (match-end 0))) 615 (setq str (substring str (match-end 0)))
616 (string-match ";[0-9]*" str) 616 (string-match ";[0-9]*" str)
617 (setq x (substring str (1+ (match-beginning 0)) (match-end 0))) 617 (setq x (substring str (1+ (match-beginning 0)) (match-end 0)))
618 (cons (string-to-int y) (string-to-int x)))) 618 (cons (string-to-number y) (string-to-number x))))
619 619
620(defun sm::font-size () 620(defun sm::font-size ()
621 "Returns font size in pixels: (cons Ysize Xsize)" 621 "Returns font size in pixels: (cons Ysize Xsize)"
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index b4bd84cad03..3fcf281a9b9 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -146,7 +146,7 @@ the last file dropped is selected."
146 "Handle SWITCH of the form \"-switch n\"." 146 "Handle SWITCH of the form \"-switch n\"."
147 (let ((aelt (assoc switch command-line-x-option-alist))) 147 (let ((aelt (assoc switch command-line-x-option-alist)))
148 (if aelt 148 (if aelt
149 (push (cons (nth 3 aelt) (string-to-int (pop x-invocation-args))) 149 (push (cons (nth 3 aelt) (string-to-number (pop x-invocation-args)))
150 default-frame-alist)))) 150 default-frame-alist))))
151 151
152;; Handle options that apply to initial frame only 152;; Handle options that apply to initial frame only
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 8641909da1c..4f440207c96 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -105,7 +105,7 @@
105 (let ((param (nth 3 aelt))) 105 (let ((param (nth 3 aelt)))
106 (setq default-frame-alist 106 (setq default-frame-alist
107 (cons (cons param 107 (cons (cons param
108 (string-to-int (car x-invocation-args))) 108 (string-to-number (car x-invocation-args)))
109 default-frame-alist) 109 default-frame-alist)
110 x-invocation-args 110 x-invocation-args
111 (cdr x-invocation-args)))))) 111 (cdr x-invocation-args))))))
diff --git a/lisp/terminal.el b/lisp/terminal.el
index d33ba914cd3..b84b1b6ed00 100644
--- a/lisp/terminal.el
+++ b/lisp/terminal.el
@@ -489,7 +489,7 @@ lets you type a terminal emulator command."
489 (progn 489 (progn
490 (and terminal-more-processing (null (cdr te-pending-output)) 490 (and terminal-more-processing (null (cdr te-pending-output))
491 (te-set-more-count nil)) 491 (te-set-more-count nil))
492 (send-string te-process (make-string 1 last-input-char)) 492 (process-send-string te-process (make-string 1 last-input-char))
493 (te-process-output t)) 493 (te-process-output t))
494 (message "Function key `%s' ignored" 494 (message "Function key `%s' ignored"
495 (single-key-description last-input-char)))))) 495 (single-key-description last-input-char))))))
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index c41145befc8..1615da60910 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -61,7 +61,8 @@ If the function returns nil, then `fill-paragraph' does its normal work.")
61Kinsoku processing is designed to prevent certain characters from being 61Kinsoku processing is designed to prevent certain characters from being
62placed at the beginning or end of a line by filling. 62placed at the beginning or end of a line by filling.
63See the documentation of `kinsoku' for more information." 63See the documentation of `kinsoku' for more information."
64 :type 'boolean) 64 :type 'boolean
65 :group 'fill)
65 66
66(defun set-fill-prefix () 67(defun set-fill-prefix ()
67 "Set the fill prefix to the current line up to point. 68 "Set the fill prefix to the current line up to point.
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index b171e6530fc..6aff0a731c7 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2266,9 +2266,9 @@ Optional third arg SHIFT is an offset to apply based on previous corrections."
2266 (setq output (substring output (match-end 0))) ; skip over misspelling 2266 (setq output (substring output (match-end 0))) ; skip over misspelling
2267 (if (eq type ?#) 2267 (if (eq type ?#)
2268 (setq count 0) ; no misses for type # 2268 (setq count 0) ; no misses for type #
2269 (setq count (string-to-int output) ; get number of misses. 2269 (setq count (string-to-number output) ; get number of misses.
2270 output (substring output (1+ (string-match " " output 1))))) 2270 output (substring output (1+ (string-match " " output 1)))))
2271 (setq offset (string-to-int output)) 2271 (setq offset (string-to-number output))
2272 (if (eq type ?#) ; No miss or guess list. 2272 (if (eq type ?#) ; No miss or guess list.
2273 (setq output nil) 2273 (setq output nil)
2274 (setq output (substring output (1+ (string-match " " output 1))))) 2274 (setq output (substring output (1+ (string-match " " output 1)))))
diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el
index c0638804ffa..9c5addb85fa 100644
--- a/lisp/textmodes/nroff-mode.el
+++ b/lisp/textmodes/nroff-mode.el
@@ -134,7 +134,7 @@ closing requests for requests that are used in matched pairs."
134 (save-excursion 134 (save-excursion
135 (looking-at outline-regexp) 135 (looking-at outline-regexp)
136 (skip-chars-forward ".H ") 136 (skip-chars-forward ".H ")
137 (string-to-int (buffer-substring (point) (+ 1 (point)))))) 137 (string-to-number (buffer-substring (point) (+ 1 (point))))))
138 138
139;;; Compute how much to indent a comment in nroff/troff source. 139;;; Compute how much to indent a comment in nroff/troff source.
140;;; By mit-erl!gildea April 86 140;;; By mit-erl!gildea April 86
diff --git a/lisp/textmodes/reftex-auc.el b/lisp/textmodes/reftex-auc.el
index 93cd0757b4e..821eb7feca2 100644
--- a/lisp/textmodes/reftex-auc.el
+++ b/lisp/textmodes/reftex-auc.el
@@ -1,8 +1,9 @@
1;;; reftex-auc.el --- RefTeX's interface to AUCTeX 1;;; reftex-auc.el --- RefTeX's interface to AUCTeX
2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004 Free Software Foundation, Inc. 2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
3;; Free Software Foundation, Inc.
3 4
4;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
5;; Version: 4.26 6;; Version: 4.28
6 7
7;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
8 9
diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el
index f12d01716fe..90ab8b7a3af 100644
--- a/lisp/textmodes/reftex-cite.el
+++ b/lisp/textmodes/reftex-cite.el
@@ -3,7 +3,7 @@
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
6;; Version: 4.26 6;; Version: 4.28
7 7
8;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
9 9
@@ -312,12 +312,12 @@
312 (not (stringp (car al1)))))) 312 (not (stringp (car al1))))))
313 313
314(defun reftex-bib-sort-year (e1 e2) 314(defun reftex-bib-sort-year (e1 e2)
315 (< (string-to-int (or (cdr (assoc "year" e1)) "0")) 315 (< (string-to-number (or (cdr (assoc "year" e1)) "0"))
316 (string-to-int (or (cdr (assoc "year" e2)) "0")))) 316 (string-to-number (or (cdr (assoc "year" e2)) "0"))))
317 317
318(defun reftex-bib-sort-year-reverse (e1 e2) 318(defun reftex-bib-sort-year-reverse (e1 e2)
319 (> (string-to-int (or (cdr (assoc "year" e1)) "0")) 319 (> (string-to-number (or (cdr (assoc "year" e1)) "0"))
320 (string-to-int (or (cdr (assoc "year" e2)) "0")))) 320 (string-to-number (or (cdr (assoc "year" e2)) "0"))))
321 321
322(defun reftex-get-crossref-alist (entry) 322(defun reftex-get-crossref-alist (entry)
323 ;; return the alist from a crossref entry 323 ;; return the alist from a crossref entry
@@ -681,7 +681,7 @@ While entering the regexp, completion on knows citation keys is possible.
681 ;; Should we cleanup empty optional arguments? 681 ;; Should we cleanup empty optional arguments?
682 ;; if the first is empty, it can be removed. If the second is empty, 682 ;; if the first is empty, it can be removed. If the second is empty,
683 ;; it has to go. If there is only a single arg and empty, it can go 683 ;; it has to go. If there is only a single arg and empty, it can go
684 ;; as well. 684 ;; as well.
685 (when reftex-cite-cleanup-optional-args 685 (when reftex-cite-cleanup-optional-args
686 (cond 686 (cond
687 ((string-match "\\([a-zA-Z0-9]\\)\\[\\]{" string) 687 ((string-match "\\([a-zA-Z0-9]\\)\\[\\]{" string)
@@ -988,7 +988,7 @@ While entering the regexp, completion on knows citation keys is possible.
988 (while (string-match 988 (while (string-match
989 "\\(\\`\\|[^%]\\)\\(\\(%\\([0-9]*\\)\\([a-zA-Z]\\)\\)[.,;: ]*\\)" 989 "\\(\\`\\|[^%]\\)\\(\\(%\\([0-9]*\\)\\([a-zA-Z]\\)\\)[.,;: ]*\\)"
990 format) 990 format)
991 (let ((n (string-to-int (match-string 4 format))) 991 (let ((n (string-to-number (match-string 4 format)))
992 (l (string-to-char (match-string 5 format))) 992 (l (string-to-char (match-string 5 format)))
993 rpl b e) 993 rpl b e)
994 (save-match-data 994 (save-match-data
diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el
index e832465cf17..b73c62a9a0a 100644
--- a/lisp/textmodes/reftex-dcr.el
+++ b/lisp/textmodes/reftex-dcr.el
@@ -1,8 +1,9 @@
1;;; reftex-dcr.el --- viewing cross references and citations with RefTeX 1;;; reftex-dcr.el --- viewing cross references and citations with RefTeX
2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004 Free Software Foundation, Inc. 2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
3;; Free Software Foundation, Inc.
3 4
4;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
5;; Version: 4.26 6;; Version: 4.28
6;; 7;;
7 8
8;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index d3ef2dcb788..76c03c13188 100644
--- a/lisp/textmodes/reftex-global.el
+++ b/lisp/textmodes/reftex-global.el
@@ -1,8 +1,9 @@
1;;; reftex-global.el --- operations on entire documents with RefTeX 1;;; reftex-global.el --- operations on entire documents with RefTeX
2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004 Free Software Foundation, Inc. 2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
3;; Free Software Foundation, Inc.
3 4
4;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
5;; Version: 4.26 6;; Version: 4.28
6 7
7;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
8 9
@@ -416,10 +417,6 @@ Also checks if buffers visiting the files are in read-only mode."
416 (find-file (car flist)))))) 417 (find-file (car flist))))))
417 418
418;;;###autoload 419;;;###autoload
419(defvar reftex-isearch-minor-mode nil)
420(make-variable-buffer-local 'reftex-isearch-minor-mode)
421
422;;;###autoload
423(defun reftex-isearch-minor-mode (&optional arg) 420(defun reftex-isearch-minor-mode (&optional arg)
424 "When on, isearch searches the whole document, not only the current file. 421 "When on, isearch searches the whole document, not only the current file.
425This minor mode allows isearch to search through all the files of 422This minor mode allows isearch to search through all the files of
diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el
index 8fada9c4930..ff2ea70a011 100644
--- a/lisp/textmodes/reftex-index.el
+++ b/lisp/textmodes/reftex-index.el
@@ -3,7 +3,7 @@
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
6;; Version: 4.26 6;; Version: 4.28
7 7
8;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
9 9
diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el
index ce1e3d77d72..0046c1b34b8 100644
--- a/lisp/textmodes/reftex-parse.el
+++ b/lisp/textmodes/reftex-parse.el
@@ -3,7 +3,7 @@
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
6;; Version: 4.26 6;; Version: 4.28
7;; 7;;
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
@@ -999,7 +999,7 @@ of master file."
999 (if (string-match "\\`[A-Z]\\'" number-string) 999 (if (string-match "\\`[A-Z]\\'" number-string)
1000 (aset reftex-section-numbers i 1000 (aset reftex-section-numbers i
1001 (- (string-to-char number-string) ?A -1)) 1001 (- (string-to-char number-string) ?A -1))
1002 (aset reftex-section-numbers i (string-to-int number-string))) 1002 (aset reftex-section-numbers i (string-to-number number-string)))
1003 (pop numbers)) 1003 (pop numbers))
1004 (decf i))) 1004 (decf i)))
1005 (put 'reftex-section-numbers 'appendix appendix)) 1005 (put 'reftex-section-numbers 'appendix appendix))
@@ -1045,7 +1045,7 @@ of master file."
1045 (setq string 1045 (setq string
1046 (concat 1046 (concat
1047 (char-to-string 1047 (char-to-string
1048 (1- (+ ?A (string-to-int (match-string 0 string))))) 1048 (1- (+ ?A (string-to-number (match-string 0 string)))))
1049 (substring string (match-end 0)))))) 1049 (substring string (match-end 0))))))
1050 (if star 1050 (if star
1051 (concat (make-string (1- (length string)) ?\ ) "*") 1051 (concat (make-string (1- (length string)) ?\ ) "*")
diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el
index 6afbb77767c..be6f95d6ebc 100644
--- a/lisp/textmodes/reftex-ref.el
+++ b/lisp/textmodes/reftex-ref.el
@@ -3,7 +3,7 @@
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
6;; Version: 4.26 6;; Version: 4.28
7 7
8;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
9 9
@@ -29,6 +29,7 @@
29(eval-when-compile (require 'cl)) 29(eval-when-compile (require 'cl))
30(provide 'reftex-ref) 30(provide 'reftex-ref)
31(require 'reftex) 31(require 'reftex)
32(require 'reftex-parse)
32;;; 33;;;
33 34
34(defun reftex-label-location (&optional bound) 35(defun reftex-label-location (&optional bound)
@@ -200,13 +201,13 @@ This function is controlled by the settings of reftex-insert-label-flags."
200 force-prompt) 201 force-prompt)
201 202
202 (while (not valid) 203 (while (not valid)
203 ;; iterate until we get a legal label 204 ;; iterate until we get a valid label
204 205
205 (setq label (read-string 206 (setq label (read-string
206 (if naked "Naked Label: " "Label: ") 207 (if naked "Naked Label: " "Label: ")
207 default)) 208 default))
208 209
209 ;; Lets make sure that this is a legal label 210 ;; Lets make sure that this is a valid label
210 (cond 211 (cond
211 212
212 ((string-match (concat "\\`\\(" (regexp-quote prefix) 213 ((string-match (concat "\\`\\(" (regexp-quote prefix)
diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el
index 8b0ebb2ca2b..eb8c3035c90 100644
--- a/lisp/textmodes/reftex-sel.el
+++ b/lisp/textmodes/reftex-sel.el
@@ -1,8 +1,9 @@
1;;; reftex-sel.el --- the selection modes for RefTeX 1;;; reftex-sel.el --- the selection modes for RefTeX
2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004 Free Software Foundation, Inc. 2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
3;; Free Software Foundation, Inc.
3 4
4;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
5;; Version: 4.26 6;; Version: 4.28
6 7
7;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
8 9
@@ -418,7 +419,7 @@ During a selection process, these are the local bindings.
418 (remove-hook 'post-command-hook 419 (remove-hook 'post-command-hook
419 'reftex-select-post-command-hook t)) 420 'reftex-select-post-command-hook t))
420 ;; Kill the mark overlays 421 ;; Kill the mark overlays
421 (mapcar (lambda (c) (delete-overlay (nth 1 c))) 422 (mapcar (lambda (c) (reftex-delete-overlay (nth 1 c)))
422 reftex-select-marked))))) 423 reftex-select-marked)))))
423 424
424 (set (make-local-variable 'reftex-last-line) 425 (set (make-local-variable 'reftex-last-line)
@@ -604,14 +605,14 @@ Useful for large TOC's."
604 (setq boe (or (previous-single-property-change (1+ (point)) :data) 605 (setq boe (or (previous-single-property-change (1+ (point)) :data)
605 (point-min)) 606 (point-min))
606 eoe (or (next-single-property-change (point) :data) (point-max))) 607 eoe (or (next-single-property-change (point) :data) (point-max)))
607 (setq ovl (make-overlay boe eoe)) 608 (setq ovl (reftex-make-overlay boe eoe))
608 (push (list data ovl separator) reftex-select-marked) 609 (push (list data ovl separator) reftex-select-marked)
609 (overlay-put ovl 'face reftex-select-mark-face) 610 (reftex-overlay-put ovl 'face reftex-select-mark-face)
610 (overlay-put ovl 'before-string 611 (reftex-overlay-put ovl 'before-string
611 (if separator 612 (if separator
612 (format "*%c%d* " separator 613 (format "*%c%d* " separator
613 (length reftex-select-marked)) 614 (length reftex-select-marked))
614 (format "*%d* " (length reftex-select-marked)))) 615 (format "*%d* " (length reftex-select-marked))))
615 (message "Entry has mark no. %d" (length reftex-select-marked)))) 616 (message "Entry has mark no. %d" (length reftex-select-marked))))
616 617
617(defun reftex-select-mark-comma () 618(defun reftex-select-mark-comma ()
@@ -637,19 +638,16 @@ Useful for large TOC's."
637 sep) 638 sep)
638 (unless cell 639 (unless cell
639 (error "No marked entry at point")) 640 (error "No marked entry at point"))
640 (and ovl (delete-overlay ovl)) 641 (and ovl (reftex-delete-overlay ovl))
641 (setq reftex-select-marked (delq cell reftex-select-marked)) 642 (setq reftex-select-marked (delq cell reftex-select-marked))
642 (if (featurep 'xemacs) 643 (setq cnt (1+ (length reftex-select-marked)))
643 ;; before-string property is broken in Emacs 644 (mapcar (lambda (c)
644 (progn 645 (setq sep (nth 2 c))
645 (setq cnt (1+ (length reftex-select-marked))) 646 (reftex-overlay-put (nth 1 c) 'before-string
646 (mapcar (lambda (c) 647 (if sep
647 (setq sep (nth 2 c)) 648 (format "*%c%d* " sep (decf cnt))
648 (overlay-put (nth 1 c) 'before-string 649 (format "*%d* " (decf cnt)))))
649 (if sep 650 reftex-select-marked)
650 (format "*%c%d* " sep (decf cnt))
651 (format "*%d* " (decf cnt)))))
652 reftex-select-marked)))
653 (message "Entry no longer marked"))) 651 (message "Entry no longer marked")))
654 652
655(defun reftex-select-help () 653(defun reftex-select-help ()
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
index ed9746f8a69..8ad811391c7 100644
--- a/lisp/textmodes/reftex-toc.el
+++ b/lisp/textmodes/reftex-toc.el
@@ -1,8 +1,9 @@
1;;; reftex-toc.el --- RefTeX's table of contents mode 1;;; reftex-toc.el --- RefTeX's table of contents mode
2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004 Free Software Foundation, Inc. 2;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
3;; Free Software Foundation, Inc.
3 4
4;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
5;; Version: 4.26 6;; Version: 4.28
6 7
7;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
8 9
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index b2ca7bed250..b9748b31df2 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -3,7 +3,7 @@
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
6;; Version: 4.26 6;; Version: 4.28
7 7
8;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
9 9
@@ -155,6 +155,21 @@ distribution. Mixed-case symbols are convenience aliases.")
155 (?f . "\\fullcite{%l}") 155 (?f . "\\fullcite{%l}")
156 (?F . "\\fullocite{%l}") 156 (?F . "\\fullocite{%l}")
157 (?n . "\\nocite{%l}"))) 157 (?n . "\\nocite{%l}")))
158 (jurabib "The Jurabib package"
159 ((?\C-m . "\\cite{%l}")
160 (?c . "\\cite[][]{%l}")
161 (?t . "\\citet{%l}")
162 (?p . "\\citep{%l}")
163 (?e . "\\citep[e.g.][]{%l}")
164 (?s . "\\citep[see][]{%l}")
165 (?u . "\\fullcite{%l}")
166 (?i . "\\citetitle{%l}")
167 (?a . "\\citeauthor{%l}")
168 (?e . "\\citefield{}{%l}")
169 (?y . "\\citeyear{%l}")
170 (?f . "\\footcite{%l}")
171 (?F . "\\footcite[][]{%l}")
172 (?l . "\\footfullcite{%l}")))
158 (bibentry "The Bibentry package" 173 (bibentry "The Bibentry package"
159 "\\bibentry{%l}") 174 "\\bibentry{%l}")
160 (harvard "The Harvard package" 175 (harvard "The Harvard package"
@@ -639,7 +654,7 @@ or macro."
639 "Non-nil means, trust the label prefix when determining label type. 654 "Non-nil means, trust the label prefix when determining label type.
640It is customary to use special label prefixes to distinguish different label 655It is customary to use special label prefixes to distinguish different label
641types. The label prefixes have no syntactic meaning in LaTeX (unless 656types. The label prefixes have no syntactic meaning in LaTeX (unless
642special packages like fancyref) are being used. RefTeX can and by 657special packages like fancyref are being used). RefTeX can and by
643default does parse around each label to detect the correct label type, 658default does parse around each label to detect the correct label type,
644but this process can be slow when a document contains thousands of 659but this process can be slow when a document contains thousands of
645labels. If you use label prefixes consistently, you may speed up 660labels. If you use label prefixes consistently, you may speed up
@@ -1373,7 +1388,9 @@ Inserting indexing commands in a line makes the line longer - often
1373so long that it does not fit onto the screen. When this variable is 1388so long that it does not fit onto the screen. When this variable is
1374non-nil, newlines will be added as necessary before and/or after the 1389non-nil, newlines will be added as necessary before and/or after the
1375indexing command to keep lines short. However, the matched text 1390indexing command to keep lines short. However, the matched text
1376phrase and its index command will always end up on a single line.") 1391phrase and its index command will always end up on a single line."
1392 :group 'reftex-index-support
1393 :type 'boolean)
1377 1394
1378(defcustom reftex-index-phrases-sort-prefers-entry nil 1395(defcustom reftex-index-phrases-sort-prefers-entry nil
1379 "*Non-nil means when sorting phrase lines, the explicit index entry is used. 1396 "*Non-nil means when sorting phrase lines, the explicit index entry is used.
@@ -1529,7 +1546,7 @@ TYPE: File type like \"bib\" or \"tex\".
1529DEF-EXT: The default extension for that file type, like \".tex\" or \".bib\". 1546DEF-EXT: The default extension for that file type, like \".tex\" or \".bib\".
1530OTHER-EXT: Any number of other valid extensions for this file type. 1547OTHER-EXT: Any number of other valid extensions for this file type.
1531 1548
1532When a files is searched and it does not have any of the valid extensions, 1549When a files is searched and it does not have any of the legal extensions,
1533we try the default extension first, and then the naked file name. 1550we try the default extension first, and then the naked file name.
1534 1551
1535If you are using AUCTeX, you also need to add new extensions to 1552If you are using AUCTeX, you also need to add new extensions to
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index 865217dab08..f8b4cba65ae 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -3,7 +3,7 @@
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
6;; Version: 4.26 6;; Version: 4.28
7;; Keywords: tex 7;; Keywords: tex
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
@@ -301,7 +301,7 @@
301;;; Define the formal stuff for a minor mode named RefTeX. 301;;; Define the formal stuff for a minor mode named RefTeX.
302;;; 302;;;
303 303
304(defconst reftex-version "RefTeX version 4.26" 304(defconst reftex-version "RefTeX version 4.28"
305 "Version string for RefTeX.") 305 "Version string for RefTeX.")
306 306
307(defvar reftex-mode nil 307(defvar reftex-mode nil
@@ -1501,7 +1501,7 @@ When DIE is non-nil, throw an error if file not found."
1501 (when (null (get pathvar 'status)) 1501 (when (null (get pathvar 'status))
1502 ;; Get basic path 1502 ;; Get basic path
1503 (set pathvar 1503 (set pathvar
1504 (reftex-uniq 1504 (reftex-uniquify
1505 (reftex-parse-colon-path 1505 (reftex-parse-colon-path
1506 (mapconcat 1506 (mapconcat
1507 (lambda(x) 1507 (lambda(x)
@@ -1606,15 +1606,6 @@ When DIE is non-nil, throw an error if file not found."
1606 (push dir path1))) 1606 (push dir path1)))
1607 path1)) 1607 path1))
1608 1608
1609(defun reftex-uniq (list)
1610 (let (new)
1611 (while list
1612 (or (member (car list) new)
1613 (push (car list) new))
1614 (pop list))
1615 (nreverse new)))
1616
1617
1618;;; ========================================================================= 1609;;; =========================================================================
1619;;; 1610;;;
1620;;; Parser functions 1611;;; Parser functions
@@ -2145,7 +2136,7 @@ Works on both Emacs and XEmacs."
2145 (nreverse rtn))) 2136 (nreverse rtn)))
2146 2137
2147(defun reftex-uniquify (list) 2138(defun reftex-uniquify (list)
2148 ;; Return a list of all elements in LIST, but each only once 2139 ;; Return a list of all elements in LIST, but each only once, keeping order
2149 (let (new elm) 2140 (let (new elm)
2150 (while list 2141 (while list
2151 (setq elm (pop list)) 2142 (setq elm (pop list))
@@ -2342,31 +2333,40 @@ IGNORE-WORDS List of words which should be removed from the string."
2342 (if (find-face face) (throw 'exit face)) 2333 (if (find-face face) (throw 'exit face))
2343 (if (facep face) (throw 'exit face))))))) 2334 (if (facep face) (throw 'exit face)))))))
2344 2335
2345;; Highlighting uses overlays. For XEmacs, we need the emulation. 2336;; Highlighting uses overlays. For XEmacs, we use extends.
2346(if (featurep 'xemacs) (require 'overlay)) 2337(if (featurep 'xemacs)
2338 (progn
2339 (defalias 'reftex-make-overlay 'make-extent)
2340 (defalias 'reftex-overlay-put 'set-extent-property)
2341 (defalias 'reftex-move-overlay 'set-extent-endpoints)
2342 (defalias 'reftex-delete-overlay 'detach-extent))
2343 (defalias 'reftex-make-overlay 'make-overlay)
2344 (defalias 'reftex-overlay-put 'overlay-put)
2345 (defalias 'reftex-move-overlay 'move-overlay)
2346 (defalias 'reftex-delete-overlay 'delete-overlay))
2347 2347
2348;; We keep a vector with several different overlays to do our highlighting. 2348;; We keep a vector with several different overlays to do our highlighting.
2349(defvar reftex-highlight-overlays [nil nil nil]) 2349(defvar reftex-highlight-overlays [nil nil nil])
2350 2350
2351;; Initialize the overlays 2351;; Initialize the overlays
2352(aset reftex-highlight-overlays 0 (make-overlay 1 1)) 2352(aset reftex-highlight-overlays 0 (reftex-make-overlay 1 1))
2353(overlay-put (aref reftex-highlight-overlays 0) 2353(reftex-overlay-put (aref reftex-highlight-overlays 0)
2354 'face 'highlight) 2354 'face 'highlight)
2355(aset reftex-highlight-overlays 1 (make-overlay 1 1)) 2355(aset reftex-highlight-overlays 1 (reftex-make-overlay 1 1))
2356(overlay-put (aref reftex-highlight-overlays 1) 2356(reftex-overlay-put (aref reftex-highlight-overlays 1)
2357 'face reftex-cursor-selected-face) 2357 'face reftex-cursor-selected-face)
2358(aset reftex-highlight-overlays 2 (make-overlay 1 1)) 2358(aset reftex-highlight-overlays 2 (reftex-make-overlay 1 1))
2359(overlay-put (aref reftex-highlight-overlays 2) 2359(reftex-overlay-put (aref reftex-highlight-overlays 2)
2360 'face reftex-cursor-selected-face) 2360 'face reftex-cursor-selected-face)
2361 2361
2362;; Two functions for activating and deactivation highlight overlays 2362;; Two functions for activating and deactivation highlight overlays
2363(defun reftex-highlight (index begin end &optional buffer) 2363(defun reftex-highlight (index begin end &optional buffer)
2364 "Highlight a region with overlay INDEX." 2364 "Highlight a region with overlay INDEX."
2365 (move-overlay (aref reftex-highlight-overlays index) 2365 (reftex-move-overlay (aref reftex-highlight-overlays index)
2366 begin end (or buffer (current-buffer)))) 2366 begin end (or buffer (current-buffer))))
2367(defun reftex-unhighlight (index) 2367(defun reftex-unhighlight (index)
2368 "Detach overlay INDEX." 2368 "Detach overlay INDEX."
2369 (delete-overlay (aref reftex-highlight-overlays index))) 2369 (reftex-delete-overlay (aref reftex-highlight-overlays index)))
2370 2370
2371(defun reftex-highlight-shall-die () 2371(defun reftex-highlight-shall-die ()
2372 ;; Function used in pre-command-hook to remove highlights. 2372 ;; Function used in pre-command-hook to remove highlights.
@@ -2424,6 +2424,9 @@ IGNORE-WORDS List of words which should be removed from the string."
2424 2424
2425;; Define a menu for the menu bar if Emacs is running under X 2425;; Define a menu for the menu bar if Emacs is running under X
2426 2426
2427(defvar reftex-isearch-minor-mode nil)
2428(make-variable-buffer-local 'reftex-isearch-minor-mode)
2429
2427(require 'easymenu) 2430(require 'easymenu)
2428 2431
2429(easy-menu-define reftex-mode-menu reftex-mode-map 2432(easy-menu-define reftex-mode-menu reftex-mode-map
diff --git a/lisp/textmodes/spell.el b/lisp/textmodes/spell.el
index c6289819c88..6afaae83703 100644
--- a/lisp/textmodes/spell.el
+++ b/lisp/textmodes/spell.el
@@ -128,9 +128,9 @@ for example, \"word\"."
128 (forward-char 1) 128 (forward-char 1)
129 (delete-region (point-min) (point)) 129 (delete-region (point-min) (point))
130 (setq newword 130 (setq newword
131 (read-input (concat "`" word 131 (read-string (concat "`" word
132 "' not recognized; edit a replacement: ") 132 "' not recognized; edit a replacement: ")
133 word)) 133 word))
134 (flush-lines (concat "^" (regexp-quote word) "$"))) 134 (flush-lines (concat "^" (regexp-quote word) "$")))
135 (if (not (equal word newword)) 135 (if (not (equal word newword))
136 (progn 136 (progn
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index a85e968d3ee..118ca3bb3fa 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -842,7 +842,8 @@ simply by any key input."
842 :group 'table-hooks) 842 :group 'table-hooks)
843 843
844(defcustom table-yank-handler '(nil nil t nil) 844(defcustom table-yank-handler '(nil nil t nil)
845 "*yank-handler for table.") 845 "*yank-handler for table."
846 :group 'table)
846 847
847(setplist 'table-disable-incompatibility-warning nil) 848(setplist 'table-disable-incompatibility-warning nil)
848 849
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index e478169c250..ad029266f3b 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -2807,7 +2807,7 @@ Default is to leave the number of spaces as is."
2807 (let ((arg (texinfo-parse-arg-discard))) 2807 (let ((arg (texinfo-parse-arg-discard)))
2808 (if (string= "asis" arg) 2808 (if (string= "asis" arg)
2809 (setq texinfo-paragraph-indent "asis") 2809 (setq texinfo-paragraph-indent "asis")
2810 (setq texinfo-paragraph-indent (string-to-int arg))))) 2810 (setq texinfo-paragraph-indent (string-to-number arg)))))
2811 2811
2812(put 'refill 'texinfo-format 'texinfo-format-refill) 2812(put 'refill 'texinfo-format 'texinfo-format-refill)
2813(defun texinfo-format-refill () 2813(defun texinfo-format-refill ()
diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el
index c0ba69f80c2..96f48434ab5 100644
--- a/lisp/time-stamp.el
+++ b/lisp/time-stamp.el
@@ -270,7 +270,7 @@ template."
270 (string-match "\\`\\(\\(-?[0-9]+\\)/\\)?\\([^%]+\\)?\\(\\(%[-.,:@+_ #^()0-9]*[A-Za-z%][^%]*\\)*%[-.,:@+_ #^()0-9]*[A-Za-z%]\\)?\\([^%]+\\)?\\'" time-stamp-pattern) 270 (string-match "\\`\\(\\(-?[0-9]+\\)/\\)?\\([^%]+\\)?\\(\\(%[-.,:@+_ #^()0-9]*[A-Za-z%][^%]*\\)*%[-.,:@+_ #^()0-9]*[A-Za-z%]\\)?\\([^%]+\\)?\\'" time-stamp-pattern)
271 (and (match-beginning 2) 271 (and (match-beginning 2)
272 (setq line-limit 272 (setq line-limit
273 (string-to-int (match-string 2 time-stamp-pattern)))) 273 (string-to-number (match-string 2 time-stamp-pattern))))
274 (and (match-beginning 3) 274 (and (match-beginning 3)
275 (setq ts-start (match-string 3 time-stamp-pattern))) 275 (setq ts-start (match-string 3 time-stamp-pattern)))
276 (and (match-beginning 4) 276 (and (match-beginning 4)
@@ -558,9 +558,9 @@ and all `time-stamp-format' compatibility."
558 ((eq cur-char ?y) ;year 558 ((eq cur-char ?y) ;year
559 (or alt-form (not (string-equal field-width "")) 559 (or alt-form (not (string-equal field-width ""))
560 (time-stamp-conv-warn "%y" "%:y")) 560 (time-stamp-conv-warn "%y" "%:y"))
561 (string-to-int (format-time-string "%Y" time))) 561 (string-to-number (format-time-string "%Y" time)))
562 ((eq cur-char ?Y) ;4-digit year, new style 562 ((eq cur-char ?Y) ;4-digit year, new style
563 (string-to-int (format-time-string "%Y" time))) 563 (string-to-number (format-time-string "%Y" time)))
564 ((eq cur-char ?z) ;time zone lower case 564 ((eq cur-char ?z) ;time zone lower case
565 (if change-case 565 (if change-case
566 "" ;discourage %z variations 566 "" ;discourage %z variations
@@ -597,7 +597,7 @@ and all `time-stamp-format' compatibility."
597 (let* ((initial-length (length padded-result)) 597 (let* ((initial-length (length padded-result))
598 (desired-length (if (string-equal field-width "") 598 (desired-length (if (string-equal field-width "")
599 initial-length 599 initial-length
600 (string-to-int field-width)))) 600 (string-to-number field-width))))
601 (if (> initial-length desired-length) 601 (if (> initial-length desired-length)
602 ;; truncate strings on right, years on left 602 ;; truncate strings on right, years on left
603 (if (stringp field-result) 603 (if (stringp field-result)
@@ -621,7 +621,7 @@ width specification or \"\". TIME is the time to convert."
621 (format "%%:%c" format-char))) 621 (format "%%:%c" format-char)))
622 (if (and alt-form (not (string-equal field-width ""))) 622 (if (and alt-form (not (string-equal field-width "")))
623 "" ;discourage "%:2d" and the like 623 "" ;discourage "%:2d" and the like
624 (string-to-int (format-time-string format-string time))))) 624 (string-to-number (format-time-string format-string time)))))
625 625
626(defvar time-stamp-conversion-warn t 626(defvar time-stamp-conversion-warn t
627 "Warn about soon-to-be-unsupported forms in `time-stamp-format'. 627 "Warn about soon-to-be-unsupported forms in `time-stamp-format'.
diff --git a/lisp/time.el b/lisp/time.el
index 850843402ca..ddf0d932733 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -331,7 +331,7 @@ update which can wait for the next redisplay."
331 ;; Record that mail file is accessible. 331 ;; Record that mail file is accessible.
332 (setq display-time-server-down-time nil))))))) 332 (setq display-time-server-down-time nil)))))))
333 (24-hours (substring time 11 13)) 333 (24-hours (substring time 11 13))
334 (hour (string-to-int 24-hours)) 334 (hour (string-to-number 24-hours))
335 (12-hours (int-to-string (1+ (% (+ hour 11) 12)))) 335 (12-hours (int-to-string (1+ (% (+ hour 11) 12))))
336 (am-pm (if (>= hour 12) "pm" "am")) 336 (am-pm (if (>= hour 12) "pm" "am"))
337 (minutes (substring time 14 16)) 337 (minutes (substring time 14 16))
diff --git a/lisp/timezone.el b/lisp/timezone.el
index bad269d9cbc..62c8f86f79b 100644
--- a/lisp/timezone.el
+++ b/lisp/timezone.el
@@ -205,7 +205,7 @@ Understands the following styles:
205 ;; Unix Epoch, so are 2000+. Three-digit years are assumed to 205 ;; Unix Epoch, so are 2000+. Three-digit years are assumed to
206 ;; be relative to 1900. 206 ;; be relative to 1900.
207 (if (< (length year) 4) 207 (if (< (length year) 4)
208 (let ((y (string-to-int year))) 208 (let ((y (string-to-number year)))
209 (if (< y 69) 209 (if (< y 69)
210 (setq y (+ y 100))) 210 (setq y (+ y 100)))
211 (setq year (int-to-string (+ 1900 y))))) 211 (setq year (int-to-string (+ 1900 y)))))
@@ -271,7 +271,7 @@ or an integer of the form +-HHMM, or a time zone name."
271 ;; +900 271 ;; +900
272 timezone)) 272 timezone))
273 (if (stringp timezone) 273 (if (stringp timezone)
274 (setq timezone (string-to-int timezone))) 274 (setq timezone (string-to-number timezone)))
275 ;; Taking account of minute in timezone. 275 ;; Taking account of minute in timezone.
276 ;; HHMM -> MM 276 ;; HHMM -> MM
277 (let* ((abszone (abs timezone)) 277 (let* ((abszone (abs timezone))
@@ -314,7 +314,7 @@ Gregorian date Sunday, December 31, 1 BC."
314If LOCAL is nil, it is assumed to be GMT. 314If LOCAL is nil, it is assumed to be GMT.
315If TIMEZONE is nil, use the local time zone." 315If TIMEZONE is nil, use the local time zone."
316 (let* ((date (timezone-parse-date date)) 316 (let* ((date (timezone-parse-date date))
317 (year (string-to-int (aref date 0))) 317 (year (string-to-number (aref date 0)))
318 (year (cond ((< year 69) 318 (year (cond ((< year 69)
319 (+ year 2000)) 319 (+ year 2000))
320 ((< year 100) 320 ((< year 100)
@@ -322,12 +322,12 @@ If TIMEZONE is nil, use the local time zone."
322 ((< year 1000) ; possible 3-digit years. 322 ((< year 1000) ; possible 3-digit years.
323 (+ year 1900)) 323 (+ year 1900))
324 (t year))) 324 (t year)))
325 (month (string-to-int (aref date 1))) 325 (month (string-to-number (aref date 1)))
326 (day (string-to-int (aref date 2))) 326 (day (string-to-number (aref date 2)))
327 (time (timezone-parse-time (aref date 3))) 327 (time (timezone-parse-time (aref date 3)))
328 (hour (string-to-int (aref time 0))) 328 (hour (string-to-number (aref time 0)))
329 (minute (string-to-int (aref time 1))) 329 (minute (string-to-number (aref time 1)))
330 (second (string-to-int (aref time 2))) 330 (second (string-to-number (aref time 2)))
331 (local (or (aref date 4) local)) ;Use original if defined 331 (local (or (aref date 4) local)) ;Use original if defined
332 (timezone 332 (timezone
333 (or timezone 333 (or timezone
diff --git a/lisp/tmm.el b/lisp/tmm.el
index 99931867792..3e0a8e95701 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -395,7 +395,7 @@ element of keymap, an `x-popup-menu' argument, or an element of
395`x-popup-menu' argument (when IN-X-MENU is not-nil). 395`x-popup-menu' argument (when IN-X-MENU is not-nil).
396This function adds the element only if it is not already present. 396This function adds the element only if it is not already present.
397It uses the free variable `tmm-table-undef' to keep undefined keys." 397It uses the free variable `tmm-table-undef' to keep undefined keys."
398 (let (km str cache plist filter visible (event (car elt))) 398 (let (km str cache plist filter visible enable (event (car elt)))
399 (setq elt (cdr elt)) 399 (setq elt (cdr elt))
400 (if (eq elt 'undefined) 400 (if (eq elt 'undefined)
401 (setq tmm-table-undef (cons (cons event nil) tmm-table-undef)) 401 (setq tmm-table-undef (cons (cons event nil) tmm-table-undef))
@@ -436,6 +436,9 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
436 (setq visible (plist-get plist :visible)) 436 (setq visible (plist-get plist :visible))
437 (if visible 437 (if visible
438 (setq km (and (eval visible) km))) 438 (setq km (and (eval visible) km)))
439 (setq enable (plist-get plist :enable))
440 (if enable
441 (setq km (and (eval enable) km)))
439 (and str 442 (and str
440 (consp (nth 3 elt)) 443 (consp (nth 3 elt))
441 (stringp (cdr (nth 3 elt))) ; keyseq cache 444 (stringp (cdr (nth 3 elt))) ; keyseq cache
diff --git a/lisp/toolbar/tool-bar.el b/lisp/toolbar/tool-bar.el
index f22d84cafaf..5f2e3afd46c 100644
--- a/lisp/toolbar/tool-bar.el
+++ b/lisp/toolbar/tool-bar.el
@@ -1,6 +1,6 @@
1;;; tool-bar.el --- setting up the tool bar 1;;; tool-bar.el --- setting up the tool bar
2;; 2;;
3;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
4;; 4;;
5;; Author: Dave Love <fx@gnu.org> 5;; Author: Dave Love <fx@gnu.org>
6;; Keywords: mouse frames 6;; Keywords: mouse frames
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index ea9094da78a..792a81f3221 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -110,17 +110,20 @@ would have the following buffer names in the various styles:
110 (const post-forward) 110 (const post-forward)
111 (const post-forward-angle-brackets) 111 (const post-forward-angle-brackets)
112 (const :tag "standard Emacs behavior (nil)" nil)) 112 (const :tag "standard Emacs behavior (nil)" nil))
113 :require 'uniquify) 113 :require 'uniquify
114 :group 'uniquify)
114 115
115(defcustom uniquify-after-kill-buffer-p t 116(defcustom uniquify-after-kill-buffer-p t
116 "If non-nil, rerationalize buffer names after a buffer has been killed." 117 "If non-nil, rerationalize buffer names after a buffer has been killed."
117 :type 'boolean) 118 :type 'boolean
119 :group 'uniquify)
118 120
119(defcustom uniquify-ask-about-buffer-names-p nil 121(defcustom uniquify-ask-about-buffer-names-p nil
120 "*If non-nil, permit user to choose names for buffers with same base file. 122 "*If non-nil, permit user to choose names for buffers with same base file.
121If the user chooses to name a buffer, uniquification is preempted and no 123If the user chooses to name a buffer, uniquification is preempted and no
122other buffer names are changed." 124other buffer names are changed."
123 :type 'boolean) 125 :type 'boolean
126 :group 'uniquify)
124 127
125;; The default value matches certain Gnus buffers. 128;; The default value matches certain Gnus buffers.
126(defcustom uniquify-ignore-buffers-re nil 129(defcustom uniquify-ignore-buffers-re nil
@@ -128,11 +131,13 @@ other buffer names are changed."
128For instance, set this to \"^draft-[0-9]+$\" to avoid having uniquify rename 131For instance, set this to \"^draft-[0-9]+$\" to avoid having uniquify rename
129draft buffers even if `uniquify-after-kill-buffer-p' is non-nil and the 132draft buffers even if `uniquify-after-kill-buffer-p' is non-nil and the
130visited file name isn't the same as that of the buffer." 133visited file name isn't the same as that of the buffer."
131 :type '(choice (const :tag "Uniquify all buffers" nil) regexp)) 134 :type '(choice (const :tag "Uniquify all buffers" nil) regexp)
135 :group 'uniquify)
132 136
133(defcustom uniquify-min-dir-content 0 137(defcustom uniquify-min-dir-content 0
134 "*Minimum number of directory name components included in buffer name." 138 "*Minimum number of directory name components included in buffer name."
135 :type 'integer) 139 :type 'integer
140 :group 'uniquify)
136 141
137(defcustom uniquify-separator nil 142(defcustom uniquify-separator nil
138 "*String separator for buffer name components. 143 "*String separator for buffer name components.
@@ -140,14 +145,16 @@ When `uniquify-buffer-name-style' is `post-forward', separates
140base file name from directory part in buffer names (default \"|\"). 145base file name from directory part in buffer names (default \"|\").
141When `uniquify-buffer-name-style' is `reverse', separates all 146When `uniquify-buffer-name-style' is `reverse', separates all
142file name components (default \"\\\")." 147file name components (default \"\\\")."
143 :type '(choice (const nil) string)) 148 :type '(choice (const nil) string)
149 :group 'uniquify)
144 150
145(defcustom uniquify-trailing-separator-p nil 151(defcustom uniquify-trailing-separator-p nil
146 "*If non-nil, add a file name separator to dired buffer names. 152 "*If non-nil, add a file name separator to dired buffer names.
147If `uniquify-buffer-name-style' is `forward', add the separator at the end; 153If `uniquify-buffer-name-style' is `forward', add the separator at the end;
148if it is `reverse', add the separator at the beginning; otherwise, this 154if it is `reverse', add the separator at the beginning; otherwise, this
149variable is ignored." 155variable is ignored."
150 :type 'boolean) 156 :type 'boolean
157 :group 'uniquify)
151 158
152(defcustom uniquify-strip-common-suffix 159(defcustom uniquify-strip-common-suffix
153 ;; Using it when uniquify-min-dir-content>0 doesn't make much sense. 160 ;; Using it when uniquify-min-dir-content>0 doesn't make much sense.
@@ -156,7 +163,8 @@ variable is ignored."
156E.g. if you open /a1/b/c/d and /a2/b/c/d, the buffer names will say 163E.g. if you open /a1/b/c/d and /a2/b/c/d, the buffer names will say
157\"d|a1\" and \"d|a2\" instead of \"d|a1/b/c\" and \"d|a2/b/c\". 164\"d|a1\" and \"d|a2\" instead of \"d|a1/b/c\" and \"d|a2/b/c\".
158This can be handy when you have deep parallel hierarchies." 165This can be handy when you have deep parallel hierarchies."
159 :type 'boolean) 166 :type 'boolean
167 :group 'uniquify)
160 168
161(defvar uniquify-list-buffers-directory-modes '(dired-mode cvs-mode) 169(defvar uniquify-list-buffers-directory-modes '(dired-mode cvs-mode)
162 "List of modes for which uniquify should obey `list-buffers-directory'. 170 "List of modes for which uniquify should obey `list-buffers-directory'.
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index a023bdf18c7..546af477106 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,21 @@
12005-05-19 Juanma Barranquero <lekktu@gmail.com>
2
3 * url-cookie.el (url-cookie-multiple-line):
4 Specify group and type in defcustom.
5
62005-05-06 Juanma Barranquero <lekktu@gmail.com>
7
8 * url-auth.el (url-register-auth-scheme):
9 * url-cookie.el (url-cookie-expired-p):
10 * url-dav.el (url-dav-process-date-property)
11 (url-dav-process-boolean-property, url-dav-process-DAV:status):
12 * url-http.el (url-http-chunked-encoding-after-change-function)
13 (url-http-wait-for-headers-change-function):
14 * url-ns.el (isInNet):
15 * url-parse.el (url-generic-parse-url):
16 * url-util.el (url-get-normalized-date): Replace `string-to-int'
17 by `string-to-number'.
18
12005-04-18 Stefan Monnier <monnier@iro.umontreal.ca> 192005-04-18 Stefan Monnier <monnier@iro.umontreal.ca>
2 20
3 * url.el (url-retrieve-synchronously): Work around the fact that 21 * url.el (url-retrieve-synchronously): Work around the fact that
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index 260315c5d54..ea208ccadea 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -293,7 +293,7 @@ RATING a rating between 1 and 10 of the strength of the authentication.
293 (function (or function (intern (concat "url-" type "-auth")))) 293 (function (or function (intern (concat "url-" type "-auth"))))
294 (rating (cond 294 (rating (cond
295 ((null rating) 2) 295 ((null rating) 2)
296 ((stringp rating) (string-to-int rating)) 296 ((stringp rating) (string-to-number rating))
297 (t rating))) 297 (t rating)))
298 (node (assoc type url-registered-auth-schemes))) 298 (node (assoc type url-registered-auth-schemes)))
299 (if (not (fboundp function)) 299 (if (not (fboundp function))
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index 9f7db867597..328e60b63bc 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -87,7 +87,9 @@
87 "*If nil, HTTP requests put all cookies for the server on one line. 87 "*If nil, HTTP requests put all cookies for the server on one line.
88Some web servers, such as http://www.hotmail.com/, only accept cookies 88Some web servers, such as http://www.hotmail.com/, only accept cookies
89when they are on one line. This is broken behaviour, but just try 89when they are on one line. This is broken behaviour, but just try
90telling Microsoft that.") 90telling Microsoft that."
91 :type 'boolean
92 :group 'url-cookie)
91 93
92(defvar url-cookies-changed-since-last-save nil 94(defvar url-cookies-changed-since-last-save nil
93 "Whether the cookies list has changed since the last save operation.") 95 "Whether the cookies list has changed since the last save operation.")
@@ -208,13 +210,13 @@ telling Microsoft that.")
208 (cur-date (and exp (timezone-parse-date (current-time-string)))) 210 (cur-date (and exp (timezone-parse-date (current-time-string))))
209 (exp-date (and exp (timezone-parse-date exp))) 211 (exp-date (and exp (timezone-parse-date exp)))
210 (cur-greg (and cur-date (timezone-absolute-from-gregorian 212 (cur-greg (and cur-date (timezone-absolute-from-gregorian
211 (string-to-int (aref cur-date 1)) 213 (string-to-number (aref cur-date 1))
212 (string-to-int (aref cur-date 2)) 214 (string-to-number (aref cur-date 2))
213 (string-to-int (aref cur-date 0))))) 215 (string-to-number (aref cur-date 0)))))
214 (exp-greg (and exp (timezone-absolute-from-gregorian 216 (exp-greg (and exp (timezone-absolute-from-gregorian
215 (string-to-int (aref exp-date 1)) 217 (string-to-number (aref exp-date 1))
216 (string-to-int (aref exp-date 2)) 218 (string-to-number (aref exp-date 2))
217 (string-to-int (aref exp-date 0))))) 219 (string-to-number (aref exp-date 0)))))
218 (diff-in-days (and exp (- cur-greg exp-greg))) 220 (diff-in-days (and exp (- cur-greg exp-greg)))
219 ) 221 )
220 (cond 222 (cond
@@ -224,12 +226,12 @@ telling Microsoft that.")
224 (t ; Expires sometime today, check times 226 (t ; Expires sometime today, check times
225 (let* ((cur-time (timezone-parse-time (aref cur-date 3))) 227 (let* ((cur-time (timezone-parse-time (aref cur-date 3)))
226 (exp-time (timezone-parse-time (aref exp-date 3))) 228 (exp-time (timezone-parse-time (aref exp-date 3)))
227 (cur-norm (+ (* 360 (string-to-int (aref cur-time 2))) 229 (cur-norm (+ (* 360 (string-to-number (aref cur-time 2)))
228 (* 60 (string-to-int (aref cur-time 1))) 230 (* 60 (string-to-number (aref cur-time 1)))
229 (* 1 (string-to-int (aref cur-time 0))))) 231 (* 1 (string-to-number (aref cur-time 0)))))
230 (exp-norm (+ (* 360 (string-to-int (aref exp-time 2))) 232 (exp-norm (+ (* 360 (string-to-number (aref exp-time 2)))
231 (* 60 (string-to-int (aref exp-time 1))) 233 (* 60 (string-to-number (aref exp-time 1)))
232 (* 1 (string-to-int (aref exp-time 0)))))) 234 (* 1 (string-to-number (aref exp-time 0))))))
233 (> (- cur-norm exp-norm) 1)))))) 235 (> (- cur-norm exp-norm) 1))))))
234 236
235;;;###autoload 237;;;###autoload
diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el
index d6c5ffffa43..a0f1ae1ebe7 100644
--- a/lisp/url/url-dav.el
+++ b/lisp/url/url-dav.el
@@ -121,17 +121,17 @@
121 121
122 ;; Nobody else handles iso8601 correctly, lets do it ourselves. 122 ;; Nobody else handles iso8601 correctly, lets do it ourselves.
123 (when (string-match date-re date-string re-start) 123 (when (string-match date-re date-string re-start)
124 (setq year (string-to-int (match-string 1 date-string)) 124 (setq year (string-to-number (match-string 1 date-string))
125 month (string-to-int (match-string 2 date-string)) 125 month (string-to-number (match-string 2 date-string))
126 day (string-to-int (match-string 3 date-string)) 126 day (string-to-number (match-string 3 date-string))
127 re-start (match-end 0)) 127 re-start (match-end 0))
128 (when (string-match time-re date-string re-start) 128 (when (string-match time-re date-string re-start)
129 (setq hour (string-to-int (match-string 1 date-string)) 129 (setq hour (string-to-number (match-string 1 date-string))
130 minute (string-to-int (match-string 2 date-string)) 130 minute (string-to-number (match-string 2 date-string))
131 seconds (string-to-int (match-string 3 date-string)) 131 seconds (string-to-number (match-string 3 date-string))
132 fractional-seconds (string-to-int (or 132 fractional-seconds (string-to-number (or
133 (match-string 4 date-string) 133 (match-string 4 date-string)
134 "0")) 134 "0"))
135 re-start (match-end 0)) 135 re-start (match-end 0))
136 (when (string-match tz-re date-string re-start) 136 (when (string-match tz-re date-string re-start)
137 (setq tz (match-string 1 date-string))) 137 (setq tz (match-string 1 date-string)))
@@ -149,7 +149,7 @@
149 time)) 149 time))
150 150
151(defun url-dav-process-boolean-property (node) 151(defun url-dav-process-boolean-property (node)
152 (/= 0 (string-to-int (url-dav-node-text node)))) 152 (/= 0 (string-to-number (url-dav-node-text node))))
153 153
154(defun url-dav-process-uri-property (node) 154(defun url-dav-process-uri-property (node)
155 ;; Returns a parsed representation of the URL... 155 ;; Returns a parsed representation of the URL...
@@ -318,7 +318,7 @@
318 ;; only care about the numeric status code. 318 ;; only care about the numeric status code.
319 (let ((status (url-dav-node-text node))) 319 (let ((status (url-dav-node-text node)))
320 (if (string-match "\\`[ \r\t\n]*HTTP/[0-9.]+ \\([0-9]+\\)" status) 320 (if (string-match "\\`[ \r\t\n]*HTTP/[0-9.]+ \\([0-9]+\\)" status)
321 (string-to-int (match-string 1 status)) 321 (string-to-number (match-string 1 status))
322 500))) 322 500)))
323 323
324(defun url-dav-process-DAV:propstat (node) 324(defun url-dav-process-DAV:propstat (node)
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 872ea22ce05..16d51a0258c 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -827,10 +827,10 @@ the end of the document."
827 'text-cursor 827 'text-cursor
828 'cursor) 828 'cursor)
829 'invisible t)) 829 'invisible t))
830 (setq url-http-chunked-length (string-to-int (buffer-substring 830 (setq url-http-chunked-length (string-to-number (buffer-substring
831 (match-beginning 1) 831 (match-beginning 1)
832 (match-end 1)) 832 (match-end 1))
833 16) 833 16)
834 url-http-chunked-counter (1+ url-http-chunked-counter) 834 url-http-chunked-counter (1+ url-http-chunked-counter)
835 url-http-chunked-start (set-marker 835 url-http-chunked-start (set-marker
836 (or url-http-chunked-start 836 (or url-http-chunked-start
@@ -904,7 +904,7 @@ the end of the document."
904 url-http-content-type (mail-fetch-field "content-type")) 904 url-http-content-type (mail-fetch-field "content-type"))
905 (if (mail-fetch-field "content-length") 905 (if (mail-fetch-field "content-length")
906 (setq url-http-content-length 906 (setq url-http-content-length
907 (string-to-int (mail-fetch-field "content-length")))) 907 (string-to-number (mail-fetch-field "content-length"))))
908 (widen))) 908 (widen)))
909 (if url-http-transfer-encoding 909 (if url-http-transfer-encoding
910 (setq url-http-transfer-encoding 910 (setq url-http-transfer-encoding
diff --git a/lisp/url/url-ns.el b/lisp/url/url-ns.el
index fe181422e4f..1dcb1f85f27 100644
--- a/lisp/url/url-ns.el
+++ b/lisp/url/url-ns.el
@@ -51,9 +51,9 @@
51 (if (or (/= (length netc) (length ipc)) 51 (if (or (/= (length netc) (length ipc))
52 (/= (length ipc) (length maskc))) 52 (/= (length ipc) (length maskc)))
53 nil 53 nil
54 (setq netc (mapcar 'string-to-int netc) 54 (setq netc (mapcar 'string-to-number netc)
55 ipc (mapcar 'string-to-int ipc) 55 ipc (mapcar 'string-to-number ipc)
56 maskc (mapcar 'string-to-int maskc)) 56 maskc (mapcar 'string-to-number maskc))
57 (and 57 (and
58 (= (logand (nth 0 netc) (nth 0 maskc)) 58 (= (logand (nth 0 netc) (nth 0 maskc))
59 (logand (nth 0 ipc) (nth 0 maskc))) 59 (logand (nth 0 ipc) (nth 0 maskc)))
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el
index 97348ab5db2..5b5250ab31f 100644
--- a/lisp/url/url-parse.el
+++ b/lisp/url/url-parse.el
@@ -167,7 +167,7 @@ Format is:
167 (setq pass (match-string 2 user) 167 (setq pass (match-string 2 user)
168 user (match-string 1 user))) 168 user (match-string 1 user)))
169 (if (string-match ":\\([0-9+]+\\)" host) 169 (if (string-match ":\\([0-9+]+\\)" host)
170 (setq port (string-to-int (match-string 1 host)) 170 (setq port (string-to-number (match-string 1 host))
171 host (substring host 0 (match-beginning 0)))) 171 host (substring host 0 (match-beginning 0))))
172 (if (string-match ":$" host) 172 (if (string-match ":$" host)
173 (setq host (substring host 0 (match-beginning 0)))) 173 (setq host (substring host 0 (match-beginning 0))))
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index 1d0bfcf0c48..b796d695461 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -196,7 +196,7 @@ Will not do anything if `url-show-status' is nil."
196 (year nil) 196 (year nil)
197 (month (car 197 (month (car
198 (rassoc 198 (rassoc
199 (string-to-int (aref parsed 1)) url-monthabbrev-alist))) 199 (string-to-number (aref parsed 1)) url-monthabbrev-alist)))
200 ) 200 )
201 (setq day (or (car-safe (rassoc day url-weekday-alist)) 201 (setq day (or (car-safe (rassoc day url-weekday-alist))
202 (substring raw 0 3)) 202 (substring raw 0 3))
diff --git a/lisp/vms-patch.el b/lisp/vms-patch.el
index 48174f41237..60033dc7f20 100644
--- a/lisp/vms-patch.el
+++ b/lisp/vms-patch.el
@@ -93,7 +93,7 @@ If the logical name `EMACS_FILE_NAME' is defined, `find-file' that file."
93 (if (not args) 93 (if (not args)
94 (if file 94 (if file
95 (progn (find-file file) 95 (progn (find-file file)
96 (if line (goto-line (string-to-int line))))) 96 (if line (goto-line (string-to-number line)))))
97 (cd (file-name-directory file)) 97 (cd (file-name-directory file))
98 (vms-command-line-again)))) 98 (vms-command-line-again))))
99 99
diff --git a/lisp/w32-vars.el b/lisp/w32-vars.el
index 6a3ff36108e..1877e159ae7 100644
--- a/lisp/w32-vars.el
+++ b/lisp/w32-vars.el
@@ -146,7 +146,8 @@ menu if the variable `w32-use-w32-font-dialog' is nil."
146 (const :tag "Seperator" ("")) 146 (const :tag "Seperator" (""))
147 (list :tag "Font Entry" 147 (list :tag "Font Entry"
148 (string :tag "Menu text") 148 (string :tag "Menu text")
149 (string :tag "Font")))))))) 149 (string :tag "Font")))))))
150 :group 'w32)
150 151
151(defcustom x-select-enable-clipboard t 152(defcustom x-select-enable-clipboard t
152 "*Non-nil means cutting and pasting uses the clipboard. 153 "*Non-nil means cutting and pasting uses the clipboard.
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index b5ef4428396..ad16fe264f0 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,5 +1,75 @@
12005-05-19 Luc Teirlinck <teirllm@auburn.edu>
2
3 * keymaps.texi (Active Keymaps): Add anchor.
4
5 * modes.texi (Hooks): Delete confusing and unnecessary sentence.
6 (Major Mode Conventions): Refer to `Auto Major Mode' in more
7 appropriate place.
8 (Derived Modes): Small clarifications.
9 (Minor Mode Conventions, Keymaps and Minor Modes): Replace
10 references to nodes with references to anchors.
11 (Mode Line Data): Warn that `(:eval FORM)' should not load any files.
12 Clarify description of lists whose first element is an integer.
13 (Mode Line Variables): Add anchor.
14 (%-Constructs): Clarify description of integer after %.
15 (Emulating Mode Line): Describe nil value for FACE.
16
172005-05-18 Luc Teirlinck <teirllm@auburn.edu>
18
19 * modes.texi (Derived Modes): Correct references to non-existing
20 variable standard-syntax-table.
21
222005-05-17 Lute Kamstra <lute@gnu.org>
23
24 * modes.texi (Defining Minor Modes): Mention the mode hook.
25
262005-05-15 Kim F. Storm <storm@cua.dk>
27
28 * processes.texi (Network): Remove open-network-stream-nowait.
29 (Network Servers): Remove open-network-stream-server.
30
312005-05-15 Luc Teirlinck <teirllm@auburn.edu>
32
33 * elisp.texi (Top): Update detailed menu.
34
35 * variables.texi: Reorder nodes.
36 (Variables): Update menu.
37 (File Local Variables): Do not refer to the `-*-' line as
38 a "local variables list". Add pxref.
39
402005-05-14 Luc Teirlinck <teirllm@auburn.edu>
41
42 * elisp.texi (Top): Update detailed menu for node changes.
43
44 * modes.texi (Modes): Update Menu.
45 (Hooks): Move to beginning of chapter.
46 Most minor modes run mode hooks too.
47 `add-hook' can handle void hooks or hooks whose value is a single
48 function.
49 (Major Modes): Update Menu.
50 (Major Mode Basics): New node, split off from `Major Modes'.
51 (Major Mode Conventions): Correct xref. Explain how to handle
52 auto-mode-alist if the major mode command has an autoload cookie.
53 (Auto Major Mode): Major update. Add magic-mode-alist.
54 (Derived Modes): Major update.
55 (Mode Line Format): Update Menu.
56 (Mode Line Basics): New node, split off from `Mode Line Format'.
57
58 * loading.texi (Autoload): Mention `autoload cookie' as synonym
59 for `magic autoload comment'. Add index entries and anchor.
60
612005-05-14 Richard M. Stallman <rms@gnu.org>
62
63 * tips.texi (Coding Conventions): Explain how important it is
64 that just loading certain files not change Emacs behavior.
65
66 * modes.texi (Defining Minor Modes): Define define-global-minor-mode.
67
12005-05-12 Lute Kamstra <lute@gnu.org> 682005-05-12 Lute Kamstra <lute@gnu.org>
2 69
70 * modes.texi (Generic Modes): Update.
71 (Major Modes): Refer to node "Generic Modes".
72
3 * elisp.texi (Top): Update to the current structure of the manual. 73 * elisp.texi (Top): Update to the current structure of the manual.
4 * processes.texi (Processes): Add menu description. 74 * processes.texi (Processes): Add menu description.
5 * customize.texi (Customization): Add menu descriptions. 75 * customize.texi (Customization): Add menu descriptions.
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index 061d826e711..7a19f8a47da 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -383,8 +383,8 @@ Variables
383* Buffer-Local Variables:: Variable values in effect only in one buffer. 383* Buffer-Local Variables:: Variable values in effect only in one buffer.
384* Frame-Local Variables:: Variable values in effect only in one frame. 384* Frame-Local Variables:: Variable values in effect only in one frame.
385* Future Local Variables:: New kinds of local values we might add some day. 385* Future Local Variables:: New kinds of local values we might add some day.
386* Variable Aliases:: Variables that are aliases for other variables.
387* File Local Variables:: Handling local variable lists in files. 386* File Local Variables:: Handling local variable lists in files.
387* Variable Aliases:: Variables that are aliases for other variables.
388* Variables with Restricted Values:: Non-constant variables whose value can 388* Variables with Restricted Values:: Non-constant variables whose value can
389 @emph{not} be an arbitrary Lisp object. 389 @emph{not} be an arbitrary Lisp object.
390 390
@@ -617,6 +617,8 @@ Keymaps
617 617
618Major and Minor Modes 618Major and Minor Modes
619 619
620* Hooks:: How to use hooks; how to write code that
621 provides hooks.
620* Major Modes:: Defining major modes. 622* Major Modes:: Defining major modes.
621* Minor Modes:: Defining minor modes. 623* Minor Modes:: Defining minor modes.
622* Mode Line Format:: Customizing the text that appears in the mode line. 624* Mode Line Format:: Customizing the text that appears in the mode line.
@@ -625,11 +627,10 @@ Major and Minor Modes
625* Font Lock Mode:: How modes can highlight text according to syntax. 627* Font Lock Mode:: How modes can highlight text according to syntax.
626* Desktop Save Mode:: How modes can have buffer state saved between 628* Desktop Save Mode:: How modes can have buffer state saved between
627 Emacs sessions. 629 Emacs sessions.
628* Hooks:: How to use hooks; how to write code that
629 provides hooks.
630 630
631Major Modes 631Major Modes
632 632
633* Major Mode Basics::
633* Major Mode Conventions:: Coding conventions for keymaps, etc. 634* Major Mode Conventions:: Coding conventions for keymaps, etc.
634* Example Major Modes:: Text mode and Lisp modes. 635* Example Major Modes:: Text mode and Lisp modes.
635* Auto Major Mode:: How Emacs chooses the major mode automatically. 636* Auto Major Mode:: How Emacs chooses the major mode automatically.
@@ -648,6 +649,7 @@ Minor Modes
648 649
649Mode Line Format 650Mode Line Format
650 651
652* Mode Line Basics::
651* Mode Line Data:: The data structure that controls the mode line. 653* Mode Line Data:: The data structure that controls the mode line.
652* Mode Line Variables:: Variables used in that data structure. 654* Mode Line Variables:: Variables used in that data structure.
653* %-Constructs:: Putting information into a mode line. 655* %-Constructs:: Putting information into a mode line.
diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi
index e1784dd10a0..63832ced1b4 100644
--- a/lispref/keymaps.texi
+++ b/lispref/keymaps.texi
@@ -666,6 +666,7 @@ commands use this function.
666 666
667@c Emacs 19 feature 667@c Emacs 19 feature
668@defvar minor-mode-map-alist 668@defvar minor-mode-map-alist
669@anchor{Definition of minor-mode-map-alist}
669This variable is an alist describing keymaps that may or may not be 670This variable is an alist describing keymaps that may or may not be
670active according to the values of certain variables. Its elements look 671active according to the values of certain variables. Its elements look
671like this: 672like this:
diff --git a/lispref/loading.texi b/lispref/loading.texi
index e12826af2f8..4049877e782 100644
--- a/lispref/loading.texi
+++ b/lispref/loading.texi
@@ -436,8 +436,12 @@ define function @var{function-name}"}.
436 436
437@findex update-file-autoloads 437@findex update-file-autoloads
438@findex update-directory-autoloads 438@findex update-directory-autoloads
439 A magic autoload comment consists of @samp{;;;###autoload}, on a line 439@cindex magic autoload comment
440by itself, just before the real definition of the function in its 440@cindex autoload cookie
441@anchor{autoload cookie}
442 A magic autoload comment (often called an @dfn{autoload cookie})
443consists of @samp{;;;###autoload}, on a line by itself,
444just before the real definition of the function in its
441autoloadable source file. The command @kbd{M-x update-file-autoloads} 445autoloadable source file. The command @kbd{M-x update-file-autoloads}
442writes a corresponding @code{autoload} call into @file{loaddefs.el}. 446writes a corresponding @code{autoload} call into @file{loaddefs.el}.
443Building Emacs loads @file{loaddefs.el} and thus calls @code{autoload}. 447Building Emacs loads @file{loaddefs.el} and thus calls @code{autoload}.
diff --git a/lispref/modes.texi b/lispref/modes.texi
index 12c4493b36f..1b30a23e128 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -20,6 +20,7 @@ user. For related topics such as keymaps and syntax tables, see
20@ref{Keymaps}, and @ref{Syntax Tables}. 20@ref{Keymaps}, and @ref{Syntax Tables}.
21 21
22@menu 22@menu
23* Hooks:: How to use hooks; how to write code that provides hooks.
23* Major Modes:: Defining major modes. 24* Major Modes:: Defining major modes.
24* Minor Modes:: Defining minor modes. 25* Minor Modes:: Defining minor modes.
25* Mode Line Format:: Customizing the text that appears in the mode line. 26* Mode Line Format:: Customizing the text that appears in the mode line.
@@ -28,13 +29,152 @@ user. For related topics such as keymaps and syntax tables, see
28* Font Lock Mode:: How modes can highlight text according to syntax. 29* Font Lock Mode:: How modes can highlight text according to syntax.
29* Desktop Save Mode:: How modes can have buffer state saved between 30* Desktop Save Mode:: How modes can have buffer state saved between
30 Emacs sessions. 31 Emacs sessions.
31* Hooks:: How to use hooks; how to write code that provides hooks.
32@end menu 32@end menu
33 33
34@node Hooks
35@section Hooks
36@cindex hooks
37
38 A @dfn{hook} is a variable where you can store a function or functions
39to be called on a particular occasion by an existing program. Emacs
40provides hooks for the sake of customization. Most often, hooks are set
41up in the init file (@pxref{Init File}), but Lisp programs can set them also.
42@xref{Standard Hooks}, for a list of standard hook variables.
43
44@cindex normal hook
45 Most of the hooks in Emacs are @dfn{normal hooks}. These variables
46contain lists of functions to be called with no arguments. When the
47hook name ends in @samp{-hook}, that tells you it is normal. We try to
48make all hooks normal, as much as possible, so that you can use them in
49a uniform way.
50
51 Every major mode function is supposed to run a normal hook called the
52@dfn{mode hook} as the last step of initialization. This makes it easy
53for a user to customize the behavior of the mode, by overriding the
54buffer-local variable assignments already made by the mode. Most
55minor modes also run a mode hook at their end. But hooks are used in
56other contexts too. For example, the hook @code{suspend-hook} runs
57just before Emacs suspends itself (@pxref{Suspending Emacs}).
58
59 The recommended way to add a hook function to a normal hook is by
60calling @code{add-hook} (see below). The hook functions may be any of
61the valid kinds of functions that @code{funcall} accepts (@pxref{What
62Is a Function}). Most normal hook variables are initially void;
63@code{add-hook} knows how to deal with this. You can add hooks either
64globally or buffer-locally with @code{add-hook}.
65
66@cindex abnormal hook
67 If the hook variable's name does not end with @samp{-hook}, that
68indicates it is probably an @dfn{abnormal hook}. Then you should look at its
69documentation to see how to use the hook properly.
70
71 If the variable's name ends in @samp{-functions} or @samp{-hooks},
72then the value is a list of functions, but it is abnormal in that either
73these functions are called with arguments or their values are used in
74some way. You can use @code{add-hook} to add a function to the list,
75but you must take care in writing the function. (A few of these
76variables, notably those ending in @samp{-hooks}, are actually
77normal hooks which were named before we established the convention of
78using @samp{-hook} for them.)
79
80 If the variable's name ends in @samp{-function}, then its value
81is just a single function, not a list of functions.
82
83 Here's an example that uses a mode hook to turn on Auto Fill mode when
84in Lisp Interaction mode:
85
86@example
87(add-hook 'lisp-interaction-mode-hook 'turn-on-auto-fill)
88@end example
89
90 At the appropriate time, Emacs uses the @code{run-hooks} function to
91run particular hooks.
92
93@defun run-hooks &rest hookvars
94This function takes one or more normal hook variable names as
95arguments, and runs each hook in turn. Each argument should be a
96symbol that is a normal hook variable. These arguments are processed
97in the order specified.
98
99If a hook variable has a non-@code{nil} value, that value may be a
100function or a list of functions. (The former option is considered
101obsolete.) If the value is a function (either a lambda expression or
102a symbol with a function definition), it is called. If it is a list
103that isn't a function, its elements are called, consecutively. All
104the hook functions are called with no arguments.
105@end defun
106
107@defun run-hook-with-args hook &rest args
108This function is the way to run an abnormal hook and always call all
109of the hook functions. It calls each of the hook functions one by
110one, passing each of them the arguments @var{args}.
111@end defun
112
113@defun run-hook-with-args-until-failure hook &rest args
114This function is the way to run an abnormal hook until one of the hook
115functions fails. It calls each of the hook functions, passing each of
116them the arguments @var{args}, until some hook function returns
117@code{nil}. It then stops and returns @code{nil}. If none of the
118hook functions return @code{nil}, it returns a non-@code{nil} value.
119@end defun
120
121@defun run-hook-with-args-until-success hook &rest args
122This function is the way to run an abnormal hook until a hook function
123succeeds. It calls each of the hook functions, passing each of them
124the arguments @var{args}, until some hook function returns
125non-@code{nil}. Then it stops, and returns whatever was returned by
126the last hook function that was called. If all hook functions return
127@code{nil}, it returns @code{nil} as well.
128@end defun
129
130@defun add-hook hook function &optional append local
131This function is the handy way to add function @var{function} to hook
132variable @var{hook}. You can use it for abnormal hooks as well as for
133normal hooks. @var{function} can be any Lisp function that can accept
134the proper number of arguments for @var{hook}. For example,
135
136@example
137(add-hook 'text-mode-hook 'my-text-hook-function)
138@end example
139
140@noindent
141adds @code{my-text-hook-function} to the hook called @code{text-mode-hook}.
142
143If @var{function} is already present in @var{hook} (comparing using
144@code{equal}), then @code{add-hook} does not add it a second time.
145
146It is best to design your hook functions so that the order in which they
147are executed does not matter. Any dependence on the order is ``asking
148for trouble''. However, the order is predictable: normally,
149@var{function} goes at the front of the hook list, so it will be
150executed first (barring another @code{add-hook} call). If the optional
151argument @var{append} is non-@code{nil}, the new hook function goes at
152the end of the hook list and will be executed last.
153
154@code{add-hook} can handle the cases where @var{hook} is void or its
155value is a single function; it sets or changes the value to a list of
156functions.
157
158If @var{local} is non-@code{nil}, that says to add @var{function} to
159the buffer-local hook list instead of to the global hook list. If
160needed, this makes the hook buffer-local and adds @code{t} to the
161buffer-local value. The latter acts as a flag to run the hook
162functions in the default value as well as in the local value.
163@end defun
164
165@defun remove-hook hook function &optional local
166This function removes @var{function} from the hook variable
167@var{hook}. It compares @var{function} with elements of @var{hook}
168using @code{equal}, so it works for both symbols and lambda
169expressions.
170
171If @var{local} is non-@code{nil}, that says to remove @var{function}
172from the buffer-local hook list instead of from the global hook list.
173@end defun
174
34@node Major Modes 175@node Major Modes
35@section Major Modes 176@section Major Modes
36@cindex major mode 177@cindex major mode
37@cindex Fundamental mode
38 178
39 Major modes specialize Emacs for editing particular kinds of text. 179 Major modes specialize Emacs for editing particular kinds of text.
40Each buffer has only one major mode at a time. For each major mode 180Each buffer has only one major mode at a time. For each major mode
@@ -44,6 +184,23 @@ buffer-local variable bindings and other data associated with the
44buffer, such as a local keymap. The effect lasts until you switch 184buffer, such as a local keymap. The effect lasts until you switch
45to another major mode in the same buffer. 185to another major mode in the same buffer.
46 186
187@menu
188* Major Mode Basics::
189* Major Mode Conventions:: Coding conventions for keymaps, etc.
190* Example Major Modes:: Text mode and Lisp modes.
191* Auto Major Mode:: How Emacs chooses the major mode automatically.
192* Mode Help:: Finding out how to use a mode.
193* Derived Modes:: Defining a new major mode based on another major
194 mode.
195* Generic Modes:: Defining a simple major mode that supports
196 comment syntax and Font Lock mode.
197* Mode Hooks:: Hooks run at the end of major mode functions.
198@end menu
199
200@node Major Mode Basics
201@subsection Major Mode Basics
202@cindex Fundamental mode
203
47 The least specialized major mode is called @dfn{Fundamental mode}. 204 The least specialized major mode is called @dfn{Fundamental mode}.
48This mode has no mode-specific definitions or variable settings, so each 205This mode has no mode-specific definitions or variable settings, so each
49Emacs command behaves in its default manner, and each option is in its 206Emacs command behaves in its default manner, and each option is in its
@@ -71,10 +228,9 @@ it is convenient to use @code{define-derived-mode} with a @code{nil}
71parent argument, since it automatically enforces the most important 228parent argument, since it automatically enforces the most important
72coding conventions for you. 229coding conventions for you.
73 230
74@findex define-generic-mode
75 For a very simple programming language major mode that handles 231 For a very simple programming language major mode that handles
76comments and fontification, you can use @code{define-generic-mode} 232comments and fontification, you can use @code{define-generic-mode}.
77in @file{generic.el}. 233@xref{Generic Modes}.
78 234
79 Rmail Edit mode offers an example of changing the major mode 235 Rmail Edit mode offers an example of changing the major mode
80temporarily for a buffer, so it can be edited in a different way (with 236temporarily for a buffer, so it can be edited in a different way (with
@@ -96,18 +252,6 @@ for several major modes, in files such as @file{text-mode.el},
96are written. Text mode is perhaps the simplest major mode aside from 252are written. Text mode is perhaps the simplest major mode aside from
97Fundamental mode. Rmail mode is a complicated and specialized mode. 253Fundamental mode. Rmail mode is a complicated and specialized mode.
98 254
99@menu
100* Major Mode Conventions:: Coding conventions for keymaps, etc.
101* Example Major Modes:: Text mode and Lisp modes.
102* Auto Major Mode:: How Emacs chooses the major mode automatically.
103* Mode Help:: Finding out how to use a mode.
104* Derived Modes:: Defining a new major mode based on another major
105 mode.
106* Generic Modes:: Defining a simple major mode that supports
107 comment syntax and Font Lock mode.
108* Mode Hooks:: Hooks run at the end of major mode functions.
109@end menu
110
111@node Major Mode Conventions 255@node Major Mode Conventions
112@subsection Major Mode Conventions 256@subsection Major Mode Conventions
113 257
@@ -241,7 +385,7 @@ related modes. If it has its own abbrev table, it should store this
241in a variable named @code{@var{modename}-mode-abbrev-table}. If the 385in a variable named @code{@var{modename}-mode-abbrev-table}. If the
242major mode command defines any abbrevs itself, it should pass @code{t} 386major mode command defines any abbrevs itself, it should pass @code{t}
243for the @var{system-flag} argument to @code{define-abbrev}. 387for the @var{system-flag} argument to @code{define-abbrev}.
244@xref{Abbrev Tables}. 388@xref{Defining Abbrevs}.
245 389
246@item 390@item
247The mode should specify how to do highlighting for Font Lock mode, by 391The mode should specify how to do highlighting for Font Lock mode, by
@@ -325,10 +469,13 @@ and Buffer List use this feature.
325@item 469@item
326If you want to make the new mode the default for files with certain 470If you want to make the new mode the default for files with certain
327recognizable names, add an element to @code{auto-mode-alist} to select 471recognizable names, add an element to @code{auto-mode-alist} to select
328the mode for those file names. If you define the mode command to 472the mode for those file names (@pxref{Auto Major Mode}). If you
329autoload, you should add this element in the same file that calls 473define the mode command to autoload, you should add this element in
330@code{autoload}. Otherwise, it is sufficient to add the element in the 474the same file that calls @code{autoload}. If you use an autoload
331file that contains the mode definition. @xref{Auto Major Mode}. 475cookie for the mode command, you can also use an autoload cookie for
476the form that adds the element (@pxref{autoload cookie}). If you do
477not autoload the mode command, it is sufficient to add the element in
478the file that contains the mode definition.
332 479
333@item 480@item
334In the comments that document the file, you should provide a sample 481In the comments that document the file, you should provide a sample
@@ -636,21 +783,28 @@ state of Emacs.)
636 783
637@deffn Command normal-mode &optional find-file 784@deffn Command normal-mode &optional find-file
638This function establishes the proper major mode and buffer-local variable 785This function establishes the proper major mode and buffer-local variable
639bindings for the current buffer. First it calls @code{set-auto-mode}, 786bindings for the current buffer. First it calls @code{set-auto-mode}
640then it runs @code{hack-local-variables} to parse, and bind or 787(see below), then it runs @code{hack-local-variables} to parse, and
641evaluate as appropriate, the file's local variables. 788bind or evaluate as appropriate, the file's local variables
789(@pxref{File Local Variables}).
642 790
643If the @var{find-file} argument to @code{normal-mode} is non-@code{nil}, 791If the @var{find-file} argument to @code{normal-mode} is non-@code{nil},
644@code{normal-mode} assumes that the @code{find-file} function is calling 792@code{normal-mode} assumes that the @code{find-file} function is calling
645it. In this case, it may process a local variables list at the end of 793it. In this case, it may process local variables in the @samp{-*-}
646the file and in the @samp{-*-} line. The variable 794line or at the end of the file. The variable
647@code{enable-local-variables} controls whether to do so. @xref{File 795@code{enable-local-variables} controls whether to do so. @xref{File
648variables, , Local Variables in Files, emacs, The GNU Emacs Manual}, for 796Variables, , Local Variables in Files, emacs, The GNU Emacs Manual},
649the syntax of the local variables section of a file. 797for the syntax of the local variables section of a file.
650 798
651If you run @code{normal-mode} interactively, the argument 799If you run @code{normal-mode} interactively, the argument
652@var{find-file} is normally @code{nil}. In this case, 800@var{find-file} is normally @code{nil}. In this case,
653@code{normal-mode} unconditionally processes any local variables list. 801@code{normal-mode} unconditionally processes any file local variables.
802
803If @code{normal-mode} processes the local variables list and this list
804specifies a major mode, that mode overrides any mode chosen by
805@code{set-auto-mode}. If neither @code{set-auto-mode} nor
806@code{hack-local-variables} specify a major mode, the buffer stays in
807the major mode determined by @code{default-major-mode} (see below).
654 808
655@cindex file mode specification error 809@cindex file mode specification error
656@code{normal-mode} uses @code{condition-case} around the call to the 810@code{normal-mode} uses @code{condition-case} around the call to the
@@ -658,16 +812,25 @@ major mode function, so errors are caught and reported as a @samp{File
658mode specification error}, followed by the original error message. 812mode specification error}, followed by the original error message.
659@end deffn 813@end deffn
660 814
661@defun set-auto-mode 815@defun set-auto-mode &optional keep-mode-if-same
662@cindex visited file mode 816@cindex visited file mode
663 This function selects the major mode that is appropriate for the 817 This function selects the major mode that is appropriate for the
664current buffer. It may base its decision on the value of the @w{@samp{-*-}} 818current buffer. It bases its decision (in order of precedence) on
665line, on the visited file name (using @code{auto-mode-alist}), on the 819the @w{@samp{-*-}} line, on the @w{@samp{#!}} line (using
666@w{@samp{#!}} line (using @code{interpreter-mode-alist}), or on the 820@code{interpreter-mode-alist}), on the text at the beginning of the
667file's local variables list. However, this function does not look for 821buffer (using @code{magic-mode-alist}), and finally on the visited
668the @samp{mode:} local variable near the end of a file; the 822file name (using @code{auto-mode-alist}). @xref{Choosing Modes, , How
669@code{hack-local-variables} function does that. @xref{Choosing Modes, , 823Major Modes are Chosen, emacs, The GNU Emacs Manual}. However, this
670How Major Modes are Chosen, emacs, The GNU Emacs Manual}. 824function does not look for the @samp{mode:} local variable near the
825end of a file; the @code{hack-local-variables} function does that.
826If @code{enable-local-variables} is @code{nil}, @code{set-auto-mode}
827does not check the @w{@samp{-*-}} line for a mode tag either.
828
829If @var{keep-mode-if-same} is non-@code{nil}, this function does not
830call the mode command if the buffer is already in the proper major
831mode. For instance, @code{set-visited-file-name} sets this to
832@code{t} to avoid killing buffer local variables that the user may
833have set.
671@end defun 834@end defun
672 835
673@defopt default-major-mode 836@defopt default-major-mode
@@ -675,8 +838,8 @@ This variable holds the default major mode for new buffers. The
675standard value is @code{fundamental-mode}. 838standard value is @code{fundamental-mode}.
676 839
677If the value of @code{default-major-mode} is @code{nil}, Emacs uses 840If the value of @code{default-major-mode} is @code{nil}, Emacs uses
678the (previously) current buffer's major mode for the major mode of a new 841the (previously) current buffer's major mode as the default major mode
679buffer. However, if that major mode symbol has a @code{mode-class} 842of a new buffer. However, if that major mode symbol has a @code{mode-class}
680property with value @code{special}, then it is not used for new buffers; 843property with value @code{special}, then it is not used for new buffers;
681Fundamental mode is used instead. The modes that have this property are 844Fundamental mode is used instead. The modes that have this property are
682those such as Dired and Rmail that are useful only with text that has 845those such as Dired and Rmail that are useful only with text that has
@@ -685,28 +848,50 @@ been specially prepared.
685 848
686@defun set-buffer-major-mode buffer 849@defun set-buffer-major-mode buffer
687This function sets the major mode of @var{buffer} to the value of 850This function sets the major mode of @var{buffer} to the value of
688@code{default-major-mode}. If that variable is @code{nil}, it uses 851@code{default-major-mode}; if that variable is @code{nil}, it uses the
689the current buffer's major mode (if that is suitable). 852current buffer's major mode (if that is suitable). As an exception,
853if @var{buffer}'s name is @samp{*scratch*}, it sets the mode to
854@code{initial-major-mode}.
690 855
691The low-level primitives for creating buffers do not use this function, 856The low-level primitives for creating buffers do not use this function,
692but medium-level commands such as @code{switch-to-buffer} and 857but medium-level commands such as @code{switch-to-buffer} and
693@code{find-file-noselect} use it whenever they create buffers. 858@code{find-file-noselect} use it whenever they create buffers.
694@end defun 859@end defun
695 860
696@defvar initial-major-mode 861@defopt initial-major-mode
697@cindex @samp{*scratch*} 862@cindex @samp{*scratch*}
698The value of this variable determines the major mode of the initial 863The value of this variable determines the major mode of the initial
699@samp{*scratch*} buffer. The value should be a symbol that is a major 864@samp{*scratch*} buffer. The value should be a symbol that is a major
700mode command. The default value is @code{lisp-interaction-mode}. 865mode command. The default value is @code{lisp-interaction-mode}.
866@end defopt
867
868@defvar interpreter-mode-alist
869This variable specifies major modes to use for scripts that specify a
870command interpreter in a @samp{#!} line. Its value is an alist with
871elements of the form @code{(@var{interpreter} . @var{mode})}; for
872example, @code{("perl" . perl-mode)} is one element present by
873default. The element says to use mode @var{mode} if the file
874specifies an interpreter which matches @var{interpreter}. The value
875of @var{interpreter} is actually a regular expression. @xref{Regular
876Expressions}.
877@end defvar
878
879@defvar magic-mode-alist
880This variable's value is an alist with elements of the form
881@code{(@var{regexp} . @var{function})}, where @var{regexp} is a
882regular expression and @var{function} is a function or @code{nil}.
883After visiting a file, @code{set-auto-mode} calls @var{function} if
884the text at the beginning of the buffer matches @var{regexp} and
885@var{function} is non-@code{nil}; if @var{function} is @code{nil},
886@code{auto-mode-alist} gets to decide the mode.
701@end defvar 887@end defvar
702 888
703@defvar auto-mode-alist 889@defvar auto-mode-alist
704This variable contains an association list of file name patterns 890This variable contains an association list of file name patterns
705(regular expressions; @pxref{Regular Expressions}) and corresponding 891(regular expressions) and corresponding major mode commands. Usually,
706major mode commands. Usually, the file name patterns test for suffixes, 892the file name patterns test for suffixes, such as @samp{.el} and
707such as @samp{.el} and @samp{.c}, but this need not be the case. An 893@samp{.c}, but this need not be the case. An ordinary element of the
708ordinary element of the alist looks like @code{(@var{regexp} . 894alist looks like @code{(@var{regexp} . @var{mode-function})}.
709@var{mode-function})}.
710 895
711For example, 896For example,
712 897
@@ -725,9 +910,11 @@ For example,
725@end smallexample 910@end smallexample
726 911
727When you visit a file whose expanded file name (@pxref{File Name 912When you visit a file whose expanded file name (@pxref{File Name
728Expansion}) matches a @var{regexp}, @code{set-auto-mode} calls the 913Expansion}), with version numbers and backup suffixes removed using
729corresponding @var{mode-function}. This feature enables Emacs to select 914@code{file-name-sans-versions} (@pxref{File Name Components}), matches
730the proper major mode for most files. 915a @var{regexp}, @code{set-auto-mode} calls the corresponding
916@var{mode-function}. This feature enables Emacs to select the proper
917major mode for most files.
731 918
732If an element of @code{auto-mode-alist} has the form @code{(@var{regexp} 919If an element of @code{auto-mode-alist} has the form @code{(@var{regexp}
733@var{function} t)}, then after calling @var{function}, Emacs searches 920@var{function} t)}, then after calling @var{function}, Emacs searches
@@ -756,19 +943,6 @@ init file.)
756@end smallexample 943@end smallexample
757@end defvar 944@end defvar
758 945
759@defvar interpreter-mode-alist
760This variable specifies major modes to use for scripts that specify a
761command interpreter in a @samp{#!} line. Its value is a list of
762elements of the form @code{(@var{interpreter} . @var{mode})}; for
763example, @code{("perl" . perl-mode)} is one element present by default.
764The element says to use mode @var{mode} if the file specifies
765an interpreter which matches @var{interpreter}. The value of
766@var{interpreter} is actually a regular expression.
767
768This variable is applicable only when the @code{auto-mode-alist} does
769not indicate which major mode to use.
770@end defvar
771
772@node Mode Help 946@node Mode Help
773@subsection Getting Help about a Major Mode 947@subsection Getting Help about a Major Mode
774@cindex mode help 948@cindex mode help
@@ -805,46 +979,77 @@ mode.
805 It's often useful to define a new major mode in terms of an existing 979 It's often useful to define a new major mode in terms of an existing
806one. An easy way to do this is to use @code{define-derived-mode}. 980one. An easy way to do this is to use @code{define-derived-mode}.
807 981
808@defmac define-derived-mode variant parent name docstring body@dots{} 982@defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{}
809This construct defines @var{variant} as a major mode command, using 983This construct defines @var{variant} as a major mode command, using
810@var{name} as the string form of the mode name. 984@var{name} as the string form of the mode name. @var{variant} and
985@var{parent} should be unquoted symbols.
811 986
812The new command @var{variant} is defined to call the function 987The new command @var{variant} is defined to call the function
813@var{parent}, then override certain aspects of that parent mode: 988@var{parent}, then override certain aspects of that parent mode:
814 989
815@itemize @bullet 990@itemize @bullet
816@item 991@item
817The new mode has its own keymap, named @code{@var{variant}-map}. 992The new mode has its own sparse keymap, named
818@code{define-derived-mode} initializes this map to inherit from 993@code{@var{variant}-map}. @code{define-derived-mode}
819@code{@var{parent}-map}, if it is not already set. 994makes the parent mode's keymap the parent of the new map, unless
995@code{@var{variant}-map} is already set and already has a parent.
820 996
821@item 997@item
822The new mode has its own syntax table, kept in the variable 998The new mode has its own syntax table, kept in the variable
823@code{@var{variant}-syntax-table}. 999@code{@var{variant}-syntax-table}, unless you override this using the
824@code{define-derived-mode} initializes this variable by copying 1000@code{:syntax-table} keyword (see below). @code{define-derived-mode}
825@code{@var{parent}-syntax-table}, if it is not already set. 1001makes the parent mode's syntax-table the parent of
1002@code{@var{variant}-syntax-table}, unless the latter is already set
1003and already has a parent different from the standard syntax table.
826 1004
827@item 1005@item
828The new mode has its own abbrev table, kept in the variable 1006The new mode has its own abbrev table, kept in the variable
829@code{@var{variant}-abbrev-table}. 1007@code{@var{variant}-abbrev-table}, unless you override this using the
830@code{define-derived-mode} initializes this variable by copying 1008@code{:abbrev-table} keyword (see below).
831@code{@var{parent}-abbrev-table}, if it is not already set.
832 1009
833@item 1010@item
834The new mode has its own mode hook, @code{@var{variant}-hook}, 1011The new mode has its own mode hook, @code{@var{variant}-hook}. It
835which it runs in standard fashion as the very last thing that it does. 1012runs this hook, after running the hooks of its ancestor modes, with
836(The new mode also runs the mode hook of @var{parent} as part 1013@code{run-mode-hooks}, as the last thing it does. @xref{Mode Hooks}.
837of calling @var{parent}.)
838@end itemize 1014@end itemize
839 1015
840In addition, you can specify how to override other aspects of 1016In addition, you can specify how to override other aspects of
841@var{parent} with @var{body}. The command @var{variant} 1017@var{parent} with @var{body}. The command @var{variant}
842evaluates the forms in @var{body} after setting up all its usual 1018evaluates the forms in @var{body} after setting up all its usual
843overrides, just before running @code{@var{variant}-hook}. 1019overrides, just before running the mode hooks.
1020
1021You can also specify @code{nil} for @var{parent}. This gives the new
1022mode no parent. Then @code{define-derived-mode} behaves as described
1023above, but, of course, omits all actions connected with @var{parent}.
844 1024
845The argument @var{docstring} specifies the documentation string for the 1025The argument @var{docstring} specifies the documentation string for
846new mode. If you omit @var{docstring}, @code{define-derived-mode} 1026the new mode. @code{define-derived-mode} adds some general
847generates a documentation string. 1027information about the mode's hook, followed by the mode's keymap, at
1028the end of this docstring. If you omit @var{docstring},
1029@code{define-derived-mode} generates a documentation string.
1030
1031The @var{keyword-args} are pairs of keywords and values. The values
1032are evaluated. The following keywords are currently supported:
1033
1034@table @code
1035@item :group
1036If this is specified, it is the customization group for this mode.
1037
1038@item :syntax-table
1039You can use this to explicitly specify a syntax table for the new
1040mode. If you specify a @code{nil} value, the new mode uses the same
1041syntax table as @var{parent}, or the standard syntax table if
1042@var{parent} is @code{nil}. (Note that this does @emph{not} follow
1043the convention used for non-keyword arguments that a @code{nil} value
1044is equivalent with not specifying the argument.)
1045
1046@item :abbrev-table
1047You can use this to explicitly specify an abbrev table for the new
1048mode. If you specify a @code{nil} value, the new mode uses the same
1049abbrev table as @var{parent}, or @code{fundamental-mode-abbrev-table}
1050if @var{parent} is @code{nil}. (Again, a @code{nil} value is
1051@emph{not} equivalent to not specifying this keyword.)
1052@end table
848 1053
849Here is a hypothetical example: 1054Here is a hypothetical example:
850 1055
@@ -873,7 +1078,7 @@ configuration files. To define a generic mode, use the macro
873@code{define-generic-mode}. See the file @file{generic-x.el} for some 1078@code{define-generic-mode}. See the file @file{generic-x.el} for some
874examples of the use of @code{define-generic-mode}. 1079examples of the use of @code{define-generic-mode}.
875 1080
876@defmac define-generic-mode mode comment-list keyword-list font-lock-list auto-mode-list function-list &optional docstring &rest custom-keyword-args 1081@defmac define-generic-mode mode comment-list keyword-list font-lock-list auto-mode-list function-list &optional docstring
877This macro creates a new generic mode. The argument @var{mode} (an 1082This macro creates a new generic mode. The argument @var{mode} (an
878unquoted symbol) is the major mode command. The optional argument 1083unquoted symbol) is the major mode command. The optional argument
879@var{docstring} is the documentation for the mode command. If you do 1084@var{docstring} is the documentation for the mode command. If you do
@@ -902,16 +1107,7 @@ when Emacs runs the macro expansion.
902 1107
903@var{function-list} is a list of functions to call to do some 1108@var{function-list} is a list of functions to call to do some
904additional setup. The mode command calls these functions just before 1109additional setup. The mode command calls these functions just before
905it runs the mode hook. 1110it runs the mode hook variable @code{@var{mode}-hook}.
906
907The optional @var{custom-keyword-args} are pairs of keywords and
908values to include in the generated @code{defcustom} form for the mode
909hook variable @code{@var{mode}-hook}. The default value for the
910@samp{:group} keyword is @var{mode} with the final @samp{-mode} (if
911any) removed. Don't use this default group name unless you have
912written a @code{defgroup} to define that group properly (@pxref{Group
913Definitions}). You can specify keyword arguments without specifying a
914docstring.
915@end defmac 1111@end defmac
916 1112
917@node Mode Hooks 1113@node Mode Hooks
@@ -1065,8 +1261,9 @@ enable or disable the minor mode based on the raw prefix argument value.
1065 1261
1066@item 1262@item
1067Add an element to @code{minor-mode-alist} for each minor mode 1263Add an element to @code{minor-mode-alist} for each minor mode
1068(@pxref{Mode Line Variables}), if you want to indicate the minor mode in 1264(@pxref{Definition of minor-mode-alist}), if you want to indicate the
1069the mode line. This element should be a list of the following form: 1265minor mode in the mode line. This element should be a list of the
1266following form:
1070 1267
1071@smallexample 1268@smallexample
1072(@var{mode-variable} @var{string}) 1269(@var{mode-variable} @var{string})
@@ -1108,7 +1305,7 @@ should also specify a @code{:set} method which enables the mode by
1108invoking the mode command. Note in the variable's documentation string that 1305invoking the mode command. Note in the variable's documentation string that
1109setting the variable other than via Custom may not take effect. 1306setting the variable other than via Custom may not take effect.
1110 1307
1111 Also mark the definition with an autoload cookie (@pxref{Autoload}), 1308 Also mark the definition with an autoload cookie (@pxref{autoload cookie}),
1112and specify a @code{:require} so that customizing the variable will load 1309and specify a @code{:require} so that customizing the variable will load
1113the library that defines the mode. This will copy suitable definitions 1310the library that defines the mode. This will copy suitable definitions
1114into @file{loaddefs.el} so that users can use @code{customize-option} to 1311into @file{loaddefs.el} so that users can use @code{customize-option} to
@@ -1137,7 +1334,7 @@ use either \\[customize] or the function `msb-mode'."
1137 1334
1138 Each minor mode can have its own keymap, which is active when the mode 1335 Each minor mode can have its own keymap, which is active when the mode
1139is enabled. To set up a keymap for a minor mode, add an element to the 1336is enabled. To set up a keymap for a minor mode, add an element to the
1140alist @code{minor-mode-map-alist}. @xref{Active Keymaps}. 1337alist @code{minor-mode-map-alist}. @xref{Definition of minor-mode-map-alist}.
1141 1338
1142@cindex @code{self-insert-command}, minor modes 1339@cindex @code{self-insert-command}, minor modes
1143 One use of minor mode keymaps is to modify the behavior of certain 1340 One use of minor mode keymaps is to modify the behavior of certain
@@ -1194,8 +1391,9 @@ written a @code{defgroup} to define that group properly. @xref{Group
1194Definitions}. 1391Definitions}.
1195 1392
1196@item :global @var{global} 1393@item :global @var{global}
1197If non-@code{nil} specifies that the minor mode should be global. 1394If non-@code{nil} specifies that the minor mode should be global. By
1198By default, minor modes are buffer-local. 1395default, minor modes defined with @code{define-minor-mode} are
1396buffer-local.
1199 1397
1200@item :init-value @var{init-value} 1398@item :init-value @var{init-value}
1201This is equivalent to specifying @var{init-value} positionally. 1399This is equivalent to specifying @var{init-value} positionally.
@@ -1210,9 +1408,10 @@ This is equivalent to specifying @var{keymap} positionally.
1210Any other keyword arguments are passed passed directly to the 1408Any other keyword arguments are passed passed directly to the
1211@code{defcustom} generated for the variable @var{mode}. 1409@code{defcustom} generated for the variable @var{mode}.
1212 1410
1213The command named @var{mode} finishes by executing the @var{body} forms, 1411The command named @var{mode} first performs the standard actions such
1214if any, after it has performed the standard actions such as setting 1412as setting the variable named @var{mode} and then executes the
1215the variable named @var{mode}. 1413@var{body} forms, if any. It finishes by running the mode hook
1414variable @code{@var{mode}-hook}.
1216@end defmac 1415@end defmac
1217 1416
1218@findex easy-mmode-define-minor-mode 1417@findex easy-mmode-define-minor-mode
@@ -1276,6 +1475,17 @@ See the command \\[hungry-electric-delete]."
1276 :group 'hunger) 1475 :group 'hunger)
1277@end smallexample 1476@end smallexample
1278 1477
1478@defmac define-global-minor-mode global-mode mode turn-on keyword-args...
1479This defines a global minor mode named @var{global-mode} whose meaning
1480is to enable the buffer-local minor mode @var{mode} in every buffer.
1481To turn on the minor mode in a buffer, it uses the function
1482@var{turn-on}; to turn off the minor mode, it calls @code{mode} with
1483@minus{}1 as argument.
1484
1485Use @code{:group @var{group}} in @var{keyword-args} to specify the
1486custom group for the mode variable of the global minor mode.
1487@end defmac
1488
1279@node Mode Line Format 1489@node Mode Line Format
1280@section Mode-Line Format 1490@section Mode-Line Format
1281@cindex mode line 1491@cindex mode line
@@ -1293,6 +1503,19 @@ and header line. We include it in this chapter because much of the
1293information displayed in the mode line relates to the enabled major and 1503information displayed in the mode line relates to the enabled major and
1294minor modes. 1504minor modes.
1295 1505
1506@menu
1507* Mode Line Basics::
1508* Mode Line Data:: The data structure that controls the mode line.
1509* Mode Line Variables:: Variables used in that data structure.
1510* %-Constructs:: Putting information into a mode line.
1511* Properties in Mode:: Using text properties in the mode line.
1512* Header Lines:: Like a mode line, but at the top.
1513* Emulating Mode Line:: Formatting text as the mode line would.
1514@end menu
1515
1516@node Mode Line Basics
1517@subsection Mode Line Basics
1518
1296 @code{mode-line-format} is a buffer-local variable that holds a 1519 @code{mode-line-format} is a buffer-local variable that holds a
1297template used to display the mode line of the current buffer. All 1520template used to display the mode line of the current buffer. All
1298windows for the same buffer use the same @code{mode-line-format}, so 1521windows for the same buffer use the same @code{mode-line-format}, so
@@ -1334,15 +1557,6 @@ that is two lines tall cannot display both a mode line and a header
1334line at once; if the variables call for both, only the mode line 1557line at once; if the variables call for both, only the mode line
1335actually appears. 1558actually appears.
1336 1559
1337@menu
1338* Mode Line Data:: The data structure that controls the mode line.
1339* Mode Line Variables:: Variables used in that data structure.
1340* %-Constructs:: Putting information into a mode line.
1341* Properties in Mode:: Using text properties in the mode line.
1342* Header Lines:: Like a mode line, but at the top.
1343* Emulating Mode Line:: Formatting text as the mode line would.
1344@end menu
1345
1346@node Mode Line Data 1560@node Mode Line Data
1347@subsection The Data Structure of the Mode Line 1561@subsection The Data Structure of the Mode Line
1348@cindex mode-line construct 1562@cindex mode-line construct
@@ -1414,7 +1628,9 @@ common form of mode-line construct.
1414 1628
1415@item (:eval @var{form}) 1629@item (:eval @var{form})
1416A list whose first element is the symbol @code{:eval} says to evaluate 1630A list whose first element is the symbol @code{:eval} says to evaluate
1417@var{form}, and use the result as a string to display. 1631@var{form}, and use the result as a string to display. Make sure this
1632evaluation cannot load any files, as doing so could cause infinite
1633recursion.
1418 1634
1419@item (:propertize @var{elt} @var{props}@dots{}) 1635@item (:propertize @var{elt} @var{props}@dots{})
1420A list whose first element is the symbol @code{:propertize} says to 1636A list whose first element is the symbol @code{:propertize} says to
@@ -1436,9 +1652,10 @@ the value of @var{symbol} is @code{nil}.
1436A list whose first element is an integer specifies truncation or 1652A list whose first element is an integer specifies truncation or
1437padding of the results of @var{rest}. The remaining elements 1653padding of the results of @var{rest}. The remaining elements
1438@var{rest} are processed recursively as mode-line constructs and 1654@var{rest} are processed recursively as mode-line constructs and
1439concatenated together. Then the result is space filled (if 1655concatenated together. When @var{width} is positive, the result is
1440@var{width} is positive) or truncated (to @minus{}@var{width} columns, 1656space filled on the right if its width is less than @var{width}. When
1441if @var{width} is negative) on the right. 1657@var{width} is negative, the result is truncated on the right to
1658@minus{}@var{width} columns if its width exceeds @minus{}@var{width}.
1442 1659
1443For example, the usual way to show what percentage of a buffer is above 1660For example, the usual way to show what percentage of a buffer is above
1444the top of the window is to use a list like this: @code{(-3 "%p")}. 1661the top of the window is to use a list like this: @code{(-3 "%p")}.
@@ -1604,6 +1821,7 @@ is @code{nil}.
1604@end defvar 1821@end defvar
1605 1822
1606@defvar minor-mode-alist 1823@defvar minor-mode-alist
1824@anchor{Definition of minor-mode-alist}
1607This variable holds an association list whose elements specify how the 1825This variable holds an association list whose elements specify how the
1608mode line should indicate that a minor mode is active. Each element of 1826mode line should indicate that a minor mode is active. Each element of
1609the @code{minor-mode-alist} should be a two-element list: 1827the @code{minor-mode-alist} should be a two-element list:
@@ -1675,7 +1893,8 @@ specifies addition of text properties.
1675 1893
1676 The following table lists the recognized @code{%}-constructs and what 1894 The following table lists the recognized @code{%}-constructs and what
1677they mean. In any construct except @samp{%%}, you can add a decimal 1895they mean. In any construct except @samp{%%}, you can add a decimal
1678integer after the @samp{%} to specify how many characters to display. 1896integer after the @samp{%} to specify a minimum field width. If the
1897width is less, the field is padded with spaces to the right.
1679 1898
1680@table @code 1899@table @code
1681@item %b 1900@item %b
@@ -1780,7 +1999,7 @@ The value of @code{global-mode-string}. Currently, only
1780 1999
1781 Certain text properties are meaningful in the 2000 Certain text properties are meaningful in the
1782mode line. The @code{face} property affects the appearance of text; the 2001mode line. The @code{face} property affects the appearance of text; the
1783@code{help-echo} property associate help strings with the text, and 2002@code{help-echo} property associates help strings with the text, and
1784@code{local-map} can make the text mouse-sensitive. 2003@code{local-map} can make the text mouse-sensitive.
1785 2004
1786 There are four ways to specify text properties for text in the mode 2005 There are four ways to specify text properties for text in the mode
@@ -1848,7 +2067,7 @@ It is normally @code{nil}, so that ordinary buffers have no header line.
1848 2067
1849 You can use the function @code{format-mode-line} to compute 2068 You can use the function @code{format-mode-line} to compute
1850the text that would appear in a mode line or header line 2069the text that would appear in a mode line or header line
1851based on certain mode-line specification. 2070based on a certain mode-line specification.
1852 2071
1853@defun format-mode-line format &optional face window buffer 2072@defun format-mode-line format &optional face window buffer
1854This function formats a line of text according to @var{format} as if 2073This function formats a line of text according to @var{format} as if
@@ -1864,7 +2083,8 @@ faces, keymaps, etc., that the mode line would have. And any character
1864for which no @code{face} property is specified gets a default 2083for which no @code{face} property is specified gets a default
1865value which is usually @var{face}. (If @var{face} is @code{t}, 2084value which is usually @var{face}. (If @var{face} is @code{t},
1866that stands for either @code{mode-line} if @var{window} is selected, 2085that stands for either @code{mode-line} if @var{window} is selected,
1867otherwise @code{mode-line-inactive}.) 2086otherwise @code{mode-line-inactive}. If @var{face} is @code{nil} or
2087omitted, that stands for no face property.)
1868 2088
1869However, if @var{face} is an integer, the value has no text properties. 2089However, if @var{face} is an integer, the value has no text properties.
1870 2090
@@ -2811,147 +3031,8 @@ argument list
2811and it should return the restored buffer. 3031and it should return the restored buffer.
2812Here @var{desktop-buffer-misc} is the value returned by the function 3032Here @var{desktop-buffer-misc} is the value returned by the function
2813optionally bound to @code{desktop-save-buffer}. 3033optionally bound to @code{desktop-save-buffer}.
2814
2815@end defvar 3034@end defvar
2816 3035
2817@node Hooks
2818@section Hooks
2819@cindex hooks
2820
2821 A @dfn{hook} is a variable where you can store a function or functions
2822to be called on a particular occasion by an existing program. Emacs
2823provides hooks for the sake of customization. Most often, hooks are set
2824up in the init file (@pxref{Init File}), but Lisp programs can set them also.
2825@xref{Standard Hooks}, for a list of standard hook variables.
2826
2827@cindex normal hook
2828 Most of the hooks in Emacs are @dfn{normal hooks}. These variables
2829contain lists of functions to be called with no arguments. When the
2830hook name ends in @samp{-hook}, that tells you it is normal. We try to
2831make all hooks normal, as much as possible, so that you can use them in
2832a uniform way.
2833
2834 Every major mode function is supposed to run a normal hook called the
2835@dfn{mode hook} as the last step of initialization. This makes it easy
2836for a user to customize the behavior of the mode, by overriding the
2837buffer-local variable assignments already made by the mode. But hooks
2838are used in other contexts too. For example, the hook
2839@code{suspend-hook} runs just before Emacs suspends itself
2840(@pxref{Suspending Emacs}).
2841
2842 The recommended way to add a hook function to a normal hook is by
2843calling @code{add-hook} (see below). The hook functions may be any of
2844the valid kinds of functions that @code{funcall} accepts (@pxref{What
2845Is a Function}). Most normal hook variables are initially void;
2846@code{add-hook} knows how to deal with this. You can add hooks either
2847globally or buffer-locally with @code{add-hook}.
2848
2849@cindex abnormal hook
2850 If the hook variable's name does not end with @samp{-hook}, that
2851indicates it is probably an @dfn{abnormal hook}. Then you should look at its
2852documentation to see how to use the hook properly.
2853
2854 If the variable's name ends in @samp{-functions} or @samp{-hooks},
2855then the value is a list of functions, but it is abnormal in that either
2856these functions are called with arguments or their values are used in
2857some way. You can use @code{add-hook} to add a function to the list,
2858but you must take care in writing the function. (A few of these
2859variables, notably those ending in @samp{-hooks}, are actually
2860normal hooks which were named before we established the convention of
2861using @samp{-hook} for them.)
2862
2863 If the variable's name ends in @samp{-function}, then its value
2864is just a single function, not a list of functions.
2865
2866 Here's an example that uses a mode hook to turn on Auto Fill mode when
2867in Lisp Interaction mode:
2868
2869@example
2870(add-hook 'lisp-interaction-mode-hook 'turn-on-auto-fill)
2871@end example
2872
2873 At the appropriate time, Emacs uses the @code{run-hooks} function to
2874run particular hooks. This function calls the hook functions that have
2875been added with @code{add-hook}.
2876
2877@defun run-hooks &rest hookvars
2878This function takes one or more normal hook variable names as
2879arguments, and runs each hook in turn. Each argument should be a
2880symbol that is a normal hook variable. These arguments are processed
2881in the order specified.
2882
2883If a hook variable has a non-@code{nil} value, that value may be a
2884function or a list of functions. (The former option is considered
2885obsolete.) If the value is a function (either a lambda expression or
2886a symbol with a function definition), it is called. If it is a list
2887that isn't a function, its elements are called, consecutively. All
2888the hook functions are called with no arguments.
2889@end defun
2890
2891@defun run-hook-with-args hook &rest args
2892This function is the way to run an abnormal hook and always call all
2893of the hook functions. It calls each of the hook functions one by
2894one, passing each of them the arguments @var{args}.
2895@end defun
2896
2897@defun run-hook-with-args-until-failure hook &rest args
2898This function is the way to run an abnormal hook until one of the hook
2899functions fails. It calls each of the hook functions, passing each of
2900them the arguments @var{args}, until some hook function returns
2901@code{nil}. It then stops and returns @code{nil}. If none of the
2902hook functions return @code{nil}, it returns a non-@code{nil} value.
2903@end defun
2904
2905@defun run-hook-with-args-until-success hook &rest args
2906This function is the way to run an abnormal hook until a hook function
2907succeeds. It calls each of the hook functions, passing each of them
2908the arguments @var{args}, until some hook function returns
2909non-@code{nil}. Then it stops, and returns whatever was returned by
2910the last hook function that was called. If all hook functions return
2911@code{nil}, it returns @code{nil} as well.
2912@end defun
2913
2914@defun add-hook hook function &optional append local
2915This function is the handy way to add function @var{function} to hook
2916variable @var{hook}. You can use it for abnormal hooks as well as for
2917normal hooks. @var{function} can be any Lisp function that can accept
2918the proper number of arguments for @var{hook}. For example,
2919
2920@example
2921(add-hook 'text-mode-hook 'my-text-hook-function)
2922@end example
2923
2924@noindent
2925adds @code{my-text-hook-function} to the hook called @code{text-mode-hook}.
2926
2927If @var{function} is already present in @var{hook} (comparing using
2928@code{equal}), then @code{add-hook} does not add it a second time.
2929
2930It is best to design your hook functions so that the order in which they
2931are executed does not matter. Any dependence on the order is ``asking
2932for trouble''. However, the order is predictable: normally,
2933@var{function} goes at the front of the hook list, so it will be
2934executed first (barring another @code{add-hook} call). If the optional
2935argument @var{append} is non-@code{nil}, the new hook function goes at
2936the end of the hook list and will be executed last.
2937
2938If @var{local} is non-@code{nil}, that says to add @var{function} to
2939the buffer-local hook list instead of to the global hook list. If
2940needed, this makes the hook buffer-local and adds @code{t} to the
2941buffer-local value. The latter acts as a flag to run the hook
2942functions in the default value as well as in the local value.
2943@end defun
2944
2945@defun remove-hook hook function &optional local
2946This function removes @var{function} from the hook variable
2947@var{hook}. It compares @var{function} with elements of @var{hook}
2948using @code{equal}, so it works for both symbols and lambda
2949expressions.
2950
2951If @var{local} is non-@code{nil}, that says to remove @var{function}
2952from the buffer-local hook list instead of from the global hook list.
2953@end defun
2954
2955@ignore 3036@ignore
2956 arch-tag: 4c7bff41-36e6-4da6-9e7f-9b9289e27c8e 3037 arch-tag: 4c7bff41-36e6-4da6-9e7f-9b9289e27c8e
2957@end ignore 3038@end ignore
diff --git a/lispref/processes.texi b/lispref/processes.texi
index 6ffacebce8a..07a72886355 100644
--- a/lispref/processes.texi
+++ b/lispref/processes.texi
@@ -1559,9 +1559,7 @@ back to listening for more connection requests.
1559keyword/argument pairs, for example @code{:server t} to create a 1559keyword/argument pairs, for example @code{:server t} to create a
1560server process, or @code{:type 'datagram} to create a datagram 1560server process, or @code{:type 'datagram} to create a datagram
1561connection. @xref{Low-Level Network}, for details. You can also use 1561connection. @xref{Low-Level Network}, for details. You can also use
1562one of the @code{open-network-...} functions descibed below; 1562the @code{open-network-stream} function descibed below.
1563internally, they just call @code{make-network-process} with suitable
1564arguments.
1565 1563
1566 You can distinguish process objects representing network connections 1564 You can distinguish process objects representing network connections
1567and servers from those representing subprocesses with the 1565and servers from those representing subprocesses with the
@@ -1601,25 +1599,6 @@ The arguments @var{host} and @var{service} specify where to connect to;
1601a defined network service (a string) or a port number (an integer). 1599a defined network service (a string) or a port number (an integer).
1602@end defun 1600@end defun
1603 1601
1604@defun open-network-stream-nowait name buffer-or-name host service &optional sentinel filter
1605This function opens a TCP connection, like @code{open-network-stream},
1606but it returns immediately without waiting for the request to be
1607accepted or rejected by the remote server. When the request is
1608subsequently accepted or rejected, the process's sentinel function
1609will be called with a string that starts with @code{"open"} (on
1610success) or @code{"failed"} (on error).
1611
1612Some systems do not support non-blocking connections; on those
1613systems, @code{open-network-stream-nowait} returns @code{nil}
1614and does nothing.
1615
1616The optional arguments @var{sentinel} and @var{filter} specify the
1617sentinel and filter functions for this network connection. It is
1618useful to specify them when opening the connection, because they will
1619be used later asynchronously. The other arguments mean the same as in
1620@code{open-network-stream}.
1621@end defun
1622
1623@defun process-contact process &optional key 1602@defun process-contact process &optional key
1624This function returns information about how a network process was set 1603This function returns information about how a network process was set
1625up. For a connection, when @var{key} is @code{nil}, it returns 1604up. For a connection, when @var{key} is @code{nil}, it returns
@@ -1704,24 +1683,6 @@ number used for the connection.
1704The client process' plist is initialized from the server's plist. 1683The client process' plist is initialized from the server's plist.
1705@end itemize 1684@end itemize
1706 1685
1707@defun open-network-stream-server name buffer-or-name service &optional sentinel filter
1708Create a network server process for a TCP service.
1709It returns @code{nil} if server processes are not supported; otherwise,
1710it returns a subprocess-object to represent the server.
1711
1712When a client connects to the specified service, Emacs creates a new
1713subprocess to handle the new connection, and then calls its sentinel
1714function (which it has inherited from the server).
1715
1716The optional arguments @var{sentinel} and @var{filter} specify the
1717sentinel and filter functions for the server. It is useful to specify
1718them now, because they will be used later asynchronously when the
1719server receives a connection request. The three arguments @var{name},
1720@var{buffer-or-name} and @var{service} mean the same thing as in
1721@code{open-network-stream}, but @var{service} can be @code{t}
1722meaning ask the system to allocate an unused port to listen on.
1723@end defun
1724
1725@node Datagrams 1686@node Datagrams
1726@section Datagrams 1687@section Datagrams
1727@cindex datagrams 1688@cindex datagrams
diff --git a/lispref/tips.texi b/lispref/tips.texi
index 538affd7450..8ec755f54b1 100644
--- a/lispref/tips.texi
+++ b/lispref/tips.texi
@@ -37,6 +37,16 @@ code intended for widespread use:
37 37
38@itemize @bullet 38@itemize @bullet
39@item 39@item
40Simply loading the package should not change Emacs's editing behavior.
41Include a command or commands to enable and disable the feature,
42or to invoke it.
43
44This convention is mandatory for any file that includes custom
45definitions. If fixing such a file to follow this convention requires
46an incompatible change, go ahead and make the incompatible change;
47don't postpone it.
48
49@item
40Since all global variables share the same name space, and all 50Since all global variables share the same name space, and all
41functions share another name space, you should choose a short word to 51functions share another name space, you should choose a short word to
42distinguish your program from other Lisp programs.@footnote{The 52distinguish your program from other Lisp programs.@footnote{The
@@ -201,17 +211,6 @@ way.
201In addition, they should mark the text as a kind of ``link'' so that 211In addition, they should mark the text as a kind of ``link'' so that
202@kbd{mouse-1} will follow it also. @xref{Links and Mouse-1}. 212@kbd{mouse-1} will follow it also. @xref{Links and Mouse-1}.
203 213
204@item
205When a package provides a modification of ordinary Emacs behavior, it is
206good to include a command to enable and disable the feature, provide a
207command named @code{@var{whatever}-mode} which turns the feature on or
208off, and make it autoload (@pxref{Autoload}). Design the package so
209that simply loading it has no visible effect---that should not enable
210the feature.@footnote{Consider that the package may be loaded
211arbitrarily by Custom for instance.} Users will request the feature by
212invoking the command. It is a good idea to define this command
213as a minor mode.
214
215@cindex unloading packages 214@cindex unloading packages
216If loading the file adds functions to hooks, define a function 215If loading the file adds functions to hooks, define a function
217@code{@var{feature}-unload-hook}, where @var{feature} is the name of 216@code{@var{feature}-unload-hook}, where @var{feature} is the name of
diff --git a/lispref/variables.texi b/lispref/variables.texi
index 28eab924eca..27f0f4a7029 100644
--- a/lispref/variables.texi
+++ b/lispref/variables.texi
@@ -42,8 +42,8 @@ variable.
42* Buffer-Local Variables:: Variable values in effect only in one buffer. 42* Buffer-Local Variables:: Variable values in effect only in one buffer.
43* Frame-Local Variables:: Variable values in effect only in one frame. 43* Frame-Local Variables:: Variable values in effect only in one frame.
44* Future Local Variables:: New kinds of local values we might add some day. 44* Future Local Variables:: New kinds of local values we might add some day.
45* Variable Aliases:: Variables that are aliases for other variables.
46* File Local Variables:: Handling local variable lists in files. 45* File Local Variables:: Handling local variable lists in files.
46* Variable Aliases:: Variables that are aliases for other variables.
47* Variables with Restricted Values:: Non-constant variables whose value can 47* Variables with Restricted Values:: Non-constant variables whose value can
48 @emph{not} be an arbitrary Lisp object. 48 @emph{not} be an arbitrary Lisp object.
49@end menu 49@end menu
@@ -1688,6 +1688,92 @@ bindings offer a way to handle these situations more robustly.
1688 If sufficient application is found for either of these two kinds of 1688 If sufficient application is found for either of these two kinds of
1689local bindings, we will provide it in a subsequent Emacs version. 1689local bindings, we will provide it in a subsequent Emacs version.
1690 1690
1691@node File Local Variables
1692@section File Local Variables
1693
1694 This section describes the functions and variables that affect
1695processing of file local variables. @xref{File variables, ,
1696Local Variables in Files, emacs, The GNU Emacs Manual}, for basic
1697information about file local variables.
1698
1699@defopt enable-local-variables
1700This variable controls whether to process file local variables. A
1701value of @code{t} means process them unconditionally; @code{nil} means
1702ignore them; anything else means ask the user what to do for each
1703file. The default value is @code{t}.
1704@end defopt
1705
1706@defun hack-local-variables &optional mode-only
1707This function parses, and binds or evaluates as appropriate, any local
1708variables specified by the contents of the current buffer. The variable
1709@code{enable-local-variables} has its effect here. However, this
1710function does not look for the @samp{mode:} local variable in the
1711@w{@samp{-*-}} line. @code{set-auto-mode} does that, also taking
1712@code{enable-local-variables} into account (@pxref{Auto Major Mode}).
1713
1714If the optional argument @var{mode-only} is non-@code{nil}, then all
1715this function does is return @code{t} if the @w{@samp{-*-}} line or
1716the local variables list specifies a mode and @code{nil} otherwise.
1717It does not set the mode nor any other file local variable.
1718@end defun
1719
1720 If a file local variable could specify a function that would
1721be called later, or an expression that would be executed later, simply
1722visiting a file could take over your Emacs. To prevent this, Emacs
1723takes care not to allow to set such file local variables.
1724
1725 For one thing, any variable whose name ends in @samp{-command},
1726@samp{-frame-alist}, @samp{-function}, @samp{-functions},
1727@samp{-hook}, @samp{-hooks}, @samp{-form}, @samp{-forms}, @samp{-map},
1728@samp{-map-alist}, @samp{-mode-alist}, @samp{-program}, or
1729@samp{-predicate} cannot be given a file local value. In general,
1730you should use such a name whenever it is appropriate for the
1731variable's meaning. The variables @samp{font-lock-keywords},
1732@samp{font-lock-keywords-[0-9]}, and
1733@samp{font-lock-syntactic-keywords} cannot be given file local values either.
1734These rules can be overridden by giving the variable's
1735name a non-@code{nil} @code{safe-local-variable} property. If one
1736gives it a @code{safe-local-variable} property of @code{t}, then one
1737can give the variable any file local value. One can also give any
1738symbol, including the above, a @code{safe-local-variable} property
1739that is a function taking exactly one argument. In that case, giving
1740a variable with that name a file local value is only allowed if the
1741function returns non-@code{nil} when called with that value as
1742argument.
1743
1744 In addition, any variable whose name has a non-@code{nil}
1745@code{risky-local-variable} property is also ignored. So are all
1746variables listed in @code{ignored-local-variables}:
1747
1748@defvar ignored-local-variables
1749This variable holds a list of variables that should not be given local
1750values by files. Any value specified for one of these variables is
1751ignored.
1752@end defvar
1753
1754@defun risky-local-variable-p sym &optional val
1755If @var{val} is non-@code{nil}, returns non-@code{nil} if giving
1756@var{sym} a file local value of @var{val} would be risky, for any of
1757the reasons stated above. If @var{val} is @code{nil} or omitted, only
1758returns @code{nil} if @var{sym} can be safely assigned any file local
1759value whatsoever.
1760@end defun
1761
1762 The @samp{Eval:} ``variable'' is also a potential loophole, so Emacs
1763normally asks for confirmation before handling it.
1764
1765@defopt enable-local-eval
1766This variable controls processing of @samp{Eval:} in @samp{-*-} lines
1767or local variables
1768lists in files being visited. A value of @code{t} means process them
1769unconditionally; @code{nil} means ignore them; anything else means ask
1770the user what to do for each file. The default value is @code{maybe}.
1771@end defopt
1772
1773 Text properties are also potential loopholes, since their values
1774could include functions to call. So Emacs discards all text
1775properties from string values specified for file local variables.
1776
1691@node Variable Aliases 1777@node Variable Aliases
1692@section Variable Aliases 1778@section Variable Aliases
1693 1779
@@ -1780,92 +1866,6 @@ foo
1780 @result{} 0 1866 @result{} 0
1781@end example 1867@end example
1782 1868
1783@node File Local Variables
1784@section File Local Variables
1785
1786 This section describes the functions and variables that affect
1787processing of local variables lists in files. @xref{File variables, ,
1788Local Variables in Files, emacs, The GNU Emacs Manual}, for basic
1789information about file local variables.
1790
1791@defopt enable-local-variables
1792This variable controls whether to process file local variables lists. A
1793value of @code{t} means process the local variables lists
1794unconditionally; @code{nil} means ignore them; anything else means ask
1795the user what to do for each file. The default value is @code{t}.
1796@end defopt
1797
1798@defun hack-local-variables &optional mode-only
1799This function parses, and binds or evaluates as appropriate, any local
1800variables specified by the contents of the current buffer. The variable
1801@code{enable-local-variables} has its effect here. However, this
1802function does not look for the @samp{mode:} local variable in the
1803@w{@samp{-*-}} line. @code{set-auto-mode} does that, also taking
1804@code{enable-local-variables} into account.
1805
1806If the optional argument @var{mode-only} is non-@code{nil}, then all
1807this function does is return @code{t} if the @w{@samp{-*-}} line or
1808the local variables list specifies a mode and @code{nil} otherwise.
1809It does not set the mode nor any other file local variable.
1810@end defun
1811
1812 If a file local variable list could specify a function that would
1813be called later, or an expression that would be executed later, simply
1814visiting a file could take over your Emacs. To prevent this, Emacs
1815takes care not to allow local variable lists to set such variables.
1816
1817 For one thing, any variable whose name ends in @samp{-command},
1818@samp{-frame-alist}, @samp{-function}, @samp{-functions},
1819@samp{-hook}, @samp{-hooks}, @samp{-form}, @samp{-forms}, @samp{-map},
1820@samp{-map-alist}, @samp{-mode-alist}, @samp{-program}, or
1821@samp{-predicate} cannot be set in a local variable list. In general,
1822you should use such a name whenever it is appropriate for the
1823variable's meaning. The variables @samp{font-lock-keywords},
1824@samp{font-lock-keywords-[0-9]}, and
1825@samp{font-lock-syntactic-keywords} cannot be set in a local variable
1826list, either. These rules can be overridden by giving the variable's
1827name a non-@code{nil} @code{safe-local-variable} property. If one
1828gives it a @code{safe-local-variable} property of @code{t}, then one
1829can give the variable any file local value. One can also give any
1830symbol, including the above, a @code{safe-local-variable} property
1831that is a function taking exactly one argument. In that case, giving
1832a variable with that name a file local value is only allowed if the
1833function returns non-@code{nil} when called with that value as
1834argument.
1835
1836 In addition, any variable whose name has a non-@code{nil}
1837@code{risky-local-variable} property is also ignored. So are all
1838variables listed in @code{ignored-local-variables}:
1839
1840@defvar ignored-local-variables
1841This variable holds a list of variables that should not be
1842set by a file's local variables list. Any value specified
1843for one of these variables is ignored.
1844@end defvar
1845
1846@defun risky-local-variable-p sym &optional val
1847If @var{val} is non-@code{nil}, returns non-@code{nil} if giving
1848@var{sym} a file local value of @var{val} would be risky, for any of
1849the reasons stated above. If @var{val} is @code{nil} or omitted, only
1850returns @code{nil} if @var{sym} can be safely assigned any file local
1851value whatsoever.
1852@end defun
1853
1854 The @samp{Eval:} ``variable'' is also a potential loophole, so Emacs
1855normally asks for confirmation before handling it.
1856
1857@defopt enable-local-eval
1858This variable controls processing of @samp{Eval:} in local variables
1859lists in files being visited. A value of @code{t} means process them
1860unconditionally; @code{nil} means ignore them; anything else means ask
1861the user what to do for each file. The default value is @code{maybe}.
1862@end defopt
1863
1864 Text properties are also potential loopholes, since their values
1865could include functions to call. So Emacs discards all text
1866properties from string values specified in a file's local variables
1867list.
1868
1869@node Variables with Restricted Values 1869@node Variables with Restricted Values
1870@section Variables with Restricted Values 1870@section Variables with Restricted Values
1871 1871
diff --git a/mac/ChangeLog b/mac/ChangeLog
index 96ba2ee5201..61489e5a88e 100644
--- a/mac/ChangeLog
+++ b/mac/ChangeLog
@@ -1,6 +1,47 @@
12005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * makefile.MPW (buildobj.lst): New target.
4 (Clean): Delete file buildobj.lst.
5 (Emacs, {DocTarget}DOC): Depend on buildobj.lst.
6 (EmacsSource, MacSource, LispSource, LispSourceDontCompile):
7 Remove variables.
8 (SOME_MACHINE_OBJECTS, shortlisp, SOME_MACHINE_LISP): New
9 variables.
10 ({DocTarget}DOC): Use them.
11 (Make-DocFile-PPCCOptions): Add `-d MAC_OS -d MAC_OS8'.
12
13 * inc/config.h: Sync with src/config.in.
14 (DO_BLOCK_INPUT, HAVE_DIFFTIME, HAVE_LOCALE_H, HAVE_MEMCMP)
15 (HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_SETITIMER)
16 (HAVE_SIZE_T, HAVE_SYS_IOCTL_H, HAVE_SYS_PARAM_H, HAVE_SYS_STAT_H)
17 (HAVE_SYS_TYPES_H, TIME_WITH_SYS_TIME, SYNC_INPUT): Define them.
18 [__MRC__] (HAVE_ALLOCA_H): Likewise.
19 (config_machfile, config_opsysfile, my_strftime): New macros.
20 (HAVE_PWD_H): Move from s-mac.h.
21 (HAVE_ALLOCA, C_ALLOCA): Move from m-mac.h.
22 (PTR): Move to s-mac.h.
23
24 * inc/m-mac.h: (HAVE_ALLOCA, C_ALLOCA): Move to config.h.
25
26 * inc/s-mac.h: Sync with src/s/template.h. Don't include fcntl.h,
27 time.h, or signal.h.
28 (index, rindex): New macros.
29 [__MRC__] (sigmask, __signal_max, NSIG): Adjust signal numbers for
30 compatibility with predefined ones.
31 (PTR): Move from s-mac.h.
32 (HAVE_PWD_H): Move to config.h.
33 (volatile): Remove macro.
34 [__MRC__] (strftime): Likewise.
35 (read_input_waiting, sys_gmtime, sys_localtime, sys_ctime)
36 (sys_time, sys_signal, atof): Remove declarations.
37
38 * inc/sys/time.h (ITIMER_REAL): New macro.
39 (struct itimerval): New struct.
40 (setitimer): New extern.
41
12005-05-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 422005-05-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 43
3 * inc/config.h [HAVE_CARBON]: Define USE_TOOLKIT_SCROLL_BARS. 44 * inc/config.h [HAVE_CARBON] (USE_TOOLKIT_SCROLL_BARS): Define.
4 45
52005-04-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 462005-04-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6 47
@@ -10,7 +51,7 @@
10 51
11 * Emacs.app/Contents/Info.plist: Add NSServices key and data. 52 * Emacs.app/Contents/Info.plist: Add NSServices key and data.
12 53
13 * inc/s-mac.h: Define HAVE_PWD_H. 54 * inc/s-mac.h (HAVE_PWD_H): Define.
14 55
152005-04-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 562005-04-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16 57
diff --git a/mac/inc/config.h b/mac/inc/config.h
index c81db673cca..4ac6a9d61f0 100644
--- a/mac/inc/config.h
+++ b/mac/inc/config.h
@@ -22,388 +22,949 @@ Boston, MA 02111-1307, USA. */
22 22
23/* Contributed by Andrew Choi (akochoi@mac.com). */ 23/* Contributed by Andrew Choi (akochoi@mac.com). */
24 24
25 25/* No code in Emacs #includes config.h twice, but some bits of code
26/* No code in Emacs #includes config.h twice, but some of the code
27 intended to work with other packages as well (like gmalloc.c) 26 intended to work with other packages as well (like gmalloc.c)
28 think they can include it as many times as they like. */ 27 think they can include it as many times as they like. */
29#ifndef EMACS_CONFIG_H 28#ifndef EMACS_CONFIG_H
30#define EMACS_CONFIG_H 29#define EMACS_CONFIG_H
31 30
32/* These are all defined in the top-level Makefile by configure.
33 They're here only for reference. */
34 31
35/* Define GNU_MALLOC if you want to use the GNU memory allocator. */ 32/* Define to 1 if the mktime function is broken. */
36/* #undef GNU_MALLOC */ 33/* #undef BROKEN_MKTIME */
34
35/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
36 systems. This function is required for `alloca.c' support on those systems.
37 */
38/* #undef CRAY_STACKSEG_END */
39
40/* Define to 1 if using `alloca.c'. */
41#ifndef __MRC__ /* CodeWarrior */
42#define C_ALLOCA 1
43#endif
44
45/* Define to 1 if using `getloadavg.c'. */
46/* #undef C_GETLOADAVG */
47
48/* Define C_SWITCH_X_SITE to contain any special flags your compiler
49 may need to deal with X Windows. For instance, if you've defined
50 HAVE_X_WINDOWS above and your X include files aren't in a place
51 that your compiler can find on its own, you might want to add
52 "-I/..." or something similar. */
53/* #undef C_SWITCH_X_SITE */
54
55/* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
56/* #undef DGUX */
37 57
38/* Define if you are using the GNU C Library. */ 58/* Define to 1 if you are using the GNU C Library. */
39/* #undef DOUG_LEA_MALLOC */ 59/* #undef DOUG_LEA_MALLOC */
40 60
41/* Define REL_ALLOC if you want to use the relocating allocator for 61/* Define to the canonical Emacs configuration name. */
42 buffer space. */ 62#ifdef __MRC__
43/* #undef REL_ALLOC */ 63#define EMACS_CONFIGURATION "macos-mpw"
64#else /* Assume CodeWarrior */
65#define EMACS_CONFIGURATION "macos-cw"
66#endif
44 67
45/* Define HAVE_X_WINDOWS if you want to use the X window system. */ 68/* Define to the options passed to configure. */
46/* #undef HAVE_X_WINDOWS */ 69#define EMACS_CONFIG_OPTIONS ""
47 70
48/* Define HAVE_X11 if you want to use version 11 of X windows. 71/* Define to 1 if the `getpgrp' function requires zero arguments. */
49 Otherwise, Emacs expects to use version 10. */ 72/* #undef GETPGRP_VOID */
50/* #undef HAVE_X11 */
51 73
52/* Define if using an X toolkit. */ 74/* Define to 1 if gettimeofday accepts only one argument. */
53/* #undef USE_X_TOOLKIT */ 75#define GETTIMEOFDAY_ONE_ARGUMENT 1
54 76
55/* Define this if you're using XFree386. */ 77/* Define to 1 if you want to use the GNU memory allocator. */
56/* #undef HAVE_XFREE386 */ 78/* #undef GNU_MALLOC */
57 79
58/* Define this if you have Motif 2.1 or newer. */ 80/* Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists. */
59/* #undef HAVE_MOTIF_2_1 */ 81/* #undef HAVE_AIX_SMT_EXP */
60 82
61/* Define HAVE_MENUS if you have mouse menus. 83/* Define to 1 if you have the `alarm' function. */
62 (This is automatic if you use X, but the option to specify it remains.) 84/* #undef HAVE_ALARM */
63 It is also defined with other window systems that support xmenu.c. */
64#define HAVE_MENUS 1
65 85
66/* Define if we have the X11R6 or newer version of Xt. */ 86/* Define to 1 if you have `alloca', as a function or macro. */
67/* #undef HAVE_X11XTR6 */ 87#ifdef __MRC__
88#define HAVE_ALLOCA 1
89#endif
68 90
69/* Define if we have the X11R6 or newer version of Xlib. */ 91/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
70/* #undef HAVE_X11R6 */ 92 */
93#ifdef __MRC__
94#define HAVE_ALLOCA_H 1
95#endif
71 96
72/* Define if we have the X11R5 or newer version of Xlib. */ 97/* Define to 1 if you have the `bcmp' function. */
73/* #undef HAVE_X11R5 */ 98/* #define HAVE_BCMP */
74 99
75/* Define if we have the XPM libary. */ 100/* Define to 1 if you have the `bcopy' function. */
76/* #undef HAVE_XPM */ 101/* #define HAVE_BCOPY */
77 102
78/* Define if we have the PNG library. */ 103/* Define to 1 if you have the `bzero' function. */
79/* #undef HAVE_PNG */ 104/* #define HAVE_BZERO */
80 105
81/* Define if we have the JPEG library. */ 106/* Define to 1 if you are using the Carbon API on Mac OS X. */
82/* #undef HAVE_JPEG */ 107/* #undef HAVE_CARBON */
83 108
84/* Define if we have the TIFF library. */ 109/* Define to 1 if you have the `cbrt' function. */
85/* #undef HAVE_TIFF */ 110/* #undef HAVE_CBRT */
111
112/* Define to 1 if you have the `closedir' function. */
113#define HAVE_CLOSEDIR 1
114
115/* Define to 1 if you have the <coff.h> header file. */
116/* #undef HAVE_COFF_H */
117
118/* Define to 1 if you have the <com_err.h> header file. */
119/* #undef HAVE_COM_ERR_H */
120
121/* Define to 1 if you have /usr/lib/crti.o. */
122/* #undef HAVE_CRTIN */
86 123
87/* Define if we have the GIF library. */ 124/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
125 don't. */
126/* #undef HAVE_DECL_SYS_SIGLIST */
127
128/* Define to 1 if you have the declaration of `__sys_siglist', and to 0 if you
129 don't. */
130/* #undef HAVE_DECL___SYS_SIGLIST */
131
132/* Define to 1 if you have the <des.h> header file. */
133/* #undef HAVE_DES_H */
134
135/* Define to 1 if dynamic ptys are supported. */
136/* #undef HAVE_DEV_PTMX */
137
138/* Define to 1 if you have the `difftime' function. */
139#define HAVE_DIFFTIME 1
140
141/* Define to 1 if you have the `dup2' function. */
142/* #undef HAVE_DUP2 */
143
144/* Define to 1 if you have the `euidaccess' function. */
145/* #undef HAVE_EUIDACCESS */
146
147/* Define to 1 if you have the <fcntl.h> header file. */
148#define HAVE_FCNTL_H 1
149
150/* Define to 1 if you have the `fmod' function. */
151#define HAVE_FMOD 1
152
153/* Define to 1 if you have the `fork' function. */
154/* #undef HAVE_FORK */
155
156/* Define to 1 if you have the `fpathconf' function. */
157/* #undef HAVE_FPATHCONF */
158
159/* Define to 1 if you have the `frexp' function. */
160#define HAVE_FREXP 1
161
162/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
163/* #undef HAVE_FSEEKO */
164
165/* Define to 1 if you have the `fsync' function. */
166/* #undef HAVE_FSYNC */
167
168/* Define to 1 if you have the `ftime' function. */
169/* #undef HAVE_FTIME */
170
171/* Define to 1 if you have the `gai_strerror' function. */
172/* #undef HAVE_GAI_STRERROR */
173
174/* Define to 1 if you have the `gdk_display_open' function. */
175/* #undef HAVE_GDK_DISPLAY_OPEN */
176
177/* Define to 1 if you have the `getaddrinfo' function. */
178/* #undef HAVE_GETADDRINFO */
179
180/* Define to 1 if you have the `getcwd' function. */
181/* #undef HAVE_GETCWD */
182
183/* Define to 1 if you have the `getdelim' function. */
184/* #undef HAVE_GETDELIM */
185
186/* Define to 1 if you have the `getdomainname' function. */
187/* #undef HAVE_GETDOMAINNAME */
188
189/* Define to 1 if you have the `gethostname' function. */
190/* #undef HAVE_GETHOSTNAME */
191
192/* Define to 1 if you have the `getline' function. */
193/* #undef HAVE_GETLINE */
194
195/* Define to 1 if you have the `getloadavg' function. */
196/* #undef HAVE_GETLOADAVG */
197
198/* Define to 1 if you have the `getpagesize' function. */
199/* #undef HAVE_GETPAGESIZE */
200
201/* Define to 1 if you have the `getpeername' function. */
202/* #undef HAVE_GETPEERNAME */
203
204/* Define to 1 if you have the `getpt' function. */
205/* #undef HAVE_GETPT */
206
207/* Define to 1 if you have the `getrusage' function. */
208/* #undef HAVE_GETRUSAGE */
209
210/* Define to 1 if you have the `getsockname' function. */
211/* #undef HAVE_GETSOCKNAME */
212
213/* Define to 1 if you have the `getsockopt' function. */
214/* #undef HAVE_GETSOCKOPT */
215
216/* Define to 1 if you have the `gettimeofday' function. */
217#define HAVE_GETTIMEOFDAY 1
218
219/* Define to 1 if you have the `getwd' function. */
220#define HAVE_GETWD 1
221
222/* Define to 1 if you have the ungif library (-lungif). */
88/* #undef HAVE_GIF */ 223/* #undef HAVE_GIF */
89 224
90/* Define if libXaw3d is available. */ 225/* Define to 1 if you have the `grantpt' function. */
91/* #undef HAVE_XAW3D */ 226/* #undef HAVE_GRANTPT */
92 227
93/* Define if we should use toolkit scroll bars. */ 228/* Define to 1 if using GTK. */
94#ifdef HAVE_CARBON 229/* #undef HAVE_GTK */
95#define USE_TOOLKIT_SCROLL_BARS 1
96#endif
97 230
98/* Define if we should use XIM, if it is available. */ 231/* Define to 1 if you have GTK and pthread (-lpthread). */
99/* #undef USE_XIM */ 232/* #undef HAVE_GTK_AND_PTHREAD */
233
234/* Define to 1 if GTK has both file selection and chooser dialog. */
235/* #undef HAVE_GTK_FILE_BOTH */
236
237/* Define to 1 if you have the `gtk_file_chooser_dialog_new' function. */
238/* #undef HAVE_GTK_FILE_CHOOSER_DIALOG_NEW */
239
240/* Define to 1 if you have the `gtk_file_selection_new' function. */
241/* #undef HAVE_GTK_FILE_SELECTION_NEW */
100 242
101/* Define if netdb.h declares h_errno. */ 243/* Define to 1 if GTK can handle more than one display. */
244/* #undef HAVE_GTK_MULTIDISPLAY */
245
246/* Define to 1 if netdb.h declares h_errno. */
102/* #undef HAVE_H_ERRNO */ 247/* #undef HAVE_H_ERRNO */
103 248
104/* If we're using any sort of window system, define some consequences. */ 249/* Define to 1 if you have the `index' function. */
105#ifdef HAVE_X_WINDOWS 250/* #undef HAVE_INDEX */
106#define HAVE_WINDOW_SYSTEM
107#define MULTI_KBOARD
108#define HAVE_MOUSE
109#endif
110 251
111/* Define for MacOS */ 252/* Define to 1 if you have inet sockets. */
112#define HAVE_WINDOW_SYSTEM 1 253/* #undef HAVE_INET_SOCKETS */
113#define HAVE_MOUSE 1
114 254
115/* Define USER_FULL_NAME to return a string 255/* Define to 1 if you have the <inttypes.h> header file. */
116 that is the user's full name. 256/* #undef HAVE_INTTYPES_H */
117 It can assume that the variable `pw'
118 points to the password file entry for this user.
119 257
120 At some sites, the pw_gecos field contains 258/* Define to 1 if you have the jpeg library (-ljpeg). */
121 the user's full name. If neither this nor any other 259/* #undef HAVE_JPEG */
122 field contains the right thing, use pw_name,
123 giving the user's login name, since that is better than nothing. */
124#define USER_FULL_NAME pw->pw_name
125 260
126/* Define AMPERSAND_FULL_NAME if you use the convention 261/* Define to 1 if you have the <kerberosIV/des.h> header file. */
127 that & in the full name stands for the login id. */ 262/* #undef HAVE_KERBEROSIV_DES_H */
128/* Turned on June 1996 supposing nobody will mind it. */
129/* #undef AMPERSAND_FULL_NAME */
130 263
131/* Things set by --with options in the configure script. */ 264/* Define to 1 if you have the <kerberosIV/krb.h> header file. */
265/* #undef HAVE_KERBEROSIV_KRB_H */
132 266
133/* Define to support POP mail retrieval. */ 267/* Define to 1 if you have the <kerberos/des.h> header file. */
134/* #undef MAIL_USE_POP 1 */ 268/* #undef HAVE_KERBEROS_DES_H */
135 269
136/* Define to support Kerberos-authenticated POP mail retrieval. */ 270/* Define to 1 if you have the <kerberos/krb.h> header file. */
137/* #undef KERBEROS */ 271/* #undef HAVE_KERBEROS_KRB_H */
138/* Define to use Kerberos 5 instead of Kerberos 4 */
139/* #undef KERBEROS5 */
140/* Define to support GSS-API in addition to (or instead of) Kerberos */
141/* #undef GSSAPI */
142 272
143/* Define to support using a Hesiod database to find the POP server. */ 273/* Define to 1 if you have the <krb5.h> header file. */
144/* #undef HESIOD */ 274/* #undef HAVE_KRB5_H */
145 275
146/* Header for Voxware or PCM sound card driver. */ 276/* Define to 1 if you have the <krb.h> header file. */
147/* #undef HAVE_MACHINE_SOUNDCARD_H */ 277/* #undef HAVE_KRB_H */
148/* #undef HAVE_SYS_SOUNDCARD_H */
149/* #undef HAVE_SOUNDCARD_H */
150 278
151/* Define HAVE_SOUND if we have sound support. We know it works 279/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
152 and compiles only on the specified platforms. For others, 280/* #undef HAVE_LANGINFO_CODESET */
153 it probably doesn't make sense to try. */
154 281
155#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__ 282/* Define to 1 if you have the `com_err' library (-lcom_err). */
156#ifdef HAVE_MACHINE_SOUNDCARD_H 283/* #undef HAVE_LIBCOM_ERR */
157#define HAVE_SOUND 1
158#endif
159#ifdef HAVE_SYS_SOUNDCARD_H
160#define HAVE_SOUND 1
161#endif
162#ifdef HAVE_SOUNDCARD_H
163#define HAVE_SOUND 1
164#endif
165#endif /* __FreeBSD__ || __NetBSD__ || __linux__ */
166 284
167/* Some things figured out by the configure script, grouped as they are in 285/* Define to 1 if you have the `crypto' library (-lcrypto). */
168 configure.in. */ 286/* #undef HAVE_LIBCRYPTO */
169#ifndef _ALL_SOURCE /* suppress warning if this is pre-defined */
170/* #undef _ALL_SOURCE */
171#endif
172 287
173/* #undef HAVE_SYS_SELECT_H */ 288/* Define to 1 if you have the `des' library (-ldes). */
174/* #undef HAVE_SYS_TIMEB_H */ 289/* #undef HAVE_LIBDES */
175#define HAVE_SYS_TIME_H 1
176 290
177#ifdef __MRC__ 291/* Define to 1 if you have the `des425' library (-ldes425). */
178#undef HAVE_UNISTD_H 292/* #undef HAVE_LIBDES425 */
179#else /* CodeWarrior */
180#define HAVE_UNISTD_H 1
181#endif
182 293
183#define HAVE_UTIME_H 1 294/* Define to 1 if you have the `dgc' library (-ldgc). */
184/* #undef HAVE_LINUX_VERSION_H */ 295/* #undef HAVE_LIBDGC */
185/* #undef HAVE_SYS_SYSTEMINFO_H */
186/* #undef HAVE_TERMIOS_H */
187#define HAVE_LIMITS_H 1
188#define HAVE_STRING_H 1
189#define HAVE_STDLIB_H 1
190/* #undef HAVE_TERMCAP_H */
191/* #undef HAVE_TERM_H */
192/* #undef HAVE_STDIO_EXT_H */
193/* #undef STDC_HEADERS */
194/* #undef TIME_WITH_SYS_TIME */
195/* #undef HAVE_VFORK_H */
196#define HAVE_FCNTL_H 1
197/* #undef HAVE_SETITIMER */
198/* #undef HAVE_UALARM */
199/* #undef HAVE_SYS_WAIT_H */
200 296
297/* Define to 1 if you have the `dnet' library (-ldnet). */
201/* #undef HAVE_LIBDNET */ 298/* #undef HAVE_LIBDNET */
202/* #undef HAVE_LIBPTHREADS */ 299
203/* #undef HAVE_LIBRESOLV */ 300/* Define to 1 if you have the hesiod library (-lhesiod). */
204/* #undef HAVE_LIBXMU */ 301/* #undef HAVE_LIBHESIOD */
205/* #undef HAVE_LIBNCURSES */ 302
303/* Define to 1 if you have the `intl' library (-lintl). */
206/* #undef HAVE_LIBINTL */ 304/* #undef HAVE_LIBINTL */
207/* #undef HAVE_LIBXP */
208 305
209/* movemail Kerberos support */ 306/* Define to 1 if you have the `k5crypto' library (-lk5crypto). */
210/* libraries */ 307/* #undef HAVE_LIBK5CRYPTO */
308
309/* Define to 1 if you have the `krb' library (-lkrb). */
211/* #undef HAVE_LIBKRB */ 310/* #undef HAVE_LIBKRB */
311
312/* Define to 1 if you have the `krb4' library (-lkrb4). */
212/* #undef HAVE_LIBKRB4 */ 313/* #undef HAVE_LIBKRB4 */
213/* #undef HAVE_LIBDES */ 314
214/* #undef HAVE_LIBDES425 */ 315/* Define to 1 if you have the `krb5' library (-lkrb5). */
215/* #undef HAVE_LIBKRB5 */ 316/* #undef HAVE_LIBKRB5 */
216/* #undef HAVE_LIBCRYPTO */
217/* #undef HAVE_LIBCOM_ERR */
218/* header files */
219/* #undef HAVE_KRB5_H */
220/* #undef HAVE_DES_H */
221/* #undef HAVE_KRB_H */
222/* #undef HAVE_KERBEROSIV_DES_H */
223/* #undef HAVE_KERBEROSIV_KRB_H */
224/* #undef HAVE_KERBEROS_DES_H */
225/* #undef HAVE_KERBEROS_KRB_H */
226/* #undef HAVE_COM_ERR_H */
227 317
228/* GSS-API libraries and headers */ 318/* Define to 1 if you have the `kstat' library (-lkstat). */
229/* #undef HAVE_LIBGSSAPI_KRB5 */ 319/* #undef HAVE_LIBKSTAT */
230/* #undef HAVE_LIBGSSAPI */ 320
231/* #undef HAVE_GSSAPI_H */ 321/* Define to 1 if you have the `lockfile' library (-llockfile). */
322/* #undef HAVE_LIBLOCKFILE */
232 323
233/* Mail-file locking */ 324/* Define to 1 if you have the `m' library (-lm). */
325/* #undef HAVE_LIBM */
326
327/* Define to 1 if you have the `mail' library (-lmail). */
234/* #undef HAVE_LIBMAIL */ 328/* #undef HAVE_LIBMAIL */
235/* #undef HAVE_MAILLOCK_H */
236/* #undef HAVE_TOUCHLOCK */
237 329
238/* #undef HAVE_ALLOCA_H */ 330/* Define to 1 if you have the `ncurses' library (-lncurses). */
331/* #undef HAVE_LIBNCURSES */
239 332
240/* #undef HAVE_DEV_PTMX */ 333/* Define to 1 if you have the <libpng/png.h> header file. */
334/* #undef HAVE_LIBPNG_PNG_H */
241 335
242#define HAVE_GETTIMEOFDAY 1 336/* Define to 1 if you have the `pthreads' library (-lpthreads). */
243/* If we don't have gettimeofday, 337/* #undef HAVE_LIBPTHREADS */
244 the test for GETTIMEOFDAY_ONE_ARGUMENT may succeed,
245 but we should ignore it. */
246#ifdef HAVE_GETTIMEOFDAY
247#define GETTIMEOFDAY_ONE_ARGUMENT 1
248#endif
249/* #undef HAVE_GETHOSTNAME */
250/* #undef HAVE_GETDOMAINNAME */
251/* #undef HAVE_DUP2 */
252#define HAVE_RENAME 1
253#define HAVE_CLOSEDIR 1
254 338
255/* #undef TM_IN_SYS_TIME */ 339/* Define to 1 if you have the resolv library (-lresolv). */
256/* #undef HAVE_TM_ZONE */ 340/* #undef HAVE_LIBRESOLV */
257/* #undef HAVE_TZNAME */
258/* #undef HAVE_TM_GMTOFF */
259 341
260/* #undef const */ 342/* Define to 1 if you have the `Xext' library (-lXext). */
343/* #undef HAVE_LIBXEXT */
261 344
345/* Define to 1 if you have the `Xmu' library (-lXmu). */
346/* #undef HAVE_LIBXMU */
347
348/* Define to 1 if you have the Xp library (-lXp). */
349/* #undef HAVE_LIBXP */
350
351/* Define to 1 if you have the <limits.h> header file. */
352#define HAVE_LIMITS_H 1
353
354/* Define to 1 if you have the <linux/version.h> header file. */
355/* #undef HAVE_LINUX_VERSION_H */
356
357/* Define to 1 if you have the <locale.h> header file. */
358#define HAVE_LOCALE_H 1
359
360/* Define to 1 if you have the `logb' function. */
361#define HAVE_LOGB 1
362
363/* Define to 1 if you support file names longer than 14 characters. */
262/* #undef HAVE_LONG_FILE_NAMES */ 364/* #undef HAVE_LONG_FILE_NAMES */
263 365
264/* #undef CRAY_STACKSEG_END */ 366/* Define to 1 if you have the `lrand48' function. */
367/* #undef HAVE_LRAND48 */
265 368
266/* #undef UNEXEC_SRC */ 369/* Define to 1 if you have the <machine/soundcard.h> header file. */
370/* #undef HAVE_MACHINE_SOUNDCARD_H */
267 371
268/* #undef HAVE_LIBXBSD */ 372/* Define to 1 if you have the <mach/mach.h> header file. */
269/* #undef HAVE_XRMSETDATABASE */ 373/* #undef HAVE_MACH_MACH_H */
270/* #undef HAVE_XSCREENRESOURCESTRING */ 374
271/* #undef HAVE_XSCREENNUMBEROFSCREEN */ 375/* Define to 1 if you have the <maillock.h> header file. */
272/* #undef HAVE_XSETWMPROTOCOLS */ 376/* #undef HAVE_MAILLOCK_H */
273 377
378/* Define to 1 if you have the <malloc/malloc.h> header file. */
379/* #undef HAVE_MALLOC_MALLOC_H */
380
381/* Define to 1 if you have the `mblen' function. */
382/* #undef HAVE_MBLEN */
383
384/* Define to 1 if you have the `mbrlen' function. */
385/* #undef HAVE_MBRLEN */
386
387/* Define to 1 if you have the `mbsinit' function. */
388/* #undef HAVE_MBSINIT */
389
390/* Define to 1 if <wchar.h> declares mbstate_t. */
391/* #undef HAVE_MBSTATE_T */
392
393/* Define to 1 if you have the `memcmp' function. */
394#define HAVE_MEMCMP 1
395
396/* Define to 1 if you have the `memcpy' function. */
397#define HAVE_MEMCPY 1
398
399/* Define to 1 if you have the `memmove' function. */
400#define HAVE_MEMMOVE 1
401
402/* Define to 1 if you have the <memory.h> header file. */
403/* #undef HAVE_MEMORY_H */
404
405/* Define to 1 if you have the `mempcpy' function. */
406/* #undef HAVE_MEMPCPY */
407
408/* Define to 1 if you have the `memset' function. */
409#define HAVE_MEMSET 1
410
411/* Define to 1 if you have mouse menus. (This is automatic if you use X, but
412 the option to specify it remains.) It is also defined with other window
413 systems that support xmenu.c. */
414#define HAVE_MENUS 1
415
416/* Define to 1 if you have the `mkdir' function. */
274#define HAVE_MKDIR 1 417#define HAVE_MKDIR 1
275#define HAVE_RMDIR 1 418
276/* #undef HAVE_SYSINFO */ 419/* Define to 1 if you have the `mkstemp' function. */
420/* #undef HAVE_MKSTEMP */
421
422/* Define to 1 if you have the `mktime' function. */
423/* #undef HAVE_MKTIME */
424
425/* Define to 1 if you have a working `mmap' system call. */
426/* #undef HAVE_MMAP */
427
428/* Define to 1 if you have Motif 2.1 or newer. */
429/* #undef HAVE_MOTIF_2_1 */
430
431/* Define to 1 if you have the `mremap' function. */
432/* #undef HAVE_MREMAP */
433
434/* Define to 1 if you have the <net/if.h> header file. */
435/* #define HAVE_NET_IF_H */
436
437/* Define to 1 if you have the <nlist.h> header file. */
438/* #undef HAVE_NLIST_H */
439
440/* Define to 1 if personality LINUX32 can be set. */
441/* #undef HAVE_PERSONALITY_LINUX32 */
442
443/* Define to 1 if you have the png library (-lpng). */
444/* #undef HAVE_PNG */
445
446/* Define to 1 if you have the <png.h> header file. */
447/* #undef HAVE_PNG_H */
448
449/* Define to 1 if you have the `posix_memalign' function. */
450/* #undef HAVE_POSIX_MEMALIGN */
451
452/* Define to 1 if you have the `pstat_getdynamic' function. */
453/* #undef HAVE_PSTAT_GETDYNAMIC */
454
455/* Define to 1 if you have the <pthread.h> header file. */
456/* #undef HAVE_PTHREAD_H */
457
458/* Define to 1 if you have the <pty.h> header file. */
459/* #undef HAVE_PTY_H */
460
461/* Define to 1 if you have the <pwd.h> header file. */
462#define HAVE_PWD_H 1
463
464/* Define to 1 if you have the `random' function. */
277/* #undef HAVE_RANDOM */ 465/* #undef HAVE_RANDOM */
278/* #undef HAVE_LRAND48 */
279/* #undef HAVE_BCOPY */
280/* #undef HAVE_BCMP */
281#define HAVE_LOGB 1
282#define HAVE_FREXP 1
283#define HAVE_FMOD 1
284 466
467/* Define to 1 if you have the `recvfrom' function. */
468/* #undef HAVE_RECVFROM */
469
470/* Define to 1 if you have the `rename' function. */
471#define HAVE_RENAME 1
472
473/* Define to 1 if you have the `res_init' function. */
474/* #undef HAVE_RES_INIT */
475
476/* Define to 1 if you have the `rindex' function. */
477/* #undef HAVE_RINDEX */
478
479/* Define to 1 if you have the `rint' function. */
285#ifdef __MRC__ 480#ifdef __MRC__
286#undef HAVE_RINT 481#undef HAVE_RINT
287#else /* CodeWarrior */ 482#else /* CodeWarrior */
288#define HAVE_RINT 483#define HAVE_RINT
289#endif 484#endif
290 485
291/* #undef HAVE_CBRT */ 486/* Define to 1 if you have the `rmdir' function. */
292/* #undef HAVE_FTIME */ 487#define HAVE_RMDIR 1
293/* #undef HAVE_RES_INIT */ /* For -lresolv on Suns. */ 488
294/* #undef HAVE_SETSID */ 489/* Define to 1 if you have the `select' function. */
295/* #undef HAVE_FPATHCONF */
296#define HAVE_SELECT 1 490#define HAVE_SELECT 1
297/* #undef HAVE_MKTIME */ 491
298/* #undef BROKEN_MKTIME */ /* have mktime but it's broken */ 492/* Define to 1 if you have the `sendto' function. */
299/* #undef HAVE_EUIDACCESS */ 493/* #undef HAVE_SENDTO */
300/* #undef HAVE_GETPAGESIZE */ 494
301/* #undef HAVE_TZSET */ 495/* Define to 1 if you have the `setitimer' function. */
496#define HAVE_SETITIMER 1
497
498/* Define to 1 if you have the `setlocale' function. */
302#define HAVE_SETLOCALE 1 499#define HAVE_SETLOCALE 1
303/* #undef HAVE_UTIMES */ 500
304/* #undef HAVE_SETRLIMIT */ 501/* Define to 1 if you have the `setpgid' function. */
305/* #undef HAVE_SETPGID */ 502/* #undef HAVE_SETPGID */
306/* #undef HAVE_GETCWD */ 503
307#define HAVE_GETWD 1 504/* Define to 1 if you have the `setrlimit' function. */
505/* #undef HAVE_SETRLIMIT */
506
507/* Define to 1 if you have the `setsid' function. */
508/* #undef HAVE_SETSID */
509
510/* Define to 1 if you have the `setsockopt' function. */
511/* #undefine HAVE_SETSOCKOPT */
512
513/* Define to 1 if you have the `shutdown' function. */
308/* #undef HAVE_SHUTDOWN */ 514/* #undef HAVE_SHUTDOWN */
515
516/* Define to 1 if the system has the type `size_t'. */
517#define HAVE_SIZE_T 1
518
519/* Define to 1 if you have the <soundcard.h> header file. */
520/* #undef HAVE_SOUNDCARD_H */
521
522/* Define to 1 if `speed_t' is declared by <termios.h>. */
523/* #undef HAVE_SPEED_T */
524
525/* Define to 1 if you have the <stdint.h> header file. */
526/* #undef HAVE_STDINT_H */
527
528/* Define to 1 if you have the <stdio_ext.h> header file. */
529/* #undef HAVE_STDIO_EXT_H */
530
531/* Define to 1 if you have the <stdlib.h> header file. */
532#define HAVE_STDLIB_H 1
533
534/* Define to 1 if you have the `strerror' function. */
535#define HAVE_STRERROR 1
536
537/* Define to 1 if you have the `strftime' function. */
538#ifndef __MRC__ /* CodeWarrior */
309#define HAVE_STRFTIME 1 539#define HAVE_STRFTIME 1
310/* #undef HAVE_GETADDRINFO */ 540#endif
311/* #undef HAVE___FPENDING */ 541
312/* #undef HAVE_FTELLO */ 542/* Define to 1 if you have the <strings.h> header file. */
313/* #undef HAVE_GETLOADAVG */ 543/* #undef HAVE_STRINGS_H */
314/* #undef NLIST_STRUCT */ 544
315/* #undef NLIST_NAME_UNION */ 545/* Define to 1 if you have the <string.h> header file. */
316/* #undef HAVE_MBLEN */ 546#define HAVE_STRING_H 1
317/* #undef HAVE_MBRLEN */ 547
548/* Define to 1 if you have the `strsignal' function. */
318/* #undef HAVE_STRSIGNAL */ 549/* #undef HAVE_STRSIGNAL */
319/* #undef HAVE_GRANTPT */
320/* #undef HAVE_GETPT */
321/* #undef HAVE_SPEED_T */ /* speed_t typedef in termios.h */
322/* #undef HAVE_STRUCT_TIMEZONE */
323 550
324/* #undef LOCALTIME_CACHE */ 551/* Define to 1 if `ifr_addr' is member of `struct ifreq'. */
325/* #undef HAVE_INET_SOCKETS */ 552/* #undef HAVE_STRUCT_IFREQ_IFR_ADDR */
326 553
327/* #undef HAVE_AIX_SMT_EXP */ 554/* Define to 1 if `ifr_broadaddr' is member of `struct ifreq'. */
555/* #undef HAVE_STRUCT_IFREQ_IFR_BROADADDR */
328 556
329/* #undef vfork */ 557/* Define to 1 if `ifr_flags' is member of `struct ifreq'. */
558/* #undef HAVE_STRUCT_IFREQ_IFR_FLAGS */
330 559
331/* Define if you have the ANSI `strerror' function. 560/* Define to 1 if `ifr_hwaddr' is member of `struct ifreq'. */
332 Otherwise you must have the variable `char *sys_errlist[]'. */ 561/* #undef HAVE_STRUCT_IFREQ_IFR_HWADDR */
333#define HAVE_STRERROR 1 562
563/* Define to 1 if `ifr_netmask' is member of `struct ifreq'. */
564/* #undef HAVE_STRUCT_IFREQ_IFR_NETMASK */
565
566/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */
567/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */
334 568
335/* Define if `sys_siglist' is declared by <signal.h>. */ 569/* Define to 1 if `tm_zone' is member of `struct tm'. */
336/* #undef SYS_SIGLIST_DECLARED */ 570/* #undef HAVE_STRUCT_TM_TM_ZONE */
337 571
338/* Define if `struct utimbuf' is declared by <utime.h>. */ 572/* Define to 1 if `struct utimbuf' is declared by <utime.h>. */
339#define HAVE_STRUCT_UTIMBUF 1 573#define HAVE_STRUCT_UTIMBUF 1
340 574
341/* Define if `struct timeval' is declared by <sys/time.h>. */ 575/* Define to 1 if you have the `sysinfo' function. */
576/* #undef HAVE_SYSINFO */
577
578/* Define to 1 if you have the <sys/ioctl.h> header file. */
579#define HAVE_SYS_IOCTL_H 1
580
581/* Define to 1 if you have the <sys/mman.h> header file. */
582/* #undef HAVE_SYS_MMAN_H */
583
584/* Define to 1 if you have the <sys/param.h> header file. */
585#define HAVE_SYS_PARAM_H 1
586
587/* Define to 1 if you have the <sys/resource.h> header file. */
588/* #undefine HAVE_SYS_RESOURCE_H */
589
590/* Define to 1 if you have the <sys/select.h> header file. */
591/* #undef HAVE_SYS_SELECT_H */
592
593/* Define to 1 if you have the <sys/socket.h> header file. */
594/* #undef HAVE_SYS_SOCKET_H */
595
596/* Define to 1 if you have the <sys/soundcard.h> header file. */
597/* #undef HAVE_SYS_SOUNDCARD_H */
598
599/* Define to 1 if you have the <sys/stat.h> header file. */
600#define HAVE_SYS_STAT_H 1
601
602/* Define to 1 if you have the <sys/systeminfo.h> header file. */
603/* #undef HAVE_SYS_SYSTEMINFO_H */
604
605/* Define to 1 if you have the <sys/timeb.h> header file. */
606/* #undef HAVE_SYS_TIMEB_H */
607
608/* Define to 1 if you have the <sys/time.h> header file. */
609#define HAVE_SYS_TIME_H 1
610
611/* Define to 1 if you have the <sys/types.h> header file. */
612#define HAVE_SYS_TYPES_H 1
613
614/* Define to 1 if you have the <sys/un.h> header file. */
615/* #undef HAVE_SYS_UN_H */
616
617/* Define to 1 if you have the <sys/utsname.h> header file. */
618/* #undef HAVE_SYS_UTSNAME_H */
619
620/* Define to 1 if you have the <sys/vlimit.h> header file. */
621/* #undef HAVE_SYS_VLIMIT_H */
622
623/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
624/* #undef HAVE_SYS_WAIT_H */
625
626/* Define to 1 if you have the <sys/_mbstate_t.h> header file. */
627/* #undef HAVE_SYS__MBSTATE_T_H */
628
629/* Define to 1 if you have the <termcap.h> header file. */
630/* #undef HAVE_TERMCAP_H */
631
632/* Define to 1 if you have the <termios.h> header file. */
633/* #undef HAVE_TERMIOS_H */
634
635/* Define to 1 if you have the <term.h> header file. */
636/* #undef HAVE_TERM_H */
637
638/* Define to 1 if you have the tiff library (-ltiff). */
639/* #undef HAVE_TIFF */
640
641/* Define to 1 if `struct timeval' is declared by <sys/time.h>. */
342#define HAVE_TIMEVAL 1 642#define HAVE_TIMEVAL 1
343 643
344/* If using GNU, then support inline function declarations. */ 644/* Define to 1 if `tm_gmtoff' is member of `struct tm'. */
345/* Don't try to switch on inline handling as detected by AC_C_INLINE 645/* #undef HAVE_TM_GMTOFF */
346 generally, because even if non-gcc compilers accept `inline', they 646
347 may reject `extern inline'. */ 647/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
348#ifdef __GNUC__ 648 `HAVE_STRUCT_TM_TM_ZONE' instead. */
349#define INLINE __inline__ 649/* #undef HAVE_TM_ZONE */
350#else 650
351#define INLINE 651/* Define to 1 if you have the `touchlock' function. */
652/* #undef HAVE_TOUCHLOCK */
653
654/* Define to 1 if you don't have `tm_zone' but do have the external array
655 `tzname'. */
656/* #undef HAVE_TZNAME */
657
658/* Define to 1 if you have the `tzset' function. */
659/* #undef HAVE_TZSET */
660
661/* Define to 1 if you have the `ualarm' function. */
662/* #undef HAVE_UALARM */
663
664/* Define to 1 if you have the <unistd.h> header file. */
665#ifdef __MRC__
666#undef HAVE_UNISTD_H
667#else /* CodeWarrior */
668#define HAVE_UNISTD_H 1
352#endif 669#endif
353 670
354/* Define this if you don't have struct exception in math.h. */ 671/* Define to 1 if you have the `utimes' function. */
672/* #undef HAVE_UTIMES */
673
674/* Define to 1 if you have the <utime.h> header file. */
675#define HAVE_UTIME_H 1
676
677/* Define to 1 if you have the `vfork' function. */
678/* #undef HAVE_VFORK */
679
680/* Define to 1 if you have the <vfork.h> header file. */
681/* #undef HAVE_VFORK_H */
682
683/* Define to 1 if `fork' works. */
684/* #undef HAVE_WORKING_FORK */
685
686/* Define to 1 if `vfork' works. */
687/* #undef HAVE_WORKING_VFORK */
688
689/* Define to 1 if you want to use version 11 of X windows. Otherwise, Emacs
690 expects to use version 10. */
691/* #undef HAVE_X11 */
692
693/* Define to 1 if you have the X11R5 or newer version of Xlib. */
694/* #undef HAVE_X11R5 */
695
696/* Define to 1 if you have the X11R6 or newer version of Xlib. */
697/* #undef HAVE_X11R6 */
698
699/* Define to 1 if you have the X11R6 or newer version of Xt. */
700/* #undef HAVE_X11XTR6 */
701
702/* Define to 1 if you have the Xaw3d library (-lXaw3d). */
703/* #undef HAVE_XAW3D */
704
705/* Define to 1 if you're using XFree386. */
706/* #undef HAVE_XFREE386 */
707
708/* Define to 1 if XIM is available */
709/* #undef HAVE_XIM */
710
711/* Define to 1 if you have the XkbGetKeyboard function. */
712/* #undef HAVE_XKBGETKEYBOARD */
713
714/* Define to 1 if you have the Xpm libary (-lXpm). */
715/* #undef HAVE_XPM */
716
717/* Define to 1 if you have the `XrmSetDatabase' function. */
718/* #undef HAVE_XRMSETDATABASE */
719
720/* Define to 1 if you have the `XScreenNumberOfScreen' function. */
721/* #undef HAVE_XSCREENNUMBEROFSCREEN */
722
723/* Define to 1 if you have the `XScreenResourceString' function. */
724/* #undef HAVE_XSCREENRESOURCESTRING */
725
726/* Define to 1 if you have the `XSetWMProtocols' function. */
727/* #undef HAVE_XSETWMPROTOCOLS */
728
729/* Define to 1 if you have the SM library (-lSM). */
730/* #undef HAVE_X_SM */
731
732/* Define to 1 if you want to use the X window system. */
733/* #undef HAVE_X_WINDOWS */
734
735/* Define to 1 if you have the `__fpending' function. */
736/* #undef HAVE___FPENDING */
737
738/* Define to support using a Hesiod database to find the POP server. */
739/* #undef HESIOD */
740
741/* Define to support Kerberos-authenticated POP mail retrieval. */
742/* #undef KERBEROS */
743
744/* Define to use Kerberos 5 instead of Kerberos 4. */
745/* #undef KERBEROS5 */
746
747/* Define LD_SWITCH_X_SITE to contain any special flags your loader may need
748 to deal with X Windows. For instance, if you've defined HAVE_X_WINDOWS
749 above and your X libraries aren't in a place that your loader can find on
750 its own, you might want to add "-L/..." or something similar. */
751/* #undef LD_SWITCH_X_SITE */
752
753/* Define LD_SWITCH_X_SITE_AUX with an -R option in case it's needed (for
754 Solaris, for example). */
755/* #undef LD_SWITCH_X_SITE_AUX */
756
757/* Define to 1 if localtime caches TZ. */
758/* #undef LOCALTIME_CACHE */
759
760/* Define to support POP mail retrieval. */
761/* #undef MAIL_USE_POP 1 */
762
763/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend
764 on `HAVE_STRUCT_NLIST_N_UN_N_NAME */
765/* #undef NLIST_NAME_UNION */
766
767/* Define to 1 if you don't have struct exception in math.h. */
355/* #undef NO_MATHERR */ 768/* #undef NO_MATHERR */
356 769
357/* Define as `void' if your compiler accepts `void *'; otherwise 770/* Define to the address where bug reports for this package should be sent. */
358 define as `char'. */ 771/* #undef PACKAGE_BUGREPORT */
772
773/* Define to the full name of this package. */
774/* #undef PACKAGE_NAME */
775
776/* Define to the full name and version of this package. */
777/* #undef PACKAGE_STRING */
778
779/* Define to the one symbol short name of this package. */
780/* #undef PACKAGE_TARNAME */
781
782/* Define to the version of this package. */
783/* #undef PACKAGE_VERSION */
784
785/* Define as `void' if your compiler accepts `void *'; otherwise define as
786 `char'. */
359#define POINTER_TYPE void 787#define POINTER_TYPE void
360#define PTR POINTER_TYPE * /* For strftime.c. */
361 788
362/* Number of bits in a file offset, on hosts where this is settable. */ 789/* Define to 1 if the C compiler supports function prototypes. */
790/* #undef PROTOTYPES */
791
792/* Define REL_ALLOC if you want to use the relocating allocator for buffer
793 space. */
794/* #undef REL_ALLOC */
795
796/* Define as the return type of signal handlers (`int' or `void'). */
797#define RETSIGTYPE void
798
799/* If using the C implementation of alloca, define if you know the
800 direction of stack growth for your system; otherwise it will be
801 automatically deduced at run-time.
802 STACK_DIRECTION > 0 => grows toward higher addresses
803 STACK_DIRECTION < 0 => grows toward lower addresses
804 STACK_DIRECTION = 0 => direction of growth unknown */
805/* #undef STACK_DIRECTION */
806
807/* Define to 1 if you have the ANSI C header files. */
808/* #undef STDC_HEADERS */
809
810/* Define to 1 on System V Release 4. */
811/* #undef SVR4 */
812
813/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
814#define TIME_WITH_SYS_TIME 1
815
816/* Define to 1 if your <sys/time.h> declares `struct tm'. */
817/* #undef TM_IN_SYS_TIME */
818
819/* Define to 1 for Encore UMAX. */
820/* #undef UMAX */
821
822/* Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h> instead of
823 <sys/cpustats.h>. */
824/* #undef UMAX4_3 */
825
826/* Define to the unexec source file name. */
827/* #undef UNEXEC_SRC */
828
829/* Define to 1 if we should use toolkit scroll bars. */
830#ifdef HAVE_CARBON
831#define USE_TOOLKIT_SCROLL_BARS 1
832#endif
833
834/* Define to 1 if we should use XIM, if it is available. */
835/* #undef USE_XIM */
836
837/* Define to 1 if using an X toolkit. */
838/* #undef USE_X_TOOLKIT */
839
840/* Define to the type of the 6th arg of XRegisterIMInstantiateCallback, either
841 XPointer or XPointer*. */
842/* #undef XRegisterIMInstantiateCallback_arg6 */
843
844/* Define to 1 if on AIX 3.
845 System headers sometimes define this.
846 We just want to avoid a redefinition error message. */
847#ifndef _ALL_SOURCE
848/* #undef _ALL_SOURCE */
849#endif
850
851/* Number of bits in a file offset, on hosts where this is settable. */
363/* #undef _FILE_OFFSET_BITS */ 852/* #undef _FILE_OFFSET_BITS */
364/* Define to make ftello visible on some hosts (e.g. HP-UX 10.20). */ 853
854/* Enable GNU extensions on systems that have them. */
855#ifndef _GNU_SOURCE
856/* # undef _GNU_SOURCE */
857#endif
858
859/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
365/* #undef _LARGEFILE_SOURCE */ 860/* #undef _LARGEFILE_SOURCE */
366/* Define for large files, on AIX-style hosts. */ 861
862/* Define for large files, on AIX-style hosts. */
367/* #undef _LARGE_FILES */ 863/* #undef _LARGE_FILES */
368/* Define to make ftello visible on some hosts (e.g. glibc 2.1.3). */
369/* #undef _XOPEN_SOURCE */
370 864
371#ifdef __MRC__ 865/* Define like PROTOTYPES; this can be used by system headers. */
372/* Use low-bits for tags. If ENABLE_CHECKING is turned on together 866/* #undef __PROTOTYPES */
373 with USE_LSB_TAG, optimization flags should be explicitly turned
374 off. */
375#define USE_LSB_TAG
376#endif
377 867
378#ifdef __MRC__ 868/* Define to compiler's equivalent of C99 restrict keyword. Don't define if
379#define EMACS_CONFIGURATION "macos-mpw" 869 equivalent is `__restrict'. */
380#else /* Assume CodeWarrior */ 870/* #undef __restrict */
381#define EMACS_CONFIGURATION "macos-cw" 871
872/* Define to compiler's equivalent of C99 restrict keyword in array
873 declarations. Define as empty for no equivalent. */
874/* #undef __restrict_arr */
875
876/* Define to the used machine dependent file. */
877#define config_machfile "m-mac.h"
878
879/* Define to the used os dependent file. */
880#define config_opsysfile "s-mac.h"
881
882/* Define to empty if `const' does not conform to ANSI C. */
883/* #undef const */
884
885/* Define to a type if <wchar.h> does not define. */
886/* #undef mbstate_t */
887
888/* Define to `int' if <sys/types.h> does not define. */
889/* #undef pid_t */
890
891/* Define to any substitute for sys_siglist. */
892/* #undef sys_siglist */
893
894/* Define as `fork' if `vfork' does not work. */
895/* #undef vfork */
896
897/* Define to empty if the keyword `volatile' does not work. Warning: valid
898 code using `volatile' can become incorrect without. Disable with care. */
899/* #undef volatile */
900
901
902/* If we're using any sort of window system, define some consequences. */
903#ifdef HAVE_X_WINDOWS
904#define HAVE_WINDOW_SYSTEM
905#define MULTI_KBOARD
906#define HAVE_MOUSE
382#endif 907#endif
383 908
384#define EMACS_CONFIG_OPTIONS "" 909/* Define for MacOS */
910#define HAVE_WINDOW_SYSTEM 1
911#define HAVE_MOUSE 1
385 912
386/* The configuration script defines opsysfile to be the name of the 913/* Define USER_FULL_NAME to return a string
387 s/SYSTEM.h file that describes the system type you are using. The file 914 that is the user's full name.
388 is chosen based on the configuration name you give. 915 It can assume that the variable `pw'
916 points to the password file entry for this user.
389 917
390 See the file ../etc/MACHINES for a list of systems and the 918 At some sites, the pw_gecos field contains
391 configuration names to use for them. 919 the user's full name. If neither this nor any other
920 field contains the right thing, use pw_name,
921 giving the user's login name, since that is better than nothing. */
922#define USER_FULL_NAME pw->pw_name
392 923
393 See s/template.h for documentation on writing s/SYSTEM.h files. */ 924/* Define AMPERSAND_FULL_NAME if you use the convention
394#undef config_opsysfile 925 that & in the full name stands for the login id. */
395#include "s-mac.h" 926/* Turned on June 1996 supposing nobody will mind it. */
927/* #undef AMPERSAND_FULL_NAME */
396 928
397/* The configuration script defines machfile to be the name of the 929/* We have blockinput.h. */
398 m/MACHINE.h file that describes the machine you are using. The file is 930#define DO_BLOCK_INPUT
399 chosen based on the configuration name you give.
400 931
401 See the file ../etc/MACHINES for a list of machines and the 932/* Define HAVE_SOUND if we have sound support. We know it works
402 configuration names to use for them. 933 and compiles only on the specified platforms. For others,
934 it probably doesn't make sense to try. */
403 935
404 See m/template.h for documentation on writing m/MACHINE.h files. */ 936#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
405#undef config_machfile 937#ifdef HAVE_MACHINE_SOUNDCARD_H
406#include "m-mac.h" 938#define HAVE_SOUND 1
939#endif
940#ifdef HAVE_SYS_SOUNDCARD_H
941#define HAVE_SOUND 1
942#endif
943#ifdef HAVE_SOUNDCARD_H
944#define HAVE_SOUND 1
945#endif
946#endif /* __FreeBSD__ || __NetBSD__ || __linux__ */
947
948/* If using GNU, then support inline function declarations. */
949/* Don't try to switch on inline handling as detected by AC_C_INLINE
950 generally, because even if non-gcc compilers accept `inline', they
951 may reject `extern inline'. */
952#if defined (__GNUC__) && defined (OPTIMIZE)
953#define INLINE __inline__
954#else
955#define INLINE
956#endif
957
958#ifdef __MRC__
959/* Use low-bits for tags. If ENABLE_CHECKING is turned on together
960 with USE_LSB_TAG, optimization flags should be explicitly turned
961 off. */
962#define USE_LSB_TAG
963#endif
964
965/* Include the os and machine dependent files. */
966#include config_opsysfile
967#include config_machfile
407 968
408/* Load in the conversion definitions if this system 969/* Load in the conversion definitions if this system
409 needs them and the source file being compiled has not 970 needs them and the source file being compiled has not
@@ -434,39 +995,6 @@ Boston, MA 02111-1307, USA. */
434#endif 995#endif
435#endif 996#endif
436 997
437/* Define LD_SWITCH_SITE to contain any special flags your loader may need. */
438/* #undef LD_SWITCH_SITE */
439
440/* Define C_SWITCH_SITE to contain any special flags your compiler needs. */
441/* #undef C_SWITCH_SITE */
442
443/* Define LD_SWITCH_X_SITE to contain any special flags your loader
444 may need to deal with X Windows. For instance, if you've defined
445 HAVE_X_WINDOWS above and your X libraries aren't in a place that
446 your loader can find on its own, you might want to add "-L/..." or
447 something similar. */
448/* #undef LD_SWITCH_X_SITE */
449
450/* Define LD_SWITCH_X_SITE_AUX with an -R option
451 in case it's needed (for Solaris, for example). */
452/* #undef LD_SWITCH_X_SITE_AUX */
453
454/* Define C_SWITCH_X_SITE to contain any special flags your compiler
455 may need to deal with X Windows. For instance, if you've defined
456 HAVE_X_WINDOWS above and your X include files aren't in a place
457 that your compiler can find on its own, you might want to add
458 "-I/..." or something similar. */
459/* #undef C_SWITCH_X_SITE */
460
461/* Define STACK_DIRECTION here, but not if m/foo.h did. */
462#ifndef STACK_DIRECTION
463/* #undef STACK_DIRECTION */
464#endif
465
466/* Define the return type of signal handlers if the s-xxx file
467 did not already do so. */
468#define RETSIGTYPE void
469
470/* SIGTYPE is the macro we actually use. */ 998/* SIGTYPE is the macro we actually use. */
471#ifndef SIGTYPE 999#ifndef SIGTYPE
472#define SIGTYPE RETSIGTYPE 1000#define SIGTYPE RETSIGTYPE
@@ -476,7 +1004,13 @@ Boston, MA 02111-1307, USA. */
476/* Tell regex.c to use a type compatible with Emacs. */ 1004/* Tell regex.c to use a type compatible with Emacs. */
477#define RE_TRANSLATE_TYPE Lisp_Object 1005#define RE_TRANSLATE_TYPE Lisp_Object
478#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C) 1006#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
479#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0) 1007#ifdef make_number
1008/* If make_number is a macro, use it. */
1009#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
1010#else
1011/* If make_number is a function, avoid it. */
1012#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
1013#endif
480#endif 1014#endif
481 1015
482/* Avoid link-time collision with system mktime if we will use our own. */ 1016/* Avoid link-time collision with system mktime if we will use our own. */
@@ -484,6 +1018,8 @@ Boston, MA 02111-1307, USA. */
484#define mktime emacs_mktime 1018#define mktime emacs_mktime
485#endif 1019#endif
486 1020
1021#define my_strftime nstrftime /* for strftime.c */
1022
487/* The rest of the code currently tests the CPP symbol BSTRING. 1023/* The rest of the code currently tests the CPP symbol BSTRING.
488 Override any claims made by the system-description files. 1024 Override any claims made by the system-description files.
489 Note that on some SCO version it is possible to have bcopy and not bcmp. */ 1025 Note that on some SCO version it is possible to have bcopy and not bcmp. */
@@ -492,11 +1028,6 @@ Boston, MA 02111-1307, USA. */
492#define BSTRING 1028#define BSTRING
493#endif 1029#endif
494 1030
495/* Define to empty if the keyword `volatile' does not work. Warning:
496 valid code using `volatile' can become incorrect without. Disable
497 with care. */
498/* #undef volatile */
499
500/* Some of the files of Emacs which are intended for use with other 1031/* Some of the files of Emacs which are intended for use with other
501 programs assume that if you have a config.h file, you must declare 1032 programs assume that if you have a config.h file, you must declare
502 the type of getenv. 1033 the type of getenv.
@@ -507,8 +1038,6 @@ Boston, MA 02111-1307, USA. */
507extern char *getenv (); 1038extern char *getenv ();
508#endif 1039#endif
509 1040
510#endif /* EMACS_CONFIG_H */
511
512/* These default definitions are good for almost all machines. 1041/* These default definitions are good for almost all machines.
513 The exceptions override them in m/MACHINE.h. */ 1042 The exceptions override them in m/MACHINE.h. */
514 1043
@@ -548,16 +1077,30 @@ extern char *getenv ();
548# endif /* GCC. */ 1077# endif /* GCC. */
549#endif /* __P */ 1078#endif /* __P */
550 1079
551
552/* Don't include "string.h" or <stdlib.h> in non-C code. */ 1080/* Don't include "string.h" or <stdlib.h> in non-C code. */
553#ifndef NOT_C_CODE 1081#ifndef NOT_C_CODE
554#ifdef HAVE_STRING_H 1082#ifdef HAVE_STRING_H
555#include "string.h" 1083#include "string.h"
556#endif 1084#endif
1085#ifdef HAVE_STRINGS_H
1086#include "strings.h" /* May be needed for bcopy & al. */
1087#endif
557#ifdef HAVE_STDLIB_H 1088#ifdef HAVE_STDLIB_H
558#include <stdlib.h> 1089#include <stdlib.h>
559#endif 1090#endif
1091#ifndef __GNUC__
1092# ifdef HAVE_ALLOCA_H
1093# include <alloca.h>
1094# else /* AIX files deal with #pragma. */
1095# ifndef alloca /* predefined by HP cc +Olibcalls */
1096char *alloca ();
1097# endif
1098# endif /* HAVE_ALLOCA_H */
1099#endif /* __GNUC__ */
1100#ifndef HAVE_SIZE_T
1101typedef unsigned size_t;
560#endif 1102#endif
1103#endif /* NOT_C_CODE */
561 1104
562/* Define HAVE_X_I18N if we have usable i18n support. */ 1105/* Define HAVE_X_I18N if we have usable i18n support. */
563 1106
@@ -576,9 +1119,42 @@ extern char *getenv ();
576/* Should we enable expensive run-time checking of data types? */ 1119/* Should we enable expensive run-time checking of data types? */
577/* #undef ENABLE_CHECKING */ 1120/* #undef ENABLE_CHECKING */
578 1121
579/* #define GLYPH_DEBUG 1 */ 1122#if defined __GNUC__ && (__GNUC__ > 2 \
1123 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
1124#define NO_RETURN __attribute__ ((__noreturn__))
1125#else
1126#define NO_RETURN /* nothing */
1127#endif
580 1128
581#define NO_RETURN /* nothing */ 1129/* These won't be used automatically yet. We also need to know, at least,
1130 that the stack is continuous. */
1131#ifdef __GNUC__
1132# ifndef GC_SETJMP_WORKS
1133 /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
1134 see NON_SAVING_SETJMP in the target descriptions. */
1135 /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k,
1136 SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
1137 Fixme: Deal with ns32k, SVR3. */
1138# define GC_SETJMP_WORKS 1
1139# endif
1140# ifndef GC_LISP_OBJECT_ALIGNMENT
1141# define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
1142# endif
1143#endif
1144
1145#ifndef HAVE_BCOPY
1146#define bcopy(a,b,s) memcpy (b,a,s)
1147#endif
1148#ifndef HAVE_BZERO
1149#define bzero(a,s) memset (a,0,s)
1150#endif
1151#ifndef HAVE_BCMP
1152#define BCMP memcmp
1153#endif
1154
1155#define SYNC_INPUT
1156
1157#endif /* EMACS_CONFIG_H */
582 1158
583/* arch-tag: 2596b649-b569-448e-8880-373d2a9909b7 1159/* arch-tag: 2596b649-b569-448e-8880-373d2a9909b7
584 (do not change this comment) */ 1160 (do not change this comment) */
diff --git a/mac/inc/m-mac.h b/mac/inc/m-mac.h
index bb4011af4a6..356a557c5fa 100644
--- a/mac/inc/m-mac.h
+++ b/mac/inc/m-mac.h
@@ -80,19 +80,6 @@ Boston, MA 02111-1307, USA. */
80 80
81#define VIRT_ADDR_VARIES 81#define VIRT_ADDR_VARIES
82 82
83/* Define C_ALLOCA if this machine does not support a true alloca
84 and the one written in C should be used instead.
85 Define HAVE_ALLOCA to say that the system provides a properly
86 working alloca function and it should be used.
87 Define neither one if an assembler-language alloca
88 in the file alloca.s should be used. */
89
90#ifdef __MRC__
91#define HAVE_ALLOCA
92#else
93#define C_ALLOCA
94#endif
95
96/* Define NO_REMAP if memory segmentation makes it not work well 83/* Define NO_REMAP if memory segmentation makes it not work well
97 to change the boundary between the text section and data section 84 to change the boundary between the text section and data section
98 when Emacs is dumped. If you define this, the preloaded Lisp 85 when Emacs is dumped. If you define this, the preloaded Lisp
@@ -129,18 +116,5 @@ Boston, MA 02111-1307, USA. */
129#define IEEE_FLOATING_POINT 1 116#define IEEE_FLOATING_POINT 1
130#endif 117#endif
131 118
132#if 0
133/* The usual definition of XINT, which involves shifting, does not
134 sign-extend properly on this machine. */
135
136#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
137 ? (sign_extend_temp | 0xFF000000) \
138 : (sign_extend_temp & 0x00FFFFFF))
139
140#ifdef emacs /* Don't do this when making xmakefile! */
141extern int sign_extend_temp;
142#endif
143#endif
144
145/* arch-tag: 9e759031-ab7b-4c76-99d7-3ae94a98de38 119/* arch-tag: 9e759031-ab7b-4c76-99d7-3ae94a98de38
146 (do not change this comment) */ 120 (do not change this comment) */
diff --git a/mac/inc/s-mac.h b/mac/inc/s-mac.h
index 56f4df5941c..149d465f59f 100644
--- a/mac/inc/s-mac.h
+++ b/mac/inc/s-mac.h
@@ -53,8 +53,8 @@ Boston, MA 02111-1307, USA. */
53 53
54 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) 54 Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
55 55
56 Emacs uses the presence or absence of the SIGIO macro to indicate 56 Emacs uses the presence or absence of the SIGIO and BROKEN_SIGIO macros
57 whether or not signal-driven I/O is possible. It uses 57 to indicate whether or not signal-driven I/O is possible. It uses
58 INTERRUPT_INPUT to decide whether to use it by default. 58 INTERRUPT_INPUT to decide whether to use it by default.
59 59
60 SIGIO can be used only on systems that implement it (4.2 and 4.3). 60 SIGIO can be used only on systems that implement it (4.2 and 4.3).
@@ -96,8 +96,6 @@ Boston, MA 02111-1307, USA. */
96 96
97/* #define HAVE_PTYS */ 97/* #define HAVE_PTYS */
98 98
99#define HAVE_PWD_H 1
100
101/* 99/*
102 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate 100 * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
103 * The 4.2 opendir, etc., library functions. 101 * The 4.2 opendir, etc., library functions.
@@ -148,6 +146,9 @@ Boston, MA 02111-1307, USA. */
148 is not ':', #define this to be the appropriate character constant. */ 146 is not ':', #define this to be the appropriate character constant. */
149/* #define SEPCHAR ':' */ 147/* #define SEPCHAR ':' */
150 148
149/* Define this if the system can use mmap for buffer text allocation. */
150/* #define USE_MMAP_FOR_BUFFERS 1 */
151
151/* ============================================================ */ 152/* ============================================================ */
152 153
153/* Here, add any special hacks needed 154/* Here, add any special hacks needed
@@ -164,6 +165,14 @@ Boston, MA 02111-1307, USA. */
164 165
165/* #define static */ 166/* #define static */
166 167
168/* If the system's imake configuration file defines `NeedWidePrototypes'
169 as `NO', we must define NARROWPROTO manually. Such a define is
170 generated in the Makefile generated by `xmkmf'. If we don't
171 define NARROWPROTO, we will see the wrong function prototypes
172 for X functions taking float or double parameters. */
173
174/* #define NARROWPROTO 1 */
175
167/* ============================================================ */ 176/* ============================================================ */
168 177
169/* After adding support for a new system, modify the large case 178/* After adding support for a new system, modify the large case
@@ -176,7 +185,12 @@ Boston, MA 02111-1307, USA. */
176 of known problems in that configuration should be updated. */ 185 of known problems in that configuration should be updated. */
177 186
178#ifdef __MRC__ 187#ifdef __MRC__
179#define __signal_max SIGTERM /* largest one in signal.h */ 188/* MrC predefines signal numbers as powers of 2. */
189#define sigmask(no) (((no) & (no) - 1) ? 1L << ((no) - 1) : (no))
190#define __signal_max 8 /* There's enough room for the following
191 signals between 8 and 16, and the
192 maximum predefined one (32) is less
193 than 8th power of 2. */
180#endif 194#endif
181 195
182#define SIGHUP (__signal_max+1) 196#define SIGHUP (__signal_max+1)
@@ -185,7 +199,12 @@ Boston, MA 02111-1307, USA. */
185#define SIGKILL (__signal_max+4) 199#define SIGKILL (__signal_max+4)
186#define SIGALRM (__signal_max+5) 200#define SIGALRM (__signal_max+5)
187#define SIGPIPE (__signal_max+6) 201#define SIGPIPE (__signal_max+6)
202
203#ifdef __MRC__
204#define NSIG SIGTERM /* largest one in signal.h */
205#else
188#define NSIG (__signal_max+6) 206#define NSIG (__signal_max+6)
207#endif
189 208
190#ifdef __MRC__ 209#ifdef __MRC__
191#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base) 210#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)
@@ -230,19 +249,11 @@ Boston, MA 02111-1307, USA. */
230#define READ_BUF_SIZE (8 << 10) 249#define READ_BUF_SIZE (8 << 10)
231 250
232#include <utsname.h> 251#include <utsname.h>
233void read_input_waiting ();
234
235/* #define GETTIMEOFDAY_ONE_ARGUMENT */
236 252
237#define SYSV_SYSTEM_DIR 253#define SYSV_SYSTEM_DIR
238 254
239#define SYSTEM_MALLOC 255#define SYSTEM_MALLOC
240 256
241/* Constants such as O_RDONLY are defined in fcntl.h. Best solution is
242 really to patch individual files to include it: callproc.c, doc.c,
243 fileio.c, getloadavg.c, lread.c, and termcap.c. */
244#include <fcntl.h>
245
246#define _setjmp setjmp 257#define _setjmp setjmp
247#define _longjmp longjmp 258#define _longjmp longjmp
248 259
@@ -284,44 +295,10 @@ void read_input_waiting ();
284#define ctime sys_ctime 295#define ctime sys_ctime
285#define time sys_time 296#define time sys_time
286 297
287#ifndef bcmp 298#define index strchr
288#define bcmp(s1, s2, n) memcmp ((s1), (s2), (n)) 299#define rindex strrchr
289#endif
290#ifndef bcopy
291#define bcopy(s, d, n) memcpy ((d), (s), (n))
292#endif
293#ifndef bzero
294#define bzero(s, n) memset ((s), 0, (n))
295#endif
296
297extern char *index (const char *, int);
298
299/* MPW strftime broken for "%p" format */
300#ifdef __MRC__
301#define strftime sys_strftime
302#endif
303
304#include <time.h>
305/* Editfns.c includes types.h which indirectly includes time.h before config.h.
306 So gmtime (localtime) is defined and not sys_gmtime (sys_localtime). Define
307 here explicitly. */
308extern struct tm *sys_gmtime (const time_t *);
309extern struct tm *sys_localtime (const time_t *);
310extern char *sys_ctime (const time_t *);
311extern time_t sys_time (time_t *);
312
313/* Emacs.c includes signal.h before config.h. Define this to make it happy. */
314#ifdef __MRC__
315#include <signal.h>
316extern __sigfun sys_signal (int signal_num, __sigfun signal_func);
317#elif __MWERKS__
318#include <signal.h>
319extern __signal_func_ptr sys_signal (int signal_num, __signal_func_ptr signal_func);
320#endif
321
322extern double atof (const char *);
323 300
324#define volatile 301#define PTR POINTER_TYPE * /* For strftime.c. */
325 302
326#define SYMS_SYSTEM syms_of_mac() 303#define SYMS_SYSTEM syms_of_mac()
327 304
diff --git a/mac/inc/sys/time.h b/mac/inc/sys/time.h
index b80135b7b5e..4ae305cf026 100644
--- a/mac/inc/sys/time.h
+++ b/mac/inc/sys/time.h
@@ -28,6 +28,21 @@ struct timeval {
28 long tv_usec; /* microseconds */ 28 long tv_usec; /* microseconds */
29}; 29};
30 30
31#define ITIMER_REAL 0
32#if 0
33#define ITIMER_VIRTUAL 1
34#define ITIMER_PROF 2
35#endif
36
37struct itimerval {
38#if 0
39 struct timeval it_interval; /* timer interval */
40#endif
41 struct timeval it_value; /* current value */
42};
43
44extern int setitimer(int, const struct itimerval *, struct itimerval *);
45
31#endif /* _SYS_TYPES_H */ 46#endif /* _SYS_TYPES_H */
32 47
33/* arch-tag: f85ed04d-0e99-4f97-892b-fe029d0e92f9 48/* arch-tag: f85ed04d-0e99-4f97-892b-fe029d0e92f9
diff --git a/mac/makefile.MPW b/mac/makefile.MPW
index e7c7e438973..76217d24101 100644
--- a/mac/makefile.MPW
+++ b/mac/makefile.MPW
@@ -26,8 +26,6 @@
26# Clean - remove all object and executable files to prepare for a fresh build. 26# Clean - remove all object and executable files to prepare for a fresh build.
27# Doc - generate the "DOC" file in ~emacs/etc/. 27# Doc - generate the "DOC" file in ~emacs/etc/.
28# Make-DocFile - build the make-docfile tool, utility for generating "DOC". 28# Make-DocFile - build the make-docfile tool, utility for generating "DOC".
29# PrepSource - prepare the source files after unstuffing the distribution.
30# PrepDist - prepare for distribution: generate diff files; move mac-win.el to {Patches}.
31 29
32Src = ::src: # emacs's src directory 30Src = ::src: # emacs's src directory
33Includes = :inc: # mac includes directory (common for MPW and CW) 31Includes = :inc: # mac includes directory (common for MPW and CW)
@@ -156,7 +154,7 @@ NonCarbonLibs = ¶
156 154
157# The next two are the dependency rules for building Emacs. 155# The next two are the dependency rules for building Emacs.
158 156
159Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects} 157Emacs ÄÄ {Makefile} buildobj.lst {DocTarget}DOC {EmacsObjects} {MacObjects}
160 PPCLink ¶ 158 PPCLink ¶
161 {LinkOptions} ¶ 159 {LinkOptions} ¶
162 {EmacsObjects} {MacObjects} ¶ 160 {EmacsObjects} {MacObjects} ¶
@@ -182,6 +180,9 @@ NonCarbon Ä
182"{Source}"EmacsMPW.maclf.r Ä "{Source}"EmacsMPW.r 180"{Source}"EmacsMPW.maclf.r Ä "{Source}"EmacsMPW.r
183 translate ¶0x0a ¶n < "{Source}"EmacsMPW.r > "{Source}"EmacsMPW.maclf.r 181 translate ¶0x0a ¶n < "{Source}"EmacsMPW.r > "{Source}"EmacsMPW.maclf.r
184 182
183buildobj.lst Ä
184 Echo "{EmacsObjects} {MacObjects}" | StreamEdit -e '1,$ Replace -c ° /[Â ]*:([Â: ]*)¨1.c.x/ ¨1".o"' > buildobj.lst
185
185# Here comes a long boring list of rules saying which files depend on which 186# Here comes a long boring list of rules saying which files depend on which
186# other ones. I generated them by hand using the "-p" option of the MrC compiler. 187# other ones. I generated them by hand using the "-p" option of the MrC compiler.
187# Know about MakeMake, but this is probably more accurate. 188# Know about MakeMake, but this is probably more accurate.
@@ -984,6 +985,7 @@ Clean Ä
984 Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile 985 Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile
985 Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r 986 Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
986 Delete -i "{NonCarbonMakeOut}" 987 Delete -i "{NonCarbonMakeOut}"
988 Delete -i buildobj.lst
987 989
988DistClean Ä Clean 990DistClean Ä Clean
989 Delete -i "Emacs CW"Å 991 Delete -i "Emacs CW"Å
@@ -994,96 +996,21 @@ DistClean Ä Clean
994# Variables and rules for target "Doc" # 996# Variables and rules for target "Doc" #
995#--------------------------------------# 997#--------------------------------------#
996 998
997EmacsSource = ¶ 999SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o ¶
998 "{Src}abbrev.c" ¶ 1000 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o ¶
999 "{Src}alloc.c" ¶ 1001 mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o ¶
1000 "{Src}atimer.c" ¶ 1002 w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o ¶
1001 "{Src}buffer.c" ¶ 1003 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
1002 "{Src}bytecode.c" ¶ 1004
1003 "{Src}callint.c" ¶ 1005shortlisp = ¶
1004 "{Src}callproc.c" ¶
1005 "{Src}casefiddle.c" ¶
1006 "{Src}casetab.c" ¶
1007 "{Src}category.c" ¶
1008 "{Src}ccl.c" ¶
1009 "{Src}charset.c" ¶
1010 "{Src}cm.c" ¶
1011 "{Src}cmds.c" ¶
1012 "{Src}coding.c" ¶
1013 "{Src}composite.c" ¶
1014 "{Src}data.c" ¶
1015 "{Src}dired.c" ¶
1016 "{Src}dispnew.c" ¶
1017 "{Src}doc.c" ¶
1018 "{Src}doprnt.c" ¶
1019 "{Src}editfns.c" ¶
1020 "{Src}emacs.c" ¶
1021 "{Src}eval.c" ¶
1022 "{Src}fileio.c" ¶
1023 "{Src}filemode.c" ¶
1024 "{Src}floatfns.c" ¶
1025 "{Src}fns.c" ¶
1026 "{Src}fontset.c" ¶
1027 "{Src}frame.c" ¶
1028 "{Src}fringe.c" ¶
1029 "{Src}getloadavg.c" ¶
1030 "{Src}image.c" ¶
1031 "{Src}indent.c" ¶
1032 "{Src}insdel.c" ¶
1033 "{Src}intervals.c" ¶
1034 "{Src}keyboard.c" ¶
1035 "{Src}keymap.c" ¶
1036 "{Src}lastfile.c" ¶
1037 "{Src}lread.c" ¶
1038 "{Src}macros.c" ¶
1039 "{Src}marker.c" ¶
1040 "{Src}minibuf.c" ¶
1041 "{Src}mktime.c" ¶
1042 "{Src}print.c" ¶
1043 "{Src}process.c" ¶
1044 "{Src}regex.c" ¶
1045 "{Src}region-cache.c" ¶
1046 "{Src}scroll.c" ¶
1047 "{Src}search.c" ¶
1048 "{Src}strftime.c" ¶
1049 "{Src}syntax.c" ¶
1050 "{Src}sysdep.c" ¶
1051 "{Src}term.c" ¶
1052 "{Src}termcap.c" ¶
1053 "{Src}textprop.c" ¶
1054 "{Src}tparam.c" ¶
1055 "{Src}undo.c" ¶
1056 "{Src}window.c" ¶
1057 "{Src}xdisp.c" ¶
1058 "{Src}xfaces.c" ¶
1059 "{Src}xmenu.c"
1060
1061MacSource = ¶
1062 "{Src}mac.c" ¶
1063 "{Src}macfns.c" ¶
1064 "{Src}macterm.c"
1065
1066
1067LispSource = ¶
1068 {Lisp}menu-bar.elc ¶
1069 {Lisp}mouse.elc ¶
1070 {Lisp}select.elc ¶
1071 {Lisp}scroll-bar.elc ¶
1072 {Lisp}vmsproc.elc ¶
1073 {Lisp}vms-patch.elc ¶
1074 {Lisp}ls-lisp.elc ¶
1075 {Lisp}dos-fns.elc ¶
1076 {Lisp}w32-fns.elc ¶
1077 {Lisp}dos-w32.elc ¶
1078 {Lisp}disp-table.elc ¶
1079 {Lisp}dos-vars.elc ¶
1080 {Lisp}international:ccl.elc ¶
1081 {Lisp}international:codepage.elc ¶
1082 {Lisp}abbrev.elc ¶ 1006 {Lisp}abbrev.elc ¶
1083 {Lisp}buff-menu.elc ¶ 1007 {Lisp}buff-menu.elc ¶
1008 {Lisp}button.elc ¶
1084 {Lisp}emacs-lisp:byte-run.elc ¶ 1009 {Lisp}emacs-lisp:byte-run.elc ¶
1085 {Lisp}cus-start.el ¶ 1010 {Lisp}cus-face.elc ¶
1011 {Lisp}cus-start.elc ¶
1086 {Lisp}custom.elc ¶ 1012 {Lisp}custom.elc ¶
1013 {Lisp}emacs-lisp:backquote.elc ¶
1087 {Lisp}emacs-lisp:lisp-mode.elc ¶ 1014 {Lisp}emacs-lisp:lisp-mode.elc ¶
1088 {Lisp}emacs-lisp:lisp.elc ¶ 1015 {Lisp}emacs-lisp:lisp.elc ¶
1089 {Lisp}facemenu.elc ¶ 1016 {Lisp}facemenu.elc ¶
@@ -1099,18 +1026,47 @@ LispSource = ¶
1099 {Lisp}loaddefs.el ¶ 1026 {Lisp}loaddefs.el ¶
1100 {Lisp}bindings.elc ¶ 1027 {Lisp}bindings.elc ¶
1101 {Lisp}emacs-lisp:map-ynp.elc ¶ 1028 {Lisp}emacs-lisp:map-ynp.elc ¶
1029 {Lisp}env.elc ¶
1102 {Lisp}international:mule.elc ¶ 1030 {Lisp}international:mule.elc ¶
1103 {Lisp}international:mule-conf.el ¶ 1031 {Lisp}international:mule-conf.el ¶
1104 {Lisp}international:mule-cmds.elc ¶ 1032 {Lisp}international:mule-cmds.elc ¶
1105 {Lisp}international:characters.elc ¶ 1033 {Lisp}international:characters.elc ¶
1034 {Lisp}international:ucs-tables.elc ¶
1035 {Lisp}international:utf-8.elc ¶
1036 {Lisp}international:utf-16.elc ¶
1037 {Lisp}international:latin-1.el ¶
1038 {Lisp}international:latin-2.el ¶
1039 {Lisp}international:latin-3.el ¶
1040 {Lisp}international:latin-4.el ¶
1041 {Lisp}international:latin-5.el ¶
1042 {Lisp}international:latin-8.el ¶
1043 {Lisp}international:latin-9.el ¶
1106 {Lisp}case-table.elc ¶ 1044 {Lisp}case-table.elc ¶
1107 {Lisp}language:chinese.elc ¶ 1045 {Lisp}language:chinese.elc ¶
1108 {Lisp}language:cyrillic.elc ¶ 1046 {Lisp}language:cyrillic.elc ¶
1109 {Lisp}language:indian.elc ¶ 1047 {Lisp}language:indian.elc ¶
1048 {Lisp}language:devanagari.el ¶
1049 {Lisp}language:kannada.el ¶
1050 {Lisp}language:malayalam.el ¶
1051 {Lisp}language:tamil.el ¶
1052 {Lisp}language:english.el ¶
1110 {Lisp}language:ethiopic.elc ¶ 1053 {Lisp}language:ethiopic.elc ¶
1111 {Lisp}language:european.elc ¶ 1054 {Lisp}language:european.elc ¶
1055 {Lisp}language:czech.el ¶
1056 {Lisp}language:slovak.el ¶
1057 {Lisp}language:romanian.el ¶
1058 {Lisp}language:greek.el ¶
1059 {Lisp}language:hebrew.el ¶
1060 {Lisp}language:japanese.el ¶
1061 {Lisp}language:korean.el ¶
1062 {Lisp}language:lao.el ¶
1063 {Lisp}language:thai.el ¶
1112 {Lisp}language:tibetan.elc ¶ 1064 {Lisp}language:tibetan.elc ¶
1113 {Lisp}language:vietnamese.elc ¶ 1065 {Lisp}language:vietnamese.elc ¶
1066 {Lisp}language:misc-lang.el ¶
1067 {Lisp}language:utf-8-lang.el ¶
1068 {Lisp}language:georgian.el ¶
1069 {Lisp}menu-bar.elc ¶
1114 {Lisp}paths.el ¶ 1070 {Lisp}paths.el ¶
1115 {Lisp}register.elc ¶ 1071 {Lisp}register.elc ¶
1116 {Lisp}replace.elc ¶ 1072 {Lisp}replace.elc ¶
@@ -1118,37 +1074,34 @@ LispSource = ¶
1118 {Lisp}startup.elc ¶ 1074 {Lisp}startup.elc ¶
1119 {Lisp}subr.elc ¶ 1075 {Lisp}subr.elc ¶
1120 {Lisp}term:tty-colors.elc ¶ 1076 {Lisp}term:tty-colors.elc ¶
1077 {Lisp}font-core.elc ¶
1121 {Lisp}textmodes:fill.elc ¶ 1078 {Lisp}textmodes:fill.elc ¶
1122 {Lisp}textmodes:page.elc ¶ 1079 {Lisp}textmodes:page.elc ¶
1123 {Lisp}textmodes:paragraphs.elc ¶ 1080 {Lisp}textmodes:paragraphs.elc ¶
1124 {Lisp}textmodes:text-mode.elc ¶ 1081 {Lisp}textmodes:text-mode.elc ¶
1082 {Lisp}emacs-lisp:timer.elc ¶
1125 {Lisp}vc-hooks.elc ¶ 1083 {Lisp}vc-hooks.elc ¶
1084 {Lisp}jka-cmpr-hook.elc ¶
1126 {Lisp}ediff-hook.elc ¶ 1085 {Lisp}ediff-hook.elc ¶
1127 {Lisp}widget.elc ¶ 1086 {Lisp}widget.elc ¶
1128 {Lisp}window.elc ¶ 1087 {Lisp}window.elc ¶
1129 {Lisp}version.el 1088 {Lisp}version.el
1130 1089
1131LispSourceDontCompile = ¶ 1090SOME_MACHINE_LISP = {Lisp}mouse.elc ¶
1132 {Lisp}language:devanagari.el ¶ 1091 {Lisp}select.elc {Lisp}scroll-bar.elc ¶
1133 {Lisp}language:english.el ¶ 1092 {Lisp}vmsproc.elc {Lisp}vms-patch.elc ¶
1134 {Lisp}language:czech.el ¶ 1093 {Lisp}ls-lisp.elc {Lisp}dos-fns.elc ¶
1135 {Lisp}language:slovak.el ¶ 1094 {Lisp}w32-fns.elc {Lisp}dos-w32.elc ¶
1136 {Lisp}language:romanian.el ¶ 1095 {Lisp}disp-table.elc {Lisp}dos-vars.elc ¶
1137 {Lisp}language:greek.el ¶ 1096 {Lisp}tooltip.elc ¶
1138 {Lisp}language:hebrew.el ¶ 1097 {Lisp}international:ccl.elc ¶
1139 {Lisp}language:japanese.el ¶ 1098 {Lisp}international:codepage.elc
1140 {Lisp}language:korean.el ¶
1141 {Lisp}language:lao.el ¶
1142 {Lisp}language:thai.el ¶
1143 {Lisp}language:misc-lang.el
1144 1099
1145Doc Ä {DocTarget}DOC 1100Doc Ä {DocTarget}DOC
1146 1101
1147{DocTarget}DOC Ä {Makefile} {EmacsSource} {MacSource} {LispSource} {LispSourceDontCompile} {Make-DocFileDir}Make-DocFile 1102{DocTarget}DOC Ä {Makefile} {shortlisp} {SOME_MACHINE_LISP} {Make-DocFileDir}Make-DocFile buildobj.lst
1148 {Make-DocFileDir}make-docfile {EmacsSource} > {DocTarget}DOC 1103 {Make-DocFileDir}make-docfile -d {Src} {SOME_MACHINE_OBJECTS} `Catenate buildobj.lst` > {DocTarget}DOC
1149 {Make-DocFileDir}make-docfile {MacSource} >> {DocTarget}DOC 1104 {Make-DocFileDir}make-docfile -a {DocTarget}DOC -d {Src} {SOME_MACHINE_LISP} {shortlisp}
1150 {Make-DocFileDir}make-docfile {LispSource} >> {DocTarget}DOC
1151 {Make-DocFileDir}make-docfile {LispSourceDontCompile} >> {DocTarget}DOC
1152 1105
1153 1106
1154#-----------------------------------------------# 1107#-----------------------------------------------#
@@ -1159,7 +1112,8 @@ Make-DocFile-Includes = -i :inc:
1159Make-DocFile-Sym = 1112Make-DocFile-Sym =
1160 1113
1161Make-DocFile-PPCCOptions = -typecheck relaxed -w off -noMapCR ¶ 1114Make-DocFile-PPCCOptions = -typecheck relaxed -w off -noMapCR ¶
1162 {Make-DocFile-Includes} {Make-DocFile-Sym} 1115 -d MAC_OS -d MAC_OS8 ¶
1116 {Make-DocFile-Includes} {Make-DocFile-Sym}
1163 1117
1164Make-DocFile-Objects = ¶ 1118Make-DocFile-Objects = ¶
1165 "{Lib-Src}make-docfile.c.x" ¶ 1119 "{Lib-Src}make-docfile.c.x" ¶
diff --git a/man/ChangeLog b/man/ChangeLog
index 8574bd8f205..acde7c5b491 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,78 @@
12005-05-18 Luc Teirlinck <teirllm@auburn.edu>
2
3 * buffers.texi (Select Buffer): Document `C-u M-g M-g'.
4
5 * basic.texi (Moving Point): Mention default for `goto-line'.
6
7 * programs.texi (Lisp Doc): Eldoc mode shows only the first line
8 of a variable's docstring.
9
102005-05-18 Lute Kamstra <lute@gnu.org>
11
12 * maintaining.texi (Overview of Emerge): Add cross reference.
13 Remove duplication.
14
15 * emacs.texi (Top): Update to the current structure of the manual.
16 * misc.texi (Emacs Server): Add menu description.
17 * files.texi (Saving): Fix menu.
18 * custom.texi (Customization): Fix menu.
19 * mule.texi (International): Fix menu.
20 * kmacro.texi (Keyboard Macros): Fix menu.
21
222005-05-16 Luc Teirlinck <teirllm@auburn.edu>
23
24 * display.texi: Various minor changes.
25 (Faces): Delete text that is repeated in the next section.
26
272005-05-16 Nick Roberts <nickrob@snap.net.nz>
28
29 * building.texi (Debugger Operation): Mention GUD tooltips are
30 disabled with GDB in text command mode.
31
322005-05-16 Jay Belanger <belanger@truman.edu>
33
34 * calc.texi (Storing Variables): Mention `calc-copy-special-constant'.
35
362005-05-16 Nick Roberts <nickrob@snap.net.nz>
37
38 * building.texi: Replace toolbar with "tool bar" for consistency.
39 (Compilation Mode): Describe compilation-context-lines
40 and use of arrow in compilation buffer.
41 (Debugger Operation): Replace help text with variable's value.
42
43 * frames.texi (Tooltips): Replace toolbar with "tool bar" for
44 consistency.
45
462005-05-15 Luc Teirlinck <teirllm@auburn.edu>
47
48 * major.texi (Choosing Modes): normal-mode processes the -*- line.
49 Add xref.
50
512005-05-14 Jay Belanger <belanger@truman.edu>
52
53 * calc.texi (Default Simplifications): Insert missing ! (logical
54 not operator).
55
562005-05-14 Michael Albinus <michael.albinus@gmx.de>
57
58 Sync with Tramp 2.0.49.
59
602005-05-14 Luc Teirlinck <teirllm@auburn.edu>
61
62 * basic.texi (Moving Point): Mention `M-g g' binding for `goto-line'.
63 (Position Info): Delete discussion of `goto-line'. It is already
64 described in `Moving point'.
65
66 * mini.texi (Completion Commands): Correct reference.
67 (Completion Options): Fix typo.
68
69 * killing.texi (Deletion): Complete description of `C-x C-o'.
70
712005-05-10 Jay Belanger <belanger@truman.edu>
72
73 * calc.texi (Default Simplifications): Mention that 0^0 simplifies
74 to 1.
75
12005-05-10 Richard M. Stallman <rms@gnu.org> 762005-05-10 Richard M. Stallman <rms@gnu.org>
2 77
3 * building.texi (Compilation): Clarify recompile's directory choice. 78 * building.texi (Compilation): Clarify recompile's directory choice.
diff --git a/man/basic.texi b/man/basic.texi
index 3fbaff2a1e7..d94e52b0112 100644
--- a/man/basic.texi
+++ b/man/basic.texi
@@ -238,9 +238,12 @@ it is commonly used to do so. If your keyboard has a @key{PAGEUP} or
238Read a number @var{n} and move point to buffer position @var{n}. 238Read a number @var{n} and move point to buffer position @var{n}.
239Position 1 is the beginning of the buffer. 239Position 1 is the beginning of the buffer.
240@item M-g M-g 240@item M-g M-g
241@itemx M-g g
241@itemx M-x goto-line 242@itemx M-x goto-line
242Read a number @var{n} and move point to line number @var{n}. Line 1 243Read a number @var{n} and move point to the beginning of line number
243is the beginning of the buffer. 244@var{n}. Line 1 is the beginning of the buffer. If point is on or
245just after a number, then that is the default for @var{n}, if you just
246press @key{RET} with an empty minibuffer.
244@item C-x C-n 247@item C-x C-n
245@findex set-goal-column 248@findex set-goal-column
246@kindex C-x C-n 249@kindex C-x C-n
@@ -595,19 +598,13 @@ Toggle automatic display of the size of the buffer.
595@cindex location of point 598@cindex location of point
596@cindex cursor location 599@cindex cursor location
597@cindex point location 600@cindex point location
598 There are two commands for working with line numbers. @kbd{M-x 601 @kbd{M-x what-line} computes the current line number and displays it
599what-line} computes the current line number and displays it in the 602in the echo area. You can also see the current line number in the
600echo area. To go to a given line by number, use @kbd{M-g M-g} or 603mode line; see @ref{Mode Line}. If you narrow the buffer, then the
601@kbd{M-g g} (@code{goto-line}). This prompts you for a line number, 604line number in the mode line is relative to the accessible portion
602then moves point to the beginning of that line. To move to a given 605(@pxref{Narrowing}). By contrast, @code{what-line} shows both the
603line in the most recently displayed other buffer, use @kbd{C-u M-g 606line number relative to the narrowed region and the line number
604M-g}. Line numbers in Emacs count from one at the beginning of the buffer. 607relative to the whole buffer.
605
606 You can also see the current line number in the mode line; see @ref{Mode
607Line}. If you narrow the buffer, then the line number in the mode line
608is relative to the accessible portion (@pxref{Narrowing}). By contrast,
609@code{what-line} shows both the line number relative to the narrowed
610region and the line number relative to the whole buffer.
611 608
612 @kbd{M-x what-page} counts pages from the beginning of the file, and 609 @kbd{M-x what-page} counts pages from the beginning of the file, and
613counts lines within the page, showing both numbers in the echo area. 610counts lines within the page, showing both numbers in the echo area.
diff --git a/man/buffers.texi b/man/buffers.texi
index 97234966b4b..694c7780854 100644
--- a/man/buffers.texi
+++ b/man/buffers.texi
@@ -77,6 +77,10 @@ Similar, but select @var{buffer} in another window
77@item C-x 5 b @var{buffer} @key{RET} 77@item C-x 5 b @var{buffer} @key{RET}
78Similar, but select @var{buffer} in a separate frame 78Similar, but select @var{buffer} in a separate frame
79(@code{switch-to-buffer-other-frame}). 79(@code{switch-to-buffer-other-frame}).
80@item C-u M-g M-g
81@itemx C-u M-g g
82Read a number @var{n} and move to line @var{n} in the most recently
83selected buffer other than the current buffer.
80@end table 84@end table
81 85
82@kindex C-x b 86@kindex C-x b
@@ -139,6 +143,19 @@ Modes}).
139can also be used to switch to an existing file-visiting buffer. 143can also be used to switch to an existing file-visiting buffer.
140@xref{Visiting}. 144@xref{Visiting}.
141 145
146 @kbd{C-u M-g M-g}, that is @code{goto-line} with a prefix argument
147of just @kbd{C-u}, reads a number @var{n} using the minibuffer,
148selects the most recently selected buffer other than the current
149buffer in another window, and then moves point to the beginning of
150line number @var{n} in that buffer. This is mainly useful in a buffer
151that refers to line numbers in another buffer: if point is on or just
152after a number, @code{goto-line} uses that number as the default for
153@var{n}. Note that prefix arguments other than just @kbd{C-u} behave
154differently. @kbd{C-u 4 M-g M-g} goes to line 4 in the @emph{current}
155buffer, without reading a number from the minibuffer. (Remember that
156@kbd{M-g M-g} without prefix argument reads a number @var{n} and then
157moves to line number @var{n} in the current buffer.)
158
142 Emacs uses buffer names that start with a space for internal purposes. 159 Emacs uses buffer names that start with a space for internal purposes.
143It treats these buffers specially in minor ways---for example, by 160It treats these buffers specially in minor ways---for example, by
144default they do not record undo information. It is best to avoid using 161default they do not record undo information. It is best to avoid using
diff --git a/man/building.texi b/man/building.texi
index 99bc20260b2..2182cccd8b9 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -223,6 +223,14 @@ commands advance from there. When @kbd{C-x `} gets to the end of the
223buffer and finds no more error messages to visit, it fails and signals 223buffer and finds no more error messages to visit, it fails and signals
224an Emacs error. 224an Emacs error.
225 225
226When the left fringe is displayed, an arrow points to the
227current message in the compilation buffer. The variable
228@code{compilation-context-lines} controls the number of lines of
229leading context in the window before the current message. If it is
230@code{nil} and the left fringe is displayed, the window doesn't
231scroll. If there is no left fringe, no arrow is displayed and a value
232of @code{nil} means display the message at the top of the window.
233
226 You don't have to be in the compilation buffer in order to use 234 You don't have to be in the compilation buffer in order to use
227@code{next-error}. If one window on the selected frame can be the 235@code{next-error}. If one window on the selected frame can be the
228target of the @code{next-error} call, it is used. Else, if a buffer 236target of the @code{next-error} call, it is used. Else, if a buffer
@@ -504,8 +512,13 @@ with a C program, you can also display the @code{#define} directive
504associated with an identifier when the program is not executing. This 512associated with an identifier when the program is not executing. This
505operates in the GUD buffer and in source buffers with major modes in 513operates in the GUD buffer and in source buffers with major modes in
506the list @code{gud-tooltip-modes}. If the variable 514the list @code{gud-tooltip-modes}. If the variable
507@code{gud-tooltip-echo-area} is non-@code{nil} then the help text is 515@code{gud-tooltip-echo-area} is non-@code{nil} then the variable's
508displayed in the echo area. 516value is displayed in the echo area.
517
518With GDB in text command mode (@pxref{GDB Graphical Interface}),
519it is possible that use of GUD tooltips can cause a function to be
520called with harmful side-effects. In this case, Emacs disables
521gud-tooltip-mode.
509 522
510@node Commands of GUD 523@node Commands of GUD
511@subsection Commands of GUD 524@subsection Commands of GUD
@@ -515,7 +528,7 @@ commands of Shell mode are available (@pxref{Shell Mode}). GUD mode
515also provides commands for setting and clearing breakpoints, for 528also provides commands for setting and clearing breakpoints, for
516selecting stack frames, and for stepping through the program. These 529selecting stack frames, and for stepping through the program. These
517commands are available both in the GUD buffer and globally, but with 530commands are available both in the GUD buffer and globally, but with
518different key bindings. It also has its own toolbar from which you 531different key bindings. It also has its own tool bar from which you
519can invoke the more common commands by clicking on the appropriate 532can invoke the more common commands by clicking on the appropriate
520icon. This is particularly useful for repetitive commands like 533icon. This is particularly useful for repetitive commands like
521gud-next and gud-step and allows the user to hide the GUD buffer. 534gud-next and gud-step and allows the user to hide the GUD buffer.
@@ -742,7 +755,7 @@ that line, this action will remove it
742(@code{gdb-mouse-set-clear-breakpoint}). Where Emacs uses the margin 755(@code{gdb-mouse-set-clear-breakpoint}). Where Emacs uses the margin
743to display breakpoints, it is also possible to enable or disable them 756to display breakpoints, it is also possible to enable or disable them
744when you click @kbd{Mouse-3} there 757when you click @kbd{Mouse-3} there
745(@code{gdb-mouse-toggle--breakpoint}). 758(@code{gdb-mouse-toggle-breakpoint}).
746 759
747@vindex gud-gdb-command-name 760@vindex gud-gdb-command-name
748@findex gdba 761@findex gdba
@@ -869,7 +882,7 @@ the variables that are local to the new frame.
869 882
870If you want to see how a variable changes each time your program stops 883If you want to see how a variable changes each time your program stops
871then place the cursor over the variable name and click on the watch 884then place the cursor over the variable name and click on the watch
872icon in the toolbar (@code{gud-watch}). 885icon in the tool bar (@code{gud-watch}).
873 886
874Each watch expression is displayed in the speedbar. Complex data 887Each watch expression is displayed in the speedbar. Complex data
875types, such as arrays, structures and unions are represented in a tree 888types, such as arrays, structures and unions are represented in a tree
diff --git a/man/calc.texi b/man/calc.texi
index 97f06047773..5d0af765f15 100644
--- a/man/calc.texi
+++ b/man/calc.texi
@@ -22660,11 +22660,10 @@ to @expr{a / (c - b)}, and @expr{(a - b) / (-c)} to @expr{(b - a) / c}.
22660 22660
22661The formula @expr{x^0} is simplified to @expr{1}, or to @samp{idn(1)} 22661The formula @expr{x^0} is simplified to @expr{1}, or to @samp{idn(1)}
22662in Matrix mode. The formula @expr{0^x} is simplified to @expr{0} 22662in Matrix mode. The formula @expr{0^x} is simplified to @expr{0}
22663unless @expr{x} is a negative number or complex number, in which 22663unless @expr{x} is a negative number, complex number or zero.
22664case the result is an infinity or an unsimplified formula according 22664If @expr{x} is negative, complex or @expr{0.0}, @expr{0^x} is an
22665to the current infinite mode. Note that @expr{0^0} is an 22665infinity or an unsimplified formula according to the current infinite
22666indeterminate form, as evidenced by the fact that the simplifications 22666mode. The expression @expr{0^0} is simplified to @expr{1}.
22667for @expr{x^0} and @expr{0^x} conflict when @expr{x=0}.
22668 22667
22669Powers of products or quotients @expr{(a b)^c}, @expr{(a/b)^c} 22668Powers of products or quotients @expr{(a b)^c}, @expr{(a/b)^c}
22670are distributed to @expr{a^c b^c}, @expr{a^c / b^c} only if @expr{c} 22669are distributed to @expr{a^c b^c}, @expr{a^c / b^c} only if @expr{c}
@@ -22766,7 +22765,7 @@ simplified to @expr{x} for any @expr{x}. This occurs even if you have
22766stored a different value in the Calc variable @samp{e}; but this would 22765stored a different value in the Calc variable @samp{e}; but this would
22767be a bad idea in any case if you were also using natural logarithms! 22766be a bad idea in any case if you were also using natural logarithms!
22768 22767
22769Among the logical functions, @tfn{(@var{a} <= @var{b})} changes to 22768Among the logical functions, @tfn{!(@var{a} <= @var{b})} changes to
22770@tfn{@var{a} > @var{b}} and so on. Equations and inequalities where both sides 22769@tfn{@var{a} > @var{b}} and so on. Equations and inequalities where both sides
22771are either negative-looking or zero are simplified by negating both sides 22770are either negative-looking or zero are simplified by negating both sides
22772and reversing the inequality. While it might seem reasonable to simplify 22771and reversing the inequality. While it might seem reasonable to simplify
@@ -28299,6 +28298,15 @@ will be left alone even if you press @kbd{=} (@code{calc-evaluate}).
28299The @kbd{s u} (@code{calc-unstore}) command returns a variable to the 28298The @kbd{s u} (@code{calc-unstore}) command returns a variable to the
28300void state. 28299void state.
28301 28300
28301@kindex s c
28302@pindex calc-copy-variable
28303The @kbd{s c} (@code{calc-copy-variable}) command copies the stored
28304value of one variable to another. One way it differs from a simple
28305@kbd{s r} followed by an @kbd{s t} (aside from saving keystrokes) is
28306that the value never goes on the stack and thus is never rounded,
28307evaluated, or simplified in any way; it is not even rounded down to the
28308current precision.
28309
28302The only variables with predefined values are the ``special constants'' 28310The only variables with predefined values are the ``special constants''
28303@code{pi}, @code{e}, @code{i}, @code{phi}, and @code{gamma}. You are free 28311@code{pi}, @code{e}, @code{i}, @code{phi}, and @code{gamma}. You are free
28304to unstore these variables or to store new values into them if you like, 28312to unstore these variables or to store new values into them if you like,
@@ -28308,25 +28316,26 @@ you change the value of one of these variables, or of one of the other
28308special variables @code{inf}, @code{uinf}, and @code{nan} (which are 28316special variables @code{inf}, @code{uinf}, and @code{nan} (which are
28309normally void). 28317normally void).
28310 28318
28311Note that @code{pi} doesn't actually have 3.14159265359 stored 28319Note that @code{pi} doesn't actually have 3.14159265359 stored in it,
28312in it, but rather a special magic value that evaluates to @cpi{} 28320but rather a special magic value that evaluates to @cpi{} at the current
28313at the current precision. Likewise @code{e}, @code{i}, and 28321precision. Likewise @code{e}, @code{i}, and @code{phi} evaluate
28314@code{phi} evaluate according to the current precision or polar mode. 28322according to the current precision or polar mode. If you recall a value
28315If you recall a value from @code{pi} and store it back, this magic 28323from @code{pi} and store it back, this magic property will be lost. The
28316property will be lost. 28324magic property is preserved, however, when a variable is copied with
28317 28325@kbd{s c}.
28318@kindex s c 28326
28319@pindex calc-copy-variable 28327@kindex s k
28320The @kbd{s c} (@code{calc-copy-variable}) command copies the stored 28328@pindex calc-copy-special-constant
28321value of one variable to another. It differs from a simple @kbd{s r} 28329If one of the ``special constants'' is redefined (or undefined) so that
28322followed by an @kbd{s t} in two important ways. First, the value never 28330it no longer has its magic property, the property can be restored with
28323goes on the stack and thus is never rounded, evaluated, or simplified 28331@kbd{s k} (@code{calc-copy-special-constant}). This command will prompt
28324in any way; it is not even rounded down to the current precision. 28332for a special constant and a variable to store it in, and so a special
28325Second, the ``magic'' contents of a variable like @code{e} can 28333constant can be stored in any variable. Here, the special constant that
28326be copied into another variable with this command, perhaps because 28334you enter doesn't depend on the value of the corresponding variable;
28327you need to unstore @code{e} right now but you wish to put it 28335@code{pi} will represent 3.14159@dots{} regardless of what is currently
28328back when you're done. The @kbd{s c} command is the only way to 28336stored in the Calc variable @code{pi}. If one of the other special
28329manipulate these magic values intact. 28337variables, @code{inf}, @code{uinf} or @code{nan}, is given a value, its
28338original behavior can be restored by voiding it with @kbd{s u}.
28330 28339
28331@node Recalling Variables, Operations on Variables, Storing Variables, Store and Recall 28340@node Recalling Variables, Operations on Variables, Storing Variables, Store and Recall
28332@section Recalling Variables 28341@section Recalling Variables
@@ -35616,6 +35625,7 @@ keystrokes are not listed in this summary.
35616@r{ @: s d @:var, decl @: @:calc-declare-variable@:} 35625@r{ @: s d @:var, decl @: @:calc-declare-variable@:}
35617@r{ @: s e @:var, editing @: 29,30 @:calc-edit-variable@:} 35626@r{ @: s e @:var, editing @: 29,30 @:calc-edit-variable@:}
35618@r{ @: s i @:buffer @: @:calc-insert-variables@:} 35627@r{ @: s i @:buffer @: @:calc-insert-variables@:}
35628@r{ @: s k @:const, var @: 29 @:calc-copy-special-constant@:}
35619@r{ a b@: s l @:var @: 29 @:@:a (letting var=b)} 35629@r{ a b@: s l @:var @: 29 @:@:a (letting var=b)}
35620@r{ a ...@: s m @:op, var @: 22,29 @:calc-store-map@:} 35630@r{ a ...@: s m @:op, var @: 22,29 @:calc-store-map@:}
35621@r{ @: s n @:var @: 29,47 @:calc-store-neg@: (v/-1)} 35631@r{ @: s n @:var @: 29,47 @:calc-store-neg@: (v/-1)}
diff --git a/man/custom.texi b/man/custom.texi
index 26c76c68562..ffded429c48 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -27,19 +27,17 @@ replay sequences of keys.
27@menu 27@menu
28* Minor Modes:: Each minor mode is one feature you can turn on 28* Minor Modes:: Each minor mode is one feature you can turn on
29 independently of any others. 29 independently of any others.
30* Easy Customization:: 30* Easy Customization:: Convenient way to browse and change user options.
31 Convenient way to browse and change user options.
32* Variables:: Many Emacs commands examine Emacs variables 31* Variables:: Many Emacs commands examine Emacs variables
33 to decide what to do; by setting variables, 32 to decide what to do; by setting variables,
34 you can control their functioning. 33 you can control their functioning.
35* Key Bindings:: The keymaps say what command each key runs. 34* Key Bindings:: The keymaps say what command each key runs.
36 By changing them, you can "redefine keys". 35 By changing them, you can "redefine keys".
37* Keyboard Translations:: 36* Keyboard Translations:: If your keyboard passes an undesired code
38 If your keyboard passes an undesired code 37 for a key, you can tell Emacs to
39 for a key, you can tell Emacs to 38 substitute another code.
40 substitute another code.
41* Syntax:: The syntax table controls how words and 39* Syntax:: The syntax table controls how words and
42 expressions are parsed. 40 expressions are parsed.
43* Init File:: How to write common customizations in the 41* Init File:: How to write common customizations in the
44 @file{.emacs} file. 42 @file{.emacs} file.
45@end menu 43@end menu
diff --git a/man/display.texi b/man/display.texi
index c1b0c540fb5..b4e72edc9ca 100644
--- a/man/display.texi
+++ b/man/display.texi
@@ -177,13 +177,9 @@ style of this face (@pxref{Face Customization}). @xref{Transient Mark},
177for more information about Transient Mark mode and activation and 177for more information about Transient Mark mode and activation and
178deactivation of the mark. 178deactivation of the mark.
179 179
180 One easy way to use faces is to turn on Font Lock mode. This minor 180 One easy way to use faces is to turn on Font Lock mode. @xref{Font
181mode, which is always local to a particular buffer, arranges to 181Lock}, for more information about Font Lock mode and syntactic
182choose faces according to the syntax of the text you are editing. It 182highlighting.
183can recognize comments and strings in most languages; in several
184languages, it can also recognize and properly highlight various other
185important constructs. @xref{Font Lock}, for more information about
186Font Lock mode and syntactic highlighting.
187 183
188 You can print out the buffer with the highlighting that appears 184 You can print out the buffer with the highlighting that appears
189on your screen using the command @code{ps-print-buffer-with-faces}. 185on your screen using the command @code{ps-print-buffer-with-faces}.
@@ -206,11 +202,12 @@ specialized ways of assigning fonts for Font Lock mode.
206 202
207@findex font-lock-mode 203@findex font-lock-mode
208@findex turn-on-font-lock 204@findex turn-on-font-lock
209 The command @kbd{M-x font-lock-mode} turns Font Lock mode on or off 205 The command @kbd{M-x font-lock-mode} turns Font Lock mode on with
210according to the argument, and toggles the mode when it has no argument. 206positive argument, off with negative or zero argument, and toggles the
211The function @code{turn-on-font-lock} unconditionally enables Font Lock 207mode when it has no argument. The function @code{turn-on-font-lock}
212mode. This is useful in mode-hook functions. For example, to enable 208unconditionally enables Font Lock mode. This is useful in mode-hook
213Font Lock mode whenever you edit a C file, you can do this: 209functions. For example, to enable Font Lock mode whenever you edit a
210C file, you can do this:
214 211
215@example 212@example
216(add-hook 'c-mode-hook 'turn-on-font-lock) 213(add-hook 'c-mode-hook 'turn-on-font-lock)
@@ -219,9 +216,9 @@ Font Lock mode whenever you edit a C file, you can do this:
219@findex global-font-lock-mode 216@findex global-font-lock-mode
220@vindex global-font-lock-mode 217@vindex global-font-lock-mode
221 To turn on Font Lock mode automatically in all modes which support 218 To turn on Font Lock mode automatically in all modes which support
222it, customize the variable @code{global-font-lock-mode} or use the 219it, customize the variable @code{global-font-lock-mode} using the
223function @code{global-font-lock-mode} in your @file{.emacs} file, like 220Customize interface (@pxref{Easy Customization}) or use the function
224this: 221@code{global-font-lock-mode} in your @file{.emacs} file, like this:
225 222
226@example 223@example
227(global-font-lock-mode 1) 224(global-font-lock-mode 1)
@@ -641,7 +638,7 @@ last, indicating that ``this is not the real end.''
641meaning ``there's more text on this line which is scrolled 638meaning ``there's more text on this line which is scrolled
642horizontally out of view;'' clicking the mouse on one of the arrows 639horizontally out of view;'' clicking the mouse on one of the arrows
643scrolls the display horizontally in the direction of the arrow. The 640scrolls the display horizontally in the direction of the arrow. The
644fringes also indicate other things such as empty lines, or where a 641fringes can also indicate other things, such as empty lines, or where a
645program you are debugging is executing (@pxref{Debuggers}). 642program you are debugging is executing (@pxref{Debuggers}).
646 643
647@findex set-fringe-style 644@findex set-fringe-style
@@ -728,11 +725,12 @@ one large window.
728of columns (you specify how many columns). You can use this to get an 725of columns (you specify how many columns). You can use this to get an
729overview of a part of a program. 726overview of a part of a program.
730 727
731 To hide lines, type @kbd{C-x $} (@code{set-selective-display}) with a 728 To hide lines in the current buffer, type @kbd{C-x $}
732numeric argument @var{n}. Then lines with at least @var{n} columns of 729(@code{set-selective-display}) with a numeric argument @var{n}. Then
733indentation disappear from the screen. The only indication of their 730lines with at least @var{n} columns of indentation disappear from the
734presence is that three dots (@samp{@dots{}}) appear at the end of each 731screen. The only indication of their presence is that three dots
735visible line that is followed by one or more hidden ones. 732(@samp{@dots{}}) appear at the end of each visible line that is
733followed by one or more hidden ones.
736 734
737 The commands @kbd{C-n} and @kbd{C-p} move across the hidden lines as 735 The commands @kbd{C-n} and @kbd{C-p} move across the hidden lines as
738if they were not there. 736if they were not there.
diff --git a/man/ediff.texi b/man/ediff.texi
index 318ac9e5c3f..8e176a49fe0 100644
--- a/man/ediff.texi
+++ b/man/ediff.texi
@@ -155,6 +155,12 @@ Compare, Merge, and Apply Patch.
155@findex ediff 155@findex ediff
156Compare two files. 156Compare two files.
157 157
158@item ediff-backup
159@findex ediff-backup
160Compare a file with its backup. If there are several numerical backups, use
161the latest. If the file is itself a backup, then compare it with its
162original.
163
158@item ediff-buffers 164@item ediff-buffers
159@findex ediff-buffers 165@findex ediff-buffers
160Compare two buffers. 166Compare two buffers.
diff --git a/man/emacs.texi b/man/emacs.texi
index 120e2648526..c5b6cdf3246 100644
--- a/man/emacs.texi
+++ b/man/emacs.texi
@@ -12,7 +12,7 @@ This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},
12updated for Emacs version @value{EMACSVER}. 12updated for Emacs version @value{EMACSVER}.
13 13
14Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 14Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998,
151999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. 151999, 2000, 2001, 2002, 2004, 2005 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
@@ -129,13 +129,10 @@ and Sending Mail and Registers and Minibuffer.
129 129
130Indexes (nodes containing large menus) 130Indexes (nodes containing large menus)
131* Key Index:: An item for each standard Emacs key sequence. 131* Key Index:: An item for each standard Emacs key sequence.
132* Option Index:: An item for every command-line option.
132* Command Index:: An item for each command name. 133* Command Index:: An item for each command name.
133* Variable Index:: An item for each documented variable. 134* Variable Index:: An item for each documented variable.
134* Concept Index:: An item for each concept. 135* Concept Index:: An item for each concept.
135@c This is last because @ifnottex leaves an empty line.
136@ifnottex
137* Option Index:: An item for every command-line option.
138@end ifnottex
139 136
140Important General Concepts 137Important General Concepts
141* Screen:: How to interpret what you see on the screen. 138* Screen:: How to interpret what you see on the screen.
@@ -196,17 +193,14 @@ Advanced Features
196* Emacs Server:: Using Emacs as an editing server for @code{mail}, etc. 193* Emacs Server:: Using Emacs as an editing server for @code{mail}, etc.
197* Hardcopy:: Printing buffers or regions. 194* Hardcopy:: Printing buffers or regions.
198* PostScript:: Printing buffers or regions as PostScript. 195* PostScript:: Printing buffers or regions as PostScript.
199* PostScript Variables:: 196* PostScript Variables::Customizing the PostScript printing commands.
200 Customizing the PostScript printing commands.
201* Sorting:: Sorting lines, paragraphs or pages within Emacs. 197* Sorting:: Sorting lines, paragraphs or pages within Emacs.
202* Narrowing:: Restricting display and editing to a portion 198* Narrowing:: Restricting display and editing to a portion
203 of the buffer. 199 of the buffer.
204* Two-Column:: Splitting apart columns to edit them 200* Two-Column:: Splitting apart columns to edit them
205 in side-by-side windows. 201 in side-by-side windows.
206* Editing Binary Files:: 202* Editing Binary Files::Using Hexl mode to edit binary files.
207 Using Hexl mode to edit binary files. 203* Saving Emacs Sessions:: Saving Emacs state from one session to the next.
208* Saving Emacs Sessions::
209 Saving Emacs state from one session to the next.
210* Recursive Edit:: A command can allow you to do editing 204* Recursive Edit:: A command can allow you to do editing
211 "within the command". This is called a 205 "within the command". This is called a
212 "recursive editing level". 206 "recursive editing level".
@@ -224,7 +218,6 @@ Recovery from Problems
224* Contributing:: How to contribute improvements to Emacs. 218* Contributing:: How to contribute improvements to Emacs.
225* Service:: How to get help for your own Emacs needs. 219* Service:: How to get help for your own Emacs needs.
226 220
227
228Detailed Node Listing 221Detailed Node Listing
229--------------------- 222---------------------
230 223
@@ -245,12 +238,13 @@ Basic Editing Commands
245 change something. 238 change something.
246* Erasing:: Deleting and killing text. 239* Erasing:: Deleting and killing text.
247* Undo:: Undoing recent changes in the text. 240* Undo:: Undoing recent changes in the text.
248* Files: Basic Files. Visiting, creating, and saving files. 241* Basic Files:: Visiting, creating, and saving files.
249* Help: Basic Help. Asking what a character does. 242* Basic Help:: Asking what a character does.
250* Blank Lines:: Commands to make or delete blank lines. 243* Blank Lines:: Commands to make or delete blank lines.
251* Continuation Lines:: Lines too wide for the screen. 244* Continuation Lines:: Lines too wide for the screen.
252* Position Info:: What page, line, row, or column is point on? 245* Position Info:: What page, line, row, or column is point on?
253* Arguments:: Numeric arguments for repeating a command. 246* Arguments:: Numeric arguments for repeating a command.
247* Repeating:: A short-cut for repeating the previous command.
254 248
255The Minibuffer 249The Minibuffer
256 250
@@ -268,19 +262,23 @@ Help
268* Apropos:: Asking what pertains to a given topic. 262* Apropos:: Asking what pertains to a given topic.
269* Library Keywords:: Finding Lisp libraries by keywords (topics). 263* Library Keywords:: Finding Lisp libraries by keywords (topics).
270* Language Help:: Help relating to international language support. 264* Language Help:: Help relating to international language support.
265* Help Mode:: Special features of Help mode and Help buffers.
271* Misc Help:: Other help commands. 266* Misc Help:: Other help commands.
267* Help Files:: Commands to display pre-written help files.
268* Help Echo:: Help on active text and tooltips (`balloon help')
272 269
273The Mark and the Region 270The Mark and the Region
274 271
275* Setting Mark:: Commands to set the mark. 272* Setting Mark:: Commands to set the mark.
276* Transient Mark:: How to make Emacs highlight the region-- 273* Transient Mark:: How to make Emacs highlight the region--
277 when there is one. 274 when there is one.
275* Momentary Mark:: Enabling Transient Mark mode momentarily.
278* Using Region:: Summary of ways to operate on contents of the region. 276* Using Region:: Summary of ways to operate on contents of the region.
279* Marking Objects:: Commands to put region around textual units. 277* Marking Objects:: Commands to put region around textual units.
280* Mark Ring:: Previous mark positions saved so you can go back there. 278* Mark Ring:: Previous mark positions saved so you can go back there.
281* Global Mark Ring:: Previous mark positions in various buffers. 279* Global Mark Ring:: Previous mark positions in various buffers.
282 280
283Killing 281Killing and Moving Text
284 282
285* Deletion:: Commands for deleting small amounts of text and 283* Deletion:: Commands for deleting small amounts of text and
286 blank areas. 284 blank areas.
@@ -302,6 +300,7 @@ Registers
302* RegText:: Saving text in registers. 300* RegText:: Saving text in registers.
303* RegRect:: Saving rectangles in registers. 301* RegRect:: Saving rectangles in registers.
304* RegConfig:: Saving window configurations in registers. 302* RegConfig:: Saving window configurations in registers.
303* RegNumbers:: Numbers in registers.
305* RegFiles:: File names in registers. 304* RegFiles:: File names in registers.
306* Bookmarks:: Bookmarks are like registers, but persistent. 305* Bookmarks:: Bookmarks are like registers, but persistent.
307 306
@@ -355,7 +354,8 @@ Keyboard Macros
355* Keyboard Macro Query:: Making keyboard macros do different things each time. 354* Keyboard Macro Query:: Making keyboard macros do different things each time.
356* Save Keyboard Macro:: Giving keyboard macros names; saving them in files. 355* Save Keyboard Macro:: Giving keyboard macros names; saving them in files.
357* Edit Keyboard Macro:: Editing keyboard macros. 356* Edit Keyboard Macro:: Editing keyboard macros.
358* Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard macro. 357* Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard
358 macro.
359 359
360File Handling 360File Handling
361 361
@@ -382,8 +382,7 @@ Saving Files
382* Backup:: How Emacs saves the old version of your file. 382* Backup:: How Emacs saves the old version of your file.
383* Interlocking:: How Emacs protects against simultaneous editing 383* Interlocking:: How Emacs protects against simultaneous editing
384 of one file by two users. 384 of one file by two users.
385* Shadowing: File Shadowing. 385* File Shadowing:: Copying files to "shadows" automatically.
386 Copying files to "shadows" automatically.
387* Time Stamps:: Emacs can update time stamps on saved files. 386* Time Stamps:: Emacs can update time stamps on saved files.
388 387
389Version Control 388Version Control
@@ -392,7 +391,7 @@ Version Control
392* VC Mode Line:: How the mode line shows version control status. 391* VC Mode Line:: How the mode line shows version control status.
393* Basic VC Editing:: How to edit a file under version control. 392* Basic VC Editing:: How to edit a file under version control.
394* Old Versions:: Examining and comparing old versions. 393* Old Versions:: Examining and comparing old versions.
395* Secondary VC Commands:: The commands used a little less frequently. 394* Secondary VC Commands:: The commands used a little less frequently.
396* Branches:: Multiple lines of development. 395* Branches:: Multiple lines of development.
397* Remote Repositories:: Efficient access to remote CVS servers. 396* Remote Repositories:: Efficient access to remote CVS servers.
398* Snapshots:: Sets of file versions treated as a unit. 397* Snapshots:: Sets of file versions treated as a unit.
@@ -408,6 +407,8 @@ Using Multiple Buffers
408* Several Buffers:: How to go through the list of all buffers 407* Several Buffers:: How to go through the list of all buffers
409 and operate variously on several of them. 408 and operate variously on several of them.
410* Indirect Buffers:: An indirect buffer shares the text of another buffer. 409* Indirect Buffers:: An indirect buffer shares the text of another buffer.
410* Buffer Convenience:: Convenience and customization features for
411 buffer handling.
411 412
412Multiple Windows 413Multiple Windows
413 414
@@ -418,6 +419,7 @@ Multiple Windows
418* Force Same Window:: Forcing certain buffers to appear in the selected 419* Force Same Window:: Forcing certain buffers to appear in the selected
419 window rather than in another window. 420 window rather than in another window.
420* Change Window:: Deleting windows and changing their sizes. 421* Change Window:: Deleting windows and changing their sizes.
422* Window Convenience:: Convenience functions for window handling.
421 423
422Frames and X Windows 424Frames and X Windows
423 425
@@ -451,6 +453,7 @@ International Character Set Support
451* Language Environments:: Setting things up for the language you use. 453* Language Environments:: Setting things up for the language you use.
452* Input Methods:: Entering text characters not on your keyboard. 454* Input Methods:: Entering text characters not on your keyboard.
453* Select Input Method:: Specifying your choice of input methods. 455* Select Input Method:: Specifying your choice of input methods.
456* Multibyte Conversion:: How single-byte characters convert to multibyte.
454* Coding Systems:: Character set conversion when you read and 457* Coding Systems:: Character set conversion when you read and
455 write files, and so on. 458 write files, and so on.
456* Recognize Coding:: How Emacs figures out which conversion to use. 459* Recognize Coding:: How Emacs figures out which conversion to use.
@@ -458,9 +461,10 @@ International Character Set Support
458* Fontsets:: Fontsets are collections of fonts 461* Fontsets:: Fontsets are collections of fonts
459 that cover the whole spectrum of characters. 462 that cover the whole spectrum of characters.
460* Defining Fontsets:: Defining a new fontset. 463* Defining Fontsets:: Defining a new fontset.
461* Single-Byte Character Support:: 464* Undisplayable Characters::When characters don't display.
462 You can pick one European character set 465* Single-Byte Character Support:: You can pick one European character set
463 to use without multibyte characters. 466 to use without multibyte characters.
467* Charsets:: How Emacs groups its internal character codes.
464 468
465Major Modes 469Major Modes
466 470
@@ -484,16 +488,20 @@ Commands for Human Languages
484* Text Mode:: The major modes for editing text files. 488* Text Mode:: The major modes for editing text files.
485* Outline Mode:: Editing outlines. 489* Outline Mode:: Editing outlines.
486* TeX Mode:: Editing input to the formatter TeX. 490* TeX Mode:: Editing input to the formatter TeX.
491* HTML Mode:: Editing HTML, SGML, and XML files.
487* Nroff Mode:: Editing input to the formatter nroff. 492* Nroff Mode:: Editing input to the formatter nroff.
488* Formatted Text:: Editing formatted text directly in WYSIWYG fashion. 493* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
494* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
489 495
490Filling Text 496Filling Text
491 497
492* Auto Fill:: Auto Fill mode breaks long lines automatically. 498* Auto Fill:: Auto Fill mode breaks long lines automatically.
499* Refill:: Keeping paragraphs filled.
493* Fill Commands:: Commands to refill paragraphs and center lines. 500* Fill Commands:: Commands to refill paragraphs and center lines.
494* Fill Prefix:: Filling paragraphs that are indented 501* Fill Prefix:: Filling paragraphs that are indented
495 or in a comment, etc. 502 or in a comment, etc.
496* Adaptive Fill:: How Emacs can determine the fill prefix automatically. 503* Adaptive Fill:: How Emacs can determine the fill prefix automatically.
504* Longlines:: Editing text with very long lines.
497 505
498Editing Programs 506Editing Programs
499 507
@@ -501,8 +509,8 @@ Editing Programs
501* Defuns:: Commands to operate on major top-level parts 509* Defuns:: Commands to operate on major top-level parts
502 of a program. 510 of a program.
503* Program Indent:: Adjusting indentation to show the nesting. 511* Program Indent:: Adjusting indentation to show the nesting.
504* Comments:: Inserting, killing, and aligning comments.
505* Parentheses:: Commands that operate on parentheses. 512* Parentheses:: Commands that operate on parentheses.
513* Comments:: Inserting, killing, and aligning comments.
506* Documentation:: Getting documentation of functions you plan to call. 514* Documentation:: Getting documentation of functions you plan to call.
507* Hideshow:: Displaying blocks selectively. 515* Hideshow:: Displaying blocks selectively.
508* Symbol Completion:: Completion on symbol names of your program or language. 516* Symbol Completion:: Completion on symbol names of your program or language.
@@ -559,12 +567,12 @@ C and Related Modes
559 567
560Fortran Mode 568Fortran Mode
561 569
562* Motion: Fortran Motion. Moving point by statements or subprograms. 570* Fortran Motion:: Moving point by statements or subprograms.
563* Indent: Fortran Indent. Indentation commands for Fortran. 571* Fortran Indent:: Indentation commands for Fortran.
564* Comments: Fortran Comments. Inserting and aligning comments. 572* Fortran Comments:: Inserting and aligning comments.
565* Autofill: Fortran Autofill. Auto fill minor mode for Fortran. 573* Fortran Autofill:: Auto fill minor mode for Fortran.
566* Columns: Fortran Columns. Measuring columns for valid Fortran. 574* Fortran Columns:: Measuring columns for valid Fortran.
567* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. 575* Fortran Abbrev:: Built-in abbrevs for Fortran keywords.
568 576
569Compiling and Testing Programs 577Compiling and Testing Programs
570 578
@@ -580,8 +588,8 @@ Compiling and Testing Programs
580 with different facilities for running 588 with different facilities for running
581 the Lisp programs. 589 the Lisp programs.
582* Lisp Libraries:: Creating Lisp programs to run in Emacs. 590* Lisp Libraries:: Creating Lisp programs to run in Emacs.
583* Lisp Interaction:: Executing Lisp in an Emacs buffer.
584* Lisp Eval:: Executing a single Lisp expression in Emacs. 591* Lisp Eval:: Executing a single Lisp expression in Emacs.
592* Lisp Interaction:: Executing Lisp in an Emacs buffer.
585* External Lisp:: Communicating through Emacs with a separate Lisp. 593* External Lisp:: Communicating through Emacs with a separate Lisp.
586 594
587Running Debuggers Under Emacs 595Running Debuggers Under Emacs
@@ -590,6 +598,9 @@ Running Debuggers Under Emacs
590* Debugger Operation:: Connection between the debugger and source buffers. 598* Debugger Operation:: Connection between the debugger and source buffers.
591* Commands of GUD:: Key bindings for common commands. 599* Commands of GUD:: Key bindings for common commands.
592* GUD Customization:: Defining your own commands for GUD. 600* GUD Customization:: Defining your own commands for GUD.
601* GDB Graphical Interface:: An enhanced mode that uses GDB features to
602 implement a graphical debugging environment through
603 Emacs.
593 604
594Maintaining Programs 605Maintaining Programs
595 606
@@ -605,6 +616,7 @@ Tags Tables
605 616
606* Tag Syntax:: Tag syntax for various types of code and text files. 617* Tag Syntax:: Tag syntax for various types of code and text files.
607* Create Tags Table:: Creating a tags table with @code{etags}. 618* Create Tags Table:: Creating a tags table with @code{etags}.
619* Etags Regexps:: Create arbitrary tags using regular expressions.
608* Select Tags Table:: How to visit a tags table. 620* Select Tags Table:: How to visit a tags table.
609* Find Tag:: Commands to find the definition of a specific tag. 621* Find Tag:: Commands to find the definition of a specific tag.
610* Tags Search:: Using a tags table for searching and replacing. 622* Tags Search:: Using a tags table for searching and replacing.
@@ -631,6 +643,7 @@ Abbrevs
631* Editing Abbrevs:: Viewing or editing the entire list of defined abbrevs. 643* Editing Abbrevs:: Viewing or editing the entire list of defined abbrevs.
632* Saving Abbrevs:: Saving the entire list of abbrevs for another session. 644* Saving Abbrevs:: Saving the entire list of abbrevs for another session.
633* Dynamic Abbrevs:: Abbreviations for words already in the buffer. 645* Dynamic Abbrevs:: Abbreviations for words already in the buffer.
646* Dabbrev Customization:: What is a word, for dynamic abbrevs. Case handling.
634 647
635Editing Pictures 648Editing Pictures
636 649
@@ -664,11 +677,15 @@ Reading Mail with Rmail
664* Rmail Summary:: Summaries show brief info on many messages. 677* Rmail Summary:: Summaries show brief info on many messages.
665* Rmail Sorting:: Sorting messages in Rmail. 678* Rmail Sorting:: Sorting messages in Rmail.
666* Rmail Display:: How Rmail displays a message; customization. 679* Rmail Display:: How Rmail displays a message; customization.
680* Rmail Coding:: How Rmail handles decoding character sets.
667* Rmail Editing:: Editing message text and headers in Rmail. 681* Rmail Editing:: Editing message text and headers in Rmail.
668* Rmail Digest:: Extracting the messages from a digest message. 682* Rmail Digest:: Extracting the messages from a digest message.
669* Out of Rmail:: Converting an Rmail file to mailbox format. 683* Out of Rmail:: Converting an Rmail file to mailbox format.
670* Rmail Rot13:: Reading messages encoded in the rot13 code. 684* Rmail Rot13:: Reading messages encoded in the rot13 code.
671* Movemail:: More details of fetching new mail. 685* Movemail:: More details of fetching new mail.
686* Remote Mailboxes:: Retrieving Mail from Remote Mailboxes.
687* Other Mailbox Formats:: Retrieving Mail from Local Mailboxes in
688 Various Formats
672 689
673Dired, the Directory Editor 690Dired, the Directory Editor
674 691
@@ -688,7 +705,6 @@ Dired, the Directory Editor
688* Hiding Subdirectories:: Making subdirectories visible or invisible. 705* Hiding Subdirectories:: Making subdirectories visible or invisible.
689* Dired Updating:: Discarding lines for files of no interest. 706* Dired Updating:: Discarding lines for files of no interest.
690* Dired and Find:: Using `find' to choose the files for Dired. 707* Dired and Find:: Using `find' to choose the files for Dired.
691* Dired and Find:: Using `find' to choose the files for Dired.
692* Wdired:: Operating on files by editing the Dired buffer. 708* Wdired:: Operating on files by editing the Dired buffer.
693* Misc Dired Features:: Various other features. 709* Misc Dired Features:: Various other features.
694 710
@@ -698,14 +714,16 @@ The Calendar and the Diary
698* Scroll Calendar:: Bringing earlier or later months onto the screen. 714* Scroll Calendar:: Bringing earlier or later months onto the screen.
699* Counting Days:: How many days are there between two dates? 715* Counting Days:: How many days are there between two dates?
700* General Calendar:: Exiting or recomputing the calendar. 716* General Calendar:: Exiting or recomputing the calendar.
701* LaTeX Calendar:: Print a calendar using LaTeX. 717* LaTeX Calendar:: Print a calendar using LaTeX.
702* Holidays:: Displaying dates of holidays. 718* Holidays:: Displaying dates of holidays.
703* Sunrise/Sunset:: Displaying local times of sunrise and sunset. 719* Sunrise/Sunset:: Displaying local times of sunrise and sunset.
704* Lunar Phases:: Displaying phases of the moon. 720* Lunar Phases:: Displaying phases of the moon.
705* Other Calendars:: Converting dates to other calendar systems. 721* Other Calendars:: Converting dates to other calendar systems.
706* Diary:: Displaying events from your diary. 722* Diary:: Displaying events from your diary.
707* Appointments:: Reminders when it's time to do something. 723* Appointments:: Reminders when it's time to do something.
724* Importing Diary:: Converting diary events to/from other formats.
708* Daylight Savings:: How to specify when daylight savings time is active. 725* Daylight Savings:: How to specify when daylight savings time is active.
726* Time Intervals:: Keeping track of time intervals.
709 727
710Movement in the Calendar 728Movement in the Calendar
711 729
@@ -741,27 +759,40 @@ Running Shell Commands from Emacs
741* Single Shell:: How to run one shell command and return. 759* Single Shell:: How to run one shell command and return.
742* Interactive Shell:: Permanent shell taking input via Emacs. 760* Interactive Shell:: Permanent shell taking input via Emacs.
743* Shell Mode:: Special Emacs commands used with permanent shell. 761* Shell Mode:: Special Emacs commands used with permanent shell.
762* Shell Prompts:: Two ways to recognize shell prompts.
744* Shell History:: Repeating previous commands in a shell buffer. 763* Shell History:: Repeating previous commands in a shell buffer.
764* Directory Tracking:: Keeping track when the subshell changes directory.
745* Shell Options:: Options for customizing Shell mode. 765* Shell Options:: Options for customizing Shell mode.
766* Terminal emulator:: An Emacs window as a terminal emulator.
767* Term Mode:: Special Emacs commands used in Term mode.
768* Paging in Term:: Paging in the terminal emulator.
746* Remote Host:: Connecting to another computer. 769* Remote Host:: Connecting to another computer.
747 770
771Using Emacs as a Server
772
773* Invoking emacsclient:: Emacs client startup options.
774
775Hyperlinking and Navigation Features
776
777* Browse-URL:: Following URLs.
778* Goto-address:: Activating URLs.
779* FFAP:: Finding files etc. at point.
780
748Customization 781Customization
749 782
750* Minor Modes:: Each minor mode is one feature you can turn on 783* Minor Modes:: Each minor mode is one feature you can turn on
751 independently of any others. 784 independently of any others.
752* Easy Customization:: 785* Easy Customization:: Convenient way to browse and change user options.
753 Convenient way to browse and change user options.
754* Variables:: Many Emacs commands examine Emacs variables 786* Variables:: Many Emacs commands examine Emacs variables
755 to decide what to do; by setting variables, 787 to decide what to do; by setting variables,
756 you can control their functioning. 788 you can control their functioning.
757* Key Bindings:: The keymaps say what command each key runs. 789* Key Bindings:: The keymaps say what command each key runs.
758 By changing them, you can "redefine keys". 790 By changing them, you can "redefine keys".
759* Keyboard Translations:: 791* Keyboard Translations:: If your keyboard passes an undesired code
760 If your keyboard passes an undesired code 792 for a key, you can tell Emacs to
761 for a key, you can tell Emacs to 793 substitute another code.
762 substitute another code.
763* Syntax:: The syntax table controls how words and 794* Syntax:: The syntax table controls how words and
764 expressions are parsed. 795 expressions are parsed.
765* Init File:: How to write common customizations in the 796* Init File:: How to write common customizations in the
766 @file{.emacs} file. 797 @file{.emacs} file.
767 798
@@ -783,6 +814,7 @@ Customizing Key Bindings
783* Init Rebinding:: Rebinding keys with your init file, @file{.emacs}. 814* Init Rebinding:: Rebinding keys with your init file, @file{.emacs}.
784* Function Keys:: Rebinding terminal function keys. 815* Function Keys:: Rebinding terminal function keys.
785* Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on. 816* Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on.
817* Non-ASCII Rebinding:: Rebinding non-@acronym{ASCII} characters such as Latin-1.
786* Mouse Buttons:: Rebinding mouse buttons in Emacs. 818* Mouse Buttons:: Rebinding mouse buttons in Emacs.
787* Disabling:: Disabling a command means confirmation is required 819* Disabling:: Disabling a command means confirmation is required
788 before it can be executed. This is done to protect 820 before it can be executed. This is done to protect
@@ -803,18 +835,19 @@ Dealing with Emacs Trouble
803* Text Garbled:: Garbage in the text. 835* Text Garbled:: Garbage in the text.
804* Unasked-for Search:: Spontaneous entry to incremental search. 836* Unasked-for Search:: Spontaneous entry to incremental search.
805* Memory Full:: How to cope when you run out of memory. 837* Memory Full:: How to cope when you run out of memory.
838* After a Crash:: Recovering editing in an Emacs session that crashed.
806* Emergency Escape:: Emergency escape--- 839* Emergency Escape:: Emergency escape---
807 What to do if Emacs stops responding. 840 What to do if Emacs stops responding.
808* Total Frustration:: When you are at your wits' end. 841* Total Frustration:: When you are at your wits' end.
809 842
810Reporting Bugs 843Reporting Bugs
811 844
812* Criteria: Bug Criteria. Have you really found a bug? 845* Bug Criteria:: Have you really found a bug?
813* Understanding Bug Reporting:: How to report a bug effectively. 846* Understanding Bug Reporting:: How to report a bug effectively.
814* Checklist:: Steps to follow for a good bug report. 847* Checklist:: Steps to follow for a good bug report.
815* Sending Patches:: How to send a patch for GNU Emacs. 848* Sending Patches:: How to send a patch for GNU Emacs.
816 849
817Command Line Options and Arguments 850Command Line Arguments for Emacs Invocation
818 851
819* Action Arguments:: Arguments to visit files, load libraries, 852* Action Arguments:: Arguments to visit files, load libraries,
820 and call functions. 853 and call functions.
@@ -831,18 +864,29 @@ Command Line Options and Arguments
831* Icons X:: Choosing what sort of icon to use, under X. 864* Icons X:: Choosing what sort of icon to use, under X.
832* Misc X:: Other display options. 865* Misc X:: Other display options.
833 866
834X Resources 867Environment Variables
868
869* General Variables:: Environment variables that all versions of Emacs use.
870* Misc Variables:: Certain system specific variables.
871* MS-Windows Registry:: An alternative to the environment on MS-Windows.
872
873X Options and Resources
835 874
836* Resources:: Using X resources with Emacs (in general). 875* Resources:: Using X resources with Emacs (in general).
837* Table of Resources:: Table of specific X resources that affect Emacs. 876* Table of Resources:: Table of specific X resources that affect Emacs.
838* Face Resources:: X resources for customizing faces. 877* Face Resources:: X resources for customizing faces.
839* Lucid Resources:: X resources for Lucid menus. 878* Lucid Resources:: X resources for Lucid menus.
840* LessTif Resources:: X resources for LessTif and Motif menus. 879* LessTif Resources:: X resources for LessTif and Motif menus.
880* GTK resources:: Resources for GTK widgets.
841 881
842Environment Variables 882Emacs and the Mac OS
843 883
844* General Variables:: Environment variables that all versions of Emacs use. 884* Mac Input:: Keyboard input on the Mac.
845* Misc Variables:: Certain system specific variables. 885* Mac International:: International character sets on the Mac.
886* Mac Environment Variables:: Setting environment variables for Emacs.
887* Mac Directories:: Volumes and directories on the Mac.
888* Mac Font Specs:: Specifying fonts on the Mac.
889* Mac Functions:: Mac-specific Lisp functions.
846 890
847MS-DOS and Windows 95/98/NT 891MS-DOS and Windows 95/98/NT
848 892
@@ -852,6 +896,7 @@ MS-DOS and Windows 95/98/NT
852* MS-DOS File Names:: File-name conventions on MS-DOS. 896* MS-DOS File Names:: File-name conventions on MS-DOS.
853* Text and Binary:: Text files on MS-DOS use CRLF to separate lines. 897* Text and Binary:: Text files on MS-DOS use CRLF to separate lines.
854* MS-DOS Printing:: How to specify the printer on MS-DOS. 898* MS-DOS Printing:: How to specify the printer on MS-DOS.
899* MS-DOS and MULE:: Support for internationalization on MS-DOS.
855* MS-DOS Processes:: Running subprocesses on MS-DOS. 900* MS-DOS Processes:: Running subprocesses on MS-DOS.
856* Windows Processes:: Running subprocesses on Windows. 901* Windows Processes:: Running subprocesses on Windows.
857* Windows System Menu:: Controlling what the ALT key does. 902* Windows System Menu:: Controlling what the ALT key does.
diff --git a/man/files.texi b/man/files.texi
index d7510862465..6be4d0f467d 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985,86,87,93,94,95,97,99, 2000, 2001, 2004 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
3@c Free Software Foundation, Inc. 3@c 2001, 2004, 2005 Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Files, Buffers, Keyboard Macros, Top 5@node Files, Buffers, Keyboard Macros, Top
6@chapter File Handling 6@chapter File Handling
@@ -505,8 +505,7 @@ you can control how these modes handle final newlines.
505* Backup:: How Emacs saves the old version of your file. 505* Backup:: How Emacs saves the old version of your file.
506* Interlocking:: How Emacs protects against simultaneous editing 506* Interlocking:: How Emacs protects against simultaneous editing
507 of one file by two users. 507 of one file by two users.
508* Shadowing: File Shadowing. 508* Shadowing: File Shadowing. Copying files to "shadows" automatically.
509 Copying files to "shadows" automatically.
510* Time Stamps:: Emacs can update time stamps on saved files. 509* Time Stamps:: Emacs can update time stamps on saved files.
511@end menu 510@end menu
512 511
diff --git a/man/frames.texi b/man/frames.texi
index 68d406b45e3..2b2c61af133 100644
--- a/man/frames.texi
+++ b/man/frames.texi
@@ -979,7 +979,7 @@ tooltips.
979 979
980 @dfn{Help tooltips} typically display over text---including the mode 980 @dfn{Help tooltips} typically display over text---including the mode
981line---but may be also available for many other parts of the Emacs 981line---but may be also available for many other parts of the Emacs
982frame such as the toolbar and menu items. 982frame such as the tool bar and menu items.
983 983
984@findex tooltip-mode 984@findex tooltip-mode
985 You can toggle help tooltips (Tooltip mode) with the command 985 You can toggle help tooltips (Tooltip mode) with the command
diff --git a/man/killing.texi b/man/killing.texi
index 9950e405cdd..006af200c06 100644
--- a/man/killing.texi
+++ b/man/killing.texi
@@ -157,7 +157,7 @@ leaves @var{n} spaces after point.
157 @kbd{C-x C-o} (@code{delete-blank-lines}) deletes all blank lines 157 @kbd{C-x C-o} (@code{delete-blank-lines}) deletes all blank lines
158after the current line. If the current line is blank, it deletes all 158after the current line. If the current line is blank, it deletes all
159blank lines preceding the current line as well (leaving one blank line, 159blank lines preceding the current line as well (leaving one blank line,
160the current line). 160the current line). On a solitary blank line, it deletes that line.
161 161
162 @kbd{M-^} (@code{delete-indentation}) joins the current line and the 162 @kbd{M-^} (@code{delete-indentation}) joins the current line and the
163previous line, by deleting a newline and all surrounding spaces, usually 163previous line, by deleting a newline and all surrounding spaces, usually
diff --git a/man/kmacro.texi b/man/kmacro.texi
index 5ef34f6c929..e19c1434813 100644
--- a/man/kmacro.texi
+++ b/man/kmacro.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2002,2003,2004 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c Free Software Foundation, Inc. 3@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Keyboard Macros, Files, Fixit, Top 5@node Keyboard Macros, Files, Fixit, Top
6@chapter Keyboard Macros 6@chapter Keyboard Macros
@@ -38,7 +38,8 @@ intelligent or general. For such things, Lisp must be used.
38* Keyboard Macro Query:: Making keyboard macros do different things each time. 38* Keyboard Macro Query:: Making keyboard macros do different things each time.
39* Save Keyboard Macro:: Giving keyboard macros names; saving them in files. 39* Save Keyboard Macro:: Giving keyboard macros names; saving them in files.
40* Edit Keyboard Macro:: Editing keyboard macros. 40* Edit Keyboard Macro:: Editing keyboard macros.
41* Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard macro. 41* Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard
42 macro.
42@end menu 43@end menu
43 44
44@node Basic Keyboard Macro 45@node Basic Keyboard Macro
diff --git a/man/maintaining.texi b/man/maintaining.texi
index 347a15d3c95..b11ae6b6cdd 100644
--- a/man/maintaining.texi
+++ b/man/maintaining.texi
@@ -963,10 +963,9 @@ variant B, and the common ancestor.
963 963
964 After the comparison is done and the buffers are prepared, the 964 After the comparison is done and the buffers are prepared, the
965interactive merging starts. You control the merging by typing special 965interactive merging starts. You control the merging by typing special
966@dfn{merge commands} in the merge buffer. The merge buffer shows you a 966@dfn{merge commands} in the merge buffer (@pxref{Merge Commands}).
967full merged text, not just differences. For each run of differences 967For each run of differences between the input texts, you can choose
968between the input texts, you can choose which one of them to keep, or 968which one of them to keep, or edit them both together.
969edit them both together.
970 969
971 The merge buffer uses a special major mode, Emerge mode, with commands 970 The merge buffer uses a special major mode, Emerge mode, with commands
972for making these choices. But you can also edit the buffer with 971for making these choices. But you can also edit the buffer with
diff --git a/man/major.texi b/man/major.texi
index 28f0ff0f32f..23e0f8e116f 100644
--- a/man/major.texi
+++ b/man/major.texi
@@ -176,7 +176,8 @@ mode is taken from the previously current buffer.
176mode Emacs would choose automatically: use the command @kbd{M-x 176mode Emacs would choose automatically: use the command @kbd{M-x
177normal-mode} to do this. This is the same function that 177normal-mode} to do this. This is the same function that
178@code{find-file} calls to choose the major mode. It also processes 178@code{find-file} calls to choose the major mode. It also processes
179the file's local variables list (if any). 179the file's @samp{-*-} line or local variables list (if any).
180@xref{File Variables}.
180 181
181@vindex change-major-mode-with-file-name 182@vindex change-major-mode-with-file-name
182 The commands @kbd{C-x C-w} and @code{set-visited-file-name} change to 183 The commands @kbd{C-x C-w} and @code{set-visited-file-name} change to
diff --git a/man/mini.texi b/man/mini.texi
index fbe1d1e3909..0a775000722 100644
--- a/man/mini.texi
+++ b/man/mini.texi
@@ -260,7 +260,14 @@ Complete the minibuffer text before point, but don't go beyond one word
260(@code{minibuffer-complete-word}). 260(@code{minibuffer-complete-word}).
261@item @key{RET} 261@item @key{RET}
262Submit the text in the minibuffer as the argument, possibly completing 262Submit the text in the minibuffer as the argument, possibly completing
263first as described below (@code{minibuffer-complete-and-exit}). 263first as described
264@iftex
265in the next subsection (@code{minibuffer-complete-and-exit}).
266@end iftex
267@ifnottex
268in the next node (@code{minibuffer-complete-and-exit}). @xref{Strict
269Completion}.
270@end ifnottex
264@item ? 271@item ?
265Display a list of all possible completions of the text in the minibuffer 272Display a list of all possible completions of the text in the minibuffer
266(@code{minibuffer-list-completions}). 273(@code{minibuffer-list-completions}).
@@ -410,7 +417,7 @@ completion commands are available on @kbd{M-@key{TAB}} (or
410@vindex PC-include-file-path 417@vindex PC-include-file-path
411@vindex PC-disable-includes 418@vindex PC-disable-includes
412 Another feature of Partial Completion mode is to extend 419 Another feature of Partial Completion mode is to extend
413@code{find-file} so that the @samp{<@var{include}>} stands for the 420@code{find-file} so that @samp{<@var{include}>} stands for the
414file named @var{include} in some directory in the path 421file named @var{include} in some directory in the path
415@code{PC-include-file-path}. If you set @code{PC-disable-includes} to 422@code{PC-include-file-path}. If you set @code{PC-disable-includes} to
416non-@code{nil}, this feature is disabled. 423non-@code{nil}, this feature is disabled.
diff --git a/man/misc.texi b/man/misc.texi
index d6471166cc4..68dd7356479 100644
--- a/man/misc.texi
+++ b/man/misc.texi
@@ -1,6 +1,6 @@
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, 2004 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c Free Software Foundation, Inc. 3@c 2004, 2005 Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@iftex 5@iftex
6@chapter Miscellaneous Commands 6@chapter Miscellaneous Commands
@@ -1314,7 +1314,7 @@ in Emacs. Note that server buffers created in this way are not killed
1314automatically when you finish with them. 1314automatically when you finish with them.
1315 1315
1316@menu 1316@menu
1317* Invoking emacsclient:: 1317* Invoking emacsclient:: Emacs client startup options.
1318@end menu 1318@end menu
1319 1319
1320@node Invoking emacsclient,, Emacs Server, Emacs Server 1320@node Invoking emacsclient,, Emacs Server, Emacs Server
diff --git a/man/mule.texi b/man/mule.texi
index c085839cbd8..985d0b9afb5 100644
--- a/man/mule.texi
+++ b/man/mule.texi
@@ -1,5 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc. 2@c Copyright (C) 1997, 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
4@node International, Major Modes, Frames, Top 4@node International, Major Modes, Frames, Top
5@chapter International Character Set Support 5@chapter International Character Set Support
@@ -97,9 +97,8 @@ correctly; see @ref{Language Environments, locales}.
97 that cover the whole spectrum of characters. 97 that cover the whole spectrum of characters.
98* Defining Fontsets:: Defining a new fontset. 98* Defining Fontsets:: Defining a new fontset.
99* Undisplayable Characters:: When characters don't display. 99* Undisplayable Characters:: When characters don't display.
100* Single-Byte Character Support:: 100* Single-Byte Character Support:: You can pick one European character set
101 You can pick one European character set 101 to use without multibyte characters.
102 to use without multibyte characters.
103* Charsets:: How Emacs groups its internal character codes. 102* Charsets:: How Emacs groups its internal character codes.
104@end menu 103@end menu
105 104
diff --git a/man/programs.texi b/man/programs.texi
index 98e60d0385c..83d8d6aa0b8 100644
--- a/man/programs.texi
+++ b/man/programs.texi
@@ -1235,9 +1235,10 @@ mode constantly displays in the echo area the argument list for the
1235function being called at point. (In other words, it finds the 1235function being called at point. (In other words, it finds the
1236function call that point is contained in, and displays the argument 1236function call that point is contained in, and displays the argument
1237list of that function.) If point is over a documented variable, it 1237list of that function.) If point is over a documented variable, it
1238shows the variable's docstring. Eldoc mode applies in Emacs Lisp and 1238shows the first line of the variable's docstring. Eldoc mode applies
1239Lisp Interaction modes only. Use the command @kbd{M-x eldoc-mode} to 1239in Emacs Lisp and Lisp Interaction modes, and perhaps a few others
1240enable or disable this feature. 1240that provide special support for looking up doc strings. Use the
1241command @kbd{M-x eldoc-mode} to enable or disable this feature.
1241 1242
1242@node Hideshow 1243@node Hideshow
1243@section Hideshow minor mode 1244@section Hideshow minor mode
@@ -2022,7 +2023,7 @@ value 5, line numbers are right-justified to end in column 4.
2022 Simply inserting a line number is enough to indent it according to 2023 Simply inserting a line number is enough to indent it according to
2023these rules. As each digit is inserted, the indentation is recomputed. 2024these rules. As each digit is inserted, the indentation is recomputed.
2024To turn off this feature, set the variable 2025To turn off this feature, set the variable
2025@code{fortran-electric-line-number} to @code{nil}. 2026@code{fortran-electric-line-number} to @code{nil}.
2026 2027
2027 2028
2028@node ForIndent Conv 2029@node ForIndent Conv
diff --git a/man/reftex.texi b/man/reftex.texi
index 0d3c5bdc32e..32db61e0eea 100644
--- a/man/reftex.texi
+++ b/man/reftex.texi
@@ -7,9 +7,9 @@
7@syncodeindex fn cp 7@syncodeindex fn cp
8 8
9@c Version and Contact Info 9@c Version and Contact Info
10@set VERSION 4.24 10@set VERSION 4.28
11@set EDITION 4.24 11@set EDITION 4.28
12@set DATE March 2005 12@set DATE May 2005
13@set AUCTEXSITE @uref{http://www.nongnu.org/auctex/,AUCTeX distribution site} 13@set AUCTEXSITE @uref{http://www.nongnu.org/auctex/,AUCTeX distribution site}
14@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/,maintainers webpage} 14@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/,maintainers webpage}
15@set MAINTAINER Carsten Dominik 15@set MAINTAINER Carsten Dominik
@@ -25,8 +25,7 @@ citations and indices for LaTeX documents with Emacs.
25This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for 25This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for
26@b{Ref@TeX{}} @value{VERSION} 26@b{Ref@TeX{}} @value{VERSION}
27 27
28Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2005 28Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
29Free Software Foundation, Inc.
30 29
31@quotation 30@quotation
32Permission is granted to copy, distribute and/or modify this document 31Permission is granted to copy, distribute and/or modify this document
@@ -1817,22 +1816,25 @@ keymap @code{reftex-select-bib-map} may be used.
1817@cindex Citation styles, @code{natbib} 1816@cindex Citation styles, @code{natbib}
1818@cindex Citation styles, @code{harvard} 1817@cindex Citation styles, @code{harvard}
1819@cindex Citation styles, @code{chicago} 1818@cindex Citation styles, @code{chicago}
1819@cindex Citation styles, @code{jurabib}
1820@cindex @code{natbib}, citation style 1820@cindex @code{natbib}, citation style
1821@cindex @code{harvard}, citation style 1821@cindex @code{harvard}, citation style
1822@cindex @code{chicago}, citation style 1822@cindex @code{chicago}, citation style
1823@cindex @code{jurabib}, citation style
1823 1824
1824@vindex reftex-cite-format 1825@vindex reftex-cite-format
1825The standard LaTeX macro @code{\cite} works well with numeric or simple 1826The standard LaTeX macro @code{\cite} works well with numeric or simple
1826key citations. To deal with the more complex task of author-year 1827key citations. To deal with the more complex task of author-year
1827citations as used in many natural sciences, a variety of packages has 1828citations as used in many natural sciences, a variety of packages has
1828been developed which define derived forms of the @code{\cite} macro. 1829been developed which define derived forms of the @code{\cite} macro.
1829@b{Ref@TeX{}} can be configured to produce these citation macros as well by 1830@b{Ref@TeX{}} can be configured to produce these citation macros as well
1830setting the variable @code{reftex-cite-format}. For the most commonly 1831by setting the variable @code{reftex-cite-format}. For the most
1831used packages (@code{natbib}, @code{harvard}, @code{chicago}) this may 1832commonly used packages (@code{natbib}, @code{harvard}, @code{chicago},
1832be done from the menu, under @code{Ref->Citation Styles}. Since there 1833@code{jurabib}) this may be done from the menu, under
1833are usually several macros to create the citations, executing 1834@code{Ref->Citation Styles}. Since there are usually several macros to
1834@code{reftex-citation} (@kbd{C-c [}) starts by prompting for the correct 1835create the citations, executing @code{reftex-citation} (@kbd{C-c [})
1835macro. For the Natbib style, this looks like this: 1836starts by prompting for the correct macro. For the Natbib style, this
1837looks like this:
1836 1838
1837@example 1839@example
1838SELECT A CITATION FORMAT 1840SELECT A CITATION FORMAT
@@ -3520,15 +3522,15 @@ the Emacs 19 version supports many but not all features described in
3520this manual. 3522this manual.
3521 3523
3522Thanks to the people on the Net who have used @b{Ref@TeX{}} and helped 3524Thanks to the people on the Net who have used @b{Ref@TeX{}} and helped
3523developing it with their reports. In particular thanks to @i{Fran 3525developing it with their reports. In particular thanks to @i{Ralf
3524Burstall, Alastair Burt, Lars Clausen, Soren Dayton, Stephen Eglen, 3526Angeli, Fran Burstall, Alastair Burt, Lars Clausen, Soren Dayton,
3525Karl Eichwalder, Erik Frisk, Peter Galbraith, Kai Grossjohann, Frank 3527Stephen Eglen, Karl Eichwalder, Erik Frisk, Peter Galbraith, Kai
3526Harrell, Peter Heslin, Stephan Heuel, Alan Ho, Lute Kamstra, Dieter 3528Grossjohann, Frank Harrell, Till A. Heilmann, Peter Heslin, Stephan
3527Kraft, David Kastrup, Adrian Lanz, Juri Linkov, Rory Molinari, Stefan 3529Heuel, Alan Ho, Lute Kamstra, Dieter Kraft, David Kastrup, Adrian Lanz,
3528Monnier, Laurent Mugnier, Dan Nicolaescu, Sudeep Kumar Palat, Daniel 3530Juri Linkov, Rory Molinari, Stefan Monnier, Laurent Mugnier, Dan
3529Polani, Alan Shutko, Robin Socha, Richard Stanton, Allan Strand, Jan 3531Nicolaescu, Sudeep Kumar Palat, Daniel Polani, Alan Shutko, Robin Socha,
3530Vroonhof, Christoph Wedler, Alan Williams, Roland Winkler, 3532Richard Stanton, Allan Strand, Jan Vroonhof, Christoph Wedler, Alan
3531Hans-Christoph Wirth, Eli Zaretskii}. 3533Williams, Roland Winkler, Hans-Christoph Wirth, Eli Zaretskii}.
3532 3534
3533 3535
3534The @code{view-crossref} feature was inspired by @i{Peter Galbraith's} 3536The @code{view-crossref} feature was inspired by @i{Peter Galbraith's}
@@ -5152,10 +5154,18 @@ options for a specific part of @b{Ref@TeX{}}.
5152 5154
5153Here is a list of recent changes to @b{Ref@TeX{}}. 5155Here is a list of recent changes to @b{Ref@TeX{}}.
5154 5156
5157@noindent @b{Version 4.28}
5158@itemize @bullet
5159@item Support for the Jurabib package.
5160@item Improvements when selecting several items in a selection buffer.
5161@end itemize
5162
5155@noindent @b{Version 4.26} 5163@noindent @b{Version 4.26}
5156@itemize @bullet 5164@itemize @bullet
5157@item 5165@item
5158Bug fixes only. 5166Support for global incremental search.
5167@item
5168Some improvements for XEmacs compatibility.
5159@end itemize 5169@end itemize
5160 5170
5161@noindent @b{Version 4.25} 5171@noindent @b{Version 4.25}
diff --git a/man/trampver.texi b/man/trampver.texi
index 3e9f32a7fae..33a0aacbb9e 100644
--- a/man/trampver.texi
+++ b/man/trampver.texi
@@ -4,7 +4,7 @@
4@c In the Tramp CVS, the version number is auto-frobbed from 4@c In the Tramp CVS, the version number is auto-frobbed from
5@c configure.ac, so you should edit that file and run 5@c configure.ac, so you should edit that file and run
6@c "autoconf && ./configure" to change the version number. 6@c "autoconf && ./configure" to change the version number.
7@set trampver 2.0.48 7@set trampver 2.0.49
8 8
9@c Other flags from configuration 9@c Other flags from configuration
10@set prefix /usr/local 10@set prefix /usr/local
diff --git a/man/url.texi b/man/url.texi
index 64e4e76a3ab..0380b833ed8 100644
--- a/man/url.texi
+++ b/man/url.texi
@@ -93,7 +93,7 @@ URIs have the form @var{scheme}:@var{scheme-specific-part}, where the
93@var{scheme}s supported by this library are described below. 93@var{scheme}s supported by this library are described below.
94@xref{Supported URL Types}. 94@xref{Supported URL Types}.
95 95
96FTP NFS, HTTP, HTTPS, @code{rlogin}, @code{telnet}, tn3270, 96FTP, NFS, HTTP, HTTPS, @code{rlogin}, @code{telnet}, tn3270,
97IRC and gopher URLs all have the form 97IRC and gopher URLs all have the form
98 98
99@example 99@example
@@ -110,9 +110,8 @@ the possible exception of @code{telnet}, it is rare for ports to be
110specified, and it is possible using a non-standard port may have 110specified, and it is possible using a non-standard port may have
111undesired consequences if a different service is listening on that 111undesired consequences if a different service is listening on that
112port (e.g., an HTTP URL specifying the SMTP port can cause mail to be 112port (e.g., an HTTP URL specifying the SMTP port can cause mail to be
113sent).@c , but @xref{Other Variables, url-bad-port-list}. 113sent). @c , but @xref{Other Variables, url-bad-port-list}.
114The meaning of 114The meaning of the @var{path} component depends on the service.
115the @var{path} component depends on the service.
116 115
117@menu 116@menu
118* Configuration:: 117* Configuration::
diff --git a/src/.gdbinit b/src/.gdbinit
index c3c7e6fd428..f1cc2d35d4b 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -112,21 +112,45 @@ define pitx
112 if ($it->start.pos.charpos != $it->start.pos.bytepos) 112 if ($it->start.pos.charpos != $it->start.pos.bytepos)
113 printf "[%d]", $it->start.pos.bytepos 113 printf "[%d]", $it->start.pos.bytepos
114 end 114 end
115 printf " stop=%d ", $it->stop_charpos 115 printf " end=%d", $it->end_charpos
116 output $it->what 116 printf " stop=%d", $it->stop_charpos
117 printf " face=%d", $it->face_id
118 if ($it->multibyte_p)
119 printf " MB"
120 end
121 if ($it->header_line_p)
122 printf " HL"
123 end
124 if ($it->n_overlay_strings > 0)
125 printf " nov=%d"
126 end
127 if ($it->sp != 0)
128 printf " sp=%d", $it->sp
129 end
117 if ($it->what == IT_CHARACTER) 130 if ($it->what == IT_CHARACTER)
118 if ($it->len == 1 && $it->c >= ' ' && it->c < 255) 131 if ($it->len == 1 && $it->c >= ' ' && it->c < 255)
119 printf "['%c']", $it->c 132 printf "ch='%c'", $it->c
120 else 133 else
121 printf "[%d,%d]", $it->c, $it->len 134 printf "ch=[%d,%d]", $it->c, $it->len
135 end
136 else
137 if ($it->what == IT_IMAGE)
138 printf "IMAGE=%d", $it->image_id
139 else
140 output $it->what
122 end 141 end
123 end 142 end
124 printf " next=" 143 if ($it->method != GET_FROM_BUFFER)
125 output $it->method 144 printf " next="
145 output $it->method
146 end
126 printf "\n" 147 printf "\n"
148 if ($it->region_beg_charpos >= 0)
149 printf "reg=%d-%d ", $it->region_beg_charpos, $it->region_end_charpos
150 end
127 printf "vpos=%d hpos=%d", $it->vpos, $it->hpos, 151 printf "vpos=%d hpos=%d", $it->vpos, $it->hpos,
128 printf " y=%d lvy=%d", $it->current_y, $it->last_visible_y 152 printf " y=%d lvy=%d", $it->current_y, $it->last_visible_y
129 printf " x=%d lvx=%d", $it->current_x, $it->last_visible_x 153 printf " x=%d vx=%d-%d", $it->current_x, $it->first_visible_x, $it->last_visible_x
130 printf " a+d=%d+%d=%d", $it->ascent, $it->descent, $it->ascent+$it->descent 154 printf " a+d=%d+%d=%d", $it->ascent, $it->descent, $it->ascent+$it->descent
131 printf " max=%d+%d=%d", $it->max_ascent, $it->max_descent, $it->max_ascent+$it->max_descent 155 printf " max=%d+%d=%d", $it->max_ascent, $it->max_descent, $it->max_ascent+$it->max_descent
132 printf "\n" 156 printf "\n"
diff --git a/src/ChangeLog b/src/ChangeLog
index a0999f79f64..10d3bd31bda 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,90 @@
12005-05-19 Nick Roberts <nickrob@snap.net.nz>
2
3 * keyboard.c (syms_of_keyboard): Remove lisp variables
4 post-command-idle-hook and post-command-idle-delay.
5 (command_loop_1): Don't try to execute post-command-idle-hook.
6
72005-05-16 Kim F. Storm <storm@cua.dk>
8
9 * xdisp.c (handle_display_prop): Handle empty replacement.
10 (handle_single_display_spec): Return -1 for empty replacement.
11
12 * keyboard.c (adjust_point_for_property): Skip empty overlay string.
13
14 * .gdbinit (pitx): Print more info about iterator.
15
162005-05-16 Andreas Schwab <schwab@suse.de>
17
18 * unexmacosx.c (unexec_realloc): Move declarations before
19 statements.
20
212005-05-14 Richard M. Stallman <rms@gnu.org>
22
23 * xdisp.c (message3): Call cancel_echoing.
24
25 * alloc.c (Fmemory_full_p): New function.
26 (syms_of_alloc): defsubr it.
27
28 * process.c (send_process_trap): Unblock SIGPIPE.
29 (send_process): Reset SIGPIPE handler before reporting error.
30
312005-05-14 Nick Roberts <nickrob@snap.net.nz>
32
33 * emacs.c (syms_of_emacs): Fix doc string for system-type.
34
352005-05-13 Richard M. Stallman <rms@gnu.org>
36
37 * fileio.c (Ffind_file_name_handler): Handle lambda-exp as handler.
38 (Finsert_file_contents): If we read 0 bytes from a special file,
39 unlock the visited file if we locked it.
40 (Fmake_symbolic_link, Frecent_auto_save_p): Doc fixes.
41 (Ffile_exists_p, Ffile_symlink_p): Doc fixes.
42
432005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
44
45 * emacs.c (main) [MAC_OS8]: Call init_atimer before mac_term_init.
46
47 * keyboard.c (readable_events) [USE_TOOLKIT_SCROLL_BARS]: Regard
48 toolkit scroll bar thumb drag events as squeezable and prevent
49 redisplay from being paused by them.
50
51 * mac.c [!MAC_OSX]: Include keyboard.h and syssignal.h.
52 [!MAC_OSX] (target_ticks): Remove variable.
53 [!MAC_OSX] (check_alarm, pause, index): Remove functions.
54 [!MAC_OSX && __MRC__] (sys_strftime): Likewise.
55 [!MAC_OSX] (select): If fd 0 is not set in rfds and some input
56 event occurs before timeout, behave as if the function were
57 interrupted.
58 [!MAC_OSX] (sigblock, sigsetmask, alarm): Simulate SIGALRM
59 handling using Time Manager routines.
60 [!MAC_OSX] (mac_atimer_task, mac_atimer_qlink, signal_mask): New
61 variables.
62 [!MAC_OSX] (mac_atimer_handler, set_mac_atimer, remove_mac_atimer)
63 (setitimer): New functions.
64
65 * macfns.c, macmenu.c: Don't include signal.h.
66
67 * macterm.c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
68 Rename from get_control_part_bound. All callers changed.
69 (x_scroll_bar_clear): New function.
70 (x_clear_frame): Use it.
71 (XTset_vertical_scroll_bar): Don't call Draw1Control.
72 (x_scroll_bar_handle_click): Change type of second argument from
73 int to ControlPartCode.
74 (check_alarm): Remove declaration.
75 (XTread_Socket) [!TARGET_API_MAC_CARBON]: Don't call it.
76 (XTread_Socket): Use ControlPartCode instead of SInt16.
77
782005-05-13 Nozomu Ando <nand@mac.com>
79
80 * unexmacosx.c: Include assert.h.
81 (MACOSX_MALLOC_MULT16): New define.
82 [MACOSX_MALLOC_MULT16] (ptr_in_unexec_regions): Determine whether
83 ptr is in unexec regions by checking it is multiple of 16.
84 (unexec_malloc_header_t): New typedef.
85 (unexec_malloc, unexec_realloc, unexec_free): Store and use
86 allocated size information in unexec_malloc_header.
87
12005-05-10 Richard M. Stallman <rms@gnu.org> 882005-05-10 Richard M. Stallman <rms@gnu.org>
2 89
3 * xterm.c (noinclude): Add #undef. 90 * xterm.c (noinclude): Add #undef.
diff --git a/src/alloc.c b/src/alloc.c
index 1aa07b01da2..1eeea72ea7e 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -534,6 +534,12 @@ memory_full ()
534 Fsignal (Qnil, Vmemory_signal_data); 534 Fsignal (Qnil, Vmemory_signal_data);
535} 535}
536 536
537DEFUN ("memory-full-p", Fmemory_full_p, Smemory_full_p, 0, 0, 0,
538 doc: /* t if memory is nearly full, nil otherwise. */)
539 ()
540{
541 return (spare_memory ? Qnil : Qt);
542}
537 543
538/* Called if we can't allocate relocatable space for a buffer. */ 544/* Called if we can't allocate relocatable space for a buffer. */
539 545
@@ -6035,6 +6041,7 @@ The time is in seconds as a floating point value. */);
6035 DEFVAR_INT ("gcs-done", &gcs_done, 6041 DEFVAR_INT ("gcs-done", &gcs_done,
6036 doc: /* Accumulated number of garbage collections done. */); 6042 doc: /* Accumulated number of garbage collections done. */);
6037 6043
6044 defsubr (&Smemory_full_p);
6038 defsubr (&Scons); 6045 defsubr (&Scons);
6039 defsubr (&Slist); 6046 defsubr (&Slist);
6040 defsubr (&Svector); 6047 defsubr (&Svector);
diff --git a/src/emacs.c b/src/emacs.c
index 597a86d2eec..65a6d549845 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1326,6 +1326,7 @@ main (argc, argv
1326 syms_of_search (); 1326 syms_of_search ();
1327 syms_of_frame (); 1327 syms_of_frame ();
1328 1328
1329 init_atimer ();
1329 mac_term_init (build_string ("Mac"), NULL, NULL); 1330 mac_term_init (build_string ("Mac"), NULL, NULL);
1330 init_keyboard (); 1331 init_keyboard ();
1331#endif 1332#endif
@@ -1351,7 +1352,9 @@ main (argc, argv
1351#ifdef CLASH_DETECTION 1352#ifdef CLASH_DETECTION
1352 init_filelock (); 1353 init_filelock ();
1353#endif 1354#endif
1355#ifndef MAC_OS8
1354 init_atimer (); 1356 init_atimer ();
1357#endif
1355 running_asynch_code = 0; 1358 running_asynch_code = 0;
1356 1359
1357 /* Handle --unibyte and the EMACS_UNIBYTE envvar, 1360 /* Handle --unibyte and the EMACS_UNIBYTE envvar,
@@ -2447,16 +2450,16 @@ syms_of_emacs ()
2447Many arguments are deleted from the list as they are processed. */); 2450Many arguments are deleted from the list as they are processed. */);
2448 2451
2449 DEFVAR_LISP ("system-type", &Vsystem_type, 2452 DEFVAR_LISP ("system-type", &Vsystem_type,
2450+ doc: /* Value is symbol indicating type of operating system you are using. 2453 doc: /* Value is symbol indicating type of operating system you are using.
2451+Special values: 2454Special values:
2452+ `gnu/linux' compiled for a GNU/Linux system. 2455 `gnu/linux' compiled for a GNU/Linux system.
2453+ `darwin' compiled for Darwin (GNU-Darwin, Mac OS X, ...). 2456 `darwin' compiled for Darwin (GNU-Darwin, Mac OS X, ...).
2454+ `macos' compiled for Mac OS 9. 2457 `macos' compiled for Mac OS 9.
2455+ `ms-dos' compiled as an MS-DOS application. 2458 `ms-dos' compiled as an MS-DOS application.
2456+ `windows-nt' compiled as a native W32 application. 2459 `windows-nt' compiled as a native W32 application.
2457+ `cygwin' compiled using the Cygwin library. 2460 `cygwin' compiled using the Cygwin library.
2458+ `vax-vms' or `axp-vms': compiled for a (Open)VMS system. 2461 `vax-vms' or `axp-vms': compiled for a (Open)VMS system.
2459+Anything else indicates some sort of Unix system. */); 2462Anything else indicates some sort of Unix system. */);
2460 Vsystem_type = intern (SYSTEM_TYPE); 2463 Vsystem_type = intern (SYSTEM_TYPE);
2461 2464
2462 DEFVAR_LISP ("system-configuration", &Vsystem_configuration, 2465 DEFVAR_LISP ("system-configuration", &Vsystem_configuration,
diff --git a/src/fileio.c b/src/fileio.c
index 1d6100a2a81..58912a7cb8c 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -377,7 +377,10 @@ use the standard functions without calling themselves recursively. */)
377 Lisp_Object string = XCAR (elt); 377 Lisp_Object string = XCAR (elt);
378 int match_pos; 378 int match_pos;
379 Lisp_Object handler = XCDR (elt); 379 Lisp_Object handler = XCDR (elt);
380 Lisp_Object operations = Fget (handler, Qoperations); 380 Lisp_Object operations = Qnil;
381
382 if (SYMBOLP (handler))
383 operations = Fget (handler, Qoperations);
381 384
382 if (STRINGP (string) 385 if (STRINGP (string)
383 && (match_pos = fast_string_match (string, filename)) > pos 386 && (match_pos = fast_string_match (string, filename)) > pos
@@ -2867,7 +2870,8 @@ This is what happens in interactive use with M-x. */)
2867#ifdef S_IFLNK 2870#ifdef S_IFLNK
2868DEFUN ("make-symbolic-link", Fmake_symbolic_link, Smake_symbolic_link, 2, 3, 2871DEFUN ("make-symbolic-link", Fmake_symbolic_link, Smake_symbolic_link, 2, 3,
2869 "FMake symbolic link to file: \nGMake symbolic link to file %s: \np", 2872 "FMake symbolic link to file: \nGMake symbolic link to file %s: \np",
2870 doc: /* Make a symbolic link to FILENAME, named LINKNAME. Both args must be strings. 2873 doc: /* Make a symbolic link to FILENAME, named LINKNAME.
2874Both args must be strings.
2871Signals a `file-already-exists' error if a file LINKNAME already exists 2875Signals a `file-already-exists' error if a file LINKNAME already exists
2872unless optional third argument OK-IF-ALREADY-EXISTS is non-nil. 2876unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.
2873A number as third arg means request confirmation if LINKNAME already exists. 2877A number as third arg means request confirmation if LINKNAME already exists.
@@ -3065,8 +3069,10 @@ check_writable (filename)
3065} 3069}
3066 3070
3067DEFUN ("file-exists-p", Ffile_exists_p, Sfile_exists_p, 1, 1, 0, 3071DEFUN ("file-exists-p", Ffile_exists_p, Sfile_exists_p, 1, 1, 0,
3068 doc: /* Return t if file FILENAME exists. (This does not mean you can read it.) 3072 doc: /* Return t if file FILENAME exists (whether or not you can read it.)
3069See also `file-readable-p' and `file-attributes'. */) 3073See also `file-readable-p' and `file-attributes'.
3074This returns nil for a symlink to a nonexistent file.
3075Use `file-symlink-p' to test for such links. */)
3070 (filename) 3076 (filename)
3071 Lisp_Object filename; 3077 Lisp_Object filename;
3072{ 3078{
@@ -3243,7 +3249,10 @@ If there is no error, returns nil. */)
3243DEFUN ("file-symlink-p", Ffile_symlink_p, Sfile_symlink_p, 1, 1, 0, 3249DEFUN ("file-symlink-p", Ffile_symlink_p, Sfile_symlink_p, 1, 1, 0,
3244 doc: /* Return non-nil if file FILENAME is the name of a symbolic link. 3250 doc: /* Return non-nil if file FILENAME is the name of a symbolic link.
3245The value is the link target, as a string. 3251The value is the link target, as a string.
3246Otherwise returns nil. */) 3252Otherwise it returns nil.
3253
3254This function returns t when given the name of a symlink that
3255points to a nonexistent file. */)
3247 (filename) 3256 (filename)
3248 Lisp_Object filename; 3257 Lisp_Object filename;
3249{ 3258{
@@ -3733,6 +3742,8 @@ actually used. */)
3733 int set_coding_system = 0; 3742 int set_coding_system = 0;
3734 Lisp_Object coding_system; 3743 Lisp_Object coding_system;
3735 int read_quit = 0; 3744 int read_quit = 0;
3745 int old_Vdeactivate_mark = Vdeactivate_mark;
3746 int we_locked_file = 0;
3736 3747
3737 if (current_buffer->base_buffer && ! NILP (visit)) 3748 if (current_buffer->base_buffer && ! NILP (visit))
3738 error ("Cannot do file visiting in an indirect buffer"); 3749 error ("Cannot do file visiting in an indirect buffer");
@@ -4381,8 +4392,17 @@ actually used. */)
4381 /* For a special file, all we can do is guess. */ 4392 /* For a special file, all we can do is guess. */
4382 total = READ_BUF_SIZE; 4393 total = READ_BUF_SIZE;
4383 4394
4384 if (NILP (visit) && total > 0) 4395 if (NILP (visit) && inserted > 0)
4385 prepare_to_modify_buffer (PT, PT, NULL); 4396 {
4397#ifdef CLASH_DETECTION
4398 if (!NILP (current_buffer->file_truename)
4399 /* Make binding buffer-file-name to nil effective. */
4400 && !NILP (current_buffer->filename)
4401 && SAVE_MODIFF >= MODIFF)
4402 we_locked_file = 1;
4403#endif /* CLASH_DETECTION */
4404 prepare_to_modify_buffer (GPT, GPT, NULL);
4405 }
4386 4406
4387 move_gap (PT); 4407 move_gap (PT);
4388 if (GAP_SIZE < total) 4408 if (GAP_SIZE < total)
@@ -4472,6 +4492,18 @@ actually used. */)
4472 } 4492 }
4473 } 4493 }
4474 4494
4495 /* Now we have read all the file data into the gap.
4496 If it was empty, undo marking the buffer modified. */
4497
4498 if (inserted == 0)
4499 {
4500#ifdef CLASH_DETECTION
4501 if (we_locked_file)
4502 unlock_file (current_buffer->file_truename);
4503#endif
4504 Vdeactivate_mark = old_Vdeactivate_mark;
4505 }
4506
4475 /* Make the text read part of the buffer. */ 4507 /* Make the text read part of the buffer. */
4476 GAP_SIZE -= inserted; 4508 GAP_SIZE -= inserted;
4477 GPT += inserted; 4509 GPT += inserted;
@@ -5952,7 +5984,10 @@ DEFUN ("clear-buffer-auto-save-failure", Fclear_buffer_auto_save_failure,
5952 5984
5953DEFUN ("recent-auto-save-p", Frecent_auto_save_p, Srecent_auto_save_p, 5985DEFUN ("recent-auto-save-p", Frecent_auto_save_p, Srecent_auto_save_p,
5954 0, 0, 0, 5986 0, 0, 0,
5955 doc: /* Return t if current buffer has been auto-saved since last read in or saved. */) 5987 doc: /* Return t if current buffer has been auto-saved recently.
5988More precisely, if it has been auto-saved since last read from or saved
5989in the visited file. If the buffer has no visited file,
5990then any auto-save counts as "recent". */)
5956 () 5991 ()
5957{ 5992{
5958 return (SAVE_MODIFF < current_buffer->auto_save_modified) ? Qt : Qnil; 5993 return (SAVE_MODIFF < current_buffer->auto_save_modified) ? Qt : Qnil;
diff --git a/src/keyboard.c b/src/keyboard.c
index dd4767585b7..0e7fb1c2719 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -450,11 +450,6 @@ Lisp_Object Qecho_area_clear_hook;
450Lisp_Object Qpre_command_hook, Vpre_command_hook; 450Lisp_Object Qpre_command_hook, Vpre_command_hook;
451Lisp_Object Qpost_command_hook, Vpost_command_hook; 451Lisp_Object Qpost_command_hook, Vpost_command_hook;
452Lisp_Object Qcommand_hook_internal, Vcommand_hook_internal; 452Lisp_Object Qcommand_hook_internal, Vcommand_hook_internal;
453/* Hook run after a command if there's no more input soon. */
454Lisp_Object Qpost_command_idle_hook, Vpost_command_idle_hook;
455
456/* Delay time in microseconds before running post-command-idle-hook. */
457EMACS_INT post_command_idle_delay;
458 453
459/* List of deferred actions to be performed at a later time. 454/* List of deferred actions to be performed at a later time.
460 The precise format isn't relevant here; we just check whether it is nil. */ 455 The precise format isn't relevant here; we just check whether it is nil. */
@@ -1447,16 +1442,6 @@ command_loop_1 ()
1447 1442
1448 if (!NILP (Vdeferred_action_list)) 1443 if (!NILP (Vdeferred_action_list))
1449 safe_run_hooks (Qdeferred_action_function); 1444 safe_run_hooks (Qdeferred_action_function);
1450
1451 if (!NILP (Vpost_command_idle_hook) && !NILP (Vrun_hooks))
1452 {
1453 if (NILP (Vunread_command_events)
1454 && NILP (Vunread_input_method_events)
1455 && NILP (Vunread_post_input_method_events)
1456 && NILP (Vexecuting_kbd_macro)
1457 && !NILP (sit_for (0, post_command_idle_delay, 0, 1, 1)))
1458 safe_run_hooks (Qpost_command_idle_hook);
1459 }
1460 } 1445 }
1461 1446
1462 Vmemory_full = Qnil; 1447 Vmemory_full = Qnil;
@@ -1822,16 +1807,6 @@ command_loop_1 ()
1822 if (!NILP (Vdeferred_action_list)) 1807 if (!NILP (Vdeferred_action_list))
1823 safe_run_hooks (Qdeferred_action_function); 1808 safe_run_hooks (Qdeferred_action_function);
1824 1809
1825 if (!NILP (Vpost_command_idle_hook) && !NILP (Vrun_hooks))
1826 {
1827 if (NILP (Vunread_command_events)
1828 && NILP (Vunread_input_method_events)
1829 && NILP (Vunread_post_input_method_events)
1830 && NILP (Vexecuting_kbd_macro)
1831 && !NILP (sit_for (0, post_command_idle_delay, 0, 1, 1)))
1832 safe_run_hooks (Qpost_command_idle_hook);
1833 }
1834
1835 /* If there is a prefix argument, 1810 /* If there is a prefix argument,
1836 1) We don't want Vlast_command to be ``universal-argument'' 1811 1) We don't want Vlast_command to be ``universal-argument''
1837 (that would be dumb), so don't set Vlast_command, 1812 (that would be dumb), so don't set Vlast_command,
@@ -1947,10 +1922,13 @@ adjust_point_for_property (last_pt, modified)
1947 ? get_property_and_range (PT, Qdisplay, &val, &beg, &end, Qnil) 1922 ? get_property_and_range (PT, Qdisplay, &val, &beg, &end, Qnil)
1948 : (beg = OVERLAY_POSITION (OVERLAY_START (overlay)), 1923 : (beg = OVERLAY_POSITION (OVERLAY_START (overlay)),
1949 end = OVERLAY_POSITION (OVERLAY_END (overlay)))) 1924 end = OVERLAY_POSITION (OVERLAY_END (overlay))))
1950 && beg < PT) /* && end > PT <- It's always the case. */ 1925 && (beg < PT /* && end > PT <- It's always the case. */
1926 || (beg <= PT && STRINGP (val) && SCHARS (val) == 0)))
1951 { 1927 {
1952 xassert (end > PT); 1928 xassert (end > PT);
1953 SET_PT (PT < last_pt ? beg : end); 1929 SET_PT (PT < last_pt
1930 ? (STRINGP (val) && SCHARS (val) == 0 ? beg - 1 : beg)
1931 : end);
1954 check_composition = check_invisible = 1; 1932 check_composition = check_invisible = 1;
1955 } 1933 }
1956 check_display = 0; 1934 check_display = 0;
@@ -3530,9 +3508,11 @@ readable_events (flags)
3530 READABLE_EVENTS_FILTER_EVENTS is set, report it as empty. */ 3508 READABLE_EVENTS_FILTER_EVENTS is set, report it as empty. */
3531 if (kbd_fetch_ptr != kbd_store_ptr) 3509 if (kbd_fetch_ptr != kbd_store_ptr)
3532 { 3510 {
3533 int have_live_event = 1; 3511 if (flags & (READABLE_EVENTS_FILTER_EVENTS
3534 3512#ifdef USE_TOOLKIT_SCROLL_BARS
3535 if (flags & READABLE_EVENTS_FILTER_EVENTS) 3513 | READABLE_EVENTS_IGNORE_SQUEEZABLES
3514#endif
3515 ))
3536 { 3516 {
3537 struct input_event *event; 3517 struct input_event *event;
3538 3518
@@ -3540,16 +3520,29 @@ readable_events (flags)
3540 ? kbd_fetch_ptr 3520 ? kbd_fetch_ptr
3541 : kbd_buffer); 3521 : kbd_buffer);
3542 3522
3543 while (have_live_event && event->kind == FOCUS_IN_EVENT) 3523 do
3544 { 3524 {
3545 event++; 3525 if (!(
3526#ifdef USE_TOOLKIT_SCROLL_BARS
3527 (flags & READABLE_EVENTS_FILTER_EVENTS) &&
3528#endif
3529 event->kind == FOCUS_IN_EVENT)
3530#ifdef USE_TOOLKIT_SCROLL_BARS
3531 && !((flags & READABLE_EVENTS_IGNORE_SQUEEZABLES)
3532 && event->kind == SCROLL_BAR_CLICK_EVENT
3533 && event->part == scroll_bar_handle
3534 && event->modifiers == 0)
3535#endif
3536 )
3537 return 1;
3538 event++;
3546 if (event == kbd_buffer + KBD_BUFFER_SIZE) 3539 if (event == kbd_buffer + KBD_BUFFER_SIZE)
3547 event = kbd_buffer; 3540 event = kbd_buffer;
3548 if (event == kbd_store_ptr) 3541 }
3549 have_live_event = 0; 3542 while (event != kbd_store_ptr);
3550 }
3551 } 3543 }
3552 if (have_live_event) return 1; 3544 else
3545 return 1;
3553 } 3546 }
3554 3547
3555#ifdef HAVE_MOUSE 3548#ifdef HAVE_MOUSE
@@ -6544,7 +6537,7 @@ lucid_event_type_list_p (object)
6544 If READABLE_EVENTS_FILTER_EVENTS is set in FLAGS, ignore internal 6537 If READABLE_EVENTS_FILTER_EVENTS is set in FLAGS, ignore internal
6545 events (FOCUS_IN_EVENT). 6538 events (FOCUS_IN_EVENT).
6546 If READABLE_EVENTS_IGNORE_SQUEEZABLES is set in FLAGS, ignore mouse 6539 If READABLE_EVENTS_IGNORE_SQUEEZABLES is set in FLAGS, ignore mouse
6547 movements. */ 6540 movements and toolkit scroll bar thumb drags. */
6548 6541
6549static void 6542static void
6550get_input_pending (addr, flags) 6543get_input_pending (addr, flags)
@@ -10835,9 +10828,6 @@ syms_of_keyboard ()
10835 Qpost_command_hook = intern ("post-command-hook"); 10828 Qpost_command_hook = intern ("post-command-hook");
10836 staticpro (&Qpost_command_hook); 10829 staticpro (&Qpost_command_hook);
10837 10830
10838 Qpost_command_idle_hook = intern ("post-command-idle-hook");
10839 staticpro (&Qpost_command_idle_hook);
10840
10841 Qdeferred_action_function = intern ("deferred-action-function"); 10831 Qdeferred_action_function = intern ("deferred-action-function");
10842 staticpro (&Qdeferred_action_function); 10832 staticpro (&Qdeferred_action_function);
10843 10833
@@ -11283,16 +11273,6 @@ the hook value is set to nil, since otherwise the error
11283might happen repeatedly and make Emacs nonfunctional. */); 11273might happen repeatedly and make Emacs nonfunctional. */);
11284 Vpost_command_hook = Qnil; 11274 Vpost_command_hook = Qnil;
11285 11275
11286 DEFVAR_LISP ("post-command-idle-hook", &Vpost_command_idle_hook,
11287 doc: /* Normal hook run after each command is executed, if idle.
11288Errors running the hook are caught and ignored. */);
11289 Vpost_command_idle_hook = Qnil;
11290
11291 DEFVAR_INT ("post-command-idle-delay", &post_command_idle_delay,
11292 doc: /* Delay time before running `post-command-idle-hook'.
11293This is measured in microseconds. */);
11294 post_command_idle_delay = 100000;
11295
11296#if 0 11276#if 0
11297 DEFVAR_LISP ("echo-area-clear-hook", ..., 11277 DEFVAR_LISP ("echo-area-clear-hook", ...,
11298 doc: /* Normal hook run when clearing the echo area. */); 11278 doc: /* Normal hook run when clearing the echo area. */);
diff --git a/src/mac.c b/src/mac.c
index 14257fdee94..eaf4f029cf1 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -1672,37 +1672,7 @@ sys_fopen (const char *name, const char *mode)
1672} 1672}
1673 1673
1674 1674
1675long target_ticks = 0; 1675#include "keyboard.h"
1676
1677#ifdef __MRC__
1678__sigfun alarm_signal_func = (__sigfun) 0;
1679#elif __MWERKS__
1680__signal_func_ptr alarm_signal_func = (__signal_func_ptr) 0;
1681#else /* not __MRC__ and not __MWERKS__ */
1682You lose!!!
1683#endif /* not __MRC__ and not __MWERKS__ */
1684
1685
1686/* These functions simulate SIG_ALRM. The stub for function signal
1687 stores the signal handler function in alarm_signal_func if a
1688 SIG_ALRM is encountered. check_alarm is called in XTread_socket,
1689 which emacs calls periodically. A pending alarm is represented by
1690 a non-zero target_ticks value. check_alarm calls the handler
1691 function pointed to by alarm_signal_func if one has been set up and
1692 an alarm is pending. */
1693
1694void
1695check_alarm ()
1696{
1697 if (target_ticks && TickCount () > target_ticks)
1698 {
1699 target_ticks = 0;
1700 if (alarm_signal_func)
1701 (*alarm_signal_func)(SIGALRM);
1702 }
1703}
1704
1705
1706extern Boolean mac_wait_next_event (EventRecord *, UInt32, Boolean); 1676extern Boolean mac_wait_next_event (EventRecord *, UInt32, Boolean);
1707 1677
1708int 1678int
@@ -1713,25 +1683,17 @@ select (n, rfds, wfds, efds, timeout)
1713 SELECT_TYPE *efds; 1683 SELECT_TYPE *efds;
1714 struct timeval *timeout; 1684 struct timeval *timeout;
1715{ 1685{
1716#if TARGET_API_MAC_CARBON
1717 OSErr err; 1686 OSErr err;
1687#if TARGET_API_MAC_CARBON
1718 EventTimeout timeout_sec = 1688 EventTimeout timeout_sec =
1719 (timeout 1689 (timeout
1720 ? (EMACS_SECS (*timeout) * kEventDurationSecond 1690 ? (EMACS_SECS (*timeout) * kEventDurationSecond
1721 + EMACS_USECS (*timeout) * kEventDurationMicrosecond) 1691 + EMACS_USECS (*timeout) * kEventDurationMicrosecond)
1722 : kEventDurationForever); 1692 : kEventDurationForever);
1723 1693
1724 if (FD_ISSET (0, rfds)) 1694 BLOCK_INPUT;
1725 { 1695 err = ReceiveNextEvent (0, NULL, timeout_sec, kEventLeaveInQueue, NULL);
1726 BLOCK_INPUT; 1696 UNBLOCK_INPUT;
1727 err = ReceiveNextEvent (0, NULL, timeout_sec, kEventLeaveInQueue, NULL);
1728 UNBLOCK_INPUT;
1729 if (err == noErr)
1730 return 1;
1731 else
1732 FD_ZERO (rfds);
1733 }
1734 return 0;
1735#else /* not TARGET_API_MAC_CARBON */ 1697#else /* not TARGET_API_MAC_CARBON */
1736 EventRecord e; 1698 EventRecord e;
1737 UInt32 sleep_time = EMACS_SECS (*timeout) * 60 + 1699 UInt32 sleep_time = EMACS_SECS (*timeout) * 60 +
@@ -1746,47 +1708,62 @@ select (n, rfds, wfds, efds, timeout)
1746 read_avail_input which in turn calls XTread_socket to poll for 1708 read_avail_input which in turn calls XTread_socket to poll for
1747 these events. Otherwise these never get processed except but a 1709 these events. Otherwise these never get processed except but a
1748 very slow poll timer. */ 1710 very slow poll timer. */
1749 if (FD_ISSET (0, rfds) && mac_wait_next_event (&e, sleep_time, false)) 1711 if (mac_wait_next_event (&e, sleep_time, false))
1750 return 1; 1712 err = noErr;
1751 1713 else
1752 return 0; 1714 err = -9875; /* eventLoopTimedOutErr */
1753#endif /* not TARGET_API_MAC_CARBON */ 1715#endif /* not TARGET_API_MAC_CARBON */
1754}
1755
1756
1757/* Called in sys_select to wait for an alarm signal to arrive. */
1758
1759int
1760pause ()
1761{
1762 EventRecord e;
1763 unsigned long tick;
1764
1765 if (!target_ticks) /* no alarm pending */
1766 return -1;
1767 1716
1768 if ((tick = TickCount ()) < target_ticks) 1717 if (FD_ISSET (0, rfds))
1769 WaitNextEvent (0, &e, target_ticks - tick, NULL); /* Accept no event; 1718 if (err == noErr)
1770 just wait. by T.I. */ 1719 return 1;
1720 else
1721 {
1722 FD_ZERO (rfds);
1723 return 0;
1724 }
1725 else
1726 if (err == noErr)
1727 {
1728 if (input_polling_used ())
1729 {
1730 /* It could be confusing if a real alarm arrives while
1731 processing the fake one. Turn it off and let the
1732 handler reset it. */
1733 extern void poll_for_input_1 P_ ((void));
1734 int old_poll_suppress_count = poll_suppress_count;
1735 poll_suppress_count = 1;
1736 poll_for_input_1 ();
1737 poll_suppress_count = old_poll_suppress_count;
1738 }
1739 errno = EINTR;
1740 return -1;
1741 }
1742 else
1743 return 0;
1744}
1771 1745
1772 target_ticks = 0;
1773 if (alarm_signal_func)
1774 (*alarm_signal_func)(SIGALRM);
1775 1746
1776 return 0; 1747/* Simulation of SIGALRM. The stub for function signal stores the
1777} 1748 signal handler function in alarm_signal_func if a SIGALRM is
1749 encountered. */
1778 1750
1751#include <signal.h>
1752#include "syssignal.h"
1779 1753
1780int 1754static TMTask mac_atimer_task;
1781alarm (int seconds)
1782{
1783 long remaining = target_ticks ? (TickCount () - target_ticks) / 60 : 0;
1784 1755
1785 target_ticks = seconds ? TickCount () + 60 * seconds : 0; 1756static QElemPtr mac_atimer_qlink = (QElemPtr) &mac_atimer_task;
1786 1757
1787 return (remaining < 0) ? 0 : (unsigned int) remaining; 1758static int signal_mask = 0;
1788}
1789 1759
1760#ifdef __MRC__
1761__sigfun alarm_signal_func = (__sigfun) 0;
1762#elif __MWERKS__
1763__signal_func_ptr alarm_signal_func = (__signal_func_ptr) 0;
1764#else /* not __MRC__ and not __MWERKS__ */
1765You lose!!!
1766#endif /* not __MRC__ and not __MWERKS__ */
1790 1767
1791#undef signal 1768#undef signal
1792#ifdef __MRC__ 1769#ifdef __MRC__
@@ -1819,6 +1796,128 @@ sys_signal (int signal_num, __signal_func_ptr signal_func)
1819} 1796}
1820 1797
1821 1798
1799static pascal void
1800mac_atimer_handler (qlink)
1801 TMTaskPtr qlink;
1802{
1803 if (alarm_signal_func)
1804 (alarm_signal_func) (SIGALRM);
1805}
1806
1807
1808static void
1809set_mac_atimer (count)
1810 long count;
1811{
1812 static TimerUPP mac_atimer_handlerUPP = NULL;
1813
1814 if (mac_atimer_handlerUPP == NULL)
1815 mac_atimer_handlerUPP = NewTimerUPP (mac_atimer_handler);
1816 mac_atimer_task.tmCount = 0;
1817 mac_atimer_task.tmAddr = mac_atimer_handlerUPP;
1818 mac_atimer_qlink = (QElemPtr) &mac_atimer_task;
1819 InsTime (mac_atimer_qlink);
1820 if (count)
1821 PrimeTime (mac_atimer_qlink, count);
1822}
1823
1824
1825int
1826remove_mac_atimer (remaining_count)
1827 long *remaining_count;
1828{
1829 if (mac_atimer_qlink)
1830 {
1831 RmvTime (mac_atimer_qlink);
1832 if (remaining_count)
1833 *remaining_count = mac_atimer_task.tmCount;
1834 mac_atimer_qlink = NULL;
1835
1836 return 0;
1837 }
1838 else
1839 return -1;
1840}
1841
1842
1843int
1844sigblock (int mask)
1845{
1846 int old_mask = signal_mask;
1847
1848 signal_mask |= mask;
1849
1850 if ((old_mask ^ signal_mask) & sigmask (SIGALRM))
1851 remove_mac_atimer (NULL);
1852
1853 return old_mask;
1854}
1855
1856
1857int
1858sigsetmask (int mask)
1859{
1860 int old_mask = signal_mask;
1861
1862 signal_mask = mask;
1863
1864 if ((old_mask ^ signal_mask) & sigmask (SIGALRM))
1865 if (signal_mask & sigmask (SIGALRM))
1866 remove_mac_atimer (NULL);
1867 else
1868 set_mac_atimer (mac_atimer_task.tmCount);
1869
1870 return old_mask;
1871}
1872
1873
1874int
1875alarm (int seconds)
1876{
1877 long remaining_count;
1878
1879 if (remove_mac_atimer (&remaining_count) == 0)
1880 {
1881 set_mac_atimer (seconds * 1000);
1882
1883 return remaining_count / 1000;
1884 }
1885 else
1886 {
1887 mac_atimer_task.tmCount = seconds * 1000;
1888
1889 return 0;
1890 }
1891}
1892
1893
1894int
1895setitimer (which, value, ovalue)
1896 int which;
1897 const struct itimerval *value;
1898 struct itimerval *ovalue;
1899{
1900 long remaining_count;
1901 long count = (EMACS_SECS (value->it_value) * 1000
1902 + (EMACS_USECS (value->it_value) + 999) / 1000);
1903
1904 if (remove_mac_atimer (&remaining_count) == 0)
1905 {
1906 if (ovalue)
1907 {
1908 bzero (ovalue, sizeof (*ovalue));
1909 EMACS_SET_SECS_USECS (ovalue->it_value, remaining_count / 1000,
1910 (remaining_count % 1000) * 1000);
1911 }
1912 set_mac_atimer (count);
1913 }
1914 else
1915 mac_atimer_task.tmCount = count;
1916
1917 return 0;
1918}
1919
1920
1822/* gettimeofday should return the amount of time (in a timeval 1921/* gettimeofday should return the amount of time (in a timeval
1823 structure) since midnight today. The toolbox function Microseconds 1922 structure) since midnight today. The toolbox function Microseconds
1824 returns the number of microseconds (in a UnsignedWide value) since 1923 returns the number of microseconds (in a UnsignedWide value) since
@@ -1946,35 +2045,6 @@ sys_time (time_t *timer)
1946} 2045}
1947 2046
1948 2047
1949/* MPW strftime broken for "%p" format */
1950#ifdef __MRC__
1951#undef strftime
1952#include <time.h>
1953size_t
1954sys_strftime (char * s, size_t maxsize, const char * format,
1955 const struct tm * timeptr)
1956{
1957 if (strcmp (format, "%p") == 0)
1958 {
1959 if (maxsize < 3)
1960 return 0;
1961 if (timeptr->tm_hour < 12)
1962 {
1963 strcpy (s, "AM");
1964 return 2;
1965 }
1966 else
1967 {
1968 strcpy (s, "PM");
1969 return 2;
1970 }
1971 }
1972 else
1973 return strftime (s, maxsize, format, timeptr);
1974}
1975#endif /* __MRC__ */
1976
1977
1978/* no subprocesses, empty wait */ 2048/* no subprocesses, empty wait */
1979 2049
1980int 2050int
@@ -1993,13 +2063,6 @@ croak (char *badfunc)
1993 2063
1994 2064
1995char * 2065char *
1996index (const char * str, int chr)
1997{
1998 return strchr (str, chr);
1999}
2000
2001
2002char *
2003mktemp (char *template) 2066mktemp (char *template)
2004{ 2067{
2005 int len, k; 2068 int len, k;
@@ -2187,20 +2250,6 @@ sys_subshell ()
2187} 2250}
2188 2251
2189 2252
2190int
2191sigsetmask (int x)
2192{
2193 return 0;
2194}
2195
2196
2197int
2198sigblock (int mask)
2199{
2200 return 0;
2201}
2202
2203
2204void 2253void
2205request_sigio (void) 2254request_sigio (void)
2206{ 2255{
diff --git a/src/macfns.c b/src/macfns.c
index 75cd7e76576..8ec05b59e19 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -22,7 +22,6 @@ Boston, MA 02111-1307, USA. */
22 22
23#include <config.h> 23#include <config.h>
24 24
25#include <signal.h>
26#include <stdio.h> 25#include <stdio.h>
27#include <math.h> 26#include <math.h>
28#include <limits.h> 27#include <limits.h>
diff --git a/src/macmenu.c b/src/macmenu.c
index 35615cc3796..eb870176f12 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -21,7 +21,6 @@ Boston, MA 02111-1307, USA. */
21/* Contributed by Andrew Choi (akochoi@mac.com). */ 21/* Contributed by Andrew Choi (akochoi@mac.com). */
22 22
23#include <config.h> 23#include <config.h>
24#include <signal.h>
25 24
26#include <stdio.h> 25#include <stdio.h>
27#include "lisp.h" 26#include "lisp.h"
diff --git a/src/macselect.c b/src/macselect.c
index a115c9b3229..890bb62d1d4 100644
--- a/src/macselect.c
+++ b/src/macselect.c
@@ -1104,9 +1104,11 @@ next communication only. After the communication, this variable is
1104set to nil. */); 1104set to nil. */);
1105 Vnext_selection_coding_system = Qnil; 1105 Vnext_selection_coding_system = Qnil;
1106 1106
1107#ifdef MAC_OSX
1107 DEFVAR_LISP ("mac-services-selection", &Vmac_services_selection, 1108 DEFVAR_LISP ("mac-services-selection", &Vmac_services_selection,
1108 doc: /* Selection name for communication via Services menu. */); 1109 doc: /* Selection name for communication via Services menu. */);
1109 Vmac_services_selection = intern ("CLIPBOARD"); 1110 Vmac_services_selection = intern ("PRIMARY");
1111#endif
1110 1112
1111 QPRIMARY = intern ("PRIMARY"); staticpro (&QPRIMARY); 1113 QPRIMARY = intern ("PRIMARY"); staticpro (&QPRIMARY);
1112 QSECONDARY = intern ("SECONDARY"); staticpro (&QSECONDARY); 1114 QSECONDARY = intern ("SECONDARY"); staticpro (&QSECONDARY);
diff --git a/src/macterm.c b/src/macterm.c
index b988fb25c31..fe80b779cf3 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -3277,11 +3277,9 @@ x_clear_frame ()
3277 BLOCK_INPUT; 3277 BLOCK_INPUT;
3278 XClearWindow (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f)); 3278 XClearWindow (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f));
3279 3279
3280#if 0 /* Clearing frame on Mac OS clears scroll bars. */
3281 /* We have to clear the scroll bars, too. If we have changed 3280 /* We have to clear the scroll bars, too. If we have changed
3282 colors or something like that, then they should be notified. */ 3281 colors or something like that, then they should be notified. */
3283 x_scroll_bar_clear (f); 3282 x_scroll_bar_clear (f);
3284#endif
3285 3283
3286 XFlush (FRAME_MAC_DISPLAY (f)); 3284 XFlush (FRAME_MAC_DISPLAY (f));
3287 UNBLOCK_INPUT; 3285 UNBLOCK_INPUT;
@@ -4141,12 +4139,12 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time)
4141static pascal void scroll_bar_timer_callback P_ ((EventLoopTimerRef, void *)); 4139static pascal void scroll_bar_timer_callback P_ ((EventLoopTimerRef, void *));
4142static OSStatus install_scroll_bar_timer P_ ((void)); 4140static OSStatus install_scroll_bar_timer P_ ((void));
4143static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval)); 4141static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval));
4144static int control_part_code_to_scroll_bar_part P_((ControlPartCode)); 4142static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode));
4145static void construct_scroll_bar_click P_ ((struct scroll_bar *, int, 4143static void construct_scroll_bar_click P_ ((struct scroll_bar *, int,
4146 unsigned long, 4144 unsigned long,
4147 struct input_event *)); 4145 struct input_event *));
4148static OSErr get_control_part_bound P_((ControlHandle, ControlPartCode, 4146static OSErr get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
4149 Rect *)); 4147 Rect *));
4150static void x_scroll_bar_handle_press P_ ((struct scroll_bar *, 4148static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
4151 ControlPartCode, 4149 ControlPartCode,
4152 unsigned long, 4150 unsigned long,
@@ -4273,7 +4271,7 @@ construct_scroll_bar_click (bar, part, timestamp, bufp)
4273} 4271}
4274 4272
4275static OSErr 4273static OSErr
4276get_control_part_bound (ch, part_code, rect) 4274get_control_part_bounds (ch, part_code, rect)
4277 ControlHandle ch; 4275 ControlHandle ch;
4278 ControlPartCode part_code; 4276 ControlPartCode part_code;
4279 Rect *rect; 4277 Rect *rect;
@@ -4346,8 +4344,8 @@ x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp)
4346 int top, top_range; 4344 int top, top_range;
4347 Rect r; 4345 Rect r;
4348 4346
4349 get_control_part_bound (SCROLL_BAR_CONTROL_HANDLE (bar), 4347 get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
4350 kControlIndicatorPart, &r); 4348 kControlIndicatorPart, &r);
4351 4349
4352 if (GC_NILP (bar->dragging)) 4350 if (GC_NILP (bar->dragging))
4353 XSETINT (bar->dragging, mouse_pos.v - r.top); 4351 XSETINT (bar->dragging, mouse_pos.v - r.top);
@@ -4675,13 +4673,11 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
4675 BLOCK_INPUT; 4673 BLOCK_INPUT;
4676 4674
4677 /* If already correctly positioned, do nothing. */ 4675 /* If already correctly positioned, do nothing. */
4678 if (XINT (bar->left) == sb_left 4676 if (!(XINT (bar->left) == sb_left
4679 && XINT (bar->top) == top 4677 && XINT (bar->top) == top
4680 && XINT (bar->width) == sb_width 4678 && XINT (bar->width) == sb_width
4681 && XINT (bar->height) == height) 4679 && XINT (bar->height) == height))
4682 Draw1Control (ch); 4680 {
4683 else
4684 {
4685 /* Clear areas not covered by the scroll bar because it's not as 4681 /* Clear areas not covered by the scroll bar because it's not as
4686 wide as the area reserved for it . This makes sure a 4682 wide as the area reserved for it . This makes sure a
4687 previous mode line display is cleared after C-x 2 C-x 1, for 4683 previous mode line display is cleared after C-x 2 C-x 1, for
@@ -4730,11 +4726,11 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
4730 4726
4731 /* Move the scroll bar thumb to the top. */ 4727 /* Move the scroll bar thumb to the top. */
4732 SetControl32BitValue (ch, 0); 4728 SetControl32BitValue (ch, 0);
4733 get_control_part_bound (ch, kControlIndicatorPart, &r0); 4729 get_control_part_bounds (ch, kControlIndicatorPart, &r0);
4734 4730
4735 /* Move the scroll bar thumb to the bottom. */ 4731 /* Move the scroll bar thumb to the bottom. */
4736 SetControl32BitValue (ch, 1); 4732 SetControl32BitValue (ch, 1);
4737 get_control_part_bound (ch, kControlIndicatorPart, &r1); 4733 get_control_part_bounds (ch, kControlIndicatorPart, &r1);
4738 4734
4739 UnionRect (&r0, &r1, &r0); 4735 UnionRect (&r0, &r1, &r0);
4740 XSETINT (bar->track_top, r0.top); 4736 XSETINT (bar->track_top, r0.top);
@@ -4882,7 +4878,7 @@ XTjudge_scroll_bars (f)
4882static void 4878static void
4883x_scroll_bar_handle_click (bar, part_code, er, bufp) 4879x_scroll_bar_handle_click (bar, part_code, er, bufp)
4884 struct scroll_bar *bar; 4880 struct scroll_bar *bar;
4885 int part_code; 4881 ControlPartCode part_code;
4886 EventRecord *er; 4882 EventRecord *er;
4887 struct input_event *bufp; 4883 struct input_event *bufp;
4888{ 4884{
@@ -5040,6 +5036,21 @@ x_scroll_bar_report_motion (fp, bar_window, part, x, y, time)
5040 5036
5041 *time = last_mouse_movement_time; 5037 *time = last_mouse_movement_time;
5042} 5038}
5039
5040
5041/* The screen has been cleared so we may have changed foreground or
5042 background colors, and the scroll bars may need to be redrawn.
5043 Clear out the scroll bars, and ask for expose events, so we can
5044 redraw them. */
5045
5046void
5047x_scroll_bar_clear (f)
5048 FRAME_PTR f;
5049{
5050 XTcondemn_scroll_bars (f);
5051 XTjudge_scroll_bars (f);
5052}
5053
5043 5054
5044/*********************************************************************** 5055/***********************************************************************
5045 Text Cursor 5056 Text Cursor
@@ -7516,7 +7527,6 @@ OSErr install_window_handler (WindowPtr);
7516 7527
7517extern void init_emacs_passwd_dir (); 7528extern void init_emacs_passwd_dir ();
7518extern int emacs_main (int, char **, char **); 7529extern int emacs_main (int, char **, char **);
7519extern void check_alarm ();
7520 7530
7521extern void initialize_applescript(); 7531extern void initialize_applescript();
7522extern void terminate_applescript(); 7532extern void terminate_applescript();
@@ -8668,23 +8678,18 @@ profiler_exit_proc ()
8668#endif 8678#endif
8669 8679
8670/* These few functions implement Emacs as a normal Mac application 8680/* These few functions implement Emacs as a normal Mac application
8671 (almost): set up the heap and the Toolbox, handle necessary 8681 (almost): set up the heap and the Toolbox, handle necessary system
8672 system events plus a few simple menu events. They also set up 8682 events plus a few simple menu events. They also set up Emacs's
8673 Emacs's access to functions defined in the rest of this file. 8683 access to functions defined in the rest of this file. Emacs uses
8674 Emacs uses function hooks to perform all its terminal I/O. A 8684 function hooks to perform all its terminal I/O. A complete list of
8675 complete list of these functions appear in termhooks.h. For what 8685 these functions appear in termhooks.h. For what they do, read the
8676 they do, read the comments there and see also w32term.c and 8686 comments there and see also w32term.c and xterm.c. What's
8677 xterm.c. What's noticeably missing here is the event loop, which 8687 noticeably missing here is the event loop, which is normally
8678 is normally present in most Mac application. After performing the 8688 present in most Mac application. After performing the necessary
8679 necessary Mac initializations, main passes off control to 8689 Mac initializations, main passes off control to emacs_main
8680 emacs_main (corresponding to main in emacs.c). Emacs_main calls 8690 (corresponding to main in emacs.c). Emacs_main calls XTread_socket
8681 mac_read_socket (defined further below) to read input. This is 8691 (defined further below) to read input. This is where
8682 where WaitNextEvent is called to process Mac events. This is also 8692 WaitNextEvent/ReceiveNextEvent is called to process Mac events. */
8683 where check_alarm in sysdep.c is called to simulate alarm signals.
8684 This makes the cursor jump back to its correct position after
8685 briefly jumping to that of the matching parenthesis, print useful
8686 hints and prompts in the minibuffer after the user stops typing for
8687 a wait, etc. */
8688 8693
8689#ifdef MAC_OS8 8694#ifdef MAC_OS8
8690#undef main 8695#undef main
@@ -8947,7 +8952,7 @@ XTread_socket (sd, expected, hold_quit)
8947 case mouseUp: 8952 case mouseUp:
8948 { 8953 {
8949 WindowPtr window_ptr; 8954 WindowPtr window_ptr;
8950 SInt16 part_code; 8955 ControlPartCode part_code;
8951 int tool_bar_p = 0; 8956 int tool_bar_p = 0;
8952 8957
8953#if USE_CARBON_EVENTS 8958#if USE_CARBON_EVENTS
@@ -8991,7 +8996,7 @@ XTread_socket (sd, expected, hold_quit)
8991 SelectWindow (window_ptr); 8996 SelectWindow (window_ptr);
8992 else 8997 else
8993 { 8998 {
8994 SInt16 control_part_code; 8999 ControlPartCode control_part_code;
8995 ControlHandle ch; 9000 ControlHandle ch;
8996 Point mouse_loc = er.where; 9001 Point mouse_loc = er.where;
8997#ifdef MAC_OSX 9002#ifdef MAC_OSX
@@ -9566,10 +9571,6 @@ XTread_socket (sd, expected, hold_quit)
9566 pending_autoraise_frame = 0; 9571 pending_autoraise_frame = 0;
9567 } 9572 }
9568 9573
9569#if !TARGET_API_MAC_CARBON
9570 check_alarm (); /* simulate the handling of a SIGALRM */
9571#endif
9572
9573 UNBLOCK_INPUT; 9574 UNBLOCK_INPUT;
9574 return count; 9575 return count;
9575} 9576}
diff --git a/src/process.c b/src/process.c
index 26d40c26cd5..84d373ff37b 100644
--- a/src/process.c
+++ b/src/process.c
@@ -5113,6 +5113,7 @@ send_process_trap ()
5113 sigrelse (SIGPIPE); 5113 sigrelse (SIGPIPE);
5114 sigrelse (SIGALRM); 5114 sigrelse (SIGALRM);
5115#endif /* BSD4_1 */ 5115#endif /* BSD4_1 */
5116 sigunblock (sigmask (SIGPIPE));
5116 longjmp (send_process_frame, 1); 5117 longjmp (send_process_frame, 1);
5117} 5118}
5118 5119
@@ -5297,7 +5298,11 @@ send_process (proc, buf, len, object)
5297 0, datagram_address[outfd].sa, 5298 0, datagram_address[outfd].sa,
5298 datagram_address[outfd].len); 5299 datagram_address[outfd].len);
5299 if (rv < 0 && errno == EMSGSIZE) 5300 if (rv < 0 && errno == EMSGSIZE)
5300 report_file_error ("sending datagram", Fcons (proc, Qnil)); 5301 {
5302 signal (SIGPIPE, old_sigpipe);
5303 report_file_error ("sending datagram",
5304 Fcons (proc, Qnil));
5305 }
5301 } 5306 }
5302 else 5307 else
5303#endif 5308#endif
diff --git a/src/unexmacosx.c b/src/unexmacosx.c
index 1f2b4c96620..e54dbea448c 100644
--- a/src/unexmacosx.c
+++ b/src/unexmacosx.c
@@ -1,5 +1,5 @@
1/* Dump Emacs in Mach-O format for use on Mac OS X. 1/* Dump Emacs in Mach-O format for use on Mac OS X.
2 Copyright (C) 2001, 2002 Free Software Foundation, Inc. 2 Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -105,6 +105,8 @@ Boston, MA 02111-1307, USA. */
105#include <objc/malloc.h> 105#include <objc/malloc.h>
106#endif 106#endif
107 107
108#include <assert.h>
109
108 110
109#define VERBOSE 1 111#define VERBOSE 1
110 112
@@ -998,6 +1000,23 @@ unexec_init_emacs_zone ()
998 malloc_set_zone_name (emacs_zone, "EmacsZone"); 1000 malloc_set_zone_name (emacs_zone, "EmacsZone");
999} 1001}
1000 1002
1003#ifndef MACOSX_MALLOC_MULT16
1004#define MACOSX_MALLOC_MULT16 1
1005#endif
1006
1007typedef struct unexec_malloc_header {
1008 union {
1009 char c[8];
1010 size_t size;
1011 } u;
1012} unexec_malloc_header_t;
1013
1014#if MACOSX_MALLOC_MULT16
1015
1016#define ptr_in_unexec_regions(p) ((((vm_address_t) (p)) & 8) != 0)
1017
1018#else
1019
1001int 1020int
1002ptr_in_unexec_regions (void *ptr) 1021ptr_in_unexec_regions (void *ptr)
1003{ 1022{
@@ -1011,36 +1030,75 @@ ptr_in_unexec_regions (void *ptr)
1011 return 0; 1030 return 0;
1012} 1031}
1013 1032
1033#endif
1034
1014void * 1035void *
1015unexec_malloc (size_t size) 1036unexec_malloc (size_t size)
1016{ 1037{
1017 if (in_dumped_exec) 1038 if (in_dumped_exec)
1018 return malloc (size); 1039 {
1040 void *p;
1041
1042 p = malloc (size);
1043#if MACOSX_MALLOC_MULT16
1044 assert (((vm_address_t) p % 16) == 0);
1045#endif
1046 return p;
1047 }
1019 else 1048 else
1020 return malloc_zone_malloc (emacs_zone, size); 1049 {
1050 unexec_malloc_header_t *ptr;
1051
1052 ptr = (unexec_malloc_header_t *)
1053 malloc_zone_malloc (emacs_zone, size + sizeof (unexec_malloc_header_t));
1054 ptr->u.size = size;
1055 ptr++;
1056#if MACOSX_MALLOC_MULT16
1057 assert (((vm_address_t) ptr % 16) == 8);
1058#endif
1059 return (void *) ptr;
1060 }
1021} 1061}
1022 1062
1023void * 1063void *
1024unexec_realloc (void *old_ptr, size_t new_size) 1064unexec_realloc (void *old_ptr, size_t new_size)
1025{ 1065{
1026 if (in_dumped_exec) 1066 if (in_dumped_exec)
1027 if (ptr_in_unexec_regions (old_ptr)) 1067 {
1028 { 1068 void *p;
1029 char *p = malloc (new_size); 1069
1030 /* 2002-04-15 T. Ikegami <ikegami@adam.uprr.pr>. The original 1070 if (ptr_in_unexec_regions (old_ptr))
1031 code to get size failed to reallocate read_buffer 1071 {
1032 (lread.c). */ 1072 size_t old_size = ((unexec_malloc_header_t *) old_ptr)[-1].u.size;
1033 int old_size = malloc_default_zone()->size (emacs_zone, old_ptr); 1073 size_t size = new_size > old_size ? old_size : new_size;
1034 int size = new_size > old_size ? old_size : new_size; 1074
1035 1075 p = (size_t *) malloc (new_size);
1036 if (size) 1076 if (size)
1037 memcpy (p, old_ptr, size); 1077 memcpy (p, old_ptr, size);
1038 return p; 1078 }
1039 } 1079 else
1040 else 1080 {
1041 return realloc (old_ptr, new_size); 1081 p = realloc (old_ptr, new_size);
1082 }
1083#if MACOSX_MALLOC_MULT16
1084 assert (((vm_address_t) p % 16) == 0);
1085#endif
1086 return p;
1087 }
1042 else 1088 else
1043 return malloc_zone_realloc (emacs_zone, old_ptr, new_size); 1089 {
1090 unexec_malloc_header_t *ptr;
1091
1092 ptr = (unexec_malloc_header_t *)
1093 malloc_zone_realloc (emacs_zone, (unexec_malloc_header_t *) old_ptr - 1,
1094 new_size + sizeof (unexec_malloc_header_t));
1095 ptr->u.size = new_size;
1096 ptr++;
1097#if MACOSX_MALLOC_MULT16
1098 assert (((vm_address_t) ptr % 16) == 8);
1099#endif
1100 return (void *) ptr;
1101 }
1044} 1102}
1045 1103
1046void 1104void
@@ -1052,7 +1110,7 @@ unexec_free (void *ptr)
1052 free (ptr); 1110 free (ptr);
1053 } 1111 }
1054 else 1112 else
1055 malloc_zone_free (emacs_zone, ptr); 1113 malloc_zone_free (emacs_zone, (unexec_malloc_header_t *) ptr - 1);
1056} 1114}
1057 1115
1058/* arch-tag: 1a784f7b-a184-4c4f-9544-da8619593d72 1116/* arch-tag: 1a784f7b-a184-4c4f-9544-da8619593d72
diff --git a/src/xdisp.c b/src/xdisp.c
index 23898e78774..2284c34d3bd 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3474,7 +3474,10 @@ handle_display_prop (it)
3474 } 3474 }
3475 else 3475 else
3476 { 3476 {
3477 if (handle_single_display_spec (it, prop, object, position, 0)) 3477 int ret = handle_single_display_spec (it, prop, object, position, 0);
3478 if (ret < 0) /* Replaced by "", i.e. nothing. */
3479 return HANDLED_RECOMPUTE_PROPS;
3480 if (ret)
3478 display_replaced_p = 1; 3481 display_replaced_p = 1;
3479 } 3482 }
3480 3483
@@ -3518,7 +3521,8 @@ display_prop_end (it, object, start_pos)
3518 property ends. 3521 property ends.
3519 3522
3520 Value is non-zero if something was found which replaces the display 3523 Value is non-zero if something was found which replaces the display
3521 of buffer or string text. */ 3524 of buffer or string text. Specifically, the value is -1 if that
3525 "something" is "nothing". */
3522 3526
3523static int 3527static int
3524handle_single_display_spec (it, spec, object, position, 3528handle_single_display_spec (it, spec, object, position,
@@ -3833,6 +3837,11 @@ handle_single_display_spec (it, spec, object, position,
3833 3837
3834 if (STRINGP (value)) 3838 if (STRINGP (value))
3835 { 3839 {
3840 if (SCHARS (value) == 0)
3841 {
3842 pop_it (it);
3843 return -1; /* Replaced by "", i.e. nothing. */
3844 }
3836 it->string = value; 3845 it->string = value;
3837 it->multibyte_p = STRING_MULTIBYTE (it->string); 3846 it->multibyte_p = STRING_MULTIBYTE (it->string);
3838 it->current.overlay_string_index = -1; 3847 it->current.overlay_string_index = -1;
@@ -7033,7 +7042,9 @@ message2_nolog (m, nbytes, multibyte)
7033/* Display an echo area message M with a specified length of NBYTES 7042/* Display an echo area message M with a specified length of NBYTES
7034 bytes. The string may include null characters. If M is not a 7043 bytes. The string may include null characters. If M is not a
7035 string, clear out any existing message, and let the mini-buffer 7044 string, clear out any existing message, and let the mini-buffer
7036 text show through. */ 7045 text show through.
7046
7047 This function cancels echoing. */
7037 7048
7038void 7049void
7039message3 (m, nbytes, multibyte) 7050message3 (m, nbytes, multibyte)
@@ -7045,6 +7056,7 @@ message3 (m, nbytes, multibyte)
7045 7056
7046 GCPRO1 (m); 7057 GCPRO1 (m);
7047 clear_message (1,1); 7058 clear_message (1,1);
7059 cancel_echoing ();
7048 7060
7049 /* First flush out any partial line written with print. */ 7061 /* First flush out any partial line written with print. */
7050 message_log_maybe_newline (); 7062 message_log_maybe_newline ();
@@ -7056,7 +7068,10 @@ message3 (m, nbytes, multibyte)
7056} 7068}
7057 7069
7058 7070
7059/* The non-logging version of message3. */ 7071/* The non-logging version of message3.
7072 This does not cancel echoing, because it is used for echoing.
7073 Perhaps we need to make a separate function for echoing
7074 and make this cancel echoing. */
7060 7075
7061void 7076void
7062message3_nolog (m, nbytes, multibyte) 7077message3_nolog (m, nbytes, multibyte)