changeset 90667:dbe3f29e61d6

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 505-522) - Update from CVS - Merge from gnus--rel--5.10 - Update from CVS: etc/TUTORIAL.cn: Updated. - Merge from erc--emacs--22 * gnus--rel--5.10 (patch 164-167) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-137
author Miles Bader <miles@gnu.org>
date Tue, 21 Nov 2006 08:56:38 +0000
parents 00d54c8fa693 (current diff) 9e333d1a48e1 (diff)
children d677464a3fad
files AUTHORS ChangeLog admin/ChangeLog admin/FOR-RELEASE admin/make-tarball.txt configure configure.in etc/ChangeLog etc/MH-E-NEWS etc/NEWS etc/TODO etc/TUTORIAL.cn leim/ChangeLog lib-src/ChangeLog lib-src/emacsclient.c lib-src/makefile.w32-in lisp/ChangeLog lisp/allout.el lisp/bs.el lisp/calendar/cal-dst.el lisp/comint.el lisp/cus-edit.el lisp/ediff.el lisp/emacs-lisp/lisp.el lisp/emacs-lisp/re-builder.el lisp/emacs-lisp/regexp-opt.el lisp/files.el lisp/gnus/ChangeLog lisp/gnus/gnus-sum.el lisp/gnus/gnus-util.el lisp/gnus/gnus.el lisp/gnus/message.el lisp/gnus/mm-decode.el lisp/gnus/mm-uu.el lisp/gnus/mml.el lisp/gnus/nnslashdot.el lisp/ido.el lisp/ldefs-boot.el lisp/mail/rmailout.el lisp/makefile.w32-in lisp/menu-bar.el lisp/mh-e/ChangeLog lisp/mh-e/mh-e.el lisp/mh-e/mh-junk.el lisp/mouse.el lisp/net/tramp.el lisp/pcvs.el lisp/play/handwrite.el lisp/printing.el lisp/progmodes/ada-mode.el lisp/progmodes/ada-stmt.el lisp/progmodes/ada-xref.el lisp/progmodes/cc-align.el lisp/progmodes/cc-fonts.el lisp/progmodes/compile.el lisp/progmodes/cperl-mode.el lisp/progmodes/ebnf2ps.el lisp/progmodes/f90.el lisp/progmodes/gdb-ui.el lisp/progmodes/glasses.el lisp/progmodes/idlw-shell.el lisp/progmodes/idlw-toolbar.el lisp/progmodes/idlwave.el lisp/progmodes/python.el lisp/progmodes/vhdl-mode.el lisp/server.el lisp/ses.el lisp/subr.el lisp/term/x-win.el lisp/term/xterm.el lisp/textmodes/flyspell.el lisp/textmodes/org.el lisp/thingatpt.el lisp/vc-svn.el lispintro/ChangeLog lispintro/emacs-lisp-intro.texi lispref/ChangeLog lispref/elisp.texi lispref/frames.texi lispref/modes.texi lwlib/ChangeLog mac/ChangeLog mac/INSTALL mac/inc/config.h mac/src/Emacs.r man/ChangeLog man/Makefile.in man/ada-mode.texi man/emacs.texi man/glossary.texi man/makefile.w32-in man/mh-e.texi man/misc.texi man/woman.texi man/xresmini.texi man/xresources.texi msdos/ChangeLog nt/ChangeLog oldXMenu/ChangeLog src/ChangeLog src/alloc.c src/bytecode.c src/category.c src/coding.c src/config.in src/data.c src/editfns.c src/fileio.c src/fns.c src/frame.c src/indent.c src/macfns.c src/macmenu.c src/macterm.c src/minibuf.c src/process.c src/s/gnu-linux.h src/s/ms-w32.h src/search.c src/term.c src/termhooks.h src/xfaces.c src/xmenu.c src/xselect.c src/xterm.c src/xterm.h
diffstat 157 files changed, 9802 insertions(+), 6342 deletions(-) [+]
line wrap: on
line diff
--- a/AUTHORS	Tue Nov 21 01:10:47 2006 +0000
+++ b/AUTHORS	Tue Nov 21 08:56:38 2006 +0000
@@ -3,6 +3,8 @@
 their public spirit, we list here in alphabetical order a condensed
 list of their contributions.
 
+"$,1 a(Bukasz Demianiuk": changed erc.el
+
 Aaron Larson: changed bibtex.el
 
 Aaron S. Hawley: changed files.texi files.el isearch.el misc.texi
@@ -35,7 +37,7 @@
 and changed cc-cmds.el cc-mode.el cc-defs.el cc-engine.el cc-vars.el
   cc-langs.el cc-styles.el cc-mode.texi lread.c cc-fonts.el cc-align.el
   cc-subword.el isearch.el programs.texi search.texi subr.el text.texi
-  buffers.texi cc-fix.el cc-mode-19.el ebrowse.el and 14 other files
+  buffers.texi cc-fix.el cc-mode-19.el ebrowse.el and 15 other files
 
 Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el
   easy-mmode.el gnus-sum.el ibuf-ext.el ibuffer.el lunar.el macros.el
@@ -120,11 +122,11 @@
 Andreas Schwab: changed Makefile.in files.el lisp.h xdisp.c alloc.c
   configure.in fns.c print.c coding.c dired.el editfns.c info.el eval.c
   fileio.c simple.el buffer.c minibuf.c xterm.c emacs.c keyboard.c
-  process.c and 444 other files
-
-Andreas Seltenreich: changed nnweb.el gnus.texi gnus-art.el gnus-ml.el
-  gnus-srvr.el gnus-start.el gnus-util.el gnus.el mm-url.el mm-uu.el
-  nnslashdot.el url-cookie.el url-http.el
+  process.c and 446 other files
+
+Andreas Seltenreich: changed nnweb.el gnus.texi battery.el gnus-art.el
+  gnus-ml.el gnus-srvr.el gnus-start.el gnus-util.el gnus.el mm-url.el
+  mm-uu.el nnslashdot.el url-cookie.el url-http.el
 
 Andrew Choi: wrote mac-win.el
 and changed macterm.c mac.c macfns.c INSTALL macmenu.c darwin.h macterm.h
@@ -152,6 +154,8 @@
 
 Andy Petrusenco: changed w32term.c
 
+Anna Bigatti: changed cal-html.el
+
 Anna M. Bigatti: wrote cal-html.el
 
 Ari Roponen: changed atimer.c startup.el
@@ -190,7 +194,7 @@
 Ben Key: changed w32.c w32fns.c w32menu.c makefile.w32-in w32.h w32term.c
   emacs.c gmake.defs ms-w32.h nmake.defs sound.c
 
-Ben North: changed fill.el isearch.el lisp-mode.el
+Ben North: changed fill.el isearch.el lisp-mode.el w32term.c xfaces.c
 
 Benjamin Drieu: wrote pong.el
 
@@ -325,9 +329,9 @@
 
 Chong Yidong: changed cus-edit.el simple.el custom.el display.texi
   longlines.el files.el text.texi custom.texi files.texi keyboard.c
-  wid-edit.el cus-theme.el frames.texi info.el xterm.c compile.el
-  image-mode.el keymaps.texi misc.texi mouse.el sendmail.el
-  and 162 other files
+  wid-edit.el compile.el cus-theme.el frames.texi info.el misc.texi
+  mouse.el xterm.c image-mode.el keymaps.texi sendmail.el
+  and 176 other files
 
 Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c
   hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el
@@ -492,8 +496,8 @@
 
 David Kastrup: changed greek.el replace.el search.c ange-ftp.el faq.texi
   help.el mouse.el Makefile.in calc.el desktop.el keymaps.texi
-  meta-mode.el process.c search.texi DEBUG DEVEL.HUMOR MAILINGLISTS
-  autoload.el browse-url.el buffer.c building.texi and 32 other files
+  meta-mode.el process.c search.texi subr.el DEBUG DEVEL.HUMOR
+  MAILINGLISTS autoload.el browse-url.el buffer.c and 32 other files
 
 David K,Ae(Bgedal: wrote tempo.el
 and changed sendmail.el xmenu.c
@@ -531,8 +535,8 @@
   no-handle.xpm open.png open.xpm and 20 other files
 
 David Reitter: wrote mailclient.el
-and changed commands.h easy-mmode.el emacsbug.el keymap.c macterm.c
-  menu-bar.el minibuf.c sendmail.el url-http.el
+and changed commands.h easy-mmode.el emacsbug.el emacsclient.c keymap.c
+  macterm.c menu-bar.el minibuf.c sendmail.el url-http.el
 
 David Robinson: changed menu-bar.el x-win.el
 
@@ -626,9 +630,9 @@
 
 Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
 and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c
-  startup.el mainmake.v2 config.bat menu-bar.el pc-win.el simple.el
-  internal.el msdos.h rmail.el xfaces.c frame.c dosfns.c faces.el
-  frame.el emacs.c and 517 other files
+  startup.el mainmake.v2 config.bat menu-bar.el pc-win.el rmail.el
+  simple.el internal.el msdos.h xfaces.c frame.c dosfns.c faces.el
+  frame.el emacs.c and 518 other files
 
 Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
   sh-script.el text.texi
@@ -826,17 +830,17 @@
 
 Gernot Heiser: changed refer.el
 
-Giorgos Keramidas: changed amdx86-64.h apropos.el configure.in
-  display.texi fringe.c fringe.el lisp.h windows.texi
+Giorgos Keramidas: changed configure.in amdx86-64.h apropos.el
+  display.texi fringe.c fringe.el lisp.h windows.texi xmenu.c
 
 Giuseppe Scrivano: changed buffer.c configure configure.in sysdep.c
   xsmfns.c
 
-Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el
+Glenn Morris: changed f90.el calendar.el diary-lib.el fortran.el
   calendar.texi appt.el sh-script.el timeclock.el cal-menu.el
   cal-hebrew.el cal-islam.el files.el holidays.el programs.texi
   scroll-all.el startup.el cal-coptic.el cal-julian.el cal-move.el
-  cal-tex.el cal-x.el and 37 other files
+  cal-tex.el cal-x.el and 41 other files
 
 Glynn Clements: wrote gamegrid.el snake.el tetris.el
 
@@ -1011,9 +1015,9 @@
 
 Jan Dj,Ad(Brv: wrote dnd.el x-dnd.el
 and changed gtkutil.c xterm.c xfns.c xmenu.c xterm.h gtkutil.h
-  configure.in keyboard.c Makefile.in config.in frames.texi x-win.el
-  configure xselect.c emacs.c alloc.c xlwmenu.c startup.el xdisp.c
-  xresources.texi cus-start.el and 172 other files
+  configure.in x-win.el Makefile.in frames.texi keyboard.c config.in
+  configure xselect.c emacs.c alloc.c xlwmenu.c xresources.texi frame.c
+  startup.el xdisp.c and 174 other files
 
 Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c
   gnus-start.el gud.el nnmh.el server.el startup.el
@@ -1037,7 +1041,7 @@
 and changed w32fns.c w32term.c w32menu.c w32-win.el w32term.h
   makefile.w32-in w32.c w32bdf.c w32-fns.el w32select.c w32console.c
   w32gui.h w32proc.c keyboard.c mule-cmds.el emacs.c fileio.c w32bdf.h
-  w32inevt.c config.nt configure.bat and 79 other files
+  w32inevt.c config.nt configure.bat and 80 other files
 
 Jay Belanger: changed calc.texi calc.el calc-ext.el calc-embed.el
   calc-aent.el calc-prog.el calc-arith.el calc-help.el calc-lang.el
@@ -1078,6 +1082,8 @@
 
 Jens-Ulrik Holger Petersen: changed cus-edit.el find-func.el gnus.el
 
+Jeramey Crawford: changed amdx86-64.h configure.in
+
 Jeremy Bertram Maitin-Shepard: changed erc.el erc-backend.el
   erc-button.el mml.el
 
@@ -1258,9 +1264,9 @@
 and changed files.el perl-mode.el
 
 Juanma Barranquero: changed makefile.w32-in help-fns.el subr.el faces.el
-  files.el w32fns.c cperl-mode.el replace.el simple.el eval.c
-  sh-script.el vhdl-mode.el ada-mode.el comint.el org.el w32-win.el
-  xdisp.c allout.el bs.el desktop.el idlwave.el and 554 other files
+  files.el w32fns.c bs.el cperl-mode.el eval.c org.el replace.el
+  simple.el sh-script.el vhdl-mode.el ada-mode.el allout.el comint.el
+  emacsclient.c idlwave.el process.c w32-win.el and 584 other files
 
 Juergen Hoetzel: changed url-handlers.el
 
@@ -1277,7 +1283,7 @@
 Juri Linkov: changed info.el simple.el isearch.el replace.el compile.el
   faces.el display.texi grep.el descr-text.el cus-edit.el dired.el
   dired-aux.el edebug.el files.el lisp-mode.el lisp.el modes.texi mule.el
-  compare-w.el desktop.el files.texi and 220 other files
+  compare-w.el desktop.el files.texi and 221 other files
 
 Justin Sheehy: changed gnus-sum.el nntp.el
 
@@ -1341,7 +1347,7 @@
 and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el
   mm-view.el gnus-util.el gnus-msg.el mm-util.el gnus.el lpath.el
   gnus-group.el gnus-start.el rfc2047.el dgnushack.el mm-uu.el
-  gnus-agent.el nntp.el mml.el nnrss.el rfc2231.el and 71 other files
+  gnus-agent.el mml.el nntp.el nnrss.el rfc2231.el and 71 other files
 
 Kaveh R. Ghazi: changed delta88k.h xterm.c
 
@@ -1473,8 +1479,8 @@
 Lars Brinkhoff: changed building.texi config.in configure configure.in
   editfns.c fns.c os.texi
 
-Lars Hansen: changed desktop.el info.el mh-e.el dired-x.el dired-x.texi
-  dired.el ls-lisp.el rmail.el tramp.el dired.c files.texi grp.h
+Lars Hansen: changed desktop.el info.el mh-e.el tramp.el dired-x.el
+  dired-x.texi dired.el ls-lisp.el rmail.el dired.c files.texi grp.h
   hilit-chg.el misc.texi url-auth.el url-cache.el url-dired.el url-ftp.el
   url-irc.el url-misc.el url-news.el and 39 other files
 
@@ -1518,7 +1524,8 @@
 Leigh Stoller: changed emacsclient.c emacsserver.c server.el
 
 Lennart Borgman: changed window.el ada-xref.el filesets.el flymake.el
-  mouse.el recentf.el shell.el texinfmt.el w32term.c w32term.h
+  help-fns.el mouse.el recentf.el shell.el texinfmt.el tutorial.el
+  w32term.c w32term.h
 
 Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c
 
@@ -1554,8 +1561,8 @@
 
 Maciek Pasternacki: changed nnrss.el
 
-Magnus Henoch: changed ispell.el url-http.el autoinsert.el rcirc.el
-  url-gw.el url-https.el url-parse.el url.el
+Magnus Henoch: changed url-http.el ispell.el url-gw.el url-parse.el
+  url.el autoinsert.el rcirc.el url-https.el
 
 Manuel Serrano: wrote flyspell.el
 
@@ -1602,6 +1609,8 @@
   mh-seq.el mh-speed.el mh-funcs.el mh-alias.el MH-E-NEWS etags.c
   mh-junk.el mh-pick.el mh-tool-bar.el mh-xemacs-compat.el
 
+Mark Davies: changed Makefile.in netbsd.h ralloc.c sort.el
+
 Mark Diekhans: changed compile.el
 
 Mark H. Weaver: changed comint.el
@@ -1640,7 +1649,7 @@
   mule-cmds.el rmailout.el checkdoc.el configure.in custom.el emacsbug.el
   gnus.el help-fns.el ls-lisp.el mwheel.el and 122 other files
 
-Markus Triska: changed doctor.el
+Markus Triska: changed doctor.el handwrite.el
 
 Marshall T. Vandegrift: changed gnus-fun.el
 
@@ -1660,9 +1669,9 @@
 Martin Neitzel: changed sc.el
 
 Martin Rudalics: changed cus-edit.el wid-edit.el flyspell.el cus-start.el
-  files.el font-lock.el insdel.c syntax.c buffer.c buffer.h casefiddle.c
-  cperl-mode.el custom.el dispextern.h dnd.el editfns.c eldoc.el fileio.c
-  find-func.el help-at-pt.el hideif.el and 20 other files
+  files.el font-lock.el insdel.c macmenu.c syntax.c w32menu.c window.el
+  xdisp.c xmenu.c buffer.c buffer.h casefiddle.c cperl-mode.el custom.el
+  dispextern.h dnd.el editfns.c and 25 other files
 
 Martin Stjernholm: wrote cc-bytecomp.el
 and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el
@@ -1731,8 +1740,6 @@
 Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h
   unexec.c
 
-Michael Cadilhac: changed blackbox.el rect.el subr.el zone.el
-
 Michael Cook: changed gnus-sum.el
 
 Michael D. Ernst: wrote reposition.el
@@ -1800,9 +1807,9 @@
 
 Michal Nazarewicz: changed ispell.el
 
-Micha,Ak(Bl Cadilhac: changed ido.el ispell.el cus-edit.el dispnew.c info.el
-  life.el lpr.el make-mode.el pong.el print.c process.c startup.el
-  uni-input.el
+Micha,Ak(Bl Cadilhac: changed ido.el ispell.el battery.el blackbox.el
+  cus-edit.el dispnew.c info.el life.el lpr.el make-mode.el pong.el
+  print.c process.c rect.el startup.el subr.el uni-input.el zone.el
 
 Michelangelo Grigni: wrote ffap.el
 and changed gnus-score.el
@@ -1898,6 +1905,8 @@
 
 Nico Francois: changed w32fns.c w32inevt.c w32menu.c
 
+Niimi Satoshi: changed pp.el search.c
+
 Niklas Morberg: changed nnweb.el gnus-art.el nnimap.el spam.el
 
 Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el
@@ -1910,8 +1919,8 @@
 
 Noel Cragg: changed mh-junk.el
 
-Nozomu Ando: changed buffer.c mips.h pmax.h smtpmail.el sysselect.h
-  unexelf.c unexmacosx.c
+Nozomu Ando: changed unexmacosx.c alloc.c buffer.c mips.h pmax.h
+  smtpmail.el sysselect.h unexelf.c
 
 Nuutti Kotivuori: changed gnus-sum.el flow-fill.el gnus-cache.el
 
@@ -1948,6 +1957,8 @@
   eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el ldap.el
 and changed ph.el
 
+,bS(Bscar Fuentes: changed emacsclient.c
+
 Oystein Viggen: changed dgnushack.el
 
 P. E. Jareth Hein: changed gnus-util.el
@@ -2120,9 +2131,9 @@
 
 Reiner Steib: wrote gmm-utils.el
 and changed gnus-art.el message.el gnus.texi gnus-sum.el gnus.el
-  gnus-group.el gnus-faq.texi mml.el gnus-start.el gnus-util.el
-  gnus-msg.el gnus-score.el message.texi mm-util.el files.el
-  gnus-agent.el spam-report.el mm-decode.el nnweb.el spam.el deuglify.el
+  gnus-group.el gnus-faq.texi gnus-util.el mml.el gnus-start.el
+  mm-util.el gnus-agent.el gnus-msg.el gnus-score.el message.texi
+  files.el spam-report.el mm-decode.el nnweb.el spam.el deuglify.el
   and 162 other files
 
 Remek Trzaska: changed gnus-ems.el
@@ -2149,7 +2160,7 @@
 
 Richard M. Heiberger: changed tex-mode.el
 
-Richard M. Stallman: wrote [The original GNU emacs and numerous files]
+Richard M. Stallman: wrote [The original GNU Emacs and numerous files]
   easymenu.el font-lock.el image-mode.el menu-bar.el paren.el
 and changed keyboard.c files.el simple.el xterm.c xdisp.c rmail.el
   fileio.c process.c sysdep.c xfns.c buffer.c Makefile.in window.c
@@ -2183,14 +2194,14 @@
 Robert Fenk: changed desktop.el
 
 Robert J. Chassell: wrote makeinfo.el texinfo.el texnfo-upd.el
-and changed texinfmt.el page-ext.el emacs.tex emacs-lisp-intro.texi
+and changed texinfmt.el emacs-lisp-intro.texi page-ext.el emacs.tex
   info.el loaddefs.el texinfo-update.el texinfo.tex INSTALL case-table.el
   cl.texinfo history.el informat.el latin-1.el latin-2.el latin-3.el
   latin-4.el page.el tex-mode.el texinfo.texinfo vip.texinfo
 
 Robert Thorpe: changed cus-start.el
 
-Roberto Rodr,Am(Bguez: changed ada-mode.texi widget.texi
+Roberto Rodr,Am(Bguez: changed ada-mode.texi glossary.texi widget.texi
 
 Roderick Schertler: changed dgux.h dgux4.h gud.el sysdep.c
 
@@ -2217,11 +2228,11 @@
 Rolf Ebert: wrote ada-mode.el
 and changed files.el find-file.el
 
-Romain Francoise: changed faq.texi dired-x.el ibuf-ext.el compile.el
-  message.el puresize.h replace.el files.texi gnus-fun.el gnus.texi
-  help-fns.el make-dist rcirc.el subr.el Makefile.in antlr-mode.el
+Romain Francoise: changed faq.texi dired-x.el ibuf-ext.el Makefile.in
+  compile.el message.el puresize.h replace.el subr.el files.texi
+  gnus-fun.el gnus.texi help-fns.el make-dist rcirc.el antlr-mode.el
   bookmark.el buffer.c comint.el diary-lib.el dired.el
-  and 124 other files
+  and 126 other files
 
 Roman Belenov: changed which-func.el
 
@@ -2317,6 +2328,8 @@
 Shuhei Kobayashi: wrote hex-util.el sha1.el
 and changed gnus-group.el message.el nnmail.el
 
+Shun-Ichi Goto: changed url-http.el
+
 Sidney Markowitz: changed doctor.el
 
 Sigbjorn Finne: changed gnus-srvr.el
@@ -2339,12 +2352,12 @@
 and changed comint.el font-lock.el shell.el rmail.el fortran.el
   sendmail.el subr.el dired.el sh-script.el texinfo.el add-log.el
   compile.el outline.el help.el menu-bar.el perl-mode.el ps-print.el
-  rmailsum.el bytecomp.el data.c faces.el and 56 other files
+  rmailsum.el bytecomp.el data.c faces.el and 57 other files
 
 Skip Collins: changed w32fns.c w32term.c w32term.h
 
-Slawomir Nowaczyk: changed python.el TUTORIAL.pl emacs.py flyspell.el
-  ls-lisp.el
+Slawomir Nowaczyk: changed emacs.py python.el TUTORIAL.pl flyspell.el
+  ls-lisp.el w32proc.c
 
 Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi
   server.el tcp.c unexec.c
@@ -2378,11 +2391,14 @@
 
 Stephen Gildea: wrote mh-funcs.el mh-pick.el refcard.tex
 and changed time-stamp.el mh-e.el mh-comp.el mh-utils.el mh-customize.el
-  fileio.c files.el fortran.el mh-e.texi mh-junk.el mh-mime.el mwheel.el
+  mh-junk.el fileio.c files.el fortran.el mh-e.texi mh-mime.el mwheel.el
   tex-mode.el
 
 Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el
 
+Stephen Leake: changed ada-mode.el ada-xref.el ada-stmt.el ada-mode.texi
+  ada-prj.el
+
 Steve Fisk: wrote cal-tex.el
 
 Steve Nygard: changed unexnext.c
@@ -2467,6 +2483,8 @@
 
 Terry Jones: wrote shadow.el
 
+Tetsurou Okazaki: changed xterm.c
+
 Theodore Jump: changed w32-win.el w32faces.c
 
 Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el
@@ -2503,7 +2521,8 @@
 
 Tim Fleehart: wrote makefile.nt
 
-Tim Van Holder: changed Makefile.in compile.el configure.in which-func.el
+Tim Van Holder: changed emacsclient.c Makefile.in compile.el configure.in
+  which-func.el
 
 Tobias C. Rittweiler: changed font-lock.el
 
@@ -2642,7 +2661,7 @@
 
 Wolfgang Glas: changed unexsgi.c
 
-Wolfgang Jenkner: changed conf-mode.el pcvs.el
+Wolfgang Jenkner: changed conf-mode.el gnus-sum.el pcvs.el
 
 Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.el
 and changed process.c alloc.c callint.c config.h.in config.in
@@ -2660,15 +2679,15 @@
 Yagi Tatsuya: changed gnus-art.el gnus-start.el
 
 Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h
-  macgui.h image.c macmenu.c macselect.c keyboard.c xdisp.c makefile.MPW
-  emacs.c config.h macos.texi xfaces.c Makefile.in darwin.h dispextern.h
-  dispnew.c w32term.c and 69 other files
+  macgui.h macmenu.c image.c macselect.c keyboard.c xdisp.c makefile.MPW
+  emacs.c config.h macos.texi xfaces.c Makefile.in darwin.h INSTALL
+  dispextern.h dispnew.c and 71 other files
 
 Yann Dirson: changed imenu.el
 
 Yoichi Nakayama: changed browse-url.el finder.el man.el rfc2368.el
 
-Yoni Rabkin Katzenell: changed whitespace.el
+Yoni Rabkin Katzenell: changed faces.el whitespace.el
 
 Yoshiki Hayashi: changed texinfmt.el nnheader.el
 
--- a/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,10 +1,22 @@
+2006-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* configure.in (HAVE_CANCELMENUTRACKING): Remove test.
+
+	* configure: Regenerate.
+
+2006-11-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* configure.in: Prefer X11 to Carbon only when some X-specific
+	option is specified (Thanks to Jan Dj,Ad(Brv and Andreas Schwab).
+
+	* configure: Regenerate.
+
 2006-11-04  Romain Francoise  <romain@orebokech.com>
 
-	* Makefile.in (bootstrap-clean-before): Use new target `bootstrap-clean'
-	in the leim subdirectory.
-	Fix typo.
-
-2006-11-03  Giorgos Keramidas  <keramida@ceid.upatras.gr> (tiny change)
+	* Makefile.in (bootstrap-clean-before): Fix typo.
+	Use new target `bootstrap-clean' in the leim subdirectory.
+
+2006-11-03  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
 
 	* configure.in: Enable sparc64/ia64/powerpc FreeBSD builds.
 
@@ -38,16 +50,6 @@
 
 	* configure: Regenerate.
 
-2006-10-23  Michael Kifer  <kifer@cs.stonybrook.edu>
-
-	* viper-cmd.el (viper-prefix-arg-com): define gg as G0
-
-	* viper-ex.el (ex-read): quote file argument.
-
-	* ediff-diff.el (ediff-same-file-contents): expand file names.
-
-	* ediff-mult.el (ediff-append-custom-diff): quote shell file arguments.
-
 2006-10-23  Andreas Schwab  <schwab@suse.de>
 
 	* configure.in: Make sure x_default_search_path is always set even
@@ -62,7 +64,7 @@
 
 2006-09-30  Eli Zaretskii  <eliz@gnu.org>
 
-	* configure: Regenerated.
+	* configure: Regenerate.
 
 2006-09-28  Kenichi Handa  <handa@m17n.org>
 
@@ -96,7 +98,7 @@
 
 	* configure.in (PKG_CHECK_MODULES): Redirect the output of
 	$PKG_CONFIG --exists "$2" to config.log.
-	* configure: Regenerated.
+	* configure: Regenerate.
 
 2006-07-14  Kim F. Storm  <storm@cua.dk>
 
@@ -121,8 +123,8 @@
 
 2006-07-07  Eli Zaretskii  <eliz@gnu.org>
 
-	* CONTRIBUTE: Slight formatting changes and typo fixes.  Add
-	description of NEWS markings.
+	* CONTRIBUTE: Slight formatting changes and typo fixes.
+	Add description of NEWS markings.
 
 2006-07-07  Kim F. Storm  <storm@cua.dk>
 
@@ -163,7 +165,7 @@
 
 	* info/dir: Remove the Emacs-Xtra entry.
 
-2006-04-20 Ramprasad B <ramprasad_i82@yahoo.com>
+2006-04-20  Ramprasad B  <ramprasad_i82@yahoo.com>
 
 	* Copyright (sources/emacs): Update copyright year(s).
 
@@ -314,12 +316,12 @@
 	Remove the MAXPATHLEN limitations:
 
 	* configure.in (AC_CHECK_FUNCS): Check for get_current_dir_name.
-	* configure: Regenerated.
+	* configure: Regenerate.
 
 2005-09-09  Eli Zaretskii  <eliz@gnu.org>
 
 	* configure.in <lynxsos*>: Support for LynxOS on PPC.
-	* configure: Regenerated.
+	* configure: Regenerate.
 
 2005-09-05  Paul Eggert  <eggert@cs.ucla.edu>
 
@@ -856,7 +858,7 @@
 
 2003-01-29  Kim F. Storm  <storm@cua.dk>
 
-	* AUTHORS: Regenerated using new format (after fixing numerous
+	* AUTHORS: Regenerate using new format (after fixing numerous
 	formatting errors in the ChangeLog files).
 
 2003-01-22  Andreas Schwab  <schwab@suse.de>
@@ -6391,6 +6393,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2006
--- a/README	Tue Nov 21 01:10:47 2006 +0000
+++ b/README	Tue Nov 21 08:56:38 2006 +0000
@@ -1,4 +1,4 @@
-This directory tree holds version 22.0.90 of GNU Emacs, the extensible,
+This directory tree holds version 22.0.91 of GNU Emacs, the extensible,
 customizable, self-documenting real-time display editor.
 
 You may encounter bugs in this release.  If you do, please report
--- a/admin/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/admin/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -392,6 +392,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 2001 Free Software Foundation, Inc.
--- a/admin/FOR-RELEASE	Tue Nov 21 01:10:47 2006 +0000
+++ b/admin/FOR-RELEASE	Tue Nov 21 08:56:38 2006 +0000
@@ -43,11 +43,11 @@
 
 * BUGS
 
-** triska@gmx.at, Nov 2: EMACS environment variable.
+** Document use of gpg-agent
 
-** offby1@blarg.net, Nov 5: calendar gets wrong end for Daylight Savings Time
+** seltenreich@gmx.de, Nov 19: Failed assertion on make-frame-on-display
 
-** CC mode defun-finding issues.
+** jbuehler@spirentcom.com, Nov 20: AIX 5.2 loadup failure
 
 * DOCUMENTATION
 
--- a/admin/make-tarball.txt	Tue Nov 21 01:10:47 2006 +0000
+++ b/admin/make-tarball.txt	Tue Nov 21 08:56:38 2006 +0000
@@ -21,11 +21,12 @@
 
 5.   rm configure; make bootstrap
 
-6.  Commit configure, README, AUTHORS, lisp/cus-load.el,
-    lisp/finder-inf.el, lisp/version.el, man/emacs.texi,
-    lispref/elisp.texi.  Copy lisp/loaddefs.el to lisp/ldefs-boot.el
-    and commit lisp/ldefs-boot.el.  For a release, also commit the
-    ChangeLog files in all directories.
+6.  Commit configure, README, AUTHORS, lisp/finder-inf.el,
+    lisp/version.el, man/emacs.texi, lispref/elisp.texi,
+    mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings,
+    mac/src/Emacs.r, nt/emacs.rc.  Copy lisp/loaddefs.el to
+    lisp/ldefs-boot.el and commit lisp/ldefs-boot.el.  For a release,
+    also commit the ChangeLog files in all directories.
 
 7.   make-dist --snapshot.  Check the contents of the new tar with
      admin/diff-tar-files against an older tar file.  Some old pretest
--- a/configure	Tue Nov 21 01:10:47 2006 +0000
+++ b/configure	Tue Nov 21 08:56:38 2006 +0000
@@ -991,7 +991,7 @@
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi
-    cd "$ac_popdir"
+    cd $ac_popdir
   done
 fi
 
@@ -1740,6 +1740,9 @@
     opsys=freebsd
     case "${canonical}" in
       alpha*-*-freebsd*)	machine=alpha ;;
+      ia64-*-freebsd*)		machine=ia64 ;;
+      sparc64-*-freebsd*)	machine=sparc ;;
+      powerpc-*-freebsd*)	machine=macppc ;;
       i[3456]86-*-freebsd*)	machine=intel386 ;;
       amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
     esac
@@ -3307,7 +3310,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3365,7 +3369,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3481,7 +3486,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3535,7 +3541,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3580,7 +3587,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3624,7 +3632,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4012,7 +4021,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4640,7 +4650,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4866,7 +4877,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4895,7 +4907,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4965,7 +4978,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5017,7 +5031,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5088,7 +5103,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5140,7 +5156,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5214,7 +5231,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5384,7 +5402,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5453,7 +5472,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5607,7 +5627,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5814,7 +5835,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5956,7 +5978,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6075,7 +6098,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6240,7 +6264,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6303,7 +6328,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6376,7 +6402,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6462,7 +6489,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6535,7 +6563,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6605,7 +6634,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6664,7 +6694,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6733,7 +6764,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6794,7 +6826,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6860,7 +6893,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7006,7 +7040,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7070,7 +7105,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7135,7 +7171,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7181,7 +7218,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7255,7 +7293,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7320,7 +7359,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7364,7 +7404,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7435,7 +7476,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7485,7 +7527,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7556,7 +7599,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7606,7 +7650,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7677,7 +7722,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7727,7 +7773,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7798,7 +7845,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7848,7 +7896,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7919,7 +7968,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7969,7 +8019,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8056,7 +8107,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8162,7 +8214,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8222,7 +8275,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8346,7 +8400,6 @@
 echo "$as_me:$LINENO: checking for X" >&5
 echo $ECHO_N "checking for X... $ECHO_C" >&6
 
-ac_path_x_has_been_run=yes
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -8439,7 +8492,7 @@
 /usr/openwin/share/include'
 
 if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for a specified header file.
+  # Guess where to find include files, by looking for Intrinsic.h.
   # First, try using that file with no special directory specified.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -8513,7 +8566,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8573,12 +8627,8 @@
   # Update the cache value to reflect the command line values.
   ac_cv_have_x="have_x=yes \
 		ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
-  # It might be that x_includes is empty (headers are found in the
-  # standard search path. Then output the corresponding message
-  ac_out_x_includes=$x_includes
-  test "x$x_includes" = x && ac_out_x_includes="in standard search path"
-  echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5
-echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6
+  echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
+echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
 fi
 
 if test "$no_x" = yes; then
@@ -8667,7 +8717,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8782,7 +8833,13 @@
 if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
   if test "${with_carbon+set}" != set \
      && test "${carbon_appdir_x+set}" != set; then
-    HAVE_CARBON=no
+    for var in with_x with_x_toolkit with_gtk with_xim \
+               with_xpm with_jpeg with_tiff with_gif with_png; do
+      if eval test \"\${$var+set}\" = set; then
+        HAVE_CARBON=no
+        break
+      fi
+    done
   fi
 fi
 if test "${HAVE_CARBON}" = yes; then
@@ -8903,7 +8960,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8998,7 +9056,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9057,7 +9116,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9141,7 +9201,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9325,7 +9386,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9577,7 +9639,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9644,7 +9707,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9713,7 +9777,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9798,7 +9863,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9875,7 +9941,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9929,7 +9996,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9998,7 +10066,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10102,7 +10171,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10169,7 +10239,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10239,7 +10310,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10480,7 +10552,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10589,7 +10662,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10692,7 +10766,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10770,7 +10845,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10924,7 +11000,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10998,7 +11075,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11070,7 +11148,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11152,7 +11231,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11231,7 +11311,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11302,7 +11383,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11371,7 +11453,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11444,7 +11527,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11567,7 +11651,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11669,7 +11754,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11749,7 +11835,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11937,7 +12024,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12082,7 +12170,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12434,7 +12523,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12579,7 +12669,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12688,7 +12779,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12833,7 +12925,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12940,7 +13033,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13094,7 +13188,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13169,7 +13264,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13317,7 +13413,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13394,7 +13491,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13748,112 +13846,6 @@
   fi
   # We also have mouse menus.
   HAVE_MENUS=yes
-
-  tmp_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -framework Carbon"
-  echo "$as_me:$LINENO: checking for CancelMenuTracking" >&5
-echo $ECHO_N "checking for CancelMenuTracking... $ECHO_C" >&6
-if test "${ac_cv_func_CancelMenuTracking+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define CancelMenuTracking to an innocuous variant, in case <limits.h> declares CancelMenuTracking.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define CancelMenuTracking innocuous_CancelMenuTracking
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char CancelMenuTracking (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef CancelMenuTracking
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char CancelMenuTracking ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_CancelMenuTracking) || defined (__stub___CancelMenuTracking)
-choke me
-#else
-char (*f) () = CancelMenuTracking;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != CancelMenuTracking;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_CancelMenuTracking=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_CancelMenuTracking=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_CancelMenuTracking" >&5
-echo "${ECHO_T}$ac_cv_func_CancelMenuTracking" >&6
-if test $ac_cv_func_CancelMenuTracking = yes; then
-  have_cmt=yes
-else
-  have_cmt=no
-fi
-
-  if test "$have_cmt" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CANCELMENUTRACKING 1
-_ACEOF
-
-  fi
-  CFLAGS="$tmp_CFLAGS"
 fi
 
 ### Use session management (-lSM -lICE) if available
@@ -13889,7 +13881,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14034,7 +14027,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14110,7 +14104,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14173,7 +14168,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14254,7 +14250,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14395,7 +14392,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14540,7 +14538,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14616,7 +14615,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14845,7 +14845,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14911,7 +14912,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15171,7 +15173,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15390,7 +15393,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15574,7 +15578,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15901,7 +15906,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16075,7 +16081,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16365,7 +16372,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16469,7 +16477,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16544,7 +16553,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16696,7 +16706,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16764,7 +16775,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16941,7 +16953,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17017,7 +17030,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17171,7 +17185,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17322,7 +17337,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17473,7 +17489,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17615,7 +17632,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17805,7 +17823,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17849,7 +17868,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18004,7 +18024,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18191,7 +18212,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18330,7 +18352,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18462,7 +18485,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18564,7 +18588,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18740,7 +18765,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18843,7 +18869,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -18919,7 +18946,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19023,7 +19051,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19180,7 +19209,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19246,7 +19276,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19356,7 +19387,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19501,7 +19533,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19574,7 +19607,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19647,7 +19681,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19720,7 +19755,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19794,7 +19830,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19866,7 +19903,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -19941,7 +19979,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20013,7 +20052,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20086,7 +20126,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20236,7 +20277,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20382,7 +20424,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20528,7 +20571,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20685,7 +20729,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20831,7 +20876,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -20977,7 +21023,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21135,7 +21182,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21293,7 +21341,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21482,7 +21531,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21555,7 +21605,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21623,7 +21674,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21669,7 +21721,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21807,7 +21860,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -21945,7 +21999,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -22151,7 +22206,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -22307,7 +22363,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -22478,7 +22535,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -22546,7 +22604,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -22731,7 +22790,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -23024,7 +23084,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -23218,7 +23279,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -23259,7 +23321,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -23326,7 +23389,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -24455,6 +24519,11 @@
   *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
   esac
 
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
   # Let's still pretend it is `configure' which instantiates (i.e., don't
   # use $as_me), people would be surprised to read:
   #    /* config.h.  Generated by config.status.  */
@@ -24493,12 +24562,6 @@
 	 fi;;
       esac
     done` || { (exit 1); exit 1; }
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
   sed "$ac_vpsub
--- a/configure.in	Tue Nov 21 01:10:47 2006 +0000
+++ b/configure.in	Tue Nov 21 08:56:38 2006 +0000
@@ -1788,7 +1788,13 @@
 if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
   if test "${with_carbon+set}" != set \
      && test "${carbon_appdir_x+set}" != set; then
-    HAVE_CARBON=no
+    for var in with_x with_x_toolkit with_gtk with_xim \
+               with_xpm with_jpeg with_tiff with_gif with_png; do
+      if eval test \"\${$var+set}\" = set; then
+        HAVE_CARBON=no
+        break
+      fi
+    done
   fi
 fi
 if test "${HAVE_CARBON}" = yes; then
@@ -2503,15 +2509,6 @@
   fi
   # We also have mouse menus.
   HAVE_MENUS=yes
-
-  tmp_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -framework Carbon"
-  AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no)
-  if test "$have_cmt" = yes; then
-    AC_DEFINE(HAVE_CANCELMENUTRACKING, 1,
-              [Define to 1 if CancelMenuTracking is available (Mac OSX).])
-  fi
-  CFLAGS="$tmp_CFLAGS"
 fi
 
 ### Use session management (-lSM -lICE) if available
--- a/etc/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,7 +1,39 @@
-2006-11-05  Slawomir Nowaczyk  <slawek@cs.lth.se> (tiny change)
+2006-11-20  Michael Olson  <mwolson@gnu.org>
+
+	* NEWS: Change M-x erc-select to M-x erc.
+
+2006-11-20  Sun Yijiang  <sunyijiang@gmail.com>
+
+	* TUTORIAL.cn: Updated.
+
+2006-11-17  Carsten Dominik  <dominik@science.uva.nl>
+
+	* orgcard.tex (section{Agenda Views}): Document `C-k'.
+
+2006-11-13  Carsten Dominik  <dominik@science.uva.nl>
+
+	* orgcard.tex: Version number change.
+
+2006-11-13  Bill Wohler  <wohler@newt.com>
+
+	Release MH-E version 8.0.3.
+
+	* NEWS, MH-E-NEWS: Update for MH-E release 8.0.3.
+
+2006-11-10  Juanma Barranquero  <lekktu@gmail.com>
+
+	* DEVEL.HUMOR: Two more entries.
+
+2006-11-10  Carsten Dominik  <carsten.dominik@gmail.com>
+
+	* orgcard.tex (section{Archiving}): Document C-TAB.
+	(section{TODO Items and Checkboxes}): Checkbox keys moved to this
+	section, added documentation for the key `C-c #'.
+
+2006-11-05  Slawomir Nowaczyk  <slawek@cs.lth.se>  (tiny change)
 
 	* emacs.py (eargs): Provide eldoc message for builtin types.
-	  Make sure eargs always outputs sentinel, to avoid emacs freeze.
+	  Make sure eargs always outputs sentinel, to avoid Emacs freeze.
 
 2006-10-22  Chong Yidong  <cyd@stupidchicken.com>
 
@@ -64,6 +96,11 @@
 	* PROBLEMS (are): Emacs compiled with Gtk+ crashes when closing a
 	display (x-close-connection).
 
+2006-09-03  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc.texi (Getting Started, Connecting): Changed erc-select to
+	erc.
+
 2006-09-02  Juri Linkov  <juri@jurta.org>
 
 	* HELLO: Regroup Europe Non-ASCII examples by similar scripts.
@@ -3120,6 +3157,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
--- a/etc/DEVEL.HUMOR	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/DEVEL.HUMOR	Tue Nov 21 08:56:38 2006 +0000
@@ -136,3 +136,24 @@
 course in divination.
    There'd be quite a sensational market for that, you know."
                                     -- Emilio Lopes and David Kastrup
+
+----------------------------------------------------------------------
+
+  "[T]here may be a good reason since the code explicitly checks for
+this; see keyboard.c:789 [...]"
+  "I think I understand, but I can't find the code in keyboard.c.  Do
+you really mean 'line 789'?  Of which revision?"
+  "Sorry; by 789, I mean 3262 :-P"
+                                   -- Chong Yidong and Stefan Monnier
+
+----------------------------------------------------------------------
+
+  "[...] In my opinion, your change does not either increase or
+decrease readability.  It's a tossup."
+  "Uh, setting tem to '', an artificial empty string, in order to have
+j incremented once again before breaking out of the finished loop is
+readable?
+   Is this kind of 'readable' synonymous to 'comprehensible with
+serious effort', reminiscent of mathematicians' use of 'trivial' as
+synonymous with 'provable with serious effort'?"
+                                              -- RMS and David Kastrup
--- a/etc/ERC-NEWS	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/ERC-NEWS	Tue Nov 21 08:56:38 2006 +0000
@@ -1,5 +1,21 @@
 ERC NEWS                                                       -*- outline -*-
 
+* Changes in ERC 5.2 (stable pre-release for Emacs 22)
+
+** M-x erc RET now starts ERC.
+`erc-select' has been changed to `erc'.  `erc-select' still remains as
+an alias of `erc'. Likewise, `erc-select-ssl' has been renamed to
+`erc-ssl' with `erc-select-ssl' as its alias.  The function that was
+known as `erc' is now `erc-open'.
+
+** Changes and additions to modules
+
+*** Channel tracking (erc-track.el)
+
+**** Use mouse-face and help-echo for channel names in the mode-line.
+This helps people using a mouse know that they are buttons and can be
+clicked on.
+
 * Changes in ERC 5.1.4
 
 ** Make find-function and find-variable work in Emacs 22 for
--- a/etc/MH-E-NEWS	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/MH-E-NEWS	Tue Nov 21 08:56:38 2006 +0000
@@ -6,6 +6,33 @@
 are permitted in any medium without royalty provided the copyright
 notice and this notice are preserved.
 
+* Changes in MH-E 8.0.3
+
+Version 8.0.3 fixes errors in sending messages and in running spam
+filter commands in certain circumstances.
+
+** Bug Fixes in MH-E 8.0.3
+
+*** mh-send-args Cannot Be nil
+
+If `mh-send-uses-spost-flag' was set, an error would prevent the
+sending of messages. This has been fixed (closes SF #1564742).
+
+*** Missing Quotes in sa-learn Command Line
+
+This has been fixed (closes SF #1565460).
+
+*** Errors Associated with mh-junk-background
+
+The Spamassassin filter commands were used inconsistently and
+incorrectly; if `mh-junk-background' were nil, not all of the updating
+would happen correctly. In the other back-ends such as bogofilter and
+SpamProbe, a value of t for `mh-junk-background' would cause the
+commands associated with these filters to fail. These problems have
+been fixed (closes SF #1594802).
+
+
+
 * Changes in MH-E 8.0.2
 
 Version 8.0.2 fixes the tool bar and `F n' on XEmacs, and `K a' on GNU
--- a/etc/NEWS	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/NEWS	Tue Nov 21 08:56:38 2006 +0000
@@ -374,7 +374,8 @@
 See below under "incremental search changes".
 
 ---
-** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
+** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
+a special case.
 
 Since the default input is the current directory, this has the effect
 of specifying the current directory.  Normally that means to visit the
@@ -1529,8 +1530,11 @@
 but declared obsolete.
 
 +++
-*** The EMACS environment variable now defaults to Emacs's absolute
-file name, instead of to "t".
+*** The new INSIDE_EMACS environment variable is set to "t" in
+subshells running inside Emacs.  This supersedes the EMACS environment
+variable, which will be removed in a future Emacs release.  Programs
+that need to know whether they are started inside Emacs should check
+INSIDE_EMACS instead of EMACS.
 
 ** M-x Compile changes:
 
@@ -1761,8 +1765,8 @@
 To see what modules are available, type
 M-x customize-option erc-modules RET.
 
-To start an IRC session, type M-x erc-select, and follow the prompts
-for server, port, and nick.
+To start an IRC session, type M-x erc, and follow the prompts for
+server, port, and nick.
 
 ---
 ** Rcirc is now part of the Emacs distribution.
@@ -3354,7 +3358,7 @@
 ---
 ** MH-E changes.
 
-Upgraded to MH-E version 8.0.2.  There have been major changes since
+Upgraded to MH-E version 8.0.3.  There have been major changes since
 version 5.0.2; see MH-E-NEWS for details.
 
 ** Calendar changes:
--- a/etc/TODO	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/TODO	Tue Nov 21 08:56:38 2006 +0000
@@ -487,6 +487,10 @@
    <http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg01034.html>.
    [rgm@gnu.org will look at this after 22.1]
 
+** Possibly make cal-dst use the system timezone database directly.
+   See thread
+   <http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html>
+
 * Internal changes
 
 ** Replace gmalloc.c with the modified Doug Lea code from the current
--- a/etc/TUTORIAL.cn	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/TUTORIAL.cn	Tue Nov 21 08:56:38 2006 +0000
@@ -17,7 +17,7 @@
 ÖØÒªÌáʾ£ºÒªÍ˳ö Emacs£¬ÇëÓà C-x C-c£¨Á½¸öÁ¬ÐøµÄ×éºÏ¼ü£©¡£ÏÂÎÄÖÐ×ó±ß¶¥
 Ðеġ°>>¡±×ÖÑùÓÃÀ´ÌáʾÄã³¢ÊÔ¼üÅÌÃüÁî¡£±ÈÈ磺
 <<Blank lines inserted around following line by help-with-tutorial>>
-[±¾Ò³µ±ÖÐÌØÒâÁô³öһЩ¿Õ°×ÊdzöÓÚ½ÌѧĿµÄ£¬Çë¼ÌÐøÍùºó¿´]
+[±¾Ò³µ±ÖÐÌØÒâÁô³öһЩ¿Õ°×ÊdzöÓÚ½ÌѧĿµÄ£¬Çë¼ÌÐøÍùºóÔĶÁ]
 >> ÏÖÔÚÊäÈë C-v £¨²é¿´ÏÂÒ»ÆÁÎÄ×Ö£©Òƶ¯µ½ÏÂÒ»ÆÁ¡£
    £¨±ð½ôÕÅ£¬ÔÚÊäÈë×Ö·û v µÄͬʱעÒâÒª°´×¡ CONTROL ¼ü£©
    ´ÓÏÖÔÚ¿ªÊ¼£¬Ã¿¶ÁÍ굱ǰһÆÁÄ㶼ÐèÒªÕâÑù×öÒ»´Î¡£
@@ -129,8 +129,8 @@
         C-f     ÏòÓÒÒƶ¯Ò»¸ö×Ö·û
         C-b     Ïò×óÒƶ¯Ò»¸ö×Ö·û
 
-        M-f     ÏòÓÒÒƶ¯Ò»¸ö´Ê¡¾ÖÐÎÄÊÇÒƶ¯µ½ÏÂÒ»¸ö±êµã·ûºÅ¡¿
-        M-b     Ïò×óÒƶ¯Ò»¸ö´Ê¡¾ÖÐÎÄÊÇÒƶ¯µ½ÉÏÒ»¸ö±êµã·ûºÅ¡¿
+        M-f     ÏòÓÒÒƶ¯Ò»¸ö´Ê¡¾¶ÔÖÐÎÄÊÇÒƶ¯µ½ÏÂÒ»¸ö±êµã·ûºÅ¡¿
+        M-b     Ïò×óÒƶ¯Ò»¸ö´Ê¡¾¶ÔÖÐÎÄÊÇÒƶ¯µ½ÉÏÒ»¸ö±êµã·ûºÅ¡¿
 
         C-n     Òƶ¯µ½ÏÂÒ»ÐÐ
         C-p     Òƶ¯µ½ÉÏÒ»ÐÐ
@@ -212,14 +212,14 @@
 
 Èç¹ûÄ㲻СÐÄ°´ÁËһϠ<ESC>£¬ÄãÒ²¿ÉÒÔÓà C-g À´È¡ÏûËü¡£
 ¡¾Õâ¸ö˵·¨ËƺõÓÐÎÊÌ⣬ÒòΪ°´ÕÕÕâ¸ö°´¼ü˳ÐòÊäÈëµÄÓ¦¸ÃÊÇ C-M-g¡£
-  È¡Ïû<ESC> µÄÕýÈ·×ö·¨ÊÇÔÙÁ¬°´Á½´Î <ESC>¡£¡¿
+  È¡Ïû <ESC> µÄÕýÈ·×ö·¨ÊÇÔÙÁ¬°´Á½´Î <ESC>¡£¡¿
 
 
 * ±»½ûÓõÄÃüÁDISABLED COMMANDS£©
 -----------------------------------
 
 ÓÐһЩ Emacs ÃüÁî±»¡°½ûÓá±ÁË£¬ÒÔ±ÜÃâ³õѧÕßÔÚ²»Á˽âÆäÈ·Çй¦ÄܵÄÇé¿öÏÂÎó
-ÓÃËüÃÇ£¬Ôì³ÉÂé·³¡£
+ÓöøÔì³ÉÂé·³¡£
 
 Èç¹ûÄãÓõ½ÁËÒ»¸ö±»½ûÓõÄÃüÁEmacs »áÏÔʾһ¸öÌáʾÏûÏ¢£¬¸æËßÄãÕâ¸öÃüÁî
 µ½µ×ÊǸÉʲôµÄ£¬Ñ¯ÎÊÄãÊÇ·ñÒª¼ÌÐø£¬²¢Ôڵõ½ÄãµÄ¿Ï¶¨Ö®ºóÔÙÖ´ÐÐÕâÃüÁî¡£
@@ -234,10 +234,10 @@
 * ´°¸ñ£¨WINDOWS£©
 -----------------
 
-Emacs ¿ÉÒÔÓжà¸ö´°¸ñ£¬Ã¿¸ö´°¸ñ¶¼ÏÔʾ²»Í¬µÄÎÄ×Ö¡£ÎÒÃǺóÃæÔÙ½éÉÜÔõô¶Ô¸¶
-¶à¸ö´°¸ñ£¬ÏÖÔÚÏÈÈÃÎÒÃÇÏȸãÃ÷°×ÈçºÎ¹Øµô¶àÓàµÄ´°¸ñ¡£ÆäʵҲºÜ¼òµ¥£º
+Emacs ¿ÉÒÔÓжà¸ö´°¸ñ£¬Ã¿¸ö´°¸ñÏÔʾ²»Í¬µÄÎÄ×Ö¡£ºóÃæ»á½éÉÜÔõô¶Ô¸¶¶à¸ö´°
+¸ñ£¬ÏÖÔÚÎÒÃÇÏÈѧ»áÈçºÎ¹Øµô¶àÓàµÄ´°¸ñ¡£ÆäʵҲºÜ¼òµ¥£º
 
-        C-x 1   Ö»±£ÁôÒ»¸ö´°¸ñ£¨Ò²¾ÍÊǹصôÆäËûËùÓеĴ°¸ñ£©¡£
+        C-x 1   Ö»±£ÁôÒ»¸ö´°¸ñ£¨Ò²¾ÍÊǹصôÆäËüËùÓд°¸ñ£©¡£
 
 Ò²¾ÍÊÇÏÈ°´ CONTROL-x È»ºóÔÙ°´ 1¡£C-x 1 »á±£Áô¹â±êËùÔڵĴ°¸ñ£¬²¢½«ÆäÀ©´ó
 µ½Õû¸öÆÁÄ»£¬Í¬Ê±¹ØµôËùÓÐÆäËüµÄ´°¸ñ¡£
@@ -245,33 +245,34 @@
 >> °Ñ¹â±êÒƵ½±¾ÐÐÈ»ºóÊäÈë C-u 0 C-l¡£
 
 >> ÊäÈë CONTROL-h k CONTROL-f¡£¹Û²ìµ±Ò»¸öд°¸ñ³öÏÖʱµ±Ç°´°¸ñ£¨ÓÃÀ´ÏÔʾ
-   CONTROL-f ÃüÁîµÄÎĵµ£©ÊÇÈçºÎ±äСµÄ¡£
+   CONTROL-f ÃüÁîµÄÎĵµ£©ÊÇÈçºÎËõСµÄ¡£
 
 >> ÊäÈë C-x 1 ¹ØµôÎĵµ´°¸ñ¡£
 
-Õâ¸öÃüÁî¸úÏÈǰѧµ½µÄÃüÁ̫һÑù£¬ÒòΪËü°üº¬ÁËÁ½¸ö×Ö·û£¬ÒÔ CONTROL-x ¿ª
+Õâ¸öÃüÁî¸úÏÈǰѧ¹ýµÄÃüÁ̫һÑù£¬ÒòΪËü°üº¬ÁËÁ½¸ö×Ö·û£¬ÒÔ CONTROL-x ¿ª
 ʼ¡£ÓÐһϵÁÐÃüÁÊÇÒÔ CONTROL-x ¿ªÊ¼µÄ£¬ÕâЩÃüÁîÐí¶à¶¼¸ú¡°´°¸ñ¡¢Îļþ¡¢
 »º³åÇø¡¾»º³åÇø£¨buffer£©»áÔÚºóÎÄÏêϸ½éÉÜ¡¿¡±µÈµÈÖîÈç´ËÀàµÄ¶«Î÷Óйأ¬Æä
-ÖÐÓÐЩÃüÁî¿ÉÄÜÓÐ 2 ¸ö¡¢3 ¸ö»òÕß 4 ¸ö×Ö·û³¤¡£
+ÖÐÓÐЩÃüÁî¿ÉÄÜ°üº¬ÁË 2 ¸ö¡¢3 ¸ö»òÕß 4 ¸ö×Ö·û¡£
 
 
 * ²åÈëÓëɾ³ý£¨INSERTING AND DELETING£©
 --------------------------------------
 
-²åÈëÎÄ×ֺܼòµ¥£¬ÇüüÅ̾ÍÐÐÁË¡£ÄãÄÜ¿´µ½µÄ×Ö·û£¬±ÈÈç A¡¢7¡¢* µÈµÈ£¬¶¼±»
-Emacs ÊÓΪÎÄ×Ö²¢ÇÒ¿ÉÒÔÖ±½Ó²åÈë¡£Çà <Return>£¨»Ø³µ¼ü£©»á²åÈëÒ»¸ö»»Ðзû¡£
+²åÈëÎÄ×ֺܼòµ¥£¬Ö±½ÓÇüüÅ̾ͿÉÒÔÁË¡£ÄãÄÜ¿´µ½µÄ×Ö·û£¬±ÈÈç A¡¢7¡¢* µÈµÈ£¬
+¶¼±» Emacs ÊÓΪÎÄ×Ö²¢ÇÒ¿ÉÒÔÖ±½Ó²åÈë¡£Çà <Return>£¨»Ø³µ¼ü£©»á²åÈëÒ»¸ö»»
+Ðзû¡£
 
-Äã¿ÉÒÔÓà <Delback> À´É¾³ý×îºóÊäÈëµÄµÄÒ»¸ö×Ö·û£¬Õâ¸ö¸úÄãÔÚ Emacs Ö®ÍâµÄ
-Ó÷¨Ó¦¸ÃÒ»Ñù¡£Ò»°ãÀ´Ëµ <Delback> ¾ÍÊÇλÓÚ <Return> ¼üÉÏ·½Ä³´¦µÄÒ»¸ö´óºÅ
-¼ü£¬Í¨³£±»±êʾΪ¡°Delete¡±¡¢¡°Del¡±»òÕß¡°Backspace¡±¡£
+Äã¿ÉÒÔÓà <Delback> À´É¾³ý×îºóÊäÈëµÄÒ»¸ö×Ö·û£¬Õâ¸ö¸úÄãÔÚ Emacs Ö®ÍâµÄÓÃ
+·¨Ó¦¸ÃÒ»Ñù¡£Ò»°ãÀ´Ëµ <Delback> ¾ÍÊÇλÓÚ <Return> ¼üÉÏ·½Ä³´¦µÄÒ»¸ö´ó¿éÍ·
+µÄ¼ü£¬Í¨³£±»±êʾΪ¡°Delete¡±¡¢¡°Del¡±»òÕß¡°Backspace¡±¡£
 
-Èç¹ûÄãÕÒµ½ÁË¡°Backspace¡±¼ü£¬ÄÇôËüÓ¦¸Ã¾ÍÊÇ <Delback>£»ÄÄÅÂÄãÓÖÔÚ±ðµÄµØ
-·½ÕÒµ½ÁËÒ»¸ö¡°Del¡±¼ü£¬ÄÇôËüÒ²Ó¦¸Ã²»ÊÇ <Delback>¡£
+Èç¹ûÄãÕÒµ½ÁË¡°Backspace¡±¼ü£¬ÄÇôËüÓ¦¸Ã¾ÍÊÇ <Delback>£»ÕâʱÄÄÅÂÄãÓÖÔÚ±ð
+µÄµØ·½ÕÒµ½ÁËÒ»¸ö¡°Del¡±¼ü£¬ÄÇôËüÒ²Ó¦¸Ã²»ÊÇ <Delback>¡£
 
 Ò»ÖÖ¸üͨÓõÄ˵·¨ÊÇ£¬<Delback> ½«É¾³ýλÓÚ¹â±êÇ°µÄÒ»¸ö×Ö·û¡£
 
->> ÏÖÔÚ¾ÍÊÔÊÔ¡ª¡ªÇõã×Ö£¬È»ºó°´¼¸Ï <Delback> ɾ³ýËüÃÇ¡£
-   ²»Óõ£ÐÄÄã»áÐÞ¸ÄÎļþ£¬Äã¸Éʲô¶¼Ã»¹Øϵ£¬ÕâÀï¾ÍÊÇר¸øÄãÁ·Ï°Óõġ£
+>> ÏÖÔÚ¾ÍÀ´ÊÔÊÔ¡ª¡ªÇõã×Ö£¬È»ºó°´¼¸Ï <Delback> ɾ³ýËüÃÇ¡£
+   ²»Óõ£ÐÄÎļþ±»Ð޸ģ¬Äã×öʲô¶¼Ã»¹Øϵ£¬ÕâÀï¾ÍÊÇר¸øÄãÁ·Ï°Óõġ£
 
 Èç¹ûÒ»ÐÐÎÄ×ֺܳ¤¡¢³¬³öÁË´°¸ñµÄ¿í¶È£¬ÏÔʾ²»ÏµIJ¿·Ö»áÔÚ½ôÁÚµÄÏÂÒ»ÐмÌÐø
 ÏÔʾ¡£Õâʱ»áÓÐÒ»¸ö·´Ð±Ïߣ¨ÔÚ¿ØÖÆ̨ÏÂÊÇ·´Ð±Ïߣ¬Èç¹ûÄãÓÃͼÐδ°¿Úϵͳ£¬Ôò
@@ -281,7 +282,7 @@
 
 >> Óà <Delback> ɾµôһЩÎÄ×Ö£¬Ö±µ½´ËÐ㤶ÈСÓÚ´°¸ñ¿í¶È£¬½ÓÐøÐоÍÏûʧÁË¡£
 
-»»Ðзû¸úÆäËû×Ö·ûÒ»Ñù¿ÉÒÔ±»É¾³ý¡£Á½ÐÐÖмäµÄ»»Ðзû±»É¾³ýºó£¬ÕâÁ½Ðн«»áºÏ
+»»Ðзû¸úÆäËü×Ö·ûÒ»Ñù¿ÉÒÔ±»É¾³ý¡£Á½ÐÐÖмäµÄ»»Ðзû±»É¾³ýºó£¬ÕâÁ½Ðн«»áºÏ
 ²¢³ÉÒ»ÐС£Èç¹ûºÏ²¢ºóµÄÕâÒ»ÐÐÌ«³¤£¬³¬³öÁË´°¸ñ¿í¶È£¬Ëü¾Í»áÒÔÒ»¸ö½ÓÐøÐÐÀ´
 ÏÔʾ¡£
 
@@ -315,24 +316,24 @@
 ºÍ M-k µÄ¹ØϵÔÚijÖ̶ֳÈÉÏÓë C-e ºÍ M-e Ò»Ñù¡ª¡ªÈç¹û°Ñ¡°Ò»ÐС±ºÍ¡°Ò»¾ä¡±
 ×÷Ò»¸öÀà±ÈµÄ»°¡£
 
-ÄãÒ²¿ÉÒÔÓÃÒ»ÖÖͳһµÄ°ì·¨À´ÒƳý»º³åÇøÀïµÄÈκÎÒ»²¿·Ö£ºÊ×ÏȰѹâ±êÒƶ¯µ½Äã
+ÄãÒ²¿ÉÒÔÓÃÒ»ÖÖͨÓõİ취À´ÒƳý»º³åÇøÀïµÄÈκÎÒ»²¿·Ö£ºÊ×ÏȰѹâ±êÒƶ¯µ½Äã
 ÏëÒªÒƳýµÄÇøÓòµÄÒ»¶Ë£¬È»ºó°´ C-@ »ò C-SPC£¨ÈÎÒ»¼´¿É£¬SPCÖ¸¿Õ¸ñ£©¡¾×¢Ò⣬
 C-SPC ÍùÍù±»ÖÐÎÄÓû§É趨³ÉÊäÈë·¨Èȼü£¬Èç¹ûÕâÑù£¬C-SPC ¾Í±»ÏµÍ³À¹½Ø¶øÎÞ
-·¨ÊäÈë¸ø Emacs ÁË£¬Òò´ËÕâÀﻹÊÇÍƼöʹÓÃC-@¡£¡¿£¬È»ºóÔÙÒƶ¯µ½ÁíÒ»¶Ë£¬ÔÙ
-°´ C-w ¾Í¿ÉÒÔ°ÑλÓÚÕâÁ½µãÖ®¼äµÄËùÓÐÎÄ×ÖÒƳýÁË¡£
+·¨´«µÝ¸ø Emacs ÁË£¬Òò´ËÕâÀﻹÊÇÍƼöʹÓÃC-@¡£¡¿£¬È»ºó½«¹â±êÒƶ¯µ½ÁíÒ»¶Ë£¬
+ÔÙ°´ C-w ¾Í¿ÉÒÔ°ÑλÓÚÕâÁ½µãÖ®¼äµÄËùÓÐÎÄ×ÖÒƳýÁË¡£
 
 >> Òƶ¯¹â±êµ½ÉÏÒ»¶Î¿ªÍ·µÄ¡°Ä㡱×Ö¡£
 >> ÊäÈë C-@ ¡£Emacs Ó¦¸Ã»áÔÚÆÁÄ»µÄÏ·½ÏÔʾһ¸ö¡°Mark set¡±µÄÏûÏ¢¡£
 >> Òƶ¯¹â±êµ½µÚ¶þÐÐÖеġ°¶Ë¡±×Ö¡£
->> ÊäÈë C-w£¬¾Í»á°Ñ´Ó¡°Ä㡱¿ªÊ¼µ½¡°¶Ë¡±Ö®Ç°µÄÎÄ×ÖÈ«²¿ÒƳý¡£
+>> ÊäÈë C-w£¬´Ó¡°Ä㡱¿ªÊ¼µ½¡°¶Ë¡±Ö®Ç°µÄÎÄ×Ö±»È«²¿ÒƳý¡£
 
 ×¢Òâ,¡°ÒƳý£¨kill£©¡±ºÍ¡°É¾³ý£¨delete£©¡±µÄ²»Í¬ÔÚÓÚ±»ÒƳýµÄ¶«Î÷¿ÉÒÔÕÒ»Ø
 À´£¬¶ø±»É¾³ýµÄ¾Í²»ÐÐÁË¡£¡¾Êµ¼ÊÉÏ£¬ÒƳýµôµÄ¶«Î÷ËäÈ»¿´ÆðÀ´¡°Ïûʧ¡±ÁË£¬µ«
 ʵ¼ÊÉϱ» Emacs ¼Ç¼ÁËÏÂÀ´£¬Òò´Ë»¹¿ÉÒÔÕÒ»ØÀ´£»¶øɾ³ýµôµÄ¶«Î÷ËäȻҲ¿ÉÄÜ»¹
 ÔÚÄÚ´æÀµ«ÊÇÒѾ­±» Emacs¡°Å×Æú¡±ÁË£¬ËùÒÔ¾ÍÕÒ²»»ØÀ´ÁË¡£¡¿ÖØвåÈë±»ÒÆ
-³ýµÄÎÄ×Ö³ÆΪ¡°Õٻأ¨yank£©¡±¡£Ò»°ã¶øÑÔ£¬ÄÇЩ»áÈ¥³ýºÜ¶àÎÄ×ÖµÄÃüÁî»á°ÑÈ¥
-³ýµôµÄÎÄ×Ö´¢´æÆðÀ´£¨ËüÃDZ»É趨³ÉÁË¡°¿ÉÕٻء±£©£¬¶øÄÇЩֻÊÇÈ¥³ýÒ»¸ö×Ö·û
-»òÕßÖ»ÊÇÈ¥³ý¿Õ°×µÄÃüÁî¾Í²»»á´¢´æ±»È¥³ýµôµÄ¶«Î÷£¨×ÔÈ»Äã¾ÍÎÞ·¨ÕÙ»ØÁË£©¡£
+³ýµÄÎÄ×Ö³ÆΪ¡°Õٻأ¨yank£©¡±¡£Ò»°ã¶øÑÔ£¬ÄÇЩ¿ÉÄÜÏû³ýºÜ¶àÎÄ×ÖµÄÃüÁî»á°Ñ
+Ïû³ýµôµÄÎÄ×ּǼÏÂÀ´£¨ËüÃDZ»É趨³ÉÁË¡°¿ÉÕٻء±£©£¬¶øÄÇЩֻÏû³ýÒ»¸ö×Ö·û
+»òÕßÖ»Ïû³ý¿Õ°×µÄÃüÁî¾Í²»»á¼Ç¼±»Ïû³ýµÄÄÚÈÝ£¨×ÔÈ»ÄãÒ²¾ÍÎÞ·¨ÕÙ»ØÁË£©¡£
 
 >> Òƶ¯¹â±êµ½Ò»·Ç¿Õ°×ÐеÄÐÐÍ·£¬È»ºóÊäÈë C-k ÒƳýÄÇÒ»ÐÐÉϵÄÎÄ×Ö¡£
 
@@ -344,9 +345,9 @@
 C-k »á°ÑÁ½ÐÐÒÔ¼°ËüÃǵĻ»ÐзûÒƳý£»¶øÈç¹ûÖ»ÊÇÊäÈë C-k Á½´ÎÏÔÈ»²»ÊÇÕâ¸ö½á
 ¹û¡£
 
-½«±»ÒƳýµÄÎÄ×Ö»Ö¸´µÄ¶¯×÷³ÆΪ¡°Õٻأ¨yanking£©¡±¡££¨¾ÍºÃÏñÄã°Ñ±ðÈË´ÓÄãÉí
-±ßÒÆ×ߵĶ«Î÷ÓÖÃÍÁ¦µØÀ­»ØÀ´¡££©Äã¿ÉÒÔÔÚÄãɾ³ýÎÄ×ֵĵط½Õٻأ¬Ò²¿ÉÒÔÔÚ±ð
-µÄµØ·½Õٻأ¬»¹¿ÉÒÔ¶à´ÎÕÙ»ØͬÑùµÄÎÄ×ÖÒԵõ½ËüµÄ¶à¸ö¿½±´¡£
+½«±»ÒƳýµÄÎÄ×Ö»Ö¸´µÄ¶¯×÷³ÆΪ¡°Õٻأ¨yanking£©¡±¡££¨¾ÍºÃÏñ°Ñ±ðÈË´ÓÄãÉí±ß
+ÒÆ×ߵĶ«Î÷ÓÖÃÍÁ¦µØÀ­»ØÀ´¡££©Äã¿ÉÒÔÔÚÄãɾ³ýÎÄ×ֵĵط½Õٻأ¬Ò²¿ÉÒÔÔÚ±ðµÄ
+µØ·½Õٻأ¬»¹¿ÉÒÔ¶à´ÎÕÙ»ØͬÑùµÄÎÄ×ÖÒԵõ½ËüµÄ¶à¸ö¿½±´¡£
 
 ÕٻصÄÃüÁîÊÇ C-y¡£Ëü»áÔÚ¹â±êËùÔÚ´¦²åÈëÄã×îºóÒƳýµÄÎÄ×Ö¡£
 
@@ -362,13 +363,13 @@
 >> °´ C-y¡£È»ºó°Ñ¹â±êÍùÏÂÒƶ¯¼¸ÐУ¬ÔÙ°´Ò»´Î C-y¡£
    ÏÖÔÚÄãÓ¦¸ÃÖªµÀÔõô¸´ÖÆÎÄ×ÖÁË¡£
 
-C-y ¿ÉÒÔ°Ñ×î½üÒƳýµÄÎÄ×ÖÕٻأ¬µ«Èç¹ûÄãÏëÕٻصĶ«Î÷²»ÊÇ×î½üÒƳýµÄ£¬¸ÃÔõ
-ô°ìÄØ£¿ËüÃǵ±È»Ã»Óжª£¬Äã¿ÉÒÔÓà M-y À´ÕÙ»ØËüÃÇ¡£ÔÚÓà C-y ÕÙ»Ø×î½üÒƳý
-µÄÎÄ×ÖÖ®ºó£¬½ô½Ó×ÅÔÙÓà M-y ¾Í¿ÉÒÔÕÙ»ØÔÙÇ°Ò»´Î±»ÒƳýµÄÎÄ×Ö£¬ÔÙ°´Ò»´Î
-M-y ÓÖ¿ÉÒÔÕÙ»ØÔÙÉÏÒ»´ÎµÄ£¬Òò´ËÖ»Òª¶à°´¼¸´Î M-y ¾Í¿ÉÒÔÕÒµ½ÄãÏëÒªÕٻصĶ«
-Î÷ÁË¡£ÕÒµ½ÁËÖ®ºó£¬ÄãʲôҲ²»ÓÃ×ö£¬°ÑËüÃÇÁÀÔÚÄÇÀ¼ÌÐøÄãµÄ±à¼­¾ÍÐÐÁË¡£
+C-y ¿ÉÒÔÕÙ»Ø×î½üÒ»´ÎÒƳýµÄÄÚÈÝ£¬ÄÇÈçºÎÕÙ»ØÇ°¼¸´ÎÒƳýµÄÄÚÈÝÄØ£¿ËüÃǵ±È»
+ûÓжª£¬Äã¿ÉÒÔÓà M-y À´ÕÙ»ØËüÃÇ¡£ÔÚÓà C-y ÕÙ»Ø×î½üÒƳýµÄÎÄ×ÖÖ®ºó£¬½ô½Ó
+×ÅÔÙ°´ M-y ¾Í¿ÉÒÔÕÙ»ØÔÙÇ°Ò»´Î±»ÒƳýµÄÄÚÈÝ£¬ÔÙ°´Ò»´Î M-y ÓÖ¿ÉÒÔÕÙ»ØÔÙÉÏ
+Ò»´ÎµÄ¡­¡­Á¬ÐøʹÓà M-y Ö±µ½ÕÒµ½ÄãÏëÒªÕٻصĶ«Î÷£¬È»ºóʲôҲ²»ÓÃ×ö£¬¼ÌÐø
+±à¼­¾ÍÐÐÁË¡£
 
-Èç¹ûÄãÒ»´Î°´ M-y °´Á˺ܶàÏ£¬Äã¿ÉÄÜ»á»Øµ½Æðʼµã£¬Ò²¾ÍÊÇ×î½üÒƳýµÄÎÄ×Ö¡£
+Èç¹ûÁ¬Ðø°´ M-y ºÜ¶à´Î£¬Äã¿ÉÄÜ»á»Øµ½Æðʼµã£¬Ò²¾ÍÊÇ×î½üÒƳýµÄÎÄ×Ö¡£
 ¡¾¿´µÃ³öÕâʵ¼ÊÉÏÊÇÒ»¸ö»·¡£¡¿
 
 >> ÒƳýÒ»ÐУ¬Òƶ¯Ò»Ï¹â±ê£¬È»ºóÔÙÒƳýÁíÍâÒ»ÐС£
@@ -376,7 +377,7 @@
    ½ô½Ó×ÅÔÙ°´ M-y£¬Ëü½«»á±»µÚÒ»´ÎÒƳýµÄÄÇÐÐÈ¡´ú¡£
    ÊÔ×ÅÔÙ°´¼¸Ï M-y ¿´¿´»á·¢Éúʲô¡£
    ÔÙ¼ÌÐø£¬Ö±µ½µÚ¶þÐб»ÕÙ»ØÀ´£¬È»ºóÔÙ×ö¸ö¼¸´Î¡£
-   Èç¹ûÄãÔ¸Ò⣬Äã¿ÉÒÔÊÔןø M-y Ö¸¶¨Ò»¸öÕýµÄ»ò¸ºµÄ²ÎÊý¡£
+   Èç¹û¸ÐÐËȤ£¬Äã¿ÉÒÔÊÔןø M-y Ö¸¶¨Ò»¸öÕýµÄ»ò¸ºµÄ²ÎÊý¡£
 
 
 * ³·Ïú£¨UNDO£©
@@ -405,24 +406,24 @@
 * Îļþ£¨FILE£©
 --------------
 
-Ïë±£´æ¹¤×÷³É¹û¾ÍÒª¼ÇµÃ´æÅÌ£¬·ñÔòÒ»µ©Í˳ö Emacs Äã±à¼­µÄÎÄ×־Ͷ¼¶ªÁË¡£Òª
+Ïë±£´æ¹¤×÷³É¹û¾ÍÒª¼ÇµÃ´æÅÌ£¬·ñÔòÒ»µ©Í˳ö Emacs Äã±à¼­µÄÎÄ×־ͻᶪʧ¡£Òª
 ´æÅÌ£¬¾ÍÒªÔڱ༭ǰ¡°Ñ°ÕÒ¡±µ½Ò»¸ö´æÅÌÎļþ¡££¨Õâ¸ö¹ý³Ìͨ³£Ò²±»³ÆΪ¡°·ÃÎÊ¡±
 Îļþ¡££©
 
-Ñ°ÕÒµ½Ò»¸öÎļþÒâζ×ÅÄã¿ÉÒÔÔÚ Emacs Àï²é¿´Õâ¸öÎļþµÄÄÚÈÝ¡£´ÓºÜ¶à·½Ãæ½²£¬
-Õâ¾ÍµÈÓÚÄãÔÚÖ±½Ó±à¼­Õâ¸öÎļþ¡£µ«ÊÇÄãËù×öµÄÐÞ¸ÄÖ»ÓÐÔÚ¡°´æÅÌ¡±µÄʱºò²Å»á
-±»Ð´ÈëÎļþ¡£Ò²ÕýÒòΪÈç´Ë£¬Äã¿ÉÒÔ¶ªÆúÒ»¸ö¸Äµ½Ò»°ëµÄÎļþ¶ø²»±Ø°ÑÕâ¸ö²Ðȱ
-ÎļþÒ²±£´æµ½¼ÆËã»úÉÏ¡£×îºó¾ÍËãÄãÕæÕý´æÁËÅÌ£¬Emacs Ò²»á°Ñ´æÅÌÇ°µÄÎļþÖØ
-ÃüÃû±£´æ£¬ÒÔ·ÀÄã¸ÄÍêÖ®ºóÓÖÏë·´»Ú¡£
+Ñ°ÕÒµ½Ò»¸öÎļþÒâζ×ÅÄã¿ÉÒÔÔÚ Emacs Àï²é¿´Õâ¸öÎļþµÄÄÚÈÝ¡£´ÓÐí¶à½Ç¶È¿´£¬
+Õâ¾ÍµÈÓÚÄãÔÚÖ±½Ó±à¼­Õâ¸öÎļþ£¬Ö»ÊÇÄãËù×öµÄÐÞ¸ÄÖ»ÓÐÔÚ¡°´æÅÌ¡±µÄʱºò²Å»á
+±»Ð´ÈëÎļþ¡£Ò²ÕýÒòΪÈç´Ë£¬Äã¿ÉÒÔ¶ªÆúÒ»¸öдµ½Ò»°ëµÄÎļþ¶ø²»±Ø°ÑÕâ¸ö²Ðȱ
+ÎļþÒ²±£´æµ½¼ÆËã»úÉÏ¡£ÔÚ´æÅ̵Äʱºò£¬Emacs »á°Ñ´æÅÌÇ°µÄÎļþÖØÃüÃû±£´æ£¬
+ÒÔ·ÀÄã¸ÄÍêÖ®ºóÓÖÏë·´»Ú¡£
 
-ÔÚÆÁÄ»µÄÏ·½£¬ÄãÓ¦¸ÃÄܹ»¿´µ½Í·Î²¶¼ÊǶÌÏß¡°-¡±µÄÒ»ÐУ¬Æ俪ͷͨ³£¶¼ÊÇÖîÈç
-¡°--:-- TUTORIAL.cn¡±ÕâÑùµÄ¶«Î÷£¬ÕâЩÎÄ×־ʹú±íÁËÄ㵱ǰÕýÔÚ·ÃÎʵÄÎļþ¡£
-ÏÖÔÚÄã·ÃÎʵÄÎļþ½Ð¡°TUTORIAL.cn¡±£¬ËüÖ»ÊǸøÄã¸öÈËÁÙʱʹÓõÄÒ»¸ö¿½±´¡£Ö»
-ÒªÄãÓà Emacs Ñ°ÕÒµ½Ò»¸öÎļþ£¬ÎļþÃû¾Í»á³öÏÖÔÚÉÏÊöλÖá£
+ÔÚÆÁÄ»µÄÏ·½£¬ÄãÓ¦¸ÃÄܹ»¿´µ½Í·Î²¶¼ÊǶÌÏß¡°-¡±µÄÒ»ÐУ¬ÐÐÊ×ͨ³£ÊÇһЩÖîÈç
+¡°--:-- TUTORIAL.cn¡±µÄÎÄ×Ö£¬ÕâЩÎÄ×Ö´ú±íÁËÄ㵱ǰÕýÔÚ·ÃÎʵÄÎļþ¡£±ÈÈçÄã
+ÏÖÔÚÕýÔÚ·ÃÎʵÄÎļþ½Ð¡°TUTORIAL.cn¡±£¬ËüÖ»ÊÇÒ»¸ö¸øÄãÁÙʱʹÓõĿ½±´¡£Ã¿µ±
+Emacs Ñ°ÕÒµ½Ò»¸öÎļþ£¬ÎļþÃû¾Í»á³öÏÖÔÚÕâ¸öλÖá£
 
-Ñ°ÕÒÎļþµÄÃüÁîÓÐÒ»¸öÌرðÖ®´¦£¬ÄǾÍÊÇÄã±ØÐë¸ø³öÎļþÃû¡£ÎÒÃdzÆÕâ¸öÃüÁî
-¡°´ÓÖն˶ÁÈëÁËÒ»¸ö²ÎÊý¡±£¨ÔÚÕâÀÕâ¸ö²ÎÊýÏÔÈ»¾ÍÊÇÎļþÃû£©¡£µ±ÄãÊäÈëÁË
-Õâ¸öÃüÁîÖ®ºó£º
+Ñ°ÕÒÎļþµÄÃüÁîÓÐÒ»¸öÌص㣬ÄǾÍÊÇÄã±ØÐë¸ø³öÎļþÃû¡£ÎÒÃdzÆÕâ¸öÃüÁî¡°´ÓÖÕ
+¶Ë¶ÁÈëÁËÒ»¸ö²ÎÊý¡±£¨ÔÚÕâÀÕâ¸ö²ÎÊýÏÔÈ»¾ÍÊÇÎļþÃû£©¡£ÔÚÄãÊäÈëÕâÌõÃüÁî
+Ö®ºó£º
 
         C-x C-f   Ñ°ÕÒÒ»¸öÎļþ
 
@@ -430,50 +431,51 @@
 Ðб»³ÆΪС»º³å£¨minibuffer£©£¬ÔÚС»º³åÀïÄã¿ÉÒÔʹÓÃͨ³£µÄ Emacs ±à¼­ÃüÁî
 À´±à¼­ÎļþÃû¡£
 
-ÔÚС»º³åÀïÊäÈëÎļþÃû£¨ÆäʵÊäÈë±ðµÄ¶«Î÷Ò²Ò»Ñù£©Ê±¿ÉÒÔÓà C-g È¡Ïû¡£
+ÔÚС»º³åÀïÊäÈëÎļþÃû£¨ÆäʵÊäÈëÆäËü¶«Î÷Ò²Ò»Ñù£©Ê±¿ÉÒÔÓà C-g È¡Ïû¡£
 
 >> ÊäÈë C-x C-f£¬È»ºóÊäÈë C-g
    Õâ»á¹ØµôС»º³å£¬Í¬Ê±Ò²»áÈ¡ÏûʹÓÃС»º³åµÄ C-x C-f ÃüÁî¡£
    µ±È»ÁË£¬ÄãҲûÓÐÕÒÈκÎÎļþ¡£
 
-ÊäÈëÍêÎļþÃûÖ®ºóÓà <Return> ½áÊø£¬È»ºó C-x C-f ÃüÁʼ¹¤×÷²¢ÕÒµ½ÄãÖ¸¶¨
-µÄÎļþ¡£Ð¡»º³åÔÚ C-x C-f ÃüÁî½áÊøÖ®ºóÒ²»áÏûʧ¡£
+Óà <Return> ½áÊøÎļþÃûµÄÊäÈë¡£ÕâÖ®ºó C-x C-f ÃüÁʼ¹¤×÷²¢ÕÒµ½ÄãÖ¸¶¨µÄ
+Îļþ¡£Ð¡»º³åÔÚ C-x C-f ÃüÁî½áÊøÖ®ºóÒ²»áÏûʧ¡£
 
-Õ£ÑÛ¼äÎļþ¾Í»áÏÔʾÔÚÆÁÄ»ÉÏ£¬Äã¿ÉÒÔ¿ªÊ¼±à¼­ÁË¡£´æÅÌÓÃÕâ¸öÃüÁ
+Õ£ÑÛ¼äÎļþ¾Í±»ÏÔʾÔÚÆÁÄ»ÉÏ£¬Äã¿ÉÒÔ¿ªÊ¼±à¼­ÁË¡£´æÅÌÓÃÕâÌõÃüÁ
 
         C-x C-s   ´¢´æÕâ¸öÎļþ
 
-Õâ¸öÃüÁî°Ñ Emacs ÖеÄÎÄ×Ö´æ´¢µ½ÎļþÖС£µÚÒ»´Î´æÅ̵Äʱºò Emacs »á½«Ô­ÎÄ
-¼þÖØÃüÃûÒÔ±£ÁôÔ­ÎÄ¡£ÖØÃüÃûµÄ¹æÔòͨ³£ÊÇÔÚÔ­ÎļþÃûÖ®ºóÌí¼ÓÒ»¸ö¡°~¡±×Ö·û¡£
+ÕâÌõÃüÁî°Ñ Emacs ÖеÄÎÄ×Ö´æ´¢µ½ÎļþÖС£µÚÒ»´Î´æÅ̵Äʱºò Emacs »á½«Ô­ÎÄ
+¼þÖØÃüÃûÒÔ±¸·Ý¡£ÖØÃüÃûµÄ¹æÔòͨ³£ÊÇÔÚÔ­ÎļþÃûÖ®ºóÌí¼ÓÒ»¸ö¡°~¡±×Ö·û¡£
+¡¾¶ÔÐí¶àÈËÀ´Ëµ£¬ÕâÊÇÒ»¸ö·³È˵ÄÌØÐÔ£¬¹ØµôÎļþ±¸·Ý¿ÉÒÔÓÃÈçÏÂÃüÁ
+  M-x customize-variable <Return> make-backup-files <Return>¡¿
 
 ´æÅ̽áÊøºó£¬Emacs »áÏÔʾдÈëÎļþµÄÎļþÃû¡£Äã×îºÃÑø³É¾­³£´æÅ̵ÄÏ°¹ß£¬Õâ
-ÑùÔÚϵͳ±ÀÀ£»òÕßËÀ»úµÄʱºòÄã²»»áËðʧ̫¶à¡£
+¿ÉÒÔ¼õÉÙϵͳ±ÀÀ£ºÍËÀ»ú¸øÄã´øÀ´µÄËðʧ¡£
 
 >> ÊäÈë C-x C-s °Ñ±¾¿ìËÙÖ¸ÄÏ´æÏÂÀ´¡£
-   Äã»á¿´µ½¡°Wrote ...TUTORIAL.cn¡±ÕâÑùµÄÏûÏ¢ÏÔʾÔÚÆÁÄ»µÄÏ·½¡£
+   Äã»áÔÚÆÁÄ»µÄÏ·½¿´µ½Ò»ÌõÏûÏ¢£º¡°Wrote ...TUTORIAL.cn¡±¡£
 
-×¢Ò⣺ʹÓÃijЩÖն˵Äʱºò£¬ÊäÈë C-x C-s »á¶³½áÆÁÄ»¡¾ÆÁĻûÓÐÈκÎÊä³ö¡¿£¬
-ÕâÑùÄã¾Í¿´²»µ½ Emacs µÄÈκα仯¡£ÆäÔ­ÒòÊDzÙ×÷ϵͳµÄ¡°Á÷Á¿¿ØÖÆ¡±¹¦ÄÜ°Ñ
-C-s À¹½ØÁË£¬²¢ÇÒ¶³½áÁËÆÁÄ»£¬Emacs ×ÔȻҲ¾Í¿´²»µ½Õâ¸öÊäÈëÁË¡£Óà C-q ¿ÉÒÔ
-½â³ýÆÁÄ»¶³½á¡£Òª½â¾öÕâ¸öÎÊÌ⣬Çë²Î¿¼ Emacs ÊÖ²áÀïµÄ¡°Spontaneous Entry
-to Incremental Search¡±Ò»½Ú¡¾Emacs ÊÖ²á¿ÉÄÜ»¹Ã»ÓÐÖÐÎÄ·­Òë¡¿£¬ÄÇÀï¿ÉÄÜÓÐ
-һЩÓÐÓõĽ¨Òé¡£
+×¢Ò⣺ÔÚijЩÖÕ¶ËÏ£¬ÊäÈë C-x C-s »á¶³½áÆÁÄ»¡¾ÆÁĻûÓÐÈκÎÊä³ö¡¿£¬Ê¹Äã¿´
+²»µ½ Emacs µÄÈκα仯¡£ÆäÔ­ÒòÊDzÙ×÷ϵͳµÄ¡°Á÷Á¿¿ØÖÆ¡±¹¦ÄÜÀ¹½ØÁË C-s ²¢
+¶³½áÁËÆÁÄ»¡£Óà C-q ¿ÉÒÔ½â³ýÆÁÄ»¶³½á¡£Òª½â¾öÕâ¸öÎÊÌ⣬Çë²Î¿¼ Emacs ÊÖ²á
+ÀïµÄ¡°Spontaneous Entry to Incremental Search¡±Ò»½Ú¡¾Emacs ÊÖ²á¿ÉÄÜ»¹Ã»
+ÓÐÖÐÎÄ·­Òë¡¿£¬ÄÇÀïÌṩÁËһЩÓÐÓõĽ¨Òé¡£
 
-Äã¿ÉÒÔÑ°ÕÒÒ»¸öÒÑÓеÄÎļþÈ»ºó²é¿´»òÕ߱༭£¬Ä㻹¿ÉÒÔÑ°ÕÒÒ»¸ö²»´æÔÚµÄÎļþ¡£
-ʵ¼ÊÉÏÕâÕýÊÇÓà Emacs ´´½¨ÐÂÎļþµÄ·½·¨£ºÕÒµ½²»´æÔÚµÄÐÂÎļþ£¬È»ºó´ÓÁ㿪ʼ¡£
-ÔÚ´æÅ̵Äʱºò£¬Emacs ²ÅÕæÕý´´½¨Õâ¸öÎļþÈ»ºóÔÙ´æÅÌ¡£ÔÚÕâÖ®ºóÒ»Çо͸úÄã±à
-¼­Ò»¸öÒÑÓÐÎļþÒ»ÑùÁË¡£
+Äã²»µ«¿ÉÒÔÑ°ÕÒÒ»¸öÒÑÓеÄÎļþÀ´²é¿´»ò±à¼­£¬»¹¿ÉÒÔÑ°ÕÒÒ»¸ö²»´æÔÚµÄÎļþ¡£
+ʵ¼ÊÉÏÕâÕýÊÇ Emacs ´´½¨ÐÂÎļþµÄ·½·¨£ºÕÒµ½²»´æÔÚµÄÐÂÎļþ¡£Ö»ÓÐÔÚ´æÅ̵Äʱ
+ºò£¬Emacs ²Å»áÕæÕý´´½¨Õâ¸öÎļþ¡£¶øÔÚÕâÖ®ºóµÄÒ»Çо͸ú±à¼­Ò»¸öÒÑÓÐÎļþû
+ÓÐÇø±ðÁË¡£
 
 
 * »º³åÇø£¨BUFFER£©
 ------------------
 
-Èç¹ûÄãÓà C-x C-f ÕÒµ½µÚ¶þ¸öÎļþ£¬µÚÒ»¸öÎļþÈÔÈ»»áÔÚ Emacs Àï¡£ÒªÇлصÚ
-Ò»¸öÎļþ£¬Äã¿ÉÒÔ C-x C-f ÔÙ´ÎÑ°ÕÒËü¡£ÕâÑù£¬Äã¿ÉÒÔÔÚ Emacs Àïͬʱ´ò¿ªºÜ
-¶àÎļþ¡£
+Äã¿ÉÒÔÓà C-x C-f ÕÒµ½²¢´ò¿ªµÚ¶þ¸öÎļþ£¬µ«µÚÒ»¸öÎļþÈÔÈ»ÔÚ Emacs ÖС£Òª
+ÇлصÚÒ»¸öÎļþ£¬Ò»ÖÖ°ì·¨ÊÇÔÙÓÃÒ»´Î C-x C-f¡£ÕâÑù£¬Äã¾Í¿ÉÒÔÔÚ Emacs ÖÐͬ
+ʱ´ò¿ª¶à¸öÎļþ¡£
 
 >> Óà C-x C-f foo <Return> µÄ·½Ê½½¨Á¢Ò»¸öÃûΪ¡°foo¡±µÄÎļþ¡£
-   È»ºóÇÃÈëһЩÎÄ×Ö£¬ÔÙÓà C-x C-s ±£´æÎļþ¡°foo¡±¡£
+   ÊäÈëһЩÎÄ×Ö£¬ÔÙÓà C-x C-s ±£´æÎļþ¡°foo¡±¡£
    ×îºó£¬ÊäÈë C-x C-f TUTORIAL.cn <Return> »Øµ½ÕâÀï¡£
 
 Emacs °Ñÿ¸ö±à¼­ÖеÄÎļþ¶¼·ÅÔÚÒ»¸ö³ÆΪ¡°»º³åÇø£¨buffer£©¡±µÄµØ·½¡£Ã¿Ñ°
@@ -484,40 +486,38 @@
 
 >> ÏÖÔÚ¾ÍÊÔһϠC-x C-b
 
-¹Û²ìһϻº³åÇøÊÇÈçºÎÃüÃûµÄ£¬ËüºÜ¿ÉÄܸúÆä¶ÔÓ¦µÄÎļþͬÃû¡£ÊÂʵÉÏ£¬ÄãÔÚÒ»
-¸ö Emacs ´°¸ñÀï¿´µ½µÄÈκÎÎÄ×Ö¶¼ÊÇij¸ö»º³åÇøµÄÒ»²¿·Ö¡£
+¹Û²ìһϻº³åÇøÊÇÈçºÎ±»ÃüÃûµÄ£¬ËüºÜ¿ÉÄܸúÓëÆä¶ÔÓ¦µÄÎļþͬÃû¡£Êµ¼ÊÉÏ£¬Ò»
+¸ö Emacs ´°¸ñÀïµÄÈκÎÎÄ×Ö¶¼ÊÇij¸ö»º³åÇøµÄÒ»²¿·Ö¡£
 
 >> ÊäÈë C-x 1 À뿪»º³åÇøÁбí
 
-²»¹Ü´æÔÚ¶àÉÙ»º³åÇø£¬ÈκÎʱºò¶¼Ö»ÄÜÓÐÒ»¸öÊÇ¡°µ±Ç°¡±»º³åÇø£¬Ò²¾ÍÊÇÄãÕýÔÚ
-±à¼­µÄÕâ¸ö¡£Èç¹ûÄãÏë±à¼­ÁíÍâÒ»¸ö»º³åÇø£¬ÄÇôÄã±ØÐë¡°Çл»¡±¹ýÈ¥¡£ÉÏÃæ½²
-¹ý£¬Óà C-x C-f ¿ÉÒÔÇл»µ½Ä³¸öÎļþ¶ÔÓ¦µÄ»º³åÇø¡£²»¹ý»¹ÓÐÒ»¸ö¸ü¼òµ¥µãµÄ°ì
-·¨£¬ÄǾÍÊÇÓà C-x b¡£ÓÃÕâ¸öÃüÁÄã±ØÐëÊäÈ뻺³åÇøµÄÃû³Æ¡£
+²»¹Ü´æÔÚ¶àÉÙ»º³åÇø£¬ÈκÎʱºò¶¼Ö»ÄÜÓÐÒ»¸ö¡°µ±Ç°¡±»º³åÇø£¬Ò²¾ÍÊÇÄãÕýÔÚ±à
+¼­µÄÕâ¸ö¡£Èç¹ûÄãÏë±à¼­ÆäËüµÄ»º³åÇø£¬¾Í±ØÐë¡°Çл»¡±¹ýÈ¥¡£ÉÏÃæ½²¹ý£¬ÓÃ
+C-x C-f ÊÇÒ»ÖÖ°ì·¨¡£²»¹ý»¹ÓÐÒ»¸ö¸ü¼òµ¥µÄ°ì·¨£¬ÄǾÍÊÇÓà C-x b¡£ÓÃÕâÌõÃü
+ÁÄã±ØÐëÊäÈ뻺³åÇøµÄÃû³Æ¡£
 
 >> ÊäÈë C-x b foo <Return> ÒԻص½Îļþ¡°foo¡±µÄ»º³åÇø¡£
    È»ºóÊäÈë C-x b TUTORIAL.cn <Return> »Øµ½ÕâÀï¡£
 
-´ó¶àÊýÇé¿öÏ£¬»º³åÇøºÍÓëÆä¶ÔÓ¦µÄÎļþÊÇͬÃûµÄ£¨²»°üÀ¨Ä¿Â¼Ãû£©£¬²»¹ýÕâÒ²
-²»ÊǾø¶ÔµÄ¡£Óà C-x C-b µÃµ½µÄ»º³åÇøÁбíÖÐÏÔʾµÄ×ÜÊÇ»º³åÇøµÄÃû³Æ¡£
+´ó¶àÊýÇé¿öÏ£¬»º³åÇøÓë¸úÆä¶ÔÓ¦µÄÎļþÊÇͬÃûµÄ£¨²»°üÀ¨Ä¿Â¼Ãû£©£¬²»¹ýÕâÒ²
+²»ÊǾø¶ÔµÄ¡£Óà C-x C-b µÃµ½µÄ»º³åÇøÁбí×ÜÊÇÏÔʾ»º³åÇøÃû¡£
 
-ÄãÔÚ Emacs ´°¸ñÀï¿´µ½µÄ¡°ÈκΡ±ÎÄ×Ö¶¼Ò»¶¨ÊÇÊôÓÚij¸ö»º³åÇøµÄ¡£Ò²ÓÐЩ»º³å
-Çø²¢Ã»ÓжÔÓ¦Îļþ£º±ÈÈçÏÔʾ»º³åÇøÁбíµÄ»º³åÇø¾ÍÊÇÕâÑù£¬ÔÙ±ÈÈçÒ»¸öÃû½Ð
-¡°*Messages*¡±µÄ»º³åÇøҲûÓжÔÓ¦µÄÎļþ£¬Õâ¸ö»º³åÇøÀï´æ·ÅµÄ¶¼ÊÇÔÚ Emacs
-µ×²¿³öÏÖµÄÏûÏ¢¡£
+ÄãÔÚ Emacs ´°¸ñÀï¿´µ½µÄ¡°ÈκΡ±ÎÄ×Ö¶¼Ò»¶¨ÊôÓÚij¸ö»º³åÇø¡£È»¶ø£¬»º³åÇøδ
+±ØÓжÔÓ¦Îļþ£º±ÈÈçÏÔʾ»º³åÇøÁбíµÄ»º³åÇø¾ÍÊÇÕâÑù¡£ÔÙ±ÈÈç¡°*Messages*¡±
+»º³åÇøҲûÓжÔÓ¦Îļþ£¬Õâ¸ö»º³åÇøÀï´æ·ÅµÄ¶¼ÊÇÔÚ Emacs µ×²¿³öÏÖµÄÏûÏ¢¡£
 
 >> ÊäÈë C-x b *Messages* <Return> ³ò³òÏûÏ¢»º³åÇøÀﶼÓÐʲô¶«Î÷¡£
    È»ºóÔÙÊäÈë C-x b TUTORIAL.cn <Return> »Øµ½ÕâÀï¡£
 
-Èç¹ûÄã¶ÔÎļþ×öÁËÐ޸ģ¬È»ºóÇл»µ½ÁíÒ»¸öÎļþ£¬Õâ¸ö¶¯×÷²¢²»»á°ïÄã°ÑµÚÒ»¸ö
-Îļþ´æÅÌ£¬¶ÔµÚÒ»¸öÎļþµÄÐÞ¸ÄÈÔÈ»½öÏÞÓÚ Emacs ÖУ¬Ò²¾ÍÊÇÔÚËü¶ÔÓ¦µÄ»º³åÇø
-Àͬʱ¶ÔµÚ¶þ¸öÎļþµÄÐÞ¸ÄÒ²²»»áÓ°Ïìµ½µÚÒ»¸öÎļþ¡£ÕâºÜÓÐÓ㬵«ÊÇҲͦÂé
-·³£¬ÒòΪÈç¹ûÄãÓÖÏëÒª´æ´¢µÚÒ»¸öÎļþ£¬Ä㻹ÐèÒªÏÈÓà C-x C-f Çл»»ØÈ¥£¬È»ºó
-ÔÙÓà C-x C-s ´æÅÌ£¬ÕâÏÔȻ̫Âé·³ÁË¡£ÄãÐèÒªÒ»¸ö¸ü¼ò±ãµÄ·½·¨£¬¶ø Emacs µ±
-È»ÒѾ­ÌæÄãÏëµ½ÁË£º
+Èç¹ûÄã¶Ôij¸öÎļþ×öÁËЩÐ޸ģ¬È»ºóÇл»µ½ÁíÒ»¸öÎļþ£¬Õâ¸ö¶¯×÷²¢²»»á°ïÄã°Ñ
+Ç°Ò»¸öÎļþ´æÅÌ¡£¶ÔµÚÒ»¸öÎļþµÄÐÞ¸ÄÈÔÈ»½ö´æÔÚÓÚ Emacs ÖУ¬Ò²¾ÍÊÇÔÚËü¶ÔÓ¦
+µÄ»º³åÇøÀï¡£²¢ÇÒ£¬¶ÔµÚ¶þ¸öÎļþµÄÐÞ¸ÄÒ²²»»áÓ°Ïìµ½µÚÒ»¸öÎļþ¡£ÕâºÜÓÐÓã¬
+µ«ÊÇҲͦÂé·³£ºÒòΪÈç¹ûÄãÏëÒª´æ´¢µÚÒ»¸öÎļþ£¬»¹ÐèÒªÏÈ C-x C-f Çл»»ØÈ¥ÔÙ
+Óà C-x C-s ´æÅÌ¡£ÄãÐèÒªÒ»¸ö¸ü¼ò±ãµÄ·½·¨£¬¶ø Emacs ÒѾ­ÎªÄã×¼±¸ºÃÁË£º
 
         C-x s   ±£´æ¶à¸ö»º³åÇø
 
-C-x s »áÕÒµ½ËùÓÐÒѱ»Ð޸ĵ«ÉÐδ´æÅ̵Ļº³åÇø£¬È»ºóÏòÄãÖð¸öѯÎÊ£¬ÊÇ·ñÐèÒª
+C-x s »áÕÒ³öËùÓÐÒѱ»Ð޸ĵ«ÉÐδ´æÅ̵Ļº³åÇø£¬È»ºóÏòÄãÖð¸öѯÎÊ£ºÊÇ·ñÐèÒª
 ´æÅÌ£¿
 
 >> ²åÈëÒ»ÐÐÎÄ×Ö£¬È»ºóÊäÈë C-x s¡£
@@ -529,28 +529,28 @@
 -----------------------------------------
 
 Emacs µÄÃüÁî¾ÍÏñÌìÉϵÄÐÇÐÇ£¬ÊýÒ²Êý²»Çå¡£°ÑËüÃǶ¼¶ÔÓ¦µ½ CONTROL ºÍ META
-×éºÏ¼üÉÏÏÔÈ»ÊDz»¿ÉÄܵÄÊÂÇé¡£Emacs ÓÃÀ©Õ¹£¨eXtend£©ÃüÁîÀ´½â¾öÕâ¸öÎÊÌ⣬
-À©Õ¹ÃüÁîÓÐÁ½ÖÖ·ç¸ñ£º
+×éºÏ¼üÉÏÏÔÈ»ÊDz»¿ÉÄܵġ£Emacs ÓÃÀ©Õ¹£¨eXtend£©ÃüÁîÀ´½â¾öÕâ¸öÎÊÌ⣬À©Õ¹
+ÃüÁîÓÐÁ½ÖÖ·ç¸ñ£º
 
         C-x     ×Ö·ûÀ©Õ¹¡£  C-x Ö®ºóÊäÈëÁíÒ»¸ö×Ö·û»òÕß×éºÏ¼ü¡£
         M-x     ÃüÁîÃûÀ©Õ¹¡£M-x Ö®ºóÊäÈëÒ»¸öÃüÁîÃû¡£
 
-ºÜ¶àÀ©Õ¹ÃüÁºÜÓÐÓã¬ËäÈ»ÓëÄãÒѾ­Ñ§¹ýµÄÃüÁî±ÈÆðÀ´£¬ËûÃÇ¿ÉÄܲ»ÄÇô³£Óá£
-ÄãÓ¦¸ÃÒѾ­¼û¹ýһЩÀ©Õ¹ÃüÁîÁË£¬±ÈÈçÓà C-x C-f Ñ°ÕÒÎļþºÍÓà C-x C-s ±£´æ
-Îļþ¡£Í˳ö Emacs ÓÃµÄ C-x C-c Ò²ÊÇÀ©Õ¹ÃüÁî¡££¨²»Óõ£ÐÄÍ˳ö Emacs »á¸øÄã
-´øÀ´Ê²Ã´Ëðʧ£¬Emacs »áÔÚÍ˳ö֮ǰÌáÐÑÄã±£´æÎļþµÄ£©
+ºÜ¶àÀ©Õ¹ÃüÁÏ൱ÓÐÓã¬ËäÈ»ÓëÄãÒѾ­Ñ§¹ýµÄÃüÁî±ÈÆðÀ´£¬ËûÃÇ¿ÉÄܲ»ÄÇô³£
+Óá£ÎÒÃÇÔçÒѾ­¼û¹ýһЩÀ©Õ¹ÃüÁîÁË£¬±ÈÈçÓà C-x C-f Ñ°ÕÒÎļþºÍÓà C-x C-s
+±£´æÎļþ£»Í˳ö Emacs ÓÃµÄ C-x C-c Ò²ÊÇÀ©Õ¹ÃüÁî¡££¨²»Óõ£ÐÄÍ˳ö Emacs »á
+¸øÄã´øÀ´Ê²Ã´Ëðʧ£¬Emacs »áÔÚÍ˳ö֮ǰÌáÐÑÄã´æÅ̵ģ©
 
 ÔÚ¿ØÖÆ̨Ï£¬C-z ¿ÉÒÔÔÝʱÀ뿪 Emacs¡ª¡ªµ±È»£¬Ä㻹¿ÉÒÔÔÙ»ØÀ´¡£
 
 ÔÚÔÊÐí C-z µÄϵͳÖУ¬C-z »á°Ñ Emacs¡°¹ÒÆ𡱣¬Ò²¾ÍÊÇ˵£¬Ëü»á»Øµ½ shell
-µ«²»Í˳ö Emacs¡£ÔÚÄÇЩ×î³£ÓÃµÄ shell ÖУ¬Í¨³£¿ÉÒÔÓá°fg¡±»òÕß¡°%emacs¡±
-ÃüÁîÔٴλص½ Emacs ÖС£
+µ«²»Í˳ö Emacs¡£ÔÚ³£ÓÃµÄ shell ÖУ¬Í¨³£¿ÉÒÔÓá°fg¡±»òÕß¡°%emacs¡±ÃüÁîÔÙ
+´Î»Øµ½ Emacs ÖС£
 
 ÔÚûÓÐÌṩ¹ÒÆð¹¦ÄܵÄϵͳÖУ¬C-z »áÔÚ Emacs ֮ϴ´½¨Ò»¸ö×Ó shell À´ÈÃÄã
-ÔËÐÐÆäËü³ÌÐò£¬²¢ÇÒÔٴΡ°»Øµ½¡± Emacs ÖСª¡ªËäÈ»ÎÒÃDz¢Ã»ÓÐÕæÕýÀ뿪¹ý¡£Õâ
-ÖÖÇé¿öÏ£¬Í¨³£ÓÃshell ÃüÁî¡°exit¡±´Ó×Ó shell »Øµ½ Emacs¡£
+ÔËÐÐÆäËü³ÌÐò£¬²¢ÇÒÔٴΡ°»Øµ½¡±Emacs ÖСª¡ªËäÈ»ÎÒÃDz¢Ã»ÓÐÕæÕýÀ뿪¹ý¡£Õâ
+ÖÖÇé¿öÏ£¬Í¨³£Óà shell ÃüÁî¡°exit¡±´Ó×Ó shell »Øµ½ Emacs¡£
 
-C-x C-c ×îºÃÔÚÄã´òËãÍ˳öµÇ½µÄʱºòÔÙÓá£ÔÚ Emacs ±»ÖîÈçÓʼþ´¦Àí³ÌÐòÖ®Àà
+Äã×îºÃÔÚ´òËãÍ˳öµÇ½µÄʱºòÔÙÓà C-x C-c¡£ÔÚ Emacs ±»ÖîÈçÓʼþ´¦Àí³ÌÐòÖ®Àà
 µÄÍⲿ³ÌÐòµ÷ÓÃÖ®ºó£¬Ò²¿ÉÒÔÓà C-x C-c Í˳ö¡£²»¹ýÒ»°ãÀ´½²£¬Èç¹ûÄã²»ÏëÍ˳ö
 µÇ¼£¬×îºÃ»¹ÊÇ°Ñ Emacs ¹ÒÆð¶ø²»ÊÇÍ˳ö¡£
 
@@ -563,50 +563,50 @@
         C-x 1           ¹ØµôÆäËüËùÓд°¸ñ£¬Ö»±£ÁôÒ»¸ö¡£
         C-x u           ³·Ïú¡£
 
-ÓÃÃüÁîÃûÀ©Õ¹µÄÃüÁîÒ»°ã¶¼²»Ì«³£Ó㬻òÕßÖ»ÔÚ²¿·Öģʽϱ»Óõ½¡£±ÈÈç
-replace-string£¨×Ö·û´®Ìæ»»£©Õâ¸öÃüÁËü»áÔÚÈ«ÎÄ·¶Î§ÄÚ°ÑÒ»¸ö×Ö·û´®Ìæ»»
-³ÉÁíÒ»¸ö¡£ÔÚÄãÊäÈë M-x µÄʱºò£¬Emacs »áÔÚÆÁÄ»µ×¶ËÏòÄãѯÎÊ£¬È»ºóÄãÓ¦¸ÃÊä
-ÈëÃüÁîÃû¡£Èç¹ûÄãÏëÊäÈë¡°replace-string¡±£¬ÆäʵֻÐèÒªÇá°repl s<TAB>¡±¾Í
-ÐÐÁË£¬Emacs »á°ïÄã×Ô¶¯²¹ÆëµÄ¡£ÊäÈëÍêÖ®ºó°´ <Return> ¡£
+ÓÃÃüÁîÃûÀ©Õ¹µÄÃüÁîͨ³£²¢²»³£Ó㬻òÖ»ÓÃÔÚ²¿·ÖģʽÏ¡£±ÈÈç replace-string
+£¨×Ö·û´®Ìæ»»£©Õâ¸öÃüÁËü»áÔÚÈ«ÎÄ·¶Î§ÄÚ°ÑÒ»¸ö×Ö·û´®Ìæ»»³ÉÁíÒ»¸ö¡£ÔÚÊä
+Èë M-x Ö®ºó£¬Emacs »áÔÚÆÁÄ»µ×¶ËÏòÄãѯÎʲ¢µÈ´ýÄãÊäÈëÃüÁîÃû¡£Èç¹ûÄãÏëÊäÈë
+¡°replace-string¡±£¬ÆäʵֻÐèÒªÇá°repl s<TAB>¡±¾ÍÐÐÁË£¬Emacs »á°ïÄã×Ô¶¯
+²¹Æë¡£ÊäÈëÍêÖ®ºó°´ <Return> ¡£
 
 ×Ö·û´®Ìæ»»ÃüÁîÐèÒªÁ½¸ö²ÎÊý¡ª¡ª±»Ìæ»»µÄ×Ö·û´®ºÍÓÃÀ´Ìæ»»ËüµÄ×Ö·û´®¡£Ã¿¸ö
-²ÎÊýµÄÊäÈëÓû»ÐзûÀ´½áÊø¡£
+²ÎÊýµÄÊäÈ붼ÒÔ»»ÐзûÀ´½áÊø¡£
 
 >> ½«¹â±êÒƵ½±¾ÐÐÏÂÃæµÚ¶þÐеĿհ״¦£¬È»ºóÊäÈë
    M-x repl s<Return>changed<Return>altered<Return>¡£
 
-   ¡¾ÒÔϱ£ÁôÒ»ÐÐÔ­ÎÄ£¬ÒÔÓ¦Á·Ï°Ö®Ð裺
-   Notice how this line has changed: you've replaced... ¡¿
+   ¡¾ÒÔϱ£ÁôÒ»ÐÐÔ­ÎÄ£¬ÒÔÓ¦Á·Ï°Ö®Ð裺¡¿
+   Notice how this line has changed: you've replaced... 
 
-Çë×¢ÒâÕâÒ»ÐÐÊÇÔõô¸Ä±äµÄ£ºÔÚ¹â±êÖ®ºóµÄ·¶Î§ÄÚ£¬ÄãÒѾ­½«¡°changed¡±Õâ¸ö
-´Ê¡ª¡ª²»¹ÜËüÔÚÄÄÀï³öÏÖ¡ª¡ªÈ«²¿Óá°altered¡±Ìæ»»µôÁË¡£
+Çë×¢ÒâÕâÒ»Ðеı仯£ºÔÚ¹â±êÖ®ºóµÄ·¶Î§ÄÚ£¬ÄãÒѾ­½«¡°changed¡±Õâ¸ö´Ê¡ª¡ª²»
+ÂÛËüÔÚÄÄÀï³öÏÖ¡ª¡ªÈ«²¿Óá°altered¡±Ìæ»»µôÁË¡£
 
 
 * ×Ô¶¯±£´æ£¨AUTO SAVE£©
 -----------------------
 
-Èç¹ûÄãÐÞ¸ÄÁËÒ»¸öÎļþµ«ÊÇ»¹Ã»À´µÃ¼°´æÅÌ£¬È»ºóÄãµÄ¼ÆËã»ú°Õ¹¤ÁË£¬ÄÇôÄã±à
-¼­µÄ¶«Î÷ºÜ¿ÉÄܾÍÕÒ²»»ØÀ´ÁË¡£ÎªÁ˱ÜÃâÕâÑùµÄ²»ÐÒÒ»ÔÙ·¢Éú£¬Emacs »á¶¨ÆÚ½«
-ÄãÕýÔڱ༭µÄÎļþ´æÈëÒ»¸ö¡°×Ô¶¯±£´æ¡±ÎļþÖС£×Ô¶¯±£´æµÄÎļþÃûµÄͷβ¸÷ÓÐ
-Ò»¸ö¡°#¡±×Ö·û£¬±ÈÈçÄãÕýÔڱ༭¡°hello.c¡±£¬ÄÇôËüµÄ×Ô¶¯±£´æÎļþ¾Í½Ð
-¡°#hello.c#¡±¡£ÔÚÄãÕý³£´æÅÌÖ®ºó£¬Emacs »áɾ³ý×Ô¶¯±£´æÎļþ¡£
+Èç¹ûÄãÒѾ­ÐÞ¸ÄÁËÒ»¸öÎļþ£¬µ«ÊÇ»¹Ã»À´µÃ¼°´æÅÌÄãµÄ¼ÆËã»ú¾Í°Õ¹¤ÁË£¬ÄÇôÄã
+Ëù×öµÄÐ޸ľͺܿÉÄܻᶪʧ¡£ÎªÁ˱ÜÃâÕâÑùµÄ²»ÐÒ·¢Éú£¬Emacs »á¶¨ÆÚ½«ÕýÔÚ±à
+¼­µÄÎļþдÈëÒ»¸ö¡°×Ô¶¯±£´æ¡±ÎļþÖС£×Ô¶¯±£´æÎļþµÄÎļþÃûµÄͷβ¸÷ÓÐÒ»¸ö
+¡°#¡±×Ö·û£¬±ÈÈçÄãÕýÔڱ༭µÄÎļþ½Ð¡°hello.c¡±£¬ÄÇôËüµÄ×Ô¶¯±£´æÎļþ¾Í½Ð
+¡°#hello.c#¡±¡£Õâ¸öÎļþ»áÔÚÕý³£´æÅÌÖ®ºó±» Emacs ɾ³ý¡£
 
-¼ÙÈç²»ÐÒÕæµÄ·¢ÉúÁË£¬Äã´ó¿ÉÒÔ´ÓÈݵĴò¿ªÔ­À´µÄÎļþ£¨×¢Òâ²»ÊÇ×Ô¶¯±£´æÎļþ£©
-È»ºóÊäÈë M-x recover file<Return> À´»Ö¸´ÄãµÄ×Ô¶¯±£´æÎļþ¡£ÔÚÌáʾȷÈϵÄ
-ʱºò£¬ÊäÈë yes<Return> ¾ÍÐÐÁË¡£
+ËùÒÔ£¬¼ÙÈç²»ÐÒÕæµÄ·¢ÉúÁË£¬Äã´ó¿ÉÒÔ´ÓÈݵشò¿ªÔ­À´µÄÎļþ£¨×¢Òâ²»ÊÇ×Ô¶¯±£
+´æÎļþ£©È»ºóÊäÈë M-x recover file<Return> À´»Ö¸´ÄãµÄ×Ô¶¯±£´æÎļþ¡£ÔÚÌá
+ʾȷÈϵÄʱºò£¬ÊäÈë yes<Return>¡£
 
 
 * »ØÏÔÇø£¨ECHO AREA£©
 ---------------------
 
 Èç¹û Emacs ·¢ÏÖÄãÊäÈë¶à×Ö·ûÃüÁîµÄ½Ú×àºÜÂý£¬Ëü»áÔÚ´°¸ñµÄÏ·½³ÆΪ¡°»ØÏÔÇø¡±
-µÄµØ·½¸øÄãÌáʾ¡£»ØÏÔÇøλÓÚÆÁÄ»µÄ×îºóÒ»ÐС£
+µÄµØ·½¸øÄãÌáʾ¡£»ØÏÔÇøλÓÚÆÁÄ»µÄ×îÏÂÃæÒ»ÐС£
 
 
 * ״̬À¸£¨MODE LINE£©
 ---------------------
 
-λÓÚ»ØÏÔÇøµÄÕýÉÏ·½µÄÒ»Ðб»³ÆΪ¡°×´Ì¬À¸¡±¡£×´Ì¬À¸ÉÏ»áÏÔʾһЩÐÅÏ¢£¬±ÈÈ磺
+λÓÚ»ØÏÔÇøÕýÉÏ·½µÄÒ»Ðб»³ÆΪ¡°×´Ì¬À¸¡±¡£×´Ì¬À¸ÉÏ»áÏÔʾһЩÐÅÏ¢£¬±ÈÈ磺
 
 --:**  TUTORIAL.cn       (Fundamental)--L670--54%----------------
 
@@ -627,58 +627,58 @@
 
 Emacs µÄÖ÷ģʽÁÖÁÖ×Ü×Ü¡£ÓÐÓÃÀ´±à¼­³ÌÐò´úÂëµÄ¡ª¡ª±ÈÈç Lisp ģʽ£»Ò²ÓÐÓÃ
 À´±à¼­¸÷ÖÖ×ÔÈ»ÓïÑÔÎı¾µÄ¡ª¡ª±ÈÈç Text ģʽ¡£ÈκÎÇé¿öÏÂÖ»ÄÜÓ¦ÓÃÒ»¸öÖ÷Ä£
-ʽ£¬ÆäÃû³Æ»áÏÔʾÔÚ״̬À¸ÉÏ£¬¾ÍÔÚÏÖÔÚÏÔʾ¡°Fundamental¡±µÄµØ·½¡£
+ʽ£¬ÆäÃû³Æ»áÏÔʾÔÚ״̬À¸ÉÏ£¬Ò²¾ÍÊÇÏÖÔÚÏÔʾ¡°Fundamental¡±µÄµØ·½¡£
 
-Ö÷ģʽÓÐʱ»á¸Ä±äһЩÃüÁîµÄÐÐΪ¡£±ÈÈç˵£¬²»¹Ü±à¼­Ê²Ã´ÑùµÄ³ÌÐò´úÂ룬Ä㶼
-¿ÉÒÔÓÃÒ»¸öͳһµÄÃüÁîÀ´Ìí¼Ó×¢ÊÍ£¬µ«ÊÇÔÚ²»Í¬µÄÓïÑÔÖÐ×¢Ê͵ÄÓï·¨ÍùÍùÊDz»Í¬
-µÄ£¬ÕâʱÏàÓ¦µÄÖ÷ģʽ¾Í»á·Ö±ðÓø÷×ÔµÄÓï·¨¹æÔòÀ´Ìí¼Ó×¢ÊÍ¡£Ö÷ģʽ¶¼ÊÇ¿ÉÒÔ
-Óà M-x Æô¶¯µÄÃüÁËùÒÔ M-x fundamental-mode ¾Í¿ÉÒÔÇл»µ½ Fundamental
+Ö÷ģʽͨ³£»á¸Ä±äһЩÃüÁîµÄÐÐΪ¡£±È·½Ëµ£¬²»¹Ü±à¼­Ê²Ã´ÓïÑԵijÌÐò´úÂ룬Äã
+¶¼¿ÉÒÔÓÃÒ»¸öÏàͬµÄÃüÁîÀ´Ìí¼Ó×¢ÊÍ¡£µ«ÊÇÔÚ²»Í¬µÄÓïÑÔÖÐ×¢Ê͵ÄÓï·¨ÍùÍùÊDz»
+ͬµÄ£¬Õâʱ²»Í¬µÄÖ÷ģʽ¾Í»áÓø÷×Ô²»Í¬µÄÓï·¨¹æÔòÀ´Ìí¼Ó×¢ÊÍ¡£Ö÷ģʽ¶¼ÊÇ¿É
+ÒÔÓà M-x Æô¶¯µÄÀ©Õ¹ÃüÁM-x fundamental-mode ¾Í¿ÉÒÔÇл»µ½ Fundamental
 ģʽ¡£
 
-Èç¹ûÄãÒª±à¼­×ÔÈ»ÓïÑÔÎı¾¡ª¡ª±ÈÈçÏÖÔÚ¡ª¡ªÄãÓ¦¸ÃÓà Text ģʽ¡£
+±à¼­×ÔÈ»ÓïÑÔÎı¾¡ª¡ª±ÈÈçÏÖÔÚ¡ª¡ªÓ¦¸ÃÓà Text ģʽ¡£
 
 >> ÊäÈë M-x text mode<Return>¡£
 
-±ðº¦Å£¬Ã»ÓÐʲôÃüÁî»á¸Ä±ä¹¦ÄÜ¡£²»¹ýÄã¿ÉÒÔ·¢ÏÖ£¬M-f ºÍ M-b ÏÖÔڰѵ¥ÒýºÅ
-£¨'£©ÊÓΪ´ÊµÄÒ»²¿·ÖÁË¡£¶øÔÚÏÈÇ°£¬ÔÚ Fundamental ģʽÖУ¬M-f ºÍ M-b ¶¼½«
-µ¥ÒýºÅÊÓΪ·Ö¸ôµ¥´ÊµÄ·ûºÅ¡£
+±ðµ£ÐÄ£¬Ê²Ã´¶¼Ã»±ä¡£²»¹ýϸÐÄһЩ¿ÉÒÔ·¢ÏÖ£¬M-f ºÍ M-b ÏÖÔڰѵ¥ÒýºÅ£¨'£©
+ÊÓΪ´ÊµÄÒ»²¿·ÖÁË¡£¶øÔÚÏÈÇ°µÄ Fundamental ģʽÖУ¬M-f ºÍ M-b ¶¼½«µ¥ÒýºÅ
+ÊÓΪ·Ö¸ôµ¥´ÊµÄ·ûºÅ¡£
 
 Ö÷ģʽͨ³£¶¼»á¸ãһЩÀàËƵÄС¶¯×÷£¬ÒòΪºÜ¶àÃüÁîÆäʵÍê³ÉµÄÊÇ¡°ÏàͬµÄ¹¤
-×÷¡±£¬Ö»ÊÇÔÚ²»Í¬Çé¿öÏ»áÓв»Í¬µÄ¹¤×÷·½Ê½¶øÒÑ¡£¡¾Ëùν¡°Çóͬ´æÒ족£¬ÔÚ
+×÷¡±£¬Ö»ÊÇÔÚ²»Í¬»·¾³Ï»áÓв»Í¬µÄ¹¤×÷·½Ê½¶øÒÑ¡£¡¾Ëùν¡°Çóͬ´æÒ족£¬ÔÚ
 Emacs ÀïµÃµ½Á˺ܺõÄÌåÏÖ¡¿
 
 Óà C-h m ¿ÉÒԲ鿴µ±Ç°Ö÷ģʽµÄÎĵµ¡£
 
->> Óà C-u C-v ½«±¾Ðдøµ½¿¿½üÆÁÄ»µÄÉÏ·½¡£
+>> Óà C-u C-v ½«±¾Ðдøµ½ÆÁÄ»µÄ×îÉÏ·½¡£
 >> ÊäÈë C-h m£¬¿´¿´ Text ģʽÓë Fundamental ģʽÓÐÄÄЩ²»Í¬¡£
 >> ÊäÈë C-x 1 ¹ØµôÎĵµ´°¸ñ¡£
 
 Ö÷ģʽ֮ËùÒÔ³Æ֮Ϊ¡°Ö÷£¨major£©¡±Ä£Ê½£¬ÊÇÒòΪͬʱ»¹ÓС°¸¨Ä£Ê½¡±£¨minor
-mode£©´æÔÚ¡£¸¨Ä£Ê½²¢²»ÄÜÌæ´úÖ÷ģʽ£¬¶øÊÇÔÚÖ÷ģʽ֮ÍâÔÙ×öһЩ¸¨ÖúµÄÐ޸ġ£
-ÿ¸ö¸¨Ä£Ê½¶¼¿ÉÒÔ¶ÀÁ¢µØ¿ªÆôºÍ¹Ø±Õ£¬¸úÆäËü¸¨Ä£Ê½Î޹أ¬¸úÖ÷ģʽҲÎ޹ء£Ëù
-ÒÔÄã¿ÉÒÔ²»Óø¨Ä£Ê½£¬Ò²¿ÉÒÔÓÃÒ»¸ö»òÕ߶à¸ö¸¨Ä£Ê½¡£
+mode£©´æÔÚ¡£¸¨Ä£Ê½²¢²»ÄÜÌæ´úÖ÷ģʽ£¬¶øÊÇÌṩһЩ¸¨ÖúµÄ¹¦ÄÜ¡£Ã¿¸ö¸¨Ä£Ê½
+¶¼¿ÉÒÔ¶ÀÁ¢µØ¿ªÆôºÍ¹Ø±Õ£¬¸úÆäËü¸¨Ä£Ê½Î޹أ¬¸úÖ÷ģʽҲÎ޹ء£ËùÒÔÄã¿ÉÒÔ²»
+ʹÓø¨Ä£Ê½£¬Ò²¿ÉÒÔֻʹÓÃÒ»¸ö»òͬʱʹÓöà¸ö¸¨Ä£Ê½¡£
 
-ÓÐÒ»¸ö½Ð×ö×Ô¶¯ÕÛÐУ¨Auto Fill£©µÄ¸¨Ä£Ê½Óô¦ºÜ´ó£¬ÌرðÊÇÔڱ༭×ÔÈ»ÓïÑÔÎÄ
-±¾µÄʱºò¡£Õâ¸ö¸¨Ä£Ê½Æô¶¯ºó£¬Emacs »áÔÚÄã´ò×Ö³¬³öÒ»Ðб߽çʱ×Ô¶¯ÌæÄã»»ÐС£
+ÓÐÒ»¸ö½Ð×ö×Ô¶¯ÕÛÐУ¨Auto Fill£©µÄ¸¨Ä£Ê½ºÜÓÐÓã¬ÌرðÊÇÔڱ༭×ÔÈ»ÓïÑÔÎı¾
+µÄʱºò¡£ÆôÓÃ×Ô¶¯ÕÛÐкó£¬Emacs »áÔÚÄã´ò×Ö³¬³öÒ»Ðб߽çʱ×Ô¶¯ÌæÄã»»ÐС£
 
-Óà M-x auto fill mode<Return> Æô¶¯×Ô¶¯ÕÛÐÐģʽ¡£Æô¶¯Ö®ºó£¬Èç¹ûÎÒÃÇÔÙÓÃ
-Ò»´Î M-x auto fill mode<Return>£¬×Ô¶¯ÕÛÐÐģʽ¾Í±»¹Ø±ÕÁË¡£Ò²¾ÍÊÇ˵£¬Èç¹û
-×Ô¶¯ÕÛÐÐģʽûÓпªÆô£¬Õâ¸öÃüÁî»á¿ªÆôËü£»¶øÈç¹ûÒѾ­¿ªÆôÁË£¬Õâ¸öÃüÁî»á¹Ø
-±ÕËü¡£ÎÒÃÇ˵Õâ¸öÃüÁîÓÃÀ´¡°¿ª¹Ø£¨toggle£©¡±Ä£Ê½¡£
+Óà M-x auto fill mode<Return> Æô¶¯×Ô¶¯ÕÛÐÐģʽ¡£ÔÙÓÃÒ»´ÎÕâÌõÃüÁ×Ô¶¯
+ÕÛÐÐģʽ»á±»¹Ø±Õ¡£Ò²¾ÍÊÇ˵£¬Èç¹û×Ô¶¯ÕÛÐÐģʽûÓб»¿ªÆô£¬Õâ¸öÃüÁî»á¿ªÆô
+Ëü£»Èç¹ûÒѾ­¿ªÆôÁË£¬Õâ¸öÃüÁî»á¹Ø±ÕËü¡£ËùÒÔÎÒÃÇ˵£¬Õâ¸öÃüÁî¿ÉÒÔÓÃÀ´¡°¿ª
+¹Ø£¨toggle£©¡±Ä£Ê½¡£
 
 >> ÏÖÔÚÊäÈë M-x auto fill mode<Return>¡£È»ºóËæ±ãÇõãʲô£¬Ö±µ½Äã¿´µ½Ëü
-   ·Ö³ÉÁ½ÐС£±ØÐëÇÃһЩ¿Õ¸ñ£¬ÒòΪ Auto Fill Ö»ÔÚ¿Õ°×´¦½øÐжÏÐС£¡¾¿Õ¸ñ
-   ¶ÔÓ¢ÎÄÀ´ËµÊDZØÐëµÄ£¬¶ø¶ÔÖÐÎÄÔò²»±Ø¡£¡¿
+   ·Ö³ÉÁ½ÐС£Äã±ØÐëÇÃһЩ¿Õ¸ñ£¬ÒòΪ Auto Fill Ö»ÔÚ¿Õ°×´¦½øÐжÏÐС£
+   ¡¾ÊäÈë¿Õ¸ñ¶ÔÓ¢ÎÄÀ´ËµÊDZØÐëµÄ£¬¶ø¶ÔÖÐÎÄÔò²»±Ø¡£¡¿
 
-Ðб߽çͨ³£±»É趨Ϊ 70 ¸ö×Ö·û¡¾ÕâÀïÖ¸Ó¢ÎÄ×Ö·û¡¿£¬Äã¿ÉÒÔÓà C-x f ÃüÁîÀ´ÖØ
-ÐÂÉ趨֮¡£Ö¸¶¨ÐÂÐб߽ç¿ÉÒÔÓÃÊý×Ö²ÎÊýÀ´½øÐд«µÝ¡£
+Ðб߽çͨ³£±»É趨Ϊ 70 ¸ö×Ö·û¡¾ÕâÀïÖ¸Ó¢ÎÄ×Ö·û¡¿£¬Äã¿ÉÒÔÓà C-x f ÃüÁîÅäºÏ
+Êý×Ö²ÎÊýÀ´ÖØÐÂÉ趨Ëü¡£
 
 >> ÊäÈë C-x f ²¢´«µÝ²ÎÊý 20£º C-u 2 0 C-x f¡£
    È»ºóÊäÈëһЩÎÄ×Ö£¬¹Û²ì Emacs µÄ×Ô¶¯ÕÛÐж¯×÷
    ×îºóÔÙÓà C-x f ½«±ß½çÉè»Ø 70¡£
 
 Èç¹ûÄãÔÚ¶ÎÂäµÄÖмä×öÁËһЩÐ޸ģ¬ÄÇô×Ô¶¯ÕÛÐÐģʽ²»»áÌæÄã°ÑÕû¸ö¶ÎÂäÖØÐÂ
-ÕÛÐС£ÖØÐÂ×Ô¶¯ÕÛÐÐÓà M-q£¬×¢ÒâʹÓõÄʱºò¹â±ê±ØÐëλÓÚÄãÏëÕÛÐеÄÄÇÒ»¶ÎÀï¡£
+ÕÛÐУ¬ÄãÐèÒªÓà M-q ÊÖ¶¯ÕÛÐС£×¢Ò⣬¹â±ê±ØÐëλÓÚÄãÐèÒªÕÛÐеÄÄÇÒ»¶ÎÀï¡£
 
 >> Òƶ¯¹â±êµ½Ç°Ò»¶ÎÖУ¬È»ºóÊäÈë M-q¡£
 
@@ -686,49 +686,47 @@
 * ËÑË÷£¨SEARCHING£©
 -------------------
 
-Emacs ¿ÉÒÔÏòÇ°»òÕßÏòºóËÑË÷×Ö·û´®¡£ËÑË÷ÃüÁîÊÇÒ»¸öÒƶ¯¹â±êµÄÃüÁËÑË÷³É
-¹¦ºó£¬¹â±ê»áÍ£ÁôÔÚËÑË÷Ä¿±ê³öÏֵĵط½¡£
+Emacs ¿ÉÒÔÏòÇ°»òÏòºóËÑË÷×Ö·û´®¡£ËÑË÷ÃüÁîÊÇÒ»¸öÒƶ¯¹â±êµÄÃüÁËÑË÷³É¹¦
+ºó£¬¹â±ê»áÍ£ÁôÔÚËÑË÷Ä¿±ê³öÏֵĵط½¡£
 
-Emacs µÄËÑË÷ÃüÁîµÄ¶ÀÌØÖ®´¦ÔÚÓÚ£¬ËüÊÇ¡°½¥½øµÄ£¨incremental£©¡±£¬Òâ˼ÊÇËÑ
+Emacs µÄËÑË÷ÃüÁîµÄ¶ÀÌØÖ®´¦ÔÚÓÚ£¬ËüÊÇ¡°½¥½øµÄ£¨incremental£©¡±¡£Òâ˼ÊÇËÑ
 Ë÷ÓëÊäÈëͬʱ½øÐУºÄãÔÚ¼üÅÌÉÏÒ»×ÖÒ»¾äµØÊäÈëËÑË÷´ÊµÄ¹ý³ÌÖУ¬Emacs ¾ÍÒѾ­
 ¿ªÊ¼ÌæÄãËÑË÷ÁË¡£
 
-C-s ÊÇÏòÇ°ËÑË÷£¬C-r ÊÇÏòºóËÑË÷¡£²»¹ýÊÖ±ðÕâô¿ì£¡Ïȵȵȱð׿±ÊÔ¡£
+C-s ÊÇÏòÇ°ËÑË÷£¬C-r ÊÇÏòºóËÑË÷¡£²»¹ýÊÖ±ðÕâô¿ì£¡±ð׿±ÊÔ¡£
 
-ÔÚÄã°´Ï C-s Ö®ºó£¬Äã»á·¢ÏÖ»ØÏÔÇøÀïÓС°I-search¡±×ÖÑù³öÏÖ£¬ÌáʾÄãÄ¿Ç°
-Emacs Õý´¦ÓÚ¡°½¥½øËÑË÷¡±×´Ì¬£¬ÕýÔڵȴýÄãÊäÈëËÑË÷×Ö´®¡£°´ <Return> »á½á
-ÊøËÑË÷¡£
+ÔÚ°´Ï C-s Ö®ºó£¬»ØÏÔÇøÀï»áÓС°I-search¡±×ÖÑù³öÏÖ£¬±íÃ÷Ä¿Ç° Emacs Õý´¦
+ÓÚ¡°½¥½øËÑË÷¡±×´Ì¬£¬²¢µÈ´ýÄãÊäÈëËÑË÷×Ö´®¡£°´ <Return> ¿ÉÒÔ½áÊøËÑË÷¡£
 
 >> ÊäÈë C-s ¿ªÊ¼Ò»¸öËÑË÷¡£×¢ÒâÇÃÂýÒ»µã£¬Ò»´ÎÊäÈëÒ»¸ö×Ö·û¡£
-   ÂýÂýÊäÈë¡°cursor¡±Õû¸ö´Ê£¬Ã¿ÇÃÒ»¸ö×Ö¾ÍÔÝͣһϣ¬×¢Òâ¹Û²ì¹â±ê¡£
+   ÂýÂýÊäÈë¡°cursor¡±Õâ¸ö´Ê£¬Ã¿ÇÃÒ»¸ö×Ö¶¼Í£¶Ùһϲ¢¹Û²ì¹â±ê¡£
    ÏÖÔÚÄãÓ¦¸ÃÒÑÔø¾­ÕÒµ½¡°cursor¡±Õâ¸ö´ÊÁË¡£
 >> ÔÙ°´Ò»´Î C-s£¬ËÑË÷ÏÂÒ»¸ö¡°cursor¡±³öÏÖµÄλÖá£
 >> ÏÖÔÚ°´ËÄ´ÎÍ˸ñ¼ü£¬¿´¿´¹â±êÊÇÈçºÎÒƶ¯µÄ¡£
 >> Çà <Return> ½áÊøËÑË÷¡£
 
-¸Õ²Å¿´×ÐϸÁËô£¿ÔÚÒ»¸ö½¥½øʽËÑË÷ÖУ¬Emacs »á³¢ÊÔÌøµ½ÄãÊäÈëµÄ×Ö·û´®µÄ³ö
-ÏÖλÖá£ÏëÌøµ½ÏÂÒ»¸öËÑË÷Ä¿±ê³öÏÖµÄλÖã¬Ö»ÒªÔÙ°´Ò»´Î C-s ¾ÍÐÐÁË¡£Èç¹ûÕÒ
-²»µ½£¬Emacs »á·¢³ö¡°ßÙ¡±µÄÒ»Éù£¬¸æËßÄãËÑË÷ʧ°Ü¡£ÔÚÕû¸ö¹ý³ÌÖУ¬¶¼¿ÉÒÔÓÃ
-C-g À´ÖÕÖ¹ËÑË÷¡£¡¾Äã»á·¢ÏÖ C-g Ö®ºó¹â±ê»Øµ½ÁËËÑË÷¿ªÊ¼Ç°µÄµØ·½£¬¶ø
-<Return> »áÈùâ±êÁôÔÚËÑË÷½á¹ûÉÏ£¬ÕâÊǺÜÓÐÓõŦÄÜ¡£¡¿
+¿´×ÐϸÁËô£¿ÔÚÒ»´Î½¥½øʽËÑË÷ÖУ¬Emacs »á³¢ÊÔÌøµ½ËÑË÷Ä¿±ê³öÏÖµÄλÖá£Òª
+Ìøµ½ÏÂÒ»¸öÃüÖÐλÖ㬾ÍÔÙ°´Ò»´Î C-s¡£Èç¹ûÕÒ²»µ½Ä¿±ê£¬Emacs »á·¢³ö¡°ßÙ¡±
+µÄÒ»Éù£¬¸æËßÄãËÑË÷ʧ°Ü¡£ÔÚÕû¸ö¹ý³ÌÖУ¬¶¼¿ÉÒÔÓà C-g À´ÖÕÖ¹ËÑË÷¡£¡¾Äã»á·¢
+ÏÖ C-g »áÈùâ±ê»Øµ½ËÑË÷¿ªÊ¼µÄλÖ㬶ø <Return> ÔòÈùâ±êÁôÔÚËÑË÷½á¹ûÉÏ£¬
+ÕâÊǺÜÓÐÓõŦÄÜ¡£¡¿
 
-×¢Ò⣺ʹÓÃijЩÖն˵Äʱºò£¬ÊäÈë C-x C-s »á¶³½áÆÁÄ»¡¾ÆÁĻûÓÐÈκÎÊä³ö¡¿£¬
-ÕâÑùÄã¾Í¿´²»µ½ Emacs µÄÈκα仯¡£ÆäÔ­ÒòÊDzÙ×÷ϵͳµÄ¡°Á÷Á¿¿ØÖÆ¡±¹¦ÄÜ°Ñ
-C-s À¹½ØÁË£¬²¢ÇÒ¶³½áÁËÆÁÄ»£¬Emacs ×ÔȻҲ¾Í¿´²»µ½Õâ¸öÊäÈëÁË¡£Óà C-q ¿ÉÒÔ
-½â³ýÆÁÄ»¶³½á¡£Òª½â¾öÕâ¸öÎÊÌ⣬Çë²Î¿¼ Emacs ÊÖ²áÀïµÄ¡°Spontaneous Entry
-to Incremental Search¡±Ò»½Ú¡¾Emacs ÊÖ²á¿ÉÄÜ»¹Ã»ÓÐÖÐÎÄ·­Òë¡¿£¬ÄÇÀï¿ÉÄÜÓÐ
-һЩÓÐÓõĽ¨Òé¡£
+×¢Ò⣺ÔÚijЩÖÕ¶ËÏ£¬ÊäÈë C-x C-s »á¶³½áÆÁÄ»¡¾ÆÁĻûÓÐÈκÎÊä³ö¡¿£¬Ê¹Äã¿´
+²»µ½ Emacs µÄÈκα仯¡£ÆäÔ­ÒòÊDzÙ×÷ϵͳµÄ¡°Á÷Á¿¿ØÖÆ¡±¹¦ÄÜÀ¹½ØÁË C-s ²¢
+¶³½áÁËÆÁÄ»¡£Óà C-q ¿ÉÒÔ½â³ýÆÁÄ»¶³½á¡£Òª½â¾öÕâ¸öÎÊÌ⣬Çë²Î¿¼ Emacs ÊÖ²á
+ÀïµÄ¡°Spontaneous Entry to Incremental Search¡±Ò»½Ú¡¾Emacs ÊÖ²á¿ÉÄÜ»¹Ã»
+ÓÐÖÐÎÄ·­Òë¡¿£¬ÄÇÀïÌṩÁËһЩÓÐÓõĽ¨Òé¡£
 
-Èç¹ûÄãÕýÔÚ½¥½øʽËÑË÷ÖУ¬°´Í˸ñ¼ü»áɾ³ýÄ¿±ê×Ö·û´®µÄ×îºóÒ»¸ö×Ö·û£¬²¢ÇÒ¹â
-±ê»á»Øµ½×î½üÒ»´ÎËÑË÷µÄÃüÖÐλÖᣱÈÈçÄãÒѾ­ÊäÈëÁË¡°c¡±£¬¹â±ê¾ÍÍ£ÔÚ¡°c¡±
-µÚÒ»´Î³öÏֵĵط½£¬ÔÙÊäÈë¡°u¡±£¬¹â±êÍ£ÔÚ¡°cu¡±µÚÒ»´Î³öÏֵĵط½£¬ÕâʱÔÙ°´
-Í˸ñ¼ü£¬¡°u¡±¾Í´ÓËÑË÷×Ö´®ÖÐÏûʧÁË£¬È»ºó¹â±ê»á»Øµ½¡°c¡±µÚÒ»´Î³öÏֵĵط½¡£
+ÔÚ½¥½øʽËÑË÷ÖУ¬°´Í˸ñ¼ü»áɾ³ýÄ¿±ê×Ö·û´®µÄ×îºóÒ»¸ö×Ö·û£¬²¢ÇÒ¹â±ê»á»Øµ½
+×î½üÒ»´ÎËÑË÷µÄÃüÖÐλÖᣱÈÈçÄãÒѾ­ÊäÈëÁË¡°c¡±£¬¹â±ê¾ÍÍ£ÔÚ¡°c¡±µÚÒ»´Î³ö
+ÏÖµÄλÖã¬ÔÙÊäÈë¡°u¡±£¬¹â±êÍ£ÔÚ¡°cu¡±µÚÒ»´Î³öÏÖµÄλÖã¬ÕâʱÔÙ°´Í˸ñ¼ü£¬
+¡°u¡±¾Í´ÓËÑË÷×Ö´®ÖÐÏûʧÁË£¬È»ºó¹â±ê»á»Øµ½¡°c¡±µÚÒ»´Î³öÏÖµÄλÖá£
 
-ÁíÍâÈç¹ûÄãÔÚËÑË÷µÄʱºòÊäÈëÁË CONTROL »òÕß META ×éºÏ¼üµÄ»°£¬ËÑË÷¿ÉÄÜ»á
-½áÊø¡££¨Ò²ÓÐÀýÍ⣬±ÈÈç C-s ºÍ M-r ÕâЩ¶ÔËÑË÷ÓÐÌرðÒâÒåµÄ×éºÏ¼ü¡££©
+ÁíÍ⣬Èç¹ûÄãÔÚËÑË÷µÄʱºòÊäÈëÁË CONTROL »òÕß META ×éºÏ¼üµÄ»°£¬ËÑË÷¿ÉÄÜ»á
+½áÊø¡££¨Ò²ÓÐÀýÍ⣬±ÈÈç C-s ºÍ M-r ÕâЩÓÃÓÚËÑË÷µÄÃüÁî¡££©
 
 Ç°Ãæ˵µÄ¶¼ÊÇ¡°ÏòÏ¡±ËÑË÷£¬Èç¹ûÏë¡°ÏòÉÏ¡±ËÑË÷£¬¿ÉÒÔÓà C-r¡£C-r Óë C-s
-Ïà±È³ýÁËËÑË÷·½ÏòÏà·´Ö®Í⣬ÆäËüµÄ²Ù×÷¶¼Ò»Ñù¡£
+Ïà±È³ýÁËËÑË÷·½ÏòÏà·´Ö®Í⣬ÆäÓàµÄ²Ù×÷¶¼Ò»Ñù¡£
 
 
 * ¶à´°¸ñ£¨MULTIPLE WINDOWS£©
@@ -759,29 +757,29 @@
 ´°¿ÚÏÂȱʡÏÔʾΪïοչâ±ê¡£¡¿Ò»°ãËùÓеı༭ÃüÁ×÷ÓÃÓÚÕâ¸ö¹â±êËùÔڵĴ°
 ¸ñ£¬ÎÒÃdzÆÕâ¸ö´°¸ñΪ¡°±»Ñ¡ÖеĴ°¸ñ¡±¡£
 
-µ±ÄãÔÚÒ»¸ö´°¸ñÖб༭£¬µ«ÊÇÏëÓÃÁíÒ»¸ö´°¸ñ×÷²Î¿¼µÄʱºò£¬C-M-v ÊǺÜÓÐÓõÄ
-ÃüÁî¡£Äã¿ÉÒÔ±£³Ö¹â±êʼÖÕ´¦Óڱ༭´°¸ñÖУ¬È»ºóÓà C-M-v ÃüÁîÔÚÁíÍâÒ»¸ö´°¸ñ
-Àï¹ö¶¯¡£¡¾·­ÒëºÍУ¶Ô¾ÍºÜÊʺÏÓÃÕâÖÖ·½Ê½½øÐС£¡¿
+µ±ÄãÔÚÒ»¸ö´°¸ñÖб༭£¬µ«ÓÃÁíÒ»¸ö´°¸ñ×÷Ϊ²Î¿¼µÄʱºò£¬C-M-v ÊǺÜÓÐÓõÄÃü
+Áî¡£Äã¿ÉÒÔʼÖÕ´¦Óڱ༭´°¸ñÖУ¬È»ºóÓà C-M-v ÃüÁî¹ö¶¯ÁíÍâÒ»¸ö´°¸ñ¡£¡¾±ÈÈç
+·­ÒëºÍУ¶Ô¾ÍºÜÊʺÏÓÃÕâÖÖ·½Ê½½øÐС£¡¿
 
-C-M-v ÊÇÒ»¸ö CONTROL-META ×éºÏ¼ü¡£Èç¹ûÄãÓÐ META ¼ü£¬Äã¿ÉÒÔͬʱ°´×¡
-CONTROL ºÍ META ¼üÈ»ºóÊäÈë v¡£CONTROL ºÍ META ¼üÄĸöÏÈ°´Ã»ÓйØϵ£¬ÒòΪ
-ËüÃÇÖ»ÊÇÓÃÀ´¡°ÐÞÊΣ¨modify£©¡±ÄãÊäÈëµÄ×Ö·ûµÄ¡£
+C-M-v ÊÇÒ»¸ö CONTROL-META ×éºÏ¼ü¡£Èç¹ûÄãÓÐ META ¼üµÄ»°£¬¿ÉÒÔͬʱ°´×¡
+CONTROL ºÍ META ¼ü²¢ÊäÈë v¡£CONTROL ºÍ META ¼üÏÈ°´Äĸö¶¼¿ÉÒÔ£¬ÒòΪËüÃÇ
+Ö»ÊÇÓÃÀ´¡°ÐÞÊΣ¨modify£©¡±ÄãÊäÈëµÄ×Ö·ûµÄ¡£
 
-Èç¹ûÄ㲢ûÓÐ META ¼ü£¬ÄãÒ²¿ÉÒÔÓà ESC À´´úÌ棬²»¹ýÕâÑù×Ó°´¼ü˳Ðò¾ÍÓйØϵ
-ÁË£ºÄã±ØÐëÊäÈë ESC £¬È»ºóÔÙÊäÈë CONTROL-v¡£CONTROL-ESC v ÊÇûÓõģ¬ÒòΪ
-ESC ±¾ÉíÊÇÒ»¸ö×Ö·û¼ü£¬¶ø²»ÊÇÒ»¸öÐÞÊμü£¨modifier key£©¡£
+Èç¹ûÄ㲢ûÓÐ META ¼ü£¬ÄãÒ²¿ÉÒÔÓà ESC À´´úÌ棬²»¹ýÕâÑùµÄ»°¾ÍҪעÒâ°´¼ü˳
+ÐòÁË£ºÄã±ØÐëÏÈÊäÈë ESC £¬È»ºóÔÙÊäÈë CONTROL-v¡£CONTROL-ESC v ÊÇûÓõģ¬
+ÒòΪ ESC ±¾ÉíÊÇÒ»¸ö×Ö·û¼ü£¬¶ø²»ÊÇÒ»¸öÐÞÊμü£¨modifier key£©¡£
 
 >> £¨ÔÚÉÏ·½´°¸ñÀÊäÈë C-x 1 ¹ØµôÏ·½´°¸ñ¡£
 
 £¨Èç¹ûÄãÔÚÏ·½µÄ´°¸ñÀïÊäÈë C-x 1£¬ÄÇô¾Í»á¹ØµôÉÏ·½µÄ´°¸ñ¡£Äã¿ÉÒÔ°ÑÕâ¸ö
-ÃüÁî¿´³ÉÊÇ¡°Ö»±£ÁôÒ»¸ö´°¸ñ¡±¡ª¡ª¾ÍÊÇÎÒÕýÔڱ༭µÄÕâ¸ö¡££©
+ÃüÁî¿´³ÉÊÇ¡°Ö»±£ÁôÒ»¸ö´°¸ñ¡±¡ª¡ª¾ÍÊÇÎÒÃÇÕýÔڱ༭µÄÕâ¸ö¡££©
 
-²»Í¬µÄ´°¸ñÀï¿ÉÒÔÏÔʾ²»Í¬µÄ»º³åÇø¡£Èç¹ûÄãÔÚÒ»¸ö´°¸ñÀïÓà C-x C-f ´ò¿ªÁË
-Ò»¸öÎļþ£¬ÁíÒ»¸ö´°¸ñ²¢²»»áÓÐʲô±ä»¯¡£ÔÚÈκÎÒ»¸ö´°¸ñÀﶼ¿ÉÒÔ´ò¿ªÎļþ¡£
+²»Í¬µÄ´°¸ñ¿ÉÒÔÏÔʾ²»Í¬µÄ»º³åÇø¡£Èç¹ûÄãÔÚÒ»¸ö´°¸ñÀïÓà C-x C-f ´ò¿ªÁËÒ»¸ö
+Îļþ£¬ÁíÒ»¸ö´°¸ñ²¢²»»á·¢Éúʲô±ä»¯¡£ÈκÎÒ»¸ö´°¸ñÀﶼ¿ÉÒÔÓÃÀ´´ò¿ªÎļþ¡£
 
-ÓÐÒ»ÖÖ·½Ê½¿ÉÒÔÈÃÄãÔÚÁíÒ»¸ö´°¸ñÀï´ò¿ªÎļþ£º
+ÓÃÏÂÃæµÄ·½·¨¿ÉÒÔÔÚÒ»¸öпª´°¸ñÀï´ò¿ªÎļþ£º
 
->> ÊäÈë C-x 4 C-f£¬ºóÃæ½ô¸ú×ÅÊäÈëÒ»¸öÎļþÃû£¬Óà <Return> ½áÊø¡£
+>> ÊäÈë C-x 4 C-f£¬½ô¸ú×ÅÊäÈëÒ»¸öÎļþÃû£¬ÔÙÓà <Return> ½áÊø¡£
    ¿ÉÒÔ¿´µ½ÄãÖ¸¶¨µÄÎļþ³öÏÖÔÚÏ·½µÄ´°¸ñÖУ¬Í¬Ê±¹â±êÒ²Ìøµ½ÁËÄÇÀï¡£
 
 >> ÊäÈë C-x o »Øµ½ÉÏ·½µÄ´°¸ñ£¬È»ºóÔÙÓà C-x 1 ¹ØµôÏ·½´°¸ñ¡£
@@ -801,29 +799,29 @@
 
 >> ÊäÈë M-x ½øÈëС»º³å£»È»ºóÊäÈë ESC ESC ESC À뿪¡£
 
-Äã²»ÄÜÓà C-g À´À뿪µÝ¹é±à¼­£¬ÒòΪ C-g µÄ×÷ÓÃÊÇÈ¡ÏûÃüÁîºÍ¡°²ÎÊý
-£¨arguments£©¡±£¬¶øÕâЩ¶«Î÷¶¼Î»ÓÚ±¾²ãµÝ¹é±à¼­¡°Ö®ÄÚ¡±¡£
+Äã²»ÄÜÓà C-g Í˳öµÝ¹é±à¼­£¬ÒòΪ C-g µÄ×÷ÓÃÊÇÈ¡Ïû¡°±¾²ãµÝ¹é±à¼­Ö®ÄÚ¡±µÄ
+ÃüÁîºÍÆä²ÎÊý£¨arguments£©¡£
 
 
 * »ñµÃ¸ü¶à°ïÖú£¨GETTING MORE HELP£©
 -----------------------------------
 
-±¾¿ìËÙÖ¸ÄϵÄÄ¿µÄ½ö½öÊÇ°ïÖúÄãѧ»áÔÚ Emacs µÄ´óº£ÀïÓÎÓ¾£¬²»ÖÁÓÚÒ»ÉÏÀ´¾ÍÑÍ
-ËÀ¡£ÓÐ¹Ø Emacs µÄ»°ÌâÈýÌìÈýÒ¹Ò²½²²»Í꣬ÕâÀï×ÔÈ»ÊÇд²»ÏÂÁË¡£Emacs ºÜÀí½â
-ÄãÇóÖªÈô¿ÊµÄÐÄÇ飬ÒòΪËüÌṩµÄÇ¿¾¢¹¦ÄÜʵÔÚÊÇÌ«¶àÁË¡£Emacs ÌṩÁËһЩÃü
-ÁîÀ´²é¿´ Emacs ÃüÁîµÄÎĵµ£¬ÕâЩÃüÁÒÔ CONTROL-h ¿ªÍ·£¬Õâ¸ö×Ö·ûÒ²Òò´Ë
-±»³ÆΪ¡°Help£¨°ïÖú£©×Ö·û¡±¡£
+±¾¿ìËÙÖ¸ÄϵÄÄ¿µÄ½ö½öÊÇ°ïÖúÄãÔÚ Emacs µÄº£ÑóÀïÏÂË®£¬²»ÖÁÓÚÊøÊÖÎÞ²ßÍûÑóÐË
+̾¡£ÓÐ¹Ø Emacs µÄ»°Ìâ¿Éνº¹Å£³ä¶°£¬ÕâÀï×ÔÈ»ÊÇÄѾ¡ÍòÒ»¡£²»¹ý Emacs ºÜÀí
+½âÄãÇóÖªÈô¿ÊµÄÐÄÇ飬ÒòΪËüÌṩµÄÇ¿´ó¹¦ÄÜʵÔÚÊÇÌ«¶àÁË¡£Îª´Ë£¬Emacs Ìṩ
+ÁËһЩÃüÁîÀ´²é¿´ Emacs µÄÃüÁîÎĵµ£¬ÕâЩÃüÁÒÔ CONTROL-h ¿ªÍ·£¬Õâ¸ö×Ö
+·ûÒ²Òò´Ë±»³ÆΪ¡°°ïÖú£¨Help£©×Ö·û¡±¡£
 
-ҪʹÓðïÖú£¨Help£©¹¦ÄÜ£¬ÇëÏÈÊäÈë C-h£¬È»ºóÔÙÊäÈëÒ»¸ö˵Ã÷ÄãÐèÇóµÄ×Ö·û¡£
-Èç¹ûÄãÔε½Á¬ÐèҪʲô°ïÖú¶¼²»ÖªµÀ£¬ÄÇô¾ÍÊäÈë C-h ?£¬Emacs »á¸æËßÄãËüÄÜ
-ÌṩÄÄЩ°ïÖú¡£Èç¹ûÄãÒѾ­°´ÁË C-h ÓÖÏë·´»Ú£¬ÄÇôÓà C-g È¡ÏûËü¾ÍÊÇÁË¡£
+ҪʹÓðïÖú£¨Help£©¹¦ÄÜ£¬ÇëÏÈÊäÈë C-h£¬È»ºóÔÙÊäÈëÒ»¸ö×Ö·ûÒÔ˵Ã÷ÄãÐèҪʲ
+ô°ïÖú¡£Èç¹ûÄãÁ¬×Ô¼ºµ½µ×ÐèҪʲô°ïÖú¶¼²»ÖªµÀ£¬ÄÇô¾ÍÊäÈë C-h ?£¬Emacs
+»á¸æËßÄãËüÄÜÌṩÁËÄÄЩ°ïÖú¡£Èç¹ûÄã°´ÁË C-h ÓÖÏë·´»Ú£¬¿ÉÒÔÓà C-g È¡Ïû¡£
 
-£¨ÓÐЩվµã¸Ä±äÁË C-h µÄÒâ˼£¬ËûÃÇÕâÖÖÒÔ¼º¶ÈÈËÍâ¼ÓÒ»µ¶ÇеÄ×ö·¨Èõ¹ÊÇÈÃÄã
-¿ÉÒÔÒåÕý´ÇÑϵı§Ô¹ÏµÍ³¹ÜÀíÔ±£¬ÕæµÄ²»ÊÇÌ«ºÃ¡£»°Ëµ»ØÀ´£¬Èç¹ûÄã°´ C-h Ö®ºó
-ûÓÐÈκΰïÖúÐÅÏ¢ÏÔʾ³öÀ´£¬ÄÇôÊÔÊÔ F1 ¼ü»òÕß M-x help <Return>¡££©
+£¨ÓÐЩÖ÷»ú¸Ä±äÁË C-h µÄÒâÒ壬ÕâÖÖÒÔ¼º¶ÈÈËÍâ¼ÓÒ»µ¶ÇеÄ×ö·¨È·Êµ²»Ì«ºÃ£¬²»
+¹ýµ¹ÊÇÈÃÄã¿ÉÒÔÒåÕý´ÇÑϵر§Ô¹ËûÃǵÄϵͳ¹ÜÀíÔ±¡£»°Ëµ»ØÀ´£¬Èç¹ûÄã°´ C-h Ö®
+ºóûÓÐÈκΰïÖúÐÅÏ¢ÏÔʾ³öÀ´£¬ÄÇôÊÔÊÔ F1 ¼ü»òÕß M-x help <Return> ¡££©
 
-×î»ù±¾µÄ°ïÖú¹¦ÄÜÊÇ C-h c¡£ÊäÈë C-h c Ö®ºóÔÚÊäÈëÒ»¸ö×éºÏ¼ü£¬Emacs »áºÜ¼ò
-ÒªµØ¸ø³öÕâ¸öÃüÁîµÄ˵Ã÷¡£
+×î»ù±¾µÄ°ïÖú¹¦ÄÜÊÇ C-h c¡£ÊäÈë C-h c Ö®ºóÔÙÊäÈëÒ»¸ö×éºÏ¼ü£¬Emacs »á¸ø³ö
+Õâ¸öÃüÁîµÄ¼òҪ˵Ã÷¡£
 
 >> ÊäÈë C-h c C-p¡£
 
@@ -833,7 +831,7 @@
 
 ÕâÌõÏûÏ¢ÏÔʾÁË C-p ÃüÁî¶ÔÓ¦µÄº¯ÊýÃû£¬º¯ÊýÃûÖ÷ÒªÓÃÀ´¶¨ÖƺÍÀ©Õ¹ Emacs¡£Ãü
 ÁîµÄ¹¦ÄÜÓɺ¯ÊýÍê³É£¬ËùÒÔº¯ÊýÃû±¾ÉíÒ²¿ÉÒÔ±»¿´³ÉÊÇ×î¼òµ¥µÄÎĵµ¡ª¡ªÖÁÉÙ¶Ô
-ÓÚÄãÒѾ­Ñ§¹ýµÄÃüÁîÀ´Ëµ£¬ËüÃǵĺ¯ÊýÃû×ãÒÔ½âÊÍËüÃÇËùÍê³ÉµÄ¹¤×÷ÁË¡£
+ÓÚÄãÒѾ­Ñ§¹ýµÄÃüÁîÀ´Ëµ£¬ËüÃǵĺ¯ÊýÃû×ãÒÔ½âÊÍËüÃǵŦÄÜÁË¡£
 
 ¶à×Ö·ûÃüÁîÒ»Ñù¿ÉÒÔÓà C-h c À´²é¿´¡£
 
@@ -841,18 +839,18 @@
 
 >> ÊäÈë C-h k C-p¡£
 
-ÉÏÃæµÄÃüÁî»áдò¿ªÒ»¸ö Emacs ´°¸ñ£¬²¢ÔÚÆäÖÐÏÔʾº¯ÊýµÄÃû³Æ¼°ÆäÎĵµ¡£Äã¶Á
-ÍêÖ®ºó£¬¿ÉÒÔÓà C-x 1 ¹ØµôÕâ¸ö°ïÖú´°¸ñ¡£µ±È»Äã²¢²»ÐèÒªÔÚ C-h k Ö®ºóÁ¢¼´
-ÕâÑù×ö£¬ÄãÍêÈ«¿ÉÒÔÏÈÔڱ༭´°¸ñÀï×öµã±ðµÄÊÂÇ飬ȻºóÔÙÓà C-x 1 ¹Øµô°ïÖú¡£
+ÉÏÃæµÄÃüÁî»áдò¿ªÒ»¸ö Emacs ´°¸ñÒÔÏÔʾº¯ÊýµÄÃû³Æ¼°ÆäÎĵµ¡£Äã¶ÁÍêÖ®ºó¿É
+ÒÔÓà C-x 1 ¹ØµôÕâ¸ö°ïÖú´°¸ñ¡£µ±È»Äã²¢²»ÐèÒªÁ¢¼´ÕâÑù×ö£¬ÄãÍêÈ«¿ÉÒÔÏÈÔÚ±à
+¼­´°¸ñÀï×öµã±ðµÄÊÂÇ飬ȻºóÔٹصô°ïÖú´°¸ñ¡£
 
-»¹ÓÐһЩÆäËûÓÐÓÃµÄ C-h ÃüÁ
+»¹ÓÐһЩÆäËüÓÐÓÃµÄ C-h ÃüÁ
 
-   C-h f        ½âÊÍÒ»¸öº¯Êý¡£ÄãÒªÊäÈ뺯ÊýÃû¡£
+   C-h f        ½âÊÍÒ»¸öº¯Êý¡£ÐèÒªÊäÈ뺯ÊýÃû¡£
 
 >> ÊÔÊÔ¿´£¬ÊäÈë C-h f previous-line<Return>¡£
    Emacs »á¸ø³öËüËùÖªµÀµÄËùÓÐÓйء°ÊµÏÖ C-p ÃüÁÄܵĺ¯Êý¡±µÄÐÅÏ¢¡£
 
-C-h v ÓÃÀ´ÏÔʾ Emacs ±äÁ¿µÄÎĵµ£¬Emacs ±äÁ¿¿ÉÒÔ±»ÓÃÀ´¡°¶¨ÖÆ Emacs µÄÐÐ
+C-h v ÓÃÀ´ÏÔʾ Emacs ±äÁ¿µÄÎĵµ¡£Emacs ±äÁ¿¿ÉÒÔ±»ÓÃÀ´¡°¶¨ÖÆ Emacs µÄÐÐ
 Ϊ¡±¡£Í¬Ñù£¬ÄãÐèÒªÊäÈë±äÁ¿µÄÃû³Æ¡£
 
    C-h a        Ïà¹ØÃüÁîËÑË÷£¨Command Apropos£©¡£
@@ -882,21 +880,21 @@
 * ¸ü¶à¾«²Ê£¨MORE FEATURES£©
 ---------------------------
 
-ÏëÁ˽â¸ü¶àʹÓà Emacs µÄ֪ʶ£¬Ó¦¸ÃÈ¥¶ÁÒ»¶Á Emacs ʹÓÃÊֲᡪ¡ª¿ÉÒÔÊÇÖ½°æ
-µÄÊ飬Ҳ¿ÉÒÔÊǵç×Ó°æµÄÁª»ú°ïÖú£¨¿ÉÒÔ´Ó Help ²Ëµ¥½øÈë»òÕß°´ F10 h r£©¡£
-ÌáÁ½¸öÄã¿ÉÄÜ»áºÜ¸ÐÐËȤµÄ¹¦ÄÜ°É£¬Ò»¸öÊÇ¿ÉÒÔ°ïÄãÉÙÇüüÅÌµÄ completion£¨×Ô
-¶¯²¹È«£©£¬Ò»¸öÊÇ·½±ãÎļþ´¦ÀíµÄ dired£¨Ä¿Â¼±à¼­£©¡£
+Ïëѧϰ¸ü¶àµÄʹÓü¼ÇÉ£¬Emacs ʹÓÃÊֲᣨmanual£©ÖµµÃÒ»¶Á¡£Äã¿ÉÒÔ¶ÁÖ½°æµÄ
+Ê飬Ҳ¿ÉÒÔ¿´µç×Ó°æµÄÁª»úÊֲᣨ¿ÉÒÔ´Ó Help ²Ëµ¥½øÈë»òÕß°´ F10 h r£©¡£Ìá
+Á½¸öÄã¿ÉÄÜ»áºÜ¸ÐÐËȤµÄ¹¦ÄÜ°É£¬Ò»¸öÊÇ¿ÉÒÔ°ïÄãÉÙÇüüÅÌµÄ completion£¨×Ô¶¯
+²¹È«£©£¬ÁíÒ»¸öÊÇ·½±ãÎļþ´¦ÀíµÄ dired£¨Ä¿Â¼±à¼­£©¡£
 
 Completion ¿ÉÒÔÌæÄã½ÚÊ¡²»±ØÒªµÄ¼üÅÌÊäÈë¡£±ÈÈç˵ÄãÏëÇл»µ½ *Message* »º
-³åÇø£¬Äã¾Í¿ÉÒÔÓà C-x b *M<Tab> À´Íê³É£¬Ö»Òª Emacs Äܹ»´ÓÄãÒѾ­ÊäÈëµÄÎÄ
-×ÖÖÐÅжϳöÄãÏëÒªÊäÈëµÄ¶«Î÷£¬Ëü»á×Ô¶¯°ïÄã²¹ÆëÓàϵġ£ÓÐ¹Ø Completion µÄ
-Ïêϸ½âÊÍ¿ÉÒÔÔÚ Emacs Info Öеġ°Completion¡±Ò»½ÚÀïÕÒµ½¡£
+³åÇø£¬Äã¾Í¿ÉÒÔÓà C-x b *M<Tab> À´Íê³É¡£Ö»Òª Emacs Äܹ»¸ù¾ÝÄãÒѾ­ÊäÈëµÄ
+ÎÄ×ÖÈ·¶¨ÄãÏëÒªÊäÈëµÄÄÚÈÝ£¬Ëü¾Í»á×Ô¶¯°ïÄã²¹Æë¡£ÓÐ¹Ø Completion µÄÏêϸ˵
+Ã÷¿ÉÒÔÔÚ Emacs Info Öеġ°Completion¡±Ò»½ÚÀïÕÒµ½¡£
 
-Dired ¿ÉÒÔÔÚÒ»¸ö»º³åÇøÀïÁгöÒ»¸öĿ¼ÀïµÄËùÓÐÎļþ£¨¿ÉÒÔÑ¡ÔñÊÇ·ñÒ²Áгö×Ó
-Ŀ¼£©£¬È»ºóÄã¿ÉÒÔÔÚÕâ¸öÎļþÁбíÉÏÍê³É¶ÔÎļþµÄÒƶ¯¡¢·ÃÎÊ¡¢¸ÄÃû»òÕßɾ³ý
-µÈµÈ²Ù×÷¡£Dired Ò²ÔÚ Emacs Info ÖÐÓÐÏêϸ˵Ã÷£¬¾ÍÔÚ¡°Dired¡±Ò»½Ú¡£
+Dired Äܹ»ÔÚÒ»¸ö»º³åÇøÀïÁгöÒ»¸öĿ¼ÏµÄËùÓÐÎļþ£¨¿ÉÒÔÑ¡ÔñÊÇ·ñÒ²Áгö×Ó
+Ŀ¼£©£¬È»ºóÄã¿ÉÒÔÔÚÕâ¸öÎļþÁбíÉÏÍê³É¶ÔÎļþµÄÒƶ¯¡¢·ÃÎÊ¡¢ÖØÃüÃû»òɾ³ý
+µÈµÈ²Ù×÷¡£Dired Ò²ÔÚ Emacs Info ÖÐÓÐÏêϸ½éÉÜ£¬²Î¼û¡°Dired¡±Ò»½Ú¡£
 
-Emacs ʹÓÃÊÖ²áÀﻹÓкܶàºÜ¶àµÄ¾«²Ê¹¦ÄܵÈ×ÅÄãÀ´Á˽⡣
+Emacs ʹÓÃÊÖ²áÀﻹÓÐÐíÐí¶à¶àµÄ¾«²Ê¹¦ÄܵÈ×ÅÄãÀ´Á˽⡣
 
 
 * ×ܽᣨCONCLUSION£©
@@ -905,15 +903,15 @@
 ¼Çס£¬ÒªÍ˳ö Emacs ÇëÓà C-x C-c¡£ÒªÔÝʱÇл»µ½ shell ²¢ÇÒÉÔºóÔٻص½
 Emacs ÀïÀ´£¬ÇëÓà C-z¡£¡¾Çл»µ½ shell ½ö¶Ô¿ØÖÆ̨Ï嵀 Emacs ÓÐЧ¡¿
 
-±¾ÎÄÍêÈ«ÊÇΪÁãÆðµãÐÂÊÖдµÄɵ¹Ï½Ì³Ì¡£Èç¹ûÄã¾õµÃÄÄÀﻹ¿´²»Ã÷°×£¬Ç§Íò²»Òª
-¾õµÃ²»ºÃÒâ˼£¬ÄÇÒ»¶¨ÊÇÎÒÃÇûÓÐдºÃ¡£ÎÒÃÇÓÀÔ¶»¶Ó­ÄãµÄ²»ÂúºÍ±§Ô¹¡£
+±¾ÎÄÍêÈ«ÊÇΪÁãÆðµãÐÂÊÖËùдµÄÆ𲽽̡̳£Èç¹ûÄã¾õµÃÄÄÀﻹ¿´²»Ã÷°×£¬Ç§Íò²»
+Òª»³ÒÉ×Ô¼º£¬ÄÇÒ»¶¨ÊÇÎÒÃÇûÓÐдºÃ¡£ÎÒÃÇÓÀÔ¶»¶Ó­ÄãµÄ²»ÂúºÍ±§Ô¹¡£
 
 
 * ·­Ò루TRANSLATION£©
 ---------------------
 
-·­Ò룺Ëï Ò»½­ <sunyijiang@gmail.com>
-У¶Ô£ºË®Ä¾ÉçÇø£¨www.newsmth.net£©Emacs °åÖÚ¶àÍøÓÑ
+·­Ò룺ËïÒ»½­ <sunyijiang@gmail.com>
+У¶Ô£ºË®Ä¾ÉçÇø£¨www.newsmth.net£©Emacs °åÖÚ¶àÍøÓѼ°ÖÚ¶à Emacs ÖÐÎÄÓû§
 
 Emacs ¿ìËÙÖ¸ÄÏ£¨Tutorial£©ÔçÓÐÁ½¸öÁõÕѺêµÄÖÐÎÄÒë±¾£¬·±¼ò¸÷Ò»¡£Æä¼òÌå°æ±¾
 £¨TUTORIAL.cn£©»ù±¾ÓÉ·±Ìå°æ±¾£¨TUTORIAL.zh£©¾­´ÊÓïÌæ»»¶øµÃ¡£È»¶ø·±¼òÖÐÎÄ
@@ -924,10 +922,12 @@
 ±íʾ¸Ðл¡£
 
 ·­Òë¹ý³ÌÖÐ×î´óµÄÌôսĪ¹ýÓÚÊõÓïÒë´ÊµÄÑ¡ÔñÁË¡£¾­¹ýˮľÉçÇø Emacs °åÈÈÐÄÍø
-ÓÑС·¶Î§ÄÚµÄÌÖÂÛ£¬ÎÒÃÇÑ¡ÔñÁËÏÖÔÚµÄÒë·¨¡£Óû§µÄ¹ã·º²ÎÓëÊÇ×ÔÓÉÈí¼þÉúÃüÁ¦µÄ
-ԴȪ£¬ËùÒÔÈç¹ûÄãÓÐÈκν¨Òé¡¢¿±Îó»ò¸üºÃµÄÏë·¨£¬ÇëÓÃÄãϲ»¶µÄ·½Ê½ÏòÎÒÃÇÌá³ö
-¡£Äã¿ÉÒÔÖ±½Ó¸øÎÒ·¢µç×ÓÓʼþ£¬Ò²¿ÉÒԷŵ½ GNU Emacs µÄ¿ª·¢ÓʼþÁбí»òÕßˮľ
-ÉçÇøµÄ Emacs °åÉϽøÐÐÌÖÂÛ¡£ÏÂÃæÁгöÖ÷ÒªÊõÓïµÄÒë´Ê¶ÔÕÕ£¬²¢¸ø³ö×¢ÊÍ˵Ã÷£º
+ÓÑС·¶Î§ÄÚµÄÌÖÂÛ£¬ÎÒÃÇÑ¡ÔñÁËÏÖÔÚµÄÒë·¨¡£Óû§µÄ¹ã·º²ÎÓëÊÇ×ÔÓÉÈí¼þÉúÃüÁ¦
+µÄԴȪ£¬ËùÒÔÈç¹ûÄãÓÐÈκν¨Òé¡¢¿±Îó»òÏë·¨£¬ÇëÓÃÄãϲ»¶µÄ·½Ê½ÏòÎÒÃÇÌá³ö¡£
+Äã¿ÉÒÔͨ¹ýµç×ÓÓʼþÖ±½ÓÁªÏµÒëÕߣ¬Ò²¿ÉÒԷŵ½ GNU Emacs µÄ¿ª·¢ÓʼþÁбí»òÕß
+ˮľÉçÇøµÄ Emacs °åÉϽøÐÐÌÖÂÛ¡£
+
+ÏÂÃæÁгöÖ÷ÒªÊõÓïµÄÒë´Ê¶ÔÕÕ£¬²¢¸ø³ö×¢ÊÍ˵Ã÷£º
 
     command               ÃüÁî
     cursor                ¹â±ê
@@ -956,7 +956,7 @@
 
     ¡¶Ñ§Ï°GNU Emacs¡·£¨µÚ¶þ°æ£©Ò»Êé¶Ô¡°window¡±ºÍ¡°frame¡±µÄ·­ÒëÓë±¾½Ì³Ì
     ¸ÕºÃÏà·´£¨·Ö±ðÒë×÷¡°´°¿Ú¡±ºÍ¡°´°¸ñ¡±£©¡£ÔÚ´ËÌرð×¢Ã÷£¬ÒÔÏû³ý¿ÉÄܲúÉú
-    µÄÒÉ»ó¡£
+    µÄÒɻ󡣣¨¸ÐлÀîÐñÕ <lixuzhang@gmail.com> Ö¸³ö£©
 
 [2] ¶ÔÓÚ¡°delete¡±ºÍ¡°kill¡±µÄÇø±ð£¬ÕýÎÄÒѾ­¸ø³öÁËÏêϸµÄ˵Ã÷¡£¡°É¾³ý¡±ºÍ
     ¡°ÒƳý¡±Ïà±È½ÏÆðÀ´£¬Ç°Õ߸ü¶àµØÒþº¬×Å¡°ÆÆ»µ¡±ºÍ¡°²»¿É»Ö¸´¡±µÄÒâ˼£¬¶ø
@@ -968,7 +968,7 @@
 
 [3] ¡°incremental¡±Ò»´ÊÔÚ¼ÆËã»úÖø×÷Öй㷺³öÏÖ£¬±»¹ã·º½ÓÊܵÄÖÐÎÄÒë´ÊÓÐÁ½
     ¸ö£º¡°ÔöÁ¿µÄ¡±ºÍ¡°½¥½øµÄ¡±¡£¡°incremental search¡±·­Òë³É¡°ÔöÁ¿Ê½ËÑË÷
-    ¡±»òÕß¡°½¥½øʽËÑË÷¡±¶¼½²µÄͨ£¬ÇÒ¶¼Óи÷×ÔµÄÐÎÏóÖ®´¦¡£»¹ÊDzο¼Ô­ÎĶÔÆä
+    ¡±»òÕß¡°½¥½øʽËÑË÷¡±¶¼½²µÃͨ£¬ÇÒ¶¼Óи÷×ÔµÄÐÎÏóÖ®´¦¡£»¹ÊDzο¼Ô­ÎĶÔÆä
     µÄ½âÊÍ£º¡°... means that the search happens while you type in the
     string to search for¡±¡£Òâ˼ÊÇÖ®ËùÒÔ³ÆÆäΪ¡°incremental search¡±£¬ÊÇ
     ÒòΪ¡°ÔÚÄãÊäÈëËÑË÷×Ö·û´®µÄ¹ý³ÌÖУ¬ËÑË÷¾ÍÒѾ­ÔÚ½øÐÐÁË¡±¡£ÎÒÃÇÈÏΪ¡°Ôö
@@ -1012,7 +1012,7 @@
 
 ±¾ÆªÎĵµÓë GNU Emacs Ò»ÑùÓµÓаæȨ£¬²¢ÔÊÐíÔÚÏÂÁÐÌõ¼þµÄÔ¼ÊøÏ·¢ÐÐÆ俽±´£º
 
-   Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, 2005
+   Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
 
    ±¾ÎĵµÔÊÐíÔÚ²»±ä¸üÎĵµÄÚÈݵÄÇé¿öÏÂÓÉÈκÎÈË·¢²¼ÔÚÈκÎýÌåÉÏ£¬Í¬Ê±±ØÐë
--- a/etc/orgcard.tex	Tue Nov 21 01:10:47 2006 +0000
+++ b/etc/orgcard.tex	Tue Nov 21 08:56:38 2006 +0000
@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{4.44}
+\def\orgversionnumber{4.56}
 \def\year{2006}
 %
 %**start of header
@@ -284,6 +284,7 @@
 \key{rotate current subtree between states}{TAB}
 \key{rotate entire buffer between states}{S-TAB}
 \key{show the whole file}{C-c C-a}
+\key{reveal context around point}{C-c C-r}
 %\key{show branches}{C-c C-k}
 
 \section{Motion}
@@ -298,8 +299,6 @@
 
 \key{insert new heading/item at current level}{M-RET}
 \key{insert new TODO entry/checkbox item}{M-S-RET}
-\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b}
-\key{toggle checkbox at point}{C-c C-c}
 
 \key{promote current heading up one level}{M-LEFT}
 \key{demote current heading down one level}{M-RIGHT}
@@ -315,8 +314,9 @@
 \section{Archiving}
 
 \key{toggle ARCHIVE tag}{C-c C-x C-a}
-\metax{mark fully dine children}{C-u C-c C-x C-a}
-\key{move subtree to achive file}{C-c \$}
+\metax{mark fully done children}{C-u C-c C-x C-a}
+\key{force cycling of an ARCHIVEd tree}{C-TAB}
+\key{move subtree to archive file}{C-c \$}
 \key{move all fully done children}{C-u C-c \$}
 To set archive location for current file, add a line like$^2$:
 \vskip -1mm
@@ -330,7 +330,7 @@
 \key{view TODO's in sparse tree}{C-c C-v}
 \key{global TODO list in agenda mode}{C-c t$^1$}
 \key{create sparse tree with all deadlines due}{C-c C-w}
-\key{time sorted view of current org file}{C-c C-r}
+\key{time sorted view of current org file}{C-c a L}
 %\key{agenda for the week}{C-c a$^1$}
 %\key{agenda for date at cursor}{C-c C-o}
 
@@ -425,10 +425,11 @@
 \key{insert file link with file name completion}{C-u C-c C-l}
 \key{edit (also hidden part of) link at point}{C-c C-l}
 
-\key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o}
-\key{open link at point (3: in emacs)}{mouse-2/3}
-%\key{open file links in emacs}{mouse-3}
-%\key{record a position in mark ring}{C-c \%}
+\key{open file links in emacs}{C-c C-o}
+\key{...force open in emacs/other window}{C-u C-c C-o}
+\key{open link at point}{mouse-1/2}
+\key{...force open in emacs/other window}{mouse-3}
+\key{record a position in mark ring}{C-c \%}
 \key{jump back to last followed link(s)}{C-c \&}
 
 {\bf Internal Links}
@@ -444,10 +445,10 @@
 \key{\kbd{file:/home/dominik/img/mars.jpg}}{\rm file, absolute}
 \key{\kbd{file:papers/last.pdf}}{\rm file, relative}
 \key{\kbd{file:projects.org::*that text}}{\rm find headline}
-\key{\kbd{file:projects.org::find me}}{\rm find tgt/string}
+\key{\kbd{file:projects.org::find me}}{\rm find trgt/string}
 %\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search}
 \key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web}
-\key{\kbd{mailto:adent@galaxy.net}}{\rm EMail address}
+\key{\kbd{mailto:adent@galaxy.net}}{\rm Email address}
 \key{\kbd{news:comp.emacs}}{\rm Usenet group}
 \key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person}
 \key{\kbd{gnus:group}}{\rm GNUS group}
@@ -494,7 +495,7 @@
 
 \centerline{(for version \orgversionnumber)}
 
-\section{TODO Items}
+\section{TODO Items and Checkboxes}
 
 \key{rotate the state of the current item}{C-c C-t}
 \key{view TODO items in a sparse tree}{C-c C-v}
@@ -508,6 +509,12 @@
 \key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow}
 \key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types}
 
+\key{insert new checkbox item in plain list}{M-S-RET}
+\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b}
+\key{toggle checkbox at point}{C-c C-c}
+\metax{checkbox statistics cookies: insert {\tt [/]} or {\tt [\%]}}{}
+\key{update checkbox statistics (\kbd{C-u} : whole file)}{C-c \#}
+
 \section{Tags}
 
 \key{set tags for current heading}{C-c C-c}
@@ -535,6 +542,7 @@
 %\key{... forward/backward one day}{S-LEFT/RIGHT}
 %\key{... forward/backward one week}{S-UP/DOWN}
 %\key{... forward/backward one month}{M-S-LEFT/RIGT}
+\key{Toggle custom format display for dates/times}{C-c C-x C-t}
 
 
 \section{Clocking Time}
@@ -547,11 +555,6 @@
 \key{remove displayed times}{C-c C-c}
 \key{insert/update table with clock report}{C-c C-x C-r}
 
-\section{Dynamic Blocks}
-
-\key{update dynamic block at point}{C-c C-x C-u}
-\metax{update all dynamic blocks}{C-u C-c C-x C-u}
-
 \section{LaTeX and cdlatex-mode}
 
 \key{preview LaTeX fragment}{C-c C-x C-l}
@@ -568,8 +571,10 @@
 \key{compile global TODO list}{C-c a t$^1$}
 \key{compile TODO list for specific keyword}{C-c a T$^1$}
 \key{match tags in agenda files}{C-c a m$^1$}
+\key{match tags in TODO entries}{C-c a M$^1$}
+\key{show timeline of current org file}{C-c a L$^1$}
+\key{configure custom commands}{C-c a C$^1$}
 \key{agenda for date at cursor}{C-c C-o}
-\key{show timeline of current org file}{C-c C-r}
 
 \vskip 1mm
 To set categories, add lines like$^2$:
@@ -582,11 +587,11 @@
 
 {\bf View Org file}
 
-\key{show original location of item}{SPC}
-\key{... also available with}{mouse-3}
+\key{show original location of item}{SPC/mouse-3}
+%\key{... also available with}{mouse-3}
 \key{show and recenter window}{L}
-\key{goto original location in other window}{TAB}
-\key{... also available with}{mouse-2}
+\key{goto original location in other window}{TAB/mouse-2}
+%\key{... also available with}{mouse-2}
 \key{goto original location, delete other windows}{RET}
 \key{toggle follow-mode}{f}
 
@@ -607,6 +612,7 @@
 
 \key{digit argument}{0-9}
 \key{change state of current TODO item}{t}
+\key{kill item and source}{C-k}
 \key{show tags of current headline}{T}
 \key{set tags for current headline}{:}
 \key{toggle ARCHIVE tag}{a}
@@ -718,6 +724,11 @@
 %S-RET   $\to$ C-S-RET
 %\endexample
 
+\section{Dynamic Blocks}
+
+\key{update dynamic block at point}{C-c C-x C-u}
+\metax{update all dynamic blocks}{C-u C-c C-x C-u}
+
 \section{Notes}
 $^1$ This is only a suggestion for a binding of this command.  Choose
 you own key as shown under INSTALLATION.
--- a/leim/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/leim/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1630,6 +1630,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
--- a/lib-src/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lib-src/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,31 @@
+2006-11-13  Jason Rumney  <jasonr@gnu.org>
+
+	* emacsclient.c [WINDOWSNT]: Let config.h define HAVE_SOCKETS and
+	HAVE_INET_SOCKETS.
+
+2006-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+	* makefile.w32-in (emacsclient): Depend also on emacsclientw.exe.
+	($(BLD)/emacsclientw.exe): New target.
+	(install): Install emacsclientw.exe.
+	($(BLD)/cvtmail.$(O), $(BLD)/emacstool.$(O)): Remove obsolete targets.
+	(ECLIENT_CFLAGS): Remove redundant flags.
+
+	* emacsclient.c [WINDOWSNT]: Undef _WINSOCKAPI_ and _WINSOCK_H.
+
+2006-11-13  Jason Rumney  <jasonr@gnu.org>
+
+	* makefile.w32-in ($(BLD)/emacsclient.$(O)): Use CFLAGS.
+
+2006-11-10  David Reitter  <david.reitter@gmail.com>
+
+	* emacsclient.c [!WINDOWSNT]: Include <sys/types.h>.
+
+2006-11-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacsclient.c (get_server_config) [WINDOWSNT]: Declare set_fg as
+	FARPROC to avoid a compiler warning.
+
 2006-11-07  Juanma Barranquero  <lekktu@gmail.com>
 
 	* emacsclient.c (get_server_config) [WINDOWSNT]: Look for the server
@@ -9,11 +37,11 @@
 
 2006-11-06  Juanma Barranquero  <lekktu@gmail.com>
 
-	* emacsclient.c (longopts) [! NO_SOCKETS_IN_FILE_SYSTEM]: Don't show
+	* emacsclient.c (longopts) [!NO_SOCKETS_IN_FILE_SYSTEM]: Don't show
 	option --socket-name.
 	(decode_options): Don't get EMACS_SERVER_FILE here, it could override
 	command line options.
-	(decode_options) [! NO_SOCKETS_IN_FILE_SYSTEM]: Don't parse "-s" option.
+	(decode_options) [!NO_SOCKETS_IN_FILE_SYSTEM]: Don't parse "-s" option.
 	(fail): Don't check for missing arguments, it is now done in set_socket.
 	(file_name_absolute_p): New function (loosely based on the one in
 	fileio.c).
@@ -455,7 +483,7 @@
 
 2004-09-08  Francesco Potort,Al(B  <pot@gnu.org>
 
-	* etags.c [LONG_OPTIONS]: make it TRUE (ifdef) or FALSE (ifndef)
+	* etags.c [LONG_OPTIONS]: Make it TRUE (ifdef) or FALSE (ifndef)
 	for ease of use.
 
 2004-07-17  Richard M. Stallman  <rms@gnu.org>
@@ -2665,7 +2693,7 @@
 
 	* movemail.c (rindex): Add declaration.
 
-Tue Jul  1 01:09:07 1997  Geoff Voelker  <voelker@cs.washington.edu>
+1997-07-01  Geoff Voelker  <voelker@cs.washington.edu>
 
 	* makefile.nt (GETOPTOBJS, GETOPTDEFS, MOVEMAILOBJS): Define.
 	(movemail.exe): Depend upon and link with getopt files.
@@ -3914,7 +3942,7 @@
 	* profile.c (TV1, TV2): Use EMACS_TIME as type.
 	(get_time): Use EMACS_SUB_TIME.
 
-1994-10-30  voelker  <voelker@cs.washington.edu>
+1994-10-30  Geoff Voelker  <voelker@cs.washington.edu>
 
 	* ntlib.c: New file.
 	* makefile.nt: New file.
@@ -6047,6 +6075,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
--- a/lib-src/emacsclient.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/lib-src/emacsclient.c	Tue Nov 21 08:56:38 2006 +0000
@@ -28,11 +28,13 @@
 
 #ifdef WINDOWSNT
 
+/* config.h defines these, which disables sockets altogether! */
+# undef _WINSOCKAPI_
+# undef _WINSOCK_H
+
 # include <malloc.h>
 # include <stdlib.h>
 
-# define HAVE_SOCKETS
-# define HAVE_INET_SOCKETS
 # define NO_SOCKETS_IN_FILE_SYSTEM
 
 # define HSOCKET SOCKET
@@ -41,6 +43,8 @@
 
 #else /* !WINDOWSNT */
 
+# include <sys/types.h>
+
 # ifdef HAVE_INET_SOCKETS
 #  include <netinet/in.h>
 # endif
@@ -510,7 +514,7 @@
 
     if (hUser32 = LoadLibrary ("user32.dll"))
       {
-        void (*set_fg)(DWORD);
+        FARPROC set_fg;
         if (set_fg = GetProcAddress (hUser32, "AllowSetForegroundWindow"))
           set_fg (atoi (pid));
         FreeLibrary (hUser32);
--- a/lib-src/makefile.w32-in	Tue Nov 21 01:10:47 2006 +0000
+++ b/lib-src/makefile.w32-in	Tue Nov 21 08:56:38 2006 +0000
@@ -26,13 +26,7 @@
 
 LOCAL_FLAGS	= -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
 		  -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \
-                  -I../src
-
-# don't know what (if) to do with these yet...
-#
-#		$(BLD)/server.exe	\
-#		$(BLD)/emacstool.exe	\
-#		$(BLD)/cvtmail.exe	\
+		  -I../src
 
 LIBS	      = $(BASE_LIBS) $(ADVAPI32)
 
@@ -58,7 +52,7 @@
 fakemail:	$(BLD) $(BLD)/fakemail.exe
 sorted-doc:	$(BLD) $(BLD)/sorted-doc.exe
 digest-doc:	$(BLD) $(BLD)/digest-doc.exe
-emacsclient:	$(BLD) $(BLD)/emacsclient.exe
+emacsclient:	$(BLD) $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
 
 test-distrib:	$(BLD) $(BLD)/test-distrib.exe
 	"$(BLD)/test-distrib.exe" "$(SRC)/testfile"
@@ -74,7 +68,7 @@
 # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
 		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)
 
-ECLIENT_CFLAGS = -DWINDOWSNT -DHAVE_GETCWD -DHAVE_STRERROR -c
+ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR
 ECLIENTOBJS =	$(BLD)/emacsclient.$(O) \
 		$(BLD)/getopt.$(O) \
 		$(BLD)/getopt1.$(O) \
@@ -84,8 +78,12 @@
 # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
 		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS)
 
+$(BLD)/emacsclientw.exe:	$(ECLIENTOBJS)
+# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
+		$(LINK) $(LINK_OUT)$@ -mwindows $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS)
+
 $(BLD)/emacsclient.$(O):	emacsclient.c
-		$(CC) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
+		$(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
 
 ETAGSOBJ      = $(BLD)/etags.$(O) \
 		$(BLD)/getopt.$(O) \
@@ -98,9 +96,9 @@
 
 
 EBROWSEOBJ    = $(BLD)/ebrowse.$(O) \
-                $(BLD)/getopt.$(O) \
-                $(BLD)/getopt1.$(O) \
-                $(BLD)/ntlib.$(O)
+		$(BLD)/getopt.$(O) \
+		$(BLD)/getopt1.$(O) \
+		$(BLD)/ntlib.$(O)
 
 $(BLD)/ebrowse.exe:     $(EBROWSEOBJ)
 		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(EBROWSEOBJ) $(LIBS)
@@ -131,14 +129,6 @@
 		$(CC) $(CFLAGS) $(CTAGS_CFLAGS) $(CC_OUT)$@ ctags.c
 
 #
-# don't know what to do with these yet...
-#
-# $(BLD)/emacstool.exe: 	$(BLD)/emacstool.$(O)
-# $(BLD)/server.exe: 		$(BLD)/server.$(O)
-# $(BLD)/cvtmail.exe: 		$(BLD)/cvtmail.$(O)
-# $(BLD)/emacsclient.exe: 	$(BLD)/emacsclient.$(O)
-
-#
 # From ..\src\Makefile.in
 # It doesn't matter if the real name is *.obj for the files in this list,
 # make-docfile blindly replaces .o with .c anyway.  Keep .o in this list
@@ -309,6 +299,7 @@
 		$(CP) $(BLD)/sorted-doc.exe $(INSTALL_DIR)/bin
 		$(CP) $(BLD)/digest-doc.exe $(INSTALL_DIR)/bin
 		$(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin
+		$(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin
 		- mkdir "$(INSTALL_DIR)/etc"
 		$(CP) $(DOC) $(INSTALL_DIR)/etc
 
@@ -364,9 +355,6 @@
 	$(SRC)/ntlib.h \
 	$(SRC)/getopt.h
 
-$(BLD)/cvtmail.$(O) : \
-	$(SRC)/cvtmail.c
-
 $(BLD)/digest-doc.$(O) : \
 	$(SRC)/digest-doc.c
 
@@ -376,10 +364,6 @@
 	$(EMACS_ROOT)/src/m/intel386.h \
 	$(EMACS_ROOT)/lib-src/../src/config.h
 
-$(BLD)/emacstool.$(O) : \
-	$(SRC)/emacstool.c \
-	$(EMACS_ROOT)/nt/inc/sys/file.h
-
 $(BLD)/etags.$(O) : \
 	$(SRC)/etags.c \
 	$(EMACS_ROOT)/nt/inc/sys/param.h \
@@ -441,7 +425,7 @@
 	$(EMACS_ROOT)/lib-src/../src/syswait.h \
 	$(EMACS_ROOT)/nt/inc/pwd.h \
 	$(SRC)/ntlib.h
-		$(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c
+	$(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c
 
 $(BLD)/ntlib.$(O) : \
 	$(SRC)/ntlib.c \
--- a/lisp/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,566 @@
+2006-11-21  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>  (tiny change)
+
+	* thingatpt.el (thing-at-point-url-at-point):  Don't add a
+	redundant scheme.
+
+2006-11-21  Diane Murray  <disumu@x3y2z1.net>  (tiny change)
+
+	* thingatpt.el (thing-at-point-uri-schemes): Added schemes that
+	are new to the list at IANA.  Also added irc, mms, mmsh.
+
+2006-11-20  J.D. Smith  <jdsmith@as.arizona.edu>
+
+	* progmodes/idlw-help.el (idlwave-html-help-location): Fail
+	gracefully for missing help packages.
+	(idlwave-help-assistant-open-link): Open full links.
+	(idlwave-help-assistant-help-with-topic): Direct help link.
+
+	* progmodes/idlwave.el (idlwave-mode): Set
+	add-log-current-defun-function.
+	(idlwave-current-routine-fullname): Added, to support add-log.
+	(idlwave-convert-xml-system-routine-info): Simplify XML parsing
+	to reflect improvements to xml-parse-file.
+	(idlwave-mode-menu-def): New binding for help-with-topic.
+
+	* progmodes/idlw-shell.el (idlwave-shell-filter-directory):
+	Handle extra newlines and spaces.
+	(idlwave-shell-mode-map): Add help-with-topic.
+
+2006-11-20  Chong Yidong  <cyd@stupidchicken.com>
+
+	* tutorial.el (tutorial-warning-face): New face.
+	(tutorial--detailed-help, tutorial--display-changes): Use it.
+	(tutorial--find-changed-keys): Check ESC-prefix binding specially.
+	Improve search pattern for occurrences of changed keys.
+
+2006-11-20  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* term/x-win.el (x-last-cut-buffer-coding): New variable.
+	(x-select-text): Set it.
+	(x-cut-buffer-or-selection-value): Check also x-last-cut-buffer-coding
+	when checking for newness.
+
+2006-11-19  Juanma Barranquero  <lekktu@gmail.com>
+
+	* subr.el (posn-image):
+	* progmodes/ebnf2ps.el (ebnf-stop-on-error): Fix typos in docstrings.
+
+	* emacs-lisp/regexp-opt.el (regexp-opt): Doc fix.
+
+2006-11-19  Micha,bk(Bl Cadilhac  <michael.cadilhac@lrde.org>
+
+	* progmodes/glasses.el (glasses-separate-parentheses-exceptions): New.
+	Exceptions to the rule "add a space between an identifier and an
+	opening parenthesis".  Defaulted to the `#define' problem of cpp.
+	(glasses-parenthesis-exception-p): New.	 Check if the region is an
+	exception regarding to that.
+	(glasses-make-readable): Use it.
+	(glasses-convert-to-unreadable): Ditto.	 Modify the file also if
+	`glasses-convert-on-write-p' and `glasses-separate-parentheses-p' are t.
+
+2006-11-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emacs-lisp/bytecomp.el (byte-compile-if): Revert last change.
+
+2006-11-19  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+	* progmodes/ada-mode.el (ada-make-body): Fix typo.
+
+	* progmodes/ada-xref.el (ada-make-body-gnatstub): Fix typo.
+	(ada-xref-initialize): Fix typo.  Use add-hook and remove-hook.
+
+2006-11-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emacs-lisp/bytecomp.el (byte-compile-maybe-guarded): Check `and'
+	conditions for function or variable bindings.
+
+	* comint.el (comint-exec-1): Set EMACS and INSIDE_EMACS to t.
+
+	* progmodes/compile.el (compilation-start): Ditto.
+
+2006-11-18  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (top): cl and custom are always required.
+
+2006-11-18  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* term/x-win.el (x-cut-buffer-or-selection-value): Decode text from
+	cut-buffers with next-selection-coding-system if not nil.
+
+2006-11-17  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (org-fix-decoded-time): New function.
+	(org-display-custom-time): Use `org-fix-decoded-time'.
+
+2006-11-17  Chong Yidong  <cyd@stupidchicken.com>
+
+	* menu-bar.el (menu-bar-games-menu): Remove yow.
+
+2006-11-17  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (org-scan-tags): Re-align code fixed.
+	(org-detach-overlay): Renamed from `org-detatch-overlay'.
+	(org-table-convert-region): Insert space after column separator.
+	(org-agenda-kill): New command.
+	(org-metaleft): Call `org-outdent-item' on bullets.
+	(org-metaright): Call `org-indent-item' on bullets.
+	(org-timestamp-change): Set `org-last-changed-timestamp'.
+	(org-current-line): Make sure (bolp) returns correct result.
+	(org-agenda-change-all-lines): Make sure TODO are highlighted.
+
+2006-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* pcvs.el (cvs-retrieve-revision): Set buffer-file-coding-system.
+
+2006-11-16  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mouse.el (global-map): Change 2006-08-16 fix to call
+	mouse-yank-at-click explicitly, since mouse events are not carried
+	over into keyboard macros.
+
+2006-11-16  Kim F. Storm  <storm@cua.dk>
+
+	* ido.el (ido-file-internal): Use current buffer's file name as	default
+	choice for ido-find-alternate-file.  Suggested by Matt Hodges.
+
+2006-11-15  Ken Manheimer  <ken.manheimer@gmail.com>
+
+	* allout.el (allout-doublecheck-at-and-shallower): Clarify docstring.
+	(allout-inhibit-aberrance-doublecheck): Rename from
+	allout-during-yank-processing.  All callers changed.
+	(allout-ascend): Provide for unusual case where some topic after
+	the first in file is at lower depth than the first.
+	(allout-shift-in): Ensure the offspring of the new containing
+	topic are exposed.
+	(allout-encrypt-string): Preserve the coding-system of the text,
+	according to that of the containing buffer.
+	(allout-toggle-subtree-encryption): When the text being encrypted
+	requires a different coding system, offer to preserve the coding
+	system using a file local var.
+
+2006-11-15  Simon Marshall  <simon@gnu.org>
+
+	* progmodes/cc-fonts.el (c-font-lock-declarators): Use c-at-toplevel-p
+	to recognise "T t()" as a function declaration, rather than a
+	variable instantiation, iff at the top-level or inside a class
+	declaration.  Suggested by Feng Li <fengli@gmail.com>.
+
+2006-11-14  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+	* progmodes/ada-xref.el (ada-parse-prj-file):
+	Don't delete project buffer; user may want to edit it.
+	(ada-xref-set-project-field, ada-xref-current-project-file)
+	(ada-xref-current-project, ada-show-current-project)
+	(ada-set-main-compile-application): New functions.
+	(ada-xref-get-project-field, ada-require-project-file):
+	Normalize use of ada-prj-default-project-file.
+	(ada-gdb-application, ada-get-ada-file-name, ada-make-body-gnatstub):
+	Normalize use of ada-require-project-file.
+	(ada-prj-find-prj-file): Improve doc string, comments.
+
+	* progmodes/ada-mode.el (ada-mode-version): Bump version.
+	(ada-create-keymap): Add \C-c\C-m 'ada-set-main-compile-application.
+	(ada-create-menu): Add ada-set-main-compile-application,
+	ada-show-current-main, ada-show-current-project.
+
+2006-11-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/python.el (inferior-python-mode-syntax-table): New var.
+	(inferior-python-mode): Use it.
+
+2006-11-14  Andreas Schwab  <schwab@suse.de>
+
+	* term/xterm.el (terminal-init-xterm): Add more key bindings.
+
+2006-11-13  Kim F. Storm  <storm@cua.dk>
+
+	* ido.el (ido-copy-current-word): C-o copies region if active.
+
+2006-11-13  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (org-emph-face): Fix typo in variable name.
+
+2006-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+	* ediff.el (ediff-revision):
+	* files.el (set-visited-file-name):
+	* mail/rmailout.el (rmail-output-body-to-file):
+	Use `format', not `message', in `y-or-n-p' call.
+
+2006-11-13  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (org-metaleft): Call `org-outdent-item' on bullets.
+	(org-metaright): Call `org-indent-item' on bullets.
+	(org-timestamp-change): Set `org-last-changed-timestamp'.
+	(org-current-line): Make sure (bolp) returns correct result.
+	(org-agenda-change-all-lines): Make sure highlighting TODO always works.
+
+2006-11-12  Richard Stallman  <rms@gnu.org>
+
+	* language/european.el (turkish-case-conversion-enable)
+	(turkish-case-conversion-disable): New functions.
+	("Turkish" lang env): Use them.
+
+	* international/characters.el (case table):
+	Do nothing special for i and I.
+
+	* subr.el (remove-overlays): Fix last change.
+
+	* cus-edit.el (custom-save-all): Use find-file-visit-truename
+	for visiting the custom file.
+
+2006-11-12  Markus Triska  <triska@gmx.at>
+
+	* play/handwrite.el (handwrite): Also process lines not ending
+	with newline.  Replace some position-fiddling with different
+	logic.  Improve performance.
+
+2006-11-12  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+	* progmodes/ada-xref.el (ada-prj-default-check-cmd): New variable,
+	replacing deleted variable `ada-check-switch'.
+	(ada-project-file-extension): Rename to `ada-prj-file-extension'.
+	(ada-xref-project-files): Improve doc string.
+	(ada-find-executable): New function.
+	(ada-initialize-runtime-library): Use `ada-find-executable'.
+	(ada-xref-set-default-prj-values): In compile commands, don't need
+	`ada-cd-command'; `compile' does that more portably.
+	Use ada-prj-default-check-cmd.
+	(ada-parse-prj-file): Don't set 'debug_post_cmd, 'debug_pre_cmd
+	properties if not specified in project file.
+	(ada-goto-declaration): Display useful message for new error
+	'error-file-not-found.
+	(ada-get-ada-file-name, ada-find-in-src-path): Signal new error
+	'error-file-not-found.
+	(ada-get-all-references): Match latest ali syntax.  Signal new
+	error 'error-file-not-found.
+	(ada-find-in-ali): Match latest ali syntax.
+	(ada-make-filename-from-adaname): Handle different semantics of
+	gnatkr in GNAT 3.15p vs later.
+
+	* progmodes/ada-stmt.el (ada-func-or-proc-name): Match changes to
+	ada-procedure-start-regexp.
+	(ada-or-accept, ada-or-delay, ada-or-terminate): Improve doc string.
+
+	* progmodes/ada-mode.el: Replace conditional (require 'ispell)
+	with defvar.
+	(ada-language-version): Rename ada05 -> ada2005.
+	(ada-align-region-separate): Add `eval-when-compile'.
+	(ada-name-regexp): Remove unneeded escapes in regexp character
+	alternative.
+	(ada-compile-goto-error-file-linenr-re): New constant.
+	(ada-matching-start-re): Handle additional cases `declare',
+	`procedure', `function'.
+	(ada-compile-goto-error): Handle "... at line nn".
+	(ada-mode): Clearer syntax, comments for ff-special-constructs.
+	Delete support for old versions of `align'.
+	(ada-search-prev-end-stmt): Handle additional keyword `private'.
+	(ada-check-defun-name): Simplify handling of `declare'.
+	(ada-goto-matching-start): Handle nested `begin ... end'. Handle
+	`declare', `protected', `procedure', `function'.
+	(ada-create-menu): Presence of arm95 is not conditional on using
+	GNAT compiler.
+
+2006-11-12  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacs-lisp/re-builder.el (reb-mode): Set `blink-matching-paren' to
+	nil in the *RE-Builder* buffer (it causes spurious error messages).
+
+	* server.el (server-visit-files): If `minibuffer-auto-raise' has
+	been set to t, respect it.
+
+2006-11-11  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+	* progmodes/ada-mode.el: Delete `eval-and-compile' around `require'.
+	Delete commented out code for old Emacs versions.  Autoloading of
+	"ada-xref", "ada-prj" is useful even if compiler is not GNAT.
+	(ada-mode-version): Bump version number.
+	(ada-95-string-keywords, ada-2005-string-keywords)
+	(ada-2005-keywords, ada-name-regexp): New constant.
+	(ada-language-version, ada-procedure-start-regexp, ada-mode)
+	(ada-font-lock-keywords): Add support for Ada 2005 keywords.
+	(ada-package-start-regexp): Support private packages, include package
+	name (for ada-set-point-accordingly).
+	(ada-next-procedure, ada-previous-procedure)
+	(ada-which-function-are-we-in): Match changes to
+	ada-procedure-start-regexp.
+	(ada-make-body): Make non-interactive; not a user function.
+	(ada-make-subprogram-body): Improve doc string.
+
+2006-11-11  Romain Francoise  <romain@orebokech.com>
+
+	* progmodes/cperl-mode.el (cperl-mode): Before adding to it, make
+	`compilation-error-regexp-alist' buffer-local, since we changed
+	`compilation-error-regexp-alist-alist' locally.
+
+2006-11-11  Juanma Barranquero  <lekktu@gmail.com>
+
+	* server.el (server-visit-files): Bind `minibuffer-auto-raise'
+	to the value of `server-raise-frame'.
+
+2006-11-11  Glenn Morris  <rgm@gnu.org>
+
+	* ido.el (ido-enable-prefix)
+	* ses.el (ses-call-printer-return)
+	* net/tramp.el (tramp-unified-filenames)
+	* progmodes/cc-align.el (c-lineup-string-cont)
+	* progmodes/compile.el (compilation-directory-matcher)
+	* progmodes/ebnf2ps.el (ebnf-stop-on-error)
+	* progmodes/vhdl-mode.el (vhdl-reset-active-high)
+	(vhdl-clock-rising-edge)
+	* textmodes/org.el (org-export-with-timestamps)
+	(org-export-remove-timestamps-from-toc)
+	(org-export-with-tags): Improve previous doc fixes.
+
+2006-11-11  Richard Stallman  <rms@gnu.org>
+
+	* textmodes/flyspell.el (flyspell-mode-map):
+	Bind C-c $ instead of M-RET.
+
+2006-11-10  Simon Marshall  <simon@gnu.org>
+
+	* progmodes/cc-fonts.el (c-font-lock-declarations): Don't overwrite
+	fontification for "case" and "default" keywords.
+
+2006-11-10  Andreas Schwab  <schwab@suse.de>
+
+	* calendar/cal-dst.el (calendar-dst-check-each-year-flag):
+	Avoid starting sentence with "nil".
+
+2006-11-10  Juanma Barranquero  <lekktu@gmail.com>
+
+	* server.el (server-raise-frame): New option.
+	(server-switch-buffer): Use it.
+
+2006-11-10  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-many-windows): Start doc string
+	with a capital.
+
+2006-11-10  Carsten Dominik  <carsten.dominik@gmail.com>
+
+	* textmodes/org.el (org-show-hierarchy-above)
+	(org-show-following-heading): Fixed typo in default value.
+	(org-scan-tags): Make the search case-sensitive.
+	(org-tags-sparse-tree): Don't overrule
+	`org-show-following-heading' and `org-show-hierarchy-above'.
+	(org-reveal): New command.
+	(org-show-context): Renamed from `org-show-hierarchy-above'.
+	(org-fast-tag-selection-single-key): New option.
+	(org-fast-tag-show-exit, org-set-current-tags-overlay): New
+	functions.
+	(org-tags-overlay): New variable.
+	(org-agenda-todo-ignore-deadlines): New option.
+	("session"): Add circular data structure `org-mark-ring' to
+	exceptions list in session.el.
+	(org-agenda-window-setup, org-agenda-restore-windows-after-quit):
+	New options.
+	(org-agenda-quit): Use `org-agenda-restore-windows-after-quit'.
+	(org-prepare-agenda, org-agenda-quit): Use
+	`org-agenda-window-setup'.
+	(org-pre-agenda-window-conf, org-blank-before-new-entry): New
+	variables.
+	(org-finalize-agenda): Activate bracket links in agenda.
+	(org-at-timestamp-p, org-at-date-range-p): Additional argument
+	INACTIVE-OK.
+	(org-show-hierarchy-above, org-show-following-heading): List
+	values allowed for fine-tuned configuration.
+	(org-show-hierarchy-above): New argument CONTEXT, use the
+	fine-tuned settings in `org-show-hierarchy-above' and
+	`org-show-following-heading'.
+	(org-display-custom-time): New function.
+	(org-toggle-time-stamp-overlays, org-insert-time-stamp): New
+	function.
+	(org-display-custom-times, org-time-stamp-custom-formats):
+	(org-maybe-intangible): New macro.
+	(org-activate-bracket-links, org-hide-wide-columns): Use
+	`org-maybe-intangible'.
+	(org-open-file): Use `shell-quote-argument'.
+	(org-display-internal-link-with-indirect-buffer): New option.
+	(org-file-remote-p): Get regexp from list.
+	(org-link-expand-abbrev): New function.
+	(org-link-abbrev-alist): New option.
+	(org-open-at-point, org-cleaned-string-for-export): Call
+	`org-link-expand-abbrev'.
+	(org-timeline, org-agenda-list, org-todo-list)
+	(org-tags-view): Remove the KEEP-MODES argument.
+	(org-finalize-agenda-hook): New hook.
+	(org-get-alist-option): New function.
+	(org-follow-timestamp-link): New function.
+	(org-open-at-point): Call `org-follow-timestamp-link'.
+	(org-log-note-marker, org-log-note-purpose)
+	(org-log-note-window-configuration): New variables.
+	(org-add-log-maybe, org-add-log-note, org-store-log-note): New
+	functions.
+	(org-log-note-headings): New option.
+	(org-dblock-write:clocktable): Bug fix, removed infinite loop.
+	(org-store-link): Support for dired-mode.
+	(org-open-file): Substitute environment variables into filename.
+	(org-last): New defsubst.
+	(org-agenda-re-align-tags): New function.
+	(org-agenda-align-tags-to-column): New option.
+	(org-agenda-timeline): Group removed.
+	(org-prepare-agenda, org-prepare-agenda-buffers)
+	(org-run-agenda-series, org-timeline, org-agenda-list)
+	(org-todo-list, org-tags-view): Call `org-agenda-prepare' and set
+	the text property inticating the agenda type.
+	(org-agenda-post-command-hook): Get agenda type from text property
+	at point.
+	(org-agenda): Handle command sets.  Set
+	`org-agenda-last-arguments' and obey
+	`org-agenda-overriding-arguments'.
+	(org-agenda-overriding-arguments, org-agenda-last-arguments): New
+	variables.
+	(org-agenda-goto-today, org-agenda-later, org-agenda-earlier)
+	(org-agenda-week-view, org-agenda-day-view): Use
+	`org-agenda-overriding-arguments' to make updating work with
+	multi-block agendas.
+	(org-agenda-prefix-format): Allow different formats for the
+	different agenda entry types.
+	(org-timeline-prefix-format): Option removed, use
+	`org-agenda-prefix-format' instead.
+	(org-prepare-agenda): New function.
+	(org-select-timeline-window): Option removed, use
+	`org-select-agenda-window' instead.
+	(org-respect-restriction): Variable removed.
+	(org-cmp-tag): New function.
+	(org-agenda-sorting-strategy, org-entries-lessp): Implement
+	sorting by last tag.
+	(org-complete): Better completion in in-buffer option lines.
+	(org-in-item-p): New function.
+	(org-org-menu): Added entries for checkboxes.
+	(org-cycle): Extra brouping in outline-regexp, because it is used
+	in a search with "^" prepended.
+	(org-provide-checkbox-statistics): New option.
+	(org-set-font-lock-defaults): Highlight checkbox statistics.
+	(org-update-checkbox-count-maybe)
+	(org-get-checkbox-statistics-face): New functions.
+	(org-update-checkbox-count): New command.
+	(org-insert-item, org-toggle-checkbox): Call
+	`org-update-checkbox-count-maybe'.
+	(org-export-as-html): XEmacs compatibility for coding system.
+	(org-force-cycle-archived): New command.
+	(org-cycle-hide-archived-subtrees): Display message when ARCHIVE
+	overrules cycling.
+	(org-fix-position-after-promote): If the line contains only a todo
+	keyword, add a final space.
+	(org-promote-subtree, org-demote-subtree): Call
+	`org-fix-position-after-promote'.
+
+2006-11-10  Glenn Morris  <rgm@gnu.org>
+
+	* calendar/cal-dst.el: Do not assume DST starts/ends on the same
+	date in every year.
+	(calendar-dst-check-each-year-flag): New customizable variable.
+	(calendar-dst-find-data): New function, extracted from
+	calendar-current-time-zone.
+	(calendar-current-time-zone): Use calendar-dst-find-data.
+	(calendar-dst-transition-cache): New variable.
+	(calendar-dst-find-startend, calendar-dst-starts)
+	(calendar-dst-ends): New functions.
+	(calendar-daylight-savings-starts)
+	(calendar-daylight-savings-ends): Change value to use
+	calendar-dst-starts, calendar-dst-ends; respectively.
+
+	* progmodes/f90.el (f90-indent-region): Bind case-fold-search to t.
+
+	* ido.el (ido-enable-prefix)
+	* ses.el (ses-call-printer-return)
+	* net/tramp.el (tramp-unified-filenames)
+	* progmodes/cc-align.el (c-lineup-string-cont)
+	* progmodes/compile.el (compilation-directory-matcher)
+	* progmodes/ebnf2ps.el (ebnf-stop-on-error)
+	* progmodes/gdb-ui.el (gdb-many-windows)
+	* progmodes/vhdl-mode.el (vhdl-reset-active-high)
+	(vhdl-clock-rising-edge)
+	* textmodes/org.el (org-export-with-timestamps)
+	(org-export-remove-timestamps-from-toc, org-export-with-tags)
+	(org-read-date): Doc fix (Nil -> nil).
+
+2006-11-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* term/x-win.el (x-select-text, x-cut-buffer-or-selection-value):
+	Encode/decode text to/from cut buffers to/from iso-latin-1 only.
+
+2006-11-10  Juanma Barranquero  <lekktu@gmail.com>
+
+	* bs.el (bs--window-for-buffer): Remove.
+	(bs--show-with-configuration): Use `get-window-with-predicate'
+	instead of `bs--window-for-buffer'.
+
+2006-11-10  Kenichi Handa  <handa@m17n.org>
+
+	* files.el (revert-buffer): Fix previous change.
+
+2006-11-09  Juanma Barranquero  <lekktu@gmail.com>
+
+	* bs.el (bs--redisplay): Fix typo in docstring.
+	(bs--window-config-coming-from): Make frame-local.
+	(bs--restore-window-config): New function.
+	(bs-kill, bs-select, bs-select-other-window)
+	(bs-select-other-frame): Use it.
+	(bs--window-for-buffer): Return as soon as a matching buffer is found.
+	(bs--show-with-configuration): Save the window configuration as a
+	frame local var, and only if *buffer-selection* is not already
+	visible on this frame.
+
+2006-11-08  Chong Yidong  <cyd@stupidchicken.com>
+
+	* vc-svn.el (vc-svn-admin-directory): New var.
+	(vc-svn-registered, vc-svn-responsible-p)
+	(vc-svn-repository-hostname): Use it.
+	Suggested by arit93@yahoo.com.
+
+2006-11-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* ldefs-boot.el: Regenerate.
+
+2006-11-08  Alan Mackenzie  <acm@muc.de>
+
+	* emacs-lisp/lisp.el (beginning-of-defun-raw): Code up the
+	case (eq open-paren-in-column-0-is-defun-start nil) by searching
+	for least nested open-paren.
+
+2006-11-08  Romain Francoise  <romain@orebokech.com>
+
+	* subr.el (remove-overlays): Fix typo in last change.
+
+2006-11-08  Richard Stallman  <rms@gnu.org>
+
+	* subr.el (remove-overlays): Call overlay-recenter.
+
+2006-11-08  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+	* printing.el (pr-alist-custom-set, pr-ps-utility-custom-set)
+	(pr-ps-name-custom-set, pr-txt-name-custom-set): Return back the old
+	behaviour.
+	(pr-menu-bind): Act on global-map instead of menu-bar-file-menu
+	directly.
+
+2006-11-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* ido.el (ido-ignore-extensions, ido-show-dot-for-dired)
+	(ido-max-dir-file-cache, ido-decorations)
+	(ido-rewrite-file-prompt-functions, ido-use-mycompletion-depth)
+	(ido-magic-backward-char, ido-enter-dired)
+	(ido-enter-insert-buffer, ido-enter-insert-file, ido-dired)
+	(ido-list-directory, ido-first-match, ido-only-match)
+	(ido-subdir, ido-indicator): Fix typos in docstrings.
+	(ido-buffer-internal, ido-completion-help): Fix typos in messages.
+	(ido-read-internal): Fix typo in error message.
+
+2006-11-08  Kenichi Handa  <handa@m17n.org>
+
+	* international/mule-cmds.el (set-default-coding-systems): Always
+	set default-file-name-coding-system to utf-8 for Mac Darwin.
+
+2006-11-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* makefile.w32-in (setwins): Remove.
+	(WINS_ALMOST): New macro.
+	(WINS): Use it.
+	(autoloads): Don't extract autoloads from files in obsolete/.
+
 2006-11-07  Chong Yidong  <cyd@stupidchicken.com>
 
 	* whitespace.el (whitespace-buffer): Call remove-overlays after
@@ -444,7 +1007,7 @@
 	(cal-html-cursor-year): Add autoloads for this new package.
 	(calendar-mode-map): Bind cal-html-cursor-month, cal-html-cursor-year.
 
-2006-10-28  Anna Bigatti  <bigatti@dima.unige.it>
+2006-10-28  Anna M. Bigatti  <bigatti@dima.unige.it>
 
 	* calendar/cal-html.el: New file.
 
@@ -487,6 +1050,16 @@
 	* midnight.el (midnight-buffer-display-time): Doc fix.
 	(clean-buffer-list-kill-never-buffer-names): Add "*server*".
 
+2006-10-23  Michael Kifer  <kifer@cs.stonybrook.edu>
+
+	* viper-cmd.el (viper-prefix-arg-com): Define gg as G0.
+
+	* viper-ex.el (ex-read): Quote file argument.
+
+	* ediff-diff.el (ediff-same-file-contents): Expand file names.
+
+	* ediff-mult.el (ediff-append-custom-diff): Quote shell file arguments.
+
 2006-10-22  Martin Rudalics  <rudalics@gmx.at>
 
 	* textmodes/flyspell.el (flyspell-check-region-doublons):
@@ -1279,7 +1852,7 @@
 	* progmodes/cperl-mode.el (cperl-after-expr-p): Don't move point
 	to nil if there is no previous property change.
 
-2006-09-26  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
+2006-09-29  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
 
 	* cus-edit.el (custom-save-all): Switch to emacs-lisp mode before
 	saving anything to be sure that `forward-sexp' behaves correctly.
@@ -3198,7 +3771,7 @@
 
 	* replace.el (replace-match-string-symbols): Handle dotted lists.
 
-2006-07-24  mathias  <mathias@mattis>
+2006-07-24  Mathias Dahl  <mathias.dahl@gmail.com>
 
 	* tumme.el (tumme-write-tags): Add.
 	(tumme-write-comments): Add.
@@ -3213,7 +3786,7 @@
 	(tumme-display-previous-thumbnail-original): Remove empty line.
 	(tumme-widget-list): Add punctuation.
 
-2006-07-24  mathias  <mathias.dahl@gmail.com>
+2006-07-24  Mathias Dahl  <mathias.dahl@gmail.com>
 
 	* tumme.el (tumme-line-up): Add an extra check for end of buffer.
 
@@ -28794,6 +29367,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 2005, 2006 Free Software Foundation, Inc.
--- a/lisp/allout.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/allout.el	Tue Nov 21 08:56:38 2006 +0000
@@ -895,14 +895,9 @@
   "Validate apparent topics of this depth and shallower as being non-aberrant.
 
 Verified with `allout-aberrant-container-p'.  This check's usefulness is
-limited to shallow prospects, because the determination of aberrance
-depends on the mistaken item being followed by a legitimate item of
-excessively greater depth.
-
-A level of 2 is safest, so that yanks, which must ignore
-aberrance while rectifying the yanked text to their new location,
-is least likely to be fooled by aberrant topics in the yanked
-text.")
+limited to shallow depths, because the determination of aberrance
+is according to the mistaken item being followed by a legitimate item of
+excessively greater depth.")
 ;;;_   X allout-reset-header-lead (header-lead)
 (defun allout-reset-header-lead (header-lead)
   "*Reset the leading string used to identify topic headers."
@@ -1511,13 +1506,18 @@
     (goto-char (cadr allout-after-save-decrypt))
     (setq allout-after-save-decrypt nil))
   )
-;;;_   = allout-during-yank-processing nil
-;; XXX allout yanks adjust the level of the topic being pasted to that of
-;; their target location.  aberrance must be inhibited to allow that
-;; reconciliation.  (this means that actually aberrant topics won't be
-;; treated specially while being pasted.)
-(defvar allout-during-yank-processing nil
-  "Internal state, inhibits aberrance doublecheck while adjusting yanks.")
+;;;_   = allout-inhibit-aberrance-doublecheck nil
+;; In some exceptional moments, disparate topic depths need to be allowed
+;; momentarily, eg when one topic is being yanked into another and they're
+;; about to be reconciled.  let-binding allout-inhibit-aberrance-doublecheck
+;; prevents the aberrance doublecheck to allow, eg, the reconciliation
+;; processing to happen in the presence of such discrepancies.  It should
+;; almost never be needed, however.
+(defvar allout-inhibit-aberrance-doublecheck nil
+  "Internal state, for momentarily inhibits aberrance doublecheck.
+
+This should only be momentarily let-bound non-nil, not set
+non-nil in a lasting way.")
 
 ;;;_ #2 Mode activation
 ;;;_  = allout-explicitly-deactivated
@@ -2212,7 +2212,7 @@
   (and
    ;; presume integrity of outline and yanked content during yank - necessary,
    ;; to allow for level disparity of yank location and yanked text:
-   (not allout-during-yank-processing)
+   (not allout-inhibit-aberrance-doublecheck)
    ;; allout-doublecheck-at-and-shallower is ceiling for doublecheck:
    (<= allout-recent-depth allout-doublecheck-at-and-shallower)))
 ;;;_     > allout-aberrant-container-p ()
@@ -2891,7 +2891,15 @@
   "Ascend one level, returning t if successful, nil if not."
   (prog1
       (if (allout-beginning-of-level)
-          (allout-previous-heading))
+          (let ((bolevel (point))
+                (bolevel-depth allout-recent-depth))
+            (allout-previous-heading)
+            (if (< allout-recent-depth bolevel-depth)
+                allout-recent-depth
+              ;; some topic after file's first is at lower depth than first:
+              (goto-char bolevel)
+              (allout-depth)
+              nil)))
     (if (interactive-p) (allout-end-of-prefix))))
 ;;;_   > allout-descend-to-depth (depth)
 (defun allout-descend-to-depth (depth)
@@ -3502,8 +3510,6 @@
 
 If OFFER-RECENT-BULLET is true, offer to use the bullet of the prior sibling.
 
-Runs
-
 Nuances:
 
 - Creation of new topics is with respect to the visible topic
@@ -4145,7 +4151,10 @@
                      (> (1+ current-depth)
                         (1+ predecessor-depth)))
                 (error (concat "Disallowed shift deeper than"
-                               " containing topic's children."))))))
+                               " containing topic's children."))
+              (allout-back-to-current-heading)
+              (if (< allout-recent-depth (1+ current-depth))
+                  (allout-show-children))))))
     (let ((where (point)))
       (allout-rebullet-topic 1 (and (> arg 1) 'sans-offspring))
       (run-hook-with-args 'allout-structure-shifted-hook arg where))))
@@ -4382,13 +4391,12 @@
 					; region around subject:
   (if (< (allout-mark-marker t) (point))
       (exchange-point-and-mark))
-  (let* ( ;; inhibit aberrance doublecheck while reconciling disparate pastes:
-         (allout-during-yank-processing t)
-         (subj-beg (point))
+  (let* ((subj-beg (point))
          (into-bol (bolp))
          (subj-end (allout-mark-marker t))
          ;; 'resituate' if yanking an entire topic into topic header:
-         (resituate (and (allout-e-o-prefix-p)
+         (resituate (and (let ((allout-inhibit-aberrance-doublecheck t))
+                           (allout-e-o-prefix-p))
                          (looking-at allout-regexp)
                          (allout-prefix-data)))
          ;; `rectify-numbering' if resituating (where several topics may
@@ -4396,7 +4404,7 @@
          (rectify-numbering (or resituate
                                 (and into-bol (looking-at allout-regexp)))))
     (if resituate
-                                        ; The yanked stuff is a topic:
+        ;; Yanking a topic into the start of a topic - reconcile to fit:
         (let* ((inhibit-field-text-motion t)
                (prefix-len (if (not (match-end 1))
                                1
@@ -4466,7 +4474,8 @@
                    (progn
                      (delete-region (point) (+ (point)
                                                prefix-len
-                                               (- adjust-to-depth subj-depth)))
+                                               (- adjust-to-depth
+                                                  subj-depth)))
                                         ; and delete residual subj
                                         ; prefix digits and space:
                      (while (looking-at "[0-9]") (delete-char 1))
@@ -5757,7 +5766,7 @@
                        " shift it in to make it encryptable")))
 
     (let* ((allout-buffer (current-buffer))
-           ;; Asses location:
+           ;; Assess location:
            (bullet-pos allout-recent-prefix-beginning)
            (after-bullet-pos (point))
            (was-encrypted
@@ -5791,7 +5800,29 @@
                       '(symmetric nil)))
            (for-key-type (car key-info))
            (for-key-identity (cadr key-info))
-           (fetch-pass (and fetch-pass (member fetch-pass '(16 (16))))))
+           (fetch-pass (and fetch-pass (member fetch-pass '(16 (16)))))
+           (was-coding-system buffer-file-coding-system))
+
+      (when (not was-encrypted)
+        ;; ensure that non-ascii chars pending encryption are noticed before
+        ;; they're encrypted, so the coding system is set to accomodate
+        ;; them.
+        (setq buffer-file-coding-system
+              (select-safe-coding-system subtree-beg subtree-end))
+        ;; if the coding system for the text being encrypted is different
+        ;; than that prevailing, then there a real risk that the coding
+        ;; system can't be noticed by emacs when the file is visited.  to
+        ;; mitigate that, offer to preserve the coding system using a file
+        ;; local variable.
+        (if (and (not (equal buffer-file-coding-system
+                             was-coding-system))
+                 (yes-or-no-p
+                  (format (concat "Register coding system %s as file local"
+                                  " var?  Necessary when only encrypted text"
+                                  " is in that coding system. ")
+                          buffer-file-coding-system)))
+            (allout-adjust-file-variable "buffer-file-coding-system"
+                                         buffer-file-coding-system)))
 
       (setq result-text
             (allout-encrypt-string subject-text was-encrypted
@@ -5880,6 +5911,10 @@
                                       target-prompt-id
                                     (or (buffer-file-name allout-buffer)
                                         target-prompt-id))))
+         (encoding (with-current-buffer allout-buffer
+                     buffer-file-coding-system))
+         (multibyte (with-current-buffer allout-buffer
+                     enable-multibyte-characters))
          (strip-plaintext-regexps
           (if (not decrypt)
               (allout-get-configvar-values
@@ -5916,6 +5951,13 @@
 
           (insert text)
 
+          ;; convey the text characteristics of the original buffer:
+          (set-buffer-multibyte multibyte)
+          (when encoding
+            (set-buffer-file-coding-system encoding)
+            (if (not decrypt)
+                (encode-coding-region (point-min) (point-max) encoding)))
+
           (when (and strip-plaintext-regexps (not decrypt))
             (dolist (re strip-plaintext-regexps)
               (let ((re (if (listp re) (car re) re))
--- a/lisp/bs.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/bs.el	Tue Nov 21 08:56:38 2006 +0000
@@ -446,6 +446,7 @@
 
 (defvar bs--window-config-coming-from nil
   "Window configuration before starting Buffer Selection Menu.")
+(make-variable-frame-local 'bs--window-config-coming-from)
 
 (defvar bs--intern-show-never "^ \\|\\*buffer-selection\\*"
   "Regular expression specifying which buffers never to show.
@@ -584,7 +585,7 @@
 (defun bs--redisplay (&optional keep-line-p sort-description)
   "Redisplay whole Buffer Selection Menu.
 If KEEP-LINE-P is non-nil the point will stay on current line.
-SORT-DESCRIPTION is an element of `bs-sort-functions'"
+SORT-DESCRIPTION is an element of `bs-sort-functions'."
   (let ((line (1+ (count-lines 1 (point)))))
     (bs-show-in-buffer (bs-buffer-list nil sort-description))
     (if keep-line-p
@@ -661,11 +662,17 @@
 	font-lock-verbose nil)
   (run-mode-hooks 'bs-mode-hook))
 
+(defun bs--restore-window-config ()
+  "Restore window configuration on the current frame."
+  (when bs--window-config-coming-from
+    (set-window-configuration bs--window-config-coming-from)
+    (setq bs--window-config-coming-from nil)))
+
 (defun bs-kill ()
   "Let buffer disappear and reset window-configuration."
   (interactive)
   (bury-buffer (current-buffer))
-  (set-window-configuration bs--window-config-coming-from))
+  (bs--restore-window-config))
 
 (defun bs-abort ()
   "Ding and leave Buffer Selection Menu without a selection."
@@ -685,17 +692,6 @@
   (interactive)
   (bs--redisplay t))
 
-(defun bs--window-for-buffer (buffer-name)
-  "Return a window showing a buffer with name BUFFER-NAME.
-Take only windows of current frame into account.
-Return nil if there is no such buffer."
-  (let ((window nil))
-    (walk-windows (lambda (wind)
-		    (if (string= (buffer-name (window-buffer wind))
-				 buffer-name)
-			(setq window wind))))
-    window))
-
 (defun bs--set-window-height ()
   "Change the height of the selected window to suit the current buffer list."
   (unless (one-window-p t)
@@ -736,7 +732,7 @@
   (interactive)
   (let ((buffer (bs--current-buffer)))
     (bury-buffer (current-buffer))
-    (set-window-configuration bs--window-config-coming-from)
+    (bs--restore-window-config)
     (switch-to-buffer buffer)
     (if bs--marked-buffers
 	;; Some marked buffers for selection
@@ -760,7 +756,7 @@
   (interactive)
   (let ((buffer (bs--current-buffer)))
     (bury-buffer (current-buffer))
-    (set-window-configuration bs--window-config-coming-from)
+    (bs--restore-window-config)
     (switch-to-buffer-other-window buffer)))
 
 (defun bs-tmp-select-other-window ()
@@ -776,7 +772,7 @@
   (interactive)
   (let ((buffer (bs--current-buffer)))
     (bury-buffer (current-buffer))
-    (set-window-configuration bs--window-config-coming-from)
+    (bs--restore-window-config)
     (switch-to-buffer-other-frame buffer)))
 
 (defun bs-mouse-select-other-frame (event)
@@ -1234,7 +1230,6 @@
 				(or (cdr bs--cycle-list)
 				    "this buffer"))))))
 
-
 ;;;###autoload
 (defun bs-cycle-previous ()
   "Select previous buffer defined by buffer cycling.
@@ -1426,17 +1421,20 @@
     (unless (string= "*buffer-selection*" (buffer-name))
       ;; Only when not in buffer *buffer-selection*
       ;; we have to set the buffer we started the command
-      (progn
-	(setq bs--buffer-coming-from (current-buffer))
-	(setq bs--window-config-coming-from (current-window-configuration))))
+      (setq bs--buffer-coming-from (current-buffer)))
     (let ((liste (bs-buffer-list))
-	  (active-window (bs--window-for-buffer "*buffer-selection*")))
+	  (active-window (get-window-with-predicate
+                          (lambda (w)
+                            (string= (buffer-name (window-buffer w))
+                                     "*buffer-selection*")))))
       (if active-window
 	  (select-window active-window)
-	(if (> (window-height (selected-window)) 7)
-	    (progn
-	      (split-window-vertically)
-	      (other-window 1))))
+        (modify-frame-parameters nil
+                                 (list (cons 'bs--window-config-coming-from
+                                             (current-window-configuration))))
+	(when (> (window-height (selected-window)) 7)
+          (split-window-vertically)
+          (other-window 1)))
       (bs-show-in-buffer liste)
       (bs-message-without-log "%s" (bs--current-config-message)))))
 
--- a/lisp/calendar/cal-dst.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/calendar/cal-dst.el	Tue Nov 21 08:56:38 2006 +0000
@@ -42,6 +42,16 @@
 (require 'calendar)
 (require 'cal-persia)
 
+(defcustom calendar-dst-check-each-year-flag t
+  "Non-nil means to check each year for DST transitions as needed.
+Otherwise assume the next two transitions found after the
+current date apply to all years.  This is faster, but not always
+correct, since the dates of Daylight Saving transitions sometimes
+change."
+  :type 'boolean
+  :version "22.1"
+  :group 'calendar)
+
 (defvar calendar-current-time-zone-cache nil
   "Cache for result of calendar-current-time-zone.")
 
@@ -199,6 +209,74 @@
 	  (cdr candidate-rules)))
     (car candidate-rules)))
 
+;; TODO it might be better to extract this information directly from
+;; the system timezone database. But cross-platform...?
+;; See thread
+;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html
+(defun calendar-dst-find-data (&optional time)
+  "Find data on the first Daylight Saving Time transitions after TIME.
+TIME defaults to `current-time'.  Return value is as described
+for `calendar-current-time-zone'."
+  (let* ((t0 (or time (current-time)))
+         (t0-zone (current-time-zone t0))
+         (t0-utc-diff (car t0-zone))
+         (t0-name (car (cdr t0-zone))))
+    (if (not t0-utc-diff)
+        ;; Little or no time zone information is available.
+        (list nil nil t0-name t0-name nil nil nil nil)
+      (let* ((t1 (calendar-next-time-zone-transition t0))
+             (t2 (and t1 (calendar-next-time-zone-transition t1))))
+        (if (not t2)
+            ;; This locale does not have daylight savings time.
+            (list (/ t0-utc-diff 60) 0 t0-name t0-name nil nil 0 0)
+          ;; Use heuristics to find daylight savings parameters.
+          (let* ((t1-zone (current-time-zone t1))
+                 (t1-utc-diff (car t1-zone))
+                 (t1-name (car (cdr t1-zone)))
+                 (t1-date-sec (calendar-absolute-from-time t1 t0-utc-diff))
+                 (t2-date-sec (calendar-absolute-from-time t2 t1-utc-diff))
+                 ;; TODO When calendar-dst-check-each-year-flag is non-nil,
+                 ;; the rules can be simpler than they currently are.
+                 (t1-rules (calendar-time-zone-daylight-rules
+                            (car t1-date-sec) t0-utc-diff))
+                 (t2-rules (calendar-time-zone-daylight-rules
+                            (car t2-date-sec) t1-utc-diff))
+                 (t1-time (/ (cdr t1-date-sec) 60))
+                 (t2-time (/ (cdr t2-date-sec) 60)))
+            (cons
+             (/ (min t0-utc-diff t1-utc-diff) 60)
+             (cons
+              (/ (abs (- t0-utc-diff t1-utc-diff)) 60)
+              (if (< t0-utc-diff t1-utc-diff)
+                  (list t0-name t1-name t1-rules t2-rules t1-time t2-time)
+                (list t1-name t0-name t2-rules t1-rules t2-time t1-time)
+                )))))))))
+
+(defvar calendar-dst-transition-cache nil
+  "Internal cal-dst variable storing date of Daylight Saving Time transitions.
+Value is a list with elements of the form (YEAR START END), where
+START and END are expressions that when evaluated return the
+start and end dates (respectively) for DST in YEAR. Used by the
+function `calendar-dst-find-startend'.")
+
+(defun calendar-dst-find-startend (year)
+  "Find the dates in YEAR on which Daylight Saving Time starts and ends.
+Returns a list (YEAR START END), where START and END are
+expressions that when evaluated return the start and end dates,
+respectively. This function first attempts to use pre-calculated
+data from `calendar-dst-transition-cache', otherwise it calls
+`calendar-dst-find-data' (and adds the results to the cache)."
+  (let ((e (assoc year calendar-dst-transition-cache))
+        f)
+    (or e
+        (progn
+          (setq e (calendar-dst-find-data (encode-time 1 0 0 1 1 year))
+                f (nth 4 e)
+                e (list year f (nth 5 e))
+                calendar-dst-transition-cache
+                (append calendar-dst-transition-cache (list e)))
+          e))))
+
 (defun calendar-current-time-zone ()
   "Return UTC difference, dst offset, names and rules for current time zone.
 
@@ -226,42 +304,8 @@
 Some operating systems cannot provide all this information to Emacs; in this
 case, `calendar-current-time-zone' returns a list containing nil for the data
 it can't find."
-  (or
-   calendar-current-time-zone-cache
-   (setq
-    calendar-current-time-zone-cache
-    (let* ((t0 (current-time))
-	   (t0-zone (current-time-zone t0))
-	   (t0-utc-diff (car t0-zone))
-	   (t0-name (car (cdr t0-zone))))
-      (if (not t0-utc-diff)
-	  ;; Little or no time zone information is available.
-	  (list nil nil t0-name t0-name nil nil nil nil)
-	(let* ((t1 (calendar-next-time-zone-transition t0))
-	       (t2 (and t1 (calendar-next-time-zone-transition t1))))
-	  (if (not t2)
-	      ;; This locale does not have daylight savings time.
-	      (list (/ t0-utc-diff 60) 0 t0-name t0-name nil nil 0 0)
-	    ;; Use heuristics to find daylight savings parameters.
-	    (let* ((t1-zone (current-time-zone t1))
-		   (t1-utc-diff (car t1-zone))
-		   (t1-name (car (cdr t1-zone)))
-		   (t1-date-sec (calendar-absolute-from-time t1 t0-utc-diff))
-		   (t2-date-sec (calendar-absolute-from-time t2 t1-utc-diff))
-		   (t1-rules (calendar-time-zone-daylight-rules
-			      (car t1-date-sec) t0-utc-diff))
-		   (t2-rules (calendar-time-zone-daylight-rules
-			      (car t2-date-sec) t1-utc-diff))
-		   (t1-time (/ (cdr t1-date-sec) 60))
-		   (t2-time (/ (cdr t2-date-sec) 60)))
-	      (cons
-	       (/ (min t0-utc-diff t1-utc-diff) 60)
-	       (cons
-		(/ (abs (- t0-utc-diff t1-utc-diff)) 60)
-		(if (< t0-utc-diff t1-utc-diff)
-		    (list t0-name t1-name t1-rules t2-rules t1-time t2-time)
-		    (list t1-name t0-name t2-rules t1-rules t2-time t1-time)
-		    )))))))))))
+  (unless calendar-current-time-zone-cache
+    (setq calendar-current-time-zone-cache (calendar-dst-find-data))))
 
 ;;; The following eight defvars relating to daylight savings time should NOT be
 ;;; marked to go into loaddefs.el where they would be evaluated when Emacs is
@@ -293,12 +337,32 @@
   "*Abbreviated name of daylight-savings time zone at `calendar-location-name'.
 For example, \"EDT\" in New York City, \"PDT\" for Los Angeles.")
 
+
+(defun calendar-dst-starts (year)
+  "Return the date of YEAR on which Daylight Saving Time starts.
+This function respects the value of `calendar-dst-check-each-year-flag'."
+  (or (let ((expr (if calendar-dst-check-each-year-flag
+                      (cadr (calendar-dst-find-startend year))
+                    (nth 4 calendar-current-time-zone-cache))))
+        (if expr (eval expr)))
+      (and (not (zerop calendar-daylight-time-offset))
+           (calendar-nth-named-day 1 0 4 year))))
+
+(defun calendar-dst-ends (year)
+  "Return the date of YEAR on which Daylight Saving Time ends.
+This function respects the value of `calendar-dst-check-each-year-flag'."
+  (or (let ((expr (if calendar-dst-check-each-year-flag
+                      (nth 2 (calendar-dst-find-startend year))
+                    (nth 5 calendar-current-time-zone-cache))))
+        (if expr (eval expr)))
+      (and (not (zerop calendar-daylight-time-offset))
+           (calendar-nth-named-day -1 0 10 year))))
+
+
 ;;;###autoload
 (put 'calendar-daylight-savings-starts 'risky-local-variable t)
 (defvar calendar-daylight-savings-starts
-  (or (car (nthcdr 4 calendar-current-time-zone-cache))
-      (and (not (zerop calendar-daylight-time-offset))
-	   '(calendar-nth-named-day 1 0 4 year)))
+  '(calendar-dst-starts year)
   "*Sexp giving the date on which daylight savings time starts.
 This is an expression in the variable `year' whose value gives the Gregorian
 date in the form (month day year) on which daylight savings time starts.  It is
@@ -319,9 +383,7 @@
 ;;;###autoload
 (put 'calendar-daylight-savings-ends 'risky-local-variable t)
 (defvar calendar-daylight-savings-ends
-  (or (car (nthcdr 5 calendar-current-time-zone-cache))
-      (and (not (zerop calendar-daylight-time-offset))
-	   '(calendar-nth-named-day -1 0 10 year)))
+  '(calendar-dst-ends year)
   "*Sexp giving the date on which daylight savings time ends.
 This is an expression in the variable `year' whose value gives the Gregorian
 date in the form (month day year) on which daylight savings time ends.  It is
--- a/lisp/comint.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/comint.el	Tue Nov 21 08:56:38 2006 +0000
@@ -769,7 +769,8 @@
 	    (list "TERM=emacs"
 		  (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
 	  (unless (getenv "EMACS")
-	    (list (concat "EMACS=" invocation-directory invocation-name)))
+	    (list "EMACS=t"))
+	  (list "INSIDE_EMACS=t")
 	  process-environment))
 	(default-directory
 	  (if (file-accessible-directory-p default-directory)
--- a/lisp/cus-edit.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/cus-edit.el	Tue Nov 21 08:56:38 2006 +0000
@@ -4193,7 +4193,8 @@
 					    "\\'")
 				    recentf-exclude)))
 	 (old-buffer (find-buffer-visiting filename)))
-    (with-current-buffer (or old-buffer (find-file-noselect filename))
+    (with-current-buffer (let ((find-file-visit-truename t))
+			   (or old-buffer (find-file-noselect filename)))
       (unless (eq major-mode 'emacs-lisp-mode)
 	(emacs-lisp-mode))
       (let ((inhibit-read-only t))
--- a/lisp/ediff.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/ediff.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1401,8 +1401,8 @@
 				'no-dirs)))
   (find-file file)
   (if (and (buffer-modified-p)
-	   (y-or-n-p (message "Buffer %s is modified. Save buffer? "
-			      (buffer-name))))
+	   (y-or-n-p (format "Buffer %s is modified. Save buffer? "
+                             (buffer-name))))
       (save-buffer (current-buffer)))
   (let (rev1 rev2)
     (setq rev1
--- a/lisp/emacs-lisp/lisp.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/emacs-lisp/lisp.el	Tue Nov 21 08:56:38 2006 +0000
@@ -208,22 +208,64 @@
 
 If variable `beginning-of-defun-function' is non-nil, its value
 is called as a function to find the defun's beginning."
-  (interactive "p")
-  (if beginning-of-defun-function
-      (if (> (setq arg (or arg 1)) 0)
-	  (dotimes (i arg)
-	    (funcall beginning-of-defun-function))
-	;; Better not call end-of-defun-function directly, in case
-	;; it's not defined.
-	(end-of-defun (- arg)))
-    (and arg (< arg 0) (not (eobp)) (forward-char 1))
+  (interactive "p") ; change this to "P", maybe, if we ever come to pass ARG
+		    ; to beginning-of-defun-function.
+  (unless arg (setq arg 1))		; The call might not be interactive.
+  (cond
+   (beginning-of-defun-function
+    (if (> arg 0)
+	(dotimes (i arg)
+	  (funcall beginning-of-defun-function))
+      ;; Better not call end-of-defun-function directly, in case
+      ;; it's not defined.
+      (end-of-defun (- arg))))
+
+   ((or defun-prompt-regexp open-paren-in-column-0-is-defun-start)
+    (and (< arg 0) (not (eobp)) (forward-char 1))
     (and (re-search-backward (if defun-prompt-regexp
 				 (concat (if open-paren-in-column-0-is-defun-start
 					     "^\\s(\\|" "")
 					 "\\(?:" defun-prompt-regexp "\\)\\s(")
 			       "^\\s(")
-			     nil 'move (or arg 1))
-	 (progn (goto-char (1- (match-end 0)))) t)))
+			     nil 'move arg)
+	 (progn (goto-char (1- (match-end 0)))) t))
+
+   (t
+    ;; Column 0 has no significance - so scan forward from BOB to see how
+    ;; nested point is, then carry on from there.
+    (let* ((floor (point-min))
+	   (ceiling (point-max))
+	   (pps-state (let (syntax-begin-function
+			    font-lock-beginning-of-syntax-function)
+			(syntax-ppss)))
+	   (nesting-depth (nth 0 pps-state)))
+      (save-restriction
+	(widen)
+	;; Get outside of any string or comment.
+	(if (nth 8 pps-state)
+	    (goto-char (nth 8 pps-state)))
+
+	(cond
+	 ((> arg 0)
+	  (when (> nesting-depth 0)
+	    (up-list (- nesting-depth))
+	    (setq arg (1- arg)))
+	  ;; We're now outside of any defun.
+	  (backward-list arg)
+	  (if (< (point) floor) (goto-char floor)))
+
+	 ((< arg 0)
+	  (cond
+	   ((> nesting-depth 0)
+	    (up-list nesting-depth)
+	    (setq arg (1+ arg)))
+	   ((not (looking-at "\\s("))
+	    ;; We're between defuns, and not at the start of one.
+	    (setq arg (1+ arg))))
+	  (forward-list (- arg))
+	  (down-list)
+	  (backward-char)
+	  (if (> (point) ceiling) (goto-char ceiling)))))))))
 
 (defvar end-of-defun-function nil
   "If non-nil, function for function `end-of-defun' to call.
--- a/lisp/emacs-lisp/re-builder.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/emacs-lisp/re-builder.el	Tue Nov 21 08:56:38 2006 +0000
@@ -253,6 +253,7 @@
   (kill-all-local-variables)
   (setq major-mode 'reb-mode
         mode-name "RE Builder")
+  (set (make-local-variable 'blink-matching-paren) nil)
   (use-local-map reb-mode-map)
   (reb-mode-common)
   (run-mode-hooks 'reb-mode-hook))
--- a/lisp/emacs-lisp/regexp-opt.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/emacs-lisp/regexp-opt.el	Tue Nov 21 08:56:38 2006 +0000
@@ -88,7 +88,7 @@
 
 ;;;###autoload
 (defun regexp-opt (strings &optional paren)
-  "Return a regexp to match a string in STRINGS.
+  "Return a regexp to match a string in the list STRINGS.
 Each string should be unique in STRINGS and should not contain any regexps,
 quoted or not.  If optional PAREN is non-nil, ensure that the returned regexp
 is enclosed by at least one regexp grouping construct.
--- a/lisp/erc/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,32 @@
+2006-11-20  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-version-string): Call this Version 5.2 stable
+	pre-release, since it diverges slightly from our 5.2 branch, in
+	that unstable features are not included.
+	(erc-update-modules): Display better error message when module not
+	found.
+
+2006-11-12  Michael Olson  <mwolson@gnu.org>
+
+	* erc-log.el: Save all log buffers when Emacs exits, in case
+	someone ignores the warning about open processes.  Remove the
+	advice code in the commentary.
+	(erc-save-query-buffers): Docfix.
+	(erc-log-save-all-buffers): New function that saves all ERC
+	buffers to logs.
+	(erc-current-logfile): Fix bug in filename selection, where the
+	current buffer was erroneously being preferred over the given
+	buffer.
+
+2006-11-08  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-string-to-port): Avoid error when a numerical port
+	is passed.  Thanks to Zekeriya KOÇ for the report.
+
+2006-11-08  Åukasz Demianiuk  <ldemianiuk@gmail.com>  (tiny change)
+
+	* erc.el (erc-header-line): Fix typo.
+
 2006-11-06  Juanma Barranquero  <lekktu@gmail.com>
 
 	* erc-dcc.el (erc-dcc-send-file): Fix typo in error message.
@@ -6,11 +35,168 @@
 	* erc-autoaway.el (erc-autoaway-reestablish-idletimer):
 	* erc-truncate.el (truncate): Fix typo in docstring.
 
+2006-10-21  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-iswitchb): Fix bug when hitting C-c C-b without
+	first loading iswitchb.  Thanks to Leo for the report.
+
+2006-10-10  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-default-port): Make the default be 6667 instead of
+	ircd. since Mac OS X apparently has problems with looking up that
+	port name.
+
+	* erc-backend.el (353): Receive names after displaying the initial
+	message, instead of before.
+
+2006-10-05  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc.el (erc-my-nick-face): New face.
+	(erc): Use FULL-NAME argument, not `erc-user-full-name'.  This
+	fixes a bug where the :full-name argument passed to the function
+	was not respected.
+	(erc-format-my-nick): Use `erc-my-nick-face'.  This should help
+	make it easier to find messages you sent in conversations when
+	`erc-show-my-nick' is non-nil.
+	(erc-compute-server): Doc fix.
+
+2006-09-11  Michael Olson  <mwolson@gnu.org>
+
+	* erc-nicklist.el (erc-nicklist-insert-contents): Add missing
+	parenthesis.  Thanks to Stephan Stahl for the report.
+
+2006-09-10  Eric Hanchrow  <offby1@blarg.net>
+
+	* erc.el (erc-cmd-IGNORE): Prompt user if this might be a regexp
+	instead of a single user.
+
+2006-09-10  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-generate-new-buffer-name): If this is a server
+	buffer and a process exists already, create a new buffer.
+	(erc-open): If the IRC session was continued, restore the old
+	point.  Thanks to Stephan Stahl for the report.
+	(erc-member-ignore-case): Coding style tweak.
+	(erc-cmd-UNIGNORE): Quote the user before comparison.  If we don't
+	find the user listed verbatim, try to match them against the list
+	using string-match.  In this case, prompt as to whether the regexp
+	should be removed.
+	(erc-ignored-user-p): Remove CL-ism.
+
+	* erc-autoaway.el (erc-autoaway-possibly-set-away): Check to see
+	whether we are already away.
+
+	* erc-menu.el: Fix potential compiler warning.
+
+2006-09-07  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc.el: Updated Commentary and URL.
+	(erc-iswitchb, erc-display-line, erc-set-modes, erc-update-modes)
+	(erc-arrange-session-in-multiple-windows): No need to check if
+	`erc-server-process' is bound.
+	(erc-server-buffer-live-p): Doc fix.
+	(erc-part-from-channel): Don't use any initial contents at prompt.
+	(erc-format-nick, erc-format-@nick): Doc fix.  Use `when'.
+	(s367): Fixed to support only banmask and channel which is the
+	standard.  Also, there's no reason to add a message to each banned
+	user entry trying to persuade the user to use /banlist instead of
+	/mode #channel +b.  That part of the message was a little
+	confusing, anyways.
+	(s367-set-by): New catalog entry.  The user who set the ban and
+	the time of ban seem to be specific to only certain servers such
+	as freenode.
+
+	* erc-autoaway.el (erc-autoaway-idletimer): Doc fix.
+
+	* erc-backend.el (erc-server-process-alive): No need to check if
+	`erc-server-process' is bound.
+	(367): Use s367 or s367-set-by where appropriate.
+
+	* erc-compat.el: Fixed URL.
+
+	* erc-dcc.el: Updated copyright years.  Added Usage section.
+	Changed supported Emacs version number from 21.3.50 to 22 in
+	Commentary.
+
+	* erc-ibuffer.el (erc-server-name, erc-target, erc-away): No need
+	to check if `erc-server-process' is bound.
+
+	* erc-nicklist.el: Added to the Commentary section an explanation
+	that `erc-nicklist-quit' should be called from within the nicklist
+	buffer.  Set file coding to utf-8 so a contributor's name is
+	displayed correctly.
+	(erc-nicklist-icons-directory): Use customize type directory
+	instead of string.
+	(erc-nicklist-insert-contents): Set bbdb-nick to an empty string
+	if it wasn't found.  This fixes a bug where an error would occur
+	when using `string=' on bbdb-nick if it was nil.
+
+	* erc-replace.el: Removed URL from file information since it
+	doesn't exist.
+
+	* erc-sound.el: Updated copyright years.  Fixed Commentary and
+	added Usage section.
+	(define-erc-module): Add and remove `erc-ctcp-query-SOUND' to
+	`erc-ctcp-query-SOUND-hook' here.  Removed the keybinding
+	definitions.
+	(erc-play-sound, erc-default-sound, erc-cmd-SOUND)
+	(erc-ctcp-query-SOUND): Doc fix.
+	(erc-play-command): Removed, not necessary anymore.
+	(erc-ctcp-query-SOUND-hook): Set to nil as default.  Moved up
+	higher in code, added docstring.
+	(erc-play-sound): Use `play-sound-file'.  It exists in GNU Emacs
+	as well since version 21 or earlier.  Removed commented-out older
+	version of function.
+
+	* NEWS: Fixed formatting, added channel tracking change.
+
+2006-09-03  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc.el: M-x erc RET can now be used to start ERC.
+	(erc-open): Renamed from `erc'.
+	(erc-before-connect): Change erc-select to erc.
+	(erc): Renamed from `erc-select'.  Use `erc-open'.
+	(erc-select): Defined as alias of `erc'.
+	(erc-ssl): Renamed from `erc-select-ssl'.  Use `erc'.
+	(erc-select-ssl): Defined as alias of `erc-ssl'.
+	(erc-cmd-SERVER): Use `erc'.
+	(erc-query, erc-handle-irc-url): Use `erc-open'.
+
+	* erc-backend.el (erc-process-sentinel-1, JOIN): Use `erc-open'.
+
+	* erc-menu.el (erc-menu-definition): Use `erc'.
+
+	* erc-networks.el: Updated copyright years.
+	(erc-server-select): Use keyword arguments when calling `erc'.
+
+	* erc.texi (Getting Started, Connecting): Changed erc-select to
+	erc.
+
+	* NEWS: Added note about these changes.
+
+2006-08-21  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-track.el (erc-track-mode-line-mouse-face): New variable.
+	(erc-make-mode-line-buffer-name): Add help-echo and mouse-face
+	properties to channel name.
+
+2006-08-14  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-menu.el: Updated copyright years.  Removed EmacsWiki URL.
+	(erc-menu-definition): Name the menu "ERC" instead of "IRC" to
+	avoid confusion with rcirc and other clients.
+
 2006-08-13  Romain Francoise  <romain@orebokech.com>
 
 	* erc-match.el (erc-log-matches-make-buffer): End `y-or-n-p'
 	prompt with a space.
 
+2006-08-11  Michael Olson  <mwolson@gnu.org>
+
+	* erc-fill.el (erc-fill): Skip any initial empty lines so that we
+	avoid errors when inserting disconnect messages and other messages
+	that begin with newlines.
+
 2006-08-07  Michael Olson  <mwolson@gnu.org>
 
 	* erc-backend.el (erc-process-sentinel-1): Use erc-display-message
@@ -28,6 +214,9 @@
 
 2006-08-06  Michael Olson  <mwolson@gnu.org>
 
+	* erc-backend.el (erc-server-send-queue): Update from Circe
+	version of this function.
+
 	* erc.el (erc-arrange-session-in-multiple-windows): Fix bug with
 	multi-tty Emacs.
 	(erc-select-startup-file): Fix bug introduced by recent change.
@@ -871,6 +1060,7 @@
 
 ;; Local Variables:
 ;; coding: utf-8
+;; add-log-time-zone-rule: t
 ;; End:
 
 ;; arch-tag: 865a75f6-2bcb-46df-bf0c-b514dadf688a
--- a/lisp/erc/erc-autoaway.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-autoaway.el	Tue Nov 21 08:56:38 2006 +0000
@@ -38,7 +38,7 @@
 
 (defvar erc-autoaway-idletimer nil
   "The Emacs idletimer.
-This is only used when `erc-autoaway-use-emacs-idle' is non-nil.")
+This is only used when `erc-autoaway-idle-method' is set to 'emacs.")
 
 ;;;###autoload (autoload 'erc-autoaway-mode "erc-autoaway")
 (define-erc-module autoaway nil
@@ -206,6 +206,7 @@
   ;; this function is called from `erc-timer-hook', which is called
   ;; whenever the server sends something to the client.
   (when (and erc-auto-set-away
+	     (not erc-autoaway-caused-away)
 	     (not (erc-away-p)))
     (let ((idle-time (erc-time-diff erc-autoaway-last-sent-time
 				    current-time)))
--- a/lisp/erc/erc-backend.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-backend.el	Tue Nov 21 08:56:38 2006 +0000
@@ -416,7 +416,7 @@
 
 (defun erc-server-process-alive ()
   "Return non-nil when `erc-server-process' is open or running."
-  (and (boundp 'erc-server-process)
+  (and erc-server-process
        (processp erc-server-process)
        (memq (process-status erc-server-process) '(run open))))
 
@@ -512,8 +512,8 @@
              (not (string-match "^failed with code 111" event)))
         ;; Yuck, this should perhaps funcall
         ;; erc-server-reconnect-function with no args
-        (erc erc-session-server erc-session-port erc-server-current-nick
-             erc-session-user-full-name t erc-session-password)
+        (erc-open erc-session-server erc-session-port erc-server-current-nick
+                  erc-session-user-full-name t erc-session-password)
       ;; terminate, do not reconnect
       (erc-display-message nil 'error (current-buffer)
                            'terminated ?e event))))
@@ -673,7 +673,8 @@
               (error nil)))))
       (when erc-server-flood-queue
         (setq erc-server-flood-timer
-              (run-at-time 2 nil #'erc-server-send-queue buffer))))))
+              (run-at-time (+ 0.2 erc-server-flood-penalty)
+                           nil #'erc-server-send-queue buffer))))))
 
 (defun erc-message (message-command line &optional force)
   "Send LINE to the server as a privmsg or a notice.
@@ -1038,11 +1039,11 @@
         (let* ((str (cond
                      ;; If I have joined a channel
                      ((erc-current-nick-p nick)
-                      (setq buffer (erc erc-session-server erc-session-port
-                                        nick erc-session-user-full-name
-                                        nil nil
-                                        erc-default-recipients chnl
-                                        erc-server-process))
+                      (setq buffer (erc-open erc-session-server erc-session-port
+                                             nick erc-session-user-full-name
+                                             nil nil
+                                             erc-default-recipients chnl
+                                             erc-server-process))
                       (when buffer
                         (set-buffer buffer)
                         (erc-add-default-channel chnl)
@@ -1583,11 +1584,11 @@
   "NAMES notice." nil
   (let ((channel (third (erc-response.command-args parsed)))
         (users (erc-response.contents parsed)))
-    (erc-with-buffer (channel proc)
-      (erc-channel-receive-names users))
     (erc-display-message parsed 'notice (or (erc-get-buffer channel proc)
                                             'active)
-                         's353 ?c channel ?u users)))
+                         's353 ?c channel ?u users)
+    (erc-with-buffer (channel proc)
+      (erc-channel-receive-names users))))
 
 (define-erc-response-handler (366)
   "End of NAMES." nil
@@ -1598,11 +1599,16 @@
   "Channel ban list entries" nil
   (multiple-value-bind (channel banmask setter time)
       (cdr (erc-response.command-args parsed))
-    (erc-display-message parsed 'notice 'active 's367
-                         ?c channel
-                         ?b banmask
-                         ?s setter
-                         ?t time)))
+    ;; setter and time are not standard
+    (if setter
+        (erc-display-message parsed 'notice 'active 's367-set-by
+                             ?c channel
+                             ?b banmask
+                             ?s setter
+                             ?t (or time ""))
+      (erc-display-message parsed 'notice 'active 's367
+                           ?c channel
+                           ?b banmask))))
 
 (define-erc-response-handler (368)
   "End of channel ban list" nil
--- a/lisp/erc/erc-compat.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-compat.el	Tue Nov 21 08:56:38 2006 +0000
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <alex@gnu.org>
-;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?EmacsIRCClient
+;; URL: http://www.emacswiki.org/cgi-bin/wiki/ERC
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/erc/erc-dcc.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-dcc.el	Tue Nov 21 08:56:38 2006 +0000
@@ -35,7 +35,9 @@
 ;; rewritten to support the way how ERC operates.  Server socket support
 ;; was added for DCC CHAT and SEND afterwards.  Thanks
 ;; to the original authors for their work.
-;;
+
+;;; Usage:
+
 ;; To use this file, put
 ;;  (require 'erc-dcc)
 ;; in your .emacs.
@@ -49,7 +51,7 @@
 ;;  /dcc send nick file - Offer DCC SEND to nick
 ;;
 ;; Please note that offering DCC connections (offering chats and sending
-;; files) is only supported with Emacs 21.3.50 (CVS).
+;; files) is only supported with Emacs 22.
 
 ;;; Code:
 
--- a/lisp/erc/erc-fill.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-fill.el	Tue Nov 21 08:56:38 2006 +0000
@@ -122,7 +122,15 @@
 You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'."
   (unless (erc-string-invisible-p (buffer-substring (point-min) (point-max)))
     (when erc-fill-function
-      (funcall erc-fill-function))))
+      ;; skip initial empty lines
+      (goto-char (point-min))
+      (save-match-data
+        (while (and (looking-at "[ \t\n]*$")
+                    (= (forward-line 1) 0))))
+      (unless (eobp)
+        (save-restriction
+          (narrow-to-region (point) (point-max))
+          (funcall erc-fill-function))))))
 
 (defun erc-fill-static ()
   "Fills a text such that messages start at column `erc-fill-static-center'."
--- a/lisp/erc/erc-ibuffer.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-ibuffer.el	Tue Nov 21 08:56:38 2006 +0000
@@ -91,14 +91,14 @@
     " "))
 
 (define-ibuffer-column erc-server-name (:name "Server")
-  (if (and (boundp 'erc-server-process) (processp erc-server-process))
+  (if (and erc-server-process (processp erc-server-process))
       (with-current-buffer (process-buffer erc-server-process)
 	(or erc-server-announced-name erc-session-server))
     ""))
 
 (define-ibuffer-column erc-target (:name "Target")
   (if (eq major-mode 'erc-mode)
-      (cond ((and (boundp 'erc-server-process) (processp erc-server-process)
+      (cond ((and erc-server-process (processp erc-server-process)
 		  (eq (current-buffer) (process-buffer erc-server-process)))
 	     (concat "Server " erc-session-server ":"
 		     (erc-port-to-string erc-session-port)))
@@ -125,7 +125,7 @@
     ""))
 
 (define-ibuffer-column erc-away (:name "A")
-  (if (and (boundp 'erc-server-process)
+  (if (and erc-server-process
 	   (processp erc-server-process)
 	   (with-current-buffer (process-buffer erc-server-process)
 	     erc-away))
--- a/lisp/erc/erc-log.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-log.el	Tue Nov 21 08:56:38 2006 +0000
@@ -43,14 +43,6 @@
 ;;
 ;; (require 'erc-log)
 ;;
-;; You may optionally want the following code, to save all ERC buffers
-;; without confirmation when exiting emacs:
-;;
-;; (defadvice save-buffers-kill-emacs (before save-logs (&rest args) activate)
-;;  (save-some-buffers t (lambda ()
-;;                         (when (and (eq major-mode 'erc-mode)
-;;                                    (not (null buffer-file-name))) t))))
-;;
 ;; If you only want to save logs for some buffers, customise the
 ;; variable `erc-enable-logging'.
 
@@ -213,6 +205,7 @@
      (add-hook 'erc-send-post-hook 'erc-save-buffer-in-logs))
    (add-hook 'erc-kill-buffer-hook 'erc-save-buffer-in-logs)
    (add-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs)
+   (add-hook 'kill-emacs-hook 'erc-log-save-all-buffers)
    (add-hook 'erc-quit-hook 'erc-conditional-save-queries)
    (add-hook 'erc-part-hook 'erc-conditional-save-buffer)
    ;; append, so that 'erc-initialize-log-marker runs first
@@ -225,6 +218,7 @@
    (remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs)
    (remove-hook 'erc-kill-buffer-hook 'erc-save-buffer-in-logs)
    (remove-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs)
+   (remove-hook 'kill-emacs-hook 'erc-log-save-all-buffers)
    (remove-hook 'erc-quit-hook 'erc-conditional-save-queries)
    (remove-hook 'erc-part-hook 'erc-conditional-save-buffer)
    (remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging)
@@ -263,7 +257,7 @@
       (not (erc-server-buffer-p)))))
 
 (defun erc-save-query-buffers (process)
-  "Save all buffers process."
+  "Save all buffers of the given PROCESS."
   (erc-with-all-buffers-of-server process
 				  nil
 				  (erc-save-buffer-in-logs)))
@@ -278,6 +272,12 @@
   (when erc-save-queries-on-quit
     (erc-save-query-buffers process)))
 
+;; Make sure that logs get saved, even if someone overrides the active
+;; process prompt for a quick exit from Emacs
+(defun erc-log-save-all-buffers ()
+  (dolist (buffer (erc-buffer-list))
+    (erc-save-buffer-in-logs buffer)))
+
 ;;;###autoload
 (defun erc-logging-enabled (&optional buffer)
   "Return non-nil if logging is enabled for BUFFER.
@@ -309,7 +309,7 @@
    (erc-log-standardize-name
     (funcall erc-generate-log-file-name-function
 	     (or buffer (current-buffer))
-	     (or (erc-default-target) (buffer-name buffer))
+	     (or (buffer-name buffer) (erc-default-target))
 	     (erc-current-nick)
 	     erc-session-server erc-session-port))
    erc-log-channels-directory))
--- a/lisp/erc/erc-menu.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-menu.el	Tue Nov 21 08:56:38 2006 +0000
@@ -4,7 +4,6 @@
 
 ;; Author: Mario Lang <mlang@delysid.org>
 ;; Keywords: comm, processes, menu
-;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcMenu
 
 ;; This file is part of GNU Emacs.
 
@@ -29,11 +28,12 @@
 
 ;;; Code:
 
+;(require 'erc)
 (require 'easymenu)
 
 (defvar erc-menu-definition
-  (list "IRC"
-	["Connect to server..." erc-select t]
+  (list "ERC"
+	["Connect to server..." erc t]
 	["Disconnect from server..." erc-quit-server erc-server-connected]
 	"-"
 	["List channels..." erc-list-channels
--- a/lisp/erc/erc-networks.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-networks.el	Tue Nov 21 08:56:38 2006 +0000
@@ -809,7 +809,7 @@
 		    (erc-ports-list (nth 3 srv))
 		  (list (nth 3 srv))))
 	 (port (nth (random (length ports)) ports)))
-    (erc host port erc-nick erc-user-full-name t)))
+    (erc :server host :port port)))
 
 ;;; The following experimental
 ;; It does not work yet, help me with it if you
--- a/lisp/erc/erc-nicklist.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-nicklist.el	Tue Nov 21 08:56:38 2006 +0000
@@ -29,7 +29,7 @@
 ;; This provides a minimal mIRC style nicklist buffer for ERC.  To
 ;; activate, do M-x erc-nicklist RET in the channel buffer you want
 ;; the nicklist to appear for.  To close and quit the nicklist
-;; buffer, do M-x erc-nicklist-quit RET.
+;; buffer, do M-x erc-nicklist-quit RET from within the nicklist buffer.
 ;;
 ;; TODO:
 ;; o Somehow associate nicklist windows with channel windows so they
@@ -97,7 +97,7 @@
   "*Directory of the PNG files for chat icons.
 Icons are displayed if `erc-nicklist-use-icons' is non-nil."
   :group 'erc-nicklist
-  :type 'string)
+  :type 'directory)
 
 (defcustom erc-nicklist-voiced-position 'bottom
   "*Position of voiced nicks in the nicklist.
@@ -207,7 +207,9 @@
 	   (channels (erc-server-user-buffers server-user))
 	   (op       (erc-channel-user-op channel-user))
 	   (voice    (erc-channel-user-voice channel-user))
-	   (bbdb-nick (erc-nicklist-search-for-nick (concat login "@" host)))
+	   (bbdb-nick (or (erc-nicklist-search-for-nick
+			   (concat login "@" host))
+			  ""))
 	   (away-status (if voice "" "\n(Away)"))
 	   (balloon-text (concat bbdb-nick (if (string= "" bbdb-nick)
 					       "" "\n")
@@ -406,6 +408,7 @@
 ;; Local Variables:
 ;; indent-tabs-mode: t
 ;; tab-width: 8
+;; coding: utf-8
 ;; End:
 
 ;; arch-tag: db37a256-87a7-4544-bd90-e5f16c9f5ca5
--- a/lisp/erc/erc-replace.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-replace.el	Tue Nov 21 08:56:38 2006 +0000
@@ -5,7 +5,6 @@
 ;; Author: Andreas Fuchs <asf@void.at>
 ;; Maintainer: Mario Lang (mlang@delysid.org)
 ;; Keywords: IRC, client, Internet
-;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcReplace
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/erc/erc-sound.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-sound.el	Tue Nov 21 08:56:38 2006 +0000
@@ -21,9 +21,26 @@
 
 ;;; Commentary:
 
-;; This used to be in erc.el, I (Jorgen) just extracted it from there
-;; and put it in this file.  Bugs and features are those of the
-;; original author.
+;; Play sounds when users send you CTCP SOUND messages.
+
+;; This file also defines the command /sound so that you can send
+;; sound requests to other users.
+
+;;; Usage:
+
+;; Add the following to your .emacs if you want to play sounds.
+;;
+;; (require 'erc-soud)
+;; (erc-sound-enable)
+;;
+;; To send requests to other users from within query buffers, type the
+;; following:
+;;
+;; /sound filename optional-message-text
+;;
+;; You can also type the following:
+;;
+;; /ctcp nickname sound filename optional-message
 
 ;;; Code:
 
@@ -34,9 +51,11 @@
   "In ERC sound mode, the client will respond to CTCP SOUND requests
 and play sound files as requested."
   ;; Enable:
-  ((define-key erc-mode-map "\C-c\C-s" 'erc-toggle-sound))
+  ((add-hook 'erc-ctcp-query-SOUND-hook 'erc-ctcp-query-SOUND)
+   (define-key erc-mode-map "\C-c\C-s" 'erc-toggle-sound))
   ;; Disable:
-  ((define-key erc-mode-map "\C-c\C-s" 'undefined)))
+  ((remove-hook 'erc-ctcp-query-SOUND-hook 'erc-ctcp-query-SOUND)
+   (define-key erc-mode-map "\C-c\C-s" 'undefined)))
 
 (erc-define-catalog-entry 'english 'CTCP-SOUND "%n (%u@%h) plays %s:%m")
 
@@ -45,7 +64,7 @@
   :group 'erc)
 
 (defcustom erc-play-sound t
-  "*Play sound on SOUND ctcp requests (used in ICQ chat)."
+  "*Play sounds when you receive CTCP SOUND requests."
   :group 'erc-sound
   :type 'boolean)
 
@@ -55,18 +74,22 @@
   :type '(repeat directory))
 
 (defcustom erc-default-sound nil
-  "Play this sound if the requested file was not found."
+  "Play this sound if the requested file was not found.
+If this is set to nil or the file doesn't exist a beep will sound."
   :group 'erc-sound
   :type '(choice (const nil)
 		 file))
 
-(defcustom erc-play-command "play"
-  "Command for playing sound samples."
-  :group 'erc-sound
-  :type 'string)
+(defvar erc-ctcp-query-SOUND-hook nil
+  "Hook to run after receiving a CTCP SOUND request.")
 
 (defun erc-cmd-SOUND (line &optional force)
-  "Play the sound given in LINE."
+  "Send a CTCP SOUND message to the default target.
+If `erc-play-sound' is non-nil, play the sound as well.
+
+/sound filename optional-message-text
+
+LINE is the text entered, including the command."
   (cond
    ((string-match "^\\s-*\\(\\S-+\\)\\(\\s-.*\\)?$" line)
     (let ((file (match-string 1 line))
@@ -84,8 +107,8 @@
       t))
    (t nil)))
 
-(defvar erc-ctcp-query-SOUND-hook '(erc-ctcp-query-SOUND))
 (defun erc-ctcp-query-SOUND (proc nick login host to msg)
+  "Display a CTCP SOUND message and play sound if `erc-play-sound' is non-nil."
   (when (string-match "^SOUND\\s-+\\(\\S-+\\)\\(\\(\\s-+.*\\)\\|\\(\\s-*\\)\\)$" msg)
     (let ((sound (match-string 1 msg))
 	  (comment (match-string 2 msg)))
@@ -96,42 +119,16 @@
   nil)
 
 (defun erc-play-sound (file)
-  "Plays a sound file located in one of the directories in `erc-sound-path'
-with a command `erc-play-command'."
+  "Play a sound file located in one of the directories in `erc-sound-path'.
+See also `play-sound-file'."
   (let ((filepath (erc-find-file file erc-sound-path)))
     (if (and (not filepath) erc-default-sound)
 	(setq filepath erc-default-sound))
     (cond ((and filepath (file-exists-p filepath))
-	   (if (and (fboundp 'device-sound-enabled-p)
-		    (device-sound-enabled-p))
-	       ; For XEmacs
-	       (play-sound-file filepath)
-;	     (start-process "erc-sound" nil erc-play-command filepath)
-	     (start-process "erc-sound" nil "/bin/tcsh"  "-c"
-			    (concat erc-play-command " " filepath))))
+           (play-sound-file filepath))
 	  (t (beep)))
     (erc-log (format "Playing sound file %S" filepath))))
 
-;(defun erc-play-sound (file)
-;  "Plays a sound file located in one of the directories in `erc-sound-path'
-;   with a command `erc-play-command'."
-;  (let ((filepath nil)
-;	(paths erc-sound-path))
-;    (while (and paths
-;		(progn (setq filepath (expand-file-name file (car paths)))
-;		       (not (file-exists-p filepath))))
-;      (setq paths (cdr paths)))
-;    (if (and (not (and filepath (file-exists-p filepath)))
-;	     erc-default-sound)
-;	(setq filepath erc-default-sound))
-;    (cond ((and filepath (file-exists-p filepath))
-;;	   (start-process "erc-sound" nil erc-play-command filepath)
-;	   (start-process "erc-sound" nil "/bin/tcsh"  "-c"
-;			  (concat erc-play-command " " filepath))
-;	   )
-;	  (t (beep)))
-;    (erc-log (format "Playing sound file %S" filepath))))
-
 (defun erc-toggle-sound (&optional arg)
   "Toggles playing sounds on and off.  With positive argument,
   turns them on.  With any other argument turns sounds off."
--- a/lisp/erc/erc-track.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc-track.el	Tue Nov 21 08:56:38 2006 +0000
@@ -580,6 +580,11 @@
       (erc-modified-channels-display)
       (force-mode-line-update t))))
 
+(defvar erc-track-mouse-face (if (featurep 'xemacs)
+				 'modeline-mousable
+			       'mode-line-highlight)
+  "The face to use when mouse is over channel names in the mode line.")
+
 (defun erc-make-mode-line-buffer-name (string buffer &optional faces count)
   "Return STRING as a button that switches to BUFFER when clicked.
 If FACES are provided, color STRING with them."
@@ -609,6 +614,12 @@
 	    (posn-window (event-start e)))
 	   (switch-to-buffer-other-window ,buffer))))
     (put-text-property 0 (length name) 'local-map map name)
+    (put-text-property
+     0 (length name)
+     'help-echo (concat "mouse-2: switch to buffer, "
+			"mouse-3: switch to buffer in other window")
+     name)
+    (put-text-property 0 (length name) 'mouse-face erc-track-mouse-face name)
     (when (and faces erc-track-use-faces)
       (put-text-property 0 (length name) 'face faces name))
     name))
--- a/lisp/erc/erc.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/erc/erc.el	Tue Nov 21 08:56:38 2006 +0000
@@ -33,11 +33,11 @@
 
 ;;; Commentary:
 
-;; ERC is an IRC client for Emacs.
+;; ERC is a powerful, modular, and extensible IRC client for Emacs.
 
 ;; For more information, see the following URLs:
 ;; * http://sv.gnu.org/projects/erc/
-;; * http://www.emacswiki.org/cgi-bin/wiki.pl?EmacsIRCClient
+;; * http://www.emacswiki.org/cgi-bin/wiki/ERC
 
 ;; As of 2006-06-13, ERC development is now hosted on Savannah
 ;; (http://sv.gnu.org/projects/erc).  I invite everyone who wants to
@@ -57,17 +57,17 @@
 
 ;; To connect to an IRC server, do
 ;;
-;; M-x erc-select RET
+;; M-x erc RET
 ;;
 ;; After you are connected to a server, you can use C-h m or have a look at
-;; the IRC menu.
+;; the ERC menu.
 
 ;;; History:
 ;;
 
 ;;; Code:
 
-(defconst erc-version-string "Version 5.1.4"
+(defconst erc-version-string "Version 5.2 stable pre-release"
   "ERC version.  This is used by function `erc-version'.")
 
 (eval-when-compile (require 'cl))
@@ -1164,6 +1164,12 @@
   "ERC face for errors."
   :group 'erc-faces)
 
+;; same default color as `erc-input-face'
+(defface erc-my-nick-face '((t (:bold t :foreground "brown")))
+  "ERC face for your current nickname in messages sent by you.
+See also `erc-show-my-nick'."
+  :group 'erc-faces)
+
 (defface erc-nick-default-face '((t (:bold t)))
   "ERC nickname default face."
   :group 'erc-faces)
@@ -1316,8 +1322,7 @@
        (process-buffer erc-server-process)))
 
 (defun erc-server-buffer-live-p ()
-  "Return t if the buffer associated with `erc-server-process'
-has not been killed."
+  "Return t if the server buffer has not been killed."
   (and (processp erc-server-process)
        (buffer-live-p (process-buffer erc-server-process))))
 
@@ -1433,7 +1438,7 @@
 (defconst erc-default-server "irc.freenode.net"
   "IRC server to use if it cannot be detected otherwise.")
 
-(defconst erc-default-port "ircd"
+(defconst erc-default-port "6667"
   "IRC port to use if it cannot be detected otherwise.")
 
 (defcustom erc-join-buffer 'buffer
@@ -1534,7 +1539,7 @@
 	     (or target
 		 (with-current-buffer (get-buffer buf-name)
 		   (and (erc-server-buffer-p)
-			(not erc-server-connected))))
+			(not (erc-server-process-alive)))))
 	     (with-current-buffer (get-buffer buf-name)
 	       (and (string= erc-session-server server)
 		    (erc-port-equal erc-session-port port))))
@@ -1555,7 +1560,8 @@
   (catch 'result
     (while list
       (if (string= string (erc-downcase (car list)))
-	  (throw 'result list) (setq list (cdr list))))))
+	  (throw 'result list)
+	(setq list (cdr list))))))
 
 (defmacro erc-with-buffer (spec &rest body)
   "Execute BODY in the buffer associated with SPEC.
@@ -1663,7 +1669,7 @@
 Due to some yet unresolved reason, global function `iswitchb-mode'
 needs to be active for this function to work."
   (interactive "P")
-  (eval-when-compile
+  (eval-and-compile
     (require 'iswitchb))
   (let ((iswitchb-make-buflist-hook
 	 (lambda ()
@@ -1671,8 +1677,7 @@
 		 (mapcar 'buffer-name
 			 (erc-buffer-list
 			  nil
-			  (when (and arg (boundp 'erc-server-process))
-			    erc-server-process)))))))
+			  (when arg erc-server-process)))))))
     (switch-to-buffer
      (iswitchb-read-buffer
       "Switch-to: "
@@ -1833,9 +1838,10 @@
       (condition-case nil
 	  (require (intern req))
 	(error nil))
-      (funcall (or (intern-soft (concat "erc-" (symbol-name mod) "-mode"))
-		   (error "`%s' is not a known ERC module" mod))
-	       1))))
+      (let ((sym (intern-soft (concat "erc-" (symbol-name mod) "-mode"))))
+	(if (fboundp sym)
+	    (funcall sym 1)
+	  (error "`%s' is not a known ERC module" mod))))))
 
 (defun erc-setup-buffer (buffer)
   "Consults `erc-join-buffer' to find out how to display `BUFFER'."
@@ -1861,8 +1867,8 @@
 	     (display-buffer buffer)
 	   (switch-to-buffer buffer)))))
 
-(defun erc (&optional server port nick full-name
-		      connect passwd tgt-list channel process)
+(defun erc-open (&optional server port nick full-name
+			   connect passwd tgt-list channel process)
   "ERC is a powerful, modular, and extensible IRC client.
 
 Connect to SERVER on PORT as NICK with FULL-NAME.
@@ -1881,6 +1887,7 @@
 	(connected-p (unless connect erc-server-connected))
 	(buffer (erc-get-buffer-create server port channel))
 	(old-buffer (current-buffer))
+	(old-point (point))
 	continued-session)
     (erc-update-modules)
     (set-buffer buffer)
@@ -1959,7 +1966,7 @@
       (insert "\n"))
     (set-marker (process-mark erc-server-process) (point))
     (if continued-session
-	(goto-char (point-max))
+	(goto-char old-point)
       (set-marker erc-insert-marker (point))
       (erc-display-prompt)
       (goto-char (point-max)))
@@ -2007,7 +2014,7 @@
 
 (defcustom erc-before-connect nil
   "Hook called before connecting to a server.
-This hook gets executed before `erc-select' actually invokes `erc-mode'
+This hook gets executed before `erc' actually invokes `erc-mode'
 with your input data.  The functions in here get called with three
 parameters, SERVER, PORT and NICK."
   :group 'erc-hooks
@@ -2073,11 +2080,11 @@
     (list :server server :port port :nick nick :password passwd)))
 
 ;;;###autoload
-(defun* erc-select (&key (server (erc-compute-server))
-			 (port   (erc-compute-port))
-			 (nick   (erc-compute-nick))
-			 password
-			 (full-name (erc-compute-full-name)))
+(defun* erc (&key (server (erc-compute-server))
+		  (port   (erc-compute-port))
+		  (nick   (erc-compute-nick))
+		  password
+		  (full-name (erc-compute-full-name)))
   "Select connection parameters and run ERC.
 Non-interactively, it takes keyword arguments
    (server (erc-compute-server))
@@ -2088,7 +2095,7 @@
 
 That is, if called with
 
-   (erc-select :server \"irc.freenode.net\" :full-name \"Harry S Truman\")
+   (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\")
 
 server and full-name will be set to those values, whereas
 `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will
@@ -2096,15 +2103,18 @@
   (interactive (erc-select-read-args))
 
   (run-hook-with-args 'erc-before-connect server port nick)
-  (erc server port nick erc-user-full-name t password))
-
-
-(defun erc-select-ssl (&rest r)
+  (erc-open server port nick full-name t password))
+
+(defalias 'erc-select 'erc)
+
+(defun erc-ssl (&rest r)
   "Interactively select SSL connection parameters and run ERC.
-Arguments are as to erc-select."
+Arguments are the same as for `erc'."
   (interactive (erc-select-read-args))
   (let ((erc-server-connect-function 'erc-open-ssl-stream))
-    (apply 'erc-select r)))
+    (apply 'erc r)))
+
+(defalias 'erc-select-ssl 'erc-ssl)
 
 (defun erc-open-ssl-stream (name buffer host port)
   "Open an SSL stream to an IRC server.
@@ -2321,9 +2331,8 @@
 		  ((listp buffer) buffer)
 		  ((processp buffer) (list (process-buffer buffer)))
 		  ((eq 'all buffer)
-		   (and (boundp 'erc-server-process)
-			;; Hmm, or all of the same session server?
-			(erc-buffer-list nil erc-server-process)))
+		   ;; Hmm, or all of the same session server?
+		   (erc-buffer-list nil erc-server-process))
 		  ((and (eq 'active buffer) (erc-active-buffer))
 		   (list (erc-active-buffer)))
 		  ((erc-server-buffer-live-p)
@@ -2536,7 +2545,11 @@
   "Ignore USER.  This should be a regexp matching nick!user@host.
 If no USER argument is specified, list the contents of `erc-ignore-list'."
   (if user
-      (progn
+      (let ((quoted (regexp-quote user)))
+	(when (and (not (string= user quoted))
+		   (y-or-n-p (format "Use regexp-quoted form (%s) instead? "
+				     quoted)))
+	  (setq user quoted))
 	(erc-display-line
 	 (erc-make-notice (format "Now ignoring %s" user))
 	 'active)
@@ -2554,16 +2567,22 @@
 (defun erc-cmd-UNIGNORE (user)
   "Remove the user specified in USER from the ignore list."
   (let ((ignored-nick (car (with-current-buffer (erc-server-buffer)
-			     (erc-member-ignore-case user erc-ignore-list)))))
-    (if (null ignored-nick)
+			     (erc-member-ignore-case (regexp-quote user)
+						     erc-ignore-list)))))
+    (unless ignored-nick
+      (if (setq ignored-nick (erc-ignored-user-p user))
+	  (unless (y-or-n-p (format "Remove this regexp (%s)? "
+				    ignored-nick))
+	    (setq ignored-nick nil))
 	(erc-display-line
 	 (erc-make-notice (format "%s is not currently ignored!" user))
-	 'active)
+	 'active)))
+    (when ignored-nick
       (erc-display-line
        (erc-make-notice (format "No longer ignoring %s" user))
-       'active))
-    (with-current-buffer (erc-server-buffer)
-      (setq erc-ignore-list (delete ignored-nick erc-ignore-list))))
+       'active)
+      (with-current-buffer (erc-server-buffer)
+	(setq erc-ignore-list (delete ignored-nick erc-ignore-list)))))
   t)
 
 (defun erc-cmd-CLEAR ()
@@ -3149,7 +3168,7 @@
   "Connect to SERVER, leaving existing connection intact."
   (erc-log (format "cmd: SERVER: %s" server))
   (condition-case nil
-      (erc-select :server server :nick (erc-current-nick))
+      (erc :server server :nick (erc-current-nick))
     (error
      (message "Cannot find host %s." server)
      (beep)))
@@ -3534,9 +3553,8 @@
    (list
     (if (and (boundp 'reason) (stringp reason) (not (string= reason "")))
 	reason
-      (read-from-minibuffer (concat "Leave " (erc-default-target)
-				    ", Reason? ")
-			    (cons "No reason" 0)))))
+      (read-from-minibuffer (concat "Reason for leaving " (erc-default-target)
+				    ": ")))))
   (erc-cmd-PART (concat (erc-default-target)" " reason)))
 
 (defun erc-set-topic (topic)
@@ -3666,15 +3684,15 @@
 	       (buffer-live-p server)
 	       (set-buffer server))
     (error "Couldn't switch to server buffer"))
-  (let ((buf (erc erc-session-server
-		  erc-session-port
-		  (erc-current-nick)
-		  erc-session-user-full-name
-		  nil
-		  nil
-		  (list target)
-		  target
-		  erc-server-process)))
+  (let ((buf (erc-open erc-session-server
+		       erc-session-port
+		       (erc-current-nick)
+		       erc-session-user-full-name
+		       nil
+		       nil
+		       (list target)
+		       target
+		       erc-server-process)))
     (unless buf
       (error "Couldn't open query window"))
     (erc-update-mode-line)
@@ -3846,22 +3864,19 @@
   :type 'function)
 
 (defun erc-format-nick (&optional user channel-data)
-  "Standard nickname formatting function.  Only returns the value
-of NICK."
-  (if user
-      (erc-server-user-nickname user)))
+  "Return the nickname of USER.
+See also `erc-format-nick-function'."
+  (when user (erc-server-user-nickname user)))
 
 (defun erc-format-@nick (&optional user channel-data)
-  "Format a nickname such that @ or + are prefix for the NICK
-if OP or VOICE are t respectively."
-  (if user
-      (let (op voice)
-	(if channel-data
-	    (setq op (erc-channel-user-op channel-data)
-		  voice (erc-channel-user-voice channel-data)))
-    (concat (if voice "+" "")
-	    (if op "@" "")
-		(erc-server-user-nickname user)))))
+  "Format the nickname of USER showing if USER is an operator or has voice.
+Operators have \"@\" and users with voice have \"+\" as a prefix.
+Use CHANNEL-DATA to determine op and voice status.
+See also `erc-format-nick-function'."
+  (when user
+    (let ((op (and channel-data (erc-channel-user-op channel-data) "@"))
+	  (voice (and channel-data (erc-channel-user-voice channel-data) "+")))
+      (concat voice op (erc-server-user-nickname user)))))
 
 (defun erc-format-my-nick ()
   "Return the beginning of this user's message, correctly propertized"
@@ -3871,7 +3886,7 @@
 	    (nick (erc-current-nick)))
 	(concat
 	 (erc-propertize open 'face 'erc-default-face)
-	 (erc-propertize nick 'face 'erc-nick-default-face)
+	 (erc-propertize nick 'face 'erc-my-nick-face)
 	 (erc-propertize close 'face 'erc-default-face)))
     (let ((prefix "> "))
       (erc-propertize prefix 'face 'erc-default-face))))
@@ -4548,7 +4563,7 @@
 	 ;; list of triples: (mode-char 'on/'off argument)
 	 (arg-modes (nth 2 modes)))
     (cond ((erc-channel-p tgt); channel modes
-	   (let ((buf (and (boundp 'erc-server-process) erc-server-process
+	   (let ((buf (and erc-server-process
 			   (erc-get-buffer tgt erc-server-process))))
 	     (when buf
 	       (with-current-buffer buf
@@ -4640,7 +4655,7 @@
 	 (arg-modes (nth 2 modes)))
     ;; now parse the modes changes and do the updates
     (cond ((erc-channel-p tgt); channel modes
-	   (let ((buf (and (boundp 'erc-server-process) erc-server-process
+	   (let ((buf (and erc-server-process
 			   (erc-get-buffer tgt erc-server-process))))
 	     (when buf
 	       ;; FIXME! This used to have an original buffer
@@ -5059,10 +5074,10 @@
 Takes a full SPEC of a user in the form \"nick!login@host\", and
 matches against all the regexp's in `erc-ignore-list'.  If any
 match, returns that regexp."
-  (dolist (ignored (with-current-buffer (erc-server-buffer) erc-ignore-list))
-    (if (string-match ignored spec)
-	;; We have `require'd cl, so we can return from the block named nil
-	(return ignored))))
+  (catch 'found
+    (dolist (ignored (with-current-buffer (erc-server-buffer) erc-ignore-list))
+      (if (string-match ignored spec)
+	  (throw 'found ignored)))))
 
 (defun erc-ignored-reply-p (msg tgt proc)
   ;; FIXME: this docstring needs fixing -- Lawrence 2004-01-08
@@ -5418,7 +5433,7 @@
 This tries a number of increasingly more default methods until a
 non-nil value is found.
 
-- SERVER (the argument passwd to this function)
+- SERVER (the argument passed to this function)
 - The `erc-server' option
 - The value of the IRCSERVER environment variable
 - The `erc-default-server' variable"
@@ -5779,7 +5794,7 @@
 		      ((functionp erc-header-line-face-method)
 		       (funcall erc-header-line-face-method))
 		      (t
-		       erc-header-line))))
+		       'erc-header-line))))
       (cond ((featurep 'xemacs)
 	     (setq modeline-buffer-identification
 		   (list (format-spec erc-mode-line-format spec)))
@@ -5833,10 +5848,12 @@
 
 (defun erc-string-to-port (s)
   "Convert string S to either an integer port number or a service name."
-  (let ((n (string-to-number s)))
-    (if (= n 0)
-	s
-      n)))
+  (if (numberp s)
+      s
+    (let ((n (string-to-number s)))
+      (if (= n 0)
+	  s
+	n))))
 
 (defun erc-version (&optional here)
   "Show the version number of ERC in the minibuffer.
@@ -5886,8 +5903,8 @@
 
 All windows are opened in the current frame."
   (interactive)
-  (unless (boundp 'erc-server-process)
-    (error "No erc-process found in current buffer"))
+  (unless erc-server-process
+    (error "No erc-server-process found in current buffer"))
   (let ((bufs (erc-buffer-list nil erc-server-process)))
     (when bufs
       (delete-other-windows)
@@ -6019,7 +6036,8 @@
    (s341   . "Inviting %n to channel %c")
    (s352   . "%-11c %-10n %-4a %u@%h (%f)")
    (s353   . "Users on %c: %u")
-   (s367   . "Ban on %b on %c set by %s on %t (Use /banlist!)")
+   (s367   . "Ban for %b on %c")
+   (s367-set-by . "Ban for %b on %c set by %s on %t")
    (s368   . "Banlist of %c ends.")
    (s379   . "%c: Forwarded to %f")
    (s391   . "The time at %s is %t")
@@ -6194,10 +6212,10 @@
     (with-current-buffer (or server-buffer (current-buffer))
       (if (and server-buffer channel)
 	  (erc-cmd-JOIN channel)
-	(erc host port (or user (erc-compute-nick)) (erc-compute-full-name)
-	     (not server-buffer) password nil channel
-	     (when server-buffer
-	       (get-buffer-process server-buffer)))))))
+	(erc-open host port (or user (erc-compute-nick)) (erc-compute-full-name)
+		  (not server-buffer) password nil channel
+		  (when server-buffer
+		    (get-buffer-process server-buffer)))))))
 
 (provide 'erc)
 
--- a/lisp/files.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/files.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1533,7 +1533,7 @@
 			   (not (eq major-mode 'hexl-mode)))
 		  (if (buffer-modified-p)
 		      (if (y-or-n-p
-			   (format 
+			   (format
 			    (if rawfile
 				"The file %s is already visited normally,
 and you have edited the buffer.  Now you have asked to visit it literally,
@@ -1553,7 +1553,7 @@
 			    (find-file-noselect-1 buf filename nowarn
 						  rawfile truename number))
 			(if (y-or-n-p
-			     (format 
+			     (format
 			      (if rawfile
 				  "\
 Do you want to discard your changes, and visit the file literally now? "
@@ -1563,8 +1563,8 @@
 						  rawfile truename number)
 			  (error (if rawfile "File already visited non-literally"
 				   "File already visited literally"))))
-		    (if (y-or-n-p 
-			 (format 
+		    (if (y-or-n-p
+			 (format
 			  (if rawfile
 			      "The file %s is already visited normally.
 You have asked to visit it literally,
@@ -2820,8 +2820,8 @@
     (let ((buffer (and filename (find-buffer-visiting filename))))
       (and buffer (not (eq buffer (current-buffer)))
 	   (not no-query)
-	   (not (y-or-n-p (message "A buffer is visiting %s; proceed? "
-				   filename)))
+	   (not (y-or-n-p (format "A buffer is visiting %s; proceed? "
+                                  filename)))
 	   (error "Aborted")))
     (or (equal filename buffer-file-name)
 	(progn
@@ -4095,6 +4095,7 @@
 			    (or coding-system-for-read
 				buffer-file-coding-system-explicit))))
 		     (if (and (not enable-multibyte-characters)
+			      coding-system-for-read
 			      (not (memq (coding-system-base
 					  coding-system-for-read)
 					 '(no-conversion raw-text))))
--- a/lisp/gnus/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,51 @@
+2006-11-18  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
+
+	* mm-uu.el (mm-uu-pgp-signed-extract-1): Make last fix more thorough
+	and comment it.
+
+	* nnslashdot.el (nnslashdot-retrieve-headers-1): Update regexp.
+
+2006-11-15  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-util.el (gnus-extract-address-components): Improve comment.
+
+2006-11-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-extract-address-components): Work with address in
+	which the name portion contains @.
+
+2006-11-14  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.el (gnus-start): Move custom group up.
+	(gnus-select-method): Don't autoload, but make it available for
+	`customize-variable'.
+	(gnus-getenv-nntpserver): Don't autoload.
+
+2006-11-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mml.el (mml-generate-mime-1): Use mm-string-as-unibyte instead of
+	mm-with-unibyte-current-buffer to make string unibyte.
+
+	* mm-decode.el (mm-insert-part): Use mm-string-to-multibyte instead of
+	mm-string-as-multibyte.
+
+2006-11-09  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el: Merge from the trunk to fix the bug WRT double encoded
+	subjects.
+	(message-replacement-char): New variable.
+	(message-fix-before-sending): Use it.
+	(message-simplify-subject): New function to remove duplicate code.
+	(message-reply, message-followup): Use it.
+	(message-simplify-subject-functions): New variable.
+	(message-strip-subject-encoded-words): New function
+
+2006-11-08  Wolfgang Jenkner  <wjenkner@inode.at>  (tiny change)
+
+	* gnus-sum.el (gnus-summary-catchup): Use gnus-sorted-intersection
+	instead of gnus-intersection because arguments of gnus-sorted-nunion
+	must be sorted.  This avoids corruption of gnus-newsgroup-unreads.
+
 2006-11-03  Juanma Barranquero  <lekktu@gmail.com>
 
 	* gnus-diary.el (gnus-diary-delay-format-function):
@@ -4500,6 +4548,7 @@
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; fill-column: 79
+;; add-log-time-zone-rule: t
 ;; End:
 
 ;;; arch-tag: 3f33a3e7-090d-492b-bedd-02a1417d32b4
--- a/lisp/gnus/gnus-sum.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/gnus-sum.el	Tue Nov 21 08:56:38 2006 +0000
@@ -10470,8 +10470,8 @@
 			gnus-newsgroup-dormant nil))
 		(setq gnus-newsgroup-unreads
 		      (gnus-sorted-nunion
-                       (gnus-intersection gnus-newsgroup-unreads
-                                          gnus-newsgroup-downloadable)
+                       (gnus-sorted-intersection gnus-newsgroup-unreads
+						 gnus-newsgroup-downloadable)
                        gnus-newsgroup-unfetched)))
 	    ;; We actually mark all articles as canceled, which we
 	    ;; have to do when using auto-expiry or adaptive scoring.
--- a/lisp/gnus/gnus-util.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/gnus-util.el	Tue Nov 21 08:56:38 2006 +0000
@@ -202,8 +202,13 @@
     ;; First find the address - the thing with the @ in it.  This may
     ;; not be accurate in mail addresses, but does the trick most of
     ;; the time in news messages.
-    (when (string-match "\\b[^@ \t<>]+[!@][^@ \t<>]+\\b" from)
-      (setq address (substring from (match-beginning 0) (match-end 0))))
+    (cond (;; Check ``<foo@bar>'' first in order to handle the quite common
+	   ;; form ``"abc@xyz" <foo@bar>'' (i.e. ``@'' as part of a comment)
+	   ;; correctly.
+	   (string-match "<\\([^@ \t<>]+[!@][^@ \t<>]+\\)>" from)
+	   (setq address (substring from (match-beginning 1) (match-end 1))))
+	  ((string-match "\\b[^@ \t<>]+[!@][^@ \t<>]+\\b" from)
+	   (setq address (substring from (match-beginning 0) (match-end 0)))))
     ;; Then we check whether the "name <address>" format is used.
     (and address
 	 ;; Linear white space is not required.
--- a/lisp/gnus/gnus.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/gnus.el	Tue Nov 21 08:56:38 2006 +0000
@@ -51,6 +51,10 @@
   :group 'news
   :group 'mail)
 
+(defgroup gnus-start nil
+  "Starting your favorite newsreader."
+  :group 'gnus)
+
 (defgroup gnus-format nil
   "Dealing with formatting issues."
   :group 'gnus)
@@ -70,10 +74,6 @@
   "Article Registry."
   :group 'gnus)
 
-(defgroup gnus-start nil
-  "Starting your favorite newsreader."
-  :group 'gnus)
-
 (defgroup gnus-start-server nil
   "Server options at startup."
   :group 'gnus-start)
@@ -1239,7 +1239,6 @@
   :group 'gnus-server
   :type 'file)
 
-;;;###autoload
 (defun gnus-getenv-nntpserver ()
   "Find default nntp server.
 Check the NNTPSERVER environment variable and the
@@ -1251,7 +1250,11 @@
 	     (when (re-search-forward "[^ \t\n\r]+" nil t)
 	       (match-string 0))))))
 
-;;;###autoload
+;; `M-x customize-variable RET gnus-select-method RET' should work without
+;; starting or even loading Gnus.
+;;;###autoload(when (fboundp 'custom-autoload)
+;;;###autoload  (custom-autoload 'gnus-select-method "gnus"))
+
 (defcustom gnus-select-method
   (condition-case nil
       (nconc
@@ -1285,6 +1288,8 @@
 There is a lot more to know about select methods and virtual servers -
 see the manual for details."
   :group 'gnus-server
+  :group 'gnus-start
+  :initialize 'custom-initialize-default
   :type 'gnus-select-method)
 
 (defcustom gnus-message-archive-method "archive"
--- a/lisp/gnus/message.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/message.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1786,6 +1786,96 @@
       (substring subject (match-end 0))
     subject))
 
+(defcustom message-replacement-char "."
+  "Replacement character used instead of unprintable or not decodable chars."
+  :group 'message-various
+  :version "22.1" ;; Gnus 5.10.9
+  :type '(choice string
+		 (const ".")
+		 (const "?")))
+
+;; FIXME: We also should call `message-strip-subject-encoded-words'
+;; when forwarding.  Probably in `message-make-forward-subject' and
+;; `message-forward-make-body'.
+
+(defun message-strip-subject-encoded-words (subject)
+  "Fix non-decodable words in SUBJECT."
+  ;; Cf. `gnus-simplify-subject-fully'.
+  (let* ((case-fold-search t)
+	 (replacement-chars (format "[%s%s%s]"
+				    message-replacement-char
+				    message-replacement-char
+				    message-replacement-char))
+	 (enc-word-re "=\\?\\([^?]+\\)\\?\\([QB]\\)\\?\\([^?]+\\)\\(\\?=\\)")
+	 cs-string
+	 (have-marker
+	  (with-temp-buffer
+	    (insert subject)
+	    (goto-char (point-min))
+	    (when (re-search-forward enc-word-re nil t)
+	      (setq cs-string (match-string 1)))))
+	 cs-coding q-or-b word-beg word-end)
+    (if (or (not have-marker) ;; No encoded word found...
+	    ;; ... or double encoding was correct:
+	    (and (stringp cs-string)
+		 (setq cs-string (downcase cs-string))
+		 (mm-coding-system-p (intern cs-string))
+		 (not (prog1
+			  (y-or-n-p
+			   (format "\
+Decoded Subject \"%s\"
+contains a valid encoded word.  Decode again? "
+				   subject))
+			(setq cs-coding (intern cs-string))))))
+	subject
+      (with-temp-buffer
+	(insert subject)
+	(goto-char (point-min))
+	(while (re-search-forward enc-word-re nil t)
+	  (setq cs-string (downcase (match-string 1))
+		q-or-b    (match-string 2)
+		word-beg (match-beginning 0)
+		word-end (match-end 0))
+	  (setq cs-coding
+		(if (mm-coding-system-p (intern cs-string))
+		    (setq cs-coding (intern cs-string))
+		  nil))
+	  ;; No double encoded subject? => bogus charset.
+	  (unless cs-coding
+	    (setq cs-coding
+		  (mm-read-coding-system
+		   (format "\
+Decoded Subject \"%s\"
+contains an encoded word.  The charset `%s' is unknown or invalid.
+Hit RET to replace non-decodable characters with \"%s\" or enter replacement
+charset: "
+			   subject cs-string message-replacement-char)))
+	    (if cs-coding
+		(replace-match (concat "=?" (symbol-name cs-coding)
+				       "?\\2?\\3\\4\\5"))
+	      (save-excursion
+		(goto-char word-beg)
+		(re-search-forward "=\\?\\([^?]+\\)\\?\\([QB]\\)\\?" word-end t)
+		(replace-match "")
+		;; QP or base64
+		(if (string-match "\\`Q\\'" q-or-b)
+		    ;; QP
+		    (progn
+		      (message "Replacing non-decodable characters with \"%s\"."
+			       message-replacement-char)
+		      (while (re-search-forward "\\(=[A-F0-9][A-F0-9]\\)+"
+						word-end t)
+			(replace-match message-replacement-char)))
+		  ;; base64
+		  (message "Replacing non-decodable characters with \"%s\"."
+			   replacement-chars)
+		  (re-search-forward "[^?]+" word-end t)
+		  (replace-match replacement-chars))
+		(re-search-forward "\\?=")
+		(replace-match "")))))
+	(rfc2047-decode-region (point-min) (point-max))
+	(buffer-string)))))
+
 ;;; Start of functions adopted from `message-utils.el'.
 
 (defun message-strip-subject-trailing-was (subject)
@@ -3614,8 +3704,10 @@
 	(setq choice
 	      (gnus-multiple-choice
 	       "Non-printable characters found.  Continue sending?"
-	       '((?d "Remove non-printable characters and send")
-		 (?r "Replace non-printable characters with dots and send")
+	       `((?d "Remove non-printable characters and send")
+		 (?r ,(format
+		       "Replace non-printable characters with \"%s\" and send"
+		       message-replacement-char))
 		 (?i "Ignore non-printable characters and send")
 		 (?e "Continue editing"))))
 	(if (eq choice ?e)
@@ -3638,7 +3730,7 @@
 		(message-kill-all-overlays)
 	      (delete-char 1)
 	      (when (eq choice ?r)
-		(insert "."))))
+		(insert message-replacement-char))))
 	  (forward-char)
 	  (skip-chars-forward mm-7bit-chars))))))
 
@@ -5816,6 +5908,39 @@
 	(push (cons 'Cc recipients) follow-to)))
     follow-to))
 
+(defcustom message-simplify-subject-functions
+  '(message-strip-list-identifiers
+    message-strip-subject-re
+    message-strip-subject-trailing-was
+    message-strip-subject-encoded-words)
+  "List of functions taking a string argument that simplify subjects.
+The functions are applied when replying to a message.
+
+Useful functions to put in this list include:
+`message-strip-list-identifiers', `message-strip-subject-re',
+`message-strip-subject-trailing-was', and
+`message-strip-subject-encoded-words'."
+  :version "22.1" ;; Gnus 5.10.9
+  :group 'message-various
+  :type '(repeat function))
+
+(defun message-simplify-subject (subject &optional functions)
+  "Return simplified SUBJECT."
+  (unless functions
+    ;; Simplify fully:
+    (setq functions message-simplify-subject-functions))
+  (when (and (memq 'message-strip-list-identifiers functions)
+	     gnus-list-identifiers)
+    (setq subject (message-strip-list-identifiers subject)))
+  (when (memq 'message-strip-subject-re functions)
+    (setq subject (concat "Re: " (message-strip-subject-re subject))))
+  (when (and (memq 'message-strip-subject-trailing-was functions)
+	     message-subject-trailing-was-query)
+    (setq subject (message-strip-subject-trailing-was subject)))
+  (when (memq 'message-strip-subject-encoded-words functions)
+    (setq subject (message-strip-subject-encoded-words subject)))
+  subject)
+
 ;;;###autoload
 (defun message-reply (&optional to-address wide)
   "Start editing a reply to the article in the current buffer."
@@ -5845,11 +5970,9 @@
 	    date (message-fetch-field "date")
 	    from (or (message-fetch-field "from") "nobody")
 	    subject (or (message-fetch-field "subject") "none"))
-      (when gnus-list-identifiers
-	(setq subject (message-strip-list-identifiers subject)))
-      (setq subject (concat "Re: " (message-strip-subject-re subject)))
-      (when message-subject-trailing-was-query
-	(setq subject (message-strip-subject-trailing-was subject)))
+
+      ;; Strip list identifiers, "Re: ", and "was:"
+      (setq subject (message-simplify-subject subject))
 
       (when (and (setq gnus-warning (message-fetch-field "gnus-warning"))
 		 (string-match "<[^>]+>" gnus-warning))
@@ -5919,11 +6042,8 @@
 		 (let ((case-fold-search t))
 		   (string-match "world" distribution)))
 	(setq distribution nil))
-      (if gnus-list-identifiers
-	  (setq subject (message-strip-list-identifiers subject)))
-      (setq subject (concat "Re: " (message-strip-subject-re subject)))
-      (when message-subject-trailing-was-query
-	(setq subject (message-strip-subject-trailing-was subject)))
+      ;; Strip list identifiers, "Re: ", and "was:"
+      (setq subject (message-simplify-subject subject))
       (widen))
 
     (message-pop-to-buffer (message-buffer-name "followup" from newsgroups))
--- a/lisp/gnus/mm-decode.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/mm-decode.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1135,7 +1135,7 @@
 	    (with-current-buffer (mm-handle-buffer handle)
 	      (buffer-string)))
 	   ((mm-multibyte-p)
-	    (mm-string-as-multibyte (mm-get-part handle no-cache)))
+	    (mm-string-to-multibyte (mm-get-part handle no-cache)))
 	   (t
 	    (mm-get-part handle no-cache))))))
 
--- a/lisp/gnus/mm-uu.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/mm-uu.el	Tue Nov 21 08:56:38 2006 +0000
@@ -373,8 +373,16 @@
 	   mm-security-handle 'gnus-details
 	   (format "Clear verification not supported by `%s'.\n" mml2015-use))))
       (goto-char (point-min))
-      (if (re-search-forward "\n[\t ]*\n" nil t)
-	  (delete-region (point-min) (point)))
+      (forward-line)
+      ;; We need to be careful not to strip beyond the armor headers.
+      ;; Previously, an attacker could replace the text inside our
+      ;; markup with trailing garbage by injecting whitespace into the
+      ;; message.
+      (while (looking-at "Hash:") ; The only header allowed in cleartext
+	(forward-line))		  ; signatures according to RFC2440.
+      (when (looking-at "[\t ]*$")
+	(forward-line))
+      (delete-region (point-min) (point))
       (if (re-search-forward mm-uu-pgp-beginning-signature nil t)
 	  (delete-region (match-beginning 0) (point-max)))
       (goto-char (point-min))
--- a/lisp/gnus/mml.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/mml.el	Tue Nov 21 08:56:38 2006 +0000
@@ -500,9 +500,9 @@
 	    (mm-with-unibyte-buffer
 	      (cond
 	       ((cdr (assq 'buffer cont))
-		(insert (with-current-buffer (cdr (assq 'buffer cont))
-			  (mm-with-unibyte-current-buffer
-			    (buffer-string)))))
+		(insert (mm-string-as-unibyte
+			 (with-current-buffer (cdr (assq 'buffer cont))
+			   (buffer-string)))))
 	       ((and filename
 		     (not (equal (cdr (assq 'nofile cont)) "yes")))
 		(let ((coding-system-for-read mm-binary-coding-system))
--- a/lisp/gnus/nnslashdot.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/gnus/nnslashdot.el	Tue Nov 21 08:56:38 2006 +0000
@@ -142,7 +142,7 @@
 	  (setq article (if (and article (< start article)) article start))
 	  (goto-char point)
 	  (while (re-search-forward
-		  "<a name=\"\\([0-9]+\\)\">\\([^<]+\\)</a>.*\n.*\n.*score:\\([^)]+\\))"
+		  "<a name=\"\\([0-9]+\\)\">\\([^<]+\\)\\(?:.*\n\\)\\{2,10\\}.*score:\\([^)]+\\))"
 		  nil t)
 	    (setq cid (match-string 1)
 		  subject (match-string 2)
--- a/lisp/ido.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/ido.el	Tue Nov 21 08:56:38 2006 +0000
@@ -404,13 +404,13 @@
   :group 'ido)
 
 (defcustom ido-ignore-extensions t
-  "*Non-nil means ignore files in completion-ignored-extensions list."
+  "*Non-nil means ignore files in `completion-ignored-extensions' list."
   :type 'boolean
   :group 'ido)
 
 (defcustom ido-show-dot-for-dired nil
   "*Non-nil means to always put . as the first item in file name lists.
-This allows the current directory to be opened immediate with `dired'."
+This allows the current directory to be opened immediately with `dired'."
   :type 'boolean
   :group 'ido)
 
@@ -503,7 +503,7 @@
 (defcustom ido-enable-prefix nil
   "*Non-nil means only match if the entered text is a prefix of file name.
 This behavior is like the standard emacs-completion.
-Nil means to match if the entered text is an arbitrary substring.
+If nil, match if the entered text is an arbitrary substring.
 Value can be toggled within `ido' using `ido-toggle-prefix'."
   :type 'boolean
   :group 'ido)
@@ -714,7 +714,7 @@
 
 (defcustom ido-max-dir-file-cache 100
   "*Maximum number of working directories to be cached.
-This is the size of the cache of file-name-all-completions results.
+This is the size of the cache of `file-name-all-completions' results.
 Each cache entry is time stamped with the modification time of the
 directory.  Some systems, like Windows, have unreliable directory
 modification times, so you may choose to disable caching on such
@@ -777,7 +777,7 @@
   "*List of strings used by ido to display the alternatives in the minibuffer.
 There are 10 elements in this list:
 1st and 2nd elements are used as brackets around the prospect list,
-3rd element is the separator between prospects (ignored if ido-separator is set),
+3rd element is the separator between prospects (ignored if `ido-separator' is set),
 4th element is the string inserted at the end of a truncated list of prospects,
 5th and 6th elements are used as brackets around the common match string which
 can be completed using TAB,
@@ -795,13 +795,13 @@
   :group 'ido)
 
 (defface ido-first-match  '((t (:bold t)))
-  "*Font used by ido for highlighting first match."
+  "*Face used by ido for highlighting first match."
   :group 'ido)
 
 (defface ido-only-match  '((((class color))
                                  (:foreground "ForestGreen"))
                                 (t (:italic t)))
-  "*Font used by ido for highlighting only match."
+  "*Face used by ido for highlighting only match."
   :group 'ido)
 
 (defface ido-subdir  '((((min-colors 88) (class color))
@@ -809,7 +809,7 @@
 			    (((class color))
                              (:foreground "red"))
                             (t (:underline t)))
-  "*Font used by ido for highlighting subdirs in the alternatives."
+  "*Face used by ido for highlighting subdirs in the alternatives."
   :group 'ido)
 
 (defface ido-indicator  '((((min-colors 88) (class color))
@@ -821,7 +821,7 @@
 				 :background "red"
 				 :width condensed))
 			       (t (:inverse-video t)))
-  "*Font used by ido for highlighting its indicators."
+  "*Face used by ido for highlighting its indicators."
   :group 'ido)
 
 (defface ido-incomplete-regexp
@@ -864,7 +864,7 @@
   prefix    - either nil or a fixed prefix for the dirname
 
 The following variables are available, but should not be changed:
-  ido-current-directory - the unabbreviated directory name
+  `ido-current-directory' - the unabbreviated directory name
   item - equals `file' or `dir' depending on the current mode."
   :type 'hook
   :group 'ido)
@@ -1034,8 +1034,8 @@
 
 (defvar ido-use-mycompletion-depth 0
   "Non-nil means use `ido' completion feedback.
-Is set by ido functions to the current minibuffer-depth, so that
-it doesn't interfere with other minibuffer usage.")
+Is set by ido functions to the current `minibuffer-depth',
+so that it doesn't interfere with other minibuffer usage.")
 
 (defvar ido-incomplete-regexp nil
   "Non-nil if an incomplete regexp is entered.")
@@ -2044,7 +2044,7 @@
 	     (not (if ido-directory-too-big
 		      (file-exists-p (concat ido-current-directory ido-final-text))
 		    (ido-existing-item-p))))
-	(error "must specify valid item"))
+	(error "Must specify valid item"))
 
        (t
 	(setq ido-selected
@@ -2163,7 +2163,7 @@
 
        ;; buffer doesn't exist
        ((eq ido-create-new-buffer 'never)
-	(message "no buffer matching `%s'" buf))
+	(message "No buffer matching `%s'" buf))
 
        ((and (eq ido-create-new-buffer 'prompt)
 	     (not (y-or-n-p (format "No buffer matching `%s', create one? " buf))))
@@ -2270,7 +2270,9 @@
 	(let ((minibuffer-completing-file-name t))
 	  (setq filename (ido-read-internal item
 					    (or prompt "Find file: ")
-					    'ido-file-history nil nil initial))))
+					    'ido-file-history
+					    (and (eq method 'alt-file) buffer-file-name)
+					    nil initial))))
 
       ;; Choose the file name: either the text typed in, or the head
       ;; of the list of matches
@@ -2521,10 +2523,10 @@
 (defun ido-magic-backward-char ()
   "Move backward in user input or perform magic action.
 If no user input is present, or at start of input, perform magic actions:
-C-x C-f C-b  switch to ido-switch-buffer.
-C-x C-d C-b  switch to ido-switch-buffer.
-C-x d C-b    switch to ido-switch-buffer.
-C-x C-b C-b  fallback to non-ido switch-to-buffer."
+C-x C-f C-b  switch to `ido-switch-buffer'.
+C-x C-d C-b  switch to `ido-switch-buffer'.
+C-x d C-b    switch to `ido-switch-buffer'.
+C-x C-b C-b  fallback to non-ido `switch-to-buffer'."
   (interactive)
   (cond
    ((> (point) (minibuffer-prompt-end))
@@ -2658,19 +2660,19 @@
   (exit-minibuffer))
 
 (defun ido-enter-dired ()
-  "Drop into dired from file switching."
+  "Drop into `dired' from file switching."
   (interactive)
   (setq ido-exit 'dired)
   (exit-minibuffer))
 
 (defun ido-enter-insert-buffer ()
-  "Drop into insert buffer from insert file."
+  "Drop into `insert-buffer' from insert file."
   (interactive)
   (setq ido-exit 'insert-buffer)
   (exit-minibuffer))
 
 (defun ido-enter-insert-file ()
-  "Drop into insert file from insert buffer."
+  "Drop into `insert-file' from insert buffer."
   (interactive)
   (setq ido-exit 'insert-file)
   (exit-minibuffer))
@@ -2917,18 +2919,21 @@
   (let ((word (save-excursion
 		(set-buffer ido-entry-buffer)
 		(let ((p (point)) start-line end-line start-name name)
-		  (beginning-of-line)
-		  (setq start-line (point))
-		  (end-of-line)
-		  (setq end-line (point))
-		  (goto-char p)
-		  (if (re-search-backward "[^-_a-zA-Z0-9:./\\~@]" start-line 1)
-		      (forward-char 1))
-		  (setq start-name (point))
-		  (re-search-forward "[-_a-zA-Z0-9:./\\~@]*" end-line 1)
-		  (if (= start-name (point))
-		      nil
-		    (buffer-substring-no-properties start-name (point)))))))
+		  (if (and mark-active (/= p (mark)))
+		      (setq start-name (mark))
+		    (beginning-of-line)
+		    (setq start-line (point))
+		    (end-of-line)
+		    (setq end-line (point))
+		    (goto-char p)
+		    (if (re-search-backward "[^-_a-zA-Z0-9:./\\~@]" start-line 1)
+			(forward-char 1))
+		    (setq start-name (point))
+		    (re-search-forward "[-_a-zA-Z0-9:./\\~@]*" end-line 1)
+		    (if (= start-name (point))
+			(setq start-name nil)))
+		  (and start-name
+		       (buffer-substring-no-properties start-name (point)))))))
     (if (cond
 	 ((not word) nil)
 	 ((string-match "\\`[~/]" word)
@@ -3742,7 +3747,7 @@
 		  (funcall f completion-list
 			   :help-string "ido "
 			   :activate-callback
-			   '(lambda (x y z) (message "doesn't work yet, sorry!"))))
+			   '(lambda (x y z) (message "Doesn't work yet, sorry!"))))
 	      ;; else running Emacs
 	      ;;(add-hook 'completion-setup-hook 'completion-setup-function)
 	      (display-completion-list completion-list)))))))
@@ -4053,7 +4058,7 @@
 
 ;;;###autoload
 (defun ido-dired ()
-  "Call dired the ido way.
+  "Call `dired' the ido way.
 The directory is selected interactively by typing a substring.
 For details of keybindings, do `\\[describe-function] ido-find-file'."
   (interactive)
@@ -4062,7 +4067,7 @@
     (ido-file-internal 'dired 'dired nil "Dired: " 'dir)))
 
 (defun ido-list-directory ()
-  "Call list-directory the ido way.
+  "Call `list-directory' the ido way.
 The directory is selected interactively by typing a substring.
 For details of keybindings, do `\\[describe-function] ido-find-file'."
   (interactive)
--- a/lisp/ldefs-boot.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/ldefs-boot.el	Tue Nov 21 08:56:38 2006 +0000
@@ -4,7 +4,7 @@
 
 ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best
 ;;;;;;  5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5"
-;;;;;;  "play/5x5.el" (17385 8495))
+;;;;;;  "play/5x5.el" (17504 41540))
 ;;; Generated autoloads from play/5x5.el
 
 (autoload (quote 5x5) "5x5" "\
@@ -63,14 +63,14 @@
 
 ;;;***
 
-;;;### (autoloads nil "abbrev" "abbrev.el" (17495 43953))
+;;;### (autoloads nil "abbrev" "abbrev.el" (17504 41540))
 ;;; Generated autoloads from abbrev.el
 (put 'abbrev-mode 'safe-local-variable 'booleanp)
 
 ;;;***
 
 ;;;### (autoloads (list-one-abbrev-table) "abbrevlist" "abbrevlist.el"
-;;;;;;  (17408 40148))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from abbrevlist.el
 
 (autoload (quote list-one-abbrev-table) "abbrevlist" "\
@@ -81,7 +81,7 @@
 ;;;***
 
 ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el"
-;;;;;;  (17721 20491))
+;;;;;;  (17759 28871))
 ;;; Generated autoloads from progmodes/ada-mode.el
 
 (autoload (quote ada-add-extensions) "ada-mode" "\
@@ -127,14 +127,14 @@
 
 If you use find-file.el:
  Switch to other file (Body <-> Spec)                 '\\[ff-find-other-file]'
-                                                   or '\\[ff-mouse-find-other-file]
+						   or '\\[ff-mouse-find-other-file]
  Switch to other file in other window                 '\\[ada-ff-other-window]'
-                                                   or '\\[ff-mouse-find-other-file-other-window]
+						   or '\\[ff-mouse-find-other-file-other-window]
  If you use this function in a spec and no body is available, it gets created with body stubs.
 
 If you use ada-xref.el:
  Goto declaration:          '\\[ada-point-and-xref]' on the identifier
-                         or '\\[ada-goto-declaration]' with point on the identifier
+			 or '\\[ada-goto-declaration]' with point on the identifier
  Complete identifier:       '\\[ada-complete-identifier]'.
 
 \(fn)" t nil)
@@ -142,7 +142,7 @@
 ;;;***
 
 ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el"
-;;;;;;  (17394 12937))
+;;;;;;  (17759 28871))
 ;;; Generated autoloads from progmodes/ada-stmt.el
 
 (autoload (quote ada-header) "ada-stmt" "\
@@ -153,11 +153,11 @@
 ;;;***
 
 ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el"
-;;;;;;  (17717 4883))
+;;;;;;  (17759 28871))
 ;;; Generated autoloads from progmodes/ada-xref.el
 
 (autoload (quote ada-find-file) "ada-xref" "\
-Open a file anywhere in the source path.
+Open FILENAME, from anywhere in the source path.
 Completion is available.
 
 \(fn FILENAME)" t nil)
@@ -168,7 +168,7 @@
 ;;;;;;  change-log-mode add-change-log-entry-other-window add-change-log-entry
 ;;;;;;  find-change-log prompt-for-change-log-name add-log-mailing-address
 ;;;;;;  add-log-full-name add-log-current-defun-function) "add-log"
-;;;;;;  "add-log.el" (17683 63309))
+;;;;;;  "add-log.el" (17746 34860))
 ;;; Generated autoloads from add-log.el
 
 (defvar add-log-current-defun-function nil "\
@@ -306,7 +306,7 @@
 
 ;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
 ;;;;;;  ad-enable-advice ad-default-compilation-action ad-redefinition-action)
-;;;;;;  "advice" "emacs-lisp/advice.el" (17701 26815))
+;;;;;;  "advice" "emacs-lisp/advice.el" (17701 49518))
 ;;; Generated autoloads from emacs-lisp/advice.el
 
 (defvar ad-redefinition-action (quote warn) "\
@@ -434,7 +434,7 @@
 
 ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule
 ;;;;;;  align-highlight-rule align-current align-entire align-regexp
-;;;;;;  align) "align" "align.el" (17385 8481))
+;;;;;;  align) "align" "align.el" (17504 41540))
 ;;; Generated autoloads from align.el
 
 (autoload (quote align) "align" "\
@@ -524,7 +524,7 @@
 ;;;***
 
 ;;;### (autoloads (outlineify-sticky allout-mode) "allout" "allout.el"
-;;;;;;  (17707 53738))
+;;;;;;  (17759 28868))
 ;;; Generated autoloads from allout.el
 
 (put (quote allout-show-bodies) (quote safe-local-variable) (if (fboundp (quote booleanp)) (quote booleanp) (quote (lambda (x) (member x (quote (t nil)))))))
@@ -780,7 +780,7 @@
 ;;;***
 
 ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
-;;;;;;  "net/ange-ftp.el" (17385 8494))
+;;;;;;  "net/ange-ftp.el" (17504 41540))
 ;;; Generated autoloads from net/ange-ftp.el
 
 (defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir))
@@ -802,7 +802,7 @@
 ;;;***
 
 ;;;### (autoloads (animate-birthday-present animate-sequence animate-string)
-;;;;;;  "animate" "play/animate.el" (17385 8495))
+;;;;;;  "animate" "play/animate.el" (17504 41540))
 ;;; Generated autoloads from play/animate.el
 
 (autoload (quote animate-string) "animate" "\
@@ -830,7 +830,7 @@
 ;;;***
 
 ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on)
-;;;;;;  "ansi-color" "ansi-color.el" (17385 8481))
+;;;;;;  "ansi-color" "ansi-color.el" (17504 41540))
 ;;; Generated autoloads from ansi-color.el
 
 (autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\
@@ -856,7 +856,7 @@
 ;;;***
 
 ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules)
-;;;;;;  "antlr-mode" "progmodes/antlr-mode.el" (17485 5461))
+;;;;;;  "antlr-mode" "progmodes/antlr-mode.el" (17504 41540))
 ;;; Generated autoloads from progmodes/antlr-mode.el
 
 (autoload (quote antlr-show-makefile-rules) "antlr-mode" "\
@@ -895,7 +895,7 @@
 ;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add
 ;;;;;;  appt-display-diary appt-display-duration appt-display-mode-line
 ;;;;;;  appt-msg-window appt-visible appt-audible appt-message-warning-time
-;;;;;;  appt-issue-message) "appt" "calendar/appt.el" (17686 46252))
+;;;;;;  appt-issue-message) "appt" "calendar/appt.el" (17686 53337))
 ;;; Generated autoloads from calendar/appt.el
 
 (defvar appt-issue-message t "\
@@ -983,7 +983,7 @@
 
 ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property
 ;;;;;;  apropos-command apropos-variable apropos-read-pattern) "apropos"
-;;;;;;  "apropos.el" (17712 850))
+;;;;;;  "apropos.el" (17746 34860))
 ;;; Generated autoloads from apropos.el
 
 (autoload (quote apropos-read-pattern) "apropos" "\
@@ -1079,8 +1079,8 @@
 
 ;;;***
 
-;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17601
-;;;;;;  9091))
+;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17604
+;;;;;;  18983))
 ;;; Generated autoloads from arc-mode.el
 
 (autoload (quote archive-mode) "arc-mode" "\
@@ -1100,7 +1100,7 @@
 
 ;;;***
 
-;;;### (autoloads (array-mode) "array" "array.el" (17360 11432))
+;;;### (autoloads (array-mode) "array" "array.el" (17504 41540))
 ;;; Generated autoloads from array.el
 
 (autoload (quote array-mode) "array" "\
@@ -1171,8 +1171,8 @@
 
 ;;;***
 
-;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17520
-;;;;;;  49737))
+;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17522
+;;;;;;  22309))
 ;;; Generated autoloads from textmodes/artist.el
 
 (autoload (quote artist-mode) "artist" "\
@@ -1377,8 +1377,8 @@
 
 ;;;***
 
-;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17495
-;;;;;;  43955))
+;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from progmodes/asm-mode.el
 
 (autoload (quote asm-mode) "asm-mode" "\
@@ -1405,33 +1405,15 @@
 
 ;;;***
 
-;;;### (autoloads (auto-show-mode auto-show-mode) "auto-show" "obsolete/auto-show.el"
-;;;;;;  (17075 55468))
-;;; Generated autoloads from obsolete/auto-show.el
-
-(defvar auto-show-mode nil "\
-Obsolete.")
-
-(custom-autoload (quote auto-show-mode) "auto-show")
-
-(autoload (quote auto-show-mode) "auto-show" "\
-This command is obsolete.
-
-\(fn ARG)" t nil)
-
-;;;***
-
 ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el"
-;;;;;;  (17385 8482))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from autoarg.el
 
 (defvar autoarg-mode nil "\
 Non-nil if Autoarg mode is enabled.
 See the command `autoarg-mode' for a description of this minor-mode.")
 
-(custom-autoload (quote autoarg-mode) "autoarg")
-
-(put (quote autoarg-mode) (quote custom-set) (quote custom-set-minor-mode))
+(custom-autoload (quote autoarg-mode) "autoarg" nil)
 
 (autoload (quote autoarg-mode) "autoarg" "\
 Toggle Autoarg minor mode globally.
@@ -1459,11 +1441,10 @@
 Non-nil if Autoarg-Kp mode is enabled.
 See the command `autoarg-kp-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `autoarg-kp-mode'.")
-
-(custom-autoload (quote autoarg-kp-mode) "autoarg")
-
-(put (quote autoarg-kp-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `autoarg-kp-mode'.")
+
+(custom-autoload (quote autoarg-kp-mode) "autoarg" nil)
 
 (autoload (quote autoarg-kp-mode) "autoarg" "\
 Toggle Autoarg-KP minor mode globally.
@@ -1479,7 +1460,7 @@
 ;;;***
 
 ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el"
-;;;;;;  (17394 12937))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/autoconf.el
 
 (autoload (quote autoconf-mode) "autoconf" "\
@@ -1490,7 +1471,7 @@
 ;;;***
 
 ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
-;;;;;;  "autoinsert" "autoinsert.el" (17704 4325))
+;;;;;;  "autoinsert" "autoinsert.el" (17704 3960))
 ;;; Generated autoloads from autoinsert.el
 
 (autoload (quote auto-insert) "autoinsert" "\
@@ -1529,7 +1510,7 @@
 
 ;;;### (autoloads (batch-update-autoloads update-directory-autoloads
 ;;;;;;  update-file-autoloads) "autoload" "emacs-lisp/autoload.el"
-;;;;;;  (17601 9092))
+;;;;;;  (17596 14703))
 ;;; Generated autoloads from emacs-lisp/autoload.el
 
 (autoload (quote update-file-autoloads) "autoload" "\
@@ -1564,7 +1545,7 @@
 
 ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
 ;;;;;;  auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
-;;;;;;  "autorevert" "autorevert.el" (17515 24179))
+;;;;;;  "autorevert" "autorevert.el" (17504 41540))
 ;;; Generated autoloads from autorevert.el
 
 (autoload (quote auto-revert-mode) "autorevert" "\
@@ -1616,11 +1597,10 @@
 Non-nil if Global-Auto-Revert mode is enabled.
 See the command `global-auto-revert-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `global-auto-revert-mode'.")
-
-(custom-autoload (quote global-auto-revert-mode) "autorevert")
-
-(put (quote global-auto-revert-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `global-auto-revert-mode'.")
+
+(custom-autoload (quote global-auto-revert-mode) "autorevert" nil)
 
 (autoload (quote global-auto-revert-mode) "autorevert" "\
 Revert any buffer when file on disk changes.
@@ -1634,7 +1614,7 @@
 ;;;***
 
 ;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid"
-;;;;;;  "avoid.el" (17632 41885))
+;;;;;;  "avoid.el" (17628 62475))
 ;;; Generated autoloads from avoid.el
 
 (defvar mouse-avoidance-mode nil "\
@@ -1675,7 +1655,7 @@
 ;;;***
 
 ;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el"
-;;;;;;  (17385 8489))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emacs-lisp/backquote.el
 
 (autoload (quote backquote) "backquote" "\
@@ -1700,7 +1680,7 @@
 ;;;***
 
 ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
-;;;;;;  (17515 24179))
+;;;;;;  (17746 34860))
 ;;; Generated autoloads from battery.el
  (put 'battery-mode-line-string 'risky-local-variable t)
 
@@ -1715,11 +1695,10 @@
 Non-nil if Display-Battery mode is enabled.
 See the command `display-battery-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `display-battery-mode'.")
-
-(custom-autoload (quote display-battery-mode) "battery")
-
-(put (quote display-battery-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `display-battery-mode'.")
+
+(custom-autoload (quote display-battery-mode) "battery" nil)
 
 (autoload (quote display-battery-mode) "battery" "\
 Display battery status information in the mode line.
@@ -1733,7 +1712,7 @@
 ;;;***
 
 ;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run)
-;;;;;;  "benchmark" "emacs-lisp/benchmark.el" (17385 8489))
+;;;;;;  "benchmark" "emacs-lisp/benchmark.el" (17504 41540))
 ;;; Generated autoloads from emacs-lisp/benchmark.el
 
 (autoload (quote benchmark-run) "benchmark" "\
@@ -1765,8 +1744,8 @@
 
 ;;;***
 
-;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17531
-;;;;;;  7385))
+;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17746
+;;;;;;  34862))
 ;;; Generated autoloads from textmodes/bibtex.el
 
 (autoload (quote bibtex-mode) "bibtex" "\
@@ -1828,7 +1807,7 @@
 
 ;;;### (autoloads (binhex-decode-region binhex-decode-region-external
 ;;;;;;  binhex-decode-region-internal) "binhex" "gnus/binhex.el"
-;;;;;;  (17385 8492))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/binhex.el
 
 (defconst binhex-begin-line "^:...............................................................$")
@@ -1851,8 +1830,8 @@
 
 ;;;***
 
-;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17385
-;;;;;;  8495))
+;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from play/blackbox.el
 
 (autoload (quote blackbox) "blackbox" "\
@@ -1974,7 +1953,7 @@
 ;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save
 ;;;;;;  bookmark-write bookmark-delete bookmark-insert bookmark-rename
 ;;;;;;  bookmark-insert-location bookmark-relocate bookmark-jump
-;;;;;;  bookmark-set) "bookmark" "bookmark.el" (17385 8482))
+;;;;;;  bookmark-set) "bookmark" "bookmark.el" (17504 41540))
 ;;; Generated autoloads from bookmark.el
  (define-key ctl-x-map "rb" 'bookmark-jump)
  (define-key ctl-x-map "rm" 'bookmark-set)
@@ -2164,7 +2143,7 @@
 ;;;;;;  browse-url browse-url-of-region browse-url-of-dired-file
 ;;;;;;  browse-url-of-buffer browse-url-of-file browse-url-url-at-point
 ;;;;;;  browse-url-galeon-program browse-url-firefox-program browse-url-browser-function)
-;;;;;;  "browse-url" "net/browse-url.el" (17520 49736))
+;;;;;;  "browse-url" "net/browse-url.el" (17522 22309))
 ;;; Generated autoloads from net/browse-url.el
 
 (defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\
@@ -2178,17 +2157,17 @@
 function is passed the URL and any other args of `browse-url'.  The last
 regexp should probably be \".\" to specify a default browser.")
 
-(custom-autoload (quote browse-url-browser-function) "browse-url")
+(custom-autoload (quote browse-url-browser-function) "browse-url" t)
 
 (defvar browse-url-firefox-program "firefox" "\
 *The name by which to invoke Firefox.")
 
-(custom-autoload (quote browse-url-firefox-program) "browse-url")
+(custom-autoload (quote browse-url-firefox-program) "browse-url" t)
 
 (defvar browse-url-galeon-program "galeon" "\
 *The name by which to invoke Galeon.")
 
-(custom-autoload (quote browse-url-galeon-program) "browse-url")
+(custom-autoload (quote browse-url-galeon-program) "browse-url" t)
 
 (autoload (quote browse-url-url-at-point) "browse-url" "\
 Not documented
@@ -2495,8 +2474,8 @@
 
 ;;;***
 
-;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17385
-;;;;;;  8495))
+;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from play/bruce.el
 
 (autoload (quote bruce) "bruce" "\
@@ -2512,7 +2491,7 @@
 ;;;***
 
 ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
-;;;;;;  "bs" "bs.el" (17395 27411))
+;;;;;;  "bs" "bs.el" (17759 28868))
 ;;; Generated autoloads from bs.el
 
 (autoload (quote bs-cycle-next) "bs" "\
@@ -2553,8 +2532,8 @@
 ;;;***
 
 ;;;### (autoloads (insert-text-button make-text-button insert-button
-;;;;;;  make-button define-button-type) "button" "button.el" (17385
-;;;;;;  8482))
+;;;;;;  make-button define-button-type) "button" "button.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from button.el
 
 (defvar button-map (let ((map (make-sparse-keymap))) (define-key map "
" (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\
@@ -2642,7 +2621,7 @@
 ;;;;;;  batch-byte-compile-if-not-done display-call-tree byte-compile
 ;;;;;;  compile-defun byte-compile-file byte-recompile-directory
 ;;;;;;  byte-force-recompile byte-compile-warnings-safe-p) "bytecomp"
-;;;;;;  "emacs-lisp/bytecomp.el" (17582 40396))
+;;;;;;  "emacs-lisp/bytecomp.el" (17759 30016))
 ;;; Generated autoloads from emacs-lisp/bytecomp.el
 (put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
 (put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp)
@@ -2746,7 +2725,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17386 33146))
+;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17759 28868))
 ;;; Generated autoloads from calendar/cal-dst.el
 
 (put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t)
@@ -2756,7 +2735,7 @@
 ;;;***
 
 ;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el"
-;;;;;;  (17386 33146))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from calendar/cal-hebrew.el
 
 (autoload (quote list-yahrzeit-dates) "cal-hebrew" "\
@@ -2771,7 +2750,7 @@
 ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle
 ;;;;;;  calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc
 ;;;;;;  full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el"
-;;;;;;  (17671 12179))
+;;;;;;  (17672 28071))
 ;;; Generated autoloads from calc/calc.el
 
 (defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\
@@ -2849,8 +2828,8 @@
 
 ;;;***
 
-;;;### (autoloads (calculator) "calculator" "calculator.el" (17385
-;;;;;;  8482))
+;;;### (autoloads (calculator) "calculator" "calculator.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from calculator.el
 
 (autoload (quote calculator) "calculator" "\
@@ -2878,7 +2857,7 @@
 ;;;;;;  mark-holidays-in-calendar view-calendar-holidays-initially
 ;;;;;;  calendar-remove-frame-by-deleting mark-diary-entries-in-calendar
 ;;;;;;  view-diary-entries-initially calendar-offset) "calendar"
-;;;;;;  "calendar/calendar.el" (17694 34727))
+;;;;;;  "calendar/calendar.el" (17732 62701))
 ;;; Generated autoloads from calendar/calendar.el
 
 (defvar calendar-offset 0 "\
@@ -3451,7 +3430,7 @@
 ;;;***
 
 ;;;### (autoloads (canlock-verify canlock-insert-header) "canlock"
-;;;;;;  "gnus/canlock.el" (17385 8492))
+;;;;;;  "gnus/canlock.el" (17504 41540))
 ;;; Generated autoloads from gnus/canlock.el
 
 (autoload (quote canlock-insert-header) "canlock" "\
@@ -3468,15 +3447,15 @@
 
 ;;;***
 
-;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17515
-;;;;;;  24182))
+;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17508
+;;;;;;  50987))
 ;;; Generated autoloads from progmodes/cc-compat.el
 (put 'c-indent-level 'safe-local-variable 'integerp)
 
 ;;;***
 
 ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
-;;;;;;  (17408 40148))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/cc-engine.el
 
 (autoload (quote c-guess-basic-syntax) "cc-engine" "\
@@ -3488,7 +3467,7 @@
 
 ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
 ;;;;;;  c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;;  (17601 9092))
+;;;;;;  (17599 63482))
 ;;; Generated autoloads from progmodes/cc-mode.el
 
 (autoload (quote c-initialize-cc-mode) "cc-mode" "\
@@ -3646,7 +3625,7 @@
 ;;;***
 
 ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles"
-;;;;;;  "progmodes/cc-styles.el" (17520 49736))
+;;;;;;  "progmodes/cc-styles.el" (17522 22309))
 ;;; Generated autoloads from progmodes/cc-styles.el
 
 (autoload (quote c-set-style) "cc-styles" "\
@@ -3697,14 +3676,14 @@
 
 ;;;***
 
-;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17515
-;;;;;;  24182))
+;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17522
+;;;;;;  22309))
 ;;; Generated autoloads from progmodes/cc-subword.el
  (autoload 'c-subword-mode "cc-subword" "Mode enabling subword movement and editing keys." t)
 
 ;;;***
 
-;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17520 49736))
+;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17522 22309))
 ;;; Generated autoloads from progmodes/cc-vars.el
 (put 'c-basic-offset 'safe-local-variable 'integerp)
 (put 'c-backslash-column 'safe-local-variable 'integerp)
@@ -3714,7 +3693,7 @@
 
 ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program
 ;;;;;;  declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el"
-;;;;;;  (17102 18708))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from international/ccl.el
 
 (autoload (quote ccl-compile) "ccl" "\
@@ -3973,7 +3952,7 @@
 ;;;***
 
 ;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el"
-;;;;;;  (17669 23128))
+;;;;;;  (17671 29986))
 ;;; Generated autoloads from progmodes/cfengine.el
 
 (autoload (quote cfengine-mode) "cfengine" "\
@@ -3995,7 +3974,7 @@
 ;;;;;;  checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer
 ;;;;;;  checkdoc-eval-current-buffer checkdoc-message-interactive
 ;;;;;;  checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el"
-;;;;;;  (17651 6799))
+;;;;;;  (17746 34861))
 ;;; Generated autoloads from emacs-lisp/checkdoc.el
 
 (autoload (quote checkdoc) "checkdoc" "\
@@ -4178,8 +4157,8 @@
 ;;;***
 
 ;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer
-;;;;;;  decode-hz-region) "china-util" "language/china-util.el" (17246
-;;;;;;  40257))
+;;;;;;  decode-hz-region) "china-util" "language/china-util.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from language/china-util.el
 
 (autoload (quote decode-hz-region) "china-util" "\
@@ -4207,7 +4186,7 @@
 ;;;***
 
 ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command)
-;;;;;;  "chistory" "chistory.el" (17385 8482))
+;;;;;;  "chistory" "chistory.el" (17504 41540))
 ;;; Generated autoloads from chistory.el
 
 (autoload (quote repeat-matching-complex-command) "chistory" "\
@@ -4246,7 +4225,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17698 30385))
+;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17701 49518))
 ;;; Generated autoloads from emacs-lisp/cl.el
 
 (defvar custom-print-functions nil "\
@@ -4262,7 +4241,7 @@
 ;;;***
 
 ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el"
-;;;;;;  (17729 22475))
+;;;;;;  (17731 48935))
 ;;; Generated autoloads from emacs-lisp/cl-indent.el
 
 (autoload (quote common-lisp-indent-function) "cl-indent" "\
@@ -4273,7 +4252,7 @@
 ;;;***
 
 ;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el"
-;;;;;;  (17394 12937))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/cmacexp.el
 
 (autoload (quote c-macro-expand) "cmacexp" "\
@@ -4293,8 +4272,8 @@
 
 ;;;***
 
-;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17385
-;;;;;;  8482))
+;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from cmuscheme.el
 
 (autoload (quote run-scheme) "cmuscheme" "\
@@ -4316,7 +4295,7 @@
 
 ;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage
 ;;;;;;  cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage)
-;;;;;;  "codepage" "international/codepage.el" (17669 23128))
+;;;;;;  "codepage" "international/codepage.el" (17668 1411))
 ;;; Generated autoloads from international/codepage.el
 
 (autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\
@@ -4375,7 +4354,7 @@
 ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
 ;;;;;;  comint-redirect-send-command-to-process comint-redirect-send-command
 ;;;;;;  comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
-;;;;;;  (17692 12587))
+;;;;;;  (17759 29233))
 ;;; Generated autoloads from comint.el
 
 (defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\
@@ -4466,7 +4445,7 @@
 ;;;***
 
 ;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17636
-;;;;;;  60569))
+;;;;;;  48139))
 ;;; Generated autoloads from compare-w.el
 
 (autoload (quote compare-windows) "compare-w" "\
@@ -4503,7 +4482,7 @@
 ;;;;;;  compilation-shell-minor-mode compilation-mode compilation-start
 ;;;;;;  compile compilation-disable-input compile-command compilation-search-path
 ;;;;;;  compilation-ask-about-save compilation-window-height compilation-mode-hook)
-;;;;;;  "compile" "progmodes/compile.el" (17686 65476))
+;;;;;;  "compile" "progmodes/compile.el" (17759 29277))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4665,7 +4644,7 @@
 ;;;***
 
 ;;;### (autoloads (partial-completion-mode) "complete" "complete.el"
-;;;;;;  (17624 52650))
+;;;;;;  (17625 60530))
 ;;; Generated autoloads from complete.el
 
 (defvar partial-completion-mode nil "\
@@ -4707,7 +4686,7 @@
 ;;;***
 
 ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el"
-;;;;;;  (17704 4325))
+;;;;;;  (17704 3960))
 ;;; Generated autoloads from completion.el
 
 (defvar dynamic-completion-mode nil "\
@@ -4729,7 +4708,7 @@
 ;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after
 ;;;;;;  find-composition compose-chars decompose-string compose-string
 ;;;;;;  decompose-region compose-region encode-composition-rule)
-;;;;;;  "composite" "composite.el" (17321 50876))
+;;;;;;  "composite" "composite.el" (17504 41540))
 ;;; Generated autoloads from composite.el
 
 (defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\
@@ -4951,7 +4930,7 @@
 ;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
 ;;;;;;  conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode
 ;;;;;;  conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el"
-;;;;;;  (17679 3707))
+;;;;;;  (17680 45980))
 ;;; Generated autoloads from textmodes/conf-mode.el
 
 (autoload (quote conf-mode) "conf-mode" "\
@@ -5107,7 +5086,7 @@
 ;;;***
 
 ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie)
-;;;;;;  "cookie1" "play/cookie1.el" (17562 61275))
+;;;;;;  "cookie1" "play/cookie1.el" (17566 60307))
 ;;; Generated autoloads from play/cookie1.el
 
 (autoload (quote cookie) "cookie1" "\
@@ -5139,7 +5118,7 @@
 ;;;***
 
 ;;;### (autoloads (copyright copyright-fix-years copyright-update)
-;;;;;;  "copyright" "emacs-lisp/copyright.el" (17385 8489))
+;;;;;;  "copyright" "emacs-lisp/copyright.el" (17504 41540))
 ;;; Generated autoloads from emacs-lisp/copyright.el
 
 (autoload (quote copyright-update) "copyright" "\
@@ -5167,7 +5146,7 @@
 ;;;***
 
 ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode)
-;;;;;;  "cperl-mode" "progmodes/cperl-mode.el" (17723 56271))
+;;;;;;  "cperl-mode" "progmodes/cperl-mode.el" (17759 28873))
 ;;; Generated autoloads from progmodes/cperl-mode.el
 
 (autoload (quote cperl-mode) "cperl-mode" "\
@@ -5358,7 +5337,7 @@
 ;;;***
 
 ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el"
-;;;;;;  (17394 12937))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/cpp.el
 
 (autoload (quote cpp-highlight-buffer) "cpp" "\
@@ -5377,7 +5356,7 @@
 ;;;***
 
 ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el"
-;;;;;;  (17385 8490))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emulation/crisp.el
 
 (defvar crisp-mode nil "\
@@ -5388,7 +5367,7 @@
 Setting this variable directly does not take effect;
 use either M-x customize or the function `crisp-mode'.")
 
-(custom-autoload (quote crisp-mode) "crisp")
+(custom-autoload (quote crisp-mode) "crisp" nil)
 
 (autoload (quote crisp-mode) "crisp" "\
 Toggle CRiSP/Brief emulation minor mode.
@@ -5401,7 +5380,7 @@
 ;;;***
 
 ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
-;;;;;;  (17515 24181))
+;;;;;;  (17506 11763))
 ;;; Generated autoloads from emacs-lisp/crm.el
 
 (autoload (quote completing-read-multiple) "crm" "\
@@ -5437,7 +5416,7 @@
 ;;;***
 
 ;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el"
-;;;;;;  (17663 14247))
+;;;;;;  (17664 10809))
 ;;; Generated autoloads from emulation/cua-base.el
 
 (defvar cua-mode nil "\
@@ -5503,7 +5482,7 @@
 ;;;;;;  customize-face customize-changed-options customize-option-other-window
 ;;;;;;  customize-option customize-group-other-window customize-group
 ;;;;;;  customize-mode customize customize-save-variable customize-set-variable
-;;;;;;  customize-set-value) "cus-edit" "cus-edit.el" (17694 37217))
+;;;;;;  customize-set-value) "cus-edit" "cus-edit.el" (17759 28868))
 ;;; Generated autoloads from cus-edit.el
  (add-hook 'same-window-regexps "\\`\\*Customiz.*\\*\\'")
 
@@ -5792,7 +5771,7 @@
 ;;;***
 
 ;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces
-;;;;;;  custom-declare-face) "cus-face" "cus-face.el" (17385 8483))
+;;;;;;  custom-declare-face) "cus-face" "cus-face.el" (17504 41540))
 ;;; Generated autoloads from cus-face.el
 
 (autoload (quote custom-declare-face) "cus-face" "\
@@ -5862,7 +5841,7 @@
 ;;;***
 
 ;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el"
-;;;;;;  (17632 41885))
+;;;;;;  (17632 36218))
 ;;; Generated autoloads from cus-theme.el
 
 (autoload (quote customize-create-theme) "cus-theme" "\
@@ -5873,7 +5852,7 @@
 ;;;***
 
 ;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el"
-;;;;;;  (17495 43954))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from cvs-status.el
 
 (autoload (quote cvs-status-mode) "cvs-status" "\
@@ -5884,7 +5863,7 @@
 ;;;***
 
 ;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode)
-;;;;;;  "cwarn" "progmodes/cwarn.el" (17394 12937))
+;;;;;;  "cwarn" "progmodes/cwarn.el" (17504 41540))
 ;;; Generated autoloads from progmodes/cwarn.el
 
 (autoload (quote cwarn-mode) "cwarn" "\
@@ -5910,11 +5889,10 @@
 Non-nil if Global-Cwarn mode is enabled.
 See the command `global-cwarn-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `global-cwarn-mode'.")
-
-(custom-autoload (quote global-cwarn-mode) "cwarn")
-
-(put (quote global-cwarn-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `global-cwarn-mode'.")
+
+(custom-autoload (quote global-cwarn-mode) "cwarn" nil)
 
 (autoload (quote global-cwarn-mode) "cwarn" "\
 Toggle Cwarn mode in every buffer.
@@ -5928,7 +5906,7 @@
 
 ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
 ;;;;;;  cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
-;;;;;;  (17102 18767))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from language/cyril-util.el
 
 (autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\
@@ -5957,7 +5935,7 @@
 ;;;***
 
 ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
-;;;;;;  (17385 8483))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from dabbrev.el
  (define-key esc-map "/" 'dabbrev-expand)
  (define-key esc-map [?\C-/] 'dabbrev-completion)
@@ -6001,8 +5979,8 @@
 
 ;;;***
 
-;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17394
-;;;;;;  12937))
+;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from progmodes/dcl-mode.el
 
 (autoload (quote dcl-mode) "dcl-mode" "\
@@ -6129,7 +6107,7 @@
 ;;;***
 
 ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
-;;;;;;  "emacs-lisp/debug.el" (17440 13082))
+;;;;;;  "emacs-lisp/debug.el" (17504 41540))
 ;;; Generated autoloads from emacs-lisp/debug.el
 
 (setq debugger (quote debug))
@@ -6173,7 +6151,7 @@
 ;;;***
 
 ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el"
-;;;;;;  (17385 8495))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from play/decipher.el
 
 (autoload (quote decipher) "decipher" "\
@@ -6202,8 +6180,8 @@
 ;;;***
 
 ;;;### (autoloads (delimit-columns-rectangle delimit-columns-region
-;;;;;;  delimit-columns-customize) "delim-col" "delim-col.el" (17682
-;;;;;;  43100))
+;;;;;;  delimit-columns-customize) "delim-col" "delim-col.el" (17686
+;;;;;;  35928))
 ;;; Generated autoloads from delim-col.el
 
 (autoload (quote delimit-columns-customize) "delim-col" "\
@@ -6228,7 +6206,7 @@
 ;;;***
 
 ;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17604
-;;;;;;  60390))
+;;;;;;  18983))
 ;;; Generated autoloads from progmodes/delphi.el
 
 (autoload (quote delphi-mode) "delphi" "\
@@ -6278,8 +6256,8 @@
 
 ;;;***
 
-;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17385
-;;;;;;  8483))
+;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from delsel.el
 
 (defalias (quote pending-delete-mode) (quote delete-selection-mode))
@@ -6288,11 +6266,10 @@
 Non-nil if Delete-Selection mode is enabled.
 See the command `delete-selection-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `delete-selection-mode'.")
-
-(custom-autoload (quote delete-selection-mode) "delsel")
-
-(put (quote delete-selection-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `delete-selection-mode'.")
+
+(custom-autoload (quote delete-selection-mode) "delsel" nil)
 
 (autoload (quote delete-selection-mode) "delsel" "\
 Toggle Delete Selection mode.
@@ -6309,7 +6286,7 @@
 ;;;***
 
 ;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
-;;;;;;  "derived" "emacs-lisp/derived.el" (17385 8489))
+;;;;;;  "derived" "emacs-lisp/derived.el" (17504 41540))
 ;;; Generated autoloads from emacs-lisp/derived.el
 
 (autoload (quote define-derived-mode) "derived" "\
@@ -6374,7 +6351,7 @@
 ;;;***
 
 ;;;### (autoloads (describe-char describe-text-properties) "descr-text"
-;;;;;;  "descr-text.el" (17385 8483))
+;;;;;;  "descr-text.el" (17504 41540))
 ;;; Generated autoloads from descr-text.el
 
 (autoload (quote describe-text-properties) "descr-text" "\
@@ -6400,7 +6377,7 @@
 ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
 ;;;;;;  desktop-load-default desktop-read desktop-remove desktop-save
 ;;;;;;  desktop-clear desktop-locals-to-save desktop-save-mode) "desktop"
-;;;;;;  "desktop.el" (17670 57734))
+;;;;;;  "desktop.el" (17672 28070))
 ;;; Generated autoloads from desktop.el
 
 (defvar desktop-save-mode nil "\
@@ -6583,7 +6560,7 @@
 
 ;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article
 ;;;;;;  gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines)
-;;;;;;  "deuglify" "gnus/deuglify.el" (17495 43954))
+;;;;;;  "deuglify" "gnus/deuglify.el" (17504 41540))
 ;;; Generated autoloads from gnus/deuglify.el
 
 (autoload (quote gnus-article-outlook-unwrap-lines) "deuglify" "\
@@ -6616,7 +6593,7 @@
 ;;;***
 
 ;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region)
-;;;;;;  "devan-util" "language/devan-util.el" (17102 18768))
+;;;;;;  "devan-util" "language/devan-util.el" (17504 41540))
 ;;; Generated autoloads from language/devan-util.el
 
 (defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]")
@@ -6634,7 +6611,7 @@
 ;;;***
 
 ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib"
-;;;;;;  "calendar/diary-lib.el" (17520 49736))
+;;;;;;  "calendar/diary-lib.el" (17522 22309))
 ;;; Generated autoloads from calendar/diary-lib.el
 
 (autoload (quote diary) "diary-lib" "\
@@ -6680,7 +6657,7 @@
 ;;;***
 
 ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
-;;;;;;  "diff.el" (17683 64071))
+;;;;;;  "diff.el" (17544 39648))
 ;;; Generated autoloads from diff.el
 
 (defvar diff-switches "-c" "\
@@ -6714,7 +6691,7 @@
 ;;;***
 
 ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el"
-;;;;;;  (17670 57734))
+;;;;;;  (17672 28070))
 ;;; Generated autoloads from diff-mode.el
 
 (autoload (quote diff-mode) "diff-mode" "\
@@ -6744,7 +6721,7 @@
 ;;;;;;  dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
 ;;;;;;  dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
 ;;;;;;  dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
-;;;;;;  "dired" "dired.el" (17697 23215))
+;;;;;;  "dired" "dired.el" (17746 34860))
 ;;; Generated autoloads from dired.el
 
 (defvar dired-listing-switches "-al" "\
@@ -6949,7 +6926,7 @@
 ;;;;;;  dired-run-shell-command dired-do-shell-command dired-clean-directory
 ;;;;;;  dired-do-print dired-do-touch dired-do-chown dired-do-chgrp
 ;;;;;;  dired-do-chmod dired-compare-directories dired-backup-diff
-;;;;;;  dired-diff) "dired-aux" "dired-aux.el" (17718 28532))
+;;;;;;  dired-diff) "dired-aux" "dired-aux.el" (17746 34860))
 ;;; Generated autoloads from dired-aux.el
 
 (autoload (quote dired-diff) "dired-aux" "\
@@ -7361,7 +7338,7 @@
 
 ;;;***
 
-;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17656 37701))
+;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17656 34193))
 ;;; Generated autoloads from dired-x.el
 
 (autoload (quote dired-jump) "dired-x" "\
@@ -7375,7 +7352,7 @@
 
 ;;;***
 
-;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17582 40396))
+;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17586 63360))
 ;;; Generated autoloads from dirtrack.el
 
 (autoload (quote dirtrack) "dirtrack" "\
@@ -7394,8 +7371,8 @@
 
 ;;;***
 
-;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17385
-;;;;;;  8489))
+;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from emacs-lisp/disass.el
 
 (autoload (quote disassemble) "disass" "\
@@ -7413,7 +7390,7 @@
 ;;;;;;  standard-display-graphic standard-display-g1 standard-display-ascii
 ;;;;;;  standard-display-default standard-display-8bit describe-current-display-table
 ;;;;;;  describe-display-table set-display-table-slot display-table-slot
-;;;;;;  make-display-table) "disp-table" "disp-table.el" (17385 8483))
+;;;;;;  make-display-table) "disp-table" "disp-table.el" (17504 41540))
 ;;; Generated autoloads from disp-table.el
 
 (autoload (quote make-display-table) "disp-table" "\
@@ -7514,7 +7491,7 @@
 ;;;***
 
 ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el"
-;;;;;;  (17385 8495))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from play/dissociate.el
 
 (autoload (quote dissociated-press) "dissociate" "\
@@ -7530,7 +7507,7 @@
 
 ;;;***
 
-;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17709 24917))
+;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17710 3074))
 ;;; Generated autoloads from dnd.el
 
 (defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file) ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file))) "\
@@ -7551,7 +7528,7 @@
 ;;;***
 
 ;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode"
-;;;;;;  "textmodes/dns-mode.el" (17632 41886))
+;;;;;;  "textmodes/dns-mode.el" (17630 16368))
 ;;; Generated autoloads from textmodes/dns-mode.el
 
 (autoload (quote dns-mode) "dns-mode" "\
@@ -7575,7 +7552,7 @@
 
 ;;;***
 
-;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17366 25285))
+;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17504 41540))
 ;;; Generated autoloads from play/doctor.el
 
 (autoload (quote doctor) "doctor" "\
@@ -7586,7 +7563,7 @@
 ;;;***
 
 ;;;### (autoloads (double-mode double-mode) "double" "double.el"
-;;;;;;  (17385 8483))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from double.el
 
 (defvar double-mode nil "\
@@ -7594,7 +7571,7 @@
 Setting this variable directly does not take effect;
 use either \\[customize] or the function `double-mode'.")
 
-(custom-autoload (quote double-mode) "double")
+(custom-autoload (quote double-mode) "double" nil)
 
 (autoload (quote double-mode) "double" "\
 Toggle Double mode.
@@ -7607,7 +7584,7 @@
 
 ;;;***
 
-;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17579 53341))
+;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17746 34862))
 ;;; Generated autoloads from play/dunnet.el
 
 (autoload (quote dunnet) "dunnet" "\
@@ -7618,7 +7595,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el"
-;;;;;;  (17385 8492))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/earcon.el
 
 (autoload (quote gnus-earcon-display) "earcon" "\
@@ -7630,7 +7607,7 @@
 
 ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
 ;;;;;;  define-global-minor-mode define-minor-mode) "easy-mmode"
-;;;;;;  "emacs-lisp/easy-mmode.el" (17656 37701))
+;;;;;;  "emacs-lisp/easy-mmode.el" (17656 34193))
 ;;; Generated autoloads from emacs-lisp/easy-mmode.el
 
 (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode))
@@ -7722,8 +7699,8 @@
 ;;;***
 
 ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define
-;;;;;;  easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17385
-;;;;;;  8489))
+;;;;;;  easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17658
+;;;;;;  58024))
 ;;; Generated autoloads from emacs-lisp/easymenu.el
 
 (put (quote easy-menu-define) (quote lisp-indent-function) (quote defun))
@@ -7868,7 +7845,7 @@
 ;;;;;;  ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file
 ;;;;;;  ebnf-spool-directory ebnf-print-region ebnf-print-buffer
 ;;;;;;  ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps"
-;;;;;;  "progmodes/ebnf2ps.el" (17690 51743))
+;;;;;;  "progmodes/ebnf2ps.el" (17759 28873))
 ;;; Generated autoloads from progmodes/ebnf2ps.el
 
 (autoload (quote ebnf-customize) "ebnf2ps" "\
@@ -8127,8 +8104,8 @@
 ;;;;;;  ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition
 ;;;;;;  ebrowse-tags-view-definition ebrowse-tags-find-declaration
 ;;;;;;  ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree
-;;;;;;  ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17601
-;;;;;;  9092))
+;;;;;;  ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17588
+;;;;;;  11509))
 ;;; Generated autoloads from progmodes/ebrowse.el
 
 (autoload (quote ebrowse-tree-mode) "ebrowse" "\
@@ -8279,7 +8256,7 @@
 ;;;***
 
 ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el"
-;;;;;;  (17385 8483))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from ebuff-menu.el
 
 (autoload (quote electric-buffer-list) "ebuff-menu" "\
@@ -8304,7 +8281,7 @@
 ;;;***
 
 ;;;### (autoloads (Electric-command-history-redo-expression) "echistory"
-;;;;;;  "echistory.el" (17385 8483))
+;;;;;;  "echistory.el" (17504 41540))
 ;;; Generated autoloads from echistory.el
 
 (autoload (quote Electric-command-history-redo-expression) "echistory" "\
@@ -8317,7 +8294,7 @@
 
 ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form
 ;;;;;;  edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
-;;;;;;  "emacs-lisp/edebug.el" (17632 41885))
+;;;;;;  "emacs-lisp/edebug.el" (17628 62479))
 ;;; Generated autoloads from emacs-lisp/edebug.el
 
 (defvar edebug-all-defs nil "\
@@ -8390,7 +8367,7 @@
 ;;;;;;  ediff-merge-directory-revisions ediff-merge-directories-with-ancestor
 ;;;;;;  ediff-merge-directories ediff-directories3 ediff-directory-revisions
 ;;;;;;  ediff-directories ediff-buffers3 ediff-buffers ediff-backup
-;;;;;;  ediff-files3 ediff-files) "ediff" "ediff.el" (17726 28398))
+;;;;;;  ediff-files3 ediff-files) "ediff" "ediff.el" (17759 28868))
 ;;; Generated autoloads from ediff.el
 
 (autoload (quote ediff-files) "ediff" "\
@@ -8628,7 +8605,7 @@
 ;;;***
 
 ;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el"
-;;;;;;  (17403 27596))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from ediff-help.el
 
 (autoload (quote ediff-customize) "ediff-help" "\
@@ -8638,7 +8615,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17403 27596))
+;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17504 41540))
 ;;; Generated autoloads from ediff-hook.el
 
 (defvar ediff-window-setup-function)
@@ -8651,7 +8628,7 @@
 ;;;***
 
 ;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el"
-;;;;;;  (17726 28398))
+;;;;;;  (17731 48935))
 ;;; Generated autoloads from ediff-mult.el
 
 (autoload (quote ediff-show-registry) "ediff-mult" "\
@@ -8664,7 +8641,7 @@
 ;;;***
 
 ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe)
-;;;;;;  "ediff-util" "ediff-util.el" (17679 3707))
+;;;;;;  "ediff-util" "ediff-util.el" (17680 45980))
 ;;; Generated autoloads from ediff-util.el
 
 (autoload (quote ediff-toggle-multiframe) "ediff-util" "\
@@ -8685,7 +8662,7 @@
 
 ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro
 ;;;;;;  edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el"
-;;;;;;  (17618 8193))
+;;;;;;  (17618 27597))
 ;;; Generated autoloads from edmacro.el
 
 (defvar edmacro-eight-bits nil "\
@@ -8738,7 +8715,7 @@
 ;;;***
 
 ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt"
-;;;;;;  "emulation/edt.el" (17385 8491))
+;;;;;;  "emulation/edt.el" (17504 41540))
 ;;; Generated autoloads from emulation/edt.el
 
 (autoload (quote edt-set-scroll-margins) "edt" "\
@@ -8756,7 +8733,7 @@
 ;;;***
 
 ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el"
-;;;;;;  (17385 8484))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from ehelp.el
 
 (autoload (quote with-electric-help) "ehelp" "\
@@ -8794,7 +8771,7 @@
 ;;;***
 
 ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17665 54136))
+;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17721 38189))
 ;;; Generated autoloads from emacs-lisp/eldoc.el
 
 (defvar eldoc-minor-mode-string " ElDoc" "\
@@ -8832,8 +8809,8 @@
 
 ;;;***
 
-;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17385
-;;;;;;  8484))
+;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from elide-head.el
 
 (autoload (quote elide-head) "elide-head" "\
@@ -8849,7 +8826,7 @@
 ;;;***
 
 ;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el"
-;;;;;;  (17385 8490))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emacs-lisp/elint.el
 
 (autoload (quote elint-initialize) "elint" "\
@@ -8860,8 +8837,8 @@
 ;;;***
 
 ;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list
-;;;;;;  elp-instrument-function) "elp" "emacs-lisp/elp.el" (17385
-;;;;;;  8490))
+;;;;;;  elp-instrument-function) "elp" "emacs-lisp/elp.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from emacs-lisp/elp.el
 
 (autoload (quote elp-instrument-function) "elp" "\
@@ -8895,7 +8872,7 @@
 ;;;***
 
 ;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17746 34862))
 ;;; Generated autoloads from mail/emacsbug.el
 
 (autoload (quote report-emacs-bug) "emacsbug" "\
@@ -8910,7 +8887,7 @@
 ;;;;;;  emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote
 ;;;;;;  emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor
 ;;;;;;  emerge-buffers emerge-files-with-ancestor emerge-files) "emerge"
-;;;;;;  "emerge.el" (17167 2962))
+;;;;;;  "emerge.el" (17504 41540))
 ;;; Generated autoloads from emerge.el
 
 (defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge"))
@@ -8988,18 +8965,17 @@
 ;;;***
 
 ;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el"
-;;;;;;  (17102 18713))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from international/encoded-kb.el
 
 (defvar encoded-kbd-mode nil "\
 Non-nil if Encoded-Kbd mode is enabled.
 See the command `encoded-kbd-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `encoded-kbd-mode'.")
-
-(custom-autoload (quote encoded-kbd-mode) "encoded-kb")
-
-(put (quote encoded-kbd-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `encoded-kbd-mode'.")
+
+(custom-autoload (quote encoded-kbd-mode) "encoded-kb" nil)
 
 (autoload (quote encoded-kbd-mode) "encoded-kb" "\
 Toggle Encoded-kbd minor mode.
@@ -9018,7 +8994,7 @@
 ;;;***
 
 ;;;### (autoloads (enriched-decode enriched-encode enriched-mode)
-;;;;;;  "enriched" "textmodes/enriched.el" (17385 8496))
+;;;;;;  "enriched" "textmodes/enriched.el" (17746 34862))
 ;;; Generated autoloads from textmodes/enriched.el
 
 (autoload (quote enriched-mode) "enriched" "\
@@ -9049,7 +9025,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-handle-irc-url erc-select erc-select-read-args)
-;;;;;;  "erc" "erc/erc.el" (17624 52650))
+;;;;;;  "erc" "erc/erc.el" (17746 35371))
 ;;; Generated autoloads from erc/erc.el
 
 (autoload (quote erc-select-read-args) "erc" "\
@@ -9085,27 +9061,27 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17601
-;;;;;;  9092))
+;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from erc/erc-autoaway.el
  (autoload 'erc-autoaway-mode "erc-autoaway")
 
 ;;;***
 
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17447 52274))
+;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-button.el
  (autoload 'erc-button-mode "erc-button" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17372 48745))
+;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-compat.el
  (autoload 'erc-define-minor-mode "erc-compat")
 
 ;;;***
 
 ;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC)
-;;;;;;  "erc-dcc" "erc/erc-dcc.el" (17393 3826))
+;;;;;;  "erc-dcc" "erc/erc-dcc.el" (17746 34861))
 ;;; Generated autoloads from erc/erc-dcc.el
 
 (autoload (quote erc-cmd-DCC) "erc-dcc" "\
@@ -9137,7 +9113,7 @@
 ;;;;;;  erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list
 ;;;;;;  erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action
 ;;;;;;  erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el"
-;;;;;;  (17468 10541))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from erc/erc-ezbounce.el
 
 (autoload (quote erc-cmd-ezb) "erc-ezbounce" "\
@@ -9199,8 +9175,8 @@
 
 ;;;***
 
-;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17391
-;;;;;;  39324))
+;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from erc/erc-fill.el
  (autoload 'erc-fill-mode "erc-fill" nil t)
 
@@ -9212,15 +9188,15 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17391
-;;;;;;  39324))
+;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from erc/erc-hecomplete.el
  (autoload 'erc-hecomplete-mode "erc-hecomplete" nil t)
 
 ;;;***
 
 ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd"
-;;;;;;  "erc/erc-identd.el" (17601 9092))
+;;;;;;  "erc/erc-identd.el" (17592 59702))
 ;;; Generated autoloads from erc/erc-identd.el
  (autoload 'erc-identd-mode "erc-identd")
 
@@ -9242,7 +9218,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el"
-;;;;;;  (17601 9092))
+;;;;;;  (17592 59702))
 ;;; Generated autoloads from erc/erc-imenu.el
 
 (autoload (quote erc-create-imenu-index) "erc-imenu" "\
@@ -9252,14 +9228,14 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17468 10541))
+;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-join.el
  (autoload 'erc-autojoin-mode "erc-join" nil t)
 
 ;;;***
 
 ;;;### (autoloads (erc-chanlist erc-list-channels) "erc-list" "erc/erc-list.el"
-;;;;;;  (17391 39324))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from erc/erc-list.el
  (autoload 'erc-list-mode "erc-list")
 
@@ -9280,7 +9256,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log"
-;;;;;;  "erc/erc-log.el" (17624 52650))
+;;;;;;  "erc/erc-log.el" (17623 45181))
 ;;; Generated autoloads from erc/erc-log.el
  (autoload 'erc-log-mode "erc-log" nil t)
 
@@ -9312,7 +9288,7 @@
 ;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host
 ;;;;;;  erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool
 ;;;;;;  erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el"
-;;;;;;  (17632 41885))
+;;;;;;  (17632 36219))
 ;;; Generated autoloads from erc/erc-match.el
  (autoload 'erc-match-mode "erc-match")
 
@@ -9359,7 +9335,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el"
-;;;;;;  (17468 10541))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from erc/erc-netsplit.el
  (autoload 'erc-netsplit-mode "erc-netsplit")
 
@@ -9371,7 +9347,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks"
-;;;;;;  "erc/erc-networks.el" (17391 39324))
+;;;;;;  "erc/erc-networks.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-networks.el
 
 (autoload (quote erc-determine-network) "erc-networks" "\
@@ -9389,7 +9365,7 @@
 ;;;***
 
 ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify"
-;;;;;;  "erc/erc-notify.el" (17391 39324))
+;;;;;;  "erc/erc-notify.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-notify.el
  (autoload 'erc-notify-mode "erc-notify" nil t)
 
@@ -9407,33 +9383,33 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17391 39324))
+;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-page.el
  (autoload 'erc-page-mode "erc-page")
 
 ;;;***
 
-;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17601
-;;;;;;  9092))
+;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17592
+;;;;;;  59702))
 ;;; Generated autoloads from erc/erc-pcomplete.el
  (autoload 'erc-completion-mode "erc-pcomplete" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17391 39324))
+;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-replace.el
  (autoload 'erc-replace-mode "erc-replace")
 
 ;;;***
 
-;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17391 39324))
+;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-ring.el
  (autoload 'erc-ring-mode "erc-ring" nil t)
 
 ;;;***
 
 ;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode)
-;;;;;;  "erc-services" "erc/erc-services.el" (17391 39324))
+;;;;;;  "erc-services" "erc/erc-services.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-services.el
  (autoload 'erc-services-mode "erc-services" nil t)
 
@@ -9450,14 +9426,14 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17391 39324))
+;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-sound.el
  (autoload 'erc-sound-mode "erc-sound")
 
 ;;;***
 
 ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el"
-;;;;;;  (17391 39324))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from erc/erc-speedbar.el
 
 (autoload (quote erc-speedbar-browser) "erc-speedbar" "\
@@ -9469,19 +9445,19 @@
 ;;;***
 
 ;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17618
-;;;;;;  8193))
+;;;;;;  27598))
 ;;; Generated autoloads from erc/erc-spelling.el
  (autoload 'erc-spelling-mode "erc-spelling" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17395 55370))
+;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17504 41540))
 ;;; Generated autoloads from erc/erc-stamp.el
  (autoload 'erc-timestamp-mode "erc-stamp" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17601 9092))
+;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17592 59703))
 ;;; Generated autoloads from erc/erc-track.el
  (autoload 'erc-track-mode "erc-track" nil t)
  (autoload 'erc-track-when-inactive-mode "erc-track" nil t)
@@ -9489,7 +9465,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size)
-;;;;;;  "erc-truncate" "erc/erc-truncate.el" (17391 39324))
+;;;;;;  "erc-truncate" "erc/erc-truncate.el" (17746 34861))
 ;;; Generated autoloads from erc/erc-truncate.el
  (autoload 'erc-truncate-mode "erc-truncate" nil t)
 
@@ -9509,7 +9485,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el"
-;;;;;;  (17391 39324))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from erc/erc-xdcc.el
 
 (autoload (quote erc-xdcc-add-file) "erc-xdcc" "\
@@ -9519,8 +9495,8 @@
 
 ;;;***
 
-;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17385
-;;;;;;  8492))
+;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from eshell/esh-mode.el
 
 (autoload (quote eshell-mode) "esh-mode" "\
@@ -9532,8 +9508,8 @@
 
 ;;;***
 
-;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17385
-;;;;;;  8492))
+;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from eshell/esh-test.el
 
 (autoload (quote eshell-test) "esh-test" "\
@@ -9544,7 +9520,7 @@
 ;;;***
 
 ;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command
-;;;;;;  eshell) "eshell" "eshell/eshell.el" (17427 10521))
+;;;;;;  eshell) "eshell" "eshell/eshell.el" (17504 41540))
 ;;; Generated autoloads from eshell/eshell.el
 
 (autoload (quote eshell) "eshell" "\
@@ -9590,7 +9566,7 @@
 ;;;;;;  visit-tags-table tags-table-mode find-tag-default-function
 ;;;;;;  find-tag-hook tags-add-tables tags-compression-info-list
 ;;;;;;  tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el"
-;;;;;;  (17408 40149))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/etags.el
 
 (defvar tags-file-name nil "\
@@ -9605,7 +9581,7 @@
 A value of t means case-insensitive, a value of nil means case-sensitive.
 Any other value means use the setting of `case-fold-search'.")
 
-(custom-autoload (quote tags-case-fold-search) "etags")
+(custom-autoload (quote tags-case-fold-search) "etags" t)
 
 (defvar tags-table-list nil "\
 *List of file names of tags tables to search.
@@ -9614,7 +9590,7 @@
 If you set this variable, do not also set `tags-file-name'.
 Use the `etags' program to make a tags table file.")
 
-(custom-autoload (quote tags-table-list) "etags")
+(custom-autoload (quote tags-table-list) "etags" t)
 
 (defvar tags-compression-info-list (quote ("" ".Z" ".bz2" ".gz" ".tgz")) "\
 *List of extensions tried by etags when jka-compr is used.
@@ -9623,7 +9599,7 @@
 \(i.e. via customize of `auto-compression-mode' or by calling the function
 `auto-compression-mode').")
 
-(custom-autoload (quote tags-compression-info-list) "etags")
+(custom-autoload (quote tags-compression-info-list) "etags" t)
 
 (defvar tags-add-tables (quote ask-user) "\
 *Control whether to add a new tags table to the current list.
@@ -9631,14 +9607,14 @@
 Any other value means ask the user whether to add a new tags table
 to the current list (as opposed to starting a new list).")
 
-(custom-autoload (quote tags-add-tables) "etags")
+(custom-autoload (quote tags-add-tables) "etags" t)
 
 (defvar find-tag-hook nil "\
 *Hook to be run by \\[find-tag] after finding a tag.  See `run-hooks'.
 The value in the buffer in which \\[find-tag] is done is used,
 not the value in the buffer \\[find-tag] goes to.")
 
-(custom-autoload (quote find-tag-hook) "etags")
+(custom-autoload (quote find-tag-hook) "etags" t)
 
 (defvar find-tag-default-function nil "\
 *A function of no arguments used by \\[find-tag] to pick a default tag.
@@ -9646,7 +9622,7 @@
 has a `find-tag-default-function' property (see `put'), that is used.
 Otherwise, `find-tag-default' is used.")
 
-(custom-autoload (quote find-tag-default-function) "etags")
+(custom-autoload (quote find-tag-default-function) "etags" t)
 
 (autoload (quote tags-table-mode) "etags" "\
 Major mode for tags table file buffers.
@@ -9892,7 +9868,7 @@
 ;;;;;;  ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker
 ;;;;;;  ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker
 ;;;;;;  ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal)
-;;;;;;  "ethio-util" "language/ethio-util.el" (17551 7908))
+;;;;;;  "ethio-util" "language/ethio-util.el" (17557 12727))
 ;;; Generated autoloads from language/ethio-util.el
 
 (autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\
@@ -10087,7 +10063,7 @@
 
 ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
 ;;;;;;  eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from net/eudc.el
 
 (autoload (quote eudc-set-server) "eudc" "\
@@ -10143,7 +10119,7 @@
 
 ;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
 ;;;;;;  eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
-;;;;;;  "eudc-bob" "net/eudc-bob.el" (17385 8494))
+;;;;;;  "eudc-bob" "net/eudc-bob.el" (17504 41540))
 ;;; Generated autoloads from net/eudc-bob.el
 
 (autoload (quote eudc-display-generic-binary) "eudc-bob" "\
@@ -10179,7 +10155,7 @@
 ;;;***
 
 ;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
-;;;;;;  "eudc-export" "net/eudc-export.el" (17385 8494))
+;;;;;;  "eudc-export" "net/eudc-export.el" (17504 41540))
 ;;; Generated autoloads from net/eudc-export.el
 
 (autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\
@@ -10196,7 +10172,7 @@
 ;;;***
 
 ;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from net/eudc-hotlist.el
 
 (autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\
@@ -10206,8 +10182,8 @@
 
 ;;;***
 
-;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17531
-;;;;;;  7384))
+;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17541
+;;;;;;  35103))
 ;;; Generated autoloads from emacs-lisp/ewoc.el
 
 (autoload (quote ewoc-create) "ewoc" "\
@@ -10236,7 +10212,7 @@
 ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p
 ;;;;;;  executable-self-display executable-set-magic executable-interpret
 ;;;;;;  executable-command-find-posix-p) "executable" "progmodes/executable.el"
-;;;;;;  (17394 12937))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/executable.el
 
 (autoload (quote executable-command-find-posix-p) "executable" "\
@@ -10278,7 +10254,7 @@
 ;;;***
 
 ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
-;;;;;;  expand-add-abbrevs) "expand" "expand.el" (17385 8484))
+;;;;;;  expand-add-abbrevs) "expand" "expand.el" (17746 34860))
 ;;; Generated autoloads from expand.el
 
 (autoload (quote expand-add-abbrevs) "expand" "\
@@ -10321,7 +10297,7 @@
 
 ;;;***
 
-;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17386 33146))
+;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17759 28873))
 ;;; Generated autoloads from progmodes/f90.el
 
 (autoload (quote f90-mode) "f90" "\
@@ -10388,7 +10364,7 @@
 ;;;;;;  facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only
 ;;;;;;  facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu
 ;;;;;;  facemenu-set-background facemenu-set-foreground facemenu-set-face)
-;;;;;;  "facemenu" "facemenu.el" (17718 28532))
+;;;;;;  "facemenu" "facemenu.el" (17718 30634))
 ;;; Generated autoloads from facemenu.el
  (define-key global-map "\M-o" 'facemenu-keymap)
  (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap)
@@ -10555,49 +10531,9 @@
 
 ;;;***
 
-;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock"
-;;;;;;  "obsolete/fast-lock.el" (17676 15926))
-;;; Generated autoloads from obsolete/fast-lock.el
-
-(autoload (quote fast-lock-mode) "fast-lock" "\
-Toggle Fast Lock mode.
-With arg, turn Fast Lock mode on if and only if arg is positive and the buffer
-is associated with a file.  Enable it automatically in your `~/.emacs' by:
-
- (setq font-lock-support-mode 'fast-lock-mode)
-
-If Fast Lock mode is enabled, and the current buffer does not contain any text
-properties, any associated Font Lock cache is used if its timestamp matches the
-buffer's file, and its `font-lock-keywords' match those that you are using.
-
-Font Lock caches may be saved:
-- When you save the file's buffer.
-- When you kill an unmodified file's buffer.
-- When you exit Emacs, for all unmodified or saved buffers.
-Depending on the value of `fast-lock-save-events'.
-See also the commands `fast-lock-read-cache' and `fast-lock-save-cache'.
-
-Use \\[font-lock-fontify-buffer] to fontify the buffer if the cache is bad.
-
-Various methods of control are provided for the Font Lock cache.  In general,
-see variable `fast-lock-cache-directories' and function `fast-lock-cache-name'.
-For saving, see variables `fast-lock-minimum-size', `fast-lock-save-events',
-`fast-lock-save-others' and `fast-lock-save-faces'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload (quote turn-on-fast-lock) "fast-lock" "\
-Unconditionally turn on Fast Lock mode.
-
-\(fn)" nil nil)
-
-(when (fboundp (quote add-minor-mode)) (defvar fast-lock-mode nil) (add-minor-mode (quote fast-lock-mode) nil))
-
-;;;***
-
 ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
 ;;;;;;  feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
-;;;;;;  feedmail-send-it) "feedmail" "mail/feedmail.el" (17660 25612))
+;;;;;;  feedmail-send-it) "feedmail" "mail/feedmail.el" (17746 34862))
 ;;; Generated autoloads from mail/feedmail.el
 
 (autoload (quote feedmail-send-it) "feedmail" "\
@@ -10608,12 +10544,12 @@
 \(fn)" nil nil)
 
 (autoload (quote feedmail-run-the-queue-no-prompts) "feedmail" "\
-Like feedmail-run-the-queue, but suppress confirmation prompts.
+Like `feedmail-run-the-queue', but suppress confirmation prompts.
 
 \(fn &optional ARG)" t nil)
 
 (autoload (quote feedmail-run-the-queue-global-prompt) "feedmail" "\
-Like feedmail-run-the-queue, but with a global confirmation prompt.
+Like `feedmail-run-the-queue', but with a global confirmation prompt.
 This is generally most useful if run non-interactively, since you can
 bail out with an appropriate answer to the global confirmation prompt.
 
@@ -10631,7 +10567,7 @@
 Perform some kind of reminder activity about queued and draft messages.
 Called with an optional symbol argument which says what kind of event
 is triggering the reminder activity.  The default is 'on-demand, which
-is what you typically would use if you were putting this in your emacs start-up
+is what you typically would use if you were putting this in your Emacs start-up
 or mail hook code.  Other recognized values for WHAT-EVENT (these are passed
 internally by feedmail):
 
@@ -10640,18 +10576,18 @@
    after-draft          (a message has just been placed in the draft directory)
    after-run            (the queue has just been run, possibly sending messages)
 
-WHAT-EVENT is used as a key into the table feedmail-queue-reminder-alist.  If
+WHAT-EVENT is used as a key into the table `feedmail-queue-reminder-alist'.  If
 the associated value is a function, it is called without arguments and is expected
 to perform the reminder activity.  You can supply your own reminder functions
-by redefining feedmail-queue-reminder-alist.  If you don't want any reminders,
-you can set feedmail-queue-reminder-alist to nil.
+by redefining `feedmail-queue-reminder-alist'.  If you don't want any reminders,
+you can set `feedmail-queue-reminder-alist' to nil.
 
 \(fn &optional WHAT-EVENT)" t nil)
 
 ;;;***
 
 ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu
-;;;;;;  find-file-at-point ffap-next) "ffap" "ffap.el" (17697 23215))
+;;;;;;  find-file-at-point ffap-next) "ffap" "ffap.el" (17746 34860))
 ;;; Generated autoloads from ffap.el
 
 (autoload (quote ffap-next) "ffap" "\
@@ -10710,7 +10646,7 @@
 ;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively
 ;;;;;;  file-cache-add-directory-using-locate file-cache-add-directory-using-find
 ;;;;;;  file-cache-add-file file-cache-add-directory-list file-cache-add-directory)
-;;;;;;  "filecache" "filecache.el" (17669 23128))
+;;;;;;  "filecache" "filecache.el" (17669 35274))
 ;;; Generated autoloads from filecache.el
 
 (autoload (quote file-cache-add-directory) "filecache" "\
@@ -10769,8 +10705,8 @@
 
 ;;;***
 
-;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17714
-;;;;;;  34817))
+;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17715
+;;;;;;  55644))
 ;;; Generated autoloads from filesets.el
 
 (autoload (quote filesets-init) "filesets" "\
@@ -10781,7 +10717,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "fill" "textmodes/fill.el" (17665 54136))
+;;;### (autoloads nil "fill" "textmodes/fill.el" (17746 34862))
 ;;; Generated autoloads from textmodes/fill.el
 (put 'colon-double-space 'safe-local-variable 'booleanp)
 
@@ -10789,7 +10725,7 @@
 
 ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
 ;;;;;;  find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
-;;;;;;  (17651 3608))
+;;;;;;  (17652 14941))
 ;;; Generated autoloads from find-dired.el
 
 (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\
@@ -10850,7 +10786,7 @@
 
 ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file
 ;;;;;;  ff-find-other-file ff-get-other-file) "find-file" "find-file.el"
-;;;;;;  (17601 9091))
+;;;;;;  (17595 2870))
 ;;; Generated autoloads from find-file.el
 
 (defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (buffer-substring (match-beginning 2) (match-end 2))))) "\
@@ -10944,7 +10880,7 @@
 ;;;;;;  find-variable find-variable-noselect find-function-other-frame
 ;;;;;;  find-function-other-window find-function find-function-noselect
 ;;;;;;  find-function-search-for-symbol find-library) "find-func"
-;;;;;;  "emacs-lisp/find-func.el" (17697 23215))
+;;;;;;  "emacs-lisp/find-func.el" (17746 34861))
 ;;; Generated autoloads from emacs-lisp/find-func.el
 
 (autoload (quote find-library) "find-func" "\
@@ -10973,7 +10909,7 @@
 the buffer, returns (BUFFER).
 
 If the file where FUNCTION is defined is not known, then it is
-searched for in `find-function-source-path' if non nil, otherwise
+searched for in `find-function-source-path' if non-nil, otherwise
 in `load-path'.
 
 \(fn FUNCTION)" nil nil)
@@ -10987,7 +10923,7 @@
 Set mark before moving, if the buffer already existed.
 
 The library where FUNCTION is defined is searched for in
-`find-function-source-path', if non nil, otherwise in `load-path'.
+`find-function-source-path', if non-nil, otherwise in `load-path'.
 See also `find-function-recenter-line' and `find-function-after-hook'.
 
 \(fn FUNCTION)" t nil)
@@ -11014,7 +10950,7 @@
 If the variable's definition can't be found in the buffer, return (BUFFER).
 
 The library where VARIABLE is defined is searched for in FILE or
-`find-function-source-path', if non nil, otherwise in `load-path'.
+`find-function-source-path', if non-nil, otherwise in `load-path'.
 
 \(fn VARIABLE &optional FILE)" nil nil)
 
@@ -11028,7 +10964,7 @@
 Set mark before moving, if the buffer already existed.
 
 The library where VARIABLE is defined is searched for in
-`find-function-source-path', if non nil, otherwise in `load-path'.
+`find-function-source-path', if non-nil, otherwise in `load-path'.
 See also `find-function-recenter-line' and `find-function-after-hook'.
 
 \(fn VARIABLE)" t nil)
@@ -11055,7 +10991,7 @@
 buffer nor display it.
 
 The library where SYMBOL is defined is searched for in FILE or
-`find-function-source-path', if non nil, otherwise in `load-path'.
+`find-function-source-path', if non-nil, otherwise in `load-path'.
 
 \(fn SYMBOL TYPE &optional FILE)" nil nil)
 
@@ -11069,7 +11005,7 @@
 Set mark before moving, if the buffer already existed.
 
 The library where FACE is defined is searched for in
-`find-function-source-path', if non nil, otherwise in `load-path'.
+`find-function-source-path', if non-nil, otherwise in `load-path'.
 See also `find-function-recenter-line' and `find-function-after-hook'.
 
 \(fn FACE)" t nil)
@@ -11098,7 +11034,7 @@
 ;;;***
 
 ;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories
-;;;;;;  find-lisp-find-dired) "find-lisp" "find-lisp.el" (17394 12936))
+;;;;;;  find-lisp-find-dired) "find-lisp" "find-lisp.el" (17504 41540))
 ;;; Generated autoloads from find-lisp.el
 
 (autoload (quote find-lisp-find-dired) "find-lisp" "\
@@ -11119,7 +11055,7 @@
 ;;;***
 
 ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords)
-;;;;;;  "finder" "finder.el" (17476 4797))
+;;;;;;  "finder" "finder.el" (17504 41540))
 ;;; Generated autoloads from finder.el
 
 (autoload (quote finder-list-keywords) "finder" "\
@@ -11141,7 +11077,7 @@
 ;;;***
 
 ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl"
-;;;;;;  "flow-ctrl.el" (17385 8484))
+;;;;;;  "flow-ctrl.el" (17504 41540))
 ;;; Generated autoloads from flow-ctrl.el
 
 (autoload (quote enable-flow-control) "flow-ctrl" "\
@@ -11163,7 +11099,7 @@
 ;;;***
 
 ;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el"
-;;;;;;  (17476 4798))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/flow-fill.el
 
 (autoload (quote fill-flowed-encode) "flow-fill" "\
@@ -11179,7 +11115,7 @@
 ;;;***
 
 ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode)
-;;;;;;  "flymake" "progmodes/flymake.el" (17717 4883))
+;;;;;;  "flymake" "progmodes/flymake.el" (17715 55646))
 ;;; Generated autoloads from progmodes/flymake.el
 
 (autoload (quote flymake-mode) "flymake" "\
@@ -11203,7 +11139,7 @@
 
 ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
 ;;;;;;  turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
-;;;;;;  "flyspell" "textmodes/flyspell.el" (17724 51883))
+;;;;;;  "flyspell" "textmodes/flyspell.el" (17759 28874))
 ;;; Generated autoloads from textmodes/flyspell.el
 
 (autoload (quote flyspell-prog-mode) "flyspell" "\
@@ -11272,7 +11208,7 @@
 
 ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
 ;;;;;;  turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
-;;;;;;  (17495 43954))
+;;;;;;  (17746 34860))
 ;;; Generated autoloads from follow.el
 
 (autoload (quote turn-on-follow-mode) "follow" "\
@@ -11346,8 +11282,8 @@
 
 ;;;***
 
-;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17385
-;;;;;;  8494))
+;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from mail/footnote.el
 
 (autoload (quote footnote-mode) "footnote" "\
@@ -11368,7 +11304,7 @@
 ;;;***
 
 ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode)
-;;;;;;  "forms" "forms.el" (17385 8485))
+;;;;;;  "forms" "forms.el" (17504 41540))
 ;;; Generated autoloads from forms.el
 
 (autoload (quote forms-mode) "forms" "\
@@ -11405,7 +11341,7 @@
 ;;;***
 
 ;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran"
-;;;;;;  "progmodes/fortran.el" (17360 11434))
+;;;;;;  "progmodes/fortran.el" (17658 57872))
 ;;; Generated autoloads from progmodes/fortran.el
 
 (defvar fortran-tab-mode-default nil "\
@@ -11414,7 +11350,7 @@
 A value of nil specifies that continuation lines are marked
 with a character in column 6.")
 
-(custom-autoload (quote fortran-tab-mode-default) "fortran")
+(custom-autoload (quote fortran-tab-mode-default) "fortran" t)
 
 (autoload (quote fortran-mode) "fortran" "\
 Major mode for editing Fortran code in fixed format.
@@ -11491,7 +11427,7 @@
 ;;;***
 
 ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region
-;;;;;;  fortune-add-fortune) "fortune" "play/fortune.el" (17385 8495))
+;;;;;;  fortune-add-fortune) "fortune" "play/fortune.el" (17504 41540))
 ;;; Generated autoloads from play/fortune.el
 
 (autoload (quote fortune-add-fortune) "fortune" "\
@@ -11541,7 +11477,7 @@
 ;;;***
 
 ;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el"
-;;;;;;  (17723 56210))
+;;;;;;  (17759 28873))
 ;;; Generated autoloads from progmodes/gdb-ui.el
 
 (autoload (quote gdba) "gdb-ui" "\
@@ -11604,8 +11540,8 @@
 ;;;***
 
 ;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal
-;;;;;;  define-generic-mode) "generic" "emacs-lisp/generic.el" (17385
-;;;;;;  8490))
+;;;;;;  define-generic-mode) "generic" "emacs-lisp/generic.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from emacs-lisp/generic.el
 
 (defvar generic-mode-list nil "\
@@ -11680,7 +11616,7 @@
 ;;;***
 
 ;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el"
-;;;;;;  (17408 40149))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/glasses.el
 
 (autoload (quote glasses-mode) "glasses" "\
@@ -11693,7 +11629,7 @@
 ;;;***
 
 ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error
-;;;;;;  gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17714 34817))
+;;;;;;  gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17715 55645))
 ;;; Generated autoloads from gnus/gmm-utils.el
 
 (autoload (quote gmm-message) "gmm-utils" "\
@@ -11740,37 +11676,10 @@
 ;;;***
 
 ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
-;;;;;;  gnus-slave-no-server gnus-select-method gnus-getenv-nntpserver)
-;;;;;;  "gnus" "gnus/gnus.el" (17726 28398))
+;;;;;;  gnus-slave-no-server) "gnus" "gnus/gnus.el" (17759 28869))
 ;;; Generated autoloads from gnus/gnus.el
-
-(autoload (quote gnus-getenv-nntpserver) "gnus" "\
-Find default nntp server.
-Check the NNTPSERVER environment variable and the
-`gnus-nntpserver-file' file.
-
-\(fn)" nil nil)
-
-(defvar gnus-select-method (condition-case nil (nconc (list (quote nntp) (or (condition-case nil (gnus-getenv-nntpserver) (error nil)) (when (and gnus-default-nntp-server (not (string= gnus-default-nntp-server ""))) gnus-default-nntp-server) "news")) (if (or (null gnus-nntp-service) (equal gnus-nntp-service "nntp")) nil (list gnus-nntp-service))) (error nil)) "\
-Default method for selecting a newsgroup.
-This variable should be a list, where the first element is how the
-news is to be fetched, the second is the address.
-
-For instance, if you want to get your news via \"flab.flab.edu\" using
-NNTP, you could say:
-
-\(setq gnus-select-method '(nntp \"flab.flab.edu\"))
-
-If you want to use your local spool, say:
-
-\(setq gnus-select-method (list 'nnspool (system-name)))
-
-If you use this variable, you must set `gnus-nntp-server' to nil.
-
-There is a lot more to know about select methods and virtual servers -
-see the manual for details.")
-
-(custom-autoload (quote gnus-select-method) "gnus" t)
+(when (fboundp 'custom-autoload)
+ (custom-autoload 'gnus-select-method "gnus"))
 
 (autoload (quote gnus-slave-no-server) "gnus" "\
 Read network news as a slave, without connecting to the local server.
@@ -11820,7 +11729,7 @@
 ;;;;;;  gnus-agent-get-undownloaded-list gnus-agent-delete-group
 ;;;;;;  gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize
 ;;;;;;  gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent"
-;;;;;;  "gnus/gnus-agent.el" (17551 7908))
+;;;;;;  "gnus/gnus-agent.el" (17732 62702))
 ;;; Generated autoloads from gnus/gnus-agent.el
 
 (autoload (quote gnus-unplugged) "gnus-agent" "\
@@ -11911,7 +11820,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
-;;;;;;  (17663 14247))
+;;;;;;  (17746 34861))
 ;;; Generated autoloads from gnus/gnus-art.el
 
 (autoload (quote gnus-article-prepare-display) "gnus-art" "\
@@ -11922,7 +11831,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-audio.el
 
 (autoload (quote gnus-audio-play) "gnus-audio" "\
@@ -11934,8 +11843,8 @@
 
 ;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group
 ;;;;;;  gnus-cache-generate-nov-databases gnus-cache-generate-active
-;;;;;;  gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17385
-;;;;;;  8493))
+;;;;;;  gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17686
+;;;;;;  35982))
 ;;; Generated autoloads from gnus/gnus-cache.el
 
 (autoload (quote gnus-jog-cache) "gnus-cache" "\
@@ -11977,7 +11886,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
-;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (17385 8493))
+;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (17686 35982))
 ;;; Generated autoloads from gnus/gnus-delay.el
 
 (autoload (quote gnus-delay-article) "gnus-delay" "\
@@ -12013,7 +11922,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
-;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17577 7322))
+;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17746 34861))
 ;;; Generated autoloads from gnus/gnus-diary.el
 
 (autoload (quote gnus-user-format-function-d) "gnus-diary" "\
@@ -12029,7 +11938,7 @@
 ;;;***
 
 ;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-dired.el
 
 (autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\
@@ -12040,7 +11949,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el"
-;;;;;;  (17698 30385))
+;;;;;;  (17701 49519))
 ;;; Generated autoloads from gnus/gnus-draft.el
 
 (autoload (quote gnus-draft-reminder) "gnus-draft" "\
@@ -12052,8 +11961,8 @@
 
 ;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png
 ;;;;;;  gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header
-;;;;;;  gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17476
-;;;;;;  4800))
+;;;;;;  gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17686
+;;;;;;  35982))
 ;;; Generated autoloads from gnus/gnus-fun.el
 
 (autoload (quote gnus-random-x-face) "gnus-fun" "\
@@ -12092,7 +12001,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
-;;;;;;  "gnus-group" "gnus/gnus-group.el" (17726 28398))
+;;;;;;  "gnus-group" "gnus/gnus-group.el" (17731 48936))
 ;;; Generated autoloads from gnus/gnus-group.el
 
 (autoload (quote gnus-fetch-group) "gnus-group" "\
@@ -12109,7 +12018,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-kill.el
 
 (defalias (quote gnus-batch-kill) (quote gnus-batch-score))
@@ -12124,7 +12033,7 @@
 
 ;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate
 ;;;;;;  turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el"
-;;;;;;  (17551 7908))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-ml.el
 
 (autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\
@@ -12149,7 +12058,7 @@
 
 ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update
 ;;;;;;  gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-mlspl.el
 
 (autoload (quote gnus-group-split-setup) "gnus-mlspl" "\
@@ -12250,7 +12159,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-move.el
 
 (autoload (quote gnus-change-server) "gnus-move" "\
@@ -12262,7 +12171,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
-;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (17385 8493))
+;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (17686 35982))
 ;;; Generated autoloads from gnus/gnus-msg.el
 
 (autoload (quote gnus-msg-mail) "gnus-msg" "\
@@ -12287,7 +12196,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-nocem-load-cache gnus-nocem-scan-groups)
-;;;;;;  "gnus-nocem" "gnus/gnus-nocem.el" (17427 10521))
+;;;;;;  "gnus-nocem" "gnus/gnus-nocem.el" (17686 35982))
 ;;; Generated autoloads from gnus/gnus-nocem.el
 
 (autoload (quote gnus-nocem-scan-groups) "gnus-nocem" "\
@@ -12304,7 +12213,7 @@
 
 ;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon
 ;;;;;;  gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-picon.el
 
 (autoload (quote gnus-treat-from-picon) "gnus-picon" "\
@@ -12331,7 +12240,7 @@
 ;;;;;;  gnus-sorted-nintersection gnus-sorted-range-intersection
 ;;;;;;  gnus-sorted-intersection gnus-intersection gnus-sorted-complement
 ;;;;;;  gnus-sorted-ndifference gnus-sorted-difference) "gnus-range"
-;;;;;;  "gnus/gnus-range.el" (17385 8493))
+;;;;;;  "gnus/gnus-range.el" (17686 35982))
 ;;; Generated autoloads from gnus/gnus-range.el
 
 (autoload (quote gnus-sorted-difference) "gnus-range" "\
@@ -12399,7 +12308,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
-;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (17704 4325))
+;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (17703 53657))
 ;;; Generated autoloads from gnus/gnus-registry.el
 
 (autoload (quote gnus-registry-initialize) "gnus-registry" "\
@@ -12415,8 +12324,8 @@
 ;;;***
 
 ;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate
-;;;;;;  gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17476
-;;;;;;  4800))
+;;;;;;  gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17686
+;;;;;;  35982))
 ;;; Generated autoloads from gnus/gnus-sieve.el
 
 (autoload (quote gnus-sieve-update) "gnus-sieve" "\
@@ -12444,7 +12353,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-soup.el
 
 (autoload (quote gnus-batch-brew-soup) "gnus-soup" "\
@@ -12464,7 +12373,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-spec.el
 
 (autoload (quote gnus-update-format) "gnus-spec" "\
@@ -12475,8 +12384,8 @@
 ;;;***
 
 ;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news
-;;;;;;  gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17601
-;;;;;;  9092))
+;;;;;;  gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17686
+;;;;;;  35982))
 ;;; Generated autoloads from gnus/gnus-start.el
 
 (autoload (quote gnus-declare-backend) "gnus-start" "\
@@ -12492,7 +12401,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17686 35982))
 ;;; Generated autoloads from gnus/gnus-win.el
 
 (autoload (quote gnus-add-configuration) "gnus-win" "\
@@ -12502,7 +12411,7 @@
 
 ;;;***
 
-;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17385 8495))
+;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17504 41540))
 ;;; Generated autoloads from play/gomoku.el
 
 (autoload (quote gomoku) "gomoku" "\
@@ -12529,7 +12438,7 @@
 ;;;***
 
 ;;;### (autoloads (goto-address goto-address-at-point) "goto-addr"
-;;;;;;  "net/goto-addr.el" (17579 53341))
+;;;;;;  "net/goto-addr.el" (17580 16976))
 ;;; Generated autoloads from net/goto-addr.el
 
 (define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1")
@@ -12559,7 +12468,7 @@
 
 ;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults
 ;;;;;;  grep-process-setup grep-setup-hook grep-find-command grep-command
-;;;;;;  grep-window-height) "grep" "progmodes/grep.el" (17645 64048))
+;;;;;;  grep-window-height) "grep" "progmodes/grep.el" (17645 45313))
 ;;; Generated autoloads from progmodes/grep.el
 
 (defvar grep-window-height nil "\
@@ -12696,7 +12605,7 @@
 
 ;;;***
 
-;;;### (autoloads (gs-load-image) "gs" "gs.el" (17385 8485))
+;;;### (autoloads (gs-load-image) "gs" "gs.el" (17598 60524))
 ;;; Generated autoloads from gs.el
 
 (autoload (quote gs-load-image) "gs" "\
@@ -12710,7 +12619,7 @@
 ;;;***
 
 ;;;### (autoloads (gdb-script-mode bashdb jdb pdb perldb xdb dbx
-;;;;;;  sdb gdb) "gud" "progmodes/gud.el" (17661 55157))
+;;;;;;  sdb gdb) "gud" "progmodes/gud.el" (17661 56350))
 ;;; Generated autoloads from progmodes/gud.el
 
 (autoload (quote gdb) "gud" "\
@@ -12796,8 +12705,8 @@
 
 ;;;***
 
-;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17385
-;;;;;;  8495))
+;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17759
+;;;;;;  28871))
 ;;; Generated autoloads from play/handwrite.el
 
 (autoload (quote handwrite) "handwrite" "\
@@ -12815,7 +12724,7 @@
 ;;;***
 
 ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el"
-;;;;;;  (17586 30575))
+;;;;;;  (17746 34862))
 ;;; Generated autoloads from play/hanoi.el
 
 (autoload (quote hanoi) "hanoi" "\
@@ -12834,7 +12743,7 @@
 
 (autoload (quote hanoi-unix-64) "hanoi" "\
 Like hanoi-unix, but pretend to have a 64-bit clock.
-This is, necessarily (as of emacs 20.3), a crock.  When the
+This is, necessarily (as of Emacs 20.3), a crock.  When the
 current-time interface is made s2G-compliant, hanoi.el will need
 to be updated.
 
@@ -12845,7 +12754,7 @@
 ;;;### (autoloads (scan-buf-previous-region scan-buf-next-region
 ;;;;;;  scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer
 ;;;;;;  help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string
-;;;;;;  help-at-pt-string) "help-at-pt" "help-at-pt.el" (17709 24917))
+;;;;;;  help-at-pt-string) "help-at-pt" "help-at-pt.el" (17710 3074))
 ;;; Generated autoloads from help-at-pt.el
 
 (autoload (quote help-at-pt-string) "help-at-pt" "\
@@ -12974,19 +12883,10 @@
 
 ;;;### (autoloads (describe-categories describe-syntax describe-variable
 ;;;;;;  variable-at-point describe-function-1 describe-simplify-lib-file-name
-;;;;;;  help-C-file-name describe-function help-with-tutorial) "help-fns"
-;;;;;;  "help-fns.el" (17717 4883))
+;;;;;;  help-C-file-name describe-function) "help-fns" "help-fns.el"
+;;;;;;  (17736 44182))
 ;;; Generated autoloads from help-fns.el
 
-(autoload (quote help-with-tutorial) "help-fns" "\
-Select the Emacs learn-by-doing tutorial.
-If there is a tutorial version written in the language
-of the selected language environment, that version is used.
-If there's no tutorial in that language, `TUTORIAL' is selected.
-With ARG, you are asked to choose which language.
-
-\(fn &optional ARG)" t nil)
-
 (autoload (quote describe-function) "help-fns" "\
 Display the full documentation of FUNCTION (a symbol).
 
@@ -13041,7 +12941,7 @@
 ;;;***
 
 ;;;### (autoloads (three-step-help) "help-macro" "help-macro.el"
-;;;;;;  (17385 8485))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from help-macro.el
 
 (defvar three-step-help nil "\
@@ -13051,13 +12951,13 @@
 A value of nil means skip the middle step, so that
 \\[help-command] \\[help-command] gives the window that lists the options.")
 
-(custom-autoload (quote three-step-help) "help-macro")
+(custom-autoload (quote three-step-help) "help-macro" t)
 
 ;;;***
 
 ;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button
 ;;;;;;  help-make-xrefs help-setup-xref help-mode-finish help-mode-setup
-;;;;;;  help-mode) "help-mode" "help-mode.el" (17604 60389))
+;;;;;;  help-mode) "help-mode" "help-mode.el" (17604 18983))
 ;;; Generated autoloads from help-mode.el
 
 (autoload (quote help-mode) "help-mode" "\
@@ -13140,7 +13040,7 @@
 ;;;***
 
 ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper"
-;;;;;;  "emacs-lisp/helper.el" (17585 27776))
+;;;;;;  "emacs-lisp/helper.el" (17586 63376))
 ;;; Generated autoloads from emacs-lisp/helper.el
 
 (autoload (quote Helper-describe-bindings) "helper" "\
@@ -13156,7 +13056,7 @@
 ;;;***
 
 ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl"
-;;;;;;  "hexl.el" (17585 27774))
+;;;;;;  "hexl.el" (17746 34860))
 ;;; Generated autoloads from hexl.el
 
 (autoload (quote hexl-mode) "hexl" "\
@@ -13198,7 +13098,7 @@
   000000b0: 7461 626c 6520 6368 6172 6163 7465 7220  table character
   000000c0: 7265 6769 6f6e 2e0a                      region..
 
-Movement is as simple as movement in a normal emacs text buffer.  Most
+Movement is as simple as movement in a normal Emacs text buffer.  Most
 cursor movement bindings are the same (ie. Use \\[hexl-backward-char], \\[hexl-forward-char], \\[hexl-next-line], and \\[hexl-previous-line]
 to move the cursor left, right, down, and up).
 
@@ -13253,7 +13153,7 @@
 ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
 ;;;;;;  hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
 ;;;;;;  global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
-;;;;;;  (17385 8485))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from hi-lock.el
 
 (autoload (quote hi-lock-mode) "hi-lock" "\
@@ -13306,11 +13206,10 @@
 Non-nil if Global-Hi-Lock mode is enabled.
 See the command `global-hi-lock-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `global-hi-lock-mode'.")
-
-(custom-autoload (quote global-hi-lock-mode) "hi-lock")
-
-(put (quote global-hi-lock-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `global-hi-lock-mode'.")
+
+(custom-autoload (quote global-hi-lock-mode) "hi-lock" nil)
 
 (autoload (quote global-hi-lock-mode) "hi-lock" "\
 Toggle Hi-Lock mode in every buffer.
@@ -13379,7 +13278,7 @@
 ;;;***
 
 ;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially
-;;;;;;  hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17520 49736))
+;;;;;;  hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17522 22309))
 ;;; Generated autoloads from progmodes/hideif.el
 
 (autoload (quote hide-ifdef-mode) "hideif" "\
@@ -13419,22 +13318,22 @@
 (defvar hide-ifdef-initially nil "\
 *Non-nil means call `hide-ifdefs' when Hide-Ifdef mode is first activated.")
 
-(custom-autoload (quote hide-ifdef-initially) "hideif")
+(custom-autoload (quote hide-ifdef-initially) "hideif" t)
 
 (defvar hide-ifdef-read-only nil "\
 *Set to non-nil if you want buffer to be read-only while hiding text.")
 
-(custom-autoload (quote hide-ifdef-read-only) "hideif")
+(custom-autoload (quote hide-ifdef-read-only) "hideif" t)
 
 (defvar hide-ifdef-lines nil "\
 *Non-nil means hide the #ifX, #else, and #endif lines.")
 
-(custom-autoload (quote hide-ifdef-lines) "hideif")
+(custom-autoload (quote hide-ifdef-lines) "hideif" t)
 
 ;;;***
 
 ;;;### (autoloads (hs-minor-mode) "hideshow" "progmodes/hideshow.el"
-;;;;;;  (17394 12938))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/hideshow.el
 
 (defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\
@@ -13492,7 +13391,7 @@
 ;;;;;;  highlight-compare-buffers highlight-changes-rotate-faces
 ;;;;;;  highlight-changes-previous-change highlight-changes-next-change
 ;;;;;;  highlight-changes-mode highlight-changes-remove-highlight)
-;;;;;;  "hilit-chg" "hilit-chg.el" (17394 12936))
+;;;;;;  "hilit-chg" "hilit-chg.el" (17504 41540))
 ;;; Generated autoloads from hilit-chg.el
 
 (autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\
@@ -13622,7 +13521,7 @@
 ;;;;;;  hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction
 ;;;;;;  hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space
 ;;;;;;  hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp"
-;;;;;;  "hippie-exp.el" (17385 8485))
+;;;;;;  "hippie-exp.el" (17504 41540))
 ;;; Generated autoloads from hippie-exp.el
 
 (defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\
@@ -13630,40 +13529,40 @@
 To change the behavior of `hippie-expand', remove, change the order of,
 or insert functions in this list.")
 
-(custom-autoload (quote hippie-expand-try-functions-list) "hippie-exp")
+(custom-autoload (quote hippie-expand-try-functions-list) "hippie-exp" t)
 
 (defvar hippie-expand-verbose t "\
 *Non-nil makes `hippie-expand' output which function it is trying.")
 
-(custom-autoload (quote hippie-expand-verbose) "hippie-exp")
+(custom-autoload (quote hippie-expand-verbose) "hippie-exp" t)
 
 (defvar hippie-expand-dabbrev-skip-space nil "\
 *Non-nil means tolerate trailing spaces in the abbreviation to expand.")
 
-(custom-autoload (quote hippie-expand-dabbrev-skip-space) "hippie-exp")
+(custom-autoload (quote hippie-expand-dabbrev-skip-space) "hippie-exp" t)
 
 (defvar hippie-expand-dabbrev-as-symbol t "\
 *Non-nil means expand as symbols, i.e. syntax `_' is considered a letter.")
 
-(custom-autoload (quote hippie-expand-dabbrev-as-symbol) "hippie-exp")
+(custom-autoload (quote hippie-expand-dabbrev-as-symbol) "hippie-exp" t)
 
 (defvar hippie-expand-no-restriction t "\
 *Non-nil means that narrowed buffers are widened during search.")
 
-(custom-autoload (quote hippie-expand-no-restriction) "hippie-exp")
+(custom-autoload (quote hippie-expand-no-restriction) "hippie-exp" t)
 
 (defvar hippie-expand-max-buffers nil "\
 *The maximum number of buffers (apart from the current) searched.
 If nil, all buffers are searched.")
 
-(custom-autoload (quote hippie-expand-max-buffers) "hippie-exp")
+(custom-autoload (quote hippie-expand-max-buffers) "hippie-exp" t)
 
 (defvar hippie-expand-ignore-buffers (quote ("^ \\*.*\\*$" dired-mode)) "\
 *A list specifying which buffers not to search (if not current).
 Can contain both regexps matching buffer names (as strings) and major modes
 \(as atoms)")
 
-(custom-autoload (quote hippie-expand-ignore-buffers) "hippie-exp")
+(custom-autoload (quote hippie-expand-ignore-buffers) "hippie-exp" t)
 
 (defvar hippie-expand-only-buffers nil "\
 *A list specifying the only buffers to search (in addition to current).
@@ -13671,7 +13570,7 @@
 \(as atoms).  If non-nil, this variable overrides the variable
 `hippie-expand-ignore-buffers'.")
 
-(custom-autoload (quote hippie-expand-only-buffers) "hippie-exp")
+(custom-autoload (quote hippie-expand-only-buffers) "hippie-exp" t)
 
 (autoload (quote hippie-expand) "hippie-exp" "\
 Try to expand text before point, using multiple methods.
@@ -13695,7 +13594,7 @@
 ;;;***
 
 ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el"
-;;;;;;  (17656 37701))
+;;;;;;  (17652 40095))
 ;;; Generated autoloads from hl-line.el
 
 (autoload (quote hl-line-mode) "hl-line" "\
@@ -13736,7 +13635,7 @@
 ;;;***
 
 ;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el"
-;;;;;;  (17427 10521))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from calendar/holidays.el
 
 (autoload (quote holidays) "holidays" "\
@@ -13772,35 +13671,8 @@
 
 ;;;***
 
-;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll)
-;;;;;;  "hscroll" "obsolete/hscroll.el" (17385 8495))
-;;; Generated autoloads from obsolete/hscroll.el
-
-(autoload (quote turn-on-hscroll) "hscroll" "\
-This function is obsolete.
-Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
-Also see `automatic-hscrolling'.
-
-\(fn)" nil nil)
-
-(autoload (quote hscroll-mode) "hscroll" "\
-This function is obsolete.
-Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
-Also see `automatic-hscrolling'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload (quote hscroll-global-mode) "hscroll" "\
-This function is obsolete.
-Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
-Also see `automatic-hscrolling'.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-
-;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17403
-;;;;;;  27598))
+;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from gnus/html2text.el
 
 (autoload (quote html2text) "html2text" "\
@@ -13832,7 +13704,7 @@
 ;;;;;;  ibuffer-backward-filter-group ibuffer-forward-filter-group
 ;;;;;;  ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
 ;;;;;;  ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
-;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17698 30385))
+;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17701 49517))
 ;;; Generated autoloads from ibuf-ext.el
 
 (autoload (quote ibuffer-auto-mode) "ibuf-ext" "\
@@ -14198,8 +14070,8 @@
 ;;;***
 
 ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter
-;;;;;;  define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17476
-;;;;;;  4797))
+;;;;;;  define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from ibuf-macs.el
 
 (autoload (quote define-ibuffer-column) "ibuf-macs" "\
@@ -14288,7 +14160,7 @@
 ;;;***
 
 ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
-;;;;;;  "ibuffer" "ibuffer.el" (17647 30728))
+;;;;;;  "ibuffer" "ibuffer.el" (17652 14941))
 ;;; Generated autoloads from ibuffer.el
 
 (autoload (quote ibuffer-list-buffers) "ibuffer" "\
@@ -14329,7 +14201,7 @@
 
 ;;;### (autoloads (icalendar-import-buffer icalendar-import-file
 ;;;;;;  icalendar-export-region icalendar-export-file) "icalendar"
-;;;;;;  "calendar/icalendar.el" (17403 27597))
+;;;;;;  "calendar/icalendar.el" (17504 41540))
 ;;; Generated autoloads from calendar/icalendar.el
 
 (autoload (quote icalendar-export-file) "icalendar" "\
@@ -14382,7 +14254,7 @@
 ;;;***
 
 ;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17686
-;;;;;;  46252))
+;;;;;;  53336))
 ;;; Generated autoloads from icomplete.el
 
 (defvar icomplete-mode nil "\
@@ -14402,7 +14274,7 @@
 
 ;;;***
 
-;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17394 12938))
+;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17504 41540))
 ;;; Generated autoloads from progmodes/icon.el
 
 (autoload (quote icon-mode) "icon" "\
@@ -14443,7 +14315,7 @@
 ;;;***
 
 ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
-;;;;;;  (17601 9092))
+;;;;;;  (17596 14703))
 ;;; Generated autoloads from progmodes/idlw-shell.el
 
 (autoload (quote idlwave-shell) "idlw-shell" "\
@@ -14469,7 +14341,7 @@
 ;;;***
 
 ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;;  (17670 58701))
+;;;;;;  (17746 34862))
 ;;; Generated autoloads from progmodes/idlwave.el
 
 (autoload (quote idlwave-mode) "idlwave" "\
@@ -14604,8 +14476,8 @@
 ;;;;;;  ido-find-alternate-file ido-find-file-other-window ido-find-file
 ;;;;;;  ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
 ;;;;;;  ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
-;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17717
-;;;;;;  4883))
+;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17759
+;;;;;;  28868))
 ;;; Generated autoloads from ido.el
 
 (defvar ido-mode nil "\
@@ -14817,7 +14689,7 @@
 \(fn)" t nil)
 
 (autoload (quote ido-dired) "ido" "\
-Call dired the ido way.
+Call `dired' the ido way.
 The directory is selected interactively by typing a substring.
 For details of keybindings, do `\\[describe-function] ido-find-file'.
 
@@ -14866,7 +14738,7 @@
 
 ;;;***
 
-;;;### (autoloads (ielm) "ielm" "ielm.el" (17385 8485))
+;;;### (autoloads (ielm) "ielm" "ielm.el" (17504 41540))
 ;;; Generated autoloads from ielm.el
  (add-hook 'same-window-buffer-names "*ielm*")
 
@@ -14879,7 +14751,7 @@
 ;;;***
 
 ;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el"
-;;;;;;  (17385 8485))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from iimage.el
 
 (autoload (quote turn-on-iimage-mode) "iimage" "\
@@ -14898,7 +14770,7 @@
 ;;;;;;  insert-image put-image create-image image-type-available-p
 ;;;;;;  image-type image-type-from-file-name image-type-from-file-header
 ;;;;;;  image-type-from-buffer image-type-from-data) "image" "image.el"
-;;;;;;  (17485 5460))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from image.el
 
 (autoload (quote image-type-from-data) "image" "\
@@ -15060,7 +14932,7 @@
 
 ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp
 ;;;;;;  image-file-name-regexps image-file-name-extensions) "image-file"
-;;;;;;  "image-file.el" (17385 8485))
+;;;;;;  "image-file.el" (17504 41540))
 ;;; Generated autoloads from image-file.el
 
 (defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\
@@ -15073,7 +14945,7 @@
 `auto-image-file-mode' is re-enabled; this happens automatically when
 the variable is set using \\[customize].")
 
-(custom-autoload (quote image-file-name-extensions) "image-file")
+(custom-autoload (quote image-file-name-extensions) "image-file" nil)
 
 (defvar image-file-name-regexps nil "\
 *List of regexps matching image-file filenames.
@@ -15085,7 +14957,7 @@
 `auto-image-file-mode' is re-enabled; this happens automatically when
 the variable is set using \\[customize].")
 
-(custom-autoload (quote image-file-name-regexps) "image-file")
+(custom-autoload (quote image-file-name-regexps) "image-file" nil)
 
 (autoload (quote image-file-name-regexp) "image-file" "\
 Return a regular expression matching image-file filenames.
@@ -15103,11 +14975,10 @@
 Non-nil if Auto-Image-File mode is enabled.
 See the command `auto-image-file-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `auto-image-file-mode'.")
-
-(custom-autoload (quote auto-image-file-mode) "image-file")
-
-(put (quote auto-image-file-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `auto-image-file-mode'.")
+
+(custom-autoload (quote auto-image-file-mode) "image-file" nil)
 
 (autoload (quote auto-image-file-mode) "image-file" "\
 Toggle visiting of image files as images.
@@ -15123,7 +14994,7 @@
 ;;;***
 
 ;;;### (autoloads (image-mode-maybe image-minor-mode image-mode)
-;;;;;;  "image-mode" "image-mode.el" (17656 37701))
+;;;;;;  "image-mode" "image-mode.el" (17652 40095))
 ;;; Generated autoloads from image-mode.el
  (push '("\\.jpe?g\\'"    . image-mode) auto-mode-alist)
  (push '("\\.png\\'"      . image-mode) auto-mode-alist)
@@ -15161,7 +15032,7 @@
 ;;;***
 
 ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar
-;;;;;;  imenu-sort-function) "imenu" "imenu.el" (17656 38154))
+;;;;;;  imenu-sort-function) "imenu" "imenu.el" (17656 34193))
 ;;; Generated autoloads from imenu.el
 
 (defvar imenu-sort-function nil "\
@@ -15276,7 +15147,7 @@
 
 ;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion
 ;;;;;;  in-is13194-post-read-conversion indian-compose-string indian-compose-region)
-;;;;;;  "ind-util" "language/ind-util.el" (17340 11482))
+;;;;;;  "ind-util" "language/ind-util.el" (17504 41540))
 ;;; Generated autoloads from language/ind-util.el
 
 (autoload (quote indian-compose-region) "ind-util" "\
@@ -15319,7 +15190,7 @@
 
 ;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command
 ;;;;;;  inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp"
-;;;;;;  "progmodes/inf-lisp.el" (17536 30816))
+;;;;;;  "progmodes/inf-lisp.el" (17541 35103))
 ;;; Generated autoloads from progmodes/inf-lisp.el
 
 (defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\
@@ -15328,12 +15199,12 @@
 mode.  Default is whitespace followed by 0 or 1 single-letter colon-keyword
 \(as in :a, :c, etc.)")
 
-(custom-autoload (quote inferior-lisp-filter-regexp) "inf-lisp")
+(custom-autoload (quote inferior-lisp-filter-regexp) "inf-lisp" t)
 
 (defvar inferior-lisp-program "lisp" "\
 *Program name for invoking an inferior Lisp in Inferior Lisp mode.")
 
-(custom-autoload (quote inferior-lisp-program) "inf-lisp")
+(custom-autoload (quote inferior-lisp-program) "inf-lisp" t)
 
 (defvar inferior-lisp-load-command "(load \"%s\")\n" "\
 *Format-string for building a Lisp expression to load a file.
@@ -15344,7 +15215,7 @@
 produces cosmetically superior output for this application,
 but it works only in Common Lisp.")
 
-(custom-autoload (quote inferior-lisp-load-command) "inf-lisp")
+(custom-autoload (quote inferior-lisp-load-command) "inf-lisp" t)
 
 (defvar inferior-lisp-prompt "^[^> \n]*>+:? *" "\
 Regexp to recognize prompts in the Inferior Lisp mode.
@@ -15362,7 +15233,7 @@
 
 This is a fine thing to set in your .emacs file or through Custom.")
 
-(custom-autoload (quote inferior-lisp-prompt) "inf-lisp")
+(custom-autoload (quote inferior-lisp-prompt) "inf-lisp" t)
 
 (defvar inferior-lisp-mode-hook (quote nil) "\
 *Hook for customising Inferior Lisp mode.")
@@ -15386,7 +15257,7 @@
 ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
 ;;;;;;  Info-goto-emacs-command-node Info-mode info-apropos Info-index
 ;;;;;;  Info-directory Info-on-current-buffer info-standalone info-emacs-manual
-;;;;;;  info info-other-window) "info" "info.el" (17664 34046))
+;;;;;;  info info-other-window) "info" "info.el" (17665 54360))
 ;;; Generated autoloads from info.el
 
 (autoload (quote info-other-window) "info" "\
@@ -15552,7 +15423,7 @@
 
 ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
 ;;;;;;  info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
-;;;;;;  (17712 850))
+;;;;;;  (17746 34860))
 ;;; Generated autoloads from info-look.el
 
 (autoload (quote info-lookup-reset) "info-look" "\
@@ -15566,10 +15437,10 @@
 
 (autoload (quote info-lookup-symbol) "info-look" "\
 Display the definition of SYMBOL, as found in the relevant manual.
-When this command is called interactively, it reads SYMBOL from the minibuffer.
-In the minibuffer, use M-n to yank the default argument value
-into the minibuffer so you can edit it.
-The default symbol is the one found at point.
+When this command is called interactively, it reads SYMBOL from the
+minibuffer.  In the minibuffer, use M-n to yank the default argument
+value into the minibuffer so you can edit it.  The default symbol is the
+one found at point.
 
 With prefix arg a query for the symbol help mode is offered.
 
@@ -15600,7 +15471,7 @@
 ;;;***
 
 ;;;### (autoloads (info-xref-check-all-custom info-xref-check-all
-;;;;;;  info-xref-check) "info-xref" "info-xref.el" (17520 49736))
+;;;;;;  info-xref-check) "info-xref" "info-xref.el" (17522 22308))
 ;;; Generated autoloads from info-xref.el
 
 (autoload (quote info-xref-check) "info-xref" "\
@@ -15627,7 +15498,7 @@
 ;;;***
 
 ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify)
-;;;;;;  "informat" "informat.el" (17385 8485))
+;;;;;;  "informat" "informat.el" (17504 41540))
 ;;; Generated autoloads from informat.el
 
 (autoload (quote Info-tagify) "informat" "\
@@ -15668,7 +15539,7 @@
 
 ;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method
 ;;;;;;  isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el"
-;;;;;;  (17120 44797))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from international/isearch-x.el
 
 (autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\
@@ -15688,8 +15559,8 @@
 
 ;;;***
 
-;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17385
-;;;;;;  8485))
+;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from isearchb.el
 
 (autoload (quote isearchb-activate) "isearchb" "\
@@ -15702,41 +15573,10 @@
 
 ;;;***
 
-;;;### (autoloads (iso-accents-mode) "iso-acc" "obsolete/iso-acc.el"
-;;;;;;  (17385 8495))
-;;; Generated autoloads from obsolete/iso-acc.el
-
-(autoload (quote iso-accents-mode) "iso-acc" "\
-Toggle ISO Accents mode, in which accents modify the following letter.
-This permits easy insertion of accented characters according to ISO-8859-1.
-When Iso-accents mode is enabled, accent character keys
-\(`, ', \", ^, / and ~) do not self-insert; instead, they modify the following
-letter key so that it inserts an ISO accented letter.
-
-You can customize ISO Accents mode to a particular language
-with the command `iso-accents-customize'.
-
-Special combinations: ~c gives a c with cedilla,
-~d gives an Icelandic eth (d with dash).
-~t gives an Icelandic thorn.
-\"s gives German sharp s.
-/a gives a with ring.
-/e gives an a-e ligature.
-~< and ~> give guillemots.
-~! gives an inverted exclamation mark.
-~? gives an inverted question mark.
-
-With an argument, a positive argument enables ISO Accents mode,
-and a negative argument disables it.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-
 ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
 ;;;;;;  iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
 ;;;;;;  iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;;  "international/iso-cvt.el" (17102 18714))
+;;;;;;  "international/iso-cvt.el" (17504 41540))
 ;;; Generated autoloads from international/iso-cvt.el
 
 (autoload (quote iso-spanish) "iso-cvt" "\
@@ -15820,7 +15660,7 @@
 ;;;***
 
 ;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;;  (17102 18715))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from international/iso-transl.el
  (or key-translation-map (setq key-translation-map (make-sparse-keymap)))
  (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
@@ -15833,7 +15673,7 @@
 ;;;;;;  ispell-region ispell-change-dictionary ispell-kill-ispell
 ;;;;;;  ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
 ;;;;;;  ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
-;;;;;;  (17685 33972))
+;;;;;;  (17746 34863))
 ;;; Generated autoloads from textmodes/ispell.el
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
 
@@ -15851,7 +15691,7 @@
 
 To make permanent changes to your dictionary definitions, you
 will need to make your changes in this variable, save, and then
-re-start emacs.")
+re-start Emacs.")
 
 (custom-autoload (quote ispell-local-dictionary-alist) "ispell" t)
 
@@ -16018,7 +15858,7 @@
 `m':   Place typed-in value in personal dictionary, then recheck current word.
 `C-l':  redraws screen
 `C-r':  recursive edit
-`C-z':  suspend emacs or iconify frame
+`C-z':  suspend Emacs or iconify frame
 
 \(fn)" nil nil)
 
@@ -16121,19 +15961,18 @@
 
 ;;;***
 
-;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17440
-;;;;;;  13082))
+;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from iswitchb.el
 
 (defvar iswitchb-mode nil "\
 Non-nil if Iswitchb mode is enabled.
 See the command `iswitchb-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `iswitchb-mode'.")
-
-(custom-autoload (quote iswitchb-mode) "iswitchb")
-
-(put (quote iswitchb-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `iswitchb-mode'.")
+
+(custom-autoload (quote iswitchb-mode) "iswitchb" nil)
 
 (autoload (quote iswitchb-mode) "iswitchb" "\
 Toggle Iswitchb global minor mode.
@@ -16148,7 +15987,7 @@
 ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region
 ;;;;;;  japanese-hiragana-region japanese-katakana-region japanese-zenkaku
 ;;;;;;  japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal)
-;;;;;;  "japan-util" "language/japan-util.el" (17102 18773))
+;;;;;;  "japan-util" "language/japan-util.el" (17504 41540))
 ;;; Generated autoloads from language/japan-util.el
 
 (autoload (quote setup-japanese-environment-internal) "japan-util" "\
@@ -16226,7 +16065,7 @@
 ;;;***
 
 ;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
-;;;;;;  "jka-compr.el" (17411 10839))
+;;;;;;  "jka-compr.el" (17504 41540))
 ;;; Generated autoloads from jka-compr.el
 
 (defvar jka-compr-inhibit nil "\
@@ -16251,7 +16090,7 @@
 
 ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup
 ;;;;;;  keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el"
-;;;;;;  (17385 8491))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emulation/keypad.el
 
 (defvar keypad-setup nil "\
@@ -16259,28 +16098,28 @@
 When selecting the plain numeric keypad setup, the character returned by the
 decimal key must be specified.")
 
-(custom-autoload (quote keypad-setup) "keypad")
+(custom-autoload (quote keypad-setup) "keypad" nil)
 
 (defvar keypad-numlock-setup nil "\
 Specifies the keypad setup for unshifted keypad keys when NumLock is on.
 When selecting the plain numeric keypad setup, the character returned by the
 decimal key must be specified.")
 
-(custom-autoload (quote keypad-numlock-setup) "keypad")
+(custom-autoload (quote keypad-numlock-setup) "keypad" nil)
 
 (defvar keypad-shifted-setup nil "\
 Specifies the keypad setup for shifted keypad keys when NumLock is off.
 When selecting the plain numeric keypad setup, the character returned by the
 decimal key must be specified.")
 
-(custom-autoload (quote keypad-shifted-setup) "keypad")
+(custom-autoload (quote keypad-shifted-setup) "keypad" nil)
 
 (defvar keypad-numlock-shifted-setup nil "\
 Specifies the keypad setup for shifted keypad keys when NumLock is off.
 When selecting the plain numeric keypad setup, the character returned by the
 decimal key must be specified.")
 
-(custom-autoload (quote keypad-numlock-shifted-setup) "keypad")
+(custom-autoload (quote keypad-numlock-shifted-setup) "keypad" nil)
 
 (autoload (quote keypad-setup) "keypad" "\
 Set keypad bindings in function-key-map according to SETUP.
@@ -16307,7 +16146,7 @@
 ;;;***
 
 ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el"
-;;;;;;  (17304 45460))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from international/kinsoku.el
 
 (autoload (quote kinsoku) "kinsoku" "\
@@ -16329,7 +16168,7 @@
 ;;;***
 
 ;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17721
-;;;;;;  20491))
+;;;;;;  3805))
 ;;; Generated autoloads from international/kkc.el
 
 (defvar kkc-after-update-conversion-functions nil "\
@@ -16354,7 +16193,7 @@
 ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
 ;;;;;;  kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
 ;;;;;;  kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro"
-;;;;;;  "kmacro.el" (17651 3608))
+;;;;;;  "kmacro.el" (17652 14942))
 ;;; Generated autoloads from kmacro.el
  (global-set-key "\C-x(" 'kmacro-start-macro)
  (global-set-key "\C-x)" 'kmacro-end-macro)
@@ -16461,7 +16300,7 @@
 
 ;;;### (autoloads (kannada-post-read-conversion kannada-compose-string
 ;;;;;;  kannada-compose-region) "knd-util" "language/knd-util.el"
-;;;;;;  (17102 18774))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from language/knd-util.el
 
 (defconst kannada-consonant "[\x51f75-\x51fb9]")
@@ -16484,7 +16323,7 @@
 ;;;***
 
 ;;;### (autoloads (setup-korean-environment-internal) "korea-util"
-;;;;;;  "language/korea-util.el" (17102 18775))
+;;;;;;  "language/korea-util.el" (17504 41540))
 ;;; Generated autoloads from language/korea-util.el
 
 (defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\
@@ -16499,7 +16338,7 @@
 ;;;***
 
 ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el"
-;;;;;;  (17579 53341))
+;;;;;;  (17580 16977))
 ;;; Generated autoloads from play/landmark.el
 
 (defalias (quote landmark-repeat) (quote lm-test-run))
@@ -16533,8 +16372,8 @@
 
 ;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion
 ;;;;;;  lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao
-;;;;;;  lao-compose-string) "lao-util" "language/lao-util.el" (17102
-;;;;;;  18775))
+;;;;;;  lao-compose-string) "lao-util" "language/lao-util.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from language/lao-util.el
 
 (autoload (quote lao-compose-string) "lao-util" "\
@@ -16583,7 +16422,7 @@
 
 ;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
 ;;;;;;  latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
-;;;;;;  "latexenc" "international/latexenc.el" (17664 20313))
+;;;;;;  "latexenc" "international/latexenc.el" (17664 29029))
 ;;; Generated autoloads from international/latexenc.el
 
 (defvar latex-inputenc-coding-alist (quote (("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\
@@ -16615,7 +16454,7 @@
 ;;;***
 
 ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
-;;;;;;  "latin1-disp" "international/latin1-disp.el" (17102 18720))
+;;;;;;  "latin1-disp" "international/latin1-disp.el" (17504 41540))
 ;;; Generated autoloads from international/latin1-disp.el
 
 (defvar latin1-display nil "\
@@ -16633,7 +16472,7 @@
 Setting this variable directly does not take effect;
 use either \\[customize] or the function `latin1-display'.")
 
-(custom-autoload (quote latin1-display) "latin1-disp")
+(custom-autoload (quote latin1-display) "latin1-disp" nil)
 
 (autoload (quote latin1-display) "latin1-disp" "\
 Set up Latin-1/ASCII display for the arguments character SETS.
@@ -16654,80 +16493,12 @@
 Setting this variable directly does not take effect;
 use either \\[customize] or the function `latin1-display'.")
 
-(custom-autoload (quote latin1-display-ucs-per-lynx) "latin1-disp")
-
-;;;***
-
-;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock"
-;;;;;;  "obsolete/lazy-lock.el" (17385 8495))
-;;; Generated autoloads from obsolete/lazy-lock.el
-
-(autoload (quote lazy-lock-mode) "lazy-lock" "\
-Toggle Lazy Lock mode.
-With arg, turn Lazy Lock mode on if and only if arg is positive.  Enable it
-automatically in your `~/.emacs' by:
-
- (setq font-lock-support-mode 'lazy-lock-mode)
-
-For a newer font-lock support mode with similar functionality, see
-`jit-lock-mode'.  Eventually, Lazy Lock mode will be deprecated in
-JIT Lock's favor.
-
-When Lazy Lock mode is enabled, fontification can be lazy in a number of ways:
-
-- Demand-driven buffer fontification if `lazy-lock-minimum-size' is non-nil.
-  This means initial fontification does not occur if the buffer is greater than
-  `lazy-lock-minimum-size' characters in length.  Instead, fontification occurs
-  when necessary, such as when scrolling through the buffer would otherwise
-  reveal unfontified areas.  This is useful if buffer fontification is too slow
-  for large buffers.
-
-- Deferred scroll fontification if `lazy-lock-defer-on-scrolling' is non-nil.
-  This means demand-driven fontification does not occur as you scroll.
-  Instead, fontification is deferred until after `lazy-lock-defer-time' seconds
-  of Emacs idle time, while Emacs remains idle.  This is useful if
-  fontification is too slow to keep up with scrolling.
-
-- Deferred on-the-fly fontification if `lazy-lock-defer-on-the-fly' is non-nil.
-  This means on-the-fly fontification does not occur as you type.  Instead,
-  fontification is deferred until after `lazy-lock-defer-time' seconds of Emacs
-  idle time, while Emacs remains idle.  This is useful if fontification is too
-  slow to keep up with your typing.
-
-- Deferred context fontification if `lazy-lock-defer-contextually' is non-nil.
-  This means fontification updates the buffer corresponding to true syntactic
-  context, after `lazy-lock-defer-time' seconds of Emacs idle time, while Emacs
-  remains idle.  Otherwise, fontification occurs on modified lines only, and
-  subsequent lines can remain fontified corresponding to previous syntactic
-  contexts.  This is useful where strings or comments span lines.
-
-- Stealthy buffer fontification if `lazy-lock-stealth-time' is non-nil.
-  This means remaining unfontified areas of buffers are fontified if Emacs has
-  been idle for `lazy-lock-stealth-time' seconds, while Emacs remains idle.
-  This is useful if any buffer has any deferred fontification.
-
-Basic Font Lock mode on-the-fly fontification behavior fontifies modified
-lines only.  Thus, if `lazy-lock-defer-contextually' is non-nil, Lazy Lock mode
-on-the-fly fontification may fontify differently, albeit correctly.  In any
-event, to refontify some lines you can use \\[font-lock-fontify-block].
-
-Stealth fontification only occurs while the system remains unloaded.
-If the system load rises above `lazy-lock-stealth-load' percent, stealth
-fontification is suspended.  Stealth fontification intensity is controlled via
-the variable `lazy-lock-stealth-nice' and `lazy-lock-stealth-lines', and
-verbosity is controlled via the variable `lazy-lock-stealth-verbose'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload (quote turn-on-lazy-lock) "lazy-lock" "\
-Unconditionally turn on Lazy Lock mode.
-
-\(fn)" nil nil)
+(custom-autoload (quote latin1-display-ucs-per-lynx) "latin1-disp" nil)
 
 ;;;***
 
 ;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el"
-;;;;;;  (17607 45513))
+;;;;;;  (17610 3931))
 ;;; Generated autoloads from progmodes/ld-script.el
 
 (add-to-list (quote auto-mode-alist) (quote ("\\.ld[si]?\\>" . ld-script-mode)))
@@ -16742,7 +16513,7 @@
 ;;;***
 
 ;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el"
-;;;;;;  (17385 8486))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from ledit.el
 
 (defconst ledit-save-files t "\
@@ -16776,7 +16547,7 @@
 
 ;;;***
 
-;;;### (autoloads (life) "life" "play/life.el" (17674 51268))
+;;;### (autoloads (life) "life" "play/life.el" (17675 64484))
 ;;; Generated autoloads from play/life.el
 
 (autoload (quote life) "life" "\
@@ -16789,8 +16560,8 @@
 
 ;;;***
 
-;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17613
-;;;;;;  21909))
+;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17746
+;;;;;;  34860))
 ;;; Generated autoloads from loadhist.el
 
 (autoload (quote unload-feature) "loadhist" "\
@@ -16813,7 +16584,7 @@
 ;;;***
 
 ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
-;;;;;;  "locate" "locate.el" (17669 23128))
+;;;;;;  "locate" "locate.el" (17668 1406))
 ;;; Generated autoloads from locate.el
 
 (defvar locate-ls-subdir-switches "-al" "\
@@ -16860,7 +16631,7 @@
 
 ;;;***
 
-;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17495 43954))
+;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17504 41540))
 ;;; Generated autoloads from log-edit.el
 
 (autoload (quote log-edit) "log-edit" "\
@@ -16881,8 +16652,8 @@
 
 ;;;***
 
-;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17587
-;;;;;;  57939))
+;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from log-view.el
 
 (autoload (quote log-view-mode) "log-view" "\
@@ -16892,8 +16663,8 @@
 
 ;;;***
 
-;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17709
-;;;;;;  24917))
+;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17710
+;;;;;;  3074))
 ;;; Generated autoloads from longlines.el
 
 (autoload (quote longlines-mode) "longlines" "\
@@ -16914,8 +16685,8 @@
 ;;;***
 
 ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer
-;;;;;;  lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17682
-;;;;;;  43101))
+;;;;;;  lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17686
+;;;;;;  35928))
 ;;; Generated autoloads from lpr.el
 
 (defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt))))
@@ -17009,19 +16780,19 @@
 ;;;***
 
 ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
-;;;;;;  (17385 8487))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from ls-lisp.el
 
 (defvar ls-lisp-support-shell-wildcards t "\
 *Non-nil means ls-lisp treats file patterns as shell wildcards.
 Otherwise they are treated as Emacs regexps (for backward compatibility).")
 
-(custom-autoload (quote ls-lisp-support-shell-wildcards) "ls-lisp")
-
-;;;***
-
-;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17386
-;;;;;;  33146))
+(custom-autoload (quote ls-lisp-support-shell-wildcards) "ls-lisp" t)
+
+;;;***
+
+;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from calendar/lunar.el
 
 (autoload (quote phases-of-moon) "lunar" "\
@@ -17034,8 +16805,8 @@
 
 ;;;***
 
-;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17394
-;;;;;;  12938))
+;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from progmodes/m4-mode.el
 
 (autoload (quote m4-mode) "m4-mode" "\
@@ -17047,7 +16818,7 @@
 ;;;***
 
 ;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el"
-;;;;;;  (17385 8490))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emacs-lisp/macroexp.el
 
 (autoload (quote macroexpand-all) "macroexp" "\
@@ -17061,7 +16832,7 @@
 ;;;***
 
 ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro
-;;;;;;  name-last-kbd-macro) "macros" "macros.el" (17385 8487))
+;;;;;;  name-last-kbd-macro) "macros" "macros.el" (17504 41540))
 ;;; Generated autoloads from macros.el
 
 (autoload (quote name-last-kbd-macro) "macros" "\
@@ -17150,7 +16921,7 @@
 ;;;***
 
 ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr"
-;;;;;;  "mail/mail-extr.el" (17385 8494))
+;;;;;;  "mail/mail-extr.el" (17504 41540))
 ;;; Generated autoloads from mail/mail-extr.el
 
 (autoload (quote mail-extract-address-components) "mail-extr" "\
@@ -17182,7 +16953,7 @@
 
 ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history
 ;;;;;;  mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/mail-hist.el
 
 (autoload (quote mail-hist-define-keys) "mail-hist" "\
@@ -17198,7 +16969,7 @@
 (defvar mail-hist-keep-history t "\
 *Non-nil means keep a history for headers and text of outgoing mail.")
 
-(custom-autoload (quote mail-hist-keep-history) "mail-hist")
+(custom-autoload (quote mail-hist-keep-history) "mail-hist" t)
 
 (autoload (quote mail-hist-put-headers-into-history) "mail-hist" "\
 Put headers and contents of this message into mail header history.
@@ -17213,8 +16984,8 @@
 
 ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region
 ;;;;;;  mail-unquote-printable mail-quote-printable mail-file-babyl-p
-;;;;;;  mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17385
-;;;;;;  8494))
+;;;;;;  mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from mail/mail-utils.el
 
 (defvar mail-use-rfc822 nil "\
@@ -17222,7 +16993,7 @@
 Otherwise, (the default) use a smaller, somewhat faster, and
 often correct parser.")
 
-(custom-autoload (quote mail-use-rfc822) "mail-utils")
+(custom-autoload (quote mail-use-rfc822) "mail-utils" t)
 
 (autoload (quote mail-file-babyl-p) "mail-utils" "\
 Not documented
@@ -17266,7 +17037,7 @@
 ;;;***
 
 ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
-;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17385 8494))
+;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17504 41540))
 ;;; Generated autoloads from mail/mailabbrev.el
 
 (autoload (quote mail-abbrevs-setup) "mailabbrev" "\
@@ -17289,8 +17060,8 @@
 ;;;***
 
 ;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases
-;;;;;;  mail-complete-style) "mailalias" "mail/mailalias.el" (17385
-;;;;;;  8494))
+;;;;;;  mail-complete-style) "mailalias" "mail/mailalias.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from mail/mailalias.el
 
 (defvar mail-complete-style (quote angles) "\
@@ -17302,7 +17073,7 @@
 If `angles', they look like:
 	Elvis Parsley <king@grassland.com>")
 
-(custom-autoload (quote mail-complete-style) "mailalias")
+(custom-autoload (quote mail-complete-style) "mailalias" t)
 
 (autoload (quote expand-mail-aliases) "mailalias" "\
 Expand all mail aliases in suitable header fields found between BEG and END.
@@ -17336,7 +17107,7 @@
 ;;;***
 
 ;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/mailclient.el
 
 (autoload (quote mailclient-send-it) "mailclient" "\
@@ -17350,7 +17121,7 @@
 
 ;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode
 ;;;;;;  makefile-gmake-mode makefile-automake-mode makefile-mode)
-;;;;;;  "make-mode" "progmodes/make-mode.el" (17692 12587))
+;;;;;;  "make-mode" "progmodes/make-mode.el" (17701 49519))
 ;;; Generated autoloads from progmodes/make-mode.el
 
 (autoload (quote makefile-mode) "make-mode" "\
@@ -17467,8 +17238,8 @@
 
 ;;;***
 
-;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17385
-;;;;;;  8487))
+;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from makesum.el
 
 (autoload (quote make-command-summary) "makesum" "\
@@ -17479,7 +17250,7 @@
 
 ;;;***
 
-;;;### (autoloads (man-follow man) "man" "man.el" (17661 57057))
+;;;### (autoloads (man-follow man) "man" "man.el" (17658 57980))
 ;;; Generated autoloads from man.el
 
 (defalias (quote manual-entry) (quote man))
@@ -17506,7 +17277,7 @@
 
 ;;;***
 
-;;;### (autoloads (master-mode) "master" "master.el" (17148 25016))
+;;;### (autoloads (master-mode) "master" "master.el" (17504 41540))
 ;;; Generated autoloads from master.el
 
 (autoload (quote master-mode) "master" "\
@@ -17528,8 +17299,8 @@
 
 ;;;***
 
-;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17681
-;;;;;;  20649))
+;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17759
+;;;;;;  28868))
 ;;; Generated autoloads from menu-bar.el
 
 (put (quote menu-bar-mode) (quote standard-value) (quote (t)))
@@ -17564,7 +17335,7 @@
 ;;;;;;  message-cite-function message-yank-prefix message-citation-line-function
 ;;;;;;  message-send-mail-function message-user-organization-file
 ;;;;;;  message-signature-separator message-from-style) "message"
-;;;;;;  "gnus/message.el" (17726 28398))
+;;;;;;  "gnus/message.el" (17759 28869))
 ;;; Generated autoloads from gnus/message.el
 
 (defvar message-from-style (quote default) "\
@@ -17818,7 +17589,7 @@
 ;;;***
 
 ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el"
-;;;;;;  (17394 12938))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/meta-mode.el
 
 (autoload (quote metafont-mode) "meta-mode" "\
@@ -17845,7 +17616,7 @@
 
 ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body
 ;;;;;;  metamail-interpret-header) "metamail" "mail/metamail.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/metamail.el
 
 (autoload (quote metamail-interpret-header) "metamail" "\
@@ -17890,7 +17661,7 @@
 
 ;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
 ;;;;;;  mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
-;;;;;;  "mh-e/mh-comp.el" (17689 24335))
+;;;;;;  "mh-e/mh-comp.el" (17690 32932))
 ;;; Generated autoloads from mh-e/mh-comp.el
 
 (autoload (quote mh-smail) "mh-comp" "\
@@ -17977,7 +17748,7 @@
 
 ;;;***
 
-;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17578 42698))
+;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17759 28870))
 ;;; Generated autoloads from mh-e/mh-e.el
 
 (put (quote mh-progs) (quote risky-local-variable) t)
@@ -17994,7 +17765,7 @@
 ;;;***
 
 ;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
-;;;;;;  "mh-e/mh-folder.el" (17485 5461))
+;;;;;;  "mh-e/mh-folder.el" (17504 41540))
 ;;; Generated autoloads from mh-e/mh-folder.el
 
 (autoload (quote mh-rmail) "mh-folder" "\
@@ -18076,7 +17847,7 @@
 ;;;***
 
 ;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight"
-;;;;;;  "midnight.el" (17727 28649))
+;;;;;;  "midnight.el" (17731 48935))
 ;;; Generated autoloads from midnight.el
 
 (autoload (quote clean-buffer-list) "midnight" "\
@@ -18103,18 +17874,17 @@
 ;;;***
 
 ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef"
-;;;;;;  "minibuf-eldef.el" (17385 8487))
+;;;;;;  "minibuf-eldef.el" (17504 41540))
 ;;; Generated autoloads from minibuf-eldef.el
 
 (defvar minibuffer-electric-default-mode nil "\
 Non-nil if Minibuffer-Electric-Default mode is enabled.
 See the command `minibuffer-electric-default-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `minibuffer-electric-default-mode'.")
-
-(custom-autoload (quote minibuffer-electric-default-mode) "minibuf-eldef")
-
-(put (quote minibuffer-electric-default-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `minibuffer-electric-default-mode'.")
+
+(custom-autoload (quote minibuffer-electric-default-mode) "minibuf-eldef" nil)
 
 (autoload (quote minibuffer-electric-default-mode) "minibuf-eldef" "\
 Toggle Minibuffer Electric Default mode.
@@ -18132,7 +17902,7 @@
 ;;;***
 
 ;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el"
-;;;;;;  (17394 12938))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/mixal-mode.el
 
 (autoload (quote mixal-mode) "mixal-mode" "\
@@ -18147,7 +17917,7 @@
 
 ;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion
 ;;;;;;  malayalam-compose-region) "mlm-util" "language/mlm-util.el"
-;;;;;;  (17340 11482))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from language/mlm-util.el
 
 (autoload (quote malayalam-compose-region) "mlm-util" "\
@@ -18170,7 +17940,7 @@
 ;;;***
 
 ;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents)
-;;;;;;  "mm-extern" "gnus/mm-extern.el" (17632 41885))
+;;;;;;  "mm-extern" "gnus/mm-extern.el" (17632 36219))
 ;;; Generated autoloads from gnus/mm-extern.el
 
 (autoload (quote mm-extern-cache-contents) "mm-extern" "\
@@ -18189,7 +17959,7 @@
 ;;;***
 
 ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/mm-partial.el
 
 (autoload (quote mm-inline-partial) "mm-partial" "\
@@ -18203,7 +17973,7 @@
 ;;;***
 
 ;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents)
-;;;;;;  "mm-url" "gnus/mm-url.el" (17604 60390))
+;;;;;;  "mm-url" "gnus/mm-url.el" (17610 3931))
 ;;; Generated autoloads from gnus/mm-url.el
 
 (autoload (quote mm-url-insert-file-contents) "mm-url" "\
@@ -18220,7 +17990,7 @@
 ;;;***
 
 ;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu"
-;;;;;;  "gnus/mm-uu.el" (17714 34817))
+;;;;;;  "gnus/mm-uu.el" (17715 55646))
 ;;; Generated autoloads from gnus/mm-uu.el
 
 (autoload (quote mm-uu-dissect) "mm-uu" "\
@@ -18240,7 +18010,7 @@
 ;;;***
 
 ;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
-;;;;;;  (17495 43954))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/mml1991.el
 
 (autoload (quote mml1991-encrypt) "mml1991" "\
@@ -18257,7 +18027,7 @@
 
 ;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt
 ;;;;;;  mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt)
-;;;;;;  "mml2015" "gnus/mml2015.el" (17495 43954))
+;;;;;;  "mml2015" "gnus/mml2015.el" (17504 41540))
 ;;; Generated autoloads from gnus/mml2015.el
 
 (autoload (quote mml2015-decrypt) "mml2015" "\
@@ -18298,7 +18068,7 @@
 ;;;***
 
 ;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el"
-;;;;;;  (17276 54295))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/modula2.el
 
 (autoload (quote modula-2-mode) "modula2" "\
@@ -18330,7 +18100,7 @@
 ;;;***
 
 ;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el"
-;;;;;;  (17385 8495))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from play/morse.el
 
 (autoload (quote morse-region) "morse" "\
@@ -18346,7 +18116,7 @@
 ;;;***
 
 ;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17704
-;;;;;;  4325))
+;;;;;;  3961))
 ;;; Generated autoloads from mouse-sel.el
 
 (defvar mouse-sel-mode nil "\
@@ -18398,7 +18168,7 @@
 
 ;;;***
 
-;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17385 8495))
+;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17504 41540))
 ;;; Generated autoloads from play/mpuz.el
 
 (autoload (quote mpuz) "mpuz" "\
@@ -18408,18 +18178,17 @@
 
 ;;;***
 
-;;;### (autoloads (msb-mode) "msb" "msb.el" (17560 14582))
+;;;### (autoloads (msb-mode) "msb" "msb.el" (17566 60306))
 ;;; Generated autoloads from msb.el
 
 (defvar msb-mode nil "\
 Non-nil if Msb mode is enabled.
 See the command `msb-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `msb-mode'.")
-
-(custom-autoload (quote msb-mode) "msb")
-
-(put (quote msb-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `msb-mode'.")
+
+(custom-autoload (quote msb-mode) "msb" nil)
 
 (autoload (quote msb-mode) "msb" "\
 Toggle Msb mode.
@@ -18436,7 +18205,7 @@
 ;;;;;;  describe-current-coding-system describe-current-coding-system-briefly
 ;;;;;;  describe-coding-system describe-character-set list-charset-chars
 ;;;;;;  read-charset list-character-sets) "mule-diag" "international/mule-diag.el"
-;;;;;;  (17619 27480))
+;;;;;;  (17623 45182))
 ;;; Generated autoloads from international/mule-diag.el
 
 (defvar non-iso-charset-alist (\` ((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252))))) "\
@@ -18610,7 +18379,7 @@
 ;;;;;;  coding-system-translation-table-for-decode coding-system-pre-write-conversion
 ;;;;;;  coding-system-post-read-conversion lookup-nested-alist set-nested-alist
 ;;;;;;  truncate-string-to-width store-substring string-to-sequence)
-;;;;;;  "mule-util" "international/mule-util.el" (17102 18726))
+;;;;;;  "mule-util" "international/mule-util.el" (17504 41540))
 ;;; Generated autoloads from international/mule-util.el
 
 (autoload (quote string-to-sequence) "mule-util" "\
@@ -18739,18 +18508,17 @@
 ;;;***
 
 ;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el"
-;;;;;;  (17515 24181))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mwheel.el
 
 (defvar mouse-wheel-mode nil "\
 Non-nil if Mouse-Wheel mode is enabled.
 See the command `mouse-wheel-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `mouse-wheel-mode'.")
-
-(custom-autoload (quote mouse-wheel-mode) "mwheel")
-
-(put (quote mouse-wheel-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `mouse-wheel-mode'.")
+
+(custom-autoload (quote mouse-wheel-mode) "mwheel" nil)
 
 (autoload (quote mouse-wheel-mode) "mwheel" "\
 Toggle mouse wheel support.
@@ -18769,7 +18537,7 @@
 ;;;### (autoloads (network-connection network-connection-to-service
 ;;;;;;  whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
 ;;;;;;  nslookup nslookup-host route arp netstat ipconfig ping traceroute)
-;;;;;;  "net-utils" "net/net-utils.el" (17385 8495))
+;;;;;;  "net-utils" "net/net-utils.el" (17504 41540))
 ;;; Generated autoloads from net/net-utils.el
 
 (autoload (quote traceroute) "net-utils" "\
@@ -18865,7 +18633,7 @@
 ;;;;;;  uncomment-region comment-kill comment-set-column comment-indent
 ;;;;;;  comment-indent-default comment-normalize-vars comment-multi-line
 ;;;;;;  comment-padding comment-style comment-column) "newcomment"
-;;;;;;  "newcomment.el" (17707 53738))
+;;;;;;  "newcomment.el" (17707 61789))
 ;;; Generated autoloads from newcomment.el
 
 (defalias (quote indent-for-comment) (quote comment-indent))
@@ -19061,7 +18829,7 @@
 
 ;;;### (autoloads (newsticker-show-news newsticker-start-ticker newsticker-start
 ;;;;;;  newsticker-ticker-running-p newsticker-running-p) "newsticker"
-;;;;;;  "net/newsticker.el" (17385 8495))
+;;;;;;  "net/newsticker.el" (17504 41540))
 ;;; Generated autoloads from net/newsticker.el
 
 (autoload (quote newsticker-running-p) "newsticker" "\
@@ -19103,7 +18871,7 @@
 ;;;***
 
 ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
-;;;;;;  (17385 8493))
+;;;;;;  (17746 34862))
 ;;; Generated autoloads from gnus/nndiary.el
 
 (autoload (quote nndiary-generate-nov-databases) "nndiary" "\
@@ -19113,8 +18881,8 @@
 
 ;;;***
 
-;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17385
-;;;;;;  8494))
+;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from gnus/nndoc.el
 
 (autoload (quote nndoc-add-type) "nndoc" "\
@@ -19129,7 +18897,7 @@
 ;;;***
 
 ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el"
-;;;;;;  (17394 12936))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/nnfolder.el
 
 (autoload (quote nnfolder-generate-active-file) "nnfolder" "\
@@ -19141,7 +18909,7 @@
 ;;;***
 
 ;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/nnkiboze.el
 
 (autoload (quote nnkiboze-generate-groups) "nnkiboze" "\
@@ -19153,7 +18921,7 @@
 ;;;***
 
 ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/nnml.el
 
 (autoload (quote nnml-generate-nov-databases) "nnml" "\
@@ -19164,7 +18932,7 @@
 ;;;***
 
 ;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies)
-;;;;;;  "nnsoup" "gnus/nnsoup.el" (17385 8494))
+;;;;;;  "nnsoup" "gnus/nnsoup.el" (17746 34862))
 ;;; Generated autoloads from gnus/nnsoup.el
 
 (autoload (quote nnsoup-pack-replies) "nnsoup" "\
@@ -19185,7 +18953,7 @@
 ;;;***
 
 ;;;### (autoloads (disable-command enable-command disabled-command-function)
-;;;;;;  "novice" "novice.el" (17665 54136))
+;;;;;;  "novice" "novice.el" (17665 54360))
 ;;; Generated autoloads from novice.el
 
 (defvar disabled-command-function (quote disabled-command-function) "\
@@ -19218,7 +18986,7 @@
 ;;;***
 
 ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el"
-;;;;;;  (17385 8496))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from textmodes/nroff-mode.el
 
 (autoload (quote nroff-mode) "nroff-mode" "\
@@ -19233,7 +19001,7 @@
 ;;;***
 
 ;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el"
-;;;;;;  (17394 12938))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/octave-hlp.el
 
 (autoload (quote octave-help) "octave-hlp" "\
@@ -19247,7 +19015,7 @@
 ;;;***
 
 ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el"
-;;;;;;  (17730 6653))
+;;;;;;  (17731 48936))
 ;;; Generated autoloads from progmodes/octave-inf.el
 
 (autoload (quote inferior-octave) "octave-inf" "\
@@ -19270,7 +19038,7 @@
 ;;;***
 
 ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
-;;;;;;  (17427 10522))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/octave-mod.el
 
 (autoload (quote octave-mode) "octave-mod" "\
@@ -19368,34 +19136,13 @@
 
 ;;;***
 
-;;;### (autoloads (edit-options list-options) "options" "obsolete/options.el"
-;;;;;;  (17560 6690))
-;;; Generated autoloads from obsolete/options.el
-
-(autoload (quote list-options) "options" "\
-Display a list of Emacs user options, with values and documentation.
-It is now better to use Customize instead.
-
-\(fn)" t nil)
-
-(autoload (quote edit-options) "options" "\
-Edit a list of Emacs user option values.
-Selects a buffer containing such a list,
-in which there are commands to set the option values.
-Type \\[describe-mode] in that buffer for a list of commands.
-
-The Custom feature is intended to make this obsolete.
-
-\(fn)" t nil)
-
-;;;***
-
 ;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files
 ;;;;;;  org-export-icalendar-this-file orgtbl-mode turn-on-orgtbl
 ;;;;;;  org-remember-handler org-remember-apply-template org-remember-annotation
-;;;;;;  org-store-link org-tags-view org-diary org-todo-list org-agenda-list
-;;;;;;  org-agenda org-global-cycle org-cycle org-mode) "org" "textmodes/org.el"
-;;;;;;  (17699 53313))
+;;;;;;  org-store-link org-tags-view org-diary org-cycle-agenda-files
+;;;;;;  org-todo-list org-agenda-list org-batch-agenda org-agenda
+;;;;;;  org-global-cycle org-cycle org-mode) "org" "textmodes/org.el"
+;;;;;;  (17759 28874))
 ;;; Generated autoloads from textmodes/org.el
 
 (autoload (quote org-mode) "org" "\
@@ -19458,14 +19205,15 @@
 Dispatch agenda commands to collect entries to the agenda buffer.
 Prompts for a character to select a command.  Any prefix arg will be passed
 on to the selected command.  The default selections are:
-
-a     Call `org-agenda' to display the agenda for the current day or week.
+g
+a     Call `org-agenda-list' to display the agenda for current day or week.
 t     Call `org-todo-list' to display the global todo list.
 T     Call `org-todo-list' to display the global todo list, select only
       entries with a specific TODO keyword (the user gets a prompt).
 m     Call `org-tags-view' to display headlines with tags matching
       a condition  (the user is prompted for the condition).
 M     Like `m', but select only TODO entries, no ordinary headlines.
+l     Create a timeeline for the current buffer.
 
 More commands can be added by configuring the variable
 `org-agenda-custom-commands'.  In particular, specific tags and TODO keyword
@@ -19477,6 +19225,14 @@
 
 \(fn ARG)" t nil)
 
+(autoload (quote org-batch-agenda) "org" "\
+Run an agenda command in batch mode, send result to STDOUT.
+CMD-KEY is a string that is also a key in `org-agenda-custom-commands'.
+Paramters are alternating variable names and values that will be bound
+before running the agenda command.
+
+\(fn CMD-KEY &rest PARAMETERS)" nil (quote macro))
+
 (autoload (quote org-agenda-list) "org" "\
 Produce a weekly view from all files in variable `org-agenda-files'.
 The view will be for the current week, but from the overview buffer you
@@ -19490,7 +19246,7 @@
 given in `org-agenda-start-on-weekday'.
 NDAYS defaults to `org-agenda-ndays'.
 
-\(fn &optional INCLUDE-ALL START-DAY NDAYS KEEP-MODES)" t nil)
+\(fn &optional INCLUDE-ALL START-DAY NDAYS)" t nil)
 
 (autoload (quote org-todo-list) "org" "\
 Show all TODO entries from all agenda file in a single list.
@@ -19499,7 +19255,14 @@
 for a keyword.  A numeric prefix directly selects the Nth keyword in
 `org-todo-keywords'.
 
-\(fn ARG &optional KEEP-MODES)" t nil)
+\(fn ARG)" t nil)
+
+(autoload (quote org-cycle-agenda-files) "org" "\
+Cycle through the files in `org-agenda-files'.
+If the current buffer visits an agenda file, find the next one in the list.
+If the current buffer does not, find the first agenda file.
+
+\(fn)" t nil)
 
 (autoload (quote org-diary) "org" "\
 Return diary information from org-files.
@@ -19551,7 +19314,7 @@
 Show all headlines for all `org-agenda-files' matching a TAGS criterion.
 The prefix arg TODO-ONLY limits the search to TODO entries.
 
-\(fn &optional TODO-ONLY MATCH KEEP-MODES)" t nil)
+\(fn &optional TODO-ONLY MATCH)" t nil)
 
 (autoload (quote org-store-link) "org" "\
 \\<org-mode-map>Store an org-link to the current location.
@@ -19647,7 +19410,7 @@
 ;;;***
 
 ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el"
-;;;;;;  (17515 24181))
+;;;;;;  (17508 50986))
 ;;; Generated autoloads from outline.el
 (put 'outline-regexp 'safe-local-variable 'string-or-null-p)
 
@@ -19703,8 +19466,8 @@
 
 ;;;***
 
-;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17495
-;;;;;;  43955))
+;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from textmodes/paragraphs.el
 (put 'paragraph-start 'safe-local-variable 'stringp)
 (put 'paragraph-separate 'safe-local-variable 'stringp)
@@ -19718,18 +19481,17 @@
 
 ;;;***
 
-;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17385 8487))
+;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17504 41540))
 ;;; Generated autoloads from paren.el
 
 (defvar show-paren-mode nil "\
 Non-nil if Show-Paren mode is enabled.
 See the command `show-paren-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `show-paren-mode'.")
-
-(custom-autoload (quote show-paren-mode) "paren")
-
-(put (quote show-paren-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `show-paren-mode'.")
+
+(custom-autoload (quote show-paren-mode) "paren" nil)
 
 (autoload (quote show-paren-mode) "paren" "\
 Toggle Show Paren mode.
@@ -19744,7 +19506,7 @@
 ;;;***
 
 ;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el"
-;;;;;;  (17386 33146))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from calendar/parse-time.el
 
 (autoload (quote parse-time-string) "parse-time" "\
@@ -19756,8 +19518,8 @@
 
 ;;;***
 
-;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17394
-;;;;;;  12938))
+;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from progmodes/pascal.el
 
 (autoload (quote pascal-mode) "pascal" "\
@@ -19810,7 +19572,7 @@
 ;;;***
 
 ;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el"
-;;;;;;  (17385 8491))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emulation/pc-mode.el
 
 (autoload (quote pc-bindings-mode) "pc-mode" "\
@@ -19828,18 +19590,17 @@
 ;;;***
 
 ;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select"
-;;;;;;  "emulation/pc-select.el" (17385 8491))
+;;;;;;  "emulation/pc-select.el" (17504 41540))
 ;;; Generated autoloads from emulation/pc-select.el
 
 (defvar pc-selection-mode nil "\
 Non-nil if Pc-Selection mode is enabled.
 See the command `pc-selection-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `pc-selection-mode'.")
-
-(custom-autoload (quote pc-selection-mode) "pc-select")
-
-(put (quote pc-selection-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `pc-selection-mode'.")
+
+(custom-autoload (quote pc-selection-mode) "pc-select" nil)
 
 (autoload (quote pc-selection-mode) "pc-select" "\
 Change mark behavior to emulate Motif, MAC or MS-Windows cut and paste style.
@@ -19901,12 +19662,12 @@
 Setting this variable directly does not take effect;
 you must modify it using \\[customize] or \\[pc-selection-mode].")
 
-(custom-autoload (quote pc-selection-mode) "pc-select")
-
-;;;***
-
-;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17385
-;;;;;;  8487))
+(custom-autoload (quote pc-selection-mode) "pc-select" nil)
+
+;;;***
+
+;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from pcmpl-cvs.el
 
 (autoload (quote pcomplete/cvs) "pcmpl-cvs" "\
@@ -19917,7 +19678,7 @@
 ;;;***
 
 ;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip)
-;;;;;;  "pcmpl-gnu" "pcmpl-gnu.el" (17385 8487))
+;;;;;;  "pcmpl-gnu" "pcmpl-gnu.el" (17504 41540))
 ;;; Generated autoloads from pcmpl-gnu.el
 
 (autoload (quote pcomplete/gzip) "pcmpl-gnu" "\
@@ -19945,7 +19706,7 @@
 ;;;***
 
 ;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
-;;;;;;  "pcmpl-linux" "pcmpl-linux.el" (17385 8487))
+;;;;;;  "pcmpl-linux" "pcmpl-linux.el" (17504 41540))
 ;;; Generated autoloads from pcmpl-linux.el
 
 (autoload (quote pcomplete/kill) "pcmpl-linux" "\
@@ -19965,8 +19726,8 @@
 
 ;;;***
 
-;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17385
-;;;;;;  8487))
+;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from pcmpl-rpm.el
 
 (autoload (quote pcomplete/rpm) "pcmpl-rpm" "\
@@ -19982,7 +19743,7 @@
 
 ;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which
 ;;;;;;  pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd)
-;;;;;;  "pcmpl-unix" "pcmpl-unix.el" (17385 8487))
+;;;;;;  "pcmpl-unix" "pcmpl-unix.el" (17504 41540))
 ;;; Generated autoloads from pcmpl-unix.el
 
 (autoload (quote pcomplete/cd) "pcmpl-unix" "\
@@ -20028,8 +19789,8 @@
 
 ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
 ;;;;;;  pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
-;;;;;;  pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17476
-;;;;;;  4798))
+;;;;;;  pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from pcomplete.el
 
 (autoload (quote pcomplete) "pcomplete" "\
@@ -20088,7 +19849,7 @@
 
 ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
 ;;;;;;  cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
-;;;;;;  "pcvs.el" (17697 23215))
+;;;;;;  "pcvs.el" (17759 28868))
 ;;; Generated autoloads from pcvs.el
 
 (autoload (quote cvs-checkout) "pcvs" "\
@@ -20165,7 +19926,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17670 57734))
+;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17672 28070))
 ;;; Generated autoloads from pcvs-defs.el
 
 (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m)))
@@ -20173,7 +19934,7 @@
 ;;;***
 
 ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el"
-;;;;;;  (17515 24182))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/perl-mode.el
 
 (autoload (quote perl-mode) "perl-mode" "\
@@ -20231,7 +19992,7 @@
 ;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key
 ;;;;;;  pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt
 ;;;;;;  pgg-decrypt-region pgg-encrypt pgg-encrypt-symmetric pgg-encrypt-symmetric-region
-;;;;;;  pgg-encrypt-region) "pgg" "pgg.el" (17661 55157))
+;;;;;;  pgg-encrypt-region) "pgg" "pgg.el" (17661 56347))
 ;;; Generated autoloads from pgg.el
 
 (autoload (quote pgg-encrypt-region) "pgg" "\
@@ -20365,7 +20126,7 @@
 ;;;***
 
 ;;;### (autoloads (pgg-gpg-symmetric-key-p) "pgg-gpg" "pgg-gpg.el"
-;;;;;;  (17664 20313))
+;;;;;;  (17664 29027))
 ;;; Generated autoloads from pgg-gpg.el
 
 (autoload (quote pgg-gpg-symmetric-key-p) "pgg-gpg" "\
@@ -20376,7 +20137,7 @@
 ;;;***
 
 ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el"
-;;;;;;  (17476 4802))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from textmodes/picture.el
 
 (autoload (quote picture-mode) "picture" "\
@@ -20457,7 +20218,7 @@
 ;;;***
 
 ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
-;;;;;;  (17601 9092))
+;;;;;;  (17604 18984))
 ;;; Generated autoloads from textmodes/po.el
 
 (autoload (quote po-find-file-coding-system) "po" "\
@@ -20468,7 +20229,7 @@
 
 ;;;***
 
-;;;### (autoloads (pong) "pong" "play/pong.el" (17551 7908))
+;;;### (autoloads (pong) "pong" "play/pong.el" (17557 12730))
 ;;; Generated autoloads from play/pong.el
 
 (autoload (quote pong) "pong" "\
@@ -20485,7 +20246,7 @@
 ;;;***
 
 ;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer
-;;;;;;  pp-to-string) "pp" "emacs-lisp/pp.el" (17718 28532))
+;;;;;;  pp-to-string) "pp" "emacs-lisp/pp.el" (17746 34861))
 ;;; Generated autoloads from emacs-lisp/pp.el
 
 (autoload (quote pp-to-string) "pp" "\
@@ -20546,7 +20307,7 @@
 ;;;;;;  pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
 ;;;;;;  pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
 ;;;;;;  pr-ps-directory-preview pr-interface) "printing" "printing.el"
-;;;;;;  (17682 43101))
+;;;;;;  (17746 34861))
 ;;; Generated autoloads from printing.el
 
 (autoload (quote pr-interface) "printing" "\
@@ -21134,7 +20895,7 @@
 ;;;***
 
 ;;;### (autoloads (switch-to-prolog prolog-mode) "prolog" "progmodes/prolog.el"
-;;;;;;  (17664 20313))
+;;;;;;  (17665 30176))
 ;;; Generated autoloads from progmodes/prolog.el
 
 (autoload (quote prolog-mode) "prolog" "\
@@ -21157,7 +20918,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17385 8487))
+;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17504 41540))
 ;;; Generated autoloads from ps-bdf.el
 
 (defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\
@@ -21166,8 +20927,8 @@
 
 ;;;***
 
-;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17394
-;;;;;;  12938))
+;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from progmodes/ps-mode.el
 
 (autoload (quote ps-mode) "ps-mode" "\
@@ -21216,7 +20977,7 @@
 ;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string
 ;;;;;;  ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string
 ;;;;;;  ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer)
-;;;;;;  "ps-mule" "ps-mule.el" (17385 8487))
+;;;;;;  "ps-mule" "ps-mule.el" (17504 41540))
 ;;; Generated autoloads from ps-mule.el
 
 (defvar ps-multibyte-buffer nil "\
@@ -21262,7 +21023,7 @@
 
 Any other value is treated as nil.")
 
-(custom-autoload (quote ps-multibyte-buffer) "ps-mule")
+(custom-autoload (quote ps-multibyte-buffer) "ps-mule" t)
 
 (autoload (quote ps-mule-prepare-ascii-font) "ps-mule" "\
 Setup special ASCII font for STRING.
@@ -21337,8 +21098,8 @@
 ;;;;;;  ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
 ;;;;;;  ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
 ;;;;;;  ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
-;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (17682
-;;;;;;  43101))
+;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (17686
+;;;;;;  35929))
 ;;; Generated autoloads from ps-print.el
 
 (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\
@@ -21535,7 +21296,7 @@
 ;;;***
 
 ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
-;;;;;;  (17723 56210))
+;;;;;;  (17759 28873))
 ;;; Generated autoloads from progmodes/python.el
 
 (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
@@ -21610,7 +21371,7 @@
 ;;;***
 
 ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
-;;;;;;  (17408 40148))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/qp.el
 
 (autoload (quote quoted-printable-decode-region) "qp" "\
@@ -21633,7 +21394,7 @@
 ;;;;;;  quail-defrule quail-install-decode-map quail-install-map
 ;;;;;;  quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout
 ;;;;;;  quail-define-package quail-use-package quail-title) "quail"
-;;;;;;  "international/quail.el" (17660 25612))
+;;;;;;  "international/quail.el" (17660 47810))
 ;;; Generated autoloads from international/quail.el
 
 (autoload (quote quail-title) "quail" "\
@@ -21864,8 +21625,8 @@
 
 ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
 ;;;;;;  quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
-;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17385
-;;;;;;  8495))
+;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from net/quickurl.el
 
 (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\
@@ -21937,7 +21698,7 @@
 ;;;***
 
 ;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
-;;;;;;  "net/rcirc.el" (17671 12161))
+;;;;;;  "net/rcirc.el" (17672 28071))
 ;;; Generated autoloads from net/rcirc.el
 
 (autoload (quote rcirc) "rcirc" "\
@@ -21969,8 +21730,8 @@
 
 ;;;***
 
-;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17569
-;;;;;;  26652))
+;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17578
+;;;;;;  29458))
 ;;; Generated autoloads from net/rcompile.el
 
 (autoload (quote remote-compile) "rcompile" "\
@@ -21982,7 +21743,7 @@
 ;;;***
 
 ;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el"
-;;;;;;  (17515 24181))
+;;;;;;  (17759 28868))
 ;;; Generated autoloads from emacs-lisp/re-builder.el
 
 (defalias (quote regexp-builder) (quote re-builder))
@@ -21994,7 +21755,7 @@
 
 ;;;***
 
-;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17718 28532))
+;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17718 30636))
 ;;; Generated autoloads from recentf.el
 
 (defvar recentf-mode nil "\
@@ -22021,8 +21782,8 @@
 ;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle
 ;;;;;;  delete-whitespace-rectangle open-rectangle insert-rectangle
 ;;;;;;  yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle
-;;;;;;  delete-rectangle move-to-column-force) "rect" "rect.el" (17637
-;;;;;;  59300))
+;;;;;;  delete-rectangle move-to-column-force) "rect" "rect.el" (17639
+;;;;;;  6256))
 ;;; Generated autoloads from rect.el
 
 (autoload (quote move-to-column-force) "rect" "\
@@ -22150,8 +21911,8 @@
 
 ;;;***
 
-;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17385
-;;;;;;  8496))
+;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from textmodes/refill.el
 
 (autoload (quote refill-mode) "refill" "\
@@ -22167,7 +21928,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-reset-scanning-information reftex-mode
-;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (17408 40149))
+;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (17504 41540))
 ;;; Generated autoloads from textmodes/reftex.el
 
 (autoload (quote turn-on-reftex) "reftex" "\
@@ -22217,7 +21978,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
-;;;;;;  (17408 40149))
+;;;;;;  (17746 34863))
 ;;; Generated autoloads from textmodes/reftex-cite.el
 
 (autoload (quote reftex-citation) "reftex-cite" "\
@@ -22247,7 +22008,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
-;;;;;;  (17712 850))
+;;;;;;  (17712 1062))
 ;;; Generated autoloads from textmodes/reftex-global.el
 
 (autoload (quote reftex-isearch-minor-mode) "reftex-global" "\
@@ -22264,7 +22025,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
-;;;;;;  (17420 32031))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from textmodes/reftex-index.el
 
 (autoload (quote reftex-index-phrases-mode) "reftex-index" "\
@@ -22297,7 +22058,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
-;;;;;;  (17408 40149))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from textmodes/reftex-parse.el
 
 (autoload (quote reftex-all-document-files) "reftex-parse" "\
@@ -22310,7 +22071,7 @@
 ;;;***
 
 ;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17704
-;;;;;;  4326))
+;;;;;;  3967))
 ;;; Generated autoloads from textmodes/reftex-vars.el
 (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
 (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
@@ -22320,7 +22081,7 @@
 ;;;***
 
 ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el"
-;;;;;;  (17385 8490))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emacs-lisp/regexp-opt.el
 
 (autoload (quote regexp-opt) "regexp-opt" "\
@@ -22347,7 +22108,7 @@
 
 ;;;***
 
-;;;### (autoloads (repeat) "repeat" "repeat.el" (17385 8487))
+;;;### (autoloads (repeat) "repeat" "repeat.el" (17504 41540))
 ;;; Generated autoloads from repeat.el
 
 (autoload (quote repeat) "repeat" "\
@@ -22365,7 +22126,7 @@
 ;;;***
 
 ;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/reporter.el
 
 (autoload (quote reporter-submit-bug-report) "reporter" "\
@@ -22397,7 +22158,7 @@
 ;;;***
 
 ;;;### (autoloads (reposition-window) "reposition" "reposition.el"
-;;;;;;  (17385 8487))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from reposition.el
 
 (autoload (quote reposition-window) "reposition" "\
@@ -22424,8 +22185,8 @@
 
 ;;;***
 
-;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17385
-;;;;;;  8487))
+;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from resume.el
 
 (autoload (quote resume-suspend-hook) "resume" "\
@@ -22436,7 +22197,7 @@
 ;;;***
 
 ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el"
-;;;;;;  (17495 43954))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from reveal.el
 
 (autoload (quote reveal-mode) "reveal" "\
@@ -22453,11 +22214,10 @@
 Non-nil if Global-Reveal mode is enabled.
 See the command `global-reveal-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `global-reveal-mode'.")
-
-(custom-autoload (quote global-reveal-mode) "reveal")
-
-(put (quote global-reveal-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `global-reveal-mode'.")
+
+(custom-autoload (quote global-reveal-mode) "reveal" nil)
 
 (autoload (quote global-reveal-mode) "reveal" "\
 Toggle Reveal mode in all buffers on or off.
@@ -22472,7 +22232,7 @@
 ;;;***
 
 ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el"
-;;;;;;  (17385 8490))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emacs-lisp/ring.el
 
 (autoload (quote ring-p) "ring" "\
@@ -22487,7 +22247,7 @@
 
 ;;;***
 
-;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17385 8495))
+;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17504 41540))
 ;;; Generated autoloads from net/rlogin.el
  (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)")
 
@@ -22538,8 +22298,8 @@
 ;;;;;;  rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
 ;;;;;;  rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
 ;;;;;;  rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
-;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17704
-;;;;;;  4326))
+;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17746
+;;;;;;  34862))
 ;;; Generated autoloads from mail/rmail.el
 
 (autoload (quote rmail-movemail-variant-p) "rmail" "\
@@ -22804,7 +22564,7 @@
 ;;;***
 
 ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/rmailedit.el
 
 (autoload (quote rmail-edit-current-message) "rmailedit" "\
@@ -22816,7 +22576,7 @@
 
 ;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message
 ;;;;;;  rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd"
-;;;;;;  "mail/rmailkwd.el" (17385 8494))
+;;;;;;  "mail/rmailkwd.el" (17504 41540))
 ;;; Generated autoloads from mail/rmailkwd.el
 
 (autoload (quote rmail-add-label) "rmailkwd" "\
@@ -22855,7 +22615,7 @@
 ;;;***
 
 ;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/rmailmsc.el
 
 (autoload (quote set-rmail-inbox-list) "rmailmsc" "\
@@ -22869,7 +22629,7 @@
 
 ;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output
 ;;;;;;  rmail-output-to-rmail-file rmail-output-file-alist) "rmailout"
-;;;;;;  "mail/rmailout.el" (17385 8494))
+;;;;;;  "mail/rmailout.el" (17759 28870))
 ;;; Generated autoloads from mail/rmailout.el
 
 (defvar rmail-output-file-alist nil "\
@@ -22880,7 +22640,7 @@
 or more generally it may be any kind of expression that returns
 a file name as a string.")
 
-(custom-autoload (quote rmail-output-file-alist) "rmailout")
+(custom-autoload (quote rmail-output-file-alist) "rmailout" t)
 
 (autoload (quote rmail-output-to-rmail-file) "rmailout" "\
 Append the current message to an Rmail file named FILE-NAME.
@@ -22904,7 +22664,7 @@
 (defvar rmail-fields-not-to-output nil "\
 *Regexp describing fields to exclude when outputting a message to a file.")
 
-(custom-autoload (quote rmail-fields-not-to-output) "rmailout")
+(custom-autoload (quote rmail-fields-not-to-output) "rmailout" t)
 
 (autoload (quote rmail-output) "rmailout" "\
 Append this message to system-inbox-format mail file named FILE-NAME.
@@ -22936,8 +22696,8 @@
 
 ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
 ;;;;;;  rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
-;;;;;;  rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17385
-;;;;;;  8494))
+;;;;;;  rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from mail/rmailsort.el
 
 (autoload (quote rmail-sort-by-date) "rmailsort" "\
@@ -22989,18 +22749,18 @@
 ;;;;;;  rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp
 ;;;;;;  rmail-summary-by-recipients rmail-summary-by-labels rmail-summary
 ;;;;;;  rmail-summary-line-count-flag rmail-summary-scroll-between-messages)
-;;;;;;  "rmailsum" "mail/rmailsum.el" (17427 10522))
+;;;;;;  "rmailsum" "mail/rmailsum.el" (17504 41540))
 ;;; Generated autoloads from mail/rmailsum.el
 
 (defvar rmail-summary-scroll-between-messages t "\
 *Non-nil means Rmail summary scroll commands move between messages.")
 
-(custom-autoload (quote rmail-summary-scroll-between-messages) "rmailsum")
+(custom-autoload (quote rmail-summary-scroll-between-messages) "rmailsum" t)
 
 (defvar rmail-summary-line-count-flag t "\
 *Non-nil means Rmail summary should show the number of lines in each message.")
 
-(custom-autoload (quote rmail-summary-line-count-flag) "rmailsum")
+(custom-autoload (quote rmail-summary-line-count-flag) "rmailsum" t)
 
 (autoload (quote rmail-summary) "rmailsum" "\
 Display a summary of all messages, one line per message.
@@ -23050,7 +22810,7 @@
 
 By default, `identity' is set.")
 
-(custom-autoload (quote rmail-summary-line-decoder) "rmailsum")
+(custom-autoload (quote rmail-summary-line-decoder) "rmailsum" t)
 
 (defvar rmail-user-mail-address-regexp nil "\
 *Regexp matching user mail addresses.
@@ -23066,25 +22826,12 @@
 
 Setting this variable has an effect only before reading a mail.")
 
-(custom-autoload (quote rmail-user-mail-address-regexp) "rmailsum")
-
-;;;***
-
-;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el"
-;;;;;;  (17385 8495))
-;;; Generated autoloads from obsolete/rnewspost.el
-
-(autoload (quote news-post-news) "rnewspost" "\
-Begin editing a new USENET news article to be posted.
-Type \\[describe-mode] once editing the article to get a list of commands.
-If NOQUERY is non-nil, we do not query before doing the work.
-
-\(fn &optional NOQUERY)" t nil)
+(custom-autoload (quote rmail-user-mail-address-regexp) "rmailsum" t)
 
 ;;;***
 
 ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region
-;;;;;;  rot13-string rot13) "rot13" "rot13.el" (17385 8487))
+;;;;;;  rot13-string rot13) "rot13" "rot13.el" (17504 41540))
 ;;; Generated autoloads from rot13.el
 
 (autoload (quote rot13) "rot13" "\
@@ -23121,52 +22868,8 @@
 
 ;;;***
 
-;;;### (autoloads (resize-minibuffer-mode resize-minibuffer-frame-exactly
-;;;;;;  resize-minibuffer-frame-max-height resize-minibuffer-frame
-;;;;;;  resize-minibuffer-window-exactly resize-minibuffer-window-max-height
-;;;;;;  resize-minibuffer-mode) "rsz-mini" "obsolete/rsz-mini.el"
-;;;;;;  (17385 8495))
-;;; Generated autoloads from obsolete/rsz-mini.el
-
-(defvar resize-minibuffer-mode nil "\
-*This variable is obsolete.")
-
-(custom-autoload (quote resize-minibuffer-mode) "rsz-mini")
-
-(defvar resize-minibuffer-window-max-height nil "\
-*This variable is obsolete.")
-
-(custom-autoload (quote resize-minibuffer-window-max-height) "rsz-mini")
-
-(defvar resize-minibuffer-window-exactly t "\
-*This variable is obsolete.")
-
-(custom-autoload (quote resize-minibuffer-window-exactly) "rsz-mini")
-
-(defvar resize-minibuffer-frame nil "\
-*This variable is obsolete.")
-
-(custom-autoload (quote resize-minibuffer-frame) "rsz-mini")
-
-(defvar resize-minibuffer-frame-max-height nil "\
-*This variable is obsolete.")
-
-(custom-autoload (quote resize-minibuffer-frame-max-height) "rsz-mini")
-
-(defvar resize-minibuffer-frame-exactly t "\
-*This variable is obsolete.")
-
-(custom-autoload (quote resize-minibuffer-frame-exactly) "rsz-mini")
-
-(autoload (quote resize-minibuffer-mode) "rsz-mini" "\
-This function is obsolete.
-
-\(fn &optional PREFIX)" t nil)
-
-;;;***
-
-;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17385
-;;;;;;  8487))
+;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from ruler-mode.el
 
 (autoload (quote ruler-mode) "ruler-mode" "\
@@ -23176,8 +22879,8 @@
 
 ;;;***
 
-;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17420
-;;;;;;  32030))
+;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from emacs-lisp/rx.el
 
 (autoload (quote rx-to-string) "rx" "\
@@ -23485,7 +23188,7 @@
 ;;;***
 
 ;;;### (autoloads (savehist-mode savehist-mode) "savehist" "savehist.el"
-;;;;;;  (17476 4798))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from savehist.el
 
 (defvar savehist-mode nil "\
@@ -23493,7 +23196,7 @@
 Set this by calling the `savehist-mode' function or using the customize
 interface.")
 
-(custom-autoload (quote savehist-mode) "savehist")
+(custom-autoload (quote savehist-mode) "savehist" nil)
 
 (autoload (quote savehist-mode) "savehist" "\
 Toggle savehist-mode.
@@ -23511,7 +23214,7 @@
 ;;;***
 
 ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
-;;;;;;  (17394 12938))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from progmodes/scheme.el
 
 (autoload (quote scheme-mode) "scheme" "\
@@ -23553,7 +23256,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/score-mode.el
 
 (autoload (quote gnus-score-mode) "score-mode" "\
@@ -23566,44 +23269,18 @@
 
 ;;;***
 
-;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (17385
-;;;;;;  8495))
-;;; Generated autoloads from obsolete/scribe.el
-
-(autoload (quote scribe-mode) "scribe" "\
-Major mode for editing files of Scribe (a text formatter) source.
-Scribe-mode is similar to text-mode, with a few extra commands added.
-\\{scribe-mode-map}
-
-Interesting variables:
-
-`scribe-fancy-paragraphs'
-  Non-nil makes Scribe mode use a different style of paragraph separation.
-
-`scribe-electric-quote'
-  Non-nil makes insert of double quote use `` or '' depending on context.
-
-`scribe-electric-parenthesis'
-  Non-nil makes an open-parenthesis char (one of `([<{')
-  automatically insert its close if typed after an @Command form.
-
-\(fn)" t nil)
-
-;;;***
-
 ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el"
-;;;;;;  (17385 8487))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from scroll-all.el
 
 (defvar scroll-all-mode nil "\
 Non-nil if Scroll-All mode is enabled.
 See the command `scroll-all-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `scroll-all-mode'.")
-
-(custom-autoload (quote scroll-all-mode) "scroll-all")
-
-(put (quote scroll-all-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `scroll-all-mode'.")
+
+(custom-autoload (quote scroll-all-mode) "scroll-all" nil)
 
 (autoload (quote scroll-all-mode) "scroll-all" "\
 Toggle Scroll-All minor mode.
@@ -23616,7 +23293,7 @@
 ;;;***
 
 ;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el"
-;;;;;;  (17385 8487))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from scroll-lock.el
 
 (autoload (quote scroll-lock-mode) "scroll-lock" "\
@@ -23638,7 +23315,7 @@
 ;;;;;;  mail-alias-file mail-default-reply-to mail-archive-file-name
 ;;;;;;  mail-header-separator send-mail-function mail-interactive
 ;;;;;;  mail-self-blind mail-specify-envelope-from mail-from-style)
-;;;;;;  "sendmail" "mail/sendmail.el" (17660 26729))
+;;;;;;  "sendmail" "mail/sendmail.el" (17660 47811))
 ;;; Generated autoloads from mail/sendmail.el
 
 (defvar mail-from-style (quote angles) "\
@@ -23939,7 +23616,7 @@
 ;;;***
 
 ;;;### (autoloads (server-mode server-start) "server" "server.el"
-;;;;;;  (17581 37625))
+;;;;;;  (17759 28868))
 ;;; Generated autoloads from server.el
 
 (autoload (quote server-start) "server" "\
@@ -23957,11 +23634,10 @@
 Non-nil if Server mode is enabled.
 See the command `server-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `server-mode'.")
-
-(custom-autoload (quote server-mode) "server")
-
-(put (quote server-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `server-mode'.")
+
+(custom-autoload (quote server-mode) "server" nil)
 
 (autoload (quote server-mode) "server" "\
 Toggle Server mode.
@@ -23973,7 +23649,7 @@
 
 ;;;***
 
-;;;### (autoloads (ses-mode) "ses" "ses.el" (17693 24641))
+;;;### (autoloads (ses-mode) "ses" "ses.el" (17759 28868))
 ;;; Generated autoloads from ses.el
 
 (autoload (quote ses-mode) "ses" "\
@@ -23992,7 +23668,7 @@
 ;;;***
 
 ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
-;;;;;;  (17524 25620))
+;;;;;;  (17522 22309))
 ;;; Generated autoloads from textmodes/sgml-mode.el
 
 (autoload (quote sgml-mode) "sgml-mode" "\
@@ -24060,7 +23736,7 @@
 ;;;***
 
 ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;;  (17709 24918))
+;;;;;;  (17710 3081))
 ;;; Generated autoloads from progmodes/sh-script.el
 (put 'sh-shell 'safe-local-variable 'symbolp)
 
@@ -24124,7 +23800,7 @@
 
 ;;;***
 
-;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17385 8494))
+;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17504 41540))
 ;;; Generated autoloads from gnus/sha1.el
 
 (autoload (quote sha1) "sha1" "\
@@ -24139,7 +23815,7 @@
 ;;;***
 
 ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
-;;;;;;  (17385 8490))
+;;;;;;  (17746 34861))
 ;;; Generated autoloads from emacs-lisp/shadow.el
 
 (autoload (quote list-load-path-shadows) "shadow" "\
@@ -24159,17 +23835,17 @@
 XXX.el in the site-lisp directory is referred to by all of:
 \(require 'XXX), (autoload .... \"XXX\"), (load-library \"XXX\") etc.
 
-The first XXX.el file prevents emacs from seeing the second (unless
-the second is loaded explicitly via load-file).
+The first XXX.el file prevents Emacs from seeing the second (unless
+the second is loaded explicitly via `load-file').
 
 When not intended, such shadowings can be the source of subtle
 problems.  For example, the above situation may have arisen because the
-XXX package was not distributed with versions of emacs prior to
-19.30.  An emacs maintainer downloaded XXX from elsewhere and installed
-it.  Later, XXX was updated and included in the emacs distribution.
-Unless the emacs maintainer checks for this, the new version of XXX
+XXX package was not distributed with versions of Emacs prior to
+19.30.  An Emacs maintainer downloaded XXX from elsewhere and installed
+it.  Later, XXX was updated and included in the Emacs distribution.
+Unless the Emacs maintainer checks for this, the new version of XXX
 will be hidden behind the old (which may no longer work with the new
-emacs version).
+Emacs version).
 
 This function performs these checks and flags all possible
 shadowings.  Because a .el file may exist without a corresponding .elc
@@ -24186,8 +23862,8 @@
 ;;;***
 
 ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
-;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (17385
-;;;;;;  8487))
+;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from shadowfile.el
 
 (autoload (quote shadow-define-cluster) "shadowfile" "\
@@ -24212,7 +23888,7 @@
 Make each of a group of files be shared between hosts.
 Prompts for regular expression; files matching this are shared between a list
 of sites, which are also prompted for.  The filenames must be identical on all
-hosts (if they aren't, use shadow-define-group instead of this function).
+hosts (if they aren't, use `shadow-define-literal-group' instead of this function).
 Each site can be either a hostname or the name of a cluster (see
 `shadow-define-cluster').
 
@@ -24226,7 +23902,7 @@
 ;;;***
 
 ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el"
-;;;;;;  (17717 4883))
+;;;;;;  (17715 55645))
 ;;; Generated autoloads from shell.el
 
 (defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\
@@ -24273,7 +23949,7 @@
 ;;;***
 
 ;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage)
-;;;;;;  "sieve" "gnus/sieve.el" (17385 8494))
+;;;;;;  "sieve" "gnus/sieve.el" (17504 41540))
 ;;; Generated autoloads from gnus/sieve.el
 
 (autoload (quote sieve-manage) "sieve" "\
@@ -24294,7 +23970,7 @@
 ;;;***
 
 ;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/sieve-mode.el
 
 (autoload (quote sieve-mode) "sieve-mode" "\
@@ -24309,14 +23985,14 @@
 
 ;;;***
 
-;;;### (autoloads nil "simple" "simple.el" (17718 31961))
+;;;### (autoloads nil "simple" "simple.el" (17746 34861))
 ;;; Generated autoloads from simple.el
 (put 'fill-prefix 'safe-local-variable 'string-or-null-p)
 
 ;;;***
 
-;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17394
-;;;;;;  12938))
+;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from progmodes/simula.el
 
 (autoload (quote simula-mode) "simula" "\
@@ -24365,7 +24041,7 @@
 ;;;***
 
 ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new
-;;;;;;  define-skeleton) "skeleton" "skeleton.el" (17524 25620))
+;;;;;;  define-skeleton) "skeleton" "skeleton.el" (17522 22308))
 ;;; Generated autoloads from skeleton.el
 
 (defvar skeleton-filter-function (quote identity) "\
@@ -24475,7 +24151,7 @@
 ;;;***
 
 ;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el"
-;;;;;;  (17495 43954))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from smerge-mode.el
 
 (autoload (quote smerge-ediff) "smerge-mode" "\
@@ -24494,7 +24170,7 @@
 ;;;***
 
 ;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el"
-;;;;;;  (17476 4800))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from gnus/smiley.el
 
 (autoload (quote smiley-region) "smiley" "\
@@ -24512,7 +24188,7 @@
 ;;;***
 
 ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
-;;;;;;  "mail/smtpmail.el" (17718 28532))
+;;;;;;  "mail/smtpmail.el" (17718 30637))
 ;;; Generated autoloads from mail/smtpmail.el
 
 (autoload (quote smtpmail-send-it) "smtpmail" "\
@@ -24527,7 +24203,7 @@
 
 ;;;***
 
-;;;### (autoloads (snake) "snake" "play/snake.el" (17385 8495))
+;;;### (autoloads (snake) "snake" "play/snake.el" (17504 41540))
 ;;; Generated autoloads from play/snake.el
 
 (autoload (quote snake) "snake" "\
@@ -24551,7 +24227,7 @@
 ;;;***
 
 ;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el"
-;;;;;;  (17385 8495))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from net/snmp-mode.el
 
 (autoload (quote snmp-mode) "snmp-mode" "\
@@ -24582,7 +24258,7 @@
 
 ;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name
 ;;;;;;  calendar-longitude calendar-latitude calendar-time-display-form)
-;;;;;;  "solar" "calendar/solar.el" (17386 33146))
+;;;;;;  "solar" "calendar/solar.el" (17504 41540))
 ;;; Generated autoloads from calendar/solar.el
 
 (defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\
@@ -24599,7 +24275,7 @@
 
 would give military-style times like `21:07 (UTC)'.")
 
-(custom-autoload (quote calendar-time-display-form) "solar")
+(custom-autoload (quote calendar-time-display-form) "solar" t)
 
 (defvar calendar-latitude nil "\
 *Latitude of `calendar-location-name' in degrees.
@@ -24611,7 +24287,7 @@
 
 This variable should be set in `site-start'.el.")
 
-(custom-autoload (quote calendar-latitude) "solar")
+(custom-autoload (quote calendar-latitude) "solar" t)
 
 (defvar calendar-longitude nil "\
 *Longitude of `calendar-location-name' in degrees.
@@ -24623,7 +24299,7 @@
 
 This variable should be set in `site-start'.el.")
 
-(custom-autoload (quote calendar-longitude) "solar")
+(custom-autoload (quote calendar-longitude) "solar" t)
 
 (defvar calendar-location-name (quote (let ((float-output-format "%.1f")) (format "%s%s, %s%s" (if (numberp calendar-latitude) (abs calendar-latitude) (+ (aref calendar-latitude 0) (/ (aref calendar-latitude 1) 60.0))) (if (numberp calendar-latitude) (if (> calendar-latitude 0) "N" "S") (if (equal (aref calendar-latitude 2) (quote north)) "N" "S")) (if (numberp calendar-longitude) (abs calendar-longitude) (+ (aref calendar-longitude 0) (/ (aref calendar-longitude 1) 60.0))) (if (numberp calendar-longitude) (if (> calendar-longitude 0) "E" "W") (if (equal (aref calendar-longitude 2) (quote east)) "E" "W"))))) "\
 *Expression evaluating to name of `calendar-longitude', `calendar-latitude'.
@@ -24632,7 +24308,7 @@
 
 This variable should be set in `site-start'.el.")
 
-(custom-autoload (quote calendar-location-name) "solar")
+(custom-autoload (quote calendar-location-name) "solar" t)
 
 (autoload (quote sunrise-sunset) "solar" "\
 Local time of sunrise and sunset for today.  Accurate to a few seconds.
@@ -24653,8 +24329,8 @@
 
 ;;;***
 
-;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17385
-;;;;;;  8495))
+;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from play/solitaire.el
 
 (autoload (quote solitaire) "solitaire" "\
@@ -24731,7 +24407,7 @@
 
 ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields
 ;;;;;;  sort-fields sort-numeric-fields sort-pages sort-paragraphs
-;;;;;;  sort-lines sort-subr) "sort" "sort.el" (17476 4798))
+;;;;;;  sort-lines sort-subr) "sort" "sort.el" (17746 34861))
 ;;; Generated autoloads from sort.el
 
 (autoload (quote sort-subr) "sort" "\
@@ -24873,8 +24549,8 @@
 
 ;;;***
 
-;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17476
-;;;;;;  4800))
+;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from gnus/spam.el
 
 (autoload (quote spam-initialize) "spam" "\
@@ -24886,7 +24562,7 @@
 
 ;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file
 ;;;;;;  spam-report-url-ping-mm-url spam-report-process-queue) "spam-report"
-;;;;;;  "gnus/spam-report.el" (17386 33146))
+;;;;;;  "gnus/spam-report.el" (17504 41540))
 ;;; Generated autoloads from gnus/spam-report.el
 
 (autoload (quote spam-report-process-queue) "spam-report" "\
@@ -24929,7 +24605,7 @@
 ;;;***
 
 ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar"
-;;;;;;  "speedbar.el" (17535 19469))
+;;;;;;  "speedbar.el" (17746 34861))
 ;;; Generated autoloads from speedbar.el
 
 (defalias (quote speedbar) (quote speedbar-frame-mode))
@@ -24954,7 +24630,7 @@
 ;;;***
 
 ;;;### (autoloads (spell-string spell-region spell-word spell-buffer)
-;;;;;;  "spell" "textmodes/spell.el" (17385 8496))
+;;;;;;  "spell" "textmodes/spell.el" (17504 41540))
 ;;; Generated autoloads from textmodes/spell.el
 
 (put (quote spell-filter) (quote risky-local-variable) t)
@@ -24990,8 +24666,8 @@
 
 ;;;***
 
-;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17385
-;;;;;;  8495))
+;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from play/spook.el
 
 (autoload (quote spook) "spook" "\
@@ -25009,8 +24685,8 @@
 ;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres
 ;;;;;;  sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
 ;;;;;;  sql-sybase sql-oracle sql-product-interactive sql-mode sql-help
-;;;;;;  sql-add-product-keywords) "sql" "progmodes/sql.el" (17394
-;;;;;;  12938))
+;;;;;;  sql-add-product-keywords) "sql" "progmodes/sql.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from progmodes/sql.el
 
 (autoload (quote sql-add-product-keywords) "sql" "\
@@ -25442,7 +25118,7 @@
 ;;;;;;  strokes-help strokes-describe-stroke strokes-do-complex-stroke
 ;;;;;;  strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
 ;;;;;;  strokes-global-set-stroke) "strokes" "strokes.el" (17704
-;;;;;;  4325))
+;;;;;;  3962))
 ;;; Generated autoloads from strokes.el
 
 (autoload (quote strokes-global-set-stroke) "strokes" "\
@@ -25552,7 +25228,7 @@
 ;;;***
 
 ;;;### (autoloads (studlify-buffer studlify-word studlify-region)
-;;;;;;  "studly" "play/studly.el" (17075 55479))
+;;;;;;  "studly" "play/studly.el" (17504 41540))
 ;;; Generated autoloads from play/studly.el
 
 (autoload (quote studlify-region) "studly" "\
@@ -25572,7 +25248,7 @@
 
 ;;;***
 
-;;;### (autoloads (locate-library) "subr" "subr.el" (17724 51792))
+;;;### (autoloads (locate-library) "subr" "subr.el" (17759 28868))
 ;;; Generated autoloads from subr.el
 
 (autoload (quote locate-library) "subr" "\
@@ -25594,7 +25270,7 @@
 ;;;***
 
 ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/supercite.el
 
 (autoload (quote sc-cite-original) "supercite" "\
@@ -25626,14 +25302,15 @@
 
 ;;;***
 
-;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17614 9197))
+;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17746 34861))
 ;;; Generated autoloads from t-mouse.el
 
 (defvar t-mouse-mode nil "\
 Non-nil if T-Mouse mode is enabled.
 See the command `t-mouse-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `t-mouse-mode'.")
+either customize it (see the info node `Easy Customization')
+or call the function `t-mouse-mode'.")
 
 (custom-autoload (quote t-mouse-mode) "t-mouse" nil)
 
@@ -25641,13 +25318,13 @@
 Toggle t-mouse mode.
 With prefix arg, turn t-mouse mode on iff arg is positive.
 
-Turn it on to use emacs mouse commands, and off to use t-mouse commands.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-
-;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17607 45512))
+Turn it on to use Emacs mouse commands, and off to use t-mouse commands.
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+
+;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17610 3931))
 ;;; Generated autoloads from tabify.el
 
 (autoload (quote untabify) "tabify" "\
@@ -25682,7 +25359,7 @@
 ;;;;;;  table-recognize table-insert-row-column table-insert-column
 ;;;;;;  table-insert-row table-insert table-point-left-cell-hook
 ;;;;;;  table-point-entered-cell-hook table-load-hook table-cell-map-hook)
-;;;;;;  "table" "textmodes/table.el" (17717 4883))
+;;;;;;  "table" "textmodes/table.el" (17746 34863))
 ;;; Generated autoloads from textmodes/table.el
 
 (defvar table-cell-map-hook nil "\
@@ -26270,7 +25947,7 @@
 
 ;;;***
 
-;;;### (autoloads (talk-connect) "talk" "talk.el" (17385 8488))
+;;;### (autoloads (talk-connect) "talk" "talk.el" (17504 41540))
 ;;; Generated autoloads from talk.el
 
 (autoload (quote talk-connect) "talk" "\
@@ -26280,7 +25957,7 @@
 
 ;;;***
 
-;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17528 38000))
+;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17527 7050))
 ;;; Generated autoloads from tar-mode.el
 
 (autoload (quote tar-mode) "tar-mode" "\
@@ -26304,7 +25981,7 @@
 ;;;***
 
 ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl"
-;;;;;;  "progmodes/tcl.el" (17485 5461))
+;;;;;;  "progmodes/tcl.el" (17504 41540))
 ;;; Generated autoloads from progmodes/tcl.el
 
 (autoload (quote tcl-mode) "tcl" "\
@@ -26355,7 +26032,7 @@
 
 ;;;***
 
-;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17385 8495))
+;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17504 41540))
 ;;; Generated autoloads from net/telnet.el
  (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)")
 
@@ -26382,8 +26059,8 @@
 
 ;;;***
 
-;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17560
-;;;;;;  29983))
+;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17566
+;;;;;;  60306))
 ;;; Generated autoloads from term.el
 
 (autoload (quote make-term) "term" "\
@@ -26411,8 +26088,8 @@
 
 ;;;***
 
-;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17385
-;;;;;;  8488))
+;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from terminal.el
 
 (autoload (quote terminal-emulator) "terminal" "\
@@ -26449,7 +26126,7 @@
 ;;;***
 
 ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
-;;;;;;  (17385 8490))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emacs-lisp/testcover.el
 
 (autoload (quote testcover-this-defun) "testcover" "\
@@ -26459,7 +26136,7 @@
 
 ;;;***
 
-;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17385 8495))
+;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17504 41540))
 ;;; Generated autoloads from play/tetris.el
 
 (autoload (quote tetris) "tetris" "\
@@ -26490,13 +26167,13 @@
 ;;;;;;  tex-start-commands tex-start-options slitex-run-command latex-run-command
 ;;;;;;  tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
 ;;;;;;  tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
-;;;;;;  (17560 6690))
+;;;;;;  (17566 60308))
 ;;; Generated autoloads from textmodes/tex-mode.el
 
 (defvar tex-shell-file-name nil "\
 *If non-nil, the shell file name to run in the subshell used to run TeX.")
 
-(custom-autoload (quote tex-shell-file-name) "tex-mode")
+(custom-autoload (quote tex-shell-file-name) "tex-mode" t)
 
 (defvar tex-directory "." "\
 *Directory in which temporary files are written.
@@ -26504,7 +26181,7 @@
 and you don't try to apply \\[tex-region] or \\[tex-buffer] when there are
 `\\input' commands with relative directories.")
 
-(custom-autoload (quote tex-directory) "tex-mode")
+(custom-autoload (quote tex-directory) "tex-mode" t)
 
 (defvar tex-first-line-header-regexp nil "\
 Regexp for matching a first line which `tex-region' should include.
@@ -26512,40 +26189,40 @@
 if it matches the first line of the file,
 `tex-region' always includes the first line in the TeX run.")
 
-(custom-autoload (quote tex-first-line-header-regexp) "tex-mode")
+(custom-autoload (quote tex-first-line-header-regexp) "tex-mode" t)
 
 (defvar tex-main-file nil "\
 *The main TeX source file which includes this buffer's file.
 The command `tex-file' runs TeX on the file specified by `tex-main-file'
 if the variable is non-nil.")
 
-(custom-autoload (quote tex-main-file) "tex-mode")
+(custom-autoload (quote tex-main-file) "tex-mode" t)
 
 (defvar tex-offer-save t "\
 *If non-nil, ask about saving modified buffers before \\[tex-file] is run.")
 
-(custom-autoload (quote tex-offer-save) "tex-mode")
+(custom-autoload (quote tex-offer-save) "tex-mode" t)
 
 (defvar tex-run-command "tex" "\
 *Command used to run TeX subjob.
 TeX Mode sets `tex-command' to this string.
 See the documentation of that variable.")
 
-(custom-autoload (quote tex-run-command) "tex-mode")
+(custom-autoload (quote tex-run-command) "tex-mode" t)
 
 (defvar latex-run-command "latex" "\
 *Command used to run LaTeX subjob.
 LaTeX Mode sets `tex-command' to this string.
 See the documentation of that variable.")
 
-(custom-autoload (quote latex-run-command) "tex-mode")
+(custom-autoload (quote latex-run-command) "tex-mode" t)
 
 (defvar slitex-run-command "slitex" "\
 *Command used to run SliTeX subjob.
 SliTeX Mode sets `tex-command' to this string.
 See the documentation of that variable.")
 
-(custom-autoload (quote slitex-run-command) "tex-mode")
+(custom-autoload (quote slitex-run-command) "tex-mode" t)
 
 (defvar tex-start-options "" "\
 *TeX options to use when starting TeX.
@@ -26553,34 +26230,34 @@
 and the input file name, with no separating space and are not shell-quoted.
 If nil, TeX runs with no options.  See the documentation of `tex-command'.")
 
-(custom-autoload (quote tex-start-options) "tex-mode")
+(custom-autoload (quote tex-start-options) "tex-mode" t)
 
 (defvar tex-start-commands "\\nonstopmode\\input" "\
 *TeX commands to use when starting TeX.
 They are shell-quoted and precede the input file name, with a separating space.
 If nil, no commands are used.  See the documentation of `tex-command'.")
 
-(custom-autoload (quote tex-start-commands) "tex-mode")
+(custom-autoload (quote tex-start-commands) "tex-mode" t)
 
 (defvar latex-block-names nil "\
 *User defined LaTeX block names.
 Combined with `latex-standard-block-names' for minibuffer completion.")
 
-(custom-autoload (quote latex-block-names) "tex-mode")
+(custom-autoload (quote latex-block-names) "tex-mode" t)
 
 (defvar tex-bibtex-command "bibtex" "\
 *Command used by `tex-bibtex-file' to gather bibliographic data.
 If this string contains an asterisk (`*'), that is replaced by the file name;
 otherwise, the file name, preceded by blank, is added at the end.")
 
-(custom-autoload (quote tex-bibtex-command) "tex-mode")
+(custom-autoload (quote tex-bibtex-command) "tex-mode" t)
 
 (defvar tex-dvi-print-command "lpr -d" "\
 *Command used by \\[tex-print] to print a .dvi file.
 If this string contains an asterisk (`*'), that is replaced by the file name;
 otherwise, the file name, preceded by blank, is added at the end.")
 
-(custom-autoload (quote tex-dvi-print-command) "tex-mode")
+(custom-autoload (quote tex-dvi-print-command) "tex-mode" t)
 
 (defvar tex-alt-dvi-print-command "lpr -d" "\
 *Command used by \\[tex-print] with a prefix arg to print a .dvi file.
@@ -26597,7 +26274,7 @@
 would tell \\[tex-print] with a prefix argument to ask you which printer to
 use.")
 
-(custom-autoload (quote tex-alt-dvi-print-command) "tex-mode")
+(custom-autoload (quote tex-alt-dvi-print-command) "tex-mode" t)
 
 (defvar tex-dvi-view-command (quote (cond ((eq window-system (quote x)) "xdvi") ((eq window-system (quote w32)) "yap") (t "dvi2tty * | cat -s"))) "\
 *Command used by \\[tex-view] to display a `.dvi' file.
@@ -26607,13 +26284,13 @@
 
 If the value is a form, it is evaluated to get the command to use.")
 
-(custom-autoload (quote tex-dvi-view-command) "tex-mode")
+(custom-autoload (quote tex-dvi-view-command) "tex-mode" t)
 
 (defvar tex-show-queue-command "lpq" "\
 *Command used by \\[tex-show-print-queue] to show the print queue.
 Should show the queue(s) that \\[tex-print] puts jobs on.")
 
-(custom-autoload (quote tex-show-queue-command) "tex-mode")
+(custom-autoload (quote tex-show-queue-command) "tex-mode" t)
 
 (defvar tex-default-mode (quote latex-mode) "\
 *Mode to enter for a new file that might be either TeX or LaTeX.
@@ -26621,17 +26298,17 @@
 is plain TeX or LaTeX or what because the file contains no commands.
 Normally set to either `plain-tex-mode' or `latex-mode'.")
 
-(custom-autoload (quote tex-default-mode) "tex-mode")
+(custom-autoload (quote tex-default-mode) "tex-mode" t)
 
 (defvar tex-open-quote "``" "\
 *String inserted by typing \\[tex-insert-quote] to open a quotation.")
 
-(custom-autoload (quote tex-open-quote) "tex-mode")
+(custom-autoload (quote tex-open-quote) "tex-mode" t)
 
 (defvar tex-close-quote "''" "\
 *String inserted by typing \\[tex-insert-quote] to close a quotation.")
 
-(custom-autoload (quote tex-close-quote) "tex-mode")
+(custom-autoload (quote tex-close-quote) "tex-mode" t)
 
 (autoload (quote tex-mode) "tex-mode" "\
 Major mode for editing files of input for TeX, LaTeX, or SliTeX.
@@ -26792,7 +26469,7 @@
 ;;;***
 
 ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer)
-;;;;;;  "texinfmt" "textmodes/texinfmt.el" (17601 9092))
+;;;;;;  "texinfmt" "textmodes/texinfmt.el" (17746 34863))
 ;;; Generated autoloads from textmodes/texinfmt.el
 
 (autoload (quote texinfo-format-buffer) "texinfmt" "\
@@ -26832,18 +26509,18 @@
 ;;;***
 
 ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote)
-;;;;;;  "texinfo" "textmodes/texinfo.el" (17385 8496))
+;;;;;;  "texinfo" "textmodes/texinfo.el" (17504 41540))
 ;;; Generated autoloads from textmodes/texinfo.el
 
 (defvar texinfo-open-quote "``" "\
 *String inserted by typing \\[texinfo-insert-quote] to open a quotation.")
 
-(custom-autoload (quote texinfo-open-quote) "texinfo")
+(custom-autoload (quote texinfo-open-quote) "texinfo" t)
 
 (defvar texinfo-close-quote "''" "\
 *String inserted by typing \\[texinfo-insert-quote] to close a quotation.")
 
-(custom-autoload (quote texinfo-close-quote) "texinfo")
+(custom-autoload (quote texinfo-close-quote) "texinfo" t)
 
 (autoload (quote texinfo-mode) "texinfo" "\
 Major mode for editing Texinfo files.
@@ -26919,7 +26596,7 @@
 ;;;### (autoloads (thai-auto-composition-mode thai-composition-function
 ;;;;;;  thai-post-read-conversion thai-compose-buffer thai-compose-string
 ;;;;;;  thai-compose-region) "thai-util" "language/thai-util.el"
-;;;;;;  (17185 27569))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from language/thai-util.el
 
 (autoload (quote thai-compose-region) "thai-util" "\
@@ -26963,7 +26640,7 @@
 
 ;;;### (autoloads (list-at-point number-at-point symbol-at-point
 ;;;;;;  sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
-;;;;;;  "thingatpt" "thingatpt.el" (17672 24041))
+;;;;;;  "thingatpt" "thingatpt.el" (17675 64484))
 ;;; Generated autoloads from thingatpt.el
 
 (autoload (quote forward-thing) "thingatpt" "\
@@ -27020,7 +26697,7 @@
 
 ;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked
 ;;;;;;  thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el"
-;;;;;;  (17601 9091))
+;;;;;;  (17591 28068))
 ;;; Generated autoloads from thumbs.el
 
 (autoload (quote thumbs-find-thumb) "thumbs" "\
@@ -27059,7 +26736,7 @@
 ;;;;;;  tibetan-composition-function tibetan-decompose-string tibetan-decompose-region
 ;;;;;;  tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan
 ;;;;;;  tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util"
-;;;;;;  "language/tibet-util.el" (17102 18781))
+;;;;;;  "language/tibet-util.el" (17504 41540))
 ;;; Generated autoloads from language/tibet-util.el
 
 (autoload (quote tibetan-char-p) "tibet-util" "\
@@ -27138,7 +26815,7 @@
 ;;;***
 
 ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
-;;;;;;  (17385 8496))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from textmodes/tildify.el
 
 (autoload (quote tildify-region) "tildify" "\
@@ -27162,7 +26839,7 @@
 ;;;***
 
 ;;;### (autoloads (display-time-mode display-time display-time-day-and-date)
-;;;;;;  "time" "time.el" (17674 51268))
+;;;;;;  "time" "time.el" (17675 64484))
 ;;; Generated autoloads from time.el
 
 (defvar display-time-day-and-date nil "\
@@ -27204,8 +26881,8 @@
 ;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year
 ;;;;;;  date-leap-year-p days-between date-to-day time-add time-subtract
 ;;;;;;  time-since days-to-time time-less-p seconds-to-time time-to-seconds
-;;;;;;  date-to-time) "time-date" "calendar/time-date.el" (17386
-;;;;;;  33146))
+;;;;;;  date-to-time) "time-date" "calendar/time-date.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from calendar/time-date.el
 
 (autoload (quote date-to-time) "time-date" "\
@@ -27291,7 +26968,7 @@
 ;;;***
 
 ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp"
-;;;;;;  "time-stamp.el" (17495 43954))
+;;;;;;  "time-stamp.el" (17504 41540))
 ;;; Generated autoloads from time-stamp.el
 (put 'time-stamp-format 'safe-local-variable 'stringp)
 (put 'time-stamp-line-limit 'safe-local-variable 'integerp)
@@ -27334,7 +27011,7 @@
 ;;;;;;  timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
 ;;;;;;  timeclock-change timeclock-status-string timeclock-out timeclock-in
 ;;;;;;  timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
-;;;;;;  (17632 41885))
+;;;;;;  (17628 62478))
 ;;; Generated autoloads from calendar/timeclock.el
 
 (autoload (quote timeclock-modeline-display) "timeclock" "\
@@ -27435,7 +27112,7 @@
 
 ;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer
 ;;;;;;  run-at-time cancel-function-timers cancel-timer) "timer"
-;;;;;;  "emacs-lisp/timer.el" (17686 65476))
+;;;;;;  "emacs-lisp/timer.el" (17687 61868))
 ;;; Generated autoloads from emacs-lisp/timer.el
 
 (defalias (quote disable-timeout) (quote cancel-timer))
@@ -27511,7 +27188,7 @@
 ;;;***
 
 ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv"
-;;;;;;  "international/titdic-cnv.el" (17102 18762))
+;;;;;;  "international/titdic-cnv.el" (17504 41540))
 ;;; Generated autoloads from international/titdic-cnv.el
 
 (autoload (quote titdic-convert) "titdic-cnv" "\
@@ -27534,8 +27211,8 @@
 ;;;***
 
 ;;;### (autoloads (tamil-composition-function tamil-post-read-conversion
-;;;;;;  tamil-compose-region) "tml-util" "language/tml-util.el" (17102
-;;;;;;  18782))
+;;;;;;  tamil-compose-region) "tml-util" "language/tml-util.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from language/tml-util.el
 
 (autoload (quote tamil-compose-region) "tml-util" "\
@@ -27558,7 +27235,7 @@
 ;;;***
 
 ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
-;;;;;;  "tmm.el" (17385 8488))
+;;;;;;  "tmm.el" (17504 41540))
 ;;; Generated autoloads from tmm.el
  (define-key global-map "\M-`" 'tmm-menubar)
  (define-key global-map [f10] 'tmm-menubar)
@@ -27599,7 +27276,7 @@
 
 ;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
 ;;;;;;  todo-insert-item todo-add-item-non-interactively todo-add-category)
-;;;;;;  "todo-mode" "calendar/todo-mode.el" (17386 33146))
+;;;;;;  "todo-mode" "calendar/todo-mode.el" (17504 41540))
 ;;; Generated autoloads from calendar/todo-mode.el
 
 (autoload (quote todo-add-category) "todo-mode" "\
@@ -27660,7 +27337,7 @@
 
 ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
 ;;;;;;  tool-bar-local-item tool-bar-add-item) "tool-bar" "tool-bar.el"
-;;;;;;  (17495 43954))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from tool-bar.el
 
 (put (quote tool-bar-mode) (quote standard-value) (quote (t)))
@@ -27727,18 +27404,17 @@
 ;;;***
 
 ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
-;;;;;;  (17385 8491))
+;;;;;;  (17746 34861))
 ;;; Generated autoloads from emulation/tpu-edt.el
 
 (defvar tpu-edt-mode nil "\
 Non-nil if Tpu-Edt mode is enabled.
 See the command `tpu-edt-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `tpu-edt-mode'.")
-
-(custom-autoload (quote tpu-edt-mode) "tpu-edt")
-
-(put (quote tpu-edt-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `tpu-edt-mode'.")
+
+(custom-autoload (quote tpu-edt-mode) "tpu-edt" nil)
 
 (autoload (quote tpu-edt-mode) "tpu-edt" "\
 TPU/edt emulation.
@@ -27755,7 +27431,7 @@
 ;;;***
 
 ;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins)
-;;;;;;  "tpu-extras" "emulation/tpu-extras.el" (17385 8491))
+;;;;;;  "tpu-extras" "emulation/tpu-extras.el" (17504 41540))
 ;;; Generated autoloads from emulation/tpu-extras.el
 
 (autoload (quote tpu-set-scroll-margins) "tpu-extras" "\
@@ -27775,7 +27451,7 @@
 
 ;;;***
 
-;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17651 3608))
+;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17652 14943))
 ;;; Generated autoloads from emacs-lisp/tq.el
 
 (autoload (quote tq-create) "tq" "\
@@ -27789,7 +27465,7 @@
 ;;;***
 
 ;;;### (autoloads (trace-function-background trace-function trace-buffer)
-;;;;;;  "trace" "emacs-lisp/trace.el" (17656 37701))
+;;;;;;  "trace" "emacs-lisp/trace.el" (17656 34194))
 ;;; Generated autoloads from emacs-lisp/trace.el
 
 (defvar trace-buffer "*trace-output*" "\
@@ -27826,12 +27502,12 @@
 ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
 ;;;;;;  tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
 ;;;;;;  tramp-file-name-handler tramp-completion-file-name-regexp
-;;;;;;  tramp-file-name-regexp) "tramp" "net/tramp.el" (17656 37701))
+;;;;;;  tramp-file-name-regexp) "tramp" "net/tramp.el" (17759 28871))
 ;;; Generated autoloads from net/tramp.el
 
 (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\
 Non-nil means to use unified Ange-FTP/Tramp filename syntax.
-Nil means to use a separate filename syntax for Tramp.")
+Otherwise, use a separate filename syntax for Tramp.")
 
 (defconst tramp-file-name-regexp-unified "\\`/[^/:]+:" "\
 Value for `tramp-file-name-regexp' for unified remoting.
@@ -27939,7 +27615,7 @@
 ;;;***
 
 ;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el"
-;;;;;;  (17366 25285))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from net/tramp-ftp.el
 
 (autoload (quote tramp-ftp-enable-ange-ftp) "tramp-ftp" "\
@@ -27954,8 +27630,8 @@
 ;;;;;;  tumme-display-thumb tumme-display-thumbs-append tumme-setup-dired-keybindings
 ;;;;;;  tumme-jump-thumbnail-buffer tumme-delete-tag tumme-tag-files
 ;;;;;;  tumme-show-all-from-dir tumme-display-thumbs tumme-dired-with-window-configuration
-;;;;;;  tumme-dired-insert-marked-thumbs) "tumme" "tumme.el" (17645
-;;;;;;  64048))
+;;;;;;  tumme-dired-insert-marked-thumbs) "tumme" "tumme.el" (17647
+;;;;;;  30168))
 ;;; Generated autoloads from tumme.el
 
 (autoload (quote tumme-dired-insert-marked-thumbs) "tumme" "\
@@ -28085,8 +27761,33 @@
 
 ;;;***
 
+;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17735
+;;;;;;  57938))
+;;; Generated autoloads from tutorial.el
+
+(autoload (quote help-with-tutorial) "tutorial" "\
+Select the Emacs learn-by-doing tutorial.
+If there is a tutorial version written in the language
+of the selected language environment, that version is used.
+If there's no tutorial in that language, `TUTORIAL' is selected.
+With ARG, you are asked to choose which language.
+If DONT-ASK-FOR-REVERT is non-nil the buffer is reverted without
+any question when restarting the tutorial.
+
+If any of the standard Emacs key bindings that are used in the
+tutorial have been changed then an explanatory note about this is
+shown in the beginning of the tutorial buffer.
+
+When the tutorial buffer is killed the content and the point
+position in the buffer is saved so that the tutorial may be
+resumed later.
+
+\(fn &optional ARG DONT-ASK-FOR-REVERT)" t nil)
+
+;;;***
+
 ;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column"
-;;;;;;  "textmodes/two-column.el" (17707 53738))
+;;;;;;  "textmodes/two-column.el" (17706 55365))
 ;;; Generated autoloads from textmodes/two-column.el
  (autoload '2C-command "two-column" () t 'keymap)
  (global-set-key "\C-x6" '2C-command)
@@ -28137,7 +27838,7 @@
 ;;;;;;  type-break type-break-mode type-break-keystroke-threshold
 ;;;;;;  type-break-good-break-interval type-break-good-rest-interval
 ;;;;;;  type-break-interval type-break-mode) "type-break" "type-break.el"
-;;;;;;  (17385 8488))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from type-break.el
 
 (defvar type-break-mode nil "\
@@ -28146,12 +27847,12 @@
 Setting this variable directly does not take effect;
 use either \\[customize] or the function `type-break-mode'.")
 
-(custom-autoload (quote type-break-mode) "type-break")
+(custom-autoload (quote type-break-mode) "type-break" nil)
 
 (defvar type-break-interval (* 60 60) "\
 *Number of seconds between scheduled typing breaks.")
 
-(custom-autoload (quote type-break-interval) "type-break")
+(custom-autoload (quote type-break-interval) "type-break" t)
 
 (defvar type-break-good-rest-interval (/ type-break-interval 6) "\
 *Number of seconds of idle time considered to be an adequate typing rest.
@@ -28163,7 +27864,7 @@
 If a break is interrupted before this much time elapses, the user will be
 asked whether or not really to interrupt the break.")
 
-(custom-autoload (quote type-break-good-rest-interval) "type-break")
+(custom-autoload (quote type-break-good-rest-interval) "type-break" t)
 
 (defvar type-break-good-break-interval nil "\
 *Number of seconds considered to be an adequate explicit typing rest.
@@ -28173,7 +27874,7 @@
 overriding `type-break-good-rest-interval'.  This provides querying of
 break interruptions when `type-break-good-rest-interval' is nil.")
 
-(custom-autoload (quote type-break-good-break-interval) "type-break")
+(custom-autoload (quote type-break-good-break-interval) "type-break" t)
 
 (defvar type-break-keystroke-threshold (let* ((wpm 35) (avg-word-length 5) (upper (* wpm avg-word-length (/ type-break-interval 60))) (lower (/ upper 5))) (cons lower upper)) "\
 *Upper and lower bound on number of keystrokes for considering typing break.
@@ -28197,7 +27898,7 @@
 The command `type-break-guesstimate-keystroke-threshold' can be used to
 guess a reasonably good pair of values for this variable.")
 
-(custom-autoload (quote type-break-keystroke-threshold) "type-break")
+(custom-autoload (quote type-break-keystroke-threshold) "type-break" t)
 
 (autoload (quote type-break-mode) "type-break" "\
 Enable or disable typing-break mode.
@@ -28320,7 +28021,7 @@
 ;;;***
 
 ;;;### (autoloads (ununderline-region underline-region) "underline"
-;;;;;;  "textmodes/underline.el" (17385 8496))
+;;;;;;  "textmodes/underline.el" (17504 41540))
 ;;; Generated autoloads from textmodes/underline.el
 
 (autoload (quote underline-region) "underline" "\
@@ -28341,7 +28042,7 @@
 ;;;***
 
 ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
-;;;;;;  "undigest" "mail/undigest.el" (17385 8494))
+;;;;;;  "undigest" "mail/undigest.el" (17504 41540))
 ;;; Generated autoloads from mail/undigest.el
 
 (autoload (quote undigestify-rmail-message) "undigest" "\
@@ -28360,7 +28061,7 @@
 ;;;***
 
 ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el"
-;;;;;;  (17385 8494))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from mail/unrmail.el
 
 (autoload (quote batch-unrmail) "unrmail" "\
@@ -28379,8 +28080,8 @@
 
 ;;;***
 
-;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17408
-;;;;;;  40148))
+;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from emacs-lisp/unsafep.el
 
 (autoload (quote unsafep) "unsafep" "\
@@ -28393,7 +28094,7 @@
 ;;;***
 
 ;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url"
-;;;;;;  "url/url.el" (17730 7120))
+;;;;;;  "url/url.el" (17746 34863))
 ;;; Generated autoloads from url/url.el
 
 (autoload (quote url-retrieve) "url" "\
@@ -28433,7 +28134,7 @@
 ;;;***
 
 ;;;### (autoloads (url-register-auth-scheme url-get-authentication)
-;;;;;;  "url-auth" "url/url-auth.el" (17729 4745))
+;;;;;;  "url-auth" "url/url-auth.el" (17504 41540))
 ;;; Generated autoloads from url/url-auth.el
 
 (autoload (quote url-get-authentication) "url-auth" "\
@@ -28475,8 +28176,8 @@
 ;;;***
 
 ;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached
-;;;;;;  url-store-in-cache) "url-cache" "url/url-cache.el" (17729
-;;;;;;  4745))
+;;;;;;  url-store-in-cache) "url-cache" "url/url-cache.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from url/url-cache.el
 
 (autoload (quote url-store-in-cache) "url-cache" "\
@@ -28501,7 +28202,7 @@
 
 ;;;***
 
-;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17729 4745))
+;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17504 41540))
 ;;; Generated autoloads from url/url-cid.el
 
 (autoload (quote url-cid) "url-cid" "\
@@ -28512,7 +28213,7 @@
 ;;;***
 
 ;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav"
-;;;;;;  "url/url-dav.el" (17729 4745))
+;;;;;;  "url/url-dav.el" (17686 35930))
 ;;; Generated autoloads from url/url-dav.el
 
 (autoload (quote url-dav-supported-p) "url-dav" "\
@@ -28527,8 +28228,8 @@
 
 ;;;***
 
-;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17729
-;;;;;;  4745))
+;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from url/url-file.el
 
 (autoload (quote url-file) "url-file" "\
@@ -28539,7 +28240,7 @@
 ;;;***
 
 ;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw"
-;;;;;;  "url/url-gw.el" (17730 6972))
+;;;;;;  "url/url-gw.el" (17759 30290))
 ;;; Generated autoloads from url/url-gw.el
 
 (autoload (quote url-gateway-nslookup-host) "url-gw" "\
@@ -28558,8 +28259,8 @@
 ;;;***
 
 ;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file
-;;;;;;  url-handler-mode) "url-handlers" "url/url-handlers.el" (17729
-;;;;;;  4745))
+;;;;;;  url-handler-mode) "url-handlers" "url/url-handlers.el" (17652
+;;;;;;  14946))
 ;;; Generated autoloads from url/url-handlers.el
 
 (defvar url-handler-mode nil "\
@@ -28603,7 +28304,7 @@
 ;;;***
 
 ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
-;;;;;;  url-http) "url-http" "url/url-http.el" (17730 6972))
+;;;;;;  url-http) "url-http" "url/url-http.el" (17759 28874))
 ;;; Generated autoloads from url/url-http.el
 
 (autoload (quote url-http) "url-http" "\
@@ -28668,7 +28369,7 @@
 
 ;;;***
 
-;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17729 4745))
+;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17592 59703))
 ;;; Generated autoloads from url/url-irc.el
 
 (autoload (quote url-irc) "url-irc" "\
@@ -28678,8 +28379,8 @@
 
 ;;;***
 
-;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17729
-;;;;;;  4745))
+;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from url/url-ldap.el
 
 (autoload (quote url-ldap) "url-ldap" "\
@@ -28693,7 +28394,7 @@
 ;;;***
 
 ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
-;;;;;;  (17729 4745))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from url/url-mailto.el
 
 (autoload (quote url-mail) "url-mailto" "\
@@ -28709,7 +28410,7 @@
 ;;;***
 
 ;;;### (autoloads (url-data url-generic-emulator-loader url-info
-;;;;;;  url-man) "url-misc" "url/url-misc.el" (17729 4745))
+;;;;;;  url-man) "url-misc" "url/url-misc.el" (17504 41540))
 ;;; Generated autoloads from url/url-misc.el
 
 (autoload (quote url-man) "url-misc" "\
@@ -28741,7 +28442,7 @@
 ;;;***
 
 ;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el"
-;;;;;;  (17729 4745))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from url/url-news.el
 
 (autoload (quote url-news) "url-news" "\
@@ -28758,7 +28459,7 @@
 
 ;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable
 ;;;;;;  dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el"
-;;;;;;  (17729 4745))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from url/url-ns.el
 
 (autoload (quote isPlainHostName) "url-ns" "\
@@ -28799,7 +28500,7 @@
 ;;;***
 
 ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse"
-;;;;;;  "url/url-parse.el" (17729 4745))
+;;;;;;  "url/url-parse.el" (17759 28874))
 ;;; Generated autoloads from url/url-parse.el
 
 (autoload (quote url-recreate-url) "url-parse" "\
@@ -28817,7 +28518,7 @@
 ;;;***
 
 ;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el"
-;;;;;;  (17729 4745))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from url/url-privacy.el
 
 (autoload (quote url-setup-privacy-info) "url-privacy" "\
@@ -28833,7 +28534,7 @@
 ;;;;;;  url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date
 ;;;;;;  url-lazy-message url-normalize-url url-insert-entities-in-string
 ;;;;;;  url-parse-args url-debug url-debug) "url-util" "url/url-util.el"
-;;;;;;  (17729 4745))
+;;;;;;  (17615 40606))
 ;;; Generated autoloads from url/url-util.el
 
 (defvar url-debug nil "\
@@ -28962,7 +28663,7 @@
 ;;;***
 
 ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock)
-;;;;;;  "userlock" "userlock.el" (17385 8488))
+;;;;;;  "userlock" "userlock.el" (17504 41540))
 ;;; Generated autoloads from userlock.el
 
 (autoload (quote ask-user-about-lock) "userlock" "\
@@ -28992,7 +28693,7 @@
 
 ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal
 ;;;;;;  uudecode-decode-region-external) "uudecode" "gnus/uudecode.el"
-;;;;;;  (17551 7908))
+;;;;;;  (17548 26487))
 ;;; Generated autoloads from gnus/uudecode.el
 
 (autoload (quote uudecode-decode-region-external) "uudecode" "\
@@ -29022,7 +28723,7 @@
 ;;;;;;  vc-directory vc-merge vc-insert-headers vc-version-other-window
 ;;;;;;  vc-diff vc-register vc-next-action vc-do-command edit-vc-file
 ;;;;;;  with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook
-;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17721 20491))
+;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17721 3805))
 ;;; Generated autoloads from vc.el
 
 (defvar vc-checkout-hook nil "\
@@ -29310,7 +29011,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "vc-arch" "vc-arch.el" (17385 8488))
+;;;### (autoloads nil "vc-arch" "vc-arch.el" (17504 41540))
 ;;; Generated autoloads from vc-arch.el
  (defun vc-arch-registered (file)
   (if (vc-find-root file "{arch}/=tagging-method")
@@ -29320,7 +29021,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17587 57307))
+;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17504 41540))
 ;;; Generated autoloads from vc-cvs.el
  (defun vc-cvs-registered (f)
   (when (file-readable-p (expand-file-name
@@ -29330,7 +29031,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17385 8488))
+;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17504 41540))
 ;;; Generated autoloads from vc-mcvs.el
  (defun vc-mcvs-registered (file)
   (if (vc-find-root file "MCVS/CVS")
@@ -29341,27 +29042,27 @@
 ;;;***
 
 ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el"
-;;;;;;  (17385 8488))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from vc-rcs.el
 
 (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
 *Where to look for RCS master files.
 For a description of possible values, see `vc-check-master-templates'.")
 
-(custom-autoload (quote vc-rcs-master-templates) "vc-rcs")
+(custom-autoload (quote vc-rcs-master-templates) "vc-rcs" t)
  (defun vc-rcs-registered (f) (vc-default-registered 'RCS f))
 
 ;;;***
 
 ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el"
-;;;;;;  (17385 8488))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from vc-sccs.el
 
 (defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
 *Where to look for SCCS master files.
 For a description of possible values, see `vc-check-master-templates'.")
 
-(custom-autoload (quote vc-sccs-master-templates) "vc-sccs")
+(custom-autoload (quote vc-sccs-master-templates) "vc-sccs" t)
  (defun vc-sccs-registered(f) (vc-default-registered 'SCCS f))
 
 (defun vc-sccs-search-project-dir (dirname basename) "\
@@ -29371,20 +29072,25 @@
 
 ;;;***
 
-;;;### (autoloads nil "vc-svn" "vc-svn.el" (17721 20491))
+;;;### (autoloads nil "vc-svn" "vc-svn.el" (17746 41336))
 ;;; Generated autoloads from vc-svn.el
  (defun vc-svn-registered (f)
-  (when (file-readable-p (expand-file-name
- 			  ".svn/entries" (file-name-directory f)))
+  (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
+ 			       (getenv "SVN_ASP_DOT_NET_HACK"))
+ 			  "_svn")
+ 			 (t ".svn"))))
+    (when (file-readable-p (expand-file-name
+ 			    (concat admin-dir "/entries")
+ 			    (file-name-directory f)))
       (load "vc-svn")
-      (vc-svn-registered f)))
+      (vc-svn-registered f))))
 
 (add-to-list (quote completion-ignored-extensions) ".svn/")
 
 ;;;***
 
 ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
-;;;;;;  (17615 27749))
+;;;;;;  (17759 28874))
 ;;; Generated autoloads from progmodes/vhdl-mode.el
 
 (autoload (quote vhdl-mode) "vhdl-mode" "\
@@ -29925,7 +29631,7 @@
 
 ;;;***
 
-;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17102 18541))
+;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17504 41540))
 ;;; Generated autoloads from emulation/vi.el
 
 (autoload (quote vi-mode) "vi" "\
@@ -29980,7 +29686,7 @@
 ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
 ;;;;;;  viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
 ;;;;;;  viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
-;;;;;;  "language/viet-util.el" (17102 18783))
+;;;;;;  "language/viet-util.el" (17504 41540))
 ;;; Generated autoloads from language/viet-util.el
 
 (autoload (quote viet-encode-viscii-char) "viet-util" "\
@@ -30026,8 +29732,8 @@
 
 ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
 ;;;;;;  view-buffer-other-window view-buffer view-file-other-frame
-;;;;;;  view-file-other-window view-file) "view" "view.el" (17385
-;;;;;;  8488))
+;;;;;;  view-file-other-window view-file) "view" "view.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from view.el
 
 (defvar view-mode nil "\
@@ -30236,8 +29942,8 @@
 
 ;;;***
 
-;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17385
-;;;;;;  8491))
+;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from emulation/vip.el
 
 (autoload (quote vip-setup) "vip" "\
@@ -30253,7 +29959,7 @@
 ;;;***
 
 ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
-;;;;;;  (17726 28398))
+;;;;;;  (17746 34861))
 ;;; Generated autoloads from emulation/viper.el
 
 (autoload (quote toggle-viper-mode) "viper" "\
@@ -30270,7 +29976,7 @@
 ;;;***
 
 ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
-;;;;;;  (17495 43954))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emacs-lisp/warnings.el
 
 (defvar warning-prefix-function nil "\
@@ -30359,7 +30065,7 @@
 ;;;***
 
 ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
-;;;;;;  (17613 21909))
+;;;;;;  (17611 30621))
 ;;; Generated autoloads from wdired.el
 
 (autoload (quote wdired-change-to-wdired-mode) "wdired" "\
@@ -30375,7 +30081,7 @@
 
 ;;;***
 
-;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17385 8495))
+;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17504 41540))
 ;;; Generated autoloads from net/webjump.el
 
 (autoload (quote webjump) "webjump" "\
@@ -30392,7 +30098,7 @@
 ;;;***
 
 ;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el"
-;;;;;;  (17608 57530))
+;;;;;;  (17611 25727))
 ;;; Generated autoloads from progmodes/which-func.el
  (put 'which-func-format 'risky-local-variable t)
  (put 'which-func-current 'risky-local-variable t)
@@ -30403,7 +30109,8 @@
 Non-nil if Which-Function mode is enabled.
 See the command `which-function-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `which-function-mode'.")
+either customize it (see the info node `Easy Customization')
+or call the function `which-function-mode'.")
 
 (custom-autoload (quote which-function-mode) "which-func" nil)
 
@@ -30424,7 +30131,7 @@
 ;;;;;;  whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check
 ;;;;;;  whitespace-toggle-indent-check whitespace-toggle-trailing-check
 ;;;;;;  whitespace-toggle-leading-check) "whitespace" "whitespace.el"
-;;;;;;  (17645 64048))
+;;;;;;  (17746 34861))
 ;;; Generated autoloads from whitespace.el
 
 (autoload (quote whitespace-toggle-leading-check) "whitespace" "\
@@ -30515,7 +30222,7 @@
 ;;;***
 
 ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse
-;;;;;;  widget-browse-at) "wid-browse" "wid-browse.el" (17385 8488))
+;;;;;;  widget-browse-at) "wid-browse" "wid-browse.el" (17504 41540))
 ;;; Generated autoloads from wid-browse.el
 
 (autoload (quote widget-browse-at) "wid-browse" "\
@@ -30542,8 +30249,8 @@
 ;;;***
 
 ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create
-;;;;;;  widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17709
-;;;;;;  24917))
+;;;;;;  widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17746
+;;;;;;  34861))
 ;;; Generated autoloads from wid-edit.el
 
 (autoload (quote widgetp) "wid-edit" "\
@@ -30587,8 +30294,8 @@
 ;;;***
 
 ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right
-;;;;;;  windmove-up windmove-left) "windmove" "windmove.el" (17385
-;;;;;;  8488))
+;;;;;;  windmove-up windmove-left) "windmove" "windmove.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from windmove.el
 
 (autoload (quote windmove-left) "windmove" "\
@@ -30641,7 +30348,7 @@
 ;;;***
 
 ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
-;;;;;;  (17385 8488))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from winner.el
 
 (defvar winner-mode nil "\
@@ -30649,7 +30356,7 @@
 Setting this variable directly does not take effect;
 use either \\[customize] or the function `winner-mode'.")
 
-(custom-autoload (quote winner-mode) "winner")
+(custom-autoload (quote winner-mode) "winner" nil)
 
 (autoload (quote winner-mode) "winner" "\
 Toggle Winner mode.
@@ -30660,7 +30367,7 @@
 ;;;***
 
 ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman"
-;;;;;;  "woman.el" (17714 34820))
+;;;;;;  "woman.el" (17715 55645))
 ;;; Generated autoloads from woman.el
 
 (autoload (quote woman) "woman" "\
@@ -30696,7 +30403,7 @@
 ;;;***
 
 ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el"
-;;;;;;  (17385 8492))
+;;;;;;  (17504 41540))
 ;;; Generated autoloads from emulation/ws-mode.el
 
 (autoload (quote wordstar-mode) "ws-mode" "\
@@ -30809,7 +30516,7 @@
 ;;;***
 
 ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el"
-;;;;;;  (17607 45512))
+;;;;;;  (17610 3931))
 ;;; Generated autoloads from xml.el
 
 (autoload (quote xml-parse-file) "xml" "\
@@ -30834,19 +30541,18 @@
 
 ;;;***
 
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17385
-;;;;;;  8488))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17504
+;;;;;;  41540))
 ;;; Generated autoloads from xt-mouse.el
 
 (defvar xterm-mouse-mode nil "\
 Non-nil if Xterm-Mouse mode is enabled.
 See the command `xterm-mouse-mode' for a description of this minor-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `xterm-mouse-mode'.")
-
-(custom-autoload (quote xterm-mouse-mode) "xt-mouse")
-
-(put (quote xterm-mouse-mode) (quote custom-set) (quote custom-set-minor-mode))
+either customize it (see the info node `Easy Customization')
+or call the function `xterm-mouse-mode'.")
+
+(custom-autoload (quote xterm-mouse-mode) "xt-mouse" nil)
 
 (autoload (quote xterm-mouse-mode) "xt-mouse" "\
 Toggle XTerm mouse mode.
@@ -30864,7 +30570,7 @@
 ;;;***
 
 ;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc"
-;;;;;;  "gnus/yenc.el" (17385 8494))
+;;;;;;  "gnus/yenc.el" (17504 41540))
 ;;; Generated autoloads from gnus/yenc.el
 
 (autoload (quote yenc-decode-region) "yenc" "\
@@ -30880,7 +30586,7 @@
 ;;;***
 
 ;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism
-;;;;;;  yow) "yow" "play/yow.el" (17385 8495))
+;;;;;;  yow) "yow" "play/yow.el" (17504 41540))
 ;;; Generated autoloads from play/yow.el
 
 (autoload (quote yow) "yow" "\
@@ -30906,7 +30612,7 @@
 
 ;;;***
 
-;;;### (autoloads (zone) "zone" "play/zone.el" (17385 8495))
+;;;### (autoloads (zone) "zone" "play/zone.el" (17504 41540))
 ;;; Generated autoloads from play/zone.el
 
 (autoload (quote zone) "zone" "\
@@ -30931,12 +30637,12 @@
 ;;;;;;  "calc/calc-vec.el" "calc/calc-yank.el" "calc/calcalg2.el"
 ;;;;;;  "calc/calcalg3.el" "calc/calccomp.el" "calc/calcsel2.el"
 ;;;;;;  "calendar/cal-bahai.el" "calendar/cal-china.el" "calendar/cal-coptic.el"
-;;;;;;  "calendar/cal-french.el" "calendar/cal-islam.el" "calendar/cal-iso.el"
-;;;;;;  "calendar/cal-julian.el" "calendar/cal-mayan.el" "calendar/cal-menu.el"
-;;;;;;  "calendar/cal-move.el" "calendar/cal-persia.el" "calendar/cal-tex.el"
-;;;;;;  "calendar/cal-x.el" "case-table.el" "cdl.el" "cus-dep.el"
-;;;;;;  "cus-load.el" "cus-start.el" "custom.el" "dframe.el" "dos-fns.el"
-;;;;;;  "dos-vars.el" "dos-w32.el" "ediff-diff.el" "ediff-init.el"
+;;;;;;  "calendar/cal-french.el" "calendar/cal-html.el" "calendar/cal-islam.el"
+;;;;;;  "calendar/cal-iso.el" "calendar/cal-julian.el" "calendar/cal-mayan.el"
+;;;;;;  "calendar/cal-menu.el" "calendar/cal-move.el" "calendar/cal-persia.el"
+;;;;;;  "calendar/cal-tex.el" "calendar/cal-x.el" "case-table.el"
+;;;;;;  "cdl.el" "cus-dep.el" "cus-start.el" "custom.el" "dframe.el"
+;;;;;;  "dos-fns.el" "dos-vars.el" "dos-w32.el" "ediff-diff.el" "ediff-init.el"
 ;;;;;;  "ediff-merg.el" "ediff-ptch.el" "ediff-vers.el" "ediff-wind.el"
 ;;;;;;  "electric.el" "emacs-lisp/assoc.el" "emacs-lisp/authors.el"
 ;;;;;;  "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/byte-run.el"
@@ -31021,15 +30727,9 @@
 ;;;;;;  "net/eudcb-bbdb.el" "net/eudcb-ldap.el" "net/eudcb-mab.el"
 ;;;;;;  "net/eudcb-ph.el" "net/ldap.el" "net/netrc.el" "net/tls.el"
 ;;;;;;  "net/tramp-smb.el" "net/tramp-util.el" "net/tramp-uu.el"
-;;;;;;  "net/tramp-vc.el" "net/trampver.el" "obsolete/awk-mode.el"
-;;;;;;  "obsolete/bg-mouse.el" "obsolete/float.el" "obsolete/hilit19.el"
-;;;;;;  "obsolete/iso-insert.el" "obsolete/iso-swed.el" "obsolete/keyswap.el"
-;;;;;;  "obsolete/mlsupport.el" "obsolete/ooutline.el" "obsolete/profile.el"
-;;;;;;  "obsolete/rnews.el" "obsolete/sc.el" "obsolete/sun-curs.el"
-;;;;;;  "obsolete/sun-fns.el" "obsolete/swedish.el" "obsolete/uncompress.el"
-;;;;;;  "obsolete/x-apollo.el" "obsolete/x-menu.el" "patcomp.el"
-;;;;;;  "paths.el" "pcvs-info.el" "pcvs-parse.el" "pcvs-util.el"
-;;;;;;  "pgg-def.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "play/gamegrid.el"
+;;;;;;  "net/tramp-vc.el" "net/trampver.el" "patcomp.el" "paths.el"
+;;;;;;  "pcvs-info.el" "pcvs-parse.el" "pcvs-util.el" "pgg-def.el"
+;;;;;;  "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "play/gamegrid.el"
 ;;;;;;  "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el"
 ;;;;;;  "progmodes/cc-align.el" "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el"
 ;;;;;;  "progmodes/cc-cmds.el" "progmodes/cc-defs.el" "progmodes/cc-fonts.el"
@@ -31048,19 +30748,18 @@
 ;;;;;;  "term/vt100.el" "term/vt102.el" "term/vt125.el" "term/vt200.el"
 ;;;;;;  "term/vt201.el" "term/vt220.el" "term/vt240.el" "term/vt300.el"
 ;;;;;;  "term/vt320.el" "term/vt400.el" "term/vt420.el" "term/w32-win.el"
-;;;;;;  "term/wyse50.el" "term/x-win.el" "term/xterm.el" "textmodes/bib-mode.el"
-;;;;;;  "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/page.el"
-;;;;;;  "textmodes/refbib.el" "textmodes/refer.el" "textmodes/reftex-auc.el"
-;;;;;;  "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el" "textmodes/reftex-sel.el"
-;;;;;;  "textmodes/reftex-toc.el" "textmodes/texnfo-upd.el" "textmodes/text-mode.el"
-;;;;;;  "timezone.el" "tooltip.el" "tree-widget.el" "uniquify.el"
-;;;;;;  "url/url-about.el" "url/url-cookie.el" "url/url-dired.el"
-;;;;;;  "url/url-expand.el" "url/url-ftp.el" "url/url-history.el"
-;;;;;;  "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el"
-;;;;;;  "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
-;;;;;;  "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
-;;;;;;  "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
-;;;;;;  "x-dnd.el") (17730 9235 499010))
+;;;;;;  "term/wyse50.el" "textmodes/bib-mode.el" "textmodes/makeinfo.el"
+;;;;;;  "textmodes/page-ext.el" "textmodes/page.el" "textmodes/refbib.el"
+;;;;;;  "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el"
+;;;;;;  "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el"
+;;;;;;  "textmodes/texnfo-upd.el" "textmodes/text-mode.el" "timezone.el"
+;;;;;;  "tooltip.el" "tree-widget.el" "uniquify.el" "url/url-about.el"
+;;;;;;  "url/url-cookie.el" "url/url-dired.el" "url/url-expand.el"
+;;;;;;  "url/url-ftp.el" "url/url-history.el" "url/url-imap.el" "url/url-methods.el"
+;;;;;;  "url/url-nfs.el" "url/url-proxy.el" "url/url-vars.el" "url/vc-dav.el"
+;;;;;;  "vc-hooks.el" "vcursor.el" "version.el" "vms-patch.el" "vmsproc.el"
+;;;;;;  "vt-control.el" "vt100-led.el" "w32-fns.el" "w32-vars.el"
+;;;;;;  "widget.el" "window.el" "x-dnd.el") (17759 32231 360716))
 
 ;;;***
 
--- a/lisp/mail/rmailout.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/mail/rmailout.el	Tue Nov 21 08:56:38 2006 +0000
@@ -408,7 +408,7 @@
     (goto-char (point-min))
     (search-forward "\n\n")
     (and (file-exists-p file-name)
-	 (not (y-or-n-p (message "File %s exists; overwrite? " file-name)))
+	 (not (y-or-n-p (format "File %s exists; overwrite? " file-name)))
 	 (error "Operation aborted"))
     (write-region (point) (point-max) file-name)
     (if (equal major-mode 'rmail-mode)
--- a/lisp/makefile.w32-in	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/makefile.w32-in	Tue Nov 21 08:56:38 2006 +0000
@@ -70,17 +70,8 @@
 
 emacs = "$(EMACS)" $(EMACSOPT)
 
-# Common command to find subdirectories
-
-setwins=subdirs=`find $$wd -type d -print`; \
-	for file in $$subdirs; do \
-	   case $$file in */Old | */RCS | */CVS | */CVS/* | */=* ) ;; \
-		*) wins="$$wins $$file" ;; \
-	   esac; \
-        done
-
 # Have to define the list of subdirs manually when not using sh.
-WINS=\
+WINS_ALMOST=\
 	calc \
 	calendar \
 	emacs-lisp \
@@ -93,13 +84,15 @@
 	mail \
 	mh-e \
 	net \
-	obsolete \
 	play \
 	progmodes \
 	term \
 	textmodes \
 	url
 
+WINS= $(WINS_ALMOST) \
+	obsolete
+
 doit:
 
 $(lisp)/cus-load.el:
@@ -163,10 +156,10 @@
 # WARNING: Do NOT split the part inside $(ARGQUOTE)s into multiple lines as
 #          this can break with GNU Make 3.81 and later if sh.exe is used.
 autoloads: $(lisp)/loaddefs.el doit
-	@echo Directories: . $(WINS)
+	@echo Directories: . $(WINS_ALMOST)
 	$(emacs) -l autoload \
 		--eval $(ARGQUOTE)(setq find-file-hook nil find-file-suppress-same-file-warnings t)$(ARGQUOTE) \
-		-f w32-batch-update-autoloads "$(lisp)/loaddefs.el" . $(WINS)
+		-f w32-batch-update-autoloads "$(lisp)/loaddefs.el" . $(WINS_ALMOST)
 
 $(lisp)/subdirs.el:
 	$(MAKE) $(MFLAGS) update-subdirs
--- a/lisp/menu-bar.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/menu-bar.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1090,9 +1090,6 @@
 (define-key menu-bar-games-menu [zone]
   '(menu-item "Zone Out"  zone
 	      :help "Play tricks with Emacs display when Emacs is idle"))
-(define-key menu-bar-games-menu [yow]
-  '(menu-item "Random Quotation"  yow
-	      :help "Display a random Zippy quotation"))
 (define-key menu-bar-games-menu [tetris]
   '(menu-item "Tetris"  tetris))
 (define-key menu-bar-games-menu [solitaire]
--- a/lisp/mh-e/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/mh-e/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,15 +1,53 @@
+2006-11-14  Bill Wohler  <wohler@newt.com>
+
+	* mh-xface.el (mh-x-image-url-cache-canonicalize): Add `*' to
+	reserved Windows filename characters (closes SF #1396499).
+
+2006-11-13  Bill Wohler  <wohler@newt.com>
+
+	Release MH-E version 8.0.3.
+
+	* mh-e.el (Version, mh-version): Update for release 8.0.3.
+
+	* mh-e.el (mh-alias-local-users): Boolean docstrings should start
+	with "Non-nil means". Perhaps this option should have a -flag
+	appended.
+	(mh-junk-background): Sync docstring with manual.
+
+	* mh-junk.el (mh-spamassassin-blacklist, mh-bogofilter-blacklist)
+	(mh-spamprobe-blacklist): Sync docstring with manual.
+
+2006-11-11  Stephen Gildea  <gildea@stop.mail-abuse.org>
+
+	* mh-junk.el (mh-spamassassin-blacklist, mh-spamassassin-whitelist):
+	Use mh-junk-background consistently in call-process calls.
+	(mh-bogofilter-blacklist, mh-bogofilter-whitelist)
+	(mh-spamprobe-blacklist, mh-spamprobe-whitelist):
+	Use with-current-buffer so the right thing happens if
+	mh-junk-background is t (closes SF #1594802).
+
+	* mh-e.el (mh-junk-background): Document that On value is 0;
+	t may be used for debugging.
+
+2006-11-10  Andreas Schwab  <schwab@suse.de>
+
+	* mh-e.el (mh-draft-folder): Avoid starting sentence with "nil".
+
+2006-11-10  Glenn Morris  <rgm@gnu.org>
+
+	* mh-e.el (mh-draft-folder): Doc fix (Nil -> nil).
+
 2006-09-25  Stephen Gildea  <gildea@stop.mail-abuse.org>
 
 	* mh-junk.el (mh-spamassassin-whitelist): Add two missing
-	quotation marks, so that the last two arguments of sa-learn 
+	quotation marks, so that the last two arguments of sa-learn
 	are separated properly (closes SF #1565460).
-	
-	* (mh-spamassassin-blacklist): In example .procmailrc, add
+	(mh-spamassassin-blacklist): In example .procmailrc, add
 	PATH element to find mhparam on Debian.
-	
+
 2006-09-24  Stephen Gildea  <gildea@stop.mail-abuse.org>
 
-	* mh-comp.el (mh-send-args): Initialize to "" instead of nil 
+	* mh-comp.el (mh-send-args): Initialize to "" instead of nil
 	so that we always have a valid string for split-string even if
 	nothing is added in mh-send-letter (closes SF #1564742).
 
@@ -23,13 +61,12 @@
 
 	* mh-tool-bar.el (mh-tool-bar-define): Fix XEmacs' vector-list so
 	it refers to the icons in mh-xemacs-icon-map instead of trying to
-	declare the icons in situ. This allows mh-tool-bar.el to be
+	declare the icons in situ.  This allows mh-tool-bar.el to be
 	compiled under XEmacs. Remove initial value for
 	mh-tool-bar-folder-buttons, mh-tool-bar-show-buttons,
-	mh-tool-bar-letter-buttons. The MH-E icons now appear in XEmacs.
+	mh-tool-bar-letter-buttons.  The MH-E icons now appear in XEmacs.
 	In mh-tool-bar-init, check for mh-xemacs-use-tool-bar-flag sooner.
-	This allows MH-E to be used in XEmacs in a tty (closes SF
-	#1506846).
+	This allows MH-E to be used in XEmacs in a tty (closes SF #1506846).
 
 2006-07-03  Bill Wohler  <wohler@newt.com>
 
@@ -41,7 +78,7 @@
 	* mh-search.el (mh-search, mh-index-group-by-folder): Add "the" in
 	loop construct to be consistent with other loops, and because
 	edebug doesn't work without it.
-	
+
 2006-06-29  Ted Phelps  <phelps@gnusto.com>  (tiny change)
 
 	* mh-search.el (mh-folder-exists-p): Strip + from folder to avoid
@@ -61,9 +98,9 @@
 2006-06-15  Bill Wohler  <wohler@newt.com>
 
 	* mh-search.el (mh-index-new-folder): Use -2 suffix instead of <2>
-	suffix for folder names, as <> are illegal filenakme characters on
+	suffix for folder names, as <> are illegal filename characters on
 	Windows	(closes SF #1507002).
-	
+
 2006-06-05  Jacob Morzinski  <morzinski@MIT.EDU>  (tiny change)
 
 	* mh-comp.el (mh-send-uses-spost): New variable.
@@ -71,7 +108,7 @@
 	mh-send-uses-spost is t (closes SF #1486726).
 
 2006-06-02  Bill Wohler  <wohler@newt.com>
-	
+
 	(mh-folder-exists-p): Change test from an empty buffer, to one
 	that contains the actual folder, since GNU mailutils' folder
 	command displays output if the folder doesn't exist (closes SF
@@ -129,12 +166,11 @@
 	* mh-tool-bar.el (image-load-path): Define to shush compiler.
 	(mh-buffer-exists-p): Move inside mh-do-in-gnu-emacs since it
 	isn't used outside of it.
-	(mh-tool-bar-folder-buttons-init,
-	mh-tool-bar-letter-buttons-init): Update load-path/image-load-path
-	before setting buttons. This code used to be in
-	mh-folder-mode/mh-letter-mode but this was the wrong place since
-	mh-tool-bar-*-buttons-init can also be called when customizing the
-	buttons.
+	(mh-tool-bar-folder-buttons-init, mh-tool-bar-letter-buttons-init):
+	Update load-path/image-load-path before setting buttons.
+	This code used to be in mh-folder-mode/mh-letter-mode but this was
+	the wrong place since mh-tool-bar-*-buttons-init can also be called
+	when customizing the buttons.
 	(mh-tool-bar-update): New function which updates tool-bar-map in
 	all of the MH-E buffers after customizing the buttons (closes SF
 	#1452718).
@@ -183,6 +219,7 @@
 	find-func (invoked by clicking on the filename link in the *Help*
 	buffer).
 	(mh-defmacro-compat): Rename to defmacro-mh. Ditto.
+
 	* mh-e.el: (mh-defgroup): Rename to defgroup-mh. Ditto.
 	(mh-defcustom): Rename to defcustom-mh. Ditto.
 	(mh-defface): Rename to defface-mh. Ditto.
@@ -250,10 +287,10 @@
 	* mh-xface.el (default-enable-multibyte-characters): Ditto.
 
 	* mh-compat.el (mh-font-lock-add-keywords): New alias for
-	font-lock-add-keywords. Returns nil on XEmacs.	
+	font-lock-add-keywords. Returns nil on XEmacs.
 
 	* mh-e.el: Add MH-E function and variable keywords such as
-	mh-defun-compat and mh-defcustom to font-lock-keywords.	
+	mh-defun-compat and mh-defcustom to font-lock-keywords.
 
 2006-04-13  Bill Wohler  <wohler@newt.com>
 
@@ -433,23 +470,23 @@
 
 	* mh-tool-bar.el: Use clipboard-kill-region,
 	clipboard-kill-ring-save, and clipboard-yank instead of undo,
-	kill-region, and menu-bar-kill-ring-save respectively. In
+	kill-region, and menu-bar-kill-ring-save respectively.  In
 	MH-Letter mode, move save-buffer and mh-fully-kill-draft icons in
 	front of mh-compose-insertion to be consistent with other mailers,
-	such as Evolution. In MH-Folder mode, move vanilla reply icon to
+	such as Evolution.  In MH-Folder mode, move vanilla reply icon to
 	the left of the other reply icons. Use mail/inbox icon instead of
 	mail, next-page instead of page-down, delete instead of close,
 	mail/move instead of mail/refile, data-save instead of execute,
 	mail/flag-for-followup instead of highlight, contact instead of
 	mail/alias, open instead of fld-open, zoom-out instead of widen.
 
-	* mh-folder.el (mh-execute-commands, mh-rescan-folder): 
+	* mh-folder.el (mh-execute-commands, mh-rescan-folder):
 	* mh-funcs.el (mh-pack-folder): Sync docstrings with manual.
 
 2006-03-27  Eric Ding  <ericding@alum.mit.edu>
 
 	* mh-e.el (mh-invisible-header-fields-internal): Add entries
-	"X-AOL-IP:" and "X-MB-Message-" (AOL WebMail)
+	"X-AOL-IP:" and "X-MB-Message-" (AOL WebMail).
 
 2006-03-19  Bill Wohler  <wohler@newt.com>
 
@@ -460,8 +497,7 @@
 
 2006-03-17  Bill Wohler  <wohler@newt.com>
 
-	* mh-compat.el (mh-image-load-path-for-library): Minor docstring
-	fix.
+	* mh-compat.el (mh-image-load-path-for-library): Minor docstring fix.
 
 2006-03-16  Bill Wohler  <wohler@newt.com>
 
@@ -472,8 +508,7 @@
 
 	* mh-e.el (mh-list-to-string-1): Use dolist.
 
-	* mh-compat.el (mh-image-load-path-for-library): Prefer user's
-	images.
+	* mh-compat.el (mh-image-load-path-for-library): Prefer user's images.
 
 2006-03-15  Bill Wohler  <wohler@newt.com>
 
@@ -495,16 +530,16 @@
 	* mh-compat.el (mh-image-load-path-for-library): Incorporate
 	changes from image-load-path-for-library, which are:
 	(image-load-path-for-library): Pass value of path rather than
-	symbol. Always return list of directories. Guarantee that image
+	symbol.  Always return list of directories.  Guarantee that image
 	directory comes first.
 
 	* mh-e.el (image-load-path): Define on those Emacsen that lack it
-	to avoid compile and run-time errors.	
+	to avoid compile and run-time errors.
 
 	* mh-folder.el (mh-folder-mode): Use new idiom for setting
 	image-load-path.
 
-	* mh-letter.el (mh-letter-mode): Ditto. 
+	* mh-letter.el (mh-letter-mode): Ditto.
 
 	* mh-utils.el (mh-logo-display): Ditto.
 
@@ -540,7 +575,7 @@
 	Release MH-E version 7.93.
 
 	* mh-e.el (Version, mh-version): Update for release 7.93.
-	
+
 2006-03-05  Bill Wohler  <wohler@newt.com>
 
 	* mh-folder.el (mh-folder-mode): Drop 'load-path argument when
@@ -555,18 +590,15 @@
 	* mh-compat.el (mh-image-load-path-for-library): Move here from
 	mh-utils.el and wrap with mh-defun-compat since this function will
 	be soon added to image.el.
-	
-	* mh-utils.el (mh-image-load-path-for-library): Move to
-	mh-compat.el.
+
+	* mh-utils.el (mh-image-load-path-for-library): Move to mh-compat.el.
 	(mh-normalize-folder-name): Add return-nil-if-folder-empty
 	argument which is useful when calling mh-normalize-folder-name to
 	process the folder argument for the folders command.
 	(mh-sub-folders): Use new flag to mh-normalize-folder-name to make
-	this function more robust. It could too easily list the folders in
-	/.
+	this function more robust.  It could too easily list the folders in /.
 	(mh-folder-list): Fix a couple of problems pointed out by Thomas
-	Baumann. Set folder to nil if empty. Don't append "/" if folder
-	nil.
+	Baumann.  Set folder to nil if empty. Don't append "/" if folder nil.
 
 2006-03-03  Bill Wohler  <wohler@newt.com>
 
@@ -577,8 +609,8 @@
 	mh-image-load-path-for-library.
 
 	* mh-utils.el (mh-image-load-path): Rename to
-	mh-image-load-path-for-library. Add example to docstring. Rename
-	local variable mh-image-directory to image-directory. Move error
+	mh-image-load-path-for-library.  Add example to docstring.  Rename
+	local variable mh-image-directory to image-directory.  Move error
 	checks to default case in cond and simplify.
 
 	* mh-comp.el (mh-send-letter, mh-insert-auto-fields): Sync
@@ -608,7 +640,7 @@
 
 	* mh-utils.el (mh-image-directory)
 	(mh-image-load-path-called-flag): Delete.
-	(mh-image-load-path): Incorporate changes from Gnus team. Biggest
+	(mh-image-load-path): Incorporate changes from Gnus team.  Biggest
 	changes are that it no longer uses/sets mh-image-directory or
 	mh-image-load-path-called-flag, and returns the updated path
 	rather than change it.
@@ -629,9 +661,9 @@
 	(mh-image-load-path): Access mh-image-directory instead of
 	mh-image-load-path.
 	(mh-folder-list): Fix problem with passing in a folder and getting
-	nothing back. Fix problem with passing in empty string and getting
-	the entire filesystem (or infinite loop). Don't append slash to
-	folder. These fixes fix problems observed with the pick search.
+	nothing back.  Fix problem with passing in empty string and getting
+	the entire filesystem (or infinite loop).  Don't append slash to
+	folder.  These fixes fix problems observed with the pick search.
 	Thanks to Thomas Baumann for the help (closes SF #1435381).
 	(mh-pick-regexp-chars, mh-quote-pick-expr): New variable and
 	function for quoting pick regular expression characters (closes SF
@@ -651,7 +683,7 @@
 	* mh-compat.el (mh-display-color-cells): Return 2 if
 	device-color-cells returns nil (closes SF #1436924).
 
-	* mh-e.el (mh-compiling-flag): Delete. No longer needed by
+	* mh-e.el (mh-compiling-flag): Delete.  No longer needed by
 	mh-display-color-cells.
 
 2006-02-21  Eric Ding  <ericding@alum.mit.edu>
@@ -682,7 +714,7 @@
 
 	* mh-show.el (mh-show-mode): Mention goto-address-highlight-p in
 	docstring.
-	(mh-show-addr): Call goto-address unconditionally. User should use
+	(mh-show-addr): Call goto-address unconditionally.  User should use
 	goto-address-highlight-p instead of mh-show-use-goto-addr-flag.
 
 2006-02-18  Bill Wohler  <wohler@newt.com>
@@ -706,7 +738,7 @@
 
 2006-02-16  Bill Wohler  <wohler@newt.com>
 
-	* mh-e.el (mh-inherit-face-flag): New variable. Non-nil means that
+	* mh-e.el (mh-inherit-face-flag): New variable.  Non-nil means that
 	the defface :inherit keyword is available.
 	(mh-face-data): New variable (contains all face specs) and
 	function (accessor).
@@ -722,14 +754,14 @@
 	(mh-show-to, mh-show-xface, mh-speedbar-folder)
 	(mh-speedbar-folder-with-unseen-messages)
 	(mh-speedbar-selected-folder)
-	(mh-speedbar-selected-folder-with-unseen-messages): Use
-	mh-face-data.
+	(mh-speedbar-selected-folder-with-unseen-messages):
+	Use mh-face-data.
 
 	* mh-utils.el (mh-image-load-path): The variables image-load-path
 	or load-path would not get updated if user set mh-image-load-path.
 	Moved tests and add-to-list calls outside of cond so they are
 	applied consistently, even if they are redundant in some
-	circumstances. Efficiency isn't a concern here. Made error
+	circumstances.  Efficiency isn't a concern here.  Made error
 	messages more user-friendly.
 
 2006-02-15  Peter S Galbraith  <psg@debian.org>
@@ -743,7 +775,7 @@
 2006-02-10  Bill Wohler  <wohler@newt.com>
 
 	* mh-search.el (mh-search): Wrap code in (block mh-search ...)
-	rather than use defun*. XEmacs cannot create a proper autoload for
+	rather than use defun*.  XEmacs cannot create a proper autoload for
 	a defun*.
 
 2006-02-09  Bill Wohler  <wohler@newt.com>
@@ -757,12 +789,12 @@
 2006-02-08  Peter S Galbraith  <psg@debian.org>
 
 	* mh-e.el (mh-invisible-header-fields-internal): Added entries
-	"X-BrightmailFiltered:", "X-Brightmail-Tracker:" and "X-Hashcash"
+	"X-BrightmailFiltered:", "X-Brightmail-Tracker:" and "X-Hashcash".
 
 2006-02-04  Bill Wohler  <wohler@newt.com>
 
 	* mh-e.el (mh-inc-spool-list): Update example for Emacs 22 which
-	has an emacsclient command that supports --eval. I had read that
+	has an emacsclient command that supports --eval.  I had read that
 	gnudoit was deprecated in favor of gnuclient anyway.
 
 2006-02-04  Eric Ding  <ericding@alum.mit.edu>
@@ -783,7 +815,7 @@
 2006-02-03  Bill Wohler  <wohler@newt.com>
 
 	* mh-utils.el (mh-image-load-path, mh-image-load-path-called-flag)
-	(mh-image-load-path): Checkdoc fix. Docstring edits. Reduce scope
+	(mh-image-load-path): Checkdoc fix.  Docstring edits.  Reduce scope
 	of local variable mh-library-name.
 
 	* mh-e.el (mh-folder-msg-number, mh-folder-refiled, mh-folder-to)
@@ -794,7 +826,7 @@
 2006-02-03  Peter S Galbraith  <psg@debian.org>
 
 	* mh-utils.el (mh-image-load-path): New variable to optionally
-	hold the directory where MH-E images are stored.  If nil, then 
+	hold the directory where MH-E images are stored.  If nil, then
 	the function `mh-image-load-path' will find it.  This variable
 	will be used for Debian packaging.
 	(mh-image-load-path function): Use variable `mh-image-load-path'
@@ -830,7 +862,7 @@
 	(crm, multi-prompt): Use mh-require instead of require.
 	(mh-goto-address-find-address-at-point): Use
 	mh-line-beginning-position and mh-line-end-position instead of
-	line-beginning-position and line-end-position. Use
+	line-beginning-position and line-end-position.  Use
 	mh-match-string-no-properties instead of
 	match-string-no-properties.
 
@@ -844,7 +876,7 @@
 	(mh-require, mh-cancel-timer, mh-display-color-cells)
 	(mh-line-beginning-position, mh-line-end-position)
 	(mh-match-string-no-properties, mh-replace-regexp-in-string)
-	(mh-view-mode-enter): Move definition here from mh-xemacs.el and 
+	(mh-view-mode-enter): Move definition here from mh-xemacs.el and
 	add mh- prefix since compatibility functions should have our
 	package prefix (mh-) by Emacs convention and to avoid messing up
 	checks for the same functions in other packages.
@@ -862,8 +894,8 @@
 	* mh-funcs.el (mh-list-folders): Use mh-view-mode-enter instead of
 	view-mode-enter.
 
-	* mh-gnus.el (gnus-util, mm-bodies, mm-decode, mm-view, mml): Use
-	mh-require instead of require.
+	* mh-gnus.el (gnus-util, mm-bodies, mm-decode, mm-view, mml):
+	Use mh-require instead of require.
 
 	* mh-letter.el (mh-letter-header-end, mh-letter-mode)
 	(mh-letter-next-header-field): Use mh-line-beginning-position and
@@ -933,17 +965,17 @@
 	* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name
 	argument since compatibility functions should have our package
 	prefix (mh-) by Emacs convention and to avoid messing up checks
-	for the same functions in other packages. Use explicit argument
+	for the same functions in other packages.  Use explicit argument
 	instead of forming name by adding mh- prefix so that one can grep
 	and find the definition.
 
 	* mh-alias.el (mh-alias-local-users, mh-alias-reload)
-	(mh-alias-expand, mh-alias-minibuffer-confirm-address): Use
-	mh-assoc-string instead of assoc-string.
+	(mh-alias-expand, mh-alias-minibuffer-confirm-address):
+	Use mh-assoc-string instead of assoc-string.
 
 	* mh-compat.el (assoc-string): Rename to mh-assoc-string.
-	(mh-mail-abbrev-make-syntax-table, mh-url-hexify-string): Move
-	here from mh-utils.el.
+	(mh-mail-abbrev-make-syntax-table, mh-url-hexify-string):
+	Move here from mh-utils.el.
 	(mh-display-completion-list): Move here from mh-comp.el.
 	(mh-face-foreground, mh-face-background): Move here from
 	mh-xface.el.
@@ -1001,7 +1033,7 @@
 	mh-url-hexify-string.
 
 	* mh-letter.el (mh-complete-word): Fix bug in call to
-	mh-display-completion-list. Wrong argument was passed, so
+	mh-display-completion-list.  Wrong argument was passed, so
 	completions wouldn't show highlighted prefix.
 
 2006-01-29  Bill Wohler  <wohler@newt.com>
@@ -1011,7 +1043,7 @@
 
 	* mh-comp.el (sc-cite-original): Remove autoload of "sc" with old
 	docstring. sc-cite-original is autoloaded via loaddefs.el for all
-	supported versions. In addition, the package name "sc" has been
+	supported versions.  In addition, the package name "sc" has been
 	made obsolete by "supercite since at least Emacs 21.
 
 	* mh-scan.el (mh-note-copied, mh-note-printed): Reorganization
@@ -1031,7 +1063,7 @@
 	mh-letter.el.
 
 	* mh-utils.el (mh-get-header-field)
-	(mh-letter-hide-all-skipped-fields) 
+	(mh-letter-hide-all-skipped-fields)
 	(mh-letter-skipped-header-field-p, mh-hidden-header-keymap)
 	(mh-letter-toggle-header-field-display)
 	(mh-letter-skip-leading-whitespace-in-header-field)
@@ -1039,7 +1071,7 @@
 	mh-letter.el so that you can read messages without having to load
 	mh-comp.el and mh-letter.el.
 
-	* mh-comp.el (mh-insert-fields): Handle nil values. Rmail, at
+	* mh-comp.el (mh-insert-fields): Handle nil values.  Rmail, at
 	least, will deliver them to us.
 
 	* mh-e.el (mh-after-commands-processed-hook)
@@ -1049,15 +1081,15 @@
 	* mh-folder.el (mh-folder-mode): Use add-to-list to modify
 	minor-mode-alias.
 
-	* mh-letter.el (mh-letter-menu): Remove. Defvar no longer needed
+	* mh-letter.el (mh-letter-menu): Remove.  Defvar no longer needed
 	to shush compiler.
 	(mh-letter-mode): Remove Mail menu.
 
 2006-01-29  Bill Wohler  <wohler@newt.com>
 
 	The Great Cleanup
-	Remove circular dependencies. mh-e.el now includes few require
-	statements and stands alone. Other files should need to require
+	Remove circular dependencies.  mh-e.el now includes few require
+	statements and stands alone.  Other files should need to require
 	mh-e.el, which requires mh-loaddefs.el, plus variable-only files
 	such as mh-scan.el.
 	Remove unneeded require statements.
@@ -1070,23 +1102,21 @@
 	Rearrange and provide consistent headings.
 	Untabify.
 
-	* mh-acros.el: Update commentary to reflect current usage. Add
-	autoload cookies to all macros.
+	* mh-acros.el: Update commentary to reflect current usage.
+	Add autoload cookies to all macros.
 	(mh-require-cl): Merge docstring and comment.
 	(mh-do-in-xemacs): Fix typo in docstring.
 	(assoc-string): Move to new file mh-compat.el.
 	(with-mh-folder-updating, mh-in-show-buffer)
-	(mh-do-at-event-location, mh-seq-msgs): Move here from
-	mh-utils.el.
+	(mh-do-at-event-location, mh-seq-msgs): Move here from mh-utils.el.
 	(mh-iterate-on-messages-in-region, mh-iterate-on-range): Move here
 	from mh-seq.el.
 
 	* mh-alias.el (mh-address-mail-regexp)
-	(mh-goto-address-find-address-at-point): Move here from
-	mh-utils.el.
+	(mh-goto-address-find-address-at-point): Move here from mh-utils.el.
 	(mh-folder-line-matches-show-buffer-p): Move here from mh-e.el.
 
-	* mh-buffers.el: Update descriptive text.	
+	* mh-buffers.el: Update descriptive text.
 
 	* mh-comp.el (mh-note-repl, mh-note-forw, mh-note-dist): Move to
 	new file mh-scan.el.
@@ -1126,7 +1156,7 @@
 	(mh-display-completion-list): Move here from mh-comp.el.
 
 	* mh-customize.el: Move content into mh-e.el and remove.
-	
+
 	* mh-e.el (mh-folder-mode-map, mh-folder-seq-tool-bar-map)
 	(mh-folder-tool-bar-map, mh-inc-spool-map, mh-letter-mode-map)
 	(mh-letter-tool-bar-map, mh-search-mode-map, mh-show-mode-map)
@@ -1292,8 +1322,8 @@
 	deprecated file mh-customize.el.
 
 	* mh-exec.el: Move content into mh-e.el and remove.
-	
-	* mh-folder.el: New file. Contains mh-folder-mode from mh-e.el
+
+	* mh-folder.el: New file. Contains mh-folder-mode from mh-e.el.
 
 	* mh-funcs.el (mh-note-copied, mh-note-printed): Move to new file
 	mh-scan.el.
@@ -1311,23 +1341,22 @@
 	(mh-identity-add-menu): New function
 	(mh-insert-identity): Add optional argument maybe-insert so that
 	local variable mh-identity-local does not have to be visible.
-	(mh-identity-handler-default):
 
 	* mh-inc.el (mh-inc-spool-map): Move declaration to mh-e.el (with
-	rest of keymaps). Update key binding for ? to call mh-help with
+	rest of keymaps).  Update key binding for ? to call mh-help with
 	help messages in new argument.
 	(mh-inc-spool-make-no-autoload): New alias for mh-inc-spool-make
 	which can be called from mh-e.el.
 	(mh-inc-spool-list-set): Simplify update of mh-inc-spool-map-help.
 
 	* mh-init.el: Move content into mh-e.el and remove.
-	
+
 	* mh-junk.el: Update requires, untabify, and add mh-autoload
 	cookies.
 
-	* mh-letter.el: New file. Contains mh-letter-mode from mh-comp.el.
-
-	* mh-limit.el: New file. Contains display limit commands from
+	* mh-letter.el: New file.  Contains mh-letter-mode from mh-comp.el.
+
+	* mh-limit.el: New file.  Contains display limit commands from
 	mh-mime.el.
 
 	* mh-mime.el: Rearrange for consistency with other files.
@@ -1344,7 +1373,7 @@
 
 	* mh-search.el: Rearrange for consistency with other files.
 	(mh-search-mode-map): Drop C-c C-f {dr} bindings since these
-	fields which don't exist in the saved header. Replace C-c C-f f
+	fields which don't exist in the saved header.  Replace C-c C-f f
 	with C-c C-f m per mail-mode consistency.
 	(mh-search-mode): Use mh-set-help instead of setting
 	mh-help-messages.
@@ -1372,8 +1401,8 @@
 	(mh-thread-current-indentation-level, mh-thread-next-sibling)
 	(mh-thread-previous-sibling, mh-thread-immediate-ancestor)
 	(mh-thread-ancestor, mh-thread-find-children)
-	(mh-message-id-regexp, mh-thread-delete, mh-thread-refile): Move
-	to new file mh-thread.el.
+	(mh-message-id-regexp, mh-thread-delete, mh-thread-refile):
+	Move to new file mh-thread.el.
 	(mh-subject-to-sequence, mh-subject-to-sequence-unthreaded)
 	(mh-subject-to-sequence-threaded, mh-edit-pick-expr)
 	(mh-pick-args-list, mh-narrow-to-subject, mh-narrow-to-from)
@@ -1396,17 +1425,17 @@
 	(mh-make-seq, mh-seq-name, mh-find-seq, mh-seq-to-msgs)
 	(mh-add-msgs-to-seq, mh-notate): Move here from mh-utils.el.
 
-	* mh-show.el: New file. Contains mh-show-mode from mh-utils.el.
+	* mh-show.el: New file.  Contains mh-show-mode from mh-utils.el.
 
 	* mh-speed.el: Rearrange for consistency with other files.
 
-	* mh-thread.el: New file. Contains threading code from mh-seq.el.
-
-	* mh-tool-bar.el: New file. Contains tool bar creation code from
+	* mh-thread.el: New file.  Contains threading code from mh-seq.el.
+
+	* mh-tool-bar.el: New file.  Contains tool bar creation code from
 	deprecated file mh-customize.el.
 
-	* mh-utils.el (recursive-load-depth-limit): Remove setting. No
-	longer needed.
+	* mh-utils.el (recursive-load-depth-limit): Remove setting.
+	No longer needed.
 	(mh-scan-msg-number-regexp, mh-scan-msg-overflow-regexp)
 	(mh-scan-msg-format-regexp, mh-scan-msg-format-string)
 	(mh-scan-msg-search-regexp, mh-cmd-note, mh-note-seq)
@@ -1469,7 +1498,7 @@
 	mh-init.el.
 	(mh-help-messages): Now an alist of modes to an alist of messages.
 	(mh-set-help): New function used to set mh-help-messages
-	(mh-help): Adjust for new format of mh-help-messages. Add
+	(mh-help): Adjust for new format of mh-help-messages.  Add
 	help-messages argument.
 	(mh-prefix-help): Refactor to use mh-help.
 	(mh-coalesce-msg-list, mh-greaterp, mh-lessp): Move here from
@@ -1477,7 +1506,7 @@
 	(mh-clear-sub-folders-cache): New function added to avoid exposing
 	mh-sub-folders-cache variable.
 
-	* mh-xface.el: New file. Contains X-Face and Face header field
+	* mh-xface.el: New file.  Contains X-Face and Face header field
 	display routines from mh-utils.el.
 
 2006-01-17  Bill Wohler  <wohler@newt.com>
@@ -1488,12 +1517,12 @@
 
 	* mh-acros.el (require): Remove defadvice of require as defadvice
 	is verboten within Emacs and our implementation was returning the
-	wrong value from require. Upcoming restructuring should make this
+	wrong value from require.  Upcoming restructuring should make this
 	unnecessary.
 	(mh-assoc-ignore-case): Replace with defsubst assoc-string.
 
-	* mh-alias.el (mh-alias-local-users, mh-alias-reload,
-	mh-alias-expand, mh-alias-minibuffer-confirm-address): Use it.
+	* mh-alias.el (mh-alias-local-users, mh-alias-reload)
+	(mh-alias-expand, mh-alias-minibuffer-confirm-address): Use it.
 
 	* mh-identity.el (mh-identity-field-handler): Use it.
 
@@ -1547,7 +1576,7 @@
 	* mh-utils.el (mh-pgp-support-flag): Move to mh-comp.el to reduce
 	dependencies on mh-utils.el.
 	(mh-profile-component, mh-profile-component-value): Move to
-	mh-init.el since that's the only place that uses them. (Other than
+	mh-init.el since that's the only place that uses them.  (Other than
 	mh-alias.el; I'm thinking that mh-find-path can set variable from
 	the Aliasfile component like it does the other components).
 	(mh-index-max-cmdline-args, mh-xargs, mh-quote-for-shell)
@@ -1559,20 +1588,20 @@
 	file mh-exec.el so that mh-init.el doesn't have to depend on
 	mh-utils.el, breaking circular dependency.
 
-	* mh-alias.el: 
-	* mh-customize.el: 
-	* mh-e.el: 
-	* mh-funcs.el: 
-	* mh-gnus.el: 
-	* mh-identity.el: 
-	* mh-inc.el: 
-	* mh-junk.el: 
-	* mh-mime.el: 
-	* mh-print.el: 
-	* mh-search.el: 
-	* mh-seq.el: 
+	* mh-alias.el:
+	* mh-customize.el:
+	* mh-e.el:
+	* mh-funcs.el:
+	* mh-gnus.el:
+	* mh-identity.el:
+	* mh-inc.el:
+	* mh-junk.el:
+	* mh-mime.el:
+	* mh-print.el:
+	* mh-search.el:
+	* mh-seq.el:
 	* mh-speed.el: Added debugging statements (commented out) around
-	requires to help find dependency loops. Will remove them when
+	requires to help find dependency loops.  Will remove them when
 	issues are resolved.
 
 2006-01-14  Bill Wohler  <wohler@newt.com>
@@ -1589,7 +1618,7 @@
 	* mh-e.el (mh-folder-font-lock-keywords): Rename mh-index-folder
 	to mh-search-folder.
 
-	* mh-search.el (mh-indexer) Rename to mh-searcher. The commands
+	* mh-search.el (mh-indexer) Rename to mh-searcher.  The commands
 	pick and grep are searchers too but aren't indexed.
 	(mh-index-execute-search-function): Rename to mh-search-function.
 	(mh-index-next-result-function): Rename to
@@ -1597,17 +1626,16 @@
 	(mh-index-regexp-builder): Rename to mh-search-regexp-builder.
 	(mh-search): Since redo-search-flag defaults to nil and is of
 	lesser importance, make it an optional argument and place it after
-	the folder and search-regexp arguments. Sync docstring with
-	manual.
+	the folder and search-regexp arguments.  Sync docstring with manual.
 	(mh-search-mode-map): Autoload so that keys are shown in help even
 	before mh-search is loaded.
 	(mh-search-mode): Sync docstring with manual.
-	(mh-index-do-search): Rename argument indexer to searcher. Sync
+	(mh-index-do-search): Rename argument indexer to searcher.  Sync
 	docstring with manual.
 	(mh-pick-do-search): Sync docstring with manual.
 	(mh-index-p): Rename to mh-search-p.
 	(mh-indexer-choices): Rename to mh-search-choices.
-	(mh-index-choose): Rename to mh-search-choose. Rename argument
+	(mh-index-choose): Rename to mh-search-choose.  Rename argument
 	indexer to searcher.
 	(mh-swish++-execute-search, mh-swish-execute-search)
 	(mh-mairix-execute-search, mh-namazu-execute-search): Drop "and
@@ -1633,19 +1661,19 @@
 	given and recurse folder(s).
 	(mh-pick-next-result): Handle new output.
 
-	* mh-utils.el: (mh-collect-folder-names): Fix docstring.
-	(mh-children-p, mh-folder-list): New functions.	
+	* mh-utils.el (mh-collect-folder-names): Fix docstring.
+	(mh-children-p, mh-folder-list): New functions.
 
 2006-01-12  Bill Wohler  <wohler@newt.com>
 
 	* mh-search.el: New file containing contents of mh-index.el and
 	mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs
-	pick. Pick no longer sets the "search" sequence. Instead, it
-	brings up a folder view that we're accustomed to. (closes SF
-	#829207).
+	pick.  Pick no longer sets the "search" sequence.  Instead, it
+	brings up a folder view that we're accustomed to.  (Closes SF
+	#829207.)
 	(mh-index-search): Rename to mh-search.
-	(mh-pick-menu): Rename menu from Pick to Search. Rename Execute
-	the Search to Perform Search and call mh-do-search. Add Search
+	(mh-pick-menu): Rename menu from Pick to Search.  Rename Execute
+	the Search to Perform Search and call mh-do-search.  Add Search
 	with Pick menu item.
 	(mh-do-search): Delete.
 	(mh-search-mode): Rename from mh-pick-mode.
@@ -1663,15 +1691,14 @@
 	* mh-customize.el (mh-index-program): Change mh-index-search to
 	mh-search in docstring.
 	(mh-tool-bar-search-function): Change default from
-	mh-search-folder to mh-search. Remove mh-search-folder as choice
-	and rename mh-index-search choice to mh-search. Fix docstring.
+	mh-search-folder to mh-search.  Remove mh-search-folder as choice
+	and rename mh-index-search choice to mh-search.  Fix docstring.
 	(mh-pick-mode-hook): Rename to mh-search-mode-hook and change
 	mh-search-folder to mh-search in docstring.
 
-	* mh-e.el (mh-folder-folder-menu): Delete Search a Folder. Change
-	Indexed Search to Search. Use mh-search instead of
-	mh-index-search.
-	(mh-folder-map): Delete i (mh-index-search) keybinding. Change s
+	* mh-e.el (mh-folder-folder-menu): Delete Search a Folder.  Change
+	Indexed Search to Search.  Use mh-search instead of mh-index-search.
+	(mh-folder-map): Delete i (mh-index-search) keybinding.  Change s
 	from mh-show-search-folder to mh-search.
 
 	* mh-seq.el (mh-put-msg-in-seq): Fix docstring now that
@@ -1680,10 +1707,10 @@
 	* mh-utils.el (mh-show-search-folder): Delete.
 	(mh-show-folder-map): Delete i (mh-index-search) keybinding.
 	Change s from mh-show-search-folder to mh-search.
-	(mh-show-folder-menu): Delete Search a Folder. Change Indexed
-	Search to Search. Use mh-search instead of mh-index-search.
-	(mh-index-max-cmdline-args, mh-xargs, mh-quote-for-shell): Move
-	here from deleted mh-index.el.
+	(mh-show-folder-menu): Delete Search a Folder.  Change Indexed
+	Search to Search.  Use mh-search instead of mh-index-search.
+	(mh-index-max-cmdline-args, mh-xargs, mh-quote-for-shell):
+	Move here from deleted mh-index.el.
 
 2006-01-11  Bill Wohler  <wohler@newt.com>
 
@@ -1704,12 +1731,12 @@
 	* mh-buffers.el: New file. Contains constants and code from
 	mh-index.el and mh-utils.el.
 
-	* mh-alias.el: 
-	* mh-comp.el: 
-	* mh-e.el: 
-	* mh-funcs.el: 
+	* mh-alias.el:
+	* mh-comp.el:
+	* mh-e.el:
+	* mh-funcs.el:
 	* mh-init.el:
-	* mh-junk.el: 
+	* mh-junk.el:
 	* mh-mime.el:
 	* mh-print.el:
 	* mh-seq.el: Require new file mh-buffers.el.
@@ -1735,8 +1762,8 @@
 	#1205890).
 
 	* mh-mime.el (mh-compose-forward): Use standard range argument
-	instead of messages. Use more powerful mh-read-range instead of
-	read-string. Sync docstring with manual (close SF #1205890).
+	instead of messages.  Use more powerful mh-read-range instead of
+	read-string.  Sync docstring with manual (close SF #1205890).
 
 	* mh-index.el (mh-index-search): Checking mh-find-path-run is
 	unnecessary.
@@ -1744,8 +1771,7 @@
 	since this skips the current folder heading if point is on the
 	first message after the folder heading (closes SF #1126188).
 
-	* mh-init.el (mh-sys-path): Co-locate with mh-variants, which uses
-	it.
+	* mh-init.el (mh-sys-path): Co-locate with mh-variants, which uses it.
 	(mh-variants): Note variable isn't meant to be accessed directly;
 	use function mh-variants instead.
 	(mh-variant-info, mh-variant-mh-info, mh-variant-mu-mh-info)
@@ -1755,29 +1781,29 @@
 	(mh-file-command-p): Move here from mh-utils, since
 	mh-variant-*-info are the only functions to use it.
 	(mh-variant-set, mh-variant-set-variant, mh-variant-p): Use
-	function mh-variants instead of variable. More robust.
-	(mh-find-path-run): Move here from mh-utils.el. Mention that
+	function mh-variants instead of variable.  More robust.
+	(mh-find-path-run): Move here from mh-utils.el.  Mention that
 	checking this variable is unnecessary.
-	(mh-find-path): Move here from mh-utils.el. With the advent of MH
+	(mh-find-path): Move here from mh-utils.el.  With the advent of MH
 	variants and an mhparam command that doesn't work if there isn't
-	an MH profile, we can't get libdir for running install-mh. So
-	don't bother. If there's an issue with the environment, direct the
-	user to install MH and run install-mh (closes SF #835192). Don't
-	read ~/.mh_profile directly. Use mh-profile-component which uses
+	an MH profile, we can't get libdir for running install-mh.  So
+	don't bother.  If there's an issue with the environment, direct the
+	user to install MH and run install-mh (closes SF #835192).  Don't
+	read ~/.mh_profile directly.  Use mh-profile-component which uses
 	mhparam (closes SF #1016027).
 
 	* mh-utils.el (mh-get-profile-field): Rename to
-	mh-profile-component-value. Add colon to search removing
+	mh-profile-component-value.  Add colon to search removing
 	unnecessary addition of colon to field in mh-profile-component.
 	(mh-profile-component): Modify call to mh-profile-component-value
-	accordingly. Move next to mh-profile-component-value.
+	accordingly.  Move next to mh-profile-component-value.
 	(mh-find-path-run, mh-find-path, mh-file-command-p): Move to
-	mh-init.el. It makes sense that code that is only run once per
+	mh-init.el.  It makes sense that code that is only run once per
 	session (more or less) is in mh-init.el rather than cluttering
 	mh-utils.el.
 	(mh-no-install, mh-install): Delete.
 
-	* mh-customize.el (mh-folder-msg-number): 
+	* mh-customize.el (mh-folder-msg-number):
 	* mh-mime.el (mh-file-mime-type): Removed trailing whitespace.
 
 2006-01-09  Bill Wohler  <wohler@newt.com>
@@ -1792,12 +1818,12 @@
 	* mh-comp.el: Use ";; Shush compiler." comment consistently per
 	Mark's suggestion.
 	(mh-letter-mode): Derive from mail-mode and delete code copied
-	from mail-mode (closes SF #1385571). Mention mail-mode-hook in
+	from mail-mode (closes SF #1385571).  Mention mail-mode-hook in
 	docstring.
-	(mh-fill-paragraph-function): Delete. Handled by mail-mode.
+	(mh-fill-paragraph-function): Delete.  Handled by mail-mode.
 	(mh-to-field-choices): For consistency with mail-mode, add "a" for
 	"Mail-Reply-To:", "l" for "Mail-Followup-To:", and "r" for
-	"Reply-To:". Change "r" to "m" for "From:" (closes SF #1400139).
+	"Reply-To:".  Change "r" to "m" for "From:" (closes SF #1400139).
 	(mh-to-fcc): Move setting of folder argument to interactive
 	argument as is the norm.
 	(mh-letter-complete-function-alist): Add mail-reply-to.
@@ -1808,11 +1834,11 @@
 	Comment declaration to remind programmer to update forward
 	definition if default changes.
 
-	* mh-funcs.el: 
-	* mh-inc.el: 
-	* mh-init.el: 
-	* mh-mime.el: 
-	* mh-seq.el: 
+	* mh-funcs.el:
+	* mh-inc.el:
+	* mh-init.el:
+	* mh-mime.el:
+	* mh-seq.el:
 	* mh-utils.el: Use ";; Shush compiler." comment consistently per
 	Mark's suggestion.
 
@@ -1820,11 +1846,11 @@
 
 	Removed code that was marked as Emacs 20 compatible that was
 	easily found showing how important it is to document such
-	things (closes SF #1359240). Feel free to nuke any other Emacs 20
-	peculiarities that you find. Wrapped code for shushing compiler
+	things (closes SF #1359240).  Feel free to nuke any other Emacs 20
+	peculiarities that you find.  Wrapped code for shushing compiler
 	with (eval-when-compile), sometimes moving the defvars closer to
 	where they were used.
-	
+
 	* mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
 	instead of mh-replace-in-string as mh-replace-in-string was
 	replaced by a more appropriate defsubst in mh-xemacs.el.
@@ -1843,7 +1869,7 @@
 	eval-when-compile.
 	(mh-thread-scan-line-map-stack, tool-bar-mode): Delete unused
 	variables.
-	(mh-colors-available-p): Just call display-color-cells. It's on
+	(mh-colors-available-p): Just call display-color-cells.  It's on
 	all supported Emacsen (and defaliased on XEmacs).
 
 	* mh-funcs.el:
@@ -1857,12 +1883,12 @@
 
 	* mh-mime.el: Wrap compiler-shushing defvars with
 	eval-when-compile.
-	(mh-have-file-command): Initialize variable to 'undefined. Add
-	docstring. Update function of same name accordingly. Also don't
+	(mh-have-file-command): Initialize variable to 'undefined.  Add
+	docstring.  Update function of same name accordingly.  Also don't
 	need to load executable any more.
 	(mh-mime-content-types): Delete.
 	(mh-minibuffer-read-type): Prompt user for type if
-	mh-file-mime-type returns application/octet-stream. Assume we have
+	mh-file-mime-type returns application/octet-stream.  Assume we have
 	mailcap-mime-types.
 	(mh-mime-display): Update error message.
 
@@ -1872,9 +1898,9 @@
 	* mh-utils.el: Require cleanup, and wrap compiler-shushing defvars
 	with eval-when-compile.
 	(mh-clean-msg-header): Don't set after-change-functions to nil.
-	(mh-replace-in-string): Remove. Create defsubst in mh-xemacs.el
+	(mh-replace-in-string): Remove.  Create defsubst in mh-xemacs.el
 	instead.
-	
+
 2006-01-07  Bill Wohler  <wohler@newt.com>
 
 	* mh-customize.el: Updated Faces documentation in header.
@@ -1893,11 +1919,11 @@
 2006-01-03  Bill Wohler  <wohler@newt.com>
 
 	* mh-alias.el (mh-alias-add-alias): Grand message and error string
-	unification. Use single sentence if possible by using semicolon.
-	Don't end message with punctuation. Don't need format with
-	message. Quote messages as in docstrings: use `' around symbols,
-	\" for option choices. Don't use quotes around %s.
-	
+	unification.  Use single sentence if possible by using semicolon.
+	Don't end message with punctuation.  Don't need format with
+	message.  Quote messages as in docstrings: use `' around symbols,
+	\" for option choices.  Don't use quotes around %s.
+
 	* mh-comp.el (mh-complete-word): Ditto.
 
 	* mh-customize.el (mh-adaptive-cmd-note-flag-check)
@@ -2006,8 +2032,7 @@
 	them alphabetically.
 	(mh-faces): Move below mh-hooks.
 	(mh-folder-faces, mh-index-faces, mh-letter-faces)
-	(mh-show-faces, mh-speed-faces): Delete. Organize faces like
-	hooks.
+	(mh-show-faces, mh-speed-faces): Delete.  Organize faces like hooks.
 	(mh-speed-update-interval): Fix group (mh-speedbar, not mh-speed).
 	(facemenu-unlisted-faces): Might as well ignore all MH-E faces.
 	(mh-folder-body-face, mh-folder-cur-msg-face)
@@ -2021,33 +2046,33 @@
 	(mh-show-pgg-unknown-face, mh-show-pgg-bad-face)
 	(mh-show-to-face, mh-show-from-face, mh-show-subject-face):
 	Delete.
-	(mh-folder-cur-msg): Unused. Delete.
+	(mh-folder-cur-msg): Unused.  Delete.
 	(mh-folder-address): Use defface; inherit from mh-folder-subject.
 	(mh-folder-body, mh-folder-cur-msg-number, mh-folder-date):
 	Inherit from mh-folder-msg-number.
-	(mh-folder-deleted): Use defface. Inherit from
+	(mh-folder-deleted): Use defface.  Inherit from
 	mh-folder-msg-number.
-	(mh-folder-sent-to-me-hint): New face. Inherit from
+	(mh-folder-sent-to-me-hint): New face.  Inherit from
 	mh-folder-date.
 	(mh-folder-sent-to-me-sender): Rename from mh-folder-scan-format.
-	Use defface. Inherit from mh-folder-followup.
+	Use defface.  Inherit from mh-folder-followup.
 	(mh-show-xface): Inherit from mh-show-from and highlight.
 	(bw-face-generation, bw-toggle-faces)
 	(bw-new-face-to-old, bw-old-face-to-new): New (tempoarary)
 	variables, functions for toggling between old and new faces.
 
 	* mh-e.el (font-lock-auto-fontify, font-lock-defaults): Hide in
-	eval-when-compile. We should probably do this throughout.
+	eval-when-compile.  We should probably do this throughout.
 	(mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp)
 	(mh-scan-refiled-msg-regexp, mh-scan-cur-msg-number-regexp)
 	(mh-scan-date-regexp, mh-scan-rcpt-regexp, mh-scan-body-regexp)
 	(mh-scan-subject-regexp): Sync docstrings with manual
 	(mh-scan-format-regexp): Rename to
 	mh-scan-sent-to-me-sender-regexp. Drop date parenthesized
-	expression. Make expression more like the others (anchored at the
-	beginning of line). Sync docstrings with manual.
+	expression.  Make expression more like the others (anchored at the
+	beginning of line).  Sync docstrings with manual.
 	(mh-folder-font-lock-keywords): Use faces directly rather than
-	-face variables. Use mh-scan-sent-to-me-sender-regexp instead of
+	-face variables.  Use mh-scan-sent-to-me-sender-regexp instead of
 	mh-scan-format-regexp, and within that expression, use faces
 	mh-folder-sent-to-me-hint and mh-folder-sent-to-me-sender instead
 	of mh-folder-date-face and mh-folder-scan-format-face which were
@@ -2065,8 +2090,8 @@
 
 2005-12-28  Bill Wohler  <wohler@newt.com>
 
-	* mh-comp.el (mh-e-user-agent): Move here from simple.el. Use
-	mh-user-agent-compose instead of mh-smail-batch.
+	* mh-comp.el (mh-e-user-agent): Move here from simple.el.
+	Use mh-user-agent-compose instead of mh-smail-batch.
 
 2005-12-27  Bill Wohler  <wohler@newt.com>
 
@@ -2081,14 +2106,14 @@
 
 	* mh-e.el (mh-folders-changed): Fix typo in docstring.
 
-	Follow MH-E Developers Guide conventions. Use `' quotes for Help
-	hyperlinks such as symbols, Info nodes, or URLs. Use \" quotes for
-	everything else. Otherwise, you can accidently get links to
+	Follow MH-E Developers Guide conventions.  Use `' quotes for Help
+	hyperlinks such as symbols, Info nodes, or URLs.  Use \" quotes for
+	everything else.  Otherwise, you can accidently get links to
 	nonsense symbols.
 
 2005-12-22  Bill Wohler  <wohler@newt.com>
 
-	Follow Emacs coding conventions. Use default setting of
+	Follow Emacs coding conventions.  Use default setting of
 	emacs-lisp-docstring-fill-column which is 65.
 
 	* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
@@ -2098,19 +2123,18 @@
 	with manual.
 	(mh-yank-cur-msg): Mention that mh-ins-buf-prefix isn't used if
 	you have added a mail-citation-hook and neither are used if you
-	use one of the supercite flavors of mh-yank-behavior. Sync
+	use one of the supercite flavors of mh-yank-behavior.  Sync
 	docstrings with manual.
 
 	* mh-customize.el (mh-kill-folder-suppress-prompt-hooks): Rename
 	from mh-kill-folder-suppress-prompt-hook since it is an abnormal
-	hook. Use "Hook run by `function'..." instead of "Invoked...".
+	hook.  Use "Hook run by `function'..." instead of "Invoked...".
 	Sync docstrings with manual.
 	(mh-ins-buf-prefix, mh-yank-behavior): Mention that
 	mh-ins-buf-prefix isn't used if you have added a
 	mail-citation-hook and neither are used if you use one of the
-	supercite flavors of mh-yank-behavior. Sync docstrings with
-	manual.
-	(mail-citation-hook): Delete. Use one in sendmail.el.
+	supercite flavors of mh-yank-behavior.  Sync docstrings with manual.
+	(mail-citation-hook): Delete.  Use one in sendmail.el.
 	(mh-signature-file-name, mh-after-commands-processed-hook)
 	(mh-alias-reloaded-hook, mh-before-commands-processed-hook)
 	(mh-before-quit-hook, mh-before-send-letter-hook)
@@ -2120,7 +2144,7 @@
 	(mh-mh-to-mime-hook, mh-pick-mode-hook, mh-quit-hook)
 	(mh-refile-msg-hook, mh-show-hook, mh-show-mode-hook)
 	(mh-unseen-updated-hook): Use "Hook run by `function'..." instead
-	of "Invoked...". Sync docstrings with manual.
+	of "Invoked...".  Sync docstrings with manual.
 
 	* mh-e.el (mh-last-destination, mh-last-destination-folder)
 	(mh-last-destination-write, mh-folder-mode-map, mh-arrow-marker)
@@ -2154,10 +2178,8 @@
 
 2005-12-19  Stephen Gildea  <gildea@stop.mail-abuse.org>
 
-	* mh-customize.el (mh-after-commands-processed-hook): New
-	variable.
-	(mh-before-commands-processed-hook): Rename
-	mh-folder-updated-hook.
+	* mh-customize.el (mh-after-commands-processed-hook): New variable.
+	(mh-before-commands-processed-hook): Rename mh-folder-updated-hook.
 
 	* mh-e.el (mh-process-commands): Rename mh-folder-updated-hook to
 	mh-before-commands-processed-hook, call new
@@ -2185,32 +2207,31 @@
 	* mh-seq.el:
 	* mh-speed.el:
 	* mh-utils.el:
-	Follow commenting conventions. Don't use ;;; form so much, except
-	for headings. Precede headings with page feed. This was mostly
-	already done, so I made it a convention. Did not update copyright
+	Follow commenting conventions.  Don't use ;;; form so much, except
+	for headings.  Precede headings with page feed.  This was mostly
+	already done, so I made it a convention.  Did not update copyright
 	on a couple of files since this was an insignificant change.
 
 2005-12-18  Bill Wohler  <wohler@newt.com>
 
 	* mh-customize.el (mh-toolbar): Rename to mh-tool-bar.
 	(mh-tool-bar-search-function): Sync docstrings with manual.
-	(mh-tool-bar-customize): Replace toolbar with tool bar in
-	docstring.
+	(mh-tool-bar-customize): Replace toolbar with tool bar in docstring.
 	(mh-tool-bar-letter-help): Fix manual reference.
 	(mh-xemacs-use-toolbar-flag): Rename to
-	mh-xemacs-use-tool-bar-flag. Initialize to
-	mh-xemacs-has-tool-bar-flag. Sync docstrings with manual.
+	mh-xemacs-use-tool-bar-flag.  Initialize to
+	mh-xemacs-has-tool-bar-flag.  Sync docstrings with manual.
 	(mh-xemacs-toolbar-position): Rename to
-	mh-xemacs-tool-bar-position. Initialize to nil. Drop "no tool bar"
+	mh-xemacs-tool-bar-position.  Initialize to nil.  Drop "no tool bar"
 	option (redundant) and change "Same As Default Tool Bar" setting
-	to nil. Sync docstrings with manual.
+	to nil.  Sync docstrings with manual.
 	(mh-tool-bar-define): Replace toolbar with tool-bar or tool bar
 	depending on context.
-	(mh-toolbar-init): Rename to mh-tool-bar-init. Simplify condition
+	(mh-toolbar-init): Rename to mh-tool-bar-init.  Simplify condition
 	for calling set-specifier. Only look at the value of
 	mh-xemacs-use-tool-bar-flag.
-	(mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons): Sync
-	docstrings with manual.
+	(mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons):
+	Sync docstrings with manual.
 
 	* mh-comp.el (mh-letter-mode): Use mh-tool-bar-init instead of
 	mh-toolbar-init.
@@ -2231,7 +2252,7 @@
 
 	* mh-customize.el (mh-speed-flists-interval): Rename to
 	mh-speed-update-interval.
-	(mh-speed-run-flists-flag): Delete. Setting
+	(mh-speed-run-flists-flag): Delete.  Setting
 	mh-speed-flists-interval to 0 accomplishes the same thing.
 
 	* mh-speed.el (mh-folder-speedbar-buttons, mh-speed-flists): Use
@@ -2260,7 +2281,7 @@
 	* mh-comp.el (mh-insert-signature): Ditto.
 
 	* mh-customize.el (mh-fetch-x-image-url): Change default from 'ask
-	to nil. Remove t option. Sync docstring with manual (closes SF
+	to nil.  Remove t option.  Sync docstring with manual (closes SF
 	#831278).
 	(mh-invisible-header-fields-internal): Remove X-Image-URL so that
 	users can see it, look it up in the manual's index, and discover
@@ -2275,9 +2296,9 @@
 	(mh-index-new-messages): Ditto.
 
 	* mh-comp.el (mh-forward): Went over all uses of the word "RANGE"
-	in the docstrings and made usage consistent. Generally speaking,
+	in the docstrings and made usage consistent.  Generally speaking,
 	"messages in range" and "range of messages" is redundant and just
-	"range" can be used in most circumstances. Also ensured that
+	"range" can be used in most circumstances.  Also ensured that
 	mh-interactive-range was mentioned in all interactive functions
 	that use a range which describes the range argument for both users
 	and programmers.
@@ -2310,15 +2331,13 @@
 	I think, so use "truncated".
 
 	* mh-customize.el (mh-folder, mh-folder-faces): Group's manual
-	section is Folders, not Organizing. Parent of mh-folder-faces is
+	section is Folders, not Organizing.  Parent of mh-folder-faces is
 	mh-folder, not mh-show.
 	(mh-speed): Rename to mh-speedbar for consistency with mh-toolbar.
-	(mh-thread): New group that corresponds with manual's Threading
-	chapter.
+	(mh-thread): New group that corresponds with manual's Threading chapter.
 	(mh-letter-faces): Group's manual section is Editing Drafts, not
 	Sending Mail.
-	(mh-sortm-args): New customization variable that used to be a
-	defvar.
+	(mh-sortm-args): New customization variable that used to be a defvar.
 	(mh-index-new-messages-folders, mh-index-ticked-messages-folders):
 	Move from mh-index group to mh-folders group.
 	(mh-alias-local-users-prefix, mh-large-folder)
@@ -2327,8 +2346,8 @@
 	(mh-quit-hook, mh-refile-msg-hook): Move from mh-show group to
 	mh-folder group.
 	(mh-highlight-citation-style): Rename from
-	mh-highlight-citation-p. Sync docstrings with manual.
-	(mh-mhl-format-file): Rename from mhl-formfile. Sync docstrings
+	mh-highlight-citation-p.  Sync docstrings with manual.
+	(mh-mhl-format-file): Rename from mhl-formfile.  Sync docstrings
 	with manual.
 	(mh-show-threads-flag): Move from mh-show group to mh-thread
 	group.
@@ -2350,22 +2369,21 @@
 	(mh-summary-height, mh-delete-msg-hook
 	(mh-show-hook, mh-show-mode-hook): Sync docstrings with manual.
 
-	* mh-e.el
-	(mh-scan-format-mh, mh-scan-good-msg-regexp)
+	* mh-e.el (mh-scan-format-mh, mh-scan-good-msg-regexp)
 	(mh-scan-deleted-msg-regexp, mh-scan-refiled-msg-regexp)
-	(mh-scan-cur-msg-number-regexp, mh-scan-subject-regexp): Use
-	non-fontification instead of non-fontifying.
+	(mh-scan-cur-msg-number-regexp, mh-scan-subject-regexp):
+	Use non-fontification instead of non-fontifying.
 	(mh-header-display): Use mh-mhl-format-file instead of
-	mhl-formfile. Sync docstrings with manual.
+	mhl-formfile.  Sync docstrings with manual.
 	(mh-next-undeleted-msg, mh-previous-undeleted-msg): Rename arg to
-	count. Sync docstrings with manual.
+	count.  Sync docstrings with manual.
 	(mh-refile-or-write-again): Use output from mh-write-msg-to-file
-	so that message doesn't change when using this command. Sync
+	so that message doesn't change when using this command.  Sync
 	docstrings with manual.
-	(mh-page-msg, mh-previous-page): Rename arg to lines. Sync
+	(mh-page-msg, mh-previous-page): Rename arg to lines.  Sync
 	docstrings with manual.
-	(mh-write-msg-to-file): Rename msg to message. Rename no-headers
-	to no-header. Sync docstrings with manual.
+	(mh-write-msg-to-file): Rename msg to message.  Rename no-headers
+	to no-header.  Sync docstrings with manual.
 	(mh-ps-print-map): Delete keybindings for deleted commands
 	mh-ps-print-toggle-mime and mh-ps-print-msg-show.
 	(mh-help-messages): Update printing help.
@@ -2378,53 +2396,53 @@
 
 	* mh-funcs.el (mh-sortm-args): Now a customization option and in
 	mh-customize.el.
-	(mh-pipe-msg): Rename include-headers to include-header. Sync
-	docstrings with manual.
+	(mh-pipe-msg): Rename include-headers to include-header.
+	Sync docstrings with manual.
 	(mh-burst-digest, mh-page-digest, mh-page-digest-backwards)
 	(mh-store-msg): Sync docstrings with manual.
 
-	* mh-mime.el (mh-mime-save-parts): Rename arg to prompt. Sync
-	docstrings with manual.
+	* mh-mime.el (mh-mime-save-parts): Rename arg to prompt.
+	Sync docstrings with manual.
 	(mh-toggle-mh-decode-mime-flag): Use English in message, not Lisp.
 	Sync docstrings with manual.
 	(mh-mm-display-part, mh-mm-inline-message): Use
 	mh-highlight-citation-style instead of mh-highlight-citation-p.
 	(mh-press-button): Sync docstrings with manual.
 	(mh-display-with-external-viewer): Fix default output in
-	minibuffer. Sync docstrings with manual.
-
-	* mh-print.el: (mh-ps-print-mime, mh-ps-print-toggle-mime):
+	minibuffer.  Sync docstrings with manual.
+
+	* mh-print.el (mh-ps-print-mime, mh-ps-print-toggle-mime):
 	Delete.
 	(mh-ps-print-color-option): Incorporate docstring from
 	ps-print-color-p.
-	(mh-ps-spool-buffer): Remove unused code. Fix indent. Slimline
-	docstring.
-	(mh-ps-spool-msg): Slimline docstring. Rename from
-	mh-ps-spool-a-msg. Rewrite to use existing show buffer when
+	(mh-ps-spool-buffer): Remove unused code.  Fix indent.
+	Slimline docstring.
+	(mh-ps-spool-msg): Slimline docstring.  Rename from
+	mh-ps-spool-a-msg.  Rewrite to use existing show buffer when
 	available.
 	(mh-ps-print-range): Extract method from common code in
 	mh-ps-print-msg and mh-ps-print-msg-file.
-	(mh-ps-print-preprint): Clean docstring. Use filename "mh-%s".
-	(mh-ps-print-msg-show): Delete. Can use either
+	(mh-ps-print-preprint): Clean docstring.  Use filename "mh-%s".
+	(mh-ps-print-msg-show): Delete.  Can use either
 	mh-ps-print-msg-show or mh-ps-print-msg-show to same effect with
 	new code in mh-ps-spool-msg.
 	(mh-print-msg): Use mh-mhl-format-file instead of mhl-formfile.
 	Sync docstrings with manual.
 	(mh-ps-print-msg, mh-ps-print-msg-file)
-	(mh-ps-print-toggle-faces, mh-ps-print-toggle-color): Sync
-	docstrings with manual.
-	
+	(mh-ps-print-toggle-faces, mh-ps-print-toggle-color):
+	Sync docstrings with manual.
+
 	* mh-utils.el (mh-show-ps-print-msg-show)
-	mh-show-ps-print-toggle-mime): Delete.
+	(mh-show-ps-print-toggle-mime): Delete.
 	(mh-show-ps-print-map): Update accordingly.
 	(mh-show-mode): Use mh-highlight-citation-style instead of
 	mh-highlight-citation-p.
 	(mh-show-xface, mh-display-msg): Use mh-mhl-format-file instead of
 	mhl-formfile.
-	(mh-show): Use mh-mhl-format-file instead of mhl-formfile. Sync
-	docstrings with manual.
-	(mh-show-font-lock-fontify-region, mh-modify, mh-goto-msg): Sync
-	docstrings with manual.
+	(mh-show): Use mh-mhl-format-file instead of mhl-formfile.
+	Sync docstrings with manual.
+	(mh-show-font-lock-fontify-region, mh-modify, mh-goto-msg):
+	Sync docstrings with manual.
 
 2005-12-01  Bill Wohler  <wohler@newt.com>
 
@@ -2444,10 +2462,10 @@
 	(mh-min-colors-defined-flag, mh-defface-compat): Move here from
 	mh-customize.el.
 
-	* mh-customize.el: Refactor faces. Move grayscale requirements
-	last before t. Use uniform line breaks.
+	* mh-customize.el: Refactor faces.  Move grayscale requirements
+	last before t.  Use uniform line breaks.
 	(mh-min-colors-defined-flag): New variable.
-	(mh-defface-compat): New function. Provides backward compatibility
+	(mh-defface-compat): New function.  Provides backward compatibility
 	for face specs.
 	(mh-show-header, mh-show-date, mh-show-cc, mh-folder-to)
 	(mh-folder-refiled, mh-folder-cur-msg-number, mh-folder-cur-msg)
@@ -2463,8 +2481,8 @@
 2005-11-03  Bill Wohler  <wohler@newt.com>
 
 	* mh-customize.el (mh-refile-preserves-sequences-flag)
-	(mh-tick-seq, mh-update-sequences-after-mh-show-flag): Sync
-	docstrings with manual.
+	(mh-tick-seq, mh-update-sequences-after-mh-show-flag):
+	Sync docstrings with manual.
 
 	* mh-e.el (mh-update-sequences): Sync docstrings with manual.
 
@@ -2499,13 +2517,13 @@
 2005-10-30  Bill Wohler  <wohler@newt.com>
 
 	* mh-e.el (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp)
-	(mh-scan-refiled-msg-regexp, mh-scan-cur-msg-number-regexp): Sync
-	docstrings with manual.
+	(mh-scan-refiled-msg-regexp, mh-scan-cur-msg-number-regexp):
+	Sync docstrings with manual.
 
 	* mh-customize.el (mh-compose-space-does-completion-flag)
 	(mh-signature-separator-flag, mh-interpret-number-as-range-flag)
 	(mh-adaptive-cmd-note-flag): Use "Non-nil means" instead of "On
-	means" to remain checkdoc clean and consistent with Emacs. I
+	means" to remain checkdoc clean and consistent with Emacs.  I
 	raised this issue with the Emacs developers and Stallman agrees
 	that "On means" should be allowed in custom docstrings but that
 	this change requires thought and should wait until after the Emacs
@@ -2524,22 +2542,21 @@
 	(mh-adaptive-cmd-note-flag, mh-scan-format-file): Docstring fixes,
 	add :set.
 
-	* mh-e.el: (mh-scan-field-destination-offset): New variable. The
+	* mh-e.el (mh-scan-field-destination-offset): New variable.  The
 	destination is the -, t, b, c, or n character for Replied, To, cc,
 	Bcc, or Newsgroups respectively.
-	(mh-make-folder, mh-regenerate-headers, mh-generate-new-cmd-note)
+	(mh-make-folder, mh-regenerate-headers, mh-generate-new-cmd-note):
 	Call new function mh-msg-num-width-to-column to make leap between
 	width and column more explicit.
 	(mh-msg-num-width-to-column): New function that steals logic from
-	old mh-set-cmd-note. Also, throw error if mh-scan-format-file
+	old mh-set-cmd-note.  Also, throw error if mh-scan-format-file
 	isn't t since we can't adapt the scan lines in this case.
 	(mh-set-cmd-note): Now just simply sets mh-cmd-note which will
 	make the documentation more clear.
 	(mh-generate-new-cmd-note): Docstring fix--mh-cmd-note is a
 	column, not a width.
 	(mh-add-sequence-notation, mh-remove-sequence-notation): Use new
-	variable mh-scan-field-destination-offset rather than hard-coding
-	1.
+	variable mh-scan-field-destination-offset rather than hard-coding 1.
 
 	* mh-utils.el (mh-cmd-note) Synced docstring with manual.
 	(mh-notate): Use new variable mh-scan-field-destination-offset
@@ -2549,7 +2566,7 @@
 
 	* mh-customize.el (mh-x-face-file, mh-show-use-xface-flag)
 	(mail-citation-hook): Quote URLs in docstrings and precede with
-	`URL'. The former will suppress checkdoc warnings, the latter will
+	`URL'.  The former will suppress checkdoc warnings, the latter will
 	turn them into hyperlinks in Emacs 22 (I just added the code to do
 	that today).
 	(mh-scan-format-file): Checkdoc fix.
@@ -2572,8 +2589,8 @@
 
 	* mh-utils.el (mh-goto-msg): Use mh-scan-msg-search-regexp instead
 	of hard-coded string.
-	(mh-mail-header-separator, mh-signature-separator-regexp): Use
-	"regular expression" in docstring instead of regexp.
+	(mh-mail-header-separator, mh-signature-separator-regexp):
+	Use "regular expression" in docstring instead of regexp.
 	(mh-scan-msg-number-regexp)
 	(mh-scan-msg-overflow-regexp, mh-scan-msg-format-regexp)
 	(mh-scan-msg-format-string, mh-scan-msg-search-regexp)
@@ -2602,8 +2619,8 @@
 
 2005-10-23  Bill Wohler  <wohler@newt.com>
 
-	* mh-customize.el (mh-interpret-number-as-range-flag): Sync
-	docstring with manual.
+	* mh-customize.el (mh-interpret-number-as-range-flag):
+	Sync docstring with manual.
 
 	* mh-identity.el (mh-assoc-ignore-case): Merge with version in
 	mh-alias.el and move to mh-acros.el
@@ -2633,9 +2650,8 @@
 
 	* mh-customize.el (mh-buffer-exists-p): New function which tests
 	presence of buffers of a given mode.
-	(mh-tool-bar-define): New functions
-	mh-tool-bar-folder-buttons-init and
-	mh-tool-bar-letter-buttons-init are defined. These functions are
+	(mh-tool-bar-define): New functions mh-tool-bar-folder-buttons-init and
+	mh-tool-bar-letter-buttons-init are defined.  These functions are
 	used to create the tool-bar from the corresponding customizable
 	variables.
 
@@ -2649,27 +2665,27 @@
 
 	* mh-comp.el (mh-letter-menu): Rename
 	mh-mhn-compose-external-compressed-tar to
-	mh-mh-compose-external-compressed-tar. Rename
-	mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename
+	mh-mh-compose-external-compressed-tar.  Rename
+	mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp.  Rename
 	mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-directive-present-p to
 	mh-mh-directive-present-p. Rename mh-revert-mhn-edit to
-	mh-mh-to-mime-undo. Rename mh-gnus-pgp-support-flag to
-	mh-pgp-support-flag. Rename mh-compose-insertion value from 'mhn
+	mh-mh-to-mime-undo.  Rename mh-gnus-pgp-support-flag to
+	mh-pgp-support-flag.  Rename mh-compose-insertion value from 'mhn
 	to 'mh.
 	(mh-insert-signature): Rename mh-mhn-directive-present-p to
 	mh-mh-directive-present-p.
 	(mh-send-letter): Rename mh-mhn-directive-present-p to
 	mh-mh-directive-present-p. Rename mh-edit-mhn to mh-mh-to-mime.
-	(mh-letter-mode-map): Rename mh-edit-mhn to mh-mh-to-mime. Rename
-	mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename
+	(mh-letter-mode-map): Rename mh-edit-mhn to mh-mh-to-mime.  Rename
+	mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp.  Rename
 	mh-mhn-compose-external-compressed-tar to
-	mh-mh-compose-external-compressed-tar. Rename mh-revert-mhn-edit
-	to mh-mh-to-mime-undo. Rename mh-mhn-compose-external-type to
-	mh-mh-compose-external-type. Rename mh-mhn-compose-anon-ftp to
-	mh-mh-compose-anon-ftp. Rename
+	mh-mh-compose-external-compressed-tar.  Rename mh-revert-mhn-edit
+	to mh-mh-to-mime-undo.  Rename mh-mhn-compose-external-type to
+	mh-mh-compose-external-type.  Rename mh-mhn-compose-anon-ftp to
+	mh-mh-compose-anon-ftp.  Rename
 	mh-mhn-compose-external-compressed-tar to
-	mh-mh-compose-external-compressed-tar. Rename mh-revert-mhn-edit
-	to mh-mh-to-mime-undo. Rename mh-mhn-compose-external-type to
+	mh-mh-compose-external-compressed-tar.  Rename mh-revert-mhn-edit
+	to mh-mh-to-mime-undo.  Rename mh-mhn-compose-external-type to
 	mh-mh-compose-external-type.
 	(mh-send-letter, mh-letter-mode-map): Rename mh-edit-mhn to
 	mh-mh-to-mime, mh-revert-mhn-edit to mh-mh-to-mime-undo.
@@ -2715,15 +2731,13 @@
 	(mh-mhn-compose-forw): Rename to mh-mh-forward-message.
 	(mh-mhn-compose-type): Rename to mh-mh-compose-type.
 	(mh-mhn-compose-anon-ftp): Rename to mh-mh-compose-anon-ftp.
-	Rename mh-mhn-compose-external-type to
-	mh-mh-compose-external-type.
+	Rename mh-mhn-compose-external-type to mh-mh-compose-external-type.
 	(mh-mhn-compose-external-compressed-tar): Rename to
-	mh-mh-compose-external-compressed-tar. Rename
+	mh-mh-compose-external-compressed-tar.  Rename
 	mh-mhn-compose-external-type to mh-mh-compose-external-type.
-	(mh-mhn-compose-external-type): Rename to
-	mh-mh-compose-external-type.
-	(mh-edit-mhn): Rename to mh-mh-to-mime. Rename mh-mhn-args to
-	mh-mh-to-mime-args. Rename mh-edit-mhn-hook to mh-mh-to-mime-hook.
+	(mh-mhn-compose-external-type): Rename to mh-mh-compose-external-type.
+	(mh-edit-mhn): Rename to mh-mh-to-mime.  Rename mh-mhn-args to
+	mh-mh-to-mime-args.  Rename mh-edit-mhn-hook to mh-mh-to-mime-hook.
 	Use correct program in message.
 	(mh-mhn-directive-present-p): Rename to mh-mh-directive-present-p.
 	(mh-mml-directive-present-p): Rename to mh-mml-tag-present-p.
@@ -2763,9 +2777,8 @@
 
 2005-10-17  Peter S Galbraith  <psg@debian.org>
 
-	* mh-identity.el (mh-identity-field-handler): Use
-	`assoc-ignore-case' to compare against header field for mixed-case
-	"From:".
+	* mh-identity.el (mh-identity-field-handler): Use `assoc-ignore-case'
+	to compare against header field for mixed-case "From:".
 
 2005-10-17  Bill Wohler  <wohler@newt.com>
 
@@ -2784,7 +2797,7 @@
 	(mh-complete-word): Use it.
 
 	* mh-init.el (mh-image-load-path): Use locate-library to find
-	MH-E. This simplified the code a lot. Flattened out nested
+	MH-E.  This simplified the code a lot.  Flattened out nested
 	statements even more.
 
 2005-10-16  Satyaki Das  <satyaki@theforce.stanford.edu>
@@ -2804,7 +2817,7 @@
 
 	* mh-init.el (mh-image-load-path-called-flag): New variable which
 	is used by mh-image-load-path so that it runs only once.
-	(mh-image-load-path): Modify so that it gets run only once. Also
+	(mh-image-load-path): Modify so that it gets run only once.  Also
 	flatten out heavily nested if statements to make it clearer.
 
 	* mh-e.el (mh-folder-mode): Call mh-image-load-path to allow Emacs
@@ -2824,12 +2837,12 @@
 
 2005-10-14  Bill Wohler  <wohler@newt.com>
 
-	* mh-e.el, mh-funcs.el, mh-init.el, mh-mime.el, mh-pick.el: *
-	mh-seq.el, mh-utils.el: Ran mh-unit. Continued copyright lines
+	* mh-e.el, mh-funcs.el, mh-init.el, mh-mime.el, mh-pick.el:
+	* mh-seq.el, mh-utils.el: Ran mh-unit.  Continued copyright lines
 	need to be indented.
 
 	* mh-e.el: mh-folder-tick-face had been renamed to mh-folder-tick
-	but the code that invoked the face had not been updated. Tick
+	but the code that invoked the face had not been updated.  Tick
 	highlighting working again.
 
 	* mh-seq.el (mh-non-seq-mode-line-annotation): Move
@@ -2852,7 +2865,7 @@
 
 	* ChangeLog: Move contents into ChangeLog.1 and trim.
 
-	* ChangeLog.1: New file. Contains old ChangeLog.
+	* ChangeLog.1: New file.  Contains old ChangeLog.
 
 
   Copyright (C) 2005 Free Software Foundation, Inc.
@@ -2863,6 +2876,7 @@
 
 ;; Local Variables:
 ;; sentence-end-double-space: nil
+;; add-log-time-zone-rule: t
 ;; End:
 
 ;;; arch-tag: 87324964-69b6-4925-a3c2-9c1df53d7d51
--- a/lisp/mh-e/mh-e.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/mh-e/mh-e.el	Tue Nov 21 08:56:38 2006 +0000
@@ -6,7 +6,7 @@
 
 ;; Author: Bill Wohler <wohler@newt.com>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
-;; Version: 8.0.2
+;; Version: 8.0.3
 ;; Keywords: mail
 
 ;; This file is part of GNU Emacs.
@@ -133,7 +133,7 @@
 ;; Try to keep variables local to a single file. Provide accessors if
 ;; variables are shared. Use this section as a last resort.
 
-(defconst mh-version "8.0.2" "Version number of MH-E.")
+(defconst mh-version "8.0.3" "Version number of MH-E.")
 
 ;; Variants
 
@@ -188,7 +188,7 @@
 (defvar mh-draft-folder nil
   "Cached value of the \"Draft-Folder:\" MH profile component.
 Name of folder containing draft messages.
-Nil means do not use a draft folder.")
+Do not use a draft folder if nil.")
 
 (defvar mh-inbox nil
   "Cached value of the \"Inbox:\" MH profile component.
@@ -1218,7 +1218,7 @@
   :package-version '(MH-E . "7.1"))
 
 (defcustom-mh mh-alias-local-users t
-  "*If on, local users are added to alias completion.
+  "*Non-nil means local users are added to alias completion.
 
 Aliases are created from \"/etc/passwd\" entries with a user ID
 larger than a magical number, typically 200. This can be a handy
@@ -1690,7 +1690,13 @@
 By default, the programs are run in the foreground, but this can
 be slow when junking large numbers of messages. If you have
 enough memory or don't junk that many messages at the same time,
-you might try turning on this option."
+you might try turning on this option.
+
+Note that this option is used as the \"display\" argument in the
+call to `call-process'. Therefore, turning on this option means
+setting its value to \"0\". You can also set its value to t to
+direct the programs' output to the \"*MH-E Log*\" buffer; this
+may be useful for debugging."
   :type '(choice (const :tag "Off" nil)
                  (const :tag "On" 0))
   :group 'mh-junk
--- a/lisp/mh-e/mh-junk.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/mh-e/mh-junk.el	Tue Nov 21 08:56:38 2006 +0000
@@ -115,9 +115,7 @@
 To use SpamAssassin, add the following recipes to
 \".procmailrc\":
 
-    # Append to $PATH the location of mhparam in some distros.
     PATH=$PATH:/usr/bin/mh
-
     MAILDIR=$HOME/`mhparam Path`
 
     # Fight spam with SpamAssassin.
@@ -195,30 +193,33 @@
   (let ((current-folder mh-current-folder)
         (msg-file (mh-msg-filename msg mh-current-folder))
         (sender))
-    (save-excursion
-      (message "Reporting message %d..." msg)
-      (mh-truncate-log-buffer)
-      (call-process mh-spamassassin-executable msg-file mh-log-buffer nil
+    (message "Reporting message %d..." msg)
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-spamassassin-executable msg-file mh-junk-background nil
                     ;;"--report" "--remove-from-whitelist"
                     "-r" "-R")          ; spamassassin V2.20
-      (when mh-sa-learn-executable
-          (message "Recategorizing this message as spam...")
-          (call-process mh-sa-learn-executable msg-file mh-log-buffer nil
-                        "--single" "--spam" "--local" "--no-rebuild"))
-      (message "Blacklisting message %d..." msg)
-      (set-buffer (get-buffer-create mh-temp-buffer))
+    (when mh-sa-learn-executable
+      (message "Recategorizing message %d as spam..." msg)
+      (mh-truncate-log-buffer)
+      (call-process mh-sa-learn-executable msg-file mh-junk-background nil
+                    "--single" "--spam" "--local" "--no-rebuild")))
+    (message "Blacklisting sender of message %d..." msg)
+    (with-current-buffer (get-buffer-create mh-temp-buffer)
       (erase-buffer)
       (call-process (expand-file-name mh-scan-prog mh-progs)
-                    nil mh-junk-background nil
-                    (format "%s" msg) current-folder
+                    nil t nil
+                    (format "%d" msg) current-folder
                     "-format" "%<(mymbox{from})%|%(addr{from})%>")
       (goto-char (point-min))
       (if (search-forward-regexp "^\\(.+\\)$" nil t)
           (progn
             (setq sender (match-string 0))
             (mh-spamassassin-add-rule "blacklist_from" sender)
-            (message "Blacklisting message %d...done" msg))
-        (message "Blacklisting message %d...not done (from my address)" msg)))))
+            (message "Blacklisting sender of message %d...done" msg))
+        (message "Blacklisting sender of message %d...not done (from my address)" msg)))))
 
 ;;;###mh-autoload
 (defun mh-spamassassin-whitelist (msg)
@@ -234,28 +235,31 @@
   (let ((msg-file (mh-msg-filename msg mh-current-folder))
         (show-buffer (get-buffer mh-show-buffer))
         from)
-    (save-excursion
-      (set-buffer (get-buffer-create mh-temp-buffer))
+    (with-current-buffer (get-buffer-create mh-temp-buffer)
       (erase-buffer)
-      (message "Removing spamassassin markup from message...")
-      (call-process mh-spamassassin-executable msg-file mh-temp-buffer nil
+      (message "Removing spamassassin markup from message %d..." msg)
+      (call-process mh-spamassassin-executable msg-file t nil
                     ;; "--remove-markup"
                     "-d")               ; spamassassin V2.20
       (if show-buffer
           (kill-buffer show-buffer))
       (write-file msg-file)
       (when mh-sa-learn-executable
-        (message "Recategorizing this message as ham...")
-        (call-process mh-sa-learn-executable msg-file mh-temp-buffer nil
-                      "--single" "--ham" "--local" "--no-rebuild"))
-      (message "Whitelisting message %d..." msg)
+        (message "Recategorizing message %d as ham..." msg)
+        (mh-truncate-log-buffer)
+        ;; Put call-process output in log buffer if we are saving it
+        ;; (this happens if mh-junk-background is t).
+        (with-current-buffer mh-log-buffer
+          (call-process mh-sa-learn-executable msg-file mh-junk-background nil
+                        "--single" "--ham" "--local" "--no-rebuild")))
+      (message "Whitelisting sender of message %d..." msg)
       (setq from
             (car (mh-funcall-if-exists
                   ietf-drums-parse-address (mh-get-header-field "From:"))))
       (kill-buffer nil)
       (unless (or (null from) (equal from ""))
         (mh-spamassassin-add-rule "whitelist_from" from))
-      (message "Whitelisting message %d...done" msg))))
+      (message "Whitelisting sender of message %d...done" msg))))
 
 (defun mh-spamassassin-add-rule (rule body)
   "Add a new rule to \"~/.spamassassin/user_prefs\".
@@ -346,6 +350,7 @@
 
 To use bogofilter, add the following recipes to \".procmailrc\":
 
+    PATH=$PATH:/usr/bin/mh
     MAILDIR=$HOME/`mhparam Path`
 
     # Fight spam with bogofilter.
@@ -375,8 +380,12 @@
   (unless mh-bogofilter-executable
     (error "Unable to find the bogofilter executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-bogofilter-executable msg-file mh-junk-background
-                  nil "-s")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-bogofilter-executable msg-file mh-junk-background
+                    nil "-s"))))
 
 ;;;###mh-autoload
 (defun mh-bogofilter-whitelist (msg)
@@ -386,8 +395,12 @@
   (unless mh-bogofilter-executable
     (error "Unable to find the bogofilter executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-bogofilter-executable msg-file mh-junk-background
-                  nil "-n")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-bogofilter-executable msg-file mh-junk-background
+                    nil "-n"))))
 
 
 
@@ -404,6 +417,7 @@
 
 To use SpamProbe, add the following recipes to \".procmailrc\":
 
+    PATH=$PATH:/usr/bin/mh
     MAILDIR=$HOME/`mhparam Path`
 
     # Fight spam with SpamProbe.
@@ -423,8 +437,12 @@
   (unless mh-spamprobe-executable
     (error "Unable to find the spamprobe executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-spamprobe-executable msg-file mh-junk-background
-                  nil "spam")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-spamprobe-executable msg-file mh-junk-background
+                    nil "spam"))))
 
 ;;;###mh-autoload
 (defun mh-spamprobe-whitelist (msg)
@@ -434,8 +452,12 @@
   (unless mh-spamprobe-executable
     (error "Unable to find the spamprobe executable"))
   (let ((msg-file (mh-msg-filename msg mh-current-folder)))
-    (call-process mh-spamprobe-executable msg-file mh-junk-background
-                  nil "good")))
+    (mh-truncate-log-buffer)
+    ;; Put call-process output in log buffer if we are saving it
+    ;; (this happens if mh-junk-background is t).
+    (with-current-buffer mh-log-buffer
+      (call-process mh-spamprobe-executable msg-file mh-junk-background
+                    nil "good"))))
 
 (provide 'mh-junk)
 
--- a/lisp/mh-e/mh-xface.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/mh-e/mh-xface.el	Tue Nov 21 08:56:38 2006 +0000
@@ -361,14 +361,16 @@
 Replace the ?/ character with a ?! character and append .png.
 Also replaces special characters with `mh-url-hexify-string'
 since not all characters, such as :, are legal within Windows
-filenames. See URL
-`http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp'."
+filenames. In addition, replaces * with %2a. See URL
+`http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iitemnamelimits/GetValidCharacters.asp'."
   (format "%s/%s.png" mh-x-image-cache-directory
-          (mh-url-hexify-string
-           (with-temp-buffer
-             (insert url)
-             (mh-replace-string "/" "!")
-             (buffer-string)))))
+          (mh-replace-regexp-in-string
+           "\*" "%2a"
+           (mh-url-hexify-string
+            (with-temp-buffer
+              (insert url)
+              (mh-replace-string "/" "!")
+              (buffer-string))))))
 
 (defun mh-x-image-get-download-state (file)
   "Check the state of FILE by following any symbolic links."
--- a/lisp/mouse.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/mouse.el	Tue Nov 21 08:56:38 2006 +0000
@@ -2416,7 +2416,7 @@
 
 (global-set-key [mouse-2]	'mouse-yank-at-click)
 ;; Allow yanking also when the corresponding cursor is "in the fringe".
-(global-set-key [right-fringe mouse-2] [mouse-2])
+(global-set-key [right-fringe mouse-2] 'mouse-yank-at-click)
 (global-set-key [mouse-3]	'mouse-save-then-kill)
 
 ;; By binding these to down-going events, we let the user use the up-going
--- a/lisp/net/tramp.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/net/tramp.el	Tue Nov 21 08:56:38 2006 +0000
@@ -113,7 +113,7 @@
 ;;;###autoload
 (defvar tramp-unified-filenames (not (featurep 'xemacs))
   "Non-nil means to use unified Ange-FTP/Tramp filename syntax.
-Nil means to use a separate filename syntax for Tramp.")
+Otherwise, use a separate filename syntax for Tramp.")
 
 ;; Load foreign methods.  Because they do require Tramp internally, this
 ;; must be done with the `eval-after-load' trick.
@@ -149,12 +149,11 @@
 		    (when (featurep 'tramp-smb)
 		      (unload-feature 'tramp-smb 'force)))))))
 
-(eval-when-compile
-  (require 'cl)
-  (require 'custom)
-  ;; Emacs 19.34 compatibility hack -- is this needed?
-  (or (>= emacs-major-version 20)
-      (load "cl-seq")))
+(require 'cl)
+(require 'custom)
+;; Emacs 19.34 compatibility hack -- is this needed?
+(or (>= emacs-major-version 20)
+    (load "cl-seq"))
 
 (unless (boundp 'custom-print-functions)
   (defvar custom-print-functions nil))	; not autoloaded before Emacs 20.4
--- a/lisp/pcvs.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/pcvs.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1741,6 +1741,8 @@
             ;; into a sequence of chars.
             (decode-coding-inserted-region
              (point-min) (point-max) file t nil nil t)
+            ;; Set buffer-file-coding-system.
+            (after-insert-file-set-coding (buffer-size) t)
 	    (set-buffer-modified-p nil)
 	    (let ((buffer-file-name (expand-file-name file)))
 	      (after-find-file))
--- a/lisp/play/handwrite.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/play/handwrite.el	Tue Nov 21 08:56:38 2006 +0000
@@ -155,7 +155,19 @@
        (buf-name (buffer-name) )
        (textp)
        (ps-buf-name)			;name of the PostScript buffer
-       )
+       (trans-table
+	'(("ÿ" . "264") ("á" . "207") ("à" . "210") ("â" . "211")
+	  ("ä" . "212") ("ã" . "213") ("å" . "214") ("é" . "216")
+	  ("è" . "217") ("ê" . "220") ("ë" . "221") ("í" . "222")
+	  ("ì" . "223") ("î" . "224") ("ï" . "225") ("ó" . "227")
+	  ("ò" . "230") ("ô" . "231") ("ö" . "232") ("õ" . "233")
+	  ("ú" . "234") ("ù" . "235") ("û" . "236") ("ü" . "237")
+	  ("ß" . "247") ("°" . "241") ("®" . "250") ("©" . "251")
+	  ("ij" . "264") ("ç" . "215") ("§" . "244") ("ñ" . "226")
+	  ("£" . "243")))
+       (escape-table '("\\\\" "(" ")")) ; \\ comes first to not work
+					; on inserted backslashes
+       line)
     (goto-char (point-min))		;start at beginning
     (setq handwrite-psindex (1+ handwrite-psindex))
     (setq ps-buf-name
@@ -178,155 +190,46 @@
     (switch-to-buffer cur-buf)
     (goto-char (point-min))		;start at beginning
     (save-excursion
-      ;;as long as we see a newline the document is not ended.
-      (while (re-search-forward "\n" nil t)
-	(previous-line 1)
-	(beginning-of-line)
-	(setq pmin (point))
-	(search-forward "\n" nil t)
-	(backward-char 1)
-	(copy-region-as-kill (point) pmin)
-	(forward-char 1)
+      (while (not (eobp))
+	(setq line (thing-at-point 'line))
+	(dolist (escape escape-table)
+	  (setq line (replace-regexp-in-string escape
+					       (concat "\\\\" escape) line)))
+	(dolist (trans trans-table)
+	  (setq line (replace-regexp-in-string (car trans)
+					       (concat "\\\\" (cdr trans))
+					       line)))
 	(switch-to-buffer ps-buf-name)
-	(yank)
+	(insert (replace-regexp-in-string "\n" "" line))
 	(message "write write write...")
-	(search-forward ")a" nil t)
-	(backward-char 2)
-	(setq lastp (point))
-	(beginning-of-line)
-	(search-forward "(" nil t)
-	(while (re-search-forward "[()\\]" lastp t)
-	  (save-excursion
-	    (setq lastp (+ lastp 1))
-	    (forward-char -1)
-	    (insert "\\")))
 	(setq ps-ypos (+ ps-ypos handwrite-linespace))
 	(end-of-line)
 	(insert "\n")
 	(setq lcount (+ lcount 1))
-	(cond ( (eq lcount handwrite-numlines)
-		(setq ipage (+ ipage 1))
-		(insert "0 0  m\n")
-		(insert "showpage exec Hwsave restore\n")
-		(insert "%%Page: " (number-to-string ipage) " "
-			(number-to-string ipage) "\n")
-		(insert "Hwjst\n")
-		(insert "/Hwsave save def\n")
-		(if handwrite-pagenumbering
-		    (insert "20 30 m\nxym(page "
-			    (number-to-string ipage) ")a\n"))
-		(setq ps-ypos 63)
-		(setq lcount 0)
-		))
-	(insert "44 "(number-to-string ps-ypos) " m\n")
+	(when (= lcount handwrite-numlines)
+	  (setq ipage (+ ipage 1))
+	  (insert "0 0  m\n")
+	  (insert "showpage exec Hwsave restore\n")
+	  (insert "%%Page: " (number-to-string ipage) " "
+		  (number-to-string ipage) "\n")
+	  (insert "Hwjst\n")
+	  (insert "/Hwsave save def\n")
+	  (if handwrite-pagenumbering
+	      (insert "20 30 m\nxym(page "
+		      (number-to-string ipage) ")a\n"))
+	  (setq ps-ypos 63)
+	  (setq lcount 0))
+	(insert "44 " (number-to-string ps-ypos) " m\n")
 	(insert "xym( )a")
 	(backward-char 3)
 	(switch-to-buffer cur-buf)
+	(forward-line 1)
 	))
     (switch-to-buffer ps-buf-name)
     (next-line 1)
     (insert "showpage exec Hwsave restore\n\n")
     (insert "%%Pages " (number-to-string ipage) " 0\n")
     (insert "%%EOF\n")
-    (goto-char textp)			;start where the inserted text begins
-    (while (search-forward "ÿ" nil t)
-      (replace-match "\\" nil t) (insert "264"))
-    (goto-char textp)
-    (while (search-forward "á" nil t)
-      (replace-match "\\" nil t) (insert "207"))
-    (goto-char textp)
-    (while (search-forward "à" nil t)
-      (replace-match "\\" nil t) (insert "210"))
-    (goto-char textp)
-    (while (search-forward "â" nil t)
-      (replace-match "\\" nil t) (insert "211"))
-    (goto-char textp)
-    (while (search-forward "ä" nil t)
-      (replace-match "\\" nil t) (insert "212"))
-    (goto-char textp)
-    (while (search-forward "ã" nil t)
-      (replace-match "\\" nil t) (insert "213"))
-    (goto-char textp)
-    (while (search-forward "å" nil t)
-      (replace-match "\\" nil t) (insert "214"))
-    (goto-char textp)
-    (while (search-forward "é" nil t)
-      (replace-match "\\" nil t) (insert "216"))
-    (goto-char textp)
-    (while (search-forward "è" nil t)
-      (replace-match "\\" nil t) (insert "217"))
-    (goto-char textp)
-    (while (search-forward "ê" nil t)
-      (replace-match "\\" nil t) (insert "220"))
-    (goto-char textp)
-    (while (search-forward "ë" nil t)
-      (replace-match "\\" nil t) (insert "221"))
-    (goto-char textp)
-    (while (search-forward "í" nil t)
-      (replace-match "\\" nil t) (insert "222"))
-    (goto-char textp)
-    (while (search-forward "ì" nil t)
-      (replace-match "\\" nil t) (insert "223"))
-    (goto-char textp)
-    (while (search-forward "î" nil t)
-      (replace-match "\\" nil t) (insert "224"))
-    (goto-char textp)
-    (while (search-forward "ï" nil t)
-      (replace-match "\\" nil t) (insert "225"))
-    (goto-char textp)
-    (while (search-forward "ó" nil t)
-      (replace-match "\\" nil t) (insert "227"))
-    (goto-char textp)
-    (while (search-forward "ò" nil t)
-      (replace-match "\\" nil t) (insert "230"))
-    (goto-char textp)
-    (while (search-forward "ô" nil t)
-      (replace-match "\\" nil t) (insert "231"))
-    (goto-char textp)
-    (while (search-forward "ö" nil t)
-      (replace-match "\\" nil t) (insert "232"))
-    (goto-char textp)
-    (while (search-forward "õ" nil t)
-      (replace-match "\\" nil t) (insert "233"))
-    (goto-char textp)
-    (while (search-forward "ú" nil t)
-      (replace-match "\\" nil t) (insert "234"))
-    (goto-char textp)
-    (while (search-forward "ù" nil t)
-      (replace-match "\\" nil t) (insert "235"))
-    (goto-char textp)
-    (while (search-forward "û" nil t)
-      (replace-match "\\" nil t) (insert "236"))
-    (goto-char textp)
-    (while (search-forward "ü" nil t)
-      (replace-match "\\" nil t) (insert "237"))
-    (goto-char textp)
-    (while (search-forward "ß" nil t)
-      (replace-match "\\" nil t) (insert "247"))
-    (goto-char textp)
-    (while (search-forward "°" nil t)
-      (replace-match "\\" nil t) (insert "241"))
-    (goto-char textp)
-    (while (search-forward "®" nil t)
-      (replace-match "\\" nil t) (insert "250"))
-    (goto-char textp)
-    (while (search-forward "©" nil t)
-      (replace-match "\\" nil t) (insert "251"))
-    (goto-char textp)
-    (while (search-forward "ij" nil t)
-      (replace-match "\\" nil t) (insert "264"))
-    (goto-char textp)
-    (while (search-forward "ç" nil t)
-      (replace-match "\\" nil t) (insert "215"))
-    (goto-char textp)
-    (while (search-forward "§" nil t)
-      (replace-match "\\" nil t) (insert "244"))
-    (goto-char textp)
-    (while (search-forward "ñ" nil t)
-      (replace-match "\\" nil t) (insert "226"))
-    (goto-char textp)
-    (while (search-forward "£" nil t)
-      (replace-match "\\" nil t) (insert "243"))
     ;;To avoid cumbersome code we simply ignore pagefeeds
     (goto-char textp)
     (while (search-forward "\f" nil t)
@@ -342,7 +245,9 @@
 		 (ps-lpr-switches
 		  (if (stringp ps-printer-name)
 		      (list (concat "-P" ps-printer-name)))))
-	    (apply (or ps-print-region-function 'call-process-region)
+	    (apply (or (and (boundp 'ps-print-region-function)
+			    ps-print-region-function)
+		       'call-process-region)
 		   (point-min) (point-max) ps-lpr-command nil nil nil))))
     (message "")
     (bury-buffer ())
--- a/lisp/printing.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/printing.el	Tue Nov 21 08:56:38 2006 +0000
@@ -5,7 +5,7 @@
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
 ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
-;; Time-stamp: <2006/09/15 18:53:14 vinicius>
+;; Time-stamp: <2006/11/08 12:01:50 vinicius>
 ;; Keywords: wp, print, PostScript
 ;; Version: 6.8.4
 ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
@@ -68,7 +68,7 @@
 ;; interface to ps-print package and it also provides some extra stuff.
 ;;
 ;; To download the latest ps-print package see
-;; `http://www.cpqd.com.br/~vinicius/emacs/ps-print.tar.gz'.
+;; `http://www.emacswiki.org/cgi-bin/emacs/download/ps-print.tar.gz'.
 ;; Please, see README file for ps-print installation instructions.
 ;;
 ;; `printing' was inspired on:
@@ -958,8 +958,8 @@
 ;;
 ;; * For `printing' package:
 ;;
-;;    printing	`http://www.cpqd.com.br/~vinicius/emacs/printing.el.gz'
-;;    ps-print	`http://www.cpqd.com.br/~vinicius/emacs/ps-print.tar.gz'
+;;    printing	`http://www.emacswiki.org/cgi-bin/emacs/download/printing.el'
+;;    ps-print	`http://www.emacswiki.org/cgi-bin/emacs/download/ps-print.tar.gz'
 ;;
 ;; * For GNU or Unix system:
 ;;
@@ -1144,7 +1144,6 @@
   "Set the value of custom variables for printer & utility selection."
   (set symbol value)
   (and (featurep 'printing)		; update only after printing is loaded
-       (not pr-menu-print-item)
        (pr-update-menus t)))
 
 
@@ -1152,7 +1151,6 @@
   "Update utility menu entry."
   (set symbol value)
   (and (featurep 'printing)		; update only after printing is loaded
-       (not pr-menu-print-item)
        (pr-menu-set-utility-title value)))
 
 
@@ -1160,7 +1158,6 @@
   "Update `PostScript Printer:' menu entry."
   (set symbol value)
   (and (featurep 'printing)		; update only after printing is loaded
-       (not pr-menu-print-item)
        (pr-menu-set-ps-title value)))
 
 
@@ -1168,7 +1165,6 @@
   "Update `Text Printer:' menu entry."
   (set symbol value)
   (and (featurep 'printing)		; update only after printing is loaded
-       (not pr-menu-print-item)
        (pr-menu-set-txt-title value)))
 
 
@@ -3091,7 +3087,7 @@
     ;; third... time, but "print" item exists only in the first load.
     (cond
      ;; Emacs 20
-     ((string< emacs-version "21.")
+     ((< emacs-major-version 21)
       (easy-menu-change '("tools") "Printing" pr-menu-spec pr-menu-print-item)
       (when pr-menu-print-item
 	(easy-menu-remove-item nil '("tools") pr-menu-print-item)
@@ -3100,21 +3096,24 @@
 				  (pr-get-symbol "Printing")))))
      ;; Emacs 21 & 22
      (t
-      (cond
-       (pr-menu-print-item
-	(easy-menu-add-item menu-bar-file-menu nil
-			    (easy-menu-create-menu "Print" pr-menu-spec)
-			    "print-buffer")
-	(dolist (item '("print-buffer"          "print-region"
-			"ps-print-buffer-faces" "ps-print-region-faces"
-			"ps-print-buffer"       "ps-print-region"))
-	  (easy-menu-remove-item menu-bar-file-menu nil item))
-	(setq pr-menu-print-item nil
-	      pr-menu-bar (vector 'menu-bar
-				  'file
-				  (pr-get-symbol "Print"))))
-       (t
-	(easy-menu-change '("file") "Print" pr-menu-spec)))))))
+      (let ((menu-file (if (= emacs-major-version 21)
+			   '("menu-bar" "files") ; Emacs 21
+			 '("menu-bar" "file")))) ; Emacs 22 or higher
+	(cond
+	 (pr-menu-print-item
+	  (easy-menu-add-item global-map menu-file
+			      (easy-menu-create-menu "Print" pr-menu-spec)
+			      "print-buffer")
+	  (dolist (item '("print-buffer"          "print-region"
+			  "ps-print-buffer-faces" "ps-print-region-faces"
+			  "ps-print-buffer"       "ps-print-region"))
+	    (easy-menu-remove-item global-map menu-file item))
+	  (setq pr-menu-print-item nil
+		pr-menu-bar (vector 'menu-bar
+				    (pr-get-symbol (nth 1 menu-file))
+				    (pr-get-symbol "Print"))))
+	 (t
+	  (easy-menu-change (cdr menu-file) "Print" pr-menu-spec))))))))
   (pr-update-menus t))
 
 
@@ -6056,7 +6055,9 @@
   ;; header
   (let ((versions (concat "printing v" pr-version
 			  "    ps-print v" ps-print-version)))
-    (widget-insert (make-string (- 79 (length versions)) ?\s) versions))
+    ;; to keep compatibility with Emacs 20 & 21:
+    ;; DO NOT REPLACE `?\ ' BY `?\s'
+    (widget-insert (make-string (- 79 (length versions)) ?\ ) versions))
   (pr-insert-italic "\nCurrent Directory : " 1)
   (pr-insert-italic default-directory)
 
--- a/lisp/progmodes/ada-mode.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/ada-mode.el	Tue Nov 21 08:56:38 2006 +0000
@@ -125,17 +125,15 @@
 ;;;   `abbrev-mode': Provides the capability to define abbreviations, which
 ;;;      are automatically expanded when you type them. See the Emacs manual.
 
-(eval-when-compile
-  (require 'ispell nil t)
-  (require 'find-file nil t)
-  (require 'align nil t)
-  (require 'which-func nil t)
-  (require 'compile nil t))
+(require 'find-file nil t)
+(require 'align nil t)
+(require 'which-func nil t)
+(require 'compile nil t)
 
 (defvar compile-auto-highlight)
+(defvar ispell-check-comments)
 (defvar skeleton-further-elements)
 
-;; this function is needed at compile time
 (eval-and-compile
   (defun ada-check-emacs-version (major minor &optional is-xemacs)
     "Return t if Emacs's version is greater or equal to MAJOR.MINOR.
@@ -148,16 +146,10 @@
 	       (and (= emacs-major-version major)
 		    (>= emacs-minor-version minor)))))))
 
-
-;;  This call should not be made in the release that is done for the
-;;  official Emacs, since it does nothing useful for the latest version
-;;(if (not (ada-check-emacs-version 21 1))
-;;    (require 'ada-support))
-
 (defun ada-mode-version ()
   "Return Ada mode version."
   (interactive)
-  (let ((version-string "3.5"))
+  (let ((version-string "3.7"))
     (if (interactive-p)
 	(message version-string)
       version-string)))
@@ -366,8 +358,8 @@
   :type 'integer :group 'ada)
 
 (defcustom ada-language-version 'ada95
-  "*Do we program in `ada83' or `ada95'?"
-  :type '(choice (const ada83) (const ada95)) :group 'ada)
+  "*Ada language version; one of `ada83', `ada95', `ada2005'."
+  :type '(choice (const ada83) (const ada95) (const ada2005)) :group 'ada)
 
 (defcustom ada-move-to-declaration nil
   "*Non-nil means `ada-move-to-start' moves to the subprogram declaration, not to 'begin'."
@@ -480,6 +472,7 @@
   "Syntax table for Ada, where `_' is a word constituent.")
 
 (eval-when-compile
+  ;; These values are used in eval-when-compile expressions.
   (defconst ada-83-string-keywords
     '("abort" "abs" "accept" "access" "all" "and" "array" "at" "begin"
       "body" "case" "constant" "declare" "delay" "delta" "digits" "do"
@@ -489,8 +482,18 @@
       "procedure" "raise" "range" "record" "rem" "renames" "return"
       "reverse" "select" "separate" "subtype" "task" "terminate" "then"
       "type" "use" "when" "while" "with" "xor")
-    "List of Ada keywords.
-This variable is used to define `ada-83-keywords' and `ada-95-keywords'."))
+    "List of Ada 83 keywords.
+Used to define `ada-*-keywords'.")
+
+  (defconst ada-95-string-keywords
+    '("abstract" "aliased" "protected" "requeue" "tagged" "until")
+    "List of keywords new in Ada 95.
+Used to define `ada-*-keywords'.")
+
+  (defconst ada-2005-string-keywords
+    '("interface" "overriding" "synchronized")
+    "List of keywords new in Ada 2005.
+Used to define `ada-*-keywords.'"))
 
 (defvar ada-ret-binding nil
   "Variable to save key binding of RET when casing is activated.")
@@ -541,24 +544,25 @@
 This variable defines several rules to use to align different lines.")
 
 (defconst ada-align-region-separate
-  (concat
-   "^\\s-*\\($\\|\\("
-   "begin\\|"
-   "declare\\|"
-   "else\\|"
-   "end\\|"
-   "exception\\|"
-   "for\\|"
-   "function\\|"
-   "generic\\|"
-   "if\\|"
-   "is\\|"
-   "procedure\\|"
-   "record\\|"
-   "return\\|"
-   "type\\|"
-   "when"
-   "\\)\\>\\)")
+  (eval-when-compile
+    (concat
+     "^\\s-*\\($\\|\\("
+     "begin\\|"
+     "declare\\|"
+     "else\\|"
+     "end\\|"
+     "exception\\|"
+     "for\\|"
+     "function\\|"
+     "generic\\|"
+     "if\\|"
+     "is\\|"
+     "procedure\\|"
+     "record\\|"
+     "return\\|"
+     "type\\|"
+     "when"
+     "\\)\\>\\)"))
   "See the variable `align-region-separate' for more information.")
 
 ;;; ---- Below are the regexp used in this package for parsing
@@ -566,29 +570,38 @@
 (defconst ada-83-keywords
   (eval-when-compile
     (concat "\\<" (regexp-opt ada-83-string-keywords t) "\\>"))
-  "Regular expression for looking at Ada83 keywords.")
+  "Regular expression matching Ada83 keywords.")
 
 (defconst ada-95-keywords
   (eval-when-compile
     (concat "\\<" (regexp-opt
 		   (append
-		    '("abstract" "aliased" "protected" "requeue"
-		      "tagged" "until")
+		    ada-95-string-keywords
 		    ada-83-string-keywords) t) "\\>"))
-  "Regular expression for looking at Ada95 keywords.")
-
-(defvar ada-keywords ada-95-keywords
-  "Regular expression for looking at Ada keywords.")
+  "Regular expression matching Ada95 keywords.")
+
+(defconst ada-2005-keywords
+  (eval-when-compile
+    (concat "\\<" (regexp-opt
+		   (append
+		    ada-2005-string-keywords
+		    ada-83-string-keywords
+		    ada-95-string-keywords) t) "\\>"))
+  "Regular expression matching Ada2005 keywords.")
+
+(defvar ada-keywords ada-2005-keywords
+  "Regular expression matching Ada keywords.")
+;; FIXME: make this customizable
 
 (defconst ada-ident-re
   "\\(\\sw\\|[_.]\\)+"
   "Regexp matching Ada (qualified) identifiers.")
 
-;;  "with" needs to be included in the regexp, so that we can insert new lines
-;;  after the declaration of the parameter for a generic.
+;;  "with" needs to be included in the regexp, to match generic subprogram parameters
+;;  Similarly, we put '[not] overriding' on the same line with 'procedure' etc.
 (defvar ada-procedure-start-regexp
   (concat
-   "^[ \t]*\\(with[ \t]+\\)?\\(procedure\\|function\\|task\\)[ \t\n]+"
+   "^[ \t]*\\(with[ \t]+\\)?\\(\\(not[ \t]+\\)?overriding[ \t]+\\)?\\(procedure\\|function\\|task\\)[ \t\n]+"
 
    ;;  subprogram name: operator ("[+/=*]")
    "\\("
@@ -598,11 +611,21 @@
    "\\|"
    "\\(\\(\\sw\\|[_.]\\)+\\)"
    "\\)")
-  "Regexp used to find Ada procedures/functions.")
-
-(defvar ada-package-start-regexp
-  "^[ \t]*\\(package\\)"
-  "Regexp used to find Ada packages.")
+  "Regexp matching Ada subprogram start.
+The actual start is at (match-beginning 4). The name is in (match-string 5).")
+
+(defconst ada-name-regexp
+  "\\([a-zA-Z][a-zA-Z0-9_.']*[a-zA-Z0-9]\\)"
+  "Regexp matching a fully qualified name (including attribute).")
+
+(defconst ada-package-start-regexp
+  (concat "^[ \t]*\\(private[ \t]+\\)?\\(package\\)[ \t\n]+\\(body[ \t]*\\)?" ada-name-regexp)
+  "Regexp matching start of package.
+The package name is in (match-string 4).")
+
+(defconst ada-compile-goto-error-file-linenr-re
+  "\\([-_.a-zA-Z0-9]+\\):\\([0-9]+\\)\\(:\\([0-9]+\\)\\)?"
+  "Regexp matching filename:linenr[:column].")
 
 
 ;;; ---- regexps for indentation functions
@@ -635,8 +658,8 @@
   (eval-when-compile
     (concat "\\<"
 	    (regexp-opt
-	     '("end" "loop" "select" "begin" "case" "do"
-	       "if" "task" "package" "record" "protected") t)
+	     '("end" "loop" "select" "begin" "case" "do" "declare"
+	       "if" "task" "package" "procedure" "function" "record" "protected") t)
 	    "\\>"))
   "Regexp used in `ada-goto-matching-start'.")
 
@@ -753,11 +776,22 @@
   (skip-chars-backward "-a-zA-Z0-9_:./\\")
   (cond
    ;;  special case: looking at a filename:line not at the beginning of a line
+   ;;  or a simple line reference "at line ..."
    ((and (not (bolp))
-	 (looking-at
-	  "\\([-_.a-zA-Z0-9]+\\):\\([0-9]+\\)\\(:\\([0-9]+\\)\\)?"))
-    (let ((line (match-string 2))
-	  file
+	 (or (looking-at ada-compile-goto-error-file-linenr-re)
+	     (and
+	      (save-excursion
+		(beginning-of-line)
+		(looking-at ada-compile-goto-error-file-linenr-re))
+	      (save-excursion
+		(if (looking-at "\\([0-9]+\\)") (backward-word 1))
+		(looking-at "line \\([0-9]+\\)"))))
+	     )
+    (let ((line (if (match-beginning 2) (match-string 2) (match-string 1)))
+	  (file (if (match-beginning 2) (match-string 1)
+		  (save-excursion (beginning-of-line)
+				  (looking-at ada-compile-goto-error-file-linenr-re)
+				  (match-string 1))))
 	  (error-pos (point-marker))
 	  source)
       (save-excursion
@@ -1216,36 +1250,36 @@
 	ff-file-created-hook 'ada-make-body)
   (add-hook 'ff-pre-load-hook 'ada-which-function-are-we-in)
 
-  ;; Some special constructs for find-file.el.
   (make-local-variable 'ff-special-constructs)
-  (mapc (lambda (pair)
-	  (add-to-list 'ff-special-constructs pair))
-	`(
-	  ;; Go to the parent package.
-	  (,(eval-when-compile
-	      (concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+"
-		      "\\(body[ \t]+\\)?"
-		      "\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is"))
-	   . ,(lambda ()
-		(ff-get-file
-		 ada-search-directories-internal
-		 (ada-make-filename-from-adaname (match-string 3))
-		 ada-spec-suffixes)))
-	  ;; A "separate" clause.
-	  ("^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))"
-	   . ,(lambda ()
-		(ff-get-file
-		 ada-search-directories-internal
-		 (ada-make-filename-from-adaname (match-string 1))
-		 ada-spec-suffixes)))
-	  ;; A "with" clause.
-	  ("^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)"
-	   . ,(lambda ()
-		(ff-get-file
-		 ada-search-directories-internal
-		 (ada-make-filename-from-adaname (match-string 1))
-		 ada-spec-suffixes)))
-	  ))
+  (mapc (lambda (pair) (add-to-list 'ff-special-constructs pair))
+        (list
+         ;; Top level child package declaration; go to the parent package.
+         (cons (eval-when-compile
+                 (concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+"
+                         "\\(body[ \t]+\\)?"
+                         "\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is"))
+               (lambda ()
+                 (ff-get-file
+                  ada-search-directories-internal
+                  (ada-make-filename-from-adaname (match-string 3))
+                  ada-spec-suffixes)))
+
+         ;; A "separate" clause.
+         (cons "^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))"
+               (lambda ()
+                 (ff-get-file
+                  ada-search-directories-internal
+                  (ada-make-filename-from-adaname (match-string 1))
+                  ada-spec-suffixes)))
+
+         ;; A "with" clause.
+         (cons "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)"
+               (lambda ()
+                 (ff-get-file
+                  ada-search-directories-internal
+                  (ada-make-filename-from-adaname (match-string 1))
+                  ada-spec-suffixes)))
+         ))
 
   ;;  Support for outline-minor-mode
   (set (make-local-variable 'outline-regexp)
@@ -1258,59 +1292,49 @@
   ;;  Support for ispell : Check only comments
   (set (make-local-variable 'ispell-check-comments) 'exclusive)
 
-  ;;  Support for align.el <= 2.2, if present
-  ;;  align.el is distributed with Emacs 21, but not with earlier versions.
-  (if (boundp 'align-mode-alist)
-      (add-to-list 'align-mode-alist '(ada-mode . ada-align-list)))
-
-  ;;  Support for align.el >= 2.8, if present
-  (if (boundp 'align-dq-string-modes)
-      (progn
-	(add-to-list 'align-dq-string-modes 'ada-mode)
-	(add-to-list 'align-open-comment-modes 'ada-mode)
-	(set (make-local-variable 'align-region-separate)
-	     ada-align-region-separate)
-
-	;; Exclude comments alone on line from alignment.
-	(add-to-list 'align-exclude-rules-list
-		     '(ada-solo-comment
-		       (regexp  . "^\\(\\s-*\\)--")
-		       (modes   . '(ada-mode))))
-	(add-to-list 'align-exclude-rules-list
-		     '(ada-solo-use
-		       (regexp  . "^\\(\\s-*\\)\\<use\\>")
-		       (modes   . '(ada-mode))))
-
-	(setq ada-align-modes nil)
-
-	(add-to-list 'ada-align-modes
-		     '(ada-declaration-assign
-		       (regexp  . "[^:]\\(\\s-*\\):[^:]")
-		       (valid   . (lambda() (not (ada-in-comment-p))))
-		       (repeat . t)
-		       (modes   . '(ada-mode))))
-	(add-to-list 'ada-align-modes
-		     '(ada-associate
-		       (regexp  . "[^=]\\(\\s-*\\)=>")
-		       (valid   . (lambda() (not (ada-in-comment-p))))
-		       (modes   . '(ada-mode))))
-	(add-to-list 'ada-align-modes
-		     '(ada-comment
-		       (regexp  . "\\(\\s-*\\)--")
-		       (modes   . '(ada-mode))))
-	(add-to-list 'ada-align-modes
-		     '(ada-use
-		       (regexp  . "\\(\\s-*\\)\\<use\\s-")
-		       (valid   . (lambda() (not (ada-in-comment-p))))
-		       (modes   . '(ada-mode))))
-	(add-to-list 'ada-align-modes
-		     '(ada-at
-		       (regexp . "\\(\\s-+\\)at\\>")
-		       (modes . '(ada-mode))))
-
-
-	(setq align-mode-rules-list ada-align-modes)
-	))
+  ;;  Support for align
+  (add-to-list 'align-dq-string-modes 'ada-mode)
+  (add-to-list 'align-open-comment-modes 'ada-mode)
+  (set (make-local-variable 'align-region-separate) ada-align-region-separate)
+
+  ;; Exclude comments alone on line from alignment.
+  (add-to-list 'align-exclude-rules-list
+               '(ada-solo-comment
+                 (regexp  . "^\\(\\s-*\\)--")
+                 (modes   . '(ada-mode))))
+  (add-to-list 'align-exclude-rules-list
+               '(ada-solo-use
+                 (regexp  . "^\\(\\s-*\\)\\<use\\>")
+                 (modes   . '(ada-mode))))
+
+  (setq ada-align-modes nil)
+
+  (add-to-list 'ada-align-modes
+               '(ada-declaration-assign
+                 (regexp  . "[^:]\\(\\s-*\\):[^:]")
+                 (valid   . (lambda() (not (ada-in-comment-p))))
+                 (repeat . t)
+                 (modes   . '(ada-mode))))
+  (add-to-list 'ada-align-modes
+               '(ada-associate
+                 (regexp  . "[^=]\\(\\s-*\\)=>")
+                 (valid   . (lambda() (not (ada-in-comment-p))))
+                 (modes   . '(ada-mode))))
+  (add-to-list 'ada-align-modes
+               '(ada-comment
+                 (regexp  . "\\(\\s-*\\)--")
+                 (modes   . '(ada-mode))))
+  (add-to-list 'ada-align-modes
+               '(ada-use
+                 (regexp  . "\\(\\s-*\\)\\<use\\s-")
+                 (valid   . (lambda() (not (ada-in-comment-p))))
+                 (modes   . '(ada-mode))))
+  (add-to-list 'ada-align-modes
+               '(ada-at
+                 (regexp . "\\(\\s-+\\)at\\>")
+                 (modes . '(ada-mode))))
+
+  (setq align-mode-rules-list ada-align-modes)
 
   ;;  Set up the contextual menu
   (if ada-popup-key
@@ -1321,12 +1345,6 @@
   (setq local-abbrev-table ada-mode-abbrev-table)
 
   ;;  Support for which-function mode
-  ;; which-function-mode does not work with nested subprograms, since it is
-  ;; based only on the regexps generated by imenu, and thus can only detect the
-  ;; beginning of subprograms, not the end.
-  ;; Fix is: redefine a new function ada-which-function, and call it when the
-  ;; major-mode is ada-mode.
-
   (make-local-variable 'which-func-functions)
   (setq which-func-functions '(ada-which-function))
 
@@ -1379,7 +1397,9 @@
   (cond ((eq ada-language-version 'ada83)
 	 (setq ada-keywords ada-83-keywords))
 	((eq ada-language-version 'ada95)
-	 (setq ada-keywords ada-95-keywords)))
+	 (setq ada-keywords ada-95-keywords))
+	((eq ada-language-version 'ada2005)
+	 (setq ada-keywords ada-2005-keywords)))
 
   (if ada-auto-case
       (ada-activate-keys-for-case)))
@@ -3412,9 +3432,14 @@
 				       (concat "\\<"
 					       (regexp-opt
 						'("separate" "access" "array"
-						  "abstract" "new") t)
+						  "private" "abstract" "new") t)
 					       "\\>\\|("))))))))
 
+	 ((looking-at "private")
+	  (save-excursion
+	    (backward-word 1)
+	    (setq found (not (looking-at "is")))))
+
 	 (t
 	  (setq found t))
 	)))
@@ -3509,10 +3534,10 @@
     ;;
     (save-excursion
       ;;
-      ;; a named 'declare'-block ?
+      ;; a named 'declare'-block ? => jump to the label
       ;;
       (if (looking-at "\\<declare\\>")
-	  (ada-goto-stmt-start)
+	  (backward-word 1)
 	;;
 	;; no, => 'procedure'/'function'/'task'/'protected'
 	;;
@@ -3702,6 +3727,14 @@
 If GOTOTHEN is non-nil, point moves to the 'then' following 'if'."
   (let ((nest-count (if nest-level nest-level 0))
 	(found nil)
+
+	(last-was-begin '())
+	;;  List all keywords encountered while traversing
+	;;  something like '("end" "end" "begin")
+	;;  This is removed from the list when "package", "procedure",...
+	;;  are seen. The goal is to find whether a package has an elaboration
+	;;  part
+
 	(pos nil))
 
     ;; search backward for interesting keywords
@@ -3718,6 +3751,7 @@
 	  (cond
 	   ;; found block end => increase nest depth
 	   ((looking-at "end")
+	    (push nil last-was-begin)
 	    (setq nest-count (1+ nest-count)))
 
 	   ;; found loop/select/record/case/if => check if it starts or
@@ -3728,13 +3762,24 @@
 	      ;; check if keyword follows 'end'
 	      (ada-goto-previous-word)
 	      (if (looking-at "\\<end\\>[ \t]*[^;]")
-		  ;; it ends a block => increase nest depth
-		  (setq nest-count (1+ nest-count)
-			pos        (point))
+		  (progn
+		    ;; it ends a block => increase nest depth
+		    (setq nest-count (1+ nest-count)
+			  pos        (point))
+		    (push nil last-was-begin))
 
 		;; it starts a block => decrease nest depth
-		(setq nest-count (1- nest-count))))
-	    (goto-char pos))
+		(setq nest-count (1- nest-count))
+
+		;; Some nested  "begin .. end" blocks with no "declare"?
+		;;  => remove those entries
+		(while (car last-was-begin)
+		  (setq last-was-begin (cdr (cdr last-was-begin))))
+
+		(setq last-was-begin (cdr last-was-begin))
+		))
+	    (goto-char pos)
+	    )
 
 	   ;; found package start => check if it really is a block
 	   ((looking-at "package")
@@ -3758,8 +3803,12 @@
 		  ;;  or            package Foo is separate;
 		  ;;  or            package Foo is begin null; end Foo
 		  ;;                     for elaboration code (elaboration)
-		  (if (not (looking-at "\\<\\(new\\|separate\\|begin\\)\\>"))
-		      (setq nest-count (1- nest-count)))))))
+		  (if (and (not (looking-at "\\<\\(new\\|separate\\|begin\\)\\>"))
+			   (not (car last-was-begin)))
+		      (setq nest-count (1- nest-count))))))
+
+	    (setq last-was-begin (cdr last-was-begin))
+	    )
 	   ;; found task start => check if it has a body
 	   ((looking-at "task")
 	    (save-excursion
@@ -3791,10 +3840,53 @@
 		;; it (i.e do nothing if we have just "task name;")
 		(unless (progn (forward-word 1)
 			       (looking-at "[ \t]*;"))
-		  (setq nest-count (1- nest-count)))))))
+		  (setq nest-count (1- nest-count))))))
+	    (setq last-was-begin (cdr last-was-begin))
+	    )
+
+	   ((looking-at "declare")
+	    ;;  remove entry for begin and end (include nested begin..end
+	    ;;  groups)
+	    (setq last-was-begin (cdr last-was-begin))
+	    (let ((count 1))
+	      (while (and (> count 0))
+		(if (equal (car last-was-begin) t)
+		    (setq count (1+ count))
+		  (setq count (1- count)))
+		(setq last-was-begin (cdr last-was-begin))
+		)))
+
+	   ((looking-at "protected")
+	    ;; Ignore if this is just a declaration
+	    (save-excursion
+	      (let ((pos (ada-search-ignore-string-comment
+			  "\\(\\<is\\>\\|\\<renames\\>\\|;\\)" nil)))
+		(if pos
+		    (goto-char (car pos)))
+		(if (looking-at "is")
+		    ;;  remove entry for end
+		    (setq last-was-begin (cdr last-was-begin)))))
+	    (setq nest-count     (1- nest-count)))
+
+	   ((or (looking-at "procedure")
+		(looking-at "function"))
+	    ;; Ignore if this is just a declaration
+	    (save-excursion
+	      (let ((pos (ada-search-ignore-string-comment
+			  "\\(\\<is\\>\\|\\<renames\\>\\|)[ \t]*;\\)" nil)))
+		(if pos
+		    (goto-char (car pos)))
+		(if (looking-at "is")
+		    ;;  remove entry for begin and end
+		    (setq last-was-begin (cdr (cdr last-was-begin))))))
+	    )
+
 	   ;; all the other block starts
 	   (t
-	    (setq nest-count (1- nest-count)))) ; end of 'cond'
+	    (push (looking-at "begin") last-was-begin)
+	    (setq nest-count (1- nest-count)))
+
+	   )
 
 	  ;; match is found, if nest-depth is zero
 	  (setq found (zerop nest-count))))) ; end of loop
@@ -4430,7 +4522,7 @@
   (interactive)
   (end-of-line)
   (if (re-search-forward ada-procedure-start-regexp nil t)
-      (goto-char (match-beginning 2))
+      (goto-char (match-beginning 4))
     (error "No more functions/procedures/tasks")))
 
 (defun ada-previous-procedure ()
@@ -4438,7 +4530,7 @@
   (interactive)
   (beginning-of-line)
   (if (re-search-backward ada-procedure-start-regexp nil t)
-      (goto-char (match-beginning 2))
+      (goto-char (match-beginning 4))
     (error "No more functions/procedures/tasks")))
 
 (defun ada-next-package ()
@@ -4525,6 +4617,7 @@
   (define-key ada-mode-map "\C-cc"     'ada-change-prj)
   (define-key ada-mode-map "\C-cd"     'ada-set-default-project-file)
   (define-key ada-mode-map "\C-cg"     'ada-gdb-application)
+  (define-key ada-mode-map "\C-c\C-m"  'ada-set-main-compile-application)
   (define-key ada-mode-map "\C-cr"     'ada-run-application)
   (define-key ada-mode-map "\C-c\C-o"  'ada-goto-parent)
   (define-key ada-mode-map "\C-c\C-r"  'ada-find-references)
@@ -4582,8 +4675,7 @@
 	       (eq ada-which-compiler 'gnat)]
 	      ["Gdb Documentation"      (info "gdb")
 	       (eq ada-which-compiler 'gnat)]
-	      ["Ada95 Reference Manual" (info "arm95")
-	       (eq ada-which-compiler 'gnat)])
+	      ["Ada95 Reference Manual" (info "arm95") t])
 	     ("Options"  :included (eq major-mode 'ada-mode)
 	      ["Auto Casing" (setq ada-auto-case (not ada-auto-case))
 	       :style toggle :selected ada-auto-case]
@@ -4610,11 +4702,14 @@
 	      :included (fboundp 'customize-group)]
 	     ["Check file"    ada-check-current   t]
 	     ["Compile file"  ada-compile-current t]
+	     ["Set main and Build" ada-set-main-compile-application t]
+	     ["Show main" ada-show-current-main t]
 	     ["Build"         ada-compile-application t]
 	     ["Run"           ada-run-application     t]
 	     ["Debug"         ada-gdb-application (eq ada-which-compiler 'gnat)]
 	     ["------"        nil nil]
 	     ("Project"
+	      ["Show project" ada-show-current-project t]
 	      ["Load..."      ada-set-default-project-file t]
 	      ["New..."       ada-prj-new                  t]
 	      ["Edit..."      ada-prj-edit                 t])
@@ -4958,13 +5053,14 @@
 
 (defun ada-which-function-are-we-in ()
   "Return the name of the function whose definition/declaration point is in.
-Redefines the function `ff-which-function-are-we-in'."
+Used in `ff-pre-load-hook'."
   (setq ff-function-name nil)
   (save-excursion
     (end-of-line);;  make sure we get the complete name
-    (if (or (re-search-backward ada-procedure-start-regexp nil t)
-	    (re-search-backward ada-package-start-regexp nil t))
-	(setq ff-function-name (match-string 0)))
+    (or (if (re-search-backward ada-procedure-start-regexp nil t)
+            (setq ff-function-name (match-string 5)))
+        (if (re-search-backward ada-package-start-regexp nil t)
+            (setq ff-function-name (match-string 4))))
     ))
 
 
@@ -5162,11 +5258,11 @@
 	      '("abort" "abs" "abstract" "accept" "access" "aliased" "all"
 		"and" "array" "at" "begin" "case" "declare" "delay" "delta"
 		"digits" "do" "else" "elsif" "entry" "exception" "exit" "for"
-		"generic" "if" "in" "is" "limited" "loop" "mod" "not"
-		"null" "or" "others" "private" "protected" "raise"
+		"generic" "if" "in" "interface" "is" "limited" "loop" "mod" "not"
+		"null" "or" "others" "overriding" "private" "protected" "raise"
 		"range" "record" "rem" "renames" "requeue" "return" "reverse"
-		"select" "separate" "tagged" "task" "terminate" "then" "until"
-		"when" "while" "with" "xor") t)
+		"select" "separate" "synchronized" "tagged" "task" "terminate"
+                "then" "until" "when" "while" "with" "xor") t)
 	     "\\>")
      ;;
      ;; Anything following end and not already fontified is a body name.
@@ -5324,10 +5420,8 @@
 
 (defun ada-make-body ()
   "Create an Ada package body in the current buffer.
-The potential old buffer contents is deleted first, then we copy the
-spec buffer in here and modify it to make it a body.
-This function typically is to be hooked into `ff-file-created-hooks'."
-  (interactive)
+The spec must be the previously visited buffer.
+This function typically is to be hooked into `ff-file-created-hook'."
   (delete-region (point-min) (point-max))
   (insert-buffer-substring (car (cdr (buffer-list))))
   (goto-char (point-min))
@@ -5358,7 +5452,7 @@
 
 
 (defun ada-make-subprogram-body ()
-  "Make one dummy subprogram body from spec surrounding point."
+  "Create a dummy subprogram body in package body file from spec surrounding point."
   (interactive)
   (let* ((found (re-search-backward ada-procedure-start-regexp nil t))
 	 (spec  (match-beginning 0))
@@ -5417,35 +5511,34 @@
 (ada-case-read-exceptions)
 
 ;;  Setup auto-loading of the other Ada mode files.
-(if (equal ada-which-compiler 'gnat)
-    (progn
-      (autoload 'ada-change-prj                   "ada-xref" nil t)
-      (autoload 'ada-check-current                "ada-xref" nil t)
-      (autoload 'ada-compile-application          "ada-xref" nil t)
-      (autoload 'ada-compile-current              "ada-xref" nil t)
-      (autoload 'ada-complete-identifier          "ada-xref" nil t)
-      (autoload 'ada-find-file                    "ada-xref" nil t)
-      (autoload 'ada-find-any-references          "ada-xref" nil t)
-      (autoload 'ada-find-src-file-in-dir         "ada-xref" nil t)
-      (autoload 'ada-find-local-references        "ada-xref" nil t)
-      (autoload 'ada-find-references              "ada-xref" nil t)
-      (autoload 'ada-gdb-application              "ada-xref" nil t)
-      (autoload 'ada-goto-declaration             "ada-xref" nil t)
-      (autoload 'ada-goto-declaration-other-frame "ada-xref" nil t)
-      (autoload 'ada-goto-parent                  "ada-xref" nil t)
-      (autoload 'ada-make-body-gnatstub           "ada-xref" nil t)
-      (autoload 'ada-point-and-xref               "ada-xref" nil t)
-      (autoload 'ada-reread-prj-file              "ada-xref" nil t)
-      (autoload 'ada-run-application              "ada-xref" nil t)
-      (autoload 'ada-set-default-project-file     "ada-xref" nil nil)
-      (autoload 'ada-set-default-project-file     "ada-xref" nil t)
-      (autoload 'ada-xref-goto-previous-reference "ada-xref" nil t)
-
-      (autoload 'ada-customize                    "ada-prj"  nil t)
-      (autoload 'ada-prj-edit                     "ada-prj"  nil t)
-      (autoload 'ada-prj-new                      "ada-prj"  nil t)
-      (autoload 'ada-prj-save                     "ada-prj"  nil t)
-      ))
+(autoload 'ada-change-prj                   "ada-xref" nil t)
+(autoload 'ada-check-current                "ada-xref" nil t)
+(autoload 'ada-compile-application          "ada-xref" nil t)
+(autoload 'ada-compile-current              "ada-xref" nil t)
+(autoload 'ada-complete-identifier          "ada-xref" nil t)
+(autoload 'ada-find-file                    "ada-xref" nil t)
+(autoload 'ada-find-any-references          "ada-xref" nil t)
+(autoload 'ada-find-src-file-in-dir         "ada-xref" nil t)
+(autoload 'ada-find-local-references        "ada-xref" nil t)
+(autoload 'ada-find-references              "ada-xref" nil t)
+(autoload 'ada-gdb-application              "ada-xref" nil t)
+(autoload 'ada-goto-declaration             "ada-xref" nil t)
+(autoload 'ada-goto-declaration-other-frame "ada-xref" nil t)
+(autoload 'ada-goto-parent                  "ada-xref" nil t)
+(autoload 'ada-make-body-gnatstub           "ada-xref" nil t)
+(autoload 'ada-point-and-xref               "ada-xref" nil t)
+(autoload 'ada-reread-prj-file              "ada-xref" nil t)
+(autoload 'ada-run-application              "ada-xref" nil t)
+(autoload 'ada-set-default-project-file     "ada-xref" nil nil)
+(autoload 'ada-set-default-project-file     "ada-xref" nil t)
+(autoload 'ada-xref-goto-previous-reference "ada-xref" nil t)
+(autoload 'ada-set-main-compile-application "ada-xref" nil t)
+(autoload 'ada-show-current-main            "ada-xref" nil t)
+
+(autoload 'ada-customize                    "ada-prj"  nil t)
+(autoload 'ada-prj-edit                     "ada-prj"  nil t)
+(autoload 'ada-prj-new                      "ada-prj"  nil t)
+(autoload 'ada-prj-save                     "ada-prj"  nil t)
 
 (autoload 'ada-array           "ada-stmt" nil t)
 (autoload 'ada-case            "ada-stmt" nil t)
--- a/lisp/progmodes/ada-stmt.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/ada-stmt.el	Tue Nov 21 08:56:38 2006 +0000
@@ -67,7 +67,7 @@
   (save-excursion
     (let ((case-fold-search t))
       (if (re-search-backward ada-procedure-start-regexp nil t)
-	  (buffer-substring (match-beginning 3) (match-end 3))
+	  (match-string 5)
 	"NAME?"))))
 
 ;;; ---- statement skeletons ------------------------------------------
@@ -445,21 +445,21 @@
 
 
 (define-skeleton ada-or-accept
-  "Insert an or statement, prompting for the condition name."
+  "Insert an accept alternative, prompting for the condition name."
   ()
   < "or\n"
   (ada-accept))
 
 
 (define-skeleton ada-or-delay
-  "Insert a delay statement, prompting for the delay value."
+  "Insert a delay alternative, prompting for the delay value."
   "[delay value]: "
   < "or\n"
   > "delay " str ";")
 
 
 (define-skeleton ada-or-terminate
-  "Insert a terminate statement."
+  "Insert a terminate alternative."
   ()
   < "or\n"
   > "terminate;")
--- a/lisp/progmodes/ada-xref.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/ada-xref.el	Tue Nov 21 08:56:38 2006 +0000
@@ -104,6 +104,14 @@
 \"Show all references\"."
   :type 'string :group 'ada)
 
+(defcustom ada-prj-default-check-cmd
+  (concat "${cross_prefix}gnatmake -u -c -gnatc ${gnatmake_opt} ${full_current}"
+	  " -cargs ${comp_opt}")
+  "*Default command to be used to compile a single file.
+Emacs will substitute the current filename for ${full_current}, or add
+the filename at the end.  This is the same syntax as in the project file."
+  :type 'string :group 'ada)
+
 (defcustom ada-prj-default-comp-cmd
   (concat "${cross_prefix}gnatmake -u -c ${gnatmake_opt} ${full_current} -cargs"
 	  " ${comp_opt}")
@@ -171,10 +179,7 @@
 (defvar ada-last-prj-file ""
   "Name of the last project file entered by the user.")
 
-(defvar ada-check-switch "-gnats"
-  "Switch added to the command line to check the current file.")
-
-(defconst ada-project-file-extension ".adp"
+(defconst ada-prj-file-extension ".adp"
   "The extension used for project files.")
 
 (defvar ada-xref-runtime-library-specs-path '()
@@ -210,10 +215,15 @@
   "Regexp to match for operators.")
 
 (defvar ada-xref-project-files '()
-  "Associative list of project files.
-It has the following format:
-\((project_name . value) (project_name . value) ...)
-As always, the values of the project file are defined through properties.")
+  "Associative list of project files with properties.
+It has the format: (project project ...)
+A project has the format: (project-file . project-plist)
+\(See 'apropos plist' for operations on property lists).  See
+ada-xref-set-default-prj-values for the list of valid properties.  The
+current project is retrieved with ada-xref-current-project.  Properties
+are retrieved with ada-xref-get-project-field, set with
+ada-xref-set-project-field.  If project properties are accessed with no
+project file, a (nil . default-properties) entry is created.")
 
 
 ;; ----- Identlist manipulation -------------------------------------------
@@ -250,6 +260,13 @@
   "Duplicate all \\ characters in CMD so that it can be passed to `compile'."
   (mapconcat 'identity (split-string cmd "\\\\") "\\\\"))
 
+(defun ada-find-executable (exec-name)
+  "Find the full path to the executable file EXEC-NAME.
+On Windows systems, this will properly handle .exe extension as well"
+  (or (ada-find-file-in-dir exec-name exec-path)
+      (ada-find-file-in-dir (concat exec-name ".exe") exec-path)
+      exec-name))
+
 (defun ada-initialize-runtime-library (cross-prefix)
   "Initialize the variables for the runtime library location.
 CROSS-PREFIX is the prefix to use for the `gnatls' command."
@@ -264,8 +281,9 @@
 	;;  Even if we get an error, delete the *gnatls* buffer
 	(unwind-protect
 	    (progn
-	      (apply 'call-process (concat cross-prefix "gnatls")
-		     (append '(nil t nil) ada-gnatls-args))
+	      (let ((gnatls
+		     (ada-find-executable (concat cross-prefix "gnatls"))))
+		 (apply 'call-process gnatls (append '(nil t nil) ada-gnatls-args)))
 	      (goto-char (point-min))
 
 	      ;;  Source path
@@ -384,20 +402,13 @@
 				    "")
 		 'cross_prefix    ""
 		 'remote_machine  ""
-		 'comp_cmd        (list (concat ada-cd-command " ${build_dir}")
-					ada-prj-default-comp-cmd)
-		 'check_cmd       (list (concat ada-prj-default-comp-cmd " "
-						ada-check-switch))
-		 'make_cmd        (list (concat ada-cd-command " ${build_dir}")
-					ada-prj-default-make-cmd)
-		 'run_cmd         (list (concat ada-cd-command " ${build_dir}")
-					(concat "${main}"
-						(if is-windows ".exe")))
-		 'debug_pre_cmd   (list (concat ada-cd-command
-						" ${build_dir}"))
+		 'comp_cmd        (list ada-prj-default-comp-cmd)
+		 'check_cmd       (list ada-prj-default-check-cmd)
+		 'make_cmd        (list ada-prj-default-make-cmd)
+		 'run_cmd         (list (concat "./${main}" (if is-windows ".exe")))
+		 'debug_pre_cmd   (list (concat ada-cd-command " ${build_dir}"))
 		 'debug_cmd       (concat ada-prj-default-debugger
-					  (if is-windows " ${main}.exe"
-					    " ${main}"))
+					  " ${main}" (if is-windows ".exe"))
 		 'debug_post_cmd  (list nil)))
       )
     (set symbol plist)))
@@ -410,24 +421,10 @@
 `ada-xref-get-src-dir-field' or `ada-xref-get-obj-dir-field' which will in
 addition return the default paths."
 
-  (let ((file-name ada-prj-default-project-file)
-	file value)
-
-    ;;  Get the project file (either the current one, or a default one)
-    (setq file (or (assoc file-name ada-xref-project-files)
-		   (assoc nil ada-xref-project-files)))
+  (let* ((project-plist (cdr (ada-xref-current-project)))
+	 value)
 
-    ;;  If the file was not found, use the default values
-    (if file
-	;;  Get the value from the file
-	(set 'value (plist-get (cdr file) field))
-
-      ;; Create a default nil file that contains the default values
-      (ada-xref-set-default-prj-values 'value (current-buffer))
-      (add-to-list 'ada-xref-project-files (cons nil value))
-      (ada-xref-update-project-menu)
-      (set 'value (plist-get value field))
-      )
+    (set 'value (plist-get project-plist field))
 
     ;;  Substitute the ${...} constructs in all the strings, including
     ;;  inside lists
@@ -473,6 +470,15 @@
      ;; Add the standard runtime at the end
      ada-xref-runtime-library-ali-path)))
 
+(defun ada-xref-set-project-field (field value)
+  "Set FIELD to VALUE in current project.  Assumes project exists."
+  ;; same algorithm to find project-plist as ada-xref-current-project
+  (let* ((file-name (ada-xref-current-project-file))
+	 (project-plist (cdr (assoc file-name ada-xref-project-files))))
+
+    (setq project-plist (plist-put project-plist field value))
+    (setcdr (assoc file-name ada-xref-project-files) project-plist)))
+
 (defun ada-xref-update-project-menu ()
   "Update the menu Ada->Project, with the list of available project files."
   ;; Create the standard items.
@@ -494,7 +500,7 @@
 				  (ada-xref-update-project-menu))))
 		  (vector
 		   (if (string= (file-name-extension name)
-				ada-project-file-extension)
+				ada-prj-file-extension)
 		       (file-name-sans-extension
 			(file-name-nondirectory name))
 		     (file-name-nondirectory name))
@@ -560,12 +566,36 @@
 ;; ----- Utilities -------------------------------------------------
 
 (defun ada-require-project-file ()
-  "If no project file is currently active, load a default one."
-  (if (or (not ada-prj-default-project-file)
-	  (not ada-xref-project-files)
-	  (string= ada-prj-default-project-file ""))
+  "If the current project does not exist, load or create a default one.
+Should only be called from interactive functions."
+  (if (not (ada-xref-current-project t))
       (ada-reread-prj-file)))
 
+(defun ada-xref-current-project-file (&optional no-user-question)
+  "Return the current project file name; never nil unless NO-USER-QUESTION.
+If NO-USER-QUESTION, don't prompt user for file.  Call
+`ada-require-project-file' first if a project must exist."
+  (if (not (string= "" ada-prj-default-project-file))
+      ada-prj-default-project-file
+    (ada-prj-find-prj-file nil no-user-question)))
+
+(defun ada-xref-current-project (&optional no-user-question)
+  "Return the current project; nil if none.
+If NO-USER-QUESTION, don't prompt user for file.  Call
+`ada-require-project-file' first if a project must exist."
+  (let* ((file-name (ada-xref-current-project-file no-user-question)))
+    (assoc file-name ada-xref-project-files)))
+
+(defun ada-show-current-project ()
+  "Display current project file name in message buffer."
+  (interactive)
+  (message (ada-xref-current-project-file)))
+
+(defun ada-show-current-main ()
+  "Display current main unit name in message buffer."
+  (interactive)
+  (message "ada-mode main_unit: %s" (ada-xref-get-project-field 'main_unit)))
+
 (defun ada-xref-push-pos (filename position)
   "Push (FILENAME, POSITION) on the position ring for cross-references."
   (setq ada-xref-pos-ring (cons (list position filename) ada-xref-pos-ring))
@@ -603,21 +633,23 @@
 ;; ------ Handling the project file -----------------------------
 
 (defun ada-prj-find-prj-file (&optional file no-user-question)
-  "Find the prj file associated with FILE (or the current buffer if nil).
-If NO-USER-QUESTION is non-nil, use a default file if not project file was
-found, and do not ask the user.
-If the buffer is not an Ada buffer, associate it with the default project
-file.  If none is set, return nil."
+  "Find the project file associated with FILE (or the current buffer if nil).
+If the buffer is not in Ada mode, or not associated with a file,
+return `ada-prj-default-project-file'.  Otherwise, search for a file with
+the same base name as the Ada file, but extension given by
+`ada-prj-file-extension' (default .adp).  If not found, search for *.adp
+in the current directory; if several are found, and NO-USER-QUESTION
+is non-nil, prompt the user to select one.  If none are found, return
+'default.adp'."
 
   (let (selected)
 
-    ;;  Use the active project file if there is one.
-    ;;  This is also valid if we don't currently have an Ada buffer, or if
-    ;;  the current buffer is not a real file (for instance an emerge buffer)
-
     (if (or (not (string= mode-name "Ada"))
 	    (not (buffer-file-name)))
 
+	;;  Not in an Ada buffer, or current buffer not associated
+	;;  with a file (for instance an emerge buffer)
+
 	(if (and ada-prj-default-project-file
 		 (not (string= ada-prj-default-project-file "")))
 	    (setq selected ada-prj-default-project-file)
@@ -628,7 +660,7 @@
       (let* ((current-file (or file (buffer-file-name)))
 	     (first-choice (concat
 			    (file-name-sans-extension current-file)
-			    ada-project-file-extension))
+			    ada-prj-file-extension))
 	     (dir          (file-name-directory current-file))
 
 	     ;; on Emacs 20.2, directory-files does not work if
@@ -637,22 +669,21 @@
 	     (prj-files    (directory-files
 			    dir t
 			    (concat ".*" (regexp-quote
-					  ada-project-file-extension) "$")))
+					  ada-prj-file-extension) "$")))
 	     (choice       nil))
 
 	(cond
 
-	 ;;  Else if there is a project file with the same name as the Ada
-	 ;;  file, but not the same extension.
 	 ((file-exists-p first-choice)
+	  ;; filename.adp
 	  (set 'selected first-choice))
 
-	 ;;  Else if only one project file was found in the current directory
 	 ((= (length prj-files) 1)
+	  ;; Exactly one project file was found in the current directory
 	  (set 'selected (car prj-files)))
 
-	 ;;  Else if there are multiple files, ask the user
 	 ((and (> (length prj-files) 1) (not no-user-question))
+	  ;;  multiple project files in current directory, ask the user
 	  (save-window-excursion
 	    (with-output-to-temp-buffer "*choice list*"
 	      (princ "There are more than one possible project file.\n")
@@ -677,10 +708,8 @@
 			    (read-from-minibuffer "Enter No. of your choice: "))))
 	    (set 'selected (nth (1- choice) prj-files))))
 
-	 ;; Else if no project file was found in the directory, ask a name
-	 ;; to the user, using as a default value the last one entered by
-	 ;; the user
 	 ((= (length prj-files) 0)
+	  ;; No project file in the current directory; ask user
 	  (unless (or no-user-question (not ada-always-ask-project))
 	    (setq ada-last-prj-file
 		  (read-file-name
@@ -775,13 +804,11 @@
 						     (reverse check_cmd))))
 	      (if run_cmd (set 'project (plist-put project 'run_cmd
 						   (reverse run_cmd))))
-	      (set 'project (plist-put project 'debug_post_cmd
-				       (reverse debug_post_cmd)))
-	      (set 'project (plist-put project 'debug_pre_cmd
-				       (reverse debug_pre_cmd)))
+	      (if debug_post_cmd (set 'project (plist-put project 'debug_post_cmd
+                                                          (reverse debug_post_cmd))))
+	      (if debug_pre_cmd (set 'project (plist-put project 'debug_pre_cmd
+                                                         (reverse debug_pre_cmd))))
 
-	      ;; Kill the project buffer
-	      (kill-buffer nil)
 	      (set-buffer ada-buffer)
 	      )
 
@@ -1017,8 +1044,13 @@
   ;;  that file was too old or even did not exist, try to look in the whole
   ;;  object path for a possible location.
   (let ((identlist (ada-read-identifier pos)))
-    (condition-case nil
+    (condition-case err
 	(ada-find-in-ali identlist other-frame)
+      ;; File not found: print explicit error message
+      (error-file-not-found
+       (message (concat (error-message-string err)
+			(nthcdr 1 err))))
+
       (error
        (let ((ali-file (ada-get-ali-file-name (ada-file-of identlist))))
 
@@ -1112,6 +1144,24 @@
 
     (compile (ada-quote-cmd cmd))))
 
+(defun ada-set-main-compile-application ()
+  "Set main_unit and main project variables to current buffer, build main."
+  (interactive)
+  (ada-require-project-file)
+  (let* ((file (buffer-file-name (current-buffer)))
+	 main)
+    (if (not file)
+	(error "No file for current buffer")
+
+      (setq main
+	    (if file
+		(file-name-nondirectory
+		 (file-name-sans-extension file))
+	      ""))
+      (ada-xref-set-project-field 'main main)
+      (ada-xref-set-project-field 'main_unit main)
+      (ada-compile-application))))
+
 (defun ada-compile-current (&optional arg prj-field)
   "Recompile the current file.
 If ARG is not nil, ask for user confirmation of the command.
@@ -1198,9 +1248,9 @@
 EXECUTABLE-NAME, if non-nil, is debugged instead of the file specified in the
 project file."
   (interactive "P")
+  (ada-require-project-file)
   (let ((buffer (current-buffer))
 	cmd pre-cmd post-cmd)
-    (ada-require-project-file)
     (setq cmd   (if executable-name
 		    (concat ada-prj-default-debugger " " executable-name)
 		  (ada-xref-get-project-field 'debug_cmd))
@@ -1499,18 +1549,14 @@
     (let ((buffer (get-file-buffer original-file)))
       (if buffer
 	  (set-buffer buffer)
-	(find-file original-file)
-	(ada-require-project-file)))
+	(find-file original-file)))
 
     ;; we choose the first possible completion and we
     ;; return the absolute file name
     (let ((filename (ada-find-src-file-in-dir file)))
       (if filename
 	  (expand-file-name filename)
-	(error (concat
-		(file-name-nondirectory file)
-		" not found in src_dir; please check your project file")))
-
+	(signal 'error-file-not-found (file-name-nondirectory file)))
       )))
 
 (defun ada-find-file-number-in-ali (file)
@@ -1603,7 +1649,7 @@
 		(concat "^"    (ada-line-of identlist)
 			"."    (ada-column-of identlist)
 			"[ *]" (ada-name-of identlist)
-			"[{\(<= ]?\\(.*\\)$") bound t))
+			"[{\[\(<= ]?\\(.*\\)$") bound t))
 	  (if declaration-found
 	      (ada-set-on-declaration identlist t))
 	  ))
@@ -1635,7 +1681,7 @@
 		   (concat
 		    "^[0-9]+.[0-9]+[ *]"
 		    (ada-name-of identlist)
-		    "[ <{=\(]\\(.\\|\n\\.\\)*\\<"
+		    "[ <{=\(\[]\\(.\\|\n\\.\\)*\\<"
 		    (ada-line-of identlist)
 		    "[^0-9]"
 		    (ada-column-of identlist) "\\>")
@@ -1655,9 +1701,10 @@
 	    (beginning-of-line)
 	    ;; while we have a continuation line, go up one line
 	    (while (looking-at "^\\.")
-	      (previous-line 1))
+	      (previous-line 1)
+	      (beginning-of-line))
 	    (unless (looking-at (concat "[0-9]+.[0-9]+[ *]"
-					(ada-name-of identlist) "[ <{=\(]"))
+					(ada-name-of identlist) "[ <{=\(\[]"))
 	      (set 'declaration-found nil))))
 
       ;; Still no success ! The ali file must be too old, and we need to
@@ -1700,6 +1747,8 @@
 					  (ada-file-of identlist)))
 
 		;;  Else clean up the ali file
+		(error-file-not-found
+		 (signal (car err) (cdr err)))
 		(error
 		 (kill-buffer ali-buffer)
 		 (error (error-message-string err)))
@@ -1817,7 +1866,7 @@
     ;; In that case, we simply go to each one in turn.
 
     ;; Get all the possible locations
-    (string-match "^\\([0-9]+\\)[a-zA-Z+]\\([0-9]+\\)[ *]" ali-line)
+    (string-match "^\\([0-9]+\\)[a-zA-Z+*]\\([0-9]+\\)[ *]" ali-line)
     (set 'locations (list (list (match-string 1 ali-line) ;; line
 				(match-string 2 ali-line) ;; column
 				(ada-declare-file-of identlist))))
@@ -1828,7 +1877,10 @@
 	    start (match-end 3))
 
       ;;  it there was a file number in the same line
-      (if (string-match (concat "[^{(<]\\([0-9]+\\)|\\([^|bc]+\\)?"
+      ;;  Make sure we correctly handle the case where the first file reference
+      ;;  on the line is the type reference.
+      ;;    1U2 T(2|2r3) 34r23
+      (if (string-match (concat "[^{(<0-9]\\([0-9]+\\)|\\([^|bc]+\\)?"
 				(match-string 0 ali-line))
 			ali-line)
 	  (let ((file-number (match-string 1 ali-line)))
@@ -1997,7 +2049,7 @@
 				  (string-to-number (nth 2 (nth choice list)))
 				  identlist
 				  other-frame)
-	(error (concat (car (nth choice list)) " not found in src_dir")))
+	(signal 'error-file-not-found (car (nth choice list))))
       (message "This is only a (good) guess at the cross-reference.")
       ))))
 
@@ -2137,8 +2189,12 @@
     (save-excursion
       (set-buffer krunch-buf)
       ;; send adaname to external process `gnatkr'.
+      ;; Add a dummy extension, since gnatkr versions have two different
+      ;; behaviors depending on the version:
+      ;;   Up to 3.15:   "AA.BB.CC"  =>  aa-bb-cc
+      ;;   After:        "AA.BB.CC"  =>  aa-bb.cc
       (call-process "gnatkr" nil krunch-buf nil
-		    adaname ada-krunch-args)
+		    (concat adaname ".adb") ada-krunch-args)
       ;; fetch output of that process
       (setq adaname (buffer-substring
 		     (point-min)
@@ -2146,6 +2202,9 @@
 		       (goto-char (point-min))
 		       (end-of-line)
 		       (point))))
+      ;;  Remove the extra extension we added above
+      (setq adaname (substring adaname 0 -4))
+
       (kill-buffer krunch-buf)))
   adaname
   )
@@ -2153,13 +2212,14 @@
 (defun ada-make-body-gnatstub (&optional interactive)
   "Create an Ada package body in the current buffer.
 This function uses the `gnatstub' program to create the body.
-This function typically is to be hooked into `ff-file-created-hooks'."
+This function typically is to be hooked into `ff-file-created-hook'."
   (interactive "p")
+  (ada-require-project-file)
 
   (save-some-buffers nil nil)
 
   ;; If the current buffer is the body (as is the case when calling this
-  ;; function from ff-file-created-hooks), then kill this temporary buffer
+  ;; function from ff-file-created-hook), then kill this temporary buffer
   (unless interactive
     (progn
       (set-buffer-modified-p nil)
@@ -2172,11 +2232,6 @@
   (unless (buffer-file-name (car (buffer-list)))
     (set-buffer (cadr (buffer-list))))
 
-  ;;  Make sure we have a project file (for parameters to gnatstub).  Note that
-  ;;  this might have already been done if we have been called from the hook,
-  ;;  but this is not an expensive call)
-  (ada-require-project-file)
-
   ;; Call the external process gnatstub
   (let* ((gnatstub-opts (ada-treat-cmd-string ada-gnatstub-opts))
 	 (filename      (buffer-file-name (car (buffer-list))))
@@ -2219,9 +2274,10 @@
 (defun ada-xref-initialize ()
   "Function called by `ada-mode-hook' to initialize the ada-xref.el package.
 For instance, it creates the gnat-specific menus, sets some hooks for
-find-file...."
-  ;; This should really be an `add-hook'.  -stef
-  (setq ff-file-created-hook 'ada-make-body-gnatstub)
+`find-file'..."
+  (remove-hook 'ff-file-created-hook 'ada-make-body) ; from global hook
+  (remove-hook 'ff-file-created-hook 'ada-make-body t) ; from local hook
+  (add-hook 'ff-file-created-hook 'ada-make-body-gnatstub nil t)
 
   ;; Completion for file names in the mini buffer should ignore .ali files
   (add-to-list 'completion-ignored-extensions ".ali")
@@ -2234,6 +2290,14 @@
 ;;  This must be done before initializing the Ada menu.
 (add-hook 'ada-mode-hook 'ada-xref-initialize)
 
+;;  Define a new error type
+(put 'error-file-not-found
+     'error-conditions
+     '(error ada-mode-errors error-file-not-found))
+(put 'error-file-not-found
+     'error-message
+     "File not found in src-dir (check project file): ")
+
 ;;  Initializes the cross references to the runtime library
 (ada-initialize-runtime-library "")
 
--- a/lisp/progmodes/cc-align.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/cc-align.el	Tue Nov 21 08:56:38 2006 +0000
@@ -822,7 +822,7 @@
 result = prefix + \"A message \"
                   \"string.\";      <- c-lineup-string-cont
 
-Nil is returned in other situations, to allow stacking with other
+In other situations, returns nil, to allow stacking with other
 line-up functions.
 
 Works with: topmost-intro-cont, statement-cont, arglist-cont,
--- a/lisp/progmodes/cc-fonts.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/cc-fonts.el	Tue Nov 21 08:56:38 2006 +0000
@@ -897,7 +897,11 @@
 	     "[;,]\\|\\s)\\|\\'\\|\\(=\\|\\s(\\)" limit t t))
 
       (setq next-pos (match-beginning 0)
-	    id-face (if (eq (char-after next-pos) ?\()
+	    id-face (if (and (eq (char-after next-pos) ?\()
+			     (let (c-last-identifier-range)
+			       (save-excursion
+				 (goto-char next-pos)
+				 (c-at-toplevel-p))))
 			'font-lock-function-name-face
 		      'font-lock-variable-name-face)
 	    got-init (and (match-beginning 1)
@@ -1170,21 +1174,39 @@
 	      (c-fontify-recorded-types-and-refs)
 	      nil))
 
-	  ;; It was a false alarm.  Check if we're in a label instead.
+	  ;; It was a false alarm.
 	  (goto-char start-pos)
-	  (when (c-forward-label t match-pos nil)
-	    ;; Can't use `c-fontify-types-and-refs' here since we
-	    ;; should use the label face.
-	    (let (elem)
-	      (while c-record-ref-identifiers
-		(setq elem (car c-record-ref-identifiers)
-		      c-record-ref-identifiers (cdr c-record-ref-identifiers))
-		(c-put-font-lock-face (car elem) (cdr elem)
-				      c-label-face-name)))
-	    ;; `c-forward-label' probably has added a `c-decl-end'
-	    ;; marker, so return t to `c-find-decl-spots' to signal
-	    ;; that.
-	    t))))
+	  ;; The below code attempts to fontify the case constants in
+	  ;; c-label-face-name, but it cannot catch every case [sic].
+	  ;; And do we want to fontify case constants anyway?
+	  nil
+;;;	  (when (c-forward-label t match-pos nil)
+;;;	    ;; Can't use `c-fontify-types-and-refs' here since we
+;;;	    ;; should use the label face.
+;;;	    (save-excursion
+;;;	      (while c-record-ref-identifiers
+;;;		(let ((elem (car c-record-ref-identifiers))
+;;;		      c-record-type-identifiers)
+;;;		  (goto-char (cdr elem))
+;;;		  ;; Find the end of any label.
+;;;		  (while (and (re-search-forward "\\sw\\|:" nil t)
+;;;			      (progn (backward-char 1) t)
+;;;			      (or (re-search-forward
+;;;				   "\\=0[Xx][0-9A-Fa-f]+\\|\\([0-9]+\\)" nil t)
+;;;				  (c-forward-name)))
+;;;		    (c-backward-syntactic-ws)
+;;;		    (let ((end (point)))
+;;;		      ;; Now find the start of the bit we regard as the label.
+;;;		      (when (and (c-simple-skip-symbol-backward)
+;;;				 (not (c-get-char-property (point) 'face)))
+;;;			(c-put-font-lock-face (point) end c-label-face-name))
+;;;		      (goto-char end))))
+;;;		(setq c-record-ref-identifiers (cdr c-record-ref-identifiers))))
+;;;	    ;; `c-forward-label' probably has added a `c-decl-end'
+;;;	    ;; marker, so return t to `c-find-decl-spots' to signal
+;;;	    ;; that.
+;;;	    t)
+	  )))
 
       nil)))
 
--- a/lisp/progmodes/compile.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/compile.el	Tue Nov 21 08:56:38 2006 +0000
@@ -397,7 +397,7 @@
 (defvar compilation-directory-matcher
   '("\\(?:Entering\\|Leavin\\(g\\)\\) directory `\\(.+\\)'$" (2 . 1))
   "A list for tracking when directories are entered or left.
-Nil means not to track directories, e.g. if all file names are absolute.  The
+If nil, do not track directories, e.g. if all file names are absolute.  The
 first element is the REGEXP matching these messages.  It can match any number
 of variants, e.g. different languages.  The remaining elements are all of the
 form (DIR .  LEAVE).  If for any one of these the DIR'th subexpression
@@ -1069,7 +1069,8 @@
 	      ;; Set the EMACS variable, but
 	      ;; don't override users' setting of $EMACS.
 	      (unless (getenv "EMACS")
-		(list (concat "EMACS=" invocation-directory invocation-name)))
+		(list "EMACS=t"))
+	      (list "INSIDE_EMACS=t")
 	      (copy-sequence process-environment))))
 	(set (make-local-variable 'compilation-arguments)
 	     (list command mode name-function highlight-regexp))
--- a/lisp/progmodes/cperl-mode.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/cperl-mode.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1783,6 +1783,7 @@
          (if (fboundp 'compilation-build-compilation-error-regexp-alist)
              (let ((f 'compilation-build-compilation-error-regexp-alist))
                (funcall f))
+           (make-local-variable 'compilation-error-regexp-alist)
            (push 'cperl compilation-error-regexp-alist)))
 	((boundp 'compilation-error-regexp-alist);; xmeacs 19.x
 	 (make-local-variable 'compilation-error-regexp-alist)
--- a/lisp/progmodes/ebnf2ps.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/ebnf2ps.el	Tue Nov 21 08:56:38 2006 +0000
@@ -275,7 +275,7 @@
 ;;    ;; 8-bit accentuated characters) except `"', as `"' is used to delimit a
 ;;    ;; terminal.  Also, accepts escaped characters, that is, a character
 ;;    ;; pair starting with `\' followed by a printable character, for
-;;    ;; example: \", \\. 
+;;    ;; example: \", \\.
 ;;
 ;;    special = "[^?\\000-\\010\\012-\\037\\177-\\237]*".
 ;;    ;; that is, a valid special accepts any printable character (including
@@ -800,7 +800,7 @@
 ;; `ebnf-reset-style'	Reset current style.
 ;;
 ;; `ebnf-push-style'	Push the current style and set STYLE as the current
-;;			style. 
+;;			style.
 ;;
 ;; `ebnf-pop-style'	Pop a style and set it as the current style.
 ;;
@@ -1968,7 +1968,7 @@
 
 
 (defcustom ebnf-stop-on-error nil
-  "*Non-nil means signal error and stop. Nil means signal error and continue."
+  "*Non-nil means signal error and stop.  Otherwise, signal error and continue."
   :type 'boolean
   :version "20"
   :group 'ebnf2ps)
--- a/lisp/progmodes/f90.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/f90.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1470,6 +1470,7 @@
   (interactive "*r")
   (let ((end-region-mark (copy-marker end-region))
         (save-point (point-marker))
+        (case-fold-search t)
 	block-list ind-lev ind-curr ind-b cont struct beg-struct end-struct)
     (goto-char beg-region)
     ;; First find a line which is not a continuation line or comment.
--- a/lisp/progmodes/gdb-ui.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/gdb-ui.el	Tue Nov 21 08:56:38 2006 +0000
@@ -312,11 +312,11 @@
   :version "22.1")
 
 (defcustom gdb-many-windows nil
-  "Nil means just pop up the GUD buffer unless `gdb-show-main' is t.
-In this case it starts with two windows: one displaying the GUD
+  "If nil just pop up the GUD buffer unless `gdb-show-main' is t.
+In this case start with two windows: one displaying the GUD
 buffer and the other with the source file with the main routine
-of the debugged program.  Non-nil means display the layout shown for
-`gdba'."
+of the debugged program.  Non-nil means display the layout shown
+for `gdba'."
   :type 'boolean
   :group 'gud
   :version "22.1")
--- a/lisp/progmodes/glasses.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/glasses.el	Tue Nov 21 08:56:38 2006 +0000
@@ -110,6 +110,13 @@
   :group 'glasses
   :type 'boolean)
 
+(defcustom glasses-separate-parentheses-exceptions
+  '("^#[\t ]*define[\t ]*[A-Za-z0-9_-]* ?($")
+  "List of regexp that are exceptions for `glasses-separate-parentheses-p'.
+They are matched to the current line truncated to the point where the
+parenthesis expression starts."
+  :group 'glasses
+  :type '(repeat regexp))
 
 (defcustom glasses-uncapitalize-p nil
   "If non-nil, downcase embedded capital letters in identifiers.
@@ -153,6 +160,14 @@
 
 ;;; Utility functions
 
+(defun glasses-parenthesis-exception-p (beg end)
+  "Tell if (BEG, END) is an exception to `glasses-separate-parentheses-p'.
+See `glasses-separate-parentheses-exceptions'."
+  (save-match-data
+    (let ((str (buffer-substring beg end)))
+      (catch 'match
+	(dolist (re glasses-separate-parentheses-exceptions)
+	  (and (string-match re str) (throw 'match t)))))))
 
 (defun glasses-set-overlay-properties ()
   "Set properties of glasses overlays.
@@ -232,8 +247,9 @@
 	(when glasses-separate-parentheses-p
 	  (goto-char beg)
 	  (while (re-search-forward "[a-zA-Z]_*\\(\(\\)" end t)
-	    (glasses-make-overlay (match-beginning 1) (match-end 1)
-				  'glasses-parenthesis)))))))
+	    (unless (glasses-parenthesis-exception-p (point-at-bol) (match-end 1))
+	      (glasses-make-overlay (match-beginning 1) (match-end 1)
+				    'glasses-parenthesis))))))))
 
 
 (defun glasses-make-unreadable (beg end)
@@ -247,30 +263,31 @@
   "Convert current buffer to unreadable identifiers and return nil.
 This function modifies buffer contents, it removes all the separators,
 recognized according to the current value of the variable `glasses-separator'."
-  (when (and glasses-convert-on-write-p
-	     (not (string= glasses-separator "")))
+  (when glasses-convert-on-write-p
     (let ((case-fold-search nil)
 	  (separator (regexp-quote glasses-separator)))
       (save-excursion
-	(goto-char (point-min))
-	(while (re-search-forward
-		(format "[a-z]\\(%s\\)[A-Z]\\|[A-Z]\\(%s\\)[A-Z][a-z]"
-			separator separator)
-		nil t)
-	  (let ((n (if (match-string 1) 1 2)))
-	    (replace-match "" t nil nil n)
-	    (goto-char (match-end n))))
-	(unless (string= glasses-separator glasses-original-separator)
+	(unless (string= glasses-separator "")
 	  (goto-char (point-min))
-	  (while (re-search-forward (format "[a-zA-Z0-9]\\(%s+\\)[a-zA-Z0-9]"
-					    separator)
-				    nil t)
-	    (replace-match glasses-original-separator nil nil nil 1)
-	    (goto-char (match-beginning 1))))
+	  (while (re-search-forward
+		  (format "[a-z]\\(%s\\)[A-Z]\\|[A-Z]\\(%s\\)[A-Z][a-z]"
+			  separator separator)
+		  nil t)
+	    (let ((n (if (match-string 1) 1 2)))
+	      (replace-match "" t nil nil n)
+	      (goto-char (match-end n))))
+	  (unless (string= glasses-separator glasses-original-separator)
+	    (goto-char (point-min))
+	    (while (re-search-forward (format "[a-zA-Z0-9]\\(%s+\\)[a-zA-Z0-9]"
+					      separator)
+				      nil t)
+	      (replace-match glasses-original-separator nil nil nil 1)
+	      (goto-char (match-beginning 1)))))
 	(when glasses-separate-parentheses-p
 	  (goto-char (point-min))
 	  (while (re-search-forward "[a-zA-Z]_*\\( \\)\(" nil t)
-	    (replace-match "" t nil nil 1))))))
+	    (unless (glasses-parenthesis-exception-p (point-at-bol) (1+ (match-end 1)))
+	      (replace-match "" t nil nil 1)))))))
   ;; nil must be returned to allow use in write file hooks
   nil)
 
--- a/lisp/progmodes/idlw-help.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/idlw-help.el	Tue Nov 21 08:56:38 2006 +0000
@@ -6,7 +6,7 @@
 ;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
 ;;          Carsten Dominik <dominik@science.uva.nl>
 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
-;; Version: 6.0_em22
+;; Version: 6.1_em22
 
 ;; This file is part of GNU Emacs.
 
@@ -307,10 +307,12 @@
 			   (> (length idlwave-html-help-location) 0)
 			   idlwave-html-help-location)
 		      (getenv "IDLWAVE_HELP_LOCATION"))))
-    (if (file-directory-p syshelp-dir) 
+    (if (and syshelp-dir (file-directory-p syshelp-dir))
 	syshelp-dir
-      (setq help-dir (expand-file-name "idl_html_help" help-dir))
-      (if (file-directory-p help-dir) help-dir))))
+      (if help-dir 
+	  (progn
+	    (setq help-dir (expand-file-name "idl_html_help" help-dir))
+	    (if (file-directory-p help-dir) help-dir))))))
       
 (defvar idlwave-help-assistant-available nil) 
 
@@ -319,6 +321,7 @@
   (let ((sys-dir (idlwave-sys-dir))
 	(help-loc (idlwave-html-help-location)))
     (if (or (not (file-directory-p sys-dir))
+	    (not help-loc)
 	    (not (file-directory-p help-loc)))
 	(message
 	 "HTML help location not found: try setting `idlwave-system-directory' and/or `idlwave-html-help-location'."))
@@ -1239,8 +1242,8 @@
 (defun idlwave-help-assistant-command ()
   (expand-file-name idlwave-help-assistant-command (idlwave-sys-dir)))
 
-(defun idlwave-help-assistant-start (&optional link)
-  "Start the IDL Assistant, loading LINK, if passed."
+(defun idlwave-help-assistant-start (&optional full-link)
+  "Start the IDL Assistant, loading link FULL-LINK, if passed."
   (when (or (not idlwave-help-assistant-socket)
 	    (not (eq (process-status idlwave-help-assistant-socket) 'open)))
     (let* ((help-loc (idlwave-html-help-location))
@@ -1249,8 +1252,7 @@
 	    (nconc
 	     (if (memq system-type '(ms-dos windows-nt))
 		 `("-profile" ,(expand-file-name "idl.adp" help-loc)))
-	     (if link 
-		 `("-file" ,(expand-file-name link help-loc)))))
+	     (if full-link `("-file" ,full-link))))
 	   port)
       (if idlwave-help-assistant-socket 
 	  (delete-process idlwave-help-assistant-socket))
@@ -1271,8 +1273,10 @@
 	      (open-network-stream "IDL_ASSISTANT_SOCK" 
 				   nil "localhost" port))
 	(if (eq (process-status idlwave-help-assistant-socket) 'open)
-	    (process-send-string  idlwave-help-assistant-socket
-				  (concat "setHelpPath " help-loc "\n"))
+	    (progn
+	      (process-send-string  idlwave-help-assistant-socket
+				    (concat "setHelpPath " help-loc "\n"))
+	      t)
 	  (idlwave-help-assistant-close)
 	  (error "Cannot communicate with IDL_ASSISTANT"))))))
 
@@ -1282,17 +1286,57 @@
 
 (defun idlwave-help-assistant-open-link (&optional link)
   ;; Open a link (file name with anchor, no leading path) in the assistant.
-  (if link 
-      (let ((file (expand-file-name link (idlwave-html-help-location))))
-	(idlwave-help-assistant-start link)
-	(process-send-string idlwave-help-assistant-socket
-			     (concat "openLink " file "\n"))
-	(string-match "\.html" link)
-	(process-send-string idlwave-help-assistant-socket
-			     (concat "searchIndexNoOpen " 
-				     (substring link 0 (match-beginning 0))
-				     "\n")))
-    (idlwave-help-assistant-raise)))
+  (let ((help-loc (idlwave-html-help-location))
+	topic anchor file just-started exists full-link)
+    
+    (if (string-match "\.html" link)
+	(setq topic (substring link 0 (match-beginning 0))
+	      anchor (substring link (match-end 0)))
+      (error "Malformed help link."))
+    
+    (setq file (expand-file-name (concat topic ".html") help-loc))
+    (if (file-exists-p file)
+	(setq exists t)
+      (setq file (expand-file-name 
+		  (concat (upcase topic) ".html") help-loc))
+      (setq exists (file-exists-p file)))
+    
+    (setq full-link    (concat file anchor)
+	  just-started (idlwave-help-assistant-start (if exists full-link)))
+    (if exists
+	(progn
+	  (if (not just-started)
+	      (process-send-string idlwave-help-assistant-socket
+				   (concat "openLink " full-link "\n")))
+	  (process-send-string idlwave-help-assistant-socket
+			       (concat "searchIndexNoOpen " topic "\n")))
+      (process-send-string idlwave-help-assistant-socket
+			   (concat "searchIndexAndOpen " topic "\n"))))
+  (idlwave-help-assistant-raise))
+
+(defvar idlwave-help-assistant-help-with-topic-history nil
+  "The history of help topics selected with the minibuffer.")
+
+(defun idlwave-help-assistant-help-with-topic (&optional topic)
+  "Prompt for and provide help with TOPIC."
+  (interactive)
+  (let (list)
+    (unless topic
+      (idlwave-routines)
+      (setq list (append (mapcar (lambda (x)
+				   (concat (nth 2 x) (car x)))
+				 idlwave-system-routines)
+			 (mapcar (lambda (x)
+				   (concat "." (car x)))
+				 idlwave-executive-commands-alist)
+			 idlwave-system-class-info))
+      (setq topic 
+	    (idlwave-completing-read 
+	     "Help Topic: " list
+	     nil nil nil
+	     'idlwave-help-assistant-help-with-topic-history)))
+    (if (and topic (not (string= topic "")))
+	(idlwave-help-assistant-open-link (concat topic ".html")))))
   
 (defun idlwave-help-assistant-close ()
   (when (and idlwave-help-assistant-process
--- a/lisp/progmodes/idlw-shell.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/idlw-shell.el	Tue Nov 21 08:56:38 2006 +0000
@@ -6,7 +6,7 @@
 ;;          Carsten Dominik <dominik@astro.uva.nl>
 ;;          Chris Chase <chase@att.com>
 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
-;; Version: 6.0_em22
+;; Version: 6.1_em22
 ;; Keywords: processes
 
 ;; This file is part of GNU Emacs.
@@ -31,7 +31,7 @@
 ;; This mode is for IDL version 5 or later.  It should work on
 ;; Emacs>20.3 or XEmacs>20.4.
 ;;
-;; Runs IDL as an inferior process of Emacs, much like the emacs
+;; Runs IDL as an inferior process of Emacs, much like the Emacs
 ;; `shell' or `telnet' commands.  Provides command history and
 ;; searching.  Provides debugging commands available in buffers
 ;; visiting IDL procedure files, e.g., breakpoint setting, stepping,
@@ -252,7 +252,7 @@
   :group 'idlwave-shell-general-setup
   :type 'boolean)
 
-(defcustom idlwave-shell-file-name-chars "~/A-Za-z0-9+:_.$#%={}\\-"
+(defcustom idlwave-shell-file-name-chars "~/A-Za-z0-9+:_.$#%={}\\- "
   "The characters allowed in file names, as a string.
 Used for file name completion. Must not contain `'', `,' and `\"'
 because these are used as separators by IDL."
@@ -1573,7 +1573,8 @@
 		      (re-search-backward idlwave-shell-prompt-pattern nil t)
 		      (goto-char (match-end 0))
 		      (setq idlwave-shell-command-output
-		      (buffer-substring-no-properties (point-min) (point)))
+			    (buffer-substring-no-properties 
+			     (point-min) (point)))
 		      (delete-region (point-min) (point)))
 		  (setq idlwave-shell-command-output
 			(with-current-buffer (process-buffer proc)
@@ -2101,7 +2102,7 @@
 Change the default directory for the process buffer to concur."
   (save-excursion
     (set-buffer (idlwave-shell-buffer))
-    (if (string-match ",___cur[\n\r]\\(\\S-*\\) *[\n\r]"
+    (if (string-match ",___cur[\n\r ]+\\([^\n\r]+\\)[\n\r]"
 		      idlwave-shell-command-output)
 	(let ((dir (substring idlwave-shell-command-output 
 			      (match-beginning 1) (match-end 1))))
@@ -4099,13 +4100,15 @@
 
 ;(define-key idlwave-shell-mode-map "\M-?" 'comint-dynamic-list-completions)
 ;(define-key idlwave-shell-mode-map "\t" 'comint-dynamic-complete)
+(define-key idlwave-shell-mode-map "\C-w"     'comint-kill-region)
 (define-key idlwave-shell-mode-map "\t"       'idlwave-shell-complete)
 (define-key idlwave-shell-mode-map "\M-\t"    'idlwave-shell-complete)
 (define-key idlwave-shell-mode-map "\C-c\C-s" 'idlwave-shell)
 (define-key idlwave-shell-mode-map "\C-c?"    'idlwave-routine-info)
 (define-key idlwave-shell-mode-map "\C-g"     'idlwave-keyboard-quit)
 (define-key idlwave-shell-mode-map "\M-?"     'idlwave-context-help)
-(define-key idlwave-shell-mode-map [(control meta ?\?)] 'idlwave-online-help)
+(define-key idlwave-shell-mode-map [(control meta ?\?)] 
+  'idlwave-help-assistant-help-with-topic)
 (define-key idlwave-shell-mode-map "\C-c\C-i" 'idlwave-update-routine-info)
 (define-key idlwave-shell-mode-map "\C-c\C-y" 'idlwave-shell-char-mode-loop)
 (define-key idlwave-shell-mode-map "\C-c\C-x" 'idlwave-shell-send-char)
--- a/lisp/progmodes/idlw-toolbar.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/idlw-toolbar.el	Tue Nov 21 08:56:38 2006 +0000
@@ -4,7 +4,7 @@
 
 ;; Author: Carsten Dominik <dominik@astro.uva.nl>
 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
-;; Version: 6.0_em22
+;; Version: 6.1_em22
 ;; Keywords: processes
 
 ;; This file is part of GNU Emacs.
--- a/lisp/progmodes/idlwave.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/idlwave.el	Tue Nov 21 08:56:38 2006 +0000
@@ -6,7 +6,7 @@
 ;;          Carsten Dominik <dominik@science.uva.nl>
 ;;          Chris Chase <chase@att.com>
 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
-;; Version: 6.0_em22
+;; Version: 6.1_em22
 ;; Keywords: languages
 
 ;; This file is part of GNU Emacs.
@@ -1393,7 +1393,7 @@
   "Character which is inserted as a last character on previous line by
    \\[idlwave-split-line] to begin a continuation line.  Normally $.")
 
-(defconst idlwave-mode-version "6.0_em22")
+(defconst idlwave-mode-version "6.1_em22")
 
 (defmacro idlwave-keyword-abbrev (&rest args)
   "Creates a function for abbrev hooks to call `idlwave-check-abbrev' with args."
@@ -1595,7 +1595,8 @@
 (define-key idlwave-mode-map "\C-c\C-t"   'idlwave-find-module-this-file)
 (define-key idlwave-mode-map "\C-c?"      'idlwave-routine-info)
 (define-key idlwave-mode-map "\M-?"       'idlwave-context-help)
-(define-key idlwave-mode-map [(control meta ?\?)] 'idlwave-online-help)
+(define-key idlwave-mode-map [(control meta ?\?)] 
+  'idlwave-help-assistant-help-with-topic)
 ;; Pickup both forms of Esc/Meta binding
 (define-key idlwave-mode-map [(meta tab)] 'idlwave-complete)
 (define-key idlwave-mode-map [?\e?\t] 'idlwave-complete)
@@ -1779,7 +1780,7 @@
 
 ;;;###autoload
 (defun idlwave-mode ()
-  "Major mode for editing IDL source files (version 6.0_em22).
+  "Major mode for editing IDL source files (version 6.1_em22).
 
 The main features of this mode are
 
@@ -1940,11 +1941,15 @@
   (set (make-local-variable 'paragraph-ignore-fill-prefix) nil)
   (set (make-local-variable 'parse-sexp-ignore-comments) t)
 
+  ;; ChangeLog
+  (set (make-local-variable 'add-log-current-defun-function) 
+       'idlwave-current-routine-fullname)
+
   ;; Set tag table list to use IDLTAGS as file name.
   (if (boundp 'tag-table-alist)
       (add-to-list 'tag-table-alist '("\\.pro$" . "IDLTAGS")))
 
-  ;; Font-lock additions - originally Phil Williams, then Ulrik Dickow
+  ;; Font-lock additions
   ;; Following line is for Emacs - XEmacs uses the corresponding property
   ;; on the `idlwave-mode' symbol.
   (set (make-local-variable 'font-lock-defaults) idlwave-font-lock-defaults)
@@ -1969,7 +1974,6 @@
 		     ";"
 		     'idlwave-forward-block nil))
 
-
   ;; Make a local post-command-hook and add our hook to it
   ;; NB: `make-local-hook' needed for older/alternative Emacs compatibility
   ;; (make-local-hook 'post-command-hook)
@@ -1980,7 +1984,7 @@
   ;; (make-local-hook 'kill-buffer-hook)
   (add-hook 'kill-buffer-hook 'idlwave-kill-buffer-update nil 'local)
   ;; (make-local-hook 'after-save-hook)
-  ;; (add-hook 'after-save-hook 'idlwave-save-buffer-update nil 'local)
+  (add-hook 'after-save-hook 'idlwave-save-buffer-update nil 'local)
   (add-hook 'after-save-hook 'idlwave-revoke-license-to-kill nil 'local)
 
   ;; Setup directories and file, if necessary
@@ -2522,6 +2526,10 @@
 	  (message "Could not find doc library header start.")
 	  (goto-char here)))))
 
+(defun idlwave-current-routine-fullname ()
+  (let ((name (idlwave-current-routine)))
+    (idlwave-make-full-name (nth 2 name) (car name))))
+
 (defun idlwave-current-routine ()
   "Return (NAME TYPE CLASS) of current routine."
   (idlwave-routines)
@@ -3651,6 +3659,7 @@
 	  (run-hooks 'idlwave-timestamp-hook))
       (error "No valid DOCLIB header"))))
 
+
 ;;; CJC 3/16/93
 ;;; Interface to expand-region-abbrevs which did not work when the
 ;;; abbrev hook associated with an abbrev moves point backwards
@@ -4892,19 +4901,14 @@
 	 (elem-cnt 0)
 	 props rinfo msg-cnt elem type nelem class-result alias
 	 routines routine-aliases statement-aliases sysvar-aliases
-	 buf version-string)
+	 version-string)
     (if (not (file-exists-p catalog-file))
 	(error "No such XML routine info file: %s" catalog-file)
       (if (not (file-readable-p catalog-file))
 	  (error "Cannot read XML routine info file: %s" catalog-file)))
     (require 'xml)
     (message "Reading XML routine info...")
-    (unwind-protect
-	(progn
-	  ;; avoid warnings about read-only files
-	  (setq buf (find-file-noselect catalog-file 'nowarn))
-	  (setq rinfo (xml-parse-file catalog-file)))
-      (if (bufferp buf) (kill-buffer buf)))
+    (setq rinfo (xml-parse-file catalog-file))
     (message "Reading XML routine info...done")
     (setq rinfo (assq 'CATALOG rinfo))
     (unless rinfo (error "Failed to parse XML routine info"))
@@ -7713,7 +7717,7 @@
      ((eq mode 'set)
       (if entry
 	  (setq link
-		(if (setq target (cdr (assoc word tags)))
+		(if (setq target (cdr (assoc-string word tags t)))
 		  (idlwave-substitute-link-target main target)
 		main)))) ;; setting dynamic!!!
      (t (error "This should not happen")))))
@@ -7762,8 +7766,7 @@
 (defun idlwave-class-or-superclass-with-tag (class tag)
   "Find and return the CLASS or one of its superclass with the
 associated TAG, if any."
-  (let ((sclasses (cons class (cdr (assq 'all-inherits
-					 (idlwave-class-info class)))))
+  (let ((sclasses (cons class (idlwave-all-class-inherits class)))
 	cl)
    (catch 'exit
      (while sclasses
@@ -9231,6 +9234,8 @@
      "--"
      ["Info" idlwave-info t]
      "--"
+     ["Help with Topic" idlwave-help-assistant-help-with-topic 
+      idlwave-help-use-assistant]
      ["Launch IDL Help" idlwave-launch-idlhelp t])))
 
 (defvar idlwave-mode-debug-menu-def
--- a/lisp/progmodes/python.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/python.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1194,6 +1194,15 @@
     ;; (define-key map "\C-c\C-f" 'python-describe-symbol)
     map))
 
+(defvar inferior-python-mode-syntax-table
+  (let ((st (make-syntax-table python-mode-syntax-table)))
+    ;; Don't get confused by apostrophes in the process's output (e.g. if
+    ;; you execute "help(os)").
+    (modify-syntax-entry ?\' "." st)
+    ;; Maybe we should do the same for double quotes?
+    ;; (modify-syntax-entry ?\" "." st)
+    st))
+
 ;; Fixme: This should inherit some stuff from `python-mode', but I'm
 ;; not sure how much: at least some keybindings, like C-c C-f;
 ;; syntax?; font-locking, e.g. for triple-quoted strings?
@@ -1216,7 +1225,6 @@
 
 \\{inferior-python-mode-map}"
   :group 'python
-  (set-syntax-table python-mode-syntax-table)
   (setq mode-line-process '(":%s"))
   (set (make-local-variable 'comint-input-filter) 'python-input-filter)
   (add-hook 'comint-preoutput-filter-functions #'python-preoutput-filter
--- a/lisp/progmodes/vhdl-mode.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/progmodes/vhdl-mode.el	Tue Nov 21 08:56:38 2006 +0000
@@ -1023,13 +1023,13 @@
 
 (defcustom vhdl-reset-active-high nil
   "*Non-nil means reset in sequential processes is active high.
-Nil means active low."
+Otherwise, reset is active low."
   :type 'boolean
   :group 'vhdl-sequential-process)
 
 (defcustom vhdl-clock-rising-edge t
   "*Non-nil means rising edge of clock triggers sequential processes.
-Nil means falling edge."
+Otherwise, falling edge triggers."
   :type 'boolean
   :group 'vhdl-sequential-process)
 
--- a/lisp/server.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/server.el	Tue Nov 21 08:56:38 2006 +0000
@@ -112,6 +112,12 @@
   :version "22.1")
 (put 'server-auth-dir 'risky-local-variable t)
 
+(defcustom server-raise-frame t
+  "*If non-nil, raise frame when switching to a buffer."
+  :group 'server
+  :type 'boolean
+  :version "22.1")
+
 (defcustom server-visit-hook nil
   "*Hook run when visiting a file for the Emacs server."
   :group 'server
@@ -505,7 +511,9 @@
 	;; If there is an existing buffer modified or the file is
 	;; modified, revert it.  If there is an existing buffer with
 	;; deleted file, offer to write it.
-	(let* ((filen (car file))
+	(let* ((minibuffer-auto-raise (or server-raise-frame
+                                          minibuffer-auto-raise))
+	       (filen (car file))
 	       (obuf (get-file-buffer filen)))
 	  (add-to-history 'file-name-history filen)
 	  (if (and obuf (set-buffer obuf))
@@ -702,11 +710,9 @@
 	(let ((win (get-buffer-window next-buffer 0)))
 	  (if (and win (not server-window))
 	      ;; The buffer is already displayed: just reuse the window.
-	      (let ((frame (window-frame win)))
-		(when (eq (frame-visible-p frame) 'icon)
-		  (raise-frame frame))
-		(select-window win)
-		(set-buffer next-buffer))
+              (progn
+                (select-window win)
+                (set-buffer next-buffer))
 	    ;; Otherwise, let's find an appropriate window.
 	    (cond ((and (windowp server-window)
 			(window-live-p server-window))
@@ -730,7 +736,9 @@
 		(switch-to-buffer next-buffer)
 	      ;; After all the above, we might still have ended up with
 	      ;; a minibuffer/dedicated-window (if there's no other).
-	      (error (pop-to-buffer next-buffer)))))))))
+	      (error (pop-to-buffer next-buffer)))))))
+    (when server-raise-frame
+      (select-frame-set-input-focus (window-frame (selected-window))))))
 
 (define-key ctl-x-map "#" 'server-edit)
 
--- a/lisp/ses.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/ses.el	Tue Nov 21 08:56:38 2006 +0000
@@ -297,7 +297,7 @@
 (defvar ses-call-printer-return nil
   "Set to t if last cell printer invoked by `ses-call-printer' requested
 left-justification of the result.  Set to error-signal if ses-call-printer
-encountered an error during printing.  Nil otherwise.")
+encountered an error during printing.  Otherwise nil.")
 
 (defvar ses-start-time nil
   "Time when current operation started.  Used by `ses-time-check' to decide
--- a/lisp/subr.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/subr.el	Tue Nov 21 08:56:38 2006 +0000
@@ -877,7 +877,7 @@
 
 (defsubst posn-image (position)
   "Return the image object of POSITION.
-Value is an list (image ...), or nil if not an image.
+Value is a list (image ...), or nil if not an image.
 POSITION should be a list of the form returned by the `event-start'
 and `event-end' functions."
   (nth 7 position))
@@ -1960,8 +1960,10 @@
   "Clear BEG and END of overlays whose property NAME has value VAL.
 Overlays might be moved and/or split.
 BEG and END default respectively to the beginning and end of buffer."
+  ;; This speeds up the loops over overlays.
   (unless beg (setq beg (point-min)))
   (unless end (setq end (point-max)))
+  (overlay-recenter end)
   (if (< end beg)
       (setq beg (prog1 end (setq end beg))))
   (save-excursion
--- a/lisp/term/x-win.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/term/x-win.el	Tue Nov 21 08:56:38 2006 +0000
@@ -2139,6 +2139,8 @@
 (defvar x-last-selected-text-cut-encoded nil
   "The value of the X cut buffer last time we selected or pasted text.
 This is the actual text stored in the X cut buffer.")
+(defvar x-last-cut-buffer-coding 'iso-latin-1
+  "The coding we last used to encode/decode the text from the X cut buffer")
 
 (defvar x-cut-buffer-max 20000 ; Note this value is overridden below.
   "Max number of characters to put in the cut buffer.
@@ -2164,9 +2166,10 @@
 	       x-last-selected-text-cut-encoded ""))
 	(t
 	 (setq x-last-selected-text-cut text
+	       x-last-cut-buffer-coding 'iso-latin-1
 	       x-last-selected-text-cut-encoded
-	       (encode-coding-string text (or locale-coding-system
-					      'iso-latin-1)))
+	       ;; ICCCM says cut buffer always contain ISO-Latin-1
+	       (encode-coding-string text 'iso-latin-1))
 	 (x-set-cut-buffer x-last-selected-text-cut-encoded push)))
   (x-set-selection 'PRIMARY text)
   (setq x-last-selected-text-primary text)
@@ -2332,23 +2335,28 @@
     ;; from what we remebered them to be last time we did a
     ;; cut/paste operation.
     (setq cut-text
-	  (cond;; check cut buffer
-	   ((or (not cut-text) (string= cut-text ""))
-	    (setq x-last-selected-text-cut nil))
-	   ;; This short cut doesn't work because x-get-cut-buffer
-	   ;; always returns a newly created string.
-	   ;; ((eq      cut-text x-last-selected-text-cut) nil)
-	   ((string= cut-text x-last-selected-text-cut-encoded)
-	    ;; See the comment above.  No need of this recording.
-	    ;; Record the newer string,
-	    ;; so subsequent calls can use the `eq' test.
-	    ;; (setq x-last-selected-text-cut cut-text)
-	    nil)
-	   (t
-	    (setq x-last-selected-text-cut-encoded cut-text
+	  (let ((next-coding (or next-selection-coding-system 'iso-latin-1)))
+	    (cond;; check cut buffer
+	     ((or (not cut-text) (string= cut-text ""))
+	      (setq x-last-selected-text-cut nil))
+	     ;; This short cut doesn't work because x-get-cut-buffer 	 
+	     ;; always returns a newly created string. 	 
+	     ;; ((eq      cut-text x-last-selected-text-cut) nil) 	 
+	     ((and (string= cut-text x-last-selected-text-cut-encoded)
+		   (eq x-last-cut-buffer-coding next-coding))
+	      ;; See the comment above.  No need of this recording. 	 
+	      ;; Record the newer string, 	 
+	      ;; so subsequent calls can use the `eq' test. 	 
+	      ;; (setq x-last-selected-text-cut cut-text) 	 
+	      nil)
+	     (t
+	      (setq x-last-selected-text-cut-encoded cut-text
+		  x-last-cut-buffer-coding next-coding
 		  x-last-selected-text-cut
-		  (decode-coding-string cut-text (or locale-coding-system
-						     'iso-latin-1))))))
+		  ;; ICCCM says cut buffer always contain ISO-Latin-1, but
+		  ;; use next-selection-coding-system if not nil.
+		  (decode-coding-string 
+		   cut-text next-coding))))))
 
     ;; As we have done one selection, clear this now.
     (setq next-selection-coding-system nil)
--- a/lisp/term/xterm.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/term/xterm.el	Tue Nov 21 08:56:38 2006 +0000
@@ -44,7 +44,7 @@
     ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-.  The
     ;; code here subsitutes the corresponding defintions in
     ;; function-key-map. This substitution is needed because if a key
-    ;; definition if found in function-key-map, there are no further
+    ;; definition is found in function-key-map, there are no further
     ;; lookups in other keymaps.
     (substitute-key-definition [f13] [S-f1] function-key-map)
     (substitute-key-definition [f14] [S-f2] function-key-map)
@@ -117,6 +117,10 @@
       (define-key map "\eO2Q" [S-f2])
       (define-key map "\eO2R" [S-f3])
       (define-key map "\eO2S" [S-f4])
+      (define-key map "\e[1;2P" [S-f1])
+      (define-key map "\e[1;2Q" [S-f2])
+      (define-key map "\e[1;2R" [S-f3])
+      (define-key map "\e[1;2S" [S-f4])
       (define-key map "\e[15;2~" [S-f5])
       (define-key map "\e[17;2~" [S-f6])
       (define-key map "\e[18;2~" [S-f7])
--- a/lisp/textmodes/flyspell.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/textmodes/flyspell.el	Tue Nov 21 08:56:38 2006 +0000
@@ -412,7 +412,7 @@
     (define-key map flyspell-auto-correct-binding 'flyspell-auto-correct-previous-word)
     (define-key map [(control ?\,)] 'flyspell-goto-next-error)
     (define-key map [(control ?\.)] 'flyspell-auto-correct-word)
-    (define-key map [(meta ?\^m)] 'flyspell-correct-word-before-point)
+    (define-key map [?\C-c ?$] 'flyspell-correct-word-before-point)
     map)
   "Minor mode keymap for Flyspell mode--for the whole buffer.")
 
--- a/lisp/textmodes/org.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/textmodes/org.el	Tue Nov 21 08:56:38 2006 +0000
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.44
+;; Version: 4.56
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -45,40 +45,11 @@
 ;; iCalendar file.  It can also serve as a publishing tool for a set of
 ;; linked webpages.
 ;;
-;;
-;; Installation
-;; ------------
-;; If Org-mode is part of the Emacs distribution or an XEmacs package, you
-;; only need to copy the following lines to your .emacs file.  The last two
-;; lines define *global* keys for the commands `org-store-link' and
-;; `org-agenda' - please choose suitable keys yourself.
-;;
-;;    (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
-;;    (define-key global-map "\C-cl" 'org-store-link)
-;;    (define-key global-map "\C-ca" 'org-agenda)
-;;
-;; Furthermore you need to activate font-lock-mode in org-mode buffers.
-;; either of the following two lins will do the trick:
+;; Installation and Activation
+;; ---------------------------
+;; See the corresponding sections in the manual at
 ;;
-;;    (global-font-lock-mode 1)                     ; for all buffers
-;;    (add-hook 'org-mode-hook 'turn-on-font-lock)  ; org-mode buffers only
-;;
-;; If you have downloaded Org-mode from the Web, you have to take additional
-;; action:  Byte-compile org.el and org-publish.el and put them together with
-;; org-install.el on your load path.  Then also add to your .emacs file:
-;;
-;;    (require 'org-install)
-;;
-;;
-;; Activation
-;; ----------
-;; The setup above will put all files with extension ".org" into Org-mode.
-;; As an alternative, make the first line of a file look like this:
-;;
-;;     MY PROJECTS    -*- mode: org; -*-
-;;
-;; which will select Org-mode for this buffer no matter what the file's
-;; name is.
+;;   http://staff.science.uva.nl/~dominik/Tools/org/org.html#Installation
 ;;
 ;; Documentation
 ;; -------------
@@ -90,113 +61,41 @@
 ;;
 ;; Recent changes
 ;; --------------
-;; Version 4.44
-;;    - Clock table can be done for a limited time interval.
-;;    - Obsolete support for the old outline mode has been removed.
-;;    - Bug fixes and code cleaning.
-;;
-;; Version 4.43
-;;    - Bug fixes
-;;    - `s' key in the agenda saves all org-mode buffers.
-;;
-;; Version 4.41
-;;    - Shift-curser keys can modify inactive time stamps (inactive time
-;;      stamps are the ones in [...] brackets.
-;;    - Toggle all checkboxes in a region/below a headline.
-;;    - Bug fixes.
-;;
-;; Version 4.40
+;; Version 4.56
+;;    - `C-k' in agenda kills current line and corresponding subtree in file.
+;;    - XEmacs compatibility issues fixed, in particular tag alignment.
+;;    - M-left/right now in/outdents plain list items, no Shift needed.
 ;;    - Bug fixes.
 ;;
-;; Version 4.39
-;;    - Special tag ARCHIVE keeps a subtree closed and away from agenda lists.
-;;    - LaTeX code in Org-mode files can be converted to images for HTML.
-;;    - Bug fixes.
-;;    - CDLaTeX-mode features can be used in Org-mode to help inserting
-;;      LaTeX environment and math.
-;;
-;; Version 4.38
-;;    - noutline.el is now required (important for XEmacs users only).
-;;    - Dynamic blocks.
-;;    - Archiving of all level 1 trees without open TODO items.
-;;    - Clock reports can be inserted into the file in a special section.
-;;    - FAQ removed from the manual, now only on the web.
+;; Version 4.55
 ;;    - Bug fixes.
 ;;
-;; Version 4.37
-;;    - Clock-feature for measuring time spent on specific items.
-;;    - Improved emphasizing allows configuration and stacking.
-;;
-;; Version 4.36
-;;    - Improved indentation of ASCII export, when headlines become items.
-;;    - Handling of 12am and 12pm fixed.  Times beyond 24:00 can be used
-;;      and will not lead to conflicts.
-;;    - Support for mutually exclusive TAGS with the fast tags interface.
+;; Version 4.54
+;;    - Improvements to fast tag selection
+;;      + show status also in target line.
+;;      + option to auto-exit after first change to tags list (see manual).
+;;    - Tags sparse trees now also respect the settings in
+;;      `org-show-hierarchy-above' and `org-show-following-heading'.
 ;;    - Bug fixes.
 ;;
-;; Version 4.35
-;;    - HTML export is now valid XHTML.
-;;    - Timeline can also show dates without entries.  See new option
-;;      `org-timeline-show-empty-dates'.
-;;    - The bullets created by the ASCII exporter can now be configured.
-;;      See the new option `org-export-ascii-bullets'.
-;;    - New face `org-upcoming-deadline' (was `org-scheduled-previously').
-;;    - New function `org-context' to allow testing for local context.
-;;
-;; Version 4.34
-;;    - Bug fixes.
-;;
-;; Version 4.33
-;;    - New commands to move through plain lists: S-up and S-down.
-;;    - Bug fixes and documentation update.
-;;
-;; Version 4.32
-;;    - Fast (single-key-per-tag) interface for setting TAGS.
-;;    - The list of legal tags can be configured globally and locally.
-;;    - Elisp and Info links (thanks to Todd Neal).
-;;    - `org-export-publishing-directory' can be an alist, with different
-;;      directories for different export types.
-;;    - All context-sensitive commands use `call-interactively' to dispatch.
-;;    - `org-confirm-shell-links' renamed to `org-confirm-shell-link-function'.
-;;    - Bug fixes.
-;;
-;; Version 4.31
+;; Version 4.53
+;;    - Custom time formats can be overlayed over time stamps.
+;;    - New option `org-agenda-todo-ignore-deadlines'.
+;;    - Work-around for flyspell bug (CVS Emacs has this fixed in flyspell.el).
+;;    - Work-around for session.el problem with circular data structures.
 ;;    - Bug fixes.
 ;;
-;; Version 4.30
-;;    - Modified installation: Autoloads have been collected in org-install.el.
-;;    - Logging (org-log-done) is now a #+STARTUP option.
-;;    - Checkboxes in plain list items, following up on Frank Ruell's idea.
-;;    - File links inserted with C-c C-l will use relative paths if the linked
-;;      file is in the current directory or a subdirectory of it.
-;;    - New variable `org-link-file-path-type' to specify preference for
-;;      relative and absolute paths.
-;;    - New CSS classes for tags, timestamps, timestamp keywords.
-;;    - Bug and typo fixes.
-;;
-;; Version 4.29
-;;    - Inlining images in HTML export now depends on wheather the link
-;;      contains a description or not.
-;;    - TODO items can be scheduled from the global TODO list using C-c C-s.
-;;    - TODO items already scheduled can be made to disappear from the global
-;;      todo list, see `org-agenda-todo-ignore-scheduled'.
-;;    - In Tables, formulas may also be Lisp forms.
-;;    - Exporting the visible part of an outline with `C-c C-x v' works now
-;;      for all available exporters.
-;;    - Bug fixes, lots of them :-(
-;;
-;; Version 4.28
+;; Version 4.52
+;;    - TAG matches can also specify conditions on TODO keywords.
+;;    - The fast tag interface allows setting tags that are not in the
+;;      predefined list.
 ;;    - Bug fixes.
 ;;
-;; Version 4.27
-;;    - HTML exporter generalized to receive external options.
-;;      As part of the process, author, email and date have been moved to the
-;;      end of the HTML file.
-;;    - Support for customizable file search in file links.
-;;    - BibTeX database links as first application of the above.
-;;    - New option `org-agenda-todo-list-sublevels' to turn off listing TODO
-;;      entries that are sublevels of another TODO entry.
-;;
+;; Version 4.51
+;;    - Link abbreviations (manual section 4.5).
+;;    - More control over how agenda is displayed.  See the new variables
+;;      `org-agenda-window-setup', `org-agenda-restore-windows-after-quit'.
+;;    - Bug fixes.
 ;;
 ;;; Code:
 
@@ -214,7 +113,7 @@
 
 ;;; Customization variables
 
-(defvar org-version "4.44"
+(defvar org-version "4.56"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
@@ -472,6 +371,16 @@
   :group 'org-edit-structure
   :type 'boolean)
 
+(defcustom org-blank-before-new-entry '((heading . nil)
+					(plain-list-item . nil))
+  "Should `org-insert-heading' leave a blank line before new heading/item?
+The value is an alist, with `heading' and `plain-list-item' as car,
+and a boolean flag as cdr."
+  :group 'org-edit-structure
+  :type '(list
+	  (cons (const heading) (boolean))
+	  (cons (const plain-list-item) (boolean))))
+
 (defcustom org-insert-heading-hook nil
   "Hook being run after inserting a new heading."
   :group 'org-edit-structure
@@ -497,21 +406,71 @@
   :group 'org-sparse-trees
   :type 'boolean)
 
-(defcustom org-show-hierarchy-above t
-  "Non-nil means, show full hierarchy when showing a spot in the tree.
-Turning this off makes sparse trees more compact, but also less clear."
+(defcustom org-remove-highlights-with-change t
+  "Non-nil means, any change to the buffer will remove temporary highlights.
+Such highlights are created by `org-occur' and `org-clock-display'.
+When nil, `C-c C-c needs to be used to get rid of the highlights.
+The highlights created by `org-preview-latex-fragment' always need
+`C-c C-c' to be removed."
   :group 'org-sparse-trees
-  :type 'boolean)
-
-(defcustom org-show-following-heading t
+  :group 'org-time
+  :type 'boolean)
+
+(defcustom org-show-hierarchy-above '((default . t))
+  "Non-nil means, show full hierarchy when showing a spot in the tree.
+Turning this off makes sparse trees more compact, but also less clear.
+Instead of t, this can also be an alist specifying this option for different
+contexts.  Valid contexts are
+  agenda         when exposing an entry from the agenda
+  org-goto       when using the command `org-goto' on key C-c C-j
+  occur-tree     when using the command `org-occur' on key C-c /
+  tags-tree      when constructing a sparse tree based on tags matches
+  link-search    when exposing search matches associated with a link
+  mark-goto      when exposing the jump goal of a mark
+  bookmark-jump  when exposing a bookmark location
+  default        default for all contexts not set explicitly"
+  :group 'org-sparse-trees
+  :type '(choice
+	  (const :tag "Always" t)
+	  (const :tag "Never" nil)
+	  (repeat :greedy t :tag "Individual contexts"
+		  (cons
+		   (choice :tag "Context"
+		    (const agenda)
+		    (const org-goto)
+		    (const occur-tree)
+		    (const tags-tree)
+		    (const link-search)
+		    (const mark-goto)
+		    (const bookmark-jump)
+		    (const default))
+		   (boolean)))))
+
+(defcustom org-show-following-heading '((default . t))
   "Non-nil means, show heading following match in `org-occur'.
 When doing an `org-occur' it is useful to show the headline which
 follows the match, even if they do not match the regexp.  This makes it
 easier to edit directly inside the sparse tree.  However, if you use
 `org-occur' mainly as an overview, the following headlines are
-unnecessary clutter."
+unnecessary clutter.
+Instead of t, this can also be an alist specifying this option for different
+contexts.  See `org-show-hierarchy-above' for valid contexts."
   :group 'org-sparse-trees
-  :type 'boolean)
+  :type '(choice
+	  (const :tag "Always" t)
+	  (const :tag "Never" nil)
+	  (repeat :greedy t :tag "Individual contexts"
+		  (cons
+		   (choice :tag "Context"
+		    (const agenda)
+		    (const org-goto)
+		    (const occur-tree)
+		    (const tags-tree)
+		    (const link-search)
+		    (const mark-goto)
+		    (const bookmark-jump)
+		    (const default))
+		   (boolean)))))
 
 (defcustom org-occur-hook '(org-first-headline-recenter)
   "Hook that is run after `org-occur' has constructed a sparse tree.
@@ -535,7 +494,6 @@
   :group 'org-plain-lists
   :type 'boolean)
 
-
 (defcustom org-plain-list-ordered-item-terminator t
   "The character that makes a line with leading number an ordered list item.
 Valid values are ?. and ?\).  To get both terminators, use t.  While
@@ -555,6 +513,14 @@
   :group 'org-plain-lists
   :type 'boolean)
 
+(defcustom org-provide-checkbox-statistics t
+  "Non-nil means, update checkbox statistics after insert and toggle.
+When this is set, checkbox statistics is updated each time you either insert
+a new checkbox with \\[org-insert-todo-heading] or toggle a checkbox
+with \\[org-ctrl-c-ctrl-c\\]."
+  :group 'org
+  :type 'boolean)
+
 (defgroup org-archive nil
   "Options concerning archiving in Org-mode."
   :tag "Org Archive"
@@ -652,8 +618,8 @@
 
 When equal to the symbol `optimized', the table editor will be optimized to
 do the following:
-- Use automatic overwrite mode in front of whitespace in table fields.
-  This make the structure of the table stay in tact as long as the edited
+- Automatic overwrite mode in front of whitespace in table fields.
+  This makes the structure of the table stay in tact as long as the edited
   field does not exceed the column width.
 - Minimize the number of realigns.  Normally, the table is aligned each time
   TAB or RET are pressed to move to another field.  With optimization this
@@ -701,7 +667,8 @@
   :group 'org-table-settings
    :type 'string)
 
-(defcustom org-table-number-regexp "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$"
+(defcustom org-table-number-regexp
+  "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$"
   "Regular expression for recognizing numbers in table columns.
 If a table column contains mostly numbers, it will be aligned to the
 right.  If not, it will be aligned to the left.
@@ -725,8 +692,8 @@
 		 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$")
 	  (const :tag "Exponential, Floating point, Integer"
 		 "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$")
-	  (const :tag "Very General Number-Like"
-		 "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$")
+	  (const :tag "Very General Number-Like, including hex"
+		 "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$")
 	  (string :tag "Regexp:")))
 
 (defcustom org-table-number-fraction 0.5
@@ -857,6 +824,26 @@
   :tag "Org Link"
   :group 'org)
 
+(defvar org-link-abbrev-alist-local nil
+  "buffer-local version of `org-link-abbrev-alist', which see.
+The value of this is taken from the #+LINK lines.")
+(make-variable-buffer-local 'org-link-abbrev-alist-local)
+
+(defcustom org-link-abbrev-alist nil
+  "Alist of link abbreviations.
+The car of each element is a string, to be replaced at the start of a link.
+The cdrs are replacement values, like (\"linkkey\" . REPLACE).  Abbreviated
+links in Org-mode buffers can have an optional tag after a double colon, e.g.
+
+     [[linkkey::tag][description]]
+
+If REPLACE is a string, the tag will simply be appended to create the link.
+If the string contains \"%s\", the tag will be inserted there.  REPLACE may
+also be a function that will be called with the tag as the only argument to
+create the link.  See the manual for examples."
+  :group 'org-link
+  :type 'alist)
+
 (defcustom org-descriptive-links t
   "Non-nil means, hide link part and only show description of bracket links.
 Bracket links are like [[link][descritpion]]. This variable sets the initial
@@ -1042,12 +1029,37 @@
 		 (const find-file-other-window)
 		 (const find-file-other-frame)))))
 
+(defcustom org-display-internal-link-with-indirect-buffer nil
+  "Non-nil means, use indirect buffer to display infile links.
+Activating internal links (from one location in a file to another location
+in the same file) normally just jumps to the location.  When the link is
+activated with a C-u prefix (or with mouse-3), the link is displayed in
+another window.  When this option is set, the other window actually displays
+an indirect buffer clone of the current buffer, to avoid any visibility
+changes to the current buffer."
+  :group 'org-link-follow
+  :type 'boolean)
+
+
 (defcustom org-open-non-existing-files nil
   "Non-nil means, `org-open-file' will open non-existing file.
 When nil, an error will be generated."
   :group 'org-link-follow
   :type 'boolean)
 
+(defcustom org-link-mailto-program '(browse-url "mailto:%a?subject=%s")
+  "Function and arguments to call for following mailto links.
+This is a list with the first element being a lisp function, and the
+remaining elements being arguments to the function.  In string arguments,
+%a will be replaced by the address, and %s will be replaced by the subject
+if one was given like in <mailto:arthur@galaxy.org::this subject>."
+  :group 'org-link-follow
+  :type '(choice
+	  (const :tag "browse-url" (browse-url-mail "mailto:%a?subject=%s"))
+	  (const :tag "compose-mail" (compose-mail "%a" "%s"))
+	  (const :tag "message-mail" (message-mail "%a" "%s"))
+	  (cons :tag "other" (function) (repeat :tag "argument" sexp))))
+
 (defcustom org-confirm-shell-link-function 'yes-or-no-p
   "Non-nil means, ask for confirmation before executing shell links.
 Shell links can be dangerous, just thing about a link
@@ -1067,7 +1079,7 @@
 
 (defcustom org-confirm-elisp-link-function 'yes-or-no-p
   "Non-nil means, ask for confirmation before executing elisp links.
-Elisp links can be dangerous, just thing about a link
+Elisp links can be dangerous, just think about a link
 
      [[elisp:(shell-command \"rm -rf ~/*\")][Google Search]]
 
@@ -1090,7 +1102,7 @@
 
 (defconst org-file-apps-defaults-macosx
   '((remote . emacs)
-    (t        . "open %s")
+    (t . "open %s")
     ("ps"     . "gv %s")
     ("ps.gz"  . "gv %s")
     ("eps"    . "gv %s")
@@ -1272,13 +1284,41 @@
   "When set, insert a (non-active) time stamp when TODO entry is marked DONE.
 When the state of an entry is changed from nothing to TODO, remove a previous
 closing date.
-This can also be configured on a per-file basis by adding one of
+
+This can also be a list of symbols indicating under which conditions
+the time stamp recording the action should be annotated with a short note.
+Valid members of this list are
+
+  done       Offer to record a note when marking entries done
+  clock-out  Offer to record a note when clocking out of an item.
+
+A separate window will then pop up and allow you to type a note.
+After finishing with C-c C-c, the note will be added directly after the
+timestamp, as a plain list item.  See also the variable
+`org-log-note-headings'.
+
+Logging can also be configured on a per-file basis by adding one of
 the following lines anywhere in the buffer:
 
    #+STARTUP: logging
    #+STARTUP: nologging"
+;; FIXME: in-buffer words for notes???????
   :group 'org-todo
-  :type 'boolean)
+  :type '(choice
+	  (const :tag "off" nil)
+	  (const :tag "on" t)
+	  (set :tag "on, with notes" :greedy t :value (done)
+	       (const done) (const clock-out))))
+
+(defcustom org-log-note-headings '((done . "CLOSING NOTE") (clock-out . ""))
+  "Headings for notes added when clocking out or closing TODO items.
+The value is an alist, with the car being a sympol indicating the note
+context, and the cdr is the heading to be used.  The heading may also be the
+empty string."
+  :group  'org-todo
+  :type '(list :greedy t
+	  (cons (const :tag "Heading when closing an item" done) string)
+	  (cons (const :tag "Heading when clocking out" clock-out) string)))
 
 (defgroup org-priorities nil
   "Priorities in Org-mode."
@@ -1322,9 +1362,27 @@
   :group 'org-time
   :type 'integer)
 
+(defcustom org-display-custom-times nil
+  "Non-nil means, overlay custom formats over all time stamps.
+The formats are defined through the variable `org-time-stamp-custom-formats'.
+To turn this on on a per-file basis, insert anywhere in the file:
+   #+STARTUP: customtime"
+  :group 'org-time
+  :set 'set-default
+  :type 'sexp)
+(make-variable-buffer-local 'org-display-custom-times)
+
+(defcustom org-time-stamp-custom-formats
+  '("<%m/%d/%y %a>" . "<%m/%d/%y %a %H:%M>") ; american
+  "Custom formats for time stamps.  See `format-time-string' for the syntax.
+These are overlayed over the default ISO format if the variable
+`org-display-custom-times' is set."
+  :group 'org-time
+  :type 'sexp)
+
 (defcustom org-deadline-warning-days 30
   "No. of days before expiration during which a deadline becomes active.
-This variable governs the display in the org file."
+This variable governs the display in sparse trees and in the agenda."
   :group 'org-time
   :type 'number)
 
@@ -1378,6 +1436,13 @@
 	  (const :tag "Never" nil)
 	  (const :tag "When selection characters are configured" 'auto)))
 
+(defcustom org-fast-tag-selection-single-key nil
+  "Non-nil means, fast tag selection exits after first change.
+When nil, you have to press RET to exit it.
+During fast tag selection, you can toggle this flag with `C-c'."
+  :group 'org-tags
+  :type 'boolean)
+
 (defcustom org-tags-column 48
   "The column to which tags should be indented in a headline.
 If this number is positive, it specifies the column.  If it is negative,
@@ -1454,34 +1519,94 @@
 	  (repeat :tag "List of files" file)
 	  (file :tag "Store list in a file\n" :value "~/.agenda_files")))
 
-(defcustom org-agenda-custom-commands '(("w" todo "WAITING"))
+(defcustom org-agenda-custom-commands ;'(("w" todo "WAITING"))
+'(("w" todo "WAITING" ((aaa 1) (bbb 2))))
   "Custom commands for the agenda.
 These commands will be offered on the splash screen displayed by the
-agenda dispatcher \\[org-agenda].  Each entry is a list of 3 items:
-
-key    The key (a single char as a string) to be associated with the command.
-type   The command type, any of the following symbols:
-        todo        Entries with a specific TODO keyword, in all agenda files.
-        tags        Tags match in all agenda files.
-        tags-todo   Tags match in all agenda files, TODO entries only.
-        todo-tree   Sparse tree of specific TODO keyword in *current* file.
-        tags-tree   Sparse tree with all tags matches in *current* file.
-        occur-tree  Occur sparse tree for current file.
-match  What to search for:
-        - a single keyword for TODO keyword searches
-        - a tags match expression for tags searches
-        - a regular expression for occur searches"
+agenda dispatcher \\[org-agenda].  Each entry is a list like this:
+
+   (key type match options)
+
+key     The key (a single char as a string) to be associated with the command.
+type    The command type, any of the following symbols:
+         todo        Entries with a specific TODO keyword, in all agenda files.
+         tags        Tags match in all agenda files.
+         tags-todo   Tags match in all agenda files, TODO entries only.
+         todo-tree   Sparse tree of specific TODO keyword in *current* file.
+         tags-tree   Sparse tree with all tags matches in *current* file.
+         occur-tree  Occur sparse tree for *current* file.
+match   What to search for:
+         - a single keyword for TODO keyword searches
+         - a tags match expression for tags searches
+         - a regular expression for occur searches
+options  A list of option setttings, similar to that in a let form, so like
+         this: ((opt1 val1) (opt2 val2) ...)
+
+You can also define a set of commands, to create a composite agenda buffer.
+In this case, an entry looks like this:
+
+  (key desc (cmd1 cmd2 ...) general-options)
+
+where
+
+desc   A description string to be displayed in the dispatcher menu.
+cmd    An agenda command, similar to the above.  However, tree commands
+       are no allowed, but instead you can get agenda and global todo list.
+       So valid commands for a set are:
+       (agenda)
+       (alltodo)
+       (todo \"match\" options)
+       (tags \"match\" options )
+       (tags-todo \"match\" options)
+
+Each command can carry a list of options, and another set of options can be
+given for the whole set of commands.  Individual command options take
+precedence over the general options."
   :group 'org-agenda
   :type '(repeat
-	  (list (string :tag "Key")
-		(choice :tag "Type"
-			(const :tag "Tags search in all agenda files" tags)
-			(const :tag "Tags search of TODO entries, all agenda files" tags-todo)
-			(const :tag "TODO keyword search in all agenda files" todo)
-			(const :tag "Tags sparse tree in current buffer" tags-tree)
-			(const :tag "TODO keyword tree in current buffer" todo-tree)
-			(const :tag "Occur tree in current buffer" occur-tree))
-		(string :tag "Match"))))
+	  (choice
+	   (list :tag "Single command"
+		 (string :tag "Key")
+		 (choice
+		  (const :tag "Tags search (all agenda files)" tags)
+		  (const :tag "Tags search of TODO entries (all agenda files)" tags-todo)
+		  (const :tag "TODO keyword search (all agenda files)" todo)
+		  (const :tag "Tags sparse tree (current buffer)" tags-tree)
+		  (const :tag "TODO keyword tree (current buffer)" todo-tree)
+		  (const :tag "Occur tree (current buffer)" occur-tree))
+		 (string :tag "Match")
+		 (repeat :tag "Local options"
+			 (list (variable :tag "Option") (sexp :tag "Value"))))
+	   (list :tag "Command series, all agenda files"
+		 (string :tag "Key")
+		 (string :tag "Description")
+		 (repeat
+		  (choice
+		   (const :tag "Agenda" (agenda))
+		   (const :tag "TODO list" (alltodo))
+		   (list :tag "Tags search"
+			 (const :format "" tags)
+			 (string :tag "Match")
+			 (repeat :tag "Local options"
+				 (list (variable :tag "Option")
+				       (sexp :tag "Value"))))
+
+		   (list :tag "Tags search, TODO entries only"
+			 (const :format "" tags-todo)
+			 (string :tag "Match")
+			 (repeat :tag "Local options"
+				 (list (variable :tag "Option")
+				       (sexp :tag "Value"))))
+
+		   (list :tag "TODO keyword search"
+			 (const :format "" todo)
+			 (string :tag "Match")
+			 (repeat :tag "Local options"
+				 (list (variable :tag "Option")
+				       (sexp :tag "Value"))))))
+		 (repeat :tag "General options"
+			 (list (variable :tag "Option")
+			       (sexp :tag "Value")))))))
 
 (defcustom org-agenda-todo-list-sublevels t
   "Non-nil means, check also the sublevels of a TODO entry for TODO entries.
@@ -1499,11 +1624,41 @@
   :group 'org-todo
   :type 'boolean)
 
+(defcustom org-agenda-todo-ignore-deadlines nil
+  "Non-nil means, don't show near deadline entries in the global todo list.
+Near means closer than `org-deadline-warning-days' days.
+The idea behind this is that such items will appear in the agenda anyway."
+  :group 'org-agenda
+  :group 'org-todo
+  :type 'boolean)
+
+
+(defcustom org-timeline-show-empty-dates 3
+  "Non-nil means, `org-timeline' also shows dates without an entry.
+When nil, only the days which actually have entries are shown.
+When t, all days between the first and the last date are shown.
+When an integer, show also empty dates, but if there is a gap of more than
+N days, just insert a special line indicating the size of the gap."
+  :group 'org-agenda
+  :type '(choice
+	  (const :tag "None" nil)
+	  (const :tag "All" t)
+	  (number :tag "at most")))
+
+(defcustom org-agenda-confirm-kill 1
+  "When set, remote killing from the agenda buffer needs confirmation.
+When t, a confirmation is always needed.  When a number N, confirmation is
+only needed when the text to be killed contains more than N non-white lines."
+  :group 'org-agenda ;; FIXME
+  :type '(choice
+	  (const :tag "Never" nil)
+	  (const :tag "Always" t)
+	  (number :tag "When more than N lines")))
+
+;; FIXME: This variable could be removed
 (defcustom org-agenda-include-all-todo nil
-  "Non-nil means, the agenda will always contain all TODO entries.
-When nil, date-less entries will only be shown if `org-agenda' is called
-with a prefix argument.
-When non-nil, the TODO entries will be listed at the top of the agenda, before
+  "Set  means weekly/daily agenda will always contain all TODO entries.
+The TODO entries will be listed at the top of the agenda, before
 the entries for specific days."
   :group 'org-agenda
   :type 'boolean)
@@ -1526,6 +1681,54 @@
   :tag "Org Agenda Window Setup"
   :group 'org-agenda)
 
+(defcustom org-agenda-window-setup 'reorganize-frame
+  "How the agenda buffer should be displayed.
+Possible values for this option are:
+
+current-window    Show agenda in the current window, keeping all other windows.
+other-frame       Use `switch-to-buffer-other-frame' to display agenda.
+other-window      Use `switch-to-buffer-other-window' to display agenda.
+reorganize-frame  Show only two windows on the current frame, the current
+                  window and the agenda.  Also, if the option
+                  `org-fit-agenda-window' is set, resize the agenda window to
+                  try to show as much as possible of the buffer content.
+See also the variable `org-agenda-restore-windows-after-quit'."
+  :group 'org-agenda-setup
+  :type '(choice
+	  (const current-window)
+	  (const other-frame)
+	  (const other-window)
+	  (const reorganize-frame)))
+
+(defcustom org-agenda-restore-windows-after-quit nil
+  "Non-nil means, restore window configuration open exiting agenda.
+Before the window configuration is changed for displaying the agenda,
+the current status is recorded.  When the agenda is exited with
+`q' or `x' and this option is set, the old state is restored.  If
+`org-agenda-window-setup' is `other-frame', the value of this
+option will be ignored.."
+  :group 'org-agenda-setup
+  :type 'boolean)
+
+;; FIXME: I think this variable could be removed.
+(defcustom org-select-agenda-window t
+  "Non-nil means, after creating an agenda, move cursor into Agenda window.
+When nil, cursor will remain in the current window."
+  :group 'org-agenda-setup
+  :type 'boolean)
+
+;; FIXME: I think this variable could be removed.
+(defcustom org-fit-agenda-window t
+  "Non-nil means, change window size of agenda to fit content.
+This is only effective if `org-agenda-window-setup' is `reorganize-frame'."
+  :group 'org-agenda-setup
+  :type 'boolean)
+
+(defcustom org-finalize-agenda-hook nil
+  "Hook run just before displaying an agenda buffer."
+  :group 'org-agenda-setup
+  :type 'hook)
+
 (defcustom org-agenda-mouse-1-follows-link nil
   "Non-nil means, mouse-1 on a link will follow the link in the agenda.
 A longer mouse click will still set point.  Does not wortk on XEmacs.
@@ -1538,17 +1741,6 @@
   :group 'org-agenda-setup
   :type 'boolean)
 
-(defcustom org-select-agenda-window t
-  "Non-nil means, after creating an agenda, move cursor into Agenda window.
-When nil, cursor will remain in the current window."
-  :group 'org-agenda-setup
-  :type 'boolean)
-
-(defcustom org-fit-agenda-window t
-  "Non-nil means, change window size of agenda to fit content."
-  :group 'org-agenda-setup
-  :type 'boolean)
-
 (defgroup org-agenda-display nil
   "Options concerning what to display initially in Agenda."
   :tag "Org Agenda Display"
@@ -1596,7 +1788,7 @@
  daily         if the agenda shows a single day
  weekly        if the agenda shows an entire week
  today         show grid on current date, independent of daily/weekly display
- require-timed show grid only if at least on item has a time specification
+ require-timed show grid only if at least one item has a time specification
 
 The second item is a string which will be places behing the grid time.
 
@@ -1616,8 +1808,18 @@
     (string :tag "Grid String")
     (repeat :tag "Grid Times" (integer :tag "Time"))))
 
-(defcustom org-agenda-sorting-strategy '(time-up category-keep priority-down)
-  "Sorting structure for the agenda items of a single day.
+(let ((sorting-choice
+       '(choice
+	 (const time-up) (const time-down)
+	 (const category-keep) (const category-up) (const category-down)
+	 (const tag-down) (const tag-up)
+	 (const priority-up) (const priority-down))))
+
+  (defcustom org-agenda-sorting-strategy
+    '((agenda time-up category-keep priority-down)
+      (todo category-keep priority-down)
+      (tags category-keep))
+    "Sorting structure for the agenda items of a single day.
 This is a list of symbols which will be used in sequence to determine
 if an entry should be listed before another entry.  The following
 symbols are recognized:
@@ -1628,6 +1830,8 @@
 		sequence in `org-agenda-files'.
 category-up     Sort alphabetically by category, A-Z.
 category-down   Sort alphabetically by category, Z-A.
+tag-up          Sort alphabetically by last tag, A-Z.
+tag-down        Sort alphabetically by last tag, Z-A.
 priority-up     Sort numerically by priority, high priority last.
 priority-down   Sort numerically by priority, high priority first.
 
@@ -1644,15 +1848,15 @@
 Leaving out `category-keep' would mean that items will be sorted across
 categories by priority."
   :group 'org-agenda-display
-  :type '(repeat
-	  (choice
-	   (const time-up)
-	   (const time-down)
-	   (const category-keep)
-	   (const category-up)
-	   (const category-down)
-	   (const priority-up)
-	   (const priority-down))))
+  :type `(choice
+	  (repeat :tag "General" ,sorting-choice)
+	  (list :tag "Individually"
+		(cons (const :tag "Strategy for Weekly/Daily agenda" agenda)
+		      (repeat ,sorting-choice))
+		(cons (const :tag "Strategy for TODO lists" todo)
+		      (repeat ,sorting-choice))
+		(cons (const :tag "Strategy for Tags matches" tags)
+		      (repeat ,sorting-choice))))))
 
 (defcustom org-sort-agenda-notime-is-late t
   "Non-nil means, items without time are considered late.
@@ -1664,19 +1868,26 @@
   :group 'org-agenda-display
   :type 'boolean)
 
-
 (defgroup org-agenda-prefix nil
   "Options concerning the entry prefix in the Org-mode agenda display."
   :tag "Org Agenda Prefix"
   :group 'org-agenda)
 
-(defcustom org-agenda-prefix-format "  %-12:c%?-12t% s"
-  "Format specification for the prefix of items in the agenda buffer.
+(defcustom org-agenda-prefix-format
+  '((agenda  . "  %-12:c%?-12t% s")
+    (timeline  . "  % s")
+    (todo  . "  %-12:c")
+    (tags  . "  %-12:c"))
+  "Format specifications for the prefix of items in the agenda views.
+An alist with four entries, for the different agenda types.  The keys to the
+sublists are `agenda', `timeline', `todo', and `tags'.  The values
+are format strings.
 This format works similar to a printf format, with the following meaning:
 
   %c   the category of the item, \"Diary\" for entries from the diary, or
        as given by the CATEGORY keyword or derived from the file name.
-  %T   the first tag of the item.
+  %T   the *last* tag of the item.  Last because inherited tags come
+       first in the list.
   %t   the time-of-day specification if one applies to the entry, in the
        format HH:MM
   %s   Scheduling/Deadline information, a short string
@@ -1715,13 +1926,18 @@
 
 See also the variables `org-agenda-remove-times-when-in-prefix' and
 `org-agenda-remove-tags-when-in-prefix'."
-  :type 'string
+  :type '(choice
+	  (string :tag "General format")
+	  (list :greedy t :tag "View dependent"
+		(cons  (const agenda) (string :tag "Format"))
+		(cons  (const timeline) (string :tag "Format"))
+		(cons  (const todo) (string :tag "Format"))
+		(cons  (const tags) (string :tag "Format"))))
   :group 'org-agenda-prefix)
 
 (defvar org-prefix-format-compiled nil
   "The compiled version of the most recently used prefix format.
-Depending on which command was used last, this may be the compiled version
-of `org-agenda-prefix-format' or `org-timeline-prefix-format'.")
+See the variable `org-agenda-prefix-format'.")
 
 (defcustom org-agenda-remove-times-when-in-prefix t
   "Non-nil means, remove duplicate time specifications in agenda items.
@@ -1750,33 +1966,10 @@
 	  (const :tag "Never" nil)
 	  (const :tag "When prefix format contains %T" prefix)))
 
-(defgroup org-agenda-timeline nil
-  "Options concerning the timeline buffer in Org Mode."
-  :tag "Org Agenda Timeline"
-  :group 'org-agenda)
-
-(defcustom org-timeline-prefix-format "  % s"
-  "Like `org-agenda-prefix-format', but for the timeline of a single file."
-  :type 'string
-  :group 'org-agenda-timeline)
-
-(defcustom org-select-timeline-window t
-  "Non-nil means, after creating a timeline, move cursor into Timeline window.
-When nil, cursor will remain in the current window."
-  :group 'org-agenda-timeline
-  :type 'boolean)
-
-(defcustom org-timeline-show-empty-dates 3
-  "Non-nil means, `org-timeline' also shows dates without an entry.
-When nil, only the days which actually have entries are shown.
-When t, all days between the first and the last date are shown.
-When an integer, show also empty dates, but if there is a gap of more than
-N days, just insert a special line indicating the size of the gap."
-  :group 'org-agenda-timeline
-  :type '(choice
-	  (const :tag "None" nil)
-	  (const :tag "All" t)
-	  (number :tag "at most")))
+(defcustom org-agenda-align-tags-to-column 65
+  "Shift tags in agenda items to this column."
+  :group 'org-agenda-prefix
+  :type 'integer)
 
 (defgroup org-latex nil
   "Options for embedding LaTeX code into Org-mode"
@@ -1914,24 +2107,24 @@
 	  (const :tag "entirely" t)))
 
 (defcustom org-export-with-timestamps t
-  "Nil means, do not export time stamps and associated keywords."
-  :group 'org-export
+  "If nil, do not export time stamps and associated keywords."
+  :group 'org-export-general
   :type 'boolean)
 
 (defcustom org-export-remove-timestamps-from-toc t
-  "Nil means, remove timestamps from the table of contents entries."
-  :group 'org-export
-  :type 'boolean)
-
-(defcustom org-export-with-tags t
-  "Nil means, do not export tags, just remove them from headlines."
+  "If nil, remove timestamps from the table of contents entries."
   :group 'org-export-general
   :type 'boolean)
 
-(defcustom org-export-with-timestamps t
-  "Nil means, do not export timestamps and associated keywords."
+(defcustom org-export-with-tags 'not-in-toc
+  "If nil, do not export tags, just remove them from headlines.
+If this is the symbol `not-in-toc', tags will be removed from table of
+contents entries, but still be shown in the headlines of the document."
   :group 'org-export-general
-  :type 'boolean)
+  :type '(choice
+	  (const :tag "Off" nil)
+	  (const :tag "Not in TOC" not-in-toc)
+	  (const :tag "On" t)))
 
 (defgroup org-export-translation nil
   "Options for translating special ascii sequences for the export backends."
@@ -2308,7 +2501,11 @@
 	  (setq markers (concat (replace-match "" t t markers) "^")))
       (if (string-match "-" markers)
 	  (setq markers (concat (replace-match "" t t markers) "-")))
-      (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\n?" body "*?")))
+;      (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\n?" body "*?")))
+;      (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\\(?:\n?" body "*?\\)?")))
+      (if (> nl 0)
+          (setq body1 (concat body1 "\\(?:\n" body "*?\\)\\{0,"
+                              (int-to-string nl) "\\}")))
       ;; Make the regexp
       (setq org-emph-re
 	    (concat "\\([" pre (if stacked markers) "]\\|^\\)"
@@ -2323,7 +2520,7 @@
 		    "\\([" post (if stacked markers) "]\\|$\\)")))))
 
 (defcustom org-emphasis-regexp-components
-  '(" \t(" " \t.,?;:'\")" " \t\r\n,." "." 1 nil)
+  '(" \t(" " \t.,?;'\")" " \t\r\n," "." 1 nil)
   "Components used to build the reqular expression for emphasis.
 This is a list with 6 entries.  Terminology:  In an emphasis string
 like \" *strong word* \", we call the initial space PREMATCH, the final
@@ -2559,8 +2756,8 @@
 
 (defface org-done ;; font-lock-type-face
   (org-compatible-face
-   '((((class color) (min-colors 16) (background light)) (:foreground "ForestGreen"))
-     (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen"))
+   '((((class color) (min-colors 16) (background light)) (:foreground "ForestGreen" :bold t))
+     (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen" :bold t))
      (((class color) (min-colors 8)) (:foreground "green"))
      (t (:bold t))))
   "Face used for DONE."
@@ -2690,7 +2887,7 @@
 (make-variable-buffer-local 'org-keyword-time-regexp)
 
 (defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t
-                                   rear-nonsticky t mouse-map t)
+				   rear-nonsticky t mouse-map t)
   "Properties to remove when a string without properties is wanted.")
 
 (defsubst org-match-string-no-properties (num &optional string)
@@ -2704,6 +2901,12 @@
   (remove-text-properties 0 (length s) org-rm-props s)
   s)
 
+(defsubst org-get-alist-option (option key)
+  (cond ((eq key t) t)
+	((eq option t) t)
+	((assoc key option) (cdr (assoc key option)))
+	(t (cdr (assq 'default option)))))
+
 (defsubst org-set-local (var value)
   "Make VAR local in current buffer and set it to VALUE."
   (set (make-variable-buffer-local var) value))
@@ -2712,14 +2915,44 @@
   "Check if the current buffer is in Org-mode."
   (eq major-mode 'org-mode))
 
+(defsubst org-last (list)
+  "Return the last element of LIST."
+  (car (last list)))
+
+(defun org-let (list &rest body)
+  (eval (cons 'let (cons list body))))
+(put 'org-let 'lisp-indent-function 1)
+
+(defun org-let2 (list1 list2 &rest body)
+  (eval (cons 'let (cons list1 (list (cons 'let (cons list2 body)))))))
+(put 'org-let2 'lisp-indent-function 2)
+
+(defconst org-startup-options
+  '(("fold" org-startup-folded t)
+    ("overview" org-startup-folded t)
+    ("nofold" org-startup-folded nil)
+    ("showall" org-startup-folded nil)
+    ("content" org-startup-folded content)
+    ("hidestars" org-hide-leading-stars t)
+    ("showstars" org-hide-leading-stars nil)
+    ("odd" org-odd-levels-only t)
+    ("oddeven" org-odd-levels-only nil)
+    ("align" org-startup-align-all-tables t)
+    ("noalign" org-startup-align-all-tables nil)
+    ("customtime" org-display-custom-times t)
+    ("logging" org-log-done t)
+    ("nologging" org-log-done nil)
+    ("dlcheck" org-startup-with-deadline-check t)
+    ("nodlcheck" org-startup-with-deadline-check nil)))
+
 (defun org-set-regexps-and-options ()
   "Precompute regular expressions for current buffer."
   (when (org-mode-p)
     (let ((re (org-make-options-regexp
 	       '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO"
-		 "STARTUP" "ARCHIVE" "TAGS" "CALC")))
+		 "STARTUP" "ARCHIVE" "TAGS" "LINK")))
 	  (splitre "[ \t]+")
-	  kwds int key value cat arch tags)
+	  kwds int key value cat arch tags links)
       (save-excursion
 	(save-restriction
 	  (widen)
@@ -2742,25 +2975,15 @@
 		    kwds (append kwds (org-split-string value splitre))))
 	     ((equal key "TAGS")
 	      (setq tags (append tags (org-split-string value splitre))))
+	     ((equal key "LINK")
+	      (when (string-match "^\\(\\S-+\\)[ \t]+\\(.+\\)" value)
+		(push (cons (match-string 1 value)
+			    (org-trim (match-string 2 value)))
+		      links)))
 	     ((equal key "STARTUP")
 	      (let ((opts (org-split-string value splitre))
-		    (set '(("fold" org-startup-folded t)
-			   ("overview" org-startup-folded t)
-			   ("nofold" org-startup-folded nil)
-			   ("showall" org-startup-folded nil)
-			   ("content" org-startup-folded content)
-			   ("hidestars" org-hide-leading-stars t)
-			   ("showstars" org-hide-leading-stars nil)
-			   ("odd" org-odd-levels-only t)
-			   ("oddeven" org-odd-levels-only nil)
-			   ("align" org-startup-align-all-tables t)
-			   ("noalign" org-startup-align-all-tables nil)
-			   ("logging" org-log-done t)
-			   ("nologging" org-log-done nil)
-			   ("dlcheck" org-startup-with-deadline-check t)
-			   ("nodlcheck" org-startup-with-deadline-check nil)))
 		    l var val)
-		(while (setq l (assoc (pop opts) set))
+		(while (setq l (assoc (pop opts) org-startup-options))
 		  (setq var (nth 1 l) val (nth 2 l))
 		  (set (make-local-variable var) val))))
 	     ((equal key "ARCHIVE")
@@ -2773,6 +2996,7 @@
       (and kwds (org-set-local 'org-todo-keywords kwds))
       (and arch (org-set-local 'org-archive-location arch))
       (and int (org-set-local 'org-todo-interpretation int))
+      (and links (setq org-link-abbrev-alist-local (nreverse links)))
       (when tags
 	(let (e tgs)
 	  (while (setq e (pop tags))
@@ -2807,15 +3031,15 @@
 			     "\\|")
 		  "\\)\\>")
 	  org-todo-line-regexp
-	  (concat "^\\(\\*+\\)[ \t]*\\("
+	  (concat "^\\(\\*+\\)[ \t]*\\(?:\\("
 		  (mapconcat 'regexp-quote org-todo-keywords "\\|")
-		  "\\)? *\\(.*\\)")
+		  "\\)\\>\\)? *\\(.*\\)")
 	  org-nl-done-regexp
 	  (concat "[\r\n]\\*+[ \t]+" org-done-string "\\>")
 	  org-todo-line-tags-regexp
-	  (concat "^\\(\\*+\\)[ \t]*\\("
+	  (concat "^\\(\\*+\\)[ \t]*\\(?:\\("
 		  (mapconcat 'regexp-quote org-todo-keywords "\\|")
-		  "\\)? *\\(.*?\\([ \t]:[a-zA-Z0-9:_@]+:[ \t]*\\)?$\\)")
+		  "\\)\\>\\)? *\\(.*?\\([ \t]:[a-zA-Z0-9:_@]+:[ \t]*\\)?$\\)")
 	  org-looking-at-done-regexp (concat "^" org-done-string "\\>")
 	  org-deadline-regexp (concat "\\<" org-deadline-string)
 	  org-deadline-time-regexp
@@ -2871,6 +3095,7 @@
 (defvar include-all-loc) ; local variable
 (defvar vm-message-pointer) ; from vm
 (defvar vm-folder-directory) ; from vm
+(defvar gnus-other-frame-object) ; from gnus
 (defvar wl-summary-buffer-elmo-folder) ; from wanderlust
 (defvar wl-summary-buffer-folder-name) ; from wanderlust
 (defvar gnus-group-name) ; from gnus
@@ -2894,6 +3119,9 @@
 (defvar Info-current-node) ; from info.el
 (defvar texmathp-why) ; from texmathp.el
 (defvar org-latex-regexps)
+(defvar outline-mode-menu-heading)
+(defvar outline-mode-menu-show)
+(defvar outline-mode-menu-hide)
 
 ;;; Define the mode
 
@@ -2938,9 +3166,10 @@
 
   ;; Get rid of Outline menus, they are not needed
   ;; Need to do this here because define-derived-mode sets up
-  ;; the keymap so late.
+  ;; the keymap so late.  Still, it is a waste to call this each time
+  ;; we switch another buffer into org-mode.
   (if (featurep 'xemacs)
-      (progn
+      (when (boundp 'outline-mode-menu-heading)
 	;; Assume this is Greg's port, it used easymenu
 	(easy-menu-remove outline-mode-menu-heading)
 	(easy-menu-remove outline-mode-menu-show)
@@ -3006,7 +3235,9 @@
   (let ((current-prefix-arg arg)) (call-interactively command)))
 
 (defsubst org-current-line (&optional pos)
-  (+ (if (bolp) 1 0) (count-lines (point-min) (or pos (point)))))
+  (save-excursion
+    (and pos (goto-char pos))
+    (+ (if (bolp) 1 0) (count-lines (point-min) (point)))))
 
 (defun org-current-time ()
   "Current time, possibly rounded to `org-time-stamp-rounding-minutes'."
@@ -3096,7 +3327,6 @@
 ; 4: [desc]
 ; 5: desc
 
-
 (defconst org-ts-lengths
   (cons (length (format-time-string (car org-time-stamp-formats)))
 	(length (format-time-string (cdr org-time-stamp-formats))))
@@ -3113,11 +3343,18 @@
   "Regular expression matching time stamps (also [..]), with groups.")
 (defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp)
   "Regular expression matching a time stamp range.")
+(defconst org-tr-regexp-both
+  (concat org-ts-regexp-both "--?-?" org-ts-regexp-both)
+  "Regular expression matching a time stamp range.")
 (defconst org-tsr-regexp (concat org-ts-regexp "\\(--?-?"
 				 org-ts-regexp "\\)?")
   "Regular expression matching a time stamp or time stamp range.")
-
-(defvar org-§emph-face nil)
+(defconst org-tsr-regexp-both (concat org-ts-regexp-both "\\(--?-?"
+				      org-ts-regexp-both "\\)?")
+  "Regular expression matching a time stamp or time stamp range.
+The time stamps may be either active or inactive.")
+
+(defvar org-emph-face nil)
 
 (defun org-do-emphasis-faces (limit)
   "Run through the buffer and add overlays to links."
@@ -3154,6 +3391,18 @@
 				   ))
 	t)))
 
+(defmacro org-maybe-intangible (props)
+  "Add '(intangigble t) to PROPS if Emacs version is earlier than Emacs 22.
+In emacs 21, invisible text is not avoided by the command loop, so the
+intangible property is needed to make sure point skips this text.
+In Emacs 22, this is not necessary.  The intangible text property has
+led to problems with flyspell.  These problems are fixed in flyspell.el,
+but we still avoid setting the property in Emacs 22 and later.
+We use a macro so that the test can happen at compilation time."
+  (if (< emacs-major-version 22)
+      `(append '(intangible t) ,props)
+    props))
+
 (defun org-activate-bracket-links (limit)
   "Run through the buffer and add overlays to bracketed links."
   (if (re-search-forward org-bracket-link-regexp limit t)
@@ -3162,9 +3411,10 @@
 	     ;; FIXME: above we should remove the escapes.
 	     ;; but that requires another match, protecting match data,
 	     ;; a lot of overhead for font-lock.
-	     (ip (list 'invisible 'org-link 'intangible t 'rear-nonsticky t
-		       'keymap org-mouse-map 'mouse-face 'highlight
-		       'help-echo help))
+	     (ip (org-maybe-intangible
+		  (list 'invisible 'org-link 'rear-nonsticky t
+			'keymap org-mouse-map 'mouse-face 'highlight
+			'help-echo help)))
 	     (vp (list 'rear-nonsticky t
 		       'keymap org-mouse-map 'mouse-face 'highlight
 		       'help-echo help)))
@@ -3184,12 +3434,20 @@
 
 (defun org-activate-dates (limit)
   "Run through the buffer and add overlays to dates."
-  (if (re-search-forward org-tsr-regexp limit t)
+;  (if (re-search-forward org-tsr-regexp limit t)
+;  (if (re-search-forward
+;       (if org-display-custom-times org-ts-regexp-both org-tsr-regexp-both)
+;       limit t)
+  (if (re-search-forward org-tsr-regexp-both limit t)
       (progn
 	(add-text-properties (match-beginning 0) (match-end 0)
 			     (list 'mouse-face 'highlight
 				   'rear-nonsticky t
 				   'keymap org-mouse-map))
+	(when org-display-custom-times
+	  (if (match-end 3)
+	      (org-display-custom-time (match-beginning 3) (match-end 3)))
+	  (org-display-custom-time (match-beginning 1) (match-end 1)))
 	t)))
 
 (defvar org-target-link-regexp nil
@@ -3227,7 +3485,7 @@
 			       'org-cwidth t))
     (when s
       (setq e (next-single-property-change s 'org-cwidth))
-      (add-text-properties s e '(invisible org-cwidth intangible t))
+      (add-text-properties s e (org-maybe-intangible '(invisible org-cwidth)))
       (goto-char e)
       t)))
 
@@ -3331,10 +3589,16 @@
 	   (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t))
 	   (list (concat "\\<" org-clock-string) '(0 'org-special-keyword t))
 	   ;; Emphasis
-	   (if em '(org-do-emphasis-faces))
+	   (if em
+               (if (featurep 'xemacs)
+                   '(org-do-emphasis-faces (0 nil append))
+                 '(org-do-emphasis-faces)))
 	   ;; Checkboxes, similar to Frank Ruell's org-checklet.el
 	   '("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
 	     2 'bold prepend)
+	   (if org-provide-checkbox-statistics
+	       '("\\[\\([0-9]*%\\)\\]\\|\\[\\([0-9]*\\)/\\([0-9]*\\)\\]"
+		 (0 (org-get-checkbox-statistics-face) t)))
 	   ;; COMMENT
 	   (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string
 			 "\\|" org-quote-string "\\)\\>")
@@ -3383,9 +3647,10 @@
 	 (inhibit-modification-hooks t)
 	 deactivate-mark buffer-file-name buffer-file-truename)
     (remove-text-properties beg end
-			    '(mouse-face nil keymap nil org-linked-text nil
-					 rear-nonsticky nil
-					 invisible nil intangible nil))))
+			    '(mouse-face t keymap t org-linked-text t
+					 rear-nonsticky t
+					 invisible t intangible t))))
+
 ;;; Visibility cycling
 
 (defvar org-cycle-global-status nil)
@@ -3422,10 +3687,9 @@
 - Special case: if point is the the beginning of the buffer and there is
   no headline in line 1, this function will act as if called with prefix arg."
   (interactive "P")
-
   (let* ((outline-regexp
-	  (if org-cycle-include-plain-lists
-	      "\\*+\\|\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) "
+	  (if (and (org-mode-p) org-cycle-include-plain-lists)
+	      "\\(?:\\*+\\|\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) \\)"
 	    outline-regexp))
 	 (bob-special (and org-cycle-global-at-bob (bobp)
 			   (not (looking-at outline-regexp))))
@@ -3557,12 +3821,14 @@
 (defun org-global-cycle (&optional arg)
   "Cycle the global visibility.  For details see `org-cycle'."
   (interactive "P")
-  (if (integerp arg)
-      (progn
-	(show-all)
-	(hide-sublevels arg)
-	(setq org-cycle-global-status 'contents))
-    (org-cycle '(4))))
+  (let ((org-cycle-include-plain-lists
+	 (if (org-mode-p) org-cycle-include-plain-lists nil)))
+    (if (integerp arg)
+	(progn
+	  (show-all)
+	  (hide-sublevels arg)
+	  (setq org-cycle-global-status 'contents))
+      (org-cycle '(4)))))
 
 (defun org-overview ()
   "Switch to overview mode, shoing only top-level headlines.
@@ -3675,7 +3941,7 @@
 	  (org-mark-ring-push org-goto-start-pos)
 	  (goto-char selected-point)
 	  (if (or (org-invisible-p) (org-invisible-p2))
-	      (org-show-hierarchy-above)))
+	      (org-show-context 'org-goto)))
       (error "Quit"))))
 
 (defun org-get-location (buf help)
@@ -3774,21 +4040,33 @@
 			   (org-back-to-heading)
 			   (match-string 0))
 		       (error "*"))))
+	     (blank (cdr (assq 'heading org-blank-before-new-entry)))
 	     pos)
 	(cond
 	 ((and (org-on-heading-p) (bolp)
 	       (save-excursion (backward-char 1) (not (org-invisible-p))))
-	  (open-line 1))
+	  (open-line (if blank 2 1)))
 	 ((and (bolp) (save-excursion
 			(backward-char 1) (not (org-invisible-p))))
 	  nil)
-	 (t (newline)))
+	 (t (newline (if blank 2 1))))
 	(insert head) (just-one-space)
 	(setq pos (point))
 	(end-of-line 1)
 	(unless (= (point) pos) (just-one-space) (backward-delete-char 1))
 	(run-hooks 'org-insert-heading-hook)))))
 
+(defun org-in-item-p ()
+  "It the cursor inside a plain list item.
+Does not have to be the first line."
+  (save-excursion
+    (condition-case nil
+	(progn
+	  (org-beginning-of-item)
+	  (org-at-item-p)
+	  t)
+      (error nil))))
+
 (defun org-insert-item (&optional checkbox)
   "Insert a new item at the current level.
 Return t when things worked, nil when we are not in an item."
@@ -3797,26 +4075,29 @@
 	      (progn
 		(org-beginning-of-item)
 		(org-at-item-p)
+		(if (org-invisible-p) (error "Invisible item"))
 		t)
 	    (error nil)))
     (let* ((bul (match-string 0))
 	   (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")
 				(match-end 0)))
+	   (blank (cdr (assq 'plain-list-item org-blank-before-new-entry)))
 	   pos)
       (cond
        ((and (org-at-item-p) (<= (point) eow))
 	;; before the bullet
 	(beginning-of-line 1)
-	(open-line 1))
+	(open-line (if blank 2 1)))
        ((<= (point) eow)
 	(beginning-of-line 1))
-       (t (newline)))
+       (t (newline (if blank 2 1))))
       (insert bul (if checkbox "[ ]" ""))
       (just-one-space)
       (setq pos (point))
       (end-of-line 1)
       (unless (= (point) pos) (just-one-space) (backward-delete-char 1)))
     (org-maybe-renumber-ordered-list)
+    (and checkbox (org-update-checkbox-count-maybe))
     t))
 
 (defun org-insert-todo-heading (arg)
@@ -3841,14 +4122,17 @@
 See also `org-promote'."
   (interactive)
   (save-excursion
-    (org-map-tree 'org-promote)))
+    (org-map-tree 'org-promote))
+  (org-fix-position-after-promote))
 
 (defun org-demote-subtree ()
   "Demote the entire subtree.  See `org-demote'.
 See also `org-promote'."
   (interactive)
   (save-excursion
-    (org-map-tree 'org-demote)))
+    (org-map-tree 'org-demote))
+  (org-fix-position-after-promote))
+
 
 (defun org-do-promote ()
   "Promote the current heading higher up the tree.
@@ -3874,17 +4158,22 @@
 
 (defun org-fix-position-after-promote ()
   "Make sure that after pro/demotion cursor position is right."
+  (if (and (equal (char-after) ?\n)
+	   (save-excursion
+	     (skip-chars-backward "a-zA-Z0-9_@")
+	     (looking-at org-todo-regexp)))
+      (insert " "))
   (and (equal (char-after) ?\ )
        (equal (char-before) ?*)
        (forward-char 1)))
 
-(defun org-get-legal-level (level change)
+(defun org-get-legal-level (level &optional change)
   "Rectify a level change under the influence of `org-odd-levels-only'
 LEVEL is a current level, CHANGE is by how much the level should be
 modified.  Even if CHANGE is nil, LEVEL may be returned modified because
 even level numbers will become the next higher odd number."
   (if org-odd-levels-only
-      (cond ((not change) (1+ (* 2 (/ level 2))))
+      (cond ((or (not change) (= 0 change)) (1+ (* 2 (/ level 2))))
 	    ((> change 0) (1+ (* 2 (/ (+ level (* 2 change)) 2))))
 	    ((< change 0) (max 1 (1+ (* 2 (/ (+ level (* 2 change)) 2))))))
     (max 1 (+ level change))))
@@ -3897,7 +4186,7 @@
   (let* ((level (save-match-data (funcall outline-level)))
 	 (up-head (make-string (org-get-legal-level level -1) ?*))
 	 (diff (abs (- level (length up-head)))))
-    (if (= level 1) (error "Cannot promote to level 0. UNDO to recover"))
+    (if (= level 1) (error "Cannot promote to level 0. UNDO to recover if necessary"))
     (replace-match up-head nil t)
     ;; Fixup tag positioning
     (and org-auto-align-tags (org-set-tags nil t))
@@ -4217,7 +4506,68 @@
 	      (setq firstnew (not status)))
 	    (replace-match
 	     (if (if arg (not status) firstnew) "[X]" "[ ]") t t))
-	  (beginning-of-line 2))))))
+	  (beginning-of-line 2)))))
+  (org-update-checkbox-count-maybe))
+
+(defun org-update-checkbox-count-maybe ()
+  "Update checkbox statistics unless turned off by user."
+  (when org-provide-checkbox-statistics
+    (org-update-checkbox-count)))
+
+(defun org-update-checkbox-count (&optional all)
+  "Update the checkbox statistics in the current section.
+This will find all statistic cookies like [57%] and [6/12] and update them
+with the current numbers.  With optional prefix argument ALL, do this for
+the whole buffer."
+  (interactive "P")
+  (save-excursion
+    (let* ((buffer-invisibility-spec nil) ; Emacs 21 compatibility
+	   (beg (progn (outline-back-to-heading) (point)))
+	   (end (move-marker (make-marker)
+			     (progn (outline-next-heading) (point))))
+	   (re "\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)")
+	   (re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)")
+	   b1 e1 f1 c-on c-off lim (cstat 0))
+      (when all
+	(goto-char (point-min))
+	(outline-next-heading)
+	(setq beg (point) end (point-max)))
+      (goto-char beg)
+      (while (re-search-forward re end t)
+	(setq cstat (1+ cstat)
+	      b1 (match-beginning 0)
+	      e1 (match-end 0)
+	      f1 (match-beginning 1)
+	      lim (cond
+		   ((org-on-heading-p) (outline-next-heading) (point))
+		   ((org-at-item-p) (org-end-of-item) (point))
+		   (t nil))
+	      c-on 0 c-off 0)
+	(goto-char e1)
+	(when lim
+	  (while (re-search-forward re-box lim t)
+	    (if (equal (match-string 2) "[ ]")
+		(setq c-off (1+ c-off))
+	      (setq c-on (1+ c-on))))
+	  (delete-region b1 e1)
+	  (goto-char b1)
+	  (insert (if f1
+		      (format "[%d%%]" (/ (* 100 c-on) (max 1 (+ c-on c-off))))
+		    (format "[%d/%d]" c-on (+ c-on c-off))))))
+      (when (interactive-p)
+	(message "Checkbox satistics updated %s (%d places)"
+		 (if all "in entire file" "in current outline entry") cstat)))))
+
+(defun org-get-checkbox-statistics-face ()
+  "Select the face for checkbox statistics.
+The face will be `org-done' when all relevant boxes are checked.  Otherwise
+it will be `org-todo'."
+  (if (match-end 1)
+      (if (equal (match-string 1) "100%") 'org-done 'org-todo)
+    (if (and (> (match-end 2) (match-beginning 2))
+	     (equal (match-string 2) (match-string 3)))
+	'org-done
+      'org-todo)))
 
 (defun org-get-indentation (&optional line)
   "Get the indentation of the current line, interpreting tabs.
@@ -4589,9 +4939,7 @@
 	    (beginning-of-line 1)
 	    (looking-at org-todo-line-regexp)
 	    (goto-char (or (match-end 2) (match-beginning 3)))
-	    (insert "(" (format-time-string (cdr org-time-stamp-formats)
-					    (org-current-time))
-		    ")"))
+	    (org-insert-time-stamp (org-current-time) t t "(" ")"))
 	  ;; Save the buffer, if it is not the same buffer.
 	  (if (not (eq this-buffer buffer)) (save-buffer))))
       ;; Here we are back in the original buffer.  Everything seems to have
@@ -4623,7 +4971,7 @@
 				  ?*))
 			    " "))
 	  (move-marker begm (point))
-	  (move-marker endm (org-end-of-subtree)))
+	  (move-marker endm (org-end-of-subtree t)))
       (setq re1 "^* ")
       (move-marker begm (point-min))
       (move-marker endm (point-max)))
@@ -4653,8 +5001,19 @@
     (save-excursion
       (let* ((globalp (memq state '(contents all)))
              (beg (if globalp (point-min) (point)))
-             (end (if globalp (point-max) (org-end-of-subtree))))
-	(org-hide-archived-subtrees beg end)))))
+             (end (if globalp (point-max) (org-end-of-subtree t))))
+	(org-hide-archived-subtrees beg end)
+	(goto-char beg)
+	(if (looking-at (concat ".*:" org-archive-tag ":"))
+	    (message (substitute-command-keys
+		      "Subtree is archived and stays closed.  Use \\[org-force-cycle-archived] to cycle it anyway.")))))))
+
+(defun org-force-cycle-archived ()
+  "Cycle subtree even if it is archived."
+  (interactive)
+  (setq this-command 'org-cycle)
+  (let ((org-cycle-open-archived-trees t))
+    (call-interactively 'org-cycle)))
 
 (defun org-hide-archived-subtrees (beg end)
   "Re-hide all archived subtrees after a visibility state change."
@@ -4663,7 +5022,7 @@
       (goto-char beg)
       (while (re-search-forward re end t)
 	(and (org-on-heading-p) (hide-subtree))
-	(org-end-of-subtree)))))
+	(org-end-of-subtree t)))))
 
 (defun org-toggle-tag (tag &optional onoff)
   "Toggle the tag TAG for the current line.
@@ -4710,6 +5069,51 @@
       (and set (beginning-of-line 1))
       (message "Subtree %s" (if set "archived" "unarchived")))))
 
+(defvar org-agenda-multi nil)  ; dynammically scoped
+(defvar org-agenda-buffer-name "*Org Agenda*")
+(defvar org-pre-agenda-window-conf nil)
+(defun org-prepare-agenda ()
+  (if org-agenda-multi
+      (progn
+	(setq buffer-read-only nil)
+	(goto-char (point-max))
+	(unless (= (point) 1)
+	  (insert "\n" (make-string (window-width) ?=) "\n"))
+	(narrow-to-region (point) (point-max)))
+    (org-agenda-maybe-reset-markers 'force)
+    (org-prepare-agenda-buffers (org-agenda-files))
+    (let* ((abuf (get-buffer-create org-agenda-buffer-name))
+	   (awin (get-buffer-window abuf)))
+      (cond
+       ((equal (current-buffer) abuf) nil)
+       (awin (select-window awin))
+       ((not (setq org-pre-agenda-window-conf (current-window-configuration))))
+       ((equal org-agenda-window-setup 'current-window)
+	(switch-to-buffer abuf))
+       ((equal org-agenda-window-setup 'other-window)
+	(switch-to-buffer-other-window abuf))
+       ((equal org-agenda-window-setup 'other-frame)
+	(switch-to-buffer-other-frame abuf))
+       ((equal org-agenda-window-setup 'reorganize-frame)
+	(delete-other-windows)
+	(switch-to-buffer-other-window abuf))))
+    (setq buffer-read-only nil)
+    (erase-buffer)
+    (org-agenda-mode))
+  (setq buffer-read-only nil))
+
+(defun org-finalize-agenda ()
+  "Finishing touch for the agenda buffer, called just before displaying it."
+  (unless org-agenda-multi
+    (org-agenda-align-tags)
+    (save-excursion
+      (let ((buffer-read-only))
+	(goto-char (point-min))
+	(while (org-activate-bracket-links (point-max))
+	  (add-text-properties (match-beginning 0) (match-end 0)
+			       '(face org-link))))
+      (run-hooks 'org-finalize-agenda-hook))))
+
 (defun org-prepare-agenda-buffers (files)
   "Create buffers for all agenda files, protect archived trees and comments."
   (interactive)
@@ -4743,10 +5147,10 @@
   (let ((p (point-at-bol)))
     (and org-agenda-skip-archived-trees
 	 (get-text-property p :org-archived)
-	 (org-end-of-subtree)
+	 (org-end-of-subtree t)
 	 (throw :skip t))
     (and (get-text-property p :org-comment)
-	 (org-end-of-subtree)
+	 (org-end-of-subtree t)
 	 (throw :skip t))
     (if (equal (char-after p) ?#) (throw :skip t))))
 
@@ -4764,7 +5168,7 @@
     (with-current-buffer buffer
       (widen)
       (goto-char pos)
-      (org-show-hidden-entry)
+      (org-show-context 'agenda)
       (save-excursion
 	(and (outline-next-heading)
 	     (org-flag-heading nil)))   ; show the next heading
@@ -4894,25 +5298,27 @@
 that are supported for HTML support.
 If the current word is preceded by \"#+\", completes special words for
 setting file options.
+In the line after \"#+STARTUP:, complete valid keywords.\"
 At all other locations, this simply calls `ispell-complete-word'."
   (interactive "P")
   (catch 'exit
     (let* ((end (point))
 	   (beg1 (save-excursion
-		   (if (equal (char-before (point)) ?\ ) (backward-char 1))
 		   (skip-chars-backward "a-zA-Z_@0-9")
 		   (point)))
 	   (beg (save-excursion
-		  (if (equal (char-before (point)) ?\ ) (backward-char 1))
 		  (skip-chars-backward "a-zA-Z0-9_:$")
 		  (point)))
 	   (confirm (lambda (x) (stringp (car x))))
 	   (camel (equal (char-before beg) ?*))
 	   (tag (equal (char-before beg1) ?:))
 	   (texp (equal (char-before beg) ?\\))
+	   (link (equal (char-before beg) ?\[))
 	   (opt (equal (buffer-substring (max (point-at-bol) (- beg 2))
 					 beg)
 		       "#+"))
+	   (startup (string-match "^#\\+STARTUP:.*"
+				 (buffer-substring (point-at-bol) (point))))
 	   (completion-ignore-case opt)
 	   (type nil)
 	   (tbl nil)
@@ -4923,6 +5329,11 @@
 			      (string-match "^#\\+\\(\\([A-Z_]+:?\\).*\\)" x)
 			      (cons (match-string 2 x) (match-string 1 x)))
 			    (org-split-string (org-get-current-options) "\n")))
+		   (startup
+		    (setq type :startup)
+		    org-startup-options)
+		   (link (append org-link-abbrev-alist-local
+				 org-link-abbrev-alist))
 		   (texp
 		    (setq type :tex)
 		    org-html-entities)
@@ -5059,7 +5470,7 @@
 	    (not (equal state org-done-string)))
       (when org-log-done
 	(if (equal state org-done-string)
-	    (org-add-planning-info 'closed (current-time) 'scheduled)
+	    (org-add-planning-info 'closed (org-current-time) 'scheduled)
 	  (if (not this)
 	      (org-add-planning-info nil nil 'closed))))
       ;; Fixup tag positioning
@@ -5075,38 +5486,6 @@
 	(goto-char (or (match-end 2) (match-end 1)))
 	(just-one-space))))
 
-(defun org-log-done (&optional undone)
-  "Add a time stamp logging that a TODO entry has been closed.
-When UNDONE is non-nil, remove such a time stamp again."
-  (interactive)
-  (let (beg end col)
-    (save-excursion
-      (org-back-to-heading t)
-      (setq beg (point))
-      (looking-at (concat outline-regexp " *"))
-      (goto-char (match-end 0))
-      (setq col (current-column))
-      (outline-next-heading)
-      (setq end (point))
-      (goto-char beg)
-      (when (re-search-forward (concat
-				"[\r\n]\\([ \t]*"
-				(regexp-quote org-closed-string)
-				" *\\[.*?\\][^\n\r]*[\n\r]?\\)") end t)
-	(delete-region (match-beginning 1) (match-end 1)))
-      (unless undone
-	(org-back-to-heading t)
-	(skip-chars-forward "^\n\r")
-	(goto-char (min (1+ (point)) (point-max)))
-	(when (not (member (char-before) '(?\r ?\n)))
-	  (insert "\n"))
-	(indent-to col)
-	(insert org-closed-string " "
-		(format-time-string
-		 (concat "[" (substring (cdr org-time-stamp-formats) 1 -1) "]")
-		 (org-current-time))
-		"\n")))))
-
 (defun org-show-todo-tree (arg)
   "Make a compact tree which shows all headlines marked with TODO.
 The tree will show the lines where the regexp matches, and all higher
@@ -5151,81 +5530,140 @@
   (when (and org-insert-labeled-timestamps-at-point
 	     (member what '(scheduled deadline)))
     (insert
-     (if (eq what 'scheduled) org-scheduled-string org-deadline-string)
-     " "
-     (format-time-string (car org-time-stamp-formats) time))
+     (if (eq what 'scheduled) org-scheduled-string org-deadline-string) " ")
+    (org-insert-time-stamp time)
     (setq what nil))
   (save-excursion
-    (let (col list elt (buffer-invisibility-spec nil) ts)
-      (org-back-to-heading t)
-      (looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
-      (goto-char (match-end 1))
-      (setq col (current-column))
-      (goto-char (1+ (match-end 0)))
-      (if (and (not (looking-at outline-regexp))
-	       (looking-at (concat "[^\r\n]*?" org-keyword-time-regexp
-				   "[^\r\n]*"))
-	       (not (equal (match-string 1) org-clock-string)))
-	  (narrow-to-region (match-beginning 0) (match-end 0))
-	(insert "\n")
-	(backward-char 1)
-	(narrow-to-region (point) (point))
-	(indent-to-column col))
-      ;; Check if we have to remove something.
-      (setq list (cons what remove))
-      (while list
-	(setq elt (pop list))
+    (save-restriction
+      (let (col list elt ts buffer-invisibility-spec)
+	(org-back-to-heading t)
+	(looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
+	(goto-char (match-end 1))
+	(setq col (current-column))
+	(goto-char (1+ (match-end 0)))
+	(if (and (not (looking-at outline-regexp))
+		 (looking-at (concat "[^\r\n]*?" org-keyword-time-regexp
+				     "[^\r\n]*"))
+		 (not (equal (match-string 1) org-clock-string)))
+	    (narrow-to-region (match-beginning 0) (match-end 0))
+	  (insert "\n")
+	  (backward-char 1)
+	  (narrow-to-region (point) (point))
+	  (indent-to-column col))
+	;; Check if we have to remove something.
+	(setq list (cons what remove))
+	(while list
+	  (setq elt (pop list))
+	  (goto-char (point-min))
+	  (when (or (and (eq elt 'scheduled)
+			 (re-search-forward org-scheduled-time-regexp nil t))
+		    (and (eq elt 'deadline)
+			 (re-search-forward org-deadline-time-regexp nil t))
+		    (and (eq elt 'closed)
+			 (re-search-forward org-closed-time-regexp nil t)))
+	    (replace-match "")
+	    (if (looking-at " +") (replace-match ""))))
+	(goto-char (point-max))
+	(when what
+	  (insert
+	   (if (not (equal (char-before) ?\ )) " " "")
+	   (cond ((eq what 'scheduled) org-scheduled-string)
+		 ((eq what 'deadline) org-deadline-string)
+		 ((eq what 'closed) org-closed-string))
+	   " ")
+	  (org-insert-time-stamp time nil (eq what 'closed))
+	  (end-of-line 1)
+	  (org-add-log-maybe 'done))
 	(goto-char (point-min))
-	(when (or (and (eq elt 'scheduled)
-		       (re-search-forward org-scheduled-time-regexp nil t))
-		  (and (eq elt 'deadline)
-		       (re-search-forward org-deadline-time-regexp nil t))
-		  (and (eq elt 'closed)
-		       (re-search-forward org-closed-time-regexp nil t)))
-	  (replace-match "")
-	  (if (looking-at " +") (replace-match ""))))
-      (goto-char (point-max))
-      (when what
-	(insert
-	 (if (not (equal (char-before) ?\ )) " " "")
-	 (cond ((eq what 'scheduled) org-scheduled-string)
-	       ((eq what 'deadline) org-deadline-string)
-	       ((eq what 'closed) org-closed-string))
-	 " ")
-	(insert
-	 (setq ts
-	       (format-time-string
-		(if (eq what 'closed)
-		    (concat "[" (substring (cdr org-time-stamp-formats) 1 -1) "]")
-		  (car org-time-stamp-formats))
-		time))))
-      (goto-char (point-min))
-      (widen)
-      (if (looking-at "[ \t]+\r?\n")
-	  (replace-match ""))
-      ts)))
-
-(defun org-occur (regexp &optional callback)
+	(widen)
+	(if (looking-at "[ \t]+\r?\n")
+	    (replace-match ""))
+	ts))))
+
+(defvar org-log-note-marker (make-marker))
+(defvar org-log-note-purpose nil)
+(defvar org-log-note-window-configuration nil)
+
+(defun org-add-log-maybe (&optional purpose)
+  (when (and (listp org-log-done)
+	     (memq purpose org-log-done))
+    (move-marker org-log-note-marker (point))
+    (setq org-log-note-purpose purpose)
+    (add-hook 'post-command-hook 'org-add-log-note 'append)))
+
+(defun org-add-log-note (&optional purpose)
+  "Pop up a window for taking a note, and add this note later at point."
+  (remove-hook 'post-command-hook 'org-add-log-note)
+  (setq org-log-note-window-configuration (current-window-configuration))
+  (delete-other-windows)
+  (switch-to-buffer (marker-buffer org-log-note-marker))
+  (goto-char org-log-note-marker)
+  (switch-to-buffer-other-window "*Org Note*")
+  (erase-buffer)
+  (org-mode)
+  (insert (format "# Insert note for %s, finish with C-c C-c.\n\n"
+		  (cond
+		   ((eq org-log-note-purpose 'clock-out) "stopped clock")
+		   ((eq org-log-note-purpose 'done)  "closed todo item")
+		   (t (error "This should not happen")))))
+  (org-set-local 'org-finish-function 'org-store-log-note))
+
+(defun org-store-log-note ()
+  "Finish taking a log note, and insert it to where it belongs."
+  (let ((txt (buffer-string))
+	(note (cdr (assq org-log-note-purpose org-log-note-headings)))
+	lines ind)
+    (kill-buffer (current-buffer))
+    (if (string-match "^#.*\n[ \t\\n]*" txt)
+	(setq txt (replace-match "" t t txt)))
+    (when (string-match "\\S-" txt)
+      (if (string-match "\\s-+\\'" txt)
+	  (setq txt (replace-match "" t t txt)))
+      (setq lines (org-split-string txt "\n"))
+      (and note (string-match "\\S-" note) (push note lines))
+      (save-excursion
+	(set-buffer (marker-buffer org-log-note-marker))
+	(save-excursion
+	  (goto-char org-log-note-marker)
+	  (if (not (bolp)) (newline))
+	  (indent-relative t)
+	  (setq ind (concat (buffer-substring (point-at-bol) (point)) "    "))
+	  (insert "  - " (pop lines))
+	  (while lines
+	    (insert "\n" ind (pop lines))))))
+    (set-window-configuration org-log-note-window-configuration)))
+
+(defvar org-occur-highlights nil)
+(make-variable-buffer-local 'org-occur-highlights)
+
+(defun org-occur (regexp &optional keep-previous callback)
   "Make a compact tree which shows all matches of REGEXP.
 The tree will show the lines where the regexp matches, and all higher
 headlines above the match.  It will also show the heading after the match,
 to make sure editing the matching entry is easy.
+If KEEP-PREVIOUS is non-nil, highlighting and exposing done by a previous
+call to `org-occur' will be kept, to allow stacking of calls to this
+command.
 If CALLBACK is non-nil, it is a function which is called to confirm
 that the match should indeed be shown."
-  (interactive "sRegexp: ")
-  (org-remove-occur-highlights nil nil t)
+  (interactive "sRegexp: \nP")
+  (or keep-previous (org-remove-occur-highlights nil nil t))
   (let ((cnt 0))
     (save-excursion
       (goto-char (point-min))
-      (org-overview)
+      (if (or (not keep-previous)          ; do not want to keep
+	      (not org-occur-highlights))  ; no previous matches
+	  ;; hide everything
+	  (org-overview))
       (while (re-search-forward regexp nil t)
 	(when (or (not callback)
 		  (save-match-data (funcall callback)))
 	  (setq cnt (1+ cnt))
 	  (org-highlight-new-match (match-beginning 0) (match-end 0))
-	  (org-show-hierarchy-above))))
-    (org-add-hook 'before-change-functions 'org-remove-occur-highlights
-		  nil 'local)
+	  (org-show-context 'occur-tree))))
+    (when org-remove-highlights-with-change
+      (org-add-hook 'before-change-functions 'org-remove-occur-highlights
+		    nil 'local))
     (unless org-sparse-tree-open-archived-trees
       (org-hide-archived-subtrees (point-min) (point-max)))
     (run-hooks 'org-occur-hook)
@@ -5233,24 +5671,53 @@
 	(message "%d match(es) for regexp %s" cnt regexp))
     cnt))
 
-(defun org-show-hierarchy-above ()
-  "Make sure point and the headings hierarchy above is visible."
-  (catch 'exit
-    (if (org-on-heading-p t)
-	(org-flag-heading nil)    ; only show the heading
-      (and (or (org-invisible-p) (org-invisible-p2))
-	   (org-show-hidden-entry)))    ; show entire entry
-    (save-excursion
-      (and org-show-following-heading
-	   (outline-next-heading)
-	   (org-flag-heading nil)))  ; show the next heading
-    (when org-show-hierarchy-above
-      (save-excursion                  ; show all higher headings
-	(while (and (condition-case nil
-			(progn (org-up-heading-all 1) t)
-		      (error nil))
-		    (not (bobp)))
-	  (org-flag-heading nil))))))
+(defun org-show-context (&optional key siblings)
+  "Make sure point and context and visible.
+How much context is shown depends upon the variables
+`org-show-hierarchy-above' and `org-show-following-heading'.
+When SIBLINGS is non-nil, show all siblings on each hierarchy level."
+  (let ((heading-p (org-on-heading-p t))
+	(hierarchy-p (org-get-alist-option org-show-hierarchy-above key))
+	(following-p (org-get-alist-option org-show-following-heading key)))
+    (catch 'exit
+      ;; Show heading or entry text
+      (if heading-p
+	  (org-flag-heading nil)    ; only show the heading
+	(and (or (org-invisible-p) (org-invisible-p2))
+	     (org-show-hidden-entry)))    ; show entire entry
+      (when following-p
+	;; Show next sibling, or heading below text
+	(save-excursion
+	  (and (if heading-p (org-goto-sibling) (outline-next-heading))
+	       (org-flag-heading nil))))
+      (when hierarchy-p
+	;; show all higher headings, possibly with siblings
+	(save-excursion
+	  (while (and (condition-case nil
+			  (progn (org-up-heading-all 1) t)
+			(error nil))
+		      (not (bobp)))
+	    (org-flag-heading nil)
+	    (when siblings
+	      (save-excursion
+		(while (org-goto-sibling) (org-flag-heading nil)))
+	      (save-excursion
+		(while (org-goto-sibling 'previous)
+		  (org-flag-heading nil))))))))))
+
+(defun org-reveal (&optional siblings)
+  "Show current entry, hierarchy above it, and the following headline.
+This can be used to show a consistent set of context around locations
+exposed with `org-show-hierarchy-above' or `org-show-following-heading'
+not t for the search context.
+
+With optional argument SIBLINGS, on each level of the hierarchy all
+siblings are shown.  This repairs the tree structure so what it would
+look like when opend with successive calls to `org-cycle'."
+  (interactive "P")
+  (let ((org-show-hierarchy-above t)
+	(org-show-following-heading t))
+    (org-show-context nil siblings)))
 
 ;; Overlay compatibility functions
 (defun org-make-overlay (beg end &optional buffer)
@@ -5259,25 +5726,40 @@
     (make-overlay beg end buffer)))
 (defun org-delete-overlay (ovl)
   (if (featurep 'xemacs) (delete-extent ovl) (delete-overlay ovl)))
-(defun org-detatch-overlay (ovl)
+(defun org-detach-overlay (ovl)
   (if (featurep 'xemacs) (detach-extent ovl) (delete-overlay ovl)))
 (defun org-move-overlay (ovl beg end &optional buffer)
   (if (featurep 'xemacs)
-      (set-extent-endpoints ovl beg end buffer)
+      (set-extent-endpoints ovl beg end (or buffer (current-buffer)))
     (move-overlay ovl beg end buffer)))
 (defun org-overlay-put (ovl prop value)
   (if (featurep 'xemacs)
       (set-extent-property ovl prop value)
     (overlay-put ovl prop value)))
+(defun org-overlay-display (ovl text &optional face)
+  "Make overlay OVL display TEXT with face FACE."
+  (if (featurep 'xemacs)
+      (let ((gl (make-glyph text)))
+	(and face (set-glyph-face gl face))
+	(set-extent-property ovl 'invisible t)
+	(set-extent-property ovl 'end-glyph gl))
+    (overlay-put ovl 'display text)
+    (if face (overlay-put ovl 'face face))))
+(defun org-overlay-get (ovl prop)
+  (if (featurep 'xemacs)
+      (extent-property ovl prop)
+    (overlay-get ovl prop)))
 (defun org-overlays-at (pos)
   (if (featurep 'xemacs) (extents-at pos) (overlays-at pos)))
+(defun org-overlays-in (&optional start end)
+  (if (featurep 'xemacs)
+      (extent-list nil start end)
+    (overlays-in start end)))
 (defun org-overlay-start (o)
   (if (featurep 'xemacs) (extent-start-position o) (overlay-start o)))
 (defun org-overlay-end (o)
   (if (featurep 'xemacs) (extent-end-position o) (overlay-end o)))
 
-(defvar org-occur-highlights nil)
-(make-variable-buffer-local 'org-occur-highlights)
 (defun org-highlight-new-match (beg end)
   "Highlight from BEG to END and mark the highlight is an occur headline."
   (let ((ov (org-make-overlay beg end)))
@@ -5381,10 +5863,7 @@
 will represent the current date/time.  If there is already a timestamp
 at the cursor, it will be modified."
   (interactive "P")
-  (let ((fmt (if arg (cdr org-time-stamp-formats)
-	       (car org-time-stamp-formats)))
-	(org-time-was-given nil)
-	time)
+  (let (org-time-was-given time)
     (cond
      ((and (org-at-timestamp-p)
 	   (eq last-command 'org-time-stamp)
@@ -5392,21 +5871,19 @@
       (insert "--")
       (setq time (let ((this-command this-command))
 		  (org-read-date arg 'totime)))
-      (if org-time-was-given (setq fmt (cdr org-time-stamp-formats)))
-      (insert (format-time-string fmt time)))
+      (org-insert-time-stamp time (or org-time-was-given arg)))
      ((org-at-timestamp-p)
       (setq time (let ((this-command this-command))
 		   (org-read-date arg 'totime)))
-      (and (org-at-timestamp-p) (replace-match
-				 (setq org-last-changed-timestamp
-				       (format-time-string fmt time))
-				 t t))
+      (when (org-at-timestamp-p) ; just to get the match data
+	(replace-match "")
+	(setq org-last-changed-timestamp
+	      (org-insert-time-stamp time (or org-time-was-given arg))))
       (message "Timestamp updated"))
      (t
       (setq time (let ((this-command this-command))
-		  (org-read-date arg 'totime)))
-      (if org-time-was-given (setq fmt (cdr org-time-stamp-formats)))
-      (insert (format-time-string fmt time))))))
+		   (org-read-date arg 'totime)))
+      (org-insert-time-stamp time (or org-time-was-given arg))))))
 
 (defun org-time-stamp-inactive (&optional arg)
   "Insert an inactive time stamp.
@@ -5415,20 +5892,15 @@
 does not link to the calendar and cannot be changed with the S-cursor keys.
 So these are more for recording a certain time/date."
   (interactive "P")
-  (let ((fmt (if arg (cdr org-time-stamp-formats)
-	       (car org-time-stamp-formats)))
-	(org-time-was-given nil)
-	time)
+  (let (org-time-was-given time)
     (setq time (org-read-date arg 'totime))
-    (if org-time-was-given (setq fmt (cdr org-time-stamp-formats)))
-    (setq fmt (concat "[" (substring fmt 1 -1) "]"))
-    (insert (format-time-string fmt time))))
+    (org-insert-time-stamp time (or org-time-was-given arg) 'inactive)))
 
 (defvar org-date-ovl (org-make-overlay 1 1))
 (org-overlay-put org-date-ovl 'face 'org-warning)
-(org-detatch-overlay org-date-ovl)
-
-(defun org-read-date (&optional with-time to-time)
+(org-detach-overlay org-date-ovl)
+
+(defun org-read-date (&optional with-time to-time from-string)
   "Read a date and make things smooth for the user.
 The prompt will suggest to enter an ISO date, but you can also enter anything
 which will at least partially be understood by `parse-time-string'.
@@ -5484,56 +5956,58 @@
 	 ans ans1 ans2
 	 second minute hour day month year tl wday wday1)
 
-    (if org-popup-calendar-for-date-prompt
-	(save-excursion
-	  (save-window-excursion
-	    (calendar)
-	    (calendar-forward-day (- (time-to-days default-time)
-				     (calendar-absolute-from-gregorian
-				      (calendar-current-date))))
-            (org-eval-in-calendar nil)
-	    (let* ((old-map (current-local-map))
-		   (map (copy-keymap calendar-mode-map))
-		   (minibuffer-local-map (copy-keymap minibuffer-local-map)))
-	      (define-key map (kbd "RET") 'org-calendar-select)
-	      (define-key map (if (featurep 'xemacs) [button1] [mouse-1])
-		'org-calendar-select-mouse)
-	      (define-key map (if (featurep 'xemacs) [button2] [mouse-2])
-		'org-calendar-select-mouse)
-	      (define-key minibuffer-local-map [(meta shift left)]
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(calendar-backward-month 1))))
-	      (define-key minibuffer-local-map [(meta shift right)]
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(calendar-forward-month 1))))
-	      (define-key minibuffer-local-map [(shift up)]
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(calendar-backward-week 1))))
-	      (define-key minibuffer-local-map [(shift down)]
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(calendar-forward-week 1))))
-	      (define-key minibuffer-local-map [(shift left)]
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(calendar-backward-day 1))))
-	      (define-key minibuffer-local-map [(shift right)]
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(calendar-forward-day 1))))
-	      (define-key minibuffer-local-map ">"
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(scroll-calendar-left 1))))
-	      (define-key minibuffer-local-map "<"
-		(lambda () (interactive)
-		  (org-eval-in-calendar '(scroll-calendar-right 1))))
-	      (unwind-protect
-		  (progn
-		    (use-local-map map)
-		    (setq ans (read-string prompt "" nil nil))
-		    (if (not (string-match "\\S-" ans)) (setq ans nil))
-		    (setq ans (or ans1 ans ans2)))
-		(use-local-map old-map)))))
-      ;; Naked prompt only
-      (setq ans (read-string prompt "" nil timestr)))
-    (org-detatch-overlay org-date-ovl)
+    (cond
+     (from-string (setq ans from-string))
+     (org-popup-calendar-for-date-prompt
+      (save-excursion
+	(save-window-excursion
+	  (calendar)
+	  (calendar-forward-day (- (time-to-days default-time)
+				   (calendar-absolute-from-gregorian
+				    (calendar-current-date))))
+	  (org-eval-in-calendar nil)
+	  (let* ((old-map (current-local-map))
+		 (map (copy-keymap calendar-mode-map))
+		 (minibuffer-local-map (copy-keymap minibuffer-local-map)))
+	    (define-key map (kbd "RET") 'org-calendar-select)
+	    (define-key map (if (featurep 'xemacs) [button1] [mouse-1])
+	      'org-calendar-select-mouse)
+	    (define-key map (if (featurep 'xemacs) [button2] [mouse-2])
+	      'org-calendar-select-mouse)
+	    (define-key minibuffer-local-map [(meta shift left)]
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(calendar-backward-month 1))))
+	    (define-key minibuffer-local-map [(meta shift right)]
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(calendar-forward-month 1))))
+	    (define-key minibuffer-local-map [(shift up)]
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(calendar-backward-week 1))))
+	    (define-key minibuffer-local-map [(shift down)]
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(calendar-forward-week 1))))
+	    (define-key minibuffer-local-map [(shift left)]
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(calendar-backward-day 1))))
+	    (define-key minibuffer-local-map [(shift right)]
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(calendar-forward-day 1))))
+	    (define-key minibuffer-local-map ">"
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(scroll-calendar-left 1))))
+	    (define-key minibuffer-local-map "<"
+	      (lambda () (interactive)
+		(org-eval-in-calendar '(scroll-calendar-right 1))))
+	    (unwind-protect
+		(progn
+		  (use-local-map map)
+		  (setq ans (read-string prompt "" nil nil))
+		  (if (not (string-match "\\S-" ans)) (setq ans nil))
+		  (setq ans (or ans1 ans ans2)))
+	      (use-local-map old-map))))))
+     (t ; Naked prompt only
+      (setq ans (read-string prompt "" nil timestr))))
+    (org-detach-overlay org-date-ovl)
 
     (if (string-match
 	 "^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans)
@@ -5593,6 +6067,84 @@
       (setq ans1 (format-time-string "%Y-%m-%d" time)))
     (if (active-minibuffer-window) (exit-minibuffer))))
 
+(defun org-insert-time-stamp (time &optional with-hm inactive pre post)
+  "Insert a date stamp for the date given by the internal TIME.
+WITH-HM means, use the stamp format that includes the time of the day.
+INACTIVE means use square brackets instead of angular ones, so that the
+stamp will not contribute to the agenda.
+PRE and POST are optional strings to be inserted before and after the
+stamp.
+The command returns the inserted time stamp."
+  (let ((fmt (funcall (if with-hm 'cdr 'car) org-time-stamp-formats))
+	stamp)
+    (if inactive (setq fmt (concat "[" (substring fmt 1 -1) "]")))
+    (insert (or pre ""))
+    (insert (setq stamp (format-time-string fmt time)))
+    (insert (or post ""))
+    stamp))
+
+(defun org-toggle-time-stamp-overlays ()
+  "Toggle the use of custom time stamp formats."
+  (interactive)
+  (setq org-display-custom-times (not org-display-custom-times))
+  (unless org-display-custom-times
+    (let ((p (point-min)) (bmp (buffer-modified-p)))
+      (while (setq p (next-single-property-change p 'display))
+	(if (and (get-text-property p 'display)
+		 (eq (get-text-property p 'face) 'org-date))
+	    (remove-text-properties
+	     p (setq p (next-single-property-change p 'display))
+	     '(display t))))
+      (set-buffer-modified-p bmp)))
+  (if (featurep 'xemacs)
+      (remove-text-properties (point-min) (point-max) '(end-glyph t)))
+  (org-restart-font-lock)
+  (setq org-table-may-need-update t)
+  (if org-display-custom-times
+      (message "Time stamps are overlayed with custom format")
+    (message "Time stamp overlays removed")))
+
+(defun org-display-custom-time (beg end)
+  "Overlay modified time stamp format over timestamp between BED and END."
+  (let* ((t1 (save-match-data
+	       (org-parse-time-string (buffer-substring beg end) t)))
+	 (w1 (- end beg))
+	 (with-hm (and (nth 1 t1) (nth 2 t1)))
+	 (inactive (= (char-before (1- beg)) ?\[))
+	 (tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats))
+	 (time (org-fix-decoded-time t1))
+	 (time (mapcar (lambda (x) (or x 0)) t1))
+	 (str (org-add-props
+		  (format-time-string
+		   (substring tf 1 -1) (apply 'encode-time time))
+		  nil 'mouse-face 'highlight))
+	 (w2 (length str)))
+    (if (not (= w2 w1))
+	(add-text-properties (1+ beg) (+ 2 beg)
+			     (list 'org-dwidth t 'org-dwidth-n (- w1 w2))))
+    (if (featurep 'xemacs)
+	(progn
+	  (put-text-property beg end 'invisible t)
+	  (put-text-property beg end 'end-glyph (make-glyph str)))
+      (put-text-property beg end 'display str))))
+
+(defun org-fix-decoded-time (time)
+  "Set 0 instead of nil for the first 6 elements of time.
+Don't touch the rest."
+  (let ((n 0))
+    (mapcar (lambda (x) (if (< (setq n (1+ n)) 7) (or x 0) x)) time)))
+
+(defun org-days-to-time (timestamp-string)
+  "Difference between TIMESTAMP-STRING and now in days."
+  (- (time-to-days (org-time-string-to-time timestamp-string))
+     (time-to-days (current-time))))
+
+(defun org-deadline-close (timestamp-string &optional ndays)
+  "Is the time in TIMESTAMP-STRING close to the current date?"
+  (and (< (org-days-to-time timestamp-string)
+	  (or ndays org-deadline-warning-days))
+       (not (org-entry-is-done-p))))
+
 (defun org-calendar-select-mouse (ev)
   "Return to `org-read-date' with the date currently selected.
 This is used by `org-read-date' in a temporary keymap for the calendar buffer."
@@ -5619,14 +6171,10 @@
 	 (case-fold-search nil)
 	 (regexp (concat "\\<" org-deadline-string " *<\\([^>]+\\)>"))
 	 (callback
-	  (lambda ()
-	    (and (let ((d1 (time-to-days (current-time)))
-		       (d2 (time-to-days
-			    (org-time-string-to-time (match-string 1)))))
-		   (< (- d2 d1) org-warn-days))
-		 (not (org-entry-is-done-p))))))
+	  (lambda () (org-deadline-close (match-string 1) org-warn-days))))
+
     (message "%d deadlines past-due or due within %d days"
-	     (org-occur regexp callback)
+	     (org-occur regexp nil callback)
 	     org-warn-days)))
 
 (defun org-evaluate-time-range (&optional to-buffer)
@@ -5763,10 +6311,10 @@
        (<= (match-beginning n) pos)
        (>= (match-end n) pos)))
 
-(defun org-at-timestamp-p (&optional also-inactive)
+(defun org-at-timestamp-p (&optional inactive-ok)
   "Determine if the cursor is in or at a timestamp."
   (interactive)
-  (let* ((tsr (if also-inactive org-ts-regexp3 org-ts-regexp2))
+  (let* ((tsr (if inactive-ok org-ts-regexp3 org-ts-regexp2))
 	 (pos (point))
 	 (ans (or (looking-at tsr)
 		  (save-excursion
@@ -5791,21 +6339,23 @@
 The date will be changed by N times WHAT.  WHAT can be `day', `month',
 `year', `minute', `second'.  If WHAT is not given, the cursor position
 in the timestamp determines what will be changed."
-  (let ((fmt (car org-time-stamp-formats))
+  (let ((pos (point))
+	with-hm inactive
 	org-ts-what
-	(pos (point))
 	ts time time0)
     (if (not (org-at-timestamp-p t))
 	(error "Not at a timestamp"))
-    (setq org-ts-what (or what org-ts-what))
-    (setq fmt (if (<= (abs (- (cdr org-ts-lengths)
+    (if (and (not what) (not (eq org-ts-what 'day))
+	     org-display-custom-times
+	     (get-text-property (point) 'display)
+	     (not (get-text-property (1- (point)) 'display)))
+	(setq org-ts-what 'day))
+    (setq org-ts-what (or what org-ts-what)
+	  with-hm (<= (abs (- (cdr org-ts-lengths)
 			      (- (match-end 0) (match-beginning 0))))
 		      1)
-		  (cdr org-time-stamp-formats)
-		(car org-time-stamp-formats)))
-    (if (= (char-after (match-beginning 0)) ?\[)
-	(setq fmt (concat "[" (substring fmt 1 -1) "]")))
-    (setq ts (match-string 0))
+	  inactive (= (char-after (match-beginning 0)) ?\[)
+	  ts (match-string 0))
     (replace-match "")
     (setq time0 (org-parse-time-string ts))
     (setq time
@@ -5831,7 +6381,8 @@
 	  (setcar (nthcdr 1 time0) (or (nth 1 time0) 0))
 	  (setcar (nthcdr 2 time0) (or (nth 1 time0) 0))
 	  (setq time (apply 'encode-time time0))))
-    (insert (setq org-last-changed-timestamp (format-time-string fmt time)))
+    (setq org-last-changed-timestamp
+	  (org-insert-time-stamp time with-hm inactive))
     (org-clock-update-time-maybe)
     (goto-char pos)
     ;; Try to recenter the calendar window, if any
@@ -5897,12 +6448,8 @@
 	  (beginning-of-line 1))
       (insert "\n") (backward-char 1)
       (indent-relative)
-      (insert org-clock-string " "
-	      (setq ts (concat "[" (format-time-string
-				    (substring
-				     (cdr org-time-stamp-formats) 1 -1)
-				    (current-time))
-			       "]")))
+      (insert org-clock-string " ")
+      (setq ts (org-insert-time-stamp (current-time) 'with-hm 'inactive))
       (move-marker org-clock-marker (point))
       (message "Clock started at %s" ts))))
 
@@ -5923,19 +6470,17 @@
 	  (setq ts (match-string 2))
 	(if fail-quietly (throw 'exit nil) (error "Clock start time is gone")))
       (goto-char org-clock-marker)
-      (setq te (concat "[" (format-time-string
-			    (substring
-			     (cdr org-time-stamp-formats) 1 -1)
-			    (current-time))
-		       "]"))
+      (insert "--")
+      (setq te (org-insert-time-stamp (current-time) 'with-hm 'inactive))
       (setq s (- (time-to-seconds (apply 'encode-time (org-parse-time-string te)))
 		 (time-to-seconds (apply 'encode-time (org-parse-time-string ts))))
 	    h (floor (/ s 3600))
 	    s (- s (* 3600 h))
 	    m (floor (/ s 60))
 	    s (- s (* 60 s)))
-      (insert "--" te " => " (format "%2d:%02d" h m))
+      (insert " => " (format "%2d:%02d" h m))
       (move-marker org-clock-marker nil)
+      (org-add-log-maybe 'clock-out)
       (message "Clock stopped at %s after HH:MM = %d:%02d" te h m)))))
 
 (defun org-clock-cancel ()
@@ -6014,9 +6559,10 @@
 	(setq h (/ org-clock-file-total-minutes 60)
 	      m (- org-clock-file-total-minutes (* 60 h)))
 	;; Arrange to remove the overlays upon next change.
-	(org-add-hook 'before-change-functions 'org-remove-clock-overlays
-		      nil 'local)))
-  (message "Total file time: %d:%02d (%d hours and %d minutes)" h m h m)))
+	(when org-remove-highlights-with-change
+	  (org-add-hook 'before-change-functions 'org-remove-clock-overlays
+			nil 'local))))
+    (message "Total file time: %d:%02d (%d hours and %d minutes)" h m h m)))
 
 (defvar org-clock-overlays nil)
 (make-variable-buffer-local 'org-clock-overlays)
@@ -6041,7 +6587,10 @@
 					    (make-string (- 10 l) ?\ ))
 			 '(face secondary-selection))
 		     ""))
-    (org-overlay-put ov 'display tx)
+    (if (not (featurep 'xemacs))
+	(org-overlay-put ov 'display tx)
+      (org-overlay-put ov 'invisible t)
+      (org-overlay-put ov 'end-glyph (make-glyph tx)))
     (push ov org-clock-overlays)))
 
 (defun org-remove-clock-overlays (&optional beg end noremove)
@@ -6064,7 +6613,12 @@
 	     (< (point) org-clock-marker)
 	     (> (save-excursion (outline-next-heading) (point))
 		org-clock-marker))
-    (org-clock-out)))
+    ;; Clock out, but don't accept a logging message for this.
+    (let ((org-log-done (if (and (listp org-log-done)
+				 (member 'clock-out org-log-done))
+			    '(done)
+			  org-log-done)))
+      (org-clock-out))))
 
 (add-hook 'org-after-todo-state-change-hook
 	  'org-clock-out-if-current)
@@ -6190,6 +6744,7 @@
 		     (apply 'encode-time (org-parse-time-string te)))))
     (move-marker ins (point))
     (setq ipos (point))
+    ;; FIXME: does not yet use org-insert-time-stamp
     (insert-before-markers "Clock summary at ["
 			   (substring
 			    (format-time-string (cdr org-time-stamp-formats))
@@ -6281,7 +6836,6 @@
 (defvar org-agenda-menu) ; defined later in this file.
 (defvar org-agenda-follow-mode nil)
 (defvar org-agenda-show-log nil)
-(defvar org-agenda-buffer-name "*Org Agenda*")
 (defvar org-agenda-redo-command nil)
 (defvar org-agenda-mode-hook nil)
 (defvar org-agenda-type nil)
@@ -6325,6 +6879,7 @@
 (define-key org-agenda-mode-map "\C-i"     'org-agenda-goto)
 (define-key org-agenda-mode-map [(tab)]    'org-agenda-goto)
 (define-key org-agenda-mode-map "\C-m"     'org-agenda-switch-to)
+(define-key org-agenda-mode-map "\C-k"     'org-agenda-kill)
 (define-key org-agenda-mode-map " "        'org-agenda-show)
 (define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo)
 (define-key org-agenda-mode-map "o"        'delete-other-windows)
@@ -6401,7 +6956,7 @@
     "--"
     ["Show" org-agenda-show t]
     ["Go To (other window)" org-agenda-goto t]
-    ["Go To (one window)" org-agenda-switch-to t]
+    ["Go To (this window)" org-agenda-switch-to t]
     ["Follow Mode" org-agenda-follow-mode
      :style toggle :selected org-agenda-follow-mode :active t]
     "--"
@@ -6455,19 +7010,25 @@
     ["Exit and Release Buffers" org-agenda-exit t]
     ))
 
+(defvar org-agenda-restrict nil)
+(defvar org-agenda-restrict-begin (make-marker))
+(defvar org-agenda-restrict-end (make-marker))
+(defvar org-agenda-last-dispatch-buffer nil)
+
 ;;;###autoload
 (defun org-agenda (arg)
   "Dispatch agenda commands to collect entries to the agenda buffer.
 Prompts for a character to select a command.  Any prefix arg will be passed
 on to the selected command.  The default selections are:
-
-a     Call `org-agenda' to display the agenda for the current day or week.
+g
+a     Call `org-agenda-list' to display the agenda for current day or week.
 t     Call `org-todo-list' to display the global todo list.
 T     Call `org-todo-list' to display the global todo list, select only
       entries with a specific TODO keyword (the user gets a prompt).
 m     Call `org-tags-view' to display headlines with tags matching
       a condition  (the user is prompted for the condition).
 M     Like `m', but select only TODO entries, no ordinary headlines.
+l     Create a timeeline for the current buffer.
 
 More commands can be added by configuring the variable
 `org-agenda-custom-commands'.  In particular, specific tags and TODO keyword
@@ -6478,11 +7039,18 @@
 next use of \\[org-agenda]) restricted to the current file."
   (interactive "P")
   (catch 'exit
-    (let ((restrict-ok (and buffer-file-name (org-mode-p)))
-	  (bfn buffer-file-name)
-	  (custom org-agenda-custom-commands)
-	  c entry key type string)
+    (let* ((buf (current-buffer))
+	   (bfn (buffer-file-name (buffer-base-buffer)))
+	   (restrict-ok (and bfn (org-mode-p)))
+	   (custom org-agenda-custom-commands)
+	   c entry key type match lprops)
+      ;; Turn off restriction
       (put 'org-agenda-files 'org-restrict nil)
+      (setq org-agenda-restrict nil)
+      (move-marker org-agenda-restrict-begin nil)
+      (move-marker org-agenda-restrict-end nil)
+      ;; Remember where this call originated
+      (setq org-agenda-last-dispatch-buffer (current-buffer))
       (save-window-excursion
 	(delete-other-windows)
 	(switch-to-buffer-other-window " *Agenda Commands*")
@@ -6493,32 +7061,56 @@
 a   Agenda for current week or day
 t   List of all TODO entries             T   Entries with special TODO kwd
 m   Match a TAGS query                   M   Like m, but only TODO entries
-C   Configure your own agenda commands")
+L   Timeline for current buffer          C   Configure custom agenda commands")
 	(while (setq entry (pop custom))
-	  (setq key (car entry) type (nth 1 entry) string (nth 2 entry))
+	  (setq key (car entry) type (nth 1 entry) match (nth 2 entry))
 	  (insert (format "\n%-4s%-14s: %s"
 			  key
 			  (cond
+			   ((stringp type) type)
 			   ((eq type 'tags) "Tags query")
 			   ((eq type 'todo) "TODO keyword")
 			   ((eq type 'tags-tree) "Tags tree")
 			   ((eq type 'todo-tree) "TODO kwd tree")
 			   ((eq type 'occur-tree) "Occur tree")
 			   (t "???"))
-			  (org-add-props string nil 'face 'org-warning))))
+			  (if (stringp match)
+			      (org-add-props match nil 'face 'org-warning)
+			    (format "set of %d commands" (+ -2 (length entry)))))))
+	(if restrict-ok
+	    (insert "\n"
+		    (org-add-props "1   Restrict call to current buffer      0   Restrict call to region or subtree" nil 'face 'org-table)))
+
 	(goto-char (point-min))
 	(if (fboundp 'fit-window-to-buffer) (fit-window-to-buffer))
 	(message "Press key for agenda command%s"
-		 (if restrict-ok ", or [1] to restrict to current file" ""))
+		 (if restrict-ok ", or [1] or [0] to restrict" ""))
 	(setq c (read-char-exclusive))
 	(message "")
-	(when (equal c ?1)
+	(when (memq c '(?L ?1 ?0))
 	  (if restrict-ok
 	      (put 'org-agenda-files 'org-restrict (list bfn))
 	    (error "Cannot restrict agenda to current buffer"))
-	  (message "Press key for agenda command%s"
-		   (if restrict-ok " (restricted to current file)" ""))
-	  (setq c (read-char-exclusive))
+	  (with-current-buffer " *Agenda Commands*"
+	    (goto-char (point-max))
+	    (delete-region (point-at-bol) (point))
+	    (goto-char (point-min)))
+	  (when (eq c ?0)
+	    (setq org-agenda-restrict t)
+	    (with-current-buffer buf
+	      (if (org-region-active-p)
+		  (progn
+		    (move-marker org-agenda-restrict-begin (region-beginning))
+		    (move-marker org-agenda-restrict-end (region-end)))
+		(save-excursion
+		  (org-back-to-heading t)
+		  (move-marker org-agenda-restrict-begin (point))
+		  (move-marker org-agenda-restrict-end
+			       (progn (org-end-of-subtree t)))))))
+	  (unless (eq c ?L)
+	    (message "Press key for agenda command%s"
+		     (if restrict-ok " (restricted to current file)" ""))
+	    (setq c (read-char-exclusive)))
 	  (message "")))
       (require 'calendar)  ; FIXME: can we avoid this for some commands?
       ;; For example the todo list should not need it (but does...)
@@ -6529,28 +7121,87 @@
        ((equal c ?T) (org-call-with-arg 'org-todo-list (or arg '(4))))
        ((equal c ?m) (call-interactively 'org-tags-view))
        ((equal c ?M) (org-call-with-arg 'org-tags-view (or arg '(4))))
+       ((equal c ?L)
+	(unless restrict-ok
+	  (error "This is not an Org-mode file"))
+	(org-call-with-arg 'org-timeline arg))
        ((setq entry (assoc (char-to-string c) org-agenda-custom-commands))
-	(setq type (nth 1 entry) string (nth 2 entry))
-	(cond
-	 ((eq type 'tags)
-	  (org-tags-view current-prefix-arg string))
-	 ((eq type 'tags-todo)
-	  (org-tags-view '(4) string))
-	 ((eq type 'todo)
-	  (org-todo-list string))
-	 ((eq type 'tags-tree)
-	  (org-check-for-org-mode)
-	  (org-tags-sparse-tree current-prefix-arg string))
-	 ((eq type 'todo-tree)
-	  (org-check-for-org-mode)
-	  (org-occur (concat "^" outline-regexp "[ \t]*"
-			     (regexp-quote string) "\\>")))
-	 ((eq type 'occur-tree)
-	  (org-check-for-org-mode)
-	  (org-occur string))
-	 (t (error "Invalid custom agenda command type %s" type))))
+	(if (symbolp (nth 1 entry))
+	    (progn
+	      (setq type (nth 1 entry) match (nth 2 entry) lprops (nth 3 entry)
+		    lprops (nth 3 entry))
+	      (cond
+	       ((eq type 'tags)
+		(org-let lprops '(org-tags-view current-prefix-arg match)))
+	       ((eq type 'tags-todo)
+		(org-let lprops '(org-tags-view '(4) match)))
+	       ((eq type 'todo)
+		(org-let lprops '(org-todo-list match)))
+	       ((eq type 'tags-tree)
+		(org-check-for-org-mode)
+		(org-let lprops '(org-tags-sparse-tree current-prefix-arg match)))
+	       ((eq type 'todo-tree)
+		(org-check-for-org-mode)
+		(org-let lprops
+		  '(org-occur (concat "^" outline-regexp "[ \t]*"
+				      (regexp-quote match) "\\>"))))
+	       ((eq type 'occur-tree)
+		(org-check-for-org-mode)
+		(org-let lprops '(org-occur match)))
+	       (t (error "Invalid custom agenda command type %s" type))))
+	  (org-run-agenda-series (cddr entry))))
        (t (error "Invalid key"))))))
 
+;; FIXME: what is the meaning of WINDOW?????
+(defun org-run-agenda-series (series &optional window)
+  (org-prepare-agenda)
+  (let* ((org-agenda-multi t)
+	 (redo (list 'org-run-agenda-series (list 'quote series)))
+	 (org-select-agenda-window t)
+	 (cmds (car series))
+	 (gprops (nth 1 series))
+	 match ;; The byte compiler incorrectly complains about this.  Keep it!
+	 cmd type lprops)
+    (while (setq cmd (pop cmds))
+      (setq type (car cmd) match (nth 1 cmd) lprops (nth 2 cmd))
+      (cond
+       ((eq type 'agenda)
+	(call-interactively 'org-agenda-list))
+       ((eq type 'alltodo)
+	(call-interactively 'org-todo-list))
+       ((eq type 'tags)
+	(org-let2 gprops lprops
+		  '(org-tags-view current-prefix-arg match)))
+       ((eq type 'tags-todo)
+	(org-let2 gprops lprops
+		  '(org-tags-view '(4) match)))
+       ((eq type 'todo)
+	(org-let2 gprops lprops
+		  '(org-todo-list match)))
+       (t (error "Invalid type in command series"))))
+    (widen)
+    (setq org-agenda-redo-command redo)
+    (goto-char (point-min)))
+  (org-finalize-agenda))
+
+;;;###autoload
+(defmacro org-batch-agenda (cmd-key &rest parameters)
+  "Run an agenda command in batch mode, send result to STDOUT.
+CMD-KEY is a string that is also a key in `org-agenda-custom-commands'.
+Paramters are alternating variable names and values that will be bound
+before running the agenda command."
+  (let (pars)
+    (while parameters
+      (push (list (pop parameters) (if parameters (pop parameters))) pars))
+    (flet ((read-char-exclusive () (string-to-char cmd-key)))
+      (eval (list 'let (nreverse pars) '(org-agenda nil))))
+    (set-buffer "*Org Agenda*")
+    (princ (buffer-string))))
+
+(defmacro org-no-read-only (&rest body)
+  "Inhibit read-only for BODY."
+  `(let ((inhibit-read-only t)) ,@body))
+
 (defun org-check-for-org-mode ()
   "Make sure current buffer is in org-mode.  Error if not."
   (or (org-mode-p)
@@ -6560,6 +7211,7 @@
 (defun org-fit-agenda-window ()
   "Fit the window to the buffer size."
   (and org-fit-agenda-window
+       (memq org-agenda-window-setup '(reorganize-frame))
        (fboundp 'fit-window-to-buffer)
        (fit-window-to-buffer nil (/ (* (frame-height) 3) 4)
                              (/ (frame-height) 2))))
@@ -6633,7 +7285,7 @@
 
 (defun org-agenda-maybe-reset-markers (&optional force)
   "Reset markers created by `org-agenda'.  But only if they are old enough."
-  (if (or force
+  (if (or (and force (not org-agenda-multi))
 	  (> (- (time-to-seconds (current-time))
 		org-agenda-last-marker-time)
 	     5))
@@ -6667,9 +7319,7 @@
 	(with-current-buffer buf (save-buffer)))
       (kill-buffer buf))))
 
-(defvar org-respect-restriction nil)    ; Dynamically-scoped param.
-
-(defun org-timeline (&optional include-all keep-modes)
+(defun org-timeline (&optional include-all)
   "Show a time-sorted view of the entries in the current org file.
 Only entries with a time stamp of today or later will be listed.  With
 \\[universal-argument] prefix, all unfinished TODO items will also be shown,
@@ -6678,14 +7328,12 @@
 dates."
   (interactive "P")
   (require 'calendar)
-  (org-agenda-maybe-reset-markers 'force)
-  (org-compile-prefix-format org-timeline-prefix-format)
+  (org-compile-prefix-format 'timeline)
+  (org-set-sorting-strategy 'timeline)
   (let* ((dopast t)
 	 (dotodo include-all)
 	 (doclosed org-agenda-show-log)
-	 (org-agenda-keep-modes keep-modes)
 	 (entry buffer-file-name)
-	 (org-agenda-files (list buffer-file-name))
 	 (date (calendar-current-date))
 	 (win (selected-window))
 	 (pos1 (point))
@@ -6695,26 +7343,19 @@
 					 t doclosed ; always include today
 					 org-timeline-show-empty-dates))
 	 (today (time-to-days (current-time)))
-	 (org-respect-restriction t)
 	 (past t)
 	 args
 	 s e rtn d emptyp)
-    (org-prepare-agenda-buffers org-agenda-files)
     (setq org-agenda-redo-command
 	  (list 'progn
 		(list 'switch-to-buffer-other-window (current-buffer))
-		(list 'org-timeline (list 'quote include-all) t)))
+		(list 'org-timeline (list 'quote include-all))))
     (if (not dopast)
 	;; Remove past dates from the list of dates.
 	(setq day-numbers (delq nil (mapcar (lambda(x)
 					      (if (>= x today) x nil))
 					    day-numbers))))
-    (switch-to-buffer-other-window
-     (get-buffer-create org-agenda-buffer-name))
-    (setq buffer-read-only nil)
-    (erase-buffer)
-    (org-agenda-mode) (setq buffer-read-only nil)
-    (org-set-local 'org-agenda-type 'timeline)
+    (org-prepare-agenda)
     (if doclosed (push :closed args))
     (push :timestamp args)
     (if dotodo (push :todo args))
@@ -6749,15 +7390,21 @@
 	      (and rtn (insert (org-finalize-agenda-entries rtn) "\n"))
 	      (put-text-property s (1- (point)) 'day d)))))
     (goto-char (point-min))
-    (setq buffer-read-only t)
     (goto-char (or (text-property-any (point-min) (point-max) 'org-today t)
 		   (point-min)))
-    (when (not org-select-timeline-window)
+    (add-text-properties (point-min) (point-max) '(org-agenda-type timeline))
+    (org-finalize-agenda)
+    (setq buffer-read-only t)
+    (when (not org-select-agenda-window)
       (select-window win)
       (goto-char pos1))))
 
+(defvar org-agenda-overriding-arguments nil) ; dynamically scoped parameter
+(defvar org-agenda-last-arguments nil
+  "The arguments of the previous call to org-agenda")
+
 ;;;###autoload
-(defun org-agenda-list (&optional include-all start-day ndays keep-modes)
+(defun org-agenda-list (&optional include-all start-day ndays)
   "Produce a weekly view from all files in variable `org-agenda-files'.
 The view will be for the current week, but from the overview buffer you
 will be able to go to other weeks.
@@ -6770,14 +7417,18 @@
 given in `org-agenda-start-on-weekday'.
 NDAYS defaults to `org-agenda-ndays'."
   (interactive "P")
-  (org-agenda-maybe-reset-markers 'force)
-  (org-compile-prefix-format org-agenda-prefix-format)
+  (if org-agenda-overriding-arguments
+      (setq include-all (car org-agenda-overriding-arguments)
+	    start-day (nth 1 org-agenda-overriding-arguments)
+	    ndays (nth 2 org-agenda-overriding-arguments)))
+  (setq org-agenda-last-arguments (list include-all start-day ndays))
+  (org-compile-prefix-format 'agenda)
+  (org-set-sorting-strategy 'agenda)
   (require 'calendar)
   (let* ((org-agenda-start-on-weekday
 	  (if (or (equal ndays 1)
 		  (and (null ndays) (equal 1 org-agenda-ndays)))
 	      nil org-agenda-start-on-weekday))
-	 (org-agenda-keep-modes keep-modes)
 	 (thefiles (org-agenda-files))
 	 (files thefiles)
 	 (win (selected-window))
@@ -6794,9 +7445,8 @@
 	 (day-numbers (list start))
 	 (inhibit-redisplay t)
 	 s e rtn rtnall file date d start-pos end-pos todayp nd)
-    (org-prepare-agenda-buffers files)
     (setq org-agenda-redo-command
-	  (list 'org-agenda-list (list 'quote include-all) start-day ndays t))
+	  (list 'org-agenda-list (list 'quote include-all) start-day ndays))
     ;; Make the list of days
     (setq ndays (or ndays org-agenda-ndays)
 	  nd ndays)
@@ -6804,15 +7454,7 @@
       (push (1+ (car day-numbers)) day-numbers)
       (setq ndays (1- ndays)))
     (setq day-numbers (nreverse day-numbers))
-    (if (not (equal (current-buffer) (get-buffer org-agenda-buffer-name)))
-	(progn
-	  (delete-other-windows)
-	  (switch-to-buffer-other-window
-	   (get-buffer-create org-agenda-buffer-name))))
-    (setq buffer-read-only nil)
-    (erase-buffer)
-    (org-agenda-mode) (setq buffer-read-only nil)
-    (org-set-local 'org-agenda-type 'agenda)
+    (org-prepare-agenda)
     (org-set-local 'starting-day (car day-numbers))
     (org-set-local 'include-all-loc include-all)
     (when (and (or include-all org-agenda-include-all-todo)
@@ -6831,6 +7473,9 @@
 	(add-text-properties (point-min) (1- (point))
 			     (list 'face 'org-level-3))
 	(insert (org-finalize-agenda-entries rtnall) "\n")))
+    (setq s (point))
+    (insert (if (= nd 7) "Week-" "Day-") "agenda:\n")
+    (add-text-properties s (1- (point)) (list 'face 'org-level-3))
     (while (setq d (pop day-numbers))
       (setq date (calendar-gregorian-from-absolute d)
 	    s (point))
@@ -6866,6 +7511,8 @@
 			    (extract-calendar-year date)))
 	    (put-text-property s (1- (point)) 'face
 			       'org-level-3)
+	    (if todayp (put-text-property s (1- (point)) 'org-today t))
+
 	    (if rtnall (insert
 			(org-finalize-agenda-entries
 			 (org-agenda-add-time-grid-maybe
@@ -6873,7 +7520,6 @@
 			"\n"))
 	    (put-text-property s (1- (point)) 'day d))))
     (goto-char (point-min))
-    (setq buffer-read-only t)
     (org-fit-agenda-window)
     (unless (and (pos-visible-in-window-p (point-min))
 		 (pos-visible-in-window-p (point-max)))
@@ -6884,23 +7530,26 @@
 	    (goto-char (or start-pos 1))
 	    (recenter 1))))
     (goto-char (or start-pos 1))
+    (add-text-properties (point-min) (point-max) '(org-agenda-type agenda))
+    (org-finalize-agenda)
+    (setq buffer-read-only t)
     (if (not org-select-agenda-window) (select-window win))
     (message "")))
 
 (defvar org-select-this-todo-keyword nil)
 
 ;;;###autoload
-(defun org-todo-list (arg &optional keep-modes)
+(defun org-todo-list (arg)
   "Show all TODO entries from all agenda file in a single list.
 The prefix arg can be used to select a specific TODO keyword and limit
 the list to these.  When using \\[universal-argument], you will be prompted
 for a keyword.  A numeric prefix directly selects the Nth keyword in
 `org-todo-keywords'."
   (interactive "P")
-  (org-agenda-maybe-reset-markers 'force)
-  (org-compile-prefix-format org-agenda-prefix-format)
-  (let* ((org-agenda-keep-modes keep-modes)
-	 (today (time-to-days (current-time)))
+  (require 'calendar)
+  (org-compile-prefix-format 'todo)
+  (org-set-sorting-strategy 'todo)
+  (let* ((today (time-to-days (current-time)))
 	 (date (calendar-gregorian-from-absolute today))
 	 (win (selected-window))
 	 (kwds org-todo-keywords)
@@ -6915,22 +7564,13 @@
 	    (completing-read "Keyword: " (mapcar 'list org-todo-keywords)
 			     nil t)))
     (and (equal 0 arg) (setq org-select-this-todo-keyword nil))
-    (if (not (equal (current-buffer) (get-buffer org-agenda-buffer-name)))
-	(progn
-	  (delete-other-windows)
-	  (switch-to-buffer-other-window
-	   (get-buffer-create org-agenda-buffer-name))))
-    (setq buffer-read-only nil)
-    (erase-buffer)
-    (org-agenda-mode) (setq buffer-read-only nil)
-    (org-set-local 'org-agenda-type 'todo)
+    (org-prepare-agenda)
     (org-set-local 'last-arg arg)
     (org-set-local 'org-todo-keywords kwds)
-    (org-set-local 'org-agenda-redo-command
-		   '(org-todo-list (or current-prefix-arg last-arg) t))
+    (setq org-agenda-redo-command
+	  '(org-todo-list (or current-prefix-arg last-arg)))
     (setq files (org-agenda-files)
 	  rtnall nil)
-    (org-prepare-agenda-buffers files)
     (while (setq file (pop files))
       (catch 'nextfile
 	(org-check-agenda-file file)
@@ -6943,19 +7583,22 @@
     (insert (or org-select-this-todo-keyword "ALL") "\n")
     (add-text-properties pos (1- (point)) (list 'face 'org-warning))
     (setq pos (point))
-    (insert
-     "Available with `N r': (0)ALL "
-     (let ((n 0))
-       (mapconcat (lambda (x)
-		    (format "(%d)%s" (setq n (1+ n)) x))
-		  org-todo-keywords " "))
-     "\n")
+    (unless org-agenda-multi
+      (insert
+       "Available with `N r': (0)ALL "
+       (let ((n 0))
+	 (mapconcat (lambda (x)
+		      (format "(%d)%s" (setq n (1+ n)) x))
+		    org-todo-keywords " "))
+       "\n"))
     (add-text-properties pos (1- (point)) (list 'face 'org-level-3))
     (when rtnall
       (insert (org-finalize-agenda-entries rtnall) "\n"))
     (goto-char (point-min))
+    (org-fit-agenda-window)
+    (add-text-properties (point-min) (point-max) '(org-agenda-type todo))
+    (org-finalize-agenda)
     (setq buffer-read-only t)
-    (org-fit-agenda-window)
     (if (not org-select-agenda-window) (select-window win))))
 
 (defun org-check-agenda-file (file)
@@ -6985,7 +7628,12 @@
   (let ((buf (current-buffer)))
     (if (not (one-window-p)) (delete-window))
     (kill-buffer buf)
-    (org-agenda-maybe-reset-markers 'force)))
+    (org-agenda-maybe-reset-markers 'force))
+  ;; Maybe restore the pre-agenda window configuration.
+  (and org-agenda-restore-windows-after-quit
+       (not (eq org-agenda-window-setup 'other-frame))
+       org-pre-agenda-window-conf
+       (set-window-configuration org-pre-agenda-window-conf)))
 
 (defun org-agenda-exit ()
   "Exit agenda by removing the window or the buffer.
@@ -6996,7 +7644,6 @@
   (setq org-agenda-new-buffers nil)
   (org-agenda-quit))
 
-;; FIXME: move this function.
 (defun org-save-all-org-buffers ()
   "Save all Org-mode buffers without user confirmation."
   (interactive)
@@ -7008,48 +7655,73 @@
   "Rebuild Agenda.
 When this is the global TODO list, a prefix argument will be interpreted."
   (interactive)
-  (message "Rebuilding agenda buffer...")
-  (eval org-agenda-redo-command)
-  (message "Rebuilding agenda buffer...done"))
+  (let* ((org-agenda-keep-modes t)
+	 (line (org-current-line))
+	 (window-line (- line (org-current-line (window-start)))))
+    (message "Rebuilding agenda buffer...")
+    (eval org-agenda-redo-command)
+    (message "Rebuilding agenda buffer...done")
+    (goto-line line)
+    (recenter window-line)))
 
 (defun org-agenda-goto-today ()
   "Go to today."
   (interactive)
   (org-agenda-check-type t 'timeline 'agenda)
-  (if (boundp 'starting-day)
-      (let ((cmd (car org-agenda-redo-command))
-	    (iall (nth 1 org-agenda-redo-command))
-	    (nday (nth 3 org-agenda-redo-command))
-	    (keep (nth 4 org-agenda-redo-command)))
-	(eval (list cmd iall nil nday keep)))
-    (goto-char (or (text-property-any (point-min) (point-max) 'org-today t)
-		   (point-min)))))
+  (let ((tdpos (text-property-any (point-min) (point-max) 'org-today t)))
+    (cond
+     (tdpos (goto-char tdpos))
+     ((eq org-agenda-type 'agenda)
+      (let ((org-agenda-overriding-arguments org-agenda-last-arguments))
+	(setf (nth 1 org-agenda-overriding-arguments) nil)
+	(org-agenda-redo)
+	(org-agenda-find-today-or-agenda)))
+     (t (error "Cannot find today")))))
+
+(defun org-agenda-find-today-or-agenda ()
+  (goto-char
+   (or (text-property-any (point-min) (point-max) 'org-today t)
+       (text-property-any (point-min) (point-max) 'org-agenda-type 'agenda)
+       (point-min))))
 
 (defun org-agenda-later (arg)
   "Go forward in time by `org-agenda-ndays' days.
 With prefix ARG, go forward that many times `org-agenda-ndays'."
   (interactive "p")
   (org-agenda-check-type t 'agenda)
-  (org-agenda-list (if (boundp 'include-all-loc) include-all-loc nil)
-		   (+ starting-day (* arg org-agenda-ndays)) nil t))
+  (let ((org-agenda-overriding-arguments
+	 (list (car org-agenda-last-arguments)
+	       (+ starting-day (* arg org-agenda-ndays))
+	       nil t)))
+    (org-agenda-redo)
+    (org-agenda-find-today-or-agenda)))
 
 (defun org-agenda-earlier (arg)
   "Go back in time by `org-agenda-ndays' days.
 With prefix ARG, go back that many times `org-agenda-ndays'."
   (interactive "p")
   (org-agenda-check-type t 'agenda)
-  (org-agenda-list (if (boundp 'include-all-loc) include-all-loc nil)
-		   (- starting-day (* arg org-agenda-ndays)) nil t))
+  (let ((org-agenda-overriding-arguments
+	 (list (car org-agenda-last-arguments)
+	       (- starting-day (* arg org-agenda-ndays))
+	       nil t)))
+    (org-agenda-redo)
+    (org-agenda-find-today-or-agenda)))
 
 (defun org-agenda-week-view ()
   "Switch to weekly view for agenda."
   (interactive)
   (org-agenda-check-type t 'agenda)
+  (if (= org-agenda-ndays 7)
+      (error "This is already the week view"))
   (setq org-agenda-ndays 7)
-  (org-agenda-list include-all-loc
-		   (or (get-text-property (point) 'day)
+  (let ((org-agenda-overriding-arguments
+	 (list (car org-agenda-last-arguments)
+	       (or (get-text-property (point) 'day)
 		       starting-day)
-		   nil t)
+	       nil t)))
+    (org-agenda-redo)
+    (org-agenda-find-today-or-agenda))
   (org-agenda-set-mode-name)
   (message "Switched to week view"))
 
@@ -7057,11 +7729,16 @@
   "Switch to daily view for agenda."
   (interactive)
   (org-agenda-check-type t 'agenda)
+  (if (= org-agenda-ndays 1)
+      (error "This is already the day view"))
   (setq org-agenda-ndays 1)
-  (org-agenda-list include-all-loc
-		   (or (get-text-property (point) 'day)
+  (let ((org-agenda-overriding-arguments
+	 (list (car org-agenda-last-arguments)
+	       (or (get-text-property (point) 'day)
 		       starting-day)
-		   nil t)
+	       nil t)))
+    (org-agenda-redo)
+    (org-agenda-find-today-or-agenda))
   (org-agenda-set-mode-name)
   (message "Switched to day view"))
 
@@ -7151,6 +7828,7 @@
 
 (defun org-agenda-post-command-hook ()
   (and (eolp) (not (bolp)) (backward-char 1))
+  (setq org-agenda-type (get-text-property (point) 'org-agenda-type))
   (if (and org-agenda-follow-mode
 	   (get-text-property (point) 'org-marker))
       (org-agenda-show)))
@@ -7249,6 +7927,7 @@
       (error
        (add-to-diary-list original-date  "Org-mode dummy" "" nil)))))
 
+;;;###autoload
 (defun org-cycle-agenda-files ()
   "Cycle through the files in `org-agenda-files'.
 If the current buffer visits an agenda file, find the next one in the list.
@@ -7405,7 +8084,8 @@
 by the caller, because this is how the calendar works.  Don't use this
 function from a program - use `org-agenda-get-day-entries' instead."
   (org-agenda-maybe-reset-markers)
-  (org-compile-prefix-format org-agenda-prefix-format)
+  (org-compile-prefix-format 'agenda)
+  (org-set-sorting-strategy 'agenda)
   (setq args (or args '(:deadline :scheduled :timestamp)))
   (let* ((files (if (and entry (stringp entry) (string-match "\\S-" entry))
 		    (list entry)
@@ -7471,12 +8151,9 @@
 	(let ((case-fold-search nil))
 	  (save-excursion
 	    (save-restriction
-	      (if org-respect-restriction
-		  (if (org-region-active-p)
-		      ;; Respect a region to restrict search
-		      (narrow-to-region (region-beginning) (region-end)))
-		;; If we work for the calendar or many files,
-		;; get rid of any restriction
+	      (if org-agenda-restrict
+		  (narrow-to-region org-agenda-restrict-begin
+				    org-agenda-restrict-end)
 		(widen))
 	      ;; The way we repeatedly append to `results' makes it O(n^2) :-(
 	      (while (setq arg (pop args))
@@ -7508,20 +8185,20 @@
     (and (re-search-backward "[\r\n]\\*" nil t)
 	 (looking-at org-nl-done-regexp))))
 
-(defun org-at-date-range-p ()
+(defun org-at-date-range-p (&optional inactive-ok)
   "Is the cursor inside a date range?"
   (interactive)
   (save-excursion
     (catch 'exit
       (let ((pos (point)))
-	(skip-chars-backward "^<\r\n")
-	(skip-chars-backward "<")
-	(and (looking-at org-tr-regexp)
+	(skip-chars-backward "^[<\r\n")
+	(skip-chars-backward "<[")
+	(and (looking-at (if inactive-ok org-tr-regexp-both org-tr-regexp))
 	     (>= (match-end 0) pos)
 	     (throw 'exit t))
-	(skip-chars-backward "^<\r\n")
-	(skip-chars-backward "<")
-	(and (looking-at org-tr-regexp)
+	(skip-chars-backward "^<[\r\n")
+	(skip-chars-backward "<[")
+	(and (looking-at (if inactive-ok org-tr-regexp-both org-tr-regexp))
 	     (>= (match-end 0) pos)
 	     (throw 'exit t)))
       nil)))
@@ -7542,17 +8219,25 @@
 				     "\\)\\>")
 			   org-not-done-regexp)
 			 "[^\n\r]*\\)"))
-	 (sched-re (concat ".*\n?.*?" org-scheduled-time-regexp))
+	 (deadline-re (concat ".*\\(\n[^*].*\\)?" org-deadline-time-regexp))
+	 (sched-re (concat ".*\\(\n[^*].*\\)?" org-scheduled-time-regexp))
+; FIXME why was this wrong?	 (sched-re (concat ".*\n?.*?" org-scheduled-time-regexp))
 	 marker priority category tags
 	 ee txt)
     (goto-char (point-min))
     (while (re-search-forward regexp nil t)
       (catch :skip
-	(when (and org-agenda-todo-ignore-scheduled
-		   (looking-at sched-re))
-	  ;; FIXME: the following test also happens below, but we need it here
-	  (or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
-	  (throw :skip nil))
+	(save-match-data
+	  (beginning-of-line)
+	  (when (or (and org-agenda-todo-ignore-scheduled
+			 (looking-at sched-re))
+		    (and org-agenda-todo-ignore-deadlines
+			 (looking-at deadline-re)
+			 (org-deadline-close (match-string 2))))
+
+	    ;; FIXME: the following test also happens below, but we need it here
+	    (or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
+	    (throw :skip nil)))
 	(org-agenda-skip)
 	(goto-char (match-beginning 1))
 	(setq marker (org-agenda-new-marker (1+ (match-beginning 0)))
@@ -7849,7 +8534,6 @@
 		'priority (org-get-priority txt) 'category category)
 	      (push txt ee)))
 	(goto-char pos)))
-;	(outline-next-heading))) ;FIXME: correct to be removed??????
     ;; Sort the entries by expiration date.
     (nreverse ee)))
 
@@ -7888,7 +8572,8 @@
   "A flag, set by `org-compile-prefix-format'.
 The flag is set if the currently compiled format contains a `%T'.")
 
-(defun org-format-agenda-item (extra txt &optional category tags dotime noprefix)
+(defun org-format-agenda-item (extra txt &optional category tags dotime
+				     noprefix)
   "Format TXT to be inserted into the agenda buffer.
 In particular, it adds the prefix and corresponding text properties.  EXTRA
 must be a string and replaces the `%s' specifier in the prefix format.
@@ -7899,7 +8584,7 @@
 the `%t' specifier in the format.  When DOTIME is a string, this string is
 searched for a time before TXT is.  NOPREFIX is a flag and indicates that
 only the correctly processes TXT should be returned - this is used by
-`org-agenda-change-all-lines'.  TAG can be the tag of the headline."
+`org-agenda-change-all-lines'.  TAGS can be the tags of the headline."
   (save-match-data
     ;; Diary entries sometimes have extra whitespace at the beginning
     (if (string-match "^ +" txt) (setq txt (replace-match "" nil nil txt)))
@@ -7965,6 +8650,9 @@
 	'time-of-day time-of-day
 	'dotime dotime))))
 
+(defvar org-agenda-sorting-strategy)
+(defvar org-agenda-sorting-strategy-selected nil)
+
 (defun org-agenda-add-time-grid-maybe (list ndays todayp)
   (catch 'exit
     (cond ((not org-agenda-use-time-grid) (throw 'exit list))
@@ -7992,16 +8680,23 @@
 		new)
 	  (put-text-property
 	   1 (length (car new)) 'face 'org-time-grid (car new))))
-      (if (member 'time-up org-agenda-sorting-strategy)
+      (if (member 'time-up org-agenda-sorting-strategy-selected)
 	  (append new list)
 	(append list new)))))
 
-(defun org-compile-prefix-format (format)
+(defun org-compile-prefix-format (key)
   "Compile the prefix format into a Lisp form that can be evaluated.
 The resulting form is returned and stored in the variable
 `org-prefix-format-compiled'."
   (setq org-prefix-has-time nil org-prefix-has-tag nil)
-  (let ((start 0) varform vars var (s format)e c f opt)
+  (let ((s (cond
+	    ((stringp org-agenda-prefix-format)
+	     org-agenda-prefix-format)
+	    ((assq key org-agenda-prefix-format)
+	     (cdr (assq key org-agenda-prefix-format)))
+	    (t "  %-12:c%?-12t% s")))
+	(start 0)
+	varform vars var e c f opt)
     (while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ .;,:!?=|/<>]?\\)\\([cts]\\)"
 			 s start)
       (setq var (cdr (assoc (match-string 4 s)
@@ -8024,6 +8719,15 @@
     (setq vars (nreverse vars))
     (setq org-prefix-format-compiled `(format ,s ,@vars))))
 
+(defun org-set-sorting-strategy (key)
+  (if (symbolp (car org-agenda-sorting-strategy))
+      ;; the old format
+      (setq org-agenda-sorting-strategy-selected org-agenda-sorting-strategy)
+    (setq org-agenda-sorting-strategy-selected
+	  (or (cdr (assq key org-agenda-sorting-strategy))
+	      (cdr (assq 'agenda org-agenda-sorting-strategy))
+	      '(time-up category-keep priority-down)))))
+
 (defun org-get-time-of-day (s &optional string mod24)
   "Check string S for a time of day.
 If found, return it as a military time number between 0 and 2400.
@@ -8053,10 +8757,12 @@
 			(int-to-string t0))))
        (if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0)))))
 
-(defun org-finalize-agenda-entries (list)
+(defun org-finalize-agenda-entries (list &optional nosort)
   "Sort and concatenate the agenda items."
   (setq list (mapcar 'org-agenda-highlight-todo list))
-  (mapconcat 'identity (sort list 'org-entries-lessp) "\n"))
+  (if nosort
+      list
+    (mapconcat 'identity (sort list 'org-entries-lessp) "\n")))
 
 (defun org-agenda-highlight-todo (x)
   (let (re pl)
@@ -8064,14 +8770,14 @@
 	(save-excursion
 	  (beginning-of-line 1)
 	  (setq re (get-text-property (point) 'org-not-done-regexp))
-	  (goto-char (+ (point) (get-text-property (point) 'prefix-length)))
-	  (and (looking-at (concat "[ \t]*" re))
+	  (goto-char (+ (point) (or (get-text-property (point) 'prefix-length) 0)))
+	  (and (looking-at (concat "[ \t]*\\.*" re))
 	       (add-text-properties (match-beginning 0) (match-end 0)
 				    '(face org-todo))))
-      (setq re (get-text-property 0 'org-not-done-regexp x)
+      (setq re (concat (get-text-property 0 'org-not-done-regexp x))
 	    pl (get-text-property 0 'prefix-length x))
-      (and re (equal (string-match re x pl) pl)
-	   (add-text-properties (match-beginning 0) (match-end 0)
+      (and re (equal (string-match (concat "\\(\\.*\\)" re) x (or pl 0)) pl)
+	   (add-text-properties (or (match-end 1) (match-end 0)) (match-end 0)
 				'(face org-todo) x))
       x)))
 
@@ -8091,6 +8797,16 @@
 	  ((string-lessp cb ca) +1)
 	  (t nil))))
 
+(defsubst org-cmp-tag (a b)
+  "Compare the string values of categories of strings A and B."
+  (let ((ta (car (last (get-text-property 1 'tags a))))
+	(tb (car (last (get-text-property 1 'tags b)))))
+    (cond ((not ta) +1)
+	  ((not tb) -1)
+	  ((string-lessp ta tb) -1)
+	  ((string-lessp tb ta) +1)
+	  (t nil))))
+
 (defsubst org-cmp-time (a b)
   "Compare the time-of-day values of strings A and B."
   (let* ((def (if org-sort-agenda-notime-is-late 9901 -1))
@@ -8109,9 +8825,11 @@
 	 (priority-down (if priority-up (- priority-up) nil))
 	 (category-up (org-cmp-category a b))
 	 (category-down (if category-up (- category-up) nil))
-	 (category-keep (if category-up +1 nil)))
+	 (category-keep (if category-up +1 nil))
+	 (tag-up (org-cmp-tag a b))
+	 (tag-down (if tag-up (- tag-up) nil)))
     (cdr (assoc
-	  (eval (cons 'or org-agenda-sorting-strategy))
+	  (eval (cons 'or org-agenda-sorting-strategy-selected))
 	  '((-1 . t) (1 . nil) (nil . nil))))))
 
 (defun org-agenda-show-priority ()
@@ -8142,13 +8860,47 @@
     (widen)
     (goto-char pos)
     (when (org-mode-p)
-      (org-show-hidden-entry)
+      (org-show-context 'agenda)
       (save-excursion
 	(and (outline-next-heading)
 	     (org-flag-heading nil)))) ; show the next heading
     (and highlight (org-highlight (point-at-bol) (point-at-eol)))))
 
-(defun org-agenda-switch-to ()
+(defun org-agenda-kill ()
+  "Kill the entry or subtree belonging to the current agenda entry."
+  (interactive)
+  (let* ((marker (or (get-text-property (point) 'org-marker)
+		     (org-agenda-error)))
+	 (hdmarker (get-text-property (point) 'org-hd-marker))
+	 (buffer (marker-buffer marker))
+	 (pos (marker-position marker))
+	 dbeg dend txt n conf)
+    (with-current-buffer buffer
+      (save-excursion
+	(goto-char pos)
+	(if (org-mode-p)
+	    (setq dbeg (progn (org-back-to-heading t) (point))
+		  dend (org-end-of-subtree t))
+	  (setq dbeg (point-at-bol)
+		dend (min (point-max) (1+ (point-at-eol)))))
+	(setq txt (buffer-substring dbeg dend))))
+    (while (string-match "^[ \t]*\n" txt) (setq txt (replace-match "" t t txt)))
+    (setq n (length (split-string txt "\n"))
+	  conf (or (eq t org-agenda-confirm-kill)
+		   (and (numberp org-agenda-confirm-kill)
+			(> n org-agenda-confirm-kill))))
+    (and conf
+	 (not (y-or-n-p
+	       (format "Delete entry with %d lines in buffer \"%s\"? "
+		       n (buffer-name buffer))))
+	 (error "Abort"))
+    ;; FIXME: if we kill an entire subtree, should we not find all
+    ;; lines coming from the subtree?
+    (save-excursion (org-agenda-change-all-lines "" hdmarker))
+    (with-current-buffer buffer (delete-region dbeg dend))
+    (message "Agenda item and source killed")))
+
+(defun org-agenda-switch-to (&optional delete-other-windows)
   "Go to the Org-mode file which contains the item at point."
   (interactive)
   (let* ((marker (or (get-text-property (point) 'org-marker)
@@ -8156,11 +8908,11 @@
 	 (buffer (marker-buffer marker))
 	 (pos (marker-position marker)))
     (switch-to-buffer buffer)
-    (delete-other-windows)
+    (and delete-other-windows (delete-other-windows))
     (widen)
     (goto-char pos)
     (when (org-mode-p)
-      (org-show-hidden-entry)
+      (org-show-context 'agenda)
       (save-excursion
 	(and (outline-next-heading)
 	     (org-flag-heading nil))))))  ; show the next heading
@@ -8221,7 +8973,7 @@
     (with-current-buffer buffer
       (widen)
       (goto-char pos)
-      (org-show-hidden-entry)
+      (org-show-context 'agenda)
       (save-excursion
 	(and (outline-next-heading)
 	     (org-flag-heading nil)))   ; show the next heading
@@ -8243,8 +8995,8 @@
 `equal' against all `org-hd-marker' text properties in the file.
 If FIXFACE is non-nil, the face of each item is modified acording to
 the new TODO state."
-  (let* (props m pl undone-face done-face finish new dotime cat tags)
-;    (setq newhead (org-format-agenda-item "x" newhead "x" nil 'noprefix))
+  (let* ((buffer-read-only nil)
+	 props m pl undone-face done-face finish new dotime cat tags)
     (save-excursion
       (goto-char (point-max))
       (beginning-of-line 1)
@@ -8261,21 +9013,39 @@
 		undone-face (get-text-property (point) 'undone-face)
 		done-face (get-text-property (point) 'done-face))
 	  (move-to-column pl)
-	  (if (looking-at ".*")
-	      (progn
-		(replace-match new t t)
-		(beginning-of-line 1)
-		(add-text-properties (point-at-bol) (point-at-eol) props)
-		(when fixface
-		  (add-text-properties
-		   (point-at-bol) (point-at-eol)
-		   (list 'face
-			 (if org-last-todo-state-is-todo
-			     undone-face done-face)))
-		  (org-agenda-highlight-todo 'line))
-		(beginning-of-line 1))
-	    (error "Line update did not work")))
-	(beginning-of-line 0)))))
+	  (cond
+	   ((equal new "")
+	    (beginning-of-line 1)
+	    (and (looking-at ".*\n?") (replace-match "")))
+	   ((looking-at ".*")
+	    (replace-match new t t)
+	    (beginning-of-line 1)
+	    (add-text-properties (point-at-bol) (point-at-eol) props)
+	    (when fixface
+	      (add-text-properties
+	       (point-at-bol) (point-at-eol)
+	       (list 'face
+		     (if org-last-todo-state-is-todo
+			 undone-face done-face))))
+	    (org-agenda-highlight-todo 'line)
+	    (beginning-of-line 1))
+	   (t (error "Line update did not work"))))
+	(beginning-of-line 0)))
+    (org-finalize-agenda)))
+
+(defun org-agenda-align-tags (&optional line)
+  "Align all tags in agenda items to `org-agenda-align-tags-to-column'."
+  (let ((buffer-read-only))
+    (save-excursion
+      (goto-char (if line (point-at-bol) (point-min)))
+      (while (re-search-forward "\\([ \t]+\\):[a-zA-Z0-9_@:]+:[ \t]*$"
+				(if line (point-at-eol) nil) t)
+	(delete-region (match-beginning 1) (match-end 1))
+	(goto-char (match-beginning 1))
+	(insert (org-add-props
+		    (make-string (max 1 (- org-agenda-align-tags-to-column
+					   (current-column))) ?\ )
+		    (text-properties-at (point))))))))
 
 (defun org-agenda-priority-up ()
   "Increase the priority of line at point, also in Org-mode file."
@@ -8303,7 +9073,7 @@
     (with-current-buffer buffer
       (widen)
       (goto-char pos)
-      (org-show-hidden-entry)
+      (org-show-context 'agenda)
       (save-excursion
 	(and (outline-next-heading)
 	     (org-flag-heading nil)))   ; show the next heading
@@ -8333,9 +9103,9 @@
 	      (or org-use-tag-inheritance (error ""))
 	      (org-up-heading-all 1))
 	  (error nil))))
-    (message "%s" tags)
     tags))
 
+;; FIXME: should fix the tags property of the agenda line.
 (defun org-agenda-set-tags ()
   "Set tags for the current headline."
   (interactive)
@@ -8350,7 +9120,7 @@
     (with-current-buffer buffer
       (widen)
       (goto-char pos)
-      (org-show-hidden-entry)
+      (org-show-context 'agenda)
       (save-excursion
 	(and (outline-next-heading)
 	     (org-flag-heading nil)))   ; show the next heading
@@ -8562,7 +9332,7 @@
   (interactive)
   (org-agenda-list nil (calendar-absolute-from-gregorian
 			(calendar-cursor-to-date))
-		   nil t))
+		   nil))
 
 (defun org-agenda-convert-date ()
   (interactive)
@@ -8604,15 +9374,17 @@
 		     (mapconcat 'regexp-quote
 				(nreverse (cdr (reverse org-todo-keywords)))
 				"\\|")
-		     "\\>\\)\\)? *\\(.*?\\)\\(:[A-Za-z_@0-9:]+:\\)?[ \t]*[\n\r]"))
+		     "\\>\\)\\)? *\\(.*?\\)\\(:[A-Za-z_@0-9:]+:\\)?[ \t]*$"))
 	 (props (list 'face nil
 		      'done-face 'org-done
 		      'undone-face nil
 		      'mouse-face 'highlight
+		      'org-not-done-regexp org-not-done-regexp
 		      'keymap org-agenda-keymap
 		      'help-echo
 		      (format "mouse-2 or RET jump to org file %s"
 			      (abbreviate-file-name buffer-file-name))))
+	 (case-fold-search nil)
          lspos
 	 tags tags-list tags-alist (llast 0) rtn level category i txt
 	 todo marker)
@@ -8650,7 +9422,7 @@
 	    ;; list this headline
 	    (if (eq action 'sparse-tree)
 		(progn
-		  (org-show-hierarchy-above))
+		  (org-show-context 'tags-tree))
 	      (setq txt (org-format-agenda-item
 			 ""
 			 (concat
@@ -8664,7 +9436,6 @@
 		'org-marker marker 'org-hd-marker marker 'category category)
 	      (push txt rtn))
 	    ;; if we are to skip sublevels, jump to end of subtree
-	    (point)
 	    (or org-tags-match-list-sublevels (org-end-of-subtree t))))))
     (when (and (eq action 'sparse-tree)
 	       (not org-sparse-tree-open-archived-trees))
@@ -8672,52 +9443,89 @@
     (nreverse rtn)))
 
 (defun org-tags-sparse-tree (&optional arg match)
-  "Create a sparse tree according to tags search string MATCH.
+  "Create a sparse tree according to tags  string MATCH.
 MATCH can contain positive and negative selection of tags, like
 \"+WORK+URGENT-WITHBOSS\"."
   (interactive "P")
-  (let ((org-show-following-heading nil)
-	(org-show-hierarchy-above nil))
-    (org-scan-tags 'sparse-tree (cdr (org-make-tags-matcher match)))))
+  (org-scan-tags 'sparse-tree (cdr (org-make-tags-matcher match))))
 
 (defun org-make-tags-matcher (match)
-  "Create the TAGS matcher form for the tags-selecting string MATCH."
+  "Create the TAGS//TODO matcher form for the selection string MATCH."
   (unless match
     ;; Get a new match request, with completion
     (setq org-last-tags-completion-table
-	  (or (org-get-buffer-tags)
+	  (or org-tag-alist
 	      org-last-tags-completion-table))
     (setq match (completing-read
-		 "Tags: " 'org-tags-completion-function nil nil nil
-		 'org-tags-history)))
-  ;; parse the string and create a lisp form
-  (let ((match0 match) minus tag mm matcher orterms term orlist)
-    (setq orterms (org-split-string match "|"))
-    (while (setq term (pop orterms))
-      (while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term)
-	(setq minus (and (match-end 1)
-			 (equal (match-string 1 term) "-"))
-	      tag (match-string 2 term)
-	      term (substring term (match-end 0))
-	      mm (list 'member (downcase tag) 'tags-list)
-	      mm (if minus (list 'not mm) mm))
-	(push mm matcher))
-      (push (if (> (length matcher) 1) (cons 'and matcher) (car matcher))
-	    orlist)
-      (setq matcher nil))
-    (setq matcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist)))
+		 "Match: " 'org-tags-completion-function nil nil nil
+		 'org-tags-history)))  ; FIXME: SHould we have a separate history for this?
+
+  ;; Parse the string and create a lisp form
+  (let ((match0 match) minus tag mm
+	tagsmatch todomatch tagsmatcher todomatcher kwd matcher
+	orterms term orlist)
+    (if (string-match "/+" match)
+	;; match contains also a todo-matching request
+	(setq tagsmatch (substring match 0 (match-beginning 0))
+	      todomatch (substring match (match-end 0)))
+      ;; only matching tags
+      (setq tagsmatch match todomatch nil))
+
+    ;; Make the tags matcher
+    (if (or (not tagsmatch) (not (string-match "\\S-" tagsmatch)))
+	(setq tagsmatcher t)
+      (setq orterms (org-split-string tagsmatch "|") orlist nil)
+      (while (setq term (pop orterms))
+	(while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term)
+	  (setq minus (and (match-end 1)
+			   (equal (match-string 1 term) "-"))
+		tag (match-string 2 term)
+		term (substring term (match-end 0))
+		mm (list 'member (downcase tag) 'tags-list)
+		mm (if minus (list 'not mm) mm))
+	  (push mm tagsmatcher))
+	(push (if (> (length tagsmatcher) 1)
+		  (cons 'and tagsmatcher)
+		(car tagsmatcher))
+	      orlist)
+	(setq tagsmatcher nil))
+      (setq tagsmatcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist))))
+
+    ;; Make the todo matcher ;; FIXME: reduce syntax richness?
+    (if (or (not todomatch) (not (string-match "\\S-" todomatch)))
+	(setq todomatcher t)
+      (setq orterms (org-split-string todomatch "|") orlist nil)
+      (while (setq term (pop orterms))
+	(while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term)
+	  (setq minus (and (match-end 1)
+			   (equal (match-string 1 term) "-"))
+		kwd (match-string 2 term)
+		term (substring term (match-end 0))
+		mm (list 'equal 'todo kwd)
+		mm (if minus (list 'not mm) mm))
+	  (push mm todomatcher))
+	(push (if (> (length todomatcher) 1)
+		  (cons 'and todomatcher)
+		(car todomatcher))
+	      orlist)
+	(setq todomatcher nil))
+      (setq todomatcher (if (> (length orlist) 1)
+			    (cons 'or orlist) (car orlist))))
+
     ;; Return the string and lisp forms of the matcher
+    (setq matcher (if todomatcher
+		      (list 'and tagsmatcher todomatcher)
+		    tagsmatcher))
     (cons match0 matcher)))
 
 ;;;###autoload
-(defun org-tags-view (&optional todo-only match keep-modes)
+(defun org-tags-view (&optional todo-only match)
   "Show all headlines for all `org-agenda-files' matching a TAGS criterion.
 The prefix arg TODO-ONLY limits the search to TODO entries."
   (interactive "P")
-  (org-agenda-maybe-reset-markers 'force)
-  (org-compile-prefix-format org-agenda-prefix-format)
-  (let* ((org-agenda-keep-modes keep-modes)
-	 (org-tags-match-list-sublevels
+  (org-compile-prefix-format 'tags)
+  (org-set-sorting-strategy 'tags)
+  (let* ((org-tags-match-list-sublevels
 	  (if todo-only t org-tags-match-list-sublevels))
 	 (win (selected-window))
 	 (completion-ignore-case t)
@@ -8725,21 +9533,12 @@
 	 buffer)
     (setq matcher (org-make-tags-matcher match)
 	  match (car matcher) matcher (cdr matcher))
-    (if (not (equal (current-buffer) (get-buffer org-agenda-buffer-name)))
-	(progn
-	  (delete-other-windows)
-	  (switch-to-buffer-other-window
-	   (get-buffer-create org-agenda-buffer-name))))
-    (setq buffer-read-only nil)
-    (erase-buffer)
-    (org-agenda-mode) (setq buffer-read-only nil)
-    (org-set-local 'org-agenda-type 'tags)
-    (org-set-local 'org-agenda-redo-command
-		   (list 'org-tags-view (list 'quote todo-only)
-			 (list 'if 'current-prefix-arg nil match) t))
+    (org-prepare-agenda)
+    (setq org-agenda-redo-command
+	  (list 'org-tags-view (list 'quote todo-only)
+		(list 'if 'current-prefix-arg nil match)))
     (setq files (org-agenda-files)
 	  rtnall nil)
-    (org-prepare-agenda-buffers files)
     (while (setq file (pop files))
       (catch 'nextfile
 	(org-check-agenda-file file)
@@ -8757,12 +9556,9 @@
 	    (setq org-category-table (org-get-category-table))
 	    (save-excursion
 	      (save-restriction
-		(if org-respect-restriction
-		    (if (org-region-active-p)
-			;; Respect a region to restrict search
-			(narrow-to-region (region-beginning) (region-end)))
-		  ;; If we work for the calendar or many files,
-		  ;; get rid of any restriction
+		(if org-agenda-restrict
+		    (narrow-to-region org-agenda-restrict-begin
+				      org-agenda-restrict-end)
 		  (widen))
 		(setq rtn (org-scan-tags 'agenda matcher todo-only))
 		(setq rtnall (append rtnall rtn))))))))
@@ -8773,33 +9569,41 @@
     (insert match "\n")
     (add-text-properties pos (1- (point)) (list 'face 'org-warning))
     (setq pos (point))
-    (insert "Press `C-u r' to search again with new search string\n")
+    (unless org-agenda-multi
+      (insert "Press `C-u r' to search again with new search string\n"))
     (add-text-properties pos (1- (point)) (list 'face 'org-level-3))
     (when rtnall
-      (insert (mapconcat 'identity rtnall "\n")))
+      (insert (org-finalize-agenda-entries rtnall) "\n"))
     (goto-char (point-min))
+    (org-fit-agenda-window)
+    (add-text-properties (point-min) (point-max) '(org-agenda-type tags))
+    (org-finalize-agenda)
     (setq buffer-read-only t)
-    (org-fit-agenda-window)
     (if (not org-select-agenda-window) (select-window win))))
 
 (defvar org-add-colon-after-tag-completion nil)  ;; dynamically skoped param
+(defvar org-tags-overlay (org-make-overlay 1 1))
+(org-detach-overlay org-tags-overlay)
+
 (defun org-set-tags (&optional arg just-align)
   "Set the tags for the current headline.
 With prefix ARG, realign all tags in headings in the current buffer."
   (interactive "P")
   (let* ((re (concat "^" outline-regexp))
-	 (col (current-column))
 	 (current (org-get-tags))
 	 table current-tags inherited-tags ; computed below when needed
-	 tags hd empty invis)
+	 tags p0 c0 c1 rpl)
     (if arg
 	(save-excursion
 	  (goto-char (point-min))
-	  (while (re-search-forward re nil t)
-	    (org-set-tags nil t))
+	  (let (buffer-invisibility-spec)  ; Emacs 21 compatibility
+	    (while (re-search-forward re nil t)
+	      (org-set-tags nil t)
+	      (end-of-line 1)))
 	  (message "All tags realigned to column %d" org-tags-column))
       (if just-align
 	  (setq tags current)
+	;; Get a new set of tags from the user
 	(setq table (or org-tag-alist (org-get-buffer-tags))
 	      org-last-tags-completion-table table
 	      current-tags (org-split-string current ":")
@@ -8812,40 +9616,35 @@
 			   (delq nil (mapcar 'cdr table))))
 		  (org-fast-tag-selection current-tags inherited-tags table)
 		(let ((org-add-colon-after-tag-completion t))
-		  (completing-read "Tags: " 'org-tags-completion-function
-				   nil nil current 'org-tags-history))))
+		  (org-trim
+		   (completing-read "Tags: " 'org-tags-completion-function
+				    nil nil current 'org-tags-history)))))
 	(while (string-match "[-+&]+" tags)
+	  ;; No boolean logic, just a list
 	  (setq tags (replace-match ":" t t tags))))
-
-      (unless (setq empty (string-match "\\`[\t ]*\\'" tags))
+      (if (string-match "\\`[\t ]*\\'" tags)
+          (setq tags "")
 	(unless (string-match ":$" tags) (setq tags (concat tags ":")))
 	(unless (string-match "^:" tags) (setq tags (concat ":" tags))))
-      (if (equal current "")
+
+      ;; Insert new tags at the correct column
+      (beginning-of-line 1)
+      (if (re-search-forward
+	   (concat "\\([ \t]*" (regexp-quote current) "\\)[ \t]*$")
+	   (point-at-eol) t)
 	  (progn
-	    (end-of-line 1)
-	    (or empty (insert-before-markers " ")))
-	(beginning-of-line 1)
-	(setq invis (org-invisible-p))
-	(looking-at (concat "\\(.*\\)\\(" (regexp-quote current) "\\)[ \t]*"))
-	(setq hd (match-string 1))
-	(delete-region (match-beginning 0) (match-end 0))
-	(insert-before-markers (org-trim hd) (if empty "" " ")))
-      (if (equal tags "")
-	  (save-excursion
-	    (beginning-of-line 1)
-	    (skip-chars-forward "*")
-	    (if (= (char-after) ?\ ) (forward-char 1))
-	    (and (re-search-forward "[ \t]+$" (point-at-eol) t)
-		 (replace-match "")))
-	(move-to-column (max (current-column)
-			     (if (> org-tags-column 0)
-				 org-tags-column
-			       (- (- org-tags-column) (length tags))))
-			t)
-	(insert-before-markers tags)
-	(if (and (not invis) (org-invisible-p))
-	    (outline-flag-region (point-at-bol) (point) nil)))
-      (move-to-column col))))
+	    (if (equal tags "")
+		(setq rpl "")
+	      (goto-char (match-beginning 0))
+	      (setq c0 (current-column) p0 (point)
+		    c1 (max (1+ c0) (if (> org-tags-column 0)
+					org-tags-column
+				      (- (- org-tags-column) (length tags))))
+		    rpl (concat (make-string (max 0 (- c1 c0)) ?\ ) tags)))
+	    (replace-match rpl)
+	    (and (not (featurep 'xemacs)) c0 (tabify p0 (point)))
+	    tags)
+	(error "Tags alignment failed")))))
 
 (defun org-tags-completion-function (string predicate &optional flag)
   (let (s1 s2 rtn (ctable org-last-tags-completion-table)
@@ -8879,6 +9678,24 @@
 	  (org-add-props (mapconcat 'identity tags " ") nil 'face face)
 	  (or end "")))
 
+(defun org-fast-tag-show-exit (flag)
+  (save-excursion
+    (goto-line 3)
+    (if (re-search-forward "[ \t]+Next change exits" (point-at-eol) t)
+	(replace-match ""))
+    (when flag
+      (end-of-line 1)
+      (move-to-column (- (window-width) 19) t)
+      (insert (org-add-props " Next change exits" nil 'face 'org-warning)))))
+
+(defun org-set-current-tags-overlay (current prefix)
+  (let ((s (concat ":" (mapconcat 'identity current ":") ":")))
+    (if (featurep 'xemacs)
+	(org-overlay-display org-tags-overlay (concat prefix s)
+			     'secondary-selection)
+      (put-text-property 0 (length s) 'face '(secondary-selection org-tag) s)
+      (org-overlay-display org-tags-overlay (concat prefix s)))))
+
 (defun org-fast-tag-selection (current inherited table)
   "Fast tag selection with single keys.
 CURRENT is the current list of tags in the headline, INHERITED is the
@@ -8890,19 +9707,42 @@
 			      (lambda (x)
 				(if (stringp (car x)) (string-width (car x)) 0))
 			      table)))
+	 (buf (current-buffer))
+	 (buffer-tags nil)
 	 (fwidth (+ maxlen 3 1 3))
 	 (ncol (/ (- (window-width) 4) fwidth))
 	 (i-face 'org-done)
 	 (c-face 'org-tag)
 	 tg cnt e c char c1 c2 ntable tbl rtn
+	 ov-start ov-end ov-prefix
+	 (exit-after-next org-fast-tag-selection-single-key)
 	 groups ingroup)
+    (save-excursion
+      (beginning-of-line 1)
+      (if (looking-at ".*[ \t]\\(:[A-Za-z_@0-9:]+:\\)[ \t]*\\(\r\\|$\\)")
+	  (setq ov-start (match-beginning 1)
+		ov-end (match-end 1)
+		ov-prefix "")
+	(setq ov-start (1- (point-at-eol))
+	      ov-end (1+ ov-start))
+	(skip-chars-forward "^\n\r")
+	(setq ov-prefix
+	      (concat
+	       (buffer-substring (1- (point)) (point))
+	       (if (> (current-column) org-tags-column)
+		   " "
+		 (make-string (- org-tags-column (current-column)) ?\ ))))))
+    (org-move-overlay org-tags-overlay ov-start ov-end)
     (save-window-excursion
+      ;; FIXME: would it be better to keep the other windows?
       (delete-other-windows)
       (split-window-vertically)
       (switch-to-buffer-other-window (get-buffer-create " *Org tags*"))
       (erase-buffer)
       (org-fast-tag-insert "Inherited" inherited i-face "\n")
       (org-fast-tag-insert "Current" current c-face "\n\n")
+      (org-fast-tag-show-exit exit-after-next)
+      (org-set-current-tags-overlay current ov-prefix)
       (setq tbl table char ?a cnt 0)
       (while (setq e (pop tbl))
 	(cond
@@ -8949,19 +9789,39 @@
       (setq rtn
 	    (catch 'exit
 	      (while t
-		(message "[key]:Toggle  SPC: clear current  RET accept%s"
-			 (if groups "  [!] ignore goups" ""))
-		(setq c (read-char-exclusive))
+		(message "[a-z..]:Toggle [SPC]:clear [RET]:accept [TAB]:free [C-c]: multi%s"
+			 (if groups "  [!] no groups" ""))
+		(setq c (let ((inhibit-quit t)) (read-char-exclusive)))
 		(cond
 		 ((= c ?\r) (throw 'exit t))
 		 ((= c ?!)
 		  (setq groups nil)
 		  (goto-char (point-min))
 		  (while (re-search-forward "[{}]" nil t) (replace-match " ")))
+		 ((= c ?\C-c)
+		  (org-fast-tag-show-exit
+		   (setq exit-after-next (not exit-after-next))))
 		 ((or (= c ?\C-g)
 		      (and (= c ?q) (not (rassoc c ntable))))
+		  (org-detach-overlay org-tags-overlay)
 		  (setq quit-flag t))
-		 ((= c ?\ ) (setq current nil))
+		 ((= c ?\ )
+		  (setq current nil)
+		  (if exit-after-next (setq exit-after-next 'now)))
+		 ((= c ?\t)
+		  (condition-case nil
+		      (setq tg (completing-read
+				"Tag: "
+				(or buffer-tags
+				    (with-current-buffer buf
+				      (org-get-buffer-tags)))))
+		    (quit (setq tg "")))
+		  (when (string-match "\\S-" tg)
+		    (add-to-list 'buffer-tags (list tg))
+		    (if (member tg current)
+			(setq current (delete tg current))
+		      (push tg current)))
+		  (if exit-after-next (setq exit-after-next 'now)))
 		 ((setq e (rassoc c ntable) tg (car e))
 		  (if (member tg current)
 		      (setq current (delete tg current))
@@ -8970,16 +9830,20 @@
 			      (mapcar (lambda (x)
 					(setq current (delete x current)))
 				      g)))
-		    (setq current (cons tg current)))))
+		    (push tg current))
+		  (if exit-after-next (setq exit-after-next 'now))))
+
 		;; Create a sorted list
 		(setq current
 		      (sort current
 			    (lambda (a b)
 			      (assoc b (cdr (memq (assoc a ntable) ntable))))))
+		(if (eq exit-after-next 'now) (throw 'exit t))
 		(goto-char (point-min))
 		(beginning-of-line 2)
 		(delete-region (point) (point-at-eol))
 		(org-fast-tag-insert "Current" current c-face)
+		(org-set-current-tags-overlay current ov-prefix)
 		(while (re-search-forward "\\[.\\] \\([a-zA-Z0-9_@]+\\)" nil t)
 		  (setq tg (match-string 1))
 		  (add-text-properties (match-beginning 1) (match-end 1)
@@ -8989,13 +9853,14 @@
 					      ((member tg inherited) i-face)
 					      (t nil)))))
 		(goto-char (point-min)))))
+      (org-detach-overlay org-tags-overlay)
       (if rtn
 	  (mapconcat 'identity current ":")
 	nil))))
 
 (defun org-get-tags ()
   "Get the TAGS string in the current headline."
-  (unless (org-on-heading-p)
+  (unless (org-on-heading-p t)
     (error "Not on a heading"))
   (save-excursion
     (beginning-of-line 1)
@@ -9075,6 +9940,7 @@
   "The window configuration before following a link.
 This is saved in case the need arises to restore it.")
 
+;; FIXME: IN-EMACS is used for many purposes, maybe rename this argument???
 (defun org-open-at-point (&optional in-emacs)
   "Open link at or after point.
 If there is no link at point, this function will search forward up to
@@ -9084,10 +9950,8 @@
   (interactive "P")
   (setq org-window-config-before-follow-link (current-window-configuration))
   (org-remove-occur-highlights nil nil t)
-  (if (org-at-timestamp-p)
-      (org-agenda-list nil (time-to-days (org-time-string-to-time
-					  (substring (match-string 1) 0 10)))
-		       1)
+  (if (org-at-timestamp-p t)
+      (org-follow-timestamp-link)
     (let (type path link line search (pos (point)))
       (catch 'match
 	(save-excursion
@@ -9099,6 +9963,7 @@
 	    (setq link (org-link-unescape (org-match-string-no-properties 1)))
 	    (while (string-match " *\n *" link)
 	      (setq link (replace-match " " t t link)))
+	    (setq link (org-link-expand-abbrev link))
 	    (if (string-match org-link-re-with-space2 link)
 		(setq type (match-string 1 link)
 		      path (match-string 2 link))
@@ -9151,14 +10016,35 @@
 
       (cond
 
-       ((member type '("http" "https" "ftp" "mailto" "news"))
+       ((equal type "mailto")
+	(let ((cmd (car org-link-mailto-program))
+	      (args (cdr org-link-mailto-program)) args1
+	      (address path) (subject "") a)
+	  (if (string-match "\\(.*\\)::\\(.*\\)" path)
+	      (setq address (match-string 1 path)
+		    subject (org-link-escape (match-string 2 path))))
+	  (while args
+	    (cond
+	     ((not (stringp (car args))) (push (pop args) args1))
+	     (t (setq a (pop args))
+		(if (string-match "%a" a)
+		    (setq a (replace-match address t t a)))
+		(if (string-match "%s" a)
+		    (setq a (replace-match subject t t a)))
+		(push a args1))))
+	  (apply cmd (nreverse args1))))
+
+       ((member type '("http" "https" "ftp" "news"))
 	(browse-url (concat type ":" path)))
 
        ((string= type "tags")
 	(org-tags-view in-emacs path))
        ((or (string= type "camel")
 	    (string= type "thisfile"))
-	(org-mark-ring-push)
+	(if in-emacs
+	    (switch-to-buffer-other-window
+	     (org-get-buffer-for-internal-link (current-buffer)))
+	  (org-mark-ring-push))
 	(org-link-search
 	 path
 	 (cond ((equal in-emacs '(4)) 'occur)
@@ -9226,9 +10112,9 @@
 
        ((string= type "shell")
 	(let ((cmd path))
-	  (while (string-match "@{" cmd)
+	  (while (string-match "@{" cmd) ; FIXME: not needed for [[]] links
 	    (setq cmd (replace-match "<" t t cmd)))
-	  (while (string-match "@}" cmd)
+	  (while (string-match "@}" cmd) ; FIXME: not needed for [[]] links
 	    (setq cmd (replace-match ">" t t cmd)))
 	  (if (or (not org-confirm-shell-link-function)
 		  (funcall org-confirm-shell-link-function
@@ -9253,6 +10139,23 @@
        (t
 	(browse-url-at-point))))))
 
+(defun org-link-expand-abbrev (link)
+  "Apply replacements as defined in `org-link-abbrev-alist."
+  (if (string-match "^\\([a-zA-Z]+\\)\\(::\\(.*\\)\\)?$" link)
+      (let* ((key (match-string 1 link))
+	     (as (or (assoc key org-link-abbrev-alist-local)
+		     (assoc key org-link-abbrev-alist)))
+	     (tag (and (match-end 2) (match-string 3 link)))
+	     rpl)
+	(if (not as)
+	    link
+	  (setq rpl (cdr as))
+	  (cond
+	   ((symbolp rpl) (funcall rpl tag))
+	   ((string-match "%s" rpl) (replace-match (or tag "") t t rpl))
+	   (t (concat rpl tag)))))
+    link))
+
 (defun org-link-search (s &optional type)
   "Search for a link search option.
 When S is a CamelCaseWord, search for a target, or for a sentence containing
@@ -9337,7 +10240,7 @@
       (if (search-forward s nil t)
 	  (goto-char (match-beginning 0))
 	(error "No match"))))
-    (and (org-mode-p) (org-show-hierarchy-above))))
+    (and (org-mode-p) (org-show-context 'link-search))))
 
 (defun org-search-not-link (&rest args)
   "Execute `re-search-forward', but only accept matches that are not a link."
@@ -9354,6 +10257,22 @@
 		   (throw 'exit (point)))
 	  (goto-char (match-end 0)))))))
 
+(defun org-get-buffer-for-internal-link (buffer)
+  "Return a buffer to be used for displaying the link target of internal links."
+  (cond
+   ((not org-display-internal-link-with-indirect-buffer)
+    buffer)
+   ((string-match "(Clone)$" (buffer-name buffer))
+    (message "Buffer is already a clone, not making another one")
+    ;; we also do not modify visibility in this case
+    buffer)
+   (t ; make a new indirect buffer for displaying the link
+    (let* ((bn (buffer-name buffer))
+	   (ibn (concat bn "(Clone)"))
+	   (ib (or (get-buffer ibn) (make-indirect-buffer buffer ibn 'clone))))
+      (with-current-buffer ib (org-overview))
+      ib))))
+
 (defun org-do-occur (regexp &optional cleanup)
   "Call the Emacs command `occur'.
 If CLEANUP is non-nil, remove the printout of the regular expression
@@ -9412,7 +10331,7 @@
     (setq m (car p))
     (switch-to-buffer (marker-buffer m))
     (goto-char m)
-    (if (or (org-invisible-p) (org-invisible-p2)) (org-show-hierarchy-above))))
+    (if (or (org-invisible-p) (org-invisible-p2)) (org-show-context 'mark-goto))))
 
 (defun org-camel-to-words (s)
   "Split \"CamelCaseWords\" to (\"Camel\" \"Case\" \"Words\")."
@@ -9432,6 +10351,22 @@
   (if (equal (substring s -1) ">") nil (setq s (concat s ">")))
   s)
 
+(defun org-follow-timestamp-link ()
+  (cond
+   ((org-at-date-range-p t)
+    (let ((org-agenda-start-on-weekday)
+	  (t1 (match-string 1))
+	  (t2 (match-string 2)))
+      (setq t1 (time-to-days (org-time-string-to-time t1))
+	    t2 (time-to-days (org-time-string-to-time t2)))
+      (org-agenda-list nil t1 (1+ (- t2 t1)))))
+   ((org-at-timestamp-p t)
+    (org-agenda-list nil (time-to-days (org-time-string-to-time
+					(substring (match-string 1) 0 10)))
+		     1))
+   (t (error "This should not happen"))))
+
+
 (defun org-follow-bbdb-link (name)
   "Follow a BBDB link to NAME."
   (require 'bbdb)
@@ -9743,7 +10678,7 @@
   (setq in-emacs (or in-emacs line search))
   (let* ((file (if (equal path "")
 		   buffer-file-name
-		 path))
+		 (substitute-in-file-name (expand-file-name path))))
 	 (apps (append org-file-apps (org-default-apps)))
 	 (remp (and (assq 'remote apps) (org-file-remote-p file)))
 	 (dirp (if remp nil (file-directory-p file)))
@@ -9776,10 +10711,10 @@
 	(error "No such file: %s" file))
     (cond
      ((and (stringp cmd) (not (string-match "^\\s-*$" cmd)))
-      ;; Normalize use of quote, this can vary.
+      ;; Remove quotes around the file name - we'll use shell-quote-argument.
       (if (string-match "['\"]%s['\"]" cmd)
-	  (setq cmd (replace-match "'%s'" t t cmd)))
-      (setq cmd (format cmd file))
+	  (setq cmd (replace-match "%s" t t cmd)))
+      (setq cmd (format cmd (shell-quote-argument file)))
       (save-window-excursion
 	(shell-command (concat cmd " &"))))
      ((or (stringp cmd)
@@ -9810,6 +10745,7 @@
   "Replace special path abbreviations and expand the file name."
   (expand-file-name path))
 
+(defvar ange-ftp-name-format) ; to silence the XEmacs compiler.
 (defun org-file-remote-p (file)
   "Test whether FILE specifies a location on a remote system.
 Return non-nil if the location is indeed remote.
@@ -9934,6 +10870,7 @@
 	      link (org-make-link cpltxt))))
 
      ((memq major-mode '(gnus-summary-mode gnus-article-mode))
+      (require 'gnus-sum)
       (and (eq major-mode 'gnus-article-mode) (gnus-article-show-summary))
       (gnus-summary-beginning-of-article)
       (let* ((group (car gnus-article-current))
@@ -9971,7 +10908,15 @@
 			   (abbreviate-file-name buffer-file-name))
 	    link (org-make-link cpltxt)))
 
-     ((org-mode-p)
+     ((eq major-mode 'dired-mode)
+      ;; link to the file in the current line
+      (setq cpltxt (concat "file:"
+			   (abbreviate-file-name
+			    (expand-file-name
+			     (dired-get-filename nil t))))
+	    link (org-make-link cpltxt)))
+
+     ((and buffer-file-name (org-mode-p))
       ;; Just link to current headline
       (setq cpltxt (concat "file:"
 			   (abbreviate-file-name buffer-file-name)))
@@ -10246,7 +11191,8 @@
 
     ;; Check if we are linking to the current file with a search option
     ;; If yes, simplify the link by using only the search option.
-    (when (string-match "\\<file:\\(.+?\\)::\\([^>]+\\)" link)
+    (when (and buffer-file-name
+	       (string-match "\\<file:\\(.+?\\)::\\([^>]+\\)" link))
       (let* ((path (match-string 1 link))
 	     (case-fold-search nil)
 	     (search (match-string 2 link)))
@@ -10453,7 +11399,7 @@
 		     (outline-end-of-subtree))
 		   (if (not (bolp)) (newline))
 		   (beginning-of-line 1)
-		   (org-paste-subtree (1+ level) txt))
+		   (org-paste-subtree (org-get-legal-level level 1) txt))
 		  (t
 		   ;; Put it right there, with automatic level determined by
 		   ;; org-paste-subtree or from prefix arg
@@ -10606,7 +11552,7 @@
 		       (max 1 (prefix-numeric-value nspace)))))
     (goto-char beg)
     (while (re-search-forward re end t)
-      (replace-match "|" t t))
+      (replace-match "| " t t))
     (goto-char beg)
     (insert " ")
     (org-table-align)))
@@ -10684,9 +11630,10 @@
 	 (beg (org-table-begin))
 	 (end (org-table-end))
 	 ;; Current cursor position
-	 (linepos (+ (if (bolp) 1 0) (count-lines (point-min) (point))))
+	 (linepos (org-current-line))
 	 (colpos (org-table-current-column))
 	 (winstart (window-start))
+	 (winstartline (org-current-line (min winstart (1- (point-max)))))
 	 lines (new "") lengths l typenums ty fields maxfields i
 	 column
 	 (indent "") cnt frac
@@ -10698,14 +11645,20 @@
 		 (make-string sp2 ?\ ) "%%%s%ds" (make-string sp1 ?\ ) "|"))
 	 (hfmt1 (concat
 		 (make-string sp2 ?-) "%s" (make-string sp1 ?-) "+"))
-	 emptystrings links narrow fmax f1 len c e)
+	 emptystrings links dates narrow fmax f1 len c e)
     (untabify beg end)
-    (remove-text-properties beg end '(org-cwidth t display t))
-    ;; Check if we have links
+    (remove-text-properties beg end '(org-cwidth t org-dwidth t display t))
+    ;; Check if we have links or dates
     (goto-char beg)
     (setq links (re-search-forward org-bracket-link-regexp end t))
+    (goto-char beg)
+    (setq dates (and org-display-custom-times
+		     (re-search-forward org-ts-regexp-both end t)))
     ;; Make sure the link properties are right
     (when links (goto-char beg) (while (org-activate-bracket-links end)))
+    ;; Make sure the date properties are right
+    (when dates (goto-char beg) (while (org-activate-dates end)))
+
     ;; Check if we are narrowing any columns
     (goto-char beg)
     (setq narrow (and org-format-transports-properties-p
@@ -10737,7 +11690,7 @@
        (kill-region beg end)
        (org-table-create org-table-default-size)
        (error "Empty table - created default table")))
-    ;; A list of empty string to fill any short rows on output
+    ;; A list of empty strings to fill any short rows on output
     (setq emptystrings (make-list maxfields ""))
     ;; Check for special formatting.
     (setq i -1)
@@ -10819,7 +11772,9 @@
     (when (and orgtbl-mode (not (org-mode-p)))
       (goto-char org-table-aligned-begin-marker)
       (while (org-hide-wide-columns org-table-aligned-end-marker)))
-    ;; Try to move to the old location (approximately)
+    ;; Try to move to the old location
+    (goto-line winstartline)
+    (setq winstart (point-at-bol))
     (goto-line linepos)
     (set-window-start (selected-window) winstart 'noforce)
     (org-table-goto-column colpos)
@@ -10831,7 +11786,7 @@
 This ignores character with invisibility property `org-link', and also
 characters with property `org-cwidth', because these will become invisible
 upon the next fontification round."
-  (let (b)
+  (let (b l)
     (when (or (eq t buffer-invisibility-spec)
 	      (assq 'org-link buffer-invisibility-spec))
       (while (setq b (text-property-any 0 (length s)
@@ -10843,7 +11798,10 @@
       (setq s (concat (substring s 0 b)
 		      (substring s (or (next-single-property-change
 					b 'org-cwidth s) (length s))))))
-    (string-width s)))
+    (setq l (string-width s) b -1)
+    (while (setq b (text-property-any (1+ b) (length s) 'org-dwidth t s))
+      (setq l (- l (get-text-property b 'org-dwidth-n s))))
+    l))
 
 (defun org-table-begin (&optional table-type)
   "Find the beginning of the table and return its position.
@@ -11165,7 +12123,7 @@
 	 (beg (org-table-begin))
 	 (end (org-table-end))
 	 ;; Current cursor position
-	 (linepos (+ (if (bolp) 1 0) (count-lines (point-min) (point))))
+	 (linepos (org-current-line))
 	 (colpos col))
     (goto-char beg)
     (while (< (point) end)
@@ -11210,7 +12168,7 @@
 	 (beg (org-table-begin))
 	 (end (org-table-end))
 	 ;; Current cursor position
-	 (linepos (+ (if (bolp) 1 0) (count-lines (point-min) (point))))
+	 (linepos (org-current-line))
 	 (colpos col))
     (goto-char beg)
     (while (< (point) end)
@@ -11247,7 +12205,7 @@
 	 (beg (org-table-begin))
 	 (end (org-table-end))
 	 ;; Current cursor position
-	 (linepos (+ (if (bolp) 1 0) (count-lines (point-min) (point))))
+	 (linepos (org-current-line))
 	 (colpos (if left (1- col) (1+ col))))
     (if (and left (= col 1))
 	(error "Cannot move column further left"))
@@ -12309,7 +13267,7 @@
 		       (lambda (a b) (string< (car a) (car b)))))
 	 (inhibit-redisplay t)
 	 (line-re org-table-dataline-regexp)
-	 (thisline (+ (if (bolp) 1 0) (count-lines (point-min) (point))))
+	 (thisline (org-current-line))
 	 (thiscol (org-table-current-column))
 	 beg end entry eqlnum eqlname eql (cnt 0) eq a name)
     ;; Insert constants in all formulas
@@ -13330,7 +14288,7 @@
 	    (beginning-of-line 1)
 	    (delete-region
 	     (if org-export-with-archived-trees (1+ (point-at-eol)) (point))
-	     (org-end-of-subtree)))))
+	     (org-end-of-subtree t)))))
 
       ;; Find targets in comments and move them out of comments,
       ;; but mark them as targets that should be invisible
@@ -13338,6 +14296,11 @@
       (while (re-search-forward "^#.*?\\(<<<?[^>\r\n]+>>>?\\).*" nil t)
 	(replace-match "\\1(INVISIBLE)"))
 
+      ;; Remove comments
+      (goto-char (point-min))
+      (while (re-search-forward "^#.*\n?" nil t)
+	(replace-match ""))
+
       ;; Find matches for radio targets and turn them into internal links
       (goto-char (point-min))
       (when re-radio
@@ -13360,6 +14323,7 @@
       (message "Exporting...")
 
       ;; Normalize links: Convert angle and plain links into bracket links
+      ;; Expand link abbreviations
       (goto-char (point-min))
       (while (re-search-forward re-plain-link nil t)
 	(replace-match
@@ -13372,6 +14336,17 @@
 	 (concat
 	  (match-string 1) "[[" (match-string 2) ":" (match-string 3) "]]")
 	 t t))
+      (goto-char (point-min))
+      (while (re-search-forward org-bracket-link-regexp nil t)
+	(replace-match
+	 (concat "[[" (save-match-data
+			(org-link-expand-abbrev (match-string 1)))
+		 "]"
+		 (if (match-end 3)
+		     (match-string 2)
+		   (concat "[" (match-string 1) "]"))
+		 "]")
+	 t t))
 
       ;; Find multiline emphasis and put them into single line
       (when (memq :emph-multiline parameters)
@@ -13380,10 +14355,6 @@
 	  (subst-char-in-region (match-beginning 0) (match-end 0) ?\n ?\  t)
 	  (goto-char (1- (match-end 0)))))
 
-      ;; Remove comments
-      (goto-char (point-min))
-      (while (re-search-forward "^#.*\n?" nil t)
-	(replace-match ""))
       (setq rtn (buffer-string)))
     (kill-buffer " org-mode-tmp")
     rtn))
@@ -13423,7 +14394,7 @@
   (goto-char (point-min))
   ;; First check if there are no even levels
   (when (re-search-forward "^\\(\\*\\*\\)+[^*]" nil t)
-    (org-show-hierarchy-above)
+    (org-show-context t)
     (error "Not all levels are odd in this file.  Conversion not possible."))
   (when (yes-or-no-p "Are you sure you want to globally change levels to odd-even? ")
     (let ((org-odd-levels-only nil) n)
@@ -13481,6 +14452,8 @@
 			   (file-name-nondirectory buffer-file-name))))
 	 (email       (plist-get opt-plist :email))
 	 (language    (plist-get opt-plist :language))
+	 (quote-re0   (concat "^[ \t]*" org-quote-string "\\>"))
+	 (quote-re    (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
 	 (text        nil)
 	 (todo nil)
 	 (lang-words nil))
@@ -13544,6 +14517,12 @@
 					   line lines level))))
 			   (setq txt (org-html-expand-for-ascii txt))
 
+			   (if (and (memq org-export-with-tags '(not-in-toc nil))
+				    (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt))
+			       (setq txt (replace-match "" t t txt)))
+			   (if (string-match quote-re0 txt)
+			       (setq txt (replace-match "" t t txt)))
+
 			   (if org-export-with-section-numbers
 			       (setq txt (concat (org-section-number level)
 						 " " txt)))
@@ -13648,6 +14627,9 @@
 	      (not (equal (char-before (1- (point))) ?\n)))
 	  (insert "\n"))
       (setq char (nth (- umax level) (reverse org-export-ascii-underline)))
+      (unless org-export-with-tags
+	(if (string-match "[ \t]+\\(:[a-zA-Z0-9_@:]+:\\)[ \t]*$" title)
+	    (setq title (replace-match "" t t title))))
       (if org-export-with-section-numbers
 	  (setq title (concat (org-section-number level) " " title)))
       (insert title "\n" (make-string (string-width title) char) "\n")
@@ -13737,6 +14719,7 @@
 #+STARTUP:   %s %s %s %s %s %s
 #+TAGS:      %s
 #+ARCHIVE:   %s
+#+LINK:      %s
 "
    (buffer-name) (user-full-name) user-mail-address org-export-default-language
    org-export-headline-levels
@@ -13764,8 +14747,15 @@
    (if org-hide-leading-stars "hidestars" "showstars")
    (if org-startup-align-all-tables "align" "noalign")
    (if org-log-done "logging" "nologging")
-   (if org-tag-alist (mapconcat 'car org-tag-alist " ") "")
+   (or (mapconcat (lambda (x)
+		    (cond
+		     ((equal '(:startgroup) x) "{")
+		     ((equal '(:endgroup) x) "}")
+		     ((cdr x) (format "%s(%c)" (car x) (cdr x)))
+		     (t (car x))))
+		  (or org-tag-alist (org-get-buffer-tags)) " ") "")
    org-archive-location
+   "org file:~/org/%s.org"
    ))
 
 (defun org-insert-export-options-template ()
@@ -13907,12 +14897,12 @@
 	 (target-alist nil) tg
 	 (head-count  0) cnt
 	 (start       0)
-	 (coding-system (and (fboundp 'coding-system-get)
-			     (boundp 'buffer-file-coding-system)
+	 (coding-system (and (boundp 'buffer-file-coding-system)
 			     buffer-file-coding-system))
-	 (coding-system-for-write (or coding-system coding-system-for-write))
-	 (save-buffer-coding-system (or coding-system save-buffer-coding-system))
+	 (coding-system-for-write coding-system)
+	 (save-buffer-coding-system coding-system)
 	 (charset (and coding-system
+		       (fboundp 'coding-system-get)
 		       (coding-system-get coding-system 'mime-charset)))
 	 table-open type
 	 table-buffer table-orig-buffer
@@ -13999,6 +14989,11 @@
 					    (= level umax)
 					    (org-search-todo-below
 					     line lines level))))
+			     (if (and (memq org-export-with-tags '(not-in-toc nil))
+				      (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt))
+				 (setq txt (replace-match "" t t txt)))
+			     (if (string-match quote-re0 txt)
+				 (setq txt (replace-match "" t t txt)))
 			     (if org-export-with-section-numbers
 				 (setq txt (concat (org-section-number level)
 						   " " txt)))
@@ -14478,8 +15473,8 @@
   (catch 'exit
     (let (r b)
       (while (string-match org-maybe-keyword-time-regexp s)
-	;; FIXME: is it good to never export CLOCK, or do we need control?
 	(if (and (match-end 1) (equal (match-string 1 s) org-clock-string))
+	    ;; never export CLOCK
 	    (throw 'exit ""))
 	(or b (setq b (substring s 0 (match-beginning 0))))
 	(if (not org-export-with-timestamps)
@@ -14733,6 +15728,7 @@
 (defun org-export-as-xoxo-insert-into (buffer &rest output)
   (with-current-buffer buffer
     (apply 'insert output)))
+(put 'org-export-as-xoxo-insert-into 'lisp-indent-function 1)
 
 (defun org-export-as-xoxo (&optional buffer)
   "Export the org buffer as XOXO.
@@ -15075,7 +16071,6 @@
   - inside a LaTeX fragment, or
   - after the first word in a line, where an abbreviation expansion could
     insert a LaTeX environment."
-  ;; FIXME:  This may still need refinement.
   (when org-cdlatex-mode
     (cond
      ((save-excursion
@@ -15136,7 +16131,7 @@
 		msg "Creating images for buffer...%s"))
 	 ((equal subtree '(4))
 	  (org-back-to-heading)
-	  (setq beg (point) end (org-end-of-subtree)
+	  (setq beg (point) end (org-end-of-subtree t)
 		msg "Creating images for subtree...%s"))
 	 (t
 	  (if (setq at (org-inside-LaTeX-fragment-p))
@@ -15280,55 +16275,64 @@
 ;; TAB key with modifiers
 (define-key org-mode-map "\C-i"       'org-cycle)
 (define-key org-mode-map [(tab)]      'org-cycle)
+(define-key org-mode-map [(control tab)] 'org-force-cycle-archived)
 (define-key org-mode-map [(meta tab)] 'org-complete)
-(define-key org-mode-map "\M-\C-i"    'org-complete)            ; for tty emacs
 ;; The following line is necessary under Suse GNU/Linux
 (unless (featurep 'xemacs)
   (define-key org-mode-map [S-iso-lefttab]  'org-shifttab))
 (define-key org-mode-map [(shift tab)]    'org-shifttab)
 
 (define-key org-mode-map (org-key 'S-return)   'org-table-copy-down)
-(define-key org-mode-map "\C-c\C-xc"           'org-table-copy-down)     ; tty
 (define-key org-mode-map [(meta shift return)] 'org-insert-todo-heading)
-(define-key org-mode-map "\C-c\C-xM"           'org-insert-todo-heading) ; tty
 (define-key org-mode-map [(meta return)]       'org-meta-return)
-(define-key org-mode-map "\C-c\C-xm"           'org-meta-return)  ; tty emacs
-(define-key org-mode-map [?\e (return)]        'org-meta-return)   ; tty emacs
 
 ;; Cursor keys with modifiers
 (define-key org-mode-map [(meta left)]  'org-metaleft)
-(define-key org-mode-map [?\e (left)]   'org-metaleft)          ; for tty emacs
-(define-key org-mode-map "\C-c\C-xl"    'org-metaleft)          ; for tty emacs
 (define-key org-mode-map [(meta right)] 'org-metaright)
-(define-key org-mode-map [?\e (right)]  'org-metaright)         ; for tty emacs
-(define-key org-mode-map "\C-c\C-xr"    'org-metaright)         ; for tty emacs
 (define-key org-mode-map [(meta up)]    'org-metaup)
-(define-key org-mode-map [?\e (up)]     'org-metaup)            ; for tty emacs
-(define-key org-mode-map "\C-c\C-xu"    'org-metaup)            ; for tty emacs
 (define-key org-mode-map [(meta down)]  'org-metadown)
-(define-key org-mode-map [?\e (down)]   'org-metadown)          ; for tty emacs
-(define-key org-mode-map "\C-c\C-xd"    'org-metadown)          ; for tty emacs
-
-(define-key org-mode-map [(meta shift left)]       'org-shiftmetaleft)
-(define-key org-mode-map "\C-c\C-xL"               'org-shiftmetaleft)  ; tty
-(define-key org-mode-map [(meta shift right)]      'org-shiftmetaright)
-(define-key org-mode-map "\C-c\C-xR"               'org-shiftmetaright) ; tty
-(define-key org-mode-map [(meta shift up)]         'org-shiftmetaup)
-(define-key org-mode-map "\C-c\C-xU"               'org-shiftmetaup)    ; tty
-(define-key org-mode-map [(meta shift down)]       'org-shiftmetadown)
-(define-key org-mode-map "\C-c\C-xD"               'org-shiftmetadown)  ; tty
+
+(define-key org-mode-map [(meta shift left)]   'org-shiftmetaleft)
+(define-key org-mode-map [(meta shift right)]  'org-shiftmetaright)
+(define-key org-mode-map [(meta shift up)]     'org-shiftmetaup)
+(define-key org-mode-map [(meta shift down)]   'org-shiftmetadown)
+
 (define-key org-mode-map (org-key 'S-up)       'org-shiftup)
-(define-key org-mode-map [?\C-c ?\C-x (up)]    'org-shiftup)
 (define-key org-mode-map (org-key 'S-down)     'org-shiftdown)
-(define-key org-mode-map [?\C-c ?\C-x (down)]  'org-shiftdown)
 (define-key org-mode-map (org-key 'S-left)     'org-shiftleft)
-(define-key org-mode-map [?\C-c ?\C-x (left)]  'org-shiftleft)
 (define-key org-mode-map (org-key 'S-right)    'org-shiftright)
-(define-key org-mode-map [?\C-c ?\C-x (right)] 'org-shiftright)
-
-;; All the other keys
+
+;; Extra keys for tty access.  We only set them when really needed
+;; because otherwise the menus don't show the simple keys
+
+(when (or (featurep 'xemacs)   ;; because XEmacs supports multi-device stuff
+	  (not window-system))
+  (define-key org-mode-map "\M-\C-i"      'org-complete)
+  (define-key org-mode-map "\C-c\C-xc"    'org-table-copy-down)
+  (define-key org-mode-map "\C-c\C-xM"    'org-insert-todo-heading)
+  (define-key org-mode-map "\C-c\C-xm"    'org-meta-return)
+  (define-key org-mode-map [?\e (return)] 'org-meta-return)
+  (define-key org-mode-map [?\e (left)]   'org-metaleft)
+  (define-key org-mode-map "\C-c\C-xl"    'org-metaleft)
+  (define-key org-mode-map [?\e (right)]  'org-metaright)
+  (define-key org-mode-map "\C-c\C-xr"    'org-metaright)
+  (define-key org-mode-map [?\e (up)]     'org-metaup)
+  (define-key org-mode-map "\C-c\C-xu"    'org-metaup)
+  (define-key org-mode-map [?\e (down)]   'org-metadown)
+  (define-key org-mode-map "\C-c\C-xd"    'org-metadown)
+  (define-key org-mode-map "\C-c\C-xL"    'org-shiftmetaleft)
+  (define-key org-mode-map "\C-c\C-xR"    'org-shiftmetaright)
+  (define-key org-mode-map "\C-c\C-xU"    'org-shiftmetaup)
+  (define-key org-mode-map "\C-c\C-xD"    'org-shiftmetadown)
+  (define-key org-mode-map [?\C-c ?\C-x (up)]    'org-shiftup)
+  (define-key org-mode-map [?\C-c ?\C-x (down)]  'org-shiftdown)
+  (define-key org-mode-map [?\C-c ?\C-x (left)]  'org-shiftleft)
+  (define-key org-mode-map [?\C-c ?\C-x (right)] 'org-shiftright))
+  
+  ;; All the other keys
 
 (define-key org-mode-map "\C-c\C-a" 'show-all)  ; in case allout messed up.
+(define-key org-mode-map "\C-c\C-r" 'org-reveal)
 (define-key org-mode-map "\C-xns" 'org-narrow-to-subtree)
 (define-key org-mode-map "\C-c$"    'org-archive-subtree)
 (define-key org-mode-map "\C-c\C-x\C-a" 'org-toggle-archive-tag)
@@ -15357,10 +16361,10 @@
 (define-key org-mode-map [(control ?,)]     'org-cycle-agenda-files)
 (define-key org-mode-map "\C-c["    'org-agenda-file-to-front)
 (define-key org-mode-map "\C-c]"    'org-remove-file)
-(define-key org-mode-map "\C-c\C-r"       'org-timeline)
 (define-key org-mode-map "\C-c-"          'org-table-insert-hline)
 (define-key org-mode-map "\C-c^"          'org-table-sort-lines)
 (define-key org-mode-map "\C-c\C-c"       'org-ctrl-c-ctrl-c)
+(define-key org-mode-map "\C-c#"          'org-update-checkbox-count)
 (define-key org-mode-map "\C-m"           'org-return)
 (define-key org-mode-map "\C-c?"          'org-table-current-column)
 (define-key org-mode-map "\C-c "          'org-table-blank-field)
@@ -15381,6 +16385,7 @@
 (define-key org-mode-map "\C-c\C-x\M-w"   'org-copy-special)
 (define-key org-mode-map "\C-c\C-x\C-y"   'org-paste-special)
 
+(define-key org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays)
 (define-key org-mode-map "\C-c\C-x\C-i" 'org-clock-in)
 (define-key org-mode-map "\C-c\C-x\C-o" 'org-clock-out)
 (define-key org-mode-map "\C-c\C-x\C-x" 'org-clock-cancel)
@@ -15470,6 +16475,12 @@
 	(delete-char N))
     (delete-char N)))
 
+;; Make `delete-selection-mode' work with org-mode and orgtbl-mode
+(put 'org-self-insert-command 'delete-selection t)
+(put 'orgtbl-self-insert-command 'delete-selection t)
+(put 'org-delete-char 'delete-selection 'supersede)
+(put 'org-delete-backward-char 'delete-selection 'supersede)
+
 ;; How to do this: Measure non-white length of current string
 ;; If equal to column width, we should realign.
 
@@ -15561,6 +16572,7 @@
    ((org-at-table-p) (org-call-with-arg 'org-table-move-column 'left))
    ((or (org-on-heading-p) (org-region-active-p))
     (call-interactively 'org-do-promote))
+   ((org-at-item-p) (call-interactively 'org-outdent-item))
    (t (call-interactively 'backward-word))))
 
 (defun org-metaright (&optional arg)
@@ -15573,6 +16585,7 @@
    ((org-at-table-p) (call-interactively 'org-table-move-column))
    ((or (org-on-heading-p) (org-region-active-p))
     (call-interactively 'org-do-demote))
+   ((org-at-item-p) (call-interactively 'org-indent-item))
    (t (call-interactively 'forward-word))))
 
 (defun org-metaup (&optional arg)
@@ -15695,7 +16708,8 @@
   (interactive "P")
   (let  ((org-enable-table-editor t))
     (cond
-     ((or org-clock-overlays org-occur-highlights
+     ((or org-clock-overlays
+	  org-occur-highlights
 	  org-latex-fragment-image-overlays)
       (org-remove-clock-overlays)
       (org-remove-occur-highlights)
@@ -15823,10 +16837,12 @@
 
 (easy-menu-define org-org-menu org-mode-map "Org menu"
   '("Org"
-    ["Cycle Visibility" org-cycle (or (bobp) (outline-on-heading-p))]
-    ["Cycle Global Visibility" org-shifttab (not (org-at-table-p))]
-    ["Sparse Tree" org-occur t]
-    ["Show All" show-all t]
+    ("Show/Hide"
+     ["Cycle Visibility" org-cycle (or (bobp) (outline-on-heading-p))]
+     ["Cycle Global Visibility" org-shifttab (not (org-at-table-p))]
+     ["Sparse Tree" org-occur t]
+     ["Reveal Context" org-reveal t]
+     ["Show All" show-all t])
     "--"
     ["New Heading" org-insert-heading t]
     ("Navigate Headings"
@@ -15882,19 +16898,31 @@
      "--"
      ["Set Priority" org-priority t]
      ["Priority Up" org-shiftup t]
-     ["Priority Down" org-shiftdown t])
+     ["Priority Down" org-shiftdown t]
+     "--"
+;     ["Insert Checkbox" org-insert-todo-heading (org-in-item-p)]
+;     ["Toggle Checkbox" org-ctrl-c-ctrl-c (org-at-item-checkbox-p)]
+;     ["Insert [n/m] cookie" (progn (insert "[/]") (org-update-checkbox-count))
+;      (or (org-on-heading-p) (org-at-item-p))]
+;     ["Insert [%] cookie" (progn (insert "[%]") (org-update-checkbox-count))
+;      (or (org-on-heading-p) (org-at-item-p))]
+;     ["Update Statistics" org-update-checkbox-count t]
+     )
     ("Dates and Scheduling"
      ["Timestamp" org-time-stamp t]
      ["Timestamp (inactive)" org-time-stamp-inactive t]
      ("Change Date"
-      ["1 Day Later" org-timestamp-up-day t]
-      ["1 Day Earlier" org-timestamp-down-day t]
+      ["1 Day Later" org-shiftright t]
+      ["1 Day Earlier" org-shiftleft t]
       ["1 ... Later" org-shiftup t]
       ["1 ... Earlier" org-shiftdown t])
      ["Compute Time Range" org-evaluate-time-range t]
      ["Schedule Item" org-schedule t]
      ["Deadline" org-deadline t]
      "--"
+     ["Custom time format" org-toggle-time-stamp-overlays
+      :style radio :selected org-display-custom-times]
+     "--"
      ["Goto Calendar" org-goto-calendar t]
      ["Date from Calendar" org-date-from-calendar t])
     ("Logging work"
@@ -15911,7 +16939,7 @@
 		      (if org-log-done "automatically" "not")))
       :style toggle :selected org-log-done])
     "--"
-    ["Agenda Command" org-agenda t]
+    ["Agenda Command..." org-agenda t]
     ("File List for Agenda")
     ("Special views current file"
      ["TODO Tree"  org-show-todo-tree t]
@@ -15936,7 +16964,7 @@
       (save-excursion (goto-char (point-min))
 		      (re-search-forward "<[a-z]+:" nil t))])
     "--"
-    ["Export/Publish" org-export t]
+    ["Export/Publish..." org-export t]
     ("LaTeX"
      ["Org CDLaTeX mode" org-cdlatex-mode :style toggle
       :selected org-cdlatex-mode]
@@ -16104,7 +17132,7 @@
       (push (list :latex-preview
 		  (org-overlay-start o) (org-overlay-end o)) clist))
      ((org-inside-LaTeX-fragment-p)
-      ;; FIXME: positions wring.
+      ;; FIXME: positions wrong.
       (push (list :latex-fragment (point) (point)) clist)))
 
     (setq clist (nreverse (delq nil clist)))
@@ -16317,6 +17345,26 @@
       (outline-up-heading-all arg)   ; emacs 21 version of outline.el
     (outline-up-heading arg t)))     ; emacs 22 version of outline.el
 
+(defun org-goto-sibling (&optional previous)
+  "Goto the next sibling, even if it is invisible.
+When PREVIOUS is set, go to the previous sibling instead.  Returns t
+when a sibling was found.  When none is found, return nil and don't
+move point."
+  (let ((fun (if previous 're-search-backward 're-search-forward))
+	(pos (point))
+	(re (concat "^" outline-regexp))
+	level l)
+    (org-back-to-heading t)
+    (setq level (funcall outline-level))
+    (catch 'exit
+      (or previous (forward-char 1))
+      (while (funcall fun re nil t)
+	(setq l (funcall outline-level))
+	(when (< l level) (goto-char pos) (throw 'exit nil))
+	(when (= l level) (goto-char (match-beginning 0)) (throw 'exit t)))
+      (goto-char pos)
+      nil)))
+
 (defun org-show-hidden-entry ()
   "Show an entry where even the heading is hidden."
   (save-excursion
@@ -16405,11 +17453,14 @@
        (or (org-invisible-p)
 	   (save-excursion (goto-char (max (point-min) (1- (point))))
 			   (org-invisible-p)))
-       (org-show-hierarchy-above)))
+       (org-show-context 'bookmark-jump)))
+
+;; Make session.el ignore our circular variable
+(eval-after-load "session"
+  '(add-to-list 'session-globals-exclude 'org-mark-ring))
 
 ;;; Experimental code
 
-
 ;;; Finish up
 
 (provide 'org)
--- a/lisp/thingatpt.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/thingatpt.el	Tue Nov 21 08:56:38 2006 +0000
@@ -214,15 +214,18 @@
 ``thing-at-point-url-regexp''.")
 
 (defvar thing-at-point-uri-schemes
-  ;; Officials from http://www.iana.org/assignments/uri-schemes
+  ;; Officials from http://www.iana.org/assignments/uri-schemes.html
   '("ftp://" "http://" "gopher://" "mailto:" "news:" "nntp:"
     "telnet://" "wais://" "file:/" "prospero:" "z39.50s:" "z39.50r:"
     "cid:" "mid:" "vemmi:" "service:" "imap:" "nfs:" "acap:" "rtsp:"
     "tip:" "pop:" "data:" "dav:" "opaquelocktoken:" "sip:" "tel:" "fax:"
     "modem:" "ldap:" "https://" "soap.beep:" "soap.beeps:" "urn:" "go:"
     "afs:" "tn3270:" "mailserver:"
+    "crid:" "dict:" "dns:" "dtn:" "h323:" "im:" "info:" "ipp:"
+    "iris.beep:" "mtqp:" "mupdate:" "pres:" "sips:" "snmp:" "tag:"
+    "tftp:" "xmlrpc.beep:" "xmlrpc.beeps:" "xmpp:"
   ;; Compatibility
-    "snews:")
+    "snews:" "irc:" "mms://" "mmsh://")
   "Uniform Resource Identifier (URI) Schemes.")
 
 (defvar thing-at-point-url-regexp
@@ -275,7 +278,10 @@
 	  ;; strip whitespace
 	  (while (string-match "[ \t\n\r]+" url)
 	    (setq url (replace-match "" t t url)))
-	  (and short (setq url (concat (cond ((string-match "@" url)
+	  (and short (setq url (concat (cond ((string-match "^[a-zA-Z]+:" url)
+					       ;; already has a URL scheme.
+					       "")
+					     ((string-match "@" url)
                                               "mailto:")
 					     ;; e.g. ftp.swiss... or ftp-swiss...
                                              ((string-match "^ftp" url)
--- a/lisp/tutorial.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/tutorial.el	Tue Nov 21 08:56:38 2006 +0000
@@ -35,6 +35,20 @@
 (require 'help-mode) ;; for function help-buffer
 (eval-when-compile (require 'cl))
 
+(defface tutorial-warning-face
+  '((((class color) (min-colors 88) (background light))
+     (:foreground "Red1" :weight bold))
+    (((class color) (min-colors 88) (background dark))
+     (:foreground "Pink" :weight bold))
+    (((class color) (min-colors 16) (background light))
+     (:foreground "Red1" :weight bold))
+    (((class color) (min-colors 16) (background dark))
+     (:foreground "Pink" :weight bold))
+    (((class color) (min-colors 8)) (:foreground "red"))
+    (t (:inverse-video t :weight bold)))
+  "Face used to highlight warnings in the tutorial."
+  :group 'font-lock-faces)
+
 (defvar tutorial--point-before-chkeys 0
   "Point before display of key changes.")
 (make-variable-buffer-local 'tutorial--point-before-chkeys)
@@ -381,7 +395,8 @@
               (unless (eq def-fun key-fun)
                 ;; Insert key binding description:
                 (when (string= key-txt explain-key-desc)
-                  (put-text-property 0 (length key-txt) 'face '(:background "yellow") key-txt))
+                  (put-text-property 0 (length key-txt)
+				     'face 'tutorial-warning-face key-txt))
                 (insert "   " key-txt " ")
                 (setq tot-len (length key-txt))
                 (when (> 9 tot-len)
@@ -464,17 +479,17 @@
              (def-fun (nth 0 kdf))
              (def-fun-txt (format "%s" def-fun))
              (rem-fun (command-remapping def-fun))
-             (key-fun (key-binding key))
+             (key-fun (if (eq def-fun 'ESC-prefix)
+			  (lookup-key global-map [27])
+			(key-binding key)))
              (where (where-is-internal (if rem-fun rem-fun def-fun))))
-        (when (eq key-fun 'ESC-prefix)
-          (message "ESC-prefix!!!!"))
         (if where
             (progn
               (setq where (key-description (car where)))
               (when (and (< 10 (length where))
                          (string= (substring where 0 (length "<menu-bar>"))
                                   "<menu-bar>"))
-                (setq where "The menus")))
+                (setq where "the menus")))
           (setq where ""))
         (setq remark nil)
         (unless
@@ -582,7 +597,7 @@
                        'action
                        'tutorial--detailed-help
                        'follow-link t
-                       'face '(:inherit link :background "yellow"))
+                       'face 'link)
         (insert "]\n\n" )
         (when changed-keys
           (dolist (tk changed-keys)
@@ -599,20 +614,22 @@
                 ;; Mark the key in the tutorial text
                 (unless (string= "Same key" where)
                   (let ((here (point))
+			(case-fold-search nil)
                         (key-desc (key-description key)))
-                    (while (search-forward key-desc nil t)
+                    (while (re-search-forward
+			    (concat (regexp-quote key-desc)
+				    "[[:space:]]") nil t)
                       (put-text-property (match-beginning 0)
                                          (match-end 0)
                                          'tutorial-remark 'only-colored)
                       (put-text-property (match-beginning 0)
                                          (match-end 0)
-                                         'face '(:background "yellow"))
+                                         'face 'tutorial-warning-face)
                       (forward-line)
                       (let ((s  (get-lang-string tutorial--lang 'tut-chgdkey))
                             (s2 (get-lang-string tutorial--lang 'tut-chgdkey2))
                             (start (point))
                             end)
-                        ;;(concat "** The key " key-desc " has been rebound, but you can use " where " instead ["))
                         (when (and s s2)
                           (setq s (format s key-desc where s2))
                           (insert s)
@@ -624,7 +641,7 @@
                                          'tutorial--detailed-help
                                          'explain-key-desc key-desc
                                          'follow-link t
-                                         'face '(:inherit link :background "yellow"))
+                                         'face 'link)
                           (insert "] **")
                           (insert "\n")
                           (setq end (point))
@@ -632,7 +649,7 @@
                           ;; Add a property so we can remove the remark:
                           (put-text-property start end 'tutorial-remark t)
                           (put-text-property start end
-                                             'face '(:background "yellow" :foreground "#c00"))
+                                             'face 'tutorial-warning-face)
                           (put-text-property start end 'read-only t))))
                     (goto-char here)))))))
 
@@ -642,14 +659,7 @@
         ;; bindings stand out:
         (put-text-property start end 'tutorial-remark t)
         (put-text-property start end
-                           'face
-                           ;; The default warning face does not
-                           ;;look good in this situation. Instead
-                           ;;try something that could be
-                           ;;recognized from warnings in normal
-                           ;;life:
-                           ;; 'font-lock-warning-face
-                           (list :background "yellow" :foreground "#c00"))
+                           'face 'tutorial-warning-face)
         ;; Make it possible to use Tab/S-Tab between fields in
         ;; this area:
         (put-text-property start end 'local-map tutorial--tab-map)
--- a/lisp/url/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/url/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,4 +1,32 @@
-2006-11-03  Shun-ichi GOTO  <gotoh@taiyo.co.jp> (tiny change)
+2006-11-15  Magnus Henoch  <mange@freemail.hu>
+
+	* url-http.el (url-http): Make proxy-object buffer-local, to
+	handle proxied asynchronous connections correctly.
+
+	* url-parse.el (url-generic-parse-url): Use with-temp-buffer.
+
+2006-11-15  Shun-ichi GOTO  <gotoh@taiyo.co.jp>  (tiny change)
+
+	* url-http.el (url-http-wait-for-headers-change-function):
+	Defer detection of HTTP 0.9 until we have at least one line.
+
+2006-11-10  Shun-ichi GOTO  <gotoh@taiyo.co.jp>  (tiny change)
+
+	* url-http.el (url-http-mark-connection-as-free)
+	(url-http-find-free-connection): Don't treat process with status
+	`connect' as free.
+	(url-http-async-sentinel): Request correct url.
+
+2006-11-08  Magnus Henoch  <mange@freemail.hu>
+
+	* url-http.el (url-http-handle-authentication): If there are
+	several authentication headers, use the strongest available
+	method.
+
+	* url.el (url-retrieve-synchronously): Allow quitting when
+	inhibit-quit is t.
+
+2006-11-03  Shun-ichi GOTO  <gotoh@taiyo.co.jp>  (tiny change)
 
 	* url-http.el (url-http-handle-authentication): If there are
 	several authentication headers, use the first with a supported
@@ -37,13 +65,13 @@
 
 2006-10-16  Magnus Henoch  <mange@freemail.hu>
 
-	* url-http.el (url-https-create-secure-wrapper): Always use tls
-	gateway method.
+	* url-http.el (url-https-create-secure-wrapper):
+	Always use tls gateway method.
 
 2006-10-12  Magnus Henoch  <mange@freemail.hu>
 
-	* url-http.el (url-http-find-free-connection): Handle
-	url-open-stream returning nil.
+	* url-http.el (url-http-find-free-connection):
+	Handle url-open-stream returning nil.
 
 2006-10-11  Magnus Henoch  <mange@freemail.hu>
 
@@ -455,7 +483,7 @@
 2004-11-20  Masatake YAMATO  <jet@gyve.org>
 
 	* url.el (url-mm-callback): Delay the invocation
-	of `mm-destroy-parts'. Invoke `mm-destroy-parts'
+	of `mm-destroy-parts'.  Invoke `mm-destroy-parts'
 	when the buffer is killed.
 
 2004-11-12  Masatake YAMATO  <jet@gyve.org>
@@ -465,7 +493,7 @@
 2004-11-02  Masatake YAMATO  <jet@gyve.org>
 
 	* url-imap.el (url-imap-open-host): Don't use
-	`string-to-int'. The port returned by `url-port'
+	`string-to-int'.  The port returned by `url-port'
 	is expected to be an integer.
 
 	* url-irc.el (url-irc): Ditto.
@@ -679,7 +707,7 @@
 	* lisp/url.el (url-retrieve-synchronously): Use sleep-for, not
 	sit-for.  From monnier@gnu.org.
 
-2002-11-04  Walter C. Pelissero <walter@pelissero.org>
+2002-11-04  Walter C. Pelissero  <walter@pelissero.org>
 
 	* lisp/url-methods.el (url-scheme-register-proxy): Make sure to convert
 	port numbers to integers when creating the URL objects for proxies.
@@ -1215,7 +1243,7 @@
 	* lisp/url-nfs.el: Fix `file-truname' typo.
 
 	* lisp/url-news.el: Require cl when compiling.
-	(url-warn, gnus-group-read-ephemeral-group):  Autoload.
+	(url-warn, gnus-group-read-ephemeral-group): Autoload.
 	(url-nntp-default-port, url-news-default-port, url-nntp): Delete.
 	(url-news-fetch-newsgroup): Declare gnus-group-buffer special.
 
@@ -1401,7 +1429,7 @@
 	* lisp/url-history.el: Avoid cl-...hash functions.
 	(url): Require.
 
-	* lisp/url-gw.el, lisp/url-cookie.el:  Require cl only when compiling.
+	* lisp/url-gw.el, lisp/url-cookie.el: Require cl only when compiling.
 
 2000-10-03  William M. Perry  <wmperry@aventail.com>
 
@@ -1466,7 +1494,7 @@
 	* configure.in: Checks to make sure that Gnus was found, since we
 	HAVE to have it now.  Removed conditional compilation of url-cid.el
 
-1999-12-16  Eric Marsden <emarsden@mail.dotcom.fr>
+1999-12-16  Eric Marsden  <emarsden@mail.dotcom.fr>
 
 	* lisp/url-util.el (url-get-url-at-point): Allow URLs wrapped in
 	() to have periods at the end of the chunk.
@@ -1519,7 +1547,7 @@
 	nnimap-server-buffer or `nnimap-open-server' chokes trying to use
 	the current buffer as the IMAP server buffer, which fails miserably.
 
-1999-12-11  Simon Josefsson <jas@pdc.kth.se>
+1999-12-11  Simon Josefsson  <jas@pdc.kth.se>
 
 	* lisp/url-imap.el: Initial (rough) implementation for IMAP urls.
 
@@ -1539,7 +1567,7 @@
 	* lisp/url-http.el (mail-parse): Since we use functions from here,
 	we should require it, eh?
 
-1999-12-10 01:57:01  Shenghuo ZHU  <zsh@cs.rochester.edu>
+1999-12-10  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
 	* lisp/url-cookie.el (url-cookie-multiple-line): One line cookie
 	if nil.
@@ -1688,6 +1716,7 @@
 
 Local variables:
 coding: utf-8
+add-log-time-zone-rule: t
 End:
 
 ;; arch-tag: ac117078-3091-4533-be93-098162ac2926
--- a/lisp/url/url-http.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/url/url-http.el	Tue Nov 21 08:56:38 2006 +0000
@@ -92,7 +92,7 @@
 
 (defun url-http-mark-connection-as-free (host port proc)
   (url-http-debug "Marking connection as free: %s:%d %S" host port proc)
-  (when (memq (process-status proc) '(open run))
+  (when (memq (process-status proc) '(open run connect))
     (set-process-buffer proc nil)
     (set-process-sentinel proc 'url-http-idle-sentinel)
     (puthash (cons host port)
@@ -104,7 +104,7 @@
   (let ((conns (gethash (cons host port) url-http-open-connections))
 	(found nil))
     (while (and conns (not found))
-      (if (not (memq (process-status (car conns)) '(run open)))
+      (if (not (memq (process-status (car conns)) '(run open connect)))
 	  (progn
 	    (url-http-debug "Cleaning up dead process: %s:%d %S"
 			    host port (car conns))
@@ -313,21 +313,27 @@
 	(type nil)
 	(url (url-recreate-url url-current-object))
 	(url-basic-auth-storage 'url-http-real-basic-auth-storage)
-	auth)
+	auth
+	(strength 0))
     ;; Cheating, but who cares? :)
     (if proxy
 	(setq url-basic-auth-storage 'url-http-proxy-basic-auth-storage))
 
-    ;; find first supported auth
-    (while auths
-      (setq auth (url-eat-trailing-space (url-strip-leading-spaces (car auths))))
-      (if (string-match "[ \t]" auth)
-	  (setq type (downcase (substring auth 0 (match-beginning 0))))
-	(setq type (downcase auth)))
-      (if (url-auth-registered type)
-	  (setq auths nil)		; no more check
-	(setq auth nil
-	      auths (cdr auths))))
+    ;; find strongest supported auth
+    (dolist (this-auth auths)
+      (setq this-auth (url-eat-trailing-space 
+		       (url-strip-leading-spaces 
+			this-auth)))
+      (let* ((this-type 
+	      (if (string-match "[ \t]" this-auth)
+		  (downcase (substring this-auth 0 (match-beginning 0)))
+		(downcase this-auth)))
+	     (registered (url-auth-registered this-type))
+	     (this-strength (cddr registered)))
+	(when (and registered (> this-strength strength))
+	  (setq auth this-auth
+		type this-type
+		strength this-strength))))
 
     (if (not (url-auth-registered type))
 	(progn
@@ -927,7 +933,8 @@
 	    (old-http nil)
 	    (content-length nil))
 	(goto-char (point-min))
-	(if (not (looking-at "^HTTP/[1-9]\\.[0-9]"))
+	(if (and (looking-at ".*\n")	; have one line at least
+		 (not (looking-at "^HTTP/[1-9]\\.[0-9]")))
 	    ;; Not HTTP/x.y data, must be 0.9
 	    ;; God, I wish this could die.
 	    (setq end-of-headers t
@@ -1064,7 +1071,8 @@
 		    url-http-chunked-length
 		    url-http-chunked-start
 		    url-http-chunked-counter
-		    url-http-process))
+		    url-http-process
+		    proxy-object))
   (let ((connection (url-http-find-free-connection (url-host url)
 						   (url-port url)))
 	(buffer (generate-new-buffer (format " *http %s:%d*"
@@ -1099,6 +1107,7 @@
 		       url-http-data
 		       url-http-target-url))
 	  (set (make-local-variable var) nil))
+	(make-local-variable 'proxy-object)
 
 	(setq url-http-method (or url-request-method "GET")
 	      url-http-extra-headers url-request-extra-headers
@@ -1138,7 +1147,7 @@
     (cond
      ((string= (substring why 0 4) "open")
       (set-process-sentinel proc 'url-http-end-of-document-sentinel)
-      (process-send-string proc (url-http-create-request url-current-object)))
+      (process-send-string proc (url-http-create-request url-http-target-url)))
      (t
       (setf (car url-callback-arguments)
 	    (nconc (list :error (list 'error 'connection-failed why
--- a/lisp/url/url-parse.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/url/url-parse.el	Tue Nov 21 08:56:38 2006 +0000
@@ -135,8 +135,7 @@
       (url-set-full retval nil)
       retval))
    (t
-    (save-excursion
-      (set-buffer (get-buffer-create " *urlparse*"))
+    (with-temp-buffer
       (set-syntax-table url-parse-syntax-table)
       (let ((save-pos nil)
 	    (prot nil)
--- a/lisp/url/url.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/url/url.el	Tue Nov 21 08:56:38 2006 +0000
@@ -246,10 +246,16 @@
             ;; interrupt it before it got a chance to handle process input.
             ;; `sleep-for' was tried but it lead to other forms of
             ;; hanging.  --Stef
-            (unless (or (accept-process-output proc) (null proc))
+            (unless (or (with-local-quit 
+			  (accept-process-output proc))
+			(null proc))
               ;; accept-process-output returned nil, maybe because the process
-              ;; exited (and may have been replaced with another).
-              (setq proc (get-buffer-process asynch-buffer))))))
+              ;; exited (and may have been replaced with another).  If we got
+	      ;; a quit, just stop.
+	      (when quit-flag
+		(delete-process proc))
+              (setq proc (and (not quit-flag)
+			      (get-buffer-process asynch-buffer)))))))
       asynch-buffer)))
 
 (defun url-mm-callback (&rest ignored)
--- a/lisp/vc-svn.el	Tue Nov 21 01:10:47 2006 +0000
+++ b/lisp/vc-svn.el	Tue Nov 21 08:56:38 2006 +0000
@@ -95,22 +95,38 @@
   ;; :group 'vc
   )
 
+(defvar vc-svn-admin-directory
+  (cond ((and (eq system-type 'windows-nt)
+	      (getenv "SVN_ASP_DOT_NET_HACK"))
+	 "_svn")
+	(t ".svn"))
+  "The name of the \".svn\" subdirectory or its equivalent.")
+
 ;;;
 ;;; State-querying functions
 ;;;
 
+;;; vc-svn-admin-directory is generally not defined when the
+;;; autoloaded function is called.
+
 ;;;###autoload (defun vc-svn-registered (f)
-;;;###autoload   (when (file-readable-p (expand-file-name
-;;;###autoload 			  ".svn/entries" (file-name-directory f)))
+;;;###autoload   (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
+;;;###autoload 			       (getenv "SVN_ASP_DOT_NET_HACK"))
+;;;###autoload 			  "_svn")
+;;;###autoload 			 (t ".svn"))))
+;;;###autoload     (when (file-readable-p (expand-file-name
+;;;###autoload 			    (concat admin-dir "/entries")
+;;;###autoload 			    (file-name-directory f)))
 ;;;###autoload       (load "vc-svn")
-;;;###autoload       (vc-svn-registered f)))
+;;;###autoload       (vc-svn-registered f))))
 
 ;;;###autoload
 (add-to-list 'completion-ignored-extensions ".svn/")
 
 (defun vc-svn-registered (file)
   "Check if FILE is SVN registered."
-  (when (file-readable-p (expand-file-name ".svn/entries"
+  (when (file-readable-p (expand-file-name (concat vc-svn-admin-directory
+						   "/entries")
 					   (file-name-directory file)))
     (with-temp-buffer
       (cd (file-name-directory file))
@@ -206,7 +222,7 @@
 
 (defun vc-svn-responsible-p (file)
   "Return non-nil if SVN thinks it is responsible for FILE."
-  (file-directory-p (expand-file-name ".svn"
+  (file-directory-p (expand-file-name vc-svn-admin-directory
 				      (if (file-directory-p file)
 					  file
 					(file-name-directory file)))))
@@ -474,7 +490,9 @@
     (let ((coding-system-for-read
 	   (or file-name-coding-system
 	       default-file-name-coding-system)))
-      (vc-insert-file (expand-file-name ".svn/entries" dirname)))
+      (vc-insert-file (expand-file-name (concat vc-svn-admin-directory
+						"/entries")
+					dirname)))
     (goto-char (point-min))
     (when (re-search-forward
 	   ;; Old `svn' used name="svn:dir", newer use just name="".
--- a/lispintro/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lispintro/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,18 @@
+2006-11-09  Robert J. Chassell  <bob@rattlesnake.com>
+
+	* emacs-lisp-intro.texi: Copy descriptions from detailed master
+	menu to menus within body.
+
+	* emacs-lisp-intro.texi (at the beginning):  Add `other shell
+	commands' to produce additional output formats; total is now ten.
+	(A Loop with an Incrementing Counter, and others): Ensure Info
+	menus will appear in short windows.
+	(Disentangle beginning-of-buffer): Replace `version 21' with `more
+	recent versions'.
+	(Simple Extension): Show how to handle multiple versions by adding
+	an alternative with a test of `>= 21'
+
+
 2006-11-06  Robert J. Chassell  <bob@rattlesnake.com>
 
 	* emacs-lisp-intro.texi: Finish minor changes seen from DVI output.
@@ -201,6 +216,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 2001, 2002, 2003, 2004, 2005,
--- a/lispintro/emacs-lisp-intro.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/lispintro/emacs-lisp-intro.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -24,8 +24,8 @@
 
 @comment %**end of header
 
-@set edition-number 3.06
-@set update-date 6 November 2006
+@set edition-number 3.07
+@set update-date 9 November 2006
 
 @ignore
  ## Summary of shell commands to create various output formats:
@@ -34,48 +34,26 @@
     ## pushd /u/intro/
 
     ## Info output
-    # makeinfo --no-split --paragraph-indent=0 --verbose emacs-lisp-intro.texi
     makeinfo --paragraph-indent=0 --verbose emacs-lisp-intro.texi
 
-    ## ;; (progn (when (bufferp (get-buffer "*info*")) (kill-buffer "*info*")) (info "../info/eintr"))
+      ## ;; (progn (when (bufferp (get-buffer "*info*")) (kill-buffer "*info*")) (info "/usr/local/src/emacs/info/eintr"))
 
     ## DVI output
     texi2dvi emacs-lisp-intro.texi
 
-      ## View DVI output; see below also
-       # xdvi -margins 24pt -topmargin 4pt -offsets 24pt -geometry 760x1140 -s 5 -useTeXpages -mousemode 1 emacs-lisp-intro.dvi &
+      ## xdvi -margins 24pt -topmargin 4pt -offsets 24pt -geometry 760x1140 -s 5 -useTeXpages -mousemode 1 emacs-lisp-intro.dvi &
 
     ## HTML output
     makeinfo --html --no-split --verbose emacs-lisp-intro.texi
 
+      ## galeon emacs-lisp-intro.html
+
     ## Plain text output
     makeinfo --fill-column=70 --no-split --paragraph-indent=0 \
     --verbose --no-headers --output=emacs-lisp-intro.txt emacs-lisp-intro.texi
 
-    ## DocBook output
-    makeinfo --docbook --no-split --paragraph-indent=0 \
-    --verbose emacs-lisp-intro.texi
-
-    ## XML output
-    makeinfo --xml --no-split --paragraph-indent=0 \
-    --verbose emacs-lisp-intro.texi
-
     popd
 
-    #### (You must be in the same directory as the viewed file.)
-
-      ## View DVI output
-      xdvi emacs-lisp-intro.dvi &
-
-      ## View HTML output
-      galeon emacs-lisp-intro.html
-
-      ## View Info output with standalone reader
-      info emacs-lisp-intro.info
-
-      ## popd
-
-
 # as user `root'
 # insert thumbdrive
   mtusb       #   mount -v -t ext3 /dev/sda /mnt
@@ -83,6 +61,40 @@
   umtusb      #   umount -v /mnt
 # remove thumbdrive
 
+    ## Other shell commands
+
+    pushd /usr/local/src/emacs/lispintro/
+    ## pushd /u/intro/
+
+    ## PDF
+    texi2dvi --pdf emacs-lisp-intro.texi
+       # xpdf emacs-lisp-intro.pdf &
+
+    ## DocBook                    -- note file extension
+    makeinfo --docbook --no-split --paragraph-indent=0 \
+    --verbose --output=emacs-lisp-intro.docbook emacs-lisp-intro.texi
+
+    ## XML with a Texinfo DTD     -- note file extension
+    makeinfo --xml --no-split --paragraph-indent=0 \
+    --verbose --output=emacs-lisp-intro.texinfoxml emacs-lisp-intro.texi
+
+    ## PostScript (needs DVI)
+        #     gv emacs-lisp-intro.ps &
+        # Create DVI if we lack it
+        # texi2dvi emacs-lisp-intro.texi
+    dvips emacs-lisp-intro.dvi -o emacs-lisp-intro.ps
+
+    ## RTF (needs HTML)
+        # Use OpenOffice to view RTF
+        # Create HTML if we lack it
+        # makeinfo --no-split --html emacs-lisp-intro.texi
+    /usr/local/src/html2rtf.pl emacs-lisp-intro.html
+
+    ## LaTeX (needs RTF)
+    /usr/bin/rtf2latex emacs-lisp-intro.rtf
+
+    popd
+
 @end ignore
 
 @c ================ Included Figures ================
@@ -381,6 +393,7 @@
 
 Evaluation
 
+* How the Interpreter Acts::    Returns and Side Effects...
 * Evaluating Inner Lists::      Lists within lists...
 
 Variables
@@ -442,7 +455,7 @@
 Make a Function Interactive
 
 * Interactive multiply-by-seven::  An overview.
-* multiply-by-seven in detail::  The interactive version.
+* multiply-by-seven in detail::    The interactive version.
 
 @code{let}
 
@@ -576,7 +589,7 @@
 @code{copy-region-as-kill}
 
 * Complete copy-region-as-kill::  The complete function definition.
-* copy-region-as-kill body::    The body of @code{copy-region-as-kill}.
+* copy-region-as-kill body::      The body of @code{copy-region-as-kill}.
 
 The Body of @code{copy-region-as-kill}
 
@@ -614,9 +627,10 @@
 * Loop Example::                A @code{while} loop that uses a list.
 * print-elements-of-list::      Uses @code{while}, @code{car}, @code{cdr}.
 * Incrementing Loop::           A loop with an incrementing counter.
+* Incrementing Loop Details::
 * Decrementing Loop::           A loop with a decrementing counter.
 
-A Loop with an Incrementing Counter
+Details of an Incrementing Loop
 
 * Incrementing Example::        Counting pebbles in a triangle.
 * Inc Example parts::           The parts of the function definition.
@@ -709,6 +723,7 @@
 
 Prepare the Data for Display in a Graph
 
+* Data for Display in Detail::
 * Sorting::                     Sorting lists.
 * Files List::                  Making a list of files.
 * Counting function definitions::
@@ -749,6 +764,7 @@
 
 Handling the Kill Ring
 
+* What the Kill Ring Does::
 * current-kill::
 * yank::                        Paste a copy of a clipped element.
 * yank-pop::                    Insert element pointed to.
@@ -760,6 +776,7 @@
 
 @code{current-kill} in Outline
 
+* Body of current-kill::
 * Digression concerning error::  How to mislead humans, but not computers.
 * Determining the Element::
 
@@ -773,6 +790,7 @@
 
 The @code{print-Y-axis} Function
 
+* print-Y-axis in Detail::
 * Height of label::             What height for the Y axis?
 * Compute a Remainder::         How to compute the remainder of a division.
 * Y Axis Element::              Construct a line for the Y axis.
@@ -818,11 +836,11 @@
 editing in the most general sense of the word.)
 
 @menu
-* Why::
-* On Reading this Text::
-* Who You Are::
+* Why::                         Why learn Emacs Lisp?
+* On Reading this Text::        Read, gain familiarity, pick up habits....
+* Who You Are::                 For whom this is written.
 * Lisp History::
-* Note for Novices::
+* Note for Novices::            You can read this as a novice.
 * Thank You::
 @end menu
 
@@ -1075,16 +1093,16 @@
 Errors, , Generate an Error Message}.}  Lists are the basis of Lisp.
 
 @menu
-* Lisp Lists::
-* Run a Program::
-* Making Errors::
-* Names & Definitions::
-* Lisp Interpreter::
-* Evaluation::
-* Variables::
-* Arguments::
-* set & setq::
-* Summary::
+* Lisp Lists::                  What are lists?
+* Run a Program::               Any list in Lisp is a program ready to run.
+* Making Errors::               Generating an error message.
+* Names & Definitions::         Names of symbols and function definitions.
+* Lisp Interpreter::            What the Lisp interpreter does.
+* Evaluation::                  Running a program.
+* Variables::                   Returning a value from a variable.
+* Arguments::                   Passing information to a function.
+* set & setq::                  Setting the value of a variable.
+* Summary::                     The major points.
 * Error Message Exercises::
 @end menu
 
@@ -1114,10 +1132,10 @@
 @cindex Flowers in a field
 
 @menu
-* Numbers Lists::
-* Lisp Atoms::
-* Whitespace in Lists::
-* Typing Lists::
+* Numbers Lists::               List have numbers, other lists, in them.
+* Lisp Atoms::                  Elemental entities.
+* Whitespace in Lists::         Formatting lists to be readable.
+* Typing Lists::                How GNU Emacs helps you type lists.
 @end menu
 
 @node Numbers Lists, Lisp Atoms, Lisp Lists, Lisp Lists
@@ -1555,8 +1573,8 @@
 yourself or the computer.
 
 @menu
-* Complications::
-* Byte Compiling::
+* Complications::               Variables, Special forms, Lists within.
+* Byte Compiling::              Specially processing code for speed.
 @end menu
 
 @node Complications, Byte Compiling, Lisp Interpreter, Lisp Interpreter
@@ -1626,6 +1644,17 @@
 value or amount of; to appraise', according to @cite{Webster's New
 Collegiate Dictionary}.
 
+@menu
+* How the Interpreter Acts::    Returns and Side Effects...
+* Evaluating Inner Lists::      Lists within lists...
+@end menu
+
+@node How the Interpreter Acts, Evaluating Inner Lists, Evaluation, Evaluation
+@ifnottex
+@unnumberedsubsec How the Lisp Interpreter Acts
+@end ifnottex
+
+@cindex @samp{returned value} explained
 After evaluating an expression, the Lisp interpreter will most likely
 @dfn{return} the value that the computer produces by carrying out the
 instructions it found in the function definition, or perhaps it will
@@ -1647,11 +1676,7 @@
 Lisp interpreter to return a value and perhaps carry out a side effect;
 or else produce an error.
 
-@menu
-* Evaluating Inner Lists::
-@end menu
-
-@node Evaluating Inner Lists,  , Evaluation, Evaluation
+@node Evaluating Inner Lists,  , How the Interpreter Acts, Evaluation
 @comment  node-name,  next,  previous,  up
 @subsection Evaluating Inner Lists
 @cindex Inner list evaluation
@@ -1750,8 +1775,9 @@
 
 @menu
 * fill-column Example::
-* Void Function::
-* Void Variable::
+* Void Function::               The error message for a symbol
+                                  without a function.
+* Void Variable::               The error message for a symbol without a value.
 @end menu
 
 @node fill-column Example, Void Function, Variables, Variables
@@ -1957,11 +1983,14 @@
 have two different function definitions at the same time.)}
 
 @menu
-* Data types::
-* Args as Variable or List::
-* Variable Number of Arguments::
-* Wrong Type of Argument::
-* message::
+* Data types::                  Types of data passed to a function.
+* Args as Variable or List::    An argument can be the value
+                                  of a variable or list.
+* Variable Number of Arguments::  Some functions may take a
+                                  variable number of arguments.
+* Wrong Type of Argument::      Passing an argument of the wrong type
+                                  to a function.
+* message::                     A useful function for sending messages.
 @end menu
 
 @node Data types, Args as Variable or List, Arguments, Arguments
@@ -2331,9 +2360,9 @@
 work but also illustrate how arguments are passed.
 
 @menu
-* Using set::
-* Using setq::
-* Counting::
+* Using set::                  Setting values.
+* Using setq::                 Setting a quoted value.
+* Counting::                   Using @code{setq} to count.
 @end menu
 
 @node Using set, Using setq, set & setq, set & setq
@@ -2603,11 +2632,13 @@
 buffer-related functions, to see how they were written.
 
 @menu
-* How to Evaluate::
-* Buffer Names::
-* Getting Buffers::
-* Switching Buffers::
-* Buffer Size & Locations::
+* How to Evaluate::            Typing editing commands or @kbd{C-x C-e}
+                                 causes evaluation.
+* Buffer Names::               Buffers and files are different.
+* Getting Buffers::            Getting a buffer itself, not merely its name.
+* Switching Buffers::          How to change to another buffer.
+* Buffer Size & Locations::    Where point is located and the size of
+                               the buffer.
 * Evaluation Exercise::
 @end menu
 
@@ -3022,16 +3053,16 @@
 
 @menu
 * Primitive Functions::
-* defun::
-* Install::
-* Interactive::
-* Interactive Options::
-* Permanent Installation::
-* let::
-* if::
-* else::
-* Truth & Falsehood::
-* save-excursion::
+* defun::                        The @code{defun} special form.
+* Install::                      Install a function definition.
+* Interactive::                  Making a function interactive.
+* Interactive Options::          Different options for @code{interactive}.
+* Permanent Installation::       Installing code permanently.
+* let::                          Creating and initializing local variables.
+* if::                           What if?
+* else::                         If--then--else expressions.
+* Truth & Falsehood::            What Lisp considers false and true.
+* save-excursion::               Keeping track of point, mark, and buffer.
 * Review::
 * defun Exercises::
 @end menu
@@ -3270,7 +3301,7 @@
 
 @menu
 * Effect of installation::
-* Change a defun::
+* Change a defun::              How to change a function definition.
 @end menu
 
 @node Effect of installation, Change a defun, Install, Install
@@ -3371,8 +3402,8 @@
 each time you typed a key, it would be very distracting.
 
 @menu
-* Interactive multiply-by-seven::
-* multiply-by-seven in detail::
+* Interactive multiply-by-seven::  An overview.
+* multiply-by-seven in detail::    The interactive version.
 @end menu
 
 @node Interactive multiply-by-seven, multiply-by-seven in detail, Interactive, Interactive
@@ -3870,7 +3901,7 @@
 
 @menu
 * if in more detail::
-* type-of-animal in detail::
+* type-of-animal in detail::    An example of an @code{if} expression.
 @end menu
 
 @node if in more detail, type-of-animal in detail, if, if
@@ -4162,7 +4193,7 @@
 long as it is not empty), or even a buffer!
 
 @menu
-* nil explained::
+* nil explained::               @code{nil} has two meanings.
 @end menu
 
 @node nil explained,  , Truth & Falsehood, Truth & Falsehood
@@ -4250,7 +4281,7 @@
 unexpected movement of point or mark.
 
 @menu
-* Point and mark::
+* Point and mark::              A review of various locations.
 * Template for save-excursion::
 @end menu
 
@@ -4501,24 +4532,12 @@
 
 @smallexample
 @group
-(if (string-equal
-     (number-to-string 22)
-     (substring (emacs-version) 10 12))
+(if (= 22 emacs-major-version)
     (message "This is version 22 Emacs")
   (message "This is not version 22 Emacs"))
 @end group
 @end smallexample
 
-@item equal
-@itemx eq
-Test whether two objects are the same.  @code{equal} uses one meaning
-of the word `same' and @code{eq} uses another:  @code{equal} returns
-true if the two objects have a similar structure and contents, such as
-two copies of the same book.  On the other hand, @code{eq}, returns
-true if both arguments are actually the same object.
-@findex equal
-@findex eq
-
 @need 1250
 @item <
 @itemx >
@@ -4537,6 +4556,18 @@
 The @code{=} function tests whether two arguments, both numbers or
 markers, are equal.
 
+@need 1250
+@item equal
+@itemx eq
+Test whether two objects are the same.  @code{equal} uses one meaning
+of the word `same' and @code{eq} uses another:  @code{equal} returns
+true if the two objects have a similar structure and contents, such as
+two copies of the same book.  On the other hand, @code{eq}, returns
+true if both arguments are actually the same object.
+@findex equal
+@findex eq
+
+@need 1250
 @item string<
 @itemx string-lessp
 @itemx string=
@@ -4645,11 +4676,13 @@
 buffers.  Later, we will study other functions.
 
 @menu
-* Finding More::
-* simplified-beginning-of-buffer::
-* mark-whole-buffer::
-* append-to-buffer::
-* Buffer Related Review::
+* Finding More::                How to find more information.
+* simplified-beginning-of-buffer::  Shows @code{goto-char},
+                                @code{point-min}, and @code{push-mark}.
+* mark-whole-buffer::           Almost the same as @code{beginning-of-buffer}.
+* append-to-buffer::            Uses @code{save-excursion} and
+                                @code{insert-buffer-substring}.
+* Buffer Related Review::       Review.
 * Buffer Exercises::
 @end menu
 
@@ -4895,7 +4928,7 @@
 
 @menu
 * mark-whole-buffer overview::
-* Body of mark-whole-buffer::
+* Body of mark-whole-buffer::   Only three lines of code.
 @end menu
 
 @node mark-whole-buffer overview, Body of mark-whole-buffer, mark-whole-buffer, mark-whole-buffer
@@ -5031,9 +5064,9 @@
 
 @menu
 * append-to-buffer overview::
-* append interactive::
-* append-to-buffer body::
-* append save-excursion::
+* append interactive::          A two part interactive expression.
+* append-to-buffer body::       Incorporates a @code{let} expression.
+* append save-excursion::       How the @code{save-excursion} works.
 @end menu
 
 @node append-to-buffer overview, append interactive, append-to-buffer, append-to-buffer
@@ -5547,9 +5580,10 @@
 to which the name refers.
 
 @menu
-* copy-to-buffer::
-* insert-buffer::
-* beginning-of-buffer::
+* copy-to-buffer::              With @code{set-buffer}, @code{get-buffer-create}.
+* insert-buffer::               Read-only, and with @code{or}.
+* beginning-of-buffer::         Shows @code{goto-char},
+                                @code{point-min}, and @code{push-mark}.
 * Second Buffer Related Review::
 * optional Exercise::
 @end menu
@@ -5655,12 +5689,12 @@
 
 @menu
 * insert-buffer code::
-* insert-buffer interactive::
-* insert-buffer body::
-* if & or::
-* Insert or::
-* Insert let::
-* New insert-buffer ::
+* insert-buffer interactive::   When you can read, but not write.
+* insert-buffer body::          The body has an @code{or} and a @code{let}.
+* if & or::                     Using an @code{if} instead of an @code{or}.
+* Insert or::                   How the @code{or} expression works.
+* Insert let::                  Two @code{save-excursion} expressions.
+* New insert-buffer::
 @end menu
 
 @node insert-buffer code, insert-buffer interactive, insert-buffer, insert-buffer
@@ -5718,8 +5752,8 @@
 buffer:@: }.
 
 @menu
-* Read-only buffer::
-* b for interactive::
+* Read-only buffer::            When a buffer cannot be modified.
+* b for interactive::           An existing buffer or else its name.
 @end menu
 
 @node Read-only buffer, b for interactive, insert-buffer interactive, insert-buffer interactive
@@ -5934,7 +5968,7 @@
 (or (holding-on-to-guest) (find-and-take-arm-of-guest))
 @end smallexample
 
-@node Insert let, New insert-buffer , Insert or, insert-buffer
+@node Insert let, New insert-buffer, Insert or, insert-buffer
 @comment  node-name,  next,  previous,  up
 @subsection The @code{let} Expression in @code{insert-buffer}
 
@@ -6033,7 +6067,7 @@
 use @code{or}.  All these functions are building blocks that we will
 find and use again and again.
 
-@node New insert-buffer ,  , Insert let, insert-buffer
+@node New insert-buffer,  , Insert let, insert-buffer
 @comment  node-name,  next,  previous,  up
 @subsection New Body for @code{insert-buffer}
 @findex insert-buffer, new version body
@@ -6101,7 +6135,7 @@
 
 @menu
 * Optional Arguments::
-* beginning-of-buffer opt arg::
+* beginning-of-buffer opt arg::  Example with optional argument.
 * beginning-of-buffer complete::
 @end menu
 
@@ -6235,14 +6269,14 @@
 @end smallexample
 
 The true-or-false-test of this inner @code{if} expression checks the
-size of the buffer.  The reason for this is that the old Version 18
-Emacs used numbers that are no bigger than eight million or so
-and in the computation that followed, the programmer feared that Emacs
-might try to use over-large numbers if the buffer were large.  The
-term `overflow', mentioned in the comment, means numbers that are over
-large.  Version 21 Emacs uses larger numbers, but this code has not
-been touched, if only because people now look at buffers that are far,
-far larger than ever before.
+size of the buffer.  The reason for this is that the old version 18
+Emacs used numbers that are no bigger than eight million or so and in
+the computation that followed, the programmer feared that Emacs might
+try to use over-large numbers if the buffer were large.  The term
+`overflow', mentioned in the comment, means numbers that are over
+large.  More recent versions of Emacs use larger numbers, but this
+code has not been touched, if only because people now look at buffers
+that are far, far larger than ever before.
 
 There are two cases:  if the buffer is large and if it is not.
 
@@ -6582,9 +6616,9 @@
 novices.
 
 @menu
-* Narrowing advantages::
-* save-restriction::
-* what-line::
+* Narrowing advantages::        The advantages of narrowing
+* save-restriction::            The @code{save-restriction} special form.
+* what-line::                   The number of the line that point is on.
 * narrow Exercise::
 @end menu
 
@@ -6913,13 +6947,13 @@
 namely, @code{setcdr} and @code{nthcdr}.  (@xref{copy-region-as-kill}.)
 
 @menu
-* Strange Names::
-* car & cdr::
-* cons::
-* nthcdr::
+* Strange Names::               An historical aside: why the strange names?
+* car & cdr::                   Functions for extracting part of a list.
+* cons::                        Constructing a list.
+* nthcdr::                      Calling @code{cdr} repeatedly.
 * nth::
-* setcar::
-* setcdr::
+* setcar::                      Changing the first element of a list.
+* setcdr::                      Changing the rest of a list.
 * cons Exercise::
 @end menu
 
@@ -7101,7 +7135,7 @@
 
 @menu
 * Build a list::
-* length::
+* length::                      How to find the length of a list.
 @end menu
 
 @node Build a list, length, cons, cons
@@ -7582,12 +7616,12 @@
 sources with `clip' and all occurrences of `killed' with `clipped'.)
 
 @menu
-* Storing Text::
-* zap-to-char::
-* kill-region::
-* copy-region-as-kill::
-* Digression into C::
-* defvar::
+* Storing Text::                Text is stored in a list.
+* zap-to-char::                 Cutting out text up to a character.
+* kill-region::                 Cutting text out of a region.
+* copy-region-as-kill::         A definition for copying text.
+* Digression into C::           Minor note on C programming language macros.
+* defvar::                      How to give a variable an initial value.
 * cons & search-fwd Review::
 * search Exercises::
 @end menu
@@ -7679,12 +7713,12 @@
 But first, let us look at the interactive @code{zap-to-char} function.
 
 @menu
-* Complete zap-to-char::
-* zap-to-char interactive::
-* zap-to-char body::
-* search-forward::
-* progn::
-* Summing up zap-to-char::
+* Complete zap-to-char::        The complete implementation.
+* zap-to-char interactive::     A three part interactive expression.
+* zap-to-char body::            A short overview.
+* search-forward::              How to search for a string.
+* progn::                       The @code{progn} special form.
+* Summing up zap-to-char::      Using @code{point} and @code{search-forward}.
 @end menu
 
 @node Complete zap-to-char, zap-to-char interactive, zap-to-char, zap-to-char
@@ -8041,8 +8075,8 @@
 contains the code that is called in the event of an error.
 
 @menu
-* Complete kill-region::
-* condition-case::
+* Complete kill-region::        The function definition.
+* condition-case::              Dealing with a problem.
 * Lisp macro::
 @end menu
 
@@ -8411,8 +8445,8 @@
 the function copies the text into a separate entry in the kill ring.
 
 @menu
-* Complete copy-region-as-kill::
-* copy-region-as-kill body::
+* Complete copy-region-as-kill::  The complete function definition.
+* copy-region-as-kill body::      The body of @code{copy-region-as-kill}.
 @end menu
 
 @node Complete copy-region-as-kill, copy-region-as-kill body, copy-region-as-kill, copy-region-as-kill
@@ -9638,7 +9672,7 @@
 
 @menu
 * Lists diagrammed::
-* Symbols as Chest::
+* Symbols as Chest::            Exploring a powerful metaphor.
 * List Exercise::
 @end menu
 
@@ -10119,8 +10153,8 @@
 
 @menu
 * Kill Ring Overview::
-* kill-ring-yank-pointer::
-* yank nthcdr Exercises::
+* kill-ring-yank-pointer::      The kill ring is a list.
+* yank nthcdr Exercises::       The @code{kill-ring-yank-pointer} variable.
 @end menu
 
 @node Kill Ring Overview, kill-ring-yank-pointer, Yanking, Yanking
@@ -10355,9 +10389,9 @@
 15 and 30 times their default value.}.
 
 @menu
-* while::
+* while::                       Causing a stretch of code to repeat.
 * dolist dotimes::
-* Recursion::
+* Recursion::                   Causing a function to call itself.
 * Looping exercise::
 @end menu
 
@@ -10392,11 +10426,12 @@
 @end smallexample
 
 @menu
-* Looping with while::
-* Loop Example::
-* print-elements-of-list::
-* Incrementing Loop::
-* Decrementing Loop::
+* Looping with while::          Repeat so long as test returns true.
+* Loop Example::                A @code{while} loop that uses a list.
+* print-elements-of-list::      Uses @code{while}, @code{car}, @code{cdr}.
+* Incrementing Loop::           A loop with an incrementing counter.
+* Incrementing Loop Details::
+* Decrementing Loop::           A loop with a decrementing counter.
 @end menu
 
 @node Looping with while, Loop Example, while, while
@@ -10617,7 +10652,7 @@
 @code{while} loop, and since @code{while} loops always return
 @code{nil}, a @code{nil} is printed after the last element of the list.
 
-@node Incrementing Loop, Decrementing Loop, print-elements-of-list, while
+@node Incrementing Loop, Incrementing Loop Details, print-elements-of-list, while
 @comment  node-name,  next,  previous,  up
 @subsection A Loop with an Incrementing Counter
 
@@ -10628,15 +10663,21 @@
 have a counter---an expression that counts how many times the loop
 repeats itself.
 
-The test can be an expression such as @code{(< count desired-number)}
-which returns @code{t} for true if the value of @code{count} is less
-than the @code{desired-number} of repetitions and @code{nil} for false if
-the value of @code{count} is equal to or is greater than the
-@code{desired-number}.  The expression that increments the count can be
-a simple @code{setq} such as @code{(setq count (1+ count))}, where
+@node Incrementing Loop Details, Decrementing Loop, Incrementing Loop, while
+@ifnottex
+@unnumberedsubsec Details of an Incrementing Loop
+@end ifnottex
+
+The test for a loop with an incrementing counter can be an expression
+such as @code{(< count desired-number)} which returns @code{t} for
+true if the value of @code{count} is less than the
+@code{desired-number} of repetitions and @code{nil} for false if the
+value of @code{count} is equal to or is greater than the
+@code{desired-number}.  The expression that increments the count can
+be a simple @code{setq} such as @code{(setq count (1+ count))}, where
 @code{1+} is a built-in function in Emacs Lisp that adds 1 to its
-argument.  (The expression @w{@code{(1+ count)}} has the same result as
-@w{@code{(+ count 1)}}, but is easier for a human to read.)
+argument.  (The expression @w{@code{(1+ count)}} has the same result
+as @w{@code{(+ count 1)}}, but is easier for a human to read.)
 
 @need 1250
 The template for a @code{while} loop controlled by an incrementing
@@ -10656,12 +10697,12 @@
 is set to 1.
 
 @menu
-* Incrementing Example::
-* Inc Example parts::
-* Inc Example altogether::
-@end menu
-
-@node Incrementing Example, Inc Example parts, Incrementing Loop, Incrementing Loop
+* Incrementing Example::        Counting pebbles in a triangle.
+* Inc Example parts::           The parts of the function definition.
+* Inc Example altogether::      Putting the function definition together.
+@end menu
+
+@node Incrementing Example, Inc Example parts, Incrementing Loop Details, Incrementing Loop Details
 @unnumberedsubsubsec  Example with incrementing counter
 
 Suppose you are playing on the beach and decide to make a triangle of
@@ -10728,7 +10769,7 @@
 complex loop the repetitive action might not be so simple, but it will
 be simpler than doing everything all at once.
 
-@node Inc Example parts, Inc Example altogether, Incrementing Example, Incrementing Loop
+@node Inc Example parts, Inc Example altogether, Incrementing Example, Incrementing Loop Details
 @unnumberedsubsubsec The parts of the function definition
 
 The preceding analysis gives us the bones of our function definition:
@@ -10822,7 +10863,7 @@
 (setq row-number (1+ row-number))
 @end smallexample
 
-@node Inc Example altogether,  , Inc Example parts, Incrementing Loop
+@node Inc Example altogether,  , Inc Example parts, Incrementing Loop Details
 @unnumberedsubsubsec Putting the function definition together
 
 We have created the parts for the function definition; now we need to
@@ -10932,7 +10973,7 @@
 The sum of the first four numbers is 10 and the sum of the first seven
 numbers is 28.
 
-@node Decrementing Loop,  , Incrementing Loop, while
+@node Decrementing Loop,  , Incrementing Loop Details, while
 @comment  node-name,  next,  previous,  up
 @subsection Loop with a Decrementing Counter
 
@@ -10964,9 +11005,9 @@
 @end smallexample
 
 @menu
-* Decrementing Example::
-* Dec Example parts::
-* Dec Example altogether::
+* Decrementing Example::        More pebbles on the beach.
+* Dec Example parts::           The parts of the function definition.
+* Dec Example altogether::      Putting the function definition together.
 @end menu
 
 @node Decrementing Example, Dec Example parts, Decrementing Loop, Decrementing Loop
@@ -11321,13 +11362,13 @@
 arguments that the final instance will stop.
 
 @menu
-* Building Robots::
-* Recursive Definition Parts::
-* Recursion with list::
+* Building Robots::             Same model, different serial number ...
+* Recursive Definition Parts::  Walk until you stop ...
+* Recursion with list::         Using a list as the test whether to recurse.
 * Recursive triangle function::
 * Recursion with cond::
-* Recursive Patterns::
-* No Deferment::
+* Recursive Patterns::          Often used templates.
+* No Deferment::                Don't store up work ...
 * No deferment solution::
 @end menu
 
@@ -12367,11 +12408,11 @@
 introduces several new features.
 
 @menu
-* sentence-end::
-* re-search-forward::
-* forward-sentence::
-* forward-paragraph::
-* etags::
+* sentence-end::                The regular expression for @code{sentence-end}.
+* re-search-forward::           Very similar to @code{search-forward}.
+* forward-sentence::            A straightforward example of regexp search.
+* forward-paragraph::           A somewhat complex example.
+* etags::                       How to create your own @file{TAGS} table.
 * Regexp Review::
 * re-search Exercises::
 @end menu
@@ -12617,8 +12658,8 @@
 
 @menu
 * Complete forward-sentence::
-* fwd-sentence while loops::
-* fwd-sentence re-search::
+* fwd-sentence while loops::    Two @code{while} loops.
+* fwd-sentence re-search::      A regular expression search.
 @end menu
 
 @node Complete forward-sentence, fwd-sentence while loops, forward-sentence, forward-sentence
@@ -13076,9 +13117,9 @@
 This is an added complication.
 
 @menu
-* forward-paragraph in brief::
-* fwd-para let::
-* fwd-para while::
+* forward-paragraph in brief::  Key parts of the function definition.
+* fwd-para let::                The @code{let*} expression.
+* fwd-para while::              The forward motion @code{while} loop.
 @end menu
 
 @node forward-paragraph in brief, fwd-para let, forward-paragraph, forward-paragraph
@@ -13772,8 +13813,8 @@
 
 @menu
 * Why Count Words::
-* count-words-region::
-* recursive-count-words::
+* count-words-region::          Use a regexp, but find a problem.
+* recursive-count-words::       Start with case of no words in region.
 * Counting Exercise::
 @end menu
 
@@ -13819,8 +13860,8 @@
 or to a @code{while} loop.
 
 @menu
-* Design count-words-region::
-* Whitespace Bug::
+* Design count-words-region::   The definition using a @code{while} loop.
+* Whitespace Bug::              The Whitespace Bug in @code{count-words-region}.
 @end menu
 
 @node Design count-words-region, Whitespace Bug, count-words-region, count-words-region
@@ -14660,15 +14701,15 @@
 
 @menu
 * Divide and Conquer::
-* Words and Symbols::
-* Syntax::
-* count-words-in-defun::
-* Several defuns::
-* Find a File::
-* lengths-list-file::
-* Several files::
-* Several files recursively::
-* Prepare the data::
+* Words and Symbols::           What to count?
+* Syntax::                      What constitutes a word or symbol?
+* count-words-in-defun::        Very like @code{count-words}.
+* Several defuns::              Counting several defuns in a file.
+* Find a File::                 Do you want to look at a file?
+* lengths-list-file::           A list of the lengths of many definitions.
+* Several files::               Counting in definitions in different files.
+* Several files recursively::   Recursively counting in different files.
+* Prepare the data::            Prepare the data for display in a graph.
 @end menu
 
 @node Divide and Conquer, Words and Symbols, Words in a defun, Words in a defun
@@ -15334,8 +15375,8 @@
 either a @code{while} loop or recursion.
 
 @menu
-* lengths-list-many-files::
-* append::
+* lengths-list-many-files::     Return a list of the lengths of defuns.
+* append::                      Attach one list to another.
 @end menu
 
 @node lengths-list-many-files, append, Several files, Several files
@@ -15517,7 +15558,7 @@
 the @file{*scratch*} buffer, edit them, and then evaluate them.
 
 The results are shown after the @samp{@result{}}.  (These results are
-for files from Emacs Version 22.1.1; files from other versions of
+for files from Emacs version 22.1.1; files from other versions of
 Emacs may produce different results.)
 
 @c !!! 22.1.1 lisp sources location here
@@ -15569,6 +15610,18 @@
 of defuns within each range of lengths, and produce a list of those
 numbers.
 
+@menu
+* Data for Display in Detail::
+* Sorting::                     Sorting lists.
+* Files List::                  Making a list of files.
+* Counting function definitions::
+@end menu
+
+@node Data for Display in Detail, Sorting, Prepare the data, Prepare the data
+@ifnottex
+@unnumberedsubsec The Data for Display in Detail
+@end ifnottex
+
 Based on what we have done before, we can readily foresee that it
 should not be too hard to write a function that `@sc{cdr}s' down the
 lengths' list, looks at each element, determines which length range it
@@ -15583,13 +15636,7 @@
 number, and thereby determine the largest and smallest length range
 that we will need.
 
-@menu
-* Sorting::
-* Files List::
-* Counting function definitions::
-@end menu
-
-@node Sorting, Files List, Prepare the data, Prepare the data
+@node Sorting, Files List, Data for Display in Detail, Prepare the data
 @subsection Sorting Lists
 @findex sort
 
@@ -16259,7 +16306,7 @@
 
 @menu
 * Columns of a graph::
-* graph-body-print::
+* graph-body-print::            How to print the body of a graph.
 * recursive-graph-body-print::
 * Printed Axes::
 * Line Graph Exercise::
@@ -16918,20 +16965,20 @@
 
 @menu
 * Default Configuration::
-* Site-wide Init::
-* defcustom::
-* Beginning a .emacs File::
-* Text and Auto-fill::
-* Mail Aliases::
-* Indent Tabs Mode::
-* Keybindings::
-* Keymaps::
-* Loading Files::
-* Autoload::
-* Simple Extension::
-* X11 Colors::
+* Site-wide Init::              You can write site-wide init files.
+* defcustom::                   Emacs will write code for you.
+* Beginning a .emacs File::     How to write a @code{.emacs file}.
+* Text and Auto-fill::          Automatically wrap lines.
+* Mail Aliases::                Use abbreviations for email addresses.
+* Indent Tabs Mode::            Don't use tabs with @TeX{}
+* Keybindings::                 Create some personal keybindings.
+* Keymaps::                     More about key binding.
+* Loading Files::               Load (i.e., evaluate) files automatically.
+* Autoload::                    Make functions available.
+* Simple Extension::            Define a function; bind it to a key.
+* X11 Colors::                  Colors in X.
 * Miscellaneous::
-* Mode Line::
+* Mode Line::                   How to customize your mode line.
 @end menu
 
 @node Default Configuration, Site-wide Init, Emacs Initialization, Emacs Initialization
@@ -17764,12 +17811,12 @@
 load that function's file with a @code{load} expression in your
 @file{.emacs} file.
 
-In my @file{.emacs} file for Emacs version 22, I load 14 libraries
-that contain functions that would otherwise be autoloaded.  (Actually,
-it would have been better to include these files in my `dumped' Emacs,
-but I forgot.  @xref{Building Emacs, , Building Emacs, elisp, The GNU
-Emacs Lisp Reference Manual}, and the @file{INSTALL} file for more
-about dumping.)
+In my @file{.emacs} file, I load 14 libraries that contain functions
+that would otherwise be autoloaded.  (Actually, it would have been
+better to include these files in my `dumped' Emacs, but I forgot.
+@xref{Building Emacs, , Building Emacs, elisp, The GNU Emacs Lisp
+Reference Manual}, and the @file{INSTALL} file for more about
+dumping.)
 
 You may also want to include autoloaded expressions in your @file{.emacs}
 file.  @code{autoload} is a built-in function that takes up to five
@@ -17923,6 +17970,21 @@
 @end group
 @end smallexample
 
+@need 1250
+Alternatively, since @code{blink-cursor-mode} has existed since Emacs
+version 21 and is likely to continue, you could write
+
+@smallexample
+@group
+(when (>= emacs-major-version 21)
+  (blink-cursor-mode 0)
+@end group
+@end smallexample
+
+@noindent
+and add other expressions, too. 
+
+
 @node X11 Colors, Miscellaneous, Simple Extension, Emacs Initialization
 @section X11 Colors
 
@@ -18369,10 +18431,10 @@
 In this chapter, I will walk through a short example of each.
 
 @menu
-* debug::
-* debug-on-entry::
-* debug-on-quit::
-* edebug::
+* debug::                       How to use the built-in debugger.
+* debug-on-entry::              Start debugging when you call a function.
+* debug-on-quit::               Start debugging when you quit with @kbd{C-g}.
+* edebug::                      How to use Edebug, a source level debugger.
 * Debugging Exercises::
 @end menu
 
@@ -19093,6 +19155,19 @@
 both the @code{yank} and the @code{yank-pop} commands, but first,
 consider the workings of the kill ring.
 
+@menu
+* What the Kill Ring Does::
+* current-kill::
+* yank::                        Paste a copy of a clipped element.
+* yank-pop::                    Insert element pointed to.
+* ring file::
+@end menu
+
+@node What the Kill Ring Does, current-kill, Kill Ring, Kill Ring
+@ifnottex
+@unnumberedsec What the Kill Ring Does
+@end ifnottex
+
 @need 1250
 The kill ring has a default maximum length of sixty items; this number
 is too large for an explanation.  Instead, set it to four.  Please
@@ -19163,14 +19238,7 @@
 (setq kill-ring-max old-kill-ring-max)
 @end smallexample
 
-@menu
-* current-kill::
-* yank::
-* yank-pop::
-* ring file::
-@end menu
-
-@node current-kill, yank, Kill Ring, Kill Ring
+@node current-kill, yank, What the Kill Ring Does, Kill Ring
 @comment  node-name,  next,  previous,  up
 @appendixsec The @code{current-kill} Function
 @findex current-kill
@@ -19183,6 +19251,17 @@
 @code{copy-region-as-kill}, @code{kill-ring-save}, @code{kill-line},
 and @code{kill-region}.)
 
+@menu
+* Code for current-kill::
+* Understanding current-kill::
+@end menu
+
+@node Code for current-kill, Understanding current-kill, current-kill, current-kill
+@ifnottex
+@unnumberedsubsec The code for @code{current-kill}
+@end ifnottex
+
+
 @need 1500
 The @code{current-kill} function is used by @code{yank} and by
 @code{yank-pop}.  Here is the code for @code{current-kill}:
@@ -19238,11 +19317,7 @@
 (setq kill-ring-yank-pointer kill-ring)
 @end smallexample
 
-@menu
-* Understanding current-kill::
-@end menu
-
-@node Understanding current-kill,  , current-kill, current-kill
+@node Understanding current-kill,  , Code for current-kill, current-kill
 @ifnottex
 @unnumberedsubsec @code{current-kill} in Outline
 @end ifnottex
@@ -19263,6 +19338,17 @@
 This function takes two arguments, one of which is optional.  It has a
 documentation string.  It is @emph{not} interactive.
 
+@menu
+* Body of current-kill::
+* Digression concerning error::  How to mislead humans, but not computers.
+* Determining the Element::
+@end menu
+
+@node Body of current-kill, Digression concerning error, Understanding current-kill, Understanding current-kill
+@ifnottex
+@unnumberedsubsubsec The Body of @code{current-kill}
+@end ifnottex
+
 The body of the function definition is a @code{let} expression, which
 itself has a body as well as a @var{varlist}.
 
@@ -19341,12 +19427,7 @@
 list.  Finally, another expression returns the first element of the
 list even if the @code{do-not-move} argument is true.
 
-@menu
-* Digression concerning error::
-* Determining the Element ::
-@end menu
-
-@node Digression concerning error, Determining the Element , Understanding current-kill, Understanding current-kill
+@node Digression concerning error, Determining the Element, Body of current-kill, Understanding current-kill
 @ifnottex
 @unnumberedsubsubsec Digression about the word `error'
 @end ifnottex
@@ -19368,7 +19449,7 @@
 takes the same steps as it does when there is an `error', a term such as
 `cancel' would have a clearer connotation.
 
-@node Determining the Element ,  , Digression concerning error, Understanding current-kill
+@node Determining the Element,  , Digression concerning error, Understanding current-kill
 @ifnottex
 @unnumberedsubsubsec Determining the Element
 @end ifnottex
@@ -19684,10 +19765,10 @@
 
 @menu
 * Labelled Example::
-* print-graph Varlist::
-* print-Y-axis::
-* print-X-axis::
-* Print Whole Graph::
+* print-graph Varlist::         @code{let} expression in @code{print-graph}.
+* print-Y-axis::                Print a label for the vertical axis.
+* print-X-axis::                Print a horizontal label.
+* Print Whole Graph::           The function to print a complete graph.
 @end menu
 
 @node Labelled Example, print-graph Varlist, Full Graph, Full Graph
@@ -19850,6 +19931,20 @@
 The function should be passed the height of the graph, and then should
 construct and insert the appropriate numbers and marks.
 
+@menu
+* print-Y-axis in Detail::
+* Height of label::             What height for the Y axis?
+* Compute a Remainder::         How to compute the remainder of a division.
+* Y Axis Element::              Construct a line for the Y axis.
+* Y-axis-column::               Generate a list of Y axis labels.
+* print-Y-axis Penultimate::    A not quite final version.
+@end menu
+
+@node print-Y-axis in Detail, Height of label, print-Y-axis, print-Y-axis
+@ifnottex
+@unnumberedsubsec The @code{print-Y-axis} Function in Detail
+@end ifnottex
+
 It is easy enough to see in the figure what the Y axis label should
 look like; but to say in words, and then to write a function
 definition to do the job is another matter.  It is not quite true to
@@ -19861,15 +19956,7 @@
 the fifth line from the bottom and on every line that is a multiple of
 five.
 
-@menu
-* Height of label::
-* Compute a Remainder::
-* Y Axis Element::
-* Y-axis-column::
-* print-Y-axis Penultimate::
-@end menu
-
-@node Height of label, Compute a Remainder, print-Y-axis, print-Y-axis
+@node Height of label, Compute a Remainder, print-Y-axis in Detail, print-Y-axis
 @ifnottex
 @unnumberedsubsec What height should the label be?
 @end ifnottex
@@ -20302,8 +20389,8 @@
 graph without changing the ways the graph is labelled.
 
 @menu
-* Similarities differences::
-* X Axis Tic Marks::
+* Similarities differences::    Much like @code{print-Y-axis}, but not exactly.
+* X Axis Tic Marks::            Create tic marks for the horizontal axis.
 @end menu
 
 @node Similarities differences, X Axis Tic Marks, print-X-axis, print-X-axis
@@ -20651,13 +20738,13 @@
 @end smallexample
 
 @menu
-* The final version::
-* Test print-graph::
-* Graphing words in defuns::
-* lambda::
-* mapcar::
-* Another Bug::
-* Final printed graph::
+* The final version::           A few changes.
+* Test print-graph::            Run a short test.
+* Graphing words in defuns::    Executing the final code.
+* lambda::                      How to write an anonymous function.
+* mapcar::                      Apply a function to elements of a list.
+* Another Bug::                 Yet another bug @dots{} most insidious.
+* Final printed graph::         The graph itself!
 @end menu
 
 @node The final version, Test print-graph, Print Whole Graph, Print Whole Graph
--- a/lispref/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lispref/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,11 +1,16 @@
+2006-11-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* frames.texi (Window System Selections): Remove clipboard from
+	description of selection-coding-system.
+
 2006-11-06  Richard Stallman  <rms@gnu.org>
 
 	* lists.texi (List Variables): Document COMPARE-FN.
 
 	* keymaps.texi: Avoid use of "binding" to mean a relation;
-	use it only to refer to the meaning associated with a key. 
+	use it only to refer to the meaning associated with a key.
 	(Keymaps): Change menu node description.
-	
+
 	* elisp.texi (Top): Change menu node description.
 
 	* display.texi (Managing Overlays): Document overlay-recenter.
@@ -5445,6 +5450,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
--- a/lispref/elisp.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/lispref/elisp.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -7,7 +7,7 @@
 @c Version of the manual and of Emacs.
 @c Please remember to update the edition number in README as well.
 @set VERSION  2.9
-@set EMACSVER 22.0.90
+@set EMACSVER 22.0.91
 
 @dircategory Emacs
 @direntry
--- a/lispref/frames.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/lispref/frames.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -1691,7 +1691,7 @@
 
 @defvar selection-coding-system
 This variable specifies the coding system to use when reading and
-writing selections, the clipboard, or a cut buffer.  @xref{Coding
+writing selections or the clipboard.  @xref{Coding
 Systems}.  The default is @code{compound-text-with-extensions}, which
 converts to the text representation that X11 normally uses.
 @end defvar
--- a/lispref/modes.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/lispref/modes.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -3043,16 +3043,19 @@
 
 @itemize
 @item
-Place a @code{font-lock-multiline}
-property on the construct when it is added to the buffer.
-@item
-Use @code{font-lock-fontify-region-function} hook to extend the scan
-so that the scanned text never starts or ends in the middle of a
-multiline construct.
-@item
 Add a function to @code{font-lock-extend-region-functions} that does
 the @emph{identification} and extends the scan so that the scanned
 text never starts or ends in the middle of a multiline construct.
+@item
+Use the @code{font-lock-fontify-region-function} hook similarly to
+extend the scan so that the scanned text never starts or ends in the
+middle of a multiline construct.
+@item
+Somehow identify the multiline construct right when it gets inserted
+into the buffer (or at any point after that but before font-lock
+tries to highlight it), and mark it with a @code{font-lock-multiline}
+which will instruct font-lock not to start or end the scan in the
+middle of the construct.
 @end itemize
 
   There are three ways to do rehighlighting of multiline constructs:
@@ -3062,9 +3065,9 @@
 Place a @code{font-lock-multiline} property on the construct.  This
 will rehighlight the whole construct if any part of it is changed.  In
 some cases you can do this automatically by setting the
-@code{font-lock-multiline} variable.
+@code{font-lock-multiline} variable, which see.
 @item
-Use @code{jit-lock-contextually}.  This will only rehighlight the part
+Rely on @code{jit-lock-contextually}.  This will only rehighlight the part
 of the construct that follows the actual change, and will do it after
 a short delay.  This only works if the highlighting of the various
 parts of your multiline construct never depends on text in subsequent
--- a/lwlib/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/lwlib/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -12,25 +12,25 @@
 	* xlwmenu.c: Include xterm.h if emacs instead of declaring functions
 	used.
 	(string_width): Declare as static.
-	(Start, pop_up_menu): Set is_hint to 0 before calling 
+	(Start, pop_up_menu): Set is_hint to 0 before calling
 	handle_motion_event.
 	(pop_up_menu): Return value and parameters for x_catch_errors and
 	x_uncatch_errors changed.
 
 2005-09-27  Dan Nicolaescu  <dann@ics.uci.edu>
 
-	* xlwmenu.c (find_next_selectable): 
+	* xlwmenu.c (find_next_selectable):
 	(find_prev_selectable): Add missing parameter
 	declarations.
 
 2005-09-24  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* xlwmenu.c: Fix the return type for x_clear_errors and
-	x_uncatch_errors. 
+	x_uncatch_errors.
 
 2005-07-19  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* lwlib-Xm.c (make_menu_in_widget): Disable drag and drop for 
+	* lwlib-Xm.c (make_menu_in_widget): Disable drag and drop for
 	labels in menu bar.
 
 2005-07-04  Lute Kamstra  <lute@gnu.org>
@@ -1315,6 +1315,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit-unix
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2006
--- a/mac/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/mac/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,12 @@
+2006-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* inc/config.h: Sync with src/config.in.
+
+2006-11-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* INSTALL: Remove descriptions about --without-x.  Remove
+	--without-carbon from configure options for X11 build.
+
 2006-09-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* INSTALL: Remove descriptions about experimental flags.
@@ -438,7 +447,7 @@
 	GetScrapFlavorFlags.
 
 	* src/macfns.c: Synchronize with changes in w32fns.c.
- 	[MAC_OSX]: Include Carbon headers.
+	[MAC_OSX]: Include Carbon headers.
 	(x_real_positions): Use Carbon routine GetWindowPortBounds.
 	(x_set_scroll_bar_width): Set width of scroll bar to 16.
 	(x_make_gc): Remove static qualifier.
@@ -846,6 +855,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit-unix
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 2001, 2002, 2003, 2004, 2005,
--- a/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings	Tue Nov 21 01:10:47 2006 +0000
+++ b/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings	Tue Nov 21 08:56:38 2006 +0000
@@ -1,5 +1,5 @@
 /* Localized versions of Info.plist keys */
 
 CFBundleName = "Emacs";
-CFBundleShortVersionString = "22.0.90";
-CFBundleGetInfoString = "22.0.90, Copyright (C) 2006 Free Software Foundation, Inc.";
+CFBundleShortVersionString = "22.0.91";
+CFBundleGetInfoString = "22.0.91, Copyright (C) 2006 Free Software Foundation, Inc.";
--- a/mac/INSTALL	Tue Nov 21 01:10:47 2006 +0000
+++ b/mac/INSTALL	Tue Nov 21 08:56:38 2006 +0000
@@ -33,10 +33,6 @@
 should be installed into /Application.  If you want it to install in a
 different location, specify --enable-carbon-app=<mydir>
 
-If you have X Window installed on your Mac and you are building Emacs
-to run under Carbon and not X Window, you need to type `./configure
---without-x' instead of `./configure'.
-
 You can type `make bootstrap' instead of `make' to rebuild everything,
 including byte-compiling the Lisp files.
 
@@ -59,10 +55,10 @@
 correctly.  You may want to create a symlink or alias to this path to
 quickly access both the terminal and GUI versions.
 
-If you are building Emacs to run on Mac OS X and X Window,
+If you are building Emacs to run on Mac OS X and X Window System,
 instead of typing `./configure' above, type
 
-  ./configure --without-carbon --with-x
+  ./configure --with-x
 
 
 To use colors in a terminal, put the following lines in the file
--- a/mac/inc/config.h	Tue Nov 21 01:10:47 2006 +0000
+++ b/mac/inc/config.h	Tue Nov 21 08:56:38 2006 +0000
@@ -102,16 +102,13 @@
 /* #undef HAVE_ALSA */
 
 /* Define to 1 if you have the `bcmp' function. */
-/* #define HAVE_BCMP */
+/* #undef HAVE_BCMP */
 
 /* Define to 1 if you have the `bcopy' function. */
-/* #define HAVE_BCOPY */
+/* #undef HAVE_BCOPY */
 
 /* Define to 1 if you have the `bzero' function. */
-/* #define HAVE_BZERO */
-
-/* Define to 1 if CancelMenuTracking is available (Mac OSX). */
-/* #undef HAVE_CANCELMENUTRACKING */
+/* #undef HAVE_BZERO */
 
 /* Define to 1 if you are using the Carbon API on Mac OS X. */
 /* #undef HAVE_CARBON */
@@ -451,7 +448,7 @@
 /* #undef HAVE_MREMAP */
 
 /* Define to 1 if you have the <net/if.h> header file. */
-/* #define HAVE_NET_IF_H */
+/* #undef HAVE_NET_IF_H */
 
 /* Define to 1 if you have the <nlist.h> header file. */
 /* #undef HAVE_NLIST_H */
--- a/mac/src/Emacs.r	Tue Nov 21 01:10:47 2006 +0000
+++ b/mac/src/Emacs.r	Tue Nov 21 08:56:38 2006 +0000
@@ -221,10 +221,10 @@
 	0x22,		/* Major revision in BCD */
 	0x0,		/* Minor revision in BCD */
 	alpha,	/* development, alpha, beta, or final (release) */
-	90,		/* Non-final release # */
+	91,		/* Non-final release # */
 	0,		/* Region code */
-	"22.0.90",	/* Short version number */
-	"22.0.90, Copyright \0xa9 2006 "
+	"22.0.91",	/* Short version number */
+	"22.0.91, Copyright \0xa9 2006 "
 	"Free Software Foundation, Inc." /* Long version number */
 };
 
--- a/man/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,85 @@
+2006-11-20  Michael Olson  <mwolson@gnu.org>
+
+	* erc.texi: Call this the 5.2 stable pre-release of ERC.
+
+2006-11-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* misc.texi (Interactive Shell): INSIDE_EMACS is set to t,
+	and EMACS is deprecated.
+
+2006-11-18  Juanma Barranquero  <lekktu@gmail.com>
+
+	* makefile.w32-in (emacs.dvi): Remove xresmini.texi.
+
+2006-11-18  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* Makefile.in (emacs.dvi): Remove xresmini.texi.
+
+	* emacs.texi: Include xresources.texi both for info and dvi.
+
+	* xresources.texi: Merge text from xresmini.texi.
+
+2006-11-17  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.texi: Fix typos.
+	(Agenda commands): Document `C-k'.
+
+2006-11-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* url.texi (http/https): Fix a typo in the HTTP URL.
+
+2006-11-14  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+	* ada-mode.texi: Total rewrite.
+
+2006-11-13  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.texi: Minor typo fixes.
+
+2006-11-13  Bill Wohler  <wohler@newt.com>
+
+	Release MH-E manual version 8.0.3.
+
+	* mh-e.texi (VERSION, EDITION, UPDATED, UPDATE-MONTH): Update for
+	release 8.0.3.
+
+	* mh-e.texi (Incorporating Mail): Use output of "mhparam Path"
+	to set MAILDIR.
+	(Reading Mail): Document the customization of read-mail-command
+	for MH-E.
+	(Viewing Attachments): Document mm-discouraged-alternatives.
+	(Tool Bar): Fix Texinfo for mh-xemacs-use-tool-bar-flag.
+	(Junk): Add more information about the settings of mh-junk-background
+	in a program.  Add /usr/bin/mh to PATH in examples.
+
+2006-11-12  Richard Stallman  <rms@gnu.org>
+
+	* woman.texi: Update author address but say he no longer maintains it.
+
+2006-11-12  Roberto Rodr,Am(Bguez  <lanubeblanca@googlemail.com>  (tiny change)
+
+	* glossary.texi: Fix typos.
+
+2006-11-10  Carsten Dominik  <carsten.dominik@gmail.com>
+
+	* org.texi (ARCHIVE tag): Document C-TAB for forcing cycling of
+	archived trees.
+	(Checkboxes): Section moved to chapter 5, and extended.
+	(The date/time prompt): New section.
+	(Link abbreviations): New section.
+	(Presentation and sorting): New section.
+	(Custom agenda views): Section completely rewritten.
+	(Summary): Compare with Planner.
+	(Feedback): More info about creating backtraces.
+	(Plain lists): Modified example.
+	(Breaking down tasks): New section.
+	(Custom time format): New section.
+	(Time stamps): Document inactive timestamps.
+	(Setting tags): More details about fast tag selection.
+	(Block agenda): New section.
+	(Custom agenda views): Section rewritten.
+	(Block agenda): New section.
+
 2006-11-07  Michael Albinus  <michael.albinus@gmx.de>
 
 	* tramp.texi (Configuration): scp is the default method.
@@ -6434,7 +6516,7 @@
 
 2003-02-01  Kevin Ryde  <user42@zip.com.au>
 
-        * glossary.texi (Glossary): Correction to cl cross reference.
+	* glossary.texi (Glossary): Correction to cl cross reference.
 
 2003-01-20  Richard M. Stallman  <rms@gnu.org>
 
@@ -6867,7 +6949,7 @@
 	`info' file.
 
 	* frames.texi (Creating Frames): Mention `C-x 5' instead of `C-x
-  	4' where appropriate.
+	4' where appropriate.
 
 1993-10-20  Brian Fox  (bfox@ai.mit.edu)
 
@@ -7047,6 +7129,7 @@
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; fill-column: 79
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
--- a/man/Makefile.in	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/Makefile.in	Tue Nov 21 08:56:38 2006 +0000
@@ -144,7 +144,7 @@
 ../info/emacs: ${EMACSSOURCES}
 	cd $(srcdir); $(MAKEINFO) emacs.texi
 
-emacs.dvi: ${EMACSSOURCES} $(srcdir)/xresmini.texi
+emacs.dvi: ${EMACSSOURCES}
 	$(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi
 
 # This target is here so you could easily get the list of the *.texi
--- a/man/ada-mode.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/ada-mode.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -2,11 +2,6 @@
 @setfilename ../info/ada-mode
 @settitle Ada Mode
 
-@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-@comment The following lines inserts the copyright notice
-@comment into the Info file.
-@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
 @copying
 Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
 2005, 2006 Free Software Foundation, Inc.
@@ -34,135 +29,124 @@
 
 @dircategory Emacs
 @direntry
-* Ada mode: (ada-mode). Emacs mode for editing Ada code.
+* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code.
 @end direntry
 
 @titlepage
 @sp 10
 @title{Ada Mode}
 @sp 2
-@subtitle An Emacs major mode for programming Ada 95 with GNAT
-@subtitle July 1998 for Ada Mode Version 3.0
+@subtitle An Emacs major mode for programming in Ada
+@subtitle Ada Mode Version 3.7
 @sp 2
 @page
 @vskip 0pt plus 1filll
 @insertcopying
 @end titlepage
 
+@c fixme; title page doesn't show up in ada-mode.info; why bother with
+@c it?
 
 @node Top, Overview, (dir), (dir)
 
 @menu
 * Overview::
-* Installation::                  Installing Ada mode on your system
-* Customization::                 Setting up Ada mode to your taste
-* Project files::                 Describing the organization of your project
-* Syntax highlighting::           Using specific colors and fonts to highlight
-                                    the structure of your files
-* Moving Through Ada Code::       Moving easily through Ada sources
-* Identifier completion::         Finishing words automatically
-* Index Menu of Subprograms::     A menu of all the types and subprograms
-                                     defined in your application
-* File Browser::                  Easy access to your files
-* Automatic Smart Indentation::   Indenting your code automatically as you type
-* Formatting Parameter Lists::    Formatting subprograms' parameter lists
+* Installation::                Installing Ada mode on your system
+* Customization::               Setting up Ada mode to your taste
+* Compiling Executing::         Working with your application within Emacs
+* Project files::               Describing the organization of your project
+* Compiling Examples::          A small tutorial
+* Moving Through Ada Code::     Moving easily through Ada sources
+* Identifier completion::       Finishing words automatically
+* Automatic Smart Indentation::  Indenting your code automatically as you type
+* Formatting Parameter Lists::  Formatting subprograms' parameter lists
                                      automatically
-* Automatic Casing::              Adjusting the case of words automatically
-* Statement Templates::           Inserting code templates
-* Comment Handling::              Reformatting comments easily
-* Compiling Executing::           Working with your application within Emacs
-* Debugging::                     Debugging your application
-* Using non-standard file names:: Configuring Emacs for special file names
-* Working Remotely::              Working on a different machine
+* Automatic Casing::            Adjusting the case of words automatically
+* Statement Templates::         Inserting code templates
+* Comment Handling::            Reformatting comments easily
 * Index::
 @end menu
 
 
-@c -----------------------------------------------------------------------
 @node Overview, Installation, Top, Top
 @chapter Overview
-@c -----------------------------------------------------------------------
+
+The Emacs mode for programming in Ada helps the user in understanding
+existing code and facilitates writing new code.
+
+When the Gnu Ada compiler GNAT is used, the cross-reference
+information output by the compiler is used to provide powerful code
+navigation (jump to definition, find all uses, etc).
+
+When you open a file with a file extension of @file{.ads} or
+@file{.adb}, Emacs will automatically load and activate Ada mode.
 
-The Emacs mode for programming in Ada 95 with GNAT helps the user in
-understanding existing code and facilitates writing new code.  It
-furthermore provides some utility functions for easier integration of
-standard Emacs features when programming in Ada.
+Ada mode works without any customization, if you are using the GNAT
+compiler (@url{https://libre2.adacore.com/}) and the GNAT default
+naming convention.
 
-@section General features:
+You must customize a few things if you are using a different compiler
+or file naming convention; @xref{Other compiler}, @xref{Non-standard
+file names}.
+
+In addition, you may want to customize the indentation,
+capitalization, and other things; @xref{Other customization}.
 
-@itemize @bullet
-@item
-full Integrated Development Environment:
-@itemize @bullet
-@item
-support of ``project files'' for the configuration (directories,
-compilation options,...)
-@item
-compiling and stepping through error messages.
-@item
-running and debugging your applications within Emacs.
-@end itemize
-@item
-easy to use for beginners by pull-down menus,
-@item
-user configurable by many user-option variables.
-@end itemize
+Finally, for large Ada projects, you will want to set up an Emacs
+Ada mode project file for each project; @xref{Project files}. Note
+that these are different from the GNAT project files used by gnatmake
+and other GNAT commands.
+
+See the Emacs info manual, section 'Running Debuggers Under Emacs',
+for general information on debugging.
+
+@node Installation, Customization, Overview, Top
+@chapter Installation
 
-@section Ada mode features that help understanding code:
+Ada mode is part of the standard Emacs distribution; if you use that,
+no files need to be installed.
+
+Ada mode is also available as a separate distribution, from the Emacs
+Ada mode website
+@uref{http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html}. The
+separate distribution may be more recent.
+
+For installing the separate distribution, see the @file{README} file
+in the distribution.
+
+To see what version of Ada mode you have installed, do @key{M-x
+ada-mode-version}.
+
+The following files are provided with the Ada mode distribution:
 
 @itemize @bullet
+
 @item
-functions for easy and quick stepping through Ada code,
+@file{ada-mode.el}: The main file for Ada mode, providing indentation,
+formatting of parameter lists, moving through code, comment handling
+and automatic casing.
+
 @item
-getting cross reference information for identifiers (e.g. find the
-defining place by a keystroke),
+@file{ada-prj.el}: GUI editing of Ada mode project files, using Emacs
+widgets.
+
 @item
-displaying an index menu of types and subprograms and move point to
-the chosen one,
+@file{ada-stmt.el}: Ada statement templates.
+
 @item
-automatic color highlighting of the various entities in Ada code.
+@file{ada-xref.el}: GNAT cross-references, completion of identifiers,
+and compilation. Also provides project files (which are not
+GNAT-specific).
+
 @end itemize
 
-@section Emacs support for writing Ada code:
-
-@itemize @bullet
-@item
-switching between spec and body files with eventually
-auto-generation of body files,
-@item
-automatic formatting of subprograms' parameter lists.
-@item
-automatic smart indentation according to Ada syntax,
-@item
-automatic completion of identifiers,
-@item
-automatic casing of identifiers, keywords, and attributes,
-@item
-insertion of statement templates,
-@item
-filling comment paragraphs like filling normal text,
-@end itemize
+@node Customization, Compiling Executing, Installation, Top
+@chapter Customizing Ada mode
 
-@c -----------------------------------------------------------------------
-@node Installation, Customization, Overview, Top
-@chapter Installation
-@c -----------------------------------------------------------------------
-
-If you  got Ada mode as  a separate distribution, you  should have a
-look at the  @file{README} file.  It explains the  basic steps necessary
-for a good installation of the emacs Ada mode.
-
-Installing the  Ada mode  is basically  just a matter  of copying  a few
-files into  the Emacs  library directories. Every  time you open  a file
-with  a  file  extension  of  @file{.ads}  or  @file{.adb},  Emacs  will
-automatically load and activate Ada mode.
-
-@xref{Using non-standard file names}, if your files do
-not use these extensions and if you want Emacs to automatically start the
-Ada mode every time you edit an Ada file.
-
-Also, for general usage variables that you might want to set,
-see
+Here we assume you are familiar with setting variables in Emacs,
+either thru 'customize' or in elisp (in your @file{.emacs} file). For
+a basic introduction to customize, elisp, and Emacs in general, see
+the tutorial in
 @iftex
 @cite{The GNU Emacs Manual}.
 @end iftex
@@ -173,548 +157,964 @@
 @ref{Top, , The GNU Emacs Manual, emacs, The GNU Emacs Manual}.
 @end ifinfo
 
-@c ---------------------------------------------------------------------
-@section Required files
-@c ---------------------------------------------------------------------
+These global Emacs settings are strongly recommended (put them in your
+.emacs):
+
+@example
+(global-font-lock-mode t)
+(transient-mark-mode t)
+@end example
 
-This Ada  mode works best  with Emacs 20.3  or higher (the  easy editing
-features for the  project files won't work with  any older version), but
-most of the commands should work  with older versions too. Please try to
-install  the  most  recent  version  of  Emacs  on  your  system  before
-installing Ada mode.
+@samp{(global-font-lock-mode t)} turns on syntax
+highlighting for all buffers (it is off by default because it may be
+too slow for some machines).
 
-Although part of Ada mode is compiler-independent, the most advanced
-features are specific to the Gnat compiler @url{http://www.gnat.com}.
+@samp{(transient-mark-mode t)} highlights selected text.
 
-The following files are provided with the Ada mode distribution:
-
-@itemize @bullet
+See the Emacs help for each of these variables for more information.
 
-@item
-@file{ada-mode.el}: The main file for Ada mode.
-This  is the  only file  which does  not require  Gnat. It  contains the
-functions  for  indentation,  formatting  of parameter  lists,  stepping
-through  code, comment  handling and  automatic casing.   Emacs versions
-20.2 and higher already contain Ada mode version 2.27, which is an older
-version of this file  and should be replaced. Loading @file{ada-mode.el}
-from the current distribution supersedes the standard installation.
+@menu
+* Non-standard file names::
+* Other compiler::
+* Other customization::
+@end menu
+
+@node Non-standard file names, Other compiler, Customization, Customization
+@section Non-standard file names
 
-@item
-@file{ada-stmt.el}: Contains the statement templates feature.
+By default, Ada mode is configured to use the GNAT file naming
+convention, where file names are a simple modification of the Ada
+names, and the extension for specs and bodies are
+@samp{.ads} and @samp{.adb}, respectively.
 
-@item
-@file{ada-xref.el}: This file provides the main support for Gnat.
-This  is  where  the   functions  for  cross-references,  completion  of
-identifiers,  support   for  project  files  and   compilation  of  your
-application are defined.
+Ada mode uses the file extentions to allow moving from a package body
+to the corresponding spec and back.
+
+Ada mode supports a list of alternative file extensions for specs and bodies.
+
+For instance, if your spec and bodies files are called
+@file{@var{unit}_s.ada} and @file{@var{unit}_b.ada}, respectively, you
+can add the following to your @file{.emacs} file:
 
-@item
-@file{ada-prj.el}: The functions to use for easy-edition of the
-project files.  This file is the only one which really requires Emacs
-at least 20.2. It uses the new widget features from Emacs.
+@example
+(ada-add-extensions "_s.ada" "_b.ada")
+@end example
 
-@end itemize
+You can define additional extensions:
 
-@c --------------------------------------------------------------------
-@node Customization, Project files, Installation, Top
-@chapter Customizing Ada mode
-@c ---------------------------------------------------------------------
+@example
+(ada-add-extensions ".ads" "_b.ada")
+(ada-add-extensions ".ads" ".body")
+@end example
 
-Ada mode is  fully customizable. Everything, from the  file names to
-the automatic  indentation and  the automatic casing  can be  adapted to
-your own needs.
+This means that whenever Ada mode looks for the body for a file
+whose extension is @file{.ads}, it will take the first available file
+that ends with either @file{.adb}, @file{_b.ada} or
+@file{.body}.
 
-There  are   two  different  kinds   of  variables  that   control  this
-customization, both are easy to modify.
+Simililarly, if Ada mode is looking for a spec, it will look for
+@file{.ads} or @file{_s.ada}.
 
-The first set of variables are standard Emacs variables. Of course, some
-are defined  only for Ada  mode, whereas others have  a more general
-meaning  in   Emacs.  Please  see  the  Emacs   documentation  for  more
-information on the latest. In this documentation, we will detail all the
-variables that are specific to Ada mode, and a few others. The names
-will be given, as in @code{ada-case-identifier}.
+If the filename is not derived from the Ada name following the GNAT
+convention, things are a little more complicated. You then need to
+rewrite the function @code{ada-make-filename-from-adaname}. Doing that
+is beyond the scope of this manual; see the current definitions in
+@file{ada-mode.el} and @file{ada-xref.el} for examples.
+
+@node Other compiler, Other customization, Non-standard file names, Customization
+@section Other compiler
+
+By default, Ada mode is configured to use the Gnu Ada compiler GNAT.
 
-Emacs provides an easy way to modify them, through a special mode called
-customization.    To    access    this    mode,    select    the    menu
-@samp{Ada->Customize}.  This will open a new buffer with some fields that
-you can edit.  For instance, you will get something like:
-@example
-Put below the compiler switches.
-comp_opt= _____________________________________
-@end example
-The first  line gives a brief  description of the  variable.  The second
-line is  the name of  the variable  and the field  where you can  give a
-value for this variable. Simply type what you want in the field.
+To use a different Ada compiler, you must specify the command lines
+used to run that compiler, either in lisp variables or in Emacs
+Ada mode project files. See @ref{Project file variables} for the list
+of project variables, and the corresponding lisp variables.
 
-When you are  finished modifying the variables, you  can simply click on
-the @b{Save for future sessions} button  at the top of the buffer (click
-with  the  middle mouse  button).  This will  save  the  values in  your
-@file{.emacs} file, so that next time you start Emacs they will have the
-same values.
+@node Other customization,  , Other compiler, Customization
+@section Other customization
+
+All user-settable Ada mode variables can be set via the menu
+@samp{Ada | Customize}.  Click on the @samp{Help} button there for help
+on using customize.
 
 To modify a specific variable, you can directly call the function
-@code{customize-variable} from Emacs (just type @kbd{M-x
-customize-variable @key{RET} @var{variable-name} @key{RET}}).
+@code{customize-variable}; just type @kbd{M-x customize-variable
+@key{RET} @var{variable-name} @key{RET}}).
 
-Some users might prefer to modify the variables directly in their
-configuration file, @file{.emacs}. This file is coded in Emacs lisp, and
-the syntax to set a variable is the following:
+Alternately, you can specify variable settings in the Emacs
+configuration file, @file{.emacs}. This file is coded in Emacs lisp,
+and the syntax to set a variable is the following:
 @example
 (setq variable-name value)
 @end example
 
-The second set of variables for customization are set through the use of
-project files. These variables are  specific to a given project, whereas
-the  first   set  was  more   general.  For  more   information,  please
-@xref{Project files}.
+@node Compiling Executing, Project files, Customization, Top
+@chapter Compiling Executing
+
+Ada projects can be compiled, linked, and executed using commands on
+the Ada menu. All of these commands can be customized via a project
+file (@pxref{Project files}), but the defaults are sufficient for using
+the GNAT compiler for simple projects (single files, or several files
+in a single directory).
+
+Even when no project file is used, the GUI project editor (menu
+@key{Ada | Project | Edit}) shows the settings of the various project
+file variables referenced here.
+
+@menu
+* Compile commands::
+* Compiler errors::
+@end menu
+
+@node Compile commands, Compiler errors, Compiling Executing, Compiling Executing
+@section Compile commands
+
+Here are the commands for building and using an Ada project, as
+listed in the Ada menu.
+
+In multi-file projects, there must be one file that is the main
+program. That is given by the @code{main_unit} project file variable;
+it defaults to the current file if not yet set, but is also set by the
+``set main and build'' command.
+
+@table @code
+
+@item Check file
+Compiles the current file in syntax check mode, by running
+@code{check_cmd} defined in the current project file. This typically
+runs faster than full compile mode, speeding up finding and fixing
+compilation errors.
+
+This sets @code{main_unit} only if it has not been set yet.
 
-@c ---------------------------------------------------------------------
-@node Project files, Syntax highlighting, Customization, Top
-@chapter Project files
-@c ---------------------------------------------------------------------
+@item Compile file
+Compiles the current file, by running @code{comp_cmd} from the current
+project file.
+
+This does not set @code{main_unit}.
+
+@item Set main and Build
+Sets @code{main_unit} to the current file, then executes the Build
+command.
+
+@item Show main
+Display @code{main_unit} in the message buffer.
+
+@item Build
+Compiles all obsolete units of the current @code{main_unit}, and links
+@code{main_unit}, by running @code{make_cmd} from the current project.
+
+This sets @code{main_unit} only if it has not been set yet.
 
-@c ---------------------------------------------------------------------
-@section General overview
-@c ---------------------------------------------------------------------
+@item Run
+Executes the main program in a shell, displayed in a separate Emacs
+buffer. This runs @code{run_cmd} from the current project. The
+execution buffer allows for interactive input/output.
+
+To modify the run command, in particular to provide or change the
+command line arguments, type @key{C-u} before invoking the command.
+
+This command is not available for a cross-compilation toolchain.
 
-Emacs provides a full Integrated Development Environment for GNAT and
-Ada programmers. That is to say, editing, compiling, executing and
-debugging can be performed within Emacs in a convenient and natural way.
+@end table
+It is important when using these commands to understand how
+@code{main_unit} is used and changed.
+
+Build runs 'gnatmake' on the main unit. During a typical edit/compile
+session, this is the only command you need to invoke, which is why it
+is bound to @key{C-c C-c}. It will compile all files needed by the
+main unit, and display compilation errors in any of them.
+
+Note that Build can be invoked from any Ada buffer; typically you will
+be fixing errors in files other than the main, but you don't have to
+switch back to the main to invoke the compiler again.
 
-To take full advantage of this features, it is possible to create a file
-in  the main  directory of  your application,  with a  @samp{.adp} extension.
-This  file contains  all needed  information  dealing with  the way  your
-application is  organized between directories, the  commands to compile,
-run and debug it etc. Creating this file is not mandatory and convenient
-defaults are  automatically provided for simple setups.  It only becomes
-necessary when those above mentioned defaults need customizing.
+Novices and students typically work on single-file Ada projects. In
+this case, @key{C-c C-m} will normally be the only command needed; it
+will build the current file, rather than the last-built main.
+
+There are three ways to change @code{main_unit}:
+
+@enumerate
+@item
+Invoke @key{Ada | Set main and Build}, which sets @code{main_unit} to
+the current file.
+
+@item
+Invoke @key{Ada | Project | Edit}, edit @code{main_unit} and
+@code{main}, and click @key{[save]}
+
+@item
+Invoke @key{Ada | Project | Load}, and load a project file that specifies @code{main_unit}
+
+@end enumerate
 
-A simple way to edit this file is provided for Emacs 20.2 or newer, with
-the  following functions,  that  you  can access  also  through the  Ada
-menu. It  is also possible  to edit the  project file as a  regular text
-file.
+@node Compiler errors,  , Compile commands, Compiling Executing
+@section Compiler errors
+
+The @code{Check file}, @code{Compile file}, and @code{Build} commands
+all place compilation errors in a separate buffer named
+@code{*compilation*}.
+
+Each line in this buffer will become active: you can simply click on
+it with the middle button of the mouse, or move point to it and press
+@key{RET}. Emacs will then display the relevant source file and put
+point on the line and column where the error was found.
+
+You can also press the @kbd{C-x `} key (@code{next-error}), and Emacs
+will jump to the first error. If you press that key again, it will
+move you to the second error, and so on.
+
+Some error messages might also include references to other files. These
+references are also clickable in the same way, or put point after the
+line number and press @key{RET}.
+
+@node Project files, Compiling Examples, Compiling Executing, Top
+@chapter Project files
 
-Once  in the  buffer for  editing the  project file,  you can  save your
-modification using  the @samp{[OK]}  button at the  bottom of the  buffer, or
-simply   use  the  usual   @kbd{C-x  C-s}   binding.   To   cancel  your
-modifications, simply kill the buffer  or click on the @samp{[CANCEL]} button
-at the button.
+An Emacs Ada mode project file specifies what directories hold sources
+for your project, and allows you to customize the compilation commands
+and other things on a per-project basis.
+
+Note that Ada mode project files @samp{*.adp} are different than GNAT
+compiler project files @samp{*.gpr}.
+
+@menu
+* Project File Overview::
+* GUI Editor::
+* Project file variables::
+@end menu
+
+@node Project File Overview, GUI Editor, Project files, Project files
+@section Project File Overview
 
-Each buffer using Ada mode will be associated with one project file when
-there  is one  available,  so  that Emacs  can  easily navigate  through
-related source files for instance.
+Project files have a simple syntax; they may be edited directly. Each
+line specifies a project variable name and its value, separated by ``='':
+@example
+src_dir=/Projects/my_project/src_1
+src_dir=/Projects/my_project/src_2
+@end example
+
+Some variables (like @code{src_dir}) are lists; multiple occurances
+are concatenated.
+
+There must be no space between the variable name and ``='', and no
+trailing spaces.
 
-The exact algorithm to determine which project file should be used is
-described in the next section, but you can force the project file you
-want to use by setting one or two variables in your @file{.emacs} file.
+Alternately, a GUI editor for project files is available (@pxref{GUI
+Editor}). It uses Emacs widgets, similar to Emacs customize.
+
+The GUI editor also provides a convenient way to view current project
+settings, if they have been modified using menu commands rather than
+by editing the project file.
+
+After the first Ada mode build command is invoked, there is always a
+current project file, given by the lisp variable
+@code{ada-prj-default-project-file}. Currently, the only way to show
+the current project file is to invoke the GUI editor.
+
+To find the project file the first time, Ada mode uses the following
+search algorithm:
 
 @itemize @bullet
 @item
-To set up a default project file to use for any directory, anywhere
-on your system, set the variable @code{ada-prj-default-project-file} to
-the name of that file.
+If @code{ada-prj-default-project-file} is set, use that.
 
-@example
-(set 'ada-prj-default-project-file "/dir1/dir2/file")
-@end example
+@item
+Otherwise, search for a file in the current directory with
+the same base name as the Ada file, but extension given by
+@code{ada-prj-file-extension} (default @code{".adp"}).
 
 @item
-For finer control, you can set a per-directory project file.
-This is done through the variable @code{ada-xref-default-prj-file}.
+If not found, search for @file{*.adp} in the current directory; if
+several are found, prompt the user to select one.
 
-@example
-  (set 'ada-xref-default-prj-file
-       '(("/dir1/dir2" . "/dir3/file1")
-         ("/dir4/dir5" . "/dir6/file2")))
-@end example
+@item
+If none are found, use @file{default.adp} in the current directory (even
+if it does not exist).
 
-Note: This has a higher priority than the first variable, so the first
-choice is to use this variable's settings, and otherwise
-@code{ada-prj-default-project-file}.
 @end itemize
 
+This algorithm always sets @code{ada-prj-default-project-file}, even
+when the file does not actually exist.
 
-@table @kbd
-@item C-c u
-@findex ada-customize
-Create or edit the project file for the current buffer (@code{ada-customize}).
-@item C-c c
-@findex ada-change-prj
-Change the project file associated with the current Ada buffer (@code{ada-change-prj}).
-@item C-c d
-@findex ada-change-default-project
-Change the  default project  file for the  current directory
-(@code{ada-change-default-project}).  Every new file opened  from this
-directory will be  associated with that  file by default.
-@item ada-set-default-project-file
-@findex ada-set-default-project-file
-Set the default  project file to use for *any*  Ada file opened anywhere
-on your system. This sets this file only for the current Emacs session.
-@end table
+To change the project file before or after the first one is found,
+invoke @key{Ada | Project | Load ...}.
+
+Or, in lisp, evaluate @code{ada-set-default-project-file "/path/file.adp"}.
+This sets @code{ada-prj-default-project-file}, and reads the project file.
+
+@node GUI Editor, Project file variables, Project File Overview, Project files
+@section GUI Editor
+
+The project file editor is invoked with the menu @samp{Ada | Projects
+| Edit}.
+
+Once in the buffer for editing the project file, you can save your
+modification using the @samp{[save]} button at the bottom of the
+buffer, or the @kbd{C-x C-s} binding. To cancel your modifications,
+kill the buffer or click on the @samp{[cancel]} button.
+
+@node Project file variables,  , GUI Editor, Project files
+@section Project file variables
+
+The following variables can be defined in a project file; some can
+also be defined in lisp variables.
+
+To set a project variable that is a list, specify each element of the
+list on a separate line in the project file.
+
+Any project variable can be referenced in other project variables,
+using a shell-like notation. For instance, if the variable
+@code{comp_cmd} contains @code{$@{comp_opt@}}, the value of the
+@code{comp_opt} variable will be substituted when @code{comp_cmd} is
+used.
 
-@c ---------------------------------------------------------------------
-@section Project file variables
-@c ---------------------------------------------------------------------
+Most project variables have defaults that can be changed by setting
+lisp variables; the table below identifies the lisp variable for each
+project variable. Lisp variables corresponding to project variables
+that are lists are lisp lists.
+
+Here is the list of variables. In the default values, the current
+directory @code{"."} is the project file directory.
 
-The following variables can be defined in a project file.  They all have
-a default value, so that small  projects do not need to create a project
-file.
+@c defined in ada-xref-set-default-prj-values; same order here
+@table @asis
+@item @code{build_dir}      [default: @code{"."}]
+The compile commands will be issued in this directory.
+
+@item @code{src_dir}        [default: @code{"."}]
+A list of directories to search for source files, both for compile
+commands and source navigation.
 
-Some  variables below  can be  referenced  in other  variables, using  a
-shell-like  notation.   For instance,  if  the variable  @code{comp_cmd}
-contains a sequence like @code{$@{comp_opt@}}, the value of that variable
-will be substituted.
+@item @code{obj_dir}        [default: @code{"."}]
+A list of directories to search for library files. Ada mode searches
+this list for the @samp{.ali} files generated by GNAT that contain
+cross-reference information.
+
+The compiler commands must place the @samp{.ali} files in one of these
+directories; the default commands do that.
 
-Here is the list of variables:
+@item @code{casing}         [default: @code{("~/.emacs_case_exceptions")}
+List of files containing casing exceptions. See the help on
+@code{ada-case-exception-file} for more info.
+@c FIXME: section on case exceptions
 
-@table @asis
-@item @code{src_dir}          [default: @code{"./"}]
-This is  a list of directories where Ada mode will  look for source
-files. These directories are used mainly  in two cases, both as a switch
-for the compiler and for the cross-references.
+Lisp variable: @code{ada-case-exception-file}.
+
+@item @code{comp_opt}       [default: @code{"-gnatq -gnatQ"}]
+Holds user compiler options; used in the default compile commands. The
+default value tells gnatmake to generate library files for
+cross-referencing even when there are errors.
 
-@item @code{obj_dir}             [default: @code{"./"}]
-This is a list of directories where to look for object and library
-files.  The library files are the @samp{.ali} files generated by Gnat
-and that contain cross-reference informations.
+If source code for the project is in multiple directories, the
+appropriate compiler options must be added here. @ref{Set source
+search path} for examples of this. Alternately, GNAT project files may
+be used; @ref{Use GNAT project file}.
+
+Lisp variable: @code{ada-prj-default-comp-opt}.
 
-@item @code{comp_opt}            [default: @code{""}]
-Creates a  variable which can be  referred to subsequently  by using the
-@code{$@{comp_opt@}} notation.   This is  intended to store  the default
-switches given to @command{gnatmake} and @command{gcc}.
+@item @code{bind_opt}       [default: @code{""}]
+Holds user binder options; used in the default build commands.
+
+Lisp variable: @code{ada-prj-default-bind-opt}.
+
+@item @code{link_opt}       [default: @code{""}]
+Holds user linker options; used in the default build commands.
+
+Lisp variable: @code{ada-prj-default-link-opt}.
 
-@item @code{bind_opt=@var{switches}}   [default: @code{""}]
-Creates a  variable which can be  referred to subsequently  by using the
-@code{$@{bind_opt@}} notation.   This is  intended to store  the default
-switches given to @command{gnatbind}.
+@item @code{gnatmake_opt}   [default: @code{"-g"}]
+Holds user gnatmake options; used in the default build commands.
+
+If a GNAT project file is used (for example @file{project.gpr}), this
+option should be set to @code{-Pproject.gpr}.
+
+Lisp variable: @code{ada-prj-default-gnatmake-opt}.
 
-@item @code{link_opt=@var{switches}}   [default: @code{""}]
-Creates a  variable which can be  referred to subsequently  by using the
-@code{$@{link_opt@}} notation.   This is  intended to store  the default
-switches given to @command{gnatlink}.
+@item @code{gnatfind_opt}   [default: @code{"-rf"}]
+Holds user gnatfind options; used in the default find commands.
+
+Lisp variable: @code{ada-prj-gnatfind-switches}.
+
+@item @code{main}           [default: current file]
+Specifies the name of the executable file for the project; used in the
+default build commands.
+
+@item @code{main_unit}      [default: current Ada unit]
+Specifies the name of the main Ada unit for the project; used in the
+default build commands.
 
-@item @code{main=@var{executable}}     [default: @code{""}]
-Specifies the name of the  executable for the application. This variable
-can be referred to in  the following lines by using the @code{$@{main@}}
-notation.
+@item @code{cross_prefix}   [default: @code{""}]
+Name of target machine in a cross-compilation environment. Used in
+default compile and build commands.
+
+@item @code{remote_machine} [default: @code{""}]
+Name of the machine to log into before issuing the compile and build
+commands. If this variable is empty, the command will be run on the
+local machine.
 
-@item @code{cross_prefix=@var{prefix}} [default: @code{""}]
-This variable  should be set if  you are working  in a cross-compilation
-environment. This is the prefix used in front of the gnatmake commands.
+@item @code{comp_cmd}       [default: @code{"$@{cross_prefix@}gnatmake -u -c $@{gnatmake_opt@} $@{full_current@} -cargs $@{comp_opt@}"}]
+Command used to compile a single file.
+The name of the file is substituted for @code{full_current}.
+
+Lisp variable: @code{ada-prj-default-comp-cmd}.
+
+@item @code{check_cmd}      [default: @code{"$@{cross_prefix@}gnatmake -u -c -gnatc $@{gnatmake_opt@} $@{full_current@} -cargs $@{comp_opt@}"}]
+Command used to syntax check a single file.
+The name of the file is substituted for @code{full_current}.
 
-@item @code{remote_machine=@var{machine}} [default: @code{""}]
-This is the name of the machine to log into before issuing the
-compilation command. If this variable is empty, the command will be
-run on the local machine. This will not work on Windows NT machines,
-since Ada mode will simply precede the compilation command with a
-@command{rsh} command, unknown on Windows.
+Lisp variable: @code{ada-prj-default-check-cmd}
+
+@item @code{make_cmd}       [default: @code{"$@{cross_prefix@}gnatmake -o $@{main@} $@{main_unit@} $@{gnatmake_opt@} -cargs $@{comp_opt@} -bargs $@{bind_opt@} -largs $@{link_opt@}"}]
+Command used to build the application.
+
+Lisp variable: @code{ada-prj-default-make-cmd}.
+
+@item @code{run_cmd}        [default: @code{"./$@{main@}"}]
+Command used to run the application.
 
-@item @code{comp_cmd=@var{command}}    [default: @code{"$@{cross_prefix@}gcc -c -I$@{src_dir@} -g -gnatq"}]
-Specifies the command used to compile a single file in the application.
-The name of the file will be added at the end of this command.
+@item @code{debug_pre_cmd}  [default: @code{"cd $@{build_dir@}"}]
+Command executed before @code{debug_cmd}.
 
-@item @code{make_cmd=@var{command}}    [default: @code{"$@{cross_prefix@}gnatmake $@{main@} -aI$@{src_dir@} -aO$@{obj_dir@} -g -gnatq -cargs $@{comp_opt@} -bargs $@{bind_opt@} -largs $@{link_opt@}"]}'
-Specifies the command used to recompile the whole application.
+@item @code{debug_cmd}      [default: @code{"$@{cross_prefix@}gdb $@{main@}"}]
+Command used to debug the application
 
-@item @code{run_cmd=@var{command}}     [default: @code{"$@{main@}"}]
-Specifies the command used to run the application.
+Lisp variable: @code{ada-prj-default-debugger}.
 
-@item @code{debug_cmd=@var{command}}   [default: @code{"$@{cross_prefix@}gdb $@{main@}"}]
-Specifies the command used to debug the application
+@item @code{debug_post_cmd} [default: @code{""}]
+Command executed after @code{debug_cmd}.
 
 @end table
 
-@c ---------------------------------------------------------------------
-@section Detailed algorithm
-@c ---------------------------------------------------------------------
+@node Compiling Examples, Moving Through Ada Code, Project files, Top
+@chapter Compiling Examples
+
+We present several small projects, and walk thru the process of
+compiling, linking, and running them.
+
+The first example illustrates more Ada mode features than the others;
+you should work thru that example before doing the others.
+
+All of these examples assume you are using GNAT.
+
+The source for these examples is available on the Emacs Ada mode
+website mentioned in @xref{Installation}.
+
+@menu
+* No project files::            Just menus
+* Set compiler options::        A basic Ada mode project file
+* Set source search path::      Source in multiple directories
+* Use GNAT project file::
+@end menu
+
+@node No project files, Set compiler options, Compiling Examples, Compiling Examples
+@section No project files
+This example uses no project files.
+
+First, create a directory @file{Example_1}, containing:
+
+@file{hello.adb}:
+
+@example
+with Ada.Text_IO;
+procedure Hello
+is begin
+   Put_Line("Hello from hello.adb");
+end Hello;
+@end example
 
-This section gives more details on the project file setup and is only of
-interest for advanced users.
+Yes, this is missing ``use Ada.Text_IO;'' - we want to demonstrate
+compiler error handling.
+
+@file{hello_2.adb}:
+
+@example
+with Hello_Pkg;
+procedure Hello_2
+is begin
+   Hello_Pkg.Say_Hello;
+end Hello_2;
+@end example
+
+@file{hello_pkg.ads}:
+
+@example
+package Hello_Pkg is
+   procedure Say_Hello;
+end Hello_Pkg;
+@end example
+
+@file{hello_pkg.adb}:
+
+@example
+with Ada.Text_IO;
+package Hello_Pkg is
+   procedure Say_Hello
+   is begin
+      Ada.Text_IO.Put_Line ("Hello from hello_pkg.adb");
+   end Say_Hello;
+end Hello_Pkg;
+@end example
+
+Yes, this is missing the keyword @code{body}; another compiler error
+example.
+
+In buffer @file{hello.adb}, invoke @key{Ada | Check file}. You should
+get a @code{*compilation*} buffer containing something like (the
+directory paths will be different):
 
-Usually, an Ada file is part  of a larger application, whose sources and
-objects can be spread over multiple directories. The first time emacs is
-asked to compile, run or debug an application, or when a cross reference
-function is  used (goto declaration  for instance), the  following steps
-are taken:
+@example
+cd c:/Examples/Example_1/
+gnatmake -u -c -gnatc -g c:/Examples/Example_1/hello.adb -cargs -gnatq -gnatQ
+gcc -c -Ic:/Examples/Example_1/ -gnatc -g -gnatq -gnatQ -I- c:/Examples/Example_1/hello.adb
+hello.adb:4:04: "Put_Line" is not visible
+hello.adb:4:04: non-visible declaration at a-textio.ads:264
+hello.adb:4:04: non-visible declaration at a-textio.ads:260
+gnatmake: "c:/Examples/Example_1/hello.adb" compilation error
+@end example
+
+If you have enabled font-lock, the lines with actual errors (starting
+with @file{hello.adb}) are highlighted, with the file name in red.
+
+Now type @key{C-x `} (on a PC keyboard, @key{`} is next to @key{1}).
+Or you can click the middle mouse button on the first error line. The
+compilation buffer scrolls to put the first error on the top line, and
+point is put at the place of the error in the @file{hello.adb} buffer.
+
+To fix the error, change the line to be
+
+@example
+    Ada.Text_IO.Put_Line ("hello from hello.adb"):
+@end example
+
+Now invoke @key{Ada | Show main}; this displays @file{Ada mode main_unit: hello}.
+
+Now (in buffer @file{hello.adb}), invoke @key{Ada | Build}. You are
+prompted to save the file (if you haven't already). Then the
+compilation buffer is displayed again, containing:
+
+@example
+cd c:/Examples/Example_1/
+gnatmake -o hello hello -g -cargs -gnatq -gnatQ -bargs  -largs
+gcc -c -g -gnatq -gnatQ hello.adb
+gnatbind -x hello.ali
+gnatlink hello.ali -o hello.exe -g
+@end example
+
+The compilation has succeeded without errors; @file{hello.exe} now
+exists in the same directory as @file{hello.adb}.
+
+Now invoke @key{Ada | Run}. A @file{*run*} buffer is displayed,
+containing
+
+@example
+Hello from hello.adb
 
-@itemize @bullet
-@item
-find the appropriate project file, open and parse it.
-All  the fields  read  in the  project  file are  then  stored by  emacs
-locally.  Finding the project file requires a few steps:
+Process run finished
+@end example
+
+That completes the first part of this example.
+
+Now we will compile a multi-file project. Open the file
+@file{hello_2.adb}, and invoke @key{Ada | Set main and Build}. This
+finds an error in @file{hello_pkg.adb}:
+
+@example
+cd c:/Examples/Example_1/
+gnatmake -o hello_2 hello_2 -g -cargs -gnatq -gnatQ -bargs  -largs
+gcc -c -g -gnatq -gnatQ hello_pkg.adb
+hello_pkg.adb:2:08: keyword "body" expected here [see file name]
+gnatmake: "hello_pkg.adb" compilation error
+@end example
+
+This demonstrates that gnatmake finds the files needed by the main
+program. However, it cannot find files in a different directory,
+unless you use an Emacs Ada mode project file to specify the other directories;
+@xref{Set source search path}, or a GNAT project file; @ref{Use GNAT
+project file}.
 
-@itemize @minus
+Invoke @key{Ada | Show main}; this displays @file{Ada mode main_unit: hello_2}.
+
+Move to the error with @key{C-x `}, and fix the error by adding @code{body}:
+
+@example
+package body Hello_Pkg is
+@end example
+
+Now, while still in @file{hello_pkg.adb}, invoke @key{Ada | Build}.
+gnatmake successfully builds @file{hello_2}. This demonstrates that
+Emacs has remembered the main file, in the project variable
+@code{main_unit}, and used it for the Build command.
+
+Finally, again while in @file{hello_pkg.adb}, invoke @key{Ada | Run}.
+The @code{*run*} buffer displays @code{Hello from hello_pkg.adb}.
+
+One final point. If you switch back to buffer @file{hello.adb}, and
+invoke @key{Ada | Run}, @file{hello_2.exe} will be run. That is
+because @code{main_unit} is still set to @code{hello_2}, as you can
+see when you invoke @key{Ada | Project | Edit}.
+
+There are three ways to change @code{main_unit}:
+
+@enumerate
 @item
-if a file from the same directory was already associated with
-a project file, use the same one. This is the variable
-@code{ada-xref-default-prj-file} described above.
-@item
-if the variable @code{ada-prj-default-project-file} is set,
-use the project file specified in this variable.
-@item
-if there is a project file whose name is the same as the source file
-except for the suffix, use this one.
-@item
-if  there's only one project file in the source directory, use
-that one.
-@item
-if there are more than one project file in the source directory,
-ask the user.
-@item
-if there are no project files in the source directory use standard
-default values.
-@end itemize
-
-The first project file that is selected in a given directory becomes the
-default project file for this directory and is used implicitly for other
-sources unless specified otherwise by the user.
+Invoke @key{Ada | Set main and Build}, which sets @code{main_unit} to
+the current file.
 
 @item
-look for the corresponding @samp{.ali} file in the @code{obj_dir} defined
-in the project  file.  If this file can not be  found, emacs proposes to
-compile the source using the @code{comp_cmd} defined in the project file
-in order to create the ali file.
+Invoke @key{Ada | Project | Edit}, edit @code{main_unit} and
+@code{main}, and click @key{[save]}
 
 @item
-when cross referencing is requested, the @samp{.ali}  file is parsed to
-determine  the  file and  line  of  the  identifier definition.   It  is
-possible for  the @samp{.ali} file to be  older than the source  file,
-in which case it will be recompiled if the variable
-@code{ada-xref-create-ali} is set, otherwise the  reference is searched
-in the  obsolete ali file with possible inaccurate results.
+Invoke @key{Ada | Project | Load}, and load a project file that specifies @code{main_unit}
+
+@end enumerate
+
+@node Set compiler options, Set source search path, No project files, Compiling Examples
+@section Set compiler options
+
+This example illustrates using an Emacs Ada mode project file to set a
+compiler option.
+
+If you have files from @file{Example_1} open in Emacs, you should
+close them so you don't get confused. Use menu @key{File | Close
+(current buffer)}.
+
+In directory @file{Example_2}, create these files:
+
+@file{hello.adb}:
+
+@example
+with Ada.Text_IO;
+procedure Hello
+is begin
+   Put_Line("Hello from hello.adb");
+end Hello;
+@end example
 
-@item
-look  for   the file containing the declaration using the source
-path @code{src_dir} defined in the  project file.  Put the cursor at the
-correct position and display this new cursor.
-@end itemize
+This is the same as @file{hello.adb} from @file{Example_1}. It has two
+errors; missing ``use Ada.Text_IO;'', and no space between
+@code{Put_Line} and its argument list.
+
+@file{hello.adp}:
+
+@example
+comp_opt=-gnatyt
+@end example
+
+This tells the GNAT compiler to check for token spacing; in
+particular, there must be a space preceding a parenthesis.
 
-@c -----------------------------------------------------------------------
-@node Syntax highlighting, Moving Through Ada Code, Project files, Top
-@chapter Syntax highlighting
-@c -----------------------------------------------------------------------
+In buffer @file{hello.adb}, invoke @key{Ada | Project | Load...}, and
+select @file{Example_2/hello.adp}.
+
+Then, again in buffer @file{hello.adb}, invoke @key{Ada | Set main and
+Build}. You should get a @code{*compilation*} buffer containing
+something like (the directory paths will be different):
+
+@example
+cd c:/Examples/Example_2/
+gnatmake -o hello hello -g -cargs -gnatyt  -bargs  -largs
+gcc -c -g -gnatyt hello.adb
+hello.adb:4:04: "Put_Line" is not visible
+hello.adb:4:04: non-visible declaration at a-textio.ads:264
+hello.adb:4:04: non-visible declaration at a-textio.ads:260
+hello.adb:4:12: (style) space required
+gnatmake: "hello.adb" compilation error
+@end example
 
-Ada mode is made to help you understand the structure of your source
-files. Some  people like having  colors or different fonts  depending on
-the  context: commands  should be  displayed differently  than keywords,
-which should also be different from strings, @dots{}
+Compare this to the compiler output in @ref{No project files}; the
+gnatmake option @code{-cargs -gnatq -gnatQ} has been replaced by
+@code{-cargs -gnaty}, and an additional error is reported in
+@file{hello.adb} on line 4. This shows that @file{hello.adp} is being
+used to set the compiler options.
+
+Fixing the error, linking and running the code proceed as in @ref{No
+project files}.
+
+@node Set source search path, Use GNAT project file, Set compiler options, Compiling Examples
+@section Set source search path
 
-Emacs is able to display in a different way the following syntactic
-entities:
+In this example, we show how to deal with files in more than one
+directory. We start with the same code as in @ref{No project files}; create those
+files (with the errors present)
+
+Create the directory @file{Example_3}, containing:
+
+@file{hello_pkg.ads}:
+
+@example
+package Hello_Pkg is
+   procedure Say_Hello;
+end Hello_Pkg;
+@end example
+
+@file{hello_pkg.adb}:
 
-@itemize @bullet
-@item keywords
-@item commands
-@item strings
-@item gnatprep statements (preprocessor)
-@item types (under certain conditions)
-@item other words
-@end itemize
+@example
+with Ada.Text_IO;
+package Hello_Pkg is
+   procedure Say_Hello
+   is begin
+      Ada.Text_IO.Put_Line ("Hello from hello_pkg.adb");
+   end Say_Hello;
+end Hello_Pkg;
+@end example
+
+These are the same files from example 1; @file{hello_pkg.adb} has an
+error on line 2.
+
+In addition, create a directory @file{Example_3/Other}, containing these files:
 
-This  is not  the default  behavior for  Emacs. You  have  to explicitly
-activate it. This requires that you add a new line in your @file{.emacs}
-file (if this file does not exist, just create it).
+@file{Other/hello_3.adb}:
+
+@example
+with Hello_Pkg;
+with Ada.Text_IO; use Ada.Text_IO;
+procedure Hello_3
+is begin
+   Hello_Pkg.Say_Hello;
+   Put_Line ("From hello_3");
+end Hello_3;
+@end example
+
+There are no errors in this file.
+
+@file{Other/other.adp}:
 
 @example
-(global-font-lock-mode t)
+src_dir=..
+comp_opt=-I..
+@end example
+
+Note that there must be no trailing spaces.
+
+In buffer @file{hello_3.adb}, invoke @key{Ada | Project | Load...}, and
+select @file{Example_3/Other/other.adp}.
+
+Then, again in @file{hello_3.adb}, invoke @key{Ada | Set main and
+Build}. You should get a @code{*compilation*} buffer containing
+something like (the directory paths will be different):
+
+@example
+cd c:/Examples/Example_3/Other/
+gnatmake -o hello_3 hello_3 -g -cargs -I.. -bargs  -largs
+gcc -c -g -I.. hello_3.adb
+gcc -c -I./ -g -I.. -I- C:\Examples\Example_3\hello_pkg.adb
+hello_pkg.adb:2:08: keyword "body" expected here [see file name]
+gnatmake: "C:\Examples\Example_3\hello_pkg.adb" compilation error
+@end example
+
+Compare the @code{-cargs} option to the compiler output in @ref{Set
+compiler options}; this shows that @file{other.adp} is being used to
+set the compiler options.
+
+Move to the error with @key{C-x `}. Ada mode searches the list of
+directories given by @code{src_dir} for the file mentioned in the
+compiler error message.
+
+Fixing the error, linking and running the code proceed as in @ref{No
+project files}.
+
+@node Use GNAT project file,  , Set source search path, Compiling Examples
+@section Use GNAT project file
+
+In this example, we show how to use a GNAT project file.
+
+Create the directory @file{Example_4}, containing:
+
+@file{hello_pkg.ads}:
+
+@example
+package Hello_Pkg is
+   procedure Say_Hello;
+end Hello_Pkg;
+@end example
+
+@file{hello_pkg.adb}:
+
+@example
+with Ada.Text_IO;
+package Hello_Pkg is
+   procedure Say_Hello
+   is begin
+      Ada.Text_IO.Put_Line ("Hello from hello_pkg.adb");
+   end Say_Hello;
+end Hello_Pkg;
 @end example
 
-But  the default colors  might not  be the  ones you  like. Fortunately,
-there  is  a  very  easy  way  to change  them.  Just  select  the  menu
-@samp{Help->Customize->Specific  Face...}  and  press @key{RET}.  This
-will display a buffer will all the ``faces'' (the colors) that Emacs knows
-about. You can change any of them.
+These are the same files from example 1; @file{hello_pkg.adb} has an
+error on line 2.
+
+In addition, create a directory @file{Example_4/Gnat_Project},
+containing these files:
+
+@file{Other/hello_4.adb}:
+
+@example
+with Hello_Pkg;
+with Ada.Text_IO; use Ada.Text_IO;
+procedure Hello_4
+is begin
+   Hello_Pkg.Say_Hello;
+   Put_Line ("From hello_4");
+end Hello_4;
+@end example
+
+There are no errors in this file.
+
+@file{Gnat_Project/hello_4.adp}:
+
+@example
+src_dir=..
+gnatmake_opt=-Phello_4.gpr
+@end example
+
+@file{Gnat_Project/hello_4.gpr}:
 
+@example
+Project Hello_4 is
+   for Source_Dirs use (".", "..");
+end Hello_4;
+@end example
 
-@c -----------------------------------------------------------------------
-@node Moving Through Ada Code, Identifier completion, Syntax highlighting, Top
+In buffer @file{hello_4.adb}, invoke @key{Ada | Project | Load...}, and
+select @file{Example_4/Gnat_Project/hello_4.adp}.
+
+Then, again in @file{hello_4.adb}, invoke @key{Ada | Set main and
+Build}. You should get a @code{*compilation*} buffer containing
+something like (the directory paths will be different):
+
+@example
+cd c:/Examples/Example_4/Gnat_Project/
+gnatmake -o hello_4 hello_4 -Phello_4.gpr -cargs -gnatq -gnatQ -bargs  -largs
+gcc -c -g -gnatyt -gnatq -gnatQ -I- -gnatA c:\Examples\Example_4\Gnat_Project\hello_4.adb
+gcc -c -g -gnatyt -gnatq -gnatQ -I- -gnatA c:\Examples\Example_4\hello_pkg.adb
+hello_pkg.adb:2:08: keyword "body" expected here [see file name]
+gnatmake: "c:\examples\example_4\hello_pkg.adb" compilation error
+@end example
+
+Compare the @code{gcc} options to the compiler output in @ref{Set
+compiler options}; this shows that @file{hello_4.gpr} is being used to
+set the compiler options.
+
+Fixing the error, linking and running the code proceed as in @ref{No
+project files}.
+
+@node Moving Through Ada Code, Identifier completion, Compiling Examples, Top
 @chapter Moving Through Ada Code
 @c -----------------------------------------------------------------------
 
-There are several  easy to use commands to stroll  through Ada code. All
-these functions are available through the Ada menu, and you can also use
-the following key bindings or the command names:
+There are several easy to use commands to navigate through Ada code. All
+these functions are available through the Ada menu, and you can also
+use the following key bindings or the command names. Some of these
+menu entries are available only if the GNAT compiler is used, since
+the implementation relies on the GNAT cross-referencing information.
 
 @table @kbd
-@item C-M-e
+@item M-C-e
 @findex ada-next-procedure
 Move to the next function/procedure/task, which ever comes next
 (@code{ada-next-procedure}).
-@item C-M-a
+@item M-C-a
 @findex ada-previous-procedure
 Move to previous function/procedure/task
 (@code{ada-previous-procedure}).
 @item M-x ada-next-package
 @findex ada-next-package
 Move to next package.
-@item M-x ada-prev-package
-@findex ada-prev-package
+@item M-x ada-previous-package
+@findex ada-previous-package
 Move to previous package.
 @item C-c C-a
 @findex ada-move-to-start
 Move to matching start of @code{end} (@code{ada-move-to-start}).  If
 point is at the end of a subprogram, this command jumps to the
 corresponding @code{begin} if the user option
-@code{ada-move-to-declaration} is @code{nil} (default), it jumps to
-the subprogram declaration otherwise.
+@code{ada-move-to-declaration} is @code{nil} (default), otherwise it jumps to
+the subprogram declaration.
 @item C-c C-e
 @findex ada-move-to-end
 Move point to end of current block (@code{ada-move-to-end}).
 @item C-c o
 Switch between corresponding spec and body file
-(@code{ff-find-other-file}).  If the cursor is on a subprogram, switch
-between declaration and body.
+(@code{ff-find-other-file}).  If point is in a subprogram, position
+point on the corresponding declaration or body in the other file.
 @item C-c c-d
 @findex ada-goto-declaration
-Move  from   any  reference  to  its  declaration   and  switch  between
-declaration  and body  (for  procedures, tasks,  private and  incomplete
-types).
+Move from any reference to its declaration, for from a declaration to
+its body (for procedures, tasks, private and incomplete types).
 @item C-c C-r
 @findex ada-find-references
-runs the @file{gnatfind} command to search for all references to the
-entity pointed by the cursor (@code{ada-find-references}).  Use
+Runs the @file{gnatfind} command to search for all references to the
+identifier surrounding point (@code{ada-find-references}). Use
 @kbd{C-x `} (@code{next-error}) to visit each reference (as for
 compilation errors).
 @end table
 
-These  functions use  the  information in  the  output of  the Gnat  Ada
-compiler.   However,   if  your   application  was  compiled   with  the
-@samp{-gnatx}  switch, these  functions will  not work,  since  no extra
-information  is generated by  GNAT. See  GNAT documentation  for further
-information.
-
-Emacs will  try to  run    Gnat for  you whenever the    cross-reference
-informations  are     older   than your   source   file   (provided  the
-@code{ada-xref-create-ali} variable is  non-@code{nil}).  Gnat  then produces a
-file with the same name  as the current  Ada file but with the extension
-changed to @file{.ali}. This files are normally used  by the binder, but
-they will also contain additional cross-referencing information.
+If the @code{ada-xref-create-ali} variable is non-@code{nil}, Emacs
+will try to run GNAT for you whenever cross-reference information is
+needed, and is older than the current source file.
 
-@c -----------------------------------------------------------------------
-@node Identifier completion, Index Menu of Subprograms, Moving Through Ada Code, Top
+@node Identifier completion, Automatic Smart Indentation, Moving Through Ada Code, Top
 @chapter Identifier completion
-@c -----------------------------------------------------------------------
 
-@c -----------------------------------------------------------------------
-@section Overview
-@c -----------------------------------------------------------------------
-
-Emacs and  Ada mode provide  two general ways for  the completion of
-identifiers. This is  an easy way to type faster: you  just have to type
-the first few  letters of an identifier, and then  loop through all the
+Emacs and Ada mode provide two general ways for the completion of
+identifiers. This is an easy way to type faster: you just have to type
+the first few letters of an identifiers, and then loop through all the
 possible completions.
 
-The  first method  is general  for  Emacs. It  will work  both with  Ada
-buffers, but also in C buffers,  Java buffers, @enddots{}  The idea is to parse
-all the opened buffers for possible completions.
+The first method is general for Emacs. It works by parsing all open
+files for possible completions.
 
 For instance, if the words @samp{my_identifier}, @samp{my_subprogram}
 are the only words starting with @samp{my} in any of the opened files,
 then you will have this scenario:
 
-@quotation
+@example
 You type:  my@key{M-/}
 Emacs inserts:  @samp{my_identifier}
 If you press @key{M-/} once again, Emacs replaces @samp{my_identifier} with
 @samp{my_subprogram}.
 Pressing @key{M-/} once more will bring you back to @samp{my_identifier}.
-@end quotation
+@end example
 
-This is a very  fast way to do completion, and the  casing of words will
+This is a very fast way to do completion, and the casing of words will
 also be respected.
 
-The second  method is specific to Ada  buffers, and even to  users of the
-Gnat compiler. Emacs will search the cross-information found in the
-@samp{.ali} files generated by Gnat for possible completions.
-
-The  main advantage  is  that  this completion  is  more accurate:  only
-existing identifier  will be  suggested, you don't  need to have  a file
-opened that already contains this identifiers, @enddots{}
+The second method (@key{C-TAB}) is specific to Ada mode and the GNAT
+compiler. Emacs will search the cross-information for possible
+completions.
 
-On the other  hand, this completion is a little  bit slower and requires
-that you  have compiled your file  at least once since  you created that
-identifier.
+The main advantage is that this completion is more accurate: only
+existing identifier will be suggested.
 
-@c -----------------------------------------------------------------------
-@section Summary of commands
-@c -----------------------------------------------------------------------
+On the other hand, this completion is a little bit slower and requires
+that you have compiled your file at least once since you created that
+identifier.
 
 @table @kbd
 @item C-@key{TAB}
 @findex ada-complete-identifier
-Complete accurately current identifier using information in @samp{.ali} file
-(@code{ada-complete-identifier}).
+Complete current identifier using cross-reference information.
 @item M-/
 Complete identifier using buffer information (not Ada-specific).
 @end table
 
-@c -----------------------------------------------------------------------
-@node Index Menu of Subprograms, File Browser, Identifier completion, Top
-@chapter Index Menu of Subprograms
-@c -----------------------------------------------------------------------
-
-You  can   display  a  choice  menu   with  all  procedure/function/task
-declarations in the file and choose an item by mouse click to get to its
-declaration.  This function is  accessible through  the @samp{Ada} menu when
-editing a Ada file, or simply through the following key binding:
-
-@table @kbd
-@item C-S-Mouse-3
-display index menu
-@end table
-
-@c -----------------------------------------------------------------------
-@node File Browser, Automatic Smart Indentation, Index Menu of Subprograms, Top
-@chapter File Browser
-@c -----------------------------------------------------------------------
-
-Emacs provides a special mode, called @code{speedbar}. When this mode is
-activated, a new frame is displayed, with a file browser. The files from
-the current  directory are displayed, and  you can click on  them as you
-would with any file browser. The following commands are then available.
-
-You can click  on a directory name  or file name to open  it. The editor
-will  automatically  select  the  best  possible  mode  for  this  file,
-including of course Ada mode for files written in Ada.
+@node Automatic Smart Indentation, Formatting Parameter Lists, Identifier completion, Top
+@chapter Automatic Smart Indentation
 
-If you click on the @samp{[+]} symbol near a file name, all the symbols (types,
-variables and subprograms)  defined in that file will  be displayed, and
-you  can directly click  on them  to open  the right  file at  the right
-place.
-
-You can activate  this mode by typing @key{M-x  speedbar} in the editor.
-This  will open  a new  frame. A  better way  might be  to  associate the
-following key binding
-
-@example
-(global-set-key [f7]  'speedbar-get-focus)
-@end example
-
-Every time you press @key{F7},  the mouse will automatically move to the
-speedbar frame (which will be created if it does not exist).
-
-@c -----------------------------------------------------------------------
-@node Automatic Smart Indentation, Formatting Parameter Lists, File Browser, Top
-@chapter Automatic Smart Indentation
-@c -----------------------------------------------------------------------
-
-Ada mode  comes with a full set of  rules for automatic indentation.
-You can of course configure the  indentation as you want, by setting the
-value of a few variables.
-
-As  always,  the  preferred  way  to  modify variables  is  to  use  the
-@samp{Ada->Customize} menu  (don't forget  to save your  changes!). This
-will also show you some example of code where this variable is used, and
-hopefully make things clearer.
-
-The relevant variables are the following:
+Ada mode comes with a full set of rules for automatic indentation. You
+can also configure the indentation, via the following variables:
 
 @table @asis
 @item @code{ada-broken-indent}           (default value: 2)
 Number of columns to indent the continuation of a broken line.
 
 @item @code{ada-indent}                  (default value: 3)
-Width of the default indentation.
+Number of columns for default indentation.
 
 @item @code{ada-indent-record-rel-type}  (default value: 3)
 Indentation for @code{record} relative to @code{type} or @code{use}.
@@ -722,7 +1122,7 @@
 @item @code{ada-indent-return}           (default value: 0)
 Indentation for @code{return} relative to @code{function} (if
 @code{ada-indent-return} is greater than 0), or the open parenthesis
-(if @code{ada-indent-return} is negative or null).  Note that in the second
+(if @code{ada-indent-return} is negative or 0).  Note that in the second
 case, when there is no open parenthesis, the indentation is done
 relative to @code{function} with the value of @code{ada-broken-indent}.
 
@@ -741,19 +1141,16 @@
 @item @code{ada-indent-to-open-paren}    (default value: t)
 Non-@code{nil} means indent according to the innermost open parenthesis.
 
-@item @code{ada-indent-after-return}     (default  value: t)
-Non-@code{nil}  means that  the current  line will  also be  re-indented before
-inserting a newline, when you press @key{RET}.
+@item @code{ada-indent-after-return}     (default value: t)
+Non-@code{nil} means that the current line will also be re-indented
+before inserting a newline, when you press @key{RET}.
 @end table
 
-Most of the  time, the indentation will be automatic,  i.e when you will
-press @key{RET},  the cursor will move  to the correct  column on the
+Most of the time, the indentation will be automatic, i.e when you
+press @key{RET}, the cursor will move to the correct column on the
 next line.
 
-However, you might want or  need sometimes to re-indent the current line
-or a set of  lines. For this, you can simply go  to that line, or select
-the lines,  and then press @key{TAB}. This  will automatically re-indent
-the lines.
+You can also indent single lines, or the current region, with @key{TAB}.
 
 Another mode of indentation exists that helps you to set up your
 indentation scheme. If you press @kbd{C-c @key{TAB}}, Ada mode will do
@@ -766,40 +1163,25 @@
 Temporarily move the cursor to a reference line, i.e., the line that
 was used to calculate the current indentation.
 @item
-Display at the bottom of the window the name of the variable that
-provided the offset for the indentation.
+Display in the message window the name of the variable that provided
+the offset for the indentation.
 @end itemize
 
 The exact indentation of the current line is the same as the one for the
 reference line, plus an offset given by the variable.
 
-Once you know the name of the variable, you can either modify it
-through the usual @samp{Ada->Customize} menu, or by typing @kbd{M-x
-customize-variable @key{RET}} in the Emacs window, and then give the
-name of the variable.
-
 @table @kbd
 @item @key{TAB}
 Indent the current line or the current region.
 @item C-M-\
-Indent lines in the current selected block.
+Indent lines in the current region.
 @item C-c @key{TAB}
-Indent the current line and prints the name of the variable used for
+Indent the current line and display the name of the variable used for
 indentation.
 @end table
 
-
-
-@c -----------------------------------------------------------------------
 @node Formatting Parameter Lists, Automatic Casing, Automatic Smart Indentation, Top
 @chapter Formatting Parameter Lists
-@c -----------------------------------------------------------------------
-
-To help you correctly align fields in a subprogram parameter list,
-Emacs provides one function that will do most of the work for you.
-This function will align the declarations on the colon (@samp{:})
-separating argument names and argument types, plus align the
-@code{in}, @code{out} and @code{in out} keywords if required.
 
 @table @kbd
 @item C-c C-f
@@ -807,95 +1189,85 @@
 Format the parameter list (@code{ada-format-paramlist}).
 @end table
 
-@c -----------------------------------------------------------------------
+This aligns the declarations on the colon (@samp{:}) separating
+argument names and argument types, and aligns the @code{in},
+@code{out} and @code{in out} keywords.
+
 @node Automatic Casing, Statement Templates, Formatting Parameter Lists, Top
 @chapter Automatic Casing
-@c -----------------------------------------------------------------------
 
-Casing  of   identifiers,  attributes  and   keywords  is  automatically
-performed while  typing when  the variable @code{ada-auto-case}  is set.
-Every  time   you  press  a   word  separator,  the  previous   word  is
+Casing of identifiers, attributes and keywords is automatically
+performed while typing when the variable @code{ada-auto-case} is set.
+Every time you press a word separator, the previous word is
 automatically cased.
 
-You  can  customize  the  automatic  casing  differently  for  keywords,
-attributes and  identifiers. The  relevant variables are  the following:
-@code{ada-case-keyword},          @code{ada-case-attribute}          and
+You can customize the automatic casing differently for keywords,
+attributes and identifiers. The relevant variables are the following:
+@code{ada-case-keyword}, @code{ada-case-attribute} and
 @code{ada-case-identifier}.
 
 All these variables can have one of the following values:
 
 @table @code
 @item downcase-word
-The  previous word  will simply  be in  all lower  cases.   For instance
-@code{My_vARIable} is converted to @code{my_variable}.
+The word will be lowercase. For instance @code{My_vARIable} is
+converted to @code{my_variable}.
 
 @item upcase-word
-The previous word will be  fully converted to upper cases.  For instance
-@code{My_vARIable} is converted to @code{MY_VARIABLE}.
+The word will be uppercase. For instance @code{My_vARIable} is
+converted to @code{MY_VARIABLE}.
 
 @item ada-capitalize-word
-All letters, except the first one of the word and every letter after the
-@samp{_}  character are  lower cased.  Other  letters are  upper cased.   For
-instance @code{My_vARIable} is converted to @code{My_Variable}.
+The first letter and each letter following an underscore (@samp{_})
+are uppercase, others are lowercase. For instance @code{My_vARIable}
+is converted to @code{My_Variable}.
 
 @item ada-loose-case-word
-No letters are  modified in the previous word, except  the ones after the
-@samp{_} character that are  upper cased.  For instance @code{My_vARIable} is
-converted to @code{My_VARIable}.
+Characters after an underscore @samp{_} character are uppercase,
+others are not modified. For instance @code{My_vARIable} is converted
+to @code{My_VARIable}.
 @end table
 
-These  functions, although they  will work  in most  cases, will  not be
-accurate sometimes. The  Ada mode allows you to  define some exceptions,
-that will always be cased the same way.
+Ada mode allows you to define exceptions to these rules, in a file
+specified by the variable variable @code{ada-case-exception-file}
+(default @file{~/.emacs_case_exceptions}). Each line in this file
+specifies the casing of one word or word fragment. Comments may be
+included, separated from the word by a space.
 
-The idea  is to  create a dictionary  of exceptions,  and store it  in a
-file. This file should contain  one identifier per line, with the casing
-you   want   to   force.   The   default   name   for   this   file   is
-@file{~/.emacs_case_exceptions}.  You can  of course  change  this name,
-through the variable @code{ada-case-exception-file}.
+If the word starts with an asterisk (@key{*}), it defines the casing
+af a word fragemnt (or ``substring''); part of a word between two
+underscores or word boundary.
 
-Note that  each line  in this file  must start  with the key  word whose
-casing  you want  to  specify. The  rest of  the  line can  be used  for
-comments  (explaining  for  instance  what  an  abbreviation  means,  as
-recommended in the Ada 95  Quality and Style, paragraph 3.1.4).  Thus, a
-good example for this file could be:
+For example:
 
 @example
 DOD        Department of Defense
-Text_IO
+*IO
 GNAT       The GNAT compiler from Ada Core Technologies
 @end example
 
-When  working on  project involving  multiple programmers,  we recommend
-that every  member of  the team  sets this variable  to the  same value,
-which  should  point  to  a  system-wide  file that  each  of  them  can
-write.  That  way,  you  will  ensure  that  the  casing  is  consistent
-throughout your application(s).
+The word fragment @code{*IO} applies to any word containing ``_io'';
+@code{Text_IO}, @code{Hardware_IO}, etc.
 
 @findex ada-create-case-exception
-There are two ways to add new items to this file: you can simply edit it
-as you  would edit any  text file, and  add or suppress entries  in this
-file.  Remember that  you should  put one  entity per  line.  The other,
-easier way, is to position the cursor  over the word you want to add, in
-an Ada buffer.  This word should have the casing  you want.  Then simply
-select  the  menu @samp{Ada->Edit->Create  Case  Exception},  or the  key
-@kbd{C-c C-y} (@code{ada-create-case-exception}). The word will
-automatically be added to the current list of exceptions and to the file.
+There are two ways to add new items to this file: you can simply edit
+it as you would edit any text file. Or you can position point on the
+word you want to add, and select menu @samp{Ada | Edit | Create Case
+Exception}, or press @kbd{C-c C-y} (@code{ada-create-case-exception}).
+The word will automatically be added to the current list of exceptions
+and to the file.
 
-It  is sometimes  useful to  have multiple  exception files  around (for
-instance,  one could  be  the  standard Ada  acronyms,  the second  some
-company  specific exceptions,  and the  last one  some  project specific
-exceptions).  If you  set up the variable @code{ada-case-exception-file}
-as a list of  files, each of them will be parsed  and used in your emacs
-session.
+To define a word fragment case exception, select the word fragment,
+then select menu @samp{Ada | Edit | Create Case Exception Substring}.
 
-However, when  you save a new  exception through the  menu, as described
-above, the  new exception will  be added to  the first file in  the list
-only.  You  can not automatically add  an exception to one  of the other
-files, although you can of course edit the files by hand at any time.
-
-Automatic casing can be performed on part of the buffer, or on the
-whole buffer, using:
+It is sometimes useful to have multiple exception files around (for
+instance, one could be the standard Ada acronyms, the second some
+company specific exceptions, and the last one some project specific
+exceptions). If you set up the variable @code{ada-case-exception-file}
+as a list of files, each of them will be parsed and used in your emacs
+session. However, when you save a new exception through the menu, as
+described above, the new exception will be added to the first file in
+the list.
 
 @table @kbd
 @item C-c C-b
@@ -910,16 +1282,12 @@
 @code{ada-case-exception-file} (@code{ada-case-read-exceptions}).
 @end table
 
-@c -----------------------------------------------------------------------
 @node Statement Templates, Comment Handling, Automatic Casing, Top
 @chapter Statement Templates
-@c -----------------------------------------------------------------------
 
-NOTE:  This features  are  not available  on  VMS for  Emacs 19.28.  The
-functions used here do not exist on Emacs 19.28.
-
-Templates exist  for most  Ada statements. They  can be inserted  in the
-buffer using the following commands:
+Templates are defined for most Ada statements, using the Emacs
+``skeleton'' package. They can be inserted in the buffer using the
+following commands:
 
 @table @kbd
 @item C-c t b
@@ -1005,15 +1373,12 @@
 type (@code{ada-type}).
 @end table
 
-@c -----------------------------------------------------------------------
-@node Comment Handling, Compiling Executing, Statement Templates, Top
+@node Comment Handling, Index, Statement Templates, Top
 @chapter Comment Handling
-@c -----------------------------------------------------------------------
 
 By default, comment lines get indented like Ada code. There are a few
 additional functions to handle comments:
 
-
 @table @kbd
 @item M-;
 Start a comment in default column.
@@ -1027,254 +1392,7 @@
 autofill the current comment.
 @end table
 
-@c -----------------------------------------------------------------------
-@node Compiling Executing, Debugging, Comment Handling, Top
-@chapter Compiling Executing
-@c -----------------------------------------------------------------------
-
-Ada mode  provides a much complete environment  for compiling, debugging
-and running an application within Emacs.
-
-All the  commands used  by Emacs to  manipulate your application  can be
-customized in  the project file.  Some default values are  provided, but
-these will  likely not  be good  enough for a  big or  even medium-sized
-project.  See the section on the  project file for an explanation on how
-to set up the commands to use.
-
-One   of   the  variables   you   can   set   in  your   project   file,
-@code{cross_prefix}, indicates whether you are using a cross-compilation
-environment, and if  yes for which target. The  default command used for
-compilation  will add  this @code{cross_prefix}  in front  of  the name:
-@code{gcc}  will become  @code{cross_prefix}-@code{gcc}, @code{gnatmake}
-will become @code{cross_prefix}-@code{gnatmake}, @enddots{}
-
-This  will also modify  the way  your application  is run  and debugged,
-although this is not implemented at the moment.
-
-Here are the commands for building and using an Ada application
-
-@itemize @bullet
-
-@item Compiling the current source
-This command is issued when  issuing the @code{compile} command from the
-Ada  menu. It  compiles  unconditionally the  current  source using  the
-@code{comp_cmd} variable of the project file. Compilation options can be
-customized with the variable @code{comp_opt} of the project file.
-
-Emacs  will  display  a new  buffer  that  contains  the result  of  the
-compilation.  Each line associated with an error will become active: you
-can simply click on it with the  middle button of the mouse, or move the
-cursor  on  it and  press  @key{RET}.  Emacs  will then  display  the
-relevant source file and put the cursor on the line and column the error
-was found at.
-
-You can also simply press the @kbd{C-x `} key and Emacs will jump to the
-first error. If you press that key again, it will move you to the second
-error, and so on.
-
-Some error messages might also include references to some files. These
-references are also clickable in the same way.
-
-
-@item (Re)building the whole application
-This command is issued when you select the @code{build} command from the
-Ada menu.   It compiles  all obsolete units  of the  current application
-using  the @code{make_cmd}  variable  of the  project file.  Compilation
-options  can be  customized  with the  variable  @code{comp_opt} of  the
-project  file, binder  options with  @code{bind_opt} and  linker options
-with @code{link_opt}. The main unit  of the application may be specified
-with @code{main}.
-
-The compilation buffer is also active in the same way it was for the above
-command.
-
-@item Running the application
-This command is  issued when you select the  @code{run} command from the
-Ada   menu.   It   executes  the   current  application   in   an  emacs
-buffer. Arguments can be  passed through before executing. The execution
-buffer allows for interactive input/output.
-
-This   command   is   not   yet   available   in   a   cross-compilation
-toolchain. Emacs  would first need to  log on the  target before running
-the application. This will be implemented in a future release of Gnat.
-
-@end itemize
-
-@c ---------------------------------------------------------------------
-@node Debugging, Using non-standard file names, Compiling Executing, Top
-@chapter Debugging your application
-@c ---------------------------------------------------------------------
-
-You  can set  up in  the project  file a  command to  use to  debug your
-application. Emacs is compatible with a lot of debuggers, and provide an
-easy interface to them.
-
-This section will focus on the  gdb debugger, and two of the graphical
-interfaces that exist for it.
-
-In all  cases, the main  window in  Emacs will be  split in two:  in the
-upper  buffer,  the  source  code  will  appear,  whereas  the  debugger
-input/output  window is  displayed at  the  bottom.  You  can enter  the
-debugger  commands as  usual in  the command  window. Every  time  a new
-source file is  selected by the debugger (for instance as  a result of a
-@code{frame} command),  the appropriate source file is  displayed in the
-upper buffer.
-
-The source window is interactive: you can click on an identifier with the
-right mouse button, and print its value in the debugger window. You can
-also set a breakpoint simply by right-clicking on a line.
-
-You  can easily use  Emacs as  the source  window when  you are  using a
-graphical  interface for the  debugger. The  interesting thing  is that,
-whereas  you still  have the  graphical nifties,  you can  also use the
-cross-references  features that  Ada mode  provides to  look  at the
-definition for the identifiers, @enddots{}
-
-Here is how you  can set up gdbtk and ddd for  use with Emacs (These are
-the commands you should setup in the project file):
-
-@itemize @bullet
-@item gdbtk
-should  be used  with  the  switch @samp{--emacs_gdbtk}.   It  provides a  nice
-backtrace window, as well as a tasks window. You can click interactively
-on both of  them, and Emacs will display the source  file on the correct
-line.
-
-@item ddd (Data Display Debugger)
-should be used with the switches @samp{--tty} and
-@samp{--fullname}. Whenever you print a variable from Emacs, it will
-be displayed graphically in the data window.
-
-@end itemize
-
-
-@c ---------------------------------------------------------------------
-@node Using non-standard file names, Working Remotely, Debugging, Top
-@chapter Using non-standard file names
-@c ---------------------------------------------------------------------
-
-By default, Emacs is configured to  use the GNAT style file names, where
-file names are the package names,  and the extension for spec and bodies
-are respectively @samp{.ads} and @samp{.adb}.
-
-If you  want to  use other  types of file  names, you will need to modify
-your @file{.emacs} file.
-
-Adding new possible extensions is easy. Since Ada mode needs to know
-how to  go from  the body  to the spec  (and back),  you always  have to
-specify  both. A  function  is provided  with  Ada mode  to add  new
-extensions.
-
-For instance, if your spec and bodies files are called
-@file{@var{unit}_s.ada} and @file{@var{unit}_b.ada}, respectively, you
-need to add the following to your @file{.emacs} file:
-
-@example
-(ada-add-extensions "_s.ada" "_b.ada")
-@end example
-
-Note that it is possible to redefine the extensions, even if they already
-exist, as in:
-
-@example
-(ada-add-extensions ".ads" "_b.ada")
-(ada-add-extensions ".ads" ".body")
-@end example
-
-This simply means that whenever the  ada-mode will look for the body for
-a file whose extension is  @file{.ads}, it will take the first available
-file  that ends  with  either @file{.adb}  (standard), @file{_b.ada}  or
-@file{.body}.
-
-If the filename is not the unit name, then things are a little more
-complicated.  You then need to rewrite the function
-@code{ada-make-filename-from-adaname} (see the file @file{ada-mode.el}
-for an example).
-
-@c ---------------------------------------------------------------------
-@node Working Remotely, Index, Using non-standard file names, Top
-@chapter Working Remotely
-@c ---------------------------------------------------------------------
-
-When  you work  on a project  that  involves a  lot of  programmers, it  is
-generally the case that you will edit the files on your own machine, but
-you want to compile, run and debug your application in another buffer.
-
-Fortunately, here too Emacs provides a very convenient way to do this.
-
-@c ---------------------------------------------------------------------
-@section Remote editing
-@c ---------------------------------------------------------------------
-
-First of  all, the files do  not need to  be on your machine.  Emacs can
-edit any  remote file,  by doing transparent  FTP sessions  between your
-machine and the remote machine that stores your files. This is a special
-Emacs mode, called @code{ange-ftp}. To use it, you just have to use a
-slightly different syntax when you open a file.
-
-For instance, if you want to  open the file @file{/work/foo.adb} on the machine
-aleph.gnu.org, where you log in as qwe, you would simply do this:
-
-@example
-C-x C-f /qwe@@aleph.gnu.org:/work/foo.adb @key{RET}
-@end example
-
-@noindent
-i.e., use your name, the name of the machine and the name of the file.
-
-The first time, Emacs will ask  you for a password that it will remember
-until you  close the current Emacs.  Even if the ftp  session times out,
-you won't need to reenter your password.
-
-Every time you save the file, Emacs will upload it to the remote machine
-transparently. No file is modified on the local machine.
-
-@c ---------------------------------------------------------------------
-@section Remote compiling
-@c ---------------------------------------------------------------------
-
-If the  machine you  want to  compile on is  not the  one your  Emacs is
-running  on,  you can  set  the  variable  @code{remote_machine} in  the
-project file for your application.
-
-This  will force  Emacs  to issue  a  @command{rsh} command  for the  compilation,
-instead of  running it on  the local machine. Unfortunately,  this won't
-work on Windows workstations, since this protocol is not supported.
-
-@example
-If  your   @code{remote_machine}  is  aleph.gnu.org   and  the  standard
-compilation command is @code{cd /work/ && gnatmake foo}, then Emacs will
-actually  issue  the  command  @code{rsh  aleph.gnu.org  'cd  /work/  &&
-gnatmake foo'}.
-@end example
-
-The advantage of using the  @code{remote_machine} variable is that it is
-easier to change  that machine without having to  modify the compilation
-command.
-
-Note that if you need to set up some environment variables before the
-compilation, you need to insert a call to the appropriate initialization
-script in the compilation command, for instance:
-
-@example
-build_cmd= initialization_script; cd /work/ && gnatmake foo
-@end example
-
-@c ---------------------------------------------------------------------
-@section Remote running and debugging
-@c ---------------------------------------------------------------------
-
-This feature is not completely implemented yet.
-
-However, most of the time, you will be able to run your application
-remotely simply by replacing it with a @command{rsh} call.
-For instance, if your command was @code{$@{main@}}, you could replace it with
-@code{rsh aleph.gnu.org $@{main@}}.
-
-However, this would not work on vxworks, for instance, where
-@command{rsh} is not supported.
-
-@node Index, , Working Remotely, Top
+@node Index,  , Comment Handling, Top
 @unnumbered Index
 
 @printindex fn
--- a/man/emacs.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/emacs.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -5,7 +5,7 @@
 
 @c The edition number appears in several places in this file
 @set EDITION   Sixteenth
-@set EMACSVER  22.0.90
+@set EMACSVER  22.0.91
 
 @copying
 This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},
@@ -1586,12 +1586,7 @@
 
 @include doclicense.texi
 @include cmdargs.texi
-@iftex
-@include xresmini.texi
-@end iftex
-@ifnottex
 @include xresources.texi
-@end ifnottex
 
 @include anti.texi
 @include macos.texi
--- a/man/erc.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/erc.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -12,7 +12,7 @@
 @syncodeindex fn cp
 
 @copying
-This manual is for ERC version 5.1.4.
+This manual is for ERC version 5.2 stable pre-release.
 
 Copyright @copyright{} 2005, 2006 Free Software Foundation, Inc.
 
@@ -271,7 +271,7 @@
 (require 'erc)
 @end lisp
 
-Once ERC is loaded, the command @kbd{M-x erc-select} will start ERC and
+Once ERC is loaded, the command @kbd{M-x erc} will start ERC and
 prompt for the server to connect to.
 
 @c PRE5_2: Sample session, including:
@@ -520,11 +520,11 @@
 @section Connecting to an IRC Server
 @cindex connecting
 
-The easiest way to connect to an IRC server is to call
-@kbd{M-x erc-select}.  If you want to assign this function to a
-keystroke, the following will help you figure out its parameters.
+The easiest way to connect to an IRC server is to call @kbd{M-x erc}.
+If you want to assign this function to a keystroke, the following will
+help you figure out its parameters.
 
-@defun erc-select
+@defun erc
 Select connection parameters and run ERC.
 Non-interactively, it takes the following keyword arguments.
 
@@ -543,7 +543,7 @@
 parameters.
 
 @example
-(erc-select :server "irc.freenode.net" :full-name "Harry S Truman")
+(erc :server "irc.freenode.net" :full-name "Harry S Truman")
 @end example
 @end defun
 
--- a/man/glossary.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/glossary.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -453,7 +453,7 @@
 directory, but an absolute file name refers to the same file regardless
 of which directory is current.  On GNU and Unix systems, an absolute
 file name starts with a slash (the root directory) or with @samp{~/} or
-@samp{~@var{user}/} (a home directory).  On MS-Windows/MS-DOS, and
+@samp{~@var{user}/} (a home directory).  On MS-Windows/MS-DOS, an
 absolute file name can also start with a drive letter and a colon
 @samp{@var{d}:}.
 
@@ -848,8 +848,8 @@
 
 @item Moving Text
 Moving text means erasing it from one place and inserting it in
-another.  The usual way to move text by killing (q.v.@:) and then
-yanking (q.v.@:).  @xref{Killing}.
+another.  The usual way to move text is by killing (q.v.@:) it and then
+yanking (q.v.@:) it.  @xref{Killing}.
 
 @item MULE
 MULE refers to the Emacs features for editing multilingual non-@acronym{ASCII} text
--- a/man/makefile.w32-in	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/makefile.w32-in	Tue Nov 21 08:56:38 2006 +0000
@@ -147,7 +147,7 @@
 $(infodir)/emacs: $(EMACSSOURCES)
 	$(MAKEINFO) emacs.texi
 
-emacs.dvi: $(EMACSSOURCES) $(srcdir)/xresmini.texi
+emacs.dvi: $(EMACSSOURCES)
 	$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi
 
 # This target is here so you could easily get the list of the *.texi
--- a/man/mh-e.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/mh-e.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -8,12 +8,12 @@
 @c %**end of header
 
 @c Version of the software and manual.
-@set VERSION 8.0.1
+@set VERSION 8.0.3
 @c Edition of the manual. It is either empty for the first edition or
 @c has the form ", nth Edition" (without the quotes).
-@set EDITION 
-@set UPDATED 2006-06-20
-@set UPDATE-MONTH June, 2006
+@set EDITION
+@set UPDATED 2006-11-12
+@set UPDATE-MONTH November, 2006
 
 @c Other variables.
 @set MH-BOOK-HOME http://rand-mh.sourceforge.net/book/mh
@@ -1481,7 +1481,8 @@
 with the following recipe in @file{.procmailrc}:
 
 @smallexample
-MAILDIR=$HOME/mail
+PATH=$PATH:/usr/bin/mh
+MAILDIR=$HOME/`mhparam Path`
 :0:
 * ^From mh-e-devel-admin@@stop.mail-abuse.org
 mh-e
@@ -1560,9 +1561,9 @@
 @cindex modes, MH-Show
 @cindex reading mail
 @findex mh-rmail
-@kindex M-x mh-rmail
 @kindex F r
 @kindex F v
+@kindex M-x mh-rmail
 
 The MH-E entry point for reading mail is @kbd{M-x mh-rmail}. This
 command incorporates your mail and creates a buffer called
@@ -1573,6 +1574,14 @@
 prompt you for folder to visit like @kbd{F v} (for example, @kbd{C-u
 M-x mh-rmail @key{RET} bob @key{RET}}). @xref{Folders}.}.
 
+@findex display-time
+@vindex read-mail-command
+
+There are some commands that need to read mail, such as @kbd{Mouse-2}
+over the @samp{Mail} button that @code{display-time} adds to the mode
+line. You can configure Emacs to have these commands use MH-E by
+setting the option @code{read-mail-command} to @samp{mh-rmail}.
+
 @cindex @command{scan}
 @cindex @samp{Message} menu
 @cindex MH commands, @command{scan}
@@ -2476,6 +2485,13 @@
 the preferred part is shown inline and buttons are shown for each of
 the other alternatives.
 
+@vindex mm-discouraged-alternatives
+
+Many people prefer to see the @samp{text/plain} alternative rather
+than the @samp{text/html} alternative. To do this in MH-E, customize
+the option @code{mm-discouraged-alternatives}, and add
+@samp{text/html}. The next best alternative, if any, will be shown.
+
 @kindex K i
 @findex mh-folder-inline-mime-part
 
@@ -6381,7 +6397,7 @@
 Tool bar location (default: @samp{Same As Default Tool Bar}).
 @c -------------------------
 @item mh-xemacs-use-tool-bar-flag
-If on, use tool bar (default: on, if supported).
+If @samp{on}, use tool bar (default: @samp{on}, if supported).
 @end vtable
 
 In GNU Emacs, icons for some of MH-E's functions are added to the tool
@@ -7559,12 +7575,20 @@
 incorrectly classified as spam. It then refiles the message into the
 @file{+inbox} folder.
 
+@cindex @samp{*MH-E Log*}
+@cindex buffers, @samp{*MH-E Log*}
+@findex call-process
 @vindex mh-junk-background
 
 By default, the programs are run in the foreground, but this can be
 slow when junking large numbers of messages. If you have enough memory
 or don't junk that many messages at the same time, you might try
-turning on the option @code{mh-junk-background}.
+turning on the option @code{mh-junk-background}. @footnote{Note that
+the option @code{mh-junk-background} is used as the @code{display}
+argument in the call to @code{call-process}. Therefore, turning on
+this option means setting its value to @samp{0}. You can also set its
+value to @samp{t} to direct the programs' output to the @samp{*MH-E
+Log*} buffer; this may be useful for debugging.}
 
 The following sections discuss the various counter-spam measures that
 MH-E can work with.
@@ -7590,6 +7614,7 @@
 @cindex header field, @samp{X-Spam-Status:}
 
 @smallexample
+PATH=$PATH:/usr/bin/mh
 MAILDIR=$HOME/`mhparam Path`
 
 # Fight spam with SpamAssassin.
@@ -7712,6 +7737,7 @@
 @cindex header field, @samp{X-Bogosity:}
 
 @smallexample
+PATH=$PATH:/usr/bin/mh
 MAILDIR=$HOME/`mhparam Path`
 
 # Fight spam with Bogofilter.
@@ -7764,6 +7790,7 @@
 @cindex header field, @samp{X-SpamProbe:}
 
 @smallexample
+PATH=$PATH:/usr/bin/mh
 MAILDIR=$HOME/`mhparam Path`
 
 # Fight spam with SpamProbe.
@@ -7803,6 +7830,7 @@
 @cindex header field, @samp{Subject:}
 
 @smallexample
+PATH=$PATH:/usr/bin/mh
 MAILDIR=$HOME/`mhparam Path`
 
 #
@@ -8528,6 +8556,7 @@
 subscribed.
 
 @smallexample
+PATH=$PATH:/usr/bin/mh
 MAILDIR=$HOME/`mhparam Path`
 # Place mail sent to the GnuCash mailing list in gnucash.spool, where
 # Gnus will pick it up.
--- a/man/misc.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/misc.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -486,12 +486,16 @@
 @kbd{C-x @key{RET} p} in the shell buffer.  @xref{Communication
 Coding}.
 
+@cindex @env{INSIDE_EMACS} environment variable
+  Emacs sets the envitonment variable @env{INSIDE_EMACS} to @code{t}
+in the subshell.  Programs can check this variable to determine
+whether they are running inside an Emacs subshell.
+
 @cindex @env{EMACS} environment variable
-  Unless the environment variable @env{EMACS} is already defined,
-Emacs defines it in the subshell, with value equal to Emacs's absolute
-file name.  A shell script
-can check this variable to determine whether it has been run from an
-Emacs subshell.
+  Emacs also sets the @env{EMACS} environment variable to @code{t} if
+it is not already defined.  @strong{Warning:} This environment
+variable is deprecated.  Programs that check this variable should be
+changed to check @env{INSIDE_EMACS} instead.
 
 @node Shell Mode
 @subsection Shell Mode
--- a/man/org.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/org.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -3,20 +3,20 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 4.44
-@set DATE August 2006
+@set VERSION 4.56
+@set DATE November 2006
 
 @dircategory Emacs
 @direntry
-* Org Mode: (org).	outline-based notes management and organizer
+* Org Mode: (org).      outline-based notes management and organizer
 @end direntry
 
 @c Version and Contact Info
 @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage}
 @set AUTHOR Carsten Dominik
 @set MAINTAINER Carsten Dominik
-@set MAINTAINEREMAIL @email{dominik@@science.uva.nl}
-@set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer}
+@set MAINTAINEREMAIL @email{dominik at science dot uva dot nl}
+@set MAINTAINERCONTACT @uref{mailto:dominik at science dot uva dot nl,contact the maintainer}
 @c %**end of header
 @finalout
 
@@ -111,8 +111,7 @@
 * Structure editing::           Changing sequence and level of headlines
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
-* Plain lists::                 Editing hand-formatted lists
-* Checkboxes::                  Easily checking off things.
+* Plain lists::                 Additional structure within an entry
 
 Archiving
 
@@ -143,6 +142,7 @@
 * Internal links::              Links to other places in the current file
 * External links::              URL-like links to the world
 * Handling links::              Creating, inserting and following
+* Link abbreviations::          Shortcuts for writing complex links
 * Search options::              Linking to a specific location
 * Custom searches::             When the default search is not enough
 * Remember::                    Org-trees store quick notes
@@ -157,6 +157,8 @@
 * TODO basics::                 Marking and displaying TODO entries
 * TODO extensions::             Workflow and assignments
 * Priorities::                  Some things are more important than others
+* Breaking down tasks::         Splitting a task into managable pieces
+* Checkboxes::                  Tick-off lists
 
 Extended use of TODO keywords
 
@@ -168,8 +170,13 @@
 
 * Time stamps::                 Assigning a time to a tree entry
 * Creating timestamps::         Commands which insert timestamps
+* Custom time format::          If you cannot work with the ISO format
 * Progress logging::            Documenting when what work was done.
 
+Creating timestamps
+
+* The date/time prompt::        How org-mode helps you entering date and time
+
 Progress Logging
 
 * Closing items::               When was this entry marked DONE?
@@ -189,15 +196,27 @@
 * Global TODO list::            All unfinished action items
 * Matching headline tags::      Structured information with fine-tuned search
 * Timeline::                    Time-sorted view for single file
+* Presentation and sorting::    How agenda items are prepared for display
 * Agenda commands::             Remote editing of org trees
+* Custom agenda views::         Defining special searches and views
 
 The weekly/daily agenda
 
+* Calendar/Diary integration::  Integrating Anniversaries and more
+
+Presentation and sorting
+
 * Categories::                  Not all tasks are equal
 * Time-of-day specifications::  How the agenda knows the time
-* Calendar/Diary integration::  Integrating Anniversaries and more
 * Sorting of agenda items::     The order of things
 
+Custom agenda views
+
+* Storing searches::            Type once, use often
+* Block agenda::                All the stuff you need in a single buffer
+* Setting Options::             Changing the rules
+* Batch processing::            Agenda views from the command line
+
 Embedded LaTeX
 
 * Math symbols::                TeX macros for symbols and Greek letters
@@ -284,20 +303,29 @@
 project planning with a fast and effective plain-text system.
 
 Org-mode develops organizational tasks around NOTES files that contain
-information about projects as plain text.  Org-mode is implemented on
-top of outline-mode, which makes it possible to keep the content of
-large files well structured.  Visibility cycling and structure editing
-help to work with the tree.  Tables are easily created with a built-in
-table editor.  Org-mode supports ToDo items, deadlines, time stamps,
-and scheduling.  It dynamically compiles entries into an agenda that
-utilizes and smoothly integrates much of the Emacs calendar and diary.
-Plain text URL-like links connect to websites, emails, Usenet
-messages, BBDB entries, and any files related to the projects.  For
-printing and sharing of notes, an Org-mode file can be exported as a
+lists or information about projects as plain text.  Org-mode is
+implemented on top of outline-mode, which makes it possible to keep the
+content of large files well structured.  Visibility cycling and
+structure editing help to work with the tree.  Tables are easily created
+with a built-in table editor.  Org-mode supports ToDo items, deadlines,
+time stamps, and scheduling.  It dynamically compiles entries into an
+agenda that utilizes and smoothly integrates much of the Emacs calendar
+and diary.  Plain text URL-like links connect to websites, emails,
+Usenet messages, BBDB entries, and any files related to the projects.
+For printing and sharing of notes, an Org-mode file can be exported as a
 structured ASCII file, as HTML, or (todo and agenda items only) as an
 iCalendar file.  It can also serve as a publishing tool for a set of
 linked webpages.
 
+An important design aspect that distinguishes Org-mode from for example
+Planner/Muse is that it encougages to store every piece of information
+only once.  In Planner, you have project pages, day pages and possibly
+other files, duplicating some information such as tasks.  In Org-mode,
+you only have notes files.  In your notes you mark entries as tasks,
+label them with tags and timestamps.  All necessary lists like a
+schedule for the day, the agenda for a meeting, tasks lists selected by
+tags etc are created dynamically when you need them.
+
 Org-mode keeps simple things simple.  When first fired up, it should
 feel like a straightforward, easy to use outliner.  Complexity is not
 imposed, but a large amount of functionality is available when you need
@@ -310,12 +338,13 @@
 @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities}
 @r{@bullet{} as a TODO list editor}
 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
+@r{@bullet{} as an environment to implement David Allen's GTD system}
 @r{@bullet{} as a simple hypertext system, with HTML export}
 @r{@bullet{} as a publishing tool to create a set of interlinked webpages}
 @end example
 
-The Org-mode table editor can be integrated into any major mode by
-activating the minor Orgtbl-mode.
+Org-mode's automatic, context sensitive table editor can be integrated
+into any major mode by activating the minor Orgtbl-mode.
 
 @cindex FAQ
 There is a website for Org-mode which provides links to the newest
@@ -432,8 +461,8 @@
 including the version information of Emacs (@kbd{C-h v emacs-version
 @key{RET}}) and Org-mode (@kbd{C-h v org-version @key{RET}}), as well as
 the Org-mode related setup in @file{.emacs}.  If an error occurs, a
-traceback can be very useful.  Often a small example file helps, along
-with clear information about:
+backtrace can be very useful (see below on how to create one).  Often a
+small example file helps, along with clear information about:
 
 @enumerate
 @item What exactly did you do?
@@ -442,6 +471,38 @@
 @end enumerate
 @noindent Thank you for helping to improve this mode.
 
+@subsubheading How to create a useful backtrace
+
+@cindex backtrace of an error
+If working with Org-mode produces an error with a message you don't
+understand, you may have hit a bug.  The best way to report this is by
+providing, in addition to what was mentioned above, a @emph{Backtrace}.
+This is information from the built-in debugger about where and how the
+error occurred.  Here is how to produce a useful backtrace:
+
+@enumerate
+@item
+Start a fresh Emacs or XEmacs, and make sure that it will load the
+original Lisp code in @file{org.el} instead of the compiled version in
+@file{org.elc}.  The backtrace contains much more information if it is
+produced with uncompiled code.  To do this, either rename @file{org.elc}
+to something else before starting Emacs, or ask Emacs explicitly to load
+@file{org.el} by using the command line
+@example
+emacs -l /path/to/org.el
+@end example
+@item
+Go to the @code{Options} menu and select @code{Enter Debugger on Error}
+(XEmacs has this option in the @code{Troubleshooting} sub-menu).
+@item
+Do whatever you have to do to hit the error.  Don't forget to
+document the steps you take.
+@item
+When you hit the error, a @file{*Backtrace*} buffer will appear on the
+screen.  Save this buffer to a file (for example using @kbd{C-x C-w}) and
+attach it to your bug report.
+@end enumerate
+
 @node Document structure, Tables, Introduction, Top
 @chapter Document Structure
 @cindex document structure
@@ -458,8 +519,7 @@
 * Structure editing::           Changing sequence and level of headlines
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
-* Plain lists::                 Editing hand-formatted lists
-* Checkboxes::                  Easily checking off things.
+* Plain lists::                 Additional structure within an entry
 @end menu
 
 @node Outlines, Headlines, Document structure, Document structure
@@ -555,6 +615,12 @@
 @kindex C-c C-a
 @item C-c C-a
 Show all.
+@kindex C-c C-r
+@item C-c C-r
+Reveal context around point, showing the current entry, the following
+heading and the hierarchy above.  Useful for working near a location
+exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda
+command (@pxref{Agenda commands}).
 @end table
 
 When Emacs first visits an Org-mode file, the global state is set to
@@ -625,7 +691,9 @@
 the new headline.  If the command is used at the beginning of a
 headline, the new headline is created before the current line.  If at
 the beginning of any other line, the content of that line is made the
-new heading.
+new heading.  If the command is used at the end of a folded subtree
+(i.e. behind the ellipses at the end of a headline), then a headline
+like the current one will be inserted after the end of the subtree.
 @kindex M-S-@key{RET}
 @item M-S-@key{RET}
 Insert new TODO entry with same level as current heading.
@@ -699,9 +767,10 @@
 @itemize @minus
 @item
 It does not open when you attempt to do so with a visibility cycling
-command (@pxref{Visibility cycling}).  You can still open it with a
-normal outline command like @code{show-all}.  Or you can modify the
-option @code{org-cycle-open-archived-trees}.
+command (@pxref{Visibility cycling}).  You can force cycling archived
+subtrees with @kbd{C-@key{TAB}}, or by setting the option
+@code{org-cycle-open-archived-trees}.  Also normal outline commands like
+@code{show-all} will open archived subtrees.
 @item
 During sparse tree construction (@pxref{Sparse trees}), matches in
 archived subtrees are not exposed, unless you configure the option
@@ -716,7 +785,7 @@
 @code{org-export-with-archived-trees}.
 @end itemize
 
-The following commands allow to set or clear the ARCHIVE tag:
+The following commands help managing the ARCHIVE tag:
 
 @table @kbd
 @kindex C-c C-x C-a
@@ -731,6 +800,9 @@
 found, the command offers to set the ARCHIVE tag for the child.  If the
 cursor is @emph{not} on a headline when this command is invoked, the
 level 1 trees will be checked.
+@kindex C-@kbd{TAB}
+@item C-@kbd{TAB}
+Cycle a tree even if it is tagged with ARCHIVE.
 @end table
 
 @node Moving subtrees,  , ARCHIVE tag, Archiving
@@ -790,7 +862,9 @@
 In order to provide minimal context, also the full hierarchy of
 headlines above the match is shown, as well as the headline following
 the match.  Each match is also highlighted; the highlights disappear
-when the buffer is changed with an editing command.
+when the bufer is changes an editing command, or by pressing @kbd{C-c
+C-c}.  When called with a @kbd{C-u} prefix argument, previous highlights
+are kept, so several calls to this command can be stacked.
 @end table
 @noindent
 For frequently used sparse trees of specific search strings, you can
@@ -820,20 +894,17 @@
 Or you can use the command @kbd{C-c C-e v} to export only the visible
 part of the document and print the resulting file.
 
-
-@node Plain lists, Checkboxes, Sparse trees, Document structure
+@node Plain lists,  , Sparse trees, Document structure
 @section Plain lists
 @cindex plain lists
 @cindex lists, plain
 @cindex lists, ordered
 @cindex ordered lists
 
-Headlines define both the structure of the Org-mode file, and also lists
-(for example, TODO items (@pxref{TODO items}) should be created using
-headline levels).  When taking notes, however, the plain text is
-sometimes easier to read with hand-formatted lists.  Org-mode supports
-editing such lists, and the HTML exporter (@pxref{Exporting}) does
-parse and format them.
+Within an entry of the outline tree, hand-formatted lists can provide
+additional structure.  They also provide a way to create lists of
+checkboxes (@pxref{Checkboxes}).  Org-mode supports editing such lists,
+and the HTML exporter (@pxref{Exporting}) does parse and format them.
 
 Org-mode knows ordered and unordered lists.  Unordered list items start
 with @samp{-}, @samp{+}, or @samp{*}@footnote{When using @samp{*} as a
@@ -853,22 +924,22 @@
 @example
 @group
 ** Lord of the Rings
-My favorite scenes are (in this order)
-1. Eowyns fight with the witch king
-   + this was already my favorite scene in the book
-   + I really like Miranda Otto.
-2. The attack of the Rohirrim
-3. Peter Jackson being shot by Legolas
-    - on DVD only
-   He makes a really funny face when it happens.
-But in the end, not individual scenes matter but the film as a whole.
+   My favorite scenes are (in this order)
+   1. The attack of the Rohirrim
+   2. Eowyns fight with the witch king
+      + this was already my favorite scene in the book
+      + I really like Miranda Otto.
+   3. Peter Jackson being shot by Legolas
+       - on DVD only
+      He makes a really funny face when it happens.
+   But in the end, not individual scenes matter but the film as a whole.
 @end group
 @end example
 
 Org-mode supports these lists by tuning filling and wrapping commands to
 deal with them correctly@footnote{Org-mode only changes the filling
 settings for Emacs.  For XEmacs, you should use Kyle E. Jones'
-@file{filladapt.el}.  To turn is on,  put into @file{.emacs}:
+@file{filladapt.el}.  To turn this on,  put into @file{.emacs}:
 @example
 (require 'filladapt)
 @end example
@@ -927,56 +998,6 @@
 the ordered list at the cursor.
 @end table
 
-@page
-@node Checkboxes,  , Plain lists, Document structure
-@section Checkboxes
-@cindex checkboxes
-
-Every item in a plain list (ordered and unordered) can be made a
-checkbox by starting it with the string @samp{[ ]}.  This feature is
-similar to TODO items (@pxref{TODO items}), but more lightweight.
-Checkboxes are not included into the global TODO list, so they are often
-great to split a task into a number of simple steps.  Or you can use
-them in a shopping list to select the items you need to buy.  To toggle
-a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's
-@file{org-mouse.el}.  Here is an example of a checkbox list.
-
-@example
-* Avoid stupid mistakes when distributing a new version
-  - [ ] update also Emacs CVS
-  - [X] forget to update index.html on the website
-  - [X] leaving a `(debug)' form in the code
-@end example
-
-@noindent The following commands work with checkboxes:
-
-@table @kbd
-@kindex C-c C-c
-@item C-c C-c
-Toggle checkbox at point.
-@kindex C-c C-x C-b
-@item C-c C-x C-b
-Toggle checkbox at point.
-@itemize @minus
-@item
-If there is an active region, toggle the first checkbox in the region
-and set all remaining boxes to the same status as the first.  If you
-want to toggle all boxes in the region independently, use a prefix
-argument.
-@item
-If the cursor is in a headline, toggle checkboxes in the region between
-this headline and the next.  This does @emph{not} act on the entire
-subtree, just the current entry.
-@item
-If no active region, just toggle the checkbox at point.
-@end itemize
-@kindex M-S-@key{RET}
-@item M-S-@key{RET}
-Insert a new item with a checkbox.
-This works only if the cursor is already in a plain list item
-(@pxref{Plain lists}).
-@end table
-
 @node Tables, Hyperlinks, Document structure, Top
 @chapter Tables
 @cindex tables
@@ -1020,7 +1041,7 @@
 create the above table, you would only type
 
 @example
-|Name|Phone|Age
+|Name|Phone|Age|
 |-
 @end example
 
@@ -1636,6 +1657,7 @@
 * Internal links::              Links to other places in the current file
 * External links::              URL-like links to the world
 * Handling links::              Creating, inserting and following
+* Link abbreviations::          Shortcuts for writing complex links
 * Search options::              Linking to a specific location
 * Custom searches::             When the default search is not enough
 * Remember::                    Org-trees store quick notes
@@ -1676,6 +1698,7 @@
 @cindex internal links
 @cindex links, internal
 @cindex CamelCase links
+@cindex targets, for links
 
 If the link does not look like a URL, it is considered to be internal in
 the current file.  Links such as @samp{[[My Target]]} or @samp{[[My
@@ -1726,6 +1749,9 @@
 
 @node Radio targets, CamelCase links, Internal links, Internal links
 @subsection Radio targets
+@cindex radio targets
+@cindex targets, radio
+@cindex links, radio targets
 
 You can configure Org-mode to link any occurrences of certain target
 names in normal text.  So without explicitly creating a link, the text
@@ -1744,10 +1770,11 @@
 
 Org-mode also supports CamelCase words as links.  This feature is not
 turned on by default because of the inconsistencies this system suffers
-from.  To activate CamelCase words as links, you need to customize
-the option @code{org-activate-links}.  A CamelCase word then leads to a
-text search such that @samp{CamelCaseLink} is equivalent to
-@samp{[[camel case link]]}.
+from.  It is also possible that this feature will disappear entirely in
+a future version of Org-mode.  To activate CamelCase words as links, you
+need to customize the option @code{org-activate-links}.  A CamelCase
+word then leads to a text search such that @samp{CamelCaseLink} is
+equivalent to @samp{[[camel case link]]}.
 
 @node External links, Handling links, Internal links, Hyperlinks
 @section External links
@@ -1810,8 +1837,9 @@
 @samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of
 the link, enclose them in angular brackets.
 
-@node Handling links, Search options, External links, Hyperlinks
+@node Handling links, Link abbreviations, External links, Hyperlinks
 @section Handling links
+@cindex links, handling
 
 Org-mode provides methods to create a link in the correct syntax, to
 insert it into an org-mode file, and to follow the link.
@@ -1900,7 +1928,9 @@
 
 @kindex mouse-3
 @item mouse-3
-Like @kbd{mouse-2}, but force file links to be opened with Emacs.
+Like @kbd{mouse-2}, but force file links to be opened with Emacs, and
+internal links to be displayed in another window@footnote{See the
+variable @code{org-display-internal-link-with-indirect-buffer}}.
 
 @cindex mark ring
 @kindex C-c %
@@ -1917,8 +1947,57 @@
 previously recorded positions.
 @end table
 
-
-@node Search options, Custom searches, Handling links, Hyperlinks
+@node Link abbreviations, Search options, Handling links, Hyperlinks
+@section Link abbreviatons
+@cindex link abbreviations
+@cindex abbreviation, links
+
+Long URLs can be cumbersome to type, and often many similar links are
+needed in a document.  For this you can use link abbreviations.  An
+abbreviated link looks like this
+
+@example
+[[linkword::tag][description]]
+@end example
+
+@noindent
+where the tag is optional.  Such abbreviations are resolved according to
+the information in the variable @code{org-link-abbrev-alist} that
+relates the linkwords to replacement text.  Here is an example:
+
+@lisp
+@group
+(setq org-link-abbrev-alist
+  '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
+    ("google"   . "http://www.google.com/search?q=")
+    ("ads"      . "http://adsabs.harvard.edu/cgi-bin/
+                   nph-abs_connect?author=%s&db_key=AST")))
+@end group
+@end lisp
+
+If the replacement text contains the string @samp{%s}, it will be
+replaced with the tag.  Otherwise the tag will be appended to the string
+in order to create the link.  You may also specify a function that will
+be called with the tag as the only argument to create the link.
+
+With the above setting, you could link to a specific bug with
+@code{[[bugzilla::129]]}, search the web for OrgMode with
+@code{[[google::OrgMode]]} and find out what the Org-mode author is
+doing besides Emacs hacking with @code{[[ads::Dominik,C]]}.
+
+If you need special abbreviations just for a single Org-mode buffer, you
+can define them in the file with
+
+@example
+#+LINK: bugzilla  http://10.1.2.9/bugzilla/show_bug.cgi?id=
+#+LINK: google    http://www.google.com/search?q=%s
+@end example
+
+@noindent
+In-buffer completion @pxref{Completion} can be used after @samp{[} to
+complete link abbreviations.
+
+@node Search options, Custom searches, Link abbreviations, Hyperlinks
 @section Search options in file links
 @cindex search option in file links
 @cindex file links, searching
@@ -1970,6 +2049,7 @@
 @node Custom searches, Remember, Search options, Hyperlinks
 @section Custom Searches
 @cindex custom search strings
+@cindex search strings, custom
 
 The default mechanism for creating search strings and for doing the
 actual search related to a file link may not work correctly in all
@@ -2101,6 +2181,8 @@
 * TODO basics::                 Marking and displaying TODO entries
 * TODO extensions::             Workflow and assignments
 * Priorities::                  Some things are more important than others
+* Breaking down tasks::         Splitting a task into managable pieces
+* Checkboxes::                  Tick-off lists
 @end menu
 
 @node TODO basics, TODO extensions, TODO items, TODO items
@@ -2264,8 +2346,7 @@
 in the line to make the changes known to Org-mode@footnote{Org-mode
 parses these lines only when Org-mode is activated after visiting a
 file.  @kbd{C-c C-c} with the cursor in a line starting with @samp{#+}
-is simply restarting Org-mode, making sure that these changes will be
-respected.}.
+is simply restarting Org-mode for the current buffer.}.
 
 If you want to use very many keywords, for example when working with a
 large group of people, you may split the names over several lines:
@@ -2277,7 +2358,7 @@
 #+TYP_TODO: DONE
 @end example
 
-@node Priorities,  , TODO extensions, TODO items
+@node Priorities, Breaking down tasks, TODO extensions, TODO items
 @section Priorities
 @cindex priorities
 
@@ -2314,8 +2395,96 @@
 Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}).
 @end table
 
+@node Breaking down tasks, Checkboxes, Priorities, TODO items
+@section Breaking tasks down into subtasks
+@cindex tasks, breaking down
+
+It is often advisable to break down large tasks into smaller, managable
+subtasks.  You can do this by creating an outline tree below a TODO
+item, with detailed subtasks on the tree@footnote{To keep subtasks out
+of the global TODO list, see the
+@code{org-agenda-todo-list-sublevels}.}.  Another possibility is the use
+of checkboxes to identify (a hierarchy of) a large number of subtasks
+(@pxref{Checkboxes}).
+
+
+@node Checkboxes,  , Breaking down tasks, TODO items
+@section Checkboxes
+@cindex checkboxes
+
+Every item in a plain list (@pxref{Plain lists}) can be made a checkbox
+by starting it with the string @samp{[ ]}.  This feature is similar to
+TODO items (@pxref{TODO items}), but more lightweight.  Checkboxes are
+not included into the global TODO list, so they are often great to split
+a task into a number of simple steps.  Or you can use them in a shopping
+list.  To toggle a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's
+@file{org-mouse.el}.  Here is an example of a checkbox list.
+
+@example
+* TODO Organize party [3/6]
+  - call people [1/3]
+    - [ ] Peter
+    - [X] Sarah
+    - [ ] Sam
+  - [X] order food
+  - [ ] think about what music to play
+  - [X] talk to the neighbors
+@end example
+
+@cindex statistics, for checkboxes
+@cindex checkbox statistics
+The @samp{[3/6]} and @samp{[1/3]} in the first and second line are
+cookies indicating how many checkboxes are present in this entry, and
+how many of them have been checked off.  This can give you an idea on
+how many checkboxes remain, even without opening a folded entry.  The
+cookies can be placed into a headline or into (the first line of) a
+plain list item. Each cookie covers all checkboxes structurally below
+that headline/item.  You have to insert the cookie yourself by typing
+either @samp{[/]} or @samp{[%]}.  In the first case you get an @samp{n
+out of m} result, in the second case you get information about the
+percentage of checkboxes checked (in the above example, this would be
+@samp{[50%]} and @samp{[33%], respectively}).
+
+@noindent The following commands work with checkboxes:
+
+@table @kbd
+@kindex C-c C-c
+@item C-c C-c
+Toggle checkbox at point.
+@kindex C-c C-x C-b
+@item C-c C-x C-b
+Toggle checkbox at point.
+@itemize @minus
+@item
+If there is an active region, toggle the first checkbox in the region
+and set all remaining boxes to the same status as the first.  If you
+want to toggle all boxes in the region independently, use a prefix
+argument.
+@item
+If the cursor is in a headline, toggle checkboxes in the region between
+this headline and the next (so @emph{not} the entire subtree).
+@item
+If there is no active region, just toggle the checkbox at point.
+@end itemize
+@kindex M-S-@key{RET}
+@item M-S-@key{RET}
+Insert a new item with a checkbox.
+This works only if the cursor is already in a plain list item
+(@pxref{Plain lists}).
+@kindex C-c #
+@item C-c #
+Update the checkbox statistics in the current outline entry.  When
+called with a @kbd{C-u} prefix, update the entire file.  Checkbox
+statistic cookies are updated automatically if you toggle checkboxes
+with @kbd{C-c C-c} and make new ones with @kbd{M-S-@key{RET}}.  If you
+delete boxes or add/change them by hand, use this command to get things
+back into synch.  Or simply toggle any checkbox twice with @kbd{C-c C-c}.
+@end table
+
 @node Timestamps, Tags, TODO items, Top
 @chapter Timestamps
+@cindex time stamps
+@cindex date stamps
 
 Items can be labeled with timestamps to make them useful for project
 planning.
@@ -2323,6 +2492,7 @@
 @menu
 * Time stamps::                 Assigning a time to a tree entry
 * Creating timestamps::         Commands which insert timestamps
+* Custom time format::          If you cannot work with the ISO format
 * Progress logging::            Documenting when what work was done.
 @end menu
 
@@ -2336,10 +2506,12 @@
 @cindex scheduling
 
 A time stamp is a specification of a date (possibly with time) in a
-special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
-Tue 09:39>}.  A time stamp can appear anywhere in the headline or body
-of an org-tree entry.  Its presence allows entries to be shown on specific
-dates in the agenda (@pxref{Weekly/Daily agenda}).  We distinguish:
+special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue
+09:39>}@footnote{This is the standard ISO date/time format.  If you
+cannot get used to these, see @ref{Custom time format}}.  A time stamp
+can appear anywhere in the headline or body of an org-tree entry.  Its
+presence allows entries to be shown on specific dates in the agenda
+(@pxref{Weekly/Daily agenda}).  We distinguish:
 
 @table @var
 @item Plain time stamp
@@ -2350,6 +2522,21 @@
 happened.  In the timeline and agenda displays, the headline of an entry
 associated with a plain time stamp will be shown exactly on that date.
 
+@example
+* Meet Peter at the movies <2006-11-01 Wed 19:15>
+@end example
+
+@item Inactive time stamp
+@cindex timestamp, inactive
+@cindex inactive timestamp
+Just like a plain time stamp, but with square brackets instead of
+angular ones.  These time stamps are inactive in the sense that they do
+@emph{not} trigger an entry to show up in the agenda.
+
+@example
+* Gillian comes late for the fifth time [2006-11-01 Wed]
+@end example
+
 @item Time stamp range
 @cindex timerange
 Two time stamps connected by @samp{--} denote a time range.  The
@@ -2406,7 +2593,7 @@
 brackets instead of angular brackets.  @xref{Clocking work time}.
 @end table
 
-@node Creating timestamps, Progress logging, Time stamps, Timestamps
+@node Creating timestamps, Custom time format, Time stamps, Timestamps
 @section Creating timestamps
 @cindex creating timestamps
 @cindex timestamps, creating
@@ -2445,8 +2632,8 @@
 
 @kindex C-c C-o
 @item C-c C-o
-Access the agenda for the date given by the time stamp at point
-(@pxref{Weekly/Daily agenda}).
+Access the agenda for the date given by the time stamp or -range at
+point (@pxref{Weekly/Daily agenda}).
 
 @kindex C-c C-d
 @item C-c C-d
@@ -2480,11 +2667,11 @@
 @kindex S-@key{down}
 @item S-@key{up}
 @itemx S-@key{down}
-Change the item under the cursor in a timestamp.  The cursor can be on
-a year, month, day, hour or minute.  Note that if the cursor is not at
-a time stamp, these same keys modify the priority of an item.
-(@pxref{Priorities}). The key bindings also conflict with CUA-mode
-(@pxref{Conflicts}).
+Change the item under the cursor in a timestamp.  The cursor can be on a
+year, month, day, hour or minute.  Note that if the cursor is in a
+headline and not at a time stamp, these same keys modify the priority of
+an item.  (@pxref{Priorities}). The key bindings also conflict with
+CUA-mode (@pxref{Conflicts}).
 
 
 @kindex C-c C-y
@@ -2495,15 +2682,42 @@
 into the following column).
 @end table
 
+
+@menu
+* The date/time prompt::        How org-mode helps you entering date and time
+@end menu
+
+@node The date/time prompt,  , Creating timestamps, Creating timestamps
+@subsection The date/time prompt
 @cindex date, reading in minibuffer
 @cindex time, reading in minibuffer
+
+When Org-mode prompts for a date/time, the prompt suggests to enter an
+ISO date.  But it will in fact accept any string containing some date
+and/or time information.  You can, for example, use @kbd{C-y} to paste a
+(possibly multi-line) string copied from an email message.  Org-mode
+will find whatever information is in there and will replace anything not
+specified with the current date and time.  For example:
+
+@example
+  3-2-5         --> 2003-02-05
+  feb 15        --> currentyear-02-15
+  sep 12 9      --> 2009-09-12
+  12:45         --> today 12:45
+  22 sept 0:34  --> currentyear-09-22 0:34
+  12            --> currentyear-currentmonth-12
+  Fri           --> nearest Friday (today or later)
+@end example
+
+The function understands English month and weekday abbreviations.  If
+you want to use unabbreviated names and/or other languages, configure
+the variables @code{parse-time-months} and @code{parse-time-weekdays}.
+
 @cindex calendar, for selecting date
-When Org-mode prompts for a date/time, the function reading your input
-will replace anything you choose not to specify with the current date
-and time.  For details, see the documentation string of
-@command{org-read-date}.  Also, a calender will pop up to allow
-selecting a date.  The calendar can be fully controlled from the
-minibuffer, and a date can be selected with the following commands:
+Parallel to the minibuffer prompt, a calendar is popped up@footnote{If
+you don't need/want the calendar, configure the variable
+@code{org-popup-calendar-for-date-prompt}.}.  You can control the
+calendar fully from the minibuffer:
 
 @table @kbd
 @kindex <
@@ -2535,10 +2749,53 @@
 One month back.
 @kindex @key{RET}
 @item @key{RET}
-Choose date in calendar (only if nothing typed into minibuffer).
+Choose date in calendar (only if nothing was typed into minibuffer).
+@end table
+
+@node Custom time format, Progress logging, Creating timestamps, Timestamps
+@section Custom time format
+@cindex custom date/time format
+@cindex time format, custom
+@cindex date format, custom
+
+Org-mode uses the standard ISO notation for dates and times as it is
+defined in ISO 8601.  If you cannot get used to this and require another
+representation of date and time to keep you happy, you can get it by
+customizing the variables @code{org-display-custom-times} and
+@code{org-time-stamp-custom-formats}.
+
+@table @kbd
+@kindex C-c C-x C-t
+@item C-c C-x C-t
+Toggle the display of custom formats for dates and times.
 @end table
 
-@node Progress logging,  , Creating timestamps, Timestamps
+@noindent
+Org-mode needs the default format for scanning, so the custom date/time
+format does not @emph{replace} the default format - instead it is put
+@emph{over} the default format using text properties.  This has the
+following consequences:
+@itemize @bullet
+@item 
+You cannot place the cursor onto a time stamp anymore, only before or
+after.
+@item
+The @kbd{S-@key{up}/@key{down}} keys can no longer be used to adjust
+each component of a time stamp.  If the cursor is at the beginning of
+the stamp, @kbd{S-@key{up}/@key{down}} will change the stamp by one day,
+just like @kbd{S-@key{left}/@key{right}}.  At the end of the stamp, the
+time will be changed by one minute.
+@item
+When you delete a time stamp character-by-character, it will only
+disappear from the buffer after @emph{all} (invisible) characters
+belonging to the ISO timestamp have been removed.
+@item
+If the custom time stamp format is longer than the default and you are
+using dates in tables, table alignment will be messed up.  If the custom
+format is shorter, things do work as expected.
+@end itemize
+
+@node Progress logging,  , Custom time format, Timestamps
 @section Progress Logging
 @cindex progress logging
 @cindex logging, of progress
@@ -2572,6 +2829,8 @@
 (@pxref{Timeline}) and in the agenda (@pxref{Weekly/Daily agenda}),
 you can then use the @kbd{l} key to display the TODO items closed on
 each day, giving you an overview of what has been done on a day.
+See the variable @code{org-log-done} for the possibility to record an
+additional note together with a timestamp.
 
 @node Clocking work time,  , Closing items, Progress logging
 @subsection Clocking work time
@@ -2592,7 +2851,8 @@
 Stop the clock (clock-out).  The inserts another timestamp at the same
 location where the clock was last started.  It also directly computes
 the resulting time in inserts it after the time range as @samp{=>
-HH:MM}.  
+HH:MM}.  See the variable @code{org-log-done} for the possibility to
+record an additional note together with the clock-out time stamp.
 @kindex C-c C-y
 @item C-c C-y
 Recompute the time interval after changing one of the time stamps.  This
@@ -2612,7 +2872,8 @@
 puts overlays at the end of each headline, showing the total time
 recorded under that heading, including the time of any subheadings. You
 can use visibility cycling to study the tree, but the overlays disappear
-automatically when the buffer is changed.
+when you change the buffer (see variable
+@code{org-remove-highlights-with-change}) or press @kbd{C-c C-c}.
 @kindex C-c C-x C-r
 @item C-c C-x C-r
 Insert a dynamic block (@pxref{Dynamic blocks}) containing a clock
@@ -2685,6 +2946,7 @@
 @node Tag inheritance, Setting tags, Tags, Tags
 @section Tag inheritance
 @cindex inheritance, of tags
+@cindex sublevels, inclusion into tags match
 
 @i{Tags} make use of the hierarchical structure of outline trees.  If a
 heading has a certain tag, all subheadings will inherit the tag as
@@ -2709,6 +2971,7 @@
 @node Setting tags, Tag searches, Tag inheritance, Tags
 @section Setting tags
 @cindex setting tags
+@cindex tags, setting
 
 @kindex M-@key{TAB}
 Tags can simply be typed into the buffer at the end of a headline.
@@ -2732,18 +2995,26 @@
 default this list is constructed dynamically, containing all tags
 currently used in the buffer.  You may also globally specify a hard list
 of tags with the variable @code{org-tag-alist}.  Finally you can set
-the allowed tags for a given file with lines like
+the default tags for a given file with lines like
 
 @example
 #+TAGS: @@WORK @@HOME @@TENNISCLUB
 #+TAGS: Laptop Car PC Sailboat
 @end example
 
-The default support method is minibuffer completion.  However, Org-mode
-also implements a much better method: @emph{fast tag selection}.  This
-method allows to select and deselect tags with a single key per tag.  To
-function efficiently, you should assign unique keys to all tags.  This
-can be done globally with
+If you have globally defined your preferred set of tags using the
+variable @code{org-tag-alist}, but would like to use a dynamic tag list
+in a specific file: Just add an empty TAGS option line to that file:
+
+@example
+#+TAGS:
+@end example
+
+The default support method for entering tags is minibuffer completion.
+However, Org-mode also implements a much better method: @emph{fast tag
+selection}.  This method allows to select and deselect tags with a
+single key per tag.  To function efficiently, you should assign unique
+keys to most tags.  This can be done globally with
 
 @lisp
 (setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l)))
@@ -2774,32 +3045,57 @@
 If at least one tag has a selection key, pressing @kbd{C-c C-c} will
 automatically present you with a special interface, listing inherited
 tags, the tags of the current headline, and a list of all legal tags
-with corresponding keys@footnote{Keys will automatically assigned to
-tags which have no configured keys.}.  Pressing keys for the tags will
-add or remove them from the list of tags in the current line.  Selecting
-a tag in a group of mutually exclusive tags will turn off any other tags
-from that group.  @key{SPC} clears all tags for this line, @kbd{RET}
-accepts the modified set, and @kbd{C-g} aborts without installing
-changes.  This method lets you assign tags to a headline with very few
-keys.  With the above setup, you could clear the current tags and set
-@samp{@@HOME}, @samp{Laptop} and @samp{PC} tags with just the following
-keys: @kbd{C-c C-c @key{SPC} h l p @key{RET}}.  Switching from
-@samp{@@HOME} to @samp{@@WORK} would be done with @kbd{C-c C-c w
-@key{RET}}.
-
-What if you have globally defined your preferred set of tags using the
-variable @code{org-tag-alist}, but would like to use a dynamic tag list
-in a specific file?  Just add an empty TAGS option line to that file:
-
-@example
-#+TAGS:
-@end example
-
-
+with corresponding keys@footnote{Keys will automatically be assigned to
+tags which have no configured keys.}.  In this interface, you can use
+the following keys:
+
+@table @kbd
+@item a-z...
+Pressing keys assigned to tags will add or remove them from the list of
+tags in the current line.  Selecting a tag in a group of mutually
+exclusive tags will turn off any other tags from that group.
+@kindex @key{TAB}
+@item @key{TAB}
+Enter a tag in the minibuffer, even if the tag is not in the predefined
+list.  You will be able to complete on all tags present in the buffer.
+@kindex @key{SPC}
+@item @key{SPC}
+Clear all tags for this line.
+@kindex @key{RET}
+@item @key{RET}
+Accept the modified set.
+@item C-g
+Abort without installing changes.
+@item q
+If @kbd{q} is not assigned to a tag, it aborts like @kbd{C-g}.
+@item !
+Turn off groups of mutually exclusive tags.  Use this to (as an
+exception) assign several tags from such a group.
+@item C-c
+Toggle auto-exit after the next change (see below).
+@end table
+
+@noindent
+This method lets you assign tags to a headline with very few keys.  With
+the above setup, you could clear the current tags and set @samp{@@HOME},
+@samp{Laptop} and @samp{PC} tags with just the following keys: @kbd{C-c
+C-c @key{SPC} h l p @key{RET}}.  Switching from @samp{@@HOME} to
+@samp{@@WORK} would be done with @kbd{C-c C-c w @key{RET}} or
+alternatively with @kbd{C-c C-c C-c w}.  Adding the non-predefined tag
+@samp{Sarah} could be done with @kbd{C-c C-c @key{TAB} S a r a h
+@key{RET} @key{RET}}.
+
+If you find that most of the time, you need only a single keypress to
+modify your list of tags, set the variable
+@code{org-fast-tag-selection-single-key}.  Then you no longer have to
+press @key{RET} to exit fast tag selection - it will immediately exit
+after the first change.  If you then occasionally need more keys, press
+@kbd{C-c} to turn off auto-exit for the current tag selection process.
 
 @node Tag searches,  , Setting tags, Tags
 @section Tag searches
 @cindex tag searches
+@cindex searching for tags
 
 Once a tags system has been set up, it can be used to collect related
 information into special lists.
@@ -2819,17 +3115,45 @@
 @code{org-tags-match-list-sublevels}).
 @end table
 
+@cindex Boolean logic, for tag searches
 A @i{tags} search string can use Boolean operators @samp{&} for AND and
 @samp{|} for OR.  @samp{&} binds more strongly than @samp{|}.
 Parenthesis are currently not implemented.  A tag may also be preceded
 by @samp{-}, to select against it, and @samp{+} is syntactic sugar for
 positive selection.  The AND operator @samp{&} is optional when @samp{+}
-or @samp{-} is present.  For example, @samp{+WORK-BOSS} would select all
-headlines that are tagged @samp{:WORK:}, but discard those also tagged
-@samp{:BOSS:}.  The search string @samp{WORK|LAPTOP} selects all lines
-tagged @samp{:WORK:} or @samp{:LAPTOP:}.  The string
-@samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are
-also tagged @samp{NIGHT}.
+or @samp{-} is present.  Examples:
+
+@table @samp
+@item +WORK-BOSS
+Select all headlines that are tagged @samp{:WORK:}, but discard those also tagged
+@samp{:BOSS:}.
+@item WORK|LAPTOP
+Selects lines tagged @samp{:WORK:} or @samp{:LAPTOP:}.
+@item WORK|LAPTOP&NIGHT
+Like the previous example, but require  the @samp{:LAPTOP:} lines to be
+tagged also @samp{NIGHT}.
+@end table
+
+@cindex TODO keyword matching, with tags search
+If you are using multi-state TODO keywords (@pxref{TODO extensions}), it
+can be useful to also match on the TODO keyword.  This can be done by
+adding a condition after a slash to a tags match.  The syntax is similar
+to the tag matches, but should be applied with consideration: For
+example, a positive selection on several TODO keywords can not
+meaningfully be combined with boolean AND.  However, @emph{negative
+selection} combined with AND can be meaningful.  Examples:
+
+@table @samp
+@item WORK/WAITING
+Select @samp{:WORK:}-tagged TODO lines with the specific TODO
+keyword @samp{WAITING}.
+@item WORK/-WAITING-NEXT
+Select @samp{:WORK:}-tagged TODO lines that are neither @samp{WAITING}
+nor @samp{NEXT}
+@item WORK/+WAITING|+NEXT
+Select @samp{:WORK:}-tagged TODO lines that are either @samp{WAITING} or
+@samp{NEXT}.
+@end table
 
 @node Agenda views, Embedded LaTeX, Tags, Top
 @chapter Agenda Views
@@ -2842,7 +3166,7 @@
 sorted and displayed in an organized way.
 
 Org-mode can select items based on various criteria, and display them
-in a separate buffer.  Three different views are provided:
+in a separate buffer.  Five different view types are provided:
 
 @itemize @bullet
 @item
@@ -2850,17 +3174,28 @@
 for specific dates
 @item
 a @emph{TODO list} that covers all unfinished
-action items, and
+action items,
 @item
 a @emph{tags view} that shows information based on
-the tags associated with headlines in the outline tree.
+the tags associated with headlines in the outline tree,
+@item
+a @emph{timeline view} that shows all events in a single Org-mode file,
+in time-sorted view
+@item
+@emph{custom views} that are special tag and keyword searches and
+combinations of different views.
 @end itemize
 
 @noindent
 The extracted information is displayed in a special @emph{agenda
 buffer}.  This buffer is read-only, but provides commands to visit the
 corresponding locations in the original Org-mode files, and even to
-edit these files remotely.
+edit these files remotely.  
+
+Two variables control how the agenda buffer is displayed and whether the
+window configuration is restored when the agenda exits:
+@code{org-agenda-window-setup} and
+@code{org-agenda-restore-windows-after-quit}.
 
 @menu
 * Agenda files::                Files being searched for agenda information
@@ -2869,18 +3204,22 @@
 * Global TODO list::            All unfinished action items
 * Matching headline tags::      Structured information with fine-tuned search
 * Timeline::                    Time-sorted view for single file
+* Presentation and sorting::    How agenda items are prepared for display
 * Agenda commands::             Remote editing of org trees
+* Custom agenda views::         Defining special searches and views
 @end menu
 
 @node Agenda files, Agenda dispatcher, Agenda views, Agenda views
 @section Agenda files
+@cindex agenda files
+@cindex files for agenda
 
 The information to be shown is collected from all @emph{agenda files},
 the files listed in the variable @code{org-agenda-files}@footnote{If the
 value of that variable is not a list, but a single file name, then the
 list of agenda files will be maintained in that external file.}.  Thus even
 if you only work with a single Org-mode file, this file should be put
-into that list@footnote{When using the dispatcher pressing @kbd{1}
+into that list@footnote{When using the dispatcher, pressing @kbd{1}
 before selecting a command will actually limit the command to the
 current file, and ignore @code{org-agenda-files} until the next
 dispatcher command.}.  You can customize @code{org-agenda-files}, but
@@ -2909,8 +3248,6 @@
 @section The agenda dispatcher
 @cindex agenda dispatcher
 @cindex dispatching agenda commands
-@cindex custom agenda commands
-@cindex agenda commands, custom
 The views are created through a dispatcher that should be bound to a
 global key, for example @kbd{C-c a} (@pxref{Installation}).  In the
 following we will assume that @kbd{C-c a} is indeed how the dispatcher
@@ -2925,44 +3262,32 @@
 @item m / M
 Create a list of headlines matching a TAGS expression (@pxref{Matching
 headline tags}).
+@item L
+Create the timeline view for the current buffer (@pxref{Timeline}).
+@item 1
+Restrict an agenda command to the current buffer.  After pressing
+@kbd{1}, you still need to press the character selecting the command.
+@item 0
+If there is an active region, restrict the following agenda command to
+the region.  Otherwise, restrict it to the current subtree.  After
+pressing @kbd{0}, you still need to press the character selecting the
+command.
 @end table
 
-You can also define custom commands that will be accessible through
-the dispatcher, just like the default commands.  Custom commands are
-global searches for tags and specific TODO keywords, or a variety of
-sparse tree creating commands (@pxref{Sparse trees}).  As sparse trees
-are only defined for a single org-mode file, these latter commands act
-on the current buffer instead of the list of agenda files.
-
-@kindex C-c a C
-Custom commands are configured in the variable
-@code{org-agenda-custom-commands}.  You can customize this variable,
-for example by pressing @kbd{C-c a C}.  You can also directly set it
-with Emacs Lisp in @file{.emacs}.  For example:
-
-@lisp
-(setq org-agenda-custom-commands
-      '(("w" todo "WAITING")
-        ("u" tags "+BOSS-URGENT")
-        ("U" tags-tree "+BOSS-URGENT")
-        ("f" occur-tree "\\<FIXME\\>")))
-@end lisp
-
-@noindent will define @kbd{C-c a w} as a global search for
-TODO entries with @samp{WAITING} as the TODO keyword, @kbd{C-c a u} as a
-global tags search for headlines marked @samp{:BOSS:} but not
-@samp{:URGENT:}, @kbd{C-c a U} to do the same search but only in the
-current buffer and display the result as a sparse tree, and @kbd{C-c a
-f} to create a sparse tree with all entries containing the word
-@samp{FIXME}.  For more information, look at the documentation string
-of the variable @code{org-agenda-custom-commands}.
+You can also define custom commands that will be accessible through the
+dispatcher, just like the default commands.  This includes the
+possibility to create extended agenda buffers that contain several
+blocks together, for example the weekly agenda, the global TODO list and
+a number of special tags matches.  @xref{Custom agenda views}.
 
 @node Weekly/Daily agenda, Global TODO list, Agenda dispatcher, Agenda views
 @section The weekly/daily agenda
 @cindex agenda
-
-The purpose of the weekly/daily @emph{agenda} is to act like a page of
-a paper agenda, showing all the tasks for the current week or day.
+@cindex weekly agenda
+@cindex daily agenda
+
+The purpose of the weekly/daily @emph{agenda} is to act like a page of a
+paper agenda, showing all the tasks for the current week or day.
 
 @table @kbd
 @cindex org-agenda, command
@@ -2981,78 +3306,11 @@
 commands}.
 
 @menu
-* Categories::                  Not all tasks are equal
-* Time-of-day specifications::  How the agenda knows the time
 * Calendar/Diary integration::  Integrating Anniversaries and more
-* Sorting of agenda items::     The order of things
 @end menu
 
-@node Categories, Time-of-day specifications, Weekly/Daily agenda, Weekly/Daily agenda
-@subsection Categories
-
-@cindex category
-In the agenda buffer, each entry is preceded by a @emph{category},
-which is derived from the file name.  The category can also be set
-with a special line anywhere in the buffer, looking like this:
-
-@example
-#+CATEGORY: Thesis
-@end example
-
-If there are several such lines in a file, each specifies the category
-for the text below it (but the first category also applies to any text
-before the first CATEGORY line).  The display in the agenda buffer looks
-best if the category is not longer than 10 characters.
-
-@node Time-of-day specifications, Calendar/Diary integration, Categories, Weekly/Daily agenda
-@subsection Time-of-Day Specifications
-
-Org-mode checks each agenda item for a time-of-day specification.  The
-time can be part of the time stamp that triggered inclusion into the
-agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}.  Time
-ranges can be specified with two time stamps, like
-@c
-@w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
-
-In the headline of the entry itself, a time(range) may also appear as
-plain text (like @samp{12:45} or a @samp{8:30-1pm}.  If the agenda
-integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
-specifications in diary entries are recognized as well.
-
-For agenda display, Org-mode extracts the time and displays it in a
-standard 24 hour format as part of the prefix.  The example times in
-the previous paragraphs would end up in the agenda like this:
-
-@example
-    8:30-13:00 Arthur Dent lies in front of the bulldozer
-   12:45...... Ford Prefect arrives and takes Arthur to the pub
-   19:00...... The Vogon reads his poem
-   20:30-22:15 Marwin escorts the Hitchhikers to the bridge
-@end example
-
-If the agenda is in single-day mode, or for the display of today, the
-timed entries are embedded in a time grid, like
-
-@example
-    8:00...... ------------------
-    8:30-13:00 Arthur Dent lies in front of the bulldozer
-   10:00...... ------------------
-   12:00...... ------------------
-   12:45...... Ford Prefect arrives and takes Arthur to the pub
-   14:00...... ------------------
-   16:00...... ------------------
-   18:00...... ------------------
-   19:00...... The Vogon reads his poem
-   20:00...... ------------------
-   20:30-22:15 Marwin escorts the Hitchhikers to the bridge
-@end example
-
-The time grid can be turned on and off with the variable
-@code{org-agenda-use-time-grid}, and can be configured with
-@code{org-agenda-time-grid}.
-
-
-@node Calendar/Diary integration, Sorting of agenda items, Time-of-day specifications, Weekly/Daily agenda
+
+@node Calendar/Diary integration,  , Weekly/Daily agenda, Weekly/Daily agenda
 @subsection Calendar/Diary integration
 @cindex calendar integration
 @cindex diary integration
@@ -3083,24 +3341,6 @@
 calendars, respectively.  @kbd{c} can be used to switch back and forth
 between calendar and agenda.
 
-@node Sorting of agenda items,  , Calendar/Diary integration, Weekly/Daily agenda
-@subsection Sorting of agenda items
-@cindex sorting, of agenda items
-@cindex priorities, of agenda items
-The entries for each day are sorted.  The default order is to first
-collect all items containing an explicit time-of-day specification.
-These entries will be shown at the beginning of the list, as a
-@emph{schedule} for the day.  After that, items remain grouped in
-categories, in the sequence given by @code{org-agenda-files}.  Within
-each category, items are sorted by priority (@pxref{Priorities}).
-
-The priority is a numerical quantity composed of the base priority
-(2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
-plus additional increments for overdue scheduled or deadline items.
-
-Sorting can be customized using the variable
-@code{org-agenda-sorting-strategy}.
-
 
 @node Global TODO list, Matching headline tags, Weekly/Daily agenda, Agenda views
 @section The global TODO list
@@ -3119,6 +3359,7 @@
 the TODO entries directly from that buffer (@pxref{Agenda commands}).
 @kindex C-c a T
 @item C-c a T
+@cindex TODO keyword matching
 Like the above, but allows selection of a specific TODO keyword.  You can
 also do this by specifying a prefix argument to @kbd{C-c a t}.  With a
 @kbd{C-u} prefix you are prompted for a keyword.  With a numeric
@@ -3127,14 +3368,17 @@
 The @kbd{r} key in the agenda buffer regenerates it, and you can give
 a prefix argument to this command to change the selected TODO keyword,
 for example @kbd{3 r}.  If you often need a search for a specific
-keyword, define a custom command for it (@pxref{Agenda dispatcher}).
+keyword, define a custom command for it (@pxref{Agenda dispatcher}).@*
+Matching specific TODO keywords can also be done as part of a tags
+search (@pxref{Tag searches}).
 @end table
 
 Remote editing of TODO items means that you can change the state of a
 TODO entry with a single key press.  The commands available in the
 TODO list are described in @ref{Agenda commands}.
 
-Nomally the global todo list simply shows all headlines with TODO
+@cindex sublevels, inclusion into todo list
+Normally the global todo list simply shows all headlines with TODO
 keywords.  This list can become very long.  There are two ways to keep
 it more compact:
 @itemize @minus
@@ -3150,7 +3394,6 @@
 @code{org-agenda-todo-list-sublevels} to get this behavior.
 @end itemize
 
-
 @node Matching headline tags, Timeline, Global TODO list, Agenda views
 @section Matching headline tags
 @cindex matching, of tags
@@ -3172,29 +3415,25 @@
 @item C-c a M
 Like @kbd{C-c a m}, but only select headlines that are also TODO items
 and force checking subitems (see variable
-@code{org-tags-match-list-sublevels}.
+@code{org-tags-match-list-sublevels}).  Matching specific todo keywords
+together with a tags match is also possible, see @ref{Tag searches}.
 @end table
 
 The commands available in the tags list are described in @ref{Agenda
 commands}.
 
-@node Timeline, Agenda commands, Matching headline tags, Agenda views
+@node Timeline, Presentation and sorting, Matching headline tags, Agenda views
 @section Timeline for a single file
-@cindex single file summary
-@cindex agenda, for single file
 @cindex timeline, single file
 @cindex time-sorted view
 
-The timeline is not really an agenda view, because it only summarizes
-items from a single Org-mode file.  But it also uses the agenda buffer
-and provides similar commands, so we discuss it here.  The timeline
-shows all time-stamped items in a single Org-mode file (or the
-selected part of it), in a @emph{time-sorted view}.  The main purpose of
-this command is to give an overview over events in a project.
+The timeline summarizes all time-stamped items from a single Org-mode
+file in a @emph{time-sorted view}.  The main purpose of this command is
+to give an overview over events in a project.
 
 @table @kbd
-@kindex C-c C-r
-@item C-c C-r
+@kindex C-a a L
+@item C-c a L
 Show a time-sorted view of the org file, with all time-stamped items.
 When called with a @kbd{C-u} prefix, all unfinished TODO entries
 (scheduled or not) are also listed under the current date.
@@ -3204,7 +3443,122 @@
 The commands available in the timeline buffer are listed in
 @ref{Agenda commands}.
 
-@node Agenda commands,  , Timeline, Agenda views
+
+@node Presentation and sorting, Agenda commands, Timeline, Agenda views
+@section Presentation and sorting
+@cindex presentation, of agenda items
+
+Before displaying items in an agenda view, Org-mode visually prepares
+the items and sorts them.  Each item occupies a single line.  The line
+starts with a @emph{prefix} that contains the @emph{category}
+(@pxref{Categories}) of the item and other important information.  You can
+customize the prefix using the option @code{org-agenda-prefix-format}.
+The prefix is followed by a cleaned-up version of the outline headline
+associated with the item.
+
+@menu
+* Categories::                  Not all tasks are equal
+* Time-of-day specifications::  How the agenda knows the time
+* Sorting of agenda items::     The order of things
+@end menu
+
+@node Categories, Time-of-day specifications, Presentation and sorting, Presentation and sorting
+@subsection Categories
+
+@cindex category
+The category is a broad label assigned to each agenda item.  By default,
+the category is simply derived from the file name, but you can also
+specify it with a special line in the buffer, like this:
+
+@example
+#+CATEGORY: Thesis
+@end example
+
+If there are several such lines in a file, each specifies the category
+for the text below it (but the first category also applies to any text
+before the first CATEGORY line).  The display in the agenda buffer looks
+best if the category is not longer than 10 characters.
+
+@node Time-of-day specifications, Sorting of agenda items, Categories, Presentation and sorting
+@subsection Time-of-Day Specifications
+@cindex time-of-day specification
+
+Org-mode checks each agenda item for a time-of-day specification.  The
+time can be part of the time stamp that triggered inclusion into the
+agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}.  Time
+ranges can be specified with two time stamps, like
+@c
+@w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
+
+In the headline of the entry itself, a time(range) may also appear as
+plain text (like @samp{12:45} or a @samp{8:30-1pm}.  If the agenda
+integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
+specifications in diary entries are recognized as well.
+
+For agenda display, Org-mode extracts the time and displays it in a
+standard 24 hour format as part of the prefix.  The example times in
+the previous paragraphs would end up in the agenda like this:
+
+@example
+    8:30-13:00 Arthur Dent lies in front of the bulldozer
+   12:45...... Ford Prefect arrives and takes Arthur to the pub
+   19:00...... The Vogon reads his poem
+   20:30-22:15 Marwin escorts the Hitchhikers to the bridge
+@end example
+
+@cindex time grid
+If the agenda is in single-day mode, or for the display of today, the
+timed entries are embedded in a time grid, like
+
+@example
+    8:00...... ------------------
+    8:30-13:00 Arthur Dent lies in front of the bulldozer
+   10:00...... ------------------
+   12:00...... ------------------
+   12:45...... Ford Prefect arrives and takes Arthur to the pub
+   14:00...... ------------------
+   16:00...... ------------------
+   18:00...... ------------------
+   19:00...... The Vogon reads his poem
+   20:00...... ------------------
+   20:30-22:15 Marwin escorts the Hitchhikers to the bridge
+@end example
+
+The time grid can be turned on and off with the variable
+@code{org-agenda-use-time-grid}, and can be configured with
+@code{org-agenda-time-grid}.
+
+@node Sorting of agenda items,  , Time-of-day specifications, Presentation and sorting
+@subsection Sorting of agenda items
+@cindex sorting, of agenda items
+@cindex priorities, of agenda items
+Before being inserted into a view, the items are sorted.  How this is
+done depends on the type of view.
+@itemize @bullet
+@item
+For the daily/weekly agenda, the items for each day are sorted.  The
+default order is to first collect all items containing an explicit
+time-of-day specification.  These entries will be shown at the beginning
+of the list, as a @emph{schedule} for the day.  After that, items remain
+grouped in categories, in the sequence given by @code{org-agenda-files}.
+Within each category, items are sorted by priority (@pxref{Priorities}),
+which is composed of the base priority (2000 for priority @samp{A}, 1000
+for @samp{B}, and 0 for @samp{C}), plus additional increments for
+overdue scheduled or deadline items.
+@item 
+For the TODO list, items remain in the order of categories, but within
+each category, sorting takes place according to priority
+(@pxref{Priorities}).
+@item
+For tags matches, items are not sorted at all, but just appear in the
+sequence in which they are found in the agenda files.
+@end itemize
+
+Sorting can be customized using the variable
+@code{org-agenda-sorting-strategy}.
+
+
+@node Agenda commands, Custom agenda views, Presentation and sorting, Agenda views
 @section Commands in the agenda buffer
 @cindex commands, in agenda buffer
 
@@ -3220,6 +3574,7 @@
 
 @table @kbd
 @tsubheading{Motion}
+@cindex motion commands in agenda
 @kindex n
 @item n
 Next line (same as @key{up}).
@@ -3265,6 +3620,7 @@
 as are entries that have been clocked on that day.
 
 @tsubheading{Change display}
+@cindex display changing, in agenda
 @kindex o
 @item o
 Delete other windows.
@@ -3313,6 +3669,7 @@
 Goto today.
 
 @tsubheading{Remote editing}
+@cindex remote editing, from agenda
 
 @item 0-9
 Digit argument.
@@ -3322,6 +3679,13 @@
 Change the TODO state of the item, both in the agenda and in the
 original org file.
 
+@kindex C-k
+@item C-k
+Delete the current agenda item along with the entire subtree belonging
+to it in the original Org-mode file.  If the text to be deleted remotely
+is longer than one line, the kill needs to be confirmed by the user.  See
+variable @code{org-agenda-confirm-kill}.
+
 @kindex T
 @item T
 Show all tags associated with the current item.  Because of
@@ -3399,6 +3763,7 @@
 Cancel the currently running clock.
 
 @tsubheading{Calendar commands}
+@cindex calendar commands, from agenda
 @kindex c
 @item c
 Open the Emacs calendar and move to the date at the agenda cursor.
@@ -3452,6 +3817,207 @@
 
 @end table
 
+
+@node Custom agenda views,  , Agenda commands, Agenda views
+@section Custom agenda views
+@cindex custom agenda views
+@cindex agenda views, custom
+
+Custom agenda commands serve two purposes: to store and quickly access
+frequently used TODO and tags searches, and to create special composite
+agenda buffers.  Custom agenda commands will be accessible through the
+dispatcher (@pxref{Agenda dispatcher}), just like the default commands.
+
+@menu
+* Storing searches::            Type once, use often
+* Block agenda::                All the stuff you need in a single buffer
+* Setting Options::             Changing the rules
+* Batch processing::            Agenda views from the command line
+@end menu
+
+@node Storing searches, Block agenda, Custom agenda views, Custom agenda views
+@subsection Storing searches
+
+The first application of custom searches is the definition of keyboard
+shortcuts for frequently used searches, either creating an agenda
+buffer, or a sparse tree (the latter covering of course only the current
+buffer).
+@kindex C-c a C
+Custom commands are configured in the variable
+@code{org-agenda-custom-commands}.  You can customize this variable, for
+example by pressing @kbd{C-c a C}.  You can also directly set it with
+Emacs Lisp in @file{.emacs}.  The following example contains all valid
+search types:
+
+@lisp
+@group
+(setq org-agenda-custom-commands
+      '(("w" todo "WAITING")
+        ("W" todo-tree "WAITING")
+        ("u" tags "+BOSS-URGENT")
+        ("v" tags-todo "+BOSS-URGENT")
+        ("U" tags-tree "+BOSS-URGENT")
+        ("f" occur-tree "\\<FIXME\\>")))
+@end group
+@end lisp
+
+@noindent
+The initial single-character string in each entry defines the character
+you have to press after the dispatcher command @kbd{C-c a} in order to
+access the command.   The second parameter is the search type, followed
+by the string or regular expression to be used for the matching.  The
+example above will therefore define:
+
+@table @kbd
+@item C-c a w
+as a global search for TODO entries with @samp{WAITING} as the TODO
+keyword
+@item C-c a W
+as the same search, but only in the current buffer and displaying the
+results as a sparse tree
+@item C-c a u
+as a global tags search for headlines marked @samp{:BOSS:} but not
+@samp{:URGENT:}
+@item C-c a v
+as the same search as @kbd{C-c a u}, but limiting the search to
+headlines that are also TODO items
+@item C-c a U
+as the same search as @kbd{C-c a u}, but only in the current buffer and
+displaying the result as a sparse tree
+@item C-c a f
+to create a sparse tree (again: current buffer only) with all entries
+containing the word @samp{FIXME}.
+@end table
+
+@node Block agenda, Setting Options, Storing searches, Custom agenda views
+@subsection Block agenda
+@cindex block agenda
+@cindex agenda, with block views
+
+Another possibility is the construction of agenda views that comprise
+the results of @emph{several} commands, each of which creates a block in
+the agenda buffer.  The available commands include @code{agenda} for the
+daily or weekly agenda (as created with @kbd{C-c a a}), @code{alltodo}
+for the global todo list (as constructed with @kbd{C-c a t}), and the
+matching commands discussed above: @code{todo}, @code{tags}, and
+@code{tags-todo}.  Here are two examples:
+
+@lisp
+@group
+(setq org-agenda-custom-commands
+      '(("h" "Agenda and Home-related tasks"
+         ((agenda)
+          (tags-todo "HOME")
+          (tags "GARDEN")))
+        ("o" "Agenda and Office-related tasks"
+         ((agenda)
+          (tags-todo "WORK")
+          (tags "OFFICE")))))
+@end group
+@end lisp
+
+@noindent
+This will define @kbd{C-c a h} to create a multi-block view for stuff
+you need to attend to at home.  The resulting agenda buffer will contain
+your agenda for the current week, all TODO items that carry the tag
+@samp{HOME}, and also all lines tagged with @samp{GARDEN}.  Finally the
+command @kbd{C-c a o} provides a similar view for office tasks.
+
+
+@node Setting Options, Batch processing, Block agenda, Custom agenda views
+@subsection Setting Options for custom commands
+@cindex options, for custom agenda views
+
+Org-mode contains a number of variables regulating agenda construction
+and display.  The global variables define the behavior for all agenda
+commands, including the custom commands.  However, if you want to change
+some settings just for a single custom view, you can do so.  Setting
+options requires inserting a list of variable names and values at the
+right spot in @code{org-agenda-custom-commands}.  For example:
+
+@lisp
+@group
+(setq org-agenda-custom-commands
+      '(("w" todo "WAITING"
+         ((org-agenda-sorting-strategy '(priority-down))
+          (org-agenda-prefix-format "  Mixed: ")))
+        ("U" tags-tree "+BOSS-URGENT"
+         ((org-show-following-heading nil)
+          (org-show-hierarchy-above nil)))))
+@end group
+@end lisp
+
+@noindent
+Now the @kbd{C-c a w} command will sort the collected entries only by
+priority, and the prefix format is modified to just say @samp{  Mixed:}
+instead of giving the category of the entry.  The sparse tags tree of
+@kbd{C-c a U} will now turn out ultra-compact, because neither the
+headline hierarchy above the match, nor the headline following the match
+will be shown.
+
+For command sets creating a block agenda,
+@code{org-agenda-custom-commands} has two separate spots for setting
+options.  You can add options that should be valid for just a single
+command in the set, and options that should be valid for all commands in
+the set.  The former are just added to the command entry, the latter
+must come after the list of command entries.  Going back to the block
+agenda example (@pxref{Block agenda}), let's change the sorting strategy
+for the @kbd{C-c a h} commands to @code{priority-down}, but let's sort
+the results for GARDEN tags query in the opposite order,
+@code{priority-up}.  This would look like this:
+
+@lisp
+@group
+(setq org-agenda-custom-commands
+      '(("h" "Agenda and Home-related tasks"
+         ((agenda)
+          (tags-todo "HOME")
+          (tags "GARDEN" ((org-agenda-sorting-strategy '(priority-up)))))
+         ((org-agenda-sorting-strategy '(priority-down))))
+        ("o" "Agenda and Office-related tasks"
+         ((agenda)
+          (tags-todo "WORK")
+          (tags "OFFICE")))))
+@end group
+@end lisp
+
+As you see, the values and parenthesis setting is a little complex.
+When in doubt, use the customize interface to set this variable - it
+fully supports its structure.  Just one caveat: When setting options in
+this interface, the @emph{values} are just lisp expressions.  So if the
+value is a string, you need to add the double quotes around the value
+yourself.
+
+@node Batch processing,  , Setting Options, Custom agenda views
+@subsection Creating agenda views in batch processing
+@cindex agenda, batch production
+
+If you want to print or otherwise reprocess agenda views, it can be
+useful to create an agenda from the command line.  This is the purpose
+of the function @code{org-batch-agenda}.  It takes as a parameter one of
+the strings that are the keys in @code{org-agenda-custom-commands}.  For
+example, to directly print the current TODO list, you could use
+
+@example
+emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
+@end example
+
+@noindent
+You may also modify parameters on the fly like this:
+
+@example
+emacs -batch -l ~/.emacs                                      \
+   -eval '(org-batch-agenda "a"                               \
+            org-agenda-ndays 300                              \
+            org-agenda-include-diary nil                      \
+            org-agenda-files (quote ("~/org/project.org")))'  \
+   | lpr
+@end example
+
+@noindent
+which will produce a 300 day agenda, fully restricted to the Org file
+@file{~/org/projects.org}, not even including the diary.
+
 @node Embedded LaTeX, Exporting, Agenda views, Top
 @chapter Embedded LaTeX
 @cindex @TeX{} interpretation
@@ -3482,6 +4048,8 @@
 
 @node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX
 @section Math symbols
+@cindex math symbols
+@cindex TeX macros
 
 You can use La@TeX{} macros to insert special symbols like @samp{\alpha}
 to indicate the Greek letter, or @samp{\to} to indicate an arrow.
@@ -3500,6 +4068,8 @@
 
 @node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX
 @section Subscripts and Superscripts
+@cindex subscript
+@cindex superscript
 
 Just like in La@TeX{}, @samp{^} and @samp{_} are used to indicate super-
 and subscripts.  Again, these can be used without embedding them in
@@ -3520,9 +4090,14 @@
 
 @node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX
 @section LaTeX fragments
+@cindex LaTeX fragments
 
 With symbols, sub- and superscripts, HTML is pretty much at its end when
-it comes to representing mathematical formulas.  More complex
+it comes to representing mathematical formulas@footnote{Yes, there is
+MathML, but that is not yet fully supported by many browsers, and there
+is no decent converter for turning LaTeX of ASCII representations of
+formulas into MathML.  So for the time being, converting formulas into
+images seems the way to go.}.  More complex
 expressions need a dedicated formula processor.  To this end, Org-mode
 can contain arbitrary La@TeX{} fragments.  It provides commands to
 preview the typeset result of these fragments, and upon export to HTML,
@@ -3566,6 +4141,7 @@
 
 @node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX
 @section Processing LaTeX fragments
+@cindex LaTeX fragments, preview
 
 La@TeX{} fragments can be processed to produce a preview images of the
 typeset expressions:
@@ -3594,6 +4170,7 @@
 
 @node CDLaTeX mode,  , Processing LaTeX fragments, Embedded LaTeX
 @section Using CDLaTeX to enter math
+@cindex CDLaTeX
 
 CDLaTeX-mode is a minor mode that is normally used in combination with a
 major LaTeX mode like AUCTeX in order to speed-up insertion of
@@ -4035,7 +4612,7 @@
 @cindex publishing
 
 Org-mode includes@footnote{@file{org-publish.el} is not yet part of
-emacs, so if you are using @file{org.el} as it comes with Emacs, you
+Emacs, so if you are using @file{org.el} as it comes with Emacs, you
 need to download this file separately.  Also make sure org.el is at
 least version 4.27.} a publishing management system
 that allows you to configure automatic HTML conversion of
@@ -4110,6 +4687,9 @@
 @tab Directory containing publishing source files
 @item @code{:publishing-directory}
 @tab Directory (possibly remote) where output files will be published.
+@item @code{:preparation-function}
+@tab Function called before starting publishing process, for example to
+run @code{make} for updating files to be published.
 @end multitable
 @noindent
 
@@ -4149,7 +4729,8 @@
 
 @multitable @columnfractions 0.3 0.7
 @item @code{:publishing-function}
-@tab Function executing the publication of a file.
+@tab Function executing the publication of a file.  This may also be a
+list of functions, which will all be called in turn.
 @end multitable
 
 The function must accept two arguments: a property list containing at
@@ -4354,7 +4935,7 @@
 @item C-c C-e c
 Prompt for a specific project and publish all files that belong to it.
 @item C-c C-e p
-Publish the project containin the current file.
+Publish the project containing the current file.
 @item C-c C-e f
 Publish only the current file.
 @item C-c C-e a
@@ -4408,16 +4989,24 @@
 @item
 After @samp{\}, complete @TeX{} symbols supported by the exporter.
 @item
-After @samp{*}, complete CamelCase versions of all headlines in the
-buffer.
+After @samp{*}, complete headlines in the current buffer so that they
+can be used in search links like @samp{[[*find this headline]]}.
 @item
-After @samp{:}, complete tags used elsewhere in the buffer.
+After @samp{:}, complete tags.  The list of tags is taken from the
+variable @code{org-tag-alist} (possibly set through the @samp{#+TAGS}
+in-buffer option, @pxref{Setting tags}), or it is created dynamically
+from all tags used in the current buffer.
+@item
+After @samp{[}, complete link abbreviations (@pxref{Link abbreviations}).
 @item
 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
 @samp{OPTIONS} which set file-specific options for Org-mode.  When the
 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
 will insert example settings for this keyword.
 @item
+In the line after @samp{#+STARTUP: }, complete startup keywords,
+i.e. valid keys for this line.
+@item
 Elsewhere, complete dictionary words using ispell.
 @end itemize
 @end table
@@ -4487,6 +5076,12 @@
 odd        @r{allow only odd outline levels (1,3,...)}
 oddeven    @r{allow all outline levels}
 @end example
+To turn on custom format overlays over time stamps (variables
+@code{org-put-time-stamp-overlays} and
+@code{org-time-stamp-overlay-formats}), use
+@example
+customtime @r{overlay custom time format}
+@end example
 @item #+SEQ_TODO:   #+TYP_TODO:
 These lines set the TODO keywords and their interpretation in the
 current file.  The corresponding variables are @code{org-todo-keywords}
@@ -4495,6 +5090,10 @@
 These lines (several such lines are allowed) specify the legal tags in
 this file, and (potentially) the corresponding @emph{fast tag selection}
 keys.  The corresponding variable is @code{org-tag-alist}.
+@item #+LINK:  linkword replace
+These lines (several are allowed) specify link abbreviations.
+@xref{Link abbreviations}.  The corresponding variable is
+@code{org-link-abbrev-alist}.
 @item #+CATEGORY:
 This line sets the category for the agenda file.  The category applies
 for all subsequent lines until the next @samp{#+CATEGORY} line, or the
@@ -4509,6 +5108,7 @@
 @node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous
 @section The very busy C-c C-c key
 @kindex C-c C-c
+@cindex C-c C-c, overview
 
 The key @kbd{C-c C-c} has many purposes in org-mode, which are all
 mentioned scattered throughout this manual.  One specific function of
@@ -4535,9 +5135,9 @@
 If the cursor is inside a table created by the @file{table.el} package,
 activate that table.
 @item
-If the current buffer is a remember buffer, close note and file it.
-with a prefix argument, file it without further interaction to the default
-location.
+If the current buffer is a remember buffer, close the note and file it.
+With a prefix argument, file it, without further interaction, to the
+default location.
 @item
 If the cursor is on a @code{<<<target>>>}, update radio targets and
 corresponding links in this buffer.
@@ -4607,7 +5207,7 @@
 @noindent
 Note that the leading stars are not truly replaced by whitespace, they
 are only fontified with the face @code{org-hide} that uses the
-background color as font color.  If are are not using either white or
+background color as font color.  If you are not using either white or
 black background, you may have to customize this face to get the wanted
 effect.  Another possibility is to set this font such that the extra
 stars are @i{almost} invisible, for example using the color
@@ -4698,7 +5298,6 @@
 * Conflicts::                   Packages that lead to conflicts
 @end menu
 
-
 @node Cooperation, Conflicts, Interaction, Interaction
 @subsection Packages that Org-mode cooperates with
 
@@ -4839,13 +5438,6 @@
 The following extensions for Org-mode have been written by other people:
 
 @table @asis
-@cindex @file{org-mouse.el}
-@item @file{org-mouse.el} by Piotr Zielinski
-This package implements extended mouse functionality for Org-mode.  It
-allows you to cycle visibility and to edit the document structure with
-the mouse.  Best of all, it provides a context-sensitive menu on
-@key{mouse-3} that changes depending on the context of a mouse-click.
-@file{org-mouse.el} is freely available at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
 @cindex @file{org-publish.el}
 @item @file{org-publish.el} by David O'Toole
 This package provides facilities for publishing related sets of Org-mode
@@ -4856,6 +5448,17 @@
 caused by the preparations for the 22.1 release.  In the mean time,
 @file{org-publish.el} can be downloaded from David's site:
 @url{http://dto.freeshell.org/e/org-publish.el}.
+@cindex @file{org-mouse.el}
+@item @file{org-mouse.el} by Piotr Zielinski
+This package implements extended mouse functionality for Org-mode.  It
+allows you to cycle visibility and to edit the document structure with
+the mouse.  Best of all, it provides a context-sensitive menu on
+@key{mouse-3} that changes depending on the context of a mouse-click.
+As of Org-mode version 4.53, @file{org-mouse.el} is part of the
+Org-mode distribution.  It is not yet part of Emacs, however, a delay
+caused by the preparations for the 22.1 release.  In the mean time,
+@file{org-mouse.el} can be downloaded from Piotr's site:
+@url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
 @cindex @file{org-blog.el}
 @item @file{org-blog.el} by David O'Toole
 A blogging plug-in for @file{org-publish.el}.@*
@@ -4917,7 +5520,7 @@
 (defun org-dblock-write:block-update-time (params)
    (let ((fmt (or (plist-get params :format) "%d. %m. %Y")))
      (insert "Last block update at: "
-	     (format-time-string fmt (current-time)))))
+             (format-time-string fmt (current-time)))))
 @end lisp
 
 If you want to make sure that all dynamic blocks are always up-to-date,
@@ -4925,25 +5528,24 @@
 example @code{before-save-hook}.  @code{org-update-all-dblocks} is
 written in a way that is does nothing in buffers that are not in Org-mode.
 
-
 @node History and Acknowledgments, Index, Extensions and Hacking, Top
 @appendix History and Acknowledgments
 @cindex acknowledgments
 @cindex history
 @cindex thanks
 
-The beginnings of Org-mode go back to 2003.  It was borne out of
-frustration over the user interface of the emacs outline-mode.  All I
-wanted was to make working with an outline tree possible without having
-to remember more than 10 commands just for hiding and unhiding parts of
-the outline tree, and to allow to restructure a tree easily.  Visibility
-cycling and structure editing were originally implemented in the package
-@file{outline-magic.el}, but quickly moved to the more general
-@file{org.el}.  TODO entries, basic time stamps, and table support were
-added next, and highlight the two main goals that Org-mode still has
-today:  To create a new, outline-based, plain text mode with innovative
-and intuitive editing features, and to incorporate project planning
-functionality directly into a notes file.
+Org-mode was borne in 2003, out of frustration over the user interface
+of the Emacs outline-mode.  All I wanted was to make working with an
+outline tree possible without having to remember more than 10 commands
+just for hiding and unhiding parts of the outline tree, and to allow to
+restructure a tree easily.  Visibility cycling and structure editing
+were originally implemented in the package @file{outline-magic.el}, but
+quickly moved to the more general @file{org.el}.  TODO entries, basic
+time stamps, and table support were added next, and highlight the two
+main goals that Org-mode still has today: To create a new,
+outline-based, plain text mode with innovative and intuitive editing
+features, and to incorporate project planning functionality directly
+into a notes file.
 
 Since the first release, hundreds of emails to me or on
 @code{emacs-orgmode@@gnu.org} have provided a constant stream of bug
@@ -4955,6 +5557,7 @@
 let me know.
 
 @itemize @bullet
+
 @item
 @i{Thomas Baumann} contributed the code for links to the MH-E email
 system.
@@ -4973,6 +5576,8 @@
 @item
 @i{Sacha Chua} suggested to copy some linking code from Planner.
 @item
+@i{Eddward DeVilla} proposed and tested checkbox statistics.
+@item
 @i{Kees Dullemond} inspired the use of narrowed tabled columns.
 @item
 @i{Christian Egli} converted the documentation into TeXInfo format,
@@ -4982,10 +5587,9 @@
 @item
 @i{Niels Giessen} had the idea to automatically archive DONE trees.
 @item
-@i{Bastien Guerry} provoded extensive feedback.
+@i{Bastien Guerry} provided extensive feedback.
 @item
-@i{Kai Grossjohann} pointed out key-binding conflicts caused by
-Org-mode.
+@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
 @item
 @i{Leon Liu} asked for embedded LaTeX and tested it.
 @item
@@ -5002,7 +5606,8 @@
 @i{Scott Otterson} sparked the introduction of descriptive text for
 links, among other things.
 @item
-@i{Pete Phillips} helped the development of the TAGS feature.
+@i{Pete Phillips} helped during the development of the TAGS feature, and
+provided frequent feedback.
 @item
 @i{T.V. Raman} reported bugs and suggested improvements.
 @item
@@ -5014,6 +5619,8 @@
 @i{Frank Ruell} solved the mystery of the @code{keymapp nil} bug, a
 conflict with @file{allout.el}.
 @item
+@i{Jason Riedy} sent a patch to fix a bug with export of TODO keywords.
+@item
 @i{Philip Rooke} created the Org-mode reference card and provided lots
 of feedback.
 @item
@@ -5026,6 +5633,8 @@
 @i{Daniel Sinder} came up with the idea of internal archiving by locking
 subtrees.
 @item
+@i{Dale Smith} proposed link abbreviations.
+@item
 @i{David O'Toole} wrote @file{org-publish.el} and drafted the manual
 chapter about publishing.
 @item
@@ -5051,8 +5660,8 @@
 @i{Roland Winkler} requested additional keybindings to make Org-mode
 work on a tty.
 @item
-@i{Piotr Zielinski} wrote @file{org-mouse.el} and showed how to follow
-links with mouse-1.
+@i{Piotr Zielinski} wrote @file{org-mouse.el}, proposed agenda blocks
+and contributed various ideas and code snippets.
 @end itemize
 
 
@@ -5062,7 +5671,7 @@
 @printindex cp
 
 @node Key Index,  , Index, Top
-@chapter Key Index
+@unnumbered Key Index
 
 @printindex ky
 
--- a/man/url.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/url.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -250,7 +250,7 @@
 defined in RFC 1945) HTTP URLs have the following form, where most of
 the parts are optional:
 @example
-http://@var{user}:@var{password}@var{host}:@var{port}/@var{path}?@var{searchpart}#@var{fragment}
+http://@var{user}:@var{password}@@@var{host}:@var{port}/@var{path}?@var{searchpart}#@var{fragment}
 @end example
 @c The @code{:@var{port}} part is optional, and @var{port} defaults to
 @c 80.  The @code{/@var{path}} part, if present, is a slash-separated
--- a/man/woman.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/woman.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -57,8 +57,9 @@
 @author Queen Mary and Westfield College
 @author (University of London)
 @author Mile End Road, London E1 4NS, UK
-@author @email{F.J.Wright@@qmw.ac.uk}
+@author @email{F.J.Wright@@qmul.ac.uk}
 @author @uref{http://centaur.maths.qmw.ac.uk/}
+@c He no longer maintains this manual.
 @sp 2
 @author Manual Last Updated @value{UPDATED}
 
--- a/man/xresmini.texi	Tue Nov 21 01:10:47 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,432 +0,0 @@
-@c This is part of the Emacs manual.
-@c Copyright (C) 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2003,
-@c   2004, 2005, 2006 Free Software Foundation, Inc.
-@c See file emacs.texi for copying conditions.
-@node X Resources, Antinews, Emacs Invocation, Top
-@appendix X Options and Resources
-
-  You can customize some X-related aspects of Emacs behavior using X
-resources, as is usual for programs that use X.  On MS-Windows, you
-can customize some of the same aspects using the system registry.
-@xref{MS-Windows Registry}.  Likewise, Emacs on MacOS Carbon emulates X
-resources using the Preferences system.  @xref{Mac Environment Variables}.
-
-  When Emacs is built using an ``X toolkit,'' such as Lucid or
-LessTif, you need to use X resources to customize the appearance of
-the widgets, including the menu-bar, scroll-bar, and dialog boxes.
-This is because the libraries that implement these don't provide for
-customization through Emacs.  GTK+ widgets use a separate system of
-``GTK resources.''  In this chapter we describe the most commonly used
-resource specifications.  For full documentation, see the online
-manual.
-
-@c Add xref for LessTif/Motif menu resources.
-
-@menu
-* Resources::           Using X resources with Emacs (in general).
-* Table of Resources::  Table of specific X resources that affect Emacs.
-* Face Resources::      X resources for customizing faces.
-* Lucid Resources::     X resources for Lucid menus.
-* GTK resources::       Resources for GTK widgets.
-@end menu
-
-@node Resources
-@appendixsec X Resources
-@cindex resources
-@cindex X resources
-@cindex @file{~/.Xdefaults} file
-@cindex @file{~/.Xresources} file
-
-  Programs running under the X Window System organize their user
-options under a hierarchy of classes and resources.  You can specify
-default values for these options in your X resources file, usually
-named @file{~/.Xdefaults} or @file{~/.Xresources}.
-If changes in @file{~/.Xdefaults} do not
-take effect, it is because your X server stores its own list of
-resources; to update them, use the shell command @command{xrdb}---for
-instance, @samp{xrdb ~/.Xdefaults}.
-
-  Each line in the file specifies a value for one option or for a
-collection of related options, for one program or for several programs
-(optionally even for all programs).
-
-@cindex Registry (MS-Windows)
-  MS-Windows systems don't support @file{~/.Xdefaults} files, but
-Emacs compiled for Windows looks for X resources in the Windows
-Registry, under the key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs}
-and then under the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}.
-The menu and scrollbars are native widgets on MS-Windows, so they are
-only customizable via the system-wide settings in the Display Control
-Panel.  You can also set resources using the @samp{-xrm} command line
-option (see below.)
-
-  Applications such as Emacs look for resources with specific names
-and their particular meanings.  Case distinctions are significant in
-these names.  Each resource specification in @file{~/.Xdefaults}
-states the name of the program and the name of the resource.  For
-Emacs, the program name is @samp{Emacs}.  It looks like this:
-
-@example
-Emacs.borderWidth: 2
-@end example
-
-  The order in which the lines appear in the file does not matter.
-Also, command-line options always override the X resources file.
-
-  You can experiment with the effect of different resource settings
-with the @code{editres} program.  Select @samp{Get Tree} from the
-@samp{Commands} menu, then click on an Emacs frame.  This will display
-a tree showing the structure of X toolkit widgets used in an Emacs
-frame.  Select one of them, such as @samp{menubar}, then select
-@samp{Show Resource Box} from the @samp{Commands} menu.  This displays
-a list of all the meaningful X resources for that widget, and allows
-you to edit them.  Changes take effect when you click on the
-@samp{Apply} button.  (See the @code{editres} man page for more
-details.)
-
-@node Table of Resources
-@appendixsec Table of X Resources for Emacs
-
-  This table lists the resource names that designate options for
-Emacs, not counting those for the appearance of the menu bar, each
-with the class that it belongs to:
-
-@table @asis
-@item @code{background} (class @code{Background})
-Background color name.
-
-@item @code{borderColor} (class @code{BorderColor})
-Color name for the external border.
-
-@item @code{cursorColor} (class @code{Foreground})
-Color name for text cursor (point).
-
-@item @code{font} (class @code{Font})
-Font name (or fontset name, @pxref{Fontsets}) for @code{default} font.
-
-@item @code{foreground} (class @code{Foreground})
-Color name for text.
-
-@item @code{geometry} (class @code{Geometry})
-Window size and position.  Be careful not to specify this resource as
-@samp{emacs*geometry}, because that may affect individual menus as well
-as the Emacs frame itself.
-
-If this resource specifies a position, that position applies only to the
-initial Emacs frame (or, in the case of a resource for a specific frame
-name, only that frame).  However, the size, if specified here, applies to
-all frames.
-
-@item @code{iconName} (class @code{Title})
-Name to display in the icon.
-
-@item @code{internalBorder} (class @code{BorderWidth})
-Width in pixels of the internal border.
-
-@item @code{lineSpacing} (class @code{LineSpacing})
-@cindex line spacing
-@cindex leading
-Additional space (@dfn{leading}) between lines, in pixels.
-
-@item @code{menuBar} (class @code{MenuBar})
-@cindex menu bar
-Give frames menu bars if @samp{on}; don't have menu bars if
-@samp{off}.  @xref{Lucid Resources}, for how to control the appearance
-of the menu bar if you have one.
-
-@item @code{pointerColor} (class @code{Foreground})
-Color of the mouse cursor.
-
-@item @code{screenGamma} (class @code{ScreenGamma})
-@cindex gamma correction
-Gamma correction for colors, equivalent to the frame parameter
-@code{screen-gamma}.
-
-@item @code{title} (class @code{Title})
-Name to display in the title bar of the initial Emacs frame.
-
-@item @code{toolBar} (class @code{ToolBar})
-@cindex tool bar
-Number of lines to reserve for the tool bar.  A zero value suppresses
-the tool bar.  If the value is non-zero and
-@code{auto-resize-tool-bars} is non-@code{nil}, the tool bar's size
-will be changed automatically so that all tool bar items are visible.
-
-@item @code{useXIM} (class @code{UseXIM})
-@cindex XIM
-@cindex X input methods
-@cindex input methods, X
-Turn off use of X input methods (XIM) if @samp{false} or @samp{off}.
-This is only relevant if your Emacs is actually built with XIM
-support.  It is potentially useful to turn off XIM for efficiency,
-especially slow X client/server links.
-
-@item @code{verticalScrollBars} (class @code{ScrollBars})
-Give frames scroll bars if @samp{on}; don't have scroll bars if
-@samp{off}.
-@end table
-
-@node Face Resources
-@appendixsec X Resources for Faces
-
-  You can use resources to customize the appearance of particular
-faces (@pxref{Faces}):
-
-@table @code
-@item @var{face}.attributeForeground
-Foreground color for face @var{face}.
-@item @var{face}.attributeBackground
-Background color for face @var{face}.
-@item @var{face}.attributeUnderline
-Underline flag for face @var{face}.  Use @samp{on} or @samp{true} for
-yes.
-@item @var{face}.attributeStrikeThrough
-@itemx @var{face}.attributeOverline
-@itemx @var{face}.attributeBox
-@itemx @var{face}.attributeInverse
-Likewise, for other boolean font attributes.
-@item @var{face}.attributeStipple
-The name of a pixmap data file to use for the stipple pattern, or
-@code{false} to not use stipple for the face @var{face}.
-@item @var{face}.attributeBackgroundPixmap
-The background pixmap for the face @var{face}.  Should be a name of a
-pixmap file or @code{false}.
-@item @var{face}.attributeFont
-Font name (full XFD name or valid X abbreviation) for face @var{face}.
-Instead of this, you can specify the font through separate attributes.
-@end table
-
-  Instead of using @code{attributeFont} to specify a font name, you can
-select a font through these separate attributes:
-
-@table @code
-@item @var{face}.attributeFamily
-Font family for face @var{face}.
-@item @var{face}.attributeHeight
-Height of the font to use for face @var{face}: either an integer
-specifying the height in units of 1/10@dmn{pt}, or a floating point
-number that specifies a scale factor to scale the underlying face's
-default font, or a function to be called with the default height which
-will return a new height.
-@item @var{face}.attributeWidth
-@itemx @var{face}.attributeWeight
-@itemx @var{face}.attributeSlant
-Each of these resources corresponds to a like-named font attribute,
-and you write the resource value the same as the symbol you would use
-for the font attribute value.
-@item @var{face}.attributeBold
-Bold flag for face @var{face}---instead of @code{attributeWeight}.  Use @samp{on} or @samp{true} for
-yes.
-@item @var{face}.attributeItalic
-Italic flag for face @var{face}---instead of @code{attributeSlant}.
-@end table
-
-@node Lucid Resources
-@appendixsec Lucid Menu X Resources
-@cindex Menu X Resources (Lucid widgets)
-@cindex Lucid Widget X Resources
-
-  If the Emacs installed at your site was built to use the X toolkit
-with the Lucid menu widgets, then the menu bar is a separate widget
-and has its own resources.  The resource specifications start with
-@samp{Emacs.pane.menubar}---for instance, to specify the font
-@samp{8x16} for the menu-bar items, write this:
-
-@example
-Emacs.pane.menubar.font:  8x16
-@end example
-
-@noindent
-Resources for @emph{non-menubar} toolkit pop-up menus have
-@samp{menu*} instead of @samp{pane.menubar}.  For example, to specify
-the font @samp{8x16} for the pop-up menu items, write this:
-
-@example
-Emacs.menu*.font:	8x16
-@end example
-
-@noindent
-For dialog boxes, use @samp{dialog*}:
-
-@example
-Emacs.dialog*.font:	8x16
-@end example
-
-@noindent
-The Lucid menus can display multilingual text in your locale.  For
-more information about fontsets see the man page for
-@code{XCreateFontSet}.  To enable multilingual menu text you specify a
-@code{fontSet} resource instead of the font resource.  If both
-@code{font} and @code{fontSet} resources are specified, the
-@code{fontSet} resource is used.
-
-  Thus, to specify @samp{-*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*}
-for both the popup and menu bar menus, write this:
-
-@example
-Emacs*menu*fontSet:  -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*
-@end example
-
-@noindent
-The @samp{*menu*} as a wildcard matches @samp{pane.menubar} and
-@samp{menu@dots{}}.
-
-  Experience shows that on some systems you may need to add
-@samp{shell.}@: before the @samp{pane.menubar} or @samp{menu*}.  On
-some other systems, you must not add @samp{shell.}.  The generic wildcard
-approach should work on both kinds of systems.
-
-  Here is a list of the specific resources for menu bars and pop-up menus:
-
-@table @code
-@item font
-Font for menu item text.
-@item fontSet
-Fontset for menu item text.
-@item foreground
-Color of the foreground.
-@item background
-Color of the background.
-@item buttonForeground
-In the menu bar, the color of the foreground for a selected item.
-@item margin
-The margin of the menu bar, in characters.  Default is 1.
-@end table
-
-@node GTK resources
-@appendixsec GTK resources
-
-  The most common way to customize the GTK widgets Emacs uses (menus, dialogs
-tool bars and scroll bars) is by choosing an appropriate theme, for example
-with the GNOME theme selector.  You can also do Emacs specific customization
-by inserting GTK style directives in the file @file{~/.emacs.d/gtkrc}.  Some GTK
-themes ignore customizations in @file{~/.emacs.d/gtkrc} so not everything
-works with all themes.  To customize Emacs font, background, faces, etc., use
-the normal X resources (@pxref{Resources}).  We will present some examples of
-customizations here, but for a more detailed description, see the online manual.
-
-  The first example is just one line.  It changes the font on all GTK widgets
-to courier with size 12:
-
-@smallexample
-gtk-font-name = "courier 12"
-@end smallexample
-
-  The thing to note is that the font name is not an X font name, like
--*-helvetica-medium-r-*--*-120-*-*-*-*-*-*, but a Pango font name.  A Pango
-font name is basically of the format "family style size", where the style
-is optional as in the case above.  A name with a style could be for example:
-
-@smallexample
-gtk-font-name = "helvetica bold 10"
-@end smallexample
-
-  To customize widgets you first define a style and then apply the style to
-the widgets.  Here is an example that sets the font for menus, but not
-for other widgets:
-
-@smallexample
-# @r{Define the style @samp{menufont}.}
-style "menufont"
-@{
-  font_name = "helvetica bold 14"  # This is a Pango font name
-@}
-
-# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.}
-widget "*emacs-menuitem*" style "menufont"
-@end smallexample
-
-The widget name in this example contains wildcards, so the style will be
-applied to all widgets that match "*emacs-menuitem*".  The widgets are
-named by the way they are contained, from the outer widget to the inner widget.
-So to apply the style "my_style" (not shown) with the full, absolute name, for
-the menubar and the scroll bar in Emacs we use:
-
-@smallexample
-widget "Emacs.pane.menubar" style "my_style"
-widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
-@end smallexample
- 
-But to avoid having to type it all, wildcards are often used.  @samp{*}
-matches zero or more characters and @samp{?} matches one character.  So "*"
-matches all widgets.
-
-  Each widget has a class (for example GtkMenuItem) and a name (emacs-menuitem).
-You can assign styles by name or by class.  In this example we have used the
-class:
-
-@smallexample
-style "menufont"
-@{
-  font_name = "helvetica bold 14"
-@}
-
-widget_class "*GtkMenuBar" style "menufont"
-@end smallexample
-
-@noindent
-The names and classes for the GTK widgets Emacs uses are:
-
-@multitable {@code{verticalScrollbar plus}} {@code{GtkFileSelection} and some}
-@item @code{emacs-filedialog}
-@tab @code{GtkFileSelection}
-@item @code{emacs-dialog}
-@tab @code{GtkDialog}
-@item @code{Emacs}
-@tab @code{GtkWindow}
-@item @code{pane}
-@tab @code{GtkVHbox}
-@item @code{emacs}
-@tab @code{GtkFixed}
-@item @code{verticalScrollBar}
-@tab @code{GtkVScrollbar}
-@item @code{emacs-toolbar}
-@tab @code{GtkToolbar}
-@item @code{menubar}
-@tab @code{GtkMenuBar}
-@item @code{emacs-menuitem}
-@tab anything in menus
-@end multitable
-
-  GTK absolute names are quite strange when it comes to menus
-and dialogs.  The names do not start with @samp{Emacs}, as they are
-free-standing windows and not contained (in the GTK sense) by the
-Emacs GtkWindow.  To customize the dialogs and menus, use wildcards like this:
-
-@smallexample
-widget "*emacs-dialog*" style "my_dialog_style"
-widget "*emacs-filedialog* style "my_file_style"
-widget "*emacs-menuitem* style "my_menu_style"
-@end smallexample
-
-  If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
-automatically applies only to Emacs, since other programs don't read
-that file.  For example, the drop down menu in the file dialog can not
-be customized by any absolute widget name, only by an absolute class
-name.  This is because the widgets in the drop down menu do not
-have names and the menu is not contained in the Emacs GtkWindow.  To
-have all menus in Emacs look the same, use this in
-@file{~/.emacs.d/gtkrc}:
-
-@smallexample
-widget_class "*Menu*" style "my_menu_style"
-@end smallexample
-
-  Here is a more elaborate example, showing how to change the parts of
-the scroll bar:
-
-@smallexample
-style "scroll"
-@{
-  fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
-  bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
-  bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
-  bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
-@}
-
-widget "*verticalScrollBar*" style "scroll"
-@end smallexample
-
-@ignore
-   arch-tag: e1856f29-2482-42c0-a990-233cdccd1f21
-@end ignore
--- a/man/xresources.texi	Tue Nov 21 01:10:47 2006 +0000
+++ b/man/xresources.texi	Tue Nov 21 08:56:38 2006 +0000
@@ -8,15 +8,25 @@
   You can customize some X-related aspects of Emacs behavior using X
 resources, as is usual for programs that use X.  On MS-Windows, you
 can customize some of the same aspects using the system registry.
-@xref{MS-Windows Registry}.  Likewise, the Mac Carbon port emulates X
+@xref{MS-Windows Registry}.  Likewise, Emacs on MacOS Carbon emulates X
 resources using the Preferences system.  @xref{Mac Environment Variables}.
 
-  When Emacs is built using an `X toolkit', such as Lucid or LessTif,
-you need to use X resources to customize the appearance of the
-widgets, including the menu-bar, scroll-bar, and dialog boxes.  This
-is because the libraries that implement these don't provide for
+  When Emacs is built using an ``X toolkit'', such as Lucid or 
+LessTif, you need to use X resources to customize the appearance of
+the widgets, including the menu-bar, scroll-bar, and dialog boxes.
+This is because the libraries that implement these don't provide for
 customization through Emacs.  GTK+ widgets use a separate system of
-`GTK resources', which we will also describe.
+@ifnottex
+``GTK resources'', which we will also describe.
+@end ifnottex
+@iftex
+``GTK resources.''  In this chapter we describe the most commonly used
+resource specifications.  For full documentation, see the online
+manual.
+
+@c Add xref for LessTif/Motif menu resources.
+@end iftex
+
 
 @menu
 * Resources::           Using X resources with Emacs (in general).
@@ -57,6 +67,18 @@
 Panel.  You can also set resources using the @samp{-xrm} command line
 option (see below.)
 
+@iftex
+  Applications such as Emacs look for resources with specific names
+and their particular meanings.  Case distinctions are significant in
+these names.  Each resource specification in @file{~/.Xdefaults}
+states the name of the program and the name of the resource.  For
+Emacs, the program name is @samp{Emacs}.  It looks like this:
+ 
+@example
+Emacs.borderWidth: 2
+@end example
+@end iftex
+@ifnottex
   Programs define named resources with particular meanings.  They also
 define how to group resources into named classes.  For instance, in
 Emacs, the @samp{internalBorder} resource controls the width of the
@@ -95,9 +117,12 @@
 emacs.BorderWidth: 2
 emacs.borderWidth: 4
 @end example
+@end ifnottex
 
   The order in which the lines appear in the file does not matter.
 Also, command-line options always override the X resources file.
+
+@ifnottex
 Here is a list of X command-line options and their corresponding
 resource names.
 
@@ -145,13 +170,19 @@
 
   One way to experiment with the effect of different resource settings
 is to use the @code{editres} program.  Select @samp{Get Tree} from the
+@end ifnottex
+@iftex
+  You can experiment with the effect of different resource settings
+with the @code{editres} program.  Select @samp{Get Tree} from the
+@end iftex
 @samp{Commands} menu, then click on an Emacs frame.  This will display
 a tree showing the structure of X toolkit widgets used in an Emacs
 frame.  Select one of them, such as @samp{menubar}, then select
 @samp{Show Resource Box} from the @samp{Commands} menu.  This displays
-a list of all the meaningful X resources and allows you to edit them.
-Changes take effect immediately if you click on the @samp{Apply} button.
-(See the @code{editres} man page for more details.)
+a list of all the meaningful X resources for that widget, and allows
+you to edit them.  Changes take effect when you click on the
+@samp{Apply} button.  (See the @code{editres} man page for more
+details.)
 
 @node Table of Resources
 @appendixsec Table of X Resources for Emacs
@@ -164,25 +195,31 @@
 @item @code{background} (class @code{Background})
 Background color name.
 
+@ifnottex
 @item @code{bitmapIcon} (class @code{BitmapIcon})
 Use a bitmap icon (a picture of a gnu) if @samp{on}, let the window
 manager choose an icon if @samp{off}.
+@end ifnottex
 
 @item @code{borderColor} (class @code{BorderColor})
 Color name for the external border.
 
+@ifnottex
 @item @code{borderWidth} (class @code{BorderWidth})
 Width in pixels of the external border.
+@end ifnottex
 
 @item @code{cursorColor} (class @code{Foreground})
 Color name for text cursor (point).
 
+@ifnottex
 @item @code{cursorBlink} (class @code{CursorBlink})
 Specifies whether to make the cursor blink. The default is @samp{on}.  Use
 @samp{off} or @samp{false} to turn cursor blinking off.
+@end ifnottex
 
 @item @code{font} (class @code{Font})
-Font name for text (or fontset name, @pxref{Fontsets}).
+Font name (or fontset name, @pxref{Fontsets}) for @code{default} font.
 
 @item @code{foreground} (class @code{Foreground})
 Color name for text.
@@ -197,14 +234,15 @@
 name, only that frame).  However, the size, if specified here, applies to
 all frames.
 
+@ifnottex
 @item @code{fullscreen} (class @code{Fullscreen})
 The desired fullscreen size.  The value can be one of @code{fullboth},
 @code{fullwidth} or @code{fullheight}, which correspond to
 the command-line options @samp{-fs}, @samp{-fw}, and @samp{-fh}
 (@pxref{Window Size X}).
 
-Note that this applies to all frames created, not just the initial
-one.
+Note that this applies to the initial frame only.
+@end ifnottex
 
 @item @code{iconName} (class @code{Title})
 Name to display in the icon.
@@ -219,10 +257,16 @@
 
 @item @code{menuBar} (class @code{MenuBar})
 @cindex menu bar
-Give frames menu bars if @samp{on}; don't have menu bars if
-@samp{off}.  @xref{Lucid Resources}, and @ref{LessTif Resources}, for
-how to control the appearance of the menu bar if you have one.
+Give frames menu bars if @samp{on}; don't have menu bars if @samp{off}.
+@ifnottex
+@xref{Lucid Resources}, and @ref{LessTif Resources},
+@end ifnottex
+@iftex
+@xref{Lucid Resources},
+@end iftex
+for how to control the appearance of the menu bar if you have one.
 
+@ifnottex
 @item @code{minibuffer} (class @code{Minibuffer})
 If @samp{none}, don't make a minibuffer in this frame.
 It will use a separate minibuffer frame instead.
@@ -230,10 +274,12 @@
 @item @code{paneFont} (class @code{Font})
 @cindex font for menus
 Font name for menu pane titles, in non-toolkit versions of Emacs.
+@end ifnottex
 
 @item @code{pointerColor} (class @code{Foreground})
 Color of the mouse cursor.
 
+@ifnottex
 @item @code{privateColormap} (class @code{PrivateColormap})
 If @samp{on}, use a private color map, in the case where the ``default
 visual'' of class PseudoColor and Emacs is using it.
@@ -241,12 +287,14 @@
 @item @code{reverseVideo} (class @code{ReverseVideo})
 Switch foreground and background default colors if @samp{on}, use colors as
 specified if @samp{off}.
+@end ifnottex
 
 @item @code{screenGamma} (class @code{ScreenGamma})
 @cindex gamma correction
 Gamma correction for colors, equivalent to the frame parameter
 @code{screen-gamma}.
 
+@ifnottex
 @item @code{selectionFont} (class @code{SelectionFont})
 Font name for pop-up menu items, in non-toolkit versions of Emacs.  (For
 toolkit versions, see @ref{Lucid Resources}, also see @ref{LessTif
@@ -262,6 +310,7 @@
 @cindex synchronous X mode
 Run Emacs in synchronous mode if @samp{on}.  Synchronous mode is
 useful for debugging X problems.
+@end ifnottex
 
 @item @code{title} (class @code{Title})
 Name to display in the title bar of the initial Emacs frame.
@@ -286,6 +335,7 @@
 Give frames scroll bars if @samp{on}; don't have scroll bars if
 @samp{off}.
 
+@ifnottex
 @item @code{visualClass} (class @code{VisualClass})
 Specify the ``visual'' that X should use.  This tells X how to handle
 colors.
@@ -296,6 +346,7 @@
 @samp{-@var{depth}}, where @var{depth} is the number of color planes.
 Most terminals only allow a few ``visuals,'' and the @samp{dpyinfo}
 program outputs information saying which ones.
+@end ifnottex
 @end table
 
 @node Face Resources
@@ -358,6 +409,7 @@
 @cindex Menu X Resources (Lucid widgets)
 @cindex Lucid Widget X Resources
 
+@ifnottex
   If the Emacs installed at your site was built to use the X toolkit
 with the Lucid menu widgets, then the menu bar is a separate widget and
 has its own resources.  The resource names contain @samp{pane.menubar}
@@ -371,6 +423,14 @@
 @noindent
 For example, to specify the font @samp{8x16} for the menu-bar items,
 write this:
+@end ifnottex
+@iftex
+   If the Emacs installed at your site was built to use the X toolkit
+with the Lucid menu widgets, then the menu bar is a separate widget
+and has its own resources.  The resource specifications start with
+@samp{Emacs.pane.menubar}---for instance, to specify the font
+@samp{8x16} for the menu-bar items, write this:
+@end iftex
 
 @example
 Emacs.pane.menubar.font:  8x16
@@ -378,37 +438,43 @@
 
 @noindent
 Resources for @emph{non-menubar} toolkit pop-up menus have
-@samp{menu*}, in like fashion.  For example, to specify the font
-@samp{8x16} for the pop-up menu items, write this:
+@samp{menu*} instead of @samp{pane.menubar}.  For example, to specify 
+the font @samp{8x16} for the pop-up menu items, write this:
 
 @example
 Emacs.menu*.font:	8x16
 @end example
 
 @noindent
-For dialog boxes, use @samp{dialog} instead of @samp{menu}:
+For dialog boxes, use @samp{dialog*}:
 
 @example
 Emacs.dialog*.font:	8x16
 @end example
 
 @noindent
-The Lucid menus can display multilingual text in your locale.  For more 
-information about fontsets see the man page for XCreateFontSet.  To enable
-multilingual menu text you specify a fontSet resource instead of the font
-resource.  If both font and fontSet resources are specified, the fontSet
-resource is used.  To specify
-@samp{-*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*} for both the popup and
-menu bar menus, write this:
+The Lucid menus can display multilingual text in your locale.  For
+more information about fontsets see the man page for
+@code{XCreateFontSet}.  To enable multilingual menu text you specify a
+@code{fontSet} resource instead of the font resource.  If both
+@code{font} and @code{fontSet} resources are specified, the
+@code{fontSet} resource is used.
+
+  Thus, to specify @samp{-*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*}
+for both the popup and menu bar menus, write this:
 
 @example
-Emacs*fontSet:  -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*
+Emacs*menu*fontSet:  -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*
 @end example
 
 @noindent
+The @samp{*menu*} as a wildcard matches @samp{pane.menubar} and
+@samp{menu@dots{}}.
+
 Experience shows that on some systems you may need to add
 @samp{shell.}@: before the @samp{pane.menubar} or @samp{menu*}.  On
-some other systems, you must not add @samp{shell.}.
+some other systems, you must not add @samp{shell.}.  The generic wildcard
+approach should work on both kinds of systems.
 
   Here is a list of the specific resources for menu bars and pop-up menus:
 
@@ -423,6 +489,7 @@
 Color of the background.
 @item buttonForeground
 In the menu bar, the color of the foreground for a selected item.
+@ifnottex
 @item horizontalSpacing
 Horizontal spacing in pixels between items.  Default is 3.
 @item verticalSpacing
@@ -440,10 +507,12 @@
 this to 2.  If you have no problems with visibility, the default
 probably looks better.  The background color may also have some effect
 on the contrast.
+@end ifnottex
 @item margin
 The margin of the menu bar, in characters.  Default is 1.
 @end table
 
+@ifnottex
 @node LessTif Resources
 @appendixsec LessTif Menu X Resources
 @cindex Menu X Resources (LessTif widgets)
@@ -576,10 +645,145 @@
 @item topShadowColor
 The color for the border shadow, on the top and the left.
 @end table
+@end ifnottex
 
 
 @node GTK resources
 @appendixsec GTK resources
+@iftex
+  The most common way to customize the GTK widgets Emacs uses (menus, dialogs
+tool bars and scroll bars) is by choosing an appropriate theme, for example
+with the GNOME theme selector.  You can also do Emacs specific customization
+by inserting GTK style directives in the file @file{~/.emacs.d/gtkrc}.  Some GTK
+themes ignore customizations in @file{~/.emacs.d/gtkrc} so not everything
+works with all themes.  To customize Emacs font, background, faces, etc., use
+the normal X resources (@pxref{Resources}).  We will present some examples of
+customizations here, but for a more detailed description, see the online manual
+
+  The first example is just one line.  It changes the font on all GTK widgets
+to courier with size 12:
+
+@smallexample
+gtk-font-name = "courier 12"
+@end smallexample
+
+  The thing to note is that the font name is not an X font name, like
+-*-helvetica-medium-r-*--*-120-*-*-*-*-*-*, but a Pango font name.  A Pango
+font name is basically of the format "family style size", where the style
+is optional as in the case above.  A name with a style could be for example:
+
+@smallexample
+gtk-font-name = "helvetica bold 10"
+@end smallexample
+
+  To customize widgets you first define a style and then apply the style to
+the widgets.  Here is an example that sets the font for menus, but not
+for other widgets:
+
+@smallexample
+# @r{Define the style @samp{menufont}.}
+style "menufont"
+@{
+  font_name = "helvetica bold 14"  # This is a Pango font name
+@}
+
+# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.}
+widget "*emacs-menuitem*" style "menufont"
+@end smallexample
+
+The widget name in this example contains wildcards, so the style will be
+applied to all widgets that match "*emacs-menuitem*".  The widgets are
+named by the way they are contained, from the outer widget to the inner widget.
+So to apply the style "my_style" (not shown) with the full, absolute name, for
+the menubar and the scroll bar in Emacs we use:
+
+@smallexample
+widget "Emacs.pane.menubar" style "my_style"
+widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
+@end smallexample
+ 
+But to avoid having to type it all, wildcards are often used.  @samp{*}
+matches zero or more characters and @samp{?} matches one character.  So "*"
+matches all widgets.
+
+  Each widget has a class (for example GtkMenuItem) and a name (emacs-menuitem).
+You can assign styles by name or by class.  In this example we have used the
+class:
+
+@smallexample
+style "menufont"
+@{
+  font_name = "helvetica bold 14"
+@}
+
+widget_class "*GtkMenuBar" style "menufont"
+@end smallexample
+
+@noindent
+The names and classes for the GTK widgets Emacs uses are:
+
+@multitable {@code{verticalScrollbar plus}} {@code{GtkFileSelection} and some}
+@item @code{emacs-filedialog}
+@tab @code{GtkFileSelection}
+@item @code{emacs-dialog}
+@tab @code{GtkDialog}
+@item @code{Emacs}
+@tab @code{GtkWindow}
+@item @code{pane}
+@tab @code{GtkVHbox}
+@item @code{emacs}
+@tab @code{GtkFixed}
+@item @code{verticalScrollBar}
+@tab @code{GtkVScrollbar}
+@item @code{emacs-toolbar}
+@tab @code{GtkToolbar}
+@item @code{menubar}
+@tab @code{GtkMenuBar}
+@item @code{emacs-menuitem}
+@tab anything in menus
+@end multitable
+
+  GTK absolute names are quite strange when it comes to menus
+and dialogs.  The names do not start with @samp{Emacs}, as they are
+free-standing windows and not contained (in the GTK sense) by the
+Emacs GtkWindow.  To customize the dialogs and menus, use wildcards like this:
+
+@smallexample
+widget "*emacs-dialog*" style "my_dialog_style"
+widget "*emacs-filedialog* style "my_file_style"
+widget "*emacs-menuitem* style "my_menu_style"
+@end smallexample
+
+  If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
+automatically applies only to Emacs, since other programs don't read
+that file.  For example, the drop down menu in the file dialog can not
+be customized by any absolute widget name, only by an absolute class
+name.  This is because the widgets in the drop down menu do not
+have names and the menu is not contained in the Emacs GtkWindow.  To
+have all menus in Emacs look the same, use this in
+@file{~/.emacs.d/gtkrc}:
+
+@smallexample
+widget_class "*Menu*" style "my_menu_style"
+@end smallexample
+
+  Here is a more elaborate example, showing how to change the parts of
+the scroll bar:
+
+@smallexample
+style "scroll"
+@{
+  fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
+  bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
+  bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
+  bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
+@}
+
+widget "*verticalScrollBar*" style "scroll"
+@end smallexample
+@end iftex
+
+@ifnottex
 @cindex GTK resources and customization
 @cindex resource files for GTK
 @cindex @file{~/.gtkrc-2.0} file
@@ -996,6 +1200,7 @@
 
 @noindent
 @var{size} is a decimal number that describes the font size in points.
+@end ifnottex
 
 @ignore
    arch-tag: 9b6ff773-48b6-41f6-b2f9-f114b8bdd97f
--- a/msdos/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/msdos/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -617,6 +617,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit-unix
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
--- a/nt/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/nt/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -884,12 +884,12 @@
 1998-04-23  Andrew Innes  <andrewi@harlequin.co.uk>
 
 	* ddeclient.c: New file.  (Support program for performing limited
- 	interprocess communication on Windows.)
+	interprocess communication on Windows.)
 
 	* makefile.nt: Build ddeclient.
 
 	* cmdproxy.c (main): Only set environment size for real shell, and
- 	provide extra directory argument, when running on Windows 95.
+	provide extra directory argument, when running on Windows 95.
 
 1998-04-17  Geoff Voelker  <voelker@cs.washington.edu>
 
@@ -943,7 +943,7 @@
 	(CFLAGS) [!MSVCNT11]: Define _CRTAPI1.
 
 	* runemacs.c (WinMain): Allow Emacs process to be started with
- 	high or low priority.
+	high or low priority.
 
 	* emacs.bat.in: Remove OS dependent operations.
 
@@ -1018,12 +1018,12 @@
 
 1996-06-03  Kim F. Storm  <kfs@olicom.dk>
 
-        * runemacs.c (CHOOSE_NEWEST_EXE): New parameter macro.
+	* runemacs.c (CHOOSE_NEWEST_EXE): New parameter macro.
 	Not defined by default.
 	(WinMain): Add conditional testing CHOOSE_NEWEST_EXE.
 	(WinMain): Convert backslashes to slashes in env var values.
 
-        * addpm.c (env_vars): Use slashes, not backslashes.
+	* addpm.c (env_vars): Use slashes, not backslashes.
 
 1996-05-25  Karl Heuer  <kwzh@gnu.ai.mit.edu>
 
@@ -1037,7 +1037,7 @@
 1996-05-08  Andrew Innes  <andrewi@harlequin.co.uk>
 
 	* addpm.c (env_vars): Set SHELL registry entry to value of COMSPEC
- 	environment variable.
+	environment variable.
 
 1996-05-03  Andrew Innes  <andrewi@harlequin.co.uk>
 
@@ -1198,12 +1198,12 @@
 
 	* ebuild.cmd, emacs.cmd, install.cmd: Changed extension to .bat.
 
-1994-12-13  voelker  <voelker@cs.washington.edu>
+1994-12-13  Geoff Voelker  <voelker@cs.washington.edu>
 
 	* makefile.def (CC): In configuration section.
 	(COMPAT_LIB): Defined.
 
-1994-11-01  voelker  <voelker@cs.washington.edu>
+1994-11-01  Geoff Voelker  <voelker@cs.washington.edu>
 
 	* src/paths.h: New file.
 
@@ -1225,13 +1225,13 @@
 
 	* makefile.nt: New file.
 
-        * makefile.def: New file.
+	* makefile.def: New file.
 
-        * install.cmd: New file.
+	* install.cmd: New file.
 
-        * INSTALL: New file.
+	* INSTALL: New file.
 
-        * fast-install.cmd: New file.
+	* fast-install.cmd: New file.
 
 	* emacs.cmd: New file.
 
@@ -1241,6 +1241,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
--- a/nt/emacs.rc	Tue Nov 21 01:10:47 2006 +0000
+++ b/nt/emacs.rc	Tue Nov 21 08:56:38 2006 +0000
@@ -6,8 +6,8 @@
 #endif
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 22,0,90,0
- PRODUCTVERSION 22,0,90,0
+ FILEVERSION 22,0,91,0
+ PRODUCTVERSION 22,0,91,0
  FILEFLAGSMASK 0x3FL
 #ifdef EMACSDEBUG
  FILEFLAGS 0x1L
@@ -24,12 +24,12 @@
 	BEGIN
 	    VALUE "CompanyName", "Free Software Foundation\0"
 	    VALUE "FileDescription", "GNU Emacs for Windows NT/95/98/2000/ME/XP\0"
-	    VALUE "FileVersion", "22, 0, 90, 0\0"
+	    VALUE "FileVersion", "22, 0, 91, 0\0"
 	    VALUE "InternalName", "Emacs\0"
 	    VALUE "LegalCopyright", "Copyright (C) 2002, 2003, 2004, 2005, 2006\0"
 	    VALUE "OriginalFilename", "emacs.exe"
 	    VALUE "ProductName", "Emacs: The extensible self-documenting text editor\0"
-	    VALUE "ProductVersion", "22, 0, 90, 0\0"
+	    VALUE "ProductVersion", "22, 0, 91, 0\0"
 	    VALUE "OLESelfRegister", "\0"
 	 END
      END
--- a/oldXMenu/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/oldXMenu/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -239,7 +239,7 @@
 
 1993-06-16  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 
-        Bring mumbleclean targets into conformance with GNU coding standards.
+	Bring mumbleclean targets into conformance with GNU coding standards.
 	* Makefile.in (mostlyclean, realclean): New targets.
 
 1993-06-08  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
@@ -296,7 +296,7 @@
 
 1993-05-22  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
 
-        * Version 19.7 released.
+	* Version 19.7 released.
 
 1993-05-15  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
 
@@ -419,9 +419,9 @@
 
 1991-11-16  Noah Friedman  (friedman@nutrimat)
 
-        * copyright.h: New file (copied from X11R4 distribution)
-        * All files: Replaced occurrences of #include <X11/copyright.h>
-          with #include "copyright.h"
+	* copyright.h: New file (copied from X11R4 distribution)
+	* All files: Replaced occurrences of #include <X11/copyright.h>
+	with #include "copyright.h"
 
 1991-10-25  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
@@ -441,6 +441,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit-unix
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,
--- a/src/ChangeLog	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/ChangeLog	Tue Nov 21 08:56:38 2006 +0000
@@ -1,3 +1,130 @@
+2006-11-21  Richard Stallman  <rms@gnu.org>
+
+	* fileio.c: Break line before &&, not after.
+
+2006-11-20  Eli Zaretskii  <eliz@gnu.org>
+
+	* fns.c (concat) [!__GNUC__]: Add prototype.
+
+2006-11-20  Kenichi Handa  <handa@m17n.org>
+
+	* fileio.c (Fread_file_name_internal): Use SBYTES (not SCHARS) to
+	check the tailing slash of a filename.
+
+2006-11-20  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>  (tiny change)
+
+	* indent.c (Fvertical_motion): Include composition in the case of
+	overshoot expected.
+
+2006-11-19  Andreas Schwab  <schwab@gnu.org>
+
+	* xfaces.c (Fdisplay_supports_face_attributes_p): Initialize
+	supports.
+
+	* xmenu.c (Fx_popup_menu): Initialize selection.
+
+2006-11-18  Andreas Schwab  <schwab@suse.de>
+
+	* s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Update call to
+	mark_memory.
+
+2006-11-17  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
+
+	* xterm.c (do_ewmh_fullscreen): Declare variable before XSETFRAME
+	to avoid gcc 2.96 error.
+
+2006-11-17  NIIMI Satoshi  <sa2c@sa2c.net>  (tiny change)
+
+	* search.c (simple_search): In the loop of backward searching,
+	check also the byte position against the limit.
+
+2006-11-14  Romain Francoise  <romain@orebokech.com>
+
+	* minibuf.c (Fcompleting_read): Fix typo in docstring.
+
+2006-11-14  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (code_convert_region): Initialize
+	coding->heading_ascii.
+	(decode_coding_string, code_convert_region): Likewise.
+
+2006-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* config.in: Regenerate.
+
+	* macfns.c (Fx_display_mm_height, Fx_display_mm_width)
+	[MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
+	&& MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
+	CGDisplayScreenSize is available.
+
+	* macmenu.c (menu_quit_handler, install_menu_quit_handler):
+	Replace `#ifdef HAVE_CANCELMENUTRACKING' with
+	`#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030'.
+	(install_menu_quit_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
+	&& MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
+	CancelMenuTracking is available.
+
+	* macterm.c [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
+	[MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
+	&& MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
+	CGContextShowGlyphsWithAdvances is available.
+
+2006-11-13  Jason Rumney  <jasonr@gnu.org>
+
+	* s/ms-w32.h: Define HAVE_INET_SOCKETS.
+
+2006-11-13  Nozomu Ando  <nand@mac.com>
+
+	* alloc.c (mark_memory): New argument OFFSET.  All uses changed.
+	Fix address calculations for case END < START.
+	(mark_stack): Impose Lisp_Object alignment on jmp_buf.
+
+2006-11-12  Juanma Barranquero  <lekktu@gmail.com>
+
+	* coding.c (Fencode_sjis_char, Fencode_big5_char):
+	Improve argument/docstring consistency.
+
+	* editfns.c (Fmessage): Doc fixes.
+
+	* process.c (syms_of_process) <delete-exited-processes>: Doc fix.
+
+2006-11-12  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xmenu.c (popup_activated): Define outside HAVE_MENUS.
+
+2006-11-12  Romain Francoise  <romain@orebokech.com>
+
+	* xselect.c (selection-coding-system): Fix docstring.
+
+2006-11-12  Juanma Barranquero  <lekktu@gmail.com>
+
+	* category.c (Fchar_category_set): Improve arg/docstring consistency.
+
+	* data.c (Flogxor):
+	* fns.c (Frandom, Flength, Fsafe_length, Fstring_bytes)
+	(Fstring_equal, Fcompare_strings, Fstring_lessp, Fcopy_sequence)
+	(Fstring_make_unibyte): Fix typos in docstrings.
+
+2006-11-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xterm.h (struct x_display_info): Fix indentation.
+
+	* xterm.c (do_ewmh_fullscreen, XTfullscreen_hook): New functions.
+	(x_check_fullscreen): Call do_ewmh_fullscreen.
+	(x_initialize): Set fullscreen_hook to XTfullscreen_hook.
+
+	* frame.c (x_set_fullscreen): Call fullscreen_hook if set.
+
+	* term.c: Define fullscreen_hook.
+	(syms_of_term): Initialize fullscreen_hook to NULL.
+
+	* termhooks.h: Add fullscreen_hook.
+
+2006-11-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* bytecode.c (Fbyte_code):
+	* data.c (Fmakunbound): Use SYMBOL_CONSTANT_P macro.
+
 2006-11-06  Juanma Barranquero  <lekktu@gmail.com>
 
 	* lread.c (syms_of_lread):
@@ -716,7 +843,7 @@
 	* editfns.c (Fsystem_name): Mention "host" in the doc string.
 	(syms_of_editfns) <system-name>: Likewise.
 
-2006-08-27  Martin Rudalics  <rudalics@gmx.at>
+2006-09-08  Martin Rudalics  <rudalics@gmx.at>
 
 	* xdisp.c (mouse_autoselect_window): Remove.
 	(Vmouse_autoselect_window): New variable.  DEFVAR_LISP it.
@@ -26367,6 +26494,7 @@
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
+;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 2001, 2002, 2003, 2004, 2005,
--- a/src/alloc.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/alloc.c	Tue Nov 21 08:56:38 2006 +0000
@@ -478,7 +478,7 @@
 static int live_float_p P_ ((struct mem_node *, void *));
 static int live_misc_p P_ ((struct mem_node *, void *));
 static void mark_maybe_object P_ ((Lisp_Object));
-static void mark_memory P_ ((void *, void *));
+static void mark_memory P_ ((void *, void *, int));
 static void mem_init P_ ((void));
 static struct mem_node *mem_insert P_ ((void *, void *, enum mem_type));
 static void mem_insert_fixup P_ ((struct mem_node *));
@@ -4284,11 +4284,13 @@
 }
 
 
-/* Mark Lisp objects referenced from the address range START..END.  */
+/* Mark Lisp objects referenced from the address range START+OFFSET..END
+   or END+OFFSET..START. */
 
 static void
-mark_memory (start, end)
+mark_memory (start, end, offset)
      void *start, *end;
+     int offset;
 {
   Lisp_Object *p;
   void **pp;
@@ -4307,7 +4309,7 @@
     }
 
   /* Mark Lisp_Objects.  */
-  for (p = (Lisp_Object *) start; (void *) p < end; ++p)
+  for (p = (Lisp_Object *) ((char *) start + offset); (void *) p < end; ++p)
     mark_maybe_object (*p);
 
   /* Mark Lisp data pointed to.  This is necessary because, in some
@@ -4328,7 +4330,7 @@
      away.  The only reference to the life string is through the
      pointer `s'.  */
 
-  for (pp = (void **) start; (void *) pp < end; ++pp)
+  for (pp = (void **) ((char *) start + offset); (void *) pp < end; ++pp)
     mark_maybe_pointer (*pp);
 }
 
@@ -4507,7 +4509,11 @@
 mark_stack ()
 {
   int i;
-  jmp_buf j;
+  /* jmp_buf may not be aligned enough on darwin-ppc64 */
+  union aligned_jmpbuf {
+    Lisp_Object o;
+    jmp_buf j;
+  } j;
   volatile int stack_grows_down_p = (char *) &j > (char *) stack_base;
   void *end;
 
@@ -4538,7 +4544,7 @@
     }
 #endif /* GC_SETJMP_WORKS */
 
-  setjmp (j);
+  setjmp (j.j);
   end = stack_grows_down_p ? (char *) &j + sizeof j : (char *) &j;
 #endif /* not GC_SAVE_REGISTERS_ON_STACK */
 
@@ -4553,7 +4559,7 @@
 #endif
 #endif
   for (i = 0; i < sizeof (Lisp_Object); i += GC_LISP_OBJECT_ALIGNMENT)
-    mark_memory ((char *) stack_base + i, end);
+    mark_memory (stack_base, end, i);
   /* Allow for marking a secondary stack, like the register stack on the
      ia64.  */
 #ifdef GC_MARK_SECONDARY_STACK
--- a/src/bytecode.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/bytecode.c	Tue Nov 21 08:56:38 2006 +0000
@@ -597,7 +597,7 @@
 	    if (SYMBOLP (sym)
 		&& !EQ (val, Qunbound)
 		&& !XSYMBOL (sym)->indirect_variable
-		&& !XSYMBOL (sym)->constant
+		&& !SYMBOL_CONSTANT_P (sym)
 		&& !MISCP (XSYMBOL (sym)->value))
 	      XSYMBOL (sym)->value = val;
 	    else
--- a/src/category.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/category.c	Tue Nov 21 08:56:38 2006 +0000
@@ -280,7 +280,8 @@
 }
 
 DEFUN ("char-category-set", Fchar_category_set, Schar_category_set, 1, 1, 0,
-       doc: /* Return the category set of CHAR.  */)
+       doc: /* Return the category set of CHAR.
+usage: (char-category-set CHAR)  */)
      (ch)
      Lisp_Object ch;
 {
--- a/src/coding.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/coding.c	Tue Nov 21 08:56:38 2006 +0000
@@ -8184,7 +8184,7 @@
 
 
 DEFUN ("encode-sjis-char", Fencode_sjis_char, Sencode_sjis_char, 1, 1, 0,
-       doc: /* Encode a Japanese character CHAR to shift_jis encoding.
+       doc: /* Encode a Japanese character CH to shift_jis encoding.
 Return the corresponding code in SJIS.  */)
      (ch)
     Lisp_Object ch;
@@ -8252,7 +8252,7 @@
 }
 
 DEFUN ("encode-big5-char", Fencode_big5_char, Sencode_big5_char, 1, 1, 0,
-       doc: /* Encode the Big5 character CHAR to BIG5 coding system.
+       doc: /* Encode the Big5 character CH to BIG5 coding system.
 Return the corresponding character code in Big5.  */)
      (ch)
      Lisp_Object ch;
--- a/src/config.in	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/config.in	Tue Nov 21 08:56:38 2006 +0000
@@ -99,9 +99,6 @@
 /* Define to 1 if you have the `bzero' function. */
 #undef HAVE_BZERO
 
-/* Define to 1 if CancelMenuTracking is available (Mac OSX). */
-#undef HAVE_CANCELMENUTRACKING
-
 /* Define to 1 if you are using the Carbon API on Mac OS X. */
 #undef HAVE_CARBON
 
--- a/src/data.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/data.c	Tue Nov 21 08:56:38 2006 +0000
@@ -606,7 +606,7 @@
      register Lisp_Object symbol;
 {
   CHECK_SYMBOL (symbol);
-  if (XSYMBOL (symbol)->constant)
+  if (SYMBOL_CONSTANT_P (symbol))
     xsignal1 (Qsetting_constant, symbol);
   Fset (symbol, Qunbound);
   return symbol;
@@ -2673,7 +2673,7 @@
 DEFUN ("logxor", Flogxor, Slogxor, 0, MANY, 0,
        doc: /* Return bitwise-exclusive-or of all the arguments.
 Arguments may be integers, or markers converted to integers.
-usage: (logxor &rest INTS-OR-MARKERS) */)
+usage: (logxor &rest INTS-OR-MARKERS)  */)
      (nargs, args)
      int nargs;
      Lisp_Object *args;
--- a/src/editfns.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/editfns.c	Tue Nov 21 08:56:38 2006 +0000
@@ -3303,9 +3303,10 @@
 static int message_length;
 
 DEFUN ("message", Fmessage, Smessage, 1, MANY, 0,
-       doc: /* Print a one-line message at the bottom of the screen.
+       doc: /* Display a message at the bottom of the screen.
 The message also goes into the `*Messages*' buffer.
 \(In keyboard macros, that's all it does.)
+Return the message.
 
 The first argument is a format control string, and the rest are data
 to be formatted under control of the string.  See `format' for details.
--- a/src/fileio.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/fileio.c	Tue Nov 21 08:56:38 2006 +0000
@@ -1252,9 +1252,9 @@
 	      }
 	    else
 #endif /* NO_HYPHENS_IN_FILENAMES */
-	      if (lbrack > rbrack &&
-		  ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<') &&
-		   (p[1] == '.' || p[1] == ']' || p[1] == '>')))
+	      if (lbrack > rbrack
+		  && ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<')
+		      && (p[1] == '.' || p[1] == ']' || p[1] == '>')))
 		lose = 1;
 #ifdef NO_HYPHENS_IN_FILENAMES
 	      else
@@ -1623,8 +1623,8 @@
 	  else if (*p == '-' && *o != '.')
 	    *--p = '.';
 	}
-      else if (p[0] == '-' && o[-1] == '.' &&
-	       (p[1] == '.' || p[1] == ']' || p[1] == '>'))
+      else if (p[0] == '-' && o[-1] == '.'
+	       && (p[1] == '.' || p[1] == ']' || p[1] == '>'))
 	/* flush .foo.- ; leave - if stopped by '[' or '<' */
 	{
 	  do
@@ -1639,9 +1639,9 @@
       else
 	{
 #ifdef NO_HYPHENS_IN_FILENAMES
-	  if (*p == '-' &&
-	      o[-1] != '[' && o[-1] != '<' && o[-1] != '.' &&
-	      p[1] != ']' && p[1] != '>' && p[1] != '.')
+	  if (*p == '-'
+	      && o[-1] != '[' && o[-1] != '<' && o[-1] != '.'
+	      && p[1] != ']' && p[1] != '>' && p[1] != '.')
 	    *p = '_';
 #endif /* NO_HYPHENS_IN_FILENAMES */
 	  *o++ = *p++;
@@ -1824,9 +1824,9 @@
 	      }
 	    else
 #endif /* VMS4_4 */
-	      if (lbrack > rbrack &&
-		  ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<') &&
-		   (p[1] == '.' || p[1] == ']' || p[1] == '>')))
+	      if (lbrack > rbrack
+		  && ((p[-1] == '.' || p[-1] == '[' || p[-1] == '<')
+		      && (p[1] == '.' || p[1] == ']' || p[1] == '>')))
 		lose = 1;
 #ifndef VMS4_4
 	      else
@@ -1995,8 +1995,8 @@
 	  else if (*p == '-' && *o != '.')
 	    *--p = '.';
 	}
-      else if (p[0] == '-' && o[-1] == '.' &&
-	       (p[1] == '.' || p[1] == ']' || p[1] == '>'))
+      else if (p[0] == '-' && o[-1] == '.'
+	       && (p[1] == '.' || p[1] == ']' || p[1] == '>'))
 	/* flush .foo.- ; leave - if stopped by '[' or '<' */
 	{
 	  do
@@ -2011,9 +2011,9 @@
       else
 	{
 #ifndef VMS4_4
-	  if (*p == '-' &&
-	      o[-1] != '[' && o[-1] != '<' && o[-1] != '.' &&
-	      p[1] != ']' && p[1] != '>' && p[1] != '.')
+	  if (*p == '-'
+	      && o[-1] != '[' && o[-1] != '<' && o[-1] != '.'
+	      && p[1] != ']' && p[1] != '>' && p[1] != '.')
 	    *p = '_';
 #endif /* VMS4_4 */
 	  *o++ = *p++;
@@ -2033,8 +2033,8 @@
 	  o = target;
 	  p++;
 	}
-      else if (p[0] == '/' && p[1] == '.' &&
-	       (p[2] == '/' || p[2] == 0))
+      else if (p[0] == '/' && p[1] == '.'
+	       && (p[2] == '/' || p[2] == 0))
 	p += 2;
       else if (!strncmp (p, "/..", 3)
 	       /* `/../' is the "superroot" on certain file systems.  */
--- a/src/fns.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/fns.c	Tue Nov 21 08:56:38 2006 +0000
@@ -103,7 +103,7 @@
 All integers representable in Lisp are equally likely.
   On most systems, this is 29 bits' worth.
 With positive integer argument N, return random number in interval [0,N).
-With argument t, set the random number seed from the current time and pid. */)
+With argument t, set the random number seed from the current time and pid.  */)
      (n)
      Lisp_Object n;
 {
@@ -140,7 +140,7 @@
 A byte-code function object is also allowed.
 If the string contains multibyte characters, this is not necessarily
 the number of bytes in the string; it is the number of characters.
-To get the number of bytes, use `string-bytes'. */)
+To get the number of bytes, use `string-bytes'.  */)
      (sequence)
      register Lisp_Object sequence;
 {
@@ -191,7 +191,7 @@
        doc: /* Return the length of a list, but avoid error or infinite loop.
 This function never gets an error.  If LIST is not really a list,
 it returns 0.  If LIST is circular, it returns a finite value
-which is at least the number of distinct elements. */)
+which is at least the number of distinct elements.  */)
      (list)
      Lisp_Object list;
 {
@@ -215,7 +215,7 @@
 
 DEFUN ("string-bytes", Fstring_bytes, Sstring_bytes, 1, 1, 0,
        doc: /* Return the number of bytes in STRING.
-If STRING is multibyte, this may be greater than the length of STRING. */)
+If STRING is multibyte, this may be greater than the length of STRING.  */)
      (string)
      Lisp_Object string;
 {
@@ -226,7 +226,7 @@
 DEFUN ("string-equal", Fstring_equal, Sstring_equal, 2, 2, 0,
        doc: /* Return t if two strings have identical contents.
 Case is significant, but text properties are ignored.
-Symbols are also allowed; their print names are used instead. */)
+Symbols are also allowed; their print names are used instead.  */)
      (s1, s2)
      register Lisp_Object s1, s2;
 {
@@ -258,7 +258,7 @@
 If string STR1 is less, the value is a negative number N;
   - 1 - N is the number of characters that match at the beginning.
 If string STR1 is greater, the value is a positive number N;
-  N - 1 is the number of characters that match at the beginning. */)
+  N - 1 is the number of characters that match at the beginning.  */)
      (str1, start1, end1, str2, start2, end2, ignore_case)
      Lisp_Object str1, start1, end1, start2, str2, end2, ignore_case;
 {
@@ -350,7 +350,7 @@
 DEFUN ("string-lessp", Fstring_lessp, Sstring_lessp, 2, 2, 0,
        doc: /* Return t if first arg string is less than second in lexicographic order.
 Case is significant.
-Symbols are also allowed; their print names are used instead. */)
+Symbols are also allowed; their print names are used instead.  */)
      (s1, s2)
      register Lisp_Object s1, s2;
 {
@@ -390,6 +390,8 @@
    the arguments for the invocations of this function, whereas it
    expects these values on the stack.  */
 static Lisp_Object concat () __attribute__((noinline));
+#else  /* !__GNUC__ */
+static Lisp_Object concat ();
 #endif
 
 /* ARGSUSED */
@@ -464,7 +466,7 @@
 DEFUN ("copy-sequence", Fcopy_sequence, Scopy_sequence, 1, 1, 0,
        doc: /* Return a copy of a list, vector, string or char-table.
 The elements of a list or vector are not copied; they are shared
-with the original. */)
+with the original.  */)
      (arg)
      Lisp_Object arg;
 {
@@ -1031,7 +1033,7 @@
 Multibyte character codes are converted to unibyte according to
 `nonascii-translation-table' or, if that is nil, `nonascii-insert-offset'.
 If the lookup in the translation table fails, this function takes just
-the low 8 bits of each character. */)
+the low 8 bits of each character.  */)
      (string)
      Lisp_Object string;
 {
--- a/src/frame.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/frame.c	Tue Nov 21 08:56:38 2006 +0000
@@ -3047,6 +3047,9 @@
     f->want_fullscreen = FULLSCREEN_WIDTH;
   else if (EQ (new_value, Qfullheight))
     f->want_fullscreen = FULLSCREEN_HEIGHT;
+
+  if (fullscreen_hook != NULL) 
+    fullscreen_hook (f);
 }
 
 
--- a/src/indent.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/indent.c	Tue Nov 21 08:56:38 2006 +0000
@@ -2088,10 +2088,10 @@
       it_start = IT_CHARPOS (it);
 
       /* We expect the call to move_it_to, further down, to overshoot
-	 if the starting point is on an image, stretch glyph, or Lisp
-	 string.  We won't need to backtrack in this situation, except
-	 for one corner case: when the Lisp string contains a
-	 newline.  */
+	 if the starting point is on an image, stretch glyph,
+	 composition, or Lisp string.  We won't need to backtrack in
+	 this situation, except for one corner case: when the Lisp
+	 string contains a newline.  */
       if (it.method == GET_FROM_STRING)
 	{
 	  const char *s = SDATA (it.string);
@@ -2104,7 +2104,8 @@
 	}
       else
 	it_overshoot_expected_p = (it.method == GET_FROM_IMAGE
-				   || it.method == GET_FROM_STRETCH);
+				   || it.method == GET_FROM_STRETCH
+				   || it.method == GET_FROM_COMPOSITION);
 
       reseat_at_previous_visible_line_start (&it);
       it.current_x = it.hpos = 0;
--- a/src/macfns.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/macfns.c	Tue Nov 21 08:56:38 2006 +0000
@@ -3092,18 +3092,30 @@
      Lisp_Object display;
 {
   struct mac_display_info *dpyinfo = check_x_display_info (display);
+
   /* Only of the main display.  */
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
-  CGSize size;
-
-  BLOCK_INPUT;
-  size = CGDisplayScreenSize (kCGDirectMainDisplay);
-  UNBLOCK_INPUT;
-
-  return make_number ((int) (size.height + .5f));
-#else
-  /* This is an approximation.  */
-  return make_number ((int) (dpyinfo->height * 25.4 / dpyinfo->resy));
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  if (CGDisplayScreenSize != NULL)
+#endif
+    {
+      CGSize size;
+
+      BLOCK_INPUT;
+      size = CGDisplayScreenSize (kCGDirectMainDisplay);
+      UNBLOCK_INPUT;
+
+      return make_number ((int) (size.height + .5f));
+    }
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  else
+#endif
+#endif	/* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030  */
+#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+    {
+      /* This is an approximation.  */
+      return make_number ((int) (dpyinfo->height * 25.4 / dpyinfo->resy));
+    }
 #endif
 }
 
@@ -3116,18 +3128,30 @@
      Lisp_Object display;
 {
   struct mac_display_info *dpyinfo = check_x_display_info (display);
+
   /* Only of the main display.  */
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
-  CGSize size;
-
-  BLOCK_INPUT;
-  size = CGDisplayScreenSize (kCGDirectMainDisplay);
-  UNBLOCK_INPUT;
-
-  return make_number ((int) (size.width + .5f));
-#else
-  /* This is an approximation.  */
-  return make_number ((int) (dpyinfo->width * 25.4 / dpyinfo->resx));
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  if (CGDisplayScreenSize != NULL)
+#endif
+    {
+      CGSize size;
+
+      BLOCK_INPUT;
+      size = CGDisplayScreenSize (kCGDirectMainDisplay);
+      UNBLOCK_INPUT;
+
+      return make_number ((int) (size.width + .5f));
+    }
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  else
+#endif
+#endif	/* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030  */
+#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+    {
+      /* This is an approximation.  */
+      return make_number ((int) (dpyinfo->width * 25.4 / dpyinfo->resx));
+    }
 #endif
 }
 
--- a/src/macmenu.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/macmenu.c	Tue Nov 21 08:56:38 2006 +0000
@@ -319,7 +319,7 @@
   menu_items_used = XINT (XCAR (saved));
   saved = XCDR (saved);
   menu_items_n_panes = XINT (XCAR (saved));
-  saved = XCDR (saved);  
+  saved = XCDR (saved);
   menu_items_submenu_depth = XINT (XCAR (saved));
   return Qnil;
 }
@@ -1453,7 +1453,7 @@
 /* Event handler function that pops down a menu on C-g.  We can only pop
    down menus if CancelMenuTracking is present (OSX 10.3 or later).  */
 
-#ifdef HAVE_CANCELMENUTRACKING
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
 static pascal OSStatus
 menu_quit_handler (nextHandler, theEvent, userData)
      EventHandlerCallRef nextHandler;
@@ -1487,7 +1487,7 @@
 
   return CallNextEventHandler (nextHandler, theEvent);
 }
-#endif /* HAVE_CANCELMENUTRACKING */
+#endif	/* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
 
 /* Add event handler to all menus that belong to KIND so we can detect C-g.
    MENU_HANDLE is the root menu of the tracking session to dismiss
@@ -1499,11 +1499,15 @@
      enum mac_menu_kind kind;
      MenuHandle menu_handle;
 {
-#ifdef HAVE_CANCELMENUTRACKING
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
   static const EventTypeSpec typesList[] =
     {{kEventClassKeyboard, kEventRawKeyDown}};
   int id;
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  if (CancelMenuTracking == NULL)
+    return;
+#endif
   for (id = min_menu_id[kind]; id < min_menu_id[kind + 1]; id++)
     {
       MenuHandle menu = GetMenuHandle (id);
@@ -1512,9 +1516,9 @@
 	break;
       InstallMenuEventHandler (menu, menu_quit_handler,
 			       GetEventTypeCount (typesList),
-                               typesList, menu_handle, NULL);
+			       typesList, menu_handle, NULL);
     }
-#endif /* HAVE_CANCELMENUTRACKING */
+#endif	/* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
 }
 
 /* Set the contents of the menubar widgets of frame F.
--- a/src/macterm.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/macterm.c	Tue Nov 21 08:56:38 2006 +0000
@@ -1362,20 +1362,31 @@
   if (GC_FONT (gc)->mac_fontsize <= cg_text_anti_aliasing_threshold)
     CGContextSetShouldAntialias (context, false);
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
-  CGContextSetTextPosition (context, gx, gy);
-  CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars);
-  if (overstrike_p)
-    {
-      CGContextSetTextPosition (context, gx + 1.0f, gy);
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  if (CGContextShowGlyphsWithAdvances != NULL)
+#endif
+    {
+      CGContextSetTextPosition (context, gx, gy);
       CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars);
-    }
-#else
-  for (i = 0; i < nchars; i++)
-    {
-      CGContextShowGlyphsAtPoint (context, gx, gy, glyphs + i, 1);
       if (overstrike_p)
-	CGContextShowGlyphsAtPoint (context, gx + 1.0f, gy, glyphs + i, 1);
-      gx += advances[i].width;
+	{
+	  CGContextSetTextPosition (context, gx + 1.0f, gy);
+	  CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars);
+	}
+    }
+#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+  else
+#endif
+#endif	/* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030  */
+#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
+    {
+      for (i = 0; i < nchars; i++)
+	{
+	  CGContextShowGlyphsAtPoint (context, gx, gy, glyphs + i, 1);
+	  if (overstrike_p)
+	    CGContextShowGlyphsAtPoint (context, gx + 1.0f, gy, glyphs + i, 1);
+	  gx += advances[i].width;
+	}
     }
 #endif
 #if USE_CG_DRAWING
--- a/src/minibuf.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/minibuf.c	Tue Nov 21 08:56:38 2006 +0000
@@ -1683,7 +1683,7 @@
 DEFUN ("completing-read", Fcompleting_read, Scompleting_read, 2, 8, 0,
        doc: /* Read a string in the minibuffer, with completion.
 PROMPT is a string to prompt with; normally it ends in a colon and a space.
-TABLE can be an list of strings, an alist, an obarray or a hash table.
+TABLE can be a list of strings, an alist, an obarray or a hash table.
 TABLE can also be a function to do the completion itself.
 PREDICATE limits completion to a subset of TABLE.
 See `try-completion' and `all-completions' for more details
--- a/src/process.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/process.c	Tue Nov 21 08:56:38 2006 +0000
@@ -7060,7 +7060,7 @@
 
   DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,
 	       doc: /* *Non-nil means delete processes immediately when they exit.
-nil means don't delete them until `list-processes' is run.  */);
+A value of nil means don't delete them until `list-processes' is run.  */);
 
   delete_exited_processes = 1;
 
--- a/src/s/gnu-linux.h	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/s/gnu-linux.h	Tue Nov 21 08:56:38 2006 +0000
@@ -377,7 +377,7 @@
     extern void *__libc_ia64_register_backing_store_base;	\
     __builtin_ia64_flushrs ();					\
     mark_memory (__libc_ia64_register_backing_store_base,	\
-		 __builtin_ia64_bsp ());			\
+		 __builtin_ia64_bsp (), 0);			\
   } while (0)
 #endif
 #endif
--- a/src/s/ms-w32.h	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/s/ms-w32.h	Tue Nov 21 08:56:38 2006 +0000
@@ -279,7 +279,7 @@
 #define HAVE_STRFTIME 1
 
 #define LOCALTIME_CACHE
-#undef  HAVE_INET_SOCKETS
+#define HAVE_INET_SOCKETS 1
 
 #undef  HAVE_AIX_SMT_EXP
 
--- a/src/search.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/search.c	Tue Nov 21 08:56:38 2006 +0000
@@ -1534,7 +1534,7 @@
 	    int this_len = len;
 	    unsigned char *p = pat;
 
-	    if (pos - len < lim)
+	    if (this_pos < lim || this_pos_byte < lim_byte)
 	      goto stop;
 
 	    while (this_len > 0)
--- a/src/term.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/term.c	Tue Nov 21 08:56:38 2006 +0000
@@ -193,6 +193,11 @@
 
 void (*frame_raise_lower_hook) P_ ((FRAME_PTR f, int raise));
 
+/* If the value of the frame parameter changed, whis hook is called.
+   For example, if going from fullscreen to not fullscreen this hook
+   may do something OS dependent, like extended window manager hints on X11.  */
+void (*fullscreen_hook) P_ ((struct frame *f));
+
 /* Set the vertical scroll bar for WINDOW to have its upper left corner
    at (TOP, LEFT), and be LENGTH rows high.  Set its handle to
    indicate that we are displaying PORTION characters out of a total
@@ -2876,6 +2881,8 @@
   defsubr (&Stty_display_color_p);
   defsubr (&Stty_display_color_cells);
   defsubr (&Stty_no_underline);
+
+  fullscreen_hook = NULL;
 }
 
 /* arch-tag: 498e7449-6f2e-45e2-91dd-b7d4ca488193
--- a/src/termhooks.h	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/termhooks.h	Tue Nov 21 08:56:38 2006 +0000
@@ -120,6 +120,11 @@
    windows.  */
 extern void (*frame_raise_lower_hook) P_ ((struct frame *f, int raise));
 
+/* If the value of the frame parameter changed, whis hook is called.
+   For example, if going from fullscreen to not fullscreen this hook
+   may do something OS dependent, like extended window manager hints on X11.  */
+extern void (*fullscreen_hook) P_ ((struct frame *f));
+
 
 /* Scroll bar hooks.  */
 
--- a/src/xfaces.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/xfaces.c	Tue Nov 21 08:56:38 2006 +0000
@@ -6587,7 +6587,7 @@
   (attributes, display)
      Lisp_Object attributes, display;
 {
-  int supports, i;
+  int supports = 0, i;
   Lisp_Object frame;
   struct frame *f;
   struct face *def_face;
--- a/src/xmenu.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/xmenu.c	Tue Nov 21 08:56:38 2006 +0000
@@ -822,7 +822,7 @@
   int xpos = 0, ypos = 0;
   Lisp_Object title;
   char *error_name = NULL;
-  Lisp_Object selection;
+  Lisp_Object selection = Qnil;
   FRAME_PTR f = NULL;
   Lisp_Object x, y, window;
   int keymaps = 0;
@@ -1488,14 +1488,6 @@
   f->output_data.x->saved_menu_event->type = 0;
 }
 
-/* Detect if a dialog or menu has been posted.  */
-
-int
-popup_activated ()
-{
-  return popup_activated_flag;
-}
-
 /* This callback is invoked when the user selects a menubar cascade
    pushbutton, but before the pulldown menu is posted.  */
 
@@ -3762,6 +3754,13 @@
 
 #endif /* HAVE_MENUS */
 
+/* Detect if a dialog or menu has been posted.  */
+
+int
+popup_activated ()
+{
+  return popup_activated_flag;
+}
 
 /* The following is used by delayed window autoselection.  */
 
--- a/src/xselect.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/xselect.c	Tue Nov 21 08:56:38 2006 +0000
@@ -123,8 +123,8 @@
 
 static Lisp_Object Vx_lost_selection_functions;
 static Lisp_Object Vx_sent_selection_functions;
-/* Coding system for communicating with other X clients via cutbuffer,
-   selection, and clipboard.  */
+/* Coding system for communicating with other X clients via selection
+   and clipboard.  */
 static Lisp_Object Vselection_coding_system;
 
 /* Coding system for the next communicating with other X clients.  */
@@ -2975,8 +2975,8 @@
 
   DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system,
 	       doc: /* Coding system for communicating with other X clients.
-When sending or receiving text via cut_buffer, selection, and clipboard,
-the text is encoded or decoded by this coding system.
+When sending or receiving text via selection and clipboard, the text is
+encoded or decoded by this coding system.
 The default value is `compound-text-with-extensions'.  */);
   Vselection_coding_system = intern ("compound-text-with-extensions");
 
--- a/src/xterm.c	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/xterm.c	Tue Nov 21 08:56:38 2006 +0000
@@ -8595,6 +8595,119 @@
   UNBLOCK_INPUT;
 }
 
+/* Do fullscreen as specified in extended window manager hints */
+static int
+do_ewmh_fullscreen (f)
+     struct frame *f;
+{
+  int have_net_atom = FRAME_X_DISPLAY_INFO (f)->have_net_atoms;
+
+  if (!have_net_atom)
+    {
+      int num;
+      Atom *atoms = XListProperties (FRAME_X_DISPLAY (f),
+                                     FRAME_X_DISPLAY_INFO (f)->root_window,
+                                     &num);
+      if (atoms && num > 0) 
+        {
+          char **names = (char **) xmalloc (num * sizeof(*names));
+          if (XGetAtomNames (FRAME_X_DISPLAY (f), atoms, num, names)) 
+            {
+              int i;
+              for (i = 0; i < num; ++i) 
+                {
+                  if (!have_net_atom) 
+                    have_net_atom = strncmp (names[i], "_NET_", 5) == 0;
+                  XFree (names[i]);
+                }
+            }
+          xfree (names);
+        }
+      if (atoms)
+        XFree (atoms);
+
+      FRAME_X_DISPLAY_INFO (f)->have_net_atoms = have_net_atom;
+    }
+
+  if (have_net_atom) 
+    {
+      Lisp_Object frame;
+      const char *atom = "_NET_WM_STATE";
+      const char *fs = "_NET_WM_STATE_FULLSCREEN";
+      const char *fw = "_NET_WM_STATE_MAXIMIZED_HORZ";
+      const char *fh = "_NET_WM_STATE_MAXIMIZED_VERT";
+      const char *what = NULL;
+
+      XSETFRAME (frame, f);
+
+      /* If there are _NET_ atoms we assume we have extended window manager
+         hints.  */
+      switch (f->want_fullscreen) 
+        {
+        case FULLSCREEN_BOTH:
+          what = fs;
+          break;
+        case FULLSCREEN_WIDTH:
+          what = fw;
+          break;
+        case FULLSCREEN_HEIGHT:
+          what = fh;
+          break;
+        }
+
+      Fx_send_client_event (frame, make_number (0), frame,
+                            make_unibyte_string (atom, strlen (atom)),
+                            make_number (32),
+                            Fcons (make_number (0), /* Remove */
+                                   Fcons
+                                   (make_unibyte_string (fs,
+                                                         strlen (fs)),
+                                    Qnil)));
+      Fx_send_client_event (frame, make_number (0), frame,
+                            make_unibyte_string (atom, strlen (atom)),
+                            make_number (32),
+                            Fcons (make_number (0), /* Remove */
+                                   Fcons
+                                   (make_unibyte_string (fh,
+                                                         strlen (fh)),
+                                    Qnil)));
+      Fx_send_client_event (frame, make_number (0), frame,
+                            make_unibyte_string (atom, strlen (atom)),
+                            make_number (32),
+                            Fcons (make_number (0), /* Remove */
+                                   Fcons
+                                   (make_unibyte_string (fw,
+                                                         strlen (fw)),
+                                    Qnil)));
+      f->want_fullscreen = FULLSCREEN_NONE;
+      if (what != NULL)
+        Fx_send_client_event (frame, make_number (0), frame,
+                              make_unibyte_string (atom, strlen (atom)),
+                              make_number (32),
+                              Fcons (make_number (1), /* Add */
+                                     Fcons
+                                     (make_unibyte_string (what,
+                                                           strlen (what)),
+                                      Qnil)));
+    }
+
+  return have_net_atom;
+}
+
+static void
+XTfullscreen_hook (f)
+     FRAME_PTR f;
+{
+  if (f->async_visible) 
+    {
+      BLOCK_INPUT;
+      do_ewmh_fullscreen (f);
+      x_sync (f);
+      UNBLOCK_INPUT;
+    }
+}
+
+
 /* Check if we need to resize the frame due to a fullscreen request.
    If so needed, resize the frame. */
 static void
@@ -8605,6 +8718,9 @@
     {
       int width, height, ign;
 
+      if (do_ewmh_fullscreen (f)) 
+        return;
+
       x_real_positions (f, &f->left_pos, &f->top_pos);
 
       x_fullscreen_adjust (f, &width, &height, &ign, &ign);
@@ -11398,6 +11514,7 @@
   condemn_scroll_bars_hook = XTcondemn_scroll_bars;
   redeem_scroll_bar_hook = XTredeem_scroll_bar;
   judge_scroll_bars_hook = XTjudge_scroll_bars;
+  fullscreen_hook = XTfullscreen_hook;
 
   scroll_region_ok = 1;		/* we'll scroll partial frames */
   char_ins_del_ok = 1;
--- a/src/xterm.h	Tue Nov 21 01:10:47 2006 +0000
+++ b/src/xterm.h	Tue Nov 21 08:56:38 2006 +0000
@@ -391,10 +391,12 @@
     } wm_type;
 
 
-    /* Atoms that are drag and drop atoms */
-    Atom *x_dnd_atoms;
-    size_t x_dnd_atoms_size;
-    size_t x_dnd_atoms_length;
+  /* Atoms that are drag and drop atoms */
+  Atom *x_dnd_atoms;
+  size_t x_dnd_atoms_size;
+  size_t x_dnd_atoms_length;
+
+  int have_net_atoms;
 };
 
 #ifdef HAVE_X_I18N