changeset 90796:4ef881a120fe

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 675-697) - Update from CVS - Merge from gnus--rel--5.10 - Release ERC 5.2. * gnus--rel--5.10 (patch 211-215) - Update from CVS - Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-189
author Miles Bader <miles@gnu.org>
date Wed, 11 Apr 2007 00:17:47 +0000
parents b9182b6a90c9 (current diff) b64b5f4be390 (diff)
children b74794d7f11a
files AUTHORS ChangeLog admin/FOR-RELEASE admin/notes/copyright configure configure.in etc/ChangeLog etc/DEBUG etc/MACHINES etc/Makefile etc/NEWS etc/PROBLEMS etc/TODO etc/fr-refcard.tex lib-src/makefile.w32-in lisp/ChangeLog lisp/autorevert.el lisp/button.el lisp/calendar/calendar.el lisp/calendar/diary-lib.el lisp/comint.el lisp/compare-w.el lisp/complete.el lisp/cus-start.el lisp/desktop.el lisp/diff-mode.el lisp/dired-x.el lisp/dos-w32.el lisp/emacs-lisp/authors.el lisp/emacs-lisp/byte-opt.el lisp/emacs-lisp/bytecomp.el lisp/emacs-lisp/edebug.el lisp/emacs-lisp/ewoc.el lisp/emacs-lisp/lisp-mode.el lisp/emacs-lisp/lisp.el lisp/emacs-lisp/sregex.el lisp/emacs-lisp/testcover.el lisp/emacs-lisp/timer.el lisp/emacs-lisp/warnings.el lisp/emulation/viper.el lisp/eshell/esh-proc.el lisp/expand.el lisp/faces.el lisp/ffap.el lisp/files.el lisp/font-lock.el lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/gnus-msg.el lisp/gnus/message.el lisp/gnus/nnmail.el lisp/help.el lisp/ido.el lisp/info.el lisp/international/mule.el lisp/isearch.el lisp/ldefs-boot.el lisp/loadhist.el lisp/mail/rmail.el lisp/mail/sendmail.el lisp/mail/smtpmail.el lisp/man.el lisp/menu-bar.el lisp/mouse.el lisp/net/tls.el lisp/net/tramp.el lisp/newcomment.el lisp/pcomplete.el lisp/play/5x5.el lisp/play/animate.el lisp/play/dissociate.el lisp/play/doctor.el lisp/play/gomoku.el lisp/play/landmark.el lisp/play/tetris.el lisp/play/zone.el lisp/progmodes/cc-awk.el lisp/progmodes/cc-cmds.el lisp/progmodes/cc-defs.el lisp/progmodes/cc-engine.el lisp/progmodes/cc-fonts.el lisp/progmodes/cc-langs.el lisp/progmodes/cc-mode.el lisp/progmodes/cc-vars.el lisp/progmodes/compile.el lisp/progmodes/cperl-mode.el lisp/progmodes/dcl-mode.el lisp/progmodes/gdb-ui.el lisp/progmodes/grep.el lisp/progmodes/gud.el lisp/progmodes/hideshow.el lisp/progmodes/idlw-shell.el lisp/progmodes/idlwave.el lisp/progmodes/m4-mode.el lisp/progmodes/python.el lisp/recentf.el lisp/replace.el lisp/simple.el lisp/startup.el lisp/subr.el lisp/term/xterm.el lisp/textmodes/flyspell.el lisp/textmodes/org.el lisp/textmodes/reftex-auc.el lisp/textmodes/reftex-cite.el lisp/textmodes/reftex-dcr.el lisp/textmodes/reftex-global.el lisp/textmodes/reftex-index.el lisp/textmodes/reftex-parse.el lisp/textmodes/reftex-ref.el lisp/textmodes/reftex-sel.el lisp/textmodes/reftex-toc.el lisp/textmodes/reftex-vars.el lisp/textmodes/reftex.el lisp/tmm.el lisp/vc-arch.el lisp/vc-rcs.el lisp/view.el lisp/whitespace.el lisp/woman.el lisp/xt-mouse.el lispref/ChangeLog lispref/abbrevs.texi lispref/advice.texi lispref/backups.texi lispref/buffers.texi lispref/commands.texi lispref/compile.texi lispref/customize.texi lispref/debugging.texi lispref/display.texi lispref/edebug.texi lispref/elisp.texi lispref/errors.texi lispref/eval.texi lispref/files.texi lispref/frames.texi lispref/functions.texi lispref/hash.texi lispref/help.texi lispref/internals.texi lispref/intro.texi lispref/keymaps.texi lispref/lists.texi lispref/loading.texi lispref/locals.texi lispref/macros.texi lispref/maps.texi lispref/markers.texi lispref/minibuf.texi lispref/modes.texi lispref/nonascii.texi lispref/numbers.texi lispref/objects.texi lispref/os.texi lispref/positions.texi lispref/processes.texi lispref/searching.texi lispref/sequences.texi lispref/streams.texi lispref/strings.texi lispref/symbols.texi lispref/syntax.texi lispref/text.texi lispref/tips.texi lispref/variables.texi lispref/windows.texi mac/ChangeLog mac/make-package mac/src/Emacs.r man/ChangeLog man/ack.texi man/cc-mode.texi man/cmdargs.texi man/custom.texi man/display.texi man/emacs-mime.texi man/emacs.texi man/faq.texi man/files.texi man/gnus.texi man/killing.texi man/macos.texi man/misc.texi man/reftex.texi man/rmail.texi man/texinfo.tex man/woman.texi nt/ChangeLog nt/INSTALL src/ChangeLog src/ChangeLog.5 src/buffer.c src/editfns.c src/emacs.c src/fileio.c src/gmalloc.c src/gtkutil.c src/indent.c src/intervals.c src/keyboard.c src/keymap.c src/keymap.h src/lread.c src/m/hp800.h src/macfns.c src/macterm.c src/print.c src/process.c src/s/darwin.h src/undo.c src/w32fns.c src/widget.c src/window.c src/xdisp.c src/xfns.c
diffstat 264 files changed, 9326 insertions(+), 4346 deletions(-) [+]
line wrap: on
line diff
--- a/AUTHORS	Fri Mar 30 02:06:58 2007 +0000
+++ b/AUTHORS	Wed Apr 11 00:17:47 2007 +0000
@@ -124,10 +124,11 @@
   fileio.c simple.el buffer.c minibuf.c process.c xterm.c emacs.c
   keyboard.c and 449 other files
 
-Andreas Seltenreich: changed nnweb.el gnus.texi nnslashdot.el mm-uu.el
-  battery.el comint.el easy-mmode.el gmm-utils.el gnus-art.el gnus-ml.el
-  gnus-srvr.el gnus-start.el gnus-sum.el gnus-util.el gnus.el mm-url.el
-  url-cookie.el url-http.el xterm.c
+Andreas Seltenreich: changed nnweb.el gnus.texi nnslashdot.el
+  gnus-util.el mm-uu.el url-http.el battery.el comint.el easy-mmode.el
+  gmm-utils.el gnus-art.el gnus-ml.el gnus-msg.el gnus-srvr.el
+  gnus-start.el gnus-sum.el gnus.el message.el mm-url.el url-cookie.el
+  xterm.c
 
 Andrew Choi: wrote mac-win.el
 and changed macterm.c mac.c macfns.c INSTALL macmenu.c darwin.h macterm.h
@@ -332,10 +333,10 @@
   url-file.el url-handlers.el url-http.el url-nfs.el
 
 Chong Yidong: changed cus-edit.el simple.el custom.el files.el
-  display.texi longlines.el keyboard.c text.texi custom.texi files.texi
-  image-mode.el info.el mouse.el xdisp.c compile.el frames.texi
-  startup.el wid-edit.el xterm.c cus-theme.el misc.texi
-  and 237 other files
+  display.texi longlines.el keyboard.c custom.texi info.el text.texi
+  compile.el files.texi image-mode.el mouse.el xdisp.c frames.texi
+  startup.el wid-edit.el xterm.c cus-theme.el faces.el
+  and 244 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
@@ -395,7 +396,7 @@
 Daiki Ueno: wrote pgg-def.el pgg-gpg.el pgg-parse.el pgg-pgp.el
   pgg-pgp5.el pgg.el starttls.el
 and changed gnus-sum.el mml2015.el gnus-agent.el gnus-srvr.el
-  message.texi mml1991.el
+  message.texi mml1991.el pgg.texi
 
 Dale Gulledge: changed TUTORIAL.eo
 
@@ -491,7 +492,7 @@
   cl.texinfo complete.el edmacro.el
 and changed info.el bytecomp.el
 
-David Hansen: changed nnrss.el pcomplete.el tempo.el
+David Hansen: changed nnrss.el lisp.el pcomplete.el tempo.el
 
 David Hedbor: changed gnus-art.el mm-decode.el mm-view.el gnus-agent.el
   gnus-cite.el gnus-cus.el gnus-eform.el gnus-group.el gnus-msg.el
@@ -508,8 +509,8 @@
 
 David Kastrup: changed greek.el replace.el faq.texi search.c ange-ftp.el
   help.el mouse.el Makefile.in calc.el desktop.el keymaps.texi
-  meta-mode.el process.c search.texi subr.el DEBUG DEVEL.HUMOR
-  MAILINGLISTS autoload.el browse-url.el buffer.c and 34 other files
+  meta-mode.el process.c search.texi subr.el woman.el DEBUG DEVEL.HUMOR
+  MAILINGLISTS autoload.el browse-url.el and 37 other files
 
 David K,Ae(Bgedal: wrote tempo.el
 and changed sendmail.el xmenu.c
@@ -555,6 +556,8 @@
 
 David S. Goldberg: changed gnus-art.el message.el
 
+David Vazquez: changed m4-mode.el
+
 David Z. Maze: changed nnml.el nnrss.el
 
 Deanna Phillips: changed configure.in
@@ -583,9 +586,9 @@
 
 Diane Murray: changed erc.el erc-menu.el erc-backend.el erc-button.el
   erc-track.el erc-match.el erc-nets.el erc-list.el erc-autoaway.el
-  erc-capab.el erc-nickserv.el erc-compat.el erc-stamp.el erc-goodies.el
-  erc-ibuffer.el erc-log.el Makefile erc-dcc.el erc-fill.el
-  erc-nicklist.el erc-notify.el and 30 other files
+  erc-capab.el erc-nickserv.el erc-stamp.el erc-compat.el erc-fill.el
+  erc-goodies.el erc-ibuffer.el erc-log.el Makefile erc-dcc.el
+  erc-networks.el erc-nicklist.el and 32 other files
 
 Dick King: wrote uniquify.el
 
@@ -645,9 +648,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 msdos.h
-  rmail.el simple.el internal.el xfaces.c frame.c dosfns.c emacs.c
-  faces.el frame.el and 523 other files
+  startup.el mainmake.v2 config.bat menu-bar.el pc-win.el rmail.el
+  msdos.h simple.el internal.el xfaces.c emacs.c frame.c dosfns.c
+  faces.el frame.el and 531 other files
 
 Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
   sh-script.el text.texi
@@ -846,11 +849,11 @@
 
 Giuseppe Scrivano: changed buffer.c configure.in sysdep.c xsmfns.c
 
-Glenn Morris: changed f90.el calendar.el diary-lib.el fortran.el
+Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el
   calendar.texi appt.el sh-script.el Makefile.in timeclock.el cal-menu.el
-  startup.el abbrevs.texi cal-hebrew.el cal-islam.el emacs.texi files.el
-  holidays.el orgcard.tex programs.texi scroll-all.el TUTORIAL.eo
-  and 112 other files
+  startup.el abbrevs.texi cal-hebrew.el cal-islam.el complete.el
+  emacs.texi files.el fr-refcard.tex holidays.el orgcard.tex os.texi
+  and 120 other files
 
 Glynn Clements: wrote gamegrid.el snake.el tetris.el
 
@@ -875,7 +878,7 @@
 
 Gregory Neil Shapiro: changed mailabbrev.el
 
-Guanpeng Xu: changed add-log.el TUTORIAL.cn type-break.el
+Guanpeng Xu: changed add-log.el TUTORIAL.cn mouse.el type-break.el
 
 Guillermo J. Rozas: wrote fakemail.c
 
@@ -1051,7 +1054,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 83 other files
+  w32inevt.c config.nt configure.bat and 84 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
@@ -1142,11 +1145,11 @@
 
 Jochen K,A|(Bpper: changed calc-units.el gnus.texi
 
-Joe Buehler: changed Makefile.in cygwin.h MACHINES browse-url.el
-  comint.el configure.in dired-aux.el dired.el dirtrack.el dos-w32.el
-  fast-lock.el filecache.el fileio.c files.el gmalloc.c gnus-util.el
-  hippie-exp.el keyboard.c lastfile.c loadup.el mem-limits.h
-  and 11 other files
+Joe Buehler: changed Makefile.in configure.in cygwin.h MACHINES
+  browse-url.el comint.el configure dired-aux.el dired.el dirtrack.el
+  dos-w32.el fast-lock.el filecache.el fileio.c files.el gmalloc.c
+  gnus-util.el hippie-exp.el keyboard.c lastfile.c loadup.el
+  and 12 other files
 
 Joe Casadonte: changed gnus-srvr.el
 
@@ -1171,11 +1174,9 @@
 
 Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el
   erc-nickserv.el erc-ring.el erc-speak.el erc-track.el simple.el
-  align.el calendar.el cl.texi custom.el dired-aux.el display.texi
-  erc-bbdb.el erc-button.el erc-compat.el erc-dcc.el erc-list.el
-  erc-log.el and 12 other files
-
-Johan Bockg,be(Brd: changed icomplete.el
+  align.el bytecomp.el calendar.el cl.texi custom.el dired-aux.el
+  display.texi erc-bbdb.el erc-button.el erc-compat.el erc-dcc.el
+  erc-list.el and 14 other files
 
 Johan Vromans: wrote forms-d2.el forms.el iso-acc.el
 and changed complete.el
@@ -1278,9 +1279,9 @@
 and changed files.el perl-mode.el
 
 Juanma Barranquero: changed makefile.w32-in subr.el faces.el help-fns.el
-  files.el w32fns.c buffer.c emacsclient.c replace.el simple.el
-  vhdl-mode.el bs.el cperl-mode.el eval.c org.el xdisp.c idlwave.el
-  sh-script.el window.c ada-mode.el allout.el and 627 other files
+  files.el buffer.c simple.el w32fns.c emacsclient.c replace.el
+  vhdl-mode.el bs.el cperl-mode.el eval.c org.el process.c xdisp.c
+  idlwave.el sh-script.el window.c ada-mode.el and 628 other files
 
 Juergen Hoetzel: changed url-handlers.el
 
@@ -1296,8 +1297,8 @@
 
 Juri Linkov: changed info.el simple.el replace.el isearch.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 221 other files
+  dired-aux.el edebug.el compare-w.el files.el lisp-mode.el lisp.el
+  modes.texi mule.el desktop.el files.texi and 221 other files
 
 Justin Sheehy: changed gnus-sum.el nntp.el
 
@@ -1328,8 +1329,8 @@
 Karl Berry: changed info.texi emacs.texi elisp.texi emacs-xtra.texi
   filelock.c anti.texi building.texi cmdargs.texi copyright.el
   custom.texi customize.texi dired.c display.texi faq.texi frames.texi
-  gnu.texi help.texi macos.texi minibuf.texi msdog.texi mule.texi
-  and 65 other files
+  gnu.texi help.texi lists.texi loading.texi macos.texi minibuf.texi
+  and 70 other files
 
 Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el
   jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el
@@ -1361,7 +1362,7 @@
 and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el
   mm-view.el gnus-util.el mm-util.el gnus-msg.el gnus.el lpath.el
   gnus-group.el gnus-start.el rfc2047.el dgnushack.el mm-uu.el nntp.el
-  gnus-agent.el mml.el nnrss.el rfc2231.el and 73 other files
+  gnus-agent.el mml.el nnrss.el message.texi and 73 other files
 
 Kaveh R. Ghazi: changed delta88k.h xterm.c
 
@@ -1445,10 +1446,10 @@
 
 Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el
   keypad.el kmacro.el
-and changed xdisp.c dispextern.h simple.el process.c window.c keyboard.c
+and changed xdisp.c dispextern.h process.c simple.el window.c keyboard.c
   xterm.c subr.el w32term.c dispnew.c lisp.h fringe.c macterm.c
   display.texi fns.c alloc.c xfaces.c keymap.c xfns.c xterm.h .gdbinit
-  and 252 other files
+  and 254 other files
 
 Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el
   gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el
@@ -1670,8 +1671,8 @@
   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 flymake.texi handwrite.el speedbar.el
-  subr.el tumme.el widget.texi
+Markus Triska: changed doctor.el expand.el flymake.el flymake.texi
+  handwrite.el internals.texi speedbar.el subr.el tumme.el widget.texi
 
 Marshall T. Vandegrift: changed gnus-fun.el
 
@@ -1690,10 +1691,11 @@
 
 Martin Neitzel: changed sc.el
 
-Martin Rudalics: changed cus-edit.el wid-edit.el flyspell.el font-lock.el
-  complete.el cus-start.el files.el insdel.c macmenu.c syntax.c w32menu.c
-  wdired.el window.el xdisp.c xmenu.c backups.texi buffer.c buffer.h
-  casefiddle.c cperl-mode.el custom.el and 30 other files
+Martin Rudalics: changed cus-edit.el wid-edit.el files.el flyspell.el
+  font-lock.el complete.el cus-start.el insdel.c macmenu.c syntax.c
+  w32menu.c wdired.el whitespace.el window.el xdisp.c xmenu.c
+  backups.texi buffer.c buffer.h casefiddle.c cperl-mode.el
+  and 31 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
@@ -1799,10 +1801,10 @@
   ediff.texi viper-mouse.el viper.texi
 
 Michael Olson: changed erc.el erc-backend.el erc.texi Makefile
-  erc-stamp.el erc-log.el erc-autoaway.el erc-identd.el erc-track.el
-  erc-list.el erc-match.el erc-dcc.el erc-notify.el erc-bbdb.el
-  erc-goodies.el erc-ibuffer.el erc-nicklist.el erc-pcomplete.el
-  erc-spelling.el erc-compat.el erc-fill.el and 43 other files
+  erc-autoaway.el erc-log.el erc-stamp.el erc-identd.el erc-list.el
+  erc-track.el erc-match.el erc-bbdb.el erc-dcc.el erc-notify.el
+  erc-ibuffer.el erc-pcomplete.el erc-spelling.el erc-compat.el
+  erc-goodies.el erc-nicklist.el ERC-NEWS and 44 other files
 
 Michael Piotrowski: changed gnus-sum.el ps-print.el
 
@@ -1925,9 +1927,9 @@
 
 Nick Roberts: wrote gdb-ui.el
 and changed gud.el building.texi tooltip.el speedbar.el bindings.el
-  thumbs.el .gdbinit DEBUG cc-mode.el frames.texi subr.el xt-mouse.el
-  comint.el display.texi help-mode.el t-mouse.el compile.el descr-text.el
-  dired.el gud-display.pbm speedbar.texi and 114 other files
+  thumbs.el xt-mouse.el .gdbinit DEBUG cc-mode.el frames.texi subr.el
+  t-mouse.el comint.el display.texi help-mode.el compile.el descr-text.el
+  dired.el gud-display.pbm speedbar.texi and 115 other files
 
 Nico Francois: changed w32fns.c w32inevt.c w32menu.c
 
@@ -2138,8 +2140,10 @@
 
 Ralf Angeli: wrote scroll-lock.el
 and changed w32fns.c tex-mode.el comint.el flow-fill.el frame.el
-  gnus-art.el killing.texi mm-view.el pcl-cvs.texi smtpmail.el w32term.c
-  window.c
+  gnus-art.el killing.texi mm-view.el pcl-cvs.texi reftex-auc.el
+  reftex-cite.el reftex-dcr.el reftex-global.el reftex-index.el
+  reftex-parse.el reftex-ref.el reftex-sel.el reftex-toc.el
+  reftex-vars.el reftex.el reftex.texi and 4 other files
 
 Ralf Fassel: changed dabbrev.el files.el fill.el iso-acc.el tar-mode.el
 
@@ -2164,8 +2168,8 @@
 and changed gnus-art.el gnus.texi message.el gnus-sum.el gnus.el
   gnus-group.el gnus-faq.texi gnus-util.el mml.el gnus-score.el
   gnus-start.el message.texi mm-util.el gnus-agent.el gnus-msg.el spam.el
-  files.el spam-report.el mm-decode.el nnweb.el deuglify.el
-  and 166 other files
+  files.el spam-report.el mm-decode.el nnmail.el nnweb.el
+  and 167 other files
 
 Remek Trzaska: changed gnus-ems.el
 
@@ -2278,7 +2282,7 @@
 Russ Allbery: changed message.el
 
 Ryan Yeske: wrote rcirc.el
-and changed ffap.el rmailsum.el
+and changed ffap.el rmailsum.el simple.el testcover.el
 
 Ryszard Kubiak: changed ogonek.el
 
@@ -2405,7 +2409,7 @@
 and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h
   keyboard.c keymap.c tex-mode.el fill.el alloc.c compile.el files.el
   regex.c simple.el easy-mmode.el info.el syntax.c vc-hooks.el xdisp.c
-  sh-script.el and 517 other files
+  sh-script.el and 518 other files
 
 Steinar Bang: changed imap.el
 
@@ -2414,7 +2418,7 @@
 
 Stephen A. Wood: changed fortran.el
 
-Stephen Berman: changed allout.el
+Stephen Berman: changed allout.el recentf.el
 
 Stephen C. Gilardi: changed configure.in
 
@@ -2469,7 +2473,7 @@
 Stuart D. Herring: changed keymap.c minibuf.c widget.texi
 
 Stuart Herring: changed files.el isearch.el align.el allout.el comint.el
-  edebug.el find-lisp.el
+  edebug.el find-lisp.el sregex.el
 
 Sudish Joseph: changed mac-win.el
 
@@ -2527,8 +2531,8 @@
 Thien-Thi Nguyen: wrote hideshow.el make-mms-derivative.el
 and changed ewoc.el info.el processes.texi zone.el Makefile.in vc.el
   fileio.c lisp-mode.el scheme.el text.texi TUTORIAL.it bindat.el
-  dcl-mode.el display.texi files.el pcvs.el sysdep.c MORE.STUFF
-  TUTORIAL.ja ange-ftp.el diary-lib.el and 126 other files
+  dcl-mode.el display.texi files.el gnus.texi pcvs.el sysdep.c vc-rcs.el
+  MORE.STUFF TUTORIAL.ja and 129 other files
 
 Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el
 
@@ -2653,7 +2657,8 @@
   ps-prin2.ps lpr.el ps-print.ps subr.el TUTORIAL.pt_BR easymenu.el
   loading.texi ps-print-def.el ps-print0.ps ps-vars.el
 
-Vivek Dasmohapatra: changed emacs.c sh-script.el xterm.c xterm.h
+Vivek Dasmohapatra: changed emacs.c erc-backend.el erc.el sh-script.el
+  xterm.c xterm.h
 
 Vladimir Alexiev: changed arc-mode.el nnvirtual.el tmm.el
 
@@ -2719,9 +2724,9 @@
 Yagi Tatsuya: changed gnus-art.el gnus-start.el
 
 Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h
-  macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c config.h
-  emacs.c makefile.MPW Makefile.in macos.texi xfaces.c INSTALL darwin.h
-  configure.in dispextern.h and 72 other files
+  macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c makefile.MPW
+  config.h emacs.c Makefile.in macos.texi xfaces.c INSTALL darwin.h
+  dispnew.c configure.in and 76 other files
 
 Yann Dirson: changed imenu.el
 
--- a/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,19 @@
+2007-04-04  Glenn Morris  <rgm@gnu.org>
+
+	* configure.in (NON_GNU_CPP): Use associated preprocessor when
+	compiling with Sun Studio on Solaris.
+
+2007-03-23  Glenn Morris  <rgm@gnu.org>
+
+	* configure.in: Restore support for hp800 (removed 2007-01-27)
+	following clarification of legal status.
+
+2007-03-22  Joe Buehler  <jbuehler@spirentcom.com> (tiny change)
+
+	* configure.in: Add support for AIX4.3 on IBM RS6000.
+
+	* configure: Regenerate.
+
 2007-03-20  Richard Stallman  <rms@gnu.org>
 
 	* configure.in: Fix previous change.
--- a/README	Fri Mar 30 02:06:58 2007 +0000
+++ b/README	Wed Apr 11 00:17:47 2007 +0000
@@ -3,7 +3,7 @@
 See the end of the file for license conditions.
 
 
-This directory tree holds version 22.0.96 of GNU Emacs, the extensible,
+This directory tree holds version 22.0.97 of GNU Emacs, the extensible,
 customizable, self-documenting real-time display editor.
 
 The file INSTALL in this directory says how to build and install GNU
--- a/admin/FOR-RELEASE	Fri Mar 30 02:06:58 2007 +0000
+++ b/admin/FOR-RELEASE	Wed Apr 11 00:17:47 2007 +0000
@@ -5,8 +5,6 @@
 ** Check for widow and orphan lines in manuals;
 make sure all the pages really look ok in the manual as formatted.
 
-** Check for text in manuals that assumes current version is 21.
-
 ** Cleanup temporary +++/--- lines in etc/NEWS.
 
 ** Regenerate the postscript files of the reference cards in etc.
@@ -43,12 +41,9 @@
 
 * BUGS
 
-** Kevin Rodgers missing assignment
+** spurious scrolling bug
 
-** flyspell and check-comments
-
-** lennart.borgman@gmail.com, Feb 22: C-h k does not catch text properties keymaps
-   Update: Problem is only seen when viper-mode is enabled.
+** crash in gc_sweep
 
 * DOCUMENTATION
 
--- a/admin/notes/copyright	Fri Mar 30 02:06:58 2007 +0000
+++ b/admin/notes/copyright	Wed Apr 11 00:17:47 2007 +0000
@@ -367,14 +367,6 @@
   - see comments below. These files are OK to be released with Emacs
   22, but we may want to revisit them afterwards.
 
-[src/unexhp9k800.c - removed 2007/1/27]
-[src/m/sr2k.h - removed 2007/1/27]
-  - First file removed due to legal uncertainties; second file removed
-  due to dependency on first. Note that src/m/hp800.h is still needed on
-  hp800 arch.
-  NB we would like to re-add this file if we can. Please let us know
-  if you can clarify its legal status.
-
 
 ** Some notes on resolved issues, for historical information only
 
@@ -405,6 +397,12 @@
 
   Accordingly, FSF copyright was added.
 
+src/unexhp9k800.c  (and dependent src/m/sr2k.h)
+  - briefly removed due to legal uncertainly Jan-Mar 2007. The
+  relevant assignment is under "hp9k800" in copyright.list. File was
+  written by John V. Morris at HP, and disclaimed by the author and
+  HP. So this file is public domain.
+
 
 ** Issues that are "fixed" for the release of Emacs 22, but we may
    wish to revisit later in more detail
--- a/configure	Fri Mar 30 02:06:58 2007 +0000
+++ b/configure	Wed Apr 11 00:17:47 2007 +0000
@@ -2290,13 +2290,6 @@
       sparc*-*-openbsd*)       machine=sparc ;;
       vax-*-openbsd*)          machine=vax ;;
       x86_64-*-openbsd*)       machine=amdx86-64 ;;
-      i386-*-openbsd*)	machine=intel386 ;;
-      x86_64-*-openbsd*)    machine=amdx86-64 ;;
-      m68k-*-openbsd*)  machine=hp9000s300 ;;
-      mipsel-*-openbsd*) machine=pmax ;;
-      ns32k-*-openbsd*)	machine=ns32000 ;;
-      sparc-*-openbsd*)	machine=sparc ;;
-      vax-*-openbsd*)	machine=vax ;;
     esac
   ;;
 
@@ -2596,6 +2589,13 @@
     machine=nh6000 opsys=powerunix
     NON_GNU_CPP="cc -Xo -E -P"
   ;;
+  ## SR2001/SR2201 running HI-UX/MPP
+  hppa1.1-hitachi-hiuxmpp* )
+    machine=sr2k opsys=hiuxmpp
+  ;;
+  hppa1.1-hitachi-hiuxwe2* )
+    machine=sr2k opsys=hiuxwe2
+  ;;
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
     machine=xps100 opsys=usg5-2
@@ -2618,10 +2618,46 @@
     esac
   ;;
 
+  ## HP 9000 series 700 and 800, running HP/UX
+  hppa*-hp-hpux7* )
+    machine=hp800 opsys=hpux
+  ;;
+  hppa*-hp-hpux8* )
+    machine=hp800 opsys=hpux8
+  ;;
+  hppa*-hp-hpux9shr* )
+    machine=hp800 opsys=hpux9shr
+  ;;
+  hppa*-hp-hpux9* )
+    machine=hp800 opsys=hpux9
+  ;;
+  hppa*-hp-hpux10.2* )
+    machine=hp800 opsys=hpux10-20
+  ;;
+  hppa*-hp-hpux10* )
+    machine=hp800 opsys=hpux10
+  ;;
+  hppa*-hp-hpux1[1-9]* )
+    machine=hp800 opsys=hpux11
+    CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
+  ;;
+
   hppa*-*-linux-gnu* )
     machine=hp800 opsys=gnu-linux
   ;;
 
+  ## HP 9000 series 700 and 800, running HP/UX
+  hppa*-hp-hpux* )
+    ## Cross-compilation?  Nah!
+    case "`uname -r`" in
+      ## Someone's system reports A.B8.05 for this.
+      ## I wonder what other possibilities there are.
+      *.B8.* ) machine=hp800 opsys=hpux8 ;;
+      *.08.* ) machine=hp800 opsys=hpux8 ;;
+      *.09.* ) machine=hp800 opsys=hpux9 ;;
+      *) machine=hp800 opsys=hpux10 ;;
+    esac
+  ;;
   hppa*-*-nextstep* )
     machine=hp800 opsys=nextstep
   ;;
@@ -2662,6 +2698,9 @@
   rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
+  rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
+    machine=ibmrs6000 opsys=aix4-2
+  ;;
   rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
@@ -2987,7 +3026,12 @@
 		;;
       *-sunos5* | *-solaris* )
 		opsys=sol2-6
-		NON_GNU_CPP=/usr/ccs/lib/cpp
+		if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
+		  ## -Xs prevents spurious whitespace.
+		  NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
+		else
+		  NON_GNU_CPP=/usr/ccs/lib/cpp
+		fi
 		;;
       *			  ) opsys=bsd4-2   ;;
     esac
--- a/configure.in	Fri Mar 30 02:06:58 2007 +0000
+++ b/configure.in	Wed Apr 11 00:17:47 2007 +0000
@@ -602,6 +602,13 @@
     machine=nh6000 opsys=powerunix
     NON_GNU_CPP="cc -Xo -E -P"
   ;;
+  ## SR2001/SR2201 running HI-UX/MPP
+  hppa1.1-hitachi-hiuxmpp* )
+    machine=sr2k opsys=hiuxmpp
+  ;;
+  hppa1.1-hitachi-hiuxwe2* )
+    machine=sr2k opsys=hiuxwe2
+  ;;
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
     machine=xps100 opsys=usg5-2
@@ -624,10 +631,46 @@
     esac
   ;;
 
+  ## HP 9000 series 700 and 800, running HP/UX
+  hppa*-hp-hpux7* )
+    machine=hp800 opsys=hpux
+  ;;
+  hppa*-hp-hpux8* )
+    machine=hp800 opsys=hpux8
+  ;;
+  hppa*-hp-hpux9shr* )
+    machine=hp800 opsys=hpux9shr
+  ;;
+  hppa*-hp-hpux9* )
+    machine=hp800 opsys=hpux9
+  ;;
+  hppa*-hp-hpux10.2* )
+    machine=hp800 opsys=hpux10-20
+  ;;
+  hppa*-hp-hpux10* )
+    machine=hp800 opsys=hpux10
+  ;;
+  hppa*-hp-hpux1[1-9]* )
+    machine=hp800 opsys=hpux11
+    CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
+  ;;
+
   hppa*-*-linux-gnu* )
     machine=hp800 opsys=gnu-linux
   ;;
 
+  ## HP 9000 series 700 and 800, running HP/UX
+  hppa*-hp-hpux* )
+    ## Cross-compilation?  Nah!
+    case "`uname -r`" in
+      ## Someone's system reports A.B8.05 for this.
+      ## I wonder what other possibilities there are.
+      *.B8.* ) machine=hp800 opsys=hpux8 ;;
+      *.08.* ) machine=hp800 opsys=hpux8 ;;
+      *.09.* ) machine=hp800 opsys=hpux9 ;;
+      *) machine=hp800 opsys=hpux10 ;;
+    esac
+  ;;
   hppa*-*-nextstep* )
     machine=hp800 opsys=nextstep
   ;;
@@ -668,6 +711,9 @@
   rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
+  rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
+    machine=ibmrs6000 opsys=aix4-2
+  ;;
   rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
@@ -993,7 +1039,12 @@
 		;;
       *-sunos5* | *-solaris* )
 		opsys=sol2-6
-		NON_GNU_CPP=/usr/ccs/lib/cpp
+		if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
+		  ## -Xs prevents spurious whitespace.
+		  NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
+		else
+		  NON_GNU_CPP=/usr/ccs/lib/cpp
+		fi
 		;;
       *			  ) opsys=bsd4-2   ;;
     esac
--- a/etc/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,54 @@
+2007-04-04  Slawomir Nowaczyk  <slawomir.nowaczyk.847@student.lu.se>
+
+	* emacs.py (format_exception): New function.
+	(eexecfile): Use it instead of traceback.print_exception.
+	Don't use execfile to avoid a bug in w32.
+
+2007-04-04  Glenn Morris  <rgm@gnu.org>
+
+	* MACHINES: Mention preprocessor to use with /opt/SUNWspro/bin/cc
+	on Solaris.
+
+	* PROBLEMS (Configuration): Add entries on compiler/preprocessor
+	mismatch, and on preprocessor inserting whitespace.
+
+2007-04-03  Eli Zaretskii  <eliz@gnu.org>
+
+	* TODO: Add entry for switching MS-Windows keyboard input to
+	Unicode.  Add specific pointer to msdos.c functions that support
+	menus on text terminals.
+
+2007-04-01  Michael Olson  <mwolson@gnu.org>
+
+	* ERC-NEWS: Update for the ERC 5.2 release.  Most of these entries
+	were for previously-committed changes.
+
+2007-03-31  Michael Albinus  <michael.albinus@gmx.de>
+
+	* PROBLEMS: Remove Tramp problem; it has been fixed.
+
+2007-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* PROBLEMS (MS-Windows problems): How to bind non-ASCII keys with
+	modifiers.
+
+2007-03-23  Glenn Morris  <rgm@gnu.org>
+
+	* Makefile (DESTDIR, LIBDIR, BINDIR, MANDIR, MANEXT):
+	Delete unused variables.
+	(dired-refcards, misc-refcards, survival-card, viper-cards):
+	New targets.
+	(all): Also build dired-refcards and misc-refcards.
+	(clean, distclean, maintainer-clean): Depend on mostlyclean.
+	(SOURCES): Remove non-existent files.
+	(mostlyclean, clean, distclean, maintainer-clean, unlock, relock):
+	Mark as phony.
+	(.ps files): Specify default papersize in the dvips command.
+
+	* fr-refcard.tex (\letterpaper): Switch to A4.
+	(\section): Reduce \vskips to fit on A4 paper.
+	(\shortcopyrightnotice): Display at end of first column.
+
 2007-03-21  Glenn Morris  <rgm@gnu.org>
 
 	* fr-refcard.tex (\metax): Tweak \hsize to avoid overfull columns.
@@ -322,7 +373,7 @@
 	(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)
+2006-11-05  Slawomir Nowaczyk  <slawek@cs.lth.se>
 
 	* emacs.py (eargs): Provide eldoc message for builtin types.
 	  Make sure eargs always outputs sentinel, to avoid Emacs freeze.
@@ -417,7 +468,7 @@
 	(eimport): Use __main__ rather than `emacs' namespace.
 	(modpath): New fun.
 
-2006-08-20  Slawomir Nowaczyk  <slawomir.nowaczyk.847@student.lu.se>  (tiny change)
+2006-08-20  Slawomir Nowaczyk  <slawomir.nowaczyk.847@student.lu.se>
 
 	* emacs.py (eexecfile): Use the __main__ rather than `emacs' namespace.
 
@@ -680,8 +731,8 @@
 	* pl-refcard.tex (section{Info}): Ditto.  Translation suggested by
 	Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>.
 
-	* cs-refcard.tex (section{Info}): Use `s' instead of `M-s'.  Entry
-	for `i' is not translated yet.
+	* cs-refcard.tex (section{Info}): Use `s' instead of `M-s'.
+	Entry for `i' is not translated yet.
 
 	* pt-br-refcard.tex (section{Info}): Ditto.
 
@@ -1410,7 +1461,7 @@
 
 	* NEWS: Lots of clarifications and cleanups.
 
-2005-05-05  Slawomir Nowaczyk  <slawek@cs.lth.se>  (tiny change)
+2005-05-05  Slawomir Nowaczyk  <slawek@cs.lth.se>
 
 	* TUTORIAL.pl: Updated header.
 
--- a/etc/DEBUG	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/DEBUG	Wed Apr 11 00:17:47 2007 +0000
@@ -306,10 +306,15 @@
 
 ** If you encounter X protocol errors
 
-Try evaluating (x-synchronize t).  That puts Emacs into synchronous
-mode, where each Xlib call checks for errors before it returns.  This
-mode is much slower, but when you get an error, you will see exactly
-which call really caused the error.
+The X server normally reports protocol errors asynchronously,
+so you find out about them long after the primitive which caused
+the error has returned.
+
+To get clear information about the cause of an error, try evaluating
+(x-synchronize t).  That puts Emacs into synchronous mode, where each
+Xlib call checks for errors before it returns.  This mode is much
+slower, but when you get an error, you will see exactly which call
+really caused the error.
 
 You can start Emacs in a synchronous mode by invoking it with the -xrm
 option, like this:
--- a/etc/ERC-NEWS	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/ERC-NEWS	Wed Apr 11 00:17:47 2007 +0000
@@ -3,8 +3,7 @@
 Copyright (C) 2006, 2007  Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
-
-* Changes in ERC 5.2 (stable pre-release for Emacs 22)
+* Changes in ERC 5.2
 
 ** M-x erc RET now starts ERC.
 `erc-select' has been changed to `erc'.  `erc-select' still remains as
@@ -12,37 +11,173 @@
 `erc-ssl' with `erc-select-ssl' as its alias.  The function that was
 known as `erc' is now `erc-open'.
 
+** Open query buffers by default when private messages are received.
+The default value of `erc-auto-query' has been changed to 'bury.
+
 ** New command: /RECONNECT
 This command tries to reconnect to the current IRC server exactly
 once.  It does not work in server buffers (throws an error before the
 command is run), but works in query and channel buffers.
 
+** In MS-DOS environments, look for _ercrc.el rather than .ercrc.el.
+
+** Fix buggy interaction with multi-tty Emacs.
+
+** After running /QUIT, make sure that the IRC process is killed within
+4 seconds.  Freenode, in particular, needs this at times.
+
+** If the IRC process has not responded to our PINGs within a certain
+time, kill it and restart the connection.  See
+`erc-server-auto-reconnect', `erc-server-reconnect-attempts',
+`erc-server-reconnect-timeout', `erc-server-send-ping-interval', and
+`erc-server-send-ping-timeout' to fine-tune ERC's behavior.
+
+** Avoid getting into an infinite connection loop.
+Previously, this could happen if your nick was banned, you were using
+Tor, incorrect information was entered, or the connection was bad.
+
+** Make ban messages less confusing.
+
+** Restore the point correctly when reconnecting to an IRC server.
+
+** Make /IGNORE and /UNIGNORE prompt to determine whether their
+argument is a user or a regexp.  This results in less-confusing
+behavior when trying to ignore someone who has a bracket in their
+nick.
+
+** Make the default port "6667" rather than "ircd", because some
+operating systems don't know what port "ircd" maps to.
+
+** Fix several bugs in erc-iswitchb (C-c C-b).
+
+** Clean up internal documentation.
+Special thanks go to Juanma Barranquero for the thorough vetting of
+ERC's internal documentation.
+
+** Display a more informative message when a module is not found.
+
+** Fix a bug where paths were being colored like IRC commands.
+
+** In the customize interface for `erc-modules', add the name of the module.
+This makes it easier to find modules by name.
+
+** erc-server-send-ping-interval: Change to use a default of 30 seconds.
+
+** Some files which are included with the release of ERC 5.2 will not
+appear in the version of ERC that is bundled with Emacs 22.  These
+extras files may be found at:
+
+ o http://ftp.gnu.org/gnu/erc/erc-5.2-extras.tar.gz, or
+ o http://ftp.gnu.org/gnu/erc/erc-5.2-extras.zip.
+
+** Renamed files
+
+Several files were renamed so as to make them distinct to users of the
+MS-DOS operating system.
+
+ o erc-autojoin.el -> erc-join.el
+ o erc-complete.el -> erc-hecomplete.el
+ o erc-nickserv.el -> erc-services.el
+ o ChangeLog.NNNN -> ChangeLog.NN
+
+** Header line changes
+
+*** Remove "[IRC]" from the header line.
+
+*** Add the %l format character to `erc-header-line-format',
+
+*** Document how to remove the header line.
+Namely: (setq erc-header-line-format nil).
+
 ** New options
 
 *** erc-server-reconnect-attempts: Determines the number of
 reconnection attempts that ERC will make per server.
 
-*** erc-server-reconnect-timeout: New option that determines the
-amount of time, in seconds, that ERC will wait between successive
-reconnect attempts.
+*** erc-server-reconnect-timeout: Determines the amount of time,
+in seconds, that ERC will wait between successive reconnect attempts.
+
+*** erc-server-send-ping-timeout: Determines when to consider a connection
+stalled and restart it.  The default is	after 120 seconds.
+
+*** erc-system-name: Determines the system name to use when logging in.
+The default is to figure this out by calling `system-name'.
 
 ** New face: `erc-my-nick-face'
 This helps make it easier to distinguish messages sent by yourself
 from messages sent by other users when the value of the variable
 `erc-show-my-nick' is non-nil.
 
+** Namespace changes
+
+*** New macro: `erc-with-server-buffer'
+Switches to the current ERC server buffer and runs some code.  If no
+server buffer is available, return nil.  This is a useful way to
+access variables in the server buffer.
+
+*** New function: `erc-open-server-buffer-p'
+Returns non-nil if the given buffer is an ERC server buffer that has
+an open IRC process.
+
+*** New function: `erc-format-lag-time'
+Returns the estimated lag time to server, `erc-server-lag'.
+
+*** Renamed items
+
+ o `erc-server-setup-periodical-server-ping' is now
+   `erc-server-setup-periodical-ping'
+
+ o `erc-away-p' is now `erc-away-time'
+
+** Changes to the ERC manual
+
+*** New section: Sample Session.
+Describes a sample ERC session for connecting to the #emacs channel on
+Freenode.  Also mention the #erc channel.
+
+*** New section: Special Features.
+Describes some of the special features of ERC.
+
+*** Getting Started: Mention ~/.emacs.d/.ercrc.el and the Customize
+interface.
+
+*** Development: Mention ErcDevelopment page on emacswiki.org.
+
+*** Tips and Tricks: Remove empty section for now.
+
+*** Options: Mention how to see available ERC options.
+
+*** Sample Configuration: Add an example of how to configure ERC.
+
 ** New modules
 
+*** Autoaway (erc-autoaway.el)
+
+**** Make this much more reliable.
+
+**** Avoid duplicate messages when coming back from being away.
+
+**** Fix bug where autoaway was enabled just by loading the file.
+
+*** BBDB (erc-bbdb.el)
+
+**** Display information on how to cancel merging of info or how to
+create a new John Doe record.
+
+**** Make it so that information from /whois continues to come in, even
+while prompting for a record to merge.
+
+**** Make hitting C-g correctly abort merging the record.
+
 *** Capab identify (erc-capab.el)
 Mark users who haven't identified to NickServ on servers supporting
 CAPAB IDENTIFY-MSG.
 
 ** Changes and additions to modules
 
-*** Channel lists (erc-list.el)
+*** Button (erc-button.el)
 
-**** This has been removed from Emacs 22, since a major contributor
-to it has not yet assigned changes.
+**** Make <backtab> go to the previous button.
 
 *** Channel tracking (erc-track.el)
 
@@ -50,6 +185,103 @@
 This helps people using a mouse know that they are buttons and can be
 clicked on.
 
+**** Fix issue where C-c C-SPC could conflict with user-defined keybindings.
+This is accomplished by moving these bindings to their own global
+minor mode.  Now the default is to check whether the user has bound
+something to C-c C-SPC or C-c C-@.  If they have, prompt them about
+whether to really override that binding.  This also has the effect of
+preventing ERC from clobbering rcirc's keybinding, unless this is
+desired.  See `erc-track-enable-keybindings' for more details.
+
+**** New option: erc-track-enable-keybindings.
+Determine whether or not to enable the C-c C-SPC and C-c C-@
+keybindings.  The default is to ask whether to do this if a binding to
+these keys already exists.  It can also be set to t or nil to always
+bind or never bind, respectively.
+
+**** Remove `track-when-inactive' module.
+See `erc-track-when-inactive' for further details.
+
+**** New option: erc-track-when-inactive.
+This option replaces the track-when-inactive module.  Set it to
+non-nil to track activity even in visible buffers when inactive.  The
+default is nil.
+
+**** Remove the `track-modified-channels' alias for the `track' module.
+
+*** DCC support (erc-dcc.el)
+
+**** Add Usage section to Commentary.
+
+**** Fix a bug in the server message output.
+
+*** Filling (erc-fill.el)
+
+**** Fix bug involving messages that start with one or more blank lines.
+
+*** Identd (erc-identd.el)
+
+**** New option `erc-identd-port'
+Specifies the port to use if none is given as an argument to
+`erc-identd-start'.  This is placed in the new customization group
+`erc-identd'.
+
+**** New function: `erc-identd-quickstart'
+Ignores any arguments and calls `erc-identd-start'.
+
+*** Channel lists (erc-list.el)
+
+**** Enable by default, except in the version of ERC bundled with Emacs 22.
+
+*** Logging (erc-log.el)
+
+**** Make sure filenames are safe to use before writing to them.
+
+**** Save all log buffers when exiting Emacs.
+
+**** erc-generate-log-file-name-function: Add option for
+`erc-generate-log-file-name-network', which is a new function that
+uses the network name rather than the server name when possible.
+
+*** Menu (erc-menu.el)
+
+**** Name the menu "ERC" instead of "IRC" to avoid confusion with rcirc
+and other clients.
+
+**** Make this into a proper module and load it by default.
+
+**** Add "Current channel" submenu.
+
+*** Networks (erc-networks.el)
+
+**** Add support for Ars OpenIRC, LinuxChix, and OFTC networks.
+
+**** Escape periods in Konfido.Net and Kewl.Org.
+
+*** Internet services / Nickserv (erc-nickserv.el)
+
+**** Add new 'both method for the `erc-nickserv-identify-mode' option
+and make it the default.  This tries to do the right thing both when a
+known nickserv message exists for an IRC network, and when it does
+not.
+
+**** Support nickserv authentication on OFTC, Azzurra, Ars, and QuakeNet.
+
+**** Support authentication on BitlBee.
+
+**** Make source code easier to understand by using accessor functions.
+
+*** Sound support (erc-sound.el)
+
+**** Make this work with both Emacs 21 and Emacs 22.
+
+*** Timestamps (erc-stamp.el)
+
+**** Exclude the newline from the erc-timestamp field.
+
+**** New function: `erc-toggle-timestamps'.
+Toggles display of timestamps.
+
 * Changes in ERC 5.1.4
 
 ** Make find-function and find-variable work in Emacs 22 for
@@ -156,6 +388,10 @@
 
 **** Don't create an extra buffer for the identd process.
 
+*** Channel lists (erc-list.el)
+
+**** Enable by default, except in the version of ERC bundled with Emacs 22.
+
 *** Logging (erc-log.el)
 
 **** By default, don't insert old logs when opening an ERC buffer.
--- a/etc/MACHINES	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/MACHINES	Wed Apr 11 00:17:47 2007 +0000
@@ -1149,7 +1149,9 @@
   On Solaris, do not use /usr/ucb/cc.  Use /opt/SUNWspro/bin/cc.  Make
   sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before
   /usr/ucb.  (Most free software packages have the same requirement on
-  Solaris.)
+  Solaris.)  With this compiler, use `/opt/SUNWspro/bin/cc -E' as the
+  preprocessor.  If this inserts extra whitespace into its output (see
+  the PROBLEMS file) then add the option `-Xs'.
 
   If you have trouble using open-network-stream, get the distribution
   of `bind' (the BSD name-server), build libresolv.a, and link Emacs
--- a/etc/Makefile	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/Makefile	Wed Apr 11 00:17:47 2007 +0000
@@ -1,43 +1,110 @@
-DESTDIR=
-LIBDIR=/usr/local/lib
-BINDIR=/usr/local/bin
-MANDIR=/usr/man/man1
-MANEXT=1
+### Makefile for Emacs etc/ directory
+
+## Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006,
+##   2007 Free Software Foundation, Inc.
+
+## This file is part of GNU Emacs.
 
-all:
+## GNU Emacs is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## GNU Emacs is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with GNU Emacs; see the file COPYING.  If not, write to the
+## Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+## Boston, MA 02110-1301, USA.
+
 
-refcards:	refcard.ps cs-refcard.ps de-refcard.ps fr-refcard.ps \
-		pl-refcard.ps pt-br-refcard.ps ru-refcard.ps sk-refcard.ps
+## Top-level targets.
+
+## PS files included with Emacs.
+all: refcards dired-refcards misc-refcards
+
+
+refcards: refcard.ps cs-refcard.ps de-refcard.ps fr-refcard.ps \
+          pl-refcard.ps pt-br-refcard.ps ru-refcard.ps sk-refcard.ps
+
+dired-refcards: dired-ref.ps cs-dired-ref.ps fr-drdref.ps sk-dired-ref.ps
 
-refcard.dvi de-refcard.dvi fr-refcard.dvi pt-br-refcard.dvi sk-refcard.dvi:	%.dvi:	%.tex
-	tex $<
+## No PS files: vipcard.tex viperCard.tex survival.tex sk-survival.tex
+misc-refcards: calccard.ps gnus-booklet.ps gnus-refcard.ps orgcard.ps
+
+## Following PS files are not included with Emacs.
+survival-cards: survival.ps cs-survival.ps sk-survival.ps
 
-cs-refcard.dvi:	%.dvi:	%.tex
+viper-cards: vipcard.ps viperCard.ps
+
+
+## dvi files.
+
+## FIXME the sk-*.tex files say to use csplain, but were not
+## traditionally in this rule. Fix the doc or the rule.
+cs-refcard.dvi cs-dired-ref.dvi cs-survival.dvi: %.dvi:	%.tex
 	csplain $<
 
-pl-refcard.dvi: %.dvi:	%.tex
+pl-refcard.dvi: %.dvi: %.tex
 	if ! kpsewhich -format=fmt mex > /dev/null; then \
 	  echo "No mex format found."; false; \
 	fi
 	tex $<
 
-ru-refcard.dvi:	%.dvi:	%.tex
+ru-refcard.dvi gnus-refcard.dvi: %.dvi: %.tex
 	latex $<
 
-refcard.ps de-refcard.ps fr-refcard.ps pt-br-refcard.ps:	%.ps:	%.dvi
-	dvips -t landscape $<
+gnus-booklet.dvi: gnus-refcard.tex
+	latex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
+	mv gnus-refcard.dvi $@
+
+## Everything not explicitly listed above.
+%.dvi: %.tex
+	tex $<
+
+
+## PostScript files.
+
+## Note that some of the tex files (refcard, de-refcard, fr-refcard,
+## pt-br-refcard) have settings for letter or a4 paper. Following are
+## the default paper sizes (letter for English, A4 for translations).
+## FIXME orgcard.ps does not fit on letter (see orgcard.tex).
 
-cs-refcard.ps pl-refcard.ps ru-refcard.ps sk-refcard.ps:	%.ps:	%.dvi
-	dvips $<
+## A4, landscape.
+de-refcard.ps fr-refcard.ps pt-br-refcard.ps orgcard.ps: %.ps: %.dvi
+	dvips -t a4 -t landscape $<
+
+## A4, portrait.
+cs-dired-ref.ps cs-refcard.ps cs-survival.ps fr-drdref.ps \
+pl-refcard.ps ru-refcard.ps \
+sk-dired-ref.ps sk-refcard.ps sk-survival.ps: %.ps: %.dvi
+	dvips -t a4 $<
+
+## letter, landscape.
+calccard.ps refcard.ps: %.ps: %.dvi
+	dvips -t letter -t landscape $<
+
+## letter, portrait.
+dired-ref.ps gnus-booklet.ps gnus-refcard.ps survival.ps vipcard.ps \
+viperCard.ps: %.ps: %.dvi
+	dvips -t letter $<
+
+
+.PHONY: mostlyclean clean distclean maintainer-clean unlock relock
 
 mostlyclean:
-	-rm -f core *.dvi *.log
+	-rm -f *.dvi *.log
 
-clean distclean maintainer-clean:
-	-rm -f DOC* core *.dvi *.log
+## Note does not delete generated ps files.
+clean distclean maintainer-clean: mostlyclean
+	-rm -f DOC*
 
-SOURCES = [0-9A-QS-Z]* README *.[ch16] emacs.* etags.* ledit.l ms-* \
-	spook-lines tasks.texi termcap.* *.tex
+
+SOURCES = [0-9A-QS-Z]* README *.[ch16] emacs.* ms-* \
+	spook-lines termcap.* *.tex
 
 unlock:
 	chmod u+w $(SOURCES)
@@ -54,4 +121,6 @@
 e/eterm-color: e/eterm-color.ti
 	TERMINFO=`pwd`; export TERMINFO; $(TIC) e/eterm-color.ti
 
-# arch-tag: 4261f003-cf77-4478-a10a-5284e9d8f797
+
+## arch-tag: 4261f003-cf77-4478-a10a-5284e9d8f797
+### Makefile ends here
--- a/etc/NEWS	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/NEWS	Wed Apr 11 00:17:47 2007 +0000
@@ -219,10 +219,6 @@
 ** Support for GNU/Linux systems on X86-64 machines was added.
 
 ---
-** Support for HP 9000 series 800 and Hitachi SR2001/SR2201 machines
-was removed.
-
----
 ** Mac OS 9 port now uses the Carbon API by default.  You can also
 create non-Carbon build by specifying `NonCarbon' as a target.  See
 the files mac/README and mac/INSTALL for build instructions.
@@ -235,6 +231,7 @@
 ** When pure storage overflows while dumping, Emacs now prints how
 much pure storage it will approximately need.
 
+---
 ** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
 contents of buffers from a core dump and save them to files easily, should
 Emacs crash.
@@ -440,6 +437,7 @@
 doublequotes make no difference in the shell, but they prevent
 special treatment in `dired-do-shell-command'.
 
+---
 ** Adaptive filling misfeature removed.
 It no longer treats `NNN.' or `(NNN)' as a prefix.
 
@@ -955,9 +953,11 @@
 the window now works sensibly, by automatically adjusting the window's
 vscroll property.
 
++++
 *** New customize option `overline-margin' controls the space between
 overline and text.
 
++++
 *** New variable `x-underline-at-descent-line' controls the relative
 position of the underline.  When set, it overrides the
 `x-use-underline-position-properties' variables.
@@ -1066,6 +1066,7 @@
 elements on mode-line (and header-line) like `highlight' face on text
 areas.
 
++++
 *** `mode-line-buffer-id' is the standard face for buffer identification
 parts of the mode line.
 
@@ -1295,6 +1296,7 @@
 
 ** Multilingual Environment (Mule) changes:
 
++++
 *** You can disable character translation for a file using the -*-
 construct.  Include `enable-character-translation: nil' inside the
 -*-...-*- to disable any character translation that may happen by
@@ -1823,6 +1825,7 @@
 
 * New Modes and Packages in Emacs 22.1
 
+---
 ** ERC is now part of the Emacs distribution.
 
 ERC is a powerful, modular, and extensible IRC client for Emacs.
@@ -2095,6 +2098,7 @@
 can generate a table source in typesetting and markup languages such
 as latex and html from the visually laid out text table.
 
++++
 ** The tumme.el package allows you to easily view, tag and in other ways
 manipulate image files and their thumbnails, using dired as the main interface.
 Tumme provides functionality to generate simple image galleries.
@@ -2147,6 +2151,7 @@
 ** The TCL package tcl-mode.el was replaced by tcl.el.
 This was actually done in Emacs-21.1, and was not documented.
 
+---
 ** The new package scroll-lock.el provides the Scroll Lock minor mode
 for pager-like scrolling.  Keys which normally move point by line or
 paragraph will scroll the buffer by the respective amount of lines
@@ -2162,6 +2167,7 @@
 
 ** Changes in Shell Mode
 
+---
 *** Shell output normally scrolls so that the input line is at the
 bottom of the window -- thus showing the maximum possible text.  (This
 is similar to the way sequential output to a terminal works.)
@@ -2286,6 +2292,7 @@
    - many, many other, more minor tweaks, fixes, and refinements.
    - version number incremented to 2.2
 
++++
 ** The variable `woman-topic-at-point' was renamed
 to `woman-use-topic-at-point' and behaves differently: if this
 variable is non-nil, the `woman' command uses the word at point
@@ -2805,6 +2812,7 @@
 The function `c-toggle-syntactic-indentation' can be used to toggle
 syntactic indentation.
 
+---
 ** In sh-script, a continuation line is only indented if the backslash was
 preceded by a SPC or a TAB.
 
@@ -2936,6 +2944,7 @@
 By default, its setting is inferred on a buffer-by-buffer basis
 from the file name or buffer contents.
 
+---
 *** The variable `sgml-transformation' has been renamed to
 `sgml-transformation-function'.  The old name is still available as
 alias.
@@ -2961,6 +2970,7 @@
 +++
 *** New major mode Doctex mode, for *.dtx files.
 
+---
 ** BibTeX mode:
 
 *** The new command `bibtex-url' browses a URL for the BibTeX entry at
@@ -3017,6 +3027,7 @@
 `bibtex-autokey-titleword-case-convert-function'.  The old names are
 still available as aliases.
 
++++
 ** In Artist mode the variable `artist-text-renderer' has been
 renamed to `artist-text-renderer-function'.  The old name is still
 available as alias.
@@ -3048,6 +3059,7 @@
 To use this package just type M-x gdb.  See the Emacs manual if you want the
 old behaviour.
 
+---
 *** The variable tooltip-gud-tips-p has been removed.  GUD tooltips can now be
 toggled independently of normal tooltips with the minor mode
 `gud-tooltip-mode'.
@@ -3414,6 +3426,7 @@
 ---
 *** Rmail now displays 5-digit message ids in its summary buffer.
 
++++
 *** The new commands rmail-end-of-message and rmail-summary end-of-message,
 by default bound to `/', go to the end of the current mail message in
 Rmail and Rmail summary buffers.
@@ -3780,6 +3793,7 @@
 ---
 ** cplus-md.el has been deleted.
 
+---
 ** Ewoc changes
 
 *** The new function `ewoc-delete' deletes specified nodes.
@@ -3925,6 +3939,7 @@
 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and
 `kTextEncodingISOLatin2' are obsolete.
 
++++
 ** The variable `mac-command-key-is-meta' is obsolete.  Use
 `mac-command-modifier' and `mac-option-modifier' instead.
 
@@ -3994,6 +4009,7 @@
 
 ** General Lisp changes:
 
++++
 *** The function `expt' handles negative exponents differently.
 The value for `(expt A B)', if both A and B are integers and B is
 negative, is now a float.  For example: (expt 2 -2) => 0.25.
@@ -4125,6 +4141,12 @@
 This combines `defalias' and `make-obsolete'.
 
 +++
+*** New macro `with-case-table'
+
+This executes the body with the case table temporarily set to a given
+case table.
+
++++
 *** New function `unsafep' determines whether a Lisp form is safe.
 
 It returns nil if the given Lisp form can't possibly do anything
@@ -4138,6 +4160,7 @@
 
 This is useful in packages that can be preloaded.
 
++++
 *** `list-faces-display' takes an optional argument, REGEXP.
 
 If it is non-nil, the function lists only faces matching this regexp.
@@ -4481,6 +4504,7 @@
 have a buffer-local binding in buffer BUFFER, it returns the default
 value of VARIABLE instead.
 
+---
 *** The function `frame-or-buffer-changed-p' now lets you maintain
 various status records in parallel.
 
@@ -5480,7 +5504,7 @@
 ** Mouse pointer features:
 
 +++ (lispref)
-??? (man)
+--- (man)
 *** The mouse pointer shape in void text areas (i.e. after the end of a
 line or below the last line in the buffer) of the text window is now
 controlled by the new variable `void-text-area-pointer'.  The default
@@ -5923,6 +5947,12 @@
 for it.  (If the coding system is detected incorrectly for a specific
 file, you can put a `coding:' tags to override it.)
 
++++
+*** The new variable `ascii-case-table' stores the case table for the
+ascii character set.  Language environments (such as Turkish) may
+alter the case correspondences of ASCII characters.  This variable
+saves the original ASCII case table before any such changes.
+
 ---
 *** The new function `merge-coding-systems' fills in unspecified aspects
 of one coding system from another coding system.
--- a/etc/PROBLEMS	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/PROBLEMS	Wed Apr 11 00:17:47 2007 +0000
@@ -220,7 +220,7 @@
 ** Emacs compiled with Gtk+ crashes on startup on cygwin.
 
 A typical error message is
-  ***MEMORY-ERROR***: emacs[5172]: GSlice: failed to allocate 504 bytes 
+  ***MEMORY-ERROR***: emacs[5172]: GSlice: failed to allocate 504 bytes
   (alignment: 512): Function not implemented
 
 Emacs supplies its own malloc, but glib (part of Gtk+) calls memalign and on
@@ -2106,6 +2106,18 @@
 Windows 95 and Windows NT up to version 4.0 do not support help text
 for menus.  Help text is only available in later versions of Windows.
 
+When "ClearType" method is selected as the "method to smooth edges of
+screen fonts" (in Display Properties, Appearance tab, under
+"Effects"), there are various problems related to display of
+characters: 2-pixel trace is left behind when moving overlays, bold
+fonts can be hard to read, small portions of some characters could
+appear chopped, etc.  This happens because, under ClearType,
+characters are drawn outside their advertised bounding box.  Emacs 21
+disabled the use of ClearType, whereas Emacs 22 allows it and has some
+code to enlarge the width of the bounding box.  Apparently, this
+display feature needs more changes to get it 100% right.  A workaround
+is to disable ClearType.
+
 There are problems with display if mouse-tracking is enabled and the
 mouse is moved off a frame, over another frame then back over the first
 frame.  A workaround is to click the left mouse button inside the frame
@@ -2117,16 +2129,32 @@
 An inactive cursor remains in an active window after the Windows
 Manager driven switch of the focus, until a key is pressed.
 
-Windows input methods are not recognized by Emacs.  Some
+Windows input methods are not recognized by Emacs.  However, some
 of these input methods cause the keyboard to send characters encoded
 in the appropriate coding system (e.g., ISO 8859-1 for Latin-1
-characters, ISO 8859-8 for Hebrew characters, etc.).  To make this
-work, set the keyboard coding system to the appropriate value after
-you activate the Windows input method.  For example, if you activate
-the Hebrew input method, type "C-x RET k iso-8859-8 RET".  (Emacs
-ought to recognize the Windows language-change event and set up the
-appropriate keyboard encoding automatically, but it doesn't do that
-yet.)
+characters, ISO 8859-8 for Hebrew characters, etc.).  To make these
+input methods work with Emacs, set the keyboard coding system to the
+appropriate value after you activate the Windows input method.  For
+example, if you activate the Hebrew input method, type this:
+
+   C-x RET k hebrew-iso-8bit RET
+
+(Emacs ought to recognize the Windows language-change event and set up
+the appropriate keyboard encoding automatically, but it doesn't do
+that yet.)  In addition, to use these Windows input methods, you
+should set your "Language for non-Unicode programs" (on Windows XP,
+this is on the Advanced tab of Regional Settings) to the language of
+the input method.
+
+To bind keys that produce non-ASCII characters with modifiers, you
+must specify raw byte codes. For instance, if you want to bind
+META-a-grave to a command, you need to specify this in your `~/.emacs':
+
+  (global-set-key [?\M-\340] ...)
+
+The above example is for the Latin-1 environment where the byte code
+of the encoded a-grave is 340 octal.  For other environments, use the
+encoding appropriate to that environment.
 
 The %b specifier for format-time-string does not produce abbreviated
 month names with consistent widths for some locales on some versions
@@ -2299,6 +2327,30 @@
 Alternatively, modify the generated src/Makefile to link the .a file
 explicitly, and edit src/config.h to define HAVE_JPEG.
 
+*** `configure' warns ``accepted by the compiler, rejected by the preprocessor''.
+
+This indicates a mismatch between the C compiler and preprocessor that
+configure is using.  For example, on Solaris 10 trying to use
+CC=/opt/SUNWspro/bin/cc (the Sun Studio compiler) together with
+CPP=/usr/ccs/lib/cpp can result in errors of this form (you may also
+see the error ``"/usr/include/sys/isa_defs.h", line 500: undefined control'').
+
+The solution is to tell configure to use the correct C preprocessor
+for your C compiler (CPP="/opt/SUNWspro/bin/cc -E" in the above
+example).
+
+*** `configure' fails with ``"junk.c", line 660: invalid input token: 8.elc''
+
+The final stage of the Emacs configure process uses the C preprocessor
+to generate the Makefiles.  Errors of this form can occur if the C
+preprocessor inserts extra whitespace into its output.  The solution
+is to find the switches that stop your preprocessor from inserting extra
+whitespace, add them to CPPFLAGS, and re-run configure.  For example,
+this error can occur on Solaris 10 when using the Sun Studio compiler
+``Sun C 5.8'' with its preprocessor CPP="/opt/SUNWspro/bin/cc -E".
+The relevant switch in this case is "-Xs" (``compile assuming
+(pre-ANSI) K & R C style code'').
+
 ** Compilation
 
 *** Building Emacs over NFS fails with ``Text file busy''.
@@ -2722,6 +2774,13 @@
 You need to install a recent version of Texinfo; that package
 supplies the `install-info' command.
 
+*** Installing to a directory with spaces in the name fails.
+
+For example, if you call configure with a directory-related option
+with spaces in the value, eg --enable-locallisppath='/path/with\ spaces'.
+Using directory paths with spaces is not supported at this time: you
+must re-configure without using spaces.
+
 ** First execution
 
 *** Emacs binary is not in executable format, and cannot be run.
--- a/etc/TODO	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/TODO	Wed Apr 11 00:17:47 2007 +0000
@@ -178,6 +178,8 @@
 
 ** Make byte-compile warn when a doc string is too wide.
 
+** Make byte-optimization warnings issue accurate line numbers.
+
 ** A function to check for customizable options that have been
   set but not saved, and ask the user whether to save them.
   This could go in kill-emacs-query-functions, to remind people
@@ -232,6 +234,24 @@
   user-selected input method, with the default being the union of
   latin-1-prefix and latin-1-postfix.
 
+** Switch the Windows port to using Unicode keyboard input (maybe).
+  Based on http://msdn2.microsoft.com/en-us/library/ms633586.aspx,
+  this boils down to (1) calling RegisterClassW function to register
+  Emacs windows, and (2) modifying ALL system messages to use Unicode.
+  In particular, WM_CHAR messages, which result from keyboard input,
+  will then come in encoded in UTF-16.
+
+  One advantage of switching to Unicode is to toss encoded-kbd usage,
+  which will solve the problem with binding non-ASCII keys with
+  modifiers.
+
+  Problem: using this on Windows 9x/ME requires installing the
+  Microsoft Layer for Unicode (MSLU), which might not implement all
+  the required functionality that is available built-in on Windows XP
+  and later.  We should not make this change if it would pressure
+  users of unauthorized copies of older versions of Windows to
+  downgrade to versions that require activation.
+
 ** Implement a clean way to use different major modes for
   different parts of a buffer.  This could be useful in editing
   Bison input files, for instance, or other kinds of text
@@ -287,7 +307,7 @@
   what else ?
 
 ** Provide real menus on ttys.  The MS-DOS implementation can serve as
-  an example how to do part of this.
+  an example how to do part of this; see the XMenu* functions on msdos.c.
 
 ** Implement popular parts of the rest of the CL functions as compiler
   macros in cl-macs.
--- a/etc/calccard.ps	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/calccard.ps	Wed Apr 11 00:17:47 2007 +0000
@@ -4,15 +4,15 @@
 %%Pages: 2
 %%PageOrder: Ascend
 %%Orientation: Landscape
-%%BoundingBox: 0 0 595 842
+%%BoundingBox: 0 0 612 792
 %%DocumentFonts: CMBX10 CMR8 CMTT8 CMBX8 CMR6 CMSY6 CMTI8 CMMI8 CMSY8
 %%+ CMMI5 CMR5 CMMI7
-%%DocumentPaperSizes: a4
+%%DocumentPaperSizes: Letter
 %%EndComments
 %DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t landscape calccard.dvi
+%DVIPSCommandLine: dvips -t letter -t landscape calccard.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2007.02.22:0040
+%DVIPSSource:  TeX output 2007.03.22:0020
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -2583,7 +2583,7 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
-TeXDict begin 55387786 39139632 1000 600 600 (calccard.dvi)
+TeXDict begin 52099146 40258431 1000 600 600 (calccard.dvi)
 @start /Fa 135[38 21[29 74[33 23[{}3 58.1154 /CMMI7 rf
 /Fb 204[28 28 28 28 48[{}4 41.511 /CMR5 rf /Fc 145[37
 31[45 19[19 58[{}3 41.511 /CMMI5 rf /Fd 143[59 75[71
@@ -2616,7 +2616,9 @@
 %%BeginSetup
 %%Feature: *Resolution 600dpi
 TeXDict begin
-%%PaperSize: A4
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
  @landscape end
 %%EndSetup
 %%Page: 1 1
--- a/etc/dired-ref.ps	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/dired-ref.ps	Wed Apr 11 00:17:47 2007 +0000
@@ -1,16 +1,16 @@
 %!PS-Adobe-2.0
-%%Creator: dvips(k) 5.95b Copyright 2005 Radical Eye Software
+%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
 %%Title: dired-ref.dvi
 %%Pages: 1
 %%PageOrder: Ascend
-%%BoundingBox: 0 0 595 842
+%%BoundingBox: 0 0 612 792
 %%DocumentFonts: CMBX10 CMR8 CMBX8 CMTT8 CMR6 CMSY6
-%%DocumentPaperSizes: a4
+%%DocumentPaperSizes: Letter
 %%EndComments
 %DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips dired-ref.dvi
+%DVIPSCommandLine: dvips -t letter dired-ref.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2007.03.19:1902
+%DVIPSSource:  TeX output 2007.03.22:2035
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -1723,7 +1723,7 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
-TeXDict begin 39139632 55387786 1000 600 600 (dired-ref.dvi)
+TeXDict begin 40258431 52099146 1000 600 600 (dired-ref.dvi)
 @start /Fa 242[61 13[{}1 49.8132 /CMSY6 rf /Fb 134[32
 32 43 32 34 24 24 24 1[34 30 34 50 18 32 1[18 34 30 19
 27 34 27 34 30 11[45 1[34 44 1[41 1[45 54 3[22 1[47 39
@@ -1748,7 +1748,9 @@
 %%BeginSetup
 %%Feature: *Resolution 600dpi
 TeXDict begin
-%%PaperSize: A4
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
  end
 %%EndSetup
 %%Page: 1 1
--- a/etc/emacs.py	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/emacs.py	Wed Apr 11 00:17:47 2007 +0000
@@ -25,20 +25,56 @@
 
 __all__ = ["eexecfile", "eargs", "complete", "ehelp", "eimport", "modpath"]
 
+def format_exception (filename, should_remove_self):
+    type, value, tb = sys.exc_info ()
+    sys.last_type = type
+    sys.last_value = value
+    sys.last_traceback = tb
+    if type is SyntaxError:
+        try: # parse the error message
+            msg, (dummy_filename, lineno, offset, line) = value
+        except:
+            pass # Not the format we expect; leave it alone
+        else:
+            # Stuff in the right filename
+            value = SyntaxError(msg, (filename, lineno, offset, line))
+            sys.last_value = value
+    res = traceback.format_exception_only (type, value)
+    # There are some compilation errors which do not provide traceback so we
+    # should not massage it.
+    if should_remove_self:
+        tblist = traceback.extract_tb (tb)
+        del tblist[:1]
+        res = traceback.format_list (tblist)
+        if res:
+            res.insert(0, "Traceback (most recent call last):\n")
+        res[len(res):] = traceback.format_exception_only (type, value)
+    # traceback.print_exception(type, value, tb)
+    for line in res: print line,
+
 def eexecfile (file):
     """Execute FILE and then remove it.
     Execute the file within the __main__ namespace.
     If we get an exception, print a traceback with the top frame
     (ourselves) excluded."""
+    # We cannot use real execfile since it has a bug where the file stays
+    # locked forever (under w32) if SyntaxError occurs.
+    # --- code based on code.py and PyShell.py.
     try:
-       try: execfile (file, __main__.__dict__)
-       except:
-	    (type, value, tb) = sys.exc_info ()
-	    # Lose the stack frame for this location.
-	    tb = tb.tb_next
-	    if tb is None:	# print_exception won't do it
-		print "Traceback (most recent call last):"
-	    traceback.print_exception (type, value, tb)
+        try:
+            source = open (file, "r").read()
+            code = compile (source, file, "exec")
+        # Other exceptions (shouldn't be any...) will (correctly) fall
+        # through to "final".
+        except (OverflowError, SyntaxError, ValueError):
+            # FIXME: When can compile() raise anything else than
+            # SyntaxError ????
+            format_exception (file, False)
+            return
+        try:
+            exec code in __main__.__dict__
+        except:
+            format_exception (file, True)
     finally:
 	os.remove (file)
 
--- a/etc/fr-refcard.ps	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/fr-refcard.ps	Wed Apr 11 00:17:47 2007 +0000
@@ -1,17 +1,18 @@
 %!PS-Adobe-2.0
-%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
+%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
 %%Title: fr-refcard.dvi
 %%Pages: 3
 %%PageOrder: Ascend
 %%Orientation: Landscape
-%%BoundingBox: 0 0 612 792
-%%DocumentFonts: CMBX10 CMR8 CMTT8 CMBX8 CMTI8 CMMI8 CMR6 CMSY6
+%%BoundingBox: 0 0 595 842
+%%DocumentFonts: CMBX10 CMR8 CMTT8 CMBX8 CMR6 CMSY6 CMTI8 CMMI8
+%%DocumentPaperSizes: a4
 %%EndComments
 %DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t landscape fr-refcard.dvi
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2007.03.20:1952
-%%BeginProcSet: texc.pro
+%DVIPSCommandLine: dvips -t a4 -t landscape fr-refcard.dvi
+%DVIPSParameters: dpi=600
+%DVIPSSource:  TeX output 2007.03.22:0018
+%%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
 N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
@@ -30,22 +31,10 @@
 definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
 }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
 B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
 /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
 }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
 bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
@@ -69,202 +58,7 @@
 rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
 
 %%EndProcSet
-%%BeginProcSet: f7b6d320.enc
-% Thomas Esser, Dec 2002. public domain
-%
-% Encoding for:
-%     cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
-%     cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
-%     cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
-%     cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
-%
-/TeXf7b6d320Encoding [
-/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
-/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
-/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
-/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
-/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
-/period /slash /zero /one /two /three /four /five /six /seven /eight
-/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
-/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
-/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
-/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
-/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
-/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
-/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
-/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
-/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-] def
-
-%%EndProcSet
-%%BeginProcSet: 09fbbfac.enc
-% Thomas Esser, Dec 2002. public domain
-%
-% Encoding for:
-%     cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
-/TeX09fbbfacEncoding [
-/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
-/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
-/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
-/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
-/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
-/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
-/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
-/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
-/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
-/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
-/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
-/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
-/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
-/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
-/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
-/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-] def
-
-%%EndProcSet
-%%BeginProcSet: 74afc74c.enc
-% Thomas Esser, Dec 2002. public domain
-%
-% Encoding for:
-%     cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
-%
-/TeX74afc74cEncoding [
-/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
-/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
-/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
-/suppress /exclam /quotedblright /numbersign /sterling /percent
-/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
-/hyphen /period /slash /zero /one /two /three /four /five /six /seven
-/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
-/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
-/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
-/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
-/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
-/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
-/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
-/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
-/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-] def
-
-%%EndProcSet
-%%BeginProcSet: aae443f0.enc
-% Thomas Esser, Dec 2002. public domain
-%
-% Encoding for:
-%     cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
-%
-/TeXaae443f0Encoding [
-/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
-/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
-/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
-/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
-/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
-/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
-/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
-/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
-/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
-/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
-/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
-/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
-/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
-/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
-/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
-/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef
-] def
-
-%%EndProcSet
-%%BeginProcSet: bbad153f.enc
-% Thomas Esser, Dec 2002. public domain
-%
-% Encoding for:
-%     cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
-%
-/TeXbbad153fEncoding [
-/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
-/plusminus /minusplus /circleplus /circleminus /circlemultiply
-/circledivide /circledot /circlecopyrt /openbullet /bullet
-/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
-/greaterequal /precedesequal /followsequal /similar /approxequal
-/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
-/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
-/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
-/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
-/prime /infinity /element /owner /triangle /triangleinv /negationslash
-/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
-/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
-/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
-/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
-/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
-/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
-/backslash /wreathproduct /radical /coproduct /nabla /integral
-/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
-/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
-/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
-/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
-/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
-/lessequal /greaterequal /precedesequal /followsequal /similar
-/approxequal /propersubset /propersuperset /lessmuch /greatermuch
-/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-] def
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
+%%BeginProcSet: texps.pro 0 0
 %!
 TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
@@ -281,6 +75,256 @@
 end
 
 %%EndProcSet
+%%BeginFont: CMMI8
+%!PS-AdobeFont-1.1: CMMI8 1.100
+%%CreationDate: 1996 Jul 23 07:53:54
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMMI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 58 /period put
+readonly def
+/FontBBox{-24 -250 1110 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC
+4391C9DF440285B8FC159D0E98D4258FC57892DDF753642CD526A96ACEDA4120
+788F22B1D09F149794E66DD1AC2C2B3BC6FEC59D626F427CD5AE9C54C7F78F62
+C36F49B3C2E5E62AFB56DCEE87445A12A942C14AE618D1FE1B11A9CF9FAA1F32
+617B598CE5058715EF3051E228F72F651040AD99A741F247C68007E68C84E9D1
+D0BF99AA5D777D88A7D3CED2EA67F4AE61E8BC0495E7DA382E82DDB2B009DD63
+532C74E3BE5EC555A014BCBB6AB31B8286D7712E0E926F8696830672B8214E9B
+5D0740C16ADF0AFD47C4938F373575C6CA91E46D88DE24E682DEC44B57EA8AF8
+4E57D45646073250D82C4B50CBBB0B369932618301F3D4186277103B53B3C9E6
+DB42D6B30115F67B9D078220D5752644930643BDF9FACF684EBE13E39B65055E
+B1BD054C324962025EC79E1D155936FE32D9F2224353F2A46C3558EF216F6BB2
+A304BAF752BEEC36C4440B556AEFECF454BA7CBBA7537BCB10EBC21047333A89
+8936419D857CD9F59EBA20B0A3D9BA4A0D3395336B4CDA4BA6451B6E4D1370FA
+D9BDABB7F271BC1C6C48D9DF1E5A6FAE788F5609DE3C48D47A67097C547D9817
+AD3A7CCE2B771843D69F860DA4059A71494281C0AD8D4BAB3F67BB6739723C04
+AE05F9E35B2B2CB9C7874C114F57A185C8563C0DCCA93F8096384D71A2994748
+A3C7C8B8AF54961A8838AD279441D9A5EB6C1FE26C98BD025F353124DA68A827
+AE2AF8D25CA48031C242AA433EEEBB8ABA4B96821786C38BACB5F58C3D5DA011
+85B385124C2B6534F3CD1866AF92009D93B97F763AA3D16684AA65F029E776DA
+3BFB75EDD46D562E6A284DB4F2FDBF7CDE7C1F3772CD7B6FD372842A0E07E3EF
+68A98AB9278ADC2D35891543F57ED6DCFE8923368D556F1A8B3E35863112F409
+FBE67FC270328312BAA43A9A372C510717B50AAB01A1E02A9982113E2D7C601C
+B0BDA1C0E081E546A97647B74EE5194C57ACD62502B329FED4D966BDEB4028F0
+F082EDD5DFC8387653D620E9E73FDCE3C155347D5929C3A24D6121AEA46BBF3A
+B1C8A4793FB7F21C84400912C27D9AB0845537103553BF8F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMTI8
+%!PS-AdobeFont-1.1: CMTI8 1.0
+%%CreationDate: 1991 Aug 18 21:07:42
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FullName (CMTI8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMTI8 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 45 /hyphen put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 103 /g put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 121 /y put
+readonly def
+/FontBBox{-35 -250 1190 750}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
+525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
+F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
+84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
+0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
+06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
+5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
+D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
+93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
+FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
+E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
+46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
+8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
+4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
+1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
+9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
+BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
+09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
+3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
+E8929A4BB6D48613A88F926E0EB1BE5F6E29CA5350841244E1718987727B7245
+E7DDE2528073015C64AEE3BF18734A0C48AFF16A354C14E1A6D9D5DC96C06E02
+3A1FE4AF93E8349C3293F62C3466B67D25A9533C6DAA4514EA201B79042CB220
+43B3B60E13200B4F47011F95BA2EF1D6548218DCDBC1B00CCAE375F91EB60E32
+9F1198D74BC3768101AB5F2E7BDEA9FE5C1379341C604D835B50B671793DD7EF
+605F60048FC9761FE50647C15C2424EABDC9AF4257F915282EFF1CF447EA3F0B
+EE81FB67B04703215DB6AB3E47B7EE06435234C834DF84A3E0F99D753D596305
+85DD514BA3C5ACCD8BF6BC804AEA170A32B2080B694CF7FE994228ECCAD86C4B
+CB8B963E84D46ED86B2D43DADB277A79DD100777CB0F2022C8AC9DA77D500C73
+D6E15540121B6D82457096083526C7E2697F776239E02C3E64D25AFBFB58474E
+E82672F2FBEA78ED5DCA1BB4FCD627BAAB6AB50232EDBE99D6CC51A287F80DCF
+14CC7DE3DCFF47A1DFA130CF7F502193C6C00B1A7A1515FF7374351238158B97
+AA26F0F2773E81CD03F4A398BEFBDCB450F0FA6450FD48B5A69E37B036BE5F85
+0F0B1AAAB2CF3098AEF32B0902398A6A9E1DB5A0C42DD39E3208C4F8BBEC0A98
+35FC84FF5EB2293644F7E6EF28FAF5F6E5205029CCFF7342BC276958EFFD7817
+5D9F367C6FF151B12353BE9DDCF75196F2C8C8C889BB097A3D9D8FF5D77A7184
+D9F3EAC4493E94DC73886AFD7652ADBF562189B0B85FA5AEA4CA44558D70A408
+4A276D6B0BCF6ED2F5E42E97933AEC978D286B3D0A99C6C7AB10AC6D1C36B07D
+EA2F47489D4C2A55A6902C665B7321DD5324C6CE172349E5C6561B5F1CBBFD6E
+B5FBBB914307020B218D68C45BB2E9A0BE81C9E8D5D71BC7851CD2922656337A
+9659E8E0A8F240903FC34DA589EC6D1FE6CF17D238576472C0CD1E0EB21A46B5
+5B9DACB6CA3B094E51386E45C506D55EE3AC95AF333EBD0305084697383F054D
+61680900B82CB80D030270CA9C614A373B0B5B26F8465AE581967C6A336D8C44
+21CED60606DF99F05AFC4C37F53D2D97450B78F1211A2682414780DFF7F6AC6E
+750071385D6DC87B58D3D13E286F70B11A692F4BF57BC828C6AA98C44EFE13F8
+44535F79F5458B03AAE3ECEBF2EFD4AA83316E839EF7EBADEA22C17FF039FA85
+498379D857AE78AC68CCC7D1EB2FE84D465AA452F43EC1AFEFE568E42F13E0BC
+1CDF5C873F8E3952713BD9A472E6FC9CDE8DDD9281EE3554C22A0D591C91D3E4
+0B3162930BB6F0AC229EE1C847EC39BF81DDDE1A0B0EC7BC51A05AE93B3A891A
+3FEB85C68C88AADD29FD39F9DB30FB250D41EBB1124ED0069CDC49B3359D8689
+05DCE2A27EFF35751E51E2C4AEA7DC8B2AF546AB58D6BE81DDD38A3A0833AB62
+E54F54ABC2BB67EF06678D0AA3AB0B240FDFD510404D87A1EA75D5005984B7D0
+DE9EE818E8F99BA9FD646FEAB795E5048E0710CEB0CBD8CA39754BCF7957C646
+532525C2B94D55B1AF534778D653BD50DCECF8DFA4CFD08092AA4DD3D8BB43E9
+6F40CE1B0B25287C46AA961061A0AE3714A465E39694B6E62410ECB1F409F939
+51CE57A12C3CB5B4332A3BDEF4C13917982A0A4527440CAD427F1284E6534D68
+201DA7E10B4DC25CCD025DB0D7E0906C59E235CBF747ED10C3300C1BA42BF434
+1A3C9605F0D568CD938B0DEB5C5E8390309BDFA89EFA3E5F226A24910EAB3791
+0361A08FE539B158072E96BC988AB061736F7DD19DEB61DB5738F2B43682C3E7
+12D709F9E149DA4602201AD24F42BBBEDA49118A93A7F26B703AECDE574441EE
+DAF7C634669C0D907B18BF4EAE198E9F3DD8F743FDBDBB2FF8C6650F17115FFF
+890F0FA7B873022FABADAD05C42B65FE98E870568D2CF828CDFF7C1EEEB5BF4B
+5E695EA05518191A5E8D34EB22091935E0816F8B49AFDCC44811D12D3CA85A57
+8C67D67D400ECEBADAABDC5F7D4E1DE4E330FD1A954B925E2A5B1D0CFF2D80D5
+F668367C28480C7EC3359C781279E8928DB03E274855F7001ABCCE243ED7C259
+67D4705EE2211FEF30D8E82F9EA0838B905A9FB986D1DD200524B74EC4B1AF8B
+A0216BBCE594588D8C28A527BC85306960D73D85D96B652B88462881EA065E0C
+84485D21B22E71768A81037FA08C48EA83AEC7118DA808CC62783E7DFB121A87
+0A8DA5BC6AD5B8C8ABD057D94DCD627E2CF3D6AACC031BCD50FF49C658EABCF1
+E6ED48E7B3A550782F077CCE21EFB7368B0D12EDF21BDA1DCD30D523A8B94729
+1E339B18677721963F0F9FF961CA6B065A881546683125114FB8BFBF996BA299
+9CA4E3F5BD5C0D614E2515BB6AAFD9D16E1F0C0409A524D91DAD55BB9630C810
+B1DF32BC5820AA059559A5095BF09750F21E3AECAD39CDB3277D06B78E2A0A08
+533EF557F6815F1C361B2417D27F7D9EFA5C2DB0B2655938C8E9E1E36C411E70
+7D57FD9EAFA6FD2C4D3A40D2F35C176E0522C6D0969A2DB598553D9C0A1940D2
+F3D8241AB8DB63E8426BF19B093D99DECC9E2633FE5C77EE55951036A7E19CC6
+27A2DDA74A95F870306ACF9945AA4FE9E10F1FBC43830B2D817016290E50F988
+7283F8E409B5BD2048CF8E8465DC3EC57EE47A7BB678093183B453FC60A8CD67
+6CE6E21A859B1EEACCB9E0A3DC1AEF41C74FE0E0245587A5E1F107BBA11C2B86
+91690DB7158BDAA3F2D82A820A36B3684CC11CCC4802C5F8135FAABDDD50091E
+97AE58FE38F088A7348D08F1B9A14BFEB8E97D81066D5C244DBDD9ABECECE72C
+6A91E31A815E2B22652F7813BDF07DEF9CBD0E8BB6E7999511289A0CE3CCF502
+14D9A77E29615479657F8BE9AA3EBAC9DD08A04EE7A160A1C528BD6C2CE79E67
+8913543117C32977841E710DCE7C0DAE68888C8EBEBD9883B9F9AF86B1C5790E
+E520337D14F18FB14686356E4F1248B3E884634480E683DDDFE4B0221AF0825C
+AF3B27DC3156F1E0B5E8D75063A10A81A78698BE4E1A4C2F49D2E530AF1ED966
+8EF252D3CBEACAD0394B9546D51768C195A23A041EC1E3F21AC91C498515EDCF
+5A9977F9D72ADBBED88D5E3FFEC64A087FAB9DBDB268608247B977E435E4CE34
+F0C543383384541FF88669E53446065864769D5D3957C64011D7C93FC147B093
+9FA961A60BDDF97F1A3BF53CC18D306DFCFE04DF980F026428E84140542171F0
+F706A48EDEC416DC58F006761686EBA99598962F6E1BEC8E78AEA474CF0AD890
+A72B9906BC891564ECD5440FE6047DB452171AF35C33C24D8A23E41C112D93B5
+F1B422386DFBE80ABBF7BD43F152F0451B7B0DB2D71B75575CB5256C94F40AE2
+E8DB4CABF990502BD74BE028E14C1972E666932E04E79B743B3357737F31D08B
+EB9755DF6C89C185A7F13DA21A6E6E526A9089B11C6BB1F5247E31685B028F52
+555F98CAB929558BA7BCDEAE76F93E7B00B214543EBEA0FA375B624B4553C133
+16D6E2B846FAA862F9DCBD8FCB2A59EADE462BC8FDF8DC56B888C6C5ECF9BBB2
+4197F4DDA197A9405F639643A4334545A8004F05963A05747B4905A319411086
+9A691FF410F400E7E569CF8EA99102A57A569C223B8CF8A4B285ADAEDB238FB4
+5FCCC3A9EB063BFB1F9263D8B31D8AE580B6B8F1F311388B509E224F7E600A98
+DE394C80D1CC6391D45160FC7CE92B0CD7E74B0844DD0F3562B14833A563FE6A
+E5942191AA6BAE176278E9EC30533FE310F0694745C024929A65E4C411DAAF0C
+F3539203284EDADDC1E27FF0EC2FED41AAD7A3CDCBF2B4177647CAEFA2FDD380
+F6483BB02F87E1B66F1F5F8B23DE0ED2EAF4C540A5D392D6B49B0BDF15DEDC09
+13DF0F14E0E49389A82445230CB58704CDF21591EC4E721119F4786523A16BA1
+95F9288C0704DE543FD38496FC59B15143CA8BA06584BE7E6C9F09DD4F207C09
+F2086D39D48B652E45BD2FC4E2C4BC1FE534CC1109E177C7494E0914CD0E45BB
+C8461B6A6FEAC2A2742CB9B3441DB0340DA91F6C6BA5EF79D6363F68A52F3300
+7CF46E9F6D5A7E33762852D4BA13A1825AFCF10B00CF175EB0059D272DBAB911
+30D027A1C1AAF745E0D69B71FB455C1363AF42B7A00B142D9C8ADDF4CE9801AF
+71C666C1A6773BF48F35076FED27423E1CD18139F3D8B0A3E1AE44C55382FC66
+942021B7C1E3451D679218810F816DA083A644A378D6ADEECCC212169B96FEBF
+744AD8C249E092F87CE696C926ED9E61B728674F39DFB645FF5AA6D742B73CF3
+37536ABDB80094DD7CB7D0FC30B6370F8CF9B145F65F4220FA592AF67383108C
+3739E4FD2E0878AF00DDEE092CCD14B1E749941F342701F07097A4DF0EE5AB3A
+B3D9BFE0B1060ADAFA7D4E3392218E5A7AEFE4CC01827ACD6903C2412270367B
+FC75D8C1E290C5489BF2ADE1B3FA6E11B5BCF37FFBC42D0B3E7A7435D6AA7E8F
+62B96A05C15CF7025EE1B0D9CC2580A11A1F187DE686E6F8ABBE658382B212CC
+D9BAB099DD7ED5EC269FF8CAC8C16E101B7AFE3BF9854884FF0746A1B0423FFC
+468342D5D31CEA0EDD7EB5FEEDDB129B7C55DDA20291A18592079BD75D8DCFA1
+2182EB1AB128A319FFB027164B5F9505754A4B1C8DFAD7FF0C892D97FEA8F506
+C65585142BB9F986886117C7CFC66EE962D1609DC1DD36930A6525D1ED03AA93
+282605FCC5C7C651D657EB8ED0A55EE348994C18FF6AEF1D8D669273B6EE450E
+709E6F60358F225E209AD70E96778E8375F41BCEFF74D46D595C0819C85E60DC
+DB702C6AB7E90FEA2EB9EC299FDA15BE8A807EEBEB1BAFD628BB94B1E28EBD60
+B6DAFF828C2C80821C8ECE963DC90E750EB00E3418BD0858AC6595012D32C308
+DDF9F30191779BFD58D93AF0DFEDE67AD6902FCF8C953CF52188311EDD0D005C
+BD31ADEE0825CE1C25725EA2D6C9E5D8D9034C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
 %%BeginFont: CMSY6
 %!PS-AdobeFont-1.1: CMSY6 1.0
 %%CreationDate: 1991 Aug 15 07:21:34
@@ -301,10 +345,9 @@
 /FontMatrix [0.001 0 0 0.001 0 0] readonly def
 /Encoding 256 array
 0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
+dup 13 /circlecopyrt put
 readonly def
 /FontBBox{-4 -948 1329 786}readonly def
-/UniqueID 5000816 def
 currentdict end
 currentfile eexec
 D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
@@ -358,10 +401,60 @@
 /FontMatrix [0.001 0 0 0.001 0 0] readonly def
 /Encoding 256 array
 0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
+dup 18 /grave put
+dup 19 /acute put
+dup 24 /cedilla put
+dup 39 /quoteright put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 53 /five put
+dup 54 /six put
+dup 55 /seven put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 73 /I put
+dup 74 /J put
+dup 77 /M put
+dup 78 /N put
+dup 80 /P put
+dup 83 /S put
+dup 85 /U put
+dup 86 /V put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 121 /y put
+dup 122 /z put
 readonly def
 /FontBBox{-20 -250 1193 750}readonly def
-/UniqueID 5000789 def
 currentdict end
 currentfile eexec
 D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -645,241 +738,6 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
-%%BeginFont: CMMI8
-%!PS-AdobeFont-1.1: CMMI8 1.100
-%%CreationDate: 1996 Jul 23 07:53:54
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMMI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMMI8 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
-readonly def
-/FontBBox{-24 -250 1110 750}readonly def
-/UniqueID 5087383 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC
-4391C9DF440285B8FC159D0E98D4258FC57892DDF753642CD526A96ACEDA4120
-788F22B1D09F149794E66DD1AC2C2B3BC6FEC59D626F427CD5AE9C54C7F78F62
-C36F49B3C2E5E62AFB56DCEE87445A12A942C14AE618D1FE1B11A9CF9FAA1F32
-617B598CE5058715EF3051E228F72F651040AD99A741F247C68007E68C84E9D1
-D0BF99AA5D777D88A7D3CED2EA67F4AE61E8BC0495E7DA382E82DDB2B009DD63
-532C74E3BE5EC555A014BCBB6AB31B8286D7712E0E926F8696830672B8214E9B
-5D0740C16ADF0AFD47C4938F373575C6CA91E46D88DE24E682DEC44B57EA8AF8
-4E57D45646073250D82C4B50CBBB0B369932618301F3D4186277103B53B3C9E6
-DB42D6B30115F67B9D078220D5752644930643BDF9FACF684EBE13E39B65055E
-B1BD054C324962025EC79E1D155936FE32D9F2224353F2A46C3558EF216F6BB2
-A304BAF752BEEC36C4440B556AEFECF454BA7CBBA7537BCB10EBC21047333A89
-8936419D857CD9F59EBA20B0A3D9BA4A0D3395336B4CDA4BA6451B6E4D1370FA
-D9BDABB7F271BC1C6C48D9DF1E5A6FAE788F5609DE3C48D47A67097C547D9817
-AD3A7CCE2B771843D69F860DA4059A71494281C0AD8D4BAB3F67BB6739723C04
-AE05F9E35B2B2CB9C7874C114F57A185C8563C0DCCA93F8096384D71A2994748
-A3C7C8B8AF54961A8838AD279441D9A5EB6C1FE26C98BD025F353124DA68A827
-AE2AF8D25CA48031C242AA433EEEBB8ABA4B96821786C38BACB5F58C3D5DA011
-85B385124C2B6534F3CD1866AF92009D93B97F763AA3D16684AA65F029E776DA
-3BFB75EDD46D562E6A284DB4F2FDBF7CDE7C1F3772CD7B6FD372842A0E07E3EF
-68A98AB9278ADC2D35891543F57ED6DCFE8923368D556F1A8B3E35863112F409
-FBE67FC270328312BAA43A9A372C510717B50AAB01A1E02A9982113E2D7C601C
-B0BDA1C0E081E546A97647B74EE5194C57ACD62502B329FED4D966BDEB4028F0
-F082EDD5DFC8387653D620E9E73FDCE3C155347D5929C3A24D6121AEA46BBF3A
-B1C8A4793FB7F21C84400912C27D9AB0845537103553BF8F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont 
-%%BeginFont: CMTI8
-%!PS-AdobeFont-1.1: CMTI8 1.0
-%%CreationDate: 1991 Aug 18 21:07:42
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMTI8) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMTI8 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
-readonly def
-/FontBBox{-35 -250 1190 750}readonly def
-/UniqueID 5000826 def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-525003F3DAD7933EB57E7DB1462E9D906F6D8F5BF740206C1EC5F36E00AAFF68
-F3EF6F3A2540E5F9564D1C215BC1E7E69C7D04DA5DB1CF195613C9CBF4BAA360
-84AEF3E10E24877FBE36AD731DC97305BDE6DB1F934909FAF60B8E28561FBC57
-0F5B6225425BFDE8F0C71CD4507B82FF803E9A301397975E38A259DE1E1B4FC0
-06BB1DC2D45B987A2268A77CE8DC025CB0D1B39788BBEE149103950650171C94
-5FED1063050A90BD38605BD9365D1C2AE42A7DA3DDB9A263FE10BD487F63D908
-D4F02758BD9D7BE53E6353A25BEFA29E42B50C1D078A8B3A746EEDB381CCE36C
-93FC4BD1A8D1D6ACD0D355E948CFE397B74D243EB51597D251D0BAE6884D70E8
-FEE119462E1939A9783414DF59EEA5FF1529F13869D1FF0A44935C5198CC5DAA
-E1FD2A17AEEBF4974052D06734A409E26C457C06700C55896C90BB33E044A737
-46590D9FA242819B9527FD59818D8829D4EB2D26A34CC05A2CC063E66F2DF193
-8E4F9670014BC243180E45B51DDB05AD1E6A7F619EE1CE09CFC1A4F02CB7270E
-4482FEDF673EDED38EF3173C475C34BFB3F6623C5E942A7797FEDDD0EF1D54E9
-1D90D7076C0A9687E334907C22F2E7C603388D8D626B0E5A62B7543DCBB575D7
-9A6BE1528EC9BC18570001092524E4FBB02F3B29293BCB4F0EF14A2DD9DB22A5
-BB33455799E8120D2A4862424AA4A382972E2845E042506FC8F6E201D11DD0F2
-09FAD8DC29C3E12B66293ACBFB13FA0F26238981F2CD52B47A8CDE6DF5CDFAAF
-3113E1A6366B806EABA9C34E5D41167CD10D7B639021FB4CFDAE28CE72A93F3C
-E8929A4BB6D48613A88F926E0EB1BE5F6E29CA5350841244E1718987727B7245
-E7DDE2528073015C64AEE3BF18734A0C48AFF16A354C14E1A6D9D5DC96C06E02
-3A1FE4AF93E8349C3293F62C3466B67D25A9533C6DAA4514EA201B79042CB220
-43B3B60E13200B4F47011F95BA2EF1D6548218DCDBC1B00CCAE375F91EB60E32
-9F1198D74BC3768101AB5F2E7BDEA9FE5C1379341C604D835B50B671793DD7EF
-605F60048FC9761FE50647C15C2424EABDC9AF4257F915282EFF1CF447EA3F0B
-EE81FB67B04703215DB6AB3E47B7EE06435234C834DF84A3E0F99D753D596305
-85DD514BA3C5ACCD8BF6BC804AEA170A32B2080B694CF7FE994228ECCAD86C4B
-CB8B963E84D46ED86B2D43DADB277A79DD100777CB0F2022C8AC9DA77D500C73
-D6E15540121B6D82457096083526C7E2697F776239E02C3E64D25AFBFB58474E
-E82672F2FBEA78ED5DCA1BB4FCD627BAAB6AB50232EDBE99D6CC51A287F80DCF
-14CC7DE3DCFF47A1DFA130CF7F502193C6C00B1A7A1515FF7374351238158B97
-AA26F0F2773E81CD03F4A398BEFBDCB450F0FA6450FD48B5A69E37B036BE5F85
-0F0B1AAAB2CF3098AEF32B0902398A6A9E1DB5A0C42DD39E3208C4F8BBEC0A98
-35FC84FF5EB2293644F7E6EF28FAF5F6E5205029CCFF7342BC276958EFFD7817
-5D9F367C6FF151B12353BE9DDCF75196F2C8C8C889BB097A3D9D8FF5D77A7184
-D9F3EAC4493E94DC73886AFD7652ADBF562189B0B85FA5AEA4CA44558D70A408
-4A276D6B0BCF6ED2F5E42E97933AEC978D286B3D0A99C6C7AB10AC6D1C36B07D
-EA2F47489D4C2A55A6902C665B7321DD5324C6CE172349E5C6561B5F1CBBFD6E
-B5FBBB914307020B218D68C45BB2E9A0BE81C9E8D5D71BC7851CD2922656337A
-9659E8E0A8F240903FC34DA589EC6D1FE6CF17D238576472C0CD1E0EB21A46B5
-5B9DACB6CA3B094E51386E45C506D55EE3AC95AF333EBD0305084697383F054D
-61680900B82CB80D030270CA9C614A373B0B5B26F8465AE581967C6A336D8C44
-21CED60606DF99F05AFC4C37F53D2D97450B78F1211A2682414780DFF7F6AC6E
-750071385D6DC87B58D3D13E286F70B11A692F4BF57BC828C6AA98C44EFE13F8
-44535F79F5458B03AAE3ECEBF2EFD4AA83316E839EF7EBADEA22C17FF039FA85
-498379D857AE78AC68CCC7D1EB2FE84D465AA452F43EC1AFEFE568E42F13E0BC
-1CDF5C873F8E3952713BD9A472E6FC9CDE8DDD9281EE3554C22A0D591C91D3E4
-0B3162930BB6F0AC229EE1C847EC39BF81DDDE1A0B0EC7BC51A05AE93B3A891A
-3FEB85C68C88AADD29FD39F9DB30FB250D41EBB1124ED0069CDC49B3359D8689
-05DCE2A27EFF35751E51E2C4AEA7DC8B2AF546AB58D6BE81DDD38A3A0833AB62
-E54F54ABC2BB67EF06678D0AA3AB0B240FDFD510404D87A1EA75D5005984B7D0
-DE9EE818E8F99BA9FD646FEAB795E5048E0710CEB0CBD8CA39754BCF7957C646
-532525C2B94D55B1AF534778D653BD50DCECF8DFA4CFD08092AA4DD3D8BB43E9
-6F40CE1B0B25287C46AA961061A0AE3714A465E39694B6E62410ECB1F409F939
-51CE57A12C3CB5B4332A3BDEF4C13917982A0A4527440CAD427F1284E6534D68
-201DA7E10B4DC25CCD025DB0D7E0906C59E235CBF747ED10C3300C1BA42BF434
-1A3C9605F0D568CD938B0DEB5C5E8390309BDFA89EFA3E5F226A24910EAB3791
-0361A08FE539B158072E96BC988AB061736F7DD19DEB61DB5738F2B43682C3E7
-12D709F9E149DA4602201AD24F42BBBEDA49118A93A7F26B703AECDE574441EE
-DAF7C634669C0D907B18BF4EAE198E9F3DD8F743FDBDBB2FF8C6650F17115FFF
-890F0FA7B873022FABADAD05C42B65FE98E870568D2CF828CDFF7C1EEEB5BF4B
-5E695EA05518191A5E8D34EB22091935E0816F8B49AFDCC44811D12D3CA85A57
-8C67D67D400ECEBADAABDC5F7D4E1DE4E330FD1A954B925E2A5B1D0CFF2D80D5
-F668367C28480C7EC3359C781279E8928DB03E274855F7001ABCCE243ED7C259
-67D4705EE2211FEF30D8E82F9EA0838B905A9FB986D1DD200524B74EC4B1AF8B
-A0216BBCE594588D8C28A527BC85306960D73D85D96B652B88462881EA065E0C
-84485D21B22E71768A81037FA08C48EA83AEC7118DA808CC62783E7DFB121A87
-0A8DA5BC6AD5B8C8ABD057D94DCD627E2CF3D6AACC031BCD50FF49C658EABCF1
-E6ED48E7B3A550782F077CCE21EFB7368B0D12EDF21BDA1DCD30D523A8B94729
-1E339B18677721963F0F9FF961CA6B065A881546683125114FB8BFBF996BA299
-9CA4E3F5BD5C0D614E2515BB6AAFD9D16E1F0C0409A524D91DAD55BB9630C810
-B1DF32BC5820AA059559A5095BF09750F21E3AECAD39CDB3277D06B78E2A0A08
-533EF557F6815F1C361B2417D27F7D9EFA5C2DB0B2655938C8E9E1E36C411E70
-7D57FD9EAFA6FD2C4D3A40D2F35C176E0522C6D0969A2DB598553D9C0A1940D2
-F3D8241AB8DB63E8426BF19B093D99DECC9E2633FE5C77EE55951036A7E19CC6
-27A2DDA74A95F870306ACF9945AA4FE9E10F1FBC43830B2D817016290E50F988
-7283F8E409B5BD2048CF8E8465DC3EC57EE47A7BB678093183B453FC60A8CD67
-6CE6E21A859B1EEACCB9E0A3DC1AEF41C74FE0E0245587A5E1F107BBA11C2B86
-91690DB7158BDAA3F2D82A820A36B3684CC11CCC4802C5F8135FAABDDD50091E
-97AE58FE38F088A7348D08F1B9A14BFEB8E97D81066D5C244DBDD9ABECECE72C
-6A91E31A815E2B22652F7813BDF07DEF9CBD0E8BB6E7999511289A0CE3CCF502
-14D9A77E29615479657F8BE9AA3EBAC9DD08A04EE7A160A1C528BD6C2CE79E67
-8913543117C32977841E710DCE7C0DAE68888C8EBEBD9883B9F9AF86B1C5790E
-E520337D14F18FB14686356E4F1248B3E884634480E683DDDFE4B0221AF0825C
-AF3B27DC3156F1E0B5E8D75063A10A81A78698BE4E1A4C2F49D2E530AF1ED966
-8EF252D3CBEACAD0394B9546D51768C195A23A041EC1E3F21AC91C498515EDCF
-5A9977F9D72ADBBED88D5E3FFEC64A087FAB9DBDB268608247B977E435E4CE34
-F0C543383384541FF88669E53446065864769D5D3957C64011D7C93FC147B093
-9FA961A60BDDF97F1A3BF53CC18D306DFCFE04DF980F026428E84140542171F0
-F706A48EDEC416DC58F006761686EBA99598962F6E1BEC8E78AEA474CF0AD890
-A72B9906BC891564ECD5440FE6047DB452171AF35C33C24D8A23E41C112D93B5
-F1B422386DFBE80ABBF7BD43F152F0451B7B0DB2D71B75575CB5256C94F40AE2
-E8DB4CABF990502BD74BE028E14C1972E666932E04E79B743B3357737F31D08B
-EB9755DF6C89C185A7F13DA21A6E6E526A9089B11C6BB1F5247E31685B028F52
-555F98CAB929558BA7BCDEAE76F93E7B00B214543EBEA0FA375B624B4553C133
-16D6E2B846FAA862F9DCBD8FCB2A59EADE462BC8FDF8DC56B888C6C5ECF9BBB2
-4197F4DDA197A9405F639643A4334545A8004F05963A05747B4905A319411086
-9A691FF410F400E7E569CF8EA99102A57A569C223B8CF8A4B285ADAEDB238FB4
-5FCCC3A9EB063BFB1F9263D8B31D8AE580B6B8F1F311388B509E224F7E600A98
-DE394C80D1CC6391D45160FC7CE92B0CD7E74B0844DD0F3562B14833A563FE6A
-E5942191AA6BAE176278E9EC30533FE310F0694745C024929A65E4C411DAAF0C
-F3539203284EDADDC1E27FF0EC2FED41AAD7A3CDCBF2B4177647CAEFA2FDD380
-F6483BB02F87E1B66F1F5F8B23DE0ED2EAF4C540A5D392D6B49B0BDF15DEDC09
-13DF0F14E0E49389A82445230CB58704CDF21591EC4E721119F4786523A16BA1
-95F9288C0704DE543FD38496FC59B15143CA8BA06584BE7E6C9F09DD4F207C09
-F2086D39D48B652E45BD2FC4E2C4BC1FE534CC1109E177C7494E0914CD0E45BB
-C8461B6A6FEAC2A2742CB9B3441DB0340DA91F6C6BA5EF79D6363F68A52F3300
-7CF46E9F6D5A7E33762852D4BA13A1825AFCF10B00CF175EB0059D272DBAB911
-30D027A1C1AAF745E0D69B71FB455C1363AF42B7A00B142D9C8ADDF4CE9801AF
-71C666C1A6773BF48F35076FED27423E1CD18139F3D8B0A3E1AE44C55382FC66
-942021B7C1E3451D679218810F816DA083A644A378D6ADEECCC212169B96FEBF
-744AD8C249E092F87CE696C926ED9E61B728674F39DFB645FF5AA6D742B73CF3
-37536ABDB80094DD7CB7D0FC30B6370F8CF9B145F65F4220FA592AF67383108C
-3739E4FD2E0878AF00DDEE092CCD14B1E749941F342701F07097A4DF0EE5AB3A
-B3D9BFE0B1060ADAFA7D4E3392218E5A7AEFE4CC01827ACD6903C2412270367B
-FC75D8C1E290C5489BF2ADE1B3FA6E11B5BCF37FFBC42D0B3E7A7435D6AA7E8F
-62B96A05C15CF7025EE1B0D9CC2580A11A1F187DE686E6F8ABBE658382B212CC
-D9BAB099DD7ED5EC269FF8CAC8C16E101B7AFE3BF9854884FF0746A1B0423FFC
-468342D5D31CEA0EDD7EB5FEEDDB129B7C55DDA20291A18592079BD75D8DCFA1
-2182EB1AB128A319FFB027164B5F9505754A4B1C8DFAD7FF0C892D97FEA8F506
-C65585142BB9F986886117C7CFC66EE962D1609DC1DD36930A6525D1ED03AA93
-282605FCC5C7C651D657EB8ED0A55EE348994C18FF6AEF1D8D669273B6EE450E
-709E6F60358F225E209AD70E96778E8375F41BCEFF74D46D595C0819C85E60DC
-DB702C6AB7E90FEA2EB9EC299FDA15BE8A807EEBEB1BAFD628BB94B1E28EBD60
-B6DAFF828C2C80821C8ECE963DC90E750EB00E3418BD0858AC6595012D32C308
-DDF9F30191779BFD58D93AF0DFEDE67AD6902FCF8C953CF52188311EDD0D005C
-BD31ADEE0825CE1C25725EA2D6C9E5D8D9034C
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont 
 %%BeginFont: CMBX8
 %!PS-AdobeFont-1.1: CMBX8 1.0
 %%CreationDate: 1991 Aug 20 16:36:07
@@ -900,10 +758,34 @@
 /FontMatrix [0.001 0 0 0.001 0 0] readonly def
 /Encoding 256 array
 0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
+dup 12 /fi put
+dup 18 /grave put
+dup 19 /acute put
+dup 39 /quoteright put
+dup 45 /hyphen put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 120 /x put
 readonly def
 /FontBBox{-59 -250 1235 750}readonly def
-/UniqueID 5000766 def
 currentdict end
 currentfile eexec
 D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -1079,10 +961,82 @@
 /FontMatrix [0.001 0 0 0.001 0 0] readonly def
 /Encoding 256 array
 0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
+dup 33 /exclam put
+dup 34 /quotedbl put
+dup 35 /numbersign put
+dup 36 /dollar put
+dup 37 /percent put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 42 /asterisk put
+dup 43 /plus put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 47 /slash put
+dup 48 /zero put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 53 /five put
+dup 58 /colon put
+dup 60 /less put
+dup 62 /greater put
+dup 63 /question put
+dup 64 /at put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 76 /L put
+dup 77 /M put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 87 /W put
+dup 91 /bracketleft put
+dup 92 /backslash put
+dup 93 /bracketright put
+dup 94 /asciicircum put
+dup 95 /underscore put
+dup 96 /quoteleft put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /braceleft put
+dup 124 /bar put
+dup 125 /braceright put
 readonly def
 /FontBBox{-5 -232 545 699}readonly def
-/UniqueID 5000830 def
 currentdict end
 currentfile eexec
 D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -1481,10 +1435,54 @@
 /FontMatrix [0.001 0 0 0.001 0 0] readonly def
 /Encoding 256 array
 0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
+dup 12 /fi put
+dup 18 /grave put
+dup 19 /acute put
+dup 39 /quoteright put
+dup 45 /hyphen put
+dup 65 /A put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 73 /I put
+dup 74 /J put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 81 /Q put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 86 /V put
+dup 94 /circumflex put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 120 /x put
 readonly def
 /FontBBox{-301 -250 1164 946}readonly def
-/UniqueID 5000768 def
 currentdict end
 currentfile eexec
 D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -1794,10 +1792,69 @@
 /FontMatrix [0.001 0 0 0.001 0 0] readonly def
 /Encoding 256 array
 0 1 255 {1 index exch /.notdef put} for
-dup 0 /.notdef put
+dup 11 /ff put
+dup 12 /fi put
+dup 14 /ffi put
+dup 16 /dotlessi put
+dup 18 /grave put
+dup 19 /acute put
+dup 27 /oe put
+dup 34 /quotedblright put
+dup 39 /quoteright put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 49 /one put
+dup 50 /two put
+dup 57 /nine put
+dup 58 /colon put
+dup 65 /A put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 73 /I put
+dup 76 /L put
+dup 78 /N put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 85 /U put
+dup 88 /X put
+dup 92 /quotedblleft put
+dup 94 /circumflex put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 123 /endash put
 readonly def
 /FontBBox{-36 -250 1070 750}readonly def
-/UniqueID 5000791 def
 currentdict end
 currentfile eexec
 D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
@@ -2130,496 +2187,496 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
-TeXDict begin 52099146 40258431 1000 600 600 (fr-refcard.dvi)
-@start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1
-49.8132 /CMSY6 rf /Fb 133[27 32 1[43 32 34 24 24 24 32
+TeXDict begin 55387786 39139632 1000 600 600 (fr-refcard.dvi)
+@start /Fa 197[20 58[{}1 66.4176 /CMMI8 rf /Fb 134[35
+3[38 24 29 30 1[36 36 40 58 18 2[22 1[33 1[33 36 33 33
+36 51[26 45[{}18 66.4176 /CMTI8 rf /Fc 242[61 13[{}1
+49.8132 /CMSY6 rf /Fd 133[27 32 1[43 32 34 24 24 24 32
 34 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 10[45
 45 1[34 2[41 1[45 54 2[31 22 1[47 39 41 1[43 42 45 9[30
-30 30 1[30 30 30 30 1[18 21 18 4[18 14[27 4[30 30 18[{
- TeXf7b6d320Encoding ReEncodeFont }52 49.8132 /CMR6 rf
-/Fc 197[20 58[{ TeXaae443f0Encoding ReEncodeFont }1 66.4176
-/CMMI8 rf /Fd 134[35 3[38 24 29 30 1[36 36 40 58 18 2[22
-1[33 1[33 36 33 33 36 51[26 45[{ TeX74afc74cEncoding ReEncodeFont }18
-66.4176 /CMTI8 rf /Fe 135[43 1[43 45 32 32 34 43 45 41
+30 30 1[30 30 30 30 1[18 21 18 4[18 14[27 4[30 30 18[{}52
+49.8132 /CMR6 rf /Fe 135[43 1[43 45 32 32 34 43 45 41
 45 68 23 2[23 45 41 25 37 45 36 45 40 51[27 5[23 19[41
-41 5[45 12[{ TeXf7b6d320Encoding ReEncodeFont }26 66.4176
-/CMBX8 rf /Ff 130[35 35 35 35 35 35 35 35 35 35 35 35
+41 5[45 12[{}26 66.4176 /CMBX8 rf /Ff 130[35 35 35 35
 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-35 35 35 35 35 3[35 2[35 35 35 1[35 2[35 35 4[35 35 35
-35 35 35 35 35 35 35 1[35 1[35 4[35 35 35 35 35 35 35
-35 35 35 35 35 35 35 35 1[35 35 35 35 35 33[{
- TeX09fbbfacEncoding ReEncodeFont }74 66.4176 /CMTT8
-rf /Fg 135[60 1[60 64 45 45 47 60 64 57 64 95 32 2[32
-64 57 35 53 64 51 64 56 2[57 7[87 1[80 64 86 86 78 86
-1[109 69 1[59 43 2[72 75 88 83 1[87 19[38 5[32 19[57
-57 5[64 12[{ TeXf7b6d320Encoding ReEncodeFont }43 99.6264
+35 35 35 35 35 35 35 35 35 35 35 35 35 3[35 2[35 35 35
+1[35 2[35 35 4[35 35 35 35 35 35 35 35 35 35 1[35 1[35
+4[35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 1[35 35
+35 35 35 33[{}74 66.4176 /CMTT8 rf /Fg 135[60 1[60 64
+45 45 47 60 64 57 64 95 32 2[32 64 57 35 53 64 51 64
+56 2[57 7[87 1[80 64 86 86 78 86 1[109 69 1[59 43 2[72
+75 88 83 1[87 19[38 5[32 19[57 57 5[64 12[{}43 99.6264
 /CMBX10 rf /Fh 132[35 31 37 37 51 37 39 27 28 28 37 39
 35 39 59 20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35
 3[53 2[53 1[39 52 1[48 1[53 1[44 2[25 1[55 46 48 54 51
 1[53 6[20 35 6[35 35 2[20 24 20 2[27 27 20 4[35 6[55
-7[35 35 1[20 1[59 1[39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }61
-66.4176 /CMR8 rf /Fi 139[53 54 57 3[76 115 6[42 63 76
-61 1[67 11[106 6[108 6[108 1[90 1[99 47[69 19[{
- TeXf7b6d320Encoding ReEncodeFont }16 119.552 /CMBX10
-rf end
+7[35 35 1[20 1[59 1[39 41 11[{}61 66.4176 /CMR8 rf /Fi
+139[53 54 57 3[76 115 6[42 63 76 61 1[67 11[106 6[108
+6[108 1[90 1[99 47[69 19[{}16 119.552 /CMBX10 rf end
 %%EndProlog
 %%BeginSetup
 %%Feature: *Resolution 600dpi
 TeXDict begin
+%%BeginPaperSize: a4
+a4
+%%EndPaperSize
  @landscape end
 %%EndSetup
 %%Page: 1 1
 TeXDict begin @landscape 1 0 bop -540 -364 a Fi(Carte)46
 b(de)g(r)m(\023)-66 b(ef)m(\023)g(erence)46 b(de)g(GNU)f(Emacs)205
--272 y Fh(\(p)r(our)24 b(la)f(v)n(ersion)h(22\))-450
--65 y Fg(Lancemen)m(t)36 b(d'Emacs)-450 85 y Fh(P)n(our)22
+-280 y Fh(\(p)r(our)24 b(la)f(v)n(ersion)h(22\))-450
+-101 y Fg(Lancemen)m(t)36 b(d'Emacs)-450 12 y Fh(P)n(our)22
 b(lancer)h(GNU)g(Emacs)f(22,)h(il)f(su\016t)h(de)g(tap)r(er)g(son)f
-(nom)h(:)31 b Ff(emacs)-450 177 y Fh(P)n(our)24 b(c)n(harger)g(un)g
+(nom)h(:)31 b Ff(emacs)-450 106 y Fh(P)n(our)24 b(c)n(harger)g(un)g
 (\014c)n(hier)f(\022)-35 b(a)22 b(\023)-33 b(editer,)24
-b(v)n(oir)f(Fic)n(hiers,)g(ci-dessous.)-450 380 y Fg(Quitter)37
-b(Emacs)-450 563 y Fh(susp)r(end)24 b(Emacs)g(\(ou)h(l'iconi\014e)e
-(sous)h(X\))379 b Ff(C-z)-450 669 y Fh(quitter)24 b(d)n(\023)-33
+b(v)n(oir)f(Fic)n(hiers,)g(ci-dessous.)-450 280 y Fg(Quitter)37
+b(Emacs)-450 434 y Fh(susp)r(end)24 b(Emacs)g(\(ou)h(l'iconi\014e)e
+(sous)h(X\))379 b Ff(C-z)-450 540 y Fh(quitter)24 b(d)n(\023)-33
 b(e\014nitiv)n(emen)n(t)26 b(Emacs)616 b Ff(C-x)36 b(C-c)-450
-888 y Fg(Fic)m(hiers)-450 1051 y Fe(lire)23 b Fh(un)h(\014c)n(hier)f
-(dans)h(Emacs)694 b Ff(C-x)36 b(C-f)-450 1157 y Fe(sauv)n(egarder)22
+731 y Fg(Fic)m(hiers)-450 866 y Fe(lire)23 b Fh(un)h(\014c)n(hier)f
+(dans)h(Emacs)694 b Ff(C-x)36 b(C-f)-450 972 y Fe(sauv)n(egarder)22
 b Fh(un)i(\014c)n(hier)g(sur)f(disque)439 b Ff(C-x)36
-b(C-s)-450 1264 y Fh(sauv)n(egarder)25 b Fe(tous)e Fh(les)g(\014c)n
-(hiers)633 b Ff(C-x)36 b(s)-450 1370 y Fe(ins)n(\023)-39
+b(C-s)-450 1078 y Fh(sauv)n(egarder)25 b Fe(tous)e Fh(les)g(\014c)n
+(hiers)633 b Ff(C-x)36 b(s)-450 1184 y Fe(ins)n(\023)-39
 b(erer)23 b Fh(le)h(con)n(ten)n(u)h(d'un)f(autre)g(\014c)n(hier)g(dans)
-g(ce)-379 1476 y(tamp)r(on)1204 b Ff(C-x)36 b(i)-450
-1582 y Fh(remplacer)24 b(ce)g(\014c)n(hier)g(par)f(le)h(\014c)n(hier)f
-(v)n(oulu)312 b Ff(C-x)36 b(C-v)-452 1689 y Fh(\023)-33
+g(ce)-379 1291 y(tamp)r(on)1204 b Ff(C-x)36 b(i)-450
+1397 y Fh(remplacer)24 b(ce)g(\014c)n(hier)g(par)f(le)h(\014c)n(hier)f
+(v)n(oulu)312 b Ff(C-x)36 b(C-v)-452 1503 y Fh(\023)-33
 b(ecrire)23 b(le)h(tamp)r(on)g(dans)g(un)g(\014c)n(hier)g(donn)n(\023)
--33 b(e)324 b Ff(C-x)36 b(C-w)-450 1795 y Fh(bascule)24
+-33 b(e)324 b Ff(C-x)36 b(C-w)-450 1609 y Fh(bascule)24
 b(du)g(mo)r(de)g(lecture-seule)h(du)f(tamp)r(on)229 b
-Ff(C-x)36 b(C-q)-450 2014 y Fg(Obtenir)h(de)g(l'aide)-450
-2164 y Fh(Le)27 b(syst)n(\022)-33 b(eme)27 b(d'aide)g(est)g(simple.)40
+Ff(C-x)36 b(C-q)-450 1800 y Fg(Obtenir)h(de)g(l'aide)-450
+1913 y Fh(Le)27 b(syst)n(\022)-33 b(eme)27 b(d'aide)g(est)g(simple.)40
 b(F)-6 b(aites)27 b Ff(C-h)h Fh(\(ou)f Ff(F1)p Fh(\))h(et)f(suiv)n(ez)g
-(les)-450 2228 y(instructions.)38 b(Si)26 b(v)n(ous)g(d)n(\023)-33
+(les)-450 1982 y(instructions.)38 b(Si)26 b(v)n(ous)g(d)n(\023)-33
 b(ebutez,)28 b(faites)e Ff(C-h)36 b(t)26 b Fh(p)r(our)g(suivre)g(un)g
-Fe(di-)-450 2291 y(dacticiel)p Fh(.)-450 2397 y(supprimer)d(la)g(fen)n
-(^)-33 b(etre)24 b(d'aide)682 b Ff(C-x)36 b(1)-450 2503
+Fe(di-)-450 2048 y(dacticiel)p Fh(.)-450 2154 y(supprimer)d(la)g(fen)n
+(^)-33 b(etre)24 b(d'aide)682 b Ff(C-x)36 b(1)-450 2260
 y Fh(faire)23 b(d)n(\023)-33 b(e\014ler)24 b(la)f(fen)n(^)-33
-b(etre)24 b(d'aide)645 b Ff(C-M-v)-450 2638 y Fh(aprop)r(os)24
+b(etre)24 b(d'aide)645 b Ff(C-M-v)-450 2395 y Fh(aprop)r(os)24
 b(:)35 b(mon)n(trer)24 b(les)f(commandes)i(con)n(tenan)n(t)-379
-2745 y(une)f(certaine)h(c)n(ha)-8 b(^)-27 b(\020ne)847
-b Ff(C-h)36 b(a)-450 2851 y Fh(d)n(\023)-33 b(ecrire)23
+2501 y(une)f(certaine)h(c)n(ha)-8 b(^)-27 b(\020ne)847
+b Ff(C-h)36 b(a)-450 2608 y Fh(d)n(\023)-33 b(ecrire)23
 b(la)h(fonction)g(lanc)n(\023)-33 b(ee)25 b(par)f(une)g(touc)n(he)258
-b Ff(C-h)36 b(k)-450 2957 y Fh(d)n(\023)-33 b(ecrire)23
-b(une)i(fonction)898 b Ff(C-h)36 b(f)-450 3063 y Fh(obtenir)24
+b Ff(C-h)36 b(k)-450 2714 y Fh(d)n(\023)-33 b(ecrire)23
+b(une)i(fonction)898 b Ff(C-h)36 b(f)-450 2820 y Fh(obtenir)24
 b(des)g(informations)f(sp)n(\023)-33 b(eci\014ques)25
-b(au)f(mo)r(de)124 b Ff(C-h)36 b(m)-450 3283 y Fg(R)n(\023)-55
-b(ecup)n(\023)g(eration)36 b(des)h(erreurs)-450 3465
+b(au)f(mo)r(de)124 b Ff(C-h)36 b(m)-450 3011 y Fg(R)n(\023)-55
+b(ecup)n(\023)g(eration)36 b(des)h(erreurs)-450 3165
 y Fe(a)n(v)n(orter)21 b Fh(une)k(commande)f(partiellemen)n(t)h(tap)n
-(\023)-33 b(ee)-379 3571 y(ou)24 b(ex)n(\023)-33 b(ecut)n(\023)g(ee)
-1084 b Ff(C-g)-450 3678 y Fe(r)n(\023)-39 b(ecup)n(\023)g(erer)24
-b Fh(les)f(\014c)n(hier)h(p)r(erdus)g(par)f(un)-379 3784
+(\023)-33 b(ee)-379 3271 y(ou)24 b(ex)n(\023)-33 b(ecut)n(\023)g(ee)
+1084 b Ff(C-g)-450 3377 y Fe(r)n(\023)-39 b(ecup)n(\023)g(erer)24
+b Fh(les)f(\014c)n(hier)h(p)r(erdus)g(par)f(un)-379 3483
 y(crash)g(du)h(syst)n(\022)-33 b(eme)669 b Ff(M-x)36
-b(recover-session)-450 3890 y Fe(ann)n(uler)23 b Fh(une)h(mo)r
+b(recover-session)-450 3590 y Fe(ann)n(uler)23 b Fh(une)h(mo)r
 (di\014cation)h(non)f(souhait)n(\023)-33 b(ee)16 b Ff(C-x)36
-b(u,)g(C-_)g Fh(ou)g Ff(C-/)-450 3996 y Fh(restaurer)24
+b(u,)g(C-_)g Fh(ou)g Ff(C-/)-450 3696 y Fh(restaurer)24
 b(un)f(tamp)r(on)i(a)n(v)n(ec)g(son)f(con)n(ten)n(u)-379
-4103 y(initial)1015 b Ff(M-x)36 b(revert-buffer)-450
-4209 y Fh(r)n(\023)-33 b(ea\016c)n(her)24 b(un)e(\023)-33
-b(ecran)24 b(p)r(erturb)n(\023)-33 b(e)653 b Ff(C-l)1746
--364 y Fg(Rec)m(herc)m(he)36 b(incr)n(\023)-55 b(emen)m(tale)1746
--201 y Fh(rec)n(herc)n(her)24 b(v)n(ers)g(l'a)n(v)l(an)n(t)823
-b Ff(C-s)1746 -95 y Fh(rec)n(herc)n(her)24 b(v)n(ers)g(l'arri)n(\022)
--33 b(ere)787 b Ff(C-r)1746 12 y Fh(rec)n(herc)n(her)24
+3802 y(initial)1015 b Ff(M-x)36 b(revert-buffer)-450
+3908 y Fh(r)n(\023)-33 b(ea\016c)n(her)24 b(un)e(\023)-33
+b(ecran)24 b(p)r(erturb)n(\023)-33 b(e)653 b Ff(C-l)-341
+4131 y Fd(c)-358 4133 y Fc(\015)20 b Fd(2007)j(F)-5 b(ree)21
+b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)27 b(P)n(ermissions)21
+b(au)g(dos.)27 b(v2.3)1746 -364 y Fg(Rec)m(herc)m(he)36
+b(incr)n(\023)-55 b(emen)m(tale)1746 -230 y Fh(rec)n(herc)n(her)24
+b(v)n(ers)g(l'a)n(v)l(an)n(t)823 b Ff(C-s)1746 -123 y
+Fh(rec)n(herc)n(her)24 b(v)n(ers)g(l'arri)n(\022)-33
+b(ere)787 b Ff(C-r)1746 -17 y Fh(rec)n(herc)n(her)24
 b(v)n(ers)g(l'a)n(v)l(an)n(t)g(par)g(expression)1817
-118 y(rationnelle)1115 b Ff(C-M-s)1746 224 y Fh(rec)n(herc)n(her)24
+89 y(rationnelle)1115 b Ff(C-M-s)1746 196 y Fh(rec)n(herc)n(her)24
 b(v)n(ers)g(l'arri)n(\022)-33 b(ere)22 b(par)h(expression)1817
-330 y(rationnelle)1115 b Ff(C-M-r)1746 465 y Fh(s)n(\023)-33
+302 y(rationnelle)1115 b Ff(C-M-r)1746 437 y Fh(s)n(\023)-33
 b(electionner)25 b(la)e(c)n(ha)-8 b(^)-27 b(\020ne)25
 b(de)f(rec)n(herc)n(he)h(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)101
-b Ff(M-p)1746 571 y Fh(s)n(\023)-33 b(electionner)25
+b Ff(M-p)1746 543 y Fh(s)n(\023)-33 b(electionner)25
 b(la)e(c)n(ha)-8 b(^)-27 b(\020ne)25 b(de)f(rec)n(herc)n(he)h(suiv)l
-(an)n(te)176 b Ff(M-n)1746 678 y Fh(sortir)23 b(de)h(la)f(rec)n(herc)n
+(an)n(te)176 b Ff(M-n)1746 649 y Fh(sortir)23 b(de)h(la)f(rec)n(herc)n
 (he)i(incr)n(\023)-33 b(emen)n(tale)451 b Ff(RET)1746
-784 y Fh(ann)n(uler)24 b(l'e\013et)g(du)g(dernier)f(caract)n(\022)-33
-b(ere)446 b Ff(DEL)1746 890 y Fh(ann)n(uler)24 b(la)f(rec)n(herc)n(he)i
-(en)f(cours)615 b Ff(C-g)1746 1001 y Fh(Refaites)17 b
+755 y Fh(ann)n(uler)24 b(l'e\013et)g(du)g(dernier)f(caract)n(\022)-33
+b(ere)446 b Ff(DEL)1746 862 y Fh(ann)n(uler)24 b(la)f(rec)n(herc)n(he)i
+(en)f(cours)615 b Ff(C-g)1746 972 y Fh(Refaites)17 b
 Ff(C-s)g Fh(ou)g Ff(C-r)h Fh(p)r(our)e(r)n(\023)-33 b(ep)n(\023)g(eter)
 18 b(la)e(rec)n(herc)n(he)i(dans)f(une)g(direction)1746
-1064 y(quelconque.)67 b(Si)34 b(Emacs)h(est)h(encore)g(en)f(train)g(de)
-g(c)n(herc)n(her,)j Ff(C-g)1746 1128 y Fh(n'ann)n(ule)24
+1038 y(quelconque.)67 b(Si)34 b(Emacs)h(est)h(encore)g(en)f(train)g(de)
+g(c)n(herc)n(her,)j Ff(C-g)1746 1105 y Fh(n'ann)n(ule)24
 b(que)h(ce)f(qui)f(n'a)h(pas)e(\023)-33 b(et)n(\023)g(e)25
-b(fait.)1746 1331 y Fg(D)n(\023)-55 b(eplacemen)m(ts)1746
-1489 y Fe(en)n(tit)n(\023)-39 b(e)26 b(sur)i(laquelle)e(se)h(d)n(\023)
+b(fait.)1746 1280 y Fg(D)n(\023)-55 b(eplacemen)m(ts)1746
+1409 y Fe(en)n(tit)n(\023)-39 b(e)26 b(sur)i(laquelle)e(se)h(d)n(\023)
 -39 b(eplacer)210 b(en)28 b(arri)n(\022)-39 b(ere)69
-b(en)27 b(a)n(v)-5 b(an)n(t)1746 1553 y Fh(caract)n(\022)-33
-b(ere)992 b Ff(C-b)313 b(C-f)1746 1617 y Fh(mot)1148
-b Ff(M-b)313 b(M-f)1746 1681 y Fh(ligne)1124 b Ff(C-p)313
-b(C-n)1746 1752 y Fh(aller)23 b(au)h(d)n(\023)-33 b(ebut)25
+b(en)27 b(a)n(v)-5 b(an)n(t)1746 1475 y Fh(caract)n(\022)-33
+b(ere)992 b Ff(C-b)313 b(C-f)1746 1531 y Fh(mot)1148
+b Ff(M-b)313 b(M-f)1746 1586 y Fh(ligne)1124 b Ff(C-p)313
+b(C-n)1746 1658 y Fh(aller)23 b(au)h(d)n(\023)-33 b(ebut)25
 b(\(ou)f(\022)-35 b(a)24 b(la)g(\014n\))g(de)g(la)f(ligne)105
-b Ff(C-a)313 b(C-e)1746 1816 y Fh(phrase)1069 b Ff(M-a)313
-b(M-e)1746 1879 y Fh(paragraphe)925 b Ff(M-{)313 b(M-})1746
-1943 y Fh(page)1129 b Ff(C-x)36 b([)242 b(C-x)36 b(])1746
-2007 y Fh(s-expression)901 b Ff(C-M-b)243 b(C-M-f)1746
-2071 y Fh(fonction)1021 b Ff(C-M-a)243 b(C-M-e)1746 2134
+b Ff(C-a)313 b(C-e)1746 1727 y Fh(phrase)1069 b Ff(M-a)313
+b(M-e)1746 1793 y Fh(paragraphe)925 b Ff(M-{)313 b(M-})1746
+1858 y Fh(page)1129 b Ff(C-x)36 b([)242 b(C-x)36 b(])1746
+1922 y Fh(s-expression)901 b Ff(C-M-b)243 b(C-M-f)1746
+1988 y Fh(fonction)1021 b Ff(C-M-a)243 b(C-M-e)1746 2044
 y Fh(aller)23 b(au)h(d)n(\023)-33 b(ebut)25 b(\(ou)f(\022)-35
 b(a)24 b(la)g(\014n\))g(du)g(tamp)r(on)84 b Ff(M-<)313
-b(M->)1746 2257 y Fh(passer)24 b(\022)-35 b(a)23 b(l')n(\023)-33
-b(ecran)24 b(suiv)l(an)n(t)793 b Ff(C-v)1746 2363 y Fh(passer)24
+b(M->)1746 2166 y Fh(passer)24 b(\022)-35 b(a)23 b(l')n(\023)-33
+b(ecran)24 b(suiv)l(an)n(t)793 b Ff(C-v)1746 2273 y Fh(passer)24
 b(\022)-35 b(a)23 b(l')n(\023)-33 b(ecran)24 b(pr)n(\023)-33
-b(ec)n(\023)g(eden)n(t)718 b Ff(M-v)1746 2469 y Fh(d)n(\023)-33
+b(ec)n(\023)g(eden)n(t)718 b Ff(M-v)1746 2379 y Fh(d)n(\023)-33
 b(e\014ler)24 b(l')n(\023)-33 b(ecran)23 b(v)n(ers)h(la)f(droite)668
-b Ff(C-x)36 b(<)1746 2576 y Fh(d)n(\023)-33 b(e\014ler)24
+b Ff(C-x)36 b(<)1746 2485 y Fh(d)n(\023)-33 b(e\014ler)24
 b(l')n(\023)-33 b(ecran)23 b(v)n(ers)h(la)f(gauc)n(he)640
-b Ff(C-x)36 b(>)1746 2682 y Fh(placer)24 b(la)f(ligne)h(couran)n(te)h
+b Ff(C-x)36 b(>)1746 2591 y Fh(placer)24 b(la)f(ligne)h(couran)n(te)h
 (au)f(cen)n(tre)h(de)f(l')n(\023)-33 b(ecran)162 b Ff(C-u)36
-b(C-l)1746 2901 y Fg(D)n(\023)-55 b(etruire)36 b(et)i(supprimer)1746
-3059 y Fe(en)n(tit)n(\023)-39 b(e)26 b(\022)-40 b(a)26
+b(C-l)1746 2782 y Fg(D)n(\023)-55 b(etruire)36 b(et)i(supprimer)1746
+2911 y Fe(en)n(tit)n(\023)-39 b(e)26 b(\022)-40 b(a)26
 b(supprimer)648 b(en)28 b(arri)n(\022)-39 b(ere)69 b(en)28
-b(a)n(v)-5 b(an)n(t)1746 3123 y Fh(caract)n(\022)-33
+b(a)n(v)-5 b(an)n(t)1746 2981 y Fh(caract)n(\022)-33
 b(ere)25 b(\(suppression,)f(pas)g(destruction\))84 b
-Ff(DEL)313 b(C-d)1746 3187 y Fh(mot)1187 b Ff(M-DEL)243
-b(M-d)1746 3250 y Fh(ligne)24 b(\(jusqu'\022)-35 b(a)23
-b(la)h(\014n\))685 b Ff(M-0)37 b(C-k)171 b(C-k)1746 3314
-y Fh(phrase)1108 b Ff(C-x)37 b(DEL)171 b(M-k)1746 3378
+Ff(DEL)313 b(C-d)1746 3045 y Fh(mot)1187 b Ff(M-DEL)243
+b(M-d)1746 3101 y Fh(ligne)24 b(\(jusqu'\022)-35 b(a)23
+b(la)h(\014n\))685 b Ff(M-0)37 b(C-k)171 b(C-k)1746 3170
+y Fh(phrase)1108 b Ff(C-x)37 b(DEL)171 b(M-k)1746 3234
 y Fh(s-expression)940 b Ff(M--)37 b(C-M-k)101 b(C-M-k)1746
-3497 y Fh(d)n(\023)-33 b(etruire)24 b(une)g Fe(r)n(\023)-39
-b(egion)890 b Ff(C-w)1746 3603 y Fh(copier)24 b(une)g(r)n(\023)-33
+3353 y Fh(d)n(\023)-33 b(etruire)24 b(une)g Fe(r)n(\023)-39
+b(egion)890 b Ff(C-w)1746 3459 y Fh(copier)24 b(une)g(r)n(\023)-33
 b(egion)24 b(dans)g(le)f(kill)g(ring)477 b Ff(M-w)1746
-3709 y Fh(d)n(\023)-33 b(etruire)24 b(jusqu'\022)-35
-b(a)23 b(l'o)r(ccurrence)h(suiv)l(an)n(te)h(de)f Fd(c)l(ar)147
-b Ff(M-z)36 b Fd(c)l(ar)1746 3844 y Fh(r)n(\023)-33 b(ecup)n(\023)g
+3565 y Fh(d)n(\023)-33 b(etruire)24 b(jusqu'\022)-35
+b(a)23 b(l'o)r(ccurrence)h(suiv)l(an)n(te)h(de)f Fb(c)l(ar)147
+b Ff(M-z)36 b Fb(c)l(ar)1746 3700 y Fh(r)n(\023)-33 b(ecup)n(\023)g
 (erer)24 b(la)f(derni)n(\022)-33 b(ere)24 b(c)n(hose)h(d)n(\023)-33
-b(etruite)423 b Ff(C-y)1746 3950 y Fh(remplacer)24 b(la)f(derni)n(\022)
+b(etruite)423 b Ff(C-y)1746 3807 y Fh(remplacer)24 b(la)f(derni)n(\022)
 -33 b(ere)24 b(r)n(\023)-33 b(ecup)n(\023)g(eration)24
-b(par)g(ce)g(qui)1817 4057 y(a)d(\023)-33 b(et)n(\023)g(e)25
+b(par)g(ce)g(qui)1817 3913 y(a)d(\023)-33 b(et)n(\023)g(e)25
 b(d)n(\023)-33 b(etruit)24 b(a)n(v)l(an)n(t)868 b Ff(M-y)3942
--364 y Fg(Marquer)3942 -182 y Fh(placer)24 b(la)f(marque)h(ici)901
-b Ff(C-@)36 b Fh(ou)f Ff(C-SPC)3940 -75 y Fh(\023)-33
+-364 y Fg(Marquer)3942 -210 y Fh(placer)24 b(la)f(marque)h(ici)901
+b Ff(C-@)36 b Fh(ou)f Ff(C-SPC)3940 -104 y Fh(\023)-33
 b(ec)n(hanger)25 b(le)f(p)r(oin)n(t)g(et)g(la)g(marque)570
-b Ff(C-x)36 b(C-x)3942 60 y Fh(placer)24 b(la)f(marque)h
-Fd(ar)l(g)30 b Fe(mots)23 b Fh(plus)g(loin)388 b Ff(M-@)3942
-166 y Fh(marquer)23 b(le)h Fe(paragraphe)755 b Ff(M-h)3942
-272 y Fh(marquer)23 b(la)h Fe(page)989 b Ff(C-x)36 b(C-p)3942
-378 y Fh(marquer)23 b(la)h Fe(s-expression)724 b Ff(C-M-@)3942
-485 y Fh(marquer)23 b(la)h Fe(fonction)864 b Ff(C-M-h)3942
-591 y Fh(marquer)23 b(tout)i(le)f Fe(tamp)r(on)730 b
-Ff(C-x)36 b(h)3942 810 y Fg(Remplacemen)m(t)g(in)m(teractif)3942
-993 y Fh(remplacer)24 b(in)n(teractiv)n(emen)n(t)h(une)g(c)n(ha)-8
+b Ff(C-x)36 b(C-x)3942 31 y Fh(placer)24 b(la)f(marque)h
+Fb(ar)l(g)30 b Fe(mots)23 b Fh(plus)g(loin)388 b Ff(M-@)3942
+137 y Fh(marquer)23 b(le)h Fe(paragraphe)755 b Ff(M-h)3942
+243 y Fh(marquer)23 b(la)h Fe(page)989 b Ff(C-x)36 b(C-p)3942
+350 y Fh(marquer)23 b(la)h Fe(s-expression)724 b Ff(C-M-@)3942
+456 y Fh(marquer)23 b(la)h Fe(fonction)864 b Ff(C-M-h)3942
+562 y Fh(marquer)23 b(tout)i(le)f Fe(tamp)r(on)730 b
+Ff(C-x)36 b(h)3942 753 y Fg(Remplacemen)m(t)g(in)m(teractif)3942
+907 y Fh(remplacer)24 b(in)n(teractiv)n(emen)n(t)h(une)g(c)n(ha)-8
 b(^)-27 b(\020ne)24 b(de)g(texte)86 b Ff(M-\045)3942
-1099 y Fh(en)24 b(utilisan)n(t)g(les)f(expressions)4013
-1205 y(rationnelles)594 b Ff(M-x)36 b(query-replace-regexp)3942
-1315 y Fh(Les)22 b(r)n(\023)-33 b(ep)r(onses)23 b(admises)f(dans)h(le)f
+1013 y Fh(en)24 b(utilisan)n(t)g(les)f(expressions)4013
+1119 y(rationnelles)594 b Ff(M-x)36 b(query-replace-regexp)3942
+1230 y Fh(Les)22 b(r)n(\023)-33 b(ep)r(onses)23 b(admises)f(dans)h(le)f
 (mo)r(de)h(de)g(remplacemen)n(t)h(in)n(teractif)3942
-1379 y(son)n(t)g(:)3942 1485 y Fe(remplacer)f Fh(celle-l\022)-35
+1285 y(son)n(t)g(:)3942 1391 y Fe(remplacer)f Fh(celle-l\022)-35
 b(a,)22 b(passer)i(\022)-35 b(a)24 b(la)f(suiv)l(an)n(te)280
-b Ff(SPC)3942 1591 y Fh(remplacer)24 b(celle-l\022)-35
-b(a,)22 b(rester)i(l\022)-35 b(a)679 b Ff(,)3942 1698
+b Ff(SPC)3942 1498 y Fh(remplacer)24 b(celle-l\022)-35
+b(a,)22 b(rester)i(l\022)-35 b(a)679 b Ff(,)3942 1604
 y Fe(passer)23 b Fh(\022)-35 b(a)24 b(la)g(suiv)l(an)n(te)g(sans)g
-(remplacer)400 b Ff(DEL)3942 1804 y Fh(remplacer)24 b(toutes)h(les)e
-(corresp)r(ondances)4013 1910 y(suiv)l(an)n(tes)1162
-b Ff(!)3942 2016 y Fe(rev)n(enir)23 b Fh(\022)-35 b(a)24
+(remplacer)400 b Ff(DEL)3942 1710 y Fh(remplacer)24 b(toutes)h(les)e
+(corresp)r(ondances)4013 1816 y(suiv)l(an)n(tes)1162
+b Ff(!)3942 1923 y Fe(rev)n(enir)23 b Fh(\022)-35 b(a)24
 b(la)f(corresp)r(ondance)i(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)279
-b Ff(^)3942 2123 y Fe(sortir)22 b Fh(du)i(remplacemen)n(t)h(in)n
-(teractif)460 b Ff(RET)3942 2229 y Fh(en)n(trer)24 b(dans)g(l')n(\023)
+b Ff(^)3942 2029 y Fe(sortir)22 b Fh(du)i(remplacemen)n(t)h(in)n
+(teractif)460 b Ff(RET)3942 2135 y Fh(en)n(trer)24 b(dans)g(l')n(\023)
 -33 b(edition)23 b(r)n(\023)-33 b(ecursiv)n(e)24 b(\()p
-Ff(C-M-c)h Fh(p)r(our)4013 2335 y(sortir\))1247 b Ff(C-r)3942
-2554 y Fg(F)-10 b(en)n(^)-55 b(etres)37 b(m)m(ultiples)3942
-2712 y Fh(Lorsqu'il)25 b(y)i(a)f(deux)i(commandes,)g(la)e(seconde)i
-(est)f(une)g(commande)3942 2776 y(iden)n(tique)e(\022)-35
+Ff(C-M-c)h Fh(p)r(our)4013 2241 y(sortir\))1247 b Ff(C-r)3942
+2432 y Fg(F)-10 b(en)n(^)-55 b(etres)37 b(m)m(ultiples)3942
+2561 y Fh(Lorsqu'il)25 b(y)i(a)f(deux)i(commandes,)g(la)e(seconde)i
+(est)f(une)g(commande)3942 2627 y(iden)n(tique)e(\022)-35
 b(a)24 b(la)f(premi)n(\022)-33 b(ere)23 b(p)r(our)h(un)g(cadre)g(au)g
-(lieu)f(d'une)i(fen)n(^)-33 b(etre.)3942 2868 y(supprimer)23
+(lieu)f(d'une)i(fen)n(^)-33 b(etre.)3942 2721 y(supprimer)23
 b(toutes)i(les)e(autres)h(fen)n(^)-33 b(etres)117 b Ff(C-x)36
-b(1)212 b(C-x)37 b(5)e(1)3942 2932 y Fh(diviser)23 b(la)g(fen)n(^)-33
+b(1)212 b(C-x)37 b(5)e(1)3942 2787 y Fh(diviser)23 b(la)g(fen)n(^)-33
 b(etre)25 b(horizon)n(talemen)n(t)184 b Ff(C-x)36 b(2)212
-b(C-x)37 b(5)e(2)3942 2996 y Fh(supprimer)23 b(cette)i(fen)n(^)-33
+b(C-x)37 b(5)e(2)3942 2843 y Fh(supprimer)23 b(cette)i(fen)n(^)-33
 b(etre)499 b Ff(C-x)36 b(0)212 b(C-x)37 b(5)e(0)3942
-3115 y Fh(diviser)23 b(la)g(fen)n(^)-33 b(etre)25 b(v)n(erticalemen)n
-(t)561 b Ff(C-x)36 b(3)3942 3250 y Fh(faire)23 b(d)n(\023)-33
+2962 y Fh(diviser)23 b(la)g(fen)n(^)-33 b(etre)25 b(v)n(erticalemen)n
+(t)561 b Ff(C-x)36 b(3)3942 3096 y Fh(faire)23 b(d)n(\023)-33
 b(e\014ler)24 b(l'autre)f(fen)n(^)-33 b(etre)708 b Ff(C-M-v)3942
-3360 y Fh(placer)24 b(le)f(curseur)h(dans)g(une)g(autre)h(fen)n(^)-33
-b(etre)25 b Ff(C-x)36 b(o)212 b(C-x)37 b(5)e(o)3942 3424
+3207 y Fh(placer)24 b(le)f(curseur)h(dans)g(une)g(autre)h(fen)n(^)-33
+b(etre)25 b Ff(C-x)36 b(o)212 b(C-x)37 b(5)e(o)3942 3273
 y Fh(s)n(\023)-33 b(electionner)25 b(le)e(tamp)r(on)i(dans)4025
-3488 y(l'autre)f(fen)n(^)-33 b(etre)731 b Ff(C-x)36 b(4)g(b)141
-b(C-x)37 b(5)e(b)3942 3551 y Fh(a\016c)n(her)24 b(le)g(tamp)r(on)g
+3338 y(l'autre)f(fen)n(^)-33 b(etre)731 b Ff(C-x)36 b(4)g(b)141
+b(C-x)37 b(5)e(b)3942 3394 y Fh(a\016c)n(her)24 b(le)g(tamp)r(on)g
 (dans)g(l'autre)g(fen)n(^)-33 b(etre)69 b Ff(C-x)36 b(4)g(C-o)71
-b(C-x)37 b(5)e(C-o)3942 3615 y Fh(c)n(harger)24 b(un)g(\014c)n(hier)g
+b(C-x)37 b(5)e(C-o)3942 3460 y Fh(c)n(harger)24 b(un)g(\014c)n(hier)g
 (dans)g(l'autre)f(fen)n(^)-33 b(etre)89 b Ff(C-x)36 b(4)g(f)141
-b(C-x)37 b(5)e(f)3942 3679 y Fh(c)n(harger)24 b(un)g(\014c)n(hier)g(en)
-g(lecture)g(seule)4025 3743 y(dans)g(l'autre)g(fen)n(^)-33
+b(C-x)37 b(5)e(f)3942 3525 y Fh(c)n(harger)24 b(un)g(\014c)n(hier)g(en)
+g(lecture)g(seule)4025 3591 y(dans)g(l'autre)g(fen)n(^)-33
 b(etre)566 b Ff(C-x)36 b(4)g(r)141 b(C-x)37 b(5)e(r)3942
-3806 y Fh(lancer)24 b(Dired)f(dans)h(l'autre)g(fen)n(^)-33
+3647 y Fh(lancer)24 b(Dired)f(dans)h(l'autre)g(fen)n(^)-33
 b(etre)246 b Ff(C-x)36 b(4)g(d)141 b(C-x)37 b(5)e(d)3942
-3870 y Fh(trouv)n(er)24 b(un)g(tag)h(dans)f(l'autre)f(fen)n(^)-33
+3703 y Fh(trouv)n(er)24 b(un)g(tag)h(dans)f(l'autre)f(fen)n(^)-33
 b(etre)179 b Ff(C-x)36 b(4)g(.)141 b(C-x)37 b(5)e(.)3942
-3989 y Fh(agrandir)23 b(la)h(fen)n(^)-33 b(etre)941 b
-Ff(C-x)36 b(^)3942 4095 y Fh(rap)r(etisser)23 b(la)h(fen)n(^)-33
-b(etre)903 b Ff(C-x)36 b({)3940 4201 y Fh(\023)-33 b(elargir)23
+3821 y Fh(agrandir)23 b(la)h(fen)n(^)-33 b(etre)941 b
+Ff(C-x)36 b(^)3942 3928 y Fh(rap)r(etisser)23 b(la)h(fen)n(^)-33
+b(etre)903 b Ff(C-x)36 b({)3940 4034 y Fh(\023)-33 b(elargir)23
 b(la)g(fen)n(^)-33 b(etre)1004 b Ff(C-x)36 b(})p eop
 end
 %%Page: 2 2
 TeXDict begin @landscape 2 1 bop -450 -364 a Fg(F)-10
-b(ormater)-450 -233 y Fh(inden)n(ter)24 b(la)g Fe(ligne)f
+b(ormater)-450 -268 y Fh(inden)n(ter)24 b(la)g Fe(ligne)f
 Fh(couran)n(te)i(\(d)n(\023)-33 b(ep)r(end)25 b(du)f(mo)r(de\))109
-b Ff(TAB)-450 -127 y Fh(inden)n(ter)24 b(la)g Fe(r)n(\023)-39
+b Ff(TAB)-450 -161 y Fh(inden)n(ter)24 b(la)g Fe(r)n(\023)-39
 b(egion)22 b Fh(couran)n(te)k(\(d)n(\023)-33 b(ep)r(end)25
-b(du)-379 -21 y(mo)r(de\))1247 b Ff(C-M-\\)-450 86 y
+b(du)-379 -55 y(mo)r(de\))1247 b Ff(C-M-\\)-450 51 y
 Fh(inden)n(ter)24 b(la)g Fe(s-expression)g Fh(couran)n(te)h(\(d)n(\023)
--33 b(ep)r(end)-379 192 y(du)24 b(mo)r(de\))1145 b Ff(C-M-q)-450
-298 y Fh(inden)n(ter)24 b(la)g(r)n(\023)-33 b(egion)24
-b(sur)f Fd(ar)l(g)30 b Fh(colonnes)443 b Ff(C-x)36 b(TAB)-450
-425 y Fh(ins)n(\023)-33 b(erer)23 b(un)h(newline)g(apr)n(\022)-33
-b(es)23 b(le)h(p)r(oin)n(t)507 b Ff(C-o)-450 531 y Fh(d)n(\023)-33
+-33 b(ep)r(end)-379 157 y(du)24 b(mo)r(de\))1145 b Ff(C-M-q)-450
+264 y Fh(inden)n(ter)24 b(la)g(r)n(\023)-33 b(egion)24
+b(sur)f Fb(ar)l(g)30 b Fh(colonnes)443 b Ff(C-x)36 b(TAB)-450
+389 y Fh(ins)n(\023)-33 b(erer)23 b(un)h(newline)g(apr)n(\022)-33
+b(es)23 b(le)h(p)r(oin)n(t)507 b Ff(C-o)-450 495 y Fh(d)n(\023)-33
 b(eplacer)24 b(le)g(reste)g(de)g(la)f(ligne)h(v)n(ers)g(le)f(bas)326
-b Ff(C-M-o)-450 637 y Fh(supprimer)23 b(les)g(lignes)g(blanc)n(hes)i
+b Ff(C-M-o)-450 601 y Fh(supprimer)23 b(les)g(lignes)g(blanc)n(hes)i
 (autour)g(du)e(p)r(oin)n(t)105 b Ff(C-x)36 b(C-o)-450
-744 y Fh(joindre)23 b(la)h(ligne)f(\022)-35 b(a)24 b(la)f(pr)n(\023)-33
+708 y Fh(joindre)23 b(la)h(ligne)f(\022)-35 b(a)24 b(la)f(pr)n(\023)-33
 b(ec)n(\023)g(eden)n(te)26 b(\(\022)-35 b(a)25 b(la)e(suiv)l(an)n(te)
--379 850 y(a)n(v)n(ec)h(arg\))1161 b Ff(M-^)-450 956
+-379 814 y(a)n(v)n(ec)h(arg\))1161 b Ff(M-^)-450 920
 y Fh(supprimer)23 b(tous)h(les)f(espaces)i(autour)g(du)f(p)r(oin)n(t)
-184 b Ff(M-\\)-450 1062 y Fh(mettre)24 b(exactemen)n(t)j(un)d(espace)h
-(\022)-35 b(a)24 b(l'emplacemen)n(t)-379 1169 y(du)g(p)r(oin)n(t)1178
-b Ff(M-SPC)-450 1295 y Fh(remplir)22 b(le)i(paragraphe)845
-b Ff(M-q)-450 1402 y Fh(placer)24 b(la)f(marge)h(droite)833
-b Ff(C-x)36 b(f)-450 1508 y Fh(d)n(\023)-33 b(e\014nir)24
+184 b Ff(M-\\)-450 1027 y Fh(mettre)24 b(exactemen)n(t)j(un)d(espace)h
+(\022)-35 b(a)24 b(l'emplacemen)n(t)-379 1133 y(du)g(p)r(oin)n(t)1178
+b Ff(M-SPC)-450 1258 y Fh(remplir)22 b(le)i(paragraphe)845
+b Ff(M-q)-450 1364 y Fh(placer)24 b(la)f(marge)h(droite)833
+b Ff(C-x)36 b(f)-450 1471 y Fh(d)n(\023)-33 b(e\014nir)24
 b(le)f(pr)n(\023)-33 b(e\014xe)24 b(par)g(lequel)g(commencera)-379
-1614 y(c)n(haque)h(ligne)1060 b Ff(C-x)36 b(.)-450 1741
+1577 y(c)n(haque)h(ligne)1060 b Ff(C-x)36 b(.)-450 1702
 y Fh(d)n(\023)-33 b(e\014nir)24 b(la)f(fon)n(te)1061
-b Ff(M-o)-450 1920 y Fg(Mo)s(di\014er)37 b(la)h(casse)-450
-2051 y Fh(mettre)24 b(le)g(mot)g(en)g(ma)t(juscules)634
-b Ff(M-u)-450 2157 y Fh(mettre)24 b(le)g(mot)g(en)g(min)n(uscules)638
-b Ff(M-l)-450 2263 y Fh(mettre)24 b(le)g(mot)g(en)g(capitales)704
-b Ff(M-c)-450 2390 y Fh(mettre)24 b(la)g(r)n(\023)-33
+b Ff(M-o)-450 1845 y Fg(Mo)s(di\014er)37 b(la)h(casse)-450
+1941 y Fh(mettre)24 b(le)g(mot)g(en)g(ma)t(juscules)634
+b Ff(M-u)-450 2048 y Fh(mettre)24 b(le)g(mot)g(en)g(min)n(uscules)638
+b Ff(M-l)-450 2154 y Fh(mettre)24 b(le)g(mot)g(en)g(capitales)704
+b Ff(M-c)-450 2279 y Fh(mettre)24 b(la)g(r)n(\023)-33
 b(egion)24 b(en)g(ma)t(juscules)563 b Ff(C-x)36 b(C-u)-450
-2496 y Fh(mettre)24 b(la)g(r)n(\023)-33 b(egion)24 b(en)g(min)n
-(uscules)567 b Ff(C-x)36 b(C-l)-450 2675 y Fg(Le)i(mini-tamp)s(on)-450
-2801 y Fh(Les)24 b(touc)n(hes)h(suiv)l(an)n(tes)g(son)n(t)f
-(utilisables)f(dans)h(le)g(mini-tamp)r(on)f(:)-450 2911
+2386 y Fh(mettre)24 b(la)g(r)n(\023)-33 b(egion)24 b(en)g(min)n
+(uscules)567 b Ff(C-x)36 b(C-l)-450 2529 y Fg(Le)i(mini-tamp)s(on)-450
+2620 y Fh(Les)24 b(touc)n(hes)h(suiv)l(an)n(tes)g(son)n(t)f
+(utilisables)f(dans)h(le)g(mini-tamp)r(on)f(:)-450 2729
 y(compl)n(\023)-33 b(eter)24 b(autan)n(t)i(que)e(p)r(ossible)587
-b Ff(TAB)-450 3018 y Fh(compl)n(\023)-33 b(eter)24 b(un)g(mot)963
-b Ff(SPC)-450 3124 y Fh(compl)n(\023)-33 b(eter)24 b(et)h(ex)n(\023)-33
-b(ecuter)848 b Ff(RET)-450 3230 y Fh(mon)n(trer)24 b(les)f(compl)n
+b Ff(TAB)-450 2835 y Fh(compl)n(\023)-33 b(eter)24 b(un)g(mot)963
+b Ff(SPC)-450 2941 y Fh(compl)n(\023)-33 b(eter)24 b(et)h(ex)n(\023)-33
+b(ecuter)848 b Ff(RET)-450 3048 y Fh(mon)n(trer)24 b(les)f(compl)n
 (\023)-33 b(etions)25 b(p)r(ossibles)481 b Ff(?)-450
-3336 y Fh(rec)n(herc)n(her)24 b(l'en)n(tr)n(\023)-33
+3154 y Fh(rec)n(herc)n(her)24 b(l'en)n(tr)n(\023)-33
 b(ee)24 b(pr)n(\023)-33 b(ec)n(\023)g(eden)n(te)26 b(du)e(mini-tamp)r
-(on)74 b Ff(M-p)-450 3443 y Fh(rec)n(herc)n(her)24 b(l'en)n(tr)n(\023)
+(on)74 b Ff(M-p)-450 3260 y Fh(rec)n(herc)n(her)24 b(l'en)n(tr)n(\023)
 -33 b(ee)24 b(suiv)l(an)n(te)h(du)f(mini-tamp)r(on)-379
-3549 y(ou)g(le)f(d)n(\023)-33 b(efaut)1075 b Ff(M-n)-450
-3655 y Fh(rec)n(herc)n(her)24 b(\022)-35 b(a)24 b(reb)r(ours)g(par)f
-(expr.)35 b(rationnelle)-379 3761 y(dans)24 b(l'historique)931
-b Ff(M-r)-450 3868 y Fh(rec)n(herc)n(her)24 b(v)n(ers)g(l'a)n(v)l(an)n
-(t)g(par)g(expr.)35 b(rationnelle)-379 3974 y(dans)24
-b(l'historique)931 b Ff(M-s)-450 4080 y Fh(ann)n(uler)24
-b(la)f(commande)852 b Ff(C-g)-450 4183 y Fh(F)-6 b(aites)39
+3367 y(ou)g(le)f(d)n(\023)-33 b(efaut)1075 b Ff(M-n)-450
+3473 y Fh(rec)n(herc)n(her)24 b(\022)-35 b(a)24 b(reb)r(ours)g(par)f
+(expr.)35 b(rationnelle)-379 3579 y(dans)24 b(l'historique)931
+b Ff(M-r)-450 3685 y Fh(rec)n(herc)n(her)24 b(v)n(ers)g(l'a)n(v)l(an)n
+(t)g(par)g(expr.)35 b(rationnelle)-379 3792 y(dans)24
+b(l'historique)931 b Ff(M-s)-450 3898 y Fh(ann)n(uler)24
+b(la)f(commande)852 b Ff(C-g)-450 3999 y Fh(F)-6 b(aites)39
 b Ff(C-x)d(ESC)g(ESC)j Fh(p)r(our)d(\023)-33 b(editer)39
 b(et)g(r)n(\023)-33 b(ep)n(\023)g(eter)39 b(la)f(derni)n(\022)-33
-b(ere)38 b(com-)-450 4246 y(mande)33 b(a)n(y)n(an)n(t)g(utilis)n(\023)
+b(ere)38 b(com-)-450 4064 y(mande)33 b(a)n(y)n(an)n(t)g(utilis)n(\023)
 -33 b(e)32 b(le)g(minitamp)r(on.)56 b(F)-6 b(aites)32
-b Ff(F10)h Fh(p)r(our)f(activ)n(er)-450 4310 y(la)23
+b Ff(F10)h Fh(p)r(our)f(activ)n(er)-450 4130 y(la)23
 b(barre)h(de)g(men)n(u)g(utilisan)n(t)g(le)f(minitamp)r(on.)1656
 -364 y Fi(Carte)46 b(de)g(r)m(\023)-66 b(ef)m(\023)g(erence)46
-b(de)g(GNU)f(Emacs)1746 -146 y Fg(T)-10 b(amp)s(ons)1746
-36 y Fh(s)n(\023)-33 b(electionner)25 b(un)f(autre)g(tamp)r(on)604
-b Ff(C-x)36 b(b)1744 143 y Fh(\023)-33 b(en)n(um)n(\023)g(erer)24
+b(de)g(GNU)f(Emacs)1746 -175 y Fg(T)-10 b(amp)s(ons)1746
+-21 y Fh(s)n(\023)-33 b(electionner)25 b(un)f(autre)g(tamp)r(on)604
+b Ff(C-x)36 b(b)1744 85 y Fh(\023)-33 b(en)n(um)n(\023)g(erer)24
 b(tous)g(les)f(tamp)r(ons)684 b Ff(C-x)36 b(C-b)1746
-249 y Fh(supprimer)23 b(un)h(tamp)r(on)839 b Ff(C-x)36
-b(k)1746 467 y Fg(T)-10 b(ransp)s(oser)1746 650 y Fh(transp)r(oser)24
+192 y Fh(supprimer)23 b(un)h(tamp)r(on)839 b Ff(C-x)36
+b(k)1746 382 y Fg(T)-10 b(ransp)s(oser)1746 535 y Fh(transp)r(oser)24
 b(des)g Fe(caract)n(\022)-39 b(eres)687 b Ff(C-t)1746
-756 y Fh(transp)r(oser)24 b(des)g Fe(mots)872 b Ff(M-t)1746
-862 y Fh(transp)r(oser)24 b(des)g Fe(lignes)844 b Ff(C-x)36
-b(C-t)1746 969 y Fh(transp)r(oser)24 b(des)g Fe(s-expressions)585
-b Ff(C-M-t)1746 1188 y Fg(V)n(\023)-55 b(eri\014er)37
-b(l'orthographe)1746 1370 y Fh(v)n(\023)-33 b(eri\014er)23
+642 y Fh(transp)r(oser)24 b(des)g Fe(mots)872 b Ff(M-t)1746
+748 y Fh(transp)r(oser)24 b(des)g Fe(lignes)844 b Ff(C-x)36
+b(C-t)1746 854 y Fh(transp)r(oser)24 b(des)g Fe(s-expressions)585
+b Ff(C-M-t)1746 1045 y Fg(V)n(\023)-55 b(eri\014er)37
+b(l'orthographe)1746 1199 y Fh(v)n(\023)-33 b(eri\014er)23
 b(l'orthographe)i(du)f(mot)g(couran)n(t)359 b Ff(M-$)1746
-1476 y Fh(v)n(\023)-33 b(eri\014er)23 b(l'orthographe)i(de)f(tous)g
-(les)f(mots)1817 1583 y(d'une)h(r)n(\023)-33 b(egion)816
-b Ff(M-x)36 b(ispell-region)1746 1689 y Fh(v)n(\023)-33
+1305 y Fh(v)n(\023)-33 b(eri\014er)23 b(l'orthographe)i(de)f(tous)g
+(les)f(mots)1817 1411 y(d'une)h(r)n(\023)-33 b(egion)816
+b Ff(M-x)36 b(ispell-region)1746 1517 y Fh(v)n(\023)-33
 b(eri\014er)23 b(l'orthographe)i(de)f(tout)h(le)e(tamp)r(on)37
-b Ff(M-x)f(ispell-buffer)1746 1907 y Fg(T)-10 b(ags)1746
-2090 y Fh(trouv)n(er)24 b(un)g(tag)h(\(une)f(d)n(\023)-33
-b(e\014nition\))564 b Ff(M-.)1746 2196 y Fh(trouv)n(er)24
+b Ff(M-x)f(ispell-buffer)1746 1707 y Fg(T)-10 b(ags)1746
+1861 y Fh(trouv)n(er)24 b(un)g(tag)h(\(une)f(d)n(\023)-33
+b(e\014nition\))564 b Ff(M-.)1746 1967 y Fh(trouv)n(er)24
 b(l'o)r(ccurrence)g(suiv)l(an)n(te)h(du)f(tag)400 b Ff(C-u)36
-b(M-.)1746 2302 y Fh(sp)n(\023)-33 b(eci\014er)24 b(un)g(nouv)n(eau)h
+b(M-.)1746 2074 y Fh(sp)n(\023)-33 b(eci\014er)24 b(un)g(nouv)n(eau)h
 (\014c)n(hier)f(de)g(tags)187 b Ff(M-x)36 b(visit-tags-table)1746
-2437 y Fh(rec)n(herc)n(her)24 b(par)g(expr.)35 b(rationnelles)24
-b(dans)1817 2543 y(tous)g(les)f(\014c)n(hiers)h(du)g(tableau)h(de)f
-(tags)131 b Ff(M-x)36 b(tags-search)1746 2650 y Fh(lancer)24
-b(un)g(remplacemen)n(t)h(in)n(teractif)f(sur)1817 2756
+2208 y Fh(rec)n(herc)n(her)24 b(par)g(expr.)35 b(rationnelles)24
+b(dans)1817 2315 y(tous)g(les)f(\014c)n(hiers)h(du)g(tableau)h(de)f
+(tags)131 b Ff(M-x)36 b(tags-search)1746 2421 y Fh(lancer)24
+b(un)g(remplacemen)n(t)h(in)n(teractif)f(sur)1817 2527
 y(tous)g(les)f(\014c)n(hiers)652 b Ff(M-x)37 b(tags-query-replace)1746
-2862 y Fh(con)n(tin)n(uer)25 b(la)e(derni)n(\022)-33
+2633 y Fh(con)n(tin)n(uer)25 b(la)e(derni)n(\022)-33
 b(ere)24 b(rec)n(herc)n(he)h(de)f(tags)g(ou)g(le)1817
-2969 y(remplacemen)n(t)g(in)n(teractif)710 b Ff(M-,)1746
-3188 y Fg(Shells)1746 3351 y Fh(ex)n(\023)-33 b(ecuter)25
-b(une)g(commande)g(shell)606 b Ff(M-!)1746 3457 y Fh(lancer)24
+2740 y(remplacemen)n(t)g(in)n(teractif)710 b Ff(M-,)1746
+2930 y Fg(Shells)1746 3065 y Fh(ex)n(\023)-33 b(ecuter)25
+b(une)g(commande)g(shell)606 b Ff(M-!)1746 3171 y Fh(lancer)24
 b(une)g(commande)h(shell)e(sur)g(la)h(r)n(\023)-33 b(egion)271
-b Ff(M-|)1746 3563 y Fh(\014ltrer)23 b(la)h(r)n(\023)-33
+b Ff(M-|)1746 3277 y Fh(\014ltrer)23 b(la)h(r)n(\023)-33
 b(egion)23 b(a)n(v)n(ec)i(une)f(commande)h(shell)246
-b Ff(C-u)36 b(M-|)1746 3670 y Fh(lancer)24 b(un)g(shell)f(dans)h(la)f
+b Ff(C-u)36 b(M-|)1746 3384 y Fh(lancer)24 b(un)g(shell)f(dans)h(la)f
 (fen)n(^)-33 b(etre)25 b Ff(*shell*)318 b(M-x)36 b(shell)3942
--364 y Fg(Rectangles)3942 -182 y Fh(copier)24 b(le)f(rectangle)i(dans)f
-(le)g(registre)459 b Ff(C-x)36 b(r)f(r)3942 -75 y Fh(d)n(\023)-33
+-364 y Fg(Rectangles)3942 -210 y Fh(copier)24 b(le)f(rectangle)i(dans)f
+(le)g(registre)459 b Ff(C-x)36 b(r)f(r)3942 -104 y Fh(d)n(\023)-33
 b(etruire)24 b(le)f(rectangle)893 b Ff(C-x)36 b(r)f(k)3942
-31 y Fh(r)n(\023)-33 b(ecup)n(\023)g(erer)24 b(le)f(rectangle)850
-b Ff(C-x)36 b(r)f(y)3942 137 y Fh(ouvrir)23 b(le)g(rectangle,)i(en)f(d)
+2 y Fh(r)n(\023)-33 b(ecup)n(\023)g(erer)24 b(le)f(rectangle)850
+b Ff(C-x)36 b(r)f(y)3942 109 y Fh(ouvrir)23 b(le)g(rectangle,)i(en)f(d)
 n(\023)-33 b(ecalan)n(t)25 b(le)f(texte)h(\022)-35 b(a)4013
-243 y(droite)1260 b Ff(C-x)36 b(r)f(o)3942 350 y Fh(vider)23
-b(le)h(rectangle)981 b Ff(C-x)36 b(r)f(c)3942 456 y Fh(pr)n(\023)-33
+215 y(droite)1260 b Ff(C-x)36 b(r)f(o)3942 321 y Fh(vider)23
+b(le)h(rectangle)981 b Ff(C-x)36 b(r)f(c)3942 427 y Fh(pr)n(\023)-33
 b(e\014xer)24 b(c)n(haque)h(ligne)f(a)n(v)n(ec)h(une)f(c)n(ha)-8
-b(^)-27 b(\020ne)369 b Ff(C-x)36 b(r)f(t)3942 675 y Fg(Abr)n(\023)-55
-b(eviations)3942 838 y Fh(a)t(jouter)24 b(une)g(abr)n(\023)-33
+b(^)-27 b(\020ne)369 b Ff(C-x)36 b(r)f(t)3942 618 y Fg(Abr)n(\023)-55
+b(eviations)3942 752 y Fh(a)t(jouter)24 b(une)g(abr)n(\023)-33
 b(eviation)25 b(globale)547 b Ff(C-x)36 b(a)f(g)3942
-945 y Fh(a)t(jouter)24 b(une)g(abr)n(\023)-33 b(eviation)25
+859 y Fh(a)t(jouter)24 b(une)g(abr)n(\023)-33 b(eviation)25
 b(lo)r(cale)f(au)g(mo)r(de)300 b Ff(C-x)36 b(a)f(l)3942
-1051 y Fh(a)t(jouter)24 b(une)g(expansion)h(globale)f(p)r(our)g(cette)
-4013 1157 y(abr)n(\023)-33 b(eviation)1094 b Ff(C-x)36
-b(a)f(i)h(g)3942 1263 y Fh(a)t(jouter)24 b(une)g(expansion)h(lo)r(cale)
-f(au)g(mo)r(de)g(p)r(our)4013 1370 y(cette)h(abr)n(\023)-33
-b(eviation)922 b Ff(C-x)36 b(a)f(i)h(l)3942 1476 y Fh(faire)23
-b(une)h(expansion)h(explicite)f(de)g(cette)4013 1582
+965 y Fh(a)t(jouter)24 b(une)g(expansion)h(globale)f(p)r(our)g(cette)
+4013 1071 y(abr)n(\023)-33 b(eviation)1094 b Ff(C-x)36
+b(a)f(i)h(g)3942 1178 y Fh(a)t(jouter)24 b(une)g(expansion)h(lo)r(cale)
+f(au)g(mo)r(de)g(p)r(our)4013 1284 y(cette)h(abr)n(\023)-33
+b(eviation)922 b Ff(C-x)36 b(a)f(i)h(l)3942 1390 y Fh(faire)23
+b(une)h(expansion)h(explicite)f(de)g(cette)4013 1496
 y(abr)n(\023)-33 b(eviation)1094 b Ff(C-x)36 b(a)f(e)3942
-1717 y Fh(faire)23 b(une)h(expansion)h(dynamique)g(du)f(mot)4013
-1823 y(pr)n(\023)-33 b(ec)n(\023)g(eden)n(t)1146 b Ff(M-/)3942
-2043 y Fg(Expressions)39 b(rationnelles)3942 2225 y Fh(un)24
+1631 y Fh(faire)23 b(une)h(expansion)h(dynamique)g(du)f(mot)4013
+1737 y(pr)n(\023)-33 b(ec)n(\023)g(eden)n(t)1146 b Ff(M-/)3942
+1928 y Fg(Expressions)39 b(rationnelles)3942 2082 y Fh(un)24
 b(unique)g(caract)n(\022)-33 b(ere)25 b(quelconque,)g(sauf)f(une)g
-(\014n)4013 2331 y(de)g(ligne)1201 b Ff(.)70 b Fh(\(p)r(oin)n(t\))3942
-2437 y(z)n(\023)-33 b(ero)24 b(r)n(\023)-33 b(ep)n(\023)g(etition)25
-b(ou)f(plus)816 b Ff(*)3942 2544 y Fh(une)24 b(r)n(\023)-33
+(\014n)4013 2188 y(de)g(ligne)1201 b Ff(.)70 b Fh(\(p)r(oin)n(t\))3942
+2294 y(z)n(\023)-33 b(ero)24 b(r)n(\023)-33 b(ep)n(\023)g(etition)25
+b(ou)f(plus)816 b Ff(*)3942 2401 y Fh(une)24 b(r)n(\023)-33
 b(ep)n(\023)g(etition)25 b(ou)f(plus)832 b Ff(+)3942
-2650 y Fh(z)n(\023)-33 b(ero)24 b(ou)g(une)g(r)n(\023)-33
-b(ep)n(\023)g(etition)834 b Ff(?)3942 2756 y Fh(caract)n(\022)-33
+2507 y Fh(z)n(\023)-33 b(ero)24 b(ou)g(une)g(r)n(\023)-33
+b(ep)n(\023)g(etition)834 b Ff(?)3942 2613 y Fh(caract)n(\022)-33
 b(ere)25 b(sp)n(\023)-33 b(ecial)24 b(p)r(our)f(quoter)i(l'expression)e
-(ra-)4013 2863 y(tionnelle)h Fd(c)1121 b Ff(\\)p Fd(c)3942
-2969 y Fh(alternativ)n(e)25 b(\(\\ou"\))960 b Ff(\\|)3942
-3075 y Fh(regroup)r(emen)n(t)1089 b Ff(\\\()35 b Fc(:)12
-b(:)f(:)35 b Ff(\\\))3942 3181 y Fh(le)23 b(m)n(^)-33
-b(eme)24 b(texte)i(que)e(dans)g(le)g Fd(n)5 b Fh(i)n(\022)-33
-b(eme)24 b(group)r(e)264 b Ff(\\)p Fd(n)3942 3288 y Fh(limite)23
-b(de)h(mot)1096 b Ff(\\b)3942 3394 y Fh(non)24 b(limite)f(de)h(mot)959
-b Ff(\\B)3942 3504 y Fe(en)n(tit)n(\023)-39 b(e)499 b(d)n(\023)-39
-b(ebut)258 b(\014n)3942 3568 y Fh(ligne)558 b Ff(^)427
-b($)3942 3632 y Fh(mot)582 b Ff(\\<)392 b(\\>)3942 3696
-y Fh(tamp)r(on)467 b Ff(\\`)392 b(\\')3942 3759 y Fe(classe)27
+(ra-)4013 2720 y(tionnelle)h Fb(c)1121 b Ff(\\)p Fb(c)3942
+2826 y Fh(alternativ)n(e)25 b(\(\\ou"\))960 b Ff(\\|)3942
+2932 y Fh(regroup)r(emen)n(t)1089 b Ff(\\\()35 b Fa(:)12
+b(:)f(:)35 b Ff(\\\))3942 3038 y Fh(le)23 b(m)n(^)-33
+b(eme)24 b(texte)i(que)e(dans)g(le)g Fb(n)5 b Fh(i)n(\022)-33
+b(eme)24 b(group)r(e)264 b Ff(\\)p Fb(n)3942 3145 y Fh(limite)23
+b(de)h(mot)1096 b Ff(\\b)3942 3251 y Fh(non)24 b(limite)f(de)h(mot)959
+b Ff(\\B)3942 3361 y Fe(en)n(tit)n(\023)-39 b(e)499 b(d)n(\023)-39
+b(ebut)258 b(\014n)3942 3417 y Fh(ligne)558 b Ff(^)427
+b($)3942 3483 y Fh(mot)582 b Ff(\\<)392 b(\\>)3942 3539
+y Fh(tamp)r(on)467 b Ff(\\`)392 b(\\')3942 3604 y Fe(classe)27
 b(de)g(caract)n(\022)-39 b(ere)41 b(corresp)r(ond)70
 b(corresp)r(ond)27 b(\022)-40 b(a)26 b(d'autres)3942
-3823 y Fh(ensem)n(ble)e(explicite)147 b Ff([)35 b Fc(:)12
-b(:)f(:)35 b Ff(])239 b([^)36 b Fc(:)12 b(:)f(:)35 b
-Ff(])3942 3887 y Fh(caract)n(\022)-33 b(ere)25 b(de)f(mot)186
-b Ff(\\w)392 b(\\W)3942 3951 y Fh(caract)n(\022)-33 b(ere)25
-b(a)n(v)n(ec)g(la)3984 4014 y(syn)n(taxe)g Fd(c)371 b
-Ff(\\s)p Fd(c)359 b Ff(\\S)p Fd(c)p eop end
+3670 y Fh(ensem)n(ble)e(explicite)147 b Ff([)35 b Fa(:)12
+b(:)f(:)35 b Ff(])239 b([^)36 b Fa(:)12 b(:)f(:)35 b
+Ff(])3942 3736 y Fh(caract)n(\022)-33 b(ere)25 b(de)f(mot)186
+b Ff(\\w)392 b(\\W)3942 3791 y Fh(caract)n(\022)-33 b(ere)25
+b(a)n(v)n(ec)g(la)3984 3847 y(syn)n(taxe)g Fb(c)371 b
+Ff(\\s)p Fb(c)359 b Ff(\\S)p Fb(c)p eop end
 %%Page: 3 3
 TeXDict begin @landscape 3 2 bop -450 -364 a Fg(Jeux)38
 b(de)f(caract)n(\022)-55 b(eres)37 b(in)m(ternationaux)-450
--201 y Fh(indiquer)23 b(la)h(langue)g(principale)631
-b Ff(C-x)36 b(RET)g(l)-450 -95 y Fh(mon)n(trer)24 b(toutes)h(les)e(m)n
+-230 y Fh(indiquer)23 b(la)h(langue)g(principale)631
+b Ff(C-x)36 b(RET)g(l)-450 -123 y Fh(mon)n(trer)24 b(toutes)h(les)e(m)n
 (\023)-33 b(etho)r(des)25 b(de)f(saisie)29 b Ff(M-x)36
-b(list-input-methods)-450 12 y Fh(activ)n(er)24 b(ou)g(d)n(\023)-33
+b(list-input-methods)-450 -17 y Fh(activ)n(er)24 b(ou)g(d)n(\023)-33
 b(esactiv)n(er)25 b(la)f(m)n(\023)-33 b(etho)r(de)25
-b(de)f(saisie)229 b Ff(C-\\)-450 118 y Fh(c)n(hoisir)23
+b(de)f(saisie)229 b Ff(C-\\)-450 89 y Fh(c)n(hoisir)23
 b(le)g(syst)n(\022)-33 b(eme)25 b(de)f(co)r(dage)h(p)r(our)f(la)f(com-)
--379 224 y(mande)h(suiv)l(an)n(te)963 b Ff(C-x)36 b(RET)g(c)-450
-330 y Fh(mon)n(trer)24 b(tous)g(les)f(syst)n(\022)-33
+-379 196 y(mande)h(suiv)l(an)n(te)963 b Ff(C-x)36 b(RET)g(c)-450
+302 y Fh(mon)n(trer)24 b(tous)g(les)f(syst)n(\022)-33
 b(emes)25 b(de)f(co)r(dage)64 b Ff(M-x)36 b(list-coding-systems)-450
-437 y Fh(c)n(hoisir)23 b(le)g(syst)n(\022)-33 b(eme)25
+408 y Fh(c)n(hoisir)23 b(le)g(syst)n(\022)-33 b(eme)25
 b(de)f(co)r(dage)h(pr)n(\023)-33 b(ef)n(\023)g(er)n(\023)g(e)85
-b Ff(M-x)36 b(prefer-coding-system)-450 656 y Fg(Info)-450
-819 y Fh(en)n(trer)24 b(dans)g(le)f(visualisateur)h(de)g(la)g(do)r
-(cumen)n(ta-)-379 925 y(tion)g(Info)1174 b Ff(C-h)36
-b(i)-450 1031 y Fh(c)n(herc)n(her)24 b(une)h(fonction)f(ou)g(une)h(v)l
-(ariable)e(pr)n(\023)-33 b(ecise)-379 1138 y(dans)24
-b(Info)1154 b Ff(C-h)36 b(S)-450 1248 y Fh(Se)24 b(d)n(\023)-33
-b(eplacer)25 b(dans)f(un)f(n\033ud)i(:)-379 1367 y(une)f(page)h(plus)e
-(bas)891 b Ff(SPC)-379 1473 y Fh(une)24 b(page)h(plus)e(haut)853
-b Ff(DEL)-379 1579 y Fh(d)n(\023)-33 b(ebut)25 b(du)e(n\033ud)967
-b Ff(.)70 b Fh(\(p)r(oin)n(t\))-450 1690 y(P)n(asser)23
-b(de)h(n\033ud)g(en)h(n\033ud)f(:)-379 1796 y(n\033ud)g
-Fe(suiv)-5 b(an)n(t)991 b Ff(n)-379 1902 y Fh(n\033ud)24
+b Ff(M-x)36 b(prefer-coding-system)-450 599 y Fg(Info)-450
+733 y Fh(en)n(trer)24 b(dans)g(le)f(visualisateur)h(de)g(la)g(do)r
+(cumen)n(ta-)-379 839 y(tion)g(Info)1174 b Ff(C-h)36
+b(i)-450 946 y Fh(c)n(herc)n(her)24 b(une)h(fonction)f(ou)g(une)h(v)l
+(ariable)e(pr)n(\023)-33 b(ecise)-379 1052 y(dans)24
+b(Info)1154 b Ff(C-h)36 b(S)-450 1162 y Fh(Se)24 b(d)n(\023)-33
+b(eplacer)25 b(dans)f(un)f(n\033ud)i(:)-379 1281 y(une)f(page)h(plus)e
+(bas)891 b Ff(SPC)-379 1387 y Fh(une)24 b(page)h(plus)e(haut)853
+b Ff(DEL)-379 1494 y Fh(d)n(\023)-33 b(ebut)25 b(du)e(n\033ud)967
+b Ff(.)70 b Fh(\(p)r(oin)n(t\))-450 1604 y(P)n(asser)23
+b(de)h(n\033ud)g(en)h(n\033ud)f(:)-379 1710 y(n\033ud)g
+Fe(suiv)-5 b(an)n(t)991 b Ff(n)-379 1816 y Fh(n\033ud)24
 b Fe(pr)n(\023)-39 b(ec)n(\023)g(eden)n(t)898 b Ff(p)-379
-2008 y Fh(aller)22 b Fe(plus)i(haut)953 b Ff(u)-379 2114
+1922 y Fh(aller)22 b Fe(plus)i(haut)953 b Ff(u)-379 2029
 y Fh(c)n(hoisir)23 b(un)g(sujet)h(de)g(men)n(u)h(par)e(son)h(nom)277
-b Ff(m)-379 2221 y Fh(c)n(hoisir)23 b(le)g Fd(n)5 b Fh(i)n(\022)-33
-b(eme)24 b(sujet)g(de)g(men)n(u)g(par)g(son)-379 2327
-y(n)n(um)n(\023)-33 b(ero)23 b(\(1{9\))1029 b Fd(n)-379
-2433 y Fh(suivre)23 b(une)h(r)n(\023)-33 b(ef)n(\023)g(erence)24
+b Ff(m)-379 2135 y Fh(c)n(hoisir)23 b(le)g Fb(n)5 b Fh(i)n(\022)-33
+b(eme)24 b(sujet)g(de)g(men)n(u)g(par)g(son)-379 2241
+y(n)n(um)n(\023)-33 b(ero)23 b(\(1{9\))1029 b Fb(n)-379
+2347 y Fh(suivre)23 b(une)h(r)n(\023)-33 b(ef)n(\023)g(erence)24
 b(crois)n(\023)-33 b(ee)24 b(\(on)h(revien)n(t)f(a)n(v)n(ec)-379
-2539 y Ff(l)p Fh(\))1378 b Ff(f)-379 2646 y Fh(rev)n(enir)23
+2454 y Ff(l)p Fh(\))1378 b Ff(f)-379 2560 y Fh(rev)n(enir)23
 b(au)h(dernier)f(n\033ud)h(visit)n(\023)-33 b(e)509 b
-Ff(l)-379 2752 y Fh(rev)n(enir)23 b(au)h(n\033ud)g(du)g(r)n(\023)-33
-b(ep)r(ertoire)509 b Ff(d)-379 2858 y Fh(aller)22 b(au)i(n\033ud)g(de)h
-(plus)e(haut)i(niv)n(eau)f(du)-379 2965 y(\014c)n(hier)f(Info)1110
-b Ff(t)-379 3071 y Fh(aller)22 b(sur)i(n'imp)r(orte)f(quel)h(n\033ud)g
-(par)f(son)h(nom)111 b Ff(g)-450 3181 y Fh(Autres)24
-b(:)-379 3286 y(lancer)f(le)h Fe(didacticiel)e Fh(Info)652
-b Ff(h)-379 3393 y Fh(c)n(herc)n(her)24 b(un)g(sujet)g(dans)g(l'index)
-518 b Ff(i)-379 3499 y Fh(rec)n(herc)n(her)24 b(les)f(n\033uds)h(a)n(v)
-n(ec)h(une)f(expression)-379 3605 y(rationnelle)1115
-b Ff(s)-379 3711 y Fe(quitter)22 b Fh(Info)1051 b Ff(q)1746
--364 y Fg(Registres)1746 -227 y Fh(sauv)n(er)24 b(la)f(r)n(\023)-33
+Ff(l)-379 2666 y Fh(rev)n(enir)23 b(au)h(n\033ud)g(du)g(r)n(\023)-33
+b(ep)r(ertoire)509 b Ff(d)-379 2773 y Fh(aller)22 b(au)i(n\033ud)g(de)h
+(plus)e(haut)i(niv)n(eau)f(du)-379 2879 y(\014c)n(hier)f(Info)1110
+b Ff(t)-379 2985 y Fh(aller)22 b(sur)i(n'imp)r(orte)f(quel)h(n\033ud)g
+(par)f(son)h(nom)111 b Ff(g)-450 3095 y Fh(Autres)24
+b(:)-379 3201 y(lancer)f(le)h Fe(didacticiel)e Fh(Info)652
+b Ff(h)-379 3307 y Fh(c)n(herc)n(her)24 b(un)g(sujet)g(dans)g(l'index)
+518 b Ff(i)-379 3413 y Fh(rec)n(herc)n(her)24 b(les)f(n\033uds)h(a)n(v)
+n(ec)h(une)f(expression)-379 3519 y(rationnelle)1115
+b Ff(s)-379 3626 y Fe(quitter)22 b Fh(Info)1051 b Ff(q)1746
+-364 y Fg(Registres)1746 -244 y Fh(sauv)n(er)24 b(la)f(r)n(\023)-33
 b(egion)24 b(dans)g(un)g(registre)506 b Ff(C-x)36 b(r)f(s)1746
--121 y Fh(ins)n(\023)-33 b(erer)23 b(le)g(con)n(ten)n(u)j(du)e
+-138 y Fh(ins)n(\023)-33 b(erer)23 b(le)g(con)n(ten)n(u)j(du)e
 (registre)f(dans)h(le)g(tamp)r(on)117 b Ff(C-x)36 b(r)f(i)1746
-2 y Fh(sauv)n(er)24 b(la)f(v)l(aleur)h(du)g(p)r(oin)n(t)g(dans)g(un)g
-(registre)222 b Ff(C-x)36 b(r)f(SPC)1746 109 y Fh(sauter)24
+-11 y Fh(sauv)n(er)24 b(la)f(v)l(aleur)h(du)g(p)r(oin)n(t)g(dans)g(un)g
+(registre)222 b Ff(C-x)36 b(r)f(SPC)1746 95 y Fh(sauter)24
 b(au)g(p)r(oin)n(t)g(sauv)n(\023)-33 b(e)25 b(dans)f(le)f(registre)355
-b Ff(C-x)36 b(r)f(j)1746 271 y Fg(Macros)j(cla)m(vier)1746
-388 y Fe(lancer)23 b Fh(la)g(d)n(\023)-33 b(e\014nition)25
+b Ff(C-x)36 b(r)f(j)1746 244 y Fg(Macros)j(cla)m(vier)1746
+344 y Fe(lancer)23 b Fh(la)g(d)n(\023)-33 b(e\014nition)25
 b(d'une)f(macro)g(cla)n(vier)277 b Ff(C-x)36 b(\()1746
-494 y Fe(terminer)23 b Fh(la)g(d)n(\023)-33 b(e\014nition)25
+451 y Fe(terminer)23 b Fh(la)g(d)n(\023)-33 b(e\014nition)25
 b(d'une)f(macro)f(cla)n(vier)183 b Ff(C-x)36 b(\))1746
-601 y Fe(ex)n(\023)-39 b(ecuter)24 b Fh(la)f(derni)n(\022)-33
+557 y Fe(ex)n(\023)-39 b(ecuter)24 b Fh(la)f(derni)n(\022)-33
 b(ere)24 b(macro)g(cla)n(vier)f(d)n(\023)-33 b(e\014nie)203
-b Ff(C-x)36 b(e)1746 707 y Fh(a)t(jouter)24 b(\022)-35
+b Ff(C-x)36 b(e)1746 663 y Fh(a)t(jouter)24 b(\022)-35
 b(a)24 b(la)f(derni)n(\022)-33 b(ere)24 b(macro)g(cla)n(vier)446
-b Ff(C-u)36 b(C-x)g(\()1746 813 y Fh(donner)24 b(un)g(nom)g(\022)-35
+b Ff(C-u)36 b(C-x)g(\()1746 770 y Fh(donner)24 b(un)g(nom)g(\022)-35
 b(a)24 b(la)f(derni)n(\022)-33 b(ere)24 b(macro)1817
-919 y(cla)n(vier)996 b Ff(M-x)36 b(name-last-kbd-macro)1746
-1026 y Fh(ins)n(\023)-33 b(erer)23 b(une)h(d)n(\023)-33
-b(e\014nition)25 b(Lisp)e(dans)h(le)1817 1132 y(tamp)r(on)960
-b Ff(M-x)36 b(insert-kbd-macro)1746 1294 y Fg(Commandes)i(de)f(gestion)
-h(d'Emacs)g(Lisp)1744 1431 y Fh(\023)-33 b(ev)l(aluer)24
+876 y(cla)n(vier)996 b Ff(M-x)36 b(name-last-kbd-macro)1746
+982 y Fh(ins)n(\023)-33 b(erer)23 b(une)h(d)n(\023)-33
+b(e\014nition)25 b(Lisp)e(dans)h(le)1817 1088 y(tamp)r(on)960
+b Ff(M-x)36 b(insert-kbd-macro)1746 1237 y Fg(Commandes)i(de)f(gestion)
+h(d'Emacs)g(Lisp)1744 1357 y Fh(\023)-33 b(ev)l(aluer)24
 b(la)g Fe(s-expression)f Fh(situ)n(\023)-33 b(ee)25 b(a)n(v)l(an)n(t)g
-(le)e(p)r(oin)n(t)115 b Ff(C-x)36 b(C-e)1744 1537 y Fh(\023)-33
+(le)e(p)r(oin)n(t)115 b Ff(C-x)36 b(C-e)1744 1463 y Fh(\023)-33
 b(ev)l(aluer)24 b(la)g Fe(defun)g Fh(couran)n(te)707
-b Ff(C-M-x)1744 1643 y Fh(\023)-33 b(ev)l(aluer)24 b(la)g
+b Ff(C-M-x)1744 1570 y Fh(\023)-33 b(ev)l(aluer)24 b(la)g
 Fe(r)n(\023)-39 b(egion)726 b Ff(M-x)36 b(eval-region)1746
-1750 y Fh(lire)23 b(et)f(\023)-33 b(ev)l(aluer)24 b(le)g(mini-tamp)r
-(on)593 b Ff(M-:)1746 1856 y Fh(c)n(harger)24 b(\022)-35
+1676 y Fh(lire)23 b(et)f(\023)-33 b(ev)l(aluer)24 b(le)g(mini-tamp)r
+(on)593 b Ff(M-:)1746 1782 y Fh(c)n(harger)24 b(\022)-35
 b(a)24 b(partir)f(du)h(r)n(\023)-33 b(ep)r(ertoire)23
-b(syst)n(\022)-33 b(eme)1817 1962 y(standard)926 b Ff(M-x)36
-b(load-library)1746 2124 y Fg(P)m(ersonnalisation)g(simple)1746
-2261 y Fh(p)r(ersonnaliser)23 b(les)h(v)l(ariables)f(et)h(les)g(fon)n
-(tes)81 b Ff(M-x)36 b(customize)1746 2364 y Fh(Cr)n(\023)-33
+b(syst)n(\022)-33 b(eme)1817 1888 y(standard)926 b Ff(M-x)36
+b(load-library)1746 2037 y Fg(P)m(ersonnalisation)g(simple)1746
+2157 y Fh(p)r(ersonnaliser)23 b(les)h(v)l(ariables)f(et)h(les)g(fon)n
+(tes)81 b Ff(M-x)36 b(customize)1746 2263 y Fh(Cr)n(\023)-33
 b(eation)23 b(de)g(liaisons)f(de)h(touc)n(hes)h(globales)f(en)g(Emacs)g
-(Lisp)f(\(exem-)1746 2437 y(ples\):)1746 2518 y Ff(\(global-set-key)40
-b("\\C-cg")d('goto-line\))1746 2581 y(\(global-set-key)j("\\M-#")d
-('query-replace-regexp\))1755 2729 y Fg(\023)1746 2753
-y(Ecriture)g(de)h(commandes)1746 2857 y Ff(\(defun)f
-Fd(nom-c)l(ommande)43 b Ff(\()p Fd(ar)l(gs)5 b Ff(\))1817
-2921 y(")p Fd(do)l(cumentation)g Ff(")38 b(\(interactive)g(")p
-Fd(template)5 b Ff("\))1817 2985 y Fd(b)l(o)l(dy)h Ff(\))1746
-3066 y Fh(Exemple)24 b(:)1746 3146 y Ff(\(defun)37 b
+(Lisp)f(\(exem-)1746 2336 y(ples\):)1746 2425 y Ff(\(global-set-key)40
+b("\\C-cg")d('goto-line\))1746 2493 y(\(global-set-key)j("\\M-#")d
+('query-replace-regexp\))1755 2627 y Fg(\023)1746 2651
+y(Ecriture)g(de)h(commandes)1746 2731 y Ff(\(defun)f
+Fb(nom-c)l(ommande)43 b Ff(\()p Fb(ar)l(gs)5 b Ff(\))1817
+2796 y(")p Fb(do)l(cumentation)g Ff(")38 b(\(interactive)g(")p
+Fb(template)5 b Ff("\))1817 2862 y Fb(b)l(o)l(dy)h Ff(\))1746
+2948 y Fh(Exemple)24 b(:)1746 3034 y Ff(\(defun)37 b
 (cette-ligne-en-haut-de-)q(la-f)q(ene)q(tre)42 b(\(line\))1746
-3210 y("Repositionne)d(la)d(ligne)h(du)e(point)i(en)f(haut)g(de)g(la)g
-(fenetre.)1746 3274 y(Avec)g(ARG,)h(place)g(le)e(point)i(sur)f(la)g
-(ligne)h(ARG.")1817 3338 y(\(interactive)h("P"\))1817
-3401 y(\(recenter)f(\(if)g(\(null)f(line\))2311 3465
-y(0)2240 3529 y(\(prefix-numeric-value)41 b(line\)\)\)\))1746
-3610 y Fh(La)21 b(sp)n(\023)-33 b(eci\014cation)23 b
+3090 y("Repositionne)d(la)d(ligne)h(du)e(point)i(en)f(haut)g(de)g(la)g
+(fenetre.)1746 3145 y(Avec)g(ARG,)h(place)g(le)e(point)i(sur)f(la)g
+(ligne)h(ARG.")1817 3213 y(\(interactive)h("P"\))1817
+3269 y(\(recenter)f(\(if)g(\(null)f(line\))2311 3324
+y(0)2240 3380 y(\(prefix-numeric-value)41 b(line\)\)\)\))1746
+3468 y Fh(La)21 b(sp)n(\023)-33 b(eci\014cation)23 b
 Ff(interactive)h Fh(indique)d(commen)n(t)h(lire)e(in)n(teractiv)n(e-)
-1746 3674 y(men)n(t)28 b(les)f(param)n(\022)-33 b(etres.)42
+1746 3534 y(men)n(t)28 b(les)f(param)n(\022)-33 b(etres.)42
 b(F)-6 b(aites)28 b Ff(C-h)36 b(f)f(interactive)30 b
-Fh(p)r(our)e(plus)e(de)1746 3737 y(pr)n(\023)-33 b(ecisions.)2039
-3817 y Fb(Cop)n(yrigh)n(t)2342 3815 y(c)2325 3817 y Fa(\015)21
-b Fb(2007)i(F)-5 b(ree)21 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20
-b(Inc.)2179 3868 y(v2.3)h(p)r(our)f(GNU)g(Emacs)h(v)n(ersion)h(22,)f
-(2006)2309 3919 y(conception)g(de)f(Stephen)g(Gildea)2220
-3983 y(traduction)h(fran\030)-27 b(caise)21 b(d')2831
-3970 y(\023)2826 3983 y(Eric)f(Jacob)r(oni)1746 4051
+Fh(p)r(our)e(plus)e(de)1746 3599 y(pr)n(\023)-33 b(ecisions.)2039
+3682 y Fd(Cop)n(yrigh)n(t)2342 3680 y(c)2325 3682 y Fc(\015)21
+b Fd(2007)i(F)-5 b(ree)21 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20
+b(Inc.)2179 3727 y(v2.3)h(p)r(our)f(GNU)g(Emacs)h(v)n(ersion)h(22,)f
+(2006)2309 3771 y(conception)g(de)f(Stephen)g(Gildea)2220
+3835 y(traduction)h(fran\030)-27 b(caise)21 b(d')2831
+3822 y(\023)2826 3835 y(Eric)f(Jacob)r(oni)1746 3900
 y(V)-5 b(ous)22 b(p)r(ouv)n(ez)g(faire)g(et)g(distribuer)f(des)h
 (copies)g(de)f(cette)i(carte,)f(p)r(ourvu)f(que)h(la)1746
-4102 y(note)16 b(de)g(cop)n(yrigh)n(t)g(et)h(cette)f(note)g(de)g(p)r
+3944 y(note)16 b(de)g(cop)n(yrigh)n(t)g(et)h(cette)f(note)g(de)g(p)r
 (ermission)f(soien)n(t)h(conserv)n(\023)-29 b(ees)19
-b(sur)c(toutes)1746 4153 y(les)21 b(copies.)1746 4221
+b(sur)c(toutes)1746 3989 y(les)21 b(copies.)1746 4054
 y(P)n(our)e(les)g(copies)g(du)f(man)n(uel)g(GNU)g(Emacs,)g(\023)-29
 b(ecriv)n(ez)20 b(\022)-30 b(a)19 b(la)g(F)-5 b(ree)19
-b(Soft)n(w)n(are)i(F)-5 b(oun-)1746 4272 y(dation,)29
+b(Soft)n(w)n(are)i(F)-5 b(oun-)1746 4098 y(dation,)29
 b(Inc.,)g(51)g(F)-5 b(ranklin)28 b(Street,)h(Fifth)f(Flo)r(or,)h
-(Boston,)i(MA)d(02110-1301)1746 4323 y(USA.)p eop end
+(Boston,)i(MA)d(02110-1301)1746 4143 y(USA.)p eop end
 %%Trailer
 
 userdict /end-hook known{end-hook}if
--- a/etc/fr-refcard.tex	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/fr-refcard.tex	Wed Apr 11 00:17:47 2007 +0000
@@ -11,7 +11,7 @@
 % Set letterpaper to 0 for A4 paper, 1 for letter (US) paper.  Useful
 % only when columnsperpage is 2 or 3.
 
-\letterpaper=1
+\letterpaper=0
 
 % Nothing else needs to be changed below this line.
 % Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004,
@@ -216,8 +216,8 @@
 
 % section - new major section.  Argument is section name.
 \outer\def\section#1{\par\filbreak
-  \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
-  \vskip 2ex plus 1ex minus 1.5ex}
+  \vskip 2ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
+  \vskip 1ex plus 1ex minus 1.5ex}
 
 \newdimen\keyindent
 
@@ -327,6 +327,8 @@
 \metax{restaurer un tampon avec son contenu initial}{M-x revert-buffer}
 \key{r\'eafficher un \'ecran perturb\'e}{C-l}
 
+\shortcopyrightnotice
+
 \section{Recherche incr\'ementale}
 
 \key{rechercher vers l'avant}{C-s}
@@ -345,9 +347,6 @@
 Si Emacs est encore en train de chercher, \kbd{C-g} n'annule que ce
 qui n'a pas \'et\'e fait.
 
-%% Why was this here?
-%\shortcopyrightnotice
-
 \section{D\'eplacements}
 
 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
--- a/etc/refcard.ps	Fri Mar 30 02:06:58 2007 +0000
+++ b/etc/refcard.ps	Wed Apr 11 00:17:47 2007 +0000
@@ -4,14 +4,14 @@
 %%Pages: 2
 %%PageOrder: Ascend
 %%Orientation: Landscape
-%%BoundingBox: 0 0 595 842
+%%BoundingBox: 0 0 612 792
 %%DocumentFonts: CMBX10 CMR8 CMTT8 CMBX8 CMR6 CMSY6 CMTI8 CMMI8
-%%DocumentPaperSizes: a4
+%%DocumentPaperSizes: Letter
 %%EndComments
 %DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t landscape refcard.dvi
+%DVIPSCommandLine: dvips -t letter -t landscape refcard.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2007.01.20:1513
+%DVIPSSource:  TeX output 2007.03.22:0022
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -2140,7 +2140,7 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
-TeXDict begin 55387786 39139632 1000 600 600 (refcard.dvi)
+TeXDict begin 52099146 40258431 1000 600 600 (refcard.dvi)
 @start /Fa 197[20 58[{}1 66.4176 /CMMI8 rf /Fb 134[35
 3[38 24 29 30 1[36 36 40 58 18 2[22 36 33 1[33 36 33
 33 36 51[26 45[{}19 66.4176 /CMTI8 rf /Fc 242[61 13[{}1
@@ -2169,7 +2169,9 @@
 %%BeginSetup
 %%Feature: *Resolution 600dpi
 TeXDict begin
-%%PaperSize: A4
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
  @landscape end
 %%EndSetup
 %%Page: 1 1
--- a/lib-src/makefile.w32-in	Fri Mar 30 02:06:58 2007 +0000
+++ b/lib-src/makefile.w32-in	Wed Apr 11 00:17:47 2007 +0000
@@ -24,7 +24,7 @@
 
 .PHONY: $(ALL)
 
-VERSION		= 22.0.96
+VERSION		= 22.0.97
 
 LOCAL_FLAGS	= -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
 		  -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \
--- a/lisp/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,547 @@
+2007-04-10  Chong Yidong  <cyd@stupidchicken.com>
+
+	* woman.el (woman-decode-buffer): Postphone macro-set check...
+	(woman-decode-region): ...to here.
+
+2007-04-10  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* startup.el (tty-handle-args): Use %S to log ARGS.
+
+2007-04-10  Glenn Morris  <rgm@gnu.org>
+
+	* dframe.el (dframe-frame-mode): Do not set auto-show-mode, since
+	it is obsolete and has no effect.
+
+	* dos-w32.el (default-buffer-file-type): Add defvar to quieten
+	byte-compiler.
+
+	* progmodes/cperl-mode.el (cperl-mode): Remove unnecessary call to
+	obsolete function make-local-hook.
+
+	* progmodes/dcl-mode.el (top-level): Move (require 'tempo) to
+	start to quieten byte-compiler.
+
+2007-04-10  Markus Triska  <markus.triska@gmx.at>
+
+	* emacs-lisp/byte-opt.el (byte-optimize-char-before): Remove (move
+	to bytecomp.el as byte-compile-char-before).
+	* emacs-lisp/bytecomp.el (byte-compile-char-before): New
+	function (modified replacement for byte-optimize-char-before in
+	byte-opt.el).
+
+2007-04-09  Alan Mackenzie  <acm@muc.de>
+
+	* startup.el (inhibit-splash-screen): Emphatically state that it
+	can't be set in site-start.el.
+
+2007-04-09  Masatake YAMATO  <jet@gyve.org>
+
+	* progmodes/cc-subword.el (c-capitalize-subword): More closely
+	mimic the behavior of `capitalize-word'.  Do not move point with a
+	negative argument.  Based on tiny change by Paul Curry.
+
+2007-04-09  Paul Curry  <dashteacup@gmail.com>  (tiny change)
+
+	* progmodes/cc-subword.el (c-downcase-subword, c-upcase-subword):
+	Don't move point if ARG is negative.
+
+2007-04-09  Alan Mackenzie  <acm@muc.de>
+
+	Changes to make `narrow-to-defun' and `mark-defun' work properly
+	in CC Mode:
+
+	* progmodes/cc-defs.el (c-beginning-of-defun-1):
+	* progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun):
+	Bind beginning/end-of-defun-function to nil around calls to
+	beginning/end-of-defun.
+
+	* progmodes/cc-langs.el (beginning-of-defun-function)
+	(end-of-defun-function): New c-lang-setvar's.
+
+	* progmodes/cc-awk.el (c-awk-beginning-of-defun): Add "(or arg
+	(setq arg 1))" to enable non-interactive call.
+
+2007-04-09  Eli Zaretskii  <eliz@gnu.org>
+
+	* simple.el (set-mark-command): Doc fix.
+
+2007-04-09  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gud.el (gdb): Restore existing session if user
+	tries to start a second one in graphical mode.
+
+2007-04-08  Martin Rudalics  <rudalics@gmx.at>
+
+	* cus-start.el <scroll-preserve-screen-position>: Add choices.
+
+2007-04-08  Johan Bockg,Ae(Brd  <bojohan+news@dd.chalmers.se>
+
+	* term/xterm.el (terminal-init-xterm): Fix key definitions.  Add
+	binding for C-M-SPC.
+
+2007-04-08  Richard Stallman  <rms@gnu.org>
+
+	* pcomplete.el (pcomplete-read-event): One single definition,
+	and not a defsubst.
+
+2007-04-08  Chong Yidong  <cyd@stupidchicken.com>
+
+	* progmodes/cc-cmds.el (c-end-of-defun): Tidy up, to eliminate
+	byte-compiler warning "value unused".
+
+2007-04-08  Andreas Schwab  <schwab@suse.de>
+
+	* term/xterm.el (terminal-init-xterm): Add bindings for keypad keys.
+
+2007-04-07  Glenn Morris  <rgm@gnu.org>
+
+	* calendar/calendar.el (diary-font-lock-keywords, diary-live-p):
+	Autoload these functions.
+	(diary-date-forms): Add a custom :set form.
+
+	* calendar/diary-lib.el (diary-set-maybe-redraw): Move definition
+	before first use.
+	(diary-font-lock-keywords): New function with old code for
+	initialization of variable of same name.
+
+2007-04-07  David Hansen  <david.hansen@gmx.net>  (tiny change)
+
+	* progmodes/cc-cmds.el (c-electric-paren): Fix space-before-funcall
+	clean-up: only insert space when on identifier, etc.
+
+2007-04-07  Chong Yidong  <cyd@stupidchicken.com>
+
+	* progmodes/grep.el (grep-find-use-xargs): Rewrite docstring.
+
+	* net/tls.el (open-tls-stream): Properly handle case where there
+	is no associated buffer.
+
+2007-04-07  Glenn Morris  <rgm@gnu.org>
+
+	* ffap.el (ffap-file-at-point): Lower the priority of the
+	ffap-ftp-sans-slash-regexp check.
+
+2007-04-06  Alan Mackenzie  <acm@muc.de>
+
+	Fix fontification of labels, and other things with ":".
+
+	* progmodes/cc-engine.el (c-forward-label): The function now
+	returns 'goto-target, 'qt-2kwds-colon, 'qt-1kwd-colon, as well as
+	the former t.
+
+	* progmodes/cc-fonts.el (c-font-lock-declarations): Interpret the
+	new return code from c-forward-label, fontifying tokens properly.
+	Add some general comments throughout the file.
+
+2007-04-06  Chong Yidong  <cyd@stupidchicken.com>
+
+	* textmodes/flyspell.el (flyspell-duplicate, flyspell-incorrect):
+	Revert 2006-01-27 change.
+
+	* diff-mode.el (diff-mode): Revert 2007-03-04 change.
+
+	* menu-bar.el (menu-bar-tools-menu): Revert 2003-07-25 change.
+
+	* desktop.el (desktop-create-buffer, desktop-save): Revert
+	2004-11-12 change.
+
+	* dired-x.el (dired-guess-shell-case-fold-search): Delete var.
+	(dired-guess-default): Respect case.
+
+	* isearch.el (isearch-forward): Revert 1998-08-26 doc change.
+
+	* emacs-lisp/byte-opt.el (byte-optimize-pure-func): Remove function;
+	was originally checked in as byte-optimize-concat on 1997-11-02.
+
+	* mail/sendmail.el (mail-text, mail-mode): Revert extant pieces of
+	1995-05-19 doc changes.
+
+2007-04-06  Kim F. Storm  <storm@cua.dk>
+
+	* loadhist.el (read-feature): Reimplement.  New optional arg LOADED-P.
+	(unload-feature): Update interactive spec accordingly.
+
+	* progmodes/grep.el (grep-program): Remove commentary about zgrep.
+
+2007-04-06  John Paul Wallington  <jpw@pobox.com>
+
+	* subr.el (with-case-table): Use `make-symbol' to avoid variable
+	capture.  Restore the table in the same buffer.
+
+	* font-lock.el (lisp-font-lock-keywords-2): Add `with-case-table'.
+
+2007-04-05  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
+	Print entire form.
+
+2007-04-05  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (breakpoint-disabled): Tweak face (again)
+	for low-color displays.
+
+2007-04-05  Glenn Morris  <rgm@gnu.org>
+
+	* play/5x5.el, play/animate.el, play/dissociate.el, play/doctor.el,
+	* play/gomoku.el, play/landmark.el, play/tetris.el, play/zone.el:
+	Seed random number generator on loading.
+
+	* emacs-lisp/authors.el (top-level): Provide self.
+
+	* play/animate.el (top-level): Provide self.
+
+2007-04-04  Alan Mackenzie  <acm@muc.de>
+
+	* progmodes/cc-vars.el (c-special-indent-hook): Amend doc-string
+	to mention c-syntactic-indentation.
+
+2007-04-04  Chong Yidong  <cyd@stupidchicken.com>
+
+	* subr.el (with-case-table): New macro.
+
+	* international/mule.el (ascii-case-table): New var.
+
+	* mail/smtpmail.el (smtpmail-via-smtp): Use ascii-case-table when
+	downcasing.
+
+2007-04-03  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gud.el (gud-minor-mode-map): Simplify.
+
+	* t-mouse.el (t-mouse-make-event-element): Don't use the left edge
+	of the window if we're outside it e.g menu-bar.
+
+	* xt-mouse.el (xterm-mouse-event): Don't use the left edge of the
+	window if we're outside it e.g menu-bar.
+
+2007-04-03  Eli Zaretskii  <eliz@gnu.org>
+
+	* mail/rmail.el (rmail-convert-to-babyl-format): Don't try to
+	decode base-64 encoded body if its content-type is something other
+	than text/* or message/*.
+
+2007-04-03  Juanma Barranquero  <lekktu@gmail.com>
+
+	* simple.el (activate-mark-hook): Fix typo in docstring.
+
+2007-04-03  Nick Roberts  <nickrob@snap.net.nz>
+
+	* tmm.el (tmm-c-prompt): Initialize.
+	(tmm-menubar): Deal with extended menu-items at top level.
+	(tmm-get-keybind): Handle bindings redefined/undefined locally.
+	(tmm-prompt): Handle visibility of top level menu-items.
+
+	* progmodes/gud.el (gud-menu-map): Simplify.
+	(gud-minor-mode-map): Add tool-bar like bindings to the text mode
+	menubar.
+
+2007-04-02  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mail/smtpmail.el (smtpmail-via-smtp): Revert last change.
+
+	* comint.el (comint-send-input): Widen the buffer first.
+
+	* info.el (Info-fontify-maximum-menu-size): Revert to 100000.
+
+2007-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Only obey
+	emacs-lisp-docstring-fill-column in emacs-lisp-mode.
+
+	* newcomment.el (comment-search-forward): Discard comment starters
+	before point.
+
+2007-04-01  Guanpeng Xu  <herberteuler@hotmail.com>
+
+	* mouse.el (mouse-set-secondary): Update mouse-secondary-overlay.
+
+2007-04-01  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mail/smtpmail.el (smtpmail-via-smtp): Use standard case table
+	when downcasing.
+
+	* button.el (previous-button): Rewrite to account for adjacent buttons.
+
+2007-04-01  J.D. Smith  <jdsmith@as.arizona.edu>
+
+	* progmodes/idlwave.el (idlwave-auto-fill):
+	Revert paragraph-separate change.
+
+	* progmodes/idlw-shell.el (idlwave-shell-break-in):
+	Simplify module calc.
+	(idlwave-shell-set-bp-in-module): Compute module.
+
+2007-03-31  Glenn Morris  <rgm@gnu.org>
+
+	* emacs-lisp/timer.el (run-at-time): Doc fix.
+
+	* emacs-lisp/warnings.el (display-warning): If we create the
+	buffer displaying the warning, disable undo there.
+
+2007-03-31  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-register-file-name-handler)
+	(tramp-register-completion-file-name-handler): New defsubst,
+	derived from `tramp-register-file-name-handlers'.  The split is
+	necessary because Tramp's file name handlers must be registered at
+	different startup places.
+
+2007-03-31  Chong Yidong  <cyd@stupidchicken.com>
+
+	* progmodes/hideshow.el (turn-off-hideshow): New function.
+	(hs-minor-mode): Use it instead of a lambda expression in
+	change-major-mode-hook.
+
+2007-03-31  David Kastrup  <dak@gnu.org>
+
+	* woman.el (woman-Cyg-to-Win): Don't convert cons cells
+	corresponding to MANPATH_MAP entries.
+	(woman-man.conf-path, woman-parse-man.conf): Doc fix.
+	(woman-parse-man.conf): Use more discriminating man.conf name.
+	(woman-parse-man.conf): Parse MANPATH_MAP entries.
+	(woman-manpath): Doc fix and type fix.
+	(woman-cached-data): Check for MANPATH_MAP entries.
+	(woman-expand-directory-path): Treat MANPATH_MAP entries.
+
+2007-03-31  Stuart Herring  <herring@lanl.gov>
+
+	* emacs-lisp/sregex.el (sregexq): Doc fix.
+
+2007-03-31  Markus Triska  <markus.triska@gmx.at>
+
+	* flymake.el (flymake-err-line-patterns): Doc fix.
+
+2007-03-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* info.el (info-tool-bar-map): Use "exit" for Info-exit.
+	Move to the right.
+
+2007-03-30  Alan Mackenzie  <acm@muc.de>
+
+	* progmodes/cc-cmds.el (c-forward-to-nth-EOF-}): Fix EOB bug.
+
+2007-03-30  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* emacs-lisp/ewoc.el (ewoc--insert-new-node): Take additional arg DLL.
+	Use it, passed in explicitly, instead of from the dynamic binding.
+	(ewoc-create, ewoc-enter-before): Update to use new call sequence.
+
+2007-03-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* simple.el (blink-matching-open): When in minibuffer, don't
+	search for a match inside the prompt.
+
+2007-03-30  Nick Roberts  <nickrob@snap.net.nz>
+
+	* tmm.el (tmm-menubar): Select the right menu item with the mouse.
+	(tmm-prompt): Don't make the mouse user select the first menu
+	item twice.
+
+2007-03-30  Chong Yidong  <cyd@stupidchicken.com>
+
+	* eshell/esh-proc.el (eshell/kill): Tweak regexp to recognize
+	SIGUSR1 and SIGUSR2.
+
+2007-03-29  Kim F. Storm  <storm@cua.dk>
+
+	* ido.el (ido-read-internal): When reading file or dir, only override
+	minibuffer-local-filename-completion-map, otherwise only override
+	minibuffer-local-completion-map.
+
+2007-03-29  Glenn Morris  <rgm@gnu.org>
+
+	* complete.el (partial-completion-mode): Set PC-do-completion-end
+	to nil after use.
+	(PC-lisp-complete-symbol): Create and use a marker at `end',
+	rather than using point-marker.
+
+2007-03-28  Chong Yidong  <cyd@stupidchicken.com>
+
+	* simple.el (next-error-highlight): Doc fix.
+	(compose-mail): Revert 2007-03-19 change.
+
+2007-03-28  Richard Stallman  <rms@gnu.org>
+
+	* emacs-lisp/edebug.el (edebug-display): Don't go to
+	edebug-outside-buffer if it is dead.
+
+2007-03-28  Juanma Barranquero  <lekktu@gmail.com>
+
+	* view.el (view-mode): Fix typos in docstring.
+
+2007-03-28  Stephen Berman  <Stephen.Berman@gmx.net>
+
+	* recentf.el (recentf-save-file): Add a custom :set function.
+
+2007-03-28  Glenn Morris  <rgm@gnu.org>
+
+	* complete.el (PC-do-completion-end): New variable.
+	(partial-completion-mode) <choose-completion-string-functions>:
+	Use PC-do-completion-end in the non-minibuffer case to replace the
+	correct amount of text.
+	(PC-do-completion): Set PC-do-completion-end for c-c-s-f.
+	(PC-lisp-complete-symbol): Give marker the after-insertion type,
+	to deal with improvements inserted after point.
+
+2007-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* button.el (make-text-button): Add explicit `button' property.
+	(default-button): Don't put a `button' property on it.
+
+	* progmodes/python.el (python-mode): Skip comments when parsing.
+
+	* vc-arch.el (vc-with-current-file-buffer): New macro.
+	(vc-arch-file-source-p): Use it to avoid infloop.
+
+2007-03-28  David Hansen  <david.hansen@gmx.net>  (tiny change)
+
+	* emacs-lisp/lisp.el (lisp-complete-symbol):
+	Fix call to get-buffer-window to find windows in other frames.
+
+2007-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* comint.el (comint-proc-query, comint-dynamic-list-completions):
+	Fix calls to get-buffer-window to find windows in other frames.
+	Reported by David Hansen <david.hansen@gmx.net>.
+
+2007-03-27   Kevin Ryde  <user42@zip.com.au>
+
+	* info.el (Info-display-images-node): On a text-only terminal,
+	show the "text" or "alt" parts of the image blobs.
+
+2007-03-27  Glenn Morris  <rgm@gnu.org>
+
+	* complete.el (PC-do-completion): Compute completion-base-size in
+	the non-filename case, rather than setting to nil.
+	(PC-lisp-complete-end): New variable.
+	(PC-lisp-complete-symbol): Use PC-lisp-complete-end to store the
+	original end in a series of consecutive invocations.
+
+	* calendar/calendar.el (calendar-mode-hook): Declare it.
+
+	* calendar/diary-lib.el (diary-live-p): Do not check for
+	diary-selective-display.
+
+2007-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* replace.el (occur-next-error): *Occur* might not be displayed in the
+	selected frame.  Reported by David Hansen <david.hansen@gmx.net>.
+
+2007-03-26  Richard Stallman  <rms@gnu.org>
+
+	* textmodes/flyspell.el (flyspell-large-region):
+	Use ispell-call-process-region.
+
+2007-03-26  Johan Bockg,Ae(Brd  <bojohan+sf@dd.chalmers.se>
+
+	* emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
+	Use prin1 instead of princ.
+
+2007-03-25  Chong Yidong  <cyd@stupidchicken.com>
+
+	* faces.el (face-set-after-frame-default): Revert 2007-03-10 change.
+	Merge in X resources before global face.
+
+	* progmodes/compile.el (compilation-start): Save compilation-directory
+	rather than default-directory as local var.
+	(compilation-directory): Mark as safe local var.
+
+	* files.el: Don't mark default-directory as a safe local var.
+
+2007-03-25  Alan Mackenzie  <acm@muc.de>
+
+	* progmodes/cc-mode.el (c-before-change): Fix BOB bug.
+	* progmodes/cc-engine.el: Fix typo.
+
+2007-03-25  Juri Linkov  <juri@jurta.org>
+
+	* compare-w.el (compare-windows): Rename customization group
+	`compare-w' to `compare-windows'.
+	(compare-windows-whitespace, compare-ignore-whitespace)
+	(compare-ignore-case, compare-windows-sync)
+	(compare-windows-sync-string-size, compare-windows-recenter)
+	(compare-windows-highlight, compare-windows): Change group name in
+	the `group' tag from `compare-w' to `compare-windows'.
+	(compare-windows-sync): Add option `nil' for no sync.  Doc fix.
+
+2007-03-24  Markus Triska  <markus.triska@gmx.at>
+
+	* expand.el: Change example to always enable abbrev-mode,
+	and remove redundant `function'.
+	(expand-abbrev-hook): Add autoload cookie.
+
+2007-03-24  Ryan Yeske  <rcyeske@gmail.com>
+
+	* emacs-lisp/testcover.el (testcover-start, testcover-end)
+	(testcover-mark-all, testcover-unmark-all): Add prompts to
+	interactive specs.
+
+2007-03-24  Jason Rumney  <jasonr@gnu.org>
+
+	* autorevert.el (find-file-hook, auto-revert-tail-mode):
+	Use file size in bytes for auto-revert-tail-pos not characters.
+
+2007-03-24  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* vc-rcs.el (vc-rcs-annotate-command):
+	Set text property :vc-annotate-prefix on the annotation text.
+	(vc-rcs-annotate-time): Instead of searching for ": ",
+	search for end of text propertized with :vc-annotate-prefix.
+
+2007-03-24  Martin Rudalics  <rudalics@gmx.at>
+
+	* whitespace.el (top level): Remove calls putting
+	permanent-local nil property since these are no-ops.
+
+	* man.el (Man-support-local-filenames): Assure that
+	default-directory exists when doing call-process.
+
+2007-03-23  David Vazquez  <xeos00@gmail.com>  (tiny change)
+
+	* progmodes/m4-mode.el (m4-m4-buffer, m4-m4-region):
+	Fix omission bug: Use m4-program-options to construct shell command.
+
+2007-03-23  David Kastrup  <dak@gnu.org>
+
+	* progmodes/cc-mode.el (c-make-emacs-variables-local):
+	Use `mapcar' rather than `mapcan' to silence compiler warning.
+
+2007-03-22  Ralf Angeli  <angeli@caeruleus.net>
+
+	* textmodes/reftex.el, textmodes/reftex-vars.el,
+	* textmodes/reftex-toc.el, textmodes/reftex-sel.el,
+	* textmodes/reftex-ref.el, textmodes/reftex-parse.el,
+	* textmodes/reftex-index.el, textmodes/reftex-global.el,
+	* textmodes/reftex-dcr.el, textmodes/reftex-cite.el,
+	* textmodes/reftex-auc.el: Add maintainer address.
+
+2007-03-22  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (org-agenda-mode, org-table-edit-formulas):
+	Make sure that `global-font-lock-mode' does not turn on font-lock
+	in these buffers.
+
+2007-03-21  Kim F. Storm  <storm@cua.dk>
+
+	* xt-mouse.el (xt-mouse-epoch): New variable.
+	(xterm-mouse-event): Use float-time.
+
+2007-03-21  Nick Roberts  <nickrob@snap.net.nz>
+
+	* xt-mouse.el (xterm-mouse-event): Compute a timestamp using
+	current-time.
+
+2007-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* complete.el (read-file-name-internal): Don't add the final > if the
+	completion is not finished (re-application of this patch, which was
+	accidentally undone by Eli).
+
+2007-03-21  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emulation/viper.el (viper-non-hook-settings): Handle mouse
+	clicks in describe-key and describe-key-briefly advice a little better.
+
 2007-03-21  Juanma Barranquero  <lekktu@gmail.com>
 
 	* server.el (server-process-filter): Cancel any pending isearch.
@@ -71,8 +615,8 @@
 
 2007-03-19  Martin Rudalics  <rudalics@gmx.at>
 
-	* font-lock.el (lisp-font-lock-keywords-1): Highlight
-	define-globalized-minor-mode as a keyword.
+	* font-lock.el (lisp-font-lock-keywords-1):
+	Highlight define-globalized-minor-mode as a keyword.
 
 2007-03-19  Kim F. Storm  <storm@cua.dk>
 
@@ -110,8 +654,7 @@
 2007-03-18  Detlev Zundel  <dzu@gnu.org>
 
 	* emacs-lisp/re-builder.el (reb-update-overlays): Do not mark
-	zero-width regexps as invalid but rather at least count them
-	correctly.
+	zero-width regexps as invalid but rather at least count them correctly.
 
 2007-03-18  Thien-Thi Nguyen  <ttn@gnu.org>
 
@@ -143,8 +686,8 @@
 
 2007-03-17  Chong Yidong  <cyd@stupidchicken.com>
 
-	* simple.el (line-move-1): Respect
-	`inhibit-line-move-field-capture' property.
+	* simple.el (line-move-1):
+	Respect `inhibit-line-move-field-capture' property.
 
 2007-03-13  Chong Yidong  <cyd@stupidchicken.com>
 
@@ -157,7 +700,7 @@
 2007-03-12  Lawrence Mitchell  <wence@gmx.li>  (tiny change)
 
 	* tempo.el (tempo-insert): Deal with 'r> if it appears
- 	specified with a prompt argument.
+	specified with a prompt argument.
 
 2007-03-12  Carsten Dominik  <dominik@science.uva.nl>
 
@@ -403,7 +946,7 @@
 	* emacs-lisp/lisp-mode.el (calculate-lisp-indent):
 	Redo previous change.
 
-2007-03-04  Kevin Rodgers  <kevin.d.rodgers@gmail.com> (tiny change)
+2007-03-04  Kevin Rodgers  <kevin.d.rodgers@gmail.com>  (tiny change)
 
 	* diff-mode.el (diff-mode): Doc fix.
 
@@ -493,7 +1036,7 @@
 	* ps-print.el: Replace (defvar VAR nil) by (defvar VAR).
 	(ps-setup): Print which Emacsen is running ps-print package.
 
-2007-03-01  Stuart Herring  <herring@lanl.gov>  (tiny change)
+2007-03-01  Stuart Herring  <herring@lanl.gov>
 
 	* files.el (set-auto-mode-0): Use `indirect-function'.
 	(hack-one-local-variable): Don't reapply current major mode.
@@ -537,7 +1080,7 @@
 
 	* help.el (where-is): Fail gracefully when not passed a command.
 
-2007-02-28  Stuart Herring  <herring@lanl.gov>  (tiny change)
+2007-02-28  Stuart Herring  <herring@lanl.gov>
 
 	* find-lisp.el (find-lisp-default-directory-predicate):
 	Fix bug: Do symlink check on expanded filename.
@@ -1437,7 +1980,7 @@
 2007-01-27  Guanpeng Xu  <herberteuler@hotmail.com>
 
 	* add-log.el (add-log-current-defun): Skip the semicolon ``;'' for
-        enum/union/struct/class definition.
+	enum/union/struct/class definition.
 	Revert change to call `forward-sexp' multiple times.
 
 2007-01-27  Chong Yidong  <cyd@stupidchicken.com>
@@ -2044,7 +2587,7 @@
 	* international/mule-cmds.el (select-safe-coding-system-interactively):
 	Fix message.
 
-2006-12-30  Kevin Rodgers  <kevin.d.rodgers@gmail.com> (tiny change)
+2006-12-30  Kevin Rodgers  <kevin.d.rodgers@gmail.com>  (tiny change)
 
 	* files.el (backup-buffer): Show entire backup file name in msg.
 
@@ -2501,20 +3044,20 @@
 2006-12-09  Martin Rudalics  <rudalics@gmx.at>
 
 	* wdired.el (wdired-change-to-wdired-mode, wdired-finish-edit)
-        (wdired-search-and-rename): Simplify code.
+	(wdired-search-and-rename): Simplify code.
 	(wdired-preprocess-files, wdired-preprocess-perms): Make
-        read-only property of preceding character rear-nonsticky to
-        avoid that it can be modified.  Put old-name and old-link
-        properties on character preceding name and replace
-        put-text-property by add-text-properties.
-        (wdired-get-filename, wdired-get-previous-link): Get old-name
-        and old-link properties from character preceding name and
-        simplify code.
+	read-only property of preceding character rear-nonsticky to
+	avoid that it can be modified.	Put old-name and old-link
+	properties on character preceding name and replace
+	put-text-property by add-text-properties.
+	(wdired-get-filename, wdired-get-previous-link): Get old-name
+	and old-link properties from character preceding name and
+	simplify code.
 	(wdired-preprocess-perms, wdired-set-bit, wdired-toggle-bit)
-        (wdired-perms-to-number): Make local-map property
-        rear-nonsticky to avoid that text following permissions may be
-        modified.  Use add-text-properties instead of put-text-property
-        when changing a permission bit.
+	(wdired-perms-to-number): Make local-map property
+	rear-nonsticky to avoid that text following permissions may be
+	modified.  Use add-text-properties instead of put-text-property
+	when changing a permission bit.
 	(wdired-change-to-dired-mode): Remove stickiness properties.
 
 2006-12-09  Juanma Barranquero  <lekktu@gmail.com>
@@ -12650,7 +13193,7 @@
 	English aspell dictionary is installed, use the first entry of
 	ispell-dictionary-alist-1.
 
-2006-01-27  Kevin Rodgers  <ihs_4664@yahoo.com> (tiny change)
+2006-01-27  Kevin Rodgers  <ihs_4664@yahoo.com>  (tiny change)
 
 	* textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate):
 	Doc fix.
@@ -14672,7 +15215,7 @@
 	(hi-lock-find-patterns, hi-lock-font-lock-hook):
 	Replace hi-lock-buffer-mode with hi-lock-mode.
 
-2005-12-10  Kevin Rodgers  <ihs_4664@yahoo.com> (tiny change)
+2005-12-10  Kevin Rodgers  <ihs_4664@yahoo.com>  (tiny change)
 
 	* emacs-lisp/lisp.el (lisp-complete-symbol): Regenerate the
 	completion list, even after a partial completion has been
--- a/lisp/autorevert.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/autorevert.el	Wed Apr 11 00:17:47 2007 +0000
@@ -278,7 +278,7 @@
 (add-hook 'find-file-hook
 	  (lambda ()
 	    (set (make-local-variable 'auto-revert-tail-pos)
-		 (save-restriction (widen) (1- (point-max))))))
+		 (nth 7 (file-attributes buffer-file-name)))))
 
 ;; Functions:
 
@@ -341,7 +341,7 @@
       (add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t)
       (or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position
 	  (set (make-local-variable 'auto-revert-tail-pos)
-	       (save-restriction (widen) (1- (point-max)))))
+	       (nth 7 (file-attributes buffer-file-name))))
       ;; let auto-revert-mode set up the mechanism for us if it isn't already
       (or auto-revert-mode
 	  (let ((auto-revert-tail-mode t))
--- a/lisp/button.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/button.el	Wed Apr 11 00:17:47 2007 +0000
@@ -89,9 +89,6 @@
 ;; Prevent insertions adjacent to the text-property buttons from
 ;; inheriting its properties.
 (put 'default-button 'rear-nonsticky t)
-;; Text property buttons don't have a `button' property of their own, so
-;; they inherit this.
-(put 'default-button 'button t)
 
 ;; A `category-symbol' property for the default button type
 (put 'button 'button-category-symbol 'default-button)
@@ -316,7 +313,11 @@
       (setcar (cdr type-entry)
 	      (button-category-symbol (car (cdr type-entry))))))
   ;; Now add all the text properties at once
-  (add-text-properties beg end properties)
+  (add-text-properties beg end
+                       ;; Each button should have a non-eq `button'
+                       ;; property so that next-single-property-change can
+                       ;; detect boundaries reliably.
+                       (cons 'button (cons (list t) properties)))
   ;; Return something that can be used to get at the button.
   beg)
 
@@ -365,16 +366,29 @@
 	     (next-button pos))))
 
 (defun previous-button (pos &optional count-current)
-  "Return the Nth button before position POS in the current buffer.
+  "Return the previous button before position POS in the current buffer.
 If COUNT-CURRENT is non-nil, count any button at POS in the search,
 instead of starting at the next button."
-  (unless count-current
-    (setq pos (previous-single-char-property-change pos 'button)))
-  (and (> pos (point-min))
-       (or (button-at (1- pos))
-	   ;; We must have originally been on a button, and are now in
-	   ;; the inter-button space.  Recurse to find a button.
-	   (previous-button pos))))
+  (let ((button (button-at pos)))
+    (if button
+	(if count-current
+	    button
+	  ;; We started out on a button, so move to its start and look
+	  ;; for the previous button boundary.
+	  (setq pos (previous-single-char-property-change
+		     (button-start button) 'button))
+	  (let ((new-button (button-at pos)))
+	    (if new-button
+		;; We are in a button again; this can happen if there
+		;; are adjacent buttons (or at bob).
+		(unless (= pos (button-start button)) new-button)
+	      ;; We are now in the space between buttons.
+	      (previous-button pos))))
+      ;; We started out in the space between buttons.
+      (setq pos (previous-single-char-property-change pos 'button))
+      (or (button-at pos)
+	  (and (> pos (point-min))
+	       (button-at (1- pos)))))))
 
 
 ;; User commands
--- a/lisp/calendar/calendar.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/calendar/calendar.el	Wed Apr 11 00:17:47 2007 +0000
@@ -301,6 +301,11 @@
   :type 'boolean
   :group 'holidays)
 
+(defcustom calendar-mode-hook nil
+  "Hook run when entering `calendar-mode'."
+  :type 'hook
+  :group 'calendar-hooks)
+
 ;;;###autoload
 (defcustom calendar-load-hook nil
   "List of functions to be called after the calendar is first loaded.
@@ -624,6 +629,10 @@
 				       (choice symbol regexp)))))
   :group 'diary)
 
+(autoload 'diary-font-lock-keywords "diary-lib")
+(autoload 'diary-live-p "diary-lib")
+(defvar diary-font-lock-keywords)
+
 (defcustom diary-date-forms
   (if european-calendar-style
       european-date-diary-pattern
@@ -661,6 +670,15 @@
 			 (repeat (list :inline t :format "%v"
 				       (symbol :tag "Keyword")
 				       (choice symbol regexp)))))
+  :initialize 'custom-initialize-default
+  :set (lambda (symbol value)
+         (unless (equal value (eval symbol))
+           (custom-set-default symbol value)
+           (setq diary-font-lock-keywords (diary-font-lock-keywords))
+           ;; Need to redraw not just to get new font-locking, but also
+           ;; to pick up any newly recognized entries.
+           (and (diary-live-p)
+                (diary))))
   :group 'diary)
 
 ;;;###autoload
--- a/lisp/calendar/diary-lib.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/calendar/diary-lib.el	Wed Apr 11 00:17:47 2007 +0000
@@ -263,6 +263,16 @@
 	    (setq attr-list (cdr attr-list)))))
       (list entry ret-attr))))
 
+(defun diary-set-maybe-redraw (symbol value)
+  "Set SYMBOL's value to VALUE, and redraw the diary if necessary.
+Redraws the diary if it is being displayed (note this is not the same as
+just visiting the `diary-file'), and SYMBOL's value is to be changed."
+  (let ((oldvalue (eval symbol)))
+    (custom-set-default symbol value)
+    (and (not (equal value oldvalue))
+         (diary-live-p)
+         ;; Note this assumes diary was called without prefix arg.
+         (diary))))
 
 ;; This can be removed once the kill/yank treatment of invisible text
 ;; (see etc/TODO) is fixed. -- gm
@@ -292,27 +302,22 @@
 
 (defvar diary-saved-point)		; internal
 
+;; The first version of this also checked for diary-selective-display
+;; in the non-fancy case. This was an attempt to distinguish between
+;; displaying the diary and just visiting the diary file. However,
+;; when using fancy diary, calling diary when there are no entries to
+;; display does not create the fancy buffer, nor does it switch on
+;; selective-display in the diary buffer. This means some
+;; customizations will not take effect, eg:
+;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-03/msg00466.html
+;; So the check for selective-display was dropped. This means the
+;; diary will be displayed if one customizes a diary variable while
+;; just visiting the diary-file. This is i) unlikely, and ii) no great loss.
 (defun diary-live-p ()
-  "Return non-nil if the diary is being displayed.
-This is not the same as just visiting the `diary-file'."
+  "Return non-nil if the diary is being displayed."
   (or (get-buffer fancy-diary-buffer)
-      (when diary-file
-        (let ((dbuff (find-buffer-visiting
-                      (substitute-in-file-name diary-file))))
-          (when dbuff
-            (with-current-buffer dbuff
-              diary-selective-display))))))
-
-(defun diary-set-maybe-redraw (symbol value)
-  "Set SYMBOL's value to VALUE, and redraw the diary if necessary.
-Redraws the diary if it is being displayed (note this is not the same as
-just visiting the `diary-file'), and SYMBOL's value is to be changed."
-  (let ((oldvalue (eval symbol)))
-    (custom-set-default symbol value)
-    (and (not (equal value oldvalue))
-         (diary-live-p)
-         ;; Note this assumes diary was called without prefix arg.
-         (diary))))
+      (and diary-file
+           (find-buffer-visiting (substitute-in-file-name diary-file)))))
 
 (defcustom number-of-diary-entries 1
   "Specifies how many days of diary entries are to be displayed initially.
@@ -1990,51 +1995,53 @@
 (eval-when-compile (require 'cal-hebrew)
                    (require 'cal-islam))
 
-(defvar diary-font-lock-keywords
-      (append
-       (diary-font-lock-date-forms calendar-month-name-array
-                                   nil calendar-month-abbrev-array)
-       (when (or (memq 'mark-hebrew-diary-entries
-                       nongregorian-diary-marking-hook)
-                 (memq 'list-hebrew-diary-entries
-                       nongregorian-diary-listing-hook))
-         (require 'cal-hebrew)
-         (diary-font-lock-date-forms
-          calendar-hebrew-month-name-array-leap-year
-          hebrew-diary-entry-symbol))
-       (when (or (memq 'mark-islamic-diary-entries
-                       nongregorian-diary-marking-hook)
-                 (memq 'list-islamic-diary-entries
-                       nongregorian-diary-listing-hook))
-         (require 'cal-islam)
-         (diary-font-lock-date-forms
-          calendar-islamic-month-name-array
-          islamic-diary-entry-symbol))
-       (list
-        (cons
-         (concat "^" (regexp-quote diary-include-string) ".*$")
-         'font-lock-keyword-face)
-        (cons
-         (concat "^" (regexp-quote diary-nonmarking-symbol)
-                 "?\\(" (regexp-quote sexp-diary-entry-symbol) "\\)")
-         '(1 font-lock-reference-face))
-        (cons
-         (concat "^" (regexp-quote diary-nonmarking-symbol))
-         'font-lock-reference-face)
-        (cons
-         (concat "^" (regexp-quote diary-nonmarking-symbol)
-                 "?\\(" (regexp-quote hebrew-diary-entry-symbol) "\\)")
-         '(1 font-lock-reference-face))
-        (cons
-         (concat "^" (regexp-quote diary-nonmarking-symbol)
-                 "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)")
-         '(1 font-lock-reference-face))
-        '(diary-font-lock-sexps . font-lock-keyword-face)
-        `(,(concat "\\(^\\|\\s-\\)"
-                   diary-time-regexp "\\(-" diary-time-regexp "\\)?")
-          . 'diary-time)))
-      "Forms to highlight in `diary-mode'.")
+(defun diary-font-lock-keywords ()
+  "Return a value for the variable `diary-font-lock-keywords'."
+  (append
+   (diary-font-lock-date-forms calendar-month-name-array
+                               nil calendar-month-abbrev-array)
+   (when (or (memq 'mark-hebrew-diary-entries
+                   nongregorian-diary-marking-hook)
+             (memq 'list-hebrew-diary-entries
+                   nongregorian-diary-listing-hook))
+     (require 'cal-hebrew)
+     (diary-font-lock-date-forms
+      calendar-hebrew-month-name-array-leap-year
+      hebrew-diary-entry-symbol))
+   (when (or (memq 'mark-islamic-diary-entries
+                   nongregorian-diary-marking-hook)
+             (memq 'list-islamic-diary-entries
+                   nongregorian-diary-listing-hook))
+     (require 'cal-islam)
+     (diary-font-lock-date-forms
+      calendar-islamic-month-name-array
+      islamic-diary-entry-symbol))
+   (list
+    (cons
+     (concat "^" (regexp-quote diary-include-string) ".*$")
+     'font-lock-keyword-face)
+    (cons
+     (concat "^" (regexp-quote diary-nonmarking-symbol)
+             "?\\(" (regexp-quote sexp-diary-entry-symbol) "\\)")
+     '(1 font-lock-reference-face))
+    (cons
+     (concat "^" (regexp-quote diary-nonmarking-symbol))
+     'font-lock-reference-face)
+    (cons
+     (concat "^" (regexp-quote diary-nonmarking-symbol)
+             "?\\(" (regexp-quote hebrew-diary-entry-symbol) "\\)")
+     '(1 font-lock-reference-face))
+    (cons
+     (concat "^" (regexp-quote diary-nonmarking-symbol)
+             "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)")
+     '(1 font-lock-reference-face))
+    '(diary-font-lock-sexps . font-lock-keyword-face)
+    `(,(concat "\\(^\\|\\s-\\)"
+               diary-time-regexp "\\(-" diary-time-regexp "\\)?")
+      . 'diary-time))))
 
+(defvar diary-font-lock-keywords (diary-font-lock-keywords)
+  "Forms to highlight in `diary-mode'.")
 
 ;; Following code from Dave Love <fx@gnu.org>.
 ;; Import Outlook-format appointments from mail messages in Gnus or
--- a/lisp/comint.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/comint.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1502,6 +1502,7 @@
   ;; Note that the input string does not include its terminal newline.
   (let ((proc (get-buffer-process (current-buffer))))
     (if (not proc) (error "Current buffer has no process")
+        (widen)
 	(let* ((pmark (process-mark proc))
 	       (intxt (if (>= (point) (marker-position pmark))
 			  (progn (if comint-eol-on-send (end-of-line))
@@ -1646,8 +1647,8 @@
     (let ((inhibit-read-only t)
 	  (inhibit-modification-hooks t))
       (add-text-properties (overlay-start comint-last-prompt-overlay)
-                           (overlay-end comint-last-prompt-overlay)
-                           (overlay-properties comint-last-prompt-overlay)))))
+			   (overlay-end comint-last-prompt-overlay)
+			   (overlay-properties comint-last-prompt-overlay)))))
 
 (defun comint-carriage-motion (start end)
   "Interpret carriage control characters in the region from START to END.
@@ -2593,7 +2594,7 @@
 	 (proc-mark (process-mark proc)))
     (display-buffer proc-buf)
     (set-buffer proc-buf) ; but it's not the selected *window*
-    (let ((proc-win (get-buffer-window proc-buf))
+    (let ((proc-win (get-buffer-window proc-buf 0))
 	  (proc-pt (marker-position proc-mark)))
       (comint-send-string proc str) ; send the query
       (accept-process-output proc)  ; wait for some output
@@ -2959,7 +2960,7 @@
 (defun comint-dynamic-list-completions (completions)
   "List in help buffer sorted COMPLETIONS.
 Typing SPC flushes the help buffer."
-  (let ((window (get-buffer-window "*Completions*")))
+  (let ((window (get-buffer-window "*Completions*" 0)))
     (setq completions (sort completions 'string-lessp))
     (if (and (eq last-command this-command)
 	     window (window-live-p window) (window-buffer window)
--- a/lisp/compare-w.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/compare-w.el	Wed Apr 11 00:17:47 2007 +0000
@@ -32,7 +32,7 @@
 
 ;;; Code:
 
-(defgroup compare-w nil
+(defgroup compare-windows nil
   "Compare text between windows."
   :prefix "compare-"
   :group 'tools)
@@ -52,18 +52,18 @@
 If the function returns the same value for both windows, then the
 whitespace is considered to match, and is skipped."
   :type '(choice regexp function)
-  :group 'compare-w)
+  :group 'compare-windows)
 
 (defcustom compare-ignore-whitespace nil
   "*Non-nil means `compare-windows' ignores whitespace."
   :type 'boolean
-  :group 'compare-w
+  :group 'compare-windows
   :version "22.1")
 
 (defcustom compare-ignore-case nil
   "*Non-nil means `compare-windows' ignores case differences."
   :type 'boolean
-  :group 'compare-w)
+  :group 'compare-windows)
 
 (defcustom compare-windows-sync 'compare-windows-sync-default-function
   "*Function or regexp that is used to synchronize points in two
@@ -87,10 +87,11 @@
 the nature of the difference units separator.  The variable can
 be made buffer-local.
 
-If the value of this variable is `nil', then function `ding' is
-called to beep or flash the screen when points are mismatched."
-  :type '(choice regexp function)
-  :group 'compare-w
+If the value of this variable is `nil' (option \"No sync\"), then
+no synchronization is performed, and the function `ding' is called
+to beep or flash the screen when points are mismatched."
+  :type '(choice function regexp (const :tag "No sync" nil))
+  :group 'compare-windows
   :version "22.1")
 
 (defcustom compare-windows-sync-string-size 32
@@ -102,7 +103,7 @@
 
 The default value 32 is good for the most cases."
   :type 'integer
-  :group 'compare-w
+  :group 'compare-windows
   :version "22.1")
 
 (defcustom compare-windows-recenter nil
@@ -113,7 +114,7 @@
 The value `(-1 0)' is useful if windows are split vertically,
 and the value `((4) (4))' for horizontally split windows."
   :type '(list sexp sexp)
-  :group 'compare-w
+  :group 'compare-windows
   :version "22.1")
 
 (defcustom compare-windows-highlight t
@@ -125,13 +126,13 @@
   :type '(choice (const :tag "No highlighting" nil)
 		 (const :tag "Persistent highlighting" persistent)
 		 (other :tag "Highlight until next command" t))
-  :group 'compare-w
+  :group 'compare-windows
   :version "22.1")
 
 (defface compare-windows
   '((t :inherit lazy-highlight))
   "Face for highlighting of compare-windows difference regions."
-  :group 'compare-w
+  :group 'compare-windows
   :version "22.1")
 
 (defvar compare-windows-overlay1 nil)
--- a/lisp/complete.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/complete.el	Wed Apr 11 00:17:47 2007 +0000
@@ -187,6 +187,9 @@
 
 	   (define-key global-map [remap lisp-complete-symbol]	'PC-lisp-complete-symbol)))))
 
+(defvar PC-do-completion-end nil
+  "Internal variable used by `PC-do-completion'.")
+
 ;;;###autoload
 (define-minor-mode partial-completion-mode
   "Toggle Partial Completion mode.
@@ -239,7 +242,11 @@
    (if partial-completion-mode 'add-hook 'remove-hook)
    'choose-completion-string-functions
    (lambda (choice buffer mini-p base-size)
-     (if mini-p (goto-char (point-max)))
+     (if mini-p (goto-char (point-max))
+       ;; Need a similar hack for the non-minibuffer-case -- gm.
+       (when PC-do-completion-end
+         (goto-char PC-do-completion-end)
+         (setq PC-do-completion-end nil)))
      nil))
   ;; Build the env-completion and mapping table.
   (when (and partial-completion-mode (null PC-env-vars-alist))
@@ -416,7 +423,7 @@
   (let* ((table minibuffer-completion-table)
 	 (pred minibuffer-completion-predicate)
 	 (filename (funcall PC-completion-as-file-name-predicate))
-	 (dirname nil)		; non-nil only if a filename is being completed
+	 (dirname nil) ; non-nil only if a filename is being completed
 	 ;; The following used to be "(dirlength 0)" which caused the erasure of
 	 ;; the entire buffer text before `point' when inserting a completion
 	 ;; into a buffer.
@@ -681,7 +688,7 @@
 				      (forward-char 1)
 				    (if (and (< (point) end)
 					     (and (looking-at " ")
-						      (memq (aref prefix i)
+                                                  (memq (aref prefix i)
 							PC-delims-list)))
 					;; replace " " by the actual delimiter
 					(progn
@@ -689,12 +696,12 @@
 					  (insert (substring prefix i (1+ i))))
 				      ;; insert a new character
 				      (progn
-				      (and filename (looking-at "\\*")
-					   (progn
-					     (delete-char 1)
-					     (setq end (1- end))))
+                                        (and filename (looking-at "\\*")
+                                             (progn
+                                               (delete-char 1)
+                                               (setq end (1- end))))
 					(setq improved t)
-				    (insert (substring prefix i (1+ i)))
+                                        (insert (substring prefix i (1+ i)))
 					(setq end (1+ end)))))
 				  (setq i (1+ i)))
 				(or pt (setq pt (point)))
@@ -729,7 +736,7 @@
 
 		    ;; We changed it... would it be complete without the space?
 		    (if (test-completion (buffer-substring 1 (1- end))
-					  table pred)
+                                         table pred)
 			(delete-region (1- end) end)))
 
 	      (if improved
@@ -743,13 +750,29 @@
 			(and completion-auto-help
 			     (eq last-command this-command))
 			(eq mode 'help))
-		    (with-output-to-temp-buffer "*Completions*"
-		      (display-completion-list (sort helpposs 'string-lessp))
-		      (with-current-buffer standard-output
-			;; Record which part of the buffer we are completing
-			;; so that choosing a completion from the list
-			;; knows how much old text to replace.
-			(setq completion-base-size dirlength)))
+                    (let ((prompt-end (minibuffer-prompt-end)))
+                      (with-output-to-temp-buffer "*Completions*"
+                        (display-completion-list (sort helpposs 'string-lessp))
+                        (with-current-buffer standard-output
+                          ;; Record which part of the buffer we are completing
+                          ;; so that choosing a completion from the list
+                          ;; knows how much old text to replace.
+                          ;; This was briefly nil in the non-dirname case.
+                          ;; However, if one calls PC-lisp-complete-symbol
+                          ;; on "(ne-f" with point on the hyphen, PC offers
+                          ;; all completions starting with "(ne", some of
+                          ;; which do not match the "-f" part (maybe it
+                          ;; should not, but it does). In such cases,
+                          ;; completion gets confused trying to figure out
+                          ;; how much to replace, so we tell it explicitly
+                          ;; (ie, the number of chars in the buffer before beg).
+                          ;;
+                          ;; Note that choose-completion-string-functions
+                          ;; plays around with point.
+                          (setq completion-base-size (if dirname
+                                                         dirlength
+                                                       (- beg prompt-end))
+                                PC-do-completion-end end))))
 		  (PC-temp-minibuffer-message " [Next char not unique]"))
 		nil)))))
 
@@ -799,6 +822,10 @@
 	       (setq quit-flag nil
 		     unread-command-events '(7))))))))
 
+;; Does not need to be buffer-local (?) because only used when one
+;; PC-l-c-s immediately follows another.
+(defvar PC-lisp-complete-end nil
+  "Internal variable used by `PC-lisp-complete-symbol'.")
 
 (defun PC-lisp-complete-symbol ()
   "Perform completion on Lisp symbol preceding point.
@@ -811,6 +838,12 @@
 or properties are considered."
   (interactive)
   (let* ((end (point))
+         ;; To complete the word under point, rather than just the portion
+         ;; before point, use this:
+;;;           (save-excursion
+;;;             (with-syntax-table lisp-mode-syntax-table
+;;;               (forward-sexp 1)
+;;;               (point))))
 	 (beg (save-excursion
                 (with-syntax-table lisp-mode-syntax-table
                   (backward-sexp 1)
@@ -825,7 +858,39 @@
 			(or (boundp sym) (fboundp sym)
 			    (symbol-plist sym))))))
 	 (PC-not-minibuffer t))
-    (PC-do-completion nil beg end)))
+    ;; http://lists.gnu.org/archive/html/emacs-devel/2007-03/msg01211.html
+    ;;
+    ;; This deals with cases like running PC-l-c-s on "M-: (n-f".
+    ;; The first call to PC-l-c-s expands this to "(ne-f", and moves
+    ;; point to the hyphen [1]. If one calls PC-l-c-s immediately after,
+    ;; then without the last-command check, one is offered all
+    ;; completions of "(ne", which is presumably not what one wants.
+    ;;
+    ;; This is arguably (at least, it seems to be the existing intended
+    ;; behaviour) what one _does_ want if point has been explicitly
+    ;; positioned on the hyphen. Note that if PC-do-completion (qv) binds
+    ;; completion-base-size to nil, then completion does not replace the
+    ;; correct amount of text in such cases.
+    ;;
+    ;; Neither of these problems occur when using PC for filenames in the
+    ;; minibuffer, because in that case PC-do-completion is called without
+    ;; an explicit value for END, and so uses (point-max). This is fine for
+    ;; a filename, because the end of the filename must be at the end of
+    ;; the minibuffer. The same is not true for lisp symbols.
+    ;;
+    ;; [1] An alternate fix would be to not move point to the hyphen
+    ;; in such cases, but that would make the behaviour different from
+    ;; that for filenames. It seems PC moves point to the site of the
+    ;; first difference between the possible completions.
+    ;;
+    ;; Alternatively alternatively, maybe end should be computed in
+    ;; the same way as beg. That would change the behaviour though.
+    (if (equal last-command 'PC-lisp-complete-symbol)
+        (PC-do-completion nil beg PC-lisp-complete-end)
+      (if PC-lisp-complete-end
+          (move-marker PC-lisp-complete-end end)
+        (setq PC-lisp-complete-end (copy-marker end t)))
+      (PC-do-completion nil beg end))))
 
 (defun PC-complete-as-file-name ()
    "Perform completion on file names preceding point.
@@ -1026,10 +1091,11 @@
   (if (string-match "<\\([^\"<>]*\\)>?\\'" (ad-get-arg 0))
       (let* ((string (ad-get-arg 0))
              (action (ad-get-arg 2))
-             (name (substring string (match-beginning 1) (match-end 1)))
+             (name (match-string 1 string))
 	     (str2 (substring string (match-beginning 0)))
 	     (completion-table
-	      (mapcar (lambda (x) (format "<%s>" x))
+	      (mapcar (lambda (x)
+                        (format (if (string-match "/\\'" x) "<%s" "<%s>") x))
 		      (PC-include-file-all-completions
 		       name (PC-include-file-path)))))
         (setq ad-return-value
--- a/lisp/cus-start.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/cus-start.el	Wed Apr 11 00:17:47 2007 +0000
@@ -341,7 +341,11 @@
 	     (split-height-threshold windows integer)
 	     (window-min-height windows integer)
 	     (window-min-width windows integer)
-	     (scroll-preserve-screen-position windows boolean)
+ 	     (scroll-preserve-screen-position
+ 	      windows (choice
+ 		       (const :tag "Off (nil)" :value nil)
+ 		       (const :tag "Full screen (t)" :value t)
+ 		       (other :tag "Always" 1)))
 	     (display-buffer-reuse-frames windows boolean "21.1")
 	     ;; xdisp.c
 	     (scroll-step windows integer)
--- a/lisp/desktop.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/desktop.el	Wed Apr 11 00:17:47 2007 +0000
@@ -779,32 +779,32 @@
 	  ";; -*- mode: emacs-lisp; coding: utf-8-emacs; -*-\n"
 	  desktop-header
 	  ";; Created " (current-time-string) "\n"
-	  ";; Desktop file format version " desktop-file-version "\n"
-	  ";; Emacs version " emacs-version "\n\n"
-	  ";; Global section:\n")
-	(mapc (function desktop-outvar) desktop-globals-to-save)
-	(if (memq 'kill-ring desktop-globals-to-save)
-	  (insert
-	    "(setq kill-ring-yank-pointer (nthcdr "
+         ";; Desktop file format version " desktop-file-version "\n"
+         ";; Emacs version " emacs-version "\n\n"
+         ";; Global section:\n")
+        (mapcar (function desktop-outvar) desktop-globals-to-save)
+        (if (memq 'kill-ring desktop-globals-to-save)
+            (insert
+             "(setq kill-ring-yank-pointer (nthcdr "
 	    (int-to-string (- (length kill-ring) (length kill-ring-yank-pointer)))
-	    " kill-ring))\n"))
+             " kill-ring))\n"))
 
-	(insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n")
-	(mapc #'(lambda (l)
-		  (when (apply 'desktop-save-buffer-p l)
-		    (insert "("
-			    (if (or (not (integerp eager))
+        (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n")
+        (mapcar #'(lambda (l)
+                  (when (apply 'desktop-save-buffer-p l)
+                    (insert "("
+                            (if (or (not (integerp eager))
 				    (unless (zerop eager)
 				      (setq eager (1- eager))
 				      t))
 				"desktop-create-buffer"
-			      "desktop-append-buffer-args")
-			    " "
-			    desktop-file-version)
-		    (mapc #'(lambda (e)
-			      (insert "\n  " (desktop-value-to-string e)))
-			  l)
-		    (insert ")\n\n")))
+                              "desktop-append-buffer-args")
+                            " "
+                            desktop-file-version)
+                    (mapcar #'(lambda (e)
+                              (insert "\n  " (desktop-value-to-string e)))
+                          l)
+                    (insert ")\n\n")))
 	      info)
 	(setq default-directory dirname)
 	(let ((coding-system-for-write 'utf-8-emacs))
@@ -1045,7 +1045,7 @@
               ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible
                (auto-fill-mode 0))
               (t
-               (mapc #'(lambda (minor-mode)
+               (mapcar #'(lambda (minor-mode)
                          ;; Give minor mode module a chance to add a handler.
                          (desktop-load-file minor-mode)
                          (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers))))
--- a/lisp/dframe.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/dframe.el	Wed Apr 11 00:17:47 2007 +0000
@@ -354,9 +354,7 @@
 			  t))))
 	;; Enable mouse tracking in emacs
 	(if dframe-track-mouse-function
-	    (set (make-local-variable 'track-mouse) t))	;this could be messy.
-	;; disable auto-show-mode for Emacs
-	(setq auto-show-mode nil))
+	    (set (make-local-variable 'track-mouse) t))) ;this could be messy.
 ;;;; DISABLED: This causes problems for users with multiple frames.
 ;;;;       ;; Set this up special just for the passed in buffer
 ;;;;       ;; Terminal minibuffer stuff does not require this.
--- a/lisp/diff-mode.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/diff-mode.el	Wed Apr 11 00:17:47 2007 +0000
@@ -985,8 +985,7 @@
 (define-derived-mode diff-mode fundamental-mode "Diff"
   "Major mode for viewing/editing context diffs.
 Supports unified and context diffs as well as (to a lesser extent)
-normal diffs.  If you edit the buffer manually, diff-mode will try
-to update the hunk headers for you on-the-fly.
+normal diffs.
 
 When the buffer is read-only, the ESC prefix is not necessary.
 If you edit the buffer manually, diff-mode will try to update the hunk
@@ -996,9 +995,6 @@
 or vice versa with \\[diff-unified->context] and you can also reverse the direction of
 a diff with \\[diff-reverse-direction].
 
-When the buffer is read-only, the Meta- modifier is not necessary
-to run the Diff mode commands:
-
    \\{diff-mode-map}"
 
   (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults)
--- a/lisp/dired-x.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/dired-x.el	Wed Apr 11 00:17:47 2007 +0000
@@ -45,12 +45,8 @@
 ;; (add-hook 'dired-load-hook
 ;;           (function (lambda ()
 ;;                       (load "dired-x")
-;;                       ;; Set global variables here.  For example:
+;;                       ;; Set variables here.  For example:
 ;;                       ;; (setq dired-guess-shell-gnutar "gtar")
-;;                       )))
-;; (add-hook 'dired-mode-hook
-;;           (function (lambda ()
-;;                       ;; Set buffer-local variables here.  For example:
 ;;                       ;; (dired-omit-mode 1)
 ;;                       )))
 ;;
@@ -1130,17 +1126,11 @@
   :group 'dired-x
   :type '(alist :key-type regexp :value-type (repeat sexp)))
 
-(defcustom dired-guess-shell-case-fold-search t
-  "If non-nil, `dired-guess-shell-alist-default' and
-`dired-guess-shell-alist-user' are matched case-insensitively."
-  :group 'dired-x
-  :type 'boolean)
-
 (defun dired-guess-default (files)
   "Guess a shell commands for FILES.  Return command or list of commands.
 See `dired-guess-shell-alist-user'."
 
-  (let* ((case-fold-search dired-guess-shell-case-fold-search)
+  (let* ((case-fold-search t)
          ;; Prepend the user's alist to the default alist.
          (alist (append dired-guess-shell-alist-user
                         dired-guess-shell-alist-default))
--- a/lisp/dos-w32.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/dos-w32.el	Wed Apr 11 00:17:47 2007 +0000
@@ -74,6 +74,9 @@
 	(setq alist (cdr alist)))
       found)))
 
+;; Silence compiler. Defined in src/buffer.c on DOS_NT.
+(defvar default-buffer-file-type)
+
 ;; Don't check for untranslated file systems here.
 (defun find-buffer-file-type (filename)
   (let ((match (find-buffer-file-type-match filename))
--- a/lisp/emacs-lisp/authors.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/authors.el	Wed Apr 11 00:17:47 2007 +0000
@@ -688,5 +688,7 @@
     (authors root)
     (write-file file)))
 
+(provide 'authors)
+
 ;;; arch-tag: 659d5900-5ff2-43b0-954c-a315cc1e4dc1
 ;;; authors.el ends here
--- a/lisp/emacs-lisp/byte-opt.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/byte-opt.el	Wed Apr 11 00:17:47 2007 +0000
@@ -545,8 +545,8 @@
 				(eq (car-safe (nth 2 last)) 'cdr)
 				(eq (cadr (nth 2 last)) var))))
 		    (progn
-		      (byte-compile-warn "value returned by `%s' is not used"
-					 (prin1-to-string (car form)))
+		      (byte-compile-warn "value returned from %s is unused"
+					 (prin1-to-string form))
 		      nil)))
 	   (byte-compile-log "  %s called for effect; deleted" fn)
 	   ;; appending a nil here might not be necessary, but it can't hurt.
@@ -1117,27 +1117,6 @@
 	(byte-optimize-predicate form))
     form))
 
-(put 'concat 'byte-optimizer 'byte-optimize-pure-func)
-(put 'symbol-name 'byte-optimizer 'byte-optimize-pure-func)
-(put 'regexp-opt 'byte-optimizer 'byte-optimize-pure-func)
-(put 'regexp-quote 'byte-optimizer 'byte-optimize-pure-func)
-(put 'string-to-syntax 'byte-optimizer 'byte-optimize-pure-func)
-(defun byte-optimize-pure-func (form)
-  "Do constant folding for pure functions.
-This assumes that the function will not have any side-effects and that
-its return value depends solely on its arguments.
-If the function can signal an error, this might change the semantics
-of FORM by signaling the error at compile-time."
-  (let ((args (cdr form))
-	(constant t))
-    (while (and args constant)
-      (or (byte-compile-constp (car args))
-	  (setq constant nil))
-      (setq args (cdr args)))
-    (if constant
-	(list 'quote (eval form))
-      form)))
-
 ;; Avoid having to write forward-... with a negative arg for speed.
 ;; Fixme: don't be limited to constant args.
 (put 'backward-char 'byte-optimizer 'byte-optimize-backward-char)
@@ -1158,14 +1137,6 @@
 	 '(forward-word -1))
 	(t form)))
 
-(put 'char-before 'byte-optimizer 'byte-optimize-char-before)
-(defun byte-optimize-char-before (form)
-  (cond ((= 2 (safe-length form))
-	 `(char-after (1- ,(nth 1 form))))
-	((= 1 (safe-length form))
-	 '(char-after (1- (point))))
-	(t form)))
-
 ;; Fixme: delete-char -> delete-region (byte-coded)
 ;; optimize string-as-unibyte, string-as-multibyte, string-make-unibyte,
 ;; string-make-multibyte for constant args.
--- a/lisp/emacs-lisp/bytecomp.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Wed Apr 11 00:17:47 2007 +0000
@@ -2341,7 +2341,7 @@
 		    (eq (car (car (cdr tail))) 'declare))
 	  (let ((declaration (car (cdr tail))))
 	    (setcdr tail (cdr (cdr tail)))
-	    (princ `(if macro-declaration-function
+	    (prin1 `(if macro-declaration-function
 			(funcall macro-declaration-function
 				 ',name ',declaration))
 		   outbuffer)))))
@@ -3148,6 +3148,7 @@
 
 ;; more complicated compiler macros
 
+(byte-defop-compiler char-before)
 (byte-defop-compiler list)
 (byte-defop-compiler concat)
 (byte-defop-compiler fset)
@@ -3159,6 +3160,13 @@
 (byte-defop-compiler19 (/ byte-quo) byte-compile-quo)
 (byte-defop-compiler19 nconc)
 
+(defun byte-compile-char-before (form)
+  (cond ((= 2 (length form))
+         (byte-compile-form `(char-after (1- ,(nth 1 form)))))
+        ((= 1 (length form))
+         (byte-compile-form '(char-after (1- (point)))))
+        (t (byte-compile-subr-wrong-args form "0-1"))))
+
 (defun byte-compile-list (form)
   (let ((count (length (cdr form))))
     (cond ((= count 0)
--- a/lisp/emacs-lisp/edebug.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/edebug.el	Wed Apr 11 00:17:47 2007 +0000
@@ -2755,7 +2755,8 @@
 	      )				; if edebug-save-windows
 
 	    ;; Restore current buffer always, in case application needs it.
-	    (set-buffer edebug-outside-buffer)
+	    (if (buffer-name edebug-outside-buffer)
+		(set-buffer edebug-outside-buffer))
 	    ;; Restore point, and mark.
 	    ;; Needed even if restoring windows because
 	    ;; that doesn't restore point and mark in the current buffer.
--- a/lisp/emacs-lisp/ewoc.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/ewoc.el	Wed Apr 11 00:17:47 2007 +0000
@@ -191,8 +191,9 @@
                     (not (eq dll node))))
         (setq node (ewoc--node-right node))))))
 
-(defun ewoc--insert-new-node (node data pretty-printer)
+(defun ewoc--insert-new-node (node data pretty-printer dll)
   "Insert before NODE a new node for DATA, displayed by PRETTY-PRINTER.
+Fourth arg DLL -- from `(ewoc--dll EWOC)' -- is for internal purposes.
 Call PRETTY-PRINTER with point at NODE's start, thus pushing back
 NODE and leaving the new node's start there.  Return the new node."
   (save-excursion
@@ -262,8 +263,8 @@
       (unless header (setq header ""))
       (unless footer (setq footer ""))
       (setf (ewoc--node-start-marker dll) (copy-marker pos)
-            foot (ewoc--insert-new-node  dll footer hf-pp)
-            head (ewoc--insert-new-node foot header hf-pp)
+            foot (ewoc--insert-new-node  dll footer hf-pp dll)
+            head (ewoc--insert-new-node foot header hf-pp dll)
             (ewoc--hf-pp new-ewoc) hf-pp
             (ewoc--footer new-ewoc) foot
             (ewoc--header new-ewoc) head))
@@ -301,7 +302,7 @@
   "Enter a new element DATA before NODE in EWOC.
 Return the new node."
   (ewoc--set-buffer-bind-dll ewoc
-    (ewoc--insert-new-node node data (ewoc--pretty-printer ewoc))))
+    (ewoc--insert-new-node node data (ewoc--pretty-printer ewoc) dll)))
 
 (defun ewoc-next (ewoc node)
   "Return the node in EWOC that follows NODE.
--- a/lisp/emacs-lisp/lisp-mode.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1280,7 +1280,8 @@
 				     "\\|\\s-*\\([(;:\"]\\|`(\\|#'(\\)"))
 	    (paragraph-separate
 	     (concat paragraph-separate "\\|\\s-*\".*[,\\.]$"))
-            (fill-column (if (integerp emacs-lisp-docstring-fill-column)
+            (fill-column (if (and (integerp emacs-lisp-docstring-fill-column)
+                                  (derived-mode-p 'emacs-lisp-mode))
                              emacs-lisp-docstring-fill-column
                            fill-column)))
 	(fill-paragraph justify))
--- a/lisp/emacs-lisp/lisp.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/lisp.el	Wed Apr 11 00:17:47 2007 +0000
@@ -582,8 +582,7 @@
 symbols with function definitions, values or properties are
 considered."
   (interactive)
-
-  (let ((window (get-buffer-window "*Completions*")))
+  (let ((window (get-buffer-window "*Completions*" 0)))
     (if (and (eq last-command this-command)
 	     window (window-live-p window) (window-buffer window)
 	     (buffer-name (window-buffer window)))
--- a/lisp/emacs-lisp/sregex.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/sregex.el	Wed Apr 11 00:17:47 2007 +0000
@@ -425,7 +425,7 @@
   Stands for \"\\\\'\", matching the empty string at the end of text.
 
 - the symbol `point'
-  Stands for \"\\\\=\", matching the empty string at point.
+  Stands for \"\\\\=\\=\", matching the empty string at point.
 
 - the symbol `word-boundary'
   Stands for \"\\\\b\", matching the empty string at the beginning or
--- a/lisp/emacs-lisp/testcover.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/testcover.el	Wed Apr 11 00:17:47 2007 +0000
@@ -190,7 +190,7 @@
 changes the instrumentation from edebug to testcover--much faster, no
 problems with type-ahead or post-command-hook, etc.  If BYTE-COMPILE is
 non-nil, byte-compiles each function after instrumenting."
-  (interactive "f")
+  (interactive "fStart covering file: ")
   (let ((buf                (find-file filename))
 	(load-read-function 'testcover-read)
 	(edebug-all-defs t))
@@ -428,10 +428,10 @@
 	  list)
     result))
 
-(defun testcover-end (buffer)
+(defun testcover-end (filename)
   "Turn off instrumentation of all macros and functions in FILENAME."
-  (interactive "b")
-  (let ((buf (find-file-noselect buffer)))
+  (interactive "fStop covering file: ")
+  (let ((buf (find-file-noselect filename)))
     (eval-buffer buf t)))
 
 
@@ -513,7 +513,7 @@
 (defun testcover-mark-all (&optional buffer)
   "Mark all forms in BUFFER that did not get completley tested during
 coverage tests.  This function creates many overlays."
-  (interactive "b")
+  (interactive "bMark forms in buffer: ")
   (if buffer
       (switch-to-buffer buffer))
   (goto-char 1)
@@ -523,7 +523,7 @@
 
 (defun testcover-unmark-all (buffer)
   "Remove all overlays from FILENAME."
-  (interactive "b")
+  (interactive "bUnmark forms in buffer: ")
   (condition-case nil
       (progn
 	(set-buffer buffer)
--- a/lisp/emacs-lisp/timer.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/timer.el	Wed Apr 11 00:17:47 2007 +0000
@@ -360,11 +360,16 @@
 (defun run-at-time (time repeat function &rest args)
   "Perform an action at time TIME.
 Repeat the action every REPEAT seconds, if REPEAT is non-nil.
-TIME should be a string like \"11:23pm\", nil meaning now, a number of seconds
-from now, a value from `current-time', or t (with non-nil REPEAT)
-meaning the next integral multiple of REPEAT.
-REPEAT may be an integer or floating point number.
-The action is to call FUNCTION with arguments ARGS.
+TIME should be one of: a string giving an absolute time like
+\"11:23pm\" (the acceptable formats are those recognized by
+`diary-entry-time'; note that such times are interpreted as times
+today, even if in the past); a string giving a relative time like
+\"2 hours 35 minutes\" (the acceptable formats are those
+recognized by `timer-duration'); nil meaning now; a number of
+seconds from now; a value from `encode-time'; or t (with non-nil
+REPEAT) meaning the next integral multiple of REPEAT.  REPEAT may
+be an integer or floating point number.  The action is to call
+FUNCTION with arguments ARGS.
 
 This function returns a timer object which you can use in `cancel-timer'."
   (interactive "sRun at time: \nNRepeat interval: \naFunction: ")
@@ -385,7 +390,7 @@
   (if (numberp time)
       (setq time (timer-relative-time (current-time) time)))
 
-  ;; Handle relative times like "2 hours and 35 minutes"
+  ;; Handle relative times like "2 hours 35 minutes"
   (if (stringp time)
       (let ((secs (timer-duration time)))
 	(if secs
--- a/lisp/emacs-lisp/warnings.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/warnings.el	Wed Apr 11 00:17:47 2007 +0000
@@ -218,8 +218,9 @@
 	      but raise suspicion of a possible problem.
 :debug     -- info for debugging only.
 
-BUFFER-NAME, if specified, is the name of the buffer for logging the
-warning.  By default, it is `*Warnings*'.
+BUFFER-NAME, if specified, is the name of the buffer for logging
+the warning.  By default, it is `*Warnings*'.  If this function
+has to create the buffer, it disables undo in the buffer.
 
 See the `warnings' custom group for user customization features.
 
@@ -227,16 +228,22 @@
 `warning-fill-prefix' for additional programming features."
   (unless level
     (setq level :warning))
+  (unless buffer-name
+    (setq buffer-name "*Warnings*"))
   (if (assq level warning-level-aliases)
       (setq level (cdr (assq level warning-level-aliases))))
   (or (< (warning-numeric-level level)
          (warning-numeric-level warning-minimum-log-level))
       (warning-suppress-p type warning-suppress-log-types)
       (let* ((typename (if (consp type) (car type) type))
-	     (buffer (get-buffer-create (or buffer-name "*Warnings*")))
+             (old (get-buffer buffer-name))
+	     (buffer (get-buffer-create buffer-name))
 	     (level-info (assq level warning-levels))
 	     start end)
 	(with-current-buffer buffer
+          ;; If we created the buffer, disable undo.
+          (unless old
+            (setq buffer-undo-list t))
 	  (goto-char (point-max))
 	  (when (and warning-series (symbolp warning-series))
 	    (setq warning-series
--- a/lisp/emulation/viper.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emulation/viper.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1027,14 +1027,46 @@
 
   (defadvice describe-key (before viper-describe-key-ad protect activate)
     "Force to read key via `viper-read-key-sequence'."
-    (interactive (list (viper-read-key-sequence "Describe key: "))
-		 ))
+    (interactive (let (key)
+		   (setq key (viper-read-key-sequence
+			      "Describe key (or click or menu item): "))
+		   (list key
+			 (prefix-numeric-value current-prefix-arg)
+			 ;; If KEY is a down-event, read also the
+			 ;; corresponding up-event.
+			 (and (vectorp key)
+			      (let ((last-idx (1- (length key))))
+				(and (eventp (aref key last-idx))
+				     (memq 'down (event-modifiers
+						  (aref key last-idx)))))
+			      (or (and (eventp (aref key 0))
+				       (memq 'down (event-modifiers
+						    (aref key 0)))
+				       ;; For the C-down-mouse-2 popup
+				       ;; menu, there is no subsequent up-event.
+				       (= (length key) 1))
+				  (and (> (length key) 1)
+				       (eventp (aref key 1))
+				       (memq 'down (event-modifiers (aref key 1)))))
+			      (read-event))))))
 
   (defadvice describe-key-briefly
     (before viper-describe-key-briefly-ad protect activate)
     "Force to read key via `viper-read-key-sequence'."
-    (interactive (list (viper-read-key-sequence "Describe key briefly: "))))
-
+    (interactive (let (key)
+		   (setq key (viper-read-key-sequence
+			      "Describe key (or click or menu item): "))
+		   ;; If KEY is a down-event, read and discard the
+		   ;; corresponding up-event.
+		   (and (vectorp key)
+			(let ((last-idx (1- (length key))))
+			  (and (eventp (aref key last-idx))
+			       (memq 'down (event-modifiers (aref key last-idx)))))
+			(read-event))
+		   (list key
+			 (if current-prefix-arg
+			     (prefix-numeric-value current-prefix-arg))
+			 1))))
 
   (defadvice find-file (before viper-add-suffix-advice activate)
     "Use `read-file-name' for reading arguments."
--- a/lisp/erc/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,259 @@
+2007-04-01  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-version-string): Release ERC 5.2.
+
+	* erc-auto.in, erc-chess.el, erc-list.el, erc-speak.el:
+	* erc-viper.el: Update copyright notices.
+
+	* erc.texi: Make Emacs Lisp source code in this document
+	essentially public domain.  Update version to 5.2.
+	(Obtaining ERC): Mention extras tarball.
+	(Releases): Mention local GNU mirror.
+	(Sample Configuration): Remove notice.
+
+	* FOR-RELEASE (5.3): Add item for erc-nicklist.
+	Mark NEWS as done.  Mark extras tarball as done.
+
+	* Makefile (VERSION): Increment to 5.2.
+	(TESTING): Remove.
+	(EXTRAS): New variable containing the contents of our "Emacs 22
+	extras" tarball.
+	(SOURCE): Remove $(TESTING).
+	(MISC): Add COPYING and ChangeLog.06.  Fix ChangeLog.NNNN ->
+	ChangeLog.NN.
+	(release): Use $(SNAPDIR) instead of erc-$(VERSION).
+	(extras): New rule which implements the building of the extras
+	tarball.
+	(upload-extras): New rule to upload the extras tarball.  It's
+	yucky to replicate upload, but oh well.
+
+	* NEWS: Mention extras tarball.  Note which files have been
+	renamed.  Note that erc-list is enabled by default, except in
+	Emacs 22.
+
+	* README.extras: New file which serves as a README for the extras
+	tarball.
+
+2007-03-31  Michael Olson  <mwolson@gnu.org>
+
+	* NEWS: Update for the 5.2 release.
+
+	* FOR-RELEASE: Finish up 5.2 manual item.  Add documentation item
+	for 5.3.
+
+	* erc.texi (Sample Session): Flesh out.  Mention #erc.
+	(Modules): Defer to 5.3 release.
+	(Advanced Usage): Move Sample Configuration chapter ahead of
+	unfinished chapters.
+	(Sample Configuration): Write.
+	(Options): Mention how to see available ERC options.  Defer to 5.3
+	release.
+	(Tips and Tricks): Remove, since it seems better to just include
+	tips and tricks in the sample configuration, commented out.
+
+	* erc-bbdb.el (erc-bbdb-search-name-and-create): Make prompt more
+	informative about how to skip merging.
+	(erc-bbdb-insinuate-and-show-entry-1): Move contents of
+	erc-bbdb-insinuate-and-show-entry here.
+	(erc-bbdb-insinuate-and-show-entry): Run
+	erc-bbdb-insinuate-and-show-entry-1 "outside" of the calling
+	function, so that we can avoid triggering a process-filter error
+	if the user hits C-g.
+
+2007-03-30  Michael Olson  <mwolson@gnu.org>
+
+	* FOR-RELEASE: Solve C-c C-SPC keybinding dilemma.
+
+	* erc-autoaway.el (erc-autoaway-idle-method): Use `if' rather than
+	`cond' and `set' rather than `set-default'.
+
+	* erc-log.el: Avoid compiler warning by requiring erc-network
+	during compilation.
+	(erc-generate-log-file-name-function): Add tag to each option.
+	Add erc-generate-log-file-name-network.
+	(erc-generate-log-file-name-network): New function which generates
+	a log file name that uses network name rather than server name,
+	when possible.
+
+	* erc-track.el (track): Assimilate track-when-inactive module,
+	since there's no need to have two modules in one file -- an option
+	will do.  Remove track-modified-channels alias.  Call
+	erc-track-minor-mode-maybe, and tear down the minor mode when
+	disabling.
+	(erc-track-when-inactive): New option which determines whether to
+	track visible buffers when inactive.  The default is not to do so.
+	(erc-track-visibility): Mention erc-track-when-inactive.
+	(erc-buffer-visible): Use erc-track-when-inactive.
+	(erc-track-enable-keybindings): New option which determines
+	whether to enable the global-level tracking keybindings.  The
+	default is to do so, unless they would override another binding,
+	in which case we prompt the user about it.
+	(erc-track-minor-mode-map): Move global keybindings here.
+	(erc-track-minor-mode): New minor mode which only enables the
+	keybindings and does nothing else.
+	(erc-track-minor-mode-maybe): New function which starts
+	erc-track-minor-mode, but only if it hasn't already been started,
+	an ERC buffer exists, and the user OK's it, depending on the value
+	of `erc-track-enable-keybindings'.
+	(erc-track-switch-buffer): Display a message if someone calls this
+	without first enabling erc-track-mode.
+
+2007-03-17  Michael Olson  <mwolson@gnu.org>
+
+	* erc.texi (Development): Mention ErcDevelopment page on
+	emacswiki.
+	(Getting Started): Mention ~/.emacs.d/.ercrc.el and the Customize
+	interface.
+	(Sample Session): New section that has a very rough draft for a
+	sample ERC session.
+	(Special Features): New section that explains some of the special
+	features of ERC.  Taken from ErcFeatures on emacswiki, with
+	enhancements.
+
+2007-03-12  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-autoaway.el (erc-autoaway-idle-method): When setting the new
+	value, disable and re-enable `erc-autoaway-mode' only if it was
+	already enabled.  This fixes a bug where autoaway was enabled just
+	by loading the file.
+
+2007-03-10  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-capab.el: Added more information to the Usage section.
+	(erc-capab-identify-prefix): Doc fix.
+	(erc-capab-identify-unidentified): New face.
+	(290): Removed.  Definition moved to erc-backend.el.
+	(erc-capab-identify-send-messages): Renamed from
+	`erc-capab-send-identify-messages'.
+	(erc-capab-identify-setup): Use it.
+	(erc-capab-identify-get-unidentified-nickname): Renamed from
+	`erc-capab-get-unidentified-nickname'.
+	(erc-capab-identify-add-prefix): Use it.  Use
+	`erc-capab-identify-unidentified' as the face.
+
+	* erc-backend.el (290): Moved here from erc-capab.el.
+
+	* erc.el (erc-select): Added an autoload cookie.
+	(erc-message-type-member, erc-restore-text-properties): Use
+	`erc-get-parsed-vector'.
+	(erc-auto-query): Set the default to 'bury since many new users
+	expect private messages from others to be in dedicated query
+	buffers, not the server buffer.
+	(erc-common-server-suffixes): Use "freenode" for freenode.net, not
+	"OPN".  Added oftc.net.
+
+	* NEWS: Added note about erc-auto-query's new default setting.
+
+2007-03-03  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-open, erc): Docfixes.
+
+2007-03-02  Michael Olson  <mwolson@gnu.org>
+
+	* FOR-RELEASE: Make section for 5.3 release and move erc-backend
+	cleanup there.  Awaiting discussion before doing other things.
+	Add tasks for merging filename changes from the 5.2 release
+	branch, and for making a tarball of modules not in Emacs 22.  Add
+	item to remind me to update NEWS.  Mark backtab entry as done.
+
+	* erc-button.el (button): Add call to `erc-button-add-keys'.
+	(erc-button-keys-added): New variable tracking whether we've added
+	the keys yet.
+	(erc-button-add-keys): New function that adds the <backtab> key to
+	erc-mode-map.
+
+	* erc.texi: Change version to 5.2 (pre-release).
+
+2007-02-15  Michael Olson  <mwolson@gnu.org>
+
+	* CREDITS: Update.
+
+	* erc-backend.el (erc-server-send-ping-interval): Change to use a
+	default of 30 seconds.  Improve customize interface.
+	(erc-server-send-ping-timeout): New option that determines when to
+	consider a connection stalled and restart it.  The default is
+	after 120 seconds.
+	(erc-server-send-ping): Use erc-server-send-ping-timeout instead
+	of erc-server-send-ping-interval.  If
+	erc-server-send-ping-timeout is nil, do not ever kill and restart
+	a hung IRC process.
+
+	* erc.el (erc-modules): Include the name of the module in its
+	description.  This should make it easier for people to find and
+	enable a particular module.
+
+2007-02-15  Vivek Dasmohapatra  <vivek@etla.org>
+
+	* erc.el (erc-cmd-RECONNECT): Kill old process if it is still
+	alive.
+	(erc-message-english-PART): Properly escape "%" characters in
+	reason.
+
+	* erc-backend.el (erc-server-reconnecting): New variable that is
+	set when the user requests a reconnect, but the old process is
+	still alive.  This forces the reconnect to work even though the
+	process is killed manually during reconnect.
+	(erc-server-connect): Initialize it.
+	(erc-server-reconnect-p): Use it.
+	(erc-process-sentinel-1): Set it to nil after the first reconnect
+	attempt.
+
+2007-02-07  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-menu.el (erc-menu-definition): Fixed so that the separator
+	is between "Current channel" and "Pals, fools and other keywords",
+	not at the bottom of the "Current channel" submenu.
+
+2007-01-25  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-networks.el (erc-server-alist): Removed SSL server for now
+	since `erc-server-select' doesn't know to use `erc-ssl'.
+
+	* erc-networks.el (erc-server-alist, erc-networks-alist): Added
+	definitions for oftc.net.
+
+	* erc-services.el (erc-nickserv-alist): Fixed OFTC message regexp.
+
+2007-01-22  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-server-error-occurred): New variable that
+	indicates when an error has been signaled by the server.  This
+	should fix an infinite reconnect bug when giving some servers a
+	bogus :full-name.  Thanks to Angelina Carlton for the report.
+	(erc-server-connect): Initialize erc-server-error-occurred.
+	(erc-server-reconnect-p): Use it.
+	(ERROR): Set it.
+
+	* erc-services.el (erc-nickserv-alist): Alphabetize and add Ars
+	and QuakeNet.  Standardize look of entries.  Fix type mismatch
+	error in customize interface.
+	(erc-nickserv-passwords): Alphabetize and add missing entries from
+	erc-nickserv-alist.
+
+2007-01-21  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-header-line-format): Document how to disable the
+	header line, and add a customization type for it.  Also, make the
+	changes take effect immediately.
+
+2007-01-19  Michael Olson  <mwolson@gnu.org>
+
+	* erc.texi (Modules): Document new menu module.  Thanks to Leo
+	for noticing.
+
+2007-01-16  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-stamp.el (erc-insert-timestamp-left): Fixed so that the
+	whitespace string filler is hidden correctly when timestamps are
+	hidden.
+	(erc-toggle-timestamps): New function to use instead of
+	`erc-show-timestamps' and `erc-hide-timestamps'.
+
+	* erc.el (erc-restore-text-properties): Moved here from
+	erc-fill.el since it could be useful in general.
+
+	* erc-fill.el (erc-restore-text-properties): Removed.
+
 2007-01-13  Michael Olson  <mwolson@gnu.org>
 
 	* erc.el (erc-command-regexp): New variable that is used to match
@@ -73,6 +329,10 @@
 	(erc-format-lag-time): New function.
 	(erc-update-mode-line-buffer): Use it.
 
+2007-01-10  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el: Fix typo in url-irc-function instructions.
+
 2007-01-09  Michael Olson  <mwolson@gnu.org>
 
 	* erc.el (erc-system-name): New option that determines the system
@@ -89,1260 +349,10 @@
 	(erc-menu-add, erc-menu-remove): New functions that add and remove
 	the ERC menu.
 
-2006-12-28  Michael Olson  <mwolson@gnu.org>
-
-	* erc-list.el: Change header to mention that this is part of ERC,
-	rather than GNU Emacs.
-
-	* erc-networks.el (erc-server-alist): Add Ars OpenIRC and
-	LinuxChix networks.  Thanks to Angelina Carlton for mentioning
-	them.  Properly escape periods in Konfido.Net and Kewl.Org.
-	(erc-networks-alist): Add entries for Ars and LinuxChix, though
-	the latter does not actually provide an announced network name.
-
-	* erc-services.el (erc-nickserv-identify-mode): Add 'both method,
-	which waits for a NickServ message if the network supports it,
-	otherwise sends the password after connecting.
-	(erc-nickserv-identify-mode): Default to 'both.
-	(erc-nickserv-passwords): Add OFTC and Azzurra to custom options.
-	(erc-nickserv-alist): Indentation fix.
-	(erc-nickserv-identify-on-connect)
-	(erc-nickserv-identify-on-nick-change): Handle 'both method.
-
-2006-12-28  Leo  <sdl.web@gmail.com>  (tiny change)
-
-	* erc.el (erc-iswitchb): Wrap body in unwind-protect so that
-	hitting C-g does not leave iswitchb-mode on.
-
-2006-12-27  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-cmd-RECONNECT): New command that calls
-	erc-server-reconnect.
-
-	* erc-backend.el (erc-server-reconnect-count): New server variable
-	that keeps track of reconnection attempts.
-	(erc-server-reconnect-attempts): New option that determines the
-	number of reconnection attempts that ERC will make per server.
-	(erc-server-reconnect-timeout): New option that determines the
-	amount of time, in seconds, that ERC will wait between successive
-	reconnect attempts.
-	(erc-server-reconnect): New function that reestablishes the
-	current IRC connection.  Move some commands from
-	erc-process-sentinel-1 here.
-	(erc-process-sentinel-1): If we have been disconnected, loop until
-	we either reconnect or run out of attempts.
-	(erc-server-reconnect-p): Move higher and make this a defsubst,
-	since I'm worried about the current buffer changing from
-	underneath us.  Implement limit of number of reconnect attempts..
-
-	* erc.texi (Getting Started): Update for /RECONNECT command.
-
-2006-12-26  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-open): Restore old point correctly, or at least get
-	closer to doing so than before.
-
-2006-12-13  Leo  <sdl.web@gmail.com>  (tiny change)
-
-	* erc.el (erc-iswitchb): Temporarily enable iswitchb mode if it
-	isn't active already, instead of leaving it on.
-
-2006-12-10  Juanma Barranquero  <lekktu@gmail.com>
-
-	* erc-ezbounce.el (erc-ezb-init-session-list): Doc fix.
-
-2006-12-08  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el: Re-evaluate contributions from a contributor, and found
-	them under 15 lines of non-obvious code, so it is safe to remove
-	the copyright notice.
-	(erc-modules): Remove list module.
-
-	* erc-list.el: Remove, since a contributor who has not completed
-	their assignment has contributed significantly more than 15 lines
-	of code to this file.
-
-2006-11-28  Juanma Barranquero  <lekktu@gmail.com>
-
-	* erc.el (erc-cmd-BANLIST, erc-cmd-MASSUNBAN): Simplify.
-	(erc-prompt-for-channel-key, erc-ignore-reply-list, erc-send-post-hook)
-	(erc-active-buffer, erc-join-buffer, erc-frame-alist, erc-with-buffer)
-	(erc-modules, erc-display-message-highlight, erc-process-input-line)
-	(erc-cmd-HELP, erc-server-hooks, erc-echo-notice-in-user-buffers)
-	(erc-format-my-nick, erc-echo-notice-in-user-and-target-buffers)
-	(erc-echo-notice-in-first-user-buffer, erc-connection-established)
-	(erc-update-user-nick, erc-update-channel-member, erc-highlight-notice)
-	(erc-command-symbol, erc-add-query, erc-process-script-line)
-	(erc-determine-parameters, erc-client-info, erc-popup-input-buffer):
-	(erc-script-echo): Fix typos in docstrings.
-	(erc-channel-user-op-p, erc-channel-user-voice-p, erc-startup-file-list)
-	(define-erc-module, erc-once-with-server-event)
-	(erc-once-with-server-event-global, erc-debug-irc-protocol)
-	(erc-log-irc-protocol, erc-cmd-LOAD, erc-update-user)
-	(erc-update-current-channel-member, erc-load-script):
-	(erc-mode-line-away-status-format): Doc fixes.
-
-2006-11-20  Andrea Russo  <rastandy@inventati.org>  (tiny change)
-
-	* erc-dcc.el (erc-dcc-chat-setup): Initialize `erc-input-marker'
-	before calling `erc-display-prompt'.
-
-2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
-
-	* erc.el (erc-after-connect, erc-open-ssl-stream)
-	(erc-display-line-1, erc-display-line):
-	* erc-backend.el (005): Fix space/tab mixup in docstrings.
-
-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.
-
-	* erc.el (read-passwd):
-	* 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-10-01  John J Foerch  <jjfoerch@earthlink.net>  (tiny change)
-
-	* erc-stamp.el (erc-insert-timestamp-right): Exclude the newline
-	from the erc-timestamp field.
-
-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>  (tiny change)
-
-	* 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-20  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-backend.el (erc-process-sentinel-1): Doc fix.  Let
-	`erc-server-reconnect-p' check all condition cases.
-	(erc-server-reconnect-p): Moved rest of checks from
-	`erc-process-sentinel-1' to here.  Now takes an argument, EVENT.
-
-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-20  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-with-server-buffer): New macro that switches to the
-	current ERC server buffer and runs some code.  If no server buffer
-	is available, return nil.  This is a useful way to access
-	variables in the server buffer.
-	(erc-open-server-buffer-p): New function that returns non-nil if
-	the given buffer is an ERC server buffer that has an open IRC
-	process.
-
-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.
-
-	* erc-backend.el (erc-server-banned): New variable.
-	(erc-server-connect): Set `erc-server-banned' to nil.
-	(erc-process-sentinel-1): Use `erc-server-reconnect-p'.
-	(erc-server-reconnect-p): New function.  Return non-nil if the
-	user wants automatic reconnects and if the user has not been
-	banned from the server.  This should fix a bug where ERC gets into
-	a loop trying to reconnect with no way to stop it when the user is
-	denied access to the server due to a server ban.  It might also
-	help when Tor users are blocked from freenode if freenode servers
-	send the 465 message before disconnecting.
-	(465): Handle "banned from server" error notices.
-
-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
-	in several places instead of inserting text.
-	(erc-process-sentinel): Move to the input-marker before removing
-	the prompt.
-
-	* erc.el (erc-port): Fix customization options.
-	(erc-display-message): Handle null type explicitly.  Previously,
-	this was relying on a chance side-effect.  Cosmetic indentation
-	tweak.
-	(english): Add 'finished and 'terminated entries to the catalog.
-	Add initial and terminal newlines to 'disconnected and
-	'disconnected-noreconnect entries.  Avoid long lines.
-
-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.
-
-2006-08-05  Michael Olson  <mwolson@gnu.org>
-
-	* erc-log.el (erc-log-standardize-name): New function that returns
-	a filename that is safe for use for a log file.
-	(erc-current-logfile): Use it.
-
-	* erc.el (erc-startup-file-list): Search in ~/.emacs.d first,
-	since that is a fairly standard directory.
-	(erc-select-startup-file): Re-write to use
-	convert-standard-filename, which will ensure that MS-DOS systems
-	look for the _ercrc.el file.
-
-2006-08-02  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-version-string): Release ERC 5.1.4.
-
-	* Makefile, NEWS, erc.texi: Update for the 5.1.4 release.
-
-	* erc.el (erc-active-buffer): Fix bug that caused messages to go
-	to the wrong buffer.  Thanks to offby1 for the report.
-
-	* erc-backend.el (erc-coding-system-for-target): Handle case where
-	target is nil.  Thanks to Kai Fan for the patch.
-
-2006-07-29  Michael Olson  <mwolson@gnu.org>
-
-	* erc-log.el (erc-log-setup-logging): Don't offer to save the
-	buffer.  It will be saved automatically killed.  Thanks to Johan
-	Bockgård and Tassilo Horn for pointing this out.
-
-2006-07-27  Johan Bockgård  <bojohan@users.sourceforge.net>
-
-	* erc.el (define-erc-module): Make find-function and find-variable
-	find the names constructed by `define-erc-module' in Emacs 22.
-
-2006-07-14  Michael Olson  <mwolson@gnu.org>
-
-	* erc-log.el (log): Make sure that we enable logging on
-	already-opened buffers as well, in case the user toggles this
-	module after loading ERC.  Also be sure to remove logging ability
-	from all ERC buffers when the module is disabled.
-	(erc-log-setup-logging): Set buffer-file-name to nil rather than
-	the empty string.  This should fix some errors that occur when
-	quitting Emacs without first killing all ERC buffers.
-	(erc-log-disable-logging): New function that removes the logging
-	ability from the current buffer.
-
-	* erc-spelling.el (spelling): Use dolist and buffer-live-p.
-
-2006-07-12  Michael Olson  <mwolson@gnu.org>
-
-	* erc-match.el (erc-log-matches): Bind inhibit-read-only rather
-	than call toggle-read-only.
-
-	* erc.el (erc-handle-irc-url): Move here from erc-goodies.el and
-	add autoload cookie.
-
-2006-07-09  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-version-string): Release ERC 5.1.3.
-
-	* erc.texi: Update for the 5.1.3 release.
-
-	* erc-autoaway.el (erc-autoaway-set-back): Fix bug after returning
-	from being set automatically away and current buffer is not an ERC
-	buffer.
-
-	* erc-identd.el: Fix compiler error.
-
-	* erc.texi (Development): Use @subheading instead of @subsection.
-	(Advanced Usage): Add menu.
-	(Connecting): Fully document how to connect to an IRC server.
-	(Options, Tips and Tricks, Sample Configuration): New unwritten
-	sections.
-
-	* erc.el (erc-server, erc-port, erc-nick, erc-nick-uniquifier)
-	(erc-user-full-name, erc-password): Docfixes and customization
-	interface tweaks.
-	(erc-try-new-nick-p): Rename from
-	`erc-manual-set-nick-on-bad-nick-p' and invert meaning.
-	(erc-nickname-in-use): Use `erc-try-new-nick-p'.  Check the length
-	of `erc-nick-uniquifier', in case someone wants multiple
-	characters.
-	(erc-compute-server, erc-compute-nick, erc-compute-full-name)
-	(erc-compute-port): Docfixes.
-
-	* erc-log.el (log): Move all add-hook calls here, rather than
-	executing them immediately, and also cause them to be un-hooked
-	when the module is removed.
-	(erc-save-buffer-on-part): Move next to
-	`erc-save-queries-on-quit'.
-	(erc-save-buffer-on-quit, erc-save-queries-on-quit): Default to t.
-	(erc-log-write-after-send, erc-log-write-after-insert): Default to
-	nil.  This makes things fast, but reasonably failsafe, by default.
-
-2006-07-08  Michael Olson  <mwolson@gnu.org>
-
-	* erc-log.el (erc-log-insert-log-on-open): Make this nil by
-	default, since most IRC clients don't do this.
-	(erc-log-write-after-send): New option that determines whether the
-	log file will be written to after every sent message.
-	(erc-log-write-after-insert): New option that determines whether
-	the log file will be written to when new text is added to a logged
-	ERC buffer.
-	(log): Use the aforementioned options.
-
-	* erc.texi (Modules): Document the "completion" module.
-
-	* erc-pcomplete.el (pcomplete-erc-nicks): Make sure that we don't
-	have a nil element in the list when ignore-self is non-nil.
-
-2006-07-05  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-modules): Add the `page' module to the list.
-
-	* erc.texi (Modules): Add entries for `list' and `page' modules.
-	Change "spell" to "spelling".
-	(History): Use past tense throughout.
-
-2006-07-02  Michael Olson  <mwolson@gnu.org>
-
-	* erc-backend.el (erc-call-hooks): Fix (stringp nil) error that
-	can happen when doing /PART.
-
-	* erc.el (erc-quit-reason-various-alist)
-	(erc-part-reason-various-alist): In the example, use "^$" as an
-	example, since "" matches anything.
-	(erc-quit-reason-various, erc-part-reason-various): If no argument
-	is given, and no matches are found, use our default reason instead
-	of "nil".
-
-2006-06-30  Michael Olson  <mwolson@gnu.org>
-
-	* erc.texi (Modules): Mention identd.
-	(Releases): Update mailing list address and download location.
-	(Development): Refactor.  Provide updated directions for Arch.
-	Make URLs clickable.
-	(Keystroke Summary): Typo fix.  Use more Texinfo syntax.
-	(Getting Started): Give simpler example.  We do not need to
-	explicitly load every module.
-	(History): Update.
-
-	* erc.el (erc-version-modules): Remove, since we do not use this
-	function anymore.
-	(erc-latest-version, erc-ediff-latest-version): Remove, since this
-	was only useful back when ERC consisted of one file.
-	(erc-modules): Add line for identd.
-	(erc-get-channel-mode-from-keypress): Typo fix.
-
-	* erc-imenu.el: Remove unnecessary lines in header.
-
-	* erc-goodies.el (erc-handle-irc-url): Docfix.
-
-	* erc-identd.el: Define an ERC module for this.
-	(erc-identd-start): Don't create a process buffer if possible.
-	Otherwise, use conventional hidden names for process buffers.
-
-2006-06-29  Michael Olson  <mwolson@gnu.org>
-
-	* erc-backend.el (erc-coding-system-for-target): Match
-	case-insensitively.  Use a pattern match instead of `assoc', as
-	per the documentation for `erc-encoding-coding-alist'.
-
-	* erc-track.el (erc-track-shorten-aggressively): Fix typo.
-
-2006-06-27  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el: Update maintainer information and URLs.
-
-2006-06-14  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-active-buffer): If the active buffer has been
-	deleted, default to the server buffer.
-	(erc-toggle-flood-control): When the user hits C-c C-f, make flood
-	control really toggle, not unconditionally turn off.
-
-2006-06-12  Michael Olson  <mwolson@gnu.org>
-
-	* NEWS: Add items since the 5.1.2 release.
-
-	* erc-autoaway.el (erc-autoaway-caused-away): New variable that
-	indicates whether the current away status was caused by this
-	module.
-	(erc-autoaway-set-back): Only set back if this module set the user
-	away.
-	(erc-autoaway-set-away): Update `erc-autoaway-caused-away'.
-	(erc-autoaway-reset-indicators): New function that resets some
-	indicators when the user is no longer away.
-	(autoaway): Add the above function to the 305 hook.
-
-2006-06-05  Romain Francoise  <romain@orebokech.com>
-
-	* erc.texi (History): Fix various typos.
-
-2006-06-04  Michael Olson  <mwolson@gnu.org>
-
-	* erc-autoaway.el (erc-autoaway-idle-method): Move after the
-	definition of the autoaway module.
-	(autoaway): Don't do anything if erc-autoaway-idle-method is
-	unbound.  This prevents an error on startup.
-
-2006-06-03  Michael Olson  <mwolson@gnu.org>
-
-	* erc-autoaway.el: Thanks to Mark Plaksin for the ideas and patch.
-	(erc-autoaway-idle-method): Renamed from
-	`erc-autoaway-use-emacs-idle'.  We have more than two choices for
-	how to do this, so it's best to make this take symbol values.
-	Improve documentation.  Remove warning against Emacs idle-time;
-	the point is moot now that we get user idle time via a different
-	method.  Make sure we disable and re-enable the module when
-	changing this value.
-	(autoaway): Conditionalize on the above option.  If using the idle
-	timer or user idle methods, don't add anything to the
-	send-completed or server-001 hooks, since it is unnecessary.
-	(erc-autoaway-reestablish-idletimer, erc-autoaway-message):
-	Docfix.
-	(erc-autoaway-idle-seconds): Use erc-autoaway-idle-method.
-	(erc-autoaway-reset-idle-irc): Renamed from
-	`erc-autoaway-reset-idle'.  Don't pass line to
-	`erc-autoaway-set-away', since it is not used.
-	(erc-autoaway-reset-idle-user): New function that resets the idle
-	state for user idle time.
-	(erc-autoaway-set-back): Remove line argument, since it is not
-	used.
-
-2006-06-01  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-buffer-filter): Make sure all buffers returned from
-	this are live.
-
-2006-05-01  Edward O'Connor  <ted@oconnor.cx>
-
-	* erc-goodies.el (erc-handle-irc-url): New function, suitable as
-	a value for `url-irc-function'.
-
-2006-04-18  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-pcomplete.el (pcomplete-erc-nicks): Added new optional
-	argument IGNORE-SELF.  If this is non-nil, don't return the user's
-	current nickname.  Doc fix.
-	(pcomplete/erc-mode/complete-command): Don't complete the current
-	nickname.
-
-2006-04-05  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc.el (erc-cmd-SV): Removed the exclamation point.  Show the
-	build date as it's shown in `emacs-version'.
-
-	* erc-capab.el (erc-capab-identify-add-prefix): Insert the prefix
-	with the same face property as the previous character.
-
-2006-04-02  Michael Olson  <mwolson@gnu.org>
-
-	* erc-backend.el, erc-ezbounce.el, erc-join.el, erc-netsplit.el,
-	erc.el: Make sure to include a newline inside of negated classes,
-	so that a newline is not matched.
-
-2006-04-01  Michael Olson  <mwolson@gnu.org>
-
-	* erc-backend.el (erc-server-connect-function): Don't try to
-	detect the existence of the `open-network-stream-nowait' function,
-	since I can't find it in Emacs21, XEmacs21, or Emacs22.
-
-2006-03-26  Michael Olson  <mwolson@gnu.org>
 
-	* erc.el (erc-header-line): New face that will be used to colorize
-	the text of the header-line, provided that
-	`erc-header-line-face-method' is non-nil.
-	(erc-prompt-face): Fix formatting.
-	(erc-header-line-face-method): New option that determines the
-	method used for colorizing header-line text.  This may be a
-	function, nil, or non-nil.
-	(erc-update-mode-line-buffer): Use the aforementioned option and
-	face to colorize the header-line text, if that is what the user
-	wants.
-	(erc-send-input): If flood control is not activated, don't split
-	the input line.
-
-2006-03-25  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-cmd-QUOTE): Install patch from Aravind Gottipati
-	that fixes the case where there is no leading whitespace.  Only
-	remove the first space character, though.
-
-	* erc-identd.el (erc-identd-start): Fix a bug by making sure that
-	erc-identd-process is set properly.
-	(erc-identd-start, erc-identd-stop): Add autoload cookies.
-	(erc-identd-start): Pass :host parameter so this works with Emacs
-	22.
-
-2006-03-09  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-button.el (erc-button-keymap): Use <backtab> rather than
-	<C-tab> for `erc-button-previous' as it is a more standard key
-	binding for this type of function.
-
-2006-02-28  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-capab.el: Removed things that were accidentally committed on
-	2006-02-20.  Removed Todo section.
-	(erc-capab-unidentified): Removed.
-
-2006-02-26  Michael Olson  <mwolson@gnu.org>
-
-	* erc-capab.el: Use (eval-when-compile (require 'cl)).
-	(erc-capab-unidentified): Fix compiler warning by specifying
-	group.
-
-2006-02-20  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-capab.el (erc-capab-send-identify-messages): Fixed comment
-	to explain thoughts better.  `erc-server-parameters' is an
-	associated list when it's set, not a string.
-
-2006-02-19  Michael Olson  <mwolson@gnu.org>
-
-	* erc-capab.el (erc-capab-send-identify-messages): Make sure some
-	parameters are strings before using them.  Thanks to Alejandro
-	Benitez for the report.
-
-	* erc.el (erc-version-string): Release ERC 5.1.2.
-
-2006-02-19  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-button.el (erc-button-keymap): Bind `erc-button-previous' to
-	<C-tab>.
-	(erc-button-previous): New function.
-
-2006-02-15  Michael Olson  <mwolson@gnu.org>
-
-	* NEWS: Add category for ERC 5.2.
-
-	* erc.el (erc): Move to the end of the buffer when a continued
-	session is detected.  Thanks to e1f and indio for the report and
-	testing a potential fix.
-
-2006-02-14  Michael Olson  <mwolson@gnu.org>
-
-	* debian/changelog: Prepare a new Debian package.
-
-	* Makefile (debprepare): New rule that creates an ERC snapshot
-	directory for use in both new Debian releases and revisions for
-	Debian packages.
-	(debrelease, debrevision-mwolson): Use debprepare.
-
-	* NEWS: Bring up-to-date.
-
-	* erc-stamp.el (erc-insert-timestamp-right): For now, put
-	timestamps before rather than after erc-fill-column when
-	erc-timestamp-right-column is nil.  This way we won't surprise
-	anyone unpleasantly, or so it is hoped.
-
-2006-02-13  Michael Olson  <mwolson@gnu.org>
-
-	* erc-dcc.el: Use (eval-when-compile (require 'cl)).
-
-2006-02-12  Michael Olson  <mwolson@gnu.org>
-
-	* erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el
-	* erc-goodies.el, erc-hecomplete.el, erc-ibuffer.el, erc-identd.el
-	* erc-imenu.el, erc-join.el, erc-lang.el, erc-list.el, erc-log.el
-	* erc-match.el, erc-menu.el, erc-netsplit.el, erc-networks.el
-	* erc-notify.el, erc-page.el, erc-pcomplete.el, erc-replace.el
-	* erc-ring.el, erc-services.el, erc-sound.el, erc-speedbar.el
-	* erc-spelling.el, erc-track.el, erc-truncate.el, erc-xdcc.el:
-	Add 2006 to copyright years, to comply with the changed guidelines.
-
-2006-02-11  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-update-modules): Handle erc-capab-identify
-	correctly.  Make some requirements shorter, so that it's easier to
-	see why they are needed.
-
-	* erc-capab.el: Add autoload cookie for capab-identify.
-	(erc-capab-send-identify-messages, erc-capab-identify-activate):
-	Minor whitespace fix in code.
-
-	* erc-stamp.el (erc-timestamp-use-align-to): Renamed from
-	`erc-timestamp-right-align-by-pixel'.  Set the default based on
-	whether we are in Emacs 22, and using X.  Improve documentation.
-	(erc-insert-aligned): Remove calculation of offset, since
-	:align-to pos works after all.  Unlike the previous solution, this
-	one works when erc-stamp.el is compiled.
-	(erc-insert-timestamp-right): Don't add length of string, and then
-	later remove its displayed width.  This puts timestamps after
-	erc-fill-column when erc-timestamp-right-column is nil, rather
-	than before it.  It also fixes a subtle bug.  Remove use of
-	`current-window', since there is no variable by that name in
-	Emacs21, Emacs22, or XEmacs21 beta.  Check to see whether
-	`erc-fill-column' is non-nil before using it.
-
-2006-02-11  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-list.el: Define `list' module which sets the alias
-	`erc-cmd-LIST' to `erc-list-channels' when enabled and
-	`erc-list-channels-simple' when disabled.
-	(erc-list-channels): Was `erc-cmd-LIST', renamed.
-	(erc-list-channels-simple): New function.
-
-	* erc.el (erc-modules): Added `list' to enabled modules.  Changed
-	`capab-identify' description.  Moved customization options left in
-	source code.
-
-	* erc-menu.el (erc-menu-definition): Use `erc-list-channels'.
-
-	* erc-capab.el: Put a little more detail into Usage section.
-	(define-erc-module): Run `erc-capab-identify-setup' in all open
-	server buffers when enabling.
-	(erc-capab-identify-setup): Make PROC and PARSED optional
-	arguments.
-	(erc-capab-identify-add-prefix): Simplified nickname regexp.  This
-	should now also match nicknames that are formatted differently
-	than the default.
-
-	* erc-spelling.el (define-erc-module): Make sure there's a buffer
-	before calling `with-current-buffer'.
-
-2006-02-10  Michael Olson  <mwolson@gnu.org>
-
-	* Makefile (debbuild): Split from debrelease.
-	(debrevision-mwolson): New rule that causes a Debian revision to
-	be built.
-
-	* erc.el (erc-migrate-modules): Use a better algorithm.  Thanks to
-	Johan Bockgård.
-	(erc-modules): Change use of 'pcomplete to 'completion.
-
-2006-02-09  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc.el (erc-get-parsed-vector, erc-get-parsed-vector-nick)
-	* erc-capab.el: Require erc.
-	(erc-capab-send-identify-messages): Use `erc-server-send'.
-	(erc-capab-identify-remove/set-identified-flag): Use 1 and 0 as
-	the flags so we can also check whether the `erc-identified' text
-	property is there at all.
-	(erc-capab-identify-add-prefix): Use `erc-capab-find-parsed'.
-	This fixes a bug where the prefix wasn't inserted when timestamps
-	are inserted on the right.  Tweaked nickname regexp.
-	(erc-capab-find-parsed): New function.
-	(erc-capab-get-unidentified-nickname): Updated to check for 0
-	flag.  Only get nickname if there's a nickuserhost associated with
-	this message.
-
-	* erc-capab.el: New file.  Adds the new module
-	`erc-capab-identify', which allows flagging of unidentified users
-	on servers running an ircd based on dancer - irc.freenode.net, for
-	example.
-
-	* erc.el (erc-modules): Added `capab-identify' to options.
-	(erc-get-parsed-vector, erc-get-parsed-vector-nick)
-	(erc-get-parsed-vector-type): Moved here from erc-match.el.
-
-	* erc-match.el (erc-get-parsed-vector, erc-get-parsed-vector-nick)
-	(erc-get-parsed-vector-type): Moved these functions to erc.el
-	since they can be useful outside of the text matching module.
-
-	* NEWS: Added erc-capab.el.
-
-	* erc-dcc.el, erc-stamp.el, erc-xdcc.el: Changed "Emacs IRC Client"
-	to "ERC".
-
-2006-02-07  Michael Olson  <mwolson@gnu.org>
-
-	* ChangeLog.01, ChangeLog.02, ChangeLog.03, ChangeLog.04,
-	ChangeLog.05: Rename from ChangeLog.NNNN in order to disambiguate
-	the filenames in DOS.
-
-	* erc-goodies.el: Comment fix.
-
-	* erc-hecomplete.el: Rename from erc-complete.el.  Update
-	commentary.  Use define-erc-module so that it's possible to
-	actually use this.
-	(erc-hecomplete): Rename function from `erc-complete'.
-	(erc-hecomplete): Rename group from `erc-old-complete'.  Docfix.
-
-	* erc-join.el: Rename from erc-autojoin.el.
-
-	* erc-networks.el: Rename from erc-nets.el.
-
-	* erc-services.el: Rename from erc-nickserv.el.
-
-	* erc-stamp.el (erc-insert-aligned): Don't take 3rd argument.  Use
-	the simpler `indent-to' function when
-	`erc-timestamp-right-align-by-pixel' is nil.
-	(erc-insert-timestamp-right): If the timestamp goes on the
-	following line, don't add timestamp properties to the spaces in
-	front of it.
-
-	* erc.el (erc-migrate-modules): New function that eases migration
-	of module names.
-	(erc-modules): Call erc-migrate-modules in the :get accessor.
-	(erc-modules, erc-update-modules): Update for new modules names.
-	(erc-cmd-SMV): Remove, since this does not give useful output due
-	to the version strings being removed from ERC modules.
-
-2006-02-05  Michael Olson  <mwolson@gnu.org>
-
-	* erc-spelling.el (erc-spelling-init): If
-	`erc-spelling-dictionaries' is nil, do not set
-	ispell-local-dictionary.  Before, it was being set to nil, which
-	was causing a long delay while the ispell process restarted.
-	(erc-spelling-unhighlight-word): New function that removes
-	flyspell properties from a spell-checked word.
-	(erc-spelling-flyspell-verify): Don't spell-check nicks or words
-	that have '/' before them.
-
-2006-02-04  Michael Olson  <mwolson@gnu.org>
-
-	* erc-autojoin.el: Use (eval-when-compile (require 'cl)).
-
-	* erc-complete.el (erc-nick-completion-exclude-myself)
-	(erc-try-complete-nick): Use better function for getting list of
-	channel users.
-
-	* erc-goodies.el: Docfix.
-
-	* erc-stamp.el: Use new arch tagline, since the other one wasn't
-	being treated properly.
-
-	* erc.el (erc-version-string): Release ERC 5.1.1.
-
-2006-02-03  Zhang Wei  <id.brep@gmail.com>
-
-	* erc.el (erc-version-string): Don't hard-code Emacs version.
-	(erc-version): Use emacs-version.
-
-2006-01-31  Michael Olson  <mwolson@gnu.org>
-
-	* erc-stamp.el: Update copyright years.
-
-2006-01-30  Simon Josefsson  <jas@extundo.com>
-
-	* erc.el (erc-open-ssl-stream): Use tls.el.
-
-2006-01-30  Michael Olson  <mwolson@gnu.org>
-
-	* erc-stamp.el (erc-timestamp-right-align-by-pixel): New option
-	that determines whether to use pixel values to align right
-	timestamps.  The default is not to do so, since it only works with
-	Emacs22 on X, and even then some people have trouble.
-	(erc-insert-aligned): Use `erc-timestamp-right-align-by-pixel'.
-
-2006-01-29  Michael Olson  <mwolson@gnu.org>
-
-	* ChangeLog, ChangeLog.2005, ChangeLog.2004, ChangeLog.2003,
-	ChangeLog.2002, ChangeLog.2001: Add "See ChangeLog.NNNN" line for
-	earlier changes.  Use utf-8 encoding.  Fix some accent typos.
-
-	* erc-speedbar.el (erc-speedbar-buttons): Fix reference to free
-	variable.
-	(erc-speedbar-goto-buffer): Fix compiler warning.
-
-	* erc-ibuffer.el: Use `define-ibuffer-filter' instead of
-	`ibuffer-degine-limiter'.  Use `define-ibuffer-column' instead of
-	`ibuffer-define-column'.  Require 'ibuf-ext so that the macros
-	work without compiler warnings.
-
-	* man/erc.texi (Obtaining ERC, Installation): Note that these
-	sections may be skipped if using the version of ERC that comes
-	with Emacs.
-
-2006-01-29  Edward O'Connor  <ted@oconnor.cx>
-
-	* erc-viper.el: Remove.  Now that ERC is included in Emacs, these
-	work-arounds live in Viper itself.
-
-2006-01-28  Michael Olson  <mwolson@gnu.org>
-
-	* erc-*.el, erc.texi, NEWS: Add Arch taglines as per Emacs
-	guidelines.
-
-	* erc-*.el: Space out copyright years like the rest of Emacs.  Use
-	the Emacs copyright statement.  Refer to ourselves as ERC rather
-	than "Emacs IRC Client", since there are now several IRC clients
-	for Emacs.
-
-	* erc-compat.el (erc-emacs-build-time): Define as a variable.
+See ChangeLog.06 for earlier changes.
 
-	* erc-log.el (erc-log-setup-logging): Use write-file-functions.
-
-	* erc-ibuffer.el: Require 'erc.
-
-	* erc-stamp.el (erc-insert-aligned): Only use the special text
-	property when window-system is X.
-
-	* erc.texi: Adapt for inclusion in Emacs.
-
-2006-01-28  Johan Bockgård  <bojohan@users.sourceforge.net>
-
-	* erc.el (erc-format-message): More `cl' breakage; don't use
-	`oddp'.
-
-2006-01-27  Michael Olson  <mwolson@gnu.org>
-
-	* debian/changelog: Update for new release.
-
-	* debian/control (Description): Update.
-
-	* debian/rules: Concatenate ChangeLog for 2005.
-
-	* Makefile (MISC): Include ChangeLog.2005 and erc.texi.
-	(debrelease, release): Copy images directory.
-
-	* NEWS: Spelling fixes.  Add items for recent changes.
-
-	* erc.el (erc): Move call to erc-update-modules before the call to
-	erc-mode.  This should fix a timestamp display issue.
-	(erc-version-string): Release ERC 5.1.
-
-2006-01-26  Michael Olson  <mwolson@gnu.org>
-
-	* erc-stamp.el (erc-insert-aligned): New function that inserts
-	text in an perfectly-aligned way relative to the right margin.  It
-	only works well with Emacs22.  A sane fallback is provided for
-	other versions of Emacs.
-	(erc-insert-timestamp-right): Use the new function.
-
-2006-01-25  Edward O'Connor  <ted@oconnor.cx>
-
-	* erc.el (erc-modules): Ensure that `erc-button-mode' gets enabled
-	before `erc-match-mode'.
-
-	* erc-match.el (match): Append `erc-match-message' to
-	`erc-insert-modify-hook'.
-
-2006-01-25  Michael Olson  <mwolson@gnu.org>
-
-	* FOR-RELEASE: Mark last release requirement as done.
-
-	* Makefile (realclean, distclean): Remove docs.
-
-	* erc.texi: Take care of all pre-5.1 items.
-
-	* erc-backend.el (erc-server-send, erc-server-send-queue): Wrap
-	`process-send-string' in `condition-case' to avoid an error when
-	quitting ERC.
-
-	* erc-stamp.el (erc-insert-timestamp-right): Try to deal with
-	variable-width characters in the timestamp and on the same line.
-	The latter is a kludge, but it seems to work with most of the
-	input I've thrown at it so far.  It's certainly better than going
-	past the end of line consistently when we have variable-width
-	characters on the same line.  When `erc-timestamp-intangible' is
-	non-nil, add intangible properties to the whitespace as well, so
-	that hitting <end> does what you'd expect.
-
-	* erc.el (erc-flood-protect, erc-toggle-flood-control): Update
-	this to only use boolean values for `erc-flood-protect'.  Update
-	documentation.
-	(erc-cmd-QUIT): Set the active buffer to be the server buffer, so
-	that any QUIT-related messages go there.
-	(erc): Try to be more clever about re-using channel buffers when
-	automatically re-connecting.  Thanks to e1f for noticing.
-
-2006-01-23  Michael Olson  <mwolson@gnu.org>
-
-	* ChangeLog.2005: Remove erroneous line.
-
-	* FOR-RELEASE: Make that the Makefile tweaking is complete.
-	(NEWS): Mark as done.
-
-	* Makefile (MANUAL): New option indicating the name of the manual.
-	(PREFIX, ELISPDIR, INFODIR): New options that specify the
-	directories to install lisp code and info manuals to.  PREFIX is
-	used only by ELISPDIR and INFODIR.
-	(all): Call `lisp' and create the manual.
-	(lisp): Compile lisp code.
-	(%.info, %.html): New rules that make Info files and HTML files,
-	respectively, from a TexInfo source.
-	(doc): Create both the Info and HTML versions of the manual.  This
-	is for the user -- we never call it automatically.
-	(install-info): Install Info files.
-	(install-bin): Install compiled and source Lisp files.
-	(todo): Remove, since it seems pointless.
-
-	* NEWS: Update.
-
-	* README: Add Installation instructions.  Tweak layout.
-
-	* erc.texi: Work on some pre-5.1 items.
-
-	* erc-stamp.el, erc-track.el: Move some functions and options in
-	order to get rid of a few compiler warnings.
-
-	* erc.el (erc-modules): Enable readonly by default.  This will
-	prevent new users from accidentally removing old messages, which
-	could be disconcerting.  Also enable stamp by default, since
-	timestamps are a fairly standard feature among IRC clients.
-
-	* erc-button.el: Munge whitespace.
-
-	* erc-identd.el (erc-identd-start): Instead of throwing an error,
-	just try to use the obsolete function.
-
-2006-01-22  Michael Olson  <mwolson@gnu.org>
-
-	* erc-backend.el (erc-decode-string-from-target): Make sure that
-	we have a string as an argument.  If not, coerce it to the empty
-	string.  Hopefully, this will work painlessly around an edge case
-	related to quitting ERC around the same time a message comes in.
-
-2006-01-22  Johan Bockgård  <bojohan@users.sourceforge.net>
-
-	* erc-track.el: Use `(eval-when-compile (require 'cl))' (for
-	`case').  Doc fixes.
-	(erc-find-parsed-property): Simplify.
-	(erc-track-get-active-buffer): Fix logic.  Simplify.
-	(erc-track-switch-buffer): Remove unused variable `dir'.  Simplify.
-
-	* erc-speak.el: Doc fixes.
-	(erc-speak-region): `propertize' --> `erc-propertize'.
-
-	* erc-dcc.el (erc-dcc-chat-parse-output): `propertize' -->
-	`erc-propertize'.
-
-	* erc-button.el (erc-button-add-button): Take erc-fill-prefix into
-	account when wrapping URLs.
-
-	* erc-bbdb.el (erc-bbdb-elide-display): Doc fix.
-
-	* erc-backend.el (define-erc-response-handler): Doc fix.
-
-2006-01-22  Michael Olson  <mwolson@gnu.org>
-
-	* erc.el (erc-update-modules): Use `require' instead of `load',
-	but prevent it from causing errors, in order to preserve the
-	previous behavior.
-
-2006-01-21  Michael Olson  <mwolson@gnu.org>
-
-	* FOR-RELEASE (Source): Mark cl task as done.
-
-	* Makefile (erc-auto.el): Call erc-generate-autoloads rather than
-	generate-autoloads.
-	(erc-auto.el, %.elc): Don't show command, just its output.
-
-	* NEWS: Add items from 2005-01-01 to 2005-08-13.
-
-	* debian/copyright (Copyright): Update.
-
-	* erc-auto.in (erc-generate-autoloads): Rename from
-	generate-autoloads.
-
-	* erc.el, erc-autoaway.el, erc-backend.el: Use
-	erc-server-process-alive instead of erc-process-alive.
-
-	* erc.el, erc-backend.el, erc-ezbounce.el, erc-list.el,
-	erc-log.el, erc-match.el, erc-nets.el, erc-netsplit.el,
-	erc-nicklist.el, erc-nickserv.el, erc-notify.el, erc-pcomplete.el:
-	Use (eval-when-compile (require 'cl)), so that compilation doesn't
-	fail.
-
-	* erc-fill.el, erc-truncate.el: Whitespace munging.
-
-	* erc.el: Update copyright notice.  Remove eval-after-load code.
-	(erc-with-buffer): Docfix.
-	(erc-once-with-server-event, erc-once-with-server-event-global)
-	(erc-with-buffer, erc-with-all-buffers-of-server): Use erc-gensym
-	instead of gensym.
-	(erc-banlist-update): Use erc-delete-if instead of delete-if.
-	(erc): Call `erc-update-modules' here.
-
-	* erc-backend.el: Require 'erc-compat to minimize compiler
-	warnings.
-	(erc-decode-parsed-server-response): Docfix.
-	(erc-server-process-alive): Move here from erc.el and rename from
-	`erc-process-alive'.
-	(erc-server-send, erc-remove-channel-users): Make sure process is
-	alive before sending data to it.
-
-	* erc-bbdb.el: Update copyright years.
-	(erc-bbdb-whois): Remove overexuberant comment.
-
-	* erc-button.el: Require erc-fill, since we make liberal use of
-	`erc-fill-column'.
-
-	* erc-compat.el (erc-const-expr-p, erc-list*, erc-assert): New
-	functions, the latter of which provides an `assert' equivalent.
-	(erc-remove-if-not): New function that provides a simple
-	implementation of `remove-if-not'.
-	(erc-gensym): New function that provides a simple implementation
-	of `gensym'.
-	(erc-delete-if): New function that provides a simple
-	implementation of `delete-if'.
-	(erc-member-if): New function that provides a simple
-	implementation of `member-if'.
-	(field-end): Remove this, since it is unused, and later versions
-	of XEmacs have this function already.
-	(erc-function-arglist): Moved here from erc.el.
-	(erc-delete-dups): New compatibility function for dealing with
-	XEmacs.
-	(erc-subseq): New function copied from cl-extra.el.
-
-	* erc-dcc.el: Require pcomplete during compilation to avoid
-	compiler warnings.
-	(erc-unpack-int, erc-dcc-send-filter)
-	(erc-dcc-get-filter): Use erc-assert instead of assert.
-	(pcomplete/erc-mode/DCC): Use erc-remove-if-not instead of
-	remove-if-not.
-
-	* erc-match.el (erc-log-matches): Fix compiler warning.
-
-	* erc-nicklist.el: Update copyright notice.
-	(erc-nicklist-menu): Change use of caadr to (car (cadr ...)).
-	(erc-nicklist-bitlbee-connected-p): Remove.
-	(erc-nicklist-insert-medium-name-or-icon): Accept channel
-	argument.  Use it to determine whether we are on bitlbee.  Now
-	that bitlbee names its channel "&bitlbee", this is trivial.
-	(erc-nicklist-insert-contents): Pass channel as specified above.
-	Don't try to determine whether we are on bitlbee here.
-	(erc-nicklist-channel-users-info): Use erc-remove-if-not instead
-	of remove-if-not.
-	(erc-nicklist-search-for-nick): Use erc-member-if instead of
-	member-if.
-
-	* erc-notify.el (erc-notify-QUIT): Use erc-delete-if with a
-	partially-evaluated lambda expression instead of `delete' and
-	`find'.
-
-	* erc-track.el: Use erc-assert.
-	(erc-track-modified-channels): Remove use of `return'.
-	(erc-track-modified-channels): Use `cadr' instead of `second',
-	since otherwise we would need yet another eval-when-compile line.
-
-2006-01-19  Michael Olson  <mwolson@gnu.org>
-
-	* erc-backend.el (erc-process-sentinel-1): Remove attempt to
-	detect SIGPIPE, since it doesn't work.
-
-2006-01-10  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-spelling.el: Updated copyright years.
-	(define-erc-module): Enable/disable `flyspell-mode' for all open
-	ERC buffers as well.
-	(erc-spelling-dictionaries): Reworded customize description.
-
-	* erc.el (erc-command-symbol): New function.
-	(erc-extract-command-from-line): Use `erc-command-symbol'.  This
-	fixes a bug where "Symbol's function definition is void:
-	erc-cmd-LIST" would be shown after typing /list at the prompt (the
-	command was interned because erc-menu.el uses it and is enabled by
-	default whereas erc-list.el is not).
-
-	* NEWS: Started a list of renamed variables.
-
-	* erc.el: Reworded the message sent when defining variable
-	aliases.
-	(erc-command-indicator-face): Doc fix.
-	(erc-modules): Enable the match module by default which makes
-	current nickname highlighting on as the default.
-
-	* erc-button.el: Updated copyright years.
-	(erc-button): New face.
-	(erc-button-face): Use `erc-button'.
-	(erc-button-nickname-face): New customizable variable.
-	(erc-button-add-nickname-buttons, erc-button-add-buttons-1): Send
-	new argument to `erc-button-add-button'.
-	(erc-button-add-button): Doc fix.  Added new argument to function
-	definition, NICK-P.  If it's a nickname, use
-	`erc-button-nickname-face', otherwise use `erc-button-face'.  This
-	makes channel tracking and buttons work better together when
-	`erc-button-buttonize-nicks' is enabled, since there is a nickname
-	on just about every line.
-
-	* erc-track.el (erc-track-use-faces): Doc fix.
-	(erc-track-faces-priority-list): Added `erc-button' to list.
-	(erc-track-priority-faces-only): Doc fix.
-
-2006-01-09  Diane Murray  <disumu@x3y2z1.net>
-
-	* erc-button.el (erc-button-url-regexp): Use `concat' so the
-	regexp is not one long line.
-	(erc-button-alist): Fixed so that customizing works correctly.
-	Reorganized.  Removed lambda functions with more than two lines.
-	Doc fix.
-	(erc-button-describe-symbol, erc-button-beats-to-time): New
-	functions.  Moved from `erc-button-alist'.
-
-2006-01-07  Michael Olson  <mwolson@gnu.org>
-
-	* erc-backend.el (erc-process-sentinel-1): Don't try to re-open a
-	process if a SIGPIPE occurs.  This happens when a new message
-	comes in at the same time a /quit is requested.
-	(erc-process-sentinel): Use string-match rather than string= to do
-	these comparisons.  Matching literal newlines makes me nervous.
-
-	* erc-track.el (erc-track-remove-from-mode-line): Handle case
-	where global-mode-string is not a list.  Emacs22 permits this.
-
-
-See ChangeLog.05 for earlier changes.
-
-    Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+    Copyright (C) 2007 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
@@ -1366,4 +376,4 @@
 ;; add-log-time-zone-rule: t
 ;; End:
 
-;; arch-tag: 865a75f6-2bcb-46df-bf0c-b514dadf688a
+;; arch-tag: 3369b6e5-96b1-4b32-96cd-9a905c747496
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/erc/ChangeLog.06	Wed Apr 11 00:17:47 2007 +0000
@@ -0,0 +1,1457 @@
+2006-12-28  Michael Olson  <mwolson@gnu.org>
+
+	* erc-list.el: Change header to mention that this is part of ERC,
+	rather than GNU Emacs.
+
+	* erc-networks.el (erc-server-alist): Add Ars OpenIRC and
+	LinuxChix networks.  Thanks to Angelina Carlton for mentioning
+	them.  Properly escape periods in Konfido.Net and Kewl.Org.
+	(erc-networks-alist): Add entries for Ars and LinuxChix, though
+	the latter does not actually provide an announced network name.
+
+	* erc-services.el (erc-nickserv-identify-mode): Add 'both method,
+	which waits for a NickServ message if the network supports it,
+	otherwise sends the password after connecting.
+	(erc-nickserv-identify-mode): Default to 'both.
+	(erc-nickserv-passwords): Add OFTC and Azzurra to custom options.
+	(erc-nickserv-alist): Indentation fix.
+	(erc-nickserv-identify-on-connect)
+	(erc-nickserv-identify-on-nick-change): Handle 'both method.
+
+2006-12-28  Leo  <sdl.web@gmail.com>  (tiny change)
+
+	* erc.el (erc-iswitchb): Wrap body in unwind-protect so that
+	hitting C-g does not leave iswitchb-mode on.
+
+2006-12-27  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-cmd-RECONNECT): New command that calls
+	erc-server-reconnect.
+
+	* erc-backend.el (erc-server-reconnect-count): New server variable
+	that keeps track of reconnection attempts.
+	(erc-server-reconnect-attempts): New option that determines the
+	number of reconnection attempts that ERC will make per server.
+	(erc-server-reconnect-timeout): New option that determines the
+	amount of time, in seconds, that ERC will wait between successive
+	reconnect attempts.
+	(erc-server-reconnect): New function that reestablishes the
+	current IRC connection.  Move some commands from
+	erc-process-sentinel-1 here.
+	(erc-process-sentinel-1): If we have been disconnected, loop until
+	we either reconnect or run out of attempts.
+	(erc-server-reconnect-p): Move higher and make this a defsubst,
+	since I'm worried about the current buffer changing from
+	underneath us.  Implement limit of number of reconnect attempts..
+
+	* erc.texi (Getting Started): Update for /RECONNECT command.
+
+2006-12-26  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-open): Restore old point correctly, or at least get
+	closer to doing so than before.
+
+2006-12-13  Leo  <sdl.web@gmail.com>  (tiny change)
+
+	* erc.el (erc-iswitchb): Temporarily enable iswitchb mode if it
+	isn't active already, instead of leaving it on.
+
+2006-12-10  Juanma Barranquero  <lekktu@gmail.com>
+
+	* erc-ezbounce.el (erc-ezb-init-session-list): Doc fix.
+
+2006-12-08  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el: Re-evaluate contributions from a contributor, and found
+	them under 15 lines of non-obvious code, so it is safe to remove
+	the copyright notice.
+	(erc-modules): Remove list module.
+
+	* erc-list.el: Remove, since a contributor who has not completed
+	their assignment has contributed significantly more than 15 lines
+	of code to this file.
+
+2006-11-28  Juanma Barranquero  <lekktu@gmail.com>
+
+	* erc.el (erc-cmd-BANLIST, erc-cmd-MASSUNBAN): Simplify.
+	(erc-prompt-for-channel-key, erc-ignore-reply-list, erc-send-post-hook)
+	(erc-active-buffer, erc-join-buffer, erc-frame-alist, erc-with-buffer)
+	(erc-modules, erc-display-message-highlight, erc-process-input-line)
+	(erc-cmd-HELP, erc-server-hooks, erc-echo-notice-in-user-buffers)
+	(erc-format-my-nick, erc-echo-notice-in-user-and-target-buffers)
+	(erc-echo-notice-in-first-user-buffer, erc-connection-established)
+	(erc-update-user-nick, erc-update-channel-member, erc-highlight-notice)
+	(erc-command-symbol, erc-add-query, erc-process-script-line)
+	(erc-determine-parameters, erc-client-info, erc-popup-input-buffer):
+	(erc-script-echo): Fix typos in docstrings.
+	(erc-channel-user-op-p, erc-channel-user-voice-p, erc-startup-file-list)
+	(define-erc-module, erc-once-with-server-event)
+	(erc-once-with-server-event-global, erc-debug-irc-protocol)
+	(erc-log-irc-protocol, erc-cmd-LOAD, erc-update-user)
+	(erc-update-current-channel-member, erc-load-script):
+	(erc-mode-line-away-status-format): Doc fixes.
+
+2006-11-20  Andrea Russo  <rastandy@inventati.org>  (tiny change)
+
+	* erc-dcc.el (erc-dcc-chat-setup): Initialize `erc-input-marker'
+	before calling `erc-display-prompt'.
+
+2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
+
+	* erc.el (erc-after-connect, erc-open-ssl-stream)
+	(erc-display-line-1, erc-display-line):
+	* erc-backend.el (005): Fix space/tab mixup in docstrings.
+
+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.
+
+	* erc.el (read-passwd):
+	* 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-10-01  John J Foerch  <jjfoerch@earthlink.net>  (tiny change)
+
+	* erc-stamp.el (erc-insert-timestamp-right): Exclude the newline
+	from the erc-timestamp field.
+
+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>  (tiny change)
+
+	* 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.
+
+	* README: Changed erc-select to erc.
+
+	* NEWS: Added note about these changes.
+
+	* FOR-RELEASE: Marked this item as done.
+
+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-20  Michael Olson  <mwolson@gnu.org>
+
+	* erc-identd.el (erc-identd): New customization group.
+	(erc-identd-port): New option that specifies the port to use if
+	none is given as an argument to erc-identd-start.
+	(identd): Place erc-identd-quickstart in erc-connect-pre-hook
+	instead of erc-identd-start so that we deal with the different
+	meaning of the first argument.
+	(erc-identd-start): Use erc-identd-port.
+	(erc-identd-quickstart): New function that ignores any arguments
+	and calls erc-identd-start.
+
+	* erc.el (erc-with-server-buffer): New macro that switches to the
+	current ERC server buffer and runs some code.  If no server buffer
+	is available, return nil.  This is a useful way to access
+	variables in the server buffer.
+	(erc-get-server-user, erc-add-server-user)
+	(erc-remove-server-user, erc-change-user-nickname)
+	(erc-get-server-nickname-list, erc-get-server-nickname-alist)
+	(erc-ison-p, erc-active-buffer, erc-cmd-IGNORE)
+	(erc-cmd-UNIGNORE, erc-cmd-IDLE, erc-cmd-NICK, erc-cmd-BANLIST)
+	(erc-cmd-MASSUNBAN, erc-nickname-in-use, erc-ignored-user-p)
+	(erc-format-channel-modes): Use it.
+	(erc-once-with-server-event, erc-once-with-server-event-global)
+	(erc-with-buffer, erc-with-all-buffers-of-server): Use make-symbol
+	instead of gensym.
+	(erc-open-server-buffer-p): New function that returns non-nil if
+	the given buffer is an ERC server buffer that has an open IRC
+	process.
+	(erc-with-buffer): Use buffer-live-p here to set a good example,
+	though it isn't really needed here.
+	(erc-away): Mention erc-away-time.
+	(erc): Don't propagate the erc-away setting, since it makes more
+	sense to access it from the server buffer.  Set up the prompt
+	before connecting rather than after.  Run erc-connect-pre-hook
+	with the buffer as an argument, instead of no arguments.
+	(erc-cmd-GAWAY): Use erc-open-server-buffer-p instead of
+	erc-server-buffer-p so that only open connections are set away.
+	(erc-cmd-GQUIT): Use erc-open-server-buffer-p.
+	(erc-process-away): Docfix.  Don't set erc-away in channel
+	buffers.
+	(erc-set-current-nick): Make this uniform with the style used in
+	erc-current-nick.
+	(erc-away-time): Rename from erc-away-p, since this is no longer a
+	boolean-style predicate.
+	(erc-format-away-status): Use it.
+	(erc-initialize-log-marker): Accept a `buffer' argument.
+	(erc-connect-pre-hook): Docfix.
+	(erc-connection-established): Make sure this runs in the correct
+	buffer.
+	(erc-set-initial-user-mode): Accept a `buffer' argument.
+
+	* erc-stamp.el (erc-add-timestamp): Use erc-away-time.
+
+	* erc-spelling.el (erc-spelling-init): Use
+	erc-with-server-buffer.  Accept `buffer' argument.
+	(spelling): Call erc-spelling-init with the `buffer' argument.
+
+	* erc-speedbar.el (erc-speedbar-buttons): Use erc-server-buffer-p.
+
+	* erc-pcomplete.el (pcomplete/erc-mode/UNIGNORE)
+	(pcomplete-erc-all-nicks): Use erc-with-server-buffer.
+
+	* erc-notify.el (erc-notify-timer, erc-cmd-NOTIFY): Use
+	erc-with-server-buffer.
+
+	* erc-networks.el (erc-network, erc-current-network)
+	(erc-network-name): Use erc-with-server-buffer.
+
+	* erc-netsplit.el (erc-cmd-WHOLEFT): Use erc-with-server-buffer.
+
+	* erc-match.el (erc-log-matches, erc-log-matches-come-back): Use
+	erc-away-time.
+
+	* erc-log.el (log): Use erc-away-time.  Remove unnecessary check.
+	Pass `buffer' argument to erc-log-setup-logging instead of setting
+	the current buffer.  Ditto for erc-log-disable-logging.
+	(erc-log-setup-logging, erc-log-disable-loggin): Accept a `buffer'
+	argument.
+
+	* erc-list.el (erc-chanlist): Use erc-with-server-buffer.
+
+	* erc-ibuffer.el (erc-away): Use erc-away-time.
+
+	* erc-dcc.el (erc-dcc-get-filter): Temporarily make the buffer
+	read only instead of permanently doing so.
+
+	* erc-compat.el (erc-gensym, *erc-sym-counter*): Remove, since
+	Emacs Lisp has make-symbol, which is better.
+
+	* erc-chess.el (erc-chess-handler, erc-cmd-CHESS): Use
+	erc-with-server-buffer.
+
+	* erc-capab.el (capab-identify): Only deal with server buffers
+	that have an open IRC process.
+	(erc-capab-identify-add-prefix): Use erc-with-server-buffer.
+
+	* erc-backend.el (erc-server-connected): Docfix.  Recommend the
+	`erc-server-process-alive' function.
+	(erc-coding-system-for-target): Supply a default target if one is
+	not given.
+	(erc-server-send): Simplify slightly.
+	(erc-call-hooks): Use erc-with-server-buffer.
+	(erc-server-connect, erc-server-setup-periodical-ping): Accept
+	`buffer' argument.
+
+	* erc-autoaway.el (erc-autoaway-reestablish-idletimer): Move
+	higher to avoid an automatic load snafu.
+	(erc-autoaway-some-server-buffer): New function that returns an
+	ERC server buffer with a live connection, or nil otherwise.
+	(erc-autoaway-insinuate-maybe): New function that adds the
+	autoaway reset function to post-command-hook if at least one ERC
+	process is alive.
+	(erc-autoaway-remove-maybe): New function that removes the
+	autoaway reset function from post-command-hook if no ERC process
+	is alive.
+	(autoaway): Don't touch post-command-hook unless an IRC process is
+	already open.  Remove our addition to post-command-hook as soon as
+	there are no more IRC processes open.  Reset the indicators before
+	connecting to an IRC server, which fixes a bug when re-connecting.
+	(erc-autoaway-reset-idle-user): Call erc-autoaway-remove-maybe if
+	there are no more IRC processes open.
+	(erc-autoaway-set-back): Pick an open IRC process.  Accept an
+	argument which is a function call if we can't find one.
+	(erc-autoaway-some-open-server-buffer): New function which returns
+	an ERC server buffer with an open connection and a user that is
+	not away.
+	(erc-autoaway-possibly-set-away, erc-autoaway-set-away): Use it.
+	(erc-autoaway-set-away): Accept a `notest' argument which is used
+	to avoid testing the same thing twice.
+	(erc-autoaway-last-sent-time, erc-autoaway-caused-away): Move
+	higher in file to fix byte-compile warning.
+
+2006-08-20  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-backend.el (erc-process-sentinel-1): Doc fix.  Let
+	`erc-server-reconnect-p' check all condition cases.
+	(erc-server-reconnect-p): Moved rest of checks from
+	`erc-process-sentinel-1' to here.  Now takes an argument, EVENT.
+
+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.
+
+	* erc-backend.el (erc-server-banned): New variable.
+	(erc-server-connect): Set `erc-server-banned' to nil.
+	(erc-process-sentinel-1): Use `erc-server-reconnect-p'.
+	(erc-server-reconnect-p): New function.  Return non-nil if the
+	user wants automatic reconnects and if the user has not been
+	banned from the server.  This should fix a bug where ERC gets into
+	a loop trying to reconnect with no way to stop it when the user is
+	denied access to the server due to a server ban.  It might also
+	help when Tor users are blocked from freenode if freenode servers
+	send the 465 message before disconnecting.
+	(465): Handle "banned from server" error notices.
+
+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-13  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-server-timed-out): New variable that
+	indicates whether the current connection has timed out due to
+	failure to respond to a ping.
+	(erc-server-send-ping): Set erc-server-timed-out to t.
+	(erc-server-connect): Initialize erc-server-timed-out to nil.
+	(erc-process-sentinel-1): Consult erc-server-timed-out.
+
+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
+	in several places instead of inserting text.
+	(erc-process-sentinel): Move to the input-marker before removing
+	the prompt.
+
+	* erc.el (erc-port): Fix customization options.
+	(erc-display-message): Handle null type explicitly.  Previously,
+	this was relying on a chance side-effect.  Cosmetic indentation
+	tweak.
+	(english): Add 'finished and 'terminated entries to the catalog.
+	Add initial and terminal newlines to 'disconnected and
+	'disconnected-noreconnect entries.  Avoid long lines.
+	(erc-cmd-QUIT): Bind the current erc-server-process to
+	server-proc.  If the IRC server responds quickly, it is possible
+	for the connection to close, and hence server buffer to be killed,
+	if erc-kill-server-buffer-on-quit is non-nil.  This avoids that
+	problem.
+
+2006-08-06  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-server-send-queue): Update from Circe
+	version of this function.
+	(erc-server-ping-timer-alist): New variable that keeps track of
+	ping timers according to their associated server.
+	(erc-server-last-received-time): New variable that specifies the
+	time of the last message we received from the server.  This is
+	used to detect hung processes.
+	(erc-server-send-ping): New function that sends a ping to the IRC
+	process corresponding with the given buffer.  Split from
+	erc-server-setup-periodical-ping.  If the server buffer no longer
+	exists, cancel the timer.  If the server process has not given us
+	a message, including PING responses, since the last PING, kill it.
+	This is necessary to deal with some aberrant freenode behavior.
+	Idea taken from rcirc.
+	(erc-server-setup-periodical-ping): Rename from
+	erc-server-setup-periodical-server-ping.
+	(erc-server-filter-function): Use erc-current-time instead of
+	current-time.
+
+	* erc.el (erc-arrange-session-in-multiple-windows): Fix bug with
+	multi-tty Emacs.
+	(erc-select-startup-file): Fix bug introduced by recent change.
+	(erc-cmd-QUIT): If the IRC process has not terminated itself
+	within 4 seconds of completing our quit-hook, kill it manually.
+	Freenode in particular needs this.
+	(erc-connection-established): Use erc-server-setup-periodical-ping
+	instead of erc-server-setup-periodical-server-ping.
+
+2006-08-05  Michael Olson  <mwolson@gnu.org>
+
+	* erc-log.el (erc-log-standardize-name): New function that returns
+	a filename that is safe for use for a log file.
+	(erc-current-logfile): Use it.
+
+	* erc.el (erc-startup-file-list): Search in ~/.emacs.d first,
+	since that is a fairly standard directory.
+	(erc-select-startup-file): Re-write to use
+	convert-standard-filename, which will ensure that MS-DOS systems
+	look for the _ercrc.el file.
+
+2006-08-02  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-version-string): Release ERC 5.1.4.
+
+	* Makefile, NEWS, erc.texi: Update for the 5.1.4 release.
+
+	* erc.el (erc-active-buffer): Fix bug that caused messages to go
+	to the wrong buffer.  Thanks to offby1 for the report.
+
+	* erc-backend.el (erc-coding-system-for-target): Handle case where
+	target is nil.  Thanks to Kai Fan for the patch.
+
+2006-07-29  Michael Olson  <mwolson@gnu.org>
+
+	* erc-log.el (erc-log-setup-logging): Don't offer to save the
+	buffer.  It will be saved automatically killed.  Thanks to Johan
+	Bockgård and Tassilo Horn for pointing this out.
+
+2006-07-27  Johan Bockgård  <bojohan@users.sourceforge.net>
+
+	* erc.el (define-erc-module): Make find-function and find-variable
+	find the names constructed by `define-erc-module' in Emacs 22.
+
+2006-07-14  Michael Olson  <mwolson@gnu.org>
+
+	* erc-log.el (log): Make sure that we enable logging on
+	already-opened buffers as well, in case the user toggles this
+	module after loading ERC.  Also be sure to remove logging ability
+	from all ERC buffers when the module is disabled.
+	(erc-log-setup-logging): Set buffer-file-name to nil rather than
+	the empty string.  This should fix some errors that occur when
+	quitting Emacs without first killing all ERC buffers.
+	(erc-log-disable-logging): New function that removes the logging
+	ability from the current buffer.
+
+	* erc-spelling.el (spelling): Use dolist and buffer-live-p.
+
+2006-07-12  Michael Olson  <mwolson@gnu.org>
+
+	* erc-match.el (erc-log-matches): Bind inhibit-read-only rather
+	than call toggle-read-only.
+
+	* erc.el (erc-handle-irc-url): Move here from erc-goodies.el and
+	add autoload cookie.
+
+2006-07-09  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-version-string): Release ERC 5.1.3.
+
+	* erc.texi: Update for the 5.1.3 release.
+
+	* erc-autoaway.el (erc-autoaway-set-back): Fix bug after returning
+	from being set automatically away and current buffer is not an ERC
+	buffer.
+
+	* erc-identd.el: Fix compiler error.
+
+	* erc.texi (Development): Use @subheading instead of @subsection.
+	(Advanced Usage): Add menu.
+	(Connecting): Fully document how to connect to an IRC server.
+	(Options, Tips and Tricks, Sample Configuration): New unwritten
+	sections.
+
+	* erc.el (erc-server, erc-port, erc-nick, erc-nick-uniquifier)
+	(erc-user-full-name, erc-password): Docfixes and customization
+	interface tweaks.
+	(erc-try-new-nick-p): Rename from
+	`erc-manual-set-nick-on-bad-nick-p' and invert meaning.
+	(erc-nickname-in-use): Use `erc-try-new-nick-p'.  Check the length
+	of `erc-nick-uniquifier', in case someone wants multiple
+	characters.
+	(erc-compute-server, erc-compute-nick, erc-compute-full-name)
+	(erc-compute-port): Docfixes.
+
+	* erc-log.el (log): Move all add-hook calls here, rather than
+	executing them immediately, and also cause them to be un-hooked
+	when the module is removed.
+	(erc-save-buffer-on-part): Move next to
+	`erc-save-queries-on-quit'.
+	(erc-save-buffer-on-quit, erc-save-queries-on-quit): Default to t.
+	(erc-log-write-after-send, erc-log-write-after-insert): Default to
+	nil.  This makes things fast, but reasonably failsafe, by default.
+
+2006-07-08  Michael Olson  <mwolson@gnu.org>
+
+	* erc-log.el (erc-log-insert-log-on-open): Make this nil by
+	default, since most IRC clients don't do this.
+	(erc-log-write-after-send): New option that determines whether the
+	log file will be written to after every sent message.
+	(erc-log-write-after-insert): New option that determines whether
+	the log file will be written to when new text is added to a logged
+	ERC buffer.
+	(log): Use the aforementioned options.
+
+	* erc.texi (Modules): Document the "completion" module.
+
+	* erc-pcomplete.el (pcomplete-erc-nicks): Make sure that we don't
+	have a nil element in the list when ignore-self is non-nil.
+
+2006-07-05  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-modules): Use `set' instead of `set-default', since
+	this setting should never be buffer-local.  Add the `page' module
+	to the list.
+
+	* erc.texi (Modules): Add entries for `list' and `page' modules.
+	Change "spell" to "spelling".
+	(History): Use past tense throughout.
+
+2006-07-02  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-call-hooks): Fix (stringp nil) error that
+	can happen when doing /PART.
+
+	* erc.el (erc-quit-reason-various-alist)
+	(erc-part-reason-various-alist): In the example, use "^$" as an
+	example, since "" matches anything.
+	(erc-quit-reason-various, erc-part-reason-various): If no argument
+	is given, and no matches are found, use our default reason instead
+	of "nil".
+
+2006-06-30  Michael Olson  <mwolson@gnu.org>
+
+	* erc.texi (Modules): Mention identd.
+	(Releases): Update mailing list address and download location.
+	(Development): Refactor.  Provide updated directions for Arch.
+	Make URLs clickable.
+	(Keystroke Summary): Typo fix.  Use more Texinfo syntax.
+	(Getting Started): Give simpler example.  We do not need to
+	explicitly load every module.
+	(History): Update.
+
+	* erc-autoaway.el, erc-join.el, erc-backend.el, erc-bbdb.el:
+	erc-button.el, erc-chess.el, erc-compat.el, erc-hecomplete.el:
+	erc-dcc.el, erc-ezbounce.el, erc-fill.el, erc-ibuffer.el:
+	erc-imenu.el, erc-list.el, erc-log.el, erc-match.el, erc-menu.el:
+	erc-networks.el, erc-netsplit.el, erc-nicklist.el:
+	erc-services.el, erc-pcomplete.el, erc-replace.el, erc-ring.el:
+	erc-speedbar.el, erc-spelling.el, erc-stamp.el, erc-track.el:
+	erc.el: Remove version strings.
+
+	* erc.el (erc-cmd-SMV): Remove, since we do not have meaningful
+	module versions anymore.
+	(erc-version-modules): Remove, since we do not use this function
+	anymore.
+	(erc-latest-version, erc-ediff-latest-version): Remove, since this
+	was only useful back when ERC consisted of one file.
+	(erc-modules): Add line for identd.
+	(erc-get-channel-mode-from-keypress): Typo fix.
+
+	* erc-imenu.el: Remove unnecessary lines in header.
+
+	* erc-goodies.el (erc-handle-irc-url): Docfix.
+
+	* erc-identd.el: Define an ERC module for this.
+	(erc-identd-start): Don't create a process buffer if possible.
+	Otherwise, use conventional hidden names for process buffers.
+
+2006-06-29  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-coding-system-for-target): Match
+	case-insensitively.  Use a pattern match instead of `assoc', as
+	per the documentation for `erc-encoding-coding-alist'.
+
+	* erc-track.el (erc-track-shorten-aggressively): Fix typo.
+
+2006-06-27  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el: Update maintainer information and URLs.
+
+2006-06-14  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-active-buffer): If the active buffer has been
+	deleted, default to the server buffer.
+	(erc-toggle-flood-control): When the user hits C-c C-f, make flood
+	control really toggle, not unconditionally turn off.
+
+2006-06-12  Michael Olson  <mwolson@gnu.org>
+
+	* NEWS: Add items since the 5.1.2 release.
+
+	* erc-autoaway.el (erc-autoaway-caused-away): New variable that
+	indicates whether the current away status was caused by this
+	module.
+	(erc-autoaway-set-back): Only set back if this module set the user
+	away.
+	(erc-autoaway-set-away): Update `erc-autoaway-caused-away'.
+	(erc-autoaway-reset-indicators): New function that resets some
+	indicators when the user is no longer away.
+	(autoaway): Add the above function to the 305 hook.
+
+2006-06-05  Romain Francoise  <romain@orebokech.com>
+
+	* erc.texi (History): Fix various typos.
+
+2006-06-04  Michael Olson  <mwolson@gnu.org>
+
+	* erc-autoaway.el (erc-autoaway-idle-method): Move after the
+	definition of the autoaway module.
+	(autoaway): Don't do anything if erc-autoaway-idle-method is
+	unbound.  This prevents an error on startup.
+
+2006-06-03  Michael Olson  <mwolson@gnu.org>
+
+	* erc-autoaway.el: Thanks to Mark Plaksin for the ideas and patch.
+	(erc-autoaway-idle-method): Renamed from
+	`erc-autoaway-use-emacs-idle'.  We have more than two choices for
+	how to do this, so it's best to make this take symbol values.
+	Improve documentation.  Remove warning against Emacs idle-time;
+	the point is moot now that we get user idle time via a different
+	method.  Make sure we disable and re-enable the module when
+	changing this value.
+	(autoaway): Conditionalize on the above option.  If using the idle
+	timer or user idle methods, don't add anything to the
+	send-completed or server-001 hooks, since it is unnecessary.
+	(erc-autoaway-reestablish-idletimer, erc-autoaway-message):
+	Docfix.
+	(erc-autoaway-idle-seconds): Use erc-autoaway-idle-method.
+	(erc-autoaway-reset-idle-irc): Renamed from
+	`erc-autoaway-reset-idle'.  Don't pass line to
+	`erc-autoaway-set-away', since it is not used.
+	(erc-autoaway-reset-idle-user): New function that resets the idle
+	state for user idle time.
+	(erc-autoaway-set-back): Remove line argument, since it is not
+	used.
+
+2006-06-01  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-buffer-filter): Make sure all buffers returned from
+	this are live.
+
+2006-05-01  Edward O'Connor  <ted@oconnor.cx>
+
+	* erc-goodies.el (erc-handle-irc-url): New function, suitable as
+	a value for `url-irc-function'.
+
+2006-04-18  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-pcomplete.el (pcomplete-erc-nicks): Added new optional
+	argument IGNORE-SELF.  If this is non-nil, don't return the user's
+	current nickname.  Doc fix.
+	(pcomplete/erc-mode/complete-command): Don't complete the current
+	nickname.
+
+2006-04-05  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc.el (erc-cmd-SV): Removed the exclamation point.  Show the
+	build date as it's shown in `emacs-version'.
+
+	* erc-capab.el (erc-capab-identify-add-prefix): Insert the prefix
+	with the same face property as the previous character.
+
+2006-04-02  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el, erc-ezbounce.el, erc-join.el, erc-netsplit.el,
+	erc.el: Make sure to include a newline inside of negated classes,
+	so that a newline is not matched.
+
+2006-04-01  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-server-connect-function): Don't try to
+	detect the existence of the `open-network-stream-nowait' function,
+	since I can't find it in Emacs21, XEmacs21, or Emacs22.
+
+2006-03-27  Michael Olson  <mwolson@gnu.org>
+
+	* erc.texi: Update direntry.  Remove unneeded local variables.
+
+2006-03-26  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-header-line): New face that will be used to colorize
+	the text of the header-line, provided that
+	`erc-header-line-face-method' is non-nil.
+	(erc-prompt-face): Fix formatting.
+	(erc-header-line-face-method): New option that determines the
+	method used for colorizing header-line text.  This may be a
+	function, nil, or non-nil.
+	(erc-update-mode-line-buffer): Use the aforementioned option and
+	face to colorize the header-line text, if that is what the user
+	wants.
+	(erc-send-input): If flood control is not activated, don't split
+	the input line.
+
+2006-03-25  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-cmd-QUOTE): Install patch from Aravind Gottipati
+	that fixes the case where there is no leading whitespace.  Only
+	remove the first space character, though.
+
+	* erc-identd.el (erc-identd-start): Fix a bug by making sure that
+	erc-identd-process is set properly.
+	(erc-identd-start, erc-identd-stop): Add autoload cookies.
+	(erc-identd-start): Pass :host parameter so this works with Emacs
+	22.
+
+2006-03-09  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-button.el (erc-button-keymap): Use <backtab> rather than
+	<C-tab> for `erc-button-previous' as it is a more standard key
+	binding for this type of function.
+
+2006-02-28  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-capab.el: Removed things that were accidentally committed on
+	2006-02-20.  Removed Todo section.
+	(erc-capab-unidentified): Removed.
+
+2006-02-26  Michael Olson  <mwolson@gnu.org>
+
+	* erc-capab.el: Use (eval-when-compile (require 'cl)).
+	(erc-capab-unidentified): Fix compiler warning by specifying
+	group.
+
+2006-02-20  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-capab.el (erc-capab-send-identify-messages): Fixed comment
+	to explain thoughts better.  `erc-server-parameters' is an
+	associated list when it's set, not a string.
+
+2006-02-19  Michael Olson  <mwolson@gnu.org>
+
+	* erc-capab.el (erc-capab-send-identify-messages): Make sure some
+	parameters are strings before using them.  Thanks to Alejandro
+	Benitez for the report.
+
+	* erc.el (erc-version-string): Release ERC 5.1.2.
+
+2006-02-19  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-button.el (erc-button-keymap): Bind `erc-button-previous' to
+	<C-tab>.
+	(erc-button-previous): New function.
+
+2006-02-15  Michael Olson  <mwolson@gnu.org>
+
+	* NEWS: Add category for ERC 5.2.
+
+	* erc.el (erc): Move to the end of the buffer when a continued
+	session is detected.  Thanks to e1f and indio for the report and
+	testing a potential fix.
+
+2006-02-14  Michael Olson  <mwolson@gnu.org>
+
+	* debian/changelog: Prepare a new Debian package.
+
+	* Makefile (debprepare): New rule that creates an ERC snapshot
+	directory for use in both new Debian releases and revisions for
+	Debian packages.
+	(debrelease, debrevision-mwolson): Use debprepare.
+
+	* NEWS: Bring up-to-date.
+
+	* erc-stamp.el (erc-insert-timestamp-right): For now, put
+	timestamps before rather than after erc-fill-column when
+	erc-timestamp-right-column is nil.  This way we won't surprise
+	anyone unpleasantly, or so it is hoped.
+
+2006-02-13  Michael Olson  <mwolson@gnu.org>
+
+	* erc-dcc.el: Use (eval-when-compile (require 'cl)).
+
+2006-02-12  Michael Olson  <mwolson@gnu.org>
+
+	* erc-autoaway.el, erc-dcc.el, erc-ezbounce.el, erc-fill.el
+	* erc-goodies.el, erc-hecomplete.el, erc-ibuffer.el, erc-identd.el
+	* erc-imenu.el, erc-join.el, erc-lang.el, erc-list.el, erc-log.el
+	* erc-match.el, erc-menu.el, erc-netsplit.el, erc-networks.el
+	* erc-notify.el, erc-page.el, erc-pcomplete.el, erc-replace.el
+	* erc-ring.el, erc-services.el, erc-sound.el, erc-speedbar.el
+	* erc-spelling.el, erc-track.el, erc-truncate.el, erc-xdcc.el:
+	Add 2006 to copyright years, to comply with the changed guidelines.
+
+2006-02-11  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-update-modules): Handle erc-capab-identify
+	correctly.  Make some requirements shorter, so that it's easier to
+	see why they are needed.
+
+	* erc-capab.el: Add autoload cookie for capab-identify.
+	(erc-capab-send-identify-messages, erc-capab-identify-activate):
+	Minor whitespace fix in code.
+
+	* erc-stamp.el (erc-timestamp-use-align-to): Renamed from
+	`erc-timestamp-right-align-by-pixel'.  Set the default based on
+	whether we are in Emacs 22, and using X.  Improve documentation.
+	(erc-insert-aligned): Remove calculation of offset, since
+	:align-to pos works after all.  Unlike the previous solution, this
+	one works when erc-stamp.el is compiled.
+	(erc-insert-timestamp-right): Don't add length of string, and then
+	later remove its displayed width.  This puts timestamps after
+	erc-fill-column when erc-timestamp-right-column is nil, rather
+	than before it.  It also fixes a subtle bug.  Remove use of
+	`current-window', since there is no variable by that name in
+	Emacs21, Emacs22, or XEmacs21 beta.  Check to see whether
+	`erc-fill-column' is non-nil before using it.
+
+2006-02-11  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-list.el: Define `list' module which sets the alias
+	`erc-cmd-LIST' to `erc-list-channels' when enabled and
+	`erc-list-channels-simple' when disabled.
+	(erc-list-channels): Was `erc-cmd-LIST', renamed.
+	(erc-list-channels-simple): New function.
+
+	* erc.el (erc-modules): Added `list' to enabled modules.  Changed
+	`capab-identify' description.  Moved customization options left in
+	source code.
+
+	* erc-menu.el (erc-menu-definition): Use `erc-list-channels'.
+
+	* erc-capab.el: Put a little more detail into Usage section.
+	(define-erc-module): Run `erc-capab-identify-setup' in all open
+	server buffers when enabling.
+	(erc-capab-identify-setup): Make PROC and PARSED optional
+	arguments.
+	(erc-capab-identify-add-prefix): Simplified nickname regexp.  This
+	should now also match nicknames that are formatted differently
+	than the default.
+
+	* erc-spelling.el (define-erc-module): Make sure there's a buffer
+	before calling `with-current-buffer'.
+
+2006-02-10  Michael Olson  <mwolson@gnu.org>
+
+	* Makefile (debbuild): Split from debrelease.
+	(debrevision-mwolson): New rule that causes a Debian revision to
+	be built.
+
+	* erc.el (erc-migrate-modules): Use a better algorithm.  Thanks to
+	Johan Bockgård.
+	(erc-modules): Change use of 'pcomplete to 'completion.
+
+2006-02-09  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc.el (erc-get-parsed-vector, erc-get-parsed-vector-nick)
+	* erc-capab.el: Require erc.
+	(erc-capab-send-identify-messages): Use `erc-server-send'.
+	(erc-capab-identify-remove/set-identified-flag): Use 1 and 0 as
+	the flags so we can also check whether the `erc-identified' text
+	property is there at all.
+	(erc-capab-identify-add-prefix): Use `erc-capab-find-parsed'.
+	This fixes a bug where the prefix wasn't inserted when timestamps
+	are inserted on the right.  Tweaked nickname regexp.
+	(erc-capab-find-parsed): New function.
+	(erc-capab-get-unidentified-nickname): Updated to check for 0
+	flag.  Only get nickname if there's a nickuserhost associated with
+	this message.
+
+	* erc-capab.el: New file.  Adds the new module
+	`erc-capab-identify', which allows flagging of unidentified users
+	on servers running an ircd based on dancer - irc.freenode.net, for
+	example.
+
+	* erc.el (erc-modules): Added `capab-identify' to options.
+	(erc-get-parsed-vector, erc-get-parsed-vector-nick)
+	(erc-get-parsed-vector-type): Moved here from erc-match.el.
+
+	* erc-match.el (erc-get-parsed-vector, erc-get-parsed-vector-nick)
+	(erc-get-parsed-vector-type): Moved these functions to erc.el
+	since they can be useful outside of the text matching module.
+
+	* NEWS: Added erc-capab.el.
+
+	* erc-dcc.el, erc-stamp.el, erc-xdcc.el: Changed "Emacs IRC Client"
+	to "ERC".
+
+2006-02-07  Michael Olson  <mwolson@gnu.org>
+
+	* ChangeLog.01, ChangeLog.02, ChangeLog.03, ChangeLog.04,
+	ChangeLog.05: Rename from ChangeLog.NNNN in order to disambiguate
+	the filenames in DOS.
+
+	* erc-goodies.el: Comment fix.
+
+	* erc-hecomplete.el: Rename from erc-complete.el.  Update
+	commentary.  Use define-erc-module so that it's possible to
+	actually use this.
+	(erc-hecomplete): Rename function from `erc-complete'.
+	(erc-hecomplete): Rename group from `erc-old-complete'.  Docfix.
+
+	* erc-join.el: Rename from erc-autojoin.el.
+
+	* erc-networks.el: Rename from erc-nets.el.
+
+	* erc-services.el: Rename from erc-nickserv.el.
+
+	* erc-stamp.el (erc-insert-aligned): Don't take 3rd argument.  Use
+	the simpler `indent-to' function when
+	`erc-timestamp-right-align-by-pixel' is nil.
+	(erc-insert-timestamp-right): If the timestamp goes on the
+	following line, don't add timestamp properties to the spaces in
+	front of it.
+
+	* erc.el (erc-migrate-modules): New function that eases migration
+	of module names.
+	(erc-modules): Call erc-migrate-modules in the :get accessor.
+	(erc-modules, erc-update-modules): Update for new modules names.
+	(erc-cmd-SMV): Remove, since this does not give useful output due
+	to the version strings being removed from ERC modules.
+
+2006-02-05  Michael Olson  <mwolson@gnu.org>
+
+	* erc-spelling.el (erc-spelling-init): If
+	`erc-spelling-dictionaries' is nil, do not set
+	ispell-local-dictionary.  Before, it was being set to nil, which
+	was causing a long delay while the ispell process restarted.
+	(erc-spelling-unhighlight-word): New function that removes
+	flyspell properties from a spell-checked word.
+	(erc-spelling-flyspell-verify): Don't spell-check nicks or words
+	that have '/' before them.
+
+2006-02-04  Michael Olson  <mwolson@gnu.org>
+
+	* erc-autojoin.el: Use (eval-when-compile (require 'cl)).
+
+	* erc-complete.el (erc-nick-completion-exclude-myself)
+	(erc-try-complete-nick): Use better function for getting list of
+	channel users.
+
+	* erc-goodies.el: Docfix.
+
+	* erc-stamp.el: Use new arch tagline, since the other one wasn't
+	being treated properly.
+
+	* erc.el (erc-version-string): Release ERC 5.1.1.
+
+2006-02-03  Zhang Wei  <id.brep@gmail.com>
+
+	* erc.el (erc-version-string): Don't hard-code Emacs version.
+	(erc-version): Use emacs-version.
+
+2006-01-31  Michael Olson  <mwolson@gnu.org>
+
+	* erc-stamp.el: Update copyright years.
+
+2006-01-30  Simon Josefsson  <jas@extundo.com>
+
+	* erc.el (erc-open-ssl-stream): Use tls.el.
+
+2006-01-30  Michael Olson  <mwolson@gnu.org>
+
+	* erc-stamp.el (erc-timestamp-right-align-by-pixel): New option
+	that determines whether to use pixel values to align right
+	timestamps.  The default is not to do so, since it only works with
+	Emacs22 on X, and even then some people have trouble.
+	(erc-insert-aligned): Use `erc-timestamp-right-align-by-pixel'.
+
+2006-01-29  Michael Olson  <mwolson@gnu.org>
+
+	* ChangeLog, ChangeLog.2005, ChangeLog.2004, ChangeLog.2003,
+	ChangeLog.2002, ChangeLog.2001: Add "See ChangeLog.NNNN" line for
+	earlier changes.  Use utf-8 encoding.  Fix some accent typos.
+
+	* erc-speedbar.el (erc-speedbar-buttons): Fix reference to free
+	variable.
+	(erc-speedbar-goto-buffer): Fix compiler warning.
+
+	* erc-ibuffer.el: Use `define-ibuffer-filter' instead of
+	`ibuffer-degine-limiter'.  Use `define-ibuffer-column' instead of
+	`ibuffer-define-column'.  Require 'ibuf-ext so that the macros
+	work without compiler warnings.
+
+	* man/erc.texi (Obtaining ERC, Installation): Note that these
+	sections may be skipped if using the version of ERC that comes
+	with Emacs.
+
+2006-01-29  Edward O'Connor  <ted@oconnor.cx>
+
+	* erc-viper.el: Remove.  Now that ERC is included in Emacs, these
+	work-arounds live in Viper itself.
+
+2006-01-28  Michael Olson  <mwolson@gnu.org>
+
+	* erc-*.el, erc.texi, NEWS: Add Arch taglines as per Emacs
+	guidelines.
+
+	* erc-*.el: Space out copyright years like the rest of Emacs.  Use
+	the Emacs copyright statement.  Refer to ourselves as ERC rather
+	than "Emacs IRC Client", since there are now several IRC clients
+	for Emacs.
+
+	* erc-compat.el (erc-emacs-build-time): Define as a variable.
+
+	* erc-log.el (erc-log-setup-logging): Use write-file-functions.
+
+	* erc-ibuffer.el: Require 'erc.
+
+	* erc-stamp.el (erc-insert-aligned): Only use the special text
+	property when window-system is X.
+
+	* erc.texi: Adapt for inclusion in Emacs.
+
+2006-01-28  Johan Bockgård  <bojohan@users.sourceforge.net>
+
+	* erc.el (erc-format-message): More `cl' breakage; don't use
+	`oddp'.
+
+2006-01-27  Michael Olson  <mwolson@gnu.org>
+
+	* debian/changelog: Update for new release.
+
+	* debian/control (Description): Update.
+
+	* debian/rules: Concatenate ChangeLog for 2005.
+
+	* Makefile (MISC): Include ChangeLog.2005 and erc.texi.
+	(debrelease, release): Copy images directory.
+
+	* NEWS: Spelling fixes.  Add items for recent changes.
+
+	* erc.el (erc): Move call to erc-update-modules before the call to
+	erc-mode.  This should fix a timestamp display issue.
+	(erc-version-string): Release ERC 5.1.
+
+2006-01-26  Michael Olson  <mwolson@gnu.org>
+
+	* erc-stamp.el (erc-insert-aligned): New function that inserts
+	text in an perfectly-aligned way relative to the right margin.  It
+	only works well with Emacs22.  A sane fallback is provided for
+	other versions of Emacs.
+	(erc-insert-timestamp-right): Use the new function.
+
+2006-01-25  Edward O'Connor  <ted@oconnor.cx>
+
+	* erc.el (erc-modules): Ensure that `erc-button-mode' gets enabled
+	before `erc-match-mode'.
+
+	* erc-match.el (match): Append `erc-match-message' to
+	`erc-insert-modify-hook'.
+
+2006-01-25  Michael Olson  <mwolson@gnu.org>
+
+	* FOR-RELEASE: Mark last release requirement as done.
+
+	* Makefile (realclean, distclean): Remove docs.
+
+	* erc.texi: Take care of all pre-5.1 items.
+
+	* erc-backend.el (erc-server-send, erc-server-send-queue): Wrap
+	`process-send-string' in `condition-case' to avoid an error when
+	quitting ERC.
+
+	* erc-stamp.el (erc-insert-timestamp-right): Try to deal with
+	variable-width characters in the timestamp and on the same line.
+	The latter is a kludge, but it seems to work with most of the
+	input I've thrown at it so far.  It's certainly better than going
+	past the end of line consistently when we have variable-width
+	characters on the same line.  When `erc-timestamp-intangible' is
+	non-nil, add intangible properties to the whitespace as well, so
+	that hitting <end> does what you'd expect.
+
+	* erc.el (erc-flood-protect, erc-toggle-flood-control): Update
+	this to only use boolean values for `erc-flood-protect'.  Update
+	documentation.
+	(erc-cmd-QUIT): Set the active buffer to be the server buffer, so
+	that any QUIT-related messages go there.
+	(erc): Try to be more clever about re-using channel buffers when
+	automatically re-connecting.  Thanks to e1f for noticing.
+
+2006-01-23  Michael Olson  <mwolson@gnu.org>
+
+	* ChangeLog.2005: Remove erroneous line.
+
+	* FOR-RELEASE: Make that the Makefile tweaking is complete.
+	(NEWS): Mark as done.
+
+	* Makefile (MANUAL): New option indicating the name of the manual.
+	(PREFIX, ELISPDIR, INFODIR): New options that specify the
+	directories to install lisp code and info manuals to.  PREFIX is
+	used only by ELISPDIR and INFODIR.
+	(all): Call `lisp' and create the manual.
+	(lisp): Compile lisp code.
+	(%.info, %.html): New rules that make Info files and HTML files,
+	respectively, from a TexInfo source.
+	(doc): Create both the Info and HTML versions of the manual.  This
+	is for the user -- we never call it automatically.
+	(install-info): Install Info files.
+	(install-bin): Install compiled and source Lisp files.
+	(todo): Remove, since it seems pointless.
+
+	* NEWS: Update.
+
+	* README: Add Installation instructions.  Tweak layout.
+
+	* erc.texi: Work on some pre-5.1 items.
+
+	* erc-stamp.el, erc-track.el: Move some functions and options in
+	order to get rid of a few compiler warnings.
+
+	* erc.el (erc-modules): Enable readonly by default.  This will
+	prevent new users from accidentally removing old messages, which
+	could be disconcerting.  Also enable stamp by default, since
+	timestamps are a fairly standard feature among IRC clients.
+
+	* erc-button.el: Munge whitespace.
+
+	* erc-identd.el (erc-identd-start): Instead of throwing an error,
+	just try to use the obsolete function.
+
+2006-01-22  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-decode-string-from-target): Make sure that
+	we have a string as an argument.  If not, coerce it to the empty
+	string.  Hopefully, this will work painlessly around an edge case
+	related to quitting ERC around the same time a message comes in.
+
+2006-01-22  Johan Bockgård  <bojohan@users.sourceforge.net>
+
+	* erc-track.el: Use `(eval-when-compile (require 'cl))' (for
+	`case').  Doc fixes.
+	(erc-find-parsed-property): Simplify.
+	(erc-track-get-active-buffer): Fix logic.  Simplify.
+	(erc-track-switch-buffer): Remove unused variable `dir'.  Simplify.
+
+	* erc-speak.el: Doc fixes.
+	(erc-speak-region): `propertize' --> `erc-propertize'.
+
+	* erc-dcc.el (erc-dcc-chat-parse-output): `propertize' -->
+	`erc-propertize'.
+
+	* erc-button.el (erc-button-add-button): Take erc-fill-prefix into
+	account when wrapping URLs.
+
+	* erc-bbdb.el (erc-bbdb-elide-display): Doc fix.
+
+	* erc-backend.el (define-erc-response-handler): Doc fix.
+
+2006-01-22  Michael Olson  <mwolson@gnu.org>
+
+	* erc.el (erc-update-modules): Use `require' instead of `load',
+	but prevent it from causing errors, in order to preserve the
+	previous behavior.
+
+2006-01-21  Michael Olson  <mwolson@gnu.org>
+
+	* FOR-RELEASE (Source): Mark cl task as done.
+
+	* Makefile (erc-auto.el): Call erc-generate-autoloads rather than
+	generate-autoloads.
+	(erc-auto.el, %.elc): Don't show command, just its output.
+
+	* NEWS: Add items from 2005-01-01 to 2005-08-13.
+
+	* debian/copyright (Copyright): Update.
+
+	* erc-auto.in (erc-generate-autoloads): Rename from
+	generate-autoloads.
+
+	* erc.el, erc-autoaway.el, erc-backend.el: Use
+	erc-server-process-alive instead of erc-process-alive.
+
+	* erc.el, erc-backend.el, erc-ezbounce.el, erc-list.el,
+	erc-log.el, erc-match.el, erc-nets.el, erc-netsplit.el,
+	erc-nicklist.el, erc-nickserv.el, erc-notify.el, erc-pcomplete.el:
+	Use (eval-when-compile (require 'cl)), so that compilation doesn't
+	fail.
+
+	* erc-fill.el, erc-truncate.el: Whitespace munging.
+
+	* erc.el: Update copyright notice.  Remove eval-after-load code.
+	(erc-with-buffer): Docfix.
+	(erc-once-with-server-event, erc-once-with-server-event-global)
+	(erc-with-buffer, erc-with-all-buffers-of-server): Use erc-gensym
+	instead of gensym.
+	(erc-banlist-update): Use erc-delete-if instead of delete-if.
+	(erc): Call `erc-update-modules' here.
+
+	* erc-backend.el: Require 'erc-compat to minimize compiler
+	warnings.
+	(erc-decode-parsed-server-response): Docfix.
+	(erc-server-process-alive): Move here from erc.el and rename from
+	`erc-process-alive'.
+	(erc-server-send, erc-remove-channel-users): Make sure process is
+	alive before sending data to it.
+
+	* erc-bbdb.el: Update copyright years.
+	(erc-bbdb-whois): Remove overexuberant comment.
+
+	* erc-button.el: Require erc-fill, since we make liberal use of
+	`erc-fill-column'.
+
+	* erc-compat.el (erc-const-expr-p, erc-list*, erc-assert): New
+	functions, the latter of which provides an `assert' equivalent.
+	(erc-remove-if-not): New function that provides a simple
+	implementation of `remove-if-not'.
+	(erc-gensym): New function that provides a simple implementation
+	of `gensym'.
+	(erc-delete-if): New function that provides a simple
+	implementation of `delete-if'.
+	(erc-member-if): New function that provides a simple
+	implementation of `member-if'.
+	(field-end): Remove this, since it is unused, and later versions
+	of XEmacs have this function already.
+	(erc-function-arglist): Moved here from erc.el.
+	(erc-delete-dups): New compatibility function for dealing with
+	XEmacs.
+	(erc-subseq): New function copied from cl-extra.el.
+
+	* erc-dcc.el: Require pcomplete during compilation to avoid
+	compiler warnings.
+	(erc-unpack-int, erc-dcc-send-filter)
+	(erc-dcc-get-filter): Use erc-assert instead of assert.
+	(pcomplete/erc-mode/DCC): Use erc-remove-if-not instead of
+	remove-if-not.
+
+	* erc-match.el (erc-log-matches): Fix compiler warning.
+
+	* erc-nicklist.el: Update copyright notice.
+	(erc-nicklist-menu): Change use of caadr to (car (cadr ...)).
+	(erc-nicklist-bitlbee-connected-p): Remove.
+	(erc-nicklist-insert-medium-name-or-icon): Accept channel
+	argument.  Use it to determine whether we are on bitlbee.  Now
+	that bitlbee names its channel "&bitlbee", this is trivial.
+	(erc-nicklist-insert-contents): Pass channel as specified above.
+	Don't try to determine whether we are on bitlbee here.
+	(erc-nicklist-channel-users-info): Use erc-remove-if-not instead
+	of remove-if-not.
+	(erc-nicklist-search-for-nick): Use erc-member-if instead of
+	member-if.
+
+	* erc-notify.el (erc-notify-QUIT): Use erc-delete-if with a
+	partially-evaluated lambda expression instead of `delete' and
+	`find'.
+
+	* erc-track.el: Use erc-assert.
+	(erc-track-modified-channels): Remove use of `return'.
+	(erc-track-modified-channels): Use `cadr' instead of `second',
+	since otherwise we would need yet another eval-when-compile line.
+
+2006-01-19  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-process-sentinel-1): Remove attempt to
+	detect SIGPIPE, since it doesn't work.
+
+2006-01-10  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-spelling.el: Updated copyright years.
+	(define-erc-module): Enable/disable `flyspell-mode' for all open
+	ERC buffers as well.
+	(erc-spelling-dictionaries): Reworded customize description.
+
+	* erc.el (erc-command-symbol): New function.
+	(erc-extract-command-from-line): Use `erc-command-symbol'.  This
+	fixes a bug where "Symbol's function definition is void:
+	erc-cmd-LIST" would be shown after typing /list at the prompt (the
+	command was interned because erc-menu.el uses it and is enabled by
+	default whereas erc-list.el is not).
+
+	* NEWS: Started a list of renamed variables.
+
+	* erc.el: Reworded the message sent when defining variable
+	aliases.
+	(erc-command-indicator-face): Doc fix.
+	(erc-modules): Enable the match module by default which makes
+	current nickname highlighting on as the default.
+
+	* erc-button.el: Updated copyright years.
+	(erc-button): New face.
+	(erc-button-face): Use `erc-button'.
+	(erc-button-nickname-face): New customizable variable.
+	(erc-button-add-nickname-buttons, erc-button-add-buttons-1): Send
+	new argument to `erc-button-add-button'.
+	(erc-button-add-button): Doc fix.  Added new argument to function
+	definition, NICK-P.  If it's a nickname, use
+	`erc-button-nickname-face', otherwise use `erc-button-face'.  This
+	makes channel tracking and buttons work better together when
+	`erc-button-buttonize-nicks' is enabled, since there is a nickname
+	on just about every line.
+
+	* erc-track.el (erc-track-use-faces): Doc fix.
+	(erc-track-faces-priority-list): Added `erc-button' to list.
+	(erc-track-priority-faces-only): Doc fix.
+
+2006-01-09  Diane Murray  <disumu@x3y2z1.net>
+
+	* erc-button.el (erc-button-url-regexp): Use `concat' so the
+	regexp is not one long line.
+	(erc-button-alist): Fixed so that customizing works correctly.
+	Reorganized.  Removed lambda functions with more than two lines.
+	Doc fix.
+	(erc-button-describe-symbol, erc-button-beats-to-time): New
+	functions.  Moved from `erc-button-alist'.
+
+2006-01-07  Michael Olson  <mwolson@gnu.org>
+
+	* erc-backend.el (erc-process-sentinel-1): Don't try to re-open a
+	process if a SIGPIPE occurs.  This happens when a new message
+	comes in at the same time a /quit is requested.
+	(erc-process-sentinel): Use string-match rather than string= to do
+	these comparisons.  Matching literal newlines makes me nervous.
+
+	* erc-track.el (erc-track-remove-from-mode-line): Handle case
+	where global-mode-string is not a list.  Emacs22 permits this.
+
+
+See ChangeLog.05 for earlier changes.
+
+    Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+  This file is part of GNU Emacs.
+
+  GNU Emacs is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2, or (at your option)
+  any later version.
+
+  GNU Emacs is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with GNU Emacs; see the file COPYING.  If not, write to the
+  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  Boston, MA 02110-1301, USA.
+
+;; 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	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-autoaway.el	Wed Apr 11 00:17:47 2007 +0000
@@ -40,6 +40,49 @@
   "The Emacs idletimer.
 This is only used when `erc-autoaway-idle-method' is set to 'emacs.")
 
+(defvar erc-autoaway-last-sent-time (erc-current-time)
+  "The last time the user sent something.")
+
+(defvar erc-autoaway-caused-away nil
+  "Indicates whether this module was responsible for setting the
+user's away status.")
+
+(eval-when-compile (defvar erc-autoaway-idle-seconds))
+
+(defun erc-autoaway-reestablish-idletimer ()
+  "Reestablish the Emacs idletimer.
+If `erc-autoaway-idle-method' is 'emacs, you must call this
+function each time you change `erc-autoaway-idle-seconds'."
+  (interactive)
+  (when erc-autoaway-idletimer
+    (erc-cancel-timer erc-autoaway-idletimer))
+  (setq erc-autoaway-idletimer
+	(run-with-idle-timer erc-autoaway-idle-seconds
+			     t
+			     'erc-autoaway-set-away
+			     erc-autoaway-idle-seconds)))
+
+(defun erc-autoaway-some-server-buffer ()
+  "Return some ERC server buffer if its connection is alive.
+If none is found, return nil."
+  (car (erc-buffer-list #'erc-open-server-buffer-p)))
+
+(defun erc-autoaway-insinuate-maybe (&optional server &rest ignored)
+  "Add autoaway reset function to `post-command-hook' if at least one
+ERC process is alive.
+
+This is used when `erc-autoaway-idle-method' is 'user."
+  (when (or server (erc-autoaway-some-server-buffer))
+    (add-hook 'post-command-hook 'erc-autoaway-reset-idle-user)))
+
+(defun erc-autoaway-remove-maybe (&rest ignored)
+  "Remove the autoaway reset function from `post-command-hook' if
+no ERC process is alive.
+
+This is used when `erc-autoaway-idle-method' is 'user."
+  (unless (erc-autoaway-some-server-buffer)
+    (remove-hook 'post-command-hook 'erc-autoaway-reset-idle-user)))
+
 ;;;###autoload (autoload 'erc-autoaway-mode "erc-autoaway")
 (define-erc-module autoaway nil
   "In ERC autoaway mode, you can be set away automatically.
@@ -65,24 +108,31 @@
 Related variables: `erc-public-away-p' and `erc-away-nickname'."
   ;; Enable:
   ((when (boundp 'erc-autoaway-idle-method)
+     (add-hook 'erc-connect-pre-hook 'erc-autoaway-reset-indicators)
+     (setq erc-autoaway-last-sent-time (erc-current-time))
      (cond
       ((eq erc-autoaway-idle-method 'irc)
        (add-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc)
        (add-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc))
       ((eq erc-autoaway-idle-method 'user)
-       (add-hook 'post-command-hook 'erc-autoaway-reset-idle-user))
+       (add-hook 'erc-after-connect 'erc-autoaway-insinuate-maybe)
+       (add-hook 'erc-disconnected-hook 'erc-autoaway-remove-maybe)
+       (erc-autoaway-insinuate-maybe))
       ((eq erc-autoaway-idle-method 'emacs)
        (erc-autoaway-reestablish-idletimer)))
      (add-hook 'erc-timer-hook 'erc-autoaway-possibly-set-away)
      (add-hook 'erc-server-305-functions 'erc-autoaway-reset-indicators)))
   ;; Disable:
   ((when (boundp 'erc-autoaway-idle-method)
+     (remove-hook 'erc-connect-pre-hook 'erc-autoaway-reset-indicators)
      (cond
       ((eq erc-autoaway-idle-method 'irc)
        (remove-hook 'erc-send-completed-hook 'erc-autoaway-reset-idle-irc)
        (remove-hook 'erc-server-001-functions 'erc-autoaway-reset-idle-irc))
       ((eq erc-autoaway-idle-method 'user)
-       (remove-hook 'post-command-hook 'erc-autoaway-reset-idle-user))
+       (remove-hook 'post-command-hook 'erc-autoaway-reset-idle-user)
+       (remove-hook 'erc-after-connect 'erc-autoaway-insinuate-maybe)
+       (remove-hook 'erc-disconnected-hook 'erc-autoaway-remove-maybe))
       ((eq erc-autoaway-idle-method 'emacs)
        (erc-cancel-timer erc-autoaway-idletimer)
        (setq erc-autoaway-idletimer nil)))
@@ -104,9 +154,12 @@
 		 (const :tag "Emacs idle time" emacs)
 		 (const :tag "Last IRC action" irc))
   :set (lambda (sym val)
-	 (erc-autoaway-disable)
-	 (set-default sym val)
-	 (erc-autoaway-enable)))
+	 (if erc-autoaway-mode
+	     (progn
+	       (erc-autoaway-disable)
+	       (set sym val)
+	       (erc-autoaway-enable))
+	   (set sym val))))
 
 (defcustom erc-auto-set-away t
   "*If non-nil, set away after `erc-autoaway-idle-seconds' seconds of idling.
@@ -133,21 +186,6 @@
   :group 'erc-autoaway
   :type 'regexp)
 
-(eval-when-compile (defvar erc-autoaway-idle-seconds))
-
-(defun erc-autoaway-reestablish-idletimer ()
-  "Reestablish the Emacs idletimer.
-If `erc-autoaway-idle-method' is 'emacs, you must call this
-function each time you change `erc-autoaway-idle-seconds'."
-  (interactive)
-  (when erc-autoaway-idletimer
-    (erc-cancel-timer erc-autoaway-idletimer))
-  (setq erc-autoaway-idletimer
-	(run-with-idle-timer erc-autoaway-idle-seconds
-			     t
-			     'erc-autoaway-set-away
-			     erc-autoaway-idle-seconds)))
-
 (defcustom erc-autoaway-idle-seconds 1800
   "*Number of seconds after which ERC will set you automatically away.
 If you are changing this variable using lisp instead of customizing it,
@@ -167,19 +205,12 @@
   :group 'erc-autoaway
   :type 'string)
 
-(defvar erc-autoaway-last-sent-time (erc-current-time)
-  "The last time the user sent something.")
-
-(defvar erc-autoaway-caused-away nil
-  "Indicates whether this module was responsible for setting the
-user's away status.")
-
 (defun erc-autoaway-reset-idle-user (&rest stuff)
   "Reset the stored user idle time.
 This is one global variable since a user talking on one net can
 talk on another net too."
   (when erc-auto-discard-away
-    (erc-autoaway-set-back))
+    (erc-autoaway-set-back #'erc-autoaway-remove-maybe))
   (setq erc-autoaway-last-sent-time (erc-current-time)))
 
 (defun erc-autoaway-reset-idle-irc (line &rest stuff)
@@ -192,12 +223,24 @@
     (erc-autoaway-set-back))
   (setq erc-autoaway-last-sent-time (erc-current-time)))
 
-(defun erc-autoaway-set-back ()
-  "Discard the away state globally."
-  (let ((server-buffer (car (erc-buffer-list #'erc-server-buffer-p))))
-    (when (and erc-autoaway-caused-away
-	       (with-current-buffer server-buffer (erc-away-p)))
-      (erc-cmd-GAWAY ""))))
+(defun erc-autoaway-set-back (&optional none-alive-func)
+  "Discard the away state globally.
+
+NONE-ALIVE-FUNC is the function to call if no ERC processes are alive."
+  (let ((server-buffer (erc-autoaway-some-server-buffer)))
+    (if (and erc-autoaway-caused-away
+	     (buffer-live-p server-buffer)
+	     (with-current-buffer server-buffer erc-away))
+	(erc-cmd-GAWAY "")
+      (when none-alive-func (funcall none-alive-func)))))
+
+(defun erc-autoaway-some-open-server-buffer ()
+  "Return some ERC server buffer if its connection is alive and the
+user is not away.
+If none is found, return nil."
+  (car (erc-buffer-list (lambda ()
+			  (and (erc-open-server-buffer-p)
+			       (not erc-away))))))
 
 (defun erc-autoaway-possibly-set-away (current-time)
   "Set autoaway when `erc-auto-set-away' is true and the idletime is
@@ -207,7 +250,7 @@
   ;; whenever the server sends something to the client.
   (when (and erc-auto-set-away
 	     (not erc-autoaway-caused-away)
-	     (not (erc-away-p)))
+	     (erc-autoaway-some-open-server-buffer))
     (let ((idle-time (erc-time-diff erc-autoaway-last-sent-time
 				    current-time)))
       (when (>= idle-time erc-autoaway-idle-seconds)
@@ -215,15 +258,17 @@
 	 nil 'notice nil
 	 (format "Setting automatically away after %i seconds of idle-time"
 		 idle-time))
-	(erc-autoaway-set-away idle-time)))))
+	(erc-autoaway-set-away idle-time t)))))
 
-(defun erc-autoaway-set-away (idle-time)
-  "Set the away state globally."
+(defun erc-autoaway-set-away (idle-time &optional notest)
+  "Set the away state globally.
+
+If NOTEST is specified, do not check to see whether there is an
+activer server buffer available."
   ;; Note that the idle timer runs, even when Emacs is inactive.  In
   ;; order to prevent flooding when we connect, we test for an
   ;; existing process.
-  (when (and (erc-server-process-alive)
-	     (not (erc-away-p)))
+  (when (or notest (erc-autoaway-some-open-server-buffer))
     (setq erc-autoaway-caused-away t)
     (erc-cmd-GAWAY (format erc-autoaway-message idle-time))))
 
--- a/lisp/erc/erc-backend.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-backend.el	Wed Apr 11 00:17:47 2007 +0000
@@ -174,9 +174,15 @@
 
 ;;; Server and connection state
 
+(defvar erc-server-ping-timer-alist nil
+  "Mapping of server buffers to their specific ping timer.")
+
 (defvar erc-server-connected nil
-  "Non-nil if the `current-buffer' is associated with an open IRC connection.
-This variable is buffer-local.")
+  "Non-nil if the current buffer has been used by ERC to establish
+an IRC connection.
+
+If you wish to determine whether an IRC connection is currently
+active, use the `erc-server-process-alive' function instead.")
 (make-variable-buffer-local 'erc-server-connected)
 
 (defvar erc-server-reconnect-count 0
@@ -187,10 +193,23 @@
   "Non-nil if the user requests a quit.")
 (make-variable-buffer-local 'erc-server-quitting)
 
+(defvar erc-server-reconnecting nil
+  "Non-nil if the user requests an explicit reconnect, and the
+current IRC process is still alive.")
+(make-variable-buffer-local 'erc-server-reconnecting)
+
+(defvar erc-server-timed-out nil
+  "Non-nil if the IRC server failed to respond to a ping.")
+(make-variable-buffer-local 'erc-server-timed-out)
+
 (defvar erc-server-banned nil
   "Non-nil if the user is denied access because of a server ban.")
 (make-variable-buffer-local 'erc-server-banned)
 
+(defvar erc-server-error-occurred nil
+  "Non-nil if the user triggers some server error.")
+(make-variable-buffer-local 'erc-server-error-occurred)
+
 (defvar erc-server-lines-sent nil
   "Line counter.")
 (make-variable-buffer-local 'erc-server-lines-sent)
@@ -210,6 +229,11 @@
 This is useful for flood protection.")
 (make-variable-buffer-local 'erc-server-last-ping-time)
 
+(defvar erc-server-last-received-time nil
+  "Time the last message was received from the server.
+This is useful for detecting hung connections.")
+(make-variable-buffer-local 'erc-server-last-received-time)
+
 (defvar erc-server-lag nil
   "Calculated server lag time in seconds.
 This variable is only set in a server buffer.")
@@ -387,11 +411,24 @@
 
 ;; Ping handling
 
-(defcustom erc-server-send-ping-interval 90
+(defcustom erc-server-send-ping-interval 30
   "*Interval of sending pings to the server, in seconds.
 If this is set to nil, pinging the server is disabled."
   :group 'erc-server
-  :type '(choice (const nil) (integer :tag "Seconds")))
+  :type '(choice (const :tag "Disabled" nil)
+                 (integer :tag "Seconds")))
+
+(defcustom erc-server-send-ping-timeout 120
+  "*If the time between ping and response is greater than this, reconnect.
+The time is in seconds.
+
+This must be greater than or equal to the value for
+`erc-server-send-ping-interval'.
+
+If this is set to nil, never try to reconnect."
+  :group 'erc-server
+  :type '(choice (const :tag "Disabled" nil)
+                 (integer :tag "Seconds")))
 
 (defvar erc-server-ping-handler nil
   "This variable holds the periodic ping timer.")
@@ -424,20 +461,40 @@
     (upcase-word 1)
     (buffer-string)))
 
-(defun erc-server-setup-periodical-server-ping (&rest ignore)
-  "Set up a timer to periodically ping the current server."
-  (and erc-server-ping-handler (erc-cancel-timer erc-server-ping-handler))
-  (when erc-server-send-ping-interval
-    (setq erc-server-ping-handler
-          (run-with-timer
-           4 erc-server-send-ping-interval
-           (lambda (buf)
-             (when (buffer-live-p buf)
-               (with-current-buffer buf
-                 (erc-server-send
-                  (format "PING %.0f"
-                          (erc-current-time))))))
-           (current-buffer)))))
+(defun erc-server-send-ping (buf)
+  "Send a ping to the IRC server buffer in BUF.
+Additionally, detect whether the IRC process has hung."
+  (if (buffer-live-p buf)
+      (with-current-buffer buf
+        (if (and erc-server-send-ping-timeout
+                 (>
+                  (erc-time-diff (erc-current-time)
+                                 erc-server-last-received-time)
+                  erc-server-send-ping-timeout))
+            (progn
+              ;; if the process is hung, kill it
+              (setq erc-server-timed-out t)
+              (delete-process erc-server-process))
+          (erc-server-send (format "PING %.0f" (erc-current-time)))))
+    ;; remove timer if the server buffer has been killed
+    (let ((timer (assq buf erc-server-ping-timer-alist)))
+      (when timer
+        (erc-cancel-timer (cdr timer))
+        (setcdr timer nil)))))
+
+(defun erc-server-setup-periodical-ping (buffer)
+  "Set up a timer to periodically ping the current server.
+The current buffer is given by BUFFER."
+  (with-current-buffer buffer
+    (and erc-server-ping-handler (erc-cancel-timer erc-server-ping-handler))
+    (when erc-server-send-ping-interval
+      (setq erc-server-ping-handler (run-with-timer
+                                     4 erc-server-send-ping-interval
+                                     #'erc-server-send-ping
+                                     buffer))
+      (setq erc-server-ping-timer-alist (cons (cons buffer
+                                                    erc-server-ping-handler)
+                                              erc-server-ping-timer-alist)))))
 
 (defun erc-server-process-alive ()
   "Return non-nil when `erc-server-process' is open or running."
@@ -447,40 +504,47 @@
 
 ;;;; Connecting to a server
 
-(defun erc-server-connect (server port)
-  "Perform the connection and login.
-We will store server variables in the current buffer."
+(defun erc-server-connect (server port buffer)
+  "Perform the connection and login using the specified SERVER and PORT.
+We will store server variables in the buffer given by BUFFER."
   (let ((msg (erc-format-message 'connect ?S server ?p port)))
     (message "%s" msg)
-    (setq erc-server-process
-          (funcall erc-server-connect-function
-                   (format "erc-%s-%s" server port)
-                   (current-buffer) server port))
-    (message "%s...done" msg))
-  ;; Misc server variables
-  (setq erc-server-quitting nil)
-  (setq erc-server-banned nil)
-  (setq erc-server-last-sent-time (erc-current-time))
-  (setq erc-server-last-ping-time (erc-current-time))
-  (setq erc-server-lines-sent 0)
-  ;; last peers (sender and receiver)
-  (setq erc-server-last-peers '(nil . nil))
-  ;; process handlers
-  (set-process-sentinel erc-server-process 'erc-process-sentinel)
-  (set-process-filter erc-server-process 'erc-server-filter-function)
-  ;; we do our own encoding and decoding
-  (when (fboundp 'set-process-coding-system)
-    (set-process-coding-system erc-server-process 'raw-text))
-  (set-marker (process-mark erc-server-process) (point))
+    (let ((process (funcall erc-server-connect-function
+                            (format "erc-%s-%s" server port)
+                            nil server port)))
+      (message "%s...done" msg)
+      ;; Misc server variables
+      (with-current-buffer buffer
+        (setq erc-server-process process)
+        (setq erc-server-quitting nil)
+        (setq erc-server-reconnecting nil)
+        (setq erc-server-timed-out nil)
+        (setq erc-server-banned nil)
+        (setq erc-server-error-occurred nil)
+        (let ((time (erc-current-time)))
+          (setq erc-server-last-sent-time time)
+          (setq erc-server-last-ping-time time)
+          (setq erc-server-last-received-time time))
+        (setq erc-server-lines-sent 0)
+        ;; last peers (sender and receiver)
+        (setq erc-server-last-peers '(nil . nil)))
+      ;; we do our own encoding and decoding
+      (when (fboundp 'set-process-coding-system)
+        (set-process-coding-system process 'raw-text))
+      ;; process handlers
+      (set-process-sentinel process 'erc-process-sentinel)
+      (set-process-filter process 'erc-server-filter-function)
+      (set-process-buffer process buffer)))
   (erc-log "\n\n\n********************************************\n")
-  (message (erc-format-message 'login ?n (erc-current-nick)))
+  (message (erc-format-message
+            'login ?n
+            (with-current-buffer buffer (erc-current-nick))))
   ;; wait with script loading until we receive a confirmation (first
   ;; MOTD line)
   (if (eq erc-server-connect-function 'open-network-stream-nowait)
       ;; it's a bit unclear otherwise that it's attempting to establish a
       ;; connection
-      (erc-display-message nil nil (current-buffer)
-                           "Opening connection..\n")
+      (erc-display-message nil nil buffer "Opening connection..\n")
     (erc-login)))
 
 (defun erc-server-reconnect ()
@@ -501,6 +565,7 @@
 (defun erc-server-filter-function (process string)
   "The process filter for the ERC server."
   (with-current-buffer (process-buffer process)
+    (setq erc-server-last-received-time (erc-current-time))
     ;; If you think this is written in a weird way - please refer to the
     ;; docstring of `erc-server-processing-p'
     (if erc-server-processing-p
@@ -529,16 +594,20 @@
 (defsubst erc-server-reconnect-p (event)
   "Return non-nil if ERC should attempt to reconnect automatically.
 EVENT is the message received from the closed connection process."
-  (and erc-server-auto-reconnect
-       (not erc-server-banned)
-       ;; make sure we don't infinitely try to reconnect, unless the
-       ;; user wants that
-       (or (eq erc-server-reconnect-attempts t)
-           (and (integerp erc-server-reconnect-attempts)
-                (< erc-server-reconnect-count erc-server-reconnect-attempts)))
-       (not (string-match "^deleted" event))
-       ;; open-network-stream-nowait error for connection refused
-       (not (string-match "^failed with code 111" event))))
+  (or erc-server-reconnecting
+      (and erc-server-auto-reconnect
+           (not erc-server-banned)
+           (not erc-server-error-occurred)
+           ;; make sure we don't infinitely try to reconnect, unless the
+           ;; user wants that
+           (or (eq erc-server-reconnect-attempts t)
+               (and (integerp erc-server-reconnect-attempts)
+                    (< erc-server-reconnect-count
+                       erc-server-reconnect-attempts)))
+           (or erc-server-timed-out
+               (not (string-match "^deleted" event)))
+           ;; open-network-stream-nowait error for connection refused
+           (not (string-match "^failed with code 111" event)))))
 
 (defun erc-process-sentinel-1 (event)
   "Called when `erc-process-sentinel' has decided that we're disconnecting.
@@ -562,6 +631,7 @@
         (if (erc-server-reconnect-p event)
             (condition-case err
                 (progn
+                  (setq erc-server-reconnecting nil)
                   (erc-server-reconnect)
                   (setq erc-server-reconnect-count 0))
               (error (when (integerp erc-server-reconnect-attempts)
@@ -611,6 +681,7 @@
   "Return the coding system or cons cell appropriate for TARGET.
 This is determined via `erc-encoding-coding-alist' or
 `erc-server-coding-system'."
+  (unless target (setq target (erc-default-target)))
   (or (when target
         (let ((case-fold-search t))
           (catch 'match
@@ -656,14 +727,11 @@
 protection algorithm."
   (erc-log (concat "erc-server-send: " string "(" (buffer-name) ")"))
   (setq erc-server-last-sent-time (erc-current-time))
-  (let ((buf (erc-server-buffer))
-        (encoding (erc-coding-system-for-target
-                   (or target (erc-default-target)))))
+  (let ((encoding (erc-coding-system-for-target target)))
     (when (consp encoding)
       (setq encoding (car encoding)))
-    (if (and buf
-             (erc-server-process-alive))
-        (with-current-buffer buf
+    (if (erc-server-process-alive)
+        (erc-with-server-buffer
           (let ((str (concat string "\r\n")))
             (if forcep
                 (progn
@@ -903,10 +971,8 @@
   (let ((hook (or (erc-get-hook (erc-response.command message))
                   'erc-default-server-functions)))
     (run-hook-with-args-until-success hook process message)
-    (let ((server-buffer (erc-server-buffer)))
-      (when (buffer-live-p server-buffer)
-        (with-current-buffer server-buffer
-          (run-hook-with-args 'erc-timer-hook (erc-current-time)))))))
+    (erc-with-server-buffer
+      (run-hook-with-args 'erc-timer-hook (erc-current-time)))))
 
 (add-hook 'erc-default-server-functions 'erc-handle-unknown-server-response)
 
@@ -1062,6 +1128,7 @@
 
 (define-erc-response-handler (ERROR)
   "Handle an ERROR command from the server." nil
+  (setq erc-server-error-occurred t)
   (erc-display-message
    parsed 'error nil 'ERROR
    ?s (erc-response.sender parsed) ?c (erc-response.contents parsed)))
@@ -1446,6 +1513,9 @@
 See `erc-display-server-message'." nil
   (erc-display-server-message proc parsed))
 
+(define-erc-response-handler (290)
+  "Handle dancer-ircd CAPAB messages." nil nil)
+
 (define-erc-response-handler (301)
   "AWAY notice." nil
   (erc-display-message parsed 'notice 'active 's301
--- a/lisp/erc/erc-button.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-button.el	Wed Apr 11 00:17:47 2007 +0000
@@ -56,10 +56,12 @@
   "This mode buttonizes all messages according to `erc-button-alist'."
   ((add-hook 'erc-insert-modify-hook 'erc-button-add-buttons 'append)
    (add-hook 'erc-send-modify-hook 'erc-button-add-buttons 'append)
-   (add-hook 'erc-complete-functions 'erc-button-next))
+   (add-hook 'erc-complete-functions 'erc-button-next)
+   (add-hook 'erc-mode-hook 'erc-button-add-keys))
   ((remove-hook 'erc-insert-modify-hook 'erc-button-add-buttons)
    (remove-hook 'erc-send-modify-hook 'erc-button-add-buttons)
-   (remove-hook 'erc-complete-functions 'erc-button-next)))
+   (remove-hook 'erc-complete-functions 'erc-button-next)
+   (remove-hook 'erc-mode-hook 'erc-button-add-keys)))
 
 ;; Make XEmacs use `erc-button-face'.
 (when (featurep 'xemacs)
@@ -241,6 +243,16 @@
 This syntax table should make all the legal nick characters word
 constituents.")
 
+(defvar erc-button-keys-added nil
+  "Internal variable used to keep track of whether we've added the
+global-level ERC button keys yet.")
+
+(defun erc-button-add-keys ()
+  "Add ERC mode-level button movement keys.  This is only done once."
+  (unless erc-button-keys-added
+    (define-key erc-mode-map (kbd "<backtab>") 'erc-button-previous)
+    (setq erc-button-keys-added t)))
+
 (defun erc-button-add-buttons ()
   "Find external references in the current buffer and make buttons of them.
 \"External references\" are things like URLs, as
--- a/lisp/erc/erc-capab.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-capab.el	Wed Apr 11 00:17:47 2007 +0000
@@ -56,8 +56,10 @@
 ;; (erc-capab-identify-mode 1)
 
 ;; `erc-capab-identify-prefix' will now be added to the beginning of
-;; unidentified users' nicknames.  The default is an asterisk, "*".  If
-;; the value of this variable is nil or you disable this module (see
+;; unidentified users' nicknames.  The default is an asterisk, "*".
+;; You can customize the prefix and the face used to display it,
+;; `erc-capab-identify-unidentified'.  If the value of
+;; `erc-capab-identify-prefix' is nil or you disable this module (see
 ;; `erc-capab-identify-disable'), no prefix will be inserted, but the
 ;; flag sent by the server will still be stripped.
 
@@ -73,14 +75,19 @@
   :group 'erc)
 
 (defcustom erc-capab-identify-prefix "*"
-  "The prefix used for unidentified users."
+  "The prefix used for unidentified users.
+
+If you change this from the default \"*\", be sure to use a
+character not found in IRC nicknames to avoid confusion."
   :group 'erc-capab
   :type '(choice string (const nil)))
 
-;;; Define module:
+(defface erc-capab-identify-unidentified '((t)) ; same as `erc-default-face'
+  "Face to use for `erc-capab-identify-prefix'."
+  :group 'erc-capab
+  :group 'erc-faces)
 
-(define-erc-response-handler (290)
-  "Handle dancer-ircd CAPAB messages." nil nil)
+;;; Define module:
 
 ;;;###autoload (autoload 'erc-capab-identify-mode "erc-capab" nil t)
 (define-erc-module capab-identify nil
@@ -124,9 +131,9 @@
 These arguments are sent to this function when called as a hook in
 `erc-server-005-functions'."
   (unless erc-capab-identify-sent
-    (erc-capab-send-identify-messages)))
+    (erc-capab-identify-send-messages)))
 
-(defun erc-capab-send-identify-messages ()
+(defun erc-capab-identify-send-messages ()
   "Send CAPAB IDENTIFY messages if the server supports it."
   (when (and (stringp erc-server-version)
              (string-match "^\\(dancer-ircd\\|hyperion\\)" erc-server-version)
@@ -175,7 +182,7 @@
   (when (and erc-capab-identify-prefix
              (erc-with-server-buffer erc-capab-identify-activated))
     (goto-char (or (erc-find-parsed-property) (point-min)))
-    (let ((nickname (erc-capab-get-unidentified-nickname
+    (let ((nickname (erc-capab-identify-get-unidentified-nickname
                      (erc-get-parsed-vector (point)))))
       (when (and nickname
                  (goto-char (point-min))
@@ -183,10 +190,9 @@
                  (re-search-forward (regexp-quote nickname) nil t))
         (goto-char (match-beginning 0))
         (insert (erc-propertize erc-capab-identify-prefix
-                                'face (get-char-property (- (point) 1)
-                                                         'face)))))))
+                                'face 'erc-capab-identify-unidentified))))))
 
-(defun erc-capab-get-unidentified-nickname (parsed)
+(defun erc-capab-identify-get-unidentified-nickname (parsed)
   "Return the nickname of the user if unidentified.
 PARSED is an `erc-parsed' response struct."
   (when (and (erc-response-p parsed)
--- a/lisp/erc/erc-compat.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-compat.el	Wed Apr 11 00:17:47 2007 +0000
@@ -161,14 +161,6 @@
 	(setq newseq (cons el newseq))))
     (nreverse newseq)))
 
-;; Provide a simpler replacement for `gensym'.
-(defvar *erc-sym-counter* 0)
-(defun erc-gensym ()
-  "Generate a new uninterned symbol."
-  (let ((num (prog1 *erc-sym-counter*
-	       (setq *erc-sym-counter* (1+ *erc-sym-counter*)))))
-    (make-symbol (format "*erc-sym-%d*" num))))
-
 ;; Copied from cl-extra.el
 (defun erc-subseq (seq start &optional end)
   "Return the subsequence of SEQ from START to END.
--- a/lisp/erc/erc-fill.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-fill.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1,6 +1,7 @@
 ;;; erc-fill.el --- Filling IRC messages in various ways
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2006,
+;;   2007 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <asf@void.at>
 ;;         Mario Lang <mlang@delysid.org>
@@ -187,14 +188,6 @@
       (length (format-time-string erc-timestamp-format))
     0))
 
-(defun erc-restore-text-properties ()
-  "Restore the property 'erc-parsed for the region."
-  (let* ((parsed-posn (text-property-not-all (point-min) (point-max)
-                                             'erc-parsed nil))
-         (parsed-prop (when parsed-posn
-                        (get-text-property parsed-posn 'erc-parsed))))
-    (put-text-property (point-min) (point-max) 'erc-parsed parsed-prop)))
-
 (provide 'erc-fill)
 
 ;;; erc-fill.el ends here
--- a/lisp/erc/erc-ibuffer.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-ibuffer.el	Wed Apr 11 00:17:47 2007 +0000
@@ -127,8 +127,7 @@
 (define-ibuffer-column erc-away (:name "A")
   (if (and erc-server-process
 	   (processp erc-server-process)
-	   (with-current-buffer (process-buffer erc-server-process)
-	     erc-away))
+	   (erc-away-time))
       "A"
     " "))
 
--- a/lisp/erc/erc-identd.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-identd.el	Wed Apr 11 00:17:47 2007 +0000
@@ -42,12 +42,26 @@
 
 (defvar erc-identd-process nil)
 
+(defgroup erc-identd nil
+  "Run a local identd server."
+  :group 'erc)
+
+(defcustom erc-identd-port 8113
+  "Port to run the identd server on if not specified in the argument for
+`erc-identd-start'.
+
+This can be either a string or a number."
+  :group 'erc-identd
+  :type '(choice (const :tag "None" nil)
+		 (integer :tag "Port number")
+		 (string :tag "Port string")))
+
 ;;;###autoload (autoload 'erc-identd-mode "erc-identd")
 (define-erc-module identd nil
   "This mode launches an identd server on port 8113."
-  ((add-hook 'erc-connect-pre-hook 'erc-identd-start)
+  ((add-hook 'erc-connect-pre-hook 'erc-identd-quickstart)
    (add-hook 'erc-disconnected-hook 'erc-identd-stop))
-  ((remove-hook 'erc-connect-pre-hook 'erc-identd-start)
+  ((remove-hook 'erc-connect-pre-hook 'erc-identd-quickstart)
    (remove-hook 'erc-disconnected-hook 'erc-identd-stop)))
 
 (defun erc-identd-filter (proc string)
@@ -71,12 +85,11 @@
 when you need one, without having to install one globally on your
 system."
   (interactive (list (read-string "Serve identd requests on port: " "8113")))
-  (if (null port)
-      (setq port 8113)
-    (if (stringp port)
-	(setq port (string-to-number port))))
-  (if erc-identd-process
-      (delete-process erc-identd-process))
+  (unless port (setq port erc-identd-port))
+  (when (stringp port)
+    (setq port (string-to-number port)))
+  (when erc-identd-process
+    (delete-process erc-identd-process))
   (setq erc-identd-process
 	(make-network-process :name "identd"
 			      :buffer nil
@@ -85,6 +98,11 @@
 			      :filter 'erc-identd-filter))
   (set-process-query-on-exit-flag erc-identd-process nil))
 
+(defun erc-identd-quickstart (&rest ignored)
+  "Start the identd server with the default port.
+The default port is specified by `erc-identd-port'."
+  (erc-identd-start))
+
 ;;;###autoload
 (defun erc-identd-stop (&rest ignore)
   (interactive)
--- a/lisp/erc/erc-log.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-log.el	Wed Apr 11 00:17:47 2007 +0000
@@ -85,7 +85,9 @@
 ;;; Code:
 
 (require 'erc)
-(eval-when-compile (require 'cl))
+(eval-when-compile
+  (require 'erc-networks)
+  (require 'cl))
 
 (defgroup erc-log nil
   "Logging facilities for ERC."
@@ -100,10 +102,12 @@
 SERVER and PORT are the parameters used to connect BUFFERs
 `erc-server-process'."
   :group 'erc-log
-  :type '(choice (const erc-generate-log-file-name-long)
-		 (const erc-generate-log-file-name-short)
-		 (const erc-generate-log-file-name-with-date)
-		 (symbol)))
+  :type '(choice (const :tag "Long style" erc-generate-log-file-name-long)
+		 (const :tag "Long, but with network name rather than server"
+			erc-generate-log-file-name-network)
+		 (const :tag "Short" erc-generate-log-file-name-short)
+		 (const :tag "With date" erc-generate-log-file-name-with-date)
+		 (symbol :tag "Other function")))
 
 (defcustom erc-truncate-buffer-on-save nil
   "Truncate any ERC (channel, query, server) buffer when it is saved."
@@ -197,7 +201,7 @@
 \(setq erc-enable-logging
       (lambda (buffer)
 	(with-current-buffer buffer
-	  (not erc-away))))"
+	  (null (erc-away-time)))))"
   ;; enable
   ((when erc-log-write-after-insert
      (add-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs))
@@ -211,8 +215,7 @@
    ;; append, so that 'erc-initialize-log-marker runs first
    (add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append)
    (dolist (buffer (erc-buffer-list))
-     (when (buffer-live-p buffer)
-       (with-current-buffer buffer (erc-log-setup-logging)))))
+     (erc-log-setup-logging buffer)))
   ;; disable
   ((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs)
    (remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs)
@@ -223,30 +226,38 @@
    (remove-hook 'erc-part-hook 'erc-conditional-save-buffer)
    (remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging)
    (dolist (buffer (erc-buffer-list))
-     (when (buffer-live-p buffer)
-       (with-current-buffer buffer (erc-log-disable-logging))))))
+     (erc-log-disable-logging buffer))))
 
 (define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs)
 
 ;;; functionality referenced from erc.el
-(defun erc-log-setup-logging ()
+(defun erc-log-setup-logging (buffer)
   "Setup the buffer-local logging variables in the current buffer.
-This function is destined to be run from `erc-connect-pre-hook'."
-  (when (erc-logging-enabled)
-    (auto-save-mode -1)
-    (setq buffer-file-name nil)
-    (set (make-local-variable 'write-file-functions)
-	 '(erc-save-buffer-in-logs))
-    (when erc-log-insert-log-on-open
-      (ignore-errors (insert-file-contents (erc-current-logfile))
-		     (move-marker erc-last-saved-position
-				  (1- (point-max)))))))
+This function is destined to be run from `erc-connect-pre-hook'.
+The current buffer is given by BUFFER."
+  (when (erc-logging-enabled buffer)
+    (with-current-buffer buffer
+      (auto-save-mode -1)
+      (setq buffer-file-name nil)
+      (cond ((boundp 'write-file-functions)
+	     (set (make-local-variable 'write-file-functions)
+		  '(erc-save-buffer-in-logs)))
+	    ((boundp 'local-write-file-hooks)
+	     (setq local-write-file-hooks '(erc-save-buffer-in-logs)))
+	    (t
+	     (set (make-local-variable 'write-file-hooks)
+		  '(erc-save-buffer-in-logs))))
+      (when erc-log-insert-log-on-open
+	(ignore-errors (insert-file-contents (erc-current-logfile))
+		       (move-marker erc-last-saved-position
+				    (1- (point-max))))))))
 
-(defun erc-log-disable-logging ()
-  "Disable logging in the current buffer."
-  (when (erc-logging-enabled)
-    (setq buffer-offer-save nil
-	  erc-enable-logging nil)))
+(defun erc-log-disable-logging (buffer)
+  "Disable logging in BUFFER."
+  (when (erc-logging-enabled buffer)
+    (with-current-buffer buffer
+      (setq buffer-offer-save nil
+	    erc-enable-logging nil))))
 
 (defun erc-log-all-but-server-buffers (buffer)
   "Returns t if logging should be enabled in BUFFER.
@@ -340,6 +351,19 @@
     ;; we need a make-safe-file-name function.
     (convert-standard-filename file)))
 
+(defun erc-generate-log-file-name-network (buffer target nick server port)
+  "Generates a log-file name using the network name rather than server name.
+This results in a file name of the form #channel!nick@network.txt.
+This function is a possible value for `erc-generate-log-file-name-function'."
+  (require 'erc-networks)
+  (let ((file (concat
+	       (if target (concat target "!"))
+	       nick "@"
+	       (or (with-current-buffer buffer (erc-network-name)) server)
+	       ".txt")))
+    ;; we need a make-safe-file-name function.
+    (convert-standard-filename file)))
+
 ;;;###autoload
 (defun erc-save-buffer-in-logs (&optional buffer)
   "Append BUFFER contents to the log file, if logging is enabled.
--- a/lisp/erc/erc-match.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-match.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1,6 +1,7 @@
 ;;; erc-match.el --- Highlight messages matching certain regexps
 
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
+;;   2007 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <asf@void.at>
 ;; Keywords: comm, faces
@@ -540,7 +541,7 @@
     (when (and
 	   (or (eq erc-log-matches-flag t)
 	       (and (eq erc-log-matches-flag 'away)
-		    erc-away))
+		    (erc-away-time)))
 	   match-buffer-name)
       (let ((line (format-spec erc-log-match-format
 		   (format-spec-make
@@ -572,7 +573,7 @@
 
 (defun erc-log-matches-come-back (proc parsed)
   "Display a notice that messages were logged while away."
-  (when (and erc-away
+  (when (and (erc-away-time)
 	     (eq erc-log-matches-flag 'away))
     (mapc
      (lambda (match-type)
@@ -583,7 +584,7 @@
 				  (with-current-buffer buffer
 				    (get-text-property (1- (point-max))
 						       'timestamp))))
-		  (away-time     (erc-emacs-time-to-erc-time erc-away)))
+		  (away-time (erc-emacs-time-to-erc-time (erc-away-time))))
 	     (when (and away-time last-msg-time
 			(erc-time-gt last-msg-time away-time))
 	       (erc-display-message
--- a/lisp/erc/erc-menu.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-menu.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1,6 +1,7 @@
 ;; erc-menu.el -- Menu-bar definitions for ERC
 
-;; Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2004, 2005, 2006,
+;;   2007 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <mlang@delysid.org>
 ;; Keywords: comm, processes, menu
@@ -75,8 +76,8 @@
 		(erc-channel-user-op-p (erc-current-nick))]
 	       ["Set a key..." erc-set-channel-key
 		(erc-channel-user-op-p (erc-current-nick))])
-	 ["Leave this channel..." erc-part-from-channel erc-channel-users]
-	 "-")
+	 ["Leave this channel..." erc-part-from-channel erc-channel-users])
+	"-"
 	(list "Pals, fools and other keywords"
 	      ["Add pal..." erc-add-pal]
 	      ["Delete pal..." erc-delete-pal]
--- a/lisp/erc/erc-netsplit.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-netsplit.el	Wed Apr 11 00:17:47 2007 +0000
@@ -184,7 +184,7 @@
 ;;;###autoload
 (defun erc-cmd-WHOLEFT ()
   "Show who's gone."
-  (with-current-buffer (erc-server-buffer)
+  (erc-with-server-buffer
     (if (null erc-netsplit-list)
 	(erc-display-message
 	 nil 'notice 'active
--- a/lisp/erc/erc-networks.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-networks.el	Wed Apr 11 00:17:47 2007 +0000
@@ -317,6 +317,7 @@
   ("Novernet: Random server" Novernet "irc.novernet.com" ((6665 6669) 7000 ))
   ("Nullrouted: Random server" Nullrouted "irc.nullrouted.org" ((6666 6669) 7000 ))
   ("NullusNet: Random server" NullusNet "irc.nullus.net" 6667)
+  ("OFTC: Random server" OFTC "irc.oftc.net" ((6667 6670) 7000))
   ("OpChat: Random server" OpChat "irc.opchat.org" ((6667 6669)))
   ("Othernet: Random server" Othernet "irc.othernet.org" 6667)
   ("Othernet: US, FL, Miami" Othernet "miami.fl.us.othernet.org" 6667)
@@ -611,6 +612,7 @@
     (Novernet "novernet.com")
     (Nullrouted "nullrouted.org")
     (NullusNet "nullus.net")
+    (OFTC "oftc.net")
     (OpChat "opchat.org")
     (Openprojects "openprojects.net")
     (Othernet "othernet.org")
@@ -737,12 +739,12 @@
 
 (defun erc-network ()
   "Return the value of `erc-network' for the current server."
-  (with-current-buffer (erc-server-buffer) erc-network))
+  (erc-with-server-buffer erc-network))
 
 (defun erc-current-network ()
   "Deprecated.  Use `erc-network' instead.  Return the name of this server's
 network as a symbol."
-  (with-current-buffer (erc-server-buffer)
+  (erc-with-server-buffer
     (intern (downcase (symbol-name erc-network)))))
 
 (erc-make-obsolete 'erc-current-network 'erc-network
@@ -750,7 +752,7 @@
 
 (defun erc-network-name ()
   "Returns the name of the current network as a string."
-  (with-current-buffer (erc-server-buffer) (symbol-name erc-network)))
+  (erc-with-server-buffer (symbol-name erc-network)))
 
 (defun erc-set-network-name (proc parsed)
   "Set `erc-network' to the value returned by `erc-determine-network'."
--- a/lisp/erc/erc-notify.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-notify.el	Wed Apr 11 00:17:47 2007 +0000
@@ -121,8 +121,7 @@
 	     (ison-list (delete "" (split-string
 				    (erc-response.contents parsed))))
 	     (new-list ison-list)
-	     (old-list (with-current-buffer (erc-server-buffer)
-			 erc-last-ison)))
+	     (old-list (erc-with-server-buffer erc-last-ison)))
 	(while new-list
 	  (when (not (erc-member-ignore-case (car new-list) old-list))
 	    (run-hook-with-args 'erc-notify-signon-hook server (car new-list))
@@ -204,7 +203,7 @@
   (cond
    ((null args)
     ;; Print current notificated people (online)
-    (let ((ison (with-current-buffer (erc-server-buffer) erc-last-ison)))
+    (let ((ison (erc-with-server-buffer erc-last-ison)))
       (if (not ison)
 	  (erc-display-message
 	   nil 'notice 'active "No ison-list yet!")
--- a/lisp/erc/erc-pcomplete.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-pcomplete.el	Wed Apr 11 00:17:47 2007 +0000
@@ -180,7 +180,7 @@
   (while (pcomplete-here (pcomplete-erc-nicks))))
 
 (defun pcomplete/erc-mode/UNIGNORE ()
-  (pcomplete-here (with-current-buffer (erc-server-buffer) erc-ignore-list)))
+  (pcomplete-here (erc-with-server-buffer erc-ignore-list)))
 
 ;;; Functions that provide possible completions.
 
@@ -233,7 +233,7 @@
 (defun pcomplete-erc-all-nicks (&optional postfix)
   "Returns a list of all nicks on the current server."
   (let (nicks)
-    (with-current-buffer (process-buffer erc-server-process)
+    (erc-with-server-buffer
       (maphash (lambda (nick user)
                  (setq nicks (cons (concat nick postfix) nicks)))
                erc-server-users))
--- a/lisp/erc/erc-ring.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-ring.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1,6 +1,7 @@
 ;; erc-ring.el -- Command history handling for erc using ring.el
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2006,
+;;   2007 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <alex@gnu.org>
 ;; Keywords: comm
--- a/lisp/erc/erc-services.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-services.el	Wed Apr 11 00:17:47 2007 +0000
@@ -168,15 +168,18 @@
   :type '(repeat
 	  (list :tag "Network"
 		(choice :tag "Network name"
-			(const freenode)
-			(const OFTC)
-			(const DALnet)
-			(const GalaxyNet)
-			(const SlashNET)
-			(const BRASnet)
-			(const iip)
+			(const Ars)
 			(const Austnet)
 			(const Azzurra)
+			(const BitlBee)
+			(const BRASnet)
+			(const DALnet)
+			(const freenode)
+			(const GalaxyNet)
+			(const iip)
+			(const OFTC)
+			(const QuakeNet)
+			(const SlashNET)
 			(symbol :tag "Network name"))
 		(repeat :tag "Nickname and password"
 			(cons :tag "Identity"
@@ -186,68 +189,63 @@
 ;; Variables:
 
 (defcustom erc-nickserv-alist
-  '((BitlBee
-     nil
-     nil
+  '((Ars
+     nil nil
+     "Census"
+     "IDENTIFY" nil nil)
+    (Austnet
+     "NickOP!service@austnet.org"
+     "/msg\\s-NickOP@austnet.org\\s-identify\\s-<password>"
+     "nickop@austnet.org"
+     "identify" nil nil)
+    (Azzurra
+     "NickServ!service@azzurra.org"
+     "/ns\\s-IDENTIFY\\s-password"
+     "NickServ"
+     "IDENTIFY" nil nil)
+    (BitlBee
+     nil nil
      "&bitlbee"
-     "identify"
-     nil)
+     "identify" nil nil)
+    (BRASnet
+     "NickServ!services@brasnet.org"
+     "/NickServ\\s-IDENTIFY\\s-senha"
+     "NickServ"
+     "IDENTIFY" nil "")
     (DALnet
      "NickServ!service@dal.net"
      "/msg\\s-NickServ@services.dal.net\\s-IDENTIFY\\s-<password>"
      "NickServ@services.dal.net"
-     "IDENTIFY"
-     nil)
+     "IDENTIFY" nil nil)
     (freenode
      "NickServ!NickServ@services."
      "/msg\\s-NickServ\\s-IDENTIFY\\s-<password>"
      "NickServ"
-     "IDENTIFY"
-     nil)
+     "IDENTIFY" nil nil)
     (GalaxyNet
      "NS!nickserv@galaxynet.org"
      "Please\\s-change\\s-nicks\\s-or\\s-authenticate."
      "NS@services.galaxynet.org"
-     "AUTH"
-     t)
+     "AUTH" t nil)
+    (iip
+     "Trent@anon.iip"
+     "type\\s-/squery\\s-Trent\\s-identify\\s-<password>"
+     "Trent@anon.iip"
+     "IDENTIFY" nil "SQUERY")
+    (OFTC
+     "NickServ!services@services.oftc.net"
+     "type\\s-/msg\\s-NickServ\\s-IDENTIFY\\s-password."
+     "NickServ"
+     "IDENTIFY" nil nil)
+    (QuakeNet
+     nil nil
+     "Q@CServe.quakenet.org"
+     "auth" t nil)
     (SlashNET
      "NickServ!services@services.slashnet.org"
      "/msg\\s-NickServ\\s-IDENTIFY\\s-password"
      "NickServ@services.slashnet.org"
-     "IDENTIFY"
-     nil)
-    (iip
-     "Trent@anon.iip"
-     "type\\s-/squery\\s-Trent\\s-identify\\s-<password>"
-     "Trent@anon.iip"
-     "IDENTIFY"
-     nil
-     "SQUERY")
-    (BRASnet
-     "NickServ!services@brasnet.org"
-     "/NickServ\\s-IDENTIFY\\s-senha"
-     "NickServ"
-     "IDENTIFY"
-     nil
-     "")
-    (Austnet
-     "NickOP!service@austnet.org"
-     "/msg\\s-NickOP@austnet.org\\s-identify\\s-<password>"
-     "nickop@austnet.org"
-     "identify"
-     nil)
-    (Azzurra
-     "NickServ!service@azzurra.org"
-     "/ns\\s-IDENTIFY\\s-password"
-     "NickServ"
-     "IDENTIFY"
-     nil)
-    (OFTC
-     "NickServ!services@services.oftc.net"
-     "/msg\\s-NickServ\\s-IDENTIFY\\s-\^_password"
-     "NickServ"
-     "IDENTIFY"
-     nil))
+     "IDENTIFY" nil nil))
    "Alist of NickServer details, sorted by network.
 Every element in the list has the form
   \(SYMBOL NICKSERV REGEXP NICK KEYWORD USE-CURRENT ANSWER)
@@ -265,8 +263,10 @@
    :type '(repeat
 	   (list :tag "Nickserv data"
 		 (symbol :tag "Network name")
-		 (string :tag "Nickserv's nick!user@host")
-		 (regexp :tag "Identify request sent by Nickserv")
+		 (choice (string :tag "Nickserv's nick!user@host")
+			 (const :tag "No message sent by Nickserv" nil))
+		 (choice (regexp :tag "Identify request sent by Nickserv")
+			 (const :tag "No message sent by Nickserv" nil))
 		 (string :tag "Identify to")
 		 (string :tag "Identify keyword")
 		 (boolean :tag "Use current nick in identify message?")
--- a/lisp/erc/erc-speedbar.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-speedbar.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1,6 +1,7 @@
 ;;; erc-speedbar.el --- Speedbar support for ERC
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2006,
+;;   2007 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <mlang@delysid.org>
 ;; Contributor: Eric M. Ludlam <eric@siege-engine.com>
@@ -113,7 +114,7 @@
   (erase-buffer)
   (let (serverp chanp queryp)
     (with-current-buffer buffer
-      (setq serverp (eq buffer (process-buffer erc-server-process)))
+      (setq serverp (erc-server-buffer-p))
       (setq chanp (erc-channel-p (erc-default-target)))
       (setq queryp (erc-query-buffer-p)))
     (cond (serverp
--- a/lisp/erc/erc-spelling.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-spelling.el	Wed Apr 11 00:17:47 2007 +0000
@@ -41,12 +41,10 @@
   ;; called AFTER the server buffer is initialized.
   ((add-hook 'erc-connect-pre-hook 'erc-spelling-init)
    (dolist (buffer (erc-buffer-list))
-     (when (buffer-live-p buffer)
-       (with-current-buffer buffer (erc-spelling-init)))))
+     (erc-spelling-init buffer)))
   ((remove-hook 'erc-connect-pre-hook 'erc-spelling-init)
    (dolist (buffer (erc-buffer-list))
-     (when (buffer-live-p buffer)
-       (with-current-buffer buffer (flyspell-mode 0))))))
+     (with-current-buffer buffer (flyspell-mode 0)))))
 
 (defcustom erc-spelling-dictionaries nil
   "An alist mapping buffer names to dictionaries.
@@ -60,24 +58,22 @@
                                (string :tag "Dictionary"))))
   :group 'erc-spelling)
 
-(defun erc-spelling-init ()
-  "Enable flyspell mode in an ERC buffer."
-  (let ((name (downcase (buffer-name)))
-        (dicts erc-spelling-dictionaries))
-    (when dicts
-      (while (and dicts
-                  (not (string= name (downcase (caar dicts)))))
-        (setq dicts (cdr dicts)))
-      (setq ispell-local-dictionary
-            (if dicts
-                (cadr (car dicts))
-              (let ((server (erc-server-buffer)))
-                (if server
-                    (with-current-buffer server
-                      ispell-local-dictionary)
-                  nil))))))
-  (setq flyspell-generic-check-word-p 'erc-spelling-flyspell-verify)
-  (flyspell-mode 1))
+(defun erc-spelling-init (buffer)
+  "Enable flyspell mode in an ERC buffer.
+The current buffer is given by BUFFER."
+  (with-current-buffer buffer
+    (let ((name (downcase (buffer-name)))
+          (dicts erc-spelling-dictionaries))
+      (when dicts
+        (while (and dicts
+                    (not (string= name (downcase (caar dicts)))))
+          (setq dicts (cdr dicts)))
+        (setq ispell-local-dictionary
+              (if dicts
+                  (cadr (car dicts))
+                (erc-with-server-buffer ispell-local-dictionary)))))
+    (setq flyspell-generic-check-word-p 'erc-spelling-flyspell-verify)
+    (flyspell-mode 1)))
 
 (defun erc-spelling-unhighlight-word (word)
   "Unhighlight the given WORD.
--- a/lisp/erc/erc-stamp.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-stamp.el	Wed Apr 11 00:17:47 2007 +0000
@@ -147,7 +147,7 @@
 	(error "Timestamp function unbound"))
       (when (and (fboundp erc-insert-away-timestamp-function)
 		 erc-away-timestamp-format
-		 (with-current-buffer (erc-server-buffer) erc-away)
+		 (erc-away-time)
 		 (not erc-timestamp-format))
 	(funcall erc-insert-away-timestamp-function
 		 (erc-format-timestamp ct erc-away-timestamp-format)))
@@ -203,6 +203,7 @@
 	 (s (if ignore-p (make-string len ? ) string)))
     (unless ignore-p (setq erc-timestamp-last-inserted string))
     (erc-put-text-property 0 len 'field 'erc-timestamp s)
+    (erc-put-text-property 0 len 'invisible 'timestamp s)
     (insert s)))
 
 (defun erc-insert-aligned (string pos)
@@ -319,6 +320,21 @@
   (setq erc-hide-timestamps nil)
   (erc-munge-invisibility-spec))
 
+(defun erc-toggle-timestamps ()
+  "Hide or show timestamps in ERC buffers.
+
+Note that timestamps can only be shown for a message using this
+function if `erc-timestamp-format' was set and timestamping was
+enabled when the message was inserted."
+  (interactive)
+  (if erc-hide-timestamps
+      (setq erc-hide-timestamps nil)
+    (setq erc-hide-timestamps t))
+  (mapc (lambda (buffer)
+	  (with-current-buffer buffer
+	    (erc-munge-invisibility-spec)))
+	(erc-buffer-list)))
+
 (defun erc-echo-timestamp (before now)
   "Print timestamp text-property of an IRC message.
 Argument BEFORE is where point was before it got moved and
--- a/lisp/erc/erc-track.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc-track.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1,6 +1,7 @@
 ;;; erc-track.el --- Track modified channel buffers
 
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
+;;   2007 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <mlang@delysid.org>
 ;; Keywords: comm, faces
@@ -46,12 +47,33 @@
   "Track active buffers and show activity in the modeline."
   :group 'erc)
 
+(defcustom erc-track-enable-keybindings 'ask
+  "Whether to enable the ERC track keybindings, namely:
+`C-c C-SPC' and `C-c C-@', which both do the same thing.
+
+The default is to check to see whether these keys are used
+already: if not, then enable the ERC track minor mode, which
+provides these keys.  Otherwise, do not touch the keys.
+
+This can alternatively be set to either t or nil, which indicate
+respectively always to enable ERC track minor mode or never to
+enable ERC track minor mode.
+
+The reason for using this default value is to both (1) adhere to
+the Emacs development guidelines which say not to touch keys of
+the form C-c C-<something> and also (2) to meet the expectations
+of long-time ERC users, many of whom rely on these keybindings."
+  :group 'erc-track
+  :type '(choice (const :tag "Ask, if used already" ask)
+		 (const :tag "Enable" t)
+		 (const :tag "Disable" nil)))
+
 (defcustom erc-track-visibility t
   "Where do we look for buffers to determine their visibility?
 The value of this variable determines, when a buffer is considered
 visible or invisible.  New messages in invisible buffers are tracked,
 while switching to visible buffers when they are tracked removes them
-from the list.  See also `erc-track-when-inactive-mode'.
+from the list.  See also `erc-track-when-inactive'.
 
 Possible values are:
 
@@ -488,45 +510,124 @@
 	 (equal (erc-unique-substrings '("abc" "abcdefg"))
 		'("abc" "abcd"))))))
 
+;;; Minor mode
+
+;; Play nice with other IRC clients (and Emacs development rules) by
+;; making this a minor mode
+
+(defvar erc-track-minor-mode-map (make-sparse-keymap)
+  "Keymap for rcirc track minor mode.")
+
+(define-key erc-track-minor-mode-map (kbd "C-c C-@") 'erc-track-switch-buffer)
+(define-key erc-track-minor-mode-map (kbd "C-c C-SPC")
+  'erc-track-switch-buffer)
+
+;;;###autoload
+(define-minor-mode erc-track-minor-mode
+  "Global minor mode for tracking ERC buffers and showing activity in the
+mode line.
+
+This exists for the sole purpose of providing the C-c C-SPC and
+C-c C-@ keybindings.  Make sure that you have enabled the track
+module, otherwise the keybindings will not do anything useful."
+  :init-value nil
+  :lighter ""
+  :keymap erc-track-minor-mode-map
+  :global t
+  :group 'erc-track)
+
+(defun erc-track-minor-mode-maybe ()
+  "Enable `erc-track-minor-mode', depending on `erc-track-enable-keybindings'."
+  (unless (or erc-track-minor-mode
+	      ;; don't start the minor mode until we have an ERC
+	      ;; process running, because we don't want to prompt the
+	      ;; user while starting Emacs
+	      (null (erc-buffer-list)))
+    (cond ((eq erc-track-enable-keybindings 'ask)
+	   (let ((key (or (and (key-binding (kbd "C-c C-SPC")) "C-SPC")
+			  (and (key-binding (kbd "C-c C-@")) "C-@"))))
+	     (if key
+		 (if (y-or-n-p
+		      (concat "The C-c " key " binding is in use;"
+			      " override it for tracking? "))
+		     (progn
+		       (message (concat "Will change it; set"
+					" `erc-track-enable-keybindings'"
+					" to disable this message"))
+		       (sleep-for 3)
+		       (erc-track-minor-mode 1))
+		   (message (concat "Not changing it; set"
+				    " `erc-track-enable-keybindings'"
+				    " to disable this message"))
+		   (sleep-for 3))
+	       (erc-track-minor-mode 1))))
+	  ((eq erc-track-enable-keybindings t)
+	   (erc-track-minor-mode 1))
+	  (t nil))))
+
 ;;; Module
 
 ;;;###autoload (autoload 'erc-track-mode "erc-track" nil t)
-(define-erc-module track track-modified-channels
+(define-erc-module track nil
   "This mode tracks ERC channel buffers with activity."
-  ((erc-track-add-to-mode-line erc-track-position-in-mode-line)
-   (setq erc-modified-channels-object (erc-modified-channels-object nil))
-   (erc-update-mode-line)
-   (if (featurep 'xemacs)
-       (defadvice switch-to-buffer (after erc-update (&rest args) activate)
-	 (erc-modified-channels-update))
-     (add-hook 'window-configuration-change-hook 'erc-modified-channels-update))
-   (add-hook 'erc-insert-post-hook 'erc-track-modified-channels)
-   (add-hook 'erc-disconnected-hook 'erc-modified-channels-update))
-  ((erc-track-remove-from-mode-line)
-   (if (featurep 'xemacs)
-       (ad-disable-advice 'switch-to-buffer 'after 'erc-update)
-     (remove-hook 'window-configuration-change-hook
-		  'erc-modified-channels-update))
-   (remove-hook 'erc-disconnected-hook 'erc-modified-channels-update)
-   (remove-hook 'erc-insert-post-hook 'erc-track-modified-channels)))
+  ;; Enable:
+  ((when (boundp 'erc-track-when-inactive)
+     (if erc-track-when-inactive
+	 (progn
+	   (if (featurep 'xemacs)
+	       (defadvice switch-to-buffer (after erc-update-when-inactive
+						  (&rest args) activate)
+		 (erc-user-is-active))
+	     (add-hook 'window-configuration-change-hook 'erc-user-is-active))
+	   (add-hook 'erc-send-completed-hook 'erc-user-is-active)
+	   (add-hook 'erc-server-001-functions 'erc-user-is-active))
+       (erc-track-add-to-mode-line erc-track-position-in-mode-line)
+       (setq erc-modified-channels-object (erc-modified-channels-object nil))
+       (erc-update-mode-line)
+       (if (featurep 'xemacs)
+	   (defadvice switch-to-buffer (after erc-update (&rest args) activate)
+	     (erc-modified-channels-update))
+	 (add-hook 'window-configuration-change-hook
+		   'erc-modified-channels-update))
+       (add-hook 'erc-insert-post-hook 'erc-track-modified-channels)
+       (add-hook 'erc-disconnected-hook 'erc-modified-channels-update))
+     ;; enable the tracking keybindings
+     (erc-track-minor-mode-maybe)))
+  ;; Disable:
+  ((when (boundp 'erc-track-when-inactive)
+     (erc-track-remove-from-mode-line)
+     (if erc-track-when-inactive
+	 (progn
+	   (if (featurep 'xemacs)
+	       (ad-disable-advice 'switch-to-buffer 'after
+				  'erc-update-when-inactive)
+	     (remove-hook 'window-configuration-change-hook
+			  'erc-user-is-active))
+	   (remove-hook 'erc-send-completed-hook 'erc-user-is-active)
+	   (remove-hook 'erc-server-001-functions 'erc-user-is-active)
+	   (remove-hook 'erc-timer-hook 'erc-user-is-active))
+       (if (featurep 'xemacs)
+	   (ad-disable-advice 'switch-to-buffer 'after 'erc-update)
+	 (remove-hook 'window-configuration-change-hook
+		      'erc-modified-channels-update))
+       (remove-hook 'erc-disconnected-hook 'erc-modified-channels-update)
+       (remove-hook 'erc-insert-post-hook 'erc-track-modified-channels))
+     ;; disable the tracking keybindings
+     (when erc-track-minor-mode
+       (erc-track-minor-mode -1)))))
 
-;;;###autoload (autoload 'erc-track-when-inactive-mode "erc-track" nil t)
-(define-erc-module track-when-inactive nil
-  "This mode enables channel tracking even for visible buffers,
-if you are inactivity."
-  ((if (featurep 'xemacs)
-       (defadvice switch-to-buffer (after erc-update-when-inactive (&rest args) activate)
-	 (erc-user-is-active))
-     (add-hook 'window-configuration-change-hook 'erc-user-is-active))
-   (add-hook 'erc-send-completed-hook 'erc-user-is-active)
-   (add-hook 'erc-server-001-functions 'erc-user-is-active))
-  ((erc-track-remove-from-mode-line)
-   (if (featurep 'xemacs)
-       (ad-disable-advice 'switch-to-buffer 'after 'erc-update-when-inactive)
-     (remove-hook 'window-configuration-change-hook 'erc-user-is-active))
-   (remove-hook 'erc-send-completed-hook 'erc-user-is-active)
-   (remove-hook 'erc-server-001-functions 'erc-user-is-active)
-   (remove-hook 'erc-timer-hook 'erc-user-is-active)))
+(defcustom erc-track-when-inactive nil
+  "Enable channel tracking even for visible buffers, if you are
+inactive."
+  :group 'erc-track
+  :type 'boolean
+  :set (lambda (sym val)
+	 (if erc-track-mode
+	     (progn
+	       (erc-track-disable)
+	       (set sym val)
+	       (erc-track-enable))
+	   (set sym val))))
 
 ;;; Visibility
 
@@ -545,7 +646,7 @@
 
 (defun erc-buffer-visible (buffer)
   "Return non-nil when the buffer is visible."
-  (if erc-track-when-inactive-mode
+  (if erc-track-when-inactive
       (when erc-buffer-activity; could be nil
 	(and (get-buffer-window buffer erc-track-visibility)
 	     (<= (erc-time-diff erc-buffer-activity (erc-current-time))
@@ -815,7 +916,9 @@
 switch back to the last non-ERC buffer visited.  Next is defined by
 `erc-track-switch-direction', a negative argument will reverse this."
   (interactive "p")
-  (when erc-track-mode
+  (if (not erc-track-mode)
+      (message (concat "Enable the ERC track module if you want to use the"
+		       " tracking minor mode"))
     (cond (erc-modified-channels-alist
 	   ;; if we're not in erc-mode, set this buffer to return to
 	   (unless (eq major-mode 'erc-mode)
@@ -828,12 +931,6 @@
 		(buffer-live-p erc-track-last-non-erc-buffer))
 	   (switch-to-buffer erc-track-last-non-erc-buffer)))))
 
-;; These bindings are global, because they pop us from any other
-;; buffer to an active ERC buffer!
-
-(global-set-key (kbd "C-c C-@") 'erc-track-switch-buffer)
-(global-set-key (kbd "C-c C-SPC") 'erc-track-switch-buffer)
-
 (provide 'erc-track)
 
 ;;; erc-track.el ends here
--- a/lisp/erc/erc.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/erc/erc.el	Wed Apr 11 00:17:47 2007 +0000
@@ -66,7 +66,7 @@
 
 ;;; Code:
 
-(defconst erc-version-string "Version 5.2 stable pre-release"
+(defconst erc-version-string "Version 5.2"
   "ERC version.  This is used by function `erc-version'.")
 
 (eval-when-compile (require 'cl))
@@ -324,7 +324,7 @@
 
 (defcustom erc-connect-pre-hook '(erc-initialize-log-marker)
   "Hook called just before `erc' calls `erc-connect'.
-Functions are run in the buffer-to-be."
+Functions are passed a buffer as the first argument."
   :group 'erc-hooks
   :type 'hook)
 
@@ -392,14 +392,14 @@
 (defsubst erc-get-server-user (nick)
   "Finds the USER corresponding to NICK in the current server's
 `erc-server-users' hash table."
-  (with-current-buffer (process-buffer erc-server-process)
+  (erc-with-server-buffer
     (gethash (erc-downcase nick) erc-server-users)))
 
 (defsubst erc-add-server-user (nick user)
   "This function is for internal use only.
 
 Adds USER with nickname NICK to the `erc-server-users' hash table."
-  (with-current-buffer (process-buffer erc-server-process)
+  (erc-with-server-buffer
     (puthash (erc-downcase nick) user erc-server-users)))
 
 (defsubst erc-remove-server-user (nick)
@@ -410,7 +410,7 @@
 `erc-channel-users' lists of other buffers.
 
 See also: `erc-remove-user'."
-  (with-current-buffer (process-buffer erc-server-process)
+  (erc-with-server-buffer
     (remhash (erc-downcase nick) erc-server-users)))
 
 (defun erc-change-user-nickname (user new-nick)
@@ -421,7 +421,7 @@
 other buffers are also changed."
   (let ((nick (erc-server-user-nickname user)))
     (setf (erc-server-user-nickname user) new-nick)
-    (with-current-buffer (process-buffer erc-server-process)
+    (erc-with-server-buffer
       (remhash (erc-downcase nick) erc-server-users)
       (puthash (erc-downcase new-nick) user erc-server-users))
     (dolist (buf (erc-server-user-buffers user))
@@ -514,16 +514,15 @@
 
 (defun erc-get-server-nickname-list ()
   "Returns a list of known nicknames on the current server."
-    (if (erc-server-process-alive)
-	(with-current-buffer (erc-server-buffer)
-	  (let (nicks)
-	    (when (hash-table-p erc-server-users)
-	      (maphash (lambda (n user)
-			 (setq nicks
-			       (cons (erc-server-user-nickname user)
-				     nicks)))
-		       erc-server-users)
-	      nicks)))))
+  (erc-with-server-buffer
+    (let (nicks)
+      (when (hash-table-p erc-server-users)
+	(maphash (lambda (n user)
+		   (setq nicks
+			 (cons (erc-server-user-nickname user)
+			       nicks)))
+		 erc-server-users)
+	nicks))))
 
 (defun erc-get-channel-nickname-list ()
   "Returns a list of known nicknames on the current channel."
@@ -538,16 +537,15 @@
 
 (defun erc-get-server-nickname-alist ()
   "Returns an alist of known nicknames on the current server."
-    (if (erc-server-process-alive)
-	(with-current-buffer (erc-server-buffer)
-	  (let (nicks)
-	    (when (hash-table-p erc-server-users)
-	      (maphash (lambda (n user)
-			 (setq nicks
-			       (cons (cons (erc-server-user-nickname user) nil)
-				     nicks)))
-		       erc-server-users)
-	      nicks)))))
+  (erc-with-server-buffer
+    (let (nicks)
+      (when (hash-table-p erc-server-users)
+	(maphash (lambda (n user)
+		   (setq nicks
+			 (cons (cons (erc-server-user-nickname user) nil)
+			       nicks)))
+		 erc-server-users)
+	nicks))))
 
 (defun erc-get-channel-nickname-alist ()
   "Returns an alist of known nicknames on the current channel."
@@ -1293,7 +1291,7 @@
   (unless (erc-server-buffer-p)
     (error
      "You should only run `erc-once-with-server-event' in a server buffer"))
-  (let ((fun (erc-gensym))
+  (let ((fun (make-symbol "fun"))
 	(hook (erc-get-hook event)))
      (put fun 'erc-original-buffer (current-buffer))
      (fset fun `(lambda (proc parsed)
@@ -1316,7 +1314,7 @@
 
 When FORMS execute, the current buffer is the server buffer associated with the
 connection over which the data was received that triggered EVENT."
-  (let ((fun (erc-gensym))
+  (let ((fun (make-symbol "fun"))
 	(hook (erc-get-hook event)))
      (fset fun `(lambda (proc parsed)
 		  (remove-hook ',hook ',fun)
@@ -1370,7 +1368,7 @@
 (defun erc-ison-p (nick)
   "Return non-nil if NICK is online."
   (interactive "sNick: ")
-  (with-current-buffer (erc-server-buffer)
+  (erc-with-server-buffer
     (let ((erc-online-p 'unknown))
       (erc-once-with-server-event
        303
@@ -1420,7 +1418,7 @@
 (defun erc-active-buffer ()
   "Return the value of `erc-active-buffer' for the current server.
 Defaults to the server buffer."
-  (with-current-buffer (erc-server-buffer)
+  (erc-with-server-buffer
     (if (buffer-live-p erc-active-buffer)
 	erc-active-buffer
       (setq erc-active-buffer (current-buffer)))))
@@ -1603,10 +1601,10 @@
 See also `with-current-buffer'.
 
 \(fn (TARGET [PROCESS]) BODY...)"
-  (let ((buf (erc-gensym))
-	(proc (erc-gensym))
-	(target (erc-gensym))
-	(process (erc-gensym)))
+  (let ((buf (make-symbol "buf"))
+	(proc (make-symbol "proc"))
+	(target (make-symbol "target"))
+	(process (make-symbol "process")))
     `(let* ((,target ,(car spec))
 	    (,process ,(cadr spec))
 	    (,buf (if (bufferp ,target)
@@ -1616,7 +1614,7 @@
 					  erc-server-process))))
 		      (if (and ,target ,proc)
 			  (erc-get-buffer ,target ,proc))))))
-       (when ,buf
+       (when (buffer-live-p ,buf)
 	 (with-current-buffer ,buf
 	   ,@body)))))
 (put 'erc-with-buffer 'lisp-indent-function 1)
@@ -1671,8 +1669,8 @@
 where PRED matches or in all buffers of the server process if PRED is
 nil."
   ;; Make the evaluation have the correct order
-  (let ((pre (erc-gensym))
-	(pro (erc-gensym)))
+  (let ((pre (make-symbol "pre"))
+	(pro (make-symbol "pro")))
     `(let ((,pro ,process)
 	   (,pre ,pred))
        (mapcar (lambda (buffer)
@@ -1755,7 +1753,10 @@
 (make-variable-buffer-local 'erc-invitation)
 
 (defvar erc-away nil
-  "Non-nil indicates that we are away.")
+  "Non-nil indicates that we are away.
+
+Use `erc-away-time' to access this if you might be in a channel
+buffer rather than a server buffer.")
 (make-variable-buffer-local 'erc-away)
 
 (defvar erc-channel-list nil
@@ -1813,43 +1814,43 @@
   :type
   '(set
     :greedy t
-    (const :tag "Set away status automatically" autoaway)
-    (const :tag "Join channels automatically" autojoin)
-    (const :tag "Buttonize URLs, nicknames, and other text" button)
-    (const
-     :tag
-     "Mark unidentified users on freenode and other servers supporting CAPAB"
-     capab-identify)
-    (const :tag "Wrap long lines" fill)
-    (const :tag "Launch an identd server on port 8113" identd)
-    (const :tag "Highlight or remove IRC control characters"
+    (const :tag "autoaway: Set away status automatically" autoaway)
+    (const :tag "autojoin: Join channels automatically" autojoin)
+    (const :tag "button: Buttonize URLs, nicknames, and other text" button)
+    (const :tag "capab: Mark unidentified users on servers supporting CAPAB"
+	   capab-identify)
+    (const :tag "completion: Complete nicknames and commands (programmable)"
+	   completion)
+    (const :tag "hecomplete: Complete nicknames and commands (old)" hecomplete)
+    (const :tag "fill: Wrap long lines" fill)
+    (const :tag "identd: Launch an identd server on port 8113" identd)
+    (const :tag "irccontrols: Highlight or remove IRC control characters"
 	   irccontrols)
-    (const :tag "Save buffers in logs" log)
-    (const :tag "Highlight pals, fools, and other keywords" match)
-    (const :tag "Display a menu in ERC buffers" menu)
-    (const :tag "Detect netsplits" netsplit)
-    (const :tag "Don't display non-IRC commands after evaluation"
+    (const :tag "log: Save buffers in logs" log)
+    (const :tag "match: Highlight pals, fools, and other keywords" match)
+    (const :tag "menu: Display a menu in ERC buffers" menu)
+    (const :tag "netsplit: Detect netsplits" netsplit)
+    (const :tag "noncommands: Don't display non-IRC commands after evaluation"
 	   noncommands)
-    (const :tag "Notify when the online status of certain users changes"
+    (const :tag
+	   "notify: Notify when the online status of certain users changes"
 	   notify)
-    (const :tag "Complete nicknames and commands (programmable)"
-	   completion)
-    (const :tag "Complete nicknames and commands (old)" hecomplete)
-    (const :tag "Process CTCP PAGE requests from IRC" page)
-    (const :tag "Make displayed lines read-only" readonly)
-    (const :tag "Replace text in messages" replace)
-    (const :tag "Enable an input history" ring)
-    (const :tag "Scroll to the bottom of the buffer" scrolltobottom)
-    (const :tag "Identify to Nickserv (IRC Services) automatically"
+    (const :tag "page: Process CTCP PAGE requests from IRC" page)
+    (const :tag "readonly: Make displayed lines read-only" readonly)
+    (const :tag "replace: Replace text in messages" replace)
+    (const :tag "ring: Enable an input history" ring)
+    (const :tag "scrolltobottom: Scroll to the bottom of the buffer"
+	   scrolltobottom)
+    (const :tag "services: Identify to Nickserv (IRC Services) automatically"
 	   services)
-    (const :tag "Convert smileys to pretty icons" smiley)
-    (const :tag "Play sounds when you receive CTCP SOUND requests"
+    (const :tag "smiley: Convert smileys to pretty icons" smiley)
+    (const :tag "sound: Play sounds when you receive CTCP SOUND requests"
 	   sound)
-    (const :tag "Add timestamps to messages" stamp)
-    (const :tag "Check spelling" spelling)
-    (const :tag "Track channel activity in the mode-line" track)
-    (const :tag "Truncate buffers to a certain size" truncate)
-    (const :tag "Translate morse code in messages" unmorse)
+    (const :tag "stamp: Add timestamps to messages" stamp)
+    (const :tag "spelling: Check spelling" spelling)
+    (const :tag "track: Track channel activity in the mode-line" track)
+    (const :tag "truncate: Truncate buffers to a certain size" truncate)
+    (const :tag "unmorse: Translate morse code in messages" unmorse)
     (repeat :tag "Others" :inline t symbol))
   :group 'erc)
 
@@ -1902,9 +1903,7 @@
 
 (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.
+  "Connect to SERVER on PORT as NICK with FULL-NAME.
 
 If CONNECT is non-nil, connect to the server.  Otherwise assume
 already connected and just create a separate buffer for the new
@@ -1969,10 +1968,6 @@
     (erc-set-active-buffer buffer)
     ;; last invitation channel
     (setq erc-invitation nil)
-    ;; away flag
-    ;; Should only be used in session-buffers
-    (setq erc-away (let ((serverbuf (erc-server-buffer)))
-		     (and serverbuf (with-current-buffer serverbuf erc-away))))
     ;; Server channel list
     (setq erc-channel-list ())
     ;; login-time 'nick in use' error
@@ -1987,25 +1982,25 @@
     (setq erc-dbuf
 	  (when erc-log-p
 	    (get-buffer-create (concat "*ERC-DEBUG: " server "*"))))
-    (erc-determine-parameters server port nick full-name)
-
-    ;; Saving log file on exit
-    (run-hooks 'erc-connect-pre-hook)
-
-    (when connect
-      (erc-server-connect erc-session-server erc-session-port))
-    (erc-update-mode-line)
-    (set-marker erc-insert-marker (point))
+    ;; set up prompt
     (unless continued-session
       (goto-char (point-max))
       (insert "\n"))
-    (set-marker (process-mark erc-server-process) (point))
     (if continued-session
 	(goto-char old-point)
       (set-marker erc-insert-marker (point))
       (erc-display-prompt)
       (goto-char (point-max)))
 
+    (erc-determine-parameters server port nick full-name)
+
+    ;; Saving log file on exit
+    (run-hook-with-args 'erc-connect-pre-hook buffer)
+
+    (when connect
+      (erc-server-connect erc-session-server erc-session-port buffer))
+    (erc-update-mode-line)
+
     ;; Now display the buffer in a window as per user wishes.
     (unless (eq buffer old-buffer)
       (when erc-log-p
@@ -2016,11 +2011,13 @@
 
     buffer))
 
-(defun erc-initialize-log-marker ()
-  "Initialize the `erc-last-saved-position' marker to a sensible position."
+(defun erc-initialize-log-marker (buffer)
+  "Initialize the `erc-last-saved-position' marker to a sensible position.
+BUFFER is the current buffer."
+  (with-current-buffer buffer
     (setq erc-last-saved-position (make-marker))
     (move-marker erc-last-saved-position
-		 (1- (marker-position erc-insert-marker))))
+		 (1- (marker-position erc-insert-marker)))))
 
 ;; interactive startup
 
@@ -2120,8 +2117,12 @@
 		  (nick   (erc-compute-nick))
 		  password
 		  (full-name (erc-compute-full-name)))
-  "Select connection parameters and run ERC.
-Non-interactively, it takes keyword arguments
+  "ERC is a powerful, modular, and extensible IRC client.
+This function is the main entry point for ERC.
+
+It permits you to select connection parameters, and then starts ERC.
+
+Non-interactively, it takes the keyword arguments
    (server (erc-compute-server))
    (port   (erc-compute-port))
    (nick   (erc-compute-nick))
@@ -2132,12 +2133,13 @@
 
    (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\")
 
-server and full-name will be set to those values, whereas
+then the server and full-name will be set to those values, whereas
 `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will
 be invoked for the values of the other parameters."
   (interactive (erc-select-read-args))
   (erc-open server port nick full-name t password))
 
+;;;###autoload
 (defalias 'erc-select 'erc)
 
 (defun erc-ssl (&rest r)
@@ -2428,7 +2430,7 @@
 
 This function relies on the erc-parsed text-property being
 present."
-  (let ((prop-val (get-text-property position 'erc-parsed)))
+  (let ((prop-val (erc-get-parsed-vector position)))
     (and prop-val (member (erc-response.command prop-val) list))))
 
 (defvar erc-send-input-line-function 'erc-send-input-line)
@@ -2586,20 +2588,19 @@
 	(erc-display-line
 	 (erc-make-notice (format "Now ignoring %s" user))
 	 'active)
-	(with-current-buffer (erc-server-buffer)
-	  (add-to-list 'erc-ignore-list user)))
-    (if (null (with-current-buffer (erc-server-buffer) erc-ignore-list))
+	(erc-with-server-buffer (add-to-list 'erc-ignore-list user)))
+    (if (null (erc-with-server-buffer erc-ignore-list))
 	(erc-display-line (erc-make-notice "Ignore list is empty") 'active)
       (erc-display-line (erc-make-notice "Ignore list:") 'active)
       (mapc #'(lambda (item)
 		(erc-display-line (erc-make-notice item)
 				  'active))
-	    (with-current-buffer (erc-server-buffer) erc-ignore-list))))
+	    (erc-with-server-buffer erc-ignore-list))))
   t)
 
 (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)
+  (let ((ignored-nick (car (erc-with-server-buffer
 			     (erc-member-ignore-case (regexp-quote user)
 						     erc-ignore-list)))))
     (unless ignored-nick
@@ -2614,7 +2615,7 @@
       (erc-display-line
        (erc-make-notice (format "No longer ignoring %s" user))
        'active)
-      (with-current-buffer (erc-server-buffer)
+      (erc-with-server-buffer
 	(setq erc-ignore-list (delete ignored-nick erc-ignore-list)))))
   t)
 
@@ -2673,8 +2674,8 @@
   "Mark the user as being away everywhere, the reason being indicated by LINE."
   ;; on all server buffers.
   (erc-with-all-buffers-of-server nil
-   #'erc-server-buffer-p
-   (erc-cmd-AWAY line)))
+    #'erc-open-server-buffer-p
+    (erc-cmd-AWAY line)))
 (put 'erc-cmd-GAWAY 'do-not-parse-args t)
 
 (defun erc-cmd-CTCP (nick cmd &rest args)
@@ -2866,10 +2867,9 @@
 
 (defun erc-cmd-IDLE (nick)
   "Show the length of time NICK has been idle."
-  (let ((serverbuf (erc-server-buffer))
-	(origbuf (current-buffer))
+  (let ((origbuf (current-buffer))
 	symlist)
-    (with-current-buffer serverbuf
+    (erc-with-server-buffer
       (add-to-list 'symlist
 		   (cons (erc-once-with-server-event
 			  311 `(string= ,nick
@@ -3027,8 +3027,8 @@
 (defun erc-cmd-NICK (nick)
   "Change current nickname to NICK."
   (erc-log (format "cmd: NICK: %s (erc-bad-nick: %S)" nick erc-bad-nick))
-  (let ((nicklen (cdr (assoc "NICKLEN" (with-current-buffer (erc-server-buffer)
-				    erc-server-parameters)))))
+  (let ((nicklen (cdr (assoc "NICKLEN" (erc-with-server-buffer
+					 erc-server-parameters)))))
     (and nicklen (> (length nick) (string-to-number nicklen))
 	 (erc-display-message
 	  nil 'notice 'active 'nick-too-long
@@ -3167,7 +3167,8 @@
    ((string-match "^\\s-*\\(.*\\)$" reason)
     (let* ((s (match-string 1 reason))
 	   (buffer (erc-server-buffer))
-	   (reason (funcall erc-quit-reason (if (equal s "") nil s))))
+	   (reason (funcall erc-quit-reason (if (equal s "") nil s)))
+	   server-proc)
       (with-current-buffer (if (and buffer
 				    (bufferp buffer))
 			       buffer
@@ -3175,10 +3176,18 @@
 	(erc-log (format "cmd: QUIT: %s" reason))
 	(setq erc-server-quitting t)
 	(erc-set-active-buffer (erc-server-buffer))
+	(setq server-proc erc-server-process)
 	(erc-server-send (format "QUIT :%s" reason)))
-      (run-hook-with-args 'erc-quit-hook erc-server-process)
+      (run-hook-with-args 'erc-quit-hook server-proc)
       (when erc-kill-queries-on-quit
-	(erc-kill-query-buffers erc-server-process)))
+	(erc-kill-query-buffers server-proc))
+      ;; if the process has not been killed within 4 seconds, kill it
+      (run-at-time 4 nil
+		   (lambda (proc)
+		     (when (and (processp proc)
+				(memq (process-status proc) '(run open)))
+		       (delete-process proc)))
+		   server-proc))
     t)
    (t nil)))
 
@@ -3189,9 +3198,7 @@
 
 (defun erc-cmd-GQUIT (reason)
   "Disconnect from all servers at once with the same quit REASON."
-  (erc-with-all-buffers-of-server nil #'(lambda ()
-					  (and (erc-server-buffer-p)
-					       (erc-server-process-alive)))
+  (erc-with-all-buffers-of-server nil #'erc-open-server-buffer-p
 				  (erc-cmd-QUIT reason)))
 
 (defalias 'erc-cmd-GQ 'erc-cmd-GQUIT)
@@ -3199,8 +3206,17 @@
 
 (defun erc-cmd-RECONNECT ()
   "Try to reconnect to the current IRC server."
-  (setq erc-server-reconnect-count 0)
-  (erc-server-reconnect)
+  (let ((buffer (or (erc-server-buffer) (current-buffer)))
+	(process nil))
+    (with-current-buffer (if (bufferp buffer) buffer (current-buffer))
+      (setq erc-server-quitting nil)
+      (setq erc-server-reconnecting t)
+      (setq erc-server-reconnect-count 0)
+      (setq process (get-buffer-process (erc-server-buffer)))
+      (if process
+	  (delete-process process)
+	(erc-server-reconnect))
+      (setq erc-server-reconnecting nil)))
   t)
 
 (defun erc-cmd-SERVER (server)
@@ -3373,7 +3389,7 @@
 	(setq erc-server-367-functions 'erc-banlist-store
 	      erc-channel-banlist nil)
 	;; fetch the ban list then callback
-	(with-current-buffer (erc-server-buffer)
+	(erc-with-server-buffer
 	  (erc-once-with-server-event
 	   368
 	   `(with-current-buffer ,chnl-name
@@ -3443,7 +3459,7 @@
       (let ((old-367-hook erc-server-367-functions))
 	(setq erc-server-367-functions 'erc-banlist-store)
       ;; fetch the ban list then callback
-      (with-current-buffer (erc-server-buffer)
+      (erc-with-server-buffer
 	(erc-once-with-server-event
 	 368
 	 `(with-current-buffer ,chnl
@@ -3737,7 +3753,7 @@
     (erc-update-mode-line)
     buf))
 
-(defcustom erc-auto-query nil
+(defcustom erc-auto-query 'bury
   "If non-nil, create a query buffer each time you receive a private message.
 
 If the buffer doesn't already exist it is created.  This can be
@@ -3811,7 +3827,7 @@
     (setq erc-nick-change-attempt-count (+ erc-nick-change-attempt-count 1))
     (let ((newnick (nth 1 erc-default-nicks))
 	  (nicklen (cdr (assoc "NICKLEN"
-			       (with-current-buffer (erc-server-buffer)
+			       (erc-with-server-buffer
 				 erc-server-parameters)))))
       (setq erc-bad-nick t)
       ;; try to use a different nick
@@ -4101,24 +4117,29 @@
   "Run just after connection.
 
 Set user modes and run `erc-after-connect' hook."
-  (unless erc-server-connected ; only once per session
-    (let ((server (or erc-server-announced-name (erc-response.sender parsed)))
-	  (nick (car (erc-response.command-args parsed ))))
-      (setq erc-server-connected t)
-      (erc-update-mode-line)
-      (erc-set-initial-user-mode nick)
-      (erc-server-setup-periodical-server-ping)
-      (run-hook-with-args 'erc-after-connect server nick))))
-
-(defun erc-set-initial-user-mode (nick)
-  "If `erc-user-mode' is non-nil for NICK, set the user modes."
-  (when erc-user-mode
-    (let ((mode (if (functionp erc-user-mode)
-		    (funcall erc-user-mode)
-		  erc-user-mode)))
-      (when (stringp mode)
-	(erc-log (format "changing mode for %s to %s" nick mode))
-	(erc-server-send (format "MODE %s %s" nick mode))))))
+  (with-current-buffer (process-buffer proc)
+    (unless erc-server-connected ; only once per session
+      (let ((server (or erc-server-announced-name
+			(erc-response.sender parsed)))
+	    (nick (car (erc-response.command-args parsed)))
+	    (buffer (process-buffer proc)))
+	(setq erc-server-connected t)
+	(erc-update-mode-line)
+	(erc-set-initial-user-mode nick buffer)
+	(erc-server-setup-periodical-ping buffer)
+	(run-hook-with-args 'erc-after-connect server nick)))))
+
+(defun erc-set-initial-user-mode (nick buffer)
+  "If `erc-user-mode' is non-nil for NICK, set the user modes.
+The server buffer is given by BUFFER."
+  (with-current-buffer buffer
+    (when erc-user-mode
+      (let ((mode (if (functionp erc-user-mode)
+		      (funcall erc-user-mode)
+		    erc-user-mode)))
+	(when (stringp mode)
+	  (erc-log (format "changing mode for %s to %s" nick mode))
+	  (erc-server-send (format "MODE %s %s" nick mode)))))))
 
 (defun erc-display-error-notice (parsed string)
   "Display STRING as an error notice.
@@ -4345,14 +4366,12 @@
 			  erc-nick)))
 	(cond
 	 (away-p
-	  (erc-with-all-buffers-of-server proc nil
-					  (setq erc-away (current-time))))
+	  (setq erc-away (current-time)))
 	 (t
 	  (let ((away-time erc-away))
 	    ;; away must be set to NIL BEFORE sending anything to prevent
 	    ;; an infinite recursion
-	    (erc-with-all-buffers-of-server proc nil
-					    (setq erc-away nil))
+	    (setq erc-away nil)
 	    (save-excursion
 	      (set-buffer (erc-active-buffer))
 	      (when erc-public-away-p
@@ -5037,8 +5056,9 @@
 
 (defun erc-set-current-nick (nick)
   "Set the current nickname to NICK."
-  (with-current-buffer (or (erc-server-buffer)
-			   (current-buffer))
+  (with-current-buffer (if (buffer-live-p (erc-server-buffer))
+			   (erc-server-buffer)
+			 (current-buffer))
     (setq erc-server-current-nick nick)))
 
 (defun erc-current-nick ()
@@ -5119,7 +5139,7 @@
 matches against all the regexp's in `erc-ignore-list'.  If any
 match, returns that regexp."
   (catch 'found
-    (dolist (ignored (with-current-buffer (erc-server-buffer) erc-ignore-list))
+    (dolist (ignored (erc-with-server-buffer erc-ignore-list))
       (if (string-match ignored spec)
 	  (throw 'found ignored)))))
 
@@ -5673,12 +5693,12 @@
 			     ""))
 	user))))
 
-(defun erc-away-p ()
-  "Return t if the current ERC process is set away."
-  (save-excursion
-    (and (erc-server-buffer-live-p)
-	 (set-buffer (process-buffer erc-server-process))
-	 erc-away)))
+(defun erc-away-time ()
+  "Return non-nil if the current ERC process is set away.
+
+In particular, the time that we were set away is returned.
+See `current-time' for details on the time format."
+  (erc-with-server-buffer erc-away))
 
 ;; Mode line handling
 
@@ -5706,9 +5726,17 @@
   "A string to be formatted and shown in the header-line in `erc-mode'.
 Only used starting in Emacs 21.
 
+Set this to nil if you do not want the header line to be
+displayed.
+
 See `erc-mode-line-format' for which characters are can be used."
   :group 'erc-mode-line-and-header
-  :type 'string)
+  :set (lambda (sym val)
+	 (set sym val)
+	 (when (fboundp 'erc-update-mode-line)
+	   (erc-update-mode-line nil)))
+  :type '(choice (const :tag "Disabled" nil)
+		 string))
 
 (defcustom erc-header-line-uses-help-echo-p t
   "Show the contents of the header line in the echo area or as a tooltip
@@ -5734,7 +5762,8 @@
 
 (defcustom erc-common-server-suffixes
   '(("openprojects.net$" . "OPN")
-    ("freenode.net$" . "OPN"))
+    ("freenode.net$" . "freenode")
+    ("oftc.net$" . "OFTC"))
   "Alist of common server name suffixes.
 This variable is used in mode-line display to save screen
 real estate.  Set it to nil if you want to avoid changing
@@ -5786,9 +5815,7 @@
 (defun erc-format-away-status ()
   "Return a formatted `erc-mode-line-away-status-format'
 if `erc-away' is non-nil."
-  (let ((a (when (erc-server-buffer-live-p)
-	     (with-current-buffer (process-buffer erc-server-process)
-	       erc-away))))
+  (let ((a (erc-away-time)))
     (if a
 	(format-time-string erc-mode-line-away-status-format a)
       "")))
@@ -5813,9 +5840,7 @@
 
 (defun erc-format-lag-time ()
   "Return the estimated lag time to server, `erc-server-lag'."
-  (let ((lag (when (erc-server-buffer-live-p)
-	       (with-current-buffer (process-buffer erc-server-process)
-		 erc-server-lag))))
+  (let ((lag (erc-with-server-buffer erc-server-lag)))
     (cond (lag (format "lag:%.0f" lag))
 	  (t ""))))
 
@@ -6137,7 +6162,8 @@
       (format "%s (%s@%s) has left channel %s%s"
 	      nick user host channel
 	      (if (not (string= reason ""))
-		  (format ": %s" reason)
+		  (format ": %s"
+			  (erc-replace-regexp-in-string "%" "%%" reason))
 		"")))))
 
 
@@ -6232,6 +6258,13 @@
   "Find the next occurrence of the `erc-parsed' text property."
   (text-property-not-all (point-min) (point-max) 'erc-parsed nil))
 
+(defun erc-restore-text-properties ()
+  "Restore the property 'erc-parsed for the region."
+  (let ((parsed-posn (erc-find-parsed-property)))
+    (put-text-property
+     (point-min) (point-max)
+     'erc-parsed (when parsed-posn (erc-get-parsed-vector parsed-posn)))))
+
 (defun erc-get-parsed-vector (point)
   "Return the whole parsed vector on POINT."
   (get-text-property point 'erc-parsed))
@@ -6263,8 +6296,7 @@
 	       (lambda ()
 		 (and (string-equal erc-session-server host)
 		      (= erc-session-port port)
-		      erc-server-connected
-		      (eq (erc-server-buffer) (current-buffer))))))))
+		      (erc-open-server-buffer-p)))))))
     (with-current-buffer (or server-buffer (current-buffer))
       (if (and server-buffer channel)
 	  (erc-cmd-JOIN channel)
--- a/lisp/eshell/esh-proc.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/eshell/esh-proc.el	Wed Apr 11 00:17:47 2007 +0000
@@ -181,7 +181,7 @@
 	    (setq signum (abs (string-to-number id))))
 	   ((stringp id)
 	    (let (case-fold-search)
-	      (if (string-match "^-\\([A-Z]+\\)$" id)
+	      (if (string-match "^-\\([A-Z]+[12]?\\)$" id)
 		  (setq signum
 			(intern (concat "SIG" (match-string 1 id))))
 		(error "kill: bad signal spec `%s'" id))))
--- a/lisp/expand.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/expand.el	Wed Apr 11 00:17:47 2007 +0000
@@ -51,17 +51,17 @@
 ;;
 ;;   and enter Abbrev mode with the following hook :
 ;;
-;; (add-hook 'c-mode-hook (function (lambda ()
-;; 				   (expand-add-abbrevs c-mode-abbrev-table c-expand-list)
-;; 				   (abbrev-mode))))
+;; (add-hook 'c-mode-hook
+;; 	  (lambda ()
+;; 	    (expand-add-abbrevs c-mode-abbrev-table c-expand-list)
+;; 	    (abbrev-mode 1)))
 ;;
 ;;   you can also init some post-process hooks :
 ;;
 ;; (add-hook 'expand-load-hook
-;; 	  (function
-;; 	   (lambda ()
-;; 	     (add-hook 'expand-expand-hook 'indent-according-to-mode)
-;; 	     (add-hook 'expand-jump-hook 'indent-according-to-mode))))
+;; 	  (lambda ()
+;; 	    (add-hook 'expand-expand-hook 'indent-according-to-mode)
+;; 	    (add-hook 'expand-jump-hook 'indent-according-to-mode)))
 ;;
 ;; Remarks:
 ;;
@@ -336,6 +336,7 @@
       'expand-abbrev-hook)))
 
 (put 'expand-abbrev-hook 'no-self-insert t)
+;;;###autoload
 (defun expand-abbrev-hook ()
   "Abbrev hook used to do the expansion job of expand abbrevs.
 See `expand-add-abbrevs'.  Value is non-nil if expansion was done."
--- a/lisp/faces.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/faces.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1847,13 +1847,9 @@
       (condition-case ()
 	  (progn
 	    (face-spec-set face (face-user-default-spec face) frame)
-	    (internal-merge-in-global-face face frame)
 	    (if (memq window-system '(x w32 mac))
 		(make-face-x-resource-internal face frame))
-	    ;; If the user has customized the face, don't let X
-	    ;; resources override the customizations.
-	    (if (get face 'theme-face)
-		(custom-theme-recalc-face face)))
+	    (internal-merge-in-global-face face frame))
 	(error nil)))
     ;; Apply the attributes specified by frame parameters.  This
     ;; rewrites parameters changed by make-face-x-resource-internal
--- a/lisp/ffap.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/ffap.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1147,7 +1147,8 @@
 		(error nil))
 	      string))
 	 (abs (file-name-absolute-p name))
-	 (default-directory default-directory))
+	 (default-directory default-directory)
+         (oname name))
     (unwind-protect
 	(cond
 	 ;; Immediate rejects (/ and // and /* are too common in C/C++):
@@ -1164,13 +1165,7 @@
 	       (not abs) (string-match ffap-shell-prompt-regexp name)
                (ffap-file-exists-string (substring name (match-end 0)))))
 	 ;; Accept remote names without actual checking (too slow):
-	 ((if abs
-	      (ffap-file-remote-p name)
-	    ;; Try adding a leading "/" (common omission in ftp file names):
-	    (and
-	     ffap-ftp-sans-slash-regexp
-	     (string-match ffap-ftp-sans-slash-regexp name)
-	     (ffap-file-remote-p (concat "/" name)))))
+	 ((and abs (ffap-file-remote-p name)))
 	 ;; Ok, not remote, try the existence test even if it is absolute:
 	 ((and abs (ffap-file-exists-string name)))
 	 ;; If it contains a colon, get rid of it (and return if exists)
@@ -1193,6 +1188,14 @@
 				  (ffap-file-remote-p try)
 				  (ffap-file-exists-string try))))))
 	    try))
+         ;; Try adding a leading "/" (common omission in ftp file names).
+         ;; Note that this uses oname, which still has any colon part.
+         ;; This should have a lower priority than the alist stuff,
+         ;; else it matches things like "ffap.el:1234:56:Warning".
+         ((and (not abs)
+               ffap-ftp-sans-slash-regexp
+               (string-match ffap-ftp-sans-slash-regexp oname)
+               (ffap-file-remote-p (concat "/" oname))))
 	 ;; Alist failed?  Try to guess an active remote connection
 	 ;; from buffer variables, and try once more, both as an
 	 ;; absolute and relative file name on that remote host.
--- a/lisp/files.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/files.el	Wed Apr 11 00:17:47 2007 +0000
@@ -2435,7 +2435,6 @@
 (mapc (lambda (pair)
 	(put (car pair) 'safe-local-variable (cdr pair)))
       '((buffer-read-only                . booleanp) ;; C source code
-	(default-directory               . stringp)  ;; C source code
 	(fill-column                     . integerp) ;; C source code
 	(indent-tabs-mode                . booleanp) ;; C source code
 	(left-margin                     . integerp) ;; C source code
--- a/lisp/font-lock.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/font-lock.el	Wed Apr 11 00:17:47 2007 +0000
@@ -2227,7 +2227,7 @@
 		 "condition-case" "track-mouse"
 		 "eval-after-load" "eval-and-compile" "eval-when-compile"
 		 "eval-when" "eval-at-startup" "eval-next-after-load"
-		 "with-category-table"
+		 "with-case-table" "with-category-table"
 		 "with-current-buffer" "with-electric-help"
 		 "with-local-quit" "with-no-warnings"
 		 "with-output-to-string" "with-output-to-temp-buffer"
--- a/lisp/gnus/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/gnus/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,49 @@
+2007-04-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-inews-yank-articles): Use
+	message-exchange-point-and-mark instead of exchange-point-and-mark.
+
+2007-04-09  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-yank-original): Make sure cited text ends with
+	newline; don't exchange point and mark.
+
+2007-04-07  Chong Yidong  <cyd@stupidchicken.com>
+
+	* tls.el (open-tls-stream): Properly handle case where there
+	is no associated buffer.
+
+2007-04-03  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* gnus-msg.el (gnus-inews-yank-articles): Fix bug: After
+	message-yank-original, make sure (< mark TEXT point).
+
+2007-03-31  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nnmail.el (nnmail-spool-file): Mark as obsolete.
+	(nnmail-get-new-mail): Reformat.
+
+	* gnus-registry.el (gnus-registry-cache-save): Add FIXME comment.
+
+	* gmm-utils.el: Fix Commentary.
+	(gmm-tool-bar-from-list): Fix typo in doc string.
+
+2007-03-27  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* message.el (message-yank-original): Fix bug:
+	Don't switch point and mark unnecessarily.
+
+2007-03-25  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
+
+	* gnus-msg.el (gnus-setup-message, gnus-inews-add-send-actions): Move
+	evaluation of gnus-extended-version to ensure correct generation of the
+	User-Agent header when message-generate-headers-first is used.
+
+2007-03-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-alist): Also catch `<f1> k ...'.
+	(gnus-treat-display-x-face): Fix doc string.
+
 2007-03-20  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
 
 	* message.el (message-required-news-headers):
@@ -1538,15 +1584,6 @@
 	* gnus-start.el (gnus-no-server-1): Mention
 	`gnus-level-default-subscribed' in doc string.
 
-2005-11-26  Dave Love  <fx@gnu.org>
-
-	* tls.el (open-tls-stream): Rename arg SERVICE to PORT.
-	(tls-program, tls-success): Provide openssl alternative.
-
-	* starttls.el: Doc fixes.
-	(starttls-open-stream-gnutls, starttls-open-stream): Rename arg
-	SERVICE to PORT.
-
 2005-12-09  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* gnus-start.el (gnus-start-draft-setup): Enforce
@@ -2601,14 +2638,6 @@
 
 	* gnus-art.el (gnus-emphasis-alist): Disable the strikethru thingy.
 
-2005-06-02  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* pop3.el (pop3-md5): Run md5 in the binary mode.
-	(pop3-md5-program-args): New variable.
-
-	* starttls.el (starttls-set-process-query-on-exit-flag):
-	Use eval-and-compile.
-
 2005-05-31  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus-art.el (article-display-x-face): Replace
@@ -2644,16 +2673,6 @@
 	(nntp-open-ssl-stream): Ditto.
 	(nntp-open-tls-stream): Ditto.
 
-	* pgg.el: Don't bind itimer vars; don't autoload itimer functions.
-	(pgg-run-at-time-1): New macro.
-	(pgg-run-at-time): Use it.
-
-	* starttls.el (starttls-set-process-query-on-exit-flag): Alias to
-	set-process-query-on-exit-flag or process-kill-without-query.
-	(starttls-open-stream-gnutls): Use it instead of
-	process-kill-without-query.
-	(starttls-open-stream): Ditto.
-
 2005-05-31  Simon Josefsson  <jas@extundo.com>
 
 	* imap.el (imap-ssl-open): Use imap-process-connection-type,
@@ -3571,13 +3590,6 @@
 
 	* gnus-msg.el (gnus-summary-resend-default-address): Add :version.
 
-	* tls.el (tls-process-connection-type, tls-success)
-	(tls-certtool-program): Add :version.
-
-	* starttls.el (starttls-gnutls-program, starttls-use-gnutls)
-	(starttls-extra-arguments, starttls-process-connection-type)
-	(starttls-connect, starttls-failure, starttls-success):
-
 	* spam-stat.el (spam-stat): Add :version.
 
 	* sieve.el (sieve): Add :version.
@@ -4065,12 +4077,6 @@
 	* message.el (message-tokenize-header): Fix 2004-09-06 change
 	which used point-min in the wrong place.
 
-2004-10-12  Simon Josefsson  <jas@extundo.com>
-
-	* net/tls.el (tls-certtool-program): New variable.
-	(tls-certificate-information): New function, based on
-	ssl-certificate-information.
-
 2004-10-11  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* message.el (message-bury): Use `window-dedicated-p'.
@@ -4510,19 +4516,6 @@
 
 	* sieve.el (sieve-deactivate-all): Fix format string mismatch.
 
-2004-05-26  Simon Josefsson  <jas@extundo.com>
-
-	* starttls.el: Merge with my GNUTLS based starttls.el.
-	(starttls-gnutls-program, starttls-use-gnutls)
-	(starttls-extra-arguments, starttls-process-connection-type)
-	(starttls-connect, starttls-failure, starttls-success): New variables.
-	(starttls-program, starttls-extra-args): Doc fix.
-	(starttls-negotiate-gnutls, starttls-open-stream-gnutls):
-	New functions.
-	(starttls-negotiate, starttls-open-stream):
-	Check `starttls-use-gnutls' and pass on to corresponding *-gnutls
-	function if it is set.
-
 2004-08-30  Andreas Schwab  <schwab@suse.de>
 
 	* rfc2231.el (rfc2231-parse-string): Restore whitespace syntax for
--- a/lisp/gnus/gmm-utils.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/gnus/gmm-utils.el	Wed Apr 11 00:17:47 2007 +0000
@@ -26,7 +26,7 @@
 
 ;; This library provides self-contained utility functions.  The functions are
 ;; used in Gnus, Message and MML, but within this library there are no
-;; dependencies on Gnus, Message, or MML or Gnus.
+;; dependencies on Gnus, Message, or MML.
 
 ;;; Code:
 
@@ -217,7 +217,7 @@
 command, the second element is an icon file name and the third
 element is a test function.  You can use \\[describe-key]
 <menu-entry> to find out the name of a menu command.  The fourth
-and all following elements are passed a the PROPS argument to the
+and all following elements are passed as the PROPS argument to the
 function `tool-bar-local-item'.
 
 If ZAP-LIST is a list, remove those item from the default
--- a/lisp/gnus/gnus-art.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/gnus/gnus-art.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1332,7 +1332,7 @@
 	      (executable-find "icontopbm")))
        'head)
   "Display X-Face headers.
-Valid values are nil, t, `head', `last', an integer or a predicate.
+Valid values are nil and `head'.
 See Info node `(gnus)Customizing Articles' and Info node
 `(gnus)X-Face' for details."
   :group 'gnus-article-treat
@@ -6620,7 +6620,7 @@
      0 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-function 2)
     ("\\b\\(C-h\\|<?[Ff]1>?\\)[ \t\n]+v[ \t\n]+\\([^ \t\n]+\\)[ \t\n]+RET"
      0 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-variable 2)
-    ("`\\(\\b\\(C-h\\|<?[Ff]1>?\\)[ \t\n]+k[ \t\n]+\\([^']+\\)\\)'"
+    ("`\\(\\(C-h\\|<?[Ff]1>?\\)[ \t\n]+k[ \t\n]+\\([^']+\\)\\)'"
      ;; Unlike the other regexps we really have to require quoting
      ;; here to determine where it ends.
      1 (>= gnus-button-emacs-level 1) gnus-button-handle-describe-key 3)
--- a/lisp/gnus/gnus-msg.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/gnus/gnus-msg.el	Wed Apr 11 00:17:47 2007 +0000
@@ -393,6 +393,13 @@
        (setq mml-buffer-list nil)
        (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc)
        (add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc)
+       ;; message-newsreader and message-mailer were formerly set in
+       ;; gnus-inews-add-send-actions, but this is too late when
+       ;; message-generate-headers-first is used. --ansel
+       (add-hook 'message-mode-hook
+		 (lambda nil
+		   (setq message-newsreader
+			 (setq message-mailer (gnus-extended-version)))))
        ;; #### FIXME: for a reason that I did not manage to identify yet,
        ;; the variable `gnus-newsgroup-name' does not honor a dynamically
        ;; scoped or setq'ed value from a caller like `C-u gnus-summary-mail'.
@@ -514,7 +521,6 @@
   (setq message-post-method
 	`(lambda (arg)
 	   (gnus-post-method arg ,gnus-newsgroup-name)))
-  (setq message-newsreader (setq message-mailer (gnus-extended-version)))
   (message-add-action
    `(when (gnus-buffer-exists-p ,buffer)
       (set-window-configuration ,winconf))
@@ -765,6 +771,7 @@
 		 (nnheader-narrow-to-headers)
 		 (nnheader-parse-naked-head)))))
 	(message-yank-original)
+	(message-exchange-point-and-mark)
 	(setq beg (or beg (mark t))))
       (when articles
 	(insert "\n")))
--- a/lisp/gnus/gnus-registry.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/gnus/gnus-registry.el	Wed Apr 11 00:17:47 2007 +0000
@@ -154,6 +154,8 @@
       (gnus-load file)
       (gnus-message 5 "Reading %s...done" file))))
 
+;; FIXME: Get rid of duplicated code, cf. `gnus-save-newsrc-file' in
+;; `gnus-start.el'.  --rsteib
 (defun gnus-registry-cache-save ()
   "Save the registry cache file."
   (interactive)
--- a/lisp/gnus/message.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/gnus/message.el	Wed Apr 11 00:17:47 2007 +0000
@@ -3346,12 +3346,16 @@
       (delete-windows-on message-reply-buffer t)
       (push-mark (save-excursion
 		   (insert-buffer-substring message-reply-buffer)
+		   (unless (bolp)
+		     (insert ?\n))
 		   (point)))
       (unless arg
-	(funcall message-cite-function))
-      (message-exchange-point-and-mark)
-      (unless (bolp)
-	(insert ?\n))
+	(funcall message-cite-function)
+	(unless (eq (char-before (mark t)) ?\n)
+	  (let ((pt (point)))
+	    (goto-char (mark t))
+	    (insert-before-markers ?\n)
+	    (goto-char pt))))
       (unless modified
 	(setq message-checksum (message-checksum))))))
 
--- a/lisp/gnus/nnmail.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/gnus/nnmail.el	Wed Apr 11 00:17:47 2007 +0000
@@ -247,6 +247,10 @@
 This variable is obsolete; `mail-sources' should be used instead."
   :group 'nnmail-files
   :type 'sexp)
+(make-obsolete-variable 'nnmail-spool-file
+			"This option is obsolete in Gnus 5.9.  \
+Use `mail-sources' instead.")
+;; revision 5.29 / p0-85 / Gnus 5.9
 
 (defcustom nnmail-resplit-incoming nil
   "*If non-nil, re-split incoming procmail sorted mail."
@@ -1749,7 +1753,8 @@
 				   &optional group spool-func)
   "Read new incoming mail."
   (let* ((sources (or mail-sources
-		      (if (listp nnmail-spool-file) nnmail-spool-file
+		      (if (listp nnmail-spool-file)
+			  nnmail-spool-file
 			(list nnmail-spool-file))))
 	 fetching-sources
 	 (group-in group)
--- a/lisp/help.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/help.el	Wed Apr 11 00:17:47 2007 +0000
@@ -642,7 +642,7 @@
 	   (list
 	    key
 	    (prefix-numeric-value current-prefix-arg)
-	    ;; If KEY is a down-event, read and discard the
+	    ;; If KEY is a down-event, read and include the
 	    ;; corresponding up-event.  Note that there are also
 	    ;; down-events on scroll bars and mode lines: the actual
 	    ;; event then is in the second element of the vector.
--- a/lisp/ido.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/ido.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1940,8 +1940,14 @@
       (if (and ido-matches (eq ido-try-merged-list 'auto))
 	  (setq ido-try-merged-list t))
       (let
-	  ((minibuffer-local-completion-map ido-completion-map)
-	   (minibuffer-local-filename-completion-map ido-completion-map)
+	  ((minibuffer-local-completion-map
+	    (if (memq ido-cur-item '(file dir))
+		minibuffer-local-completion-map
+	      ido-completion-map))
+	   (minibuffer-local-filename-completion-map
+	    (if (memq ido-cur-item '(file dir))
+		ido-completion-map
+	      minibuffer-local-filename-completion-map))
 	   (max-mini-window-height (or ido-max-window-height
 				       (and (boundp 'max-mini-window-height) max-mini-window-height)))
 	   (ido-completing-read t)
--- a/lisp/info.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/info.el	Wed Apr 11 00:17:47 2007 +0000
@@ -145,7 +145,7 @@
   :type 'boolean
   :group 'info)
 
-(defcustom Info-fontify-maximum-menu-size 1000000
+(defcustom Info-fontify-maximum-menu-size 100000
   "*Maximum size of menu to fontify if `font-lock-mode' is non-nil.
 Set to nil to disable node fontification."
   :type 'integer
@@ -1315,16 +1315,25 @@
 	      nil t)
 	(let* ((start (match-beginning 1))
 	       (parameter-alist (Info-split-parameter-string (match-string 2)))
-	       (src (cdr (assoc-string "src" parameter-alist)))
-	       (image-file (if src (if (file-name-absolute-p src) src
-				     (concat default-directory src))
-			     ""))
-	       (image (if (file-exists-p image-file)
-			  (create-image image-file)
-			"[broken image]")))
-	  (if (not (get-text-property start 'display))
-	      (add-text-properties
-	       start (point) `(display ,image rear-nonsticky (display)))))))
+               (src (cdr (assoc-string "src" parameter-alist))))
+          (if (display-images-p)
+              (let* ((image-file (if src (if (file-name-absolute-p src) src
+                                           (concat default-directory src))
+                                   ""))
+                     (image (if (file-exists-p image-file)
+                                (create-image image-file)
+                              "[broken image]")))
+                (if (not (get-text-property start 'display))
+                    (add-text-properties
+                     start (point) `(display ,image rear-nonsticky (display)))))
+            ;; text-only display, show alternative text if provided, or
+            ;; otherwise a clue that there's meant to be a picture
+            (delete-region start (point))
+            (insert (or (cdr (assoc-string "text" parameter-alist))
+                        (cdr (assoc-string "alt" parameter-alist))
+                        (and src
+                             (concat "[image:" src "]"))
+                        "[image]"))))))
     (set-buffer-modified-p nil)))
 
 ;; Texinfo 4.7 adds cookies of the form ^@^H[NAME CONTENTS ^@^H].
@@ -3235,7 +3244,6 @@
 (defvar info-tool-bar-map
   (if (display-graphic-p)
       (let ((map (make-sparse-keymap)))
-	(tool-bar-local-item-from-menu 'Info-exit "close" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-history-back "left-arrow" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-history-forward "right-arrow" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-prev "prev-node" map Info-mode-map)
@@ -3245,6 +3253,7 @@
 	(tool-bar-local-item-from-menu 'Info-goto-node "jump-to" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map)
+	(tool-bar-local-item-from-menu 'Info-exit "exit" map Info-mode-map)
 	map)))
 
 (defvar Info-menu-last-node nil)
--- a/lisp/international/mule.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/international/mule.el	Wed Apr 11 00:17:47 2007 +0000
@@ -491,6 +491,20 @@
 	(error "Invalid Emacs-mule charset ID: %d" charset-id))
     (make-char charset code1 code2)))
 
+;; Save the ASCII case table in case we need it later.  Some locales
+;; (such as Turkish) modify the case behavior of ASCII characters,
+;; which can interfere with networking code that uses ASCII strings.
+
+(defvar ascii-case-table
+  ;; Code copied from copy-case-table to avoid requiring case-table.el
+  (let ((tbl (copy-sequence (standard-case-table)))
+	(up  (char-table-extra-slot (standard-case-table) 0)))
+    (if up (set-char-table-extra-slot tbl 0 (copy-sequence up)))
+    (set-char-table-extra-slot tbl 1 nil)
+    (set-char-table-extra-slot tbl 2 nil)
+    tbl)
+  "Case table for the ASCII character set.")
+
 ;; Coding system stuff
 
 ;; Coding system is a symbol that has been defined by the function
--- a/lisp/isearch.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/isearch.el	Wed Apr 11 00:17:47 2007 +0000
@@ -527,8 +527,7 @@
  string and search for it.
 Type \\[isearch-yank-line] to yank rest of line onto end of search string\
  and search for it.
-Type \\[isearch-yank-kill] to yank last killed text onto end of search string\
- and search for it.
+Type \\[isearch-yank-kill] to yank the last string of killed text.
 Type \\[isearch-quote-char] to quote control character to search for it.
 \\[isearch-abort] while searching or when search has failed cancels input\
  back to what has
--- a/lisp/ldefs-boot.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/ldefs-boot.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1595,7 +1595,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" (17916 20866))
+;;;;;;  "autorevert" "autorevert.el" (17925 15265))
 ;;; Generated autoloads from autorevert.el
 
 (autoload (quote auto-revert-mode) "autorevert" "\
@@ -2582,8 +2582,8 @@
 ;;;***
 
 ;;;### (autoloads (insert-text-button make-text-button insert-button
-;;;;;;  make-button define-button-type) "button" "button.el" (17842
-;;;;;;  58280))
+;;;;;;  make-button define-button-type) "button" "button.el" (17935
+;;;;;;  59428))
 ;;; 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) "\
@@ -2671,7 +2671,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" (17908 29081))
+;;;;;;  "emacs-lisp/bytecomp.el" (17927 20254))
 ;;; Generated autoloads from emacs-lisp/bytecomp.el
 (put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
 (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
@@ -2909,7 +2909,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" (17916 10881))
+;;;;;;  "calendar/calendar.el" (17929 8808))
 ;;; Generated autoloads from calendar/calendar.el
 
 (defvar calendar-offset 0 "\
@@ -3306,7 +3306,7 @@
 if that day is a holiday; if you want such days to be shown in the fancy
 diary buffer, set the variable `diary-list-include-blanks' to t.")
 
-(custom-autoload (quote diary-display-hook) "calendar" t)
+(custom-autoload (quote diary-display-hook) "calendar" nil)
 
 (defvar nongregorian-diary-listing-hook nil "\
 List of functions called for listing diary file and included files.
@@ -3507,7 +3507,7 @@
 ;;;***
 
 ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
-;;;;;;  (17904 34206))
+;;;;;;  (17926 45410))
 ;;; Generated autoloads from progmodes/cc-engine.el
 
 (autoload (quote c-guess-basic-syntax) "cc-engine" "\
@@ -3519,7 +3519,7 @@
 
 ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
 ;;;;;;  c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;;  (17905 59795))
+;;;;;;  (17926 45410))
 ;;; Generated autoloads from progmodes/cc-mode.el
 
 (autoload (quote c-initialize-cc-mode) "cc-mode" "\
@@ -4407,7 +4407,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"
-;;;;;;  (17916 11954))
+;;;;;;  (17937 3189))
 ;;; Generated autoloads from comint.el
 
 (defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\
@@ -4497,8 +4497,8 @@
 
 ;;;***
 
-;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17842
-;;;;;;  58280))
+;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17926
+;;;;;;  45410))
 ;;; Generated autoloads from compare-w.el
 
 (autoload (quote compare-windows) "compare-w" "\
@@ -4535,7 +4535,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" (17917 19252))
+;;;;;;  "compile" "progmodes/compile.el" (17928 33291))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4571,6 +4571,7 @@
 Functions to call when a compilation process finishes.
 Each function is called with two arguments: the compilation buffer,
 and a string describing how the process finished.")
+(put 'compilation-directory 'safe-local-variable 'stringp)
 
 (defvar compilation-ask-about-save t "\
 *Non-nil means \\[compile] asks which buffers to save before compiling.
@@ -4697,7 +4698,7 @@
 ;;;***
 
 ;;;### (autoloads (partial-completion-mode) "complete" "complete.el"
-;;;;;;  (17906 28255))
+;;;;;;  (17931 55720))
 ;;; Generated autoloads from complete.el
 
 (defvar partial-completion-mode nil "\
@@ -6675,7 +6676,7 @@
 ;;;***
 
 ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib"
-;;;;;;  "calendar/diary-lib.el" (17916 10940))
+;;;;;;  "calendar/diary-lib.el" (17929 8808))
 ;;; Generated autoloads from calendar/diary-lib.el
 
 (autoload (quote diary) "diary-lib" "\
@@ -8412,7 +8413,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" (17899 1919))
+;;;;;;  "emacs-lisp/edebug.el" (17930 34071))
 ;;; Generated autoloads from emacs-lisp/edebug.el
 
 (defvar edebug-all-defs nil "\
@@ -9136,7 +9137,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc"
-;;;;;;  "erc/erc.el" (17838 26687))
+;;;;;;  "erc/erc.el" (17935 53318))
 ;;; Generated autoloads from erc/erc.el
 
 (autoload (quote erc-select-read-args) "erc" "\
@@ -9145,8 +9146,12 @@
 \(fn)" nil nil)
 
 (autoload (quote erc) "erc" "\
-Select connection parameters and run ERC.
-Non-interactively, it takes keyword arguments
+ERC is a powerful, modular, and extensible IRC client.
+This function is the main entry point for ERC.
+
+It permits you to select connection parameters, and then starts ERC.
+
+Non-interactively, it takes the keyword arguments
    (server (erc-compute-server))
    (port   (erc-compute-port))
    (nick   (erc-compute-nick))
@@ -9157,12 +9162,14 @@
 
    (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\")
 
-server and full-name will be set to those values, whereas
+then the server and full-name will be set to those values, whereas
 `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will
 be invoked for the values of the other parameters.
 
 \(fn &key (SERVER (erc-compute-server)) (PORT (erc-compute-port)) (NICK (erc-compute-nick)) PASSWORD (FULL-NAME (erc-compute-full-name)))" t nil)
 
+(defalias (quote erc-select) (quote erc))
+
 (autoload (quote erc-handle-irc-url) "erc" "\
 Use ERC to IRC on HOST:PORT in CHANNEL as USER with PASSWORD.
 If ERC is already connected to HOST:PORT, simply /join CHANNEL.
@@ -9172,26 +9179,26 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17842
-;;;;;;  54344))
+;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17935
+;;;;;;  53318))
 ;;; Generated autoloads from erc/erc-autoaway.el
  (autoload 'erc-autoaway-mode "erc-autoaway")
 
 ;;;***
 
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17842 54344))
+;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-button.el
  (autoload 'erc-button-mode "erc-button" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17842 54344))
+;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-capab.el
  (autoload 'erc-capab-identify-mode "erc-capab" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17842 54344))
+;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-compat.el
  (autoload 'erc-define-minor-mode "erc-compat")
 
@@ -9292,8 +9299,8 @@
 
 ;;;***
 
-;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17842
-;;;;;;  54344))
+;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17935
+;;;;;;  53318))
 ;;; Generated autoloads from erc/erc-fill.el
  (autoload 'erc-fill-mode "erc-fill" nil t)
 
@@ -9313,7 +9320,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd"
-;;;;;;  "erc/erc-identd.el" (17842 54344))
+;;;;;;  "erc/erc-identd.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-identd.el
  (autoload 'erc-identd-mode "erc-identd")
 
@@ -9352,7 +9359,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log"
-;;;;;;  "erc/erc-log.el" (17842 54344))
+;;;;;;  "erc/erc-log.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-log.el
  (autoload 'erc-log-mode "erc-log" nil t)
 
@@ -9384,7 +9391,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"
-;;;;;;  (17842 54344))
+;;;;;;  (17935 53318))
 ;;; Generated autoloads from erc/erc-match.el
  (autoload 'erc-match-mode "erc-match")
 
@@ -9430,14 +9437,14 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17842 54344))
+;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-menu.el
  (autoload 'erc-menu-mode "erc-menu" nil t)
 
 ;;;***
 
 ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el"
-;;;;;;  (17842 54344))
+;;;;;;  (17935 53318))
 ;;; Generated autoloads from erc/erc-netsplit.el
  (autoload 'erc-netsplit-mode "erc-netsplit")
 
@@ -9449,7 +9456,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks"
-;;;;;;  "erc/erc-networks.el" (17842 54344))
+;;;;;;  "erc/erc-networks.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-networks.el
 
 (autoload (quote erc-determine-network) "erc-networks" "\
@@ -9467,7 +9474,7 @@
 ;;;***
 
 ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify"
-;;;;;;  "erc/erc-notify.el" (17842 54344))
+;;;;;;  "erc/erc-notify.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-notify.el
  (autoload 'erc-notify-mode "erc-notify" nil t)
 
@@ -9491,8 +9498,8 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17842
-;;;;;;  54344))
+;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17935
+;;;;;;  53318))
 ;;; Generated autoloads from erc/erc-pcomplete.el
  (autoload 'erc-completion-mode "erc-pcomplete" nil t)
 
@@ -9504,14 +9511,14 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17842 54344))
+;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17935 53318))
 ;;; 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" (17842 54344))
+;;;;;;  "erc-services" "erc/erc-services.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-services.el
  (autoload 'erc-services-mode "erc-services" nil t)
 
@@ -9535,7 +9542,7 @@
 ;;;***
 
 ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el"
-;;;;;;  (17842 54344))
+;;;;;;  (17935 53318))
 ;;; Generated autoloads from erc/erc-speedbar.el
 
 (autoload (quote erc-speedbar-browser) "erc-speedbar" "\
@@ -9546,23 +9553,39 @@
 
 ;;;***
 
-;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17842
-;;;;;;  54344))
+;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17935
+;;;;;;  53318))
 ;;; Generated autoloads from erc/erc-spelling.el
  (autoload 'erc-spelling-mode "erc-spelling" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17842 54344))
+;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17935 53318))
 ;;; Generated autoloads from erc/erc-stamp.el
  (autoload 'erc-timestamp-mode "erc-stamp" nil t)
 
 ;;;***
 
-;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17842 54344))
+;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el"
+;;;;;;  (17935 53318))
 ;;; Generated autoloads from erc/erc-track.el
+
+(defvar erc-track-minor-mode nil "\
+Non-nil if Erc-Track minor mode is enabled.
+See the command `erc-track-minor-mode' for a description of this minor-mode.")
+
+(custom-autoload (quote erc-track-minor-mode) "erc-track" nil)
+
+(autoload (quote erc-track-minor-mode) "erc-track" "\
+Global minor mode for tracking ERC buffers and showing activity in the
+mode line.
+
+This exists for the sole purpose of providing the C-c C-SPC and
+C-c C-@ keybindings.  Make sure that you have enabled the track
+module, otherwise the keybindings will not do anything useful.
+
+\(fn &optional ARG)" t nil)
  (autoload 'erc-track-mode "erc-track" nil t)
- (autoload 'erc-track-when-inactive-mode "erc-track" nil t)
 
 ;;;***
 
@@ -10284,8 +10307,8 @@
 
 ;;;***
 
-;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17842
-;;;;;;  54152))
+;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17933
+;;;;;;  14283))
 ;;; Generated autoloads from emacs-lisp/ewoc.el
 
 (autoload (quote ewoc-create) "ewoc" "\
@@ -10356,7 +10379,8 @@
 ;;;***
 
 ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
-;;;;;;  expand-add-abbrevs) "expand" "expand.el" (17842 58279))
+;;;;;;  expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el"
+;;;;;;  (17925 52793))
 ;;; Generated autoloads from expand.el
 
 (autoload (quote expand-add-abbrevs) "expand" "\
@@ -10383,6 +10407,12 @@
 
 \(fn TABLE ABBREVS)" nil nil)
 
+(autoload (quote expand-abbrev-hook) "expand" "\
+Abbrev hook used to do the expansion job of expand abbrevs.
+See `expand-add-abbrevs'.  Value is non-nil if expansion was done.
+
+\(fn)" nil nil)
+
 (autoload (quote expand-jump-to-previous-slot) "expand" "\
 Move the cursor to the previous slot in the last abbrev expansion.
 This is used only in conjunction with `expand-add-abbrevs'.
@@ -11217,7 +11247,7 @@
 ;;;***
 
 ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode)
-;;;;;;  "flymake" "progmodes/flymake.el" (17854 7740))
+;;;;;;  "flymake" "progmodes/flymake.el" (17934 27588))
 ;;; Generated autoloads from progmodes/flymake.el
 
 (autoload (quote flymake-mode) "flymake" "\
@@ -11241,7 +11271,7 @@
 
 ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
 ;;;;;;  turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
-;;;;;;  "flyspell" "textmodes/flyspell.el" (17842 58277))
+;;;;;;  "flyspell" "textmodes/flyspell.el" (17927 20254))
 ;;; Generated autoloads from textmodes/flyspell.el
 
 (autoload (quote flyspell-prog-mode) "flyspell" "\
@@ -11731,7 +11761,7 @@
 ;;;***
 
 ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error
-;;;;;;  gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17842 54741))
+;;;;;;  gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17934 27588))
 ;;; Generated autoloads from gnus/gmm-utils.el
 
 (autoload (quote gmm-message) "gmm-utils" "\
@@ -11762,7 +11792,7 @@
 command, the second element is an icon file name and the third
 element is a test function.  You can use \\[describe-key]
 <menu-entry> to find out the name of a menu command.  The fourth
-and all following elements are passed a the PROPS argument to the
+and all following elements are passed as the PROPS argument to the
 function `tool-bar-local-item'.
 
 If ZAP-LIST is a list, remove those item from the default
@@ -11922,7 +11952,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
-;;;;;;  (17854 10449))
+;;;;;;  (17938 29201))
 ;;; Generated autoloads from gnus/gnus-art.el
 
 (autoload (quote gnus-article-prepare-display) "gnus-art" "\
@@ -12273,7 +12303,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
-;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (17842 54741))
+;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (17938 61442))
 ;;; Generated autoloads from gnus/gnus-msg.el
 
 (autoload (quote gnus-msg-mail) "gnus-msg" "\
@@ -12410,7 +12440,7 @@
 ;;;***
 
 ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
-;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (17842 54741))
+;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (17934 27588))
 ;;; Generated autoloads from gnus/gnus-registry.el
 
 (autoload (quote gnus-registry-initialize) "gnus-registry" "\
@@ -12724,7 +12754,7 @@
 ;;;***
 
 ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb)
-;;;;;;  "gud" "progmodes/gud.el" (17903 50960))
+;;;;;;  "gud" "progmodes/gud.el" (17938 61442))
 ;;; Generated autoloads from progmodes/gud.el
 
 (autoload (quote gdb) "gud" "\
@@ -13434,8 +13464,8 @@
 
 ;;;***
 
-;;;### (autoloads (hs-minor-mode) "hideshow" "progmodes/hideshow.el"
-;;;;;;  (17899 12613))
+;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el"
+;;;;;;  (17934 43341))
 ;;; 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))) "\
@@ -13487,6 +13517,11 @@
 
 \(fn &optional ARG)" t nil)
 
+(autoload (quote turn-off-hideshow) "hideshow" "\
+Unconditionally turn off `hs-minor-mode'.
+
+\(fn)" nil nil)
+
 ;;;***
 
 ;;;### (autoloads (global-highlight-changes highlight-compare-with-file
@@ -14303,7 +14338,7 @@
 
 ;;;### (autoloads (icalendar-import-buffer icalendar-import-file
 ;;;;;;  icalendar-export-region icalendar-export-file) "icalendar"
-;;;;;;  "calendar/icalendar.el" (17842 53792))
+;;;;;;  "calendar/icalendar.el" (17921 16827))
 ;;; Generated autoloads from calendar/icalendar.el
 
 (autoload (quote icalendar-export-file) "icalendar" "\
@@ -14341,8 +14376,8 @@
 DIARY-FILE.
 
 It will ask for each appointment whether to add it to the diary
-when DO-NOT-ASK is non-nil.  When called interactively,
-DO-NOT-ASK is set to t, so that you are asked fore each event.
+unless DO-NOT-ASK is non-nil.  When called interactively,
+DO-NOT-ASK is nil, so that you are asked for each event.
 
 NON-MARKING determines whether diary events are created as
 non-marking.
@@ -14417,7 +14452,7 @@
 ;;;***
 
 ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
-;;;;;;  (17885 64137))
+;;;;;;  (17935 59227))
 ;;; Generated autoloads from progmodes/idlw-shell.el
 
 (autoload (quote idlwave-shell) "idlw-shell" "\
@@ -14443,7 +14478,7 @@
 ;;;***
 
 ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;;  (17857 15499))
+;;;;;;  (17935 59227))
 ;;; Generated autoloads from progmodes/idlwave.el
 
 (autoload (quote idlwave-mode) "idlwave" "\
@@ -14578,8 +14613,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" (17916
-;;;;;;  11714))
+;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17932
+;;;;;;  16456))
 ;;; Generated autoloads from ido.el
 
 (defvar ido-mode nil "\
@@ -15373,7 +15408,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" (17869 43065))
+;;;;;;  info info-other-window) "info" "info.el" (17936 34375))
 ;;; Generated autoloads from info.el
 
 (autoload (quote info-other-window) "info" "\
@@ -15789,7 +15824,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"
-;;;;;;  (17875 1098))
+;;;;;;  (17921 16827))
 ;;; Generated autoloads from textmodes/ispell.el
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
 
@@ -16921,8 +16956,8 @@
 
 ;;;***
 
-;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17842
-;;;;;;  56332))
+;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17923
+;;;;;;  63540))
 ;;; Generated autoloads from progmodes/m4-mode.el
 
 (autoload (quote m4-mode) "m4-mode" "\
@@ -17366,7 +17401,7 @@
 
 ;;;***
 
-;;;### (autoloads (man-follow man) "man" "man.el" (17842 58279))
+;;;### (autoloads (man-follow man) "man" "man.el" (17925 15265))
 ;;; Generated autoloads from man.el
 
 (defalias (quote manual-entry) (quote man))
@@ -17451,7 +17486,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" (17895 25793))
+;;;;;;  "gnus/message.el" (17929 33467))
 ;;; Generated autoloads from gnus/message.el
 
 (defvar message-from-style (quote default) "\
@@ -17589,7 +17624,9 @@
 
 (autoload (quote message-mail) "message" "\
 Start editing a mail message to be sent.
-OTHER-HEADERS is an alist of header/value pairs.
+OTHER-HEADERS is an alist of header/value pairs.  CONTINUE says whether
+to continue editing a message already being composed.  SWITCH-FUNCTION
+is a function used to switch to and display the mail buffer.
 
 \(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION SEND-ACTIONS)" t nil)
 
@@ -18749,7 +18786,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" (17842 58279))
+;;;;;;  "newcomment.el" (17936 9617))
 ;;; Generated autoloads from newcomment.el
 
 (defalias (quote indent-for-comment) (quote comment-indent))
@@ -19258,7 +19295,7 @@
 ;;;;;;  org-remember-handler org-remember org-remember-apply-template
 ;;;;;;  org-remember-annotation org-store-link orgtbl-mode turn-on-orgtbl
 ;;;;;;  org-global-cycle org-cycle org-mode) "org" "textmodes/org.el"
-;;;;;;  (17916 11508))
+;;;;;;  (17922 37459))
 ;;; Generated autoloads from textmodes/org.el
 
 (autoload (quote org-mode) "org" "\
@@ -21414,7 +21451,7 @@
 ;;;***
 
 ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
-;;;;;;  (17918 44913))
+;;;;;;  (17930 34071))
 ;;; Generated autoloads from progmodes/python.el
 
 (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
@@ -21512,7 +21549,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" (17859 9187))
+;;;;;;  "international/quail.el" (17921 16827))
 ;;; Generated autoloads from international/quail.el
 
 (autoload (quote quail-title) "quail" "\
@@ -21873,7 +21910,7 @@
 
 ;;;***
 
-;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17842 58279))
+;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17930 34071))
 ;;; Generated autoloads from recentf.el
 
 (defvar recentf-mode nil "\
@@ -22046,7 +22083,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-reset-scanning-information reftex-mode
-;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (17842 58276))
+;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (17923 8784))
 ;;; Generated autoloads from textmodes/reftex.el
 
 (autoload (quote turn-on-reftex) "reftex" "\
@@ -22096,7 +22133,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
-;;;;;;  (17842 58277))
+;;;;;;  (17923 8784))
 ;;; Generated autoloads from textmodes/reftex-cite.el
 
 (autoload (quote reftex-citation) "reftex-cite" "\
@@ -22126,7 +22163,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
-;;;;;;  (17842 58277))
+;;;;;;  (17923 8784))
 ;;; Generated autoloads from textmodes/reftex-global.el
 
 (autoload (quote reftex-isearch-minor-mode) "reftex-global" "\
@@ -22143,7 +22180,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
-;;;;;;  (17842 58277))
+;;;;;;  (17923 8784))
 ;;; Generated autoloads from textmodes/reftex-index.el
 
 (autoload (quote reftex-index-phrases-mode) "reftex-index" "\
@@ -22176,7 +22213,7 @@
 ;;;***
 
 ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
-;;;;;;  (17842 58277))
+;;;;;;  (17923 8784))
 ;;; Generated autoloads from textmodes/reftex-parse.el
 
 (autoload (quote reftex-all-document-files) "reftex-parse" "\
@@ -22188,8 +22225,8 @@
 
 ;;;***
 
-;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17842
-;;;;;;  58277))
+;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17923
+;;;;;;  8784))
 ;;; 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))))
@@ -22416,8 +22453,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" (17888
-;;;;;;  29186))
+;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17938
+;;;;;;  22875))
 ;;; Generated autoloads from mail/rmail.el
 
 (autoload (quote rmail-movemail-variant-p) "rmail" "\
@@ -23734,7 +23771,7 @@
 ;;;***
 
 ;;;### (autoloads (server-mode server-start) "server" "server.el"
-;;;;;;  (17851 41487))
+;;;;;;  (17921 16827))
 ;;; Generated autoloads from server.el
 
 (autoload (quote server-start) "server" "\
@@ -24104,7 +24141,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "simple" "simple.el" (17918 54827))
+;;;### (autoloads nil "simple" "simple.el" (17938 22875))
 ;;; Generated autoloads from simple.el
 (put 'fill-prefix 'safe-local-variable 'string-or-null-p)
 
@@ -24307,7 +24344,7 @@
 ;;;***
 
 ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
-;;;;;;  "mail/smtpmail.el" (17868 40628))
+;;;;;;  "mail/smtpmail.el" (17938 24686))
 ;;; Generated autoloads from mail/smtpmail.el
 
 (autoload (quote smtpmail-send-it) "smtpmail" "\
@@ -25367,7 +25404,7 @@
 
 ;;;***
 
-;;;### (autoloads (locate-library) "subr" "subr.el" (17918 55391))
+;;;### (autoloads (locate-library) "subr" "subr.el" (17938 61442))
 ;;; Generated autoloads from subr.el
 
 (autoload (quote locate-library) "subr" "\
@@ -25421,7 +25458,7 @@
 
 ;;;***
 
-;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17919 4935))
+;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17938 61442))
 ;;; Generated autoloads from t-mouse.el
 
 (defvar t-mouse-mode nil "\
@@ -26178,8 +26215,8 @@
 
 ;;;***
 
-;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17842
-;;;;;;  58278))
+;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17922
+;;;;;;  37595))
 ;;; Generated autoloads from term.el
 
 (autoload (quote make-term) "term" "\
@@ -26245,7 +26282,7 @@
 ;;;***
 
 ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
-;;;;;;  (17842 54152))
+;;;;;;  (17925 52793))
 ;;; Generated autoloads from emacs-lisp/testcover.el
 
 (autoload (quote testcover-this-defun) "testcover" "\
@@ -27231,7 +27268,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" (17842 54152))
+;;;;;;  "emacs-lisp/timer.el" (17935 13348))
 ;;; Generated autoloads from emacs-lisp/timer.el
 
 (defalias (quote disable-timeout) (quote cancel-timer))
@@ -27251,11 +27288,16 @@
 (autoload (quote run-at-time) "timer" "\
 Perform an action at time TIME.
 Repeat the action every REPEAT seconds, if REPEAT is non-nil.
-TIME should be a string like \"11:23pm\", nil meaning now, a number of seconds
-from now, a value from `current-time', or t (with non-nil REPEAT)
-meaning the next integral multiple of REPEAT.
-REPEAT may be an integer or floating point number.
-The action is to call FUNCTION with arguments ARGS.
+TIME should be one of: a string giving an absolute time like
+\"11:23pm\" (the acceptable formats are those recognized by
+`diary-entry-time'; note that such times are interpreted as times
+today, even if in the past); a string giving a relative time like
+\"2 hours 35 minutes\" (the acceptable formats are those
+recognized by `timer-duration'); nil meaning now; a number of
+seconds from now; a value from `encode-time'; or t (with non-nil
+REPEAT) meaning the next integral multiple of REPEAT.  REPEAT may
+be an integer or floating point number.  The action is to call
+FUNCTION with arguments ARGS.
 
 This function returns a timer object which you can use in `cancel-timer'.
 
@@ -27354,7 +27396,7 @@
 ;;;***
 
 ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
-;;;;;;  "tmm.el" (17842 58278))
+;;;;;;  "tmm.el" (17938 22875))
 ;;; Generated autoloads from tmm.el
  (define-key global-map "\M-`" 'tmm-menubar)
  (define-key global-map [f10] 'tmm-menubar)
@@ -27621,7 +27663,7 @@
 ;;;### (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" (17899 48055))
+;;;;;;  tramp-file-name-regexp) "tramp" "net/tramp.el" (17934 45069))
 ;;; Generated autoloads from net/tramp.el
 
 (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\
@@ -27705,11 +27747,15 @@
 Invoke tramp file name completion handler.
 Falls back to normal file name handler if no tramp file name handler exists." (let ((fn (assoc operation tramp-completion-file-name-handler-alist))) (if fn (save-match-data (apply (cdr fn) args)) (tramp-completion-run-real-handler operation args))))
 
-(defsubst tramp-register-file-name-handlers nil "\
-Add tramp file name handlers to `file-name-handler-alist'." (add-to-list (quote file-name-handler-alist) (cons tramp-file-name-regexp (quote tramp-file-name-handler))) (when (or (not (boundp (quote partial-completion-mode))) (symbol-value (quote partial-completion-mode)) (featurep (quote ido))) (add-to-list (quote file-name-handler-alist) (cons tramp-completion-file-name-regexp (quote tramp-completion-file-name-handler))) (put (quote tramp-completion-file-name-handler) (quote safe-magic) t)) (let ((jka (rassoc (quote jka-compr-handler) file-name-handler-alist))) (when jka (setq file-name-handler-alist (cons jka (delete jka file-name-handler-alist))))))
+(defsubst tramp-register-file-name-handler nil "\
+Add tramp file name handler to `file-name-handler-alist'." (add-to-list (quote file-name-handler-alist) (cons tramp-file-name-regexp (quote tramp-file-name-handler))) (let ((jka (rassoc (quote jka-compr-handler) file-name-handler-alist))) (when jka (setq file-name-handler-alist (cons jka (delete jka file-name-handler-alist))))))
+
+(defsubst tramp-register-completion-file-name-handler nil "\
+Add tramp completion file name handler to `file-name-handler-alist'." (when (or (not (boundp (quote partial-completion-mode))) (symbol-value (quote partial-completion-mode)) (featurep (quote ido))) (add-to-list (quote file-name-handler-alist) (cons tramp-completion-file-name-regexp (quote tramp-completion-file-name-handler))) (put (quote tramp-completion-file-name-handler) (quote safe-magic) t)) (let ((jka (rassoc (quote jka-compr-handler) file-name-handler-alist))) (when jka (setq file-name-handler-alist (cons jka (delete jka file-name-handler-alist))))))
+(tramp-register-file-name-handler)
 (add-hook
  'after-init-hook
- '(lambda () (tramp-register-file-name-handlers)))
+ '(lambda () (tramp-register-completion-file-name-handler)))
 
 (autoload (quote tramp-unload-file-name-handlers) "tramp" "\
 Not documented
@@ -28423,7 +28469,7 @@
 ;;;***
 
 ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
-;;;;;;  url-http) "url-http" "url/url-http.el" (17861 9963))
+;;;;;;  url-http) "url-http" "url/url-http.el" (17935 53395))
 ;;; Generated autoloads from url/url-http.el
 
 (autoload (quote url-http) "url-http" "\
@@ -29130,7 +29176,7 @@
 
 ;;;***
 
-;;;### (autoloads nil "vc-arch" "vc-arch.el" (17852 19270))
+;;;### (autoloads nil "vc-arch" "vc-arch.el" (17930 34221))
 ;;; Generated autoloads from vc-arch.el
  (defun vc-arch-registered (file)
   (if (vc-find-root file "{arch}/=tagging-method")
@@ -29161,7 +29207,7 @@
 ;;;***
 
 ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el"
-;;;;;;  (17842 58278))
+;;;;;;  (17925 15266))
 ;;; Generated autoloads from vc-rcs.el
 
 (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
@@ -29851,8 +29897,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" (17842
-;;;;;;  58278))
+;;;;;;  view-file-other-window view-file) "view" "view.el" (17930
+;;;;;;  34071))
 ;;; Generated autoloads from view.el
 
 (defvar view-mode nil "\
@@ -30015,7 +30061,7 @@
 \\[View-leave]	quit View mode and maybe switch buffers, but don't kill this buffer.
 \\[View-kill-and-leave]	quit View mode, kill current buffer and go back to other buffer.
 
-The effect of \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered.  If it was
+The effect of \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered.  If it was
 entered by view-file, view-file-other-window, view-file-other-frame, or
 \\[dired-view-file] (\\[view-file], \\[view-file-other-window],
 \\[view-file-other-frame], or the Dired mode v command),
@@ -30023,7 +30069,7 @@
 If view-mode was entered from another buffer, by \\[view-buffer],
 \\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file],
 \\[view-file-other-window], or \\[view-file-other-frame],
-then \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] will return to that buffer.
+then \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] will return to that buffer.
 
 Entry to view-mode runs the normal hook `view-mode-hook'.
 
@@ -30078,7 +30124,7 @@
 ;;;***
 
 ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
-;;;;;;  (17916 19885))
+;;;;;;  (17921 23052))
 ;;; Generated autoloads from emulation/viper.el
 
 (autoload (quote toggle-viper-mode) "viper" "\
@@ -30095,7 +30141,7 @@
 ;;;***
 
 ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
-;;;;;;  (17842 54151))
+;;;;;;  (17935 13348))
 ;;; Generated autoloads from emacs-lisp/warnings.el
 
 (defvar warning-prefix-function nil "\
@@ -30142,8 +30188,9 @@
 	      but raise suspicion of a possible problem.
 :debug     -- info for debugging only.
 
-BUFFER-NAME, if specified, is the name of the buffer for logging the
-warning.  By default, it is `*Warnings*'.
+BUFFER-NAME, if specified, is the name of the buffer for logging
+the warning.  By default, it is `*Warnings*'.  If this function
+has to create the buffer, it disables undo in the buffer.
 
 See the `warnings' custom group for user customization features.
 
@@ -30250,7 +30297,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"
-;;;;;;  (17842 58278))
+;;;;;;  (17925 15266))
 ;;; Generated autoloads from whitespace.el
 
 (autoload (quote whitespace-toggle-leading-check) "whitespace" "\
@@ -30486,7 +30533,7 @@
 ;;;***
 
 ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman"
-;;;;;;  "woman.el" (17916 11282))
+;;;;;;  "woman.el" (17934 34122))
 ;;; Generated autoloads from woman.el
 
 (autoload (quote woman) "woman" "\
@@ -30660,8 +30707,8 @@
 
 ;;;***
 
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17842
-;;;;;;  58278))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17938
+;;;;;;  61442))
 ;;; Generated autoloads from xt-mouse.el
 
 (defvar xterm-mouse-mode nil "\
@@ -30871,7 +30918,7 @@
 ;;;;;;  "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") (17919 12178 847464))
+;;;;;;  "x-dnd.el") (17938 62045 277063))
 
 ;;;***
 
--- a/lisp/loadhist.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/loadhist.el	Wed Apr 11 00:17:47 2007 +0000
@@ -111,17 +111,18 @@
 	  (setq dependents (cons (car x) dependents))))
     dependents))
 
-(defun read-feature (prompt)
-  "Read a feature name \(string\) from the minibuffer.
-Prompt with PROMPT and completing from `features', and
-return the feature \(symbol\)."
-  (intern (completing-read prompt
-			   (mapcar (lambda (feature)
-				     (list (symbol-name feature)))
-				   features)
-			   ;; Complete only features loaded from a file
-			   #'(lambda (f) (feature-file (intern (car f))))
-			   t)))
+(defun read-feature (prompt &optional loaded-p)
+  "Read feature name from the minibuffer, prompting with string PROMPT.
+If optional second arg LOADED-P is non-nil, the feature must be loaded
+from a file."
+  (intern
+   (completing-read prompt
+		    (cons nil features)
+		    (and loaded-p
+			 #'(lambda (f)
+			     (and f	; ignore nil
+				  (feature-file f))))
+		    loaded-p)))
 
 (defvaralias 'loadhist-hook-functions 'unload-feature-special-hooks)
 (defvar unload-feature-special-hooks
@@ -162,7 +163,10 @@
 variable `unload-hook-features-list' and could remove features from it
 in the event that the package has done something normally-ill-advised,
 such as redefining an Emacs function."
-  (interactive (list (read-feature "Feature: ") current-prefix-arg))
+  (interactive
+   (list
+    (read-feature "Unload feature: " t)
+    current-prefix-arg))
   (unless (featurep feature)
     (error "%s is not a currently loaded feature" (symbol-name feature)))
   (unless force
--- a/lisp/mail/rmail.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/mail/rmail.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1959,9 +1959,13 @@
 			(base64-header-field-end
 			 (save-excursion
 			   (goto-char start)
-			   (re-search-forward
-			    "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
-			    header-end t))))
+			   (and (re-search-forward
+				 "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
+				 header-end t)
+				;; Don't try to decode non-text data.
+				(re-search-forward
+				 "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/"
+				 header-end t)))))
 		   (if quoted-printable-header-field-end
 		       (save-excursion
 			 (unless
@@ -2061,10 +2065,16 @@
 			  "^content-transfer-encoding:\\(\n?[\t ]\\)*quoted-printable\\(\n?[\t ]\\)*"
 			  header-end t)))
 		      (base64-header-field-end
-		       (save-excursion
-			 (re-search-forward
-			  "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
-			  header-end t)))
+		       (and
+			(save-excursion
+			  (re-search-forward
+			   "^content-transfer-encoding:\\(\n?[\t ]\\)*base64\\(\n?[\t ]\\)*"
+			   header-end t))
+			;; Don't decode non-text data.
+			(save-excursion
+			  (re-search-forward
+			   "^content-type:\\(\n?[\t ]\\)\\(text\\|message\\)/"
+			   header-end t))))
 		      (size
 		       ;; Get the numeric value from the Content-Length field.
 		       (save-excursion
--- a/lisp/mail/sendmail.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/mail/sendmail.el	Wed Apr 11 00:17:47 2007 +0000
@@ -620,16 +620,16 @@
 \\[mail-send-and-exit]  mail-send-and-exit (send the message and exit)
 
 Here are commands that move to a header field (and create it if there isn't):
-	 \\[mail-to]  move to To:	\\[mail-subject]  move to Subject:
-	 \\[mail-cc]  move to CC:	\\[mail-bcc]  move to BCC:
+	 \\[mail-to]  move to To:	\\[mail-subject]  move to Subj:
+	 \\[mail-bcc]  move to BCC:	\\[mail-cc]  move to CC:
 	 \\[mail-fcc]  move to FCC:	\\[mail-reply-to] move to Reply-To:
          \\[mail-mail-reply-to]  move to Mail-Reply-To:
          \\[mail-mail-followup-to] move to Mail-Followup-To:
-\\[mail-text]  mail-text (move to beginning of message text).
+\\[mail-text]  move to message text.
 \\[mail-signature]  mail-signature (insert `mail-signature-file' file).
 \\[mail-yank-original]  mail-yank-original (insert current message, in Rmail).
 \\[mail-fill-yanked-message]  mail-fill-yanked-message (fill what was yanked).
-\\[mail-sent-via]  mail-sent-via (add a Sent-via field for each To or CC).
+\\[mail-sent-via]  mail-sent-via (add a sent-via field for each To or CC).
 Turning on Mail mode runs the normal hooks `text-mode-hook' and
 `mail-mode-hook' (in that order)."
   (make-local-variable 'mail-reply-action)
@@ -1392,7 +1392,7 @@
       nil)))
 
 (defun mail-text ()
-  "Move point to beginning of message text."
+  "Move point to beginning of text field."
   (interactive)
   (expand-abbrev)
   (goto-char (mail-text-start)))
--- a/lisp/mail/smtpmail.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/mail/smtpmail.el	Wed Apr 11 00:17:47 2007 +0000
@@ -691,20 +691,22 @@
 			  (>= (car response-code) 400))
 		      (throw 'done nil)))
 	      (dolist (line (cdr (cdr response-code)))
-		(let ((name (mapcar (lambda (s) (intern (downcase s)))
-				    (split-string (substring line 4) "[ ]"))))
+		(let ((name
+		       (with-case-table ascii-case-table
+			 (mapcar (lambda (s) (intern (downcase s)))
+				 (split-string (substring line 4) "[ ]")))))
 		  (and (eq (length name) 1)
 		       (setq name (car name)))
-		    (and name
+		  (and name
 		       (cond ((memq (if (consp name) (car name) name)
 				    '(verb xvrb 8bitmime onex xone
-						  expn size dsn etrn
-				      enhancedstatuscodes
-				      help xusr
-				      auth=login auth starttls))
-				(setq supported-extensions
-				      (cons name supported-extensions)))
-			       (smtpmail-warn-about-unknown-extensions
+					   expn size dsn etrn
+					   enhancedstatuscodes
+					   help xusr
+					   auth=login auth starttls))
+			      (setq supported-extensions
+				    (cons name supported-extensions)))
+			     (smtpmail-warn-about-unknown-extensions
 			      (message "Unknown extension %s" name)))))))
 
 	    (if (and do-starttls
--- a/lisp/man.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/man.el	Wed Apr 11 00:17:47 2007 +0000
@@ -628,7 +628,14 @@
     (setq Man-support-local-filenames
           (with-temp-buffer
             (and (equal (condition-case nil
-                            (call-process manual-program nil t nil "--help")
+			    (let ((default-directory
+				    ;; Assure that `default-directory' exists
+				    ;; and is readable.
+ 				    (if (and (file-directory-p default-directory)
+ 					     (file-readable-p default-directory))
+ 					default-directory
+ 				      (expand-file-name "~/"))))
+ 			      (call-process manual-program nil t nil "--help"))
                           (error nil))
                         0)
                  (progn
--- a/lisp/menu-bar.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/menu-bar.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1201,8 +1201,8 @@
   '(menu-item "Compile..." compile
 	      :help "Invoke compiler or Make, view compilation errors"))
 (define-key menu-bar-tools-menu [grep]
-  '(menu-item "Search Files (with grep)..." grep
-	      :help "Search files for strings or regexps (with grep)"))
+  '(menu-item "Search Files (Grep)..." grep
+	      :help "Search files for strings or regexps (with Grep)"))
 
 
 ;; The "Help" menu items
--- a/lisp/mouse.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/mouse.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1521,7 +1521,11 @@
     (with-current-buffer (window-buffer (posn-window posn))
       (if (numberp (posn-point posn))
 	  (setq beg (posn-point posn)))
-      (move-overlay mouse-secondary-overlay beg (posn-point end)))))
+      (move-overlay mouse-secondary-overlay beg (posn-point end))
+      (x-set-selection
+       'SECONDARY
+       (buffer-substring (overlay-start mouse-secondary-overlay)
+			 (overlay-end mouse-secondary-overlay))))))
 
 (defun mouse-drag-secondary (start-event)
   "Set the secondary selection to the text that the mouse is dragged over.
--- a/lisp/net/tls.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/net/tls.el	Wed Apr 11 00:17:47 2007 +0000
@@ -125,12 +125,17 @@
  with any buffer
 Third arg is name of the host to connect to, or its IP address.
 Fourth arg PORT is an integer specifying a port to connect to."
-  (let ((cmds tls-program) cmd done)
+  (let ((cmds tls-program)
+	(use-temp-buffer (null buffer))
+	process	cmd done)
+    (if use-temp-buffer
+	(setq buffer (generate-new-buffer " TLS")))
     (message "Opening TLS connection to `%s'..." host)
     (while (and (not done) (setq cmd (pop cmds)))
       (message "Opening TLS connection with `%s'..." cmd)
-      (let* ((process-connection-type tls-process-connection-type)
-	     (process (start-process
+      (let ((process-connection-type tls-process-connection-type)
+	    response)
+	(setq process (start-process
 		       name buffer shell-file-name shell-command-switch
 		       (format-spec
 			cmd
@@ -139,7 +144,6 @@
 			 ?p (if (integerp port)
 				(int-to-string port)
 			      port)))))
-	     response)
 	(while (and process
 		    (memq (process-status process) '(open run))
 		    (save-excursion
@@ -155,6 +159,9 @@
 	  (delete-process process))))
     (message "Opening TLS connection to `%s'...%s"
 	     host (if done "done" "failed"))
+    (when use-temp-buffer
+      (if done (set-process-buffer process nil))
+      (kill-buffer buffer))
     done))
 
 (provide 'tls)
--- a/lisp/net/tramp.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/net/tramp.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4422,10 +4422,20 @@
       (tramp-completion-run-real-handler operation args)))))
 
 ;;;###autoload
-(defsubst tramp-register-file-name-handlers ()
-  "Add tramp file name handlers to `file-name-handler-alist'."
+(defsubst tramp-register-file-name-handler ()
+  "Add tramp file name handler to `file-name-handler-alist'."
   (add-to-list 'file-name-handler-alist
 	       (cons tramp-file-name-regexp 'tramp-file-name-handler))
+  ;; If jka-compr is already loaded, move it to the front of
+  ;; `file-name-handler-alist'.
+  (let ((jka (rassoc 'jka-compr-handler file-name-handler-alist)))
+    (when jka
+      (setq file-name-handler-alist
+	    (cons jka (delete jka file-name-handler-alist))))))
+
+;;;###autoload
+(defsubst tramp-register-completion-file-name-handler ()
+  "Add tramp completion file name handler to `file-name-handler-alist'."
   ;; `partial-completion-mode' is unknown in XEmacs.  So we should
   ;; load it unconditionally there.  In the GNU Emacs case, method/
   ;; user/host name completion shall be bound to `partial-completion-mode'.
@@ -4443,13 +4453,18 @@
       (setq file-name-handler-alist
 	    (cons jka (delete jka file-name-handler-alist))))))
 
+;; `tramp-file-name-handler' must be registered before evaluation of
+;; site-start and init files, because there might exist remote files
+;; already, f.e. files kept via recentf-mode.
+;;;###autoload(tramp-register-file-name-handler)
 ;; During autoload, it shall be checked whether
-;; `partial-completion-mode' is active.  Therefore registering will be
-;; delayed.
+;; `partial-completion-mode' is active.  Therefore registering of
+;; `tramp-completion-file-name-handler' will be delayed.
 ;;;###autoload(add-hook
 ;;;###autoload 'after-init-hook
-;;;###autoload '(lambda () (tramp-register-file-name-handlers)))
-(tramp-register-file-name-handlers)
+;;;###autoload '(lambda () (tramp-register-completion-file-name-handler)))
+(tramp-register-file-name-handler)
+(tramp-register-completion-file-name-handler)
 
 ;;;###autoload
 (defun tramp-unload-file-name-handlers ()
--- a/lisp/newcomment.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/newcomment.el	Wed Apr 11 00:17:47 2007 +0000
@@ -391,7 +391,9 @@
 		 pt (or limit (point-max)) nil nil
 		 (list nil nil nil (nth 3 s) nil nil nil nil)
 		 t)))
-      (if (not (and (nth 8 s) (not (nth 3 s))))
+      (if (or (not (and (nth 8 s) (not (nth 3 s))))
+	      ;; Make sure the comment starts after PT.
+	      (< (nth 8 s) pt))
 	  (unless noerror (error "No comment"))
 	;; We found the comment.
 	(let ((pos (point))
--- a/lisp/pcomplete.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/pcomplete.el	Wed Apr 11 00:17:47 2007 +0000
@@ -33,7 +33,6 @@
 ;; To use pcomplete with shell-mode, for example, you will need the
 ;; following in your .emacs file:
 ;;
-;;   (load "pcmpl-auto")
 ;;   (add-hook 'shell-mode-hook 'pcomplete-shell-setup)
 ;;
 ;; Most of the code below simply provides support mechanisms for
@@ -947,10 +946,9 @@
 (unless (fboundp 'event-matches-key-specifier-p)
   (defalias 'event-matches-key-specifier-p 'eq))
 
-(if (fboundp 'read-event)
-    (defsubst pcomplete-read-event (&optional prompt)
-      (read-event prompt))
-  (defsubst pcomplete-read-event (&optional prompt)
+(defun pcomplete-read-event (&optional prompt)
+  (if (fboundp 'read-event)
+      (read-event prompt)
     (aref (read-key-sequence prompt) 0)))
 
 (unless (fboundp 'event-basic-type)
--- a/lisp/play/5x5.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/5x5.el	Wed Apr 11 00:17:47 2007 +0000
@@ -519,6 +519,8 @@
       (y-or-n-p prompt)
     t))
 
+(random t)
+
 (provide '5x5)
 
 ;;; arch-tag: ec4dabd5-572d-41ea-b48c-ec5ce0d68fa9
--- a/lisp/play/animate.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/animate.el	Wed Apr 11 00:17:47 2007 +0000
@@ -189,5 +189,9 @@
   (animate-string "my sunshine" 18 34)
   (animate-string "to stay!" 19 34))
 
+(random t)
+
+(provide 'animate)
+
 ;;; arch-tag: 275289a3-6ac4-41da-b527-a1147045392f
 ;;; animate.el ends here
--- a/lisp/play/dissociate.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/dissociate.el	Wed Apr 11 00:17:47 2007 +0000
@@ -99,6 +99,8 @@
 		 (funcall search-function overlap opoint t))))))
       (sit-for 0))))
 
+(random t)
+
 (provide 'dissociate)
 
 ;;; arch-tag: 90d197d1-409b-45c5-a0b5-fbfb2e06334f
--- a/lisp/play/doctor.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/doctor.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1657,6 +1657,8 @@
 
 (defun doctor-chat () (doctor-type (doc$ chatlst)))
 
+(random t)
+
 (provide 'doctor)
 
 ;; arch-tag: 579380f6-4902-4ea5-bccb-6339e30e1257
--- a/lisp/play/gomoku.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/gomoku.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1209,6 +1209,8 @@
   (move-to-column (+ gomoku-x-offset
 		     (* gomoku-square-width (1- gomoku-board-width)))))
 
+(random t)
+
 (provide 'gomoku)
 
 ;;; arch-tag: b1b8205e-77fc-4597-b373-3ea2c04311eb
--- a/lisp/play/landmark.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/landmark.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1705,6 +1705,8 @@
 ;;;allout-layout: (0 : -1 -1 0)
 ;;;End:
 
+(random t)
+
 (provide 'landmark)
 
 ;;; arch-tag: ae5031be-96e6-459e-a3df-1df53117d3f2
--- a/lisp/play/tetris.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/tetris.el	Wed Apr 11 00:17:47 2007 +0000
@@ -652,6 +652,8 @@
   (tetris-mode)
   (tetris-start-game))
 
+(random t)
+
 (provide 'tetris)
 
 ;;; arch-tag: fb780d53-3ff0-49f0-8e19-f7f13cf2d49e
--- a/lisp/play/zone.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/play/zone.el	Wed Apr 11 00:17:47 2007 +0000
@@ -692,6 +692,7 @@
       (life (or zone-pgm-random-life-wait (random 4)))
       (kill-buffer nil))))
 
+(random t)
 
 ;;;;;;;;;;;;;;;
 (provide 'zone)
--- a/lisp/progmodes/cc-awk.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-awk.el	Wed Apr 11 00:17:47 2007 +0000
@@ -988,6 +988,7 @@
 Note that this function might do hidden buffer changes.  See the
 comment at the start of cc-engine.el for more info."
   (interactive "p")
+  (or arg (setq arg 1))
   (save-match-data
     (c-save-buffer-state                ; ensures the buffer is writable.
      nil
--- a/lisp/progmodes/cc-cmds.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-cmds.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1262,11 +1262,11 @@
 		     (backward-char)
 		     (skip-chars-backward " \t")
 		     (setq beg (point))
-		     (c-save-buffer-state () (c-on-identifier))
-		     ;; Don't add a space into #define FOO()....
-		     (not (and (c-beginning-of-macro)
-			       (c-forward-over-cpp-define-id)
-			       (eq (point) beg)))))
+		     (and (c-save-buffer-state () (c-on-identifier))
+                          ;; Don't add a space into #define FOO()....
+                          (not (and (c-beginning-of-macro)
+                                    (c-forward-over-cpp-define-id)
+                                    (eq (point) beg))))))
 	      (save-excursion
 		(delete-region beg end)
 		(goto-char beg)
@@ -1477,9 +1477,7 @@
     (c-syntactic-re-search-forward "{")
     (backward-char)
     (setq n (1- n)))
-   (;; (or (eq where 'at-header) (eq where 'outwith-function)
-;; 	(eq where 'at-function-end) (eq where 'in-trailer))
-    (memq where '(at-header outwith-function at-function-end in-trailer))
+   ((memq where '(at-header outwith-function at-function-end in-trailer))
     (c-syntactic-skip-backward "^}")
     (when (eq (char-before) ?\})
       (backward-sexp)
@@ -1513,7 +1511,8 @@
   (or arg (setq arg 1))
 
   (c-save-buffer-state
-      ((start (point))
+      (beginning-of-defun-function end-of-defun-function
+       (start (point))
        where paren-state pos)
 
     ;; Move back out of any macro/comment/string we happen to be in.
@@ -1526,8 +1525,7 @@
     (if (< arg 0)
 	;; Move forward to the closing brace of a function.
 	(progn
-	  (if ;; (or (eq where 'at-function-end) (eq where 'outwith-function))
-	      (memq where '(at-function-end outwith-function))
+	  (if (memq where '(at-function-end outwith-function))
 	      (setq arg (1+ arg)))
 	  (if (< arg 0)
 	      (setq arg (c-forward-to-nth-EOF-} (- arg) where)))
@@ -1587,13 +1585,11 @@
    ((eq where 'in-trailer)
     (c-syntactic-skip-backward "^}")
     (setq n (1- n)))
-   (;; (or (eq where 'at-function-end) (eq where 'outwith-function)
-;; 	(eq where 'at-header) (eq where 'in-header))
-    (memq where '(at-function-end outwith-function at-header in-header))
-    (c-syntactic-re-search-forward "{")
-    (backward-char)
-    (forward-sexp)
-    (setq n (1- n)))
+   ((memq where '(at-function-end outwith-function at-header in-header))
+    (when (c-syntactic-re-search-forward "{" nil 'eob)
+      (backward-char)
+      (forward-sexp)
+      (setq n (1- n))))
    (t (error "c-forward-to-nth-EOF-}: `where' is %s" where)))
 
   ;; Each time round the loop, go forward to a "}" at the outermost level.
@@ -1618,7 +1614,8 @@
   (or arg (setq arg 1))
 
   (c-save-buffer-state
-      ((start (point))
+      (beginning-of-defun-function end-of-defun-function
+       (start (point))
        where paren-state pos)
 
     ;; Move back out of any macro/comment/string we happen to be in.
@@ -1631,15 +1628,12 @@
     (if (< arg 0)
 	;; Move backwards to the } of a function
 	(progn
-	  (if ;; (or (eq where 'at-header) (eq where 'outwith-function))
-	      (memq where '(at-header outwith-function))
+	  (if (memq where '(at-header outwith-function))
 	      (setq arg (1+ arg)))
 	  (if (< arg 0)
 	      (setq arg (c-backward-to-nth-BOF-{ (- arg) where)))
-	  (when (and (= arg 0)
-		     (c-syntactic-skip-backward "^}")
-		     (eq (char-before) ?\}))
-	    t))
+	  (if (= arg 0)
+	      (c-syntactic-skip-backward "^}")))
 
       ;; Move forward to the } of a function
       (if (> arg 0)
--- a/lisp/progmodes/cc-defs.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-defs.el	Wed Apr 11 00:17:47 2007 +0000
@@ -74,12 +74,12 @@
 ; (eval-after-load "font-lock"  ; 2006-07-09.  font-lock is now preloaded
 ;   '
 (if (and (not (featurep 'cc-fix)) ; only load the file once.
-	    (featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS
-			       ; to make the call to f-l-c-k throw an error.
-            (let (font-lock-keywords)
-              (font-lock-compile-keywords '("\\<\\>"))
-	      font-lock-keywords))     ; did the previous call foul this up?
-       (load "cc-fix")) ;)
+	 (featurep 'xemacs)	; There is now (2005/12) code in GNU Emacs CVS
+				; to make the call to f-l-c-k throw an error.
+	 (let (font-lock-keywords)
+	   (font-lock-compile-keywords '("\\<\\>"))
+	   font-lock-keywords))     ; did the previous call foul this up?
+    (load "cc-fix")) ;)
 
 ;; The above takes care of the delayed loading, but this is necessary
 ;; to ensure correct byte compilation.
@@ -708,7 +708,8 @@
 	    ;; c-parse-state to between 3 and 60 times faster when
 	    ;; braces are hung.  It can also degrade performance by
 	    ;; about as much when braces are not hung.
-	    '(let (pos)
+	    '(let (beginning-of-defun-function end-of-defun-function
+					       pos)
 	       (while (not pos)
 		 (save-restriction
 		   (widen)
@@ -731,7 +732,8 @@
 		  ))
 	       (goto-char pos)))
        ;; Emacs, which doesn't have buffer-syntactic-context-depth
-       (beginning-of-defun))
+       (let (beginning-of-defun-function end-of-defun-function)
+	 (beginning-of-defun)))
      ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at the
      ;; open brace.
      (and defun-prompt-regexp
--- a/lisp/progmodes/cc-engine.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-engine.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1917,9 +1917,8 @@
   ;; Is the region (beg end) WS, and is there WS (or BOB/EOB) next to the
   ;; region?  This is a "heuristic" function.  .....
   ;; 
-  ;; The motivation for the second bit is to check whether the removal of this
-  ;; space is to check whether removing this region would coalesce two
-  ;; symbols.
+  ;; The motivation for the second bit is to check whether removing this
+  ;; region would coalesce two symbols.
   ;;
   ;; FIXME!!!  This function doesn't check virtual semicolons in any way.  Be
   ;; careful about using this function for, e.g. AWK.  (2007/3/7)
@@ -5372,7 +5371,7 @@
 	  ;; True if there's a prefix match outside the outermost
 	  ;; paren pair that surrounds the declarator.
 	  got-prefix-before-parens
-y	  ;; True if there's a suffix match outside the outermost
+	  ;; True if there's a suffix match outside the outermost
 	  ;; paren pair that surrounds the declarator.  The value is
 	  ;; the position of the first suffix match.
 	  got-suffix-after-parens
@@ -5878,19 +5877,23 @@
 
 (defun c-forward-label (&optional assume-markup preceding-token-end limit)
   ;; Assuming that point is at the beginning of a token, check if it starts a
-  ;; label and if so move over it and return t, otherwise don't move and
-  ;; return nil.  "Label" here means "most things with a colon".
+  ;; label and if so move over it and return non-nil (t in default situations,
+  ;; specific symbols (see below) for interesting situations), otherwise don't
+  ;; move and return nil.  "Label" here means "most things with a colon".
   ;;
   ;; More precisely, a "label" is regarded as one of:
-  ;; (i) a goto target like "foo:";
-  ;; (ii) A case label - either the entire construct "case FOO:" or just the
-  ;;   bare "case", should the colon be missing;
-  ;; (iii) a keyword which needs a colon, like "default:" or "private:";
+  ;; (i) a goto target like "foo:" - returns the symbol `goto-target';
+  ;; (ii) A case label - either the entire construct "case FOO:", or just the
+  ;;   bare "case", should the colon be missing.  We return t;
+  ;; (iii) a keyword which needs a colon, like "default:" or "private:";  We
+  ;;   return t;
   ;; (iv) One of QT's "extended" C++ variants of
-  ;; "private:"/"protected:"/"public:"/"more:" looking like "public slots:".
+  ;;   "private:"/"protected:"/"public:"/"more:" looking like "public slots:".
+  ;;   Returns the symbol `qt-2kwds-colon'.
+  ;; (v) QT's construct "signals:".  Returns the symbol `qt-1kwd-colon'.
   ;; (v) One of the keywords matched by `c-opt-extra-label-key' (without any
   ;;   colon).  Currently (2006-03), this applies only to Objective C's
-  ;;   keywords "@private", "@protected", and "@public".
+  ;;   keywords "@private", "@protected", and "@public".  Returns t.
   ;;
   ;; One of the things which will NOT be recognised as a label is a bit-field
   ;; element of a struct, something like "int foo:5".
@@ -5919,8 +5922,10 @@
   ;; This function might do hidden buffer changes.
 
   (let ((start (point))
+	label-end
 	qt-symbol-idx
-	macro-start)			; if we're in one.
+	macro-start			; if we're in one.
+	label-type)
     (cond
      ;; "case" or "default" (Doesn't apply to AWK). 
      ((looking-at c-label-kwds-regexp)
@@ -5933,25 +5938,26 @@
 
 	;; Find the label end.
 	(goto-char kwd-end)
-	(if (and (c-syntactic-re-search-forward
-		  ;; Stop on chars that aren't allowed in expressions,
-		  ;; and on operator chars that would be meaningless
-		  ;; there.  FIXME: This doesn't cope with ?: operators.
-		  "[;{=,@]\\|\\(\\=\\|[^:]\\):\\([^:]\\|\\'\\)"
-		  limit t t nil 1)
-		 (match-beginning 2))
-
-	    (progn
-	      (goto-char (match-beginning 2)) ; just after the :
-	      (c-put-c-type-property (1- (point)) 'c-decl-end)
-	      t)
-
-	  ;; It's an unfinished label.  We consider the keyword enough
-	  ;; to recognize it as a label, so that it gets fontified.
-	  ;; Leave the point at the end of it, but don't put any
-	  ;; `c-decl-end' marker.
-	  (goto-char kwd-end)
-	  t)))
+	(setq label-type
+	      (if (and (c-syntactic-re-search-forward
+			;; Stop on chars that aren't allowed in expressions,
+			;; and on operator chars that would be meaningless
+			;; there.  FIXME: This doesn't cope with ?: operators.
+			"[;{=,@]\\|\\(\\=\\|[^:]\\):\\([^:]\\|\\'\\)"
+			limit t t nil 1)
+		       (match-beginning 2))
+
+		  (progn		; there's a proper :
+		    (goto-char (match-beginning 2)) ; just after the :
+		    (c-put-c-type-property (1- (point)) 'c-decl-end)
+		    t)
+
+	      ;; It's an unfinished label.  We consider the keyword enough
+	      ;; to recognize it as a label, so that it gets fontified.
+	      ;; Leave the point at the end of it, but don't put any
+	      ;; `c-decl-end' marker.
+		(goto-char kwd-end)
+		t))))
 
      ;; @private, @protected, @public, in Objective C, or similar.
      ((and c-opt-extra-label-key
@@ -5963,7 +5969,7 @@
       (when c-record-type-identifiers
 	(c-record-ref-id (cons (match-beginning 1) (point))))
       (c-put-c-type-property (1- (point)) 'c-decl-end)
-      t)
+      (setq label-type t))
 
      ;; All other cases of labels.
      ((and c-recognize-colon-labels	; nil for AWK and IDL, otherwise t.
@@ -6039,26 +6045,49 @@
 			 (c-forward-syntactic-ws)
 			 (c-forward-label nil pte start))))))))))
 
+	   ;; Point is still at the beginning of the possible label construct.
+	   ;; 
 	   ;; Check that the next nonsymbol token is ":", or that we're in one
 	   ;; of QT's "slots" declarations.  Allow '(' for the sake of macro
 	   ;; arguments.  FIXME: Should build this regexp from the language
 	   ;; constants.
-	   (when (c-syntactic-re-search-forward
-		  "[ \t[:?;{=*/%&|,<>!@+-]" limit t t) ; not at EOB
-	     (backward-char)
-	     (setq qt-symbol-idx
-		   (and (c-major-mode-is 'c++-mode)
-			(string-match
-			 "\\(p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|more\\)\\>"
-			 (buffer-substring start (point)))))
-	     (c-forward-syntactic-ws limit)
-	     (when (or (looking-at ":\\([^:]\\|\\'\\)") ; A single colon.
-		       (and qt-symbol-idx
-			    (search-forward-regexp "\\=slots\\>" limit t)
-			    (progn (c-forward-syntactic-ws limit)
-				   (looking-at ":\\([^:]\\|\\'\\)")))) ; A single colon
-	       (forward-char)		; to after the colon.
-	       t)))
+	   (cond
+	    ;; public: protected: private:
+	    ((and
+	      (c-major-mode-is 'c++-mode)
+	      (search-forward-regexp
+	       "\\=p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\>[^_]" nil t)
+	      (progn (backward-char)
+		     (c-forward-syntactic-ws limit)
+		     (looking-at ":\\([^:]\\|\\'\\)"))) ; A single colon.
+	     (forward-char)
+	     (setq label-type t))
+	    ;; QT double keyword like "protected slots:" or goto target.
+	    ((progn (goto-char start) nil))
+	    ((when (c-syntactic-re-search-forward
+		    "[ \t\n[:?;{=*/%&|,<>!@+-]" limit t t) ; not at EOB
+	       (backward-char)
+	       (setq label-end (point))
+	       (setq qt-symbol-idx
+		     (and (c-major-mode-is 'c++-mode)
+			  (string-match
+			   "\\(p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|more\\)\\>"
+			   (buffer-substring start (point)))))  
+	       (c-forward-syntactic-ws limit)
+	       (cond
+		((looking-at ":\\([^:]\\|\\'\\)") ; A single colon.
+		 (forward-char)
+		 (setq label-type
+		       (if (string= "signals" ; Special QT macro
+				    (buffer-substring-no-properties start label-end))
+			   'qt-1kwd-colon
+			 'goto-target)))
+		((and qt-symbol-idx
+		      (search-forward-regexp "\\=slots\\>" limit t)
+		      (progn (c-forward-syntactic-ws limit)
+			     (looking-at ":\\([^:]\\|\\'\\)"))) ; A single colon
+		 (forward-char)
+		 (setq label-type 'qt-2kwds-colon)))))))
 
       (save-restriction
 	(narrow-to-region start (point))
@@ -6069,6 +6098,7 @@
 	  (while (progn
 		   (when (looking-at c-nonlabel-token-key)
 		     (goto-char start)
+		     (setq label-type nil)
 		     (throw 'check-label nil))
 		   (and (c-safe (c-forward-sexp)
 				(c-forward-syntactic-ws)
@@ -6088,12 +6118,12 @@
 
 	  (c-put-c-type-property (1- (point-max)) 'c-decl-end)
 	  (goto-char (point-max))
-	  t)))
+	  )))
 
      (t
       ;; Not a label.
-      (goto-char start)
-      nil))))
+      (goto-char start)))
+    label-type))
 
 (defun c-forward-objc-directive ()
   ;; Assuming the point is at the beginning of a token, try to move
--- a/lisp/progmodes/cc-fonts.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-fonts.el	Wed Apr 11 00:17:47 2007 +0000
@@ -704,8 +704,13 @@
       ))
 
 (defun c-font-lock-complex-decl-prepare (limit)
+  ;; This function will be called from font-lock for a region bounded by POINT
+  ;; and LIMIT, as though it were to identify a keyword for
+  ;; font-lock-keyword-face.  It always returns NIL to inhibit this and
+  ;; prevent a repeat invocation.  See elisp/lispref page "Search-based
+  ;; Fontification".
+  ;;
   ;; Called before any of the matchers in `c-complex-decl-matchers'.
-  ;; Nil is always returned.
   ;;
   ;; This function does hidden buffer changes.
 
@@ -742,10 +747,15 @@
   nil)
 
 (defun c-font-lock-<>-arglists (limit)
+  ;; This function will be called from font-lock for a region bounded by POINT
+  ;; and LIMIT, as though it were to identify a keyword for
+  ;; font-lock-keyword-face.  It always returns NIL to inhibit this and
+  ;; prevent a repeat invocation.  See elisp/lispref page "Search-based
+  ;; Fontification".
+  ;;
   ;; Fontify types and references in names containing angle bracket
   ;; arglists from the point to LIMIT.  Note that
-  ;; `c-font-lock-declarations' already has handled many of them.  Nil
-  ;; is always returned.
+  ;; `c-font-lock-declarations' already has handled many of them.
   ;;
   ;; This function might do hidden buffer changes.
 
@@ -971,9 +981,14 @@
 	font-lock-keyword-face))
 
 (defun c-font-lock-declarations (limit)
+  ;; This function will be called from font-lock for a region bounded by POINT
+  ;; and LIMIT, as though it were to identify a keyword for
+  ;; font-lock-keyword-face.  It always returns NIL to inhibit this and
+  ;; prevent a repeat invocation.  See elisp/lispref page "Search-based
+  ;; Fontification".
+  ;;
   ;; Fontify all the declarations, casts and labels from the point to LIMIT.
-  ;; Assumes that strings and comments have been fontified already.  Nil is
-  ;; always returned.
+  ;; Assumes that strings and comments have been fontified already.
   ;;
   ;; This function might do hidden buffer changes.
 
@@ -1009,6 +1024,7 @@
 	  ;; `c-forward-decl-or-cast-1' and `c-forward-label' for
 	  ;; later fontification.
 	  (c-record-type-identifiers t)
+	  label-type
 	  c-record-ref-identifiers
 	  ;; Make `c-forward-type' calls mark up template arglists if
 	  ;; it finds any.  That's necessary so that we later will
@@ -1174,39 +1190,31 @@
 	      (c-fontify-recorded-types-and-refs)
 	      nil))
 
-	  ;; It was a false alarm.
+	  ;; It was a false alarm.  Check if we're in a label (or other
+	  ;; construct with `:' except bitfield) instead.
 	  (goto-char start-pos)
-	  ;; 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?
-	  (c-forward-label t match-pos 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)
-	  )))
+	  (when (setq label-type (c-forward-label t match-pos nil))
+	    ;; Can't use `c-fontify-types-and-refs' here since we
+	    ;; use the label face at times.
+	    (cond ((eq label-type 'goto-target)
+		   (c-put-font-lock-face (caar c-record-ref-identifiers)
+					 (cdar c-record-ref-identifiers)
+					 c-label-face-name))
+		  ((eq label-type 'qt-1kwd-colon)
+		   (c-put-font-lock-face (caar c-record-ref-identifiers)
+					 (cdar c-record-ref-identifiers)
+					 'font-lock-keyword-face))
+		  ((eq label-type 'qt-2kwds-colon)
+		   (mapc
+		    (lambda (kwd)
+		      (c-put-font-lock-face (car kwd) (cdr kwd)
+					    'font-lock-keyword-face))
+		    c-record-ref-identifiers)))
+	    (setq c-record-ref-identifiers nil)
+	    ;; `c-forward-label' has probably added a `c-decl-end'
+	    ;; marker, so return t to `c-find-decl-spots' to signal
+	    ;; that.
+	    t))))
 
       nil)))
 
@@ -1285,6 +1293,14 @@
   "Complex font lock matchers for types and declarations.  Used on level
 3 and higher."
 
+  ;; Note: This code in this form dumps a number of funtions into the
+  ;; resulting constant, `c-matchers-3'.  At run time, font lock will call
+  ;; each of them as a "FUNCTION" (see Elisp page "Search-based
+  ;; Fontification").  The font lock region is delimited by POINT and the
+  ;; single parameter, LIMIT.  Each of these functions returns NIL (thus
+  ;; inhibiting spurious font-lock-keyword-face highlighting and another
+  ;; call).
+
   t `(;; Initialize some things before the search functions below.
       c-font-lock-complex-decl-prepare
 
@@ -1397,6 +1413,8 @@
 
       ;; Fontify the type in C++ "new" expressions.
       ,@(when (c-major-mode-is 'c++-mode)
+	  ;; This pattern is a probably a "(MATCHER . ANCHORED-HIGHLIGHTER)"
+	  ;; (see Elisp page "Search-based Fontification").
 	  `(("\\<new\\>"
 	     (c-font-lock-c++-new))))
       ))
--- a/lisp/progmodes/cc-langs.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-langs.el	Wed Apr 11 00:17:47 2007 +0000
@@ -221,11 +221,6 @@
     ;; with the group symbol for each group and should return non-nil
     ;; if that group is to be included.
     ;;
-    ;; OP-FILTER filters the individual operators in each group.  It
-    ;; can be t to choose all operators, a regexp to test against each
-    ;; operator, or a function which will be called for each operator
-    ;; and should return non-nil for those to include.
-    ;;
     ;; If XLATE is given, it's a function which is called for each
     ;; matching operator and its return value is collected instead.
     ;; If it returns a list, the elements are spliced directly into
@@ -1376,6 +1371,26 @@
   (c-lang-const c-vsemi-status-unknown-p-fn))
 
 
+;;; Defun functions
+
+;; The Emacs variables beginning-of-defun-function and
+;; end-of-defun-function will be set so that commands like
+;; `mark-defun' and `narrow-to-defun' work right.  The key sequences
+;; C-M-a and C-M-e are, however, bound directly to the CC Mode
+;; functions, allowing optimisation for large n.
+(c-lang-defconst beginning-of-defun-function
+  "Function to which beginning-of-defun-function will be set."
+  t 'c-beginning-of-defun
+  awk 'c-awk-beginning-of-defun)
+(c-lang-setvar beginning-of-defun-function
+	       (c-lang-const beginning-of-defun-function))
+
+(c-lang-defconst end-of-defun-function
+  "Function to which end-of-defun-function will be set."
+  t 'c-end-of-defun
+  awk 'c-awk-end-of-defun)
+(c-lang-setvar end-of-defun-function (c-lang-const end-of-defun-function))
+
 ;;; In-comment text handling.
 
 (c-lang-defconst c-paragraph-start
--- a/lisp/progmodes/cc-mode.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-mode.el	Wed Apr 11 00:17:47 2007 +0000
@@ -158,8 +158,8 @@
 ;; These are typically standard emacs variables such as `comment-start'.
 (defmacro c-make-emacs-variables-local ()
   `(progn
-     ,@(mapcan (lambda (init)
-		 `((make-local-variable ',(car init))))
+     ,@(mapcar (lambda (init)
+		 `(make-local-variable ',(car init)))
 	       (cdr c-emacs-variable-inits))))
 
 (defun c-init-language-vars-for (mode)
@@ -509,9 +509,9 @@
 	      type type-pos
 	      marked-id term-pos
 	      (end1
-	       (if (eq (get-text-property end 'face) 'font-lock-comment-face)
-		   (previous-single-property-change end 'face)
-		 end)))
+	       (or (and (eq (get-text-property end 'face) 'font-lock-comment-face)
+			(previous-single-property-change end 'face))
+		   end)))
 	  (when (>= end1 beg) ; Don't hassle about changes entirely in comments.
 	    ;; Find a limit for the search for a `c-type' property
 	    (while
--- a/lisp/progmodes/cc-subword.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-subword.el	Wed Apr 11 00:17:47 2007 +0000
@@ -218,38 +218,52 @@
   (interactive "*p")
   (transpose-subr 'c-forward-subword arg))
 
+
+
+(defun c-downcase-subword (arg)
+  "Do the same as `downcase-word' but on subwords.
+See the command `c-subword-mode' for a description of subwords.
+Optional argument ARG is the same as for `downcase-word'."
+  (interactive "p")
+  (let ((start (point)))
+    (downcase-region (point) (c-forward-subword arg))
+    (when (< arg 0) 
+      (goto-char start))))
+
+(defun c-upcase-subword (arg)
+  "Do the same as `upcase-word' but on subwords.
+See the command `c-subword-mode' for a description of subwords.
+Optional argument ARG is the same as for `upcase-word'."
+  (interactive "p")
+  (let ((start (point)))
+    (upcase-region (point) (c-forward-subword arg))
+    (when (< arg 0) 
+      (goto-char start))))
+
 (defun c-capitalize-subword (arg)
   "Do the same as `capitalize-word' but on subwords.
 See the command `c-subword-mode' for a description of subwords.
 Optional argument ARG is the same as for `capitalize-word'."
   (interactive "p")
   (let ((count (abs arg))
-	(direction (if (< 0 arg) 1 -1)))
+	(start (point))
+	(advance (if (< arg 0) nil t)))
     (dotimes (i count)
-      (when (re-search-forward
-	     (concat "[" c-alpha "]")
-	     nil t)
-	(goto-char (match-beginning 0)))
+      (if advance
+	  (progn (re-search-forward
+		  (concat "[" c-alpha "]")
+		  nil t)
+		 (goto-char (match-beginning 0)))
+	(c-backward-subword))
       (let* ((p (point))
 	     (pp (1+ p))
-	     (np (c-forward-subword direction)))
+	     (np (c-forward-subword)))
 	(upcase-region p pp)
 	(downcase-region pp np)
-	(goto-char np)))))
+	(goto-char (if advance np p))))
+    (unless advance
+      (goto-char start))))
 
-(defun c-downcase-subword (arg)
-  "Do the same as `downcase-word' but on subwords.
-See the command `c-subword-mode' for a description of subwords.
-Optional argument ARG is the same as for `downcase-word'."
-  (interactive "p")
-  (downcase-region (point) (c-forward-subword arg)))
-
-(defun c-upcase-subword (arg)
-  "Do the same as `upcase-word' but on subwords.
-See the command `c-subword-mode' for a description of subwords.
-Optional argument ARG is the same as for `upcase-word'."
-  (interactive "p")
-  (upcase-region (point) (c-forward-subword arg)))
 
 
 ;;
--- a/lisp/progmodes/cc-vars.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cc-vars.el	Wed Apr 11 00:17:47 2007 +0000
@@ -890,7 +890,8 @@
 
 (defcustom c-special-indent-hook nil
   "*Hook for user defined special indentation adjustments.
-This hook gets called after a line is indented by the mode."
+This hook gets called after each line is indented by the mode.  It is only
+called if `c-syntactic-indentation' is non-nil."
   :type 'hook
   :group 'c)
 
--- a/lisp/progmodes/compile.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/compile.el	Wed Apr 11 00:17:47 2007 +0000
@@ -391,6 +391,7 @@
 		    ,(expand-file-name "compilation.txt" data-directory))
   :group 'compilation)
 
+;;;###autoload(put 'compilation-directory 'safe-local-variable 'stringp)
 (defvar compilation-directory nil
   "Directory to restore to when doing `recompile'.")
 
@@ -625,7 +626,7 @@
 		   (cons (match-string-no-properties idx) dir))
       mouse-face highlight
       keymap compilation-button-map
-      help-echo "mouse-2: visit this directory")))
+      help-echo "mouse-2: visit destination directory")))
 
 ;; Data type `reverse-ordered-alist' retriever.  This function retrieves the
 ;; KEY element from the ALIST, creating it in the right position if not already
@@ -1041,7 +1042,7 @@
 		 highlight-regexp))
 	;; Output a mode setter, for saving and later reloading this buffer.
 	(insert "-*- mode: " name-of-mode
-		"; default-directory: " (prin1-to-string default-directory)
+		"; compilation-directory: " (prin1-to-string compilation-directory)
 		" -*-\n"
 		(format "%s started at %s\n\n"
 			mode-name
--- a/lisp/progmodes/cperl-mode.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/cperl-mode.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1871,9 +1871,7 @@
       (easy-menu-add cperl-menu))	; A NOP in Emacs.
   (run-mode-hooks 'cperl-mode-hook)
   (if cperl-hook-after-change
-      (progn
-	(make-local-hook 'after-change-functions)
-	(add-hook 'after-change-functions 'cperl-after-change-function nil t)))
+      (add-hook 'after-change-functions 'cperl-after-change-function nil t))
   ;; After hooks since fontification will break this
   (if cperl-pod-here-scan
       (or cperl-syntaxify-by-font-lock
--- a/lisp/progmodes/dcl-mode.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/dcl-mode.el	Wed Apr 11 00:17:47 2007 +0000
@@ -71,6 +71,9 @@
 
 ;;; Code:
 
+(require 'tempo)
+
+
 ;;; *** Customization *****************************************************
 
 
@@ -1935,8 +1938,6 @@
 ;; standard Emacs.  I would have liked something closer to the functionality
 ;; of LSE templates...
 
-
-(require 'tempo)
 (defvar dcl-tempo-tags nil
   "Tempo tags for DCL mode.")
 
--- a/lisp/progmodes/flymake.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/flymake.el	Wed Apr 11 00:17:47 2007 +0000
@@ -931,8 +931,8 @@
       2 4 nil 5))
    ;; compilation-error-regexp-alist)
    (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist))
-  "Patterns for matching error/warning lines.
-\(REGEXP FILE-IDX LINE-IDX ERR-TEXT-IDX).
+  "Patterns for matching error/warning lines.  Each pattern has the form
+\(REGEXP FILE-IDX LINE-IDX COL-IDX ERR-TEXT-IDX).
 Use `flymake-reformat-err-line-patterns-from-compile-el' to add patterns
 from compile.el")
 
--- a/lisp/progmodes/gdb-ui.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/gdb-ui.el	Wed Apr 11 00:17:47 2007 +0000
@@ -1771,10 +1771,15 @@
   :group 'gud)
 
 (defface breakpoint-disabled
-  ;; We use different values of grey for different background types,
-  ;; so that on low-color displays it will end up as something visible
-  ;; if it has to be approximated.
-  '((t :foreground  "grey70"))
+  '((((class color) (min-colors 88)) :foreground "grey70")
+    ;; Ensure that on low-color displays that we end up something visible.
+    (((class color) (min-colors 8) (background light))
+     :foreground "black")
+    (((class color) (min-colors 8) (background dark))
+     :foreground "white")
+    (((type tty) (class mono))
+     :inverse-video t)
+    (t :background "gray"))
   "Face for disabled breakpoint icon in fringe."
   :group 'gud)
 
--- a/lisp/progmodes/grep.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/grep.el	Wed Apr 11 00:17:47 2007 +0000
@@ -315,17 +315,7 @@
 This gets tacked on the end of the generated expressions.")
 
 ;;;###autoload
-(defvar grep-program
-  ;; Currently zgrep has trouble.  It runs egrep instead of grep,
-  ;; and it doesn't pass along long options right.
-  "grep"
-  ;; (if (equal (condition-case nil	; in case "zgrep" isn't in exec-path
-  ;; 		 (call-process "zgrep" nil nil nil
-  ;; 			       "foo" null-device)
-  ;; 	       (error nil))
-  ;; 	     1)
-  ;;     "zgrep"
-  ;;   "grep")
+(defvar grep-program "grep"
   "The default grep program for `grep-command' and `grep-find-command'.
 This variable's value takes effect when `grep-compute-defaults' is called.")
 
@@ -336,10 +326,10 @@
 
 ;;;###autoload
 (defvar grep-find-use-xargs nil
-  "Whether \\[grep-find] uses the `xargs' utility by default.
-
-If `exec', it uses `find -exec'; if `gnu', it uses `find -print0' and `xargs -0';
-if not nil and not `gnu', it uses `find -print' and `xargs'.
+  "Non-nil means that `grep-find' uses the `xargs' utility by default.
+If `exec', use `find -exec'.
+If `gnu', use `find -print0' and `xargs -0'.
+Any other non-nil value means to use `find -print' and `xargs'.
 
 This variable's value takes effect when `grep-compute-defaults' is called.")
 
--- a/lisp/progmodes/gud.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/gud.el	Wed Apr 11 00:17:47 2007 +0000
@@ -147,8 +147,7 @@
     ([refresh]	"Refresh" . gud-refresh)
     ([run]	menu-item "Run" gud-run
                   :enable (not gud-running)
-		  :visible (and (memq gud-minor-mode '(gdbmi gdb dbx jdb))
-				(not (eq gud-minor-mode 'gdba))))
+		  :visible (memq gud-minor-mode '(gdbmi gdb dbx jdb)))
     ([go]	menu-item (if gdb-active-process "Continue" "Run") gud-go
 		  :visible (and (not gud-running)
 				(eq gud-minor-mode 'gdba)))
@@ -214,7 +213,45 @@
   :name "Gud")
 
 (easy-mmode-defmap gud-minor-mode-map
-  `(([menu-bar debug] . ("Gud" . ,gud-menu-map)))
+  (append
+     `(([menu-bar debug] . ("Gud" . ,gud-menu-map)))
+     ;; Get tool bar like functionality from the menu bar on a text only
+     ;; terminal.
+   (unless window-system
+     `(([menu-bar down]
+	. (,(propertize "down" 'face 'font-lock-doc-face) . gud-down))
+       ([menu-bar up]
+	. (,(propertize "up" 'face 'font-lock-doc-face) . gud-up))
+       ([menu-bar finish]
+	. (,(propertize "finish" 'face 'font-lock-doc-face) . gud-finish))
+       ([menu-bar step]
+	. (,(propertize "step" 'face 'font-lock-doc-face) . gud-step))
+       ([menu-bar next]
+	. (,(propertize "next" 'face 'font-lock-doc-face) . gud-next))
+       ([menu-bar until] menu-item
+	,(propertize "until" 'face 'font-lock-doc-face) gud-until
+		  :visible (memq gud-minor-mode '(gdbmi gdba gdb perldb)))
+       ([menu-bar cont] menu-item
+	,(propertize "cont" 'face 'font-lock-doc-face) gud-cont
+	:visible (not (eq gud-minor-mode 'gdba)))
+       ([menu-bar run] menu-item
+	,(propertize "run" 'face 'font-lock-doc-face) gud-run
+	:visible (memq gud-minor-mode '(gdbmi gdb dbx jdb)))
+       ([menu-bar go] menu-item 
+	,(propertize "go" 'face 'font-lock-doc-face) gud-go
+	:visible (and (not gud-running)
+		      (eq gud-minor-mode 'gdba)))
+       ([menu-bar stop] menu-item
+	,(propertize "stop" 'face 'font-lock-doc-face) gud-stop-subjob
+	:visible (or gud-running
+		     (not (eq gud-minor-mode 'gdba))))
+       ([menu-bar print]
+	. (,(propertize "print" 'face 'font-lock-doc-face) . gud-print))
+       ([menu-bar tools] . undefined)
+       ([menu-bar buffer] . undefined)
+       ([menu-bar options] . undefined)
+       ([menu-bar edit] . undefined)
+       ([menu-bar file] . undefined))))
   "Map used in visited files.")
 
 (let ((m (assq 'gud-minor-mode minor-mode-map-alist)))
@@ -686,14 +723,13 @@
 session."
   (interactive (list (gud-query-cmdline 'gdb)))
 
-  (if (and gud-comint-buffer
+  (when (and gud-comint-buffer
 	   (buffer-name gud-comint-buffer)
 	   (get-buffer-process gud-comint-buffer)
 	   (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)))
-      (let ((same-window-regexps))
-	(display-buffer gud-comint-buffer)
+	(gdb-restore-windows)
 	(error
-	 "Multiple debugging requires restarting in text command mode")))
+	 "Multiple debugging requires restarting in text command mode"))
 
   (gud-common-init command-line nil 'gud-gdb-marker-filter)
   (set (make-local-variable 'gud-minor-mode) 'gdb)
--- a/lisp/progmodes/hideshow.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/hideshow.el	Wed Apr 11 00:17:47 2007 +0000
@@ -184,7 +184,6 @@
 ;; (5) Hideshow interacts badly with Ediff and `vc-diff'.  At the moment, the
 ;;     suggested workaround is to turn off hideshow entirely, for example:
 ;;
-;;     (defun turn-off-hideshow () (hs-minor-mode -1))
 ;;     (add-hook 'ediff-prepare-buffer-hook 'turn-off-hideshow)
 ;;     (add-hook 'vc-before-checkin-hook 'turn-off-hideshow)
 ;;
@@ -908,7 +907,7 @@
         (hs-grok-mode-type)
         ;; Turn off this mode if we change major modes.
 	(add-hook 'change-major-mode-hook
-		  (lambda () (hs-minor-mode -1))
+		  'turn-off-hideshow
 		  nil t)
         (easy-menu-add hs-minor-mode-menu)
         (set (make-local-variable 'line-move-ignore-invisible) t)
@@ -920,6 +919,11 @@
       (hs-show-all)))
   (run-hooks 'hs-minor-mode-hook))
 
+;;;###autoload
+(defun turn-off-hideshow ()
+  "Unconditionally turn off `hs-minor-mode'."
+  (hs-minor-mode -1))
+
 ;;---------------------------------------------------------------------------
 ;; load-time actions
 
--- a/lisp/progmodes/idlw-shell.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/idlw-shell.el	Wed Apr 11 00:17:47 2007 +0000
@@ -2698,7 +2698,7 @@
 	 (class (nth 2 module)))
     (if module
 	(progn 
-	  (setq module (idlwave-make-full-name (nth 2 module) (car module)))
+	  (setq module (idlwave-make-full-name class name))
 	  (idlwave-shell-module-source-query module type)
 	  (idlwave-shell-set-bp-in-module name type class))
       (error "No identifier at point"))))
@@ -2707,14 +2707,15 @@
 (defun idlwave-shell-set-bp-in-module (name type class)
   "Set breakpoint in module.  Assumes that `idlwave-shell-sources-alist'
 contains an entry for that module."
-  (let ((source-file 
-	 (car-safe (cdr-safe
-		    (or
-		     (assoc (upcase (idlwave-make-full-name class name))
-			    idlwave-shell-sources-alist)
-		     (nth 3 (idlwave-best-rinfo-assoc name type class 
-						      (idlwave-routines)))))))
-	buf)
+  (let* ((module (idlwave-make-full-name class name))
+	 (source-file 
+	  (car-safe (cdr-safe
+		     (or
+		      (assoc (upcase module)
+			     idlwave-shell-sources-alist)
+		      (nth 3 (idlwave-best-rinfo-assoc name type class 
+						       (idlwave-routines)))))))
+	 buf)
     (if (or (not source-file)
 	    (not (file-regular-p source-file))
 	    (not (setq buf
--- a/lisp/progmodes/idlwave.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/idlwave.el	Wed Apr 11 00:17:47 2007 +0000
@@ -3487,6 +3487,7 @@
 	  (idlwave-indent-line)
 	  ;; Prevent actions do-auto-fill which calls indent-line-function.
 	  (let (idlwave-do-actions
+		(paragraph-separate ".")
 		(fill-nobreak-predicate
 		 (if (and (idlwave-in-quote)
 			  idlwave-auto-fill-split-string)
--- a/lisp/progmodes/m4-mode.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/m4-mode.el	Wed Apr 11 00:17:47 2007 +0000
@@ -118,14 +118,19 @@
 (defun m4-m4-buffer ()
   "Send contents of the current buffer to m4."
   (interactive)
-  (shell-command-on-region (point-min) (point-max) m4-program "*m4-output*"
-			   nil)
+  (shell-command-on-region
+   (point-min) (point-max)
+   (mapconcat 'identity (cons m4-program m4-program-options) "\s")
+   "*m4-output*" nil)
   (switch-to-buffer-other-window "*m4-output*"))
 
 (defun m4-m4-region ()
   "Send contents of the current region to m4."
   (interactive)
-  (shell-command-on-region (point) (mark) m4-program "*m4-output*" nil)
+  (shell-command-on-region
+   (point) (mark)
+   (mapconcat 'identity (cons m4-program m4-program-options) "\s")
+   "*m4-output*" nil)
   (switch-to-buffer-other-window "*m4-output*"))
 
 ;;;###autoload
--- a/lisp/progmodes/python.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/progmodes/python.el	Wed Apr 11 00:17:47 2007 +0000
@@ -2225,6 +2225,7 @@
 				   ;;  . python-font-lock-syntactic-face-function)
 				   ))
   (set (make-local-variable 'parse-sexp-lookup-properties) t)
+  (set (make-local-variable 'parse-sexp-ignore-comments) t)
   (set (make-local-variable 'comment-start) "# ")
   (set (make-local-variable 'indent-line-function) #'python-indent-line)
   (set (make-local-variable 'indent-region-function) #'python-indent-region)
--- a/lisp/recentf.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/recentf.el	Wed Apr 11 00:17:47 2007 +0000
@@ -72,7 +72,14 @@
 (defcustom recentf-save-file "~/.recentf"
   "*File to save the recent list into."
   :group 'recentf
-  :type 'file)
+  :type 'file
+  :initialize 'custom-initialize-default
+  :set (lambda (symbol value)
+         (let ((oldvalue (eval symbol)))
+           (custom-set-default symbol value)
+           (and (not (equal value oldvalue))
+                recentf-mode
+                (recentf-load-list)))))
 
 (defcustom recentf-save-file-modes 384 ;; 0600
   "Mode bits of recentf save file, as an integer, or nil.
--- a/lisp/replace.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/replace.el	Wed Apr 11 00:17:47 2007 +0000
@@ -844,7 +844,8 @@
        #'next-single-property-change)
      "No more matches")
     ;; In case the *Occur* buffer is visible in a nonselected window.
-    (set-window-point (get-buffer-window (current-buffer)) (point))
+    (let ((win (get-buffer-window (current-buffer) t)))
+      (if win (set-window-point win (point))))
     (occur-mode-goto-occurrence)))
 
 (defface match
--- a/lisp/simple.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/simple.el	Wed Apr 11 00:17:47 2007 +0000
@@ -130,8 +130,10 @@
 
 (defcustom next-error-highlight 0.5
   "*Highlighting of locations in selected source buffers.
-If number, highlight the locus in `next-error' face for given time in seconds.
-If t, highlight the locus indefinitely until some other locus replaces it.
+If a number, highlight the locus in `next-error' face for the given time
+in seconds, or until the next command is executed.
+If t, highlight the locus until the next command is executed, or until
+some other locus replaces it.
 If nil, don't highlight the locus in the source buffer.
 If `fringe-arrow', indicate the locus by the fringe arrow."
   :type '(choice (number :tag "Highlight for specified time")
@@ -3091,7 +3093,7 @@
 (defvar activate-mark-hook nil
   "Hook run when the mark becomes active.
 It is also run at the end of a command, if the mark is active and
-it is possible that the region may have changed")
+it is possible that the region may have changed.")
 
 (defvar deactivate-mark-hook nil
   "Hook run when the mark becomes inactive.")
@@ -3201,28 +3203,28 @@
   :group 'editing)
 
 (defun set-mark-command (arg)
-  "Set mark at where point is, or jump to mark.
-With no prefix argument, set mark, and push old mark position on local
-mark ring; also push mark on global mark ring if last mark was set in
+  "Set mark where point is, or jump to mark.
+Setting the mark also sets the \"region\", which is the closest
+equivalent in Emacs to what some editors call the \"selection\".
+
+With no prefix argument, set mark and push old mark position on local
+mark ring.  Also, push mark on global mark ring, if last mark was set in
 another buffer.  Immediately repeating the command activates
 `transient-mark-mode' temporarily.
 
-With argument, e.g. \\[universal-argument] \\[set-mark-command], \
-jump to mark, and pop a new position
-for mark off the local mark ring \(this does not affect the global
-mark ring\).  Use \\[pop-global-mark] to jump to a mark off the global
+With prefix argument \(e.g., \\[universal-argument] \\[set-mark-command]\), \
+jump to mark, and set mark from
+position popped off the local mark ring \(this does not affect the global
+mark ring\).  Use \\[pop-global-mark] to jump to a mark popped off the global
 mark ring \(see `pop-global-mark'\).
 
 If `set-mark-command-repeat-pop' is non-nil, repeating
-the \\[set-mark-command] command with no prefix pops the next position
+the \\[set-mark-command] command with no prefix argument pops the next position
 off the local (or global) mark ring and jumps there.
 
-With a double \\[universal-argument] prefix argument, e.g. \\[universal-argument] \
-\\[universal-argument] \\[set-mark-command], unconditionally
-set mark where point is.
-
-Setting the mark also sets the \"region\", which is the closest
-equivalent in Emacs to what some editors call the \"selection\".
+With a double \\[universal-argument] prefix argument \(e.g., \\[universal-argument] \
+\\[universal-argument] \\[set-mark-command]\), unconditionally
+set mark where point is, even if `set-mark-command-repeat-pop' is non-nil.
 
 Novice Emacs Lisp programmers often try to use the mark for the wrong
 purposes.  See the documentation of `set-mark' for more information."
@@ -4476,7 +4478,7 @@
       (save-excursion
 	(save-restriction
 	  (if blink-matching-paren-distance
-	      (narrow-to-region (max (point-min)
+	      (narrow-to-region (max (minibuffer-prompt-end)
 				     (- (point) blink-matching-paren-distance))
 				oldpos))
 	  (condition-case ()
@@ -4726,16 +4728,9 @@
 Each action has the form (FUNCTION . ARGS)."
   (interactive
    (list nil nil nil current-prefix-arg))
-  (let ((function (get mail-user-agent 'composefunc))
-	result-buffer)
-    (if switch-function
-	(save-window-excursion
-	  (prog1
-	      (funcall function to subject other-headers continue
-		       nil yank-action send-actions)
-	    (funcall switch-function (current-buffer))))
-      (funcall function to subject other-headers continue
-	       nil yank-action send-actions))))
+  (let ((function (get mail-user-agent 'composefunc)))
+    (funcall function to subject other-headers continue
+	     switch-function yank-action send-actions)))
 
 (defun compose-mail-other-window (&optional to subject other-headers continue
 					    yank-action send-actions)
--- a/lisp/startup.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/startup.el	Wed Apr 11 00:17:47 2007 +0000
@@ -44,8 +44,8 @@
   "Non-nil inhibits the startup screen.
 It also inhibits display of the initial message in the `*scratch*' buffer.
 
-This is for use in your personal init file, once you are familiar
-with the contents of the startup screen."
+This is for use in your personal init file (but NOT site-start.el), once
+you are familiar with the contents of the startup screen."
   :type 'boolean
   :group 'initialization)
 
@@ -510,7 +510,7 @@
 ;; Handle the X-like command-line arguments "-fg", "-bg", "-name", etc.
 (defun tty-handle-args (args)
   (let (rest)
-    (message "%s" args)
+    (message "%S" args)
     (while (and args
 		(not (equal (car args) "--")))
       (let* ((argi (pop args))
@@ -955,11 +955,11 @@
 	    (with-current-buffer (window-buffer)
 	      (deactivate-mark)))
 
-	;; If the user has a file of abbrevs, read it.  
+	;; If the user has a file of abbrevs, read it.
         ;; FIXME: after the 22.0 release this should be changed so
 	;; that it does not read the abbrev file when -batch is used
 	;; on the command line.
-	(when (and (file-exists-p abbrev-file-name) 
+	(when (and (file-exists-p abbrev-file-name)
 		   (file-readable-p abbrev-file-name))
 	    (quietly-read-abbrev-file abbrev-file-name))
 
--- a/lisp/subr.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/subr.el	Wed Apr 11 00:17:47 2007 +0000
@@ -579,7 +579,7 @@
 ;;;; substitute-key-definition and its subroutines.
 
 (defvar key-substitution-in-progress nil
- "Used internally by `substitute-key-definition'.")
+  "Used internally by `substitute-key-definition'.")
 
 (defun substitute-key-definition (olddef newdef keymap &optional oldmap prefix)
   "Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF.
@@ -821,11 +821,11 @@
 (defun posn-set-point (position)
   "Move point to POSITION.
 Select the corresponding window as well."
-    (if (not (windowp (posn-window position)))
-	(error "Position not in text area of window"))
-    (select-window (posn-window position))
-    (if (numberp (posn-point position))
-	(goto-char (posn-point position))))
+  (if (not (windowp (posn-window position)))
+      (error "Position not in text area of window"))
+  (select-window (posn-window position))
+  (if (numberp (posn-point position))
+      (goto-char (posn-point position))))
 
 (defsubst posn-x-y (position)
   "Return the x and y coordinates in POSITION.
@@ -949,20 +949,26 @@
 ;;;; Obsolescence declarations for variables, and aliases.
 
 (make-obsolete-variable 'directory-sep-char "do not use it." "21.1")
-(make-obsolete-variable 'mode-line-inverse-video "use the appropriate faces instead." "21.1")
-(make-obsolete-variable 'unread-command-char
-  "use `unread-command-events' instead.  That variable is a list of events
+(make-obsolete-variable
+ 'mode-line-inverse-video
+ "use the appropriate faces instead."
+ "21.1")
+(make-obsolete-variable
+ 'unread-command-char
+ "use `unread-command-events' instead.  That variable is a list of events
 to reread, so it now uses nil to mean `no event', instead of -1."
-  "before 19.15")
+ "before 19.15")
 
 ;; Lisp manual only updated in 22.1.
 (define-obsolete-variable-alias 'executing-macro 'executing-kbd-macro
-			      "before 19.34")
+  "before 19.34")
 
 (defvaralias 'x-lost-selection-hooks 'x-lost-selection-functions)
-(make-obsolete-variable 'x-lost-selection-hooks 'x-lost-selection-functions "22.1")
+(make-obsolete-variable 'x-lost-selection-hooks
+			'x-lost-selection-functions "22.1")
 (defvaralias 'x-sent-selection-hooks 'x-sent-selection-functions)
-(make-obsolete-variable 'x-sent-selection-hooks 'x-sent-selection-functions "22.1")
+(make-obsolete-variable 'x-sent-selection-hooks
+			'x-sent-selection-functions "22.1")
 
 (defvaralias 'messages-buffer-max-lines 'message-log-max)
 
@@ -1534,7 +1540,7 @@
 
 (when (featurep 'make-network-process)
   (defun open-network-stream (name buffer host service)
-  "Open a TCP connection for a service to a host.
+    "Open a TCP connection for a service to a host.
 Returns a subprocess-object to represent the connection.
 Input and output work as for subprocesses; `delete-process' closes it.
 
@@ -1548,14 +1554,15 @@
 HOST is name of the host to connect to, or its IP address.
 SERVICE is name of the service desired, or an integer specifying
  a port number to connect to."
-  (make-network-process :name name :buffer buffer
-			:host host :service service)))
+    (make-network-process :name name :buffer buffer
+				     :host host :service service)))
 
 ;; compatibility
 
-(make-obsolete 'process-kill-without-query
-               "use `process-query-on-exit-flag' or `set-process-query-on-exit-flag'."
-               "22.1")
+(make-obsolete
+ 'process-kill-without-query
+ "use `process-query-on-exit-flag' or `set-process-query-on-exit-flag'."
+ "22.1")
 (defun process-kill-without-query (process &optional flag)
   "Say no query needed if PROCESS is running when Emacs is exited.
 Optional second argument if non-nil says to require a query.
@@ -1588,8 +1595,8 @@
  'read-quoted-char-radix 8
  "*Radix for \\[quoted-insert] and other uses of `read-quoted-char'.
 Legitimate radix values are 8, 10 and 16."
-  :type '(choice (const 8) (const 10) (const 16))
-  :group 'editing-basics)
+ :type '(choice (const 8) (const 10) (const 16))
+ :group 'editing-basics)
 
 (defun read-quoted-char (&optional prompt)
   "Like `read-char', but do not allow quitting.
@@ -2232,9 +2239,9 @@
 	     (text-properties-at (1- end)))
 	(put-text-property (1- end) end 'rear-nonsticky t))
 
-    (if (eq yank-undo-function t)  ;; not set by FUNCTION
+    (if (eq yank-undo-function t)		   ;; not set by FUNCTION
 	(setq yank-undo-function (nth 3 handler))) ;; UNDO
-    (if (nth 4 handler) ;; COMMAND
+    (if (nth 4 handler)				   ;; COMMAND
 	(setq this-command (nth 4 handler)))))
 
 (defun insert-buffer-substring-no-properties (buffer &optional start end)
@@ -2480,6 +2487,20 @@
        (let ((combine-after-change-calls t))
 	 . ,body)
      (combine-after-change-execute)))
+
+(defmacro with-case-table (table &rest body)
+  "Execute the forms in BODY with TABLE as the current case table.
+The value returned is the value of the last form in BODY."
+  (declare (indent 1) (debug t))
+  (let ((old-case-table (make-symbol "table"))
+	(old-buffer (make-symbol "buffer")))
+    `(let ((,old-case-table (current-case-table))
+	   (,old-buffer (current-buffer)))
+       (unwind-protect
+	   (progn (set-case-table ,table)
+		  ,@body)
+	 (with-current-buffer ,old-buffer
+	   (set-case-table ,old-case-table))))))
 
 ;;;; Constructing completion tables.
 
@@ -2748,7 +2769,7 @@
     newstr))
 
 (defun replace-regexp-in-string (regexp rep string &optional
-                                 fixedcase literal subexp start)
+					fixedcase literal subexp start)
   "Replace all matches for REGEXP with REP in STRING.
 
 Return a new string containing the replacements.
@@ -2798,7 +2819,7 @@
 				       rep
 				     (funcall rep (match-string 0 str)))
 				   fixedcase literal str subexp)
-		    (cons (substring string start mb)       ; unmatched prefix
+		    (cons (substring string start mb) ; unmatched prefix
 			  matches)))
 	(setq start me))
       ;; Reconstruct a string from the pieces.
@@ -2819,7 +2840,8 @@
 (defun remove-from-invisibility-spec (element)
   "Remove ELEMENT from `buffer-invisibility-spec'."
   (if (consp buffer-invisibility-spec)
-    (setq buffer-invisibility-spec (delete element buffer-invisibility-spec))))
+      (setq buffer-invisibility-spec
+	    (delete element buffer-invisibility-spec))))
 
 ;;;; Syntax tables.
 
@@ -3165,7 +3187,7 @@
 
 (defvar version-regexp-alist
   '(("^[-_+ ]?a\\(lpha\\)?$"   . -3)
-    ("^[-_+]$"                 . -3)	; treat "1.2.3-20050920" and "1.2-3" as alpha releases
+    ("^[-_+]$"                 . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases
     ("^[-_+ ]cvs$"             . -3)	; treat "1.2.3-CVS" as alpha release
     ("^[-_+ ]?b\\(eta\\)?$"    . -2)
     ("^[-_+ ]?\\(pre\\|rc\\)$" . -1))
@@ -3239,7 +3261,7 @@
   ;; Change .x.y to 0.x.y
   (if (and (>= (length ver) (length version-separator))
 	   (string-equal (substring ver 0 (length version-separator))
-		    version-separator))
+			 version-separator))
       (setq ver (concat "0" ver)))
   (save-match-data
     (let ((i 0)
--- a/lisp/t-mouse.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/t-mouse.el	Wed Apr 11 00:17:47 2007 +0000
@@ -144,7 +144,7 @@
 	 (event (if w
 		    (posn-at-x-y (- x left) (- y top) w t)
 		  (append (list nil 'menu-bar)
-			  (nthcdr 2 (posn-at-x-y x y w t))))))
+			  (nthcdr 2 (posn-at-x-y x y))))))
     (setcar (nthcdr 3 event) time)
     event))
 
--- a/lisp/term/xterm.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/term/xterm.el	Wed Apr 11 00:17:47 2007 +0000
@@ -231,7 +231,23 @@
 
       (define-key map "\e[4~" [select])
       (define-key map "\e[29~" [print])
-      
+
+      (define-key map "\eOj" [kp-multiply])
+      (define-key map "\eOk" [kp-add])
+      (define-key map "\eOl" [kp-separator])
+      (define-key map "\eOm" [kp-subtract])
+      (define-key map "\eOo" [kp-divide])
+      (define-key map "\eOp" [kp-0])
+      (define-key map "\eOq" [kp-1])
+      (define-key map "\eOr" [kp-2])
+      (define-key map "\eOs" [kp-3])
+      (define-key map "\eOt" [kp-4])
+      (define-key map "\eOu" [kp-5])
+      (define-key map "\eOv" [kp-6])
+      (define-key map "\eOw" [kp-7])
+      (define-key map "\eOx" [kp-8])
+      (define-key map "\eOy" [kp-9])
+
       ;; These keys are available in xterm starting from version 216
       ;; if the modifyOtherKeys resource is set to 1.
 
@@ -246,7 +262,7 @@
       (define-key map "\e[27;5;49~"  [?\C-1])
       ;; Not all C-DIGIT keys have a distinct binding.
       (define-key map "\e[27;5;57~"  [?\C-9])
-      (define-key map "\e[27;5;59~"  [(C-\;)])
+      (define-key map "\e[27;5;59~"  [?\C-\;])
       (define-key map "\e[27;5;61~"  [?\C-=])
       (define-key map "\e[27;5;92~"  [?\C-\\])
 
@@ -255,7 +271,7 @@
       (define-key map "\e[27;6;35~"  [?\C-#])
       (define-key map "\e[27;6;36~"  [?\C-$])
       (define-key map "\e[27;6;37~"  [?\C-%])
-      (define-key map "\e[27;6;38~"  [(C-&)])
+      (define-key map "\e[27;6;38~"  [?\C-&])
       (define-key map "\e[27;6;40~"  [?\C-(])
       (define-key map "\e[27;6;41~"  [?\C-)])
       (define-key map "\e[27;6;42~"  [?\C-*])
@@ -263,13 +279,13 @@
       (define-key map "\e[27;6;58~"  [?\C-:])
       (define-key map "\e[27;6;60~"  [?\C-<])
       (define-key map "\e[27;6;62~"  [?\C->])
-      (define-key map "\e[27;6;63~"  [(C-\?)])
+      (define-key map "\e[27;6;63~"  [(control ??)])
 
       ;; These are the strings emitted for various C-M- combinations
       ;; for keyboards that the Meta and Alt modifiers are on the same
       ;; key (usually labeled "Alt").
-      (define-key map "\e[27;13;9~"  [(C-M-tab)])
-      (define-key map "\e[27;13;13~" [(C-M-return)])
+      (define-key map "\e[27;13;9~"  [C-M-tab])
+      (define-key map "\e[27;13;13~" [C-M-return])
 
       (define-key map "\e[27;13;39~" [?\C-\M-\'])
       (define-key map "\e[27;13;44~" [?\C-\M-,])
@@ -295,7 +311,7 @@
       (define-key map "\e[27;14;35~"  [?\C-\M-#])
       (define-key map "\e[27;14;36~"  [?\C-\M-$])
       (define-key map "\e[27;14;37~"  [?\C-\M-%])
-      (define-key map "\e[27;14;38~"  [(C-M-&)])
+      (define-key map "\e[27;14;38~"  [?\C-\M-&])
       (define-key map "\e[27;14;40~"  [?\C-\M-(])
       (define-key map "\e[27;14;41~"  [?\C-\M-)])
       (define-key map "\e[27;14;42~"  [?\C-\M-*])
@@ -303,11 +319,12 @@
       (define-key map "\e[27;14;58~"  [?\C-\M-:])
       (define-key map "\e[27;14;60~"  [?\C-\M-<])
       (define-key map "\e[27;14;62~"  [?\C-\M->])
-      (define-key map "\e[27;14;63~"  [(C-M-\?)])
+      (define-key map "\e[27;14;63~"  [(control meta ??)])
 
-      (define-key map "\e[27;7;9~"  [(C-M-tab)])
-      (define-key map "\e[27;7;13~" [(C-M-return)])
+      (define-key map "\e[27;7;9~"  [C-M-tab])
+      (define-key map "\e[27;7;13~" [C-M-return])
 
+      (define-key map "\e[27;7;32~" [?\C-\M-\s])
       (define-key map "\e[27;7;39~" [?\C-\M-\'])
       (define-key map "\e[27;7;44~" [?\C-\M-,])
       (define-key map "\e[27;7;45~" [?\C-\M--])
@@ -332,7 +349,7 @@
       (define-key map "\e[27;8;35~"  [?\C-\M-#])
       (define-key map "\e[27;8;36~"  [?\C-\M-$])
       (define-key map "\e[27;8;37~"  [?\C-\M-%])
-      (define-key map "\e[27;8;38~"  [(C-M-&)])
+      (define-key map "\e[27;8;38~"  [?\C-\M-&])
       (define-key map "\e[27;8;40~"  [?\C-\M-(])
       (define-key map "\e[27;8;41~"  [?\C-\M-)])
       (define-key map "\e[27;8;42~"  [?\C-\M-*])
@@ -340,13 +357,13 @@
       (define-key map "\e[27;8;58~"  [?\C-\M-:])
       (define-key map "\e[27;8;60~"  [?\C-\M-<])
       (define-key map "\e[27;8;62~"  [?\C-\M->])
-      (define-key map "\e[27;8;63~"  [(C-M-\?)])
+      (define-key map "\e[27;8;63~"  [(control meta ??)])
 
       (define-key map "\e[27;2;9~"   [S-tab])
       (define-key map "\e[27;2;13~"  [S-return])
 
-      (define-key map "\e[27;6;9~"   [(C-S-tab)])
-      (define-key map "\e[27;6;13~"  [(C-S-return)])
+      (define-key map "\e[27;6;9~"   [C-S-tab])
+      (define-key map "\e[27;6;13~"  [C-S-return])
 
       ;; Other versions of xterm might emit these.
       (define-key map "\e[A" [up])
--- a/lisp/textmodes/flyspell.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/flyspell.el	Wed Apr 11 00:17:47 2007 +0000
@@ -431,7 +431,7 @@
 (defface flyspell-incorrect
   '((((class color)) (:foreground "OrangeRed" :bold t :underline t))
     (t (:bold t)))
-  "Face used to display a misspelled word in Flyspell."
+  "Face used for marking a misspelled word in Flyspell."
   :group 'flyspell)
 ;; backward-compatibility alias
 (put 'flyspell-incorrect-face 'face-alias 'flyspell-incorrect)
@@ -439,7 +439,7 @@
 (defface flyspell-duplicate
   '((((class color)) (:foreground "Gold3" :bold t :underline t))
     (t (:bold t)))
-  "Face used to display subsequent occurrences of a misspelled word.
+  "Face used for marking a misspelled word that appears twice in the buffer.
 See also `flyspell-duplicate-distance'."
   :group 'flyspell)
 ;; backward-compatibility alias
@@ -1509,7 +1509,7 @@
     (if flyspell-issue-message-flag (message "Checking region..."))
     (set-buffer curbuf)
     (ispell-check-version)
-    (let ((c (apply 'call-process-region beg
+    (let ((c (apply 'ispell-call-process-region beg
 		    end
 		    ispell-program-name
 		    nil
--- a/lisp/textmodes/org.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/org.el	Wed Apr 11 00:17:47 2007 +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.67c
+;; Version: 4.67d
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -7952,7 +7952,10 @@
 	entry s)
     (switch-to-buffer-other-window "*Edit Formulas*")
     (erase-buffer)
-    (fundamental-mode)
+    ;; Keep global-font-lock-mode from turning on font-lock-mode
+    (let ((font-lock-global-modes '(not fundamental-mode)))
+      (fundamental-mode))
+    (org-set-local 'font-lock-global-modes (list 'not major-mode))
     (org-set-local 'org-pos pos)
     (org-set-local 'org-window-configuration wc)
     (use-local-map org-edit-formulas-map)
@@ -12945,6 +12948,8 @@
   (setq org-agenda-undo-list nil
 	org-agenda-pending-undo-list nil)
   (setq major-mode 'org-agenda-mode)
+  ;; Keep global-font-lock-mode from turning on font-lock-mode
+  (org-set-local 'font-lock-global-modes (list 'not major-mode))
   (setq mode-name "Org-Agenda")
   (use-local-map org-agenda-mode-map)
   (easy-menu-add org-agenda-menu)
--- a/lisp/textmodes/reftex-auc.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-auc.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,6 +4,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex-cite.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-cite.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,6 +4,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex-dcr.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-dcr.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,8 +4,8 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
-;;
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/textmodes/reftex-global.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-global.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,6 +4,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex-index.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-index.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,6 +4,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex-parse.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-parse.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,8 +4,8 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
-;;
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/textmodes/reftex-ref.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-ref.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,6 +4,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex-sel.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-sel.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,6 +4,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex-toc.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-toc.el	Wed Apr 11 00:17:47 2007 +0000
@@ -3,6 +3,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex-vars.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex-vars.el	Wed Apr 11 00:17:47 2007 +0000
@@ -4,6 +4,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
--- a/lisp/textmodes/reftex.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/textmodes/reftex.el	Wed Apr 11 00:17:47 2007 +0000
@@ -3,6 +3,7 @@
 ;;   2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 ;; Keywords: tex
 
--- a/lisp/tmm.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/tmm.el	Wed Apr 11 00:17:47 2007 +0000
@@ -41,7 +41,7 @@
 (defvar tmm-short-cuts)
 (defvar tmm-old-mb-map nil)
 (defvar tmm-old-comp-map)
-(defvar tmm-c-prompt)
+(defvar tmm-c-prompt nil)
 (defvar tmm-km-list)
 (defvar tmm-next-shortcut-digit)
 (defvar tmm-table-undef)
@@ -71,17 +71,22 @@
 				   (list this-one)))))
 	(setq list (cdr list))))
     (if x-position
-	(let ((tail menu-bar)
-	      this-one
-	      (column 0))
-	  (while (and tail (< column x-position))
+	(let ((tail menu-bar) (column 0)
+	      this-one name visible)
+	  (while (and tail (<= column x-position))
 	    (setq this-one (car tail))
-	    (if (and (consp (car tail))
-		     (consp (cdr (car tail)))
-		     (stringp (nth 1 (car tail))))
-		(setq column (+ column
-				(length (nth 1 (car tail)))
-				1)))
+	    (if (and (consp this-one)
+		     (consp (cdr this-one))
+		     (setq name  ;simple menu
+			   (cond ((stringp (nth 1  this-one))
+				  (nth 1  this-one))
+				 ;extended menu
+				 ((stringp (nth 2 this-one))
+				  (setq visible (plist-get
+						 (nthcdr 4 this-one) :visible))
+				  (unless (and visible (not (eval visible)))
+				    (nth 2 this-one))))))
+		(setq column (+ column (length name) 1)))
 	    (setq tail (cdr tail)))
 	  (setq menu-bar-item (car this-one))))
     (tmm-prompt menu-bar nil menu-bar-item)))
@@ -188,14 +193,20 @@
 	     ;; We use this to decide the initial minibuffer contents
 	     ;; and initial history position.
 	     (if default-item
-		 (let ((tail menu))
+		 (let ((tail menu) visible)
 		   (while (and tail
 			       (not (eq (car-safe (car tail)) default-item)))
 		     ;; Be careful to count only the elements of MENU
 		     ;; that actually constitute menu bar items.
 		     (if (and (consp (car tail))
 			      (or (stringp (car-safe (cdr (car tail))))
-				  (eq (car-safe (cdr (car tail))) 'menu-item)))
+				  (and
+				   (eq (car-safe (cdr (car tail))) 'menu-item)
+				   (progn
+				     (setq visible
+					   (plist-get
+					    (nthcdr 4 (car tail)) :visible))
+				     (or (not visible) (eval visible))))))
 			 (setq index-of-default (1+ index-of-default)))
 		     (setq tail (cdr tail)))))
              (let ((prompt (concat "^." (regexp-quote tmm-mid-prompt))))
@@ -210,21 +221,24 @@
 	     (setq history (append history history history history))
 	     (setq tmm-c-prompt (nth (- history-len 1 index-of-default) history))
 	     (add-hook 'minibuffer-setup-hook 'tmm-add-prompt)
-	     (save-excursion
-	       (unwind-protect
-		   (setq out
-			 (completing-read
-			  (concat gl-str " (up/down to change, PgUp to menu): ")
-			  tmm-km-list nil t nil
-			  (cons 'history (- (* 2 history-len) index-of-default))))
-		 (save-excursion
-		   (remove-hook 'minibuffer-setup-hook 'tmm-add-prompt)
-		   (if (get-buffer "*Completions*")
-		       (progn
-			 (set-buffer "*Completions*")
-			 (use-local-map tmm-old-comp-map)
-			 (bury-buffer (current-buffer)))))
-		 ))))
+	     (if default-item
+		 (setq out (car (nth index-of-default tmm-km-list)))
+	       (save-excursion
+		 (unwind-protect
+		     (setq out
+			   (completing-read
+			    (concat gl-str
+				    " (up/down to change, PgUp to menu): ")
+			    tmm-km-list nil t nil
+			    (cons 'history
+				  (- (* 2 history-len) index-of-default))))
+		   (save-excursion
+		     (remove-hook 'minibuffer-setup-hook 'tmm-add-prompt)
+		     (if (get-buffer "*Completions*")
+			 (progn
+			   (set-buffer "*Completions*")
+			   (use-local-map tmm-old-comp-map)
+			   (bury-buffer (current-buffer))))))))))
       (setq choice (cdr (assoc out tmm-km-list)))
       (and (null choice)
 	   (> (length out) (length tmm-c-prompt))
@@ -514,7 +528,7 @@
 we merge them into a single keymap which shows the proper order of the menu.
 However, for the menu bar itself, the value does not take account
 of `menu-bar-final-items'."
-  (let (allbind bind)
+  (let (allbind bind minorbind localbind globalbind)
     (setq bind (key-binding keyseq))
     ;; If KEYSEQ is a prefix key, then BIND is either nil
     ;; or a symbol defined as a keymap (which satisfies keymapp).
@@ -525,9 +539,21 @@
 	(progn
 	  ;; Otherwise, it is a prefix, so make a list of the subcommands.
 	  ;; Make a list of all the bindings in all the keymaps.
-	  (setq allbind (mapcar 'cdr (minor-mode-key-binding keyseq)))
-	  (setq allbind (cons (local-key-binding keyseq) allbind))
-	  (setq allbind (cons (global-key-binding keyseq) allbind))
+	  (setq minorbind (mapcar 'cdr (minor-mode-key-binding keyseq)))
+	  (setq localbind (local-key-binding keyseq))
+	  (setq globalbind (cdr (global-key-binding keyseq)))
+
+	  ;; If items have been redefined/undefined locally, remove them from
+	  ;; the global list.
+	  (dolist (minor minorbind)
+	    (dolist (item (cdr minor))
+	      (setq globalbind (assq-delete-all (car item) globalbind))))
+	  (dolist (item (cdr localbind))
+	    (setq globalbind (assq-delete-all (car item) globalbind)))
+
+	  (setq globalbind (cons 'keymap globalbind))
+	  (setq allbind (cons globalbind (cons localbind minorbind)))
+
 	  ;; Merge all the elements of ALLBIND into one keymap.
 	  (mapc (lambda (in)
 		  (if (and (symbolp in) (keymapp in))
--- a/lisp/url/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/url/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,17 @@
+2007-04-01  Diane Murray  <disumu@x3y2z1.net>
+
+	* url-http.el (url-http-handle-cookies): Reverse list returned by
+	`mail-fetch-field', so that cookies are set in the correct order.
+
+	* url-cookie.el (url-cookie-retrieve, url-cookie-host-can-set-p):
+	Deal with wildcard dots in domain values.
+
+2007-03-31  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
+
+	* url-http.el (url-http-mark-connection-as-busy)
+	(url-http-mark-connection-as-free): Clear query-on-exit flag on
+	idle connections.
+
 2007-02-04  Chong Yidong  <cyd@stupidchicken.com>
 
 	* url-http.el (url-http-connection-opened): New variable.
--- a/lisp/url/url-cookie.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/url/url-cookie.el	Wed Apr 11 00:17:47 2007 +0000
@@ -272,7 +272,15 @@
 	    storage (cdr storage)
 	    cookies (cdr cur))
       (if (and (car cur)
-	       (string-match (concat "^.*" (regexp-quote (car cur)) "$") host))
+	       (string-match
+                (concat "^.*"
+                        (regexp-quote
+                         ;; Remove the dot from wildcard domains
+                         ;; before matching.
+			 (if (eq ?. (aref (car cur) 0))
+                             (substring (car cur) 1)
+                           (car cur)))
+                        "$") host))
 	  ;; The domains match - a possible hit!
 	  (while cookies
 	    (setq cur (car cookies)
@@ -344,7 +352,13 @@
      ((>= numdots mindots)		; We have enough dots in domain name
       ;; Need to check and make sure the host is actually _in_ the
       ;; domain it wants to set a cookie for though.
-      (string-match (concat (regexp-quote domain) "$") host))
+      (string-match (concat (regexp-quote
+                             ;; Remove the dot from wildcard domains
+                             ;; before matching.
+                             (if (eq ?. (aref domain 0))
+                                 (substring domain 1)
+                               domain))
+                            "$") host))
      (t
       nil))))
 
--- a/lisp/url/url-http.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/url/url-http.el	Wed Apr 11 00:17:47 2007 +0000
@@ -87,6 +87,7 @@
 
 (defun url-http-mark-connection-as-busy (host port proc)
   (url-http-debug "Marking connection as busy: %s:%d %S" host port proc)
+  (set-process-query-on-exit-flag proc t)
   (puthash (cons host port)
 	      (delq proc (gethash (cons host port) url-http-open-connections))
 	      url-http-open-connections)
@@ -97,6 +98,7 @@
   (when (memq (process-status proc) '(open run connect))
     (set-process-buffer proc nil)
     (set-process-sentinel proc 'url-http-idle-sentinel)
+    (set-process-query-on-exit-flag proc nil)
     (puthash (cons host port)
 	     (cons proc (gethash (cons host port) url-http-open-connections))
 	     url-http-open-connections))
@@ -379,8 +381,8 @@
   "Handle all set-cookie / set-cookie2 headers in an HTTP response.
 The buffer must already be narrowed to the headers, so `mail-fetch-field' will
 work correctly."
-  (let ((cookies (mail-fetch-field "Set-Cookie" nil nil t))
-	(cookies2 (mail-fetch-field "Set-Cookie2" nil nil t)))
+  (let ((cookies (nreverse (mail-fetch-field "Set-Cookie" nil nil t)))
+	(cookies2 (nreverse (mail-fetch-field "Set-Cookie2" nil nil t))))
     (and cookies (url-http-debug "Found %d Set-Cookie headers" (length cookies)))
     (and cookies2 (url-http-debug "Found %d Set-Cookie2 headers" (length cookies2)))
     (while cookies
--- a/lisp/vc-arch.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/vc-arch.el	Wed Apr 11 00:17:47 2007 +0000
@@ -109,6 +109,19 @@
 
 (defconst vc-arch-tagline-re "^\\W*arch-tag:[ \t]*\\(.*[^ \t\n]\\)")
 
+(defmacro vc-with-current-file-buffer (file &rest body)
+  (declare (indent 2) (debug t))
+  `(let ((-kill-buf- nil)
+         (-file- ,file))
+     (with-current-buffer (or (find-buffer-visiting -file-)
+                              (setq -kill-buf- (generate-new-buffer " temp")))
+       ;; Avoid find-file-literally since it can do many undesirable extra
+       ;; things (among which, call us back into an infinite loop).
+       (if -kill-buf- (insert-file-contents -file-))
+       (unwind-protect
+           (progn ,@body)
+         (if (buffer-live-p -kill-buf-) (kill-buffer -kill-buf-))))))
+
 (defun vc-arch-file-source-p (file)
   "Can return nil, `maybe' or a non-nil value.
 Only the value `maybe' can be trusted :-(."
@@ -122,7 +135,7 @@
 	  (concat ".arch-ids/" (file-name-nondirectory file) ".id")
 	  (file-name-directory file)))
 	;; Check the presence of a tagline.
-	(with-current-buffer (find-file-noselect file)
+	(vc-with-current-file-buffer file
 	  (save-excursion
 	    (goto-char (point-max))
 	    (or (re-search-backward vc-arch-tagline-re (- (point) 1000) t)
--- a/lisp/vc-rcs.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/vc-rcs.el	Wed Apr 11 00:17:47 2007 +0000
@@ -666,6 +666,7 @@
                              "  "
                              (aref rda 0)
                              ls)
+                      :vc-annotate-prefix t
                       :vc-rcs-r/d/a rda)))
         (maphash
          (if all-me
@@ -688,9 +689,9 @@
   "Return the time of the next annotation (as fraction of days)
 systime, or nil if there is none.  Also, reposition point."
   (unless (eobp)
-    (search-forward ": ")
-    (vc-annotate-convert-time
-     (aref (get-text-property (point) :vc-rcs-r/d/a) 1))))
+    (prog1 (vc-annotate-convert-time
+            (aref (get-text-property (point) :vc-rcs-r/d/a) 1))
+      (goto-char (next-single-property-change (point) :vc-annotate-prefix)))))
 
 (defun vc-rcs-annotate-extract-revision-at-line ()
   (aref (get-text-property (point) :vc-rcs-r/d/a) 0))
@@ -907,7 +908,7 @@
 	  (vc-file-setprop file 'vc-state
 			   (cond
 			    ((eq locking-user 'none) 'up-to-date)
-			    ((string= locking-user (vc-user-login-name file)) 
+			    ((string= locking-user (vc-user-login-name file))
                              'edited)
 			    (t locking-user)))
 	  ;; If the file has headers, we don't want to query the
--- a/lisp/view.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/view.el	Wed Apr 11 00:17:47 2007 +0000
@@ -438,7 +438,7 @@
 \\[View-leave]	quit View mode and maybe switch buffers, but don't kill this buffer.
 \\[View-kill-and-leave]	quit View mode, kill current buffer and go back to other buffer.
 
-The effect of \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered.  If it was
+The effect of \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered.  If it was
 entered by view-file, view-file-other-window, view-file-other-frame, or
 \\[dired-view-file] \(\\[view-file], \\[view-file-other-window],
 \\[view-file-other-frame], or the Dired mode v command),
@@ -446,7 +446,7 @@
 If view-mode was entered from another buffer, by \\[view-buffer],
 \\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file],
 \\[view-file-other-window], or \\[view-file-other-frame],
-then \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] will return to that buffer.
+then \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] will return to that buffer.
 
 Entry to view-mode runs the normal hook `view-mode-hook'."
   (interactive "P")
--- a/lisp/whitespace.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/whitespace.el	Wed Apr 11 00:17:47 2007 +0000
@@ -102,42 +102,34 @@
 (defvar whitespace-mode nil
   "Non-nil when Whitespace mode (a minor mode) is enabled.")
 (make-variable-buffer-local 'whitespace-mode)
-(put 'whitespace-mode 'permanent-local nil)
 
 (defvar whitespace-mode-line nil
   "String to display in the mode line for Whitespace mode.")
 (make-variable-buffer-local 'whitespace-mode-line)
-(put 'whitespace-mode-line 'permanent-local nil)
 
 (defvar whitespace-check-buffer-leading nil
   "Test leading whitespace for file in current buffer if t.")
 (make-variable-buffer-local 'whitespace-check-buffer-leading)
-(put 'whitespace-check-buffer-leading 'permanent-local nil)
 
 (defvar whitespace-check-buffer-trailing nil
   "Test trailing whitespace for file in current buffer if t.")
 (make-variable-buffer-local 'whitespace-check-buffer-trailing)
-(put 'whitespace-check-buffer-trailing 'permanent-local nil)
 
 (defvar whitespace-check-buffer-indent nil
   "Test indentation whitespace for file in current buffer if t.")
 (make-variable-buffer-local 'whitespace-check-buffer-indent)
-(put 'whitespace-check-buffer-indent 'permanent-local nil)
 
 (defvar whitespace-check-buffer-spacetab nil
   "Test Space-followed-by-TABS whitespace for file in current buffer if t.")
 (make-variable-buffer-local 'whitespace-check-buffer-spacetab)
-(put 'whitespace-check-buffer-spacetab 'permanent-local nil)
 
 (defvar whitespace-check-buffer-ateol nil
   "Test end-of-line whitespace for file in current buffer if t.")
 (make-variable-buffer-local 'whitespace-check-buffer-ateol)
-(put 'whitespace-check-buffer-ateol 'permanent-local nil)
 
 (defvar whitespace-highlighted-space nil
   "The variable to store the extent to highlight.")
 (make-variable-buffer-local 'whitespace-highlighted-space)
-(put 'whitespace-highlighted-space 'permanent-local nil)
 
 ;; For flavors of Emacs which don't define `defgroup' and `defcustom'.
 (eval-when-compile
--- a/lisp/woman.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/woman.el	Wed Apr 11 00:17:47 2007 +0000
@@ -486,24 +486,28 @@
 
 (defun woman-Cyg-to-Win (file)
   "Convert an absolute filename FILE from Cygwin to Windows form."
-  ;; Code taken from w32-symlinks.el
-  (if (eq (aref file 0) ?/)
-      ;; Try to use Cygwin mount table via `cygpath.exe'.
-      (condition-case nil
-	  (with-temp-buffer
-	    ;; cygpath -m file
-	    (call-process "cygpath" nil t nil "-m" file)
-	    (buffer-substring 1 (buffer-size)))
-	(error
-	 ;; Assume no `cygpath' program available.
-	 ;; Hack /cygdrive/x/ or /x/ or (obsolete) //x/ to x:/
-	 (when (string-match "\\`\\(/cygdrive\\|/\\)?/./" file)
-	   (if (match-string 1)		; /cygdrive/x/ or //x/ -> /x/
-	       (setq file (substring file (match-end 1))))
-	   (aset file 0 (aref file 1))	; /x/ -> xx/
-	   (aset file 1 ?:))		; xx/ -> x:/
-	 file))
-    file))
+  ;; MANPATH_MAP conses are not converted since they presumably map
+  ;; Cygwin to Cygwin form.
+  (if (consp file)
+      file
+    ;; Code taken from w32-symlinks.el
+    (if (eq (aref file 0) ?/)
+	;; Try to use Cygwin mount table via `cygpath.exe'.
+	(condition-case nil
+	    (with-temp-buffer
+	      ;; cygpath -m file
+	      (call-process "cygpath" nil t nil "-m" file)
+	      (buffer-substring 1 (buffer-size)))
+	  (error
+	   ;; Assume no `cygpath' program available.
+	   ;; Hack /cygdrive/x/ or /x/ or (obsolete) //x/ to x:/
+	   (when (string-match "\\`\\(/cygdrive\\|/\\)?/./" file)
+	     (if (match-string 1)		; /cygdrive/x/ or //x/ -> /x/
+		 (setq file (substring file (match-end 1))))
+	     (aset file 0 (aref file 1))	; /x/ -> xx/
+	     (aset file 1 ?:))		; xx/ -> x:/
+	   file))
+      file)))
 
 
 ;;; User options:
@@ -547,11 +551,12 @@
 	(mapcar 'woman-Cyg-to-Win path)
       path))
   "*List of dirs to search and/or files to try for man config file.
-A trailing separator (`/' for UNIX etc.) on directories is optional,
-and the filename is used if a directory specified is the first to
-contain the strings \"man\" and \".conf\" (in that order).
-If MANPATH is not set but a config file is found then it is parsed
-instead to provide a default value for `woman-manpath'."
+A trailing separator (`/' for UNIX etc.) on directories is
+optional, and the filename is used if a directory specified is
+the first to start with \"man\" and has an extension starting
+with \".conf\".  If MANPATH is not set but a config file is found
+then it is parsed instead to provide a default value for
+`woman-manpath'."
   :type '(repeat string)
   :group 'woman-interface)
 
@@ -564,7 +569,9 @@
 or
   MANDATORY_MANPATH  /usr/man
 or
-  OPTIONAL_MANPATH  /usr/man"
+  OPTIONAL_MANPATH  /usr/man
+or
+  MANPATH_MAP /opt/bin /opt/man"
   ;; Functionality suggested by Charles Curley.
   (let ((path woman-man.conf-path)
 	file manpath)
@@ -576,7 +583,7 @@
 		  (or (not (file-directory-p file))
 		      (and
 		       (setq file
-			     (directory-files file t "man.*\\.conf" t))
+			     (directory-files file t "\\`man.*\\.conf[a-z]*\\'" t))
 		       (file-readable-p (setq file (car file)))))
 		  ;; Parse the file -- if no MANPATH data ignore it:
 		  (with-temp-buffer
@@ -584,8 +591,13 @@
 		    (while (re-search-forward
 			    ;; `\(?: ... \)' is a "shy group"
 			    "\
-^[ \t]*\\(?:MANDATORY_\\|OPTIONAL_\\)?MANPATH[ \t]+\\(\\S-+\\)" nil t)
-		      (setq manpath (cons (match-string 1) manpath)))
+^[ \t]*\\(?:\\(?:MANDATORY_\\|OPTIONAL_\\)?MANPATH[ \t]+\\(\\S-+\\)\\|\
+MANPATH_MAP[ \t]+\\(\\S-+\\)[ \t]+\\(\\S-+\\)\\)" nil t)
+		      (add-to-list 'manpath
+				   (if (match-beginning 1)
+				       (match-string 1) 
+				     (cons (match-string 2)
+					   (match-string 3)))))
 		    manpath))
 		 ))
       (setq path (cdr path)))
@@ -600,6 +612,11 @@
 selected by the value of `woman-manpath-man-regexp'.  Non-directory
 and unreadable files are ignored.
 
+Elements can also be a cons cell indicating a mapping from PATH
+to manual trees: if such an element's car is equal to a path
+element of the environment variable PATH, the cdr of the cons
+cell is included in the directory tree search.
+
 If not set then the environment variable MANPATH is used.  If no such
 environment variable is found, the default list is determined by
 consulting the man configuration file if found, which is determined by
@@ -618,7 +635,7 @@
 
 The MANPATH environment variable may be set using DOS semi-colon-
 separated or UN*X/Cygwin colon-separated syntax (but not mixed)."
-  :type '(repeat string)
+  :type '(repeat (choice string (cons string string)))
   :group 'woman-interface)
 
 (defcustom woman-manpath-man-regexp "[Mm][Aa][Nn]"
@@ -1159,7 +1176,14 @@
 Called both to generate and to check the cache!"
   ;; Must use substituted paths because values of env vars may change!
   (list woman-cache-level
-	(mapcar 'substitute-in-file-name woman-manpath)
+	(let (lst path)
+	  (dolist (dir woman-manpath (nreverse lst))
+	    (when (consp dir)
+	      (unless path
+		(setq path
+		      (split-string (getenv "PATH") path-separator t)))
+	      (setq dir (and (member (car dir) path) (cdr dir))))
+	    (when dir (add-to-list 'lst (substitute-in-file-name dir)))))
 	(mapcar 'substitute-in-file-name woman-path)))
 
 (defun woman-read-directory-cache ()
@@ -1320,10 +1344,15 @@
   ;; Allow each path to be a single string or a list of strings:
   (if (not (listp woman-manpath)) (setq woman-manpath (list woman-manpath)))
   (if (not (listp woman-path)) (setq woman-path (list woman-path)))
-  (let (dir head dirs)
+  (let (dir head dirs path)
     (while woman-manpath
       (setq dir (car woman-manpath)
 	    woman-manpath (cdr woman-manpath))
+      (when (consp dir)
+	(unless path
+	  (setq path (split-string (getenv "PATH") path-separator t)))
+	(setq dir (and (member (car dir) path)
+		       (cdr dir))))
       (if (and dir (woman-file-readable-p dir))
 	  ;; NB: `parse-colon-path' creates null elements for
 	  ;; redundant (semi-)colons and trailing `/'s!
@@ -2102,18 +2131,6 @@
   (interactive)				; mainly for testing
   (WoMan-log-begin)
   (run-hooks 'woman-pre-format-hook)
-
-  ;; look for macro sets that woman cannot handle:
-  (goto-char (point-min))
-  (let ((case-fold-search nil))
-    (unless (and (re-search-forward "^\\.SH[ \n]" (point-max) t)
-		 (progn (goto-char (point-min))
-			(re-search-forward "^\\.TH[ \n]" (point-max) t))
-		 (progn (goto-char (point-min))
-			(not (re-search-forward "^\\.\\([pnil]p\\|sh\\)[ \n]"
-						(point-max) t))))
-      (error "WoMan can only format man pages written with the usual `-man' macros")))
-
   (and (boundp 'font-lock-mode) font-lock-mode (font-lock-mode -1))
   ;; (fundamental-mode)
   (let ((start-time (current-time))	; (HIGH LOW MICROSEC)
@@ -2269,6 +2286,18 @@
     ;; conditionals and switch source requests:
     (woman0-roff-buffer from)
 
+    ;; Check for macro sets that woman cannot handle.  We can only
+    ;; because do this after processing source-switch directives.
+    (goto-char (point-min))
+    (let ((case-fold-search nil))
+      (unless (and (re-search-forward "^\\.SH[ \n]" (point-max) t)
+		   (progn (goto-char (point-min))
+			  (re-search-forward "^\\.TH[ \n]" (point-max) t))
+		   (progn (goto-char (point-min))
+			  (not (re-search-forward "^\\.\\([pnil]p\\|sh\\)[ \n]"
+						  (point-max) t))))
+	(error "WoMan can only format man pages written with the usual `-man' macros")))
+
     ;; Process \k escapes BEFORE changing tab width (?):
     (goto-char from)
     (woman-mark-horizonal-position)
--- a/lisp/xt-mouse.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/xt-mouse.el	Wed Apr 11 00:17:47 2007 +0000
@@ -49,7 +49,8 @@
 
 ;; Mouse events symbols must have an 'event-kind property with
 ;; the value 'mouse-click.
-(dolist (event-type '(mouse-1 mouse-2 mouse-3))
+(dolist (event-type '(mouse-1 mouse-2 mouse-3
+			      M-down-mouse-1 M-down-mouse-2 M-down-mouse-3))
   (put event-type 'event-kind 'mouse-click))
 
 (defun xterm-mouse-translate (event)
@@ -105,6 +106,8 @@
 (defvar xterm-mouse-y 0
   "Position of last xterm mouse event relative to the frame.")
 
+(defvar xt-mouse-epoch nil)
+
 ;; Indicator for the xterm-mouse mode.
 
 (defun xterm-mouse-position-function (pos)
@@ -124,6 +127,13 @@
   (let* ((type (- (xterm-mouse-event-read) #o40))
 	 (x (- (xterm-mouse-event-read) #o40 1))
 	 (y (- (xterm-mouse-event-read) #o40 1))
+	 ;; Emulate timestamp information.  This is accurate enough
+	 ;; for default value of mouse-1-click-follows-link (450msec).
+	 (timestamp (truncate
+		     (* 1000
+			(- (float-time)
+			   (or xt-mouse-epoch
+			       (setq xt-mouse-epoch (float-time)))))))
 	 (mouse (intern
 		 ;; For buttons > 3, the release-event looks
 		 ;; differently (see xc/programs/xterm/button.c,
@@ -131,6 +141,11 @@
 		 ;; a release-event only, no down-event.
 		 (cond ((>= type 64)
 			(format "mouse-%d" (- type 60)))
+		       ((memq type '(8 9 10))
+			(setq xterm-mouse-last type)
+			(format "M-down-mouse-%d" (- type 7)))
+		       ((= type 11)
+			(format "mouse-%d" (- xterm-mouse-last 7)))
 		       ((= type 3)
 			(format "mouse-%d" (+ 1 xterm-mouse-last)))
 		       (t
@@ -145,10 +160,13 @@
 	  xterm-mouse-y y)
     (setq
      last-input-event
-     (if w
-	 (list mouse (posn-at-x-y (- x left) (- y top) w t))
-       (list mouse
-	     (append (list nil 'menu-bar) (nthcdr 2 (posn-at-x-y x y w t))))))))
+     (list mouse
+	   (let ((event (if w
+			    (posn-at-x-y (- x left) (- y top) w t)
+			  (append (list nil 'menu-bar)
+				  (nthcdr 2 (posn-at-x-y x y))))))
+	     (setcar (nthcdr 3 event) timestamp)
+	     event)))))
 
 ;;;###autoload
 (define-minor-mode xterm-mouse-mode
--- a/lispref/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,246 @@
+2007-04-08  Karl Berry  <karl@gnu.org>
+
+	* symbols.texi (Plists and Alists): Period after "vs" in index entries.
+	* macros.texi (Backquote): Downcase Backquote in index entries for
+	consistency.
+
+2007-04-08  Richard Stallman  <rms@gnu.org>
+
+	* text.texi (Adaptive Fill): Just describe default,
+	don't show it (since it contains non-ASCII chars).
+
+2007-04-07  Karl Berry  <karl@gnu.org>
+
+	* text.texi (Adaptive Fill) [@iftex]: Omit binary characters in
+	adaptive-fill-regexp's value, since they are not in the standard
+	TeX fonts.
+
+2007-04-07  Herbert Euler  <herberteuler@hotmail.com>
+
+	* display.texi (Defining Faces): Fix example.
+
+2007-04-07  Karl Berry  <karl@gnu.org>
+
+	* display.texi (Button Buffer Commands): Improve page break.
+
+2007-04-07  Richard Stallman  <rms@gnu.org>
+
+	* advice.texi (Activation of Advice): Remove redundant index entry.
+
+	* backups.texi: Improve index entries.  Remove redundant ones.
+
+	* compile.texi (Byte Compilation): Improve index entry.
+
+	* hash.texi (Creating Hash): Improve index entry.
+
+	* symbols.texi (Definitions): Improve index entry.
+
+	* edebug.texi: Improve index entries.  Remove redundant/useless ones.
+
+	* maps.texi (Standard Keymaps): Remove useless index entry.
+
+	* help.texi (Documentation Basics): Remove redundant index entries.
+
+	* customize.texi: Improve index entries.
+	Remove redundant/useless ones.
+
+	* locals.texi (Standard Buffer-Local Variables): Clarify intro text.
+
+	* streams.texi (Output Variables): Improve index entry.
+
+	* abbrevs.texi (Abbrevs): Remove useless index entry.
+
+	* macros.texi (Expansion): Remove useless index entry.
+
+	* text.texi: Improve index entries.  Remove redundant/useless ones.
+	(Text Properties, Examining Properties)
+	(Special Properties): Use "property category" instead of "category"
+	to refer to the `category' property.
+
+	* positions.texi: Improve index entries.  Remove useless one.
+
+	* lists.texi: Improve index entries.  Remove redundant/useless ones.
+
+	* os.texi: Improve index entries.
+	(Timers): Fix previous change.
+
+	* buffers.texi: Improve index entries.
+	(Modification Time): Get rid of term "obsolete buffer".
+
+	* debugging.texi: Improve index entries.
+	(Test Coverage): Add xref to other test coverage ftr.
+
+	* eval.texi: Improve index entry.  Remove redundant ones.
+
+	* numbers.texi: Improve index entries.  Remove redundant/useless ones.
+
+	* files.texi: Improve index entries.  Remove redundant/useless ones.
+
+	* objects.texi: Improve index entries.
+
+	* processes.texi: Improve index entries.
+
+	* modes.texi: Improve index entry.  Remove redundant one.
+
+	* nonascii.texi: Improve index entries.
+
+	* internals.texi: Improve index entries.
+
+	* syntax.texi: Improve index entries.
+
+	* keymaps.texi (Active Keymaps): Improve index entries.
+
+	* commands.texi: Improve index entries.  Remove redundant/useless ones.
+
+	* frames.texi: Improve index entries.  Remove redundant/useless ones.
+
+	* markers.texi: Improve index entries.  Remove redundant ones.
+
+	* tips.texi: Improve index entries.
+
+	* loading.texi (Unloading): Improve index entry.
+
+	* variables.texi: Improve index entries.  Remove redundant one.
+
+	* sequences.texi: Improve index entry.
+
+	* display.texi: Improve index entries.  Remove redundant ones.
+
+	* windows.texi: Improve index entries.
+
+	* searching.texi: Improve index entries.  Remove redundant one.
+
+	* strings.texi (Case Tables): Improve last change.
+
+2007-04-04  Chong Yidong  <cyd@stupidchicken.com>
+
+	* strings.texi (Case Tables): Document with-case-table and
+	ascii-case-table.
+
+2007-04-03  Karl Berry  <karl@gnu.org>
+
+	* processes.texi (Network): Reword to improve page break.
+
+2007-04-03  Eli Zaretskii  <eliz@gnu.org>
+
+	* functions.texi (Inline Functions): Describe more disadvantages
+	of defsubst, and make advice against it stronger.
+
+2007-04-02  Karl Berry  <karl@gnu.org>
+
+	* backups.texi (Backup Names): Avoid widow words.
+	* modes.texi (Example Major Modes): Align last comment.
+
+2007-04-01  Chong Yidong  <cyd@stupidchicken.com>
+
+	* keymaps.texi (Remapping Commands): Document new arg to
+	command-remapping.
+
+2007-04-01  Karl Berry  <karl@gnu.org>
+
+	* processes.texi (Low-Level Network): typo.
+	* loading.texi (Hooks for Loading): avoid double "the".
+	* keymaps.texi (Key Sequences): no double "and".
+	(Changing Key Bindings): shorten to improve line break.
+
+2007-03-31  Glenn Morris  <rgm@gnu.org>
+
+	* os.texi (Timers): Fix description of run-at-time TIME formats.
+
+2007-03-31  Richard Stallman  <rms@gnu.org>
+
+	* display.texi (Invisible Text): Correct buffer-invisibility-spec
+	regarding ellipsis.
+
+2007-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* intro.texi (nil and t):
+	* symbols.texi (Plists and Alists):
+	* variables.texi (Variable Aliases, Constant Variables):
+	* functions.texi (Defining Functions):
+	* advice.texi (Advising Primitives):
+	* debugging.texi (Syntax Errors, Compilation Errors):
+	* minibuf.texi (Minibuffer Windows):
+	* commands.texi (Adjusting Point):
+	* modes.texi (Syntactic Font Lock, Faces for Font Lock)
+	(Auto Major Mode, Major Mode Conventions):
+	* help.texi (Describing Characters):
+	* files.texi (Create/Delete Dirs, Information about Files)
+	(File Locks, Writing to Files, Reading from Files)
+	(Saving Buffers):
+	* windows.texi (Resizing Windows, Cyclic Window Ordering):
+	* frames.texi (Finding All Frames):
+	* positions.texi (Buffer End, Motion):
+	* markers.texi (The Region):
+	* text.texi (Deletion, Near Point):
+	* display.texi (Displaying Messages, Truncation):
+	* os.texi (Processor Run Time):
+	* tips.texi (Key Binding Conventions, Programming Tips)
+	(Warning Tips, Documentation Tips, Comment Tips):
+	* internals.texi (Memory Usage): Improve indexing.
+
+	* variables.texi (Frame-Local Variables):
+	* functions.texi (Argument List):
+	* loading.texi (Library Search):
+	* streams.texi (Output Variables):
+	* keymaps.texi (Translation Keymaps, Searching Keymaps):
+	* searching.texi (Replacing Match, Search and Replace):
+	* processes.texi (Byte Packing, Decoding Output)
+	(Accepting Output, Network Servers, Shell Arguments):
+	* display.texi (Abstract Display, Image Cache, Scroll Bars):
+	* windows.texi (Window Point, Window Start):
+	* frames.texi (Management Parameters, Frame Parameters, Frame Titles):
+	* commands.texi (Reading Input, Keyboard Events):
+	* minibuf.texi (Reading File Names, Minibuffer Completion)
+	(Recursive Mini):
+	* positions.texi (List Motion):
+	* hash.texi (Hash Tables, Creating Hash, Defining Hash):
+	* numbers.texi (Arithmetic Operations, Math Functions)
+	(Predicates on Numbers, Comparison of Numbers):
+	(Numeric Conversions):
+	* locals.texi (Standard Buffer-Local Variables):
+	* maps.texi (Standard Keymaps):
+	* os.texi (User Identification, System Environment, Recording Input)
+	(X11 Keysyms):
+	* nonascii.texi (Non-ASCII Characters, Splitting Characters):
+	* backups.texi (Backups and Auto-Saving):
+	* customize.texi (Customization, Group Definitions)
+	(Variable Definitions):
+	* compile.texi (Byte Compilation): Improve index entries.
+
+2007-03-31  Karl Berry  <karl@gnu.org>
+
+	* macros.texi (Defining Macros): Avoid widow syllable.
+
+2007-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* elisp.texi (Top): Postscript -> PostScript.
+
+	* display.texi (Images, Postscript Images): Postscript -> PostScript.
+
+2007-03-31  Markus Triska  <markus.triska@gmx.at>
+
+	* internals.texi (Writing Emacs Primitives): Untabify `For'.
+
+2007-03-30  Karl Berry  <karl@gnu.org>
+
+	* lists.texi (List-related Predicates): Remove spurious @need.
+	(Setcdr): Use @smallexample to improve page break.
+	(Association Lists) <assoc>: Reword to improve page break.
+
+	* strings.texi (String Conversion): Insert blank line to improve
+	page break.
+
+	* numbers.texi (Random Numbers): Use @minus{}.
+	(Math Functions): Use @minus{}.
+
+	* intro.texi (Acknowledgements): Avoid line breaks before middle
+	initials.
+
+2007-03-24  Eli Zaretskii  <eliz@gnu.org>
+
+	* errors.texi (Standard Errors): Add an index entry.
+
 2007-03-19  Richard Stallman  <rms@gnu.org>
 
 	* os.texi (Recording Input): recent-keys now gives 300 keys.
--- a/lispref/abbrevs.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/abbrevs.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -7,7 +7,7 @@
 @node Abbrevs, Processes, Syntax Tables, Top
 @chapter Abbrevs and Abbrev Expansion
 @cindex abbrev
-@cindex abbrev table
+@c  @cindex abbrev table  Redundant with "abbrev".
 
   An abbreviation or @dfn{abbrev} is a string of characters that may be
 expanded to a longer string.  The user can insert the abbrev string and
--- a/lispref/advice.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/advice.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -384,7 +384,7 @@
 @deffn Command ad-deactivate function
 This command deactivates the advice for @var{function}.
 @cindex deactivating advice
-@cindex advice, deactivating
+@c @cindex advice, deactivating   "advice, activating" is just above
 @end deffn
 
 @deffn Command ad-update function &optional compile
@@ -673,6 +673,7 @@
 
 @node Advising Primitives
 @section Advising Primitives
+@cindex advising primitives
 
   Advising a primitive function (also called a ``subr'') is risky.
 Some primitive functions are used by the advice mechanism; advising
--- a/lispref/backups.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/backups.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6,6 +6,7 @@
 @setfilename ../info/backups
 @node Backups and Auto-Saving, Buffers, Files, Top
 @chapter Backups and Auto-Saving
+@cindex backups and auto-saving
 
   Backup files and auto-save files are two methods by which Emacs tries
 to protect the user from the consequences of crashes or of the user's
@@ -25,10 +26,10 @@
 
   A @dfn{backup file} is a copy of the old contents of a file you are
 editing.  Emacs makes a backup file the first time you save a buffer
-into its visited file.  Normally, this means that the backup file
-contains the contents of the file as it was before the current editing
-session.  The contents of the backup file normally remain unchanged once
-it exists.
+into its visited file.  Thus, normally, the backup file contains the
+contents of the file as it was before the current editing session.
+The contents of the backup file normally remain unchanged once it
+exists.
 
   Backups are usually made by renaming the visited file to a new name.
 Optionally, you can specify that backup files should be made by copying
@@ -66,11 +67,11 @@
 @end defun
 
 @defvar buffer-backed-up
-  This buffer-local variable indicates whether this buffer's file has
-been backed up on account of this buffer.  If it is non-@code{nil}, then
+  This buffer-local variable says whether this buffer's file has
+been backed up on account of this buffer.  If it is non-@code{nil},
 the backup file has been written.  Otherwise, the file should be backed
 up when it is next saved (if backups are enabled).  This is a
-permanent local; @code{kill-all-local-variables} does not alter it.
+permanent local; @code{kill-all-local-variables} does not alter@tie{}it.
 @end defvar
 
 @defopt make-backup-files
@@ -162,7 +163,7 @@
 
 @node Rename or Copy
 @subsection Backup by Renaming or by Copying?
-@cindex backup files, how to make them
+@cindex backup files, rename or copy
 
   There are two ways that Emacs can make a backup file:
 
@@ -268,12 +269,12 @@
 @defopt kept-new-versions
 The value of this variable is the number of newest versions to keep
 when a new numbered backup is made.  The newly made backup is included
-in the count.  The default value is 2.
+in the count.  The default value is@tie{}2.
 @end defopt
 
 @defopt kept-old-versions
 The value of this variable is the number of oldest versions to keep
-when a new numbered backup is made.  The default value is 2.
+when a new numbered backup is made.  The default value is@tie{}2.
 @end defopt
 
   If there are backups numbered 1, 2, 3, 5, and 7, and both of these
@@ -294,7 +295,7 @@
 This variable specifies how many of the newest backup versions to keep
 in the Dired command @kbd{.} (@code{dired-clean-directory}).  That's the
 same thing @code{kept-new-versions} specifies when you make a new backup
-file.  The default value is 2.
+file.  The default is@tie{}2.
 @end defopt
 
 @node Backup Names
@@ -306,8 +307,8 @@
 
 @defun backup-file-name-p filename
 This function returns a non-@code{nil} value if @var{filename} is a
-possible name for a backup file.  A file with the name @var{filename}
-need not exist; the function just checks the name.
+possible name for a backup file.  It just checks the name, not whether
+a file with the name @var{filename} exists.
 
 @smallexample
 @group
@@ -417,7 +418,7 @@
 
 @node Auto-Saving
 @section Auto-Saving
-@cindex auto-saving
+@c @cindex auto-saving   Lots of symbols starting with auto-save here.
 
   Emacs periodically saves all files that you are visiting; this is
 called @dfn{auto-saving}.  Auto-saving prevents you from losing more
--- a/lispref/buffers.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/buffers.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -593,16 +593,17 @@
 
 @node Modification Time
 @comment  node-name,  next,  previous,  up
-@section Comparison of Modification Time
-@cindex comparison of modification time
-@cindex modification time, comparison of
+@section Buffer Modification Time
+@cindex comparing file modification time
+@cindex modification time of buffer
 
   Suppose that you visit a file and make changes in its buffer, and
 meanwhile the file itself is changed on disk.  At this point, saving the
 buffer would overwrite the changes in the file.  Occasionally this may
 be what you want, but usually it would lose valuable information.  Emacs
 therefore checks the file's modification time using the functions
-described below before saving the file.
+described below before saving the file.  (@xref{File Attributes},
+for how to examine a file's modification time.)
 
 @defun verify-visited-file-modtime buffer
 This function compares what @var{buffer} has recorded for the
@@ -679,12 +680,11 @@
 @end defun
 
 @defun ask-user-about-supersession-threat filename
-@cindex obsolete buffer
 This function is used to ask a user how to proceed after an attempt to
-modify an obsolete buffer visiting file @var{filename}.  An
-@dfn{obsolete buffer} is an unmodified buffer for which the associated
-file on disk is newer than the last save-time of the buffer.  This means
-some other program has probably altered the file.
+modify an buffer visiting file @var{filename} when the file is newer
+than the buffer text.  Emacs detects this because the modification
+time of the file on disk is newer than the last save-time of the
+buffer.  This means some other program has probably altered the file.
 
 @kindex file-supersession
 Depending on the user's answer, the function may return normally, in
--- a/lispref/commands.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/commands.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -116,13 +116,13 @@
 
 @node Using Interactive
 @subsection Using @code{interactive}
+@cindex arguments, interactive entry
 
   This section describes how to write the @code{interactive} form that
 makes a Lisp function an interactively-callable command, and how to
 examine a command's @code{interactive} form.
 
 @defspec interactive arg-descriptor
-@cindex argument descriptors
 This special form declares that the function in which it appears is a
 command, and that it may therefore be called interactively (via
 @kbd{M-x} or by entering a key sequence bound to it).  The argument
@@ -151,7 +151,6 @@
 or more arguments.
 
 @item
-@cindex argument prompt
 It may be a string; then its contents should consist of a code character
 followed by a prompt (which some code characters use and some ignore).
 The prompt ends either with the end of the string or with a newline.
@@ -207,7 +206,6 @@
 command.  Usually this form will call various functions to read input
 from the user, most often through the minibuffer (@pxref{Minibuffers})
 or directly from the keyboard (@pxref{Reading Input}).
-@cindex argument evaluation form
 
 Providing point or the mark as an argument value is also common, but
 if you do this @emph{and} read input (whether using the minibuffer or
@@ -865,6 +863,10 @@
 
 @node Adjusting Point
 @section Adjusting Point After Commands
+@cindex adjusting point
+@cindex invisible/intangible text, and point
+@cindex @code{display} property, and point display
+@cindex @code{composition} property, and point display
 
   It is not easy to display a value of point in the middle of a
 sequence of text that has the @code{display}, @code{composition} or
@@ -933,6 +935,7 @@
 
 @node Keyboard Events
 @subsection Keyboard Events
+@cindex keyboard events
 
 There are two kinds of input you can get from the keyboard: ordinary
 keys, and function keys.  Ordinary keys correspond to characters; the
@@ -1600,19 +1603,19 @@
 The command is called with no arguments, and the specific signal event is
 available in @code{last-input-event}.  For example:
 
-@example
+@smallexample
 (defun sigusr-handler ()
   (interactive)
   (message "Caught signal %S" last-input-event))
 
 (define-key special-event-map [sigusr1] 'sigusr-handler)
-@end example
+@end smallexample
 
 To test the signal handler, you can make Emacs send a signal to itself:
 
-@example
+@smallexample
 (signal-process (emacs-pid) 'sigusr1)
-@end example
+@end smallexample
 @end table
 
   If one of these events arrives in the middle of a key sequence---that
@@ -1776,8 +1779,7 @@
 
 @node Accessing Events
 @subsection Accessing Events
-@cindex mouse events, accessing the data
-@cindex accessing data of mouse events
+@cindex mouse events, data in
 
   This section describes convenient functions for accessing the data in
 a mouse button or motion event.
@@ -1892,7 +1894,6 @@
 is a buffer position, return the size of the character at that position.
 @end defun
 
-@cindex mouse event, timestamp
 @cindex timestamp of a mouse event
 @defun posn-timestamp position
 Return the timestamp in @var{position}.  This is the time at which the
@@ -2077,6 +2078,8 @@
 
 @node Reading Input
 @section Reading Input
+@cindex read input
+@cindex keyboard input
 
   The editor command loop reads key sequences using the function
 @code{read-key-sequence}, which uses @code{read-event}.  These and other
@@ -2106,7 +2109,6 @@
 for example, @code{describe-key} uses it to read the key to describe.
 
 @defun read-key-sequence prompt &optional continue-echo dont-downcase-last switch-frame-ok command-loop
-@cindex key sequence
 This function reads a key sequence and returns it as a string or
 vector.  It keeps reading events until it has accumulated a complete key
 sequence; that is, enough to specify a non-prefix command using the
@@ -2539,7 +2541,6 @@
 as the events will already have been added once as they were read for
 the first time.  An element of the form @code{(@code{t} . @var{event})}
 forces @var{event} to be added to the current command's key sequence.
-
 @end defvar
 
 @defun listify-key-sequence key
@@ -2613,9 +2614,9 @@
 @end defmac
 
 @defun discard-input
-@cindex flush input
-@cindex discard input
-@cindex terminate keyboard macro
+@cindex flushing input
+@cindex discarding input
+@cindex keyboard macro, terminating
 This function discards the contents of the terminal input buffer and
 cancels any keyboard macro that might be in the process of definition.
 It returns @code{nil}.
@@ -2661,7 +2662,6 @@
 
 @node Waiting
 @section Waiting for Elapsed Time or Input
-@cindex pausing
 @cindex waiting
 
   The wait functions are designed to wait for a certain amount of time
@@ -2768,7 +2768,7 @@
 case of @code{read-quoted-char}, this is so that @kbd{C-q} can be used
 to quote a @kbd{C-g}.
 
-@cindex prevent quitting
+@cindex preventing quitting
   You can prevent quitting for a portion of a Lisp function by binding
 the variable @code{inhibit-quit} to a non-@code{nil} value.  Then,
 although @kbd{C-g} still sets @code{quit-flag} to @code{t} as usual, the
--- a/lispref/compile.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/compile.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6,8 +6,9 @@
 @setfilename ../info/compile
 @node Byte Compilation, Advising Functions, Loading, Top
 @chapter Byte Compilation
+@cindex byte compilation
 @cindex byte-code
-@cindex compilation
+@cindex compilation (Emacs Lisp)
 
   Emacs Lisp has a @dfn{compiler} that translates functions written
 in Lisp into a special representation called @dfn{byte-code} that can be
--- a/lispref/customize.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/customize.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -186,9 +186,10 @@
 @end defvar
 
 @node Group Definitions
-@section Defining Custom Groups
+@section Defining Customization Groups
+@cindex define customization group
+@cindex customization groups, defining
 
-@cindex custom groups, how to define
   Each Emacs Lisp package should have one main customization group which
 contains all the options, faces and other groups in the package.  If the
 package has a small number of options and faces, use just one group and
@@ -259,10 +260,10 @@
 
 @node Variable Definitions
 @section Defining Customization Variables
-
+@cindex define customization options
 @cindex customization variables, how to define
-@cindex declare user-editable variables
-  Use @code{defcustom} to declare user-editable variables.
+
+  Use @code{defcustom} to declare user-customizable variables.
 
 @defmac defcustom option standard doc [keyword value]@dots{}
 This construct declares @var{option} as a customizable user option
@@ -701,7 +702,7 @@
 
 @node Composite Types
 @subsection Composite Types
-@cindex arguments (of composite type)
+@cindex Composite Types (customization)
 
   When none of the simple types is appropriate, you can use composite
 types, which build new types from other types or from specified data.
--- a/lispref/debugging.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/debugging.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -44,7 +44,7 @@
 
 @node Debugger
 @section The Lisp Debugger
-@cindex debugger
+@cindex debugger for Emacs Lisp
 @cindex Lisp debugger
 @cindex break
 
@@ -675,6 +675,7 @@
 
 @node Syntax Errors
 @section Debugging Invalid Lisp Syntax
+@cindex debugging invalid Lisp syntax
 
   The Lisp reader reports invalid syntax, but cannot say where the real
 problem is.  For example, the error ``End of file during parsing'' in
@@ -690,6 +691,8 @@
 if it goes to the place where that defun appears to end.  If it does
 not, there is a problem in that defun.
 
+@cindex unbalanced parentheses
+@cindex parenthesis mismatch, debugging
   However, unmatched parentheses are the most common syntax errors in
 Lisp, and we can give further advice for those cases.  (In addition,
 just moving point through the code with Show Paren mode enabled might
@@ -796,8 +799,13 @@
 never return.  If it ever does return, you get a run-time error.
 @end defmac
 
+  Edebug also has a coverage testing feature (@pxref{Coverage
+Testing}).  These features partly duplicate each other, and it would
+be cleaner to combine them.
+
 @node Compilation Errors
 @section Debugging Problems in Compilation
+@cindex debugging byte compilation problems
 
   When an error happens during byte compilation, it is normally due to
 invalid syntax in the program you are compiling.  The compiler prints a
--- a/lispref/display.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/display.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -126,6 +126,7 @@
 @node Truncation
 @section Truncation
 @cindex line wrapping
+@cindex line truncation
 @cindex continuation lines
 @cindex @samp{$} in display
 @cindex @samp{\} in display
@@ -216,6 +217,7 @@
 
 @node Displaying Messages
 @subsection Displaying Messages in the Echo Area
+@cindex display message in echo area
 
   This section describes the functions for explicitly producing echo
 area messages.  Many other Emacs features display messages there, too.
@@ -760,10 +762,9 @@
 is @var{atom} or if it is a list with @var{atom} as a member.
 
 @item (@var{atom} . t)
-A character is invisible if its @code{invisible} property value
-is @var{atom} or if it is a list with @var{atom} as a member.
-Moreover, if this character is at the end of a line and is followed
-by a visible newline, it displays an ellipsis.
+A character is invisible if its @code{invisible} property value is
+@var{atom} or if it is a list with @var{atom} as a member.  Moreover,
+a sequence of such characters displays as an ellipsis.
 @end table
 @end table
 @end defvar
@@ -839,7 +840,7 @@
 
 @node Selective Display
 @section Selective Display
-@cindex selective display
+@c @cindex selective display   Duplicates selective-display
 
   @dfn{Selective display} refers to a pair of related features for
 hiding certain lines on the screen.
@@ -1832,6 +1833,7 @@
 
 @example
 @group
+(defface region
   '((((class color) (min-colors 88) (background dark))
      :background "blue3")
 @end group
@@ -2501,7 +2503,6 @@
 @cindex automatic face assignment
 @cindex faces, automatic choice
 
-@cindex Font-Lock mode
   This hook is used for automatically assigning faces to text in the
 buffer.  It is part of the implementation of Font-Lock mode.
 
@@ -2743,7 +2744,7 @@
 
 @node Fringes
 @section Fringes
-@cindex Fringes
+@cindex fringes
 
   The @dfn{fringes} of a window are thin vertical strips down the
 sides that are used for displaying bitmaps that indicate truncation,
@@ -3073,7 +3074,7 @@
 
 @node Overlay Arrow
 @subsection The Overlay Arrow
-@cindex overlay arrow
+@c @cindex overlay arrow  Duplicates variable names
 
   The @dfn{overlay arrow} is useful for directing the user's attention
 to a particular line in a buffer.  For example, in the modes used for
@@ -3131,6 +3132,7 @@
 
 @node Scroll Bars
 @section Scroll Bars
+@cindex scroll bars
 
 Normally the frame parameter @code{vertical-scroll-bars} controls
 whether the windows in the frame have vertical scroll bars, and
@@ -3290,7 +3292,6 @@
 @node Specified Space
 @subsection Specified Spaces
 @cindex spaces, specified height or width
-@cindex specified spaces
 @cindex variable-width spaces
 
   To display a space of specified width and/or height, use a display
@@ -3603,7 +3604,7 @@
 
   The supported image formats include XBM, XPM (this requires the
 libraries @code{libXpm} version 3.4k and @code{libz}), GIF (requiring
-@code{libungif} 4.1.0), Postscript, PBM, JPEG (requiring the
+@code{libungif} 4.1.0), PostScript, PBM, JPEG (requiring the
 @code{libjpeg} library version v6a), TIFF (requiring @code{libtiff}
 v3.4), and PNG (requiring @code{libpng} 1.0.2).
 
@@ -3658,7 +3659,7 @@
 * XBM Images::          Special features for XBM format.
 * XPM Images::          Special features for XPM format.
 * GIF Images::          Special features for GIF format.
-* Postscript Images::   Special features for Postscript format.
+* PostScript Images::   Special features for PostScript format.
 * Other Image Types::   Various other formats are supported.
 * Defining Images::     Convenient ways to define an image for later use.
 * Showing Images::      Convenient ways to display an image once it is defined.
@@ -3980,11 +3981,11 @@
     (run-with-timer 0.1 nil 'display-anim buffer file (1+ idx) max nil)))
 @end ignore
 
-@node Postscript Images
-@subsection Postscript Images
-@cindex Postscript images
-
-  To use Postscript for an image, specify image type @code{postscript}.
+@node PostScript Images
+@subsection PostScript Images
+@cindex postscript images
+
+  To use PostScript for an image, specify image type @code{postscript}.
 This works only if you have Ghostscript installed.  You must always use
 these three properties:
 
@@ -3999,15 +4000,15 @@
 
 @item :bounding-box @var{box}
 The value, @var{box}, must be a list or vector of four integers, which
-specifying the bounding box of the Postscript image, analogous to the
-@samp{BoundingBox} comment found in Postscript files.
+specifying the bounding box of the PostScript image, analogous to the
+@samp{BoundingBox} comment found in PostScript files.
 
 @example
 %%BoundingBox: 22 171 567 738
 @end example
 @end table
 
-  Displaying Postscript images from Lisp data is not currently
+  Displaying PostScript images from Lisp data is not currently
 implemented, but it may be implemented by the time you read this.
 See the @file{etc/NEWS} file to make sure.
 
@@ -4270,6 +4271,7 @@
 
 @node Image Cache
 @subsection Image Cache
+@cindex image cache
 
   Emacs stores images in an image cache when it displays them, so it can
 display them again more efficiently.  It removes an image from the cache
@@ -4297,7 +4299,6 @@
 
 @node Buttons
 @section Buttons
-@cindex buttons
 @cindex buttons in buffers
 @cindex clickable buttons in buffers
 
@@ -4607,15 +4608,11 @@
 @end deffn
 
 @defun next-button pos &optional count-current
-Return the next button after position @var{pos} in the current buffer.
-If @var{count-current} is non-@code{nil}, count any button at
-@var{pos} in the search, instead of starting at the next button.
-@end defun
-
-@defun previous-button pos &optional count-current
-Return the @var{n}th button before position @var{pos} in the current
-buffer.  If @var{count-current} is non-@code{nil}, count any button at
-@var{pos} in the search, instead of starting at the next button.
+@defunx previous-button pos &optional count-current
+Return the next button after (for @code{next-button} or before (for
+@code{previous-button}) position @var{pos} in the current buffer.  If
+@var{count-current} is non-@code{nil}, count any button at @var{pos}
+in the search, instead of starting at the next button.
 @end defun
 
 @node Abstract Display
@@ -4954,9 +4951,8 @@
 @node Blinking
 @section Blinking Parentheses
 @cindex parenthesis matching
-@cindex blinking
+@cindex blinking parentheses
 @cindex balancing parentheses
-@cindex close parenthesis
 
   This section describes the mechanism by which Emacs shows a matching
 open parenthesis when the user inserts a close parenthesis.
@@ -5328,7 +5324,7 @@
 
 @node Beeping
 @section Beeping
-@cindex beeping
+@c  @cindex beeping   "beep" is adjacent
 @cindex bell
 
   This section describes how to make Emacs ring the bell (or blink the
--- a/lispref/edebug.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/edebug.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -12,9 +12,8 @@
 
 @node Edebug, Syntax Errors, Debugger, Debugging
 @section Edebug
-@cindex Edebug mode
+@cindex Edebug debugging facility
 
-@cindex Edebug
   Edebug is a source-level debugger for Emacs Lisp programs with which
 you can:
 
@@ -195,12 +194,6 @@
 (@pxref{Jumping}), which steps into the call after instrumenting the
 function.
 
-@cindex special forms (Edebug)
-@cindex interactive commands (Edebug)
-@cindex anonymous lambda expressions (Edebug)
-@cindex Common Lisp (Edebug)
-@pindex cl.el @r{(Edebug)}
-@pindex cl-specs.el
   Edebug knows how to instrument all the standard special forms,
 @code{interactive} forms with an expression argument, anonymous lambda
 expressions, and other defining forms.  However, Edebug cannot determine
@@ -441,9 +434,9 @@
 @end menu
 
 @node Breakpoints
-@subsubsection Breakpoints
+@subsubsection Edebug Breakpoints
 
-@cindex breakpoints
+@cindex breakpoints (Edebug)
 While using Edebug, you can specify @dfn{breakpoints} in the program you
 are testing: these are places where execution should stop.  You can set a
 breakpoint at any stop point, as defined in @ref{Using Edebug}.  For
@@ -867,10 +860,10 @@
 @node Coverage Testing
 @subsection Coverage Testing
 
-@cindex coverage testing
+@cindex coverage testing (Edebug)
 @cindex frequency counts
 @cindex performance analysis
-Edebug provides rudimentary coverage testing and display of execution
+  Edebug provides rudimentary coverage testing and display of execution
 frequency.
 
   Coverage testing works by comparing the result of each expression with
--- a/lispref/elisp.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/elisp.texi	Wed Apr 11 00:17:47 2007 +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.96
+@set EMACSVER 22.0.97
 
 @dircategory Emacs
 @direntry
@@ -1297,7 +1297,7 @@
 * XBM Images::              Special features for XBM format.
 * XPM Images::              Special features for XPM format.
 * GIF Images::              Special features for GIF format.
-* Postscript Images::       Special features for Postscript format.
+* PostScript Images::       Special features for PostScript format.
 * Other Image Types::       Various other formats are supported.
 * Defining Images::         Convenient ways to define an image for later use.
 * Showing Images::          Convenient ways to display an image once
--- a/lispref/errors.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/errors.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6,6 +6,7 @@
 @setfilename ../info/errors
 @node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top
 @appendix Standard Errors
+@cindex standard errors
 
   Here is the complete list of the error symbols in standard Emacs,
 grouped by concept.  The list includes each symbol's message (on the
--- a/lispref/eval.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/eval.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -233,7 +233,7 @@
 @node Function Indirection
 @subsection Symbol Function Indirection
 @cindex symbol function indirection
-@cindex indirection
+@cindex indirection for functions
 @cindex void function
 
   If the first element of the list is a symbol then evaluation examines
@@ -252,7 +252,6 @@
 which ought to be a function or other suitable object.
 
 @kindex invalid-function
-@cindex invalid function
   More precisely, we should now have a Lisp function (a lambda
 expression), a byte-code function, a primitive function, a Lisp macro, a
 special form, or an autoload object.  Each of these types is a case
@@ -530,7 +529,6 @@
 
 @node Quoting
 @section Quoting
-@cindex quoting
 
   The special form @code{quote} returns its single argument, as written,
 without evaluating it.  This provides a way to include constant symbols
--- a/lispref/files.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/files.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -296,6 +296,7 @@
 
 @node Saving Buffers
 @section Saving Buffers
+@cindex saving buffers
 
   When you edit a file in Emacs, you are actually working on a buffer
 that is visiting that file---that is, the contents of the file are
@@ -481,6 +482,7 @@
 @node Reading from Files
 @comment  node-name,  next,  previous,  up
 @section Reading from Files
+@cindex reading from files
 
   You can copy a file from the disk and insert it into a buffer
 using the @code{insert-file-contents} function.  Don't use the user-level
@@ -544,6 +546,7 @@
 @node Writing to Files
 @comment  node-name,  next,  previous,  up
 @section Writing to Files
+@cindex writing to files
 
   You can write the contents of a buffer, or part of a buffer, directly
 to a file on disk using the @code{append-to-file} and
@@ -647,6 +650,7 @@
 @node File Locks
 @section File Locks
 @cindex file locks
+@cindex lock file
 
   When two users edit the same file at the same time, they are likely
 to interfere with each other.  Emacs tries to prevent this situation
@@ -736,6 +740,7 @@
 
 @node Information about Files
 @section Information about Files
+@cindex file, information about
 
   The functions described in this section all operate on strings that
 designate file names.  With a few exceptions, all the functions have
@@ -1172,6 +1177,7 @@
 
 @item
 The time of last modification as a list of two integers (as above).
+@cindex modification time of file
 
 @item
 The time of last status change as a list of two integers (as above).
@@ -1262,13 +1268,13 @@
 
 @node Locating Files
 @subsection How to Locate Files in Standard Places
-@cindex locate files
-@cindex find files
+@cindex locate file in path
+@cindex find file in path
 
   This section explains how to search for a file in a list of
-directories.  One example is when you need to look for a program's
-executable file, e.g., to find out whether a given program is
-installed on the user's system.  Another example is the search for
+directories (a @dfn{path}).  One example is when you need to look for
+a program's executable file, e.g., to find out whether a given program
+is installed on the user's system.  Another example is the search for
 Lisp libraries (@pxref{Library Search}).  Such searches generally need
 to try various possible file name extensions, in addition to various
 possible directories.  Emacs provides a function for such a
@@ -1311,7 +1317,6 @@
 a list of one or more of these symbols.
 @end defun
 
-@cindex find executable program
 @defun executable-find program
 This function searches for the executable file of the named
 @var{program} and returns the full absolute name of the executable,
@@ -1323,7 +1328,7 @@
 
 @node Changing Files
 @section Changing File Names and Attributes
-@cindex renaming files
+@c @cindex renaming files  Duplicates rename-file
 @cindex copying files
 @cindex deleting files
 @cindex linking files
@@ -2459,6 +2464,7 @@
 
 @node Create/Delete Dirs
 @section Creating and Deleting Directories
+@cindex creating and deleting directories
 @c Emacs 19 features
 
   Most Emacs Lisp file-manipulation functions get errors when used on
--- a/lispref/frames.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/frames.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -193,6 +193,7 @@
 
 @node Frame Parameters
 @section Frame Parameters
+@cindex frame parameters
 
   A frame has many parameters that control its appearance and behavior.
 Just what parameters a frame has depends on what display mechanism it
@@ -555,6 +556,7 @@
 
 @node Management Parameters
 @subsubsection Window Management Parameters
+@cindex window manager, and frame parameters
 
   These frame parameters, meaningful only on window system displays,
 interact with the window manager.
@@ -885,6 +887,7 @@
 
 @node Frame Titles
 @section Frame Titles
+@cindex frame title
 
   Every frame has a @code{name} parameter; this serves as the default
 for the frame title which window systems typically display at the top of
@@ -924,7 +927,7 @@
 
 @node Deleting Frames
 @section Deleting Frames
-@cindex deletion of frames
+@cindex deleting frames
 
 Frames remain potentially visible until you explicitly @dfn{delete}
 them.  A deleted frame cannot appear on the screen, but continues to
@@ -956,6 +959,7 @@
 
 @node Finding All Frames
 @section Finding All Frames
+@cindex frames, scanning all
 
 @defun frame-list
 The function @code{frame-list} returns a list of all the frames that
@@ -1077,7 +1081,7 @@
 @node Input Focus
 @section Input Focus
 @cindex input focus
-@cindex selected frame
+@c @cindex selected frame    Duplicates selected-frame
 
 At any time, one frame in Emacs is the @dfn{selected frame}.  The selected
 window always resides on the selected frame.
@@ -1260,7 +1264,7 @@
 the one underneath.  Even a window at the bottom of the stack can be
 seen if no other window overlaps it.
 
-@cindex raising a frame
+@c @cindex raising a frame  redundant with raise-frame
 @cindex lowering a frame
   A window's place in this ordering is not fixed; in fact, users tend
 to change the order frequently.  @dfn{Raising} a window means moving
@@ -1315,14 +1319,14 @@
 @node Mouse Tracking
 @section Mouse Tracking
 @cindex mouse tracking
-@cindex tracking the mouse
+@c @cindex tracking the mouse   Duplicates track-mouse
 
-Sometimes it is useful to @dfn{track} the mouse, which means to display
+  Sometimes it is useful to @dfn{track} the mouse, which means to display
 something to indicate where the mouse is and move the indicator as the
 mouse moves.  For efficient mouse tracking, you need a way to wait until
 the mouse actually moves.
 
-The convenient way to track the mouse is to ask for events to represent
+  The convenient way to track the mouse is to ask for events to represent
 mouse motion.  Then you can wait for motion by waiting for an event.  In
 addition, you can easily handle any other sorts of events that may
 occur.  That is useful, because normally you don't want to track the
@@ -2015,8 +2019,6 @@
 @end defun
 
 @defun display-graphic-p &optional display
-@cindex frames, more than one on display
-@cindex fonts, more than one on display
 This function returns @code{t} if @var{display} is a graphic display
 capable of displaying several frames and several different fonts at
 once.  This is true for displays that use a window system such as X, and
--- a/lispref/functions.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/functions.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -293,6 +293,7 @@
 @kindex wrong-number-of-arguments
 @cindex argument binding
 @cindex binding arguments
+@cindex argument lists, features
 
   Our simple sample function, @code{(lambda (a b c) (+ a b c))},
 specifies three argument variables, so it must be called with three
@@ -583,6 +584,7 @@
 deliberate redefinition from unintentional redefinition.
 @end defspec
 
+@cindex function aliases
 @defun defalias name definition &optional docstring
 @anchor{Definition of defalias}
 This special form defines the symbol @var{name} as a function, with
@@ -1191,17 +1193,22 @@
 the function's definition is open-coded into the caller.
 
 Making a function inline makes explicit calls run faster.  But it also
-has disadvantages.  For one thing, it reduces flexibility; if you change
-the definition of the function, calls already inlined still use the old
-definition until you recompile them.  Since the flexibility of
-redefining functions is an important feature of Emacs, you should not
-make a function inline unless its speed is really crucial.
+has disadvantages.  For one thing, it reduces flexibility; if you
+change the definition of the function, calls already inlined still use
+the old definition until you recompile them.
 
 Another disadvantage is that making a large function inline can increase
 the size of compiled code both in files and in memory.  Since the speed
 advantage of inline functions is greatest for small functions, you
 generally should not make large functions inline.
 
+Also, inline functions do not behave well with respect to debugging,
+tracing, and advising (@pxref{Advising Functions}).  Since ease of
+debugging and the flexibility of redefining functions are important
+features of Emacs, you should not make a function inline, even if it's
+small, unless its speed is really crucial, and you've timed the code
+to verify that using @code{defun} actually has performance problems.
+
 It's possible to define a macro to expand into the same code that an
 inline function would execute.  (@xref{Macros}.)  But the macro would be
 limited to direct use in expressions---a macro cannot be called with
--- a/lispref/hash.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/hash.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -7,10 +7,11 @@
 @node Hash Tables, Symbols, Sequences Arrays Vectors, Top
 @chapter Hash Tables
 @cindex hash tables
+@cindex lookup tables
 
-  A hash table is a very fast kind of lookup table, somewhat like
-an alist in that it maps keys to corresponding values.  It differs
-from an alist in these ways:
+  A hash table is a very fast kind of lookup table, somewhat like an
+alist (@pxref{Association Lists}) in that it maps keys to
+corresponding values.  It differs from an alist in these ways:
 
 @itemize @bullet
 @item
@@ -55,6 +56,7 @@
 
 @node Creating Hash
 @section Creating Hash Tables
+@cindex creating hash tables
 
   The principal function for creating a hash table is
 @code{make-hash-table}.
@@ -212,6 +214,7 @@
 @node Defining Hash
 @section Defining Hash Comparisons
 @cindex hash code
+@cindex define hash comparisons
 
   You can define new methods of key lookup by means of
 @code{define-hash-table-test}.  In order to use this feature, you need
--- a/lispref/help.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/help.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -91,9 +91,7 @@
 function @code{documentation-property} knows how to retrieve it.
 @end itemize
 
-@cindex @file{DOC} (documentation) file
-@cindex @file{emacs/etc/DOC-@var{version}}
-@cindex @file{etc/DOC-@var{version}}
+@cindex @file{DOC-@var{version}} (documentation) file
 To save space, the documentation for preloaded functions and variables
 (including primitive functions and autoloaded functions) is stored in
 the file @file{emacs/etc/DOC-@var{version}}---not inside Emacs.  The
@@ -388,6 +386,7 @@
 
 @node Describing Characters
 @section Describing Characters for Help Messages
+@cindex describe characters and events
 
   These functions convert events, key sequences, or characters to
 textual descriptions.  These descriptions are useful for including
--- a/lispref/internals.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/internals.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -204,7 +204,7 @@
 
 @node Garbage Collection
 @appendixsec Garbage Collection
-@cindex garbage collector
+@cindex garbage collection
 
 @cindex memory allocation
   When a program creates a list or the user defines a new function (such
@@ -441,6 +441,7 @@
 
 @node Memory Usage
 @section Memory Usage
+@cindex memory usage
 
   These functions and variables give information about the total amount
 of memory allocation that Emacs has done, broken down by data type.
@@ -530,7 +531,7 @@
     @{
       val = Feval (XCAR (args));
       if (!NILP (val))
-	break;
+        break;
       args = XCDR (args);
     @}
 @end group
@@ -715,7 +716,7 @@
 defined with @code{DEFVAR_BOOL} are automatically added to the list
 @code{byte-boolean-vars} used by the byte compiler.
 
-@cindex @code{staticpro}, protect file-scope variables from GC
+@cindex @code{staticpro}, protection from GC
   If you define a file-scope C variable of type @code{Lisp_Object},
 you must protect it from garbage-collection by calling @code{staticpro}
 in @code{syms_of_@var{filename}}, like this:
--- a/lispref/intro.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/intro.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -170,11 +170,11 @@
 
 @node nil and t
 @subsection @code{nil} and @code{t}
-@cindex @code{nil}, uses of
 @cindex truth value
 @cindex boolean
+
+@cindex @code{nil}
 @cindex false
-
   In Lisp, the symbol @code{nil} has three separate meanings: it
 is a symbol with the name @samp{nil}; it is the logical truth value
 @var{false}; and it is the empty list---the list of zero elements.
@@ -197,7 +197,7 @@
 (setq foo-flag nil)           ; @r{Emphasize the truth value @var{false}}
 @end example
 
-@cindex @code{t}, uses of
+@cindex @code{t}
 @cindex true
   In contexts where a truth value is expected, any non-@code{nil} value
 is considered to be @var{true}.  However, @code{t} is the preferred way
@@ -535,11 +535,12 @@
 @section Acknowledgements
 
   This manual was written by Robert Krawitz, Bil Lewis, Dan LaLiberte,
-Richard M. Stallman and Chris Welty, the volunteers of the GNU manual
-group, in an effort extending over several years.  Robert J. Chassell
-helped to review and edit the manual, with the support of the Defense
-Advanced Research Projects Agency, ARPA Order 6082, arranged by Warren
-A. Hunt, Jr.@: of Computational Logic, Inc.
+Richard@tie{}M. Stallman and Chris Welty, the volunteers of the GNU
+manual group, in an effort extending over several years.
+Robert@tie{}J. Chassell helped to review and edit the manual, with the
+support of the Defense Advanced Research Projects Agency, ARPA Order
+6082, arranged by Warren@tie{}A. Hunt, Jr.@: of Computational Logic,
+Inc.
 
   Corrections were supplied by Karl Berry, Jim Blandy, Bard Bloom,
 Stephane Boucher, David Boyes, Alan Carroll, Richard Davis, Lawrence
--- a/lispref/keymaps.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/keymaps.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -53,7 +53,7 @@
 a key sequence as an argument can handle both representations.
 
   In the string representation, alphanumeric characters ordinarily
-stand for themselves; for example, @code{"a"} represents @kbd{a} and
+stand for themselves; for example, @code{"a"} represents @kbd{a}
 and @code{"2"} represents @kbd{2}.  Control character events are
 prefixed by the substring @code{"\C-"}, and meta characters by
 @code{"\M-"}; for example, @code{"\C-x"} represents the key @kbd{C-x}.
@@ -697,6 +697,7 @@
 
 @node Searching Keymaps
 @section Searching the Active Keymaps
+@cindex searching active keymaps for keys
 
   After translation of event subsequences (@pxref{Translation
 Keymaps}) Emacs looks for them in the active keymaps.  Here is a
@@ -1277,7 +1278,7 @@
 does matter for menu keymaps (@pxref{Menu Keymaps}).
 @end defun
 
-  Here is an example that creates a sparse keymap and makes a number of
+  This example creates a sparse keymap and makes a number of
 bindings in it:
 
 @smallexample
@@ -1488,17 +1489,22 @@
 if an ordinary binding specifies @code{my-kill-line}, this keymap will
 remap it to @code{my-other-kill-line}.
 
-@defun command-remapping command &optional position
+@defun command-remapping command &optional position keymaps
 This function returns the remapping for @var{command} (a symbol),
 given the current active keymaps.  If @var{command} is not remapped
 (which is the usual situation), or not a symbol, the function returns
 @code{nil}.  @code{position} can optionally specify a buffer position
 or an event position to determine the keymaps to use, as in
 @code{key-binding}.
+
+If the optional argument @code{keymaps} is non-@code{nil}, it
+specifies a list of keymaps to search in.  This argument is ignored if
+@code{position} is non-@code{nil}.
 @end defun
 
 @node Translation Keymaps
 @section Keymaps for Translating Sequences of Events
+@cindex keymaps for translating events
 
   This section describes keymaps that are used during reading a key
 sequence, to translate certain event sequences into others.
--- a/lispref/lists.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/lists.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6,7 +6,7 @@
 @setfilename ../info/lists
 @node Lists, Sequences Arrays Vectors, Strings and Characters, Top
 @chapter Lists
-@cindex list
+@cindex lists
 @cindex element (of list)
 
   A @dfn{list} represents a sequence of zero or more elements (which may
@@ -30,7 +30,6 @@
 @node Cons Cells
 @section Lists and Cons Cells
 @cindex lists and cons cells
-@cindex @code{nil} and lists
 
   Lists in Lisp are not a primitive data type; they are built up from
 @dfn{cons cells}.  A cons cell is a data object that represents an
@@ -104,7 +103,6 @@
 @end defun
 
 @defun atom object
-@cindex atoms
 This function returns @code{t} if @var{object} is an atom, @code{nil}
 otherwise.  All objects except cons cells are atoms.  The symbol
 @code{nil} is an atom and is also a list; it is the only Lisp object
@@ -159,7 +157,6 @@
 @end example
 @end defun
 
-@need 2000
 
 @node List Elements
 @section Accessing Elements of Lists
@@ -991,10 +988,9 @@
 @end group
 @end example
 
-@need 4000
   Here is the result in box notation:
 
-@example
+@smallexample
 @group
                    --------------------
                   |                    |
@@ -1004,7 +1000,7 @@
 |       |      |     |       |      |      |       |      |
  --------------       --------------        --------------
 @end group
-@end example
+@end smallexample
 
 @noindent
 The second cons cell, which previously held the element @code{b}, still
@@ -1307,7 +1303,7 @@
 @end defun
 
 @defun delq object list
-@cindex deletion of elements
+@cindex deleting list elements
 This function destructively removes all elements @code{eq} to
 @var{object} from @var{list}.  The letter @samp{q} in @code{delq} says
 that it uses @code{eq} to compare @var{object} against the elements of
@@ -1589,7 +1585,7 @@
 
 @defun assoc key alist
 This function returns the first association for @var{key} in
-@var{alist}.  It compares @var{key} against the alist elements using
+@var{alist}, comparing @var{key} against the alist elements using
 @code{equal} (@pxref{Equality Predicates}).  It returns @code{nil} if no
 association in @var{alist} has a @sc{car} @code{equal} to @var{key}.
 For example:
--- a/lispref/loading.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/loading.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -64,22 +64,23 @@
 
 To find the file, @code{load} first looks for a file named
 @file{@var{filename}.elc}, that is, for a file whose name is
-@var{filename} with @samp{.elc} appended.  If such a file exists, it is
-loaded.  If there is no file by that name, then @code{load} looks for a
-file named @file{@var{filename}.el}.  If that file exists, it is loaded.
-Finally, if neither of those names is found, @code{load} looks for a
-file named @var{filename} with nothing appended, and loads it if it
-exists.  (The @code{load} function is not clever about looking at
-@var{filename}.  In the perverse case of a file named @file{foo.el.el},
-evaluation of @code{(load "foo.el")} will indeed find it.)
+@var{filename} with the extension @samp{.elc} appended.  If such a
+file exists, it is loaded.  If there is no file by that name, then
+@code{load} looks for a file named @file{@var{filename}.el}.  If that
+file exists, it is loaded.  Finally, if neither of those names is
+found, @code{load} looks for a file named @var{filename} with nothing
+appended, and loads it if it exists.  (The @code{load} function is not
+clever about looking at @var{filename}.  In the perverse case of a
+file named @file{foo.el.el}, evaluation of @code{(load "foo.el")} will
+indeed find it.)
 
-If Auto Compression mode is enabled, as it is by default, then
-if @code{load} can not find a file, it searches for a compressed
-version of the file before trying other file names.  It decompresses
-and loads it if it exists.  It looks for compressed versions by
-appending the suffixes in @code{jka-compr-load-suffixes} to the file
-name.  The value of this variable must be a list of strings. Its
-standard value is @code{(".gz")}.
+If Auto Compression mode is enabled, as it is by default, then if
+@code{load} can not find a file, it searches for a compressed version
+of the file before trying other file names.  It decompresses and loads
+it if it exists.  It looks for compressed versions by appending each
+of the suffixes in @code{jka-compr-load-suffixes} to the file name.
+The value of this variable must be a list of strings. Its standard
+value is @code{(".gz")}.
 
 If the optional argument @var{nosuffix} is non-@code{nil}, then
 @code{load} does not try the suffixes @samp{.elc} and @samp{.el}.  In
@@ -220,6 +221,8 @@
 
 @node Library Search
 @section Library Search
+@cindex library search
+@cindex find library
 
   When Emacs loads a Lisp library, it searches for the library
 in a list of directories specified by the variable @code{load-path}.
@@ -844,7 +847,7 @@
 
 @node Unloading
 @section Unloading
-@cindex unloading
+@cindex unloading packages
 
 @c Emacs 19 feature
   You can discard the functions and variables loaded by a library to
@@ -956,7 +959,7 @@
 
 The key @var{regexp-or-feature} is either a regular expression or a
 symbol, and the value is a list of forms.  The forms are evaluated when
-the key matches the the absolute true name of the file being
+the key matches the absolute true name of the file being
 @code{load}ed or the symbol being @code{provide}d.
 @end defvar
 
--- a/lispref/locals.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/locals.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -9,6 +9,7 @@
 @c The title "Standard Buffer-Local Variables" is too long for
 @c smallbook. --rjc 30mar92
 @cindex buffer-local variables, general-purpose
+@cindex standard buffer-local variables
 
   The table below lists the general-purpose Emacs variables that
 automatically become buffer-local in each buffer.  Most become
@@ -16,9 +17,9 @@
 buffer.  Many Lisp packages define such variables for their internal
 use, but we don't try to list them all here.
 
-Each minor modes defines a buffer-local variable named
-@samp{@var{modename}-mode}.  @xref{Minor Mode Conventions}.  Minor
-mode variables will not be listed here.
+  Every buffer-specific minor mode defines a buffer-local variable
+named @samp{@var{modename}-mode}.  @xref{Minor Mode Conventions}.
+Minor mode variables will not be listed here.
 
 @table @code
 @item auto-fill-function
--- a/lispref/macros.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/macros.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -140,7 +140,6 @@
 
 
 @defun macroexpand-all form &optional environment
-@cindex macro expansion in entire form
 @code{macroexpand-all} expands macros like @code{macroexpand}, but
 will look for and expand all macros in @var{form}, not just at the
 top-level.  If no macros are expanded, the return value is @code{eq}
@@ -239,7 +238,7 @@
 @table @code
 @item (debug @var{edebug-form-spec})
 Specify how to step through macro calls for Edebug.
-@xref{Instrumenting Macro Calls}, for more details.
+@xref{Instrumenting Macro Calls}.
 
 @item (indent @var{indent-spec})
 Specify how to indent calls to this macro.  @xref{Indenting Macros},
@@ -287,7 +286,7 @@
 @end group
 @end example
 
-@findex , @r{(with Backquote)}
+@findex , @r{(with backquote)}
 The special marker @samp{,} inside of the argument to backquote
 indicates a value that isn't constant.  Backquote evaluates the
 argument of @samp{,} and puts the value in the list structure:
@@ -319,7 +318,7 @@
 @end group
 @end example
 
-@findex ,@@ @r{(with Backquote)}
+@findex ,@@ @r{(with backquote)}
 @cindex splicing (with backquote)
   You can also @dfn{splice} an evaluated value into the resulting list,
 using the special marker @samp{,@@}.  The elements of the spliced list
--- a/lispref/maps.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/maps.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6,6 +6,7 @@
 @setfilename ../info/maps
 @node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top
 @appendix Standard Keymaps
+@cindex standard keymaps
 
 The following symbols are used as the names for various keymaps.
 Some of these exist when Emacs is first started, others are
@@ -76,7 +77,6 @@
 A sparse keymap used by Emacs Lisp mode.
 
 @item esc-map
-@vindex esc-map
 A full keymap for @kbd{ESC} (or @kbd{Meta}) commands.
 
 @item facemenu-menu
--- a/lispref/markers.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/markers.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -176,7 +176,6 @@
 @end defun
 
 @defun point-max-marker
-@cindex end of buffer marker
 This function returns a new marker that points to the end of the
 accessible portion of the buffer.  This will be the end of the buffer
 unless narrowing is in effect.  @xref{Narrowing}.
@@ -550,7 +549,7 @@
 @end defun
 
 @defopt transient-mark-mode
-@cindex Transient Mark mode
+@c  @cindex Transient Mark mode  Redundant
 This variable if non-@code{nil} enables Transient Mark mode, in which
 every buffer-modifying primitive sets @code{deactivate-mark}.  The
 consequence of this is that commands that modify the buffer normally
@@ -629,7 +628,7 @@
 
 @node The Region
 @section The Region
-@cindex region, the
+@cindex region (between point and mark)
 
   The text between point and the mark is known as @dfn{the region}.
 Various functions operate on text delimited by point and the mark, but
--- a/lispref/minibuf.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/minibuf.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -812,6 +812,8 @@
 
 @node Minibuffer Completion
 @subsection Completion and the Minibuffer
+@cindex minibuffer completion
+@cindex reading from minibuffer with completion
 
   This section describes the basic interface for reading from the
 minibuffer with completion.
@@ -1222,6 +1224,8 @@
 
 @node Reading File Names
 @subsection Reading File Names
+@cindex read file names
+@cindex prompt for file name
 
   Here is another high-level completion function, designed for reading a
 file name.  It provides special features including automatic insertion
@@ -1782,6 +1786,7 @@
 
 @node Minibuffer Windows
 @section Minibuffer Windows
+@cindex minibuffer windows
 
   These functions access and select minibuffer windows
 and test whether they are active.
@@ -1872,6 +1877,7 @@
 
 @node Recursive Mini
 @section Recursive Minibuffers
+@cindex recursive minibuffers
 
   These functions and variables deal with recursive minibuffers
 (@pxref{Recursive Editing}):
--- a/lispref/modes.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/modes.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -252,6 +252,8 @@
 
 @node Major Mode Conventions
 @subsection Major Mode Conventions
+@cindex major mode conventions
+@cindex conventions for writing major modes
 
   The code for existing major modes follows various coding conventions,
 including conventions for local keymap and syntax table initialization,
@@ -495,6 +497,7 @@
 
 @node Auto Major Mode
 @subsection How Emacs Chooses a Major Mode
+@cindex major mode, automatic selection
 
   Based on information in the file name or in the file itself, Emacs
 automatically selects a major mode for the new buffer when a file is
@@ -1157,7 +1160,7 @@
 @group
   (setq imenu-case-fold-search t)
   (set-syntax-table lisp-mode-syntax-table)
-  (run-mode-hooks 'lisp-mode-hook))           ; @r{This permits the user to use a}
+  (run-mode-hooks 'lisp-mode-hook))      ; @r{This permits the user to use a}
                                          ;   @r{hook to customize the mode.}
 @end group
 @end smallexample
@@ -1697,7 +1700,6 @@
 the user or by Lisp programs (such as @code{display-time} and major
 modes) via changes to those variables remain effective.
 
-@cindex Shell mode @code{mode-line-format}
   Here is an example of a @code{mode-line-format} that might be
 useful for @code{shell-mode}, since it contains the host name and default
 directory.
@@ -2336,7 +2338,7 @@
 
 @node Font Lock Mode
 @section Font Lock Mode
-@cindex Font Lock Mode
+@cindex Font Lock mode
 
   @dfn{Font Lock mode} is a feature that automatically attaches
 @code{face} properties to certain parts of the buffer based on their
@@ -2855,6 +2857,8 @@
 
 @node Faces for Font Lock
 @subsection Faces for Font Lock
+@cindex faces for font lock
+@cindex font lock faces
 
   You can make Font Lock mode use any face, but several faces are
 defined specifically for Font Lock mode.  Each of these symbols is both
@@ -2927,6 +2931,7 @@
 
 @node Syntactic Font Lock
 @subsection Syntactic Font Lock
+@cindex syntactic font lock
 
 Syntactic fontification uses the syntax table to find comments and
 string constants (@pxref{Syntax Tables}).  It highlights them using
--- a/lispref/nonascii.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/nonascii.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -7,6 +7,7 @@
 @node Non-ASCII Characters, Searching and Matching, Text, Top
 @chapter Non-@acronym{ASCII} Characters
 @cindex multibyte characters
+@cindex characters, multi-byte
 @cindex non-@acronym{ASCII} characters
 
   This chapter covers the special issues relating to non-@acronym{ASCII}
@@ -374,7 +375,7 @@
 @section Characters and Bytes
 @cindex bytes and characters
 
-@cindex introduction sequence
+@cindex introduction sequence (of character)
 @cindex dimension (of character set)
   In multibyte representation, each character occupies one or more
 bytes.  Each character set has an @dfn{introduction sequence}, which is
@@ -407,6 +408,7 @@
 
 @node Splitting Characters
 @section Splitting Characters
+@cindex character as bytes
 
   The functions in this section convert between characters and the byte
 values used to represent them.  For most purposes, there is no need to
@@ -432,6 +434,7 @@
 @end example
 @end defun
 
+@cindex generate characters in charsets
 @defun make-char charset &optional code1 code2
 This function returns the character in character set @var{charset} whose
 position codes are @var{code1} and @var{code2}.  This is roughly the
@@ -655,7 +658,9 @@
 @code{iso-latin-2} and decode the result with the same coding system,
 you'll get Latin-2 characters.
 
-@cindex end of line conversion
+@cindex EOL conversion
+@cindex end-of-line conversion
+@cindex line end conversion
   @dfn{End of line conversion} handles three different conventions used
 on various systems for representing end of line in files.  The Unix
 convention is to use the linefeed character (also called newline).  The
@@ -808,9 +813,6 @@
 Otherwise it signals an error with condition @code{coding-system-error}.
 @end defun
 
-@cindex EOL conversion
-@cindex end-of-line conversion
-@cindex line end conversion
 @defun coding-system-eol-type coding-system
 This function returns the type of end-of-line (a.k.a.@: @dfn{eol})
 conversion used by @var{coding-system}.  If @var{coding-system}
@@ -1190,8 +1192,8 @@
 
 @node Explicit Encoding
 @subsection Explicit Encoding and Decoding
-@cindex encoding text
-@cindex decoding text
+@cindex encoding in coding systems
+@cindex decoding in coding systems
 
   All the operations that transfer text in and out of Emacs have the
 ability to use a coding system to encode or decode the text.
--- a/lispref/numbers.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/numbers.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -222,6 +222,7 @@
 
 @node Predicates on Numbers
 @section Type Predicates for Numbers
+@cindex predicates for numbers
 
   The functions in this section test for numbers, or for a specific
 type of number.  The functions @code{integerp} and @code{floatp} can
@@ -267,7 +268,8 @@
 
 @node Comparison of Numbers
 @section Comparison of Numbers
-@cindex number equality
+@cindex number comparison
+@cindex comparing numbers
 
   To test numbers for numerical equality, you should normally use
 @code{=}, not @code{eq}.  There can be many distinct floating point
@@ -388,6 +390,8 @@
 @node Numeric Conversions
 @section Numeric Conversions
 @cindex rounding in conversions
+@cindex number conversions
+@cindex converting numbers
 
 To convert an integer to floating point, use the function @code{float}.
 
@@ -480,6 +484,7 @@
 
 @node Arithmetic Operations
 @section Arithmetic Operations
+@cindex arithmetic operations
 
   Emacs Lisp provides the traditional four arithmetic operations:
 addition, subtraction, multiplication, and division.  Remainder and modulus
@@ -732,6 +737,8 @@
 
 @node Bitwise Operations
 @section Bitwise Operations on Integers
+@cindex bitwise arithmetic
+@cindex logical arithmetic
 
   In a computer, an integer is represented as a binary number, a
 sequence of @dfn{bits} (digits which are either zero or one).  A bitwise
@@ -913,8 +920,6 @@
 @end defun
 
 @defun logand &rest ints-or-markers
-@cindex logical and
-@cindex bitwise and
 This function returns the ``logical and'' of the arguments: the
 @var{n}th bit is set in the result if, and only if, the @var{n}th bit is
 set in all the arguments.  (``Set'' means that the value of the bit is 1
@@ -966,8 +971,6 @@
 @end defun
 
 @defun logior &rest ints-or-markers
-@cindex logical inclusive or
-@cindex bitwise or
 This function returns the ``inclusive or'' of its arguments: the @var{n}th bit
 is set in the result if, and only if, the @var{n}th bit is set in at least
 one of the arguments.  If there are no arguments, the result is zero,
@@ -993,8 +996,6 @@
 @end defun
 
 @defun logxor &rest ints-or-markers
-@cindex bitwise exclusive or
-@cindex logical exclusive or
 This function returns the ``exclusive or'' of its arguments: the
 @var{n}th bit is set in the result if, and only if, the @var{n}th bit is
 set in an odd number of the arguments.  If there are no arguments, the
@@ -1020,8 +1021,6 @@
 @end defun
 
 @defun lognot integer
-@cindex logical not
-@cindex bitwise not
 This function returns the logical complement of its argument: the @var{n}th
 bit is one in the result if, and only if, the @var{n}th bit is zero in
 @var{integer}, and vice-versa.
@@ -1039,6 +1038,7 @@
 @section Standard Mathematical Functions
 @cindex transcendental functions
 @cindex mathematical functions
+@cindex floating-point functions
 
   These mathematical functions allow integers as well as floating point
 numbers as arguments.
@@ -1066,7 +1066,7 @@
 @math{\pi/2}
 @end tex
 (inclusive) whose sine is @var{arg}; if, however, @var{arg} is out of
-range (outside [-1, 1]), it signals a @code{domain-error} error.
+range (outside [@minus{}1, 1]), it signals a @code{domain-error} error.
 @end defun
 
 @defun acos arg
@@ -1078,7 +1078,7 @@
 @math{\pi}
 @end tex
 (inclusive) whose cosine is @var{arg}; if, however, @var{arg} is out
-of range (outside [-1, 1]), it signals a @code{domain-error} error.
+of range (outside [@minus{}1, 1]), it signals a @code{domain-error} error.
 @end defun
 
 @defun atan y &optional x
@@ -1183,7 +1183,7 @@
 same seed value, so the sequence of values of @code{random} is actually
 the same in each Emacs run!  For example, in one operating system, the
 first call to @code{(random)} after you start Emacs always returns
--1457731, and the second one always returns -7692030.  This
+@minus{}1457731, and the second one always returns @minus{}7692030.  This
 repeatability is helpful for debugging.
 
 If you want random numbers that don't always come out the same, execute
--- a/lispref/objects.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/objects.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -288,7 +288,7 @@
 @cindex @samp{\a}
 @cindex backspace
 @cindex @samp{\b}
-@cindex tab
+@cindex tab (ASCII character)
 @cindex @samp{\t}
 @cindex vertical tab
 @cindex @samp{\v}
@@ -296,11 +296,11 @@
 @cindex @samp{\f}
 @cindex newline
 @cindex @samp{\n}
-@cindex return
+@cindex return (ASCII character)
 @cindex @samp{\r}
-@cindex escape
+@cindex escape (ASCII character)
 @cindex @samp{\e}
-@cindex space
+@cindex space (ASCII character)
 @cindex @samp{\s}
   You can express the characters control-g, backspace, tab, newline,
 vertical tab, formfeed, space, return, del, and escape as @samp{?\a},
@@ -661,7 +661,7 @@
 cells are used as part of lists, the phrase @dfn{list structure} has
 come to refer to any structure made out of cons cells.
 
-@cindex atom
+@cindex atoms
   Because cons cells are so central to Lisp, we also have a word for
 ``an object which is not a cons cell.''  These objects are called
 @dfn{atoms}.
@@ -753,7 +753,7 @@
 @end group
 @end smallexample
 
-@cindex @code{nil} in lists
+@cindex @code{nil} as a list
 @cindex empty list
   A list with no elements in it is the @dfn{empty list}; it is identical
 to the symbol @code{nil}.  In other words, @code{nil} is both a symbol
@@ -1493,7 +1493,7 @@
 
 @node Window Configuration Type
 @subsection Window Configuration Type
-@cindex screen layout
+@cindex window layout in a frame
 
   A @dfn{window configuration} stores information about the positions,
 sizes, and contents of the windows in a frame, so you can recreate the
@@ -1507,6 +1507,7 @@
 @node Frame Configuration Type
 @subsection Frame Configuration Type
 @cindex screen layout
+@cindex window layout, all frames
 
   A @dfn{frame configuration} stores information about the positions,
 sizes, and contents of the windows in all frames.  It is actually
@@ -1998,7 +1999,6 @@
 @end group
 @end example
 
-@cindex equality of strings
 Comparison of strings is case-sensitive, but does not take account of
 text properties---it compares only the characters in the strings.  For
 technical reasons, a unibyte string and a multibyte string are
--- a/lispref/os.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/os.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -54,7 +54,7 @@
 
 @node Startup Summary
 @subsection Summary: Sequence of Actions at Startup
-@cindex initialization
+@cindex initialization of Emacs
 @cindex startup of Emacs
 @cindex @file{startup.el}
 
@@ -622,6 +622,7 @@
 @code{string-match}.
 @end defvar
 
+@cindex system type and name
 @defvar system-type
 The value of this variable is a symbol indicating the type of operating
 system Emacs is operating on.  Here is a table of the possible values:
@@ -885,6 +886,7 @@
 
 @node User Identification
 @section User Identification
+@cindex user identification
 
 @defvar init-file-user
 This variable says which user's init files should be used by
@@ -1308,6 +1310,7 @@
 
 @node Processor Run Time
 @section Processor Run time
+@cindex processor run time
 
 @defun get-internal-run-time
 This function returns the processor run time used by Emacs as a list
@@ -1418,20 +1421,15 @@
 
 @var{time} may specify an absolute or a relative time.
 
-Absolute times may be specified in a wide variety of formats; this
-function tries to accept all the commonly used date formats.  The most
-convenient formats are strings.  Valid such formats include these two,
-
-@example
-@var{year}-@var{month}-@var{day} @var{hour}:@var{min}:@var{sec} @var{timezone}
-
-@var{hour}:@var{min}:@var{sec} @var{timezone} @var{month}/@var{day}/@var{year}
-@end example
-
-@noindent
-where in both examples all fields are numbers; the format that
-@code{current-time-string} returns is also allowed, and many others
-as well.
+Absolute times may be specified using a string with a limited variety
+of formats, and are taken to be times @emph{today}, even if already in
+the past.  The recognized forms are @samp{@var{xxxx}},
+@samp{@var{x}:@var{xx}}, or @samp{@var{xx}:@var{xx}} (military time),
+and @samp{@var{xx}am}, @samp{@var{xx}AM}, @samp{@var{xx}pm},
+@samp{@var{xx}PM}, @samp{@var{xx}:@var{xx}am},
+@samp{@var{xx}:@var{xx}AM}, @samp{@var{xx}:@var{xx}pm}, or
+@samp{@var{xx}:@var{xx}PM}.  A period can be used instead of a colon
+to separate the hour and minute parts.
 
 To specify a relative time as a string, use numbers followed by units.
 For example:
@@ -1449,8 +1447,9 @@
 days, and a year to be exactly 365.25 days.
 
 Not all convenient formats are strings.  If @var{time} is a number
-(integer or floating point), that specifies a relative time measured
-in seconds.
+(integer or floating point), that specifies a relative time measured in
+seconds.  The result of @code{encode-time} can also be used to specify
+an absolute value for @var{time}.
 
 In most cases, @var{repeat} has no effect on when @emph{first} call
 takes place---@var{time} alone specifies that.  There is one exception:
@@ -1695,6 +1694,7 @@
 
 @node Recording Input
 @subsection Recording Input
+@cindex recording input
 
 @defun recent-keys
 This function returns a vector containing the last 300 input events from
@@ -1868,6 +1868,7 @@
 
 @node X11 Keysyms
 @section Operating on X11 Keysyms
+@cindex X11 keysyms
 
 To define system-specific X11 keysyms, set the variable
 @code{system-key-alist}.
@@ -1921,7 +1922,6 @@
 @node Batch Mode
 @section Batch Mode
 @cindex batch mode
-@cindex noninteractive use
 
   The command-line option @samp{-batch} causes Emacs to run
 noninteractively.  In this mode, Emacs does not read commands from the
--- a/lispref/positions.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/positions.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -123,6 +123,7 @@
 
 @node Motion
 @section Motion
+@cindex motion by chars, words, lines, lists
 
   Motion functions change the value of point, either relative to the
 current value of point, relative to the beginning or end of the buffer,
@@ -235,6 +236,7 @@
 
 @node Buffer End Motion
 @subsection Motion to an End of the Buffer
+@cindex move to beginning or end of buffer
 
   To move point to the beginning of the buffer, write:
 
@@ -642,6 +644,7 @@
 @cindex sexp motion
 @cindex Lisp expression motion
 @cindex list motion
+@cindex balanced parenthesis motion
 
   Here are several functions concerned with balanced-parenthesis
 expressions (also called @dfn{sexps} in connection with moving across
@@ -827,7 +830,6 @@
 @defspec save-excursion body@dots{}
 @cindex mark excursion
 @cindex point excursion
-@cindex current buffer excursion
 The @code{save-excursion} special form saves the identity of the current
 buffer and the values of point and the mark in it, evaluates
 @var{body}, and finally restores the buffer and its saved values of
--- a/lispref/processes.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/processes.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -146,6 +146,8 @@
 
 @node Shell Arguments
 @section Shell Arguments
+@cindex arguments for shell commands
+@cindex shell command arguments
 
   Lisp programs sometimes need to run a shell and give it a command
 that contains file names that were specified by the user.  These
@@ -1236,6 +1238,7 @@
 
 @node Decoding Output
 @subsection Decoding Process Output
+@cindex decode process output
 
   When Emacs writes process output directly into a multibyte buffer,
 it decodes the output according to the process output coding system.
@@ -1285,6 +1288,7 @@
 
 @node Accepting Output
 @subsection Accepting Output from Processes
+@cindex accept input from processes
 
   Output from asynchronous subprocesses normally arrives only while
 Emacs is waiting for some sort of external event, such as elapsed time
@@ -1328,7 +1332,7 @@
 @node Sentinels
 @section Sentinels: Detecting Process Status Changes
 @cindex process sentinel
-@cindex sentinel
+@cindex sentinel (of process)
 
   A @dfn{process sentinel} is a function that is called whenever the
 associated process changes status for any reason, including signals
@@ -1624,7 +1628,7 @@
 @item :sentinel
 The associated value is the process sentinel function.
 @item :remote
-In a connection, this is the address in internal format of the remote peer.
+In a connection, the address in internal format of the remote peer.
 @item :local
 The local address, in internal format.
 @item :service
@@ -1643,6 +1647,7 @@
 
 @node Network Servers
 @section Network Servers
+@cindex network servers
 
   You create a server by calling @code{make-network-process} with
 @code{:server t}.  The server will listen for connection requests from
@@ -1722,7 +1727,7 @@
 @section Low-Level Network Access
 
   You can also create network connections by operating at a lower
-level that that of @code{open-network-stream}, using
+level than that of @code{open-network-stream}, using
 @code{make-network-process}.
 
 @menu
@@ -2072,6 +2077,7 @@
 
 @node Byte Packing
 @section Packing and Unpacking Byte Arrays
+@cindex byte packing and unpacking
 
   This section describes how to pack and unpack arrays of bytes,
 usually for binary network protocols.  These functions convert byte arrays
--- a/lispref/searching.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/searching.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -106,7 +106,7 @@
 @end deffn
 
 @deffn Command word-search-forward string &optional limit noerror repeat
-@cindex word search
+@c  @cindex word search   Redundant
 This function searches forward from point for a ``word'' match for
 @var{string}.  If it finds a match, it sets point to the end of the
 match found, and returns the new value of point.
@@ -220,7 +220,7 @@
 regexps; the following section says how to search for them.
 
 @findex re-builder
-@cindex authoring regular expressions
+@cindex regular expressions, developing
   For convenient interactive development of regular expressions, you
 can use the @kbd{M-x re-builder} command.  It provides a convenient
 interface for creating regular expressions, by giving immediate visual
@@ -1186,6 +1186,7 @@
 
 @node Replacing Match
 @subsection Replacing the Text that Matched
+@cindex replace matched text
 
   This function replaces all or part of the text matched by the last
 search.  It works by means of the match data.
@@ -1543,7 +1544,8 @@
 
 @node Search and Replace
 @section Search and Replace
-@cindex replacement
+@cindex replacement after search
+@cindex searching and replacing
 
   If you want to find all matches for a regexp in part of the buffer,
 and replace them, the best way is to write an explicit loop using
--- a/lispref/sequences.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/sequences.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -388,7 +388,7 @@
 
 @node Vectors
 @section Vectors
-@cindex vector
+@cindex vector (type)
 
   Arrays in Lisp, like arrays in most languages, are blocks of memory
 whose elements can be accessed in constant time.  A @dfn{vector} is a
--- a/lispref/streams.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/streams.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -681,6 +681,7 @@
 
 @node Output Variables
 @section Variables Affecting Output
+@cindex output-controlling variables
 
 @defvar standard-output
 The value of this variable is the default output stream---the stream
--- a/lispref/strings.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/strings.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -586,6 +586,7 @@
 @example
 (string-to-char "ABC")
      @result{} 65
+
 (string-to-char "xyz")
      @result{} 120
 (string-to-char "")
@@ -1107,6 +1108,30 @@
 This sets the current buffer's case table to @var{table}.
 @end defun
 
+@defmac with-case-table table body@dots{}
+The @code{with-case-table} macro saves the current case table, makes
+@var{table} the current case table, evaluates the @var{body} forms,
+and finally restores the case table.  The return value is the value of
+the last form in @var{body}.  The case table is restored even in case
+of an abnormal exit via @code{throw} or error (@pxref{Nonlocal
+Exits}).
+@end defmac
+
+  Some language environments may modify the case conversions of
+@acronym{ASCII} characters; for example, in the Turkish language
+environment, the @acronym{ASCII} character @samp{I} is downcased into
+a Turkish ``dotless i''.  This can interfere with code that requires
+ordinary ASCII case conversion, such as implementations of
+@acronym{ASCII}-based network protocols.  In that case, use the
+@code{with-case-table} macro with the variable @var{ascii-case-table},
+which stores the unmodified case table for the @acronym{ASCII}
+character set.
+
+@defvar ascii-case-table
+The case table for the @acronym{ASCII} character set.  This should not be
+modified by any language environment settings.
+@end defvar
+
   The following three functions are convenient subroutines for packages
 that define non-@acronym{ASCII} character sets.  They modify the specified
 case table @var{case-table}; they also modify the standard syntax table.
--- a/lispref/symbols.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/symbols.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -139,7 +139,7 @@
 
 @node Definitions, Creating Symbols, Symbol Components, Symbols
 @section Defining Symbols
-@cindex definition of a symbol
+@cindex definitions of symbols
 
   A @dfn{definition} in Lisp is a special form that announces your
 intention to use a certain symbol in a particular way.  In Emacs Lisp,
@@ -436,6 +436,8 @@
 
 @node Plists and Alists
 @subsection Property Lists and Association Lists
+@cindex plist vs. alist
+@cindex alist vs. plist
 
 @cindex property lists vs association lists
   Association lists (@pxref{Association Lists}) are very similar to
--- a/lispref/syntax.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/syntax.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6,7 +6,7 @@
 @setfilename ../info/syntax
 @node Syntax Tables, Abbrevs, Searching and Matching, Top
 @chapter Syntax Tables
-@cindex parsing
+@cindex parsing buffer text
 @cindex syntax table
 @cindex text parsing
 
@@ -80,7 +80,7 @@
 
 @node Syntax Descriptors
 @section Syntax Descriptors
-@cindex syntax classes
+@cindex syntax class
 
   This section describes the syntax classes and flags that denote the
 syntax of a character, and how they are represented as a @dfn{syntax
@@ -203,7 +203,7 @@
 other characters in the quotation.
 @end deffn
 
-@deffn {Syntax class} @w{escape}
+@deffn {Syntax class} @w{escape-syntax character}
 An @dfn{escape character} (designated by @samp{\}) starts an escape
 sequence such as is used in C string and character constants.  The
 character @samp{\} belongs to this class in both C and Lisp.  (In C, it
@@ -253,7 +253,7 @@
 (@samp{;}) starts a comment and a newline or formfeed ends one.
 @end deffn
 
-@deffn {Syntax class} @w{inherit}
+@deffn {Syntax class} @w{inherit standard syntax}
 This syntax class does not specify a particular syntax.  It says to look
 in the standard syntax table to find the syntax of this character.  The
 designator for this syntax class is @samp{@@}.
--- a/lispref/text.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/text.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -64,6 +64,7 @@
 
 @node Near Point
 @section Examining Text Near Point
+@cindex text near point
 
   Many functions are provided to look at the characters around point.
 Several simple functions are described here.  See also @code{looking-at}
@@ -537,8 +538,9 @@
 
 @node Deletion
 @section Deleting Text
-
-@cindex deletion vs killing
+@cindex text deletion
+
+@cindex deleting text vs killing
   Deletion means removing part of the text in a buffer, without saving
 it in the kill ring (@pxref{The Kill Ring}).  Deleted text can't be
 yanked, but can be reinserted using the undo mechanism (@pxref{Undo}).
@@ -594,7 +596,7 @@
 @end deffn
 
 @deffn Command delete-backward-char count &optional killp
-@cindex delete previous char
+@cindex deleting previous char
 This command deletes @var{count} characters directly before point, or
 after point if @var{count} is negative.  If @var{killp} is
 non-@code{nil}, then it saves the deleted characters in the kill ring.
@@ -1348,7 +1350,7 @@
 @end deffn
 
 @deffn Command buffer-disable-undo &optional buffer-or-name
-@cindex disable undo
+@cindex disabling undo
 This function discards the undo list of @var{buffer-or-name}, and disables
 further recording of undo information.  As a result, it is no longer
 possible to undo either previous changes or any subsequent changes.  If
@@ -1400,7 +1402,7 @@
 @node Filling
 @comment  node-name,  next,  previous,  up
 @section Filling
-@cindex filling, explicit
+@cindex filling text
 
   @dfn{Filling} means adjusting the lengths of lines (by moving the line
 breaks) so that they are nearly (but no greater than) a specified
@@ -1431,7 +1433,6 @@
 argument implies the value @code{full} for @var{justify}.
 
 @deffn Command fill-paragraph justify
-@cindex filling a paragraph
 This command fills the paragraph at or after point.  If
 @var{justify} is non-@code{nil}, each line is justified as well.
 It uses the ordinary paragraph motion commands to find paragraph
@@ -1678,7 +1679,7 @@
 
 @node Adaptive Fill
 @section Adaptive Fill Mode
-@cindex Adaptive Fill mode
+@c @cindex Adaptive Fill mode  "adaptive-fill-mode" is adjacent.
 
   When @dfn{Adaptive Fill Mode} is enabled, Emacs determines the fill
 prefix automatically from the text in each paragraph being filled
@@ -1740,11 +1741,8 @@
 starting after the left margin whitespace (if any) on a line; the
 characters it matches are that line's candidate for the fill prefix.
 
-@w{@code{"[ \t]*\\([-!|#%;>*·•‣⁃◦]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"}} is the
-default value.  This matches a number enclosed in parentheses or
-followed by a period, or certain punctuation characters, or any
-sequence of these intermingled with whitespace.  In particular, it
-matches a sequence of whitespace, possibly empty.
+The default value matches whitespace with certain punctuation
+characters intermingled.
 @end defopt
 
 @defopt adaptive-fill-first-line-regexp
@@ -2563,8 +2561,9 @@
 list is to specify a name and ask what value corresponds to it.
 
   If a character has a @code{category} property, we call it the
-@dfn{category} of the character.  It should be a symbol.  The properties
-of the symbol serve as defaults for the properties of the character.
+@dfn{property category} of the character.  It should be a symbol.  The
+properties of the symbol serve as defaults for the properties of the
+character.
 
   Copying text between strings and buffers preserves the properties
 along with the characters; this includes such diverse functions as
@@ -2611,7 +2610,7 @@
 current buffer.
 
 If there is no @var{prop} property strictly speaking, but the character
-has a category that is a symbol, then @code{get-text-property} returns
+has a property category that is a symbol, then @code{get-text-property} returns
 the @var{prop} property of that symbol.
 @end defun
 
@@ -2958,12 +2957,13 @@
 have no standard meaning, and you can use them as you like.
 
 @table @code
-@cindex category of text character
+@cindex property category of text character
 @kindex category @r{(text property)}
 @item category
 If a character has a @code{category} property, we call it the
-@dfn{category} of the character.  It should be a symbol.  The properties
-of the symbol serve as defaults for the properties of the character.
+@dfn{property category} of the character.  It should be a symbol.  The
+properties of this symbol serve as defaults for the properties of the
+character.
 
 @item face
 @cindex face codes of text
@@ -3044,7 +3044,6 @@
 @end table
 
 @item display
-@kindex display @r{(text property)}
 This property activates various features that change the
 way text is displayed.  For example, it can make text appear taller
 or shorter, higher or lower, wider or narrow, or replaced with an image.
--- a/lispref/tips.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/tips.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6,7 +6,7 @@
 @setfilename ../info/tips
 @node Tips, GNU Emacs Internals, GPL, Top
 @appendix Tips and Conventions
-@cindex tips
+@cindex tips for writing Lisp
 @cindex standards of coding style
 @cindex coding standards
 
@@ -148,7 +148,7 @@
 follow the naming conventions for hooks.  @xref{Hooks}.
 
 @item
-@cindex unloading packages
+@cindex unloading packages, preparing for
 If loading the file adds functions to hooks, define a function
 @code{@var{feature}-unload-hook}, where @var{feature} is the name of
 the feature the package provides, and make it undo any such changes.
@@ -295,6 +295,7 @@
 
 @node Key Binding Conventions
 @section Key Binding Conventions
+@cindex key binding, conventions for
 
 @itemize @bullet
 @item
@@ -374,6 +375,7 @@
 
 @node Programming Tips
 @section Emacs Programming Tips
+@cindex programming conventions
 
   Following these conventions will make your program fit better
 into Emacs when it runs.
@@ -559,6 +561,7 @@
 
 @node Warning Tips
 @section Tips for Avoiding Compiler Warnings
+@cindex byte compiler warnings, how to avoid
 
 @itemize @bullet
 @item
@@ -599,6 +602,7 @@
 
 @node Documentation Tips
 @section Tips for Documentation Strings
+@cindex documentation strings, conventions and tips
 
 @findex checkdoc-minor-mode
   Here are some tips and conventions for the writing of documentation
@@ -863,6 +867,7 @@
 
 @node Comment Tips
 @section Tips on Writing Comments
+@cindex comments, Lisp convention for
 
   We recommend these conventions for where to put comments and how to
 indent them:
--- a/lispref/variables.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/variables.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -100,10 +100,12 @@
 
 @node Constant Variables
 @section Variables that Never Change
-@vindex nil
-@vindex t
 @kindex setting-constant
 @cindex keyword symbol
+@cindex variable with constant value
+@cindex constant variables
+@cindex symbol that evaluates to itself
+@cindex symbol with constant value
 
   In Emacs Lisp, certain symbols normally evaluate to themselves.  These
 include @code{nil} and @code{t}, as well as any symbol whose name starts
@@ -1079,7 +1081,7 @@
 
 @node Buffer-Local Variables
 @section Buffer-Local Variables
-@cindex variables, buffer-local
+@cindex variable, buffer-local
 @cindex buffer-local variables
 
   Global and local variable bindings are found in most programming
@@ -1520,6 +1522,7 @@
 
 @node Frame-Local Variables
 @section Frame-Local Variables
+@cindex frame-local variables
 
   Just as variables can have buffer-local bindings, they can also have
 frame-local bindings.  These bindings belong to one frame, and are in
@@ -1719,7 +1722,7 @@
 the value @var{val}, based on the above criteria.
 @end defun
 
-@cindex risky local variable
+@c @cindex risky local variable   Duplicates risky-local-variable
   Some variables are considered @dfn{risky}.  A variable whose name
 ends in any of @samp{-command}, @samp{-frame-alist}, @samp{-function},
 @samp{-functions}, @samp{-hook}, @samp{-hooks}, @samp{-form},
@@ -1778,6 +1781,7 @@
 
 @node Variable Aliases
 @section Variable Aliases
+@cindex variable aliases
 
   It is sometimes useful to make two variables synonyms, so that both
 variables always have the same value, and changing either one also
--- a/lispref/windows.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/lispref/windows.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -430,7 +430,7 @@
 
 @node Selecting Windows
 @section Selecting Windows
-@cindex selecting windows
+@cindex selecting a window
 
   When a window is selected, the buffer in the window becomes the current
 buffer, and the cursor will appear in it.
@@ -572,7 +572,7 @@
 the order is left to right, or top to bottom.
 
 @defun next-window &optional window minibuf all-frames
-@cindex minibuffer window
+@cindex minibuffer window, and @code{next-window}
 This function returns the window following @var{window} in the cyclic
 ordering of windows.  This is the window that @kbd{C-x o} would select
 if typed when @var{window} is selected.  If @var{window} is the only
@@ -1195,6 +1195,7 @@
 @noindent
 @xref{Positions}, for more details on buffer positions.
 
+@cindex cursor
   As far as the user is concerned, point is where the cursor is, and
 when the user switches to another buffer, the cursor jumps to the
 position of point in that buffer.
@@ -1223,6 +1224,7 @@
 
 @node Window Start
 @section The Window Start Position
+@cindex window start position
 
   Each window contains a marker used to keep track of a buffer position
 that specifies where in the buffer display should start.  This position
@@ -1621,7 +1623,7 @@
 
 @node Vertical Scrolling
 @section Vertical Fractional Scrolling
-@cindex Vertical Fractional Scrolling
+@cindex vertical fractional scrolling
 
   @dfn{Vertical fractional scrolling} means shifting the image in the
 window up or down by a specified multiple or fraction of a line.
@@ -1985,6 +1987,7 @@
 @node Resizing Windows
 @section Changing the Size of a Window
 @cindex window resizing
+@cindex resize window
 @cindex changing window size
 @cindex window size, changing
 
@@ -2355,6 +2358,7 @@
 
 @node Window Hooks
 @section Hooks for Window Scrolling and Changes
+@cindex hooks for window operations
 
 This section describes how a Lisp program can take action whenever a
 window displays a different part of its buffer or a different buffer.
--- a/mac/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/mac/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,7 @@
+2007-04-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* make-package (compver): Don't hardcode processor type.
+
 2007-03-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* makefile.MPW (dired.c.x, editfns.c.x, fileio.c.x, lread.c.x)
--- a/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings	Fri Mar 30 02:06:58 2007 +0000
+++ b/mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings	Wed Apr 11 00:17:47 2007 +0000
@@ -1,5 +1,5 @@
 /* Localized versions of Info.plist keys */
 
 CFBundleName = "Emacs";
-CFBundleShortVersionString = "22.0.96";
-CFBundleGetInfoString = "22.0.96, Copyright (C) 2007 Free Software Foundation, Inc.";
+CFBundleShortVersionString = "22.0.97";
+CFBundleGetInfoString = "22.0.97, Copyright (C) 2007 Free Software Foundation, Inc.";
--- a/mac/make-package	Fri Mar 30 02:06:58 2007 +0000
+++ b/mac/make-package	Wed Apr 11 00:17:47 2007 +0000
@@ -325,7 +325,7 @@
   fi
 fi
 
-compver=powerpc-apple-darwin`uname -r`
+compver=`uname -p`-apple-darwin`uname -r`
  
 if test "$self_contained" = "yes"; then
     # Move shared files down to Resources directory
--- a/mac/src/Emacs.r	Fri Mar 30 02:06:58 2007 +0000
+++ b/mac/src/Emacs.r	Wed Apr 11 00:17:47 2007 +0000
@@ -221,10 +221,10 @@
 	0x22,		/* Major revision in BCD */
 	0x0,		/* Minor revision in BCD */
 	alpha,	/* development, alpha, beta, or final (release) */
-	96,		/* Non-final release # */
+	97,		/* Non-final release # */
 	0,		/* Region code */
-	"22.0.96",	/* Short version number */
-	"22.0.96, Copyright \0xa9 2007 "
+	"22.0.97",	/* Short version number */
+	"22.0.97, Copyright \0xa9 2007 "
 	"Free Software Foundation, Inc." /* Long version number */
 };
 
--- a/man/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,98 @@
+2007-04-09  Romain Francoise  <romain@orebokech.com>
+
+	* faq.texi (New in Emacs 22): Mention improvements to the Windows and
+	Mac OS ports.  Make it clear that mouse-1 complements and doesn't
+	replace mouse-2.
+
+2007-04-09  Alan Mackenzie  <acm@muc.de>
+
+	* cmdargs.texi (Initial Options): Call "inhibit-splash-screen" by its
+	new name.  Insert concept index entries.
+
+2007-04-08  Richard Stallman  <rms@gnu.org>
+
+	* url.texi: Fix some indexing.
+	(Disk Caching): Drop discussion of old/other Emacs versions.
+
+2007-04-08  Chong Yidong  <cyd@stupidchicken.com>
+
+	* display.texi (Standard Faces): Document prefix arg for
+	list-faces-display.
+
+	* rmail.texi (Rmail Scrolling): Document rmail-end-of-message.
+
+	* woman.texi (Word at point, Interface Options): woman-topic-at-point
+	renamed to woman-use-topic-at-point.  Document new behavior.
+
+2007-04-07  Chong Yidong  <cyd@stupidchicken.com>
+
+	* url.texi (Disk Caching): Say Emacs 21 "and later".
+
+	* cc-mode.texi (Font Locking Preliminaries): Link to Emacs manual node
+	on Font locking which now mentions JIT lock.
+
+	* killing.texi (Deletion): Rewrite description of M-\ prefix argument.
+
+	* files.texi (Misc File Ops): Rewrite description of
+	insert-file-literally.
+
+2007-04-01  Michael Olson  <mwolson@gnu.org>
+
+	* erc.texi: Update for the ERC 5.2 release.
+
+2007-03-31  David Kastrup  <dak@gnu.org>
+
+	* woman.texi (Topic, Interface Options): Explain changes semantics of
+	woman-manpath in order to consider MANPATH_MAP entries.
+
+2007-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* misc.texi (Printing): Postscript -> PostScript.
+
+	* emacs-mime.texi (Non-MIME): Postscript -> PostScript.
+
+	* ack.texi (Acknowledgments): Postscript -> PostScript.
+
+	* custom.texi (Init File, Init Non-ASCII): Fix last change.
+
+	* emacs.texi (Top): Fix the menu due to the change in custom.texi
+	below.
+
+2007-03-30  Chong Yidong  <cyd@stupidchicken.com>
+
+	* custom.texi (Non-ASCII Rebinding): Node deleted.  Material moved to
+	Init Non-ASCII.
+	(Init Rebinding, Init Syntax): Link to Init Non-ASCII instead.
+	(Init Non-ASCII): New node.
+
+2007-03-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macos.texi (Mac Font Specs): Mention AppleAntiAliasingThreshold.
+
+2007-03-26  Richard Stallman  <rms@gnu.org>
+
+	* pgg.texi (Caching passphrase): Clean up previous change.
+
+2007-03-25  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* gnus.texi (Setting Process Marks): Fix typo.
+
+2007-03-25  Romain Francoise  <romain@orebokech.com>
+
+	* faq.texi (New in Emacs 22): Reorganize using an itemized list for
+	readability, and include various fixes by Daniel Brockman, Nick Roberts
+	and Dieter Wilhelm.
+
+2007-03-24  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* gnus.texi (Splitting Mail): Reword "splitting"-as-adj to be -as-noun.
+
+	* gnus.texi (Mail Source Specifiers): Fix typo.
+
+2007-03-22  Ralf Angeli  <angeli@caeruleus.net>
+
+	* reftex.texi (Imprint): Update maintainer information.
+
 2007-03-15  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* message.texi (Message Buffers): Update documentation for
--- a/man/ack.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/ack.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -1310,7 +1310,7 @@
 
 @item
 Jim Thompson wrote @file{ps-print.el}, which converts
-Emacs text to Postscript.
+Emacs text to PostScript.
 
 @item
 Tom Tromey and Chris Lindblad wrote @file{tcl.el}, a major mode for
--- a/man/cc-mode.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/cc-mode.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -1880,11 +1880,7 @@
 support mode like Lazy Lock or Just-in-time Lock mode that only
 fontifies the parts that are actually shown.  Fontifying the whole
 buffer at once can easily get bothersomely slow even on contemporary
-hardware.
-@c ACM, 2005/8/28:  There should be a page in the (X)Emacs manual
-@c describing these support modes.  There wasn't in the
-@c fourteenth edition of the Emacs manual (released with Emacs 21.3).
-@c There might be one in the Emacs CVS for 22.1.
+hardware. @xref{Font Lock,,,@emacsman{}, @emacsmantitle{}}.
 @end enumerate
 
 @cindex user defined types
--- a/man/cmdargs.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/cmdargs.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -279,9 +279,14 @@
 
 @item --no-splash
 @opindex --no-splash
-@vindex inhibit-startup-message
-Do not display a splash screen on startup; this is equivalent to
-setting the variable @code{inhibit-startup-message} to non-@code{nil}.
+@vindex inhibit-splash-screen
+@cindex splash screen
+@cindex startup message
+Do not display a splash screen on startup.  You can also achieve this
+effect by setting the variable @code{inhibit-splash-screen} to
+non-@code{nil} in you personal init file (but @emph{not} in
+@file{site-start.el}).  (This variable was called
+@code{inhibit-startup-message} in previous Emacs versions.)
 
 @item --no-desktop
 @opindex --no-desktop
--- a/man/custom.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/custom.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -1276,7 +1276,6 @@
 * Init Rebinding::      Rebinding keys with your init file, @file{.emacs}.
 * Function Keys::       Rebinding terminal function keys.
 * Named ASCII Chars::   Distinguishing @key{TAB} from @kbd{C-i}, and so on.
-* Non-ASCII Rebinding:: Rebinding non-@acronym{ASCII} characters such as Latin-1.
 * Mouse Buttons::       Rebinding mouse buttons in Emacs.
 * Disabling::           Disabling a command means confirmation is required
                           before it can be executed.  This is done to protect
@@ -1676,7 +1675,7 @@
 that delimit the vector.
 
   Language and coding systems can cause problems with key bindings
-for non-@acronym{ASCII} characters.  @xref{Non-ASCII Rebinding}.
+for non-@acronym{ASCII} characters.  @xref{Init Non-ASCII}.
 
 @node Function Keys
 @subsection Rebinding Function Keys
@@ -1817,36 +1816,6 @@
 between @key{TAB} and @kbd{C-i} (and likewise for other such pairs),
 because the terminal sends the same character in both cases.
 
-@node Non-ASCII Rebinding
-@subsection Non-@acronym{ASCII} Characters on the Keyboard
-@cindex rebinding non-@acronym{ASCII} keys
-@cindex non-@acronym{ASCII} keys, binding
-
-  If your keyboard has keys that send non-@acronym{ASCII}
-characters, such as accented letters, rebinding these keys
-must be done by using a vector like this@footnote{You must
-avoid the string syntax for binding
-non-@acronym{ASCII} characters, since they will be
-interpreted as meta keys.  @xref{Strings of Events,,,elisp,
-The Emacs Lisp Reference Manual}.}:
-
-@example
-(global-set-key [?@var{char}] 'some-function)
-@end example
-
-@noindent
-Type @kbd{C-q} followed by the key you want to bind, to insert @var{char}.
-
-  Since this puts a non-@acronym{ASCII} character in the @file{.emacs},
-you should specify a coding system for that file that supports the
-character in question.  @xref{Init Non-ASCII}.
-
-  @strong{Warning:} if you change the keyboard encoding, or change
-between multibyte and unibyte mode, or anything that would alter which
-code @kbd{C-q} would insert for that character, you'll need to edit
-the Lisp expression accordingly, to use the character code generated
-by @kbd{C-q} in the new mode.
-
 @node Mouse Buttons
 @subsection Rebinding Mouse Buttons
 @cindex mouse button events
@@ -2126,6 +2095,7 @@
 * Init Examples::       How to do some things with an init file.
 * Terminal Init::       Each terminal type can have an init file.
 * Find Init::	        How Emacs finds the init file.
+* Init Non-ASCII::      Using non-@acronym{ASCII} characters in an init file.
 @end menu
 
 @node Init Syntax
@@ -2176,17 +2146,8 @@
 a Meta character, as in @samp{\M-a} for @kbd{Meta-A} or @samp{\M-\C-a} for
 @kbd{Control-Meta-A}.@refill
 
-@cindex international characters in @file{.emacs}
-@cindex non-@acronym{ASCII} characters in @file{.emacs}
-@anchor{Init Non-ASCII}If you want to include non-@acronym{ASCII}
-characters in strings in your init
-file, you should consider putting a @w{@samp{-*-coding:
-@var{coding-system}-*-}} tag on the first line which states the coding
-system used to save your @file{.emacs}, as explained in @ref{Recognize
-Coding}.  This is because the defaults for decoding non-@acronym{ASCII} text might
-not yet be set up by the time Emacs reads those parts of your init file
-which use such strings, possibly leading Emacs to decode those strings
-incorrectly.
+@xref{Init Non-ASCII}, for information about including
+non-@acronym{ASCII} in your init file.
 
 @item Characters:
 Lisp character constant syntax consists of a @samp{?} followed by
@@ -2195,7 +2156,7 @@
 strings and characters are not interchangeable in Lisp; some contexts
 require one and some contexts require the other.
 
-@xref{Non-ASCII Rebinding}, for information about binding commands to
+@xref{Init Non-ASCII}, for information about binding commands to
 keys which send non-@acronym{ASCII} characters.
 
 @item True:
@@ -2504,6 +2465,48 @@
 name in the system's data base of users.
 @c  LocalWords:  backtab
 
+@node Init Non-ASCII
+@subsection Non-@acronym{ASCII} Characters in Init Files
+@cindex international characters in @file{.emacs}
+@cindex non-@acronym{ASCII} characters in @file{.emacs}
+@cindex non-@acronym{ASCII} keys, binding
+@cindex rebinding non-@acronym{ASCII} keys
+
+  Language and coding systems may cause problems if your init file
+contains non-@acronym{ASCII} characters, such as accented letters, in
+strings or key bindings.
+
+  If you want to use non-@acronym{ASCII} characters in your init file,
+you should put a @w{@samp{-*-coding: @var{coding-system}-*-}} tag on
+the first line of the init file, and specify a coding system that
+supports the character(s) in question.  @xref{Recognize Coding}.  This
+is because the defaults for decoding non-@acronym{ASCII} text might
+not yet be set up by the time Emacs reads those parts of your init
+file which use such strings, possibly leading Emacs to decode those
+strings incorrectly.  You should then avoid adding Emacs Lisp code
+that modifies the coding system in other ways, such as calls to
+@code{set-language-environment}.
+
+  To bind non-@acronym{ASCII} keys, you must use a vector (@pxref{Init
+Rebinding}).  The string syntax cannot be used, since the
+non-@acronym{ASCII} characters will be interpreted as meta keys.  For
+instance:
+
+@example
+(global-set-key [?@var{char}] 'some-function)
+@end example
+
+@noindent
+Type @kbd{C-q}, followed by the key you want to bind, to insert @var{char}.
+
+  @strong{Warning:} if you change the keyboard encoding, or change
+between multibyte and unibyte mode, or anything that would alter which
+code @kbd{C-q} would insert for that character, this keybinding may
+stop working.  It is therefore advisable to use one and only one
+coding system, for your init file as well as the files you edit.  For
+example, don't mix the @samp{latin-1} and @samp{latin-9} coding
+systems.
+
 @ignore
    arch-tag: c68abddb-4410-4fb5-925f-63394e971d93
 @end ignore
--- a/man/display.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/display.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -349,7 +349,9 @@
   To see what faces are currently defined, and what they look like,
 type @kbd{M-x list-faces-display}.  It's possible for a given face to
 look different in different frames; this command shows the appearance
-in the frame in which you type it.
+in the frame in which you type it.  With a prefix argument, this
+prompts for a regular expression, and displays only faces with names
+matching that regular expression.
 
   Here are the standard faces for specifying text appearance.  You can
 apply them to specific text when you want the effects they produce.
--- a/man/emacs-mime.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/emacs-mime.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -125,7 +125,7 @@
 @table @code
 @item postscript
 @findex postscript
-Postscript file.
+PostScript file.
 
 @item uu
 @findex uu
--- a/man/emacs.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/emacs.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -5,7 +5,7 @@
 
 @c The edition number appears in several places in this file
 @set EDITION   Sixteenth
-@set EMACSVER  22.0.96
+@set EMACSVER  22.0.97
 
 @copying
 This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},
@@ -908,7 +908,6 @@
 * Init Rebinding::      Rebinding keys with your init file, @file{.emacs}.
 * Function Keys::       Rebinding terminal function keys.
 * Named ASCII Chars::   Distinguishing @key{TAB} from @kbd{C-i}, and so on.
-* Non-ASCII Rebinding:: Rebinding non-@acronym{ASCII} characters such as Latin-1.
 * Mouse Buttons::       Rebinding mouse buttons in Emacs.
 * Disabling::           Disabling a command means confirmation is required
                           before it can be executed.  This is done to protect
@@ -920,6 +919,7 @@
 * Init Examples::       How to do some things with an init file.
 * Terminal Init::       Each terminal type can have an init file.
 * Find Init::	        How Emacs finds the init file.
+* Init Non-ASCII::      Using non-@acronym{ASCII} characters in an init file.
 
 Dealing with Emacs Trouble
 
--- a/man/erc.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/erc.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -12,7 +12,7 @@
 @syncodeindex fn cp
 
 @copying
-This manual is for ERC version 5.2 stable pre-release.
+This manual is for ERC version 5.2.
 
 Copyright @copyright{} 2005, 2006, 2007 Free Software Foundation, Inc.
 
@@ -21,6 +21,9 @@
 under the terms of the GNU Free Documentation License, Version 1.2 or
 any later version published by the Free Software Foundation; with no
 Invariant Sections, Front-Cover texts, or Back-Cover Texts.
+
+All Emacs Lisp code contained in this document may be used, distributed,
+and modified without restriction.
 @end quotation
 @end copying
 
@@ -68,12 +71,16 @@
 * Releases::                    Released versions of ERC.
 * Development::                 Latest unreleased development changes.
 
+Getting Started
+
+* Sample Session::              Example of connecting to the #emacs channel
+* Special Features::            Differences from standalone IRC clients
+
 Advanced Usage
 
 * Connecting::                  Ways of connecting to an IRC server.
+* Sample Configuration::        An example configuration file.
 * Options::                     Options that are available for ERC.
-* Tips and Tricks::             Ways of enhancing your ERC experience.
-* Sample Configuration::        An example configuration file.
 
 @end detailmenu
 @end menu
@@ -111,8 +118,17 @@
 * Development::                 Latest unreleased development changes.
 @end menu
 
-These sections may be skipped if you are using the version of ERC that
-comes with Emacs.
+Note that some ERC files are not included with Emacs due to copyright or
+dependency issues.  If desired, they may be found at the following
+locations, or from your local GNU mirror.
+
+@itemize @bullet
+@item @uref{http://ftp.gnu.org/gnu/erc/erc-5.2-extras.tar.gz}
+@item @uref{http://ftp.gnu.org/gnu/erc/erc-5.2-extras.zip}
+@end itemize
+
+The rest of this chapter may be skipped if you are using the version of
+ERC that comes with Emacs.
 
 @node Releases, Development, Obtaining ERC, Obtaining ERC
 @comment  node-name,  next,  previous,  up
@@ -131,7 +147,7 @@
 
 @cindex releases, from source
 Alternatively, you can download the latest release from
-@uref{http://ftp.gnu.org/gnu/erc}.
+@uref{http://ftp.gnu.org/gnu/erc}, or your local GNU mirror.
 
 @node Development,  , Releases, Obtaining ERC
 @comment  node-name,  next,  previous,  up
@@ -188,9 +204,9 @@
 
 @end enumerate
 
-If you are new to Arch and want to learn more about developing with it,
-you might find this tutorial helpful:
-@uref{http://www.mwolson.org/projects/ArchTutorial.html}.
+If you are new to Arch and want to learn more about developing ERC with
+it, visit @uref{http://emacswiki.org/cgi-bin/wiki/ErcDevelopment} for
+full instructions.
 
 @subheading Development snapshots
 
@@ -261,8 +277,6 @@
 @chapter Getting Started
 @cindex settings
 
-@c PRE5_2: Mention .ercrc.el
-
 To use ERC, add the directory containing its files to your
 @code{load-path} variable, in your @file{.emacs} file.  Then, load ERC
 itself.  An example follows.
@@ -274,20 +288,151 @@
 Once ERC is loaded, the command @kbd{M-x erc} will start ERC and
 prompt for the server to connect to.
 
+If you want to place ERC settings in their own file, you can place them
+in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
+
+If you would rather use the Customize interface to change how ERC works,
+do @kbd{M-x customize-group RET erc RET}.  In particular, ERC comes with
+lots of modules that may be enabled or disabled; to select which ones
+you want, do @kbd{M-x customize-variable RET erc-modules RET}.
+
+@menu
+* Sample Session::              Example of connecting to the #emacs channel
+* Special Features::            Differences from standalone IRC clients
+@end menu
+
+@node Sample Session, Special Features, Getting Started, Getting Started
+@comment  node-name,  next,  previous,  up
+@section Sample Session
+
+This is an example ERC session which shows how to connect to the #emacs
+channel on Freenode.  Another IRC channel on Freenode that may be of
+interest is #erc, which is a channel where ERC users and developers hang
+out.
+
+@itemize @bullet
+
+@item Connect to Freenode
+
+Run @kbd{M-x erc}.  Use ``irc.freenode.net'' as the IRC server, ``6667''
+as the port, and choose a nickname.
+
+@item Get used to the interface
+
+Switch to the ``irc.freenode.net:6667'' buffer, if you're not already
+there.  You will see first some messages about checking for ident, and
+then a bunch of other messages that describe the current IRC server.
+
+@item Join the #emacs channel
+
+In that buffer, type ``/join SPC #emacs'' and hit @kbd{RET}.  Depending
+on how you've set up ERC, either a new buffer for ``#emacs'' will be
+displayed, or a new buffer called ``#emacs'' will be created in the
+background.  If the latter, switch to the ``#emacs'' buffer.  You will
+see the channel topic and a list of the people who are currently on the
+channel.
+
+@item Register your nickname with Freenode
+
+If you would like to be able to talk with people privately on the
+Freenode network, you will have to ``register'' your nickname.  To do
+so, switch to the ``irc.freenode.net:6667'' buffer and type ``/msg
+NickServ register <password>'', replacing ``<password>'' with your
+desired password.  It should tell you that the operation was successful.
+
+@item Talk to people in the channel
+
+If you switch back to the ``#emacs'' buffer, you can type a message, and
+everyone on the channel will see it.
+
+@item Open a query buffer to talk to someone
+
+If you want to talk with someone in private (this should usually not be
+done for technical help, only for personal questions), type ``/query
+<nick>'', replacing ``<nick>'' with the nickname of the person you would
+like to talk to.  Depending on how ERC is set up, you will either see a
+new buffer with the name of the person, or such a buffer will be created
+in the background and you will have to switch to it.  Begin typing
+messages, and you will be able to have a conversation.
+
+Note that if the other person is not registered, you will not be able to
+talk with them.
+
+@end itemize
+
+@node Special Features, , Sample Session, Getting Started
+@comment  node-name,  next,  previous,  up
+@section Special Features
+
+ERC has some features that distinguish it from some IRC clients.
+
+@itemize @bullet
+
+@item multiple channels and multiple servers
+
+Every channel is put in a separate buffer.  Several IRC servers may be
+connected to at the same time.
+
+@cindex query buffers
+@item private message separation
+
+Private conversations are treated as channels, and are put into separate
+buffers in Emacs.  We call these ``query buffers''.
+
+@item highlighting
+
+Some occurences of words can be highlighted, which makes it easier to
+track different kinds of conversations.
+
+@item notification
+
+ERC can notify you that certain users are online.
+
+@item channel tracking
+
+Channels can be hidden and conversation continue in the background.  You
+are notified when something is said in such a channel that is not
+currently visible.  This makes it easy to get Real Work done while still
+maintaining an IRC presence.
+
+@item nick completion
+
+ERC can complete words upon hitting @kbd{TAB}, which eases the writing
+of nicknames in messages.
+
+@cindex history ring
+@item history
+
+Past actions are kept in history rings for future use.  To navigate a
+history ring, hit @kbd{M-p} to go backwards and @kbd{M-n} to go
+forwards.
+
+@item multiple languages
+
+Different channels and servers may have different language encodings.
+
+In addition, it is possible to translate the messages that ERC uses into
+multiple languages.  Please contact the developers of ERC at
+@email{erc-discuss@@gnu.org} if you are interested in helping with the
+translation effort.
+
+@item user scripting
+
+Users can load scripts (e.g. auto greeting scripts) when ERC starts up.
+
+It is also possible to make custom IRC commands, if you know a little
+Emacs Lisp.  Just make an Emacs Lisp function and call it
+@code{erc-cmd-NEWCOMMAND}, where @code{NEWCOMMAND} is the name of the
+new command in capital letters.
+
+@item auto reconnect
+
 If the connection goes away at some point, ERC will try to reconnect
 automatically.  If it fails to reconnect, and you want to try to
 manually reestablish the connection at some later point, switch to an
-ERC buffer and run the /RECONNECT command.
+ERC  buffer and run the @code{/RECONNECT} command.
 
-@c PRE5_2: Sample session, including:
-@c - connect to Freenode
-@c - /join #emacs
-@c - see messages flying past, point out topic lines, messages, channel
-@c   members
-@c - identifying your nick with NickServ (most IRC servers have this)
-@c - talking to the channel
-@c - open a /query buffer to talk to someone (must identify first in
-@c   FreeNode)
+@end itemize
 
 
 @node Keystroke Summary, Modules, Getting Started, Top
@@ -439,6 +584,10 @@
 @item match
 Highlight pals, fools, and other keywords
 
+@cindex modules, menu
+@item menu
+Display a menu in ERC buffers
+
 @cindex modules, netsplit
 @item netsplit
 Detect netsplits
@@ -505,7 +654,7 @@
 
 @end table
 
-@c PRE5_2: Document every option of every module in its own subnode
+@c PRE5_3: Document every option of every module in its own subnode
 
 
 @node Advanced Usage, Getting Help and Reporting Bugs, Modules, Top
@@ -515,12 +664,11 @@
 
 @menu
 * Connecting::                  Ways of connecting to an IRC server.
+* Sample Configuration::        An example configuration file.
 * Options::                     Options that are available for ERC.
-* Tips and Tricks::             Ways of enhancing your ERC experience.
-* Sample Configuration::        An example configuration file.
 @end menu
 
-@node Connecting, Options, Advanced Usage, Advanced Usage
+@node Connecting, Sample Configuration, Advanced Usage, Advanced Usage
 @comment  node-name,  next,  previous,  up
 @section Connecting to an IRC Server
 @cindex connecting
@@ -654,33 +802,97 @@
 This can be either a string or a function to call.
 @end defopt
 
-@node Options, Tips and Tricks, Connecting, Advanced Usage
+@node Sample Configuration, Options, Connecting, Advanced Usage
+@comment  node-name,  next,  previous,  up
+@section Sample Configuration
+@cindex configuration, sample
+
+Here is an example of configuration settings for ERC.  This can go into
+your Emacs configuration file.  Everything after the @code{(require
+'erc)} command can optionally go into @file{~/.emacs.d/.ercrc.el}.
+
+@lisp
+;;; Sample ERC configuration
+
+;; Add the ERC directory to load path -- you don't need this if you are
+;; using the version of ERC that comes with Emacs
+(add-to-list 'load-path "~/elisp/erc")
+
+;; Load ERC
+(require 'erc)
+
+;; Load authentication info from an external source.  Put sensitive
+;; passwords and the like in here.
+(load "~/.emacs.d/.erc-auth")
+
+;; This is an example of how to make a new command.  Type "/uptime" to
+;; use it.
+(defun erc-cmd-UPTIME (&rest ignore)
+  "Display the uptime of the system, as well as some load-related
+stuff, to the current ERC buffer."
+  (let ((uname-output
+         (replace-regexp-in-string
+          ", load average: " "] @{Load average@} ["
+          ;; Collapse spaces, remove
+          (replace-regexp-in-string
+           " +" " "
+           ;; Remove beginning and trailing whitespace
+           (replace-regexp-in-string
+            "^ +\\|[ \n]+$" ""
+            (shell-command-to-string "uptime"))))))
+    (erc-send-message
+     (concat "@{Uptime@} [" uname-output "]"))))
+
+;; This causes ERC to connect to the Freenode network upon hitting
+;; C-c e f.  Replace MYNICK with your IRC nick.
+(global-set-key "\C-cef" (lambda () (interactive)
+                           (erc :server "irc.freenode.net" :port "6667"
+                                :nick "MYNICK")))
+
+;; This causes ERC to connect to the IRC server on your own machine (if
+;; you have one) upon hitting C-c e b.  Replace MYNICK with your IRC
+;; nick.  Often, people like to run bitlbee (http://bitlbee.org/) as an
+;; AIM/Jabber/MSN to IRC gateway, so that they can use ERC to chat with
+;; people on those networks.
+(global-set-key "\C-ceb" (lambda () (interactive)
+                           (erc :server "localhost" :port "6667"
+                                :nick "MYNICK")))
+
+;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has
+;; been commented out to avoid confusing new users.
+;; (define-key erc-mode-map (kbd "RET") nil)
+;; (define-key erc-mode-map (kbd "C-c RET") 'erc-send-current-line)
+;; (define-key erc-mode-map (kbd "C-c C-RET") 'erc-send-current-line)
+
+;;; Options
+
+;; Join the #emacs and #erc channels whenever connecting to Freenode.
+(setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc")))
+
+;; Interpret mIRC-style color commands in IRC chats
+(setq erc-interpret-mirc-color t)
+
+;; The following are commented out by default, but users of other
+;; non-Emacs IRC clients might find them useful.
+;; Kill buffers for channels after /part
+;; (setq erc-kill-buffer-on-part t)
+;; Kill buffers for private queries after quitting the server
+;; (setq erc-kill-queries-on-quit t)
+;; Kill buffers for server messages after quitting the server
+;; (setq erc-kill-server-buffer-on-quit t)
+@end lisp
+
+@node Options, , Sample Configuration, Advanced Usage
 @comment  node-name,  next,  previous,  up
 @section Options
 @cindex options
 
-@c PRE5_2: (Node) Document every ERC option (module options go in
+@c PRE5_3: (Node) Document every ERC option (module options go in
 @c previous chapter)
 
-This section has not yet been written.
-
-@node Tips and Tricks, Sample Configuration, Options, Advanced Usage
-@comment  node-name,  next,  previous,  up
-@section Tips and Tricks
-@cindex tips and tricks
-
-@c PRE5_2: (Node) Tips and tricks
-
-This section has not yet been written.
-
-@node Sample Configuration, , Tips and Tricks, Advanced Usage
-@comment  node-name,  next,  previous,  up
-@section Sample Configuration
-@cindex configuration, sample
-
-@c PRE5_2: (Node) Sample configs
-
-This section has not yet been written.
+This section has not yet been written.  For now, the easiest way to
+check out the available option for ERC is to do
+@kbd{M-x customize-group erc RET}.
 
 
 @node Getting Help and Reporting Bugs, History, Advanced Usage, Top
--- a/man/faq.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/faq.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -1145,67 +1145,97 @@
 @cindex Differences between Emacs 21 and Emacs 22
 @cindex Emacs 22, new features in
 @cindex Recently introduced features
-
 @cindex Default features
-Font Lock mode, auto-compression mode, and file name shadow mode are
-enabled by default.  On graphics displays it is possible to follow links
-with @kbd{mouse-1}.  The modeline of the selected window is now
-highlighted.  Window fringes are customizable.  The minibuffer prompt is
-displayed in a distinct face.
-
-Emacs now reads abbrev definitions automatically at startup.  The
-maximum size of buffers has been doubled and is 256M on 32-bit machines.
-Grep mode is separate from Compilation mode and has many new specific
-options and commands.
-
+
+@itemize
+@cindex GTK+ Toolkit
+@cindex Drag-and-drop
+@item
+Emacs can be built with GTK+ widgets, and supports drag-and-drop
+operation on X.
+
+@cindex Supported systems
+@item
+Emacs 22 features support for GNU/Linux systems on S390 and x86-64
+machines, as well as support for the Mac OS X and Cygwin operating
+systems.
+
+@item
+The native MS-Windows, Mac OS 9 and Mac OS X builds include full support
+for images, toolbar, and tooltips.
+
+@item
+Font Lock mode, Auto Compression mode, and File Name Shadow Mode are
+enabled by default.
+
+@item
+The maximum size of buffers has been doubled and is 256M on 32-bit
+machines.
+
+@item
+Links can be followed with @kbd{mouse-1}, in addition to @kbd{mouse-2}.
+
+@cindex Mouse wheel
+@item
+Mouse wheel support is enabled by default.
+
+@item
+Window fringes are customizable.
+
+@item
+The mode line of the selected window is now highlighted.
+
+@item
+The minibuffer prompt is displayed in a distinct face.
+
+@item
+Abbrev definitions are read automatically at startup.
+
+@item
+Grep mode is separate from Compilation mode and has many new options and
+commands specific to grep.
+
+@item
 The original Emacs macro system has been replaced by the new Kmacro
 package, which provides many new commands and features and a simple
-interface that uses the function keys F3 and F4.  Macros are stored
-in a macro ring, and can be debugged and edited interactively.
-
-The GUD (Grand Unified Debugger) package can now be used with a full
-graphical user interface to the debugger which provides many features
-found in traditional development environments, making it easy to
-manipulate breakpoints, add watch points, display the call stack, etc.
-Breakpoints are displayed in the source buffer.
-
-@cindex GTK+ Toolkit
-@cindex Drag-and-drop
-@cindex Mouse wheel
-Emacs can be built with GTK+ widgets, and supports drag-and-drop
-operation on X.  Mouse wheel support is enabled by default.
-
+interface that uses the function keys F3 and F4.  Macros are stored in a
+macro ring, and can be debugged and edited interactively.
+
+@item
+The Grand Unified Debugger (GUD) can be used with a full graphical user
+interface to GDB; this provides many features found in traditional
+development environments, making it easy to manipulate breakpoints, add
+watch points, display the call stack, etc.  Breakpoints are visually
+indicated in the source buffer.
+
+@item
 @cindex New modes
-Many new modes and packages have been included in Emacs, such as MH-E,
-Calc, Tramp and URL, as well as IDO, CUA, rcirc, ERC, conf-mode,
-python-mode, table, tumme, SES, ruler, Flymake, Org, PGG, wdired,
-t-mouse, longlines, dns-mode, savehist, Password, Printing, Reveal, etc.
-Gnus has been updated to version 5.11.
+Many new modes and packages have been included in Emacs, such as Calc,
+TRAMP, URL, IDO, CUA, ERC, rcirc, Table, Tumme, SES, Ruler, Org, PGG,
+Flymake, Password, Printing, Reveal, wdired, t-mouse, longlines,
+savehist, Conf mode, Python mode, DNS mode, etc.
 
 @cindex Multilingual Environment
+@item
 Leim is now part of Emacs.  Unicode support has been much improved, and
 the following input methods have been added: belarusian, bulgarian-bds,
 bulgarian-phonetic, chinese-sisheng, croatian, dutch, georgian,
 latin-alt-postfix, latin-postfix, latin-prefix, latvian-keyboard,
 lithuanian-numeric, lithuanian-keyboard, malayalam-inscript, rfc1345,
-russian-computer, sgml, slovenian, tamil-inscript ucs,
+russian-computer, sgml, slovenian, tamil-inscript, ucs,
 ukrainian-computer, vietnamese-telex, and welsh.
 
-The following language environment have also been added: Belarusian,
+The following language environments have also been added: Belarusian,
 Bulgarian, Chinese-EUC-TW, Croatian, French, Georgian, Italian, Latin-6,
-Latin-7, Latvian, Lithuanian, Malayalam, Russian, Russian, Slovenian,
-Swedish, Tajik, Tamil, UTF-8, Ukrainian, Ukrainian, Welsh, and
-Windows-1255.
-
-@cindex Supported systems
-Emacs 22 features support for GNU/Linux systems on S390 and x86-64
-machines, as well as support for the Mac OS X and Cygwin operating
-systems.
+Latin-7, Latvian, Lithuanian, Malayalam, Russian, Slovenian, Swedish,
+Tajik, Tamil, UTF-8, Ukrainian, Welsh, and Windows-1255.
 
 @cindex Documentation
 @cindex Emacs Lisp Manual
+@item
 In addition, Emacs 22 now includes the Emacs Lisp Reference Manual
 (@pxref{Emacs Lisp documentation}) and the Emacs Lisp Intro.
+@end itemize
 
 Many other changes have been made in Emacs 22, use @kbd{C-h n} to get a
 full list.
--- a/man/files.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/files.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -2434,11 +2434,11 @@
 leaving point unchanged before the contents and the mark after them.
 
 @findex insert-file-literally
-  @kbd{M-x insert-file-literally} is like @kbd{C-x i}, except it
-inserts the specified file with no conversion of the contents: no
-format conversion (@pxref{Formatted Text}), no character code
-conversion (@pxref{Coding Systems}), and no automatic uncompression
-(@pxref{Compressed Files}).
+  @kbd{M-x insert-file-literally} is like @kbd{M-x insert-file},
+except the file is inserted ``literally'': it is treated as a sequence
+of @acronym{ASCII} characters with no special encoding or conversion,
+similar to the @kbd{M-x find-file-literally} command
+(@pxref{Visiting}).
 
 @findex write-region
   @kbd{M-x write-region} is the inverse of @kbd{M-x insert-file}; it
--- a/man/gnus.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/gnus.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -6174,7 +6174,7 @@
 used for marking articles in such a way that other commands will
 process these articles.  For instance, if you process mark four
 articles and then use the @kbd{*} command, Gnus will enter these four
-commands into the cache.  For more information,
+articles into the cache.  For more information,
 @pxref{Process/Prefix}.
 
 @table @kbd
@@ -13489,7 +13489,7 @@
 
 @vindex nnmail-mail-splitting-charset
 @vindex nnmail-mail-splitting-decodes
-By default the splitting codes @acronym{MIME} decodes headers so you
+By default, splitting @acronym{MIME}-decodes headers so you
 can match on non-@acronym{ASCII} strings.  The
 @code{nnmail-mail-splitting-charset} variable specifies the default
 charset for decoding.  The behavior can be turned off completely by
@@ -13607,7 +13607,8 @@
 rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP
 @end example
 
-Alter this script to fit find the @samp{movemail} you want to use.
+Alter this script to fit the @samp{movemail} and temporary
+file you want to use.
 
 
 @item directory
--- a/man/killing.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/killing.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -148,8 +148,8 @@
   The other delete commands are those which delete only whitespace
 characters: spaces, tabs and newlines.  @kbd{M-\}
 (@code{delete-horizontal-space}) deletes all the spaces and tab
-characters before and after point.  (With a prefix argument, it
-deletes them before point, but not after.)  @kbd{M-@key{SPC}}
+characters before and after point.  With a prefix argument, this only
+deletes spaces and tab characters before point.  @kbd{M-@key{SPC}}
 (@code{just-one-space}) does likewise but leaves a single space after
 point, regardless of the number of spaces that existed previously
 (even if there were none before).  With a numeric argument @var{n}, it
--- a/man/macos.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/macos.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -381,6 +381,17 @@
 (QuickDraw).  Both @acronym{ATSUI} and QuickDraw Text drawings are
 affected by the value of this variable.
 
+  Appearance of text in small sizes will also be affected by the ``Turn
+off text smoothing for font sizes @var{n} and smaller'' setting in the
+General pane (Mac OS X 10.1 or 10.2) or in the Appearance pane (10.3 or
+later) of the System Preferences.  This threshold can alternatively be
+set just for Emacs (i.e., not as the system-wide setting) using the
+@command{defaults} command:
+
+@example
+defaults write org.gnu.Emacs AppleAntiAliasingThreshold @var{n}
+@end example
+
 
 @node Mac Functions
 @section Mac-Specific Lisp Functions
--- a/man/misc.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/misc.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -1448,7 +1448,7 @@
 @findex lpr-buffer
 @findex lpr-region
 @vindex lpr-switches
-  The hardcopy commands (aside from the Postscript commands) pass extra
+  The hardcopy commands (aside from the PostScript commands) pass extra
 switches to the @code{lpr} program based on the value of the variable
 @code{lpr-switches}.  Its value should be a list of strings, each string
 an option starting with @samp{-}.  For example, to specify a line width
--- a/man/pgg.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/pgg.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -297,11 +297,11 @@
 @end defvar
 
 If your passphrase contains non-ASCII characters, you might need to
-specify the coding-system to be used to encode your passphrases since
-GnuPG treats them as a byte sequence not a character sequence.
+specify the coding system to be used to encode your passphrases, since
+GnuPG treats them as a byte sequence, not as a character sequence.
 
 @defvar pgg-passphrase-coding-system
-Coding-system used to encode passphrase.
+Coding system used to encode passphrase.
 @end defvar
 
 @node Default user identity
--- a/man/reftex.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/reftex.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -10,12 +10,14 @@
 @set VERSION 4.31
 @set EDITION 4.31
 @set DATE February 2006
-@set AUCTEXSITE @uref{http://www.nongnu.org/auctex/,AUCTeX distribution site}
-@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/,maintainers webpage}
-@set MAINTAINER Carsten Dominik
-@set MAINTAINEREMAIL @email{dominik@@science.uva.nl}
-@set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer}
-@set XEMACSFTP @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,XEmacs ftp site}.
+@set AUCTEXSITE @uref{http://www.gnu.org/software/auctex/,AUCTeX distribution site}
+@set MAINTAINERSITE @uref{http://www.gnu.org/software/auctex/reftex.html,Ref@TeX{} web page}
+@set MAINTAINERCONTACT @uref{mailto:auctex-devel@@gnu.org,contact the maintainers}
+@set MAINTAINER the AUC@TeX{} project
+@set SUPPORTADDRESS AUC@TeX{} user mailing list (@email{auctex@@gnu.org})
+@set DEVELADDRESS AUC@TeX{} developer mailing list (@email{auctex-devel@@gnu.org})
+@set BUGADDRESS AUC@TeX{} bug mailing list (@email{bug-auctex@@gnu.org})
+@set XEMACSFTP @uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,XEmacs ftp site}
 @c %**end of header
 
 @copying
@@ -3491,25 +3493,23 @@
 @cindex @code{http}, @b{Ref@TeX{}} home page
 @cindex @code{ftp}, @b{Ref@TeX{}} site
 
-@b{Ref@TeX{}} was written by @i{Carsten Dominik}
+Ref@TeX{} was written by @i{Carsten Dominik}
 @email{dominik@@science.uva.nl}, with contributions by @i{Stephen
-Eglen}.  @b{Ref@TeX{}} is currently maintained by 
-
-@noindent
-Carsten Dominik <dominik@@science.uva.nl>
-
-If you have questions about @b{Ref@TeX{}}, there are several Usenet
-groups which have competent readers: @code{comp.emacs},
-@code{gnu.emacs.help}, @code{comp.emacs.xemacs}, @code{comp.text.tex},
-@code{de.comp.text.tex}.  You can also write directly to the
-maintainer.
-
-If you find a bug in @b{Ref@TeX{}} or its documentation, or if you want
-to contribute code or ideas, please @value{MAINTAINERCONTACT}.  Remember
-to provide all necessary information such as version numbers of Emacs
-and @b{Ref@TeX{}}, and the relevant part of your configuration in
-@file{.emacs}.  When reporting a bug which throws an exception, please
-include a backtrace if you know how to produce one.
+Eglen}.  Ref@TeX{} is currently maintained by @value{MAINTAINER}, see
+the @value{MAINTAINERSITE} for detailed information.
+
+If you have questions about Ref@TeX{}, you can send email to the
+@value{SUPPORTADDRESS}.  If you want to contribute code or ideas, write
+to the @value{DEVELADDRESS}.  And in the rare case of finding a bug,
+please use @kbd{M-x reftex-report-bug @key{RET}} which will prepare a
+bug report with useful information about your setup.  Remember to add
+essential information like a recipe for reproducing the bug, what you
+expected to happen, and what actually happened.  Send the bug report to
+the @value{BUGADDRESS}.
+
+There are also several Usenet groups which have competent readers who
+might be able to help: @code{comp.emacs}, @code{gnu.emacs.help},
+@code{comp.emacs.xemacs}, and @code{comp.text.tex}.
 
 @b{Ref@TeX{}} is bundled and pre-installed with Emacs since version 20.2.
 It was also bundled and pre-installed with XEmacs 19.16--20.x.  XEmacs
--- a/man/rmail.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/rmail.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -107,6 +107,8 @@
 Scroll backward (@code{scroll-down}).
 @item .
 Scroll to start of message (@code{rmail-beginning-of-message}).
+@item /
+Scroll to end of message (@code{rmail-end-of-message}).
 @end table
 
 @kindex SPC @r{(Rmail)}
@@ -116,11 +118,15 @@
 @kbd{C-v} (@code{scroll-up}) and @kbd{M-v} (@code{scroll-down})
 
 @kindex . @r{(Rmail)}
+@kindex / @r{(Rmail)}
 @findex rmail-beginning-of-message
+@findex rmail-end-of-message
   The command @kbd{.} (@code{rmail-beginning-of-message}) scrolls back to the
 beginning of the selected message.  This is not quite the same as @kbd{M-<}:
 for one thing, it does not set the mark; for another, it resets the buffer
-boundaries to the current message if you have changed them.
+boundaries to the current message if you have changed them.  Similarly,
+the command @kbd{/} (@code{rmail-end-of-message}) scrolls forward to the end
+of the selected message.
 
 @node Rmail Motion
 @section Moving Among Messages
--- a/man/texinfo.tex	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/texinfo.tex	Wed Apr 11 00:17:47 2007 +0000
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2006-11-08.17}
+\def\texinfoversion{2007-04-08.09}
 %
 % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-%   1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-%   2007  Free Software Foundation, Inc.
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+% 2007 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software; you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -67,7 +67,7 @@
 \everyjob{\message{[Texinfo version \texinfoversion]}%
   \catcode`+=\active \catcode`\_=\active}
 
-\message{Basics,}
+
 \chardef\other=12
 
 % We never want plain's \outer definition of \+ in Texinfo.
@@ -1225,8 +1225,9 @@
 
 % To handle parens, we must adopt a different approach, since parens are
 % not active characters.  hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens.  I've
-% tinkered with it a little for texinfo, but it's definitely from there.
+% us) handles it with this amazing macro to replace tokens, with minor
+% changes for Texinfo.  It is included here under the GPL by permission
+% from the author, Heiko Oberdiek.
 % 
 % #1 is the tokens to replace.
 % #2 is the replacement.
@@ -1262,7 +1263,8 @@
 
 \ifpdf
   \input pdfcolor
-  \pdfcatalog{/PageMode /UseOutlines}%
+  \pdfcatalog{/PageMode /UseOutlines}
+  %
   % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
   \def\dopdfimage#1#2#3{%
     \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
@@ -1279,20 +1281,15 @@
               \openin 1 #1.pdf \ifeof 1
                 \errhelp = \nopdfimagehelp
                 \errmessage{Could not find image file #1 for pdf}%
-              \else
-                \gdef\pdfimgext{pdf}%
+              \else \gdef\pdfimgext{pdf}%
               \fi
-            \else
-              \gdef\pdfimgext{JPG}%
+            \else \gdef\pdfimgext{JPG}%
             \fi
-          \else
-            \gdef\pdfimgext{jpeg}%
+          \else \gdef\pdfimgext{jpeg}%
           \fi
-        \else
-          \gdef\pdfimgext{jpg}%
+        \else \gdef\pdfimgext{jpg}%
         \fi
-      \else
-        \gdef\pdfimgext{png}%
+      \else \gdef\pdfimgext{png}%
       \fi
       \closein 1
     \endgroup
@@ -1314,21 +1311,25 @@
     \ifnum\pdftexversion < 14 \else
       \pdfrefximage \pdflastximage
     \fi}
+  %
   \def\pdfmkdest#1{{%
     % We have to set dummies so commands such as @code, and characters
     % such as \, aren't expanded when present in a section title.
-    \atdummies
+    \indexnofonts
+    \turnoffactive
     \activebackslashdouble
+    \makevalueexpandable
     \def\pdfdestname{#1}%
     \backslashparens\pdfdestname
-    \pdfdest name{\pdfdestname} xyz%
-  }}%
+    \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+  }}
   %
   % used to mark target names; must be expandable.
-  \def\pdfmkpgn#1{#1}%
+  \def\pdfmkpgn#1{#1}
   %
   \let\linkcolor = \Blue  % was Cyan, but that seems light?
   \def\endlink{\Black\pdfendlink}
+  %
   % Adding outlines to PDF; macros for calculating structure of outlines
   % come from Petr Olsak
   \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
@@ -1583,7 +1584,7 @@
 % Definitions for a main text size of 11pt.  This is the default in
 % Texinfo.
 % 
-\def\definetextfontsizexi{
+\def\definetextfontsizexi{%
 % Text fonts (11.2pt, magstep1).
 \def\textnominalsize{11pt}
 \edef\mainmagstep{\magstephalf}
@@ -3746,11 +3747,7 @@
     %
     \edef\writeto{\csname#1indfile\endcsname}%
     %
-    \ifvmode
-      \dosubindsanitize
-    \else
-      \dosubindwrite
-    \fi
+    \safewhatsit\dosubindwrite
   }%
   \fi
 }
@@ -3787,13 +3784,13 @@
   \temp
 }
 
-% Take care of unwanted page breaks:
+% Take care of unwanted page breaks/skips around a whatsit:
 %
 % If a skip is the last thing on the list now, preserve it
 % by backing up by \lastskip, doing the \write, then inserting
 % the skip again.  Otherwise, the whatsit generated by the
-% \write will make \lastskip zero.  The result is that sequences
-% like this:
+% \write or \pdfdest will make \lastskip zero.  The result is that
+% sequences like this:
 % @end defun
 % @tindex whatever
 % @defun ...
@@ -3817,13 +3814,19 @@
 %
 \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
 %
+\newskip\whatsitskip
+\newcount\whatsitpenalty
+%
 % ..., ready, GO:
 %
-\def\dosubindsanitize{%
+\def\safewhatsit#1{%
+\ifhmode
+  #1%
+\else
   % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
-  \skip0 = \lastskip
+  \whatsitskip = \lastskip
   \edef\lastskipmacro{\the\lastskip}%
-  \count255 = \lastpenalty
+  \whatsitpenalty = \lastpenalty
   %
   % If \lastskip is nonzero, that means the last item was a
   % skip.  And since a skip is discardable, that means this
@@ -3832,10 +3835,10 @@
   % breakpoint, therefore no \nobreak needed.
   \ifx\lastskipmacro\zeroskipmacro
   \else
-    \vskip-\skip0
+    \vskip-\whatsitskip
   \fi
   %
-  \dosubindwrite
+  #1%
   %
   \ifx\lastskipmacro\zeroskipmacro
     % If \lastskip was zero, perhaps the last item was a penalty, and
@@ -3849,13 +3852,14 @@
     %   Description.
     % would allow a break between the index-whatever whatsit
     % and the "Description." paragraph.
-    \ifnum\count255>9999 \penalty\count255 \fi
+    \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
   \else
     % On the other hand, if we had a nonzero \lastskip,
     % this make-up glue would be preceded by a non-discardable item
     % (the whatsit from the \write), so we must insert a \nobreak.
-    \nobreak\vskip\skip0
+    \nobreak\vskip\whatsitskip
   \fi
+\fi
 }
 
 % The index entry written in the file actually looks like
@@ -3898,6 +3902,7 @@
   %
   \smallfonts \rm
   \tolerance = 9500
+  \plainfrenchspacing
   \everypar = {}% don't want the \kern\-parindent from indentation suppression.
   %
   % See if the index file exists and is nonempty.
@@ -4167,6 +4172,34 @@
 %
 % All done with double columns.
 \def\enddoublecolumns{%
+  % The following penalty ensures that the page builder is exercised
+  % _before_ we change the output routine.  This is necessary in the
+  % following situation:
+  %
+  % The last section of the index consists only of a single entry.
+  % Before this section, \pagetotal is less than \pagegoal, so no
+  % break occurs before the last section starts.  However, the last
+  % section, consisting of \initial and the single \entry, does not
+  % fit on the page and has to be broken off.  Without the following
+  % penalty the page builder will not be exercised until \eject
+  % below, and by that time we'll already have changed the output
+  % routine to the \balancecolumns version, so the next-to-last
+  % double-column page will be processed with \balancecolumns, which
+  % is wrong:  The two columns will go to the main vertical list, with
+  % the broken-off section in the recent contributions.  As soon as
+  % the output routine finishes, TeX starts reconsidering the page
+  % break.  The two columns and the broken-off section both fit on the
+  % page, because the two columns now take up only half of the page
+  % goal.  When TeX sees \eject from below which follows the final
+  % section, it invokes the new output routine that we've set after
+  % \balancecolumns below; \onepageout will try to fit the two columns
+  % and the final section into the vbox of \pageheight (see
+  % \pagebody), causing an overfull box.
+  %
+  % Note that glue won't work here, because glue does not exercise the
+  % page builder, unlike penalties (see The TeXbook, pp. 280-281).
+  \penalty0
+  %
   \output = {%
     % Split the last of the double-column material.  Leave it on the
     % current page, no automatic page break.
@@ -5283,12 +5316,18 @@
 \let\SETdispenvsize\relax
 \def\setnormaldispenv{%
   \ifx\SETdispenvsize\smallword
+    % end paragraph for sake of leading, in case document has no blank
+    % line.  This is redundant with what happens in \aboveenvbreak, but
+    % we need to do it before changing the fonts, and it's inconvenient
+    % to change the fonts afterward.
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
     \smallexamplefonts \rm
   \fi
 }
 \def\setsmalldispenv{%
   \ifx\SETdispenvsize\nosmallword
   \else
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
     \smallexamplefonts \rm
   \fi
 }
@@ -5589,27 +5628,35 @@
   \endgroup
 }
 
+
 \message{defuns,}
 % @defun etc.
 
 \newskip\defbodyindent \defbodyindent=.4in
 \newskip\defargsindent \defargsindent=50pt
 \newskip\deflastargmargin \deflastargmargin=18pt
+\newcount\defunpenalty
 
 % Start the processing of @deffn:
 \def\startdefun{%
   \ifnum\lastpenalty<10000
     \medbreak
+    \defunpenalty=10003 % Will keep this @deffn together with the
+                        % following @def command, see below.
   \else
     % If there are two @def commands in a row, we'll have a \nobreak,
     % which is there to keep the function description together with its
     % header.  But if there's nothing but headers, we need to allow a
     % break somewhere.  Check specifically for penalty 10002, inserted
-    % by \defargscommonending, instead of 10000, since the sectioning
+    % by \printdefunline, instead of 10000, since the sectioning
     % commands also insert a nobreak penalty, and we don't want to allow
     % a break between a section heading and a defun.
-    % 
-    \ifnum\lastpenalty=10002 \penalty2000 \fi
+    %
+    % As a minor refinement, we avoid "club" headers by signalling
+    % with penalty of 10003 after the very first @deffn in the
+    % sequence (see above), and penalty of 10002 after any following
+    % @def command.
+    \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi
     %
     % Similarly, after a section heading, do not allow a break.
     % But do insert the glue.
@@ -5627,7 +5674,7 @@
   %
   % As above, allow line break if we have multiple x headers in a row.
   % It's not a great place, though.
-  \ifnum\lastpenalty=10002 \penalty3000 \fi
+  \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
   %
   % And now, it's time to reuse the body of the original defun:
   \expandafter\gobbledefun#1%
@@ -5645,7 +5692,7 @@
     \advance\rightskip by 0pt plus 1fil
     \endgraf
     \nobreak\vskip -\parskip
-    \penalty 10002  % signal to \startdefun and \dodefunx
+    \penalty\defunpenalty  % signal to \startdefun and \dodefunx
     % Some of the @defun-type tags do not enable magic parentheses,
     % rendering the following check redundant.  But we don't optimize.
     \checkparencounts
@@ -6245,7 +6292,6 @@
 \message{cross references,}
 
 \newwrite\auxfile
-
 \newif\ifhavexrefs    % True if xref values are known.
 \newif\ifwarnedxrefs  % True if we warned once that they aren't known.
 
@@ -6312,7 +6358,7 @@
       \toks0 = \expandafter{\thissection}%
       \immediate \writexrdef{title}{\the\toks0 }%
       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
-      \writexrdef{pg}{\folio}% will be written later, during \shipout
+      \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
     }%
   \fi
 }
@@ -6358,7 +6404,8 @@
   \ifpdf
     \leavevmode
     \getfilename{#4}%
-    {\turnoffactive
+    {\indexnofonts
+     \turnoffactive
      % See comments at \activebackslashdouble.
      {\activebackslashdouble \xdef\pdfxrefdest{#1}%
       \backslashparens\pdfxrefdest}%
@@ -6505,10 +6552,18 @@
 % collisions).  But if this is a float type, we have more work to do.
 %
 \def\xrdef#1#2{%
-  \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+  {% The node name might contain 8-bit characters, which in our current
+   % implementation are changed to commands like @'e.  Don't let these
+   % mess up the control sequence name.
+    \indexnofonts
+    \turnoffactive
+    \xdef\safexrefname{#1}%
+  }%
+  %
+  \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
   %
   % Was that xref control sequence that we just defined for a float?
-  \expandafter\iffloat\csname XR#1\endcsname
+  \expandafter\iffloat\csname XR\safexrefname\endcsname
     % it was a float, and we have the (safe) float type in \iffloattype.
     \expandafter\let\expandafter\floatlist
       \csname floatlist\iffloattype\endcsname
@@ -6523,7 +6578,8 @@
     %
     % Remember this xref in the control sequence \floatlistFLOATTYPE,
     % for later use in \listoffloats.
-    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
+      {\safexrefname}}%
   \fi
 }
 
@@ -6627,6 +6683,7 @@
   \input\jobname.#1
 \endgroup}
 
+
 \message{insertions,}
 % including footnotes.
 
@@ -7101,8 +7158,8 @@
   \writeentry
 }}
 
+
 \message{localization,}
-% and i18n.
 
 % @documentlanguage is usually given very early, just after
 % @setfilename.  If done too late, it may not override everything
@@ -7126,14 +7183,809 @@
 is empty.  Maybe you need to install it?  In the current directory
 should work if nowhere else does.}
 
-
-% @documentencoding should change something in TeX eventually, most
-% likely, but for now just recognize it.
-\let\documentencoding = \comment
-
-
-% Page size parameters.
-%
+% Set the catcode of characters 128 through 255 to the specified number.
+%
+\def\setnonasciicharscatcode#1{%
+   \count255=128
+   \loop\ifnum\count255<256
+      \global\catcode\count255=#1
+      \advance\count255 by 1
+   \repeat
+}
+
+% @documentencoding sets the definition of non-ASCII characters
+% according to the specified encoding.
+%
+\parseargdef\documentencoding{%
+  % Encoding being declared for the document.
+  \def\declaredencoding{\csname #1.enc\endcsname}%
+  %
+  % Supported encodings: names converted to tokens in order to be able
+  % to compare them with \ifx.
+  \def\ascii{\csname US-ASCII.enc\endcsname}%
+  \def\latnine{\csname ISO-8859-15.enc\endcsname}%
+  \def\latone{\csname ISO-8859-1.enc\endcsname}%
+  \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
+  \def\utfeight{\csname UTF-8.enc\endcsname}%
+  %
+  \ifx \declaredencoding \ascii
+     \asciichardefs
+  %
+  \else \ifx \declaredencoding \lattwo
+     \setnonasciicharscatcode\active
+     \lattwochardefs
+  %
+  \else \ifx \declaredencoding \latone 
+     \setnonasciicharscatcode\active
+     \latonechardefs
+  %
+  \else \ifx \declaredencoding \latnine
+     \setnonasciicharscatcode\active
+     \latninechardefs
+  %
+  \else \ifx \declaredencoding \utfeight
+     \setnonasciicharscatcode\active
+     \utfeightchardefs
+  %
+  \else 
+    \message{Unknown document encoding #1, ignoring.}%
+  %
+  \fi % utfeight
+  \fi % latnine
+  \fi % latone
+  \fi % lattwo
+  \fi % ascii
+}
+
+% A message to be logged when using a character that isn't available
+% the default font encoding (OT1).
+% 
+\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+
+% Take account of \c (plain) vs. \, (Texinfo) difference.
+\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
+
+% First, make active non-ASCII characters in order for them to be
+% correctly categorized when TeX reads the replacement text of
+% macros containing the character definitions.
+\setnonasciicharscatcode\active
+%
+% Latin1 (ISO-8859-1) character definitions.
+\def\latonechardefs{%
+  \gdef^^a0{~} 
+  \gdef^^a1{\exclamdown}
+  \gdef^^a2{\missingcharmsg{CENT SIGN}} 
+  \gdef^^a3{{\pounds}}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\missingcharmsg{YEN SIGN}}
+  \gdef^^a6{\missingcharmsg{BROKEN BAR}} 
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}} 
+  \gdef^^a9{\copyright} 
+  \gdef^^aa{\ordf}
+  \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} 
+  \gdef^^ac{$\lnot$}
+  \gdef^^ad{\-} 
+  \gdef^^ae{\registeredsymbol} 
+  \gdef^^af{\={}}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{$\pm$}
+  \gdef^^b2{$^2$}
+  \gdef^^b3{$^3$}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{$\mu$}
+  \gdef^^b6{\P}
+  %
+  \gdef^^b7{$^.$}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{$^1$}
+  \gdef^^ba{\ordm}
+  %
+  \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+  \gdef^^bc{$1\over4$}
+  \gdef^^bd{$1\over2$}
+  \gdef^^be{$3\over4$}
+  \gdef^^bf{\questiondown}
+  %
+  \gdef^^c0{\`A}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\~A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\ringaccent A} 
+  \gdef^^c6{\AE}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\`E}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\^E}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\`I}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\"I}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
+  \gdef^^d1{\~N}
+  \gdef^^d2{\`O}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\~O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\O}
+  \gdef^^d9{\`U}
+  \gdef^^da{\'U}
+  \gdef^^db{\^U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\`a}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\~a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\ringaccent a}
+  \gdef^^e6{\ae}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\`e}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\^e}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\`{\dotless i}}
+  \gdef^^ed{\'{\dotless i}}
+  \gdef^^ee{\^{\dotless i}}
+  \gdef^^ef{\"{\dotless i}}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
+  \gdef^^f1{\~n}
+  \gdef^^f2{\`o}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\~o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\o}
+  \gdef^^f9{\`u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\^u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
+  \gdef^^ff{\"y}
+}
+
+% Latin9 (ISO-8859-15) encoding character definitions.
+\def\latninechardefs{%
+  % Encoding is almost identical to Latin1.
+  \latonechardefs
+  %
+  \gdef^^a4{\euro}
+  \gdef^^a6{\v S}
+  \gdef^^a8{\v s}
+  \gdef^^b4{\v Z}
+  \gdef^^b8{\v z}
+  \gdef^^bc{\OE}
+  \gdef^^bd{\oe}
+  \gdef^^be{\"Y}
+}
+
+% Latin2 (ISO-8859-2) character definitions.
+\def\lattwochardefs{%
+  \gdef^^a0{~}
+  \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
+  \gdef^^a2{\u{}}
+  \gdef^^a3{\L}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\v L}
+  \gdef^^a6{\'S}
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}}
+  \gdef^^a9{\v S}
+  \gdef^^aa{\cedilla S}
+  \gdef^^ab{\v T}
+  \gdef^^ac{\'Z}
+  \gdef^^ad{\-}
+  \gdef^^ae{\v Z}
+  \gdef^^af{\dotaccent Z}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
+  \gdef^^b2{\missingcharmsg{OGONEK}}
+  \gdef^^b3{\l}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{\v l}
+  \gdef^^b6{\'s}
+  \gdef^^b7{\v{}}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{\v s}
+  \gdef^^ba{\cedilla s}
+  \gdef^^bb{\v t}
+  \gdef^^bc{\'z}
+  \gdef^^bd{\H{}}
+  \gdef^^be{\v z}
+  \gdef^^bf{\dotaccent z}
+  %
+  \gdef^^c0{\'R}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\u A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\'L}
+  \gdef^^c6{\'C}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\v C}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\v E}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\v D}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
+  \gdef^^d1{\'N}
+  \gdef^^d2{\v N}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\H O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\v R}
+  \gdef^^d9{\ringaccent U} 
+  \gdef^^da{\'U}
+  \gdef^^db{\H U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\cedilla T}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\'r}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\u a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\'l}
+  \gdef^^e6{\'c}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\v c}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\v e}
+  \gdef^^ed{\'\i}
+  \gdef^^ee{\^\i}
+  \gdef^^ef{\v d}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
+  \gdef^^f1{\'n}
+  \gdef^^f2{\v n}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\H o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\v r}
+  \gdef^^f9{\ringaccent u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\H u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\cedilla t}
+  \gdef^^ff{\dotaccent{}}
+}
+
+% UTF-8 character definitions.
+% 
+% This code to support UTF-8 is based on LaTeX's utf8.def, with some
+% changes for Texinfo conventions.  It is included here under the GPL by
+% permission from Frank Mittelbach and the LaTeX team.
+% 
+\newcount\countUTFx
+\newcount\countUTFy
+\newcount\countUTFz
+
+\gdef\UTFviiiTwoOctets#1#2{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\endcsname}
+%
+\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
+%
+\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
+
+\gdef\UTFviiiDefined#1{%
+  \ifx #1\relax
+    \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
+  \else
+    \expandafter #1%
+  \fi
+}
+
+\begingroup
+  \catcode`\~13
+  \catcode`\"12
+
+  \def\UTFviiiLoop{%
+    \global\catcode\countUTFx\active
+    \uccode`\~\countUTFx
+    \uppercase\expandafter{\UTFviiiTmp}%
+    \advance\countUTFx by 1
+    \ifnum\countUTFx < \countUTFy
+      \expandafter\UTFviiiLoop
+    \fi}
+
+  \countUTFx = "C2
+  \countUTFy = "E0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "E0
+  \countUTFy = "F0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "F0
+  \countUTFy = "F4
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+  \UTFviiiLoop
+\endgroup
+
+\begingroup
+  \catcode`\"=12
+  \catcode`\<=12
+  \catcode`\.=12
+  \catcode`\,=12
+  \catcode`\;=12
+  \catcode`\!=12
+  \catcode`\~=13
+
+  \gdef\DeclareUnicodeCharacter#1#2{%
+    \countUTFz = "#1\relax
+    \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+    \begingroup
+      \parseXMLCharref
+      \def\UTFviiiTwoOctets##1##2{%
+        \csname u8:##1\string ##2\endcsname}%
+      \def\UTFviiiThreeOctets##1##2##3{%
+        \csname u8:##1\string ##2\string ##3\endcsname}%
+      \def\UTFviiiFourOctets##1##2##3##4{%
+        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
+      \expandafter\expandafter\expandafter\expandafter
+       \expandafter\expandafter\expandafter
+       \gdef\UTFviiiTmp{#2}%
+    \endgroup}
+
+  \gdef\parseXMLCharref{%
+    \ifnum\countUTFz < "A0\relax
+      \errhelp = \EMsimple
+      \errmessage{Cannot define Unicode char value < 00A0}%
+    \else\ifnum\countUTFz < "800\relax
+      \parseUTFviiiA,%
+      \parseUTFviiiB C\UTFviiiTwoOctets.,%
+    \else\ifnum\countUTFz < "10000\relax
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+    \else
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiA!%
+      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+    \fi\fi\fi
+  }
+
+  \gdef\parseUTFviiiA#1{%
+    \countUTFx = \countUTFz
+    \divide\countUTFz by 64
+    \countUTFy = \countUTFz
+    \multiply\countUTFz by 64
+    \advance\countUTFx by -\countUTFz
+    \advance\countUTFx by 128
+    \uccode `#1\countUTFx
+    \countUTFz = \countUTFy}
+
+  \gdef\parseUTFviiiB#1#2#3#4{%
+    \advance\countUTFz by "#10\relax
+    \uccode `#3\countUTFz
+    \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
+\endgroup
+
+\def\utfeightchardefs{%
+  \DeclareUnicodeCharacter{00A0}{\tie}
+  \DeclareUnicodeCharacter{00A1}{\exclamdown}
+  \DeclareUnicodeCharacter{00A3}{\pounds}
+  \DeclareUnicodeCharacter{00A8}{\"{ }}
+  \DeclareUnicodeCharacter{00A9}{\copyright}
+  \DeclareUnicodeCharacter{00AA}{\ordf}
+  \DeclareUnicodeCharacter{00AD}{\-}
+  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
+  \DeclareUnicodeCharacter{00AF}{\={ }}
+
+  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+  \DeclareUnicodeCharacter{00B4}{\'{ }}
+  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+  \DeclareUnicodeCharacter{00BA}{\ordm}
+  \DeclareUnicodeCharacter{00BF}{\questiondown}
+
+  \DeclareUnicodeCharacter{00C0}{\`A}
+  \DeclareUnicodeCharacter{00C1}{\'A}
+  \DeclareUnicodeCharacter{00C2}{\^A}
+  \DeclareUnicodeCharacter{00C3}{\~A}
+  \DeclareUnicodeCharacter{00C4}{\"A}
+  \DeclareUnicodeCharacter{00C5}{\AA}
+  \DeclareUnicodeCharacter{00C6}{\AE}
+  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
+  \DeclareUnicodeCharacter{00C8}{\`E}
+  \DeclareUnicodeCharacter{00C9}{\'E}
+  \DeclareUnicodeCharacter{00CA}{\^E}
+  \DeclareUnicodeCharacter{00CB}{\"E}
+  \DeclareUnicodeCharacter{00CC}{\`I}
+  \DeclareUnicodeCharacter{00CD}{\'I}
+  \DeclareUnicodeCharacter{00CE}{\^I}
+  \DeclareUnicodeCharacter{00CF}{\"I}
+
+  \DeclareUnicodeCharacter{00D1}{\~N}
+  \DeclareUnicodeCharacter{00D2}{\`O}
+  \DeclareUnicodeCharacter{00D3}{\'O}
+  \DeclareUnicodeCharacter{00D4}{\^O}
+  \DeclareUnicodeCharacter{00D5}{\~O}
+  \DeclareUnicodeCharacter{00D6}{\"O}
+  \DeclareUnicodeCharacter{00D8}{\O}
+  \DeclareUnicodeCharacter{00D9}{\`U}
+  \DeclareUnicodeCharacter{00DA}{\'U}
+  \DeclareUnicodeCharacter{00DB}{\^U}
+  \DeclareUnicodeCharacter{00DC}{\"U}
+  \DeclareUnicodeCharacter{00DD}{\'Y}
+  \DeclareUnicodeCharacter{00DF}{\ss}
+
+  \DeclareUnicodeCharacter{00E0}{\`a}
+  \DeclareUnicodeCharacter{00E1}{\'a}
+  \DeclareUnicodeCharacter{00E2}{\^a}
+  \DeclareUnicodeCharacter{00E3}{\~a}
+  \DeclareUnicodeCharacter{00E4}{\"a}
+  \DeclareUnicodeCharacter{00E5}{\aa}
+  \DeclareUnicodeCharacter{00E6}{\ae}
+  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
+  \DeclareUnicodeCharacter{00E8}{\`e}
+  \DeclareUnicodeCharacter{00E9}{\'e}
+  \DeclareUnicodeCharacter{00EA}{\^e}
+  \DeclareUnicodeCharacter{00EB}{\"e}
+  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
+  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{00F1}{\~n}
+  \DeclareUnicodeCharacter{00F2}{\`o}
+  \DeclareUnicodeCharacter{00F3}{\'o}
+  \DeclareUnicodeCharacter{00F4}{\^o}
+  \DeclareUnicodeCharacter{00F5}{\~o}
+  \DeclareUnicodeCharacter{00F6}{\"o}
+  \DeclareUnicodeCharacter{00F8}{\o}
+  \DeclareUnicodeCharacter{00F9}{\`u}
+  \DeclareUnicodeCharacter{00FA}{\'u}
+  \DeclareUnicodeCharacter{00FB}{\^u}
+  \DeclareUnicodeCharacter{00FC}{\"u}
+  \DeclareUnicodeCharacter{00FD}{\'y}
+  \DeclareUnicodeCharacter{00FF}{\"y}
+
+  \DeclareUnicodeCharacter{0100}{\=A}
+  \DeclareUnicodeCharacter{0101}{\=a}
+  \DeclareUnicodeCharacter{0102}{\u{A}}
+  \DeclareUnicodeCharacter{0103}{\u{a}}
+  \DeclareUnicodeCharacter{0106}{\'C}
+  \DeclareUnicodeCharacter{0107}{\'c}
+  \DeclareUnicodeCharacter{0108}{\^C}
+  \DeclareUnicodeCharacter{0109}{\^c}
+  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
+  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
+  \DeclareUnicodeCharacter{010C}{\v{C}}
+  \DeclareUnicodeCharacter{010D}{\v{c}}
+  \DeclareUnicodeCharacter{010E}{\v{D}}
+
+  \DeclareUnicodeCharacter{0112}{\=E}
+  \DeclareUnicodeCharacter{0113}{\=e}
+  \DeclareUnicodeCharacter{0114}{\u{E}}
+  \DeclareUnicodeCharacter{0115}{\u{e}}
+  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
+  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+  \DeclareUnicodeCharacter{011A}{\v{E}}
+  \DeclareUnicodeCharacter{011B}{\v{e}}
+  \DeclareUnicodeCharacter{011C}{\^G}
+  \DeclareUnicodeCharacter{011D}{\^g}
+  \DeclareUnicodeCharacter{011E}{\u{G}}
+  \DeclareUnicodeCharacter{011F}{\u{g}}
+
+  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
+  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+  \DeclareUnicodeCharacter{0124}{\^H}
+  \DeclareUnicodeCharacter{0125}{\^h}
+  \DeclareUnicodeCharacter{0128}{\~I}
+  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
+  \DeclareUnicodeCharacter{012A}{\=I}
+  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
+  \DeclareUnicodeCharacter{012C}{\u{I}}
+  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
+  \DeclareUnicodeCharacter{0131}{\dotless{i}}
+  \DeclareUnicodeCharacter{0132}{IJ}
+  \DeclareUnicodeCharacter{0133}{ij}
+  \DeclareUnicodeCharacter{0134}{\^J}
+  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+  \DeclareUnicodeCharacter{0139}{\'L}
+  \DeclareUnicodeCharacter{013A}{\'l}
+
+  \DeclareUnicodeCharacter{0141}{\L}
+  \DeclareUnicodeCharacter{0142}{\l}
+  \DeclareUnicodeCharacter{0143}{\'N}
+  \DeclareUnicodeCharacter{0144}{\'n}
+  \DeclareUnicodeCharacter{0147}{\v{N}}
+  \DeclareUnicodeCharacter{0148}{\v{n}}
+  \DeclareUnicodeCharacter{014C}{\=O}
+  \DeclareUnicodeCharacter{014D}{\=o}
+  \DeclareUnicodeCharacter{014E}{\u{O}}
+  \DeclareUnicodeCharacter{014F}{\u{o}}
+
+  \DeclareUnicodeCharacter{0150}{\H{O}}
+  \DeclareUnicodeCharacter{0151}{\H{o}}
+  \DeclareUnicodeCharacter{0152}{\OE}
+  \DeclareUnicodeCharacter{0153}{\oe}
+  \DeclareUnicodeCharacter{0154}{\'R}
+  \DeclareUnicodeCharacter{0155}{\'r}
+  \DeclareUnicodeCharacter{0158}{\v{R}}
+  \DeclareUnicodeCharacter{0159}{\v{r}}
+  \DeclareUnicodeCharacter{015A}{\'S}
+  \DeclareUnicodeCharacter{015B}{\'s}
+  \DeclareUnicodeCharacter{015C}{\^S}
+  \DeclareUnicodeCharacter{015D}{\^s}
+  \DeclareUnicodeCharacter{015E}{\cedilla{S}}
+  \DeclareUnicodeCharacter{015F}{\cedilla{s}}
+
+  \DeclareUnicodeCharacter{0160}{\v{S}}
+  \DeclareUnicodeCharacter{0161}{\v{s}}
+  \DeclareUnicodeCharacter{0162}{\cedilla{t}}
+  \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+  \DeclareUnicodeCharacter{0164}{\v{T}}
+
+  \DeclareUnicodeCharacter{0168}{\~U}
+  \DeclareUnicodeCharacter{0169}{\~u}
+  \DeclareUnicodeCharacter{016A}{\=U}
+  \DeclareUnicodeCharacter{016B}{\=u}
+  \DeclareUnicodeCharacter{016C}{\u{U}}
+  \DeclareUnicodeCharacter{016D}{\u{u}}
+  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
+  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
+
+  \DeclareUnicodeCharacter{0170}{\H{U}}
+  \DeclareUnicodeCharacter{0171}{\H{u}}
+  \DeclareUnicodeCharacter{0174}{\^W}
+  \DeclareUnicodeCharacter{0175}{\^w}
+  \DeclareUnicodeCharacter{0176}{\^Y}
+  \DeclareUnicodeCharacter{0177}{\^y}
+  \DeclareUnicodeCharacter{0178}{\"Y}
+  \DeclareUnicodeCharacter{0179}{\'Z}
+  \DeclareUnicodeCharacter{017A}{\'z}
+  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
+  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
+  \DeclareUnicodeCharacter{017D}{\v{Z}}
+  \DeclareUnicodeCharacter{017E}{\v{z}}
+
+  \DeclareUnicodeCharacter{01C4}{D\v{Z}}
+  \DeclareUnicodeCharacter{01C5}{D\v{z}}
+  \DeclareUnicodeCharacter{01C6}{d\v{z}}
+  \DeclareUnicodeCharacter{01C7}{LJ}
+  \DeclareUnicodeCharacter{01C8}{Lj}
+  \DeclareUnicodeCharacter{01C9}{lj}
+  \DeclareUnicodeCharacter{01CA}{NJ}
+  \DeclareUnicodeCharacter{01CB}{Nj}
+  \DeclareUnicodeCharacter{01CC}{nj}
+  \DeclareUnicodeCharacter{01CD}{\v{A}}
+  \DeclareUnicodeCharacter{01CE}{\v{a}}
+  \DeclareUnicodeCharacter{01CF}{\v{I}}
+
+  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
+  \DeclareUnicodeCharacter{01D1}{\v{O}}
+  \DeclareUnicodeCharacter{01D2}{\v{o}}
+  \DeclareUnicodeCharacter{01D3}{\v{U}}
+  \DeclareUnicodeCharacter{01D4}{\v{u}}
+
+  \DeclareUnicodeCharacter{01E2}{\={\AE}}
+  \DeclareUnicodeCharacter{01E3}{\={\ae}}
+  \DeclareUnicodeCharacter{01E6}{\v{G}}
+  \DeclareUnicodeCharacter{01E7}{\v{g}}
+  \DeclareUnicodeCharacter{01E8}{\v{K}}
+  \DeclareUnicodeCharacter{01E9}{\v{k}}
+
+  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
+  \DeclareUnicodeCharacter{01F1}{DZ}
+  \DeclareUnicodeCharacter{01F2}{Dz}
+  \DeclareUnicodeCharacter{01F3}{dz}
+  \DeclareUnicodeCharacter{01F4}{\'G}
+  \DeclareUnicodeCharacter{01F5}{\'g}
+  \DeclareUnicodeCharacter{01F8}{\`N}
+  \DeclareUnicodeCharacter{01F9}{\`n}
+  \DeclareUnicodeCharacter{01FC}{\'{\AE}}
+  \DeclareUnicodeCharacter{01FD}{\'{\ae}}
+  \DeclareUnicodeCharacter{01FE}{\'{\O}}
+  \DeclareUnicodeCharacter{01FF}{\'{\o}}
+
+  \DeclareUnicodeCharacter{021E}{\v{H}}
+  \DeclareUnicodeCharacter{021F}{\v{h}}
+
+  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
+  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
+  \DeclareUnicodeCharacter{0228}{\cedilla{E}}
+  \DeclareUnicodeCharacter{0229}{\cedilla{e}}
+  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
+  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
+
+  \DeclareUnicodeCharacter{0232}{\=Y}
+  \DeclareUnicodeCharacter{0233}{\=y}
+  \DeclareUnicodeCharacter{0237}{\dotless{j}}
+
+  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
+  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
+  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
+  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
+  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
+  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
+  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
+  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
+  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
+  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
+  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
+  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
+
+  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
+  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
+
+  \DeclareUnicodeCharacter{1E20}{\=G}
+  \DeclareUnicodeCharacter{1E21}{\=g}
+  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
+  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
+  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
+  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
+  \DeclareUnicodeCharacter{1E26}{\"H}
+  \DeclareUnicodeCharacter{1E27}{\"h}
+
+  \DeclareUnicodeCharacter{1E30}{\'K}
+  \DeclareUnicodeCharacter{1E31}{\'k}
+  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
+  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
+  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
+  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
+  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
+  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
+  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
+  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
+  \DeclareUnicodeCharacter{1E3E}{\'M}
+  \DeclareUnicodeCharacter{1E3F}{\'m}
+
+  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
+  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
+  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
+  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
+  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
+  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
+  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
+  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
+  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
+  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
+
+  \DeclareUnicodeCharacter{1E54}{\'P}
+  \DeclareUnicodeCharacter{1E55}{\'p}
+  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
+  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
+  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
+  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
+  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
+  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
+  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
+  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
+
+  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
+  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
+  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
+  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
+  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
+  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
+  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
+  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
+  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
+  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
+
+  \DeclareUnicodeCharacter{1E7C}{\~V}
+  \DeclareUnicodeCharacter{1E7D}{\~v}
+  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
+  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
+
+  \DeclareUnicodeCharacter{1E80}{\`W}
+  \DeclareUnicodeCharacter{1E81}{\`w}
+  \DeclareUnicodeCharacter{1E82}{\'W}
+  \DeclareUnicodeCharacter{1E83}{\'w}
+  \DeclareUnicodeCharacter{1E84}{\"W}
+  \DeclareUnicodeCharacter{1E85}{\"w}
+  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
+  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
+  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
+  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
+  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
+  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
+  \DeclareUnicodeCharacter{1E8C}{\"X}
+  \DeclareUnicodeCharacter{1E8D}{\"x}
+  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
+  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
+
+  \DeclareUnicodeCharacter{1E90}{\^Z}
+  \DeclareUnicodeCharacter{1E91}{\^z}
+  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
+  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
+  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
+  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
+  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
+  \DeclareUnicodeCharacter{1E97}{\"t}
+  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
+  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
+
+  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
+  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
+
+  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
+  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
+  \DeclareUnicodeCharacter{1EBC}{\~E}
+  \DeclareUnicodeCharacter{1EBD}{\~e}
+
+  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
+  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
+  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
+  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
+
+  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
+  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
+
+  \DeclareUnicodeCharacter{1EF2}{\`Y}
+  \DeclareUnicodeCharacter{1EF3}{\`y}
+  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
+
+  \DeclareUnicodeCharacter{1EF8}{\~Y}
+  \DeclareUnicodeCharacter{1EF9}{\~y}
+
+  \DeclareUnicodeCharacter{2013}{--}
+  \DeclareUnicodeCharacter{2014}{---}
+  \DeclareUnicodeCharacter{2022}{\bullet}
+  \DeclareUnicodeCharacter{2026}{\dots}
+  \DeclareUnicodeCharacter{20AC}{\euro}
+
+  \DeclareUnicodeCharacter{2192}{\expansion}
+  \DeclareUnicodeCharacter{21D2}{\result}
+
+  \DeclareUnicodeCharacter{2212}{\minus}
+  \DeclareUnicodeCharacter{2217}{\point}
+  \DeclareUnicodeCharacter{2261}{\equiv}
+}% end of \utfeightchardefs
+
+
+% US-ASCII character definitions.
+\def\asciichardefs{% nothing need be done
+   \relax
+}
+
+% Make non-ASCII characters printable again for compatibility with
+% existing Texinfo documents that may use them, even without declaring a
+% document encoding.
+%
+\setnonasciicharscatcode \other
+
+
+\message{formatting,}
+
 \newdimen\defaultparindent \defaultparindent = 15pt
 
 \chapheadingskip = 15pt plus 4pt minus 2pt
--- a/man/url.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/url.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -413,7 +413,7 @@
 @cindex FTP
 @cindex File Transfer Protocol
 @cindex compressed files
-@findex dired
+@cindex dired
 
 @example
 ftp://@var{user}:@var{password}@@@var{host}:@var{port}/@var{file}
@@ -757,9 +757,8 @@
 
 @defun url-cache-create-filename-using-md5 url
 Creates a cache file name from @var{url} using MD5 hashing.
-@findex md5
-This is creates entries with very few cache collisions and is fast if
-you have the @code{md5} function as a primitive (Emacs 21 and XEmacs).
+This is creates entries with very few cache collisions and is fast.
+@cindex MD5
 @smallexample
 (url-cache-create-filename-using-md5 "http://www.example.com/foo/bar")
   @result{} "/home/fx/.url/cache/fx/http/com/example/www/b8a35774ad20db71c7c3409a5410e74f"
@@ -1055,9 +1054,9 @@
 @node History
 @section History
 
+@findex url-do-setup
 The library can maintain a global history list tracking URLs accessed.
 URL completion can be done from it.  The history mechanism is set up
-@findex url-do-setup
 automatically via @code{url-do-setup} when it is configured to be on.
 Note that the size of the history list is currently not limited.
 
--- a/man/woman.texi	Fri Mar 30 02:06:58 2007 +0000
+++ b/man/woman.texi	Wed Apr 11 00:17:47 2007 +0000
@@ -386,9 +386,9 @@
 UNIX, then WoMan parses that.  Otherwise, if WoMan can find a
 configuration file named (by default) @file{man.conf} (or something very
 similar), which seems to be the standard mechanism under GNU/Linux, then
-it parses that.  To be precise, ``something very similar'' means having
-two name components separated by a dot and respectively containing
-@samp{man} and beginning with @samp{conf}, e.g.@: @file{manual.configuration}.
+it parses that.  To be precise, ``something very similar'' means
+starting with @samp{man} and ending with @samp{.conf} and possibly more
+lowercase letters, e.g.@: @file{manual.configuration}.
 The search path and/or precise full path name for this file are set by
 the value of the customizable user option @code{woman-man.conf-path}.
 If all else fails, WoMan uses a plausible default man search path.
@@ -407,7 +407,10 @@
 @emph{directly}.  Secondly, the last directory component of each element
 of @code{woman-path} is treated as a regular (Emacs) match expression
 rather than a fixed name, which allows collections of related
-directories to be specified succinctly.
+directories to be specified succinctly.  Also, elements of
+@code{woman-manpath} can be conses, indicating a mapping from
+@samp{PATH} environment variable components to man directory
+hierarchies.
 
 For topic completion to work, WoMan must build a list of all the manual
 files that it can access, which can be very slow, especially if a
@@ -477,24 +480,22 @@
 @cindex point, word at
 
 By default, the @code{woman} command uses the word nearest to point in
-the current buffer as a suggestion for the topic to look up.  The topic
-must be confirmed or edited in the minibuffer.  This suggestion can be
-turned off, or @code{woman} can use the suggested topic without
-confirmation if possible, which is controlled by customizing the user
-option @code{woman-topic-at-point} to @code{nil} or @code{t}
-respectively.  (Its default value is neither @code{nil} nor @code{t},
-meaning ask for confirmation.)
+the current buffer as a suggestion for the topic to look up, if it
+exists as a valid topic.  The topic can be confirmed or edited in the
+minibuffer.
 
-The variable @code{woman-topic-at-point} can also be rebound locally
-(using @code{let}), which may be useful to provide special private key
-bindings, e.g.@: this key binding for @kbd{C-c w} runs WoMan on the topic
-at point without seeking confirmation:
+You can also bind the variable @code{woman-use-topic-at-point} locally
+to a non-@code{nil} value (using @code{let}), in which case
+@code{woman} will can use the suggested topic without confirmation if
+possible.  This may be useful to provide special private key bindings,
+e.g.@: this key binding for @kbd{C-c w} runs WoMan on the topic at
+point without seeking confirmation:
 
 @lisp
 (global-set-key "\C-cw"
                 (lambda ()
                   (interactive)
-                  (let ((woman-topic-at-point t))
+                  (let ((woman-use-topic-at-point t))
                     (woman))))
 @end lisp
 
@@ -943,7 +944,9 @@
 manual files.  Each element should be the name of a directory that
 contains subdirectories of the form @file{man?}, or more precisely
 subdirectories selected by the value of @code{woman-manpath-man-regexp}.
-Non-directory and unreadable files are ignored.
+Non-directory and unreadable files are ignored.  This can also contain
+conses, with the car indicating a @code{PATH} variable component mapped
+to the directory tree given in the cdr.
 
 @cindex @code{MANPATH}, environment variable
 If not set then the environment variable @code{MANPATH} is used.  If no
@@ -1086,24 +1089,18 @@
 A string representing the title to use if WoMan adds a Contents menu to
 the menubar.  Default is @code{"CONTENTS"}.
 
-@item woman-topic-at-point
-A symbol, which may be either @code{t}, @code{nil} or @code{confirm},
-that controls the use by @code{woman} of the ``word at point'' as a
-topic suggestion.  If it is non-@code{nil} then the @code{woman} command uses
-the word at point as an initial topic suggestion when it reads a topic
-from the minibuffer; if it is @code{t} then @code{woman} uses the word
-at point @emph{without interactive confirmation} if it exists as a
-topic.  The value @code{confirm} means suggest a topic and ask for
-confirmation.  The default value is that of
-@code{woman-topic-at-point-default}.
+@item woman-use-topic-at-point
+A boolean value that defaults to @code{nil}.  If non-@code{nil} then
+the @code{woman} command uses the word at point as the topic,
+@emph{without interactive confirmation}, if it exists as a topic.
 
-@item woman-topic-at-point-default
-A symbol, which may be either @code{t}, @code{nil} or @code{confirm},
-representing the default value for @code{woman-topic-at-point}.  The
-default value is @code{confirm}.  [The variable
-@code{woman-topic-at-point} may be @code{let}-bound when @code{woman} is
-loaded, in which case its global value does not get defined.  The
-function @code{woman-file-name} sets it to this value if it is unbound.]
+@item woman-use-topic-at-point-default
+A boolean value representing the default value for
+@code{woman-use-topic-at-point}.  The default value is @code{nil}.
+[The variable @code{woman-use-topic-at-point} may be @code{let}-bound
+when @code{woman} is loaded, in which case its global value does not
+get defined.  The function @code{woman-file-name} sets it to this
+value if it is unbound.]
 
 @item woman-uncompressed-file-regexp
 A regular match expression used to select man source files (ignoring any
--- a/nt/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/nt/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,7 @@
+2007-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* INSTALL: Mention the VCVARS32.BAT batch file for VS.NET users.
+
 2007-03-09  Richard Stallman  <rms@gnu.org>
 
 	* INSTALL: Say explicitly this is not for Cygwin.
--- a/nt/INSTALL	Fri Mar 30 02:06:58 2007 +0000
+++ b/nt/INSTALL	Wed Apr 11 00:17:47 2007 +0000
@@ -123,7 +123,10 @@
   The rest of this file assumes you have a working development
   environment.  If you just installed  such an environment, try
   building a trivial C "Hello world" program, and see if it works.  If
-  it doesn't work, resolve that problem first!
+  it doesn't work, resolve that problem first!  If you use Microsoft
+  Visual Studio .NET 2003, don't forget to run the VCVARS32.BAT batch
+  file from the `Bin' subdirectory of the directory where you have
+  installed VS.NET.
 
   If you use the MinGW port of GCC and GNU Make to build Emacs, there
   are some compatibility issues wrt Make and the shell that is run by
--- a/nt/emacs.rc	Fri Mar 30 02:06:58 2007 +0000
+++ b/nt/emacs.rc	Wed Apr 11 00:17:47 2007 +0000
@@ -6,8 +6,8 @@
 #endif
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 22,0,96,0
- PRODUCTVERSION 22,0,96,0
+ FILEVERSION 22,0,97,0
+ PRODUCTVERSION 22,0,97,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, 96, 0\0"
+	    VALUE "FileVersion", "22, 0, 97, 0\0"
 	    VALUE "InternalName", "Emacs\0"
 	    VALUE "LegalCopyright", "Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007\0"
 	    VALUE "OriginalFilename", "emacs.exe"
 	    VALUE "ProductName", "Emacs: The extensible self-documenting text editor\0"
-	    VALUE "ProductVersion", "22, 0, 96, 0\0"
+	    VALUE "ProductVersion", "22, 0, 97, 0\0"
 	    VALUE "OLESelfRegister", "\0"
 	 END
      END
--- a/src/ChangeLog	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/ChangeLog	Wed Apr 11 00:17:47 2007 +0000
@@ -1,3 +1,158 @@
+2007-04-10  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xdisp.c (note_mode_line_or_margin_highlight): Don't decrement
+	glyph pointer before start of glyph row.
+
+2007-04-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* s/darwin.h (__restrict, struct kboard): Remove outdated workarounds.
+	(C_SWITCH_SYSTEM): Remove `-I../mac/src'.
+
+2007-04-09  Martin Rudalics  <rudalics@gmx.at>
+
+	* indent.c (Fmove_to_column): Set next_boundary with correct start pt.
+
+2007-04-08  Richard Stallman  <rms@gnu.org>
+
+	* xdisp.c (syms_of_xdisp) <message-log-max>: Default 100.
+
+2007-04-07  Chong Yidong  <cyd@stupidchicken.com>
+
+	* editfns.c (Ftranspose_regions): Validate interval before setting
+	text properties.
+
+2007-04-03  Eli Zaretskii  <eliz@gnu.org>
+
+	* emacs.c (main): Fix instructions for building Emacs for profiling.
+
+2007-04-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* gtkutil.c (xg_update_menubar): Call g_list_next after moving
+	menu bar item.
+
+2007-04-02  Juanma Barranquero  <lekktu@gmail.com>
+
+	* print.c (Fprin1_to_string): Use macro SPECPDL_INDEX.
+
+2007-04-01  Chong Yidong  <cyd@stupidchicken.com>
+
+	* keymap.c (Fcommand_remapping): New optional argument.
+	(where_is_internal): Use new keymaps argument.
+	(Fkey_binding): Caller changed.
+
+	* keyboard.c (command_loop_1): Caller changed.
+
+2007-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* window.c (Fget_lru_window): Doc fix.
+
+2007-03-30  Chong Yidong  <cyd@stupidchicken.com>
+
+	* undo.c (Fprimitive_undo): Give clearer error message when trying
+	to change text properties outside accessible part of buffer.
+
+2007-03-29  Kim F. Storm  <storm@cua.dk>
+
+	* process.c (wait_reading_process_output) [HAVE_PTYS]:
+	When EIO happens, clear channel from descriptor masks before raising
+	SIGCHLD signal to avoid busy loop between read and sigchld_handler.
+	(sigchld_handler): Remove sleep (2007-03-11 & 2007-03-26 changes).
+
+2007-03-29  Juanma Barranquero  <lekktu@gmail.com>
+
+	* buffer.c (Fset_buffer_major_mode): Check that BUFFER is valid.
+
+	* process.c (Fformat_network_address): Return nil when the
+	argument vector contains invalid values.
+
+2007-03-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* gmalloc.c [HAVE_GTK_AND_PTHREAD]: Define USE_PTHREAD.
+	[USE_PTHREAD]: Include pthread.h.
+	(malloc_init_once_control, _malloc_mutex) [USE_PTHREAD]: New variables.
+	(malloc_initialize_1): New function created from __malloc_initialize.
+	(__malloc_initialize): Use it.
+	(LOCK, UNLOCK): New macros to make malloc etc. thread safe.
+	(_malloc_internal, _free_internal, _realloc_internal): Use them.
+
+	* lread.c (readchar): Extend BLOCK_INPUT block to ferror/clearerr.
+
+2007-03-27  Juanma Barranquero  <lekktu@gmail.com>
+
+	* process.c (Fformat_network_address): Make args array big enough
+	to format IPv6 addresses.
+
+2007-03-27  Glenn Morris  <rgm@gnu.org>
+
+	* m/hp800.h: Restore HP-UX support (removed 2007-01-29).
+
+2007-03-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macfns.c (Fx_display_mm_height, Fx_display_mm_width): Scale whole
+	screen size in pixels by millimeters per pixel of main display.
+
+	* macselect.c (get_scrap_target_type_list, x_own_selection):
+	Move assignments outside predicate macros.
+	(Vselection_converter_alist): Doc fix.
+
+	* macterm.c (create_text_encoding_info_alist): Move assignments
+	outside predicate macros.
+	(mac_initialize_display_info) [MAC_OSX]: dpyinfo->height and
+	dpyinfo->width are those of whole screen.
+
+2007-03-26  Sam Steingold  <sds@gnu.org>
+
+	* process.c (sigchld_handler): Delay by 1ms instead of 1s to
+	alleviate sluggishness (the original problem is still fixed).
+
+2007-03-25  Kim F. Storm  <storm@cua.dk>
+
+	* intervals.c (merge_properties): Use explicit loop instead of
+	Fplist_member to avoid QUIT.  Don't use Fcdr.
+	(intervals_equal): Likewise.  Rewrite loop to perform length check
+	on the fly rather than calling Flength.  Don't use Fcar.
+
+2007-03-24  Eli Zaretskii  <eliz@gnu.org>
+
+	* editfns.c (Fgoto_char): Doc fix.
+
+	* indent.c (Findent_to): Doc fix.
+
+2007-03-24  Chong Yidong  <cyd@stupidchicken.com>
+
+	* editfns.c (Ftranspose_regions): Use set_text_properties_1
+	instead of Fset_text_properties to avoid GC.  Signal after change.
+
+2007-03-24  Eli Zaretskii  <eliz@gnu.org>
+
+	* xfns.c (Fx_show_tip): Doc fix.
+
+	* macfns.c (Fx_show_tip): Doc fix.
+
+	* w32fns.c (Fx_show_tip): Doc fix.
+
+2007-03-23  Kim F. Storm  <storm@cua.dk>
+
+	* intervals.c (merge_properties, intervals_equal):
+	Use Fplist_member instead of Fmemq to find properties.
+
+2007-03-23  Glenn Morris  <rgm@gnu.org>
+
+	* unexhp9k800.c: Restore file with clarified legal status.
+	* m/sr2k.h: Restore since dependency unexhp9k800.c is restored.
+
+2007-03-22  Chong Yidong  <cyd@stupidchicken.com>
+
+	* widget.c (EmacsFrameSetCharSize): Catch X errors.
+
+2007-03-22  Kenichi Handa  <handa@m17n.org>
+
+	* fileio.c (Fcopy_file): Call barf_or_query_if_file_exists with
+	non-encoded file name.
+	(Frename_file): Likewise.
+	(Fadd_name_to_file): Likewise.
+	(Fmake_symbolic_link): Likewise.
+
 2007-03-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* Makefile.in (alloca.o, gtkutil.o): Depend on systime.h.
@@ -25,9 +180,9 @@
 	* print.c: Include blockinput.h.
 	(Fredirect_debugging_output): Add BLOCK_INPUT around fclose.
 
-	* process.c (Fmake_network_process) [HAVE_GETADDRINFO]: Clear
-	immediate_quit before calling freeaddrinfo.  Add BLOCK_INPUT
-	around freeaddrinfo.
+	* process.c (Fmake_network_process) [HAVE_GETADDRINFO]:
+	Clear immediate_quit before calling freeaddrinfo.
+	Add BLOCK_INPUT around freeaddrinfo.
 
 	* term.c: Include blockinput.h.
 	(write_glyphs, insert_glyphs): Add BLOCK_INPUT around fwrite.
@@ -51,8 +206,8 @@
 	(x_activate_menubar, mac_menu_show): Set it during menu tracking.
 	(popup_activated): New function.
 
-	* xdisp.c (redisplay_internal, note_mouse_highlight): Check
-	popup_activated for MAC_OS.
+	* xdisp.c (redisplay_internal, note_mouse_highlight):
+	Check popup_activated for MAC_OS.
 
 2007-03-17  Juanma Barranquero  <lekktu@gmail.com>
 
@@ -491,9 +646,9 @@
 
 2007-01-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
-	* macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Don't
-	pass keyboard modifiers to mac_store_drag_event, but put them as
-	kEventParamKeyModifiers Apple event parameter.
+	* macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag):
+	Don't pass keyboard modifiers to mac_store_drag_event, but put
+	them as kEventParamKeyModifiers Apple event parameter.
 
 2007-01-21  Chong Yidong  <cyd@stupidchicken.com>
 
@@ -577,8 +732,8 @@
 	(mac_dialog) [TARGET_API_MAC_CARBON]: Remove function.
 	(mac_dialog_show) [TARGET_API_MAC_CARBON]: Use create_and_show_dialog.
 
-	* macterm.c (x_free_frame_resources) [USE_CG_DRAWING]: Call
-	mac_prepare_for_quickdraw.
+	* macterm.c (x_free_frame_resources) [USE_CG_DRAWING]:
+	Call mac_prepare_for_quickdraw.
 	(quit_char, make_ctrl_char) [TARGET_API_MAC_CARBON]: Move externs
 	outside #ifdef MAC_OSX.
 	(mac_quit_char_key_p) [TARGET_API_MAC_CARBON]: Move function
@@ -2230,8 +2385,8 @@
 
 2006-08-28  Kenichi Handa  <handa@m17n.org>
 
-	* coding.c (Fdetect_coding_region, Fdetect_coding_string): Fix
-	docstring about ISO-2022 control characters.
+	* coding.c (Fdetect_coding_region, Fdetect_coding_string):
+	Fix docstring about ISO-2022 control characters.
 
 2006-08-28  Kim F. Storm  <storm@cua.dk>
 
@@ -2454,7 +2609,7 @@
 2006-08-09  Kenichi Handa  <handa@m17n.org>
 
 	* coding.c (syms_of_coding): Improve the docstring
-	file-coding-system-alist.
+	of file-coding-system-alist.
 
 2006-08-07  Andreas Schwab  <schwab@suse.de>
 
@@ -3402,8 +3557,8 @@
 	* macterm.c (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
 	(mac_font_panel_visible_p, mac_show_hide_font_panel)
 	[USE_MAC_FONT_PANEL]: New functions.
-	[USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection): Return
-	immediately if font panel is not visible.
+	[USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection):
+	Return immediately if font panel is not visible.
 
 	* macterm.h (mac_font_panel_visible_p, mac_show_hide_font_panel):
 	Add externs.
@@ -3422,8 +3577,8 @@
 
 2006-05-29  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* sound.c (alsa_open, alsa_configure, alsa_write): Move
-	assignment to err out of if-statement.
+	* sound.c (alsa_open, alsa_configure, alsa_write):
+	Move assignment to err out of if-statement.
 
 	* gtkutil.c (menu_nav_ended): New function.
 	(create_menus): Connect menu_nav_ended to "selection-done" to fix
@@ -3838,8 +3993,8 @@
 	(Qpanel_closed, Qselection) [USE_MAC_FONT_PANEL]: Likewise.
 	(syms_of_macterm): Intern and staticpro them.
 	(init_font_name_table) [USE_ATSUI]: Add data to Vmac_atsu_font_table.
-	[TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event): New
-	function.
+	[TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event):
+	New function.
 	[USE_CARBON_EVENTS] (mac_handle_command_event): Use it.
 	[MAC_OSX] (mac_store_services_event): Likewise.
 	[USE_CARBON_EVENTS] (mac_handle_window_event) [MAC_OSX]: Handle
@@ -3891,8 +4046,8 @@
 	[TARGET_API_MAC_CARBON] (create_apple_event): New function.
 	[TARGET_API_MAC_CARBON] (create_apple_event_from_event_ref): Use it.
 	Use xrealloc instead of repeated xmalloc/xfree.
-	[TARGET_API_MAC_CARBON] (create_apple_event_from_drag_ref): New
-	function.
+	[TARGET_API_MAC_CARBON] (create_apple_event_from_drag_ref):
+	New function.
 
 	* macmenu.c (restore_menu_items, cleanup_popup_menu): Return a value.
 
@@ -5752,8 +5907,8 @@
 	objects until we are done with the parsing.
 	(parse_single_submenu, digest_single_submenu): New functions.
 	(single_submenu): Function deleted, replaced by those two.
-	(install_menu_quit_handler) [HAVE_CANCELMENUTRACKING]: Don't
-	create or dispose of EventHandlerUPP.  Install hander to all submenus.
+	(install_menu_quit_handler) [HAVE_CANCELMENUTRACKING]: Don't create
+	or dispose of EventHandlerUPP.  Install hander to all submenus.
 	(mac_menu_show) [!HAVE_MULTILINGUAL_MENU]: Use ENCODE_MENU_STRING
 	instead of ENCODE_SYSTEM.
 	(free_frame_menubar, fill_submenu, fill_menu): Don't use NULL for
--- a/src/ChangeLog.5	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/ChangeLog.5	Wed Apr 11 00:17:47 2007 +0000
@@ -1789,7 +1789,7 @@
 
 	* textprop.c (Fnext_property_change): Fix previous change.
 
-1995-03-23  Kevin Rodgers  <kevinr@ihs.com>
+1995-03-23  Kevin Rodgers  <kevinr@ihs.com> (tiny change)
 
 	* print.c (temp_output_buffer_setup): (Re)set the default
 	directory of the temp buffer to that of the current buffer.
--- a/src/buffer.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/buffer.c	Wed Apr 11 00:17:47 2007 +0000
@@ -1615,6 +1615,8 @@
   int count;
   Lisp_Object function;
 
+  CHECK_BUFFER (buffer);
+
   if (STRINGP (XBUFFER (buffer)->name)
       && strcmp (SDATA (XBUFFER (buffer)->name), "*scratch*") == 0)
     function = find_symbol_value (intern ("initial-major-mode"));
--- a/src/editfns.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/editfns.c	Wed Apr 11 00:17:47 2007 +0000
@@ -272,7 +272,9 @@
 
 DEFUN ("goto-char", Fgoto_char, Sgoto_char, 1, 1, "NGoto char: ",
        doc: /* Set point to POSITION, a number or marker.
-Beginning of buffer is position (point-min), end is (point-max).  */)
+Beginning of buffer is position (point-min), end is (point-max).
+
+The return value is POSITION.  */)
      (position)
      register Lisp_Object position;
 {
@@ -4261,7 +4263,10 @@
   int gap, len1, len_mid, len2;
   unsigned char *start1_addr, *start2_addr, *temp;
 
-  INTERVAL cur_intv, tmp_interval1, tmp_interval_mid, tmp_interval2;
+  INTERVAL cur_intv, tmp_interval1, tmp_interval_mid, tmp_interval2, tmp_interval3;
+  Lisp_Object buf;
+
+  XSETBUFFER (buf, current_buffer);
   cur_intv = BUF_INTERVALS (current_buffer);
 
   validate_region (&startr1, &endr1);
@@ -4368,8 +4373,11 @@
 
       tmp_interval1 = copy_intervals (cur_intv, start1, len1);
       tmp_interval2 = copy_intervals (cur_intv, start2, len2);
-      Fset_text_properties (make_number (start1), make_number (end2),
-			    Qnil, Qnil);
+      /* Don't use Fset_text_properties: that can cause GC, which can
+	 clobber objects stored in the tmp_intervals.  */
+      tmp_interval3 = validate_interval_range (buf, &startr1, &endr2, 0);
+      if (!NULL_INTERVAL_P (tmp_interval3))
+	set_text_properties_1 (startr1, endr2, Qnil, buf, tmp_interval3);
 
       /* First region smaller than second.  */
       if (len1_byte < len2_byte)
@@ -4425,10 +4433,14 @@
           record_change (start2, len2);
           tmp_interval1 = copy_intervals (cur_intv, start1, len1);
           tmp_interval2 = copy_intervals (cur_intv, start2, len2);
-          Fset_text_properties (make_number (start1), make_number (end1),
-				Qnil, Qnil);
-          Fset_text_properties (make_number (start2), make_number (end2),
-				Qnil, Qnil);
+
+	  tmp_interval3 = validate_interval_range (buf, &startr1, &endr1, 0);
+	  if (!NULL_INTERVAL_P (tmp_interval3))
+	    set_text_properties_1 (startr1, endr1, Qnil, buf, tmp_interval3);
+
+	  tmp_interval3 = validate_interval_range (buf, &startr2, &endr2, 0);
+	  if (!NULL_INTERVAL_P (tmp_interval3))
+	    set_text_properties_1 (startr2, endr2, Qnil, buf, tmp_interval3);
 
 	  SAFE_ALLOCA (temp, unsigned char *, len1_byte);
 	  start1_addr = BYTE_POS_ADDR (start1_byte);
@@ -4454,8 +4466,10 @@
           tmp_interval1 = copy_intervals (cur_intv, start1, len1);
           tmp_interval_mid = copy_intervals (cur_intv, end1, len_mid);
           tmp_interval2 = copy_intervals (cur_intv, start2, len2);
-          Fset_text_properties (make_number (start1), make_number (end2),
-				Qnil, Qnil);
+
+	  tmp_interval3 = validate_interval_range (buf, &startr1, &endr2, 0);
+	  if (!NULL_INTERVAL_P (tmp_interval3))
+	    set_text_properties_1 (startr1, endr2, Qnil, buf, tmp_interval3);
 
 	  /* holds region 2 */
 	  SAFE_ALLOCA (temp, unsigned char *, len2_byte);
@@ -4485,8 +4499,10 @@
           tmp_interval1 = copy_intervals (cur_intv, start1, len1);
           tmp_interval_mid = copy_intervals (cur_intv, end1, len_mid);
           tmp_interval2 = copy_intervals (cur_intv, start2, len2);
-          Fset_text_properties (make_number (start1), make_number (end2),
-				Qnil, Qnil);
+
+	  tmp_interval3 = validate_interval_range (buf, &startr1, &endr2, 0);
+	  if (!NULL_INTERVAL_P (tmp_interval3))
+	    set_text_properties_1 (startr1, endr2, Qnil, buf, tmp_interval3);
 
 	  /* holds region 1 */
 	  SAFE_ALLOCA (temp, unsigned char *, len1_byte);
@@ -4521,6 +4537,8 @@
       fix_start_end_in_overlays (start1, end2);
     }
 
+  signal_after_change (XINT (start1), XINT (end2 - start1),
+		       XINT (end2 - start1));
   return Qnil;
 }
 
--- a/src/emacs.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/emacs.c	Wed Apr 11 00:17:47 2007 +0000
@@ -1739,8 +1739,9 @@
   /* Set up for profiling.  This is known to work on FreeBSD,
      GNU/Linux and MinGW.  It might work on some other systems too.
      Give it a try and tell us if it works on your system.  To compile
-     for profiling use something like:
-       `make CFLAGS="-pg -g -O -DPROFILING=1'.  */
+     for profiling, add -pg to the switches your platform uses in
+     CFLAGS and LDFLAGS.  For example:
+       `make CFLAGS="-pg -g -O -DPROFILING=1" LDFLAGS="-pg -g"'.  */
 #if defined (__FreeBSD__) || defined (GNU_LINUX) || defined(__MINGW32__)
 #ifdef PROFILING
   if (initialized)
--- a/src/fileio.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/fileio.c	Wed Apr 11 00:17:47 2007 +0000
@@ -2476,7 +2476,7 @@
 
   if (NILP (ok_if_already_exists)
       || INTEGERP (ok_if_already_exists))
-    barf_or_query_if_file_exists (encoded_newname, "copy to it",
+    barf_or_query_if_file_exists (newname, "copy to it",
 				  INTEGERP (ok_if_already_exists), &out_st, 0);
   else if (stat (SDATA (encoded_newname), &out_st) < 0)
     out_st.st_mode = 0;
@@ -2785,7 +2785,7 @@
 #endif
   if (NILP (ok_if_already_exists)
       || INTEGERP (ok_if_already_exists))
-    barf_or_query_if_file_exists (encoded_newname, "rename to it",
+    barf_or_query_if_file_exists (newname, "rename to it",
 				  INTEGERP (ok_if_already_exists), 0, 0);
 #ifndef BSD4_1
   if (0 > rename (SDATA (encoded_file), SDATA (encoded_newname)))
@@ -2862,7 +2862,7 @@
 
   if (NILP (ok_if_already_exists)
       || INTEGERP (ok_if_already_exists))
-    barf_or_query_if_file_exists (encoded_newname, "make it a new name",
+    barf_or_query_if_file_exists (newname, "make it a new name",
 				  INTEGERP (ok_if_already_exists), 0, 0);
 
   unlink (SDATA (newname));
@@ -2923,7 +2923,7 @@
 
   if (NILP (ok_if_already_exists)
       || INTEGERP (ok_if_already_exists))
-    barf_or_query_if_file_exists (encoded_linkname, "make it a link",
+    barf_or_query_if_file_exists (linkname, "make it a link",
 				  INTEGERP (ok_if_already_exists), 0, 0);
   if (0 > symlink (SDATA (encoded_filename),
 		   SDATA (encoded_linkname)))
--- a/src/gmalloc.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/gmalloc.c	Wed Apr 11 00:17:47 2007 +0000
@@ -1,6 +1,9 @@
 /* This file is no longer automatically generated from libc.  */
 
 #define _MALLOC_INTERNAL
+#ifdef HAVE_GTK_AND_PTHREAD
+#define USE_PTHREAD
+#endif
 
 /* The malloc headers and source files from the C library follow here.  */
 
@@ -73,6 +76,10 @@
 #include <unistd.h>
 #endif
 
+#ifdef USE_PTHREAD
+#include <pthread.h>
+#endif
+
 #endif	/* _MALLOC_INTERNAL.  */
 
 
@@ -229,6 +236,15 @@
 extern __ptr_t _realloc_internal PP ((__ptr_t __ptr, __malloc_size_t __size));
 extern void _free_internal PP ((__ptr_t __ptr));
 
+#ifdef USE_PTHREAD
+extern pthread_mutex_t _malloc_mutex;
+#define LOCK()     pthread_mutex_lock (&_malloc_mutex)
+#define UNLOCK()   pthread_mutex_unlock (&_malloc_mutex)
+#else
+#define LOCK()
+#define UNLOCK()
+#endif
+
 #endif /* _MALLOC_INTERNAL.  */
 
 /* Given an address in the middle of a malloc'd object,
@@ -536,13 +552,14 @@
     _heapinfo[block + blocks].busy.info.size = -blocks;
 }
 
-/* Set everything up and remember that we have.  */
-int
-__malloc_initialize ()
+#ifdef USE_PTHREAD
+static pthread_once_t malloc_init_once_control = PTHREAD_ONCE_INIT;
+pthread_mutex_t _malloc_mutex;
+#endif
+
+static void
+malloc_initialize_1 ()
 {
-  if (__malloc_initialized)
-    return 0;
-
 #ifdef GC_MCHECK
   mcheck (NULL);
 #endif
@@ -550,10 +567,21 @@
   if (__malloc_initialize_hook)
     (*__malloc_initialize_hook) ();
 
+#ifdef USE_PTHREAD
+  {
+    pthread_mutexattr_t attr;
+
+    pthread_mutexattr_init (&attr);
+    pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE);
+    pthread_mutex_init (&_malloc_mutex, &attr);
+    pthread_mutexattr_destroy (&attr);
+  }
+#endif
+
   heapsize = HEAP / BLOCKSIZE;
   _heapinfo = (malloc_info *) align (heapsize * sizeof (malloc_info));
   if (_heapinfo == NULL)
-    return 0;
+    return;
   memset (_heapinfo, 0, heapsize * sizeof (malloc_info));
   _heapinfo[0].free.size = 0;
   _heapinfo[0].free.next = _heapinfo[0].free.prev = 0;
@@ -565,7 +593,23 @@
 
   __malloc_initialized = 1;
   PROTECT_MALLOC_STATE (1);
-  return 1;
+  return;
+}
+
+/* Set everything up and remember that we have.  */
+int
+__malloc_initialize ()
+{
+#ifdef USE_PTHREAD
+  pthread_once (&malloc_init_once_control, malloc_initialize_1);
+#else
+  if (__malloc_initialized)
+    return 0;
+
+  malloc_initialize_1 ();
+#endif
+
+  return __malloc_initialized;
 }
 
 static int morecore_recursing;
@@ -708,6 +752,7 @@
     return NULL;
 #endif
 
+  LOCK ();
   PROTECT_MALLOC_STATE (0);
 
   if (size < sizeof (struct list))
@@ -765,7 +810,7 @@
 	  if (result == NULL)
 	    {
 	      PROTECT_MALLOC_STATE (1);
-	      return NULL;
+	      goto out;
 	    }
 
 	  /* Link all fragments but the first into the free list.  */
@@ -831,7 +876,7 @@
 		}
 	      result = morecore (wantblocks * BLOCKSIZE);
 	      if (result == NULL)
-		return NULL;
+		goto out;
 	      block = BLOCK (result);
 	      /* Put the new block at the end of the free list.  */
 	      _heapinfo[block].free.size = wantblocks;
@@ -886,6 +931,8 @@
     }
 
   PROTECT_MALLOC_STATE (1);
+ out:
+  UNLOCK ();
   return result;
 }
 
@@ -996,6 +1043,7 @@
   if (ptr == NULL)
     return;
 
+  LOCK ();
   PROTECT_MALLOC_STATE (0);
 
   for (l = _aligned_blocks; l != NULL; l = l->next)
@@ -1221,6 +1269,7 @@
     }
 
   PROTECT_MALLOC_STATE (1);
+  UNLOCK ();
 }
 
 /* Return memory to the heap.  */
@@ -1384,6 +1433,7 @@
 
   block = BLOCK (ptr);
 
+  LOCK ();
   PROTECT_MALLOC_STATE (0);
 
   type = _heapinfo[block].busy.type;
@@ -1398,7 +1448,7 @@
 	    {
 	      memcpy (result, ptr, size);
 	      _free_internal (ptr);
-	      return result;
+	      goto out;
 	    }
 	}
 
@@ -1451,7 +1501,7 @@
 		  (void) _malloc_internal (blocks * BLOCKSIZE);
 		  _free_internal (previous);
 		}
-	      return NULL;
+	      goto out;
 	    }
 	  if (ptr != result)
 	    memmove (result, ptr, blocks * BLOCKSIZE);
@@ -1471,7 +1521,7 @@
 	     and copy the lesser of the new size and the old. */
 	  result = _malloc_internal (size);
 	  if (result == NULL)
-	    return NULL;
+	    goto out;
 	  memcpy (result, ptr, min (size, (__malloc_size_t) 1 << type));
 	  _free_internal (ptr);
 	}
@@ -1479,6 +1529,8 @@
     }
 
   PROTECT_MALLOC_STATE (1);
+ out:
+  UNLOCK ();
   return result;
 }
 
--- a/src/gtkutil.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/gtkutil.c	Wed Apr 11 00:17:47 2007 +0000
@@ -2506,6 +2506,7 @@
           g_list_free (*list);
           *list = iter = gtk_container_get_children (GTK_CONTAINER (menubar));
           while (nr-- > 0) iter = g_list_next (iter);
+          if (iter) iter = g_list_next (iter);
           val = val->next;
           ++pos;
       }
--- a/src/indent.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/indent.c	Wed Apr 11 00:17:47 2007 +0000
@@ -735,7 +735,9 @@
 DEFUN ("indent-to", Findent_to, Sindent_to, 1, 2, "NIndent to column: ",
        doc: /* Indent from point with tabs and spaces until COLUMN is reached.
 Optional second argument MINIMUM says always do at least MINIMUM spaces
-even if that goes past COLUMN; by default, MINIMUM is zero.  */)
+even if that goes past COLUMN; by default, MINIMUM is zero.
+
+The return value is COLUMN.  */)
      (column, minimum)
      Lisp_Object column, minimum;
 {
@@ -949,7 +951,6 @@
   pos = PT;
   pos_byte = PT_BYTE;
   end = ZV;
-  next_boundary = pos;
 
   /* If we're starting past the desired column,
      back up to beginning of line and scan from there.  */
@@ -961,6 +962,8 @@
       col = 0;
     }
 
+  next_boundary = pos;
+
   while (pos < end)
     {
       while (pos == next_boundary)
--- a/src/intervals.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/intervals.c	Wed Apr 11 00:17:47 2007 +0000
@@ -125,18 +125,24 @@
   while (CONSP (o))
     {
       sym = XCAR (o);
-      val = Fmemq (sym, target->plist);
+      o = XCDR (o);
+      CHECK_CONS (o);
+
+      val = target->plist;
+      while (CONSP (val) && !EQ (XCAR (val), sym))
+	{
+	  val = XCDR (val);
+	  if (!CONSP (val))
+	    break;
+	  val = XCDR (val);
+	}
 
       if (NILP (val))
 	{
-	  o = XCDR (o);
-	  CHECK_CONS (o);
 	  val = XCAR (o);
 	  target->plist = Fcons (sym, Fcons (val, target->plist));
-	  o = XCDR (o);
 	}
-      else
-	o = Fcdr (XCDR (o));
+      o = XCDR (o);
     }
 }
 
@@ -147,8 +153,8 @@
 intervals_equal (i0, i1)
      INTERVAL i0, i1;
 {
-  register Lisp_Object i0_cdr, i0_sym, i1_val;
-  register int i1_len;
+  register Lisp_Object i0_cdr, i0_sym;
+  register Lisp_Object i1_cdr, i1_val;
 
   if (DEFAULT_INTERVAL_P (i0) && DEFAULT_INTERVAL_P (i1))
     return 1;
@@ -156,39 +162,43 @@
   if (DEFAULT_INTERVAL_P (i0) || DEFAULT_INTERVAL_P (i1))
     return 0;
 
-  i1_len = XFASTINT (Flength (i1->plist));
-  if (i1_len & 0x1)		/* Paranoia -- plists are always even */
-    abort ();
-  i1_len /= 2;
   i0_cdr = i0->plist;
-  while (CONSP (i0_cdr))
+  i1_cdr = i1->plist;
+  while (CONSP (i0_cdr) && CONSP (i1_cdr))
     {
-      /* Lengths of the two plists were unequal.  */
-      if (i1_len == 0)
-	return 0;
-
       i0_sym = XCAR (i0_cdr);
-      i1_val = Fmemq (i0_sym, i1->plist);
+      i0_cdr = XCDR (i0_cdr);
+      if (!CONSP (i0_cdr))
+	return 0;		/* abort (); */
+      i1_val = i1->plist;
+      while (CONSP (i1_val) && !EQ (XCAR (i1_val), i0_sym))
+	{
+	  i1_val = XCDR (i1_val);
+	  if (!CONSP (i1_val))
+	    return 0;		/* abort (); */
+	  i1_val = XCDR (i1_val);
+	}
 
       /* i0 has something i1 doesn't.  */
       if (EQ (i1_val, Qnil))
 	return 0;
 
       /* i0 and i1 both have sym, but it has different values in each.  */
-      i0_cdr = XCDR (i0_cdr);
-      CHECK_CONS (i0_cdr);
-      if (!EQ (Fcar (Fcdr (i1_val)), XCAR (i0_cdr)))
+      if (!CONSP (i1_val)
+	  || (i1_val = XCDR (i1_val), !CONSP (i1_val))
+	  || !EQ (XCAR (i1_val), XCAR (i0_cdr)))
 	return 0;
 
       i0_cdr = XCDR (i0_cdr);
-      i1_len--;
+
+      i1_cdr = XCDR (i1_cdr);
+      if (!CONSP (i1_cdr))
+	return 0;		/* abort (); */
+      i1_cdr = XCDR (i1_cdr);
     }
 
-  /* Lengths of the two plists were unequal.  */
-  if (i1_len > 0)
-    return 0;
-
-  return 1;
+  /* Lengths of the two plists were equal.  */
+  return (NILP (i0_cdr) && NILP (i1_cdr));
 }
 
 
@@ -2538,7 +2548,7 @@
 	  temp = CHAR_TO_BYTE (left_end);
 
 	  /* If LEFT_END_BYTE is in the middle of a character,
-	     adjust it and LEFT_END to a char boundary.  */ 
+	     adjust it and LEFT_END to a char boundary.  */
 	  if (left_end_byte > temp)
 	    {
 	      left_end_byte = temp;
@@ -2570,7 +2580,7 @@
 	  right_start = BYTE_TO_CHAR (right_start_byte);
 
 	  /* If RIGHT_START_BYTE is in the middle of a character,
-	     adjust it and RIGHT_START to a char boundary.  */ 
+	     adjust it and RIGHT_START to a char boundary.  */
 	  temp = CHAR_TO_BYTE (right_start);
 
 	  if (right_start_byte < temp)
--- a/src/keyboard.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/keyboard.c	Wed Apr 11 00:17:47 2007 +0000
@@ -1691,7 +1691,7 @@
       if (SYMBOLP (cmd))
 	{
 	  Lisp_Object cmd1;
-	  if (cmd1 = Fcommand_remapping (cmd, Qnil), !NILP (cmd1))
+	  if (cmd1 = Fcommand_remapping (cmd, Qnil, Qnil), !NILP (cmd1))
 	    cmd = cmd1;
 	}
 
@@ -8822,9 +8822,9 @@
      of the place where a mouse click occurred.  */
   volatile int localized_local_map = 0;
 
-  /* The index in defs[] of the first keymap that has a binding for
+  /* The index in submaps[] of the first keymap that has a binding for
      this key sequence.  In other words, the lowest i such that
-     defs[i] is non-nil.  */
+     submaps[i] is non-nil.  */
   volatile int first_binding;
   /* Index of the first key that has no binding.
      It is useless to try fkey.start larger than that.  */
--- a/src/keymap.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/keymap.c	Wed Apr 11 00:17:47 2007 +0000
@@ -1257,23 +1257,42 @@
 
 /* This function may GC (it calls Fkey_binding).  */
 
-DEFUN ("command-remapping", Fcommand_remapping, Scommand_remapping, 1, 2, 0,
-       doc: /* Return the remapping for command COMMAND in current keymaps.
+DEFUN ("command-remapping", Fcommand_remapping, Scommand_remapping, 1, 3, 0,
+       doc: /* Return the remapping for command COMMAND.
 Returns nil if COMMAND is not remapped (or not a symbol).
 
 If the optional argument POSITION is non-nil, it specifies a mouse
 position as returned by `event-start' and `event-end', and the
 remapping occurs in the keymaps associated with it.  It can also be a
 number or marker, in which case the keymap properties at the specified
-buffer position instead of point are used. */)
-     (command, position)
-     Lisp_Object command, position;
+buffer position instead of point are used.  The KEYMAPS argument is
+ignored if POSITION is non-nil.
+
+If the optional argument KEYMAPS is non-nil, it should be a list of
+keymaps to search for command remapping.  Otherwise, search for the
+remapping in all currently active keymaps.  */)
+     (command, position, keymaps)
+     Lisp_Object command, position, keymaps;
 {
   if (!SYMBOLP (command))
     return Qnil;
 
   ASET (command_remapping_vector, 1, command);
-  return Fkey_binding (command_remapping_vector, Qnil, Qt, position);
+
+  if (NILP (keymaps))
+    return Fkey_binding (command_remapping_vector, Qnil, Qt, position);
+  else
+    {
+      Lisp_Object maps, binding;
+
+      for (maps = keymaps; !NILP (maps); maps = Fcdr (maps))
+	{
+	  binding = Flookup_key (Fcar (maps), command_remapping_vector, Qnil);
+	  if (!NILP (binding) && !INTEGERP (binding))
+	    return binding;
+	}
+      return Qnil;
+    }
 }
 
 /* Value is number if KEY is too long; nil if valid but has no definition. */
@@ -1434,8 +1453,10 @@
 static Lisp_Object *cmm_modes = NULL, *cmm_maps = NULL;
 static int cmm_size = 0;
 
-/* Store a pointer to an array of the keymaps of the currently active
-   minor modes in *buf, and return the number of maps it contains.
+/* Store a pointer to an array of the currently active minor modes in
+   *modeptr, a pointer to an array of the keymaps of the currently
+   active minor modes in *mapptr, and return the number of maps
+   *mapptr contains.
 
    This function always returns a pointer to the same buffer, and may
    free or reallocate it, so if you want to keep it for a long time or
@@ -1801,7 +1822,7 @@
   if (NILP (no_remap) && SYMBOLP (value))
     {
       Lisp_Object value1;
-      if (value1 = Fcommand_remapping (value, position), !NILP (value1))
+      if (value1 = Fcommand_remapping (value, position, Qnil), !NILP (value1))
 	value = value1;
     }
 
@@ -2546,15 +2567,6 @@
   /* 1 means ignore all menu bindings entirely.  */
   int nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii);
 
-  /* If this command is remapped, then it has no key bindings
-     of its own.  */
-  if (NILP (no_remap) && SYMBOLP (definition))
-    {
-      Lisp_Object tem;
-      if (tem = Fcommand_remapping (definition, Qnil), !NILP (tem))
-	return Qnil;
-    }
-
   found = keymaps;
   while (CONSP (found))
     {
@@ -2568,6 +2580,13 @@
   found = Qnil;
   sequences = Qnil;
 
+  /* If this command is remapped, then it has no key bindings
+     of its own.  */
+  if (NILP (no_remap)
+      && SYMBOLP (definition)
+      && !NILP (Fcommand_remapping (definition, Qnil, keymaps)))
+    RETURN_UNGCPRO (Qnil);
+
   for (; !NILP (maps); maps = Fcdr (maps))
     {
       /* Key sequence to reach map, and the map that it reaches */
--- a/src/keymap.h	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/keymap.h	Wed Apr 11 00:17:47 2007 +0000
@@ -29,7 +29,7 @@
 EXFUN (Fkeymap_prompt, 1);
 EXFUN (Fdefine_key, 3);
 EXFUN (Flookup_key, 3);
-EXFUN (Fcommand_remapping, 2);
+EXFUN (Fcommand_remapping, 3);
 EXFUN (Fkey_binding, 4);
 EXFUN (Fkey_description, 2);
 EXFUN (Fsingle_key_description, 2);
--- a/src/lread.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/lread.c	Wed Apr 11 00:17:47 2007 +0000
@@ -498,20 +498,21 @@
 
   BLOCK_INPUT;
   c = getc (instream);
-  UNBLOCK_INPUT;
 
 #ifdef EINTR
   /* Interrupted reads have been observed while reading over the network */
   while (c == EOF && ferror (instream) && errno == EINTR)
     {
+      UNBLOCK_INPUT;
       QUIT;
-      clearerr (instream);
       BLOCK_INPUT;
+      clearerr (instream);
       c = getc (instream);
-      UNBLOCK_INPUT;
     }
 #endif
 
+  UNBLOCK_INPUT;
+
   return (c == EOF ? -1 : c);
 }
 
--- a/src/m/hp800.h	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/m/hp800.h	Wed Apr 11 00:17:47 2007 +0000
@@ -69,10 +69,9 @@
 #define XSET(var, type, ptr) \
    ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS))
 
-/* Definitions for GNU/Linux.  (HP/UX is unsupported because of the
-   removal of unexhp9k800.c due to lack of legal papers.)  */
+/* Common definitions for HPUX and GNU/Linux.  */
 
-#ifdef GNU_LINUX
+#if defined (__hpux) || defined (GNU_LINUX)
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -94,6 +93,12 @@
 
 #define NO_REMAP
 
+#endif /* __hpux or GNU_LINUX */
+
+/* Stuff for just GNU/Linux.  */
+
+#ifdef GNU_LINUX
+
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
@@ -104,6 +109,72 @@
 
 #endif /* GNU_LINUX */
 
+/* Stuff for just HPUX.  */
+
+#ifdef __hpux
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#define VIRT_ADDR_VARIES
+
+/* the data segment on this machine always starts at address 0x40000000. */
+
+#define DATA_SEG_BITS 0x40000000
+
+#define DATA_START    0x40000000
+#define TEXT_START    0x00000000
+
+/* This machine requires completely different unexec code
+   which lives in a separate file.  Specify the file name.  */
+
+#define UNEXEC unexhp9k800.o
+
+#define LIBS_MACHINE
+#define LIBS_DEBUG
+
+/* Include the file bsdtty.h, since this machine has job control.  */
+#define NEED_BSDTTY
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
+
+/* The symbol in the kernel where the load average is found
+   is named _avenrun.  At this time there are two major flavors
+   of hp-ux (there is the s800 and s300 (s200) flavors).  The
+   differences are thusly moved to the corresponding machine description file.
+*/
+
+/* no underscore please */
+#define LDAV_SYMBOL "avenrun"
+
+#if 0   /* Supposedly no longer true.  */
+/* In hpux, for unknown reasons, S_IFLNK is defined even though
+   symbolic links do not exist.
+   Make sure our conditionals based on S_IFLNK are not confused.
+
+   Here we assume that stat.h is included before config.h
+   so that we can override it here.  */
+
+#undef S_IFLNK
+#endif
+
+/* On USG systems these have different names. */
+
+#define index strchr
+#define rindex strrchr
+
+#endif /* __hpux */
+
 /* Systems with GCC don't need to lose. */
 #ifdef __NetBSD__
 # ifdef __GNUC__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/m/sr2k.h	Wed Apr 11 00:17:47 2007 +0000
@@ -0,0 +1,160 @@
+/* machine description file for Hitachi SR2001/SR2201 machines.
+   Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005,
+                 2006, 2007  Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+
+/* The following line tells the configuration script what sort of
+   operating system this machine is likely to run.
+   USUAL-OPSYS="hpux"  */
+
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
+   is the most significant byte.  */
+
+#define WORDS_BIG_ENDIAN
+
+/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
+ * group of arguments and treat it as an array of the arguments.  */
+
+#define NO_ARG_ARRAY
+
+/* Define WORD_MACHINE if addresses and such have
+ * to be corrected before they can be used as byte counts.  */
+
+#undef WORD_MACHINE
+
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+#ifndef hp9000s800
+#	define hp9000s800
+#endif
+
+/* Use type int rather than a union, to represent Lisp_Object */
+/* This is desirable for most machines.  */
+
+#define NO_UNION_TYPE
+
+/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
+   the bit field into an int.  In other words, if bit fields
+   are always unsigned.
+
+   If you use NO_UNION_TYPE, this flag does not matter.  */
+
+#define EXPLICIT_SIGN_EXTEND
+
+/* The standard definitions of these macros would work ok,
+   but these are faster because the constants are short. */
+
+
+#define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)
+
+#define XSET(var, type, ptr) \
+   ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS))
+
+/* #ifdef __hpux */
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+
+#ifndef hp9000s800
+#     define hp9000s800
+#endif
+
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
+
+
+/* Define CANNOT_DUMP on machines where unexec does not work.
+   Then the function dump-emacs will not be defined
+   and temacs will do (load "loadup") automatically unless told otherwise.  */
+
+#undef CANNOT_DUMP
+
+/* Define VIRT_ADDR_VARIES if the virtual addresses of
+   pure and impure space as loaded can vary, and even their
+   relative order cannot be relied on.
+
+   Otherwise Emacs assumes that text space precedes data space,
+   numerically.  */
+
+#define VIRT_ADDR_VARIES
+
+/* the data segment on this machine always starts at address 0x40000000. */
+
+#define DATA_SEG_BITS 0x40000000
+
+#define DATA_START    0x40000000
+#define TEXT_START    0x00000000
+
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+/* This machine requires completely different unexec code
+   which lives in a separate file.  Specify the file name.  */
+
+#define UNEXEC unexhp9k800.o
+
+#define LIBS_MACHINE
+#define LIBS_DEBUG
+
+/* Include the file bsdtty.h, since this machine has job control.  */
+/* #define NEED_BSDTTY */
+
+/* The symbol in the kernel where the load average is found
+   is named _avenrun.  At this time there are two major flavors
+   of hp-ux (there is the s800 and s300 (s200) flavors).  The
+   differences are thusly moved to the corresponding machine description file.
+*/
+
+/* no underscore please */
+#define LDAV_SYMBOL "avenrun"
+
+#if 0   /* Supposedly no longer true.  */
+/* In hpux, for unknown reasons, S_IFLNK is defined even though
+   symbolic links do not exist.
+   Make sure our conditionals based on S_IFLNK are not confused.
+
+   Here we assume that stat.h is included before config.h
+   so that we can override it here.  */
+
+#undef S_IFLNK
+#endif
+
+/* On USG systems these have different names. */
+
+#define index strchr
+#define rindex strrchr
+
+/* #endif */
+
+/* arch-tag: 4ced5b51-ffe6-4be1-9954-eb40657023a5
+   (do not change this comment) */
--- a/src/macfns.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/macfns.c	Wed Apr 11 00:17:47 2007 +0000
@@ -3105,8 +3105,8 @@
      Lisp_Object display;
 {
   struct mac_display_info *dpyinfo = check_x_display_info (display);
-
-  /* Only of the main display.  */
+  float mm_per_pixel;
+
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
   if (CGDisplayScreenSize != NULL)
@@ -3116,9 +3116,8 @@
 
       BLOCK_INPUT;
       size = CGDisplayScreenSize (kCGDirectMainDisplay);
+      mm_per_pixel = size.height / CGDisplayPixelsHigh (kCGDirectMainDisplay);
       UNBLOCK_INPUT;
-
-      return make_number ((int) (size.height + .5f));
     }
 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
   else
@@ -3127,9 +3126,11 @@
 #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));
+      mm_per_pixel = 25.4f / dpyinfo->resy;
     }
 #endif
+
+  return make_number ((int) (dpyinfo->height * mm_per_pixel + 0.5f));
 }
 
 DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0,
@@ -3141,8 +3142,8 @@
      Lisp_Object display;
 {
   struct mac_display_info *dpyinfo = check_x_display_info (display);
-
-  /* Only of the main display.  */
+  float mm_per_pixel;
+
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
   if (CGDisplayScreenSize != NULL)
@@ -3152,9 +3153,8 @@
 
       BLOCK_INPUT;
       size = CGDisplayScreenSize (kCGDirectMainDisplay);
+      mm_per_pixel = size.width / CGDisplayPixelsWide (kCGDirectMainDisplay);
       UNBLOCK_INPUT;
-
-      return make_number ((int) (size.width + .5f));
     }
 #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
   else
@@ -3163,9 +3163,11 @@
 #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));
+      mm_per_pixel = 25.4f / dpyinfo->resx;
     }
 #endif
+
+  return make_number ((int) (dpyinfo->width * mm_per_pixel + 0.5f));
 }
 
 DEFUN ("x-display-backing-store", Fx_display_backing_store,
@@ -4115,6 +4117,8 @@
        doc: /* Show STRING in a "tooltip" window on frame FRAME.
 A tooltip window is a small window displaying a string.
 
+This is an internal function; Lisp code should call `tooltip-show'.
+
 FRAME nil or omitted means use the selected frame.
 
 PARMS is an optional list of frame parameters which can be used to
--- a/src/macselect.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/macselect.c	Wed Apr 11 00:17:47 2007 +0000
@@ -386,7 +386,9 @@
     {
       ScrapFlavorType flavor_type = 0;
 
-      if (CONSP (XCAR (rest)) && SYMBOLP (target_type = XCAR (XCAR (rest)))
+      if (CONSP (XCAR (rest))
+	  && (target_type = XCAR (XCAR (rest)),
+	      SYMBOLP (target_type))
 	  && (flavor_type = scrap_has_target_type (scrap, target_type)))
 	{
 	  result = Fcons (target_type, result);
@@ -449,9 +451,11 @@
       for (rest = Vselection_converter_alist; CONSP (rest); rest = XCDR (rest))
 	{
 	  if (!(CONSP (XCAR (rest))
-		&& SYMBOLP (type = XCAR (XCAR (rest)))
+		&& (type = XCAR (XCAR (rest)),
+		    SYMBOLP (type))
 		&& valid_scrap_target_type_p (type)
-		&& SYMBOLP (handler_fn = XCDR (XCAR (rest)))))
+		&& (handler_fn = XCDR (XCAR (rest)),
+		    SYMBOLP (handler_fn))))
 	    continue;
 
 	  if (!NILP (handler_fn))
@@ -1852,10 +1856,7 @@
 
 The function should return the value to send to the Scrap Manager
 \(must be a string).  A return value of nil
-means that the conversion could not be done.
-A return value which is the symbol `NULL'
-means that a side-effect was executed,
-and there is no meaningful selection value.  */);
+means that the conversion could not be done.  */);
   Vselection_converter_alist = Qnil;
 
   DEFVAR_LISP ("x-lost-selection-functions", &Vx_lost_selection_functions,
--- a/src/macterm.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/macterm.c	Wed Apr 11 00:17:47 2007 +0000
@@ -7191,11 +7191,14 @@
       Lisp_Object existing_info;
 
       if (!(CONSP (charset_info)
-	    && STRINGP (charset = XCAR (charset_info))
+	    && (charset = XCAR (charset_info),
+		STRINGP (charset))
 	    && CONSP (XCDR (charset_info))
-	    && INTEGERP (text_encoding = XCAR (XCDR (charset_info)))
+	    && (text_encoding = XCAR (XCDR (charset_info)),
+		INTEGERP (text_encoding))
 	    && CONSP (XCDR (XCDR (charset_info)))
-	    && SYMBOLP (coding_system = XCAR (XCDR (XCDR (charset_info))))))
+	    && (coding_system = XCAR (XCDR (XCDR (charset_info))),
+		SYMBOLP (coding_system))))
 	continue;
 
       existing_info = assq_no_quit (text_encoding, result);
@@ -11535,8 +11538,32 @@
      but this may not be what is actually used.  Mac OSX can do better.  */
   dpyinfo->color_p = CGDisplaySamplesPerPixel (kCGDirectMainDisplay) > 1;
   dpyinfo->n_planes = CGDisplayBitsPerPixel (kCGDirectMainDisplay);
-  dpyinfo->height = CGDisplayPixelsHigh (kCGDirectMainDisplay);
-  dpyinfo->width = CGDisplayPixelsWide (kCGDirectMainDisplay);
+  {
+    CGDisplayErr err;
+    CGDisplayCount ndisps;
+    CGDirectDisplayID *displays;
+
+    err = CGGetActiveDisplayList (0, NULL, &ndisps);
+    if (err == noErr)
+      {
+	displays = alloca (sizeof (CGDirectDisplayID) * ndisps);
+	err = CGGetActiveDisplayList (ndisps, displays, &ndisps);
+      }
+    if (err == noErr)
+      {
+	CGRect bounds = CGRectMake (0, 0, 0, 0);
+
+	while (ndisps-- > 0)
+	  bounds = CGRectUnion (bounds, CGDisplayBounds (displays[ndisps]));
+	dpyinfo->height = CGRectGetHeight (bounds);
+	dpyinfo->width = CGRectGetWidth (bounds);
+      }
+    else
+      {
+	dpyinfo->height = CGDisplayPixelsHigh (kCGDirectMainDisplay);
+	dpyinfo->width = CGDisplayPixelsWide (kCGDirectMainDisplay);
+      }
+  }
 #else
   {
     GDHandle main_device_handle = LMGetMainDevice();
--- a/src/print.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/print.c	Wed Apr 11 00:17:47 2007 +0000
@@ -796,7 +796,7 @@
   Lisp_Object printcharfun;
   /* struct gcpro gcpro1, gcpro2; */
   Lisp_Object save_deactivate_mark;
-  int count = specpdl_ptr - specpdl;
+  int count = SPECPDL_INDEX ();
   struct buffer *previous;
 
   specbind (Qinhibit_modification_hooks, Qt);
--- a/src/process.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/process.c	Wed Apr 11 00:17:47 2007 +0000
@@ -1267,7 +1267,7 @@
   if (VECTORP (address))  /* AF_INET or AF_INET6 */
     {
       register struct Lisp_Vector *p = XVECTOR (address);
-      Lisp_Object args[6];
+      Lisp_Object args[10];
       int nargs, i;
 
       if (p->size == 4 || (p->size == 5 && !NILP (omit_port)))
@@ -1294,7 +1294,20 @@
 	return Qnil;
 
       for (i = 0; i < nargs; i++)
-	args[i+1] = p->contents[i];
+	{
+	  EMACS_INT element = XINT (p->contents[i]);
+
+	  if (element < 0 || element > 65535)
+	    return Qnil;
+
+	  if (nargs <= 5         /* IPv4 */
+	      && i < 4           /* host, not port */
+	      && element > 255)
+	    return Qnil;
+
+	  args[i+1] = p->contents[i];
+	}
+
       return Fformat (nargs+1, args);
     }
 
@@ -1304,7 +1317,6 @@
       args[0] = build_string ("<Family %d>");
       args[1] = Fcar (address);
       return Fformat (2, args);
-
     }
 
   return Qnil;
@@ -1410,7 +1422,6 @@
       if (CONSP (p->status))
 	symbol = XCAR (p->status);
 
-
       if (EQ (symbol, Qsignal))
 	{
 	  Lisp_Object tem;
@@ -4805,8 +4816,8 @@
 		 subprocess termination and SIGCHLD.  */
 	      else if (nread == 0 && !NETCONN_P (proc))
 		;
-#endif				/* O_NDELAY */
-#endif				/* O_NONBLOCK */
+#endif /* O_NDELAY */
+#endif /* O_NONBLOCK */
 #ifdef HAVE_PTYS
 	      /* On some OSs with ptys, when the process on one end of
 		 a pty exits, the other end gets an error reading with
@@ -4817,11 +4828,17 @@
 		 get a SIGCHLD).
 
 		 However, it has been known to happen that the SIGCHLD
-		 got lost.  So raise the signl again just in case.
+		 got lost.  So raise the signal again just in case.
 		 It can't hurt.  */
 	      else if (nread == -1 && errno == EIO)
-		kill (getpid (), SIGCHLD);
-#endif				/* HAVE_PTYS */
+		{
+		  /* Clear the descriptor now, so we only raise the signal once.  */
+		  FD_CLR (channel, &input_wait_mask);
+		  FD_CLR (channel, &non_keyboard_wait_mask);
+
+		  kill (getpid (), SIGCHLD);
+		}
+#endif /* HAVE_PTYS */
 	      /* If we can detect process termination, don't consider the process
 		 gone just because its pipe is closed.  */
 #ifdef SIGCHLD
@@ -6407,17 +6424,12 @@
 #define WUNTRACED 0
 #endif /* no WUNTRACED */
       /* Keep trying to get a status until we get a definitive result.  */
-      while (1)
-	{
+      do
+        {
 	  errno = 0;
 	  pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
-	  if (! (pid < 0 && errno == EINTR))
-	    break;
-	  /* Avoid a busyloop: wait3 is a system call, so we do not want
-	     to prevent the kernel from actually sending SIGCHLD to emacs
-	     by asking for it all the time.  */
-	  sleep (1);
 	}
+      while (pid < 0 && errno == EINTR);
 
       if (pid <= 0)
 	{
--- a/src/s/darwin.h	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/s/darwin.h	Wed Apr 11 00:17:47 2007 +0000
@@ -121,7 +121,7 @@
  * default for process-connection-type dependent on the kernel
  * version.
  */
-#define MIN_PTY_KERNEL_VERSION '7' 
+#define MIN_PTY_KERNEL_VERSION '7'
 
 /*
  *	Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
@@ -216,9 +216,6 @@
    also the name of a Mach system call.  */
 #define init_process emacs_init_process
 
-/* Fix compilation problem for regex.c.  */
-#define __restrict
-
 /* Used in dispnew.c.  Copied from freebsd.h. */
 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
 
@@ -262,9 +259,8 @@
 
 /* Definitions for how to compile & link.  */
 
-/* Indicate that we are compiling for Mac OS X and where to find Mac
-   specific headers.  */
-#define C_SWITCH_SYSTEM -fpascal-strings -DMAC_OSX -I../mac/src
+/* Indicate that we are compiling for Mac OS X.  */
+#define C_SWITCH_SYSTEM -fpascal-strings -DMAC_OSX
 
 /* Link in the Carbon lib. */
 #ifdef HAVE_CARBON
@@ -317,13 +313,6 @@
 #define NO_MATHERR
 
 
-/* This prevents a compilation error in xfaces.c: struct kboard * is
-   used in a function protocol the first time this type appears in the
-   file, since MULTI_KBOARD is undefined for the Mac OS X build.  */
-#ifndef NOT_C_CODE
-struct kboard;
-#endif
-
 /* The following solves the problem that Emacs hangs when evaluating
    (make-comint "test0" "/nodir/nofile" nil "") when /nodir/nofile
    does not exist.  */
--- a/src/undo.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/undo.c	Wed Apr 11 00:17:47 2007 +0000
@@ -548,6 +548,8 @@
 		  beg = Fcar (cdr);
 		  end = Fcdr (cdr);
 
+		  if (XINT (beg) < BEGV || XINT (end) > ZV)
+		    error ("Changes to be undone are outside visible portion of buffer");
 		  Fput_text_property (beg, end, prop, val, Qnil);
 		}
 	      else if (INTEGERP (car) && INTEGERP (cdr))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/unexhp9k800.c	Wed Apr 11 00:17:47 2007 +0000
@@ -0,0 +1,334 @@
+/* Unexec for HP 9000 Series 800 machines.
+
+  This file is in the public domain.
+
+  Author: John V. Morris
+
+  This file was written by John V. Morris at Hewlett Packard.
+  Both the author and Hewlett Packard Co. have disclaimed the
+  copyright on this file, and it is therefore in the public domain.
+  (Search for "hp9k800" in copyright.list.)
+*/
+
+/*
+   Bob Desinger <hpsemc!bd@hplabs.hp.com>
+
+   Note that the GNU project considers support for HP operation a
+   peripheral activity which should not be allowed to divert effort
+   from development of the GNU system.  Changes in this code will be
+   installed when users send them in, but aside from that we don't
+   plan to think about it, or about whether other Emacs maintenance
+   might break it.
+
+
+  Unexec creates a copy of the old a.out file, and replaces the old data
+  area with the current data area.  When the new file is executed, the
+  process will see the same data structures and data values that the
+  original process had when unexec was called.
+
+  Unlike other versions of unexec, this one copies symbol table and
+  debug information to the new a.out file.  Thus, the new a.out file
+  may be debugged with symbolic debuggers.
+
+  If you fix any bugs in this, I'd like to incorporate your fixes.
+  Send them to uunet!hpda!hpsemc!jmorris or jmorris%hpsemc@hplabs.HP.COM.
+
+  CAVEATS:
+  This routine saves the current value of all static and external
+  variables.  This means that any data structure that needs to be
+  initialized must be explicitly reset.  Variables will not have their
+  expected default values.
+
+  Unfortunately, the HP-UX signal handler has internal initialization
+  flags which are not explicitly reset.  Thus, for signals to work in
+  conjunction with this routine, the following code must executed when
+  the new process starts up.
+
+  void _sigreturn ();
+  ...
+  sigsetreturn (_sigreturn);
+*/
+
+#ifdef emacs
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include <a.out.h>
+
+#ifdef HPUX_USE_SHLIBS
+#include <dl.h>
+#endif
+
+/* brk value to restore, stored as a global.
+   This is really used only if we used shared libraries.  */
+static long brk_on_dump = 0;
+
+/* Called from main, if we use shared libraries.  */
+int
+run_time_remap (ignored)
+     char *ignored;
+{
+  brk ((char *) brk_on_dump);
+}
+
+#undef roundup
+#define roundup(x,n) (((x) + ((n) - 1)) & ~((n) - 1))  /* n is power of 2 */
+#define min(x,y)  (((x) < (y)) ? (x) : (y))
+
+
+/* Create a new a.out file, same as old but with current data space */
+
+unexec (new_name, old_name, new_end_of_text, dummy1, dummy2)
+     char new_name[];		/* name of the new a.out file to be created */
+     char old_name[];		/* name of the old a.out file */
+     char *new_end_of_text;	/* ptr to new edata/etext; NOT USED YET */
+     int dummy1, dummy2;	/* not used by emacs */
+{
+  int old, new;
+  int old_size, new_size;
+  struct header hdr;
+  struct som_exec_auxhdr auxhdr;
+  long i;
+
+  /* For the greatest flexibility, should create a temporary file in
+     the same directory as the new file.  When everything is complete,
+     rename the temp file to the new name.
+     This way, a program could update its own a.out file even while
+     it is still executing.  If problems occur, everything is still
+     intact.  NOT implemented.  */
+
+  /* Open the input and output a.out files */
+  old = open (old_name, O_RDONLY);
+  if (old < 0)
+    { perror (old_name); exit (1); }
+  new = open (new_name, O_CREAT|O_RDWR|O_TRUNC, 0777);
+  if (new < 0)
+    { perror (new_name); exit (1); }
+
+  /* Read the old headers */
+  read_header (old, &hdr, &auxhdr);
+
+  brk_on_dump = (long) sbrk (0);
+
+  /* Decide how large the new and old data areas are */
+  old_size = auxhdr.exec_dsize;
+  /* I suspect these two statements are separate
+     to avoid a compiler bug in hpux version 8.  */
+  i = (long) sbrk (0);
+  new_size = i - auxhdr.exec_dmem;
+
+  /* Copy the old file to the new, up to the data space */
+  lseek (old, 0, 0);
+  copy_file (old, new, auxhdr.exec_dfile);
+
+  /* Skip the old data segment and write a new one */
+  lseek (old, old_size, 1);
+  save_data_space (new, &hdr, &auxhdr, new_size);
+
+  /* Copy the rest of the file */
+  copy_rest (old, new);
+
+  /* Update file pointers since we probably changed size of data area */
+  update_file_ptrs (new, &hdr, &auxhdr, auxhdr.exec_dfile, new_size-old_size);
+
+  /* Save the modified header */
+  write_header (new, &hdr, &auxhdr);
+
+  /* Close the binary file */
+  close (old);
+  close (new);
+  return 0;
+}
+
+/* Save current data space in the file, update header.  */
+
+save_data_space (file, hdr, auxhdr, size)
+     int file;
+     struct header *hdr;
+     struct som_exec_auxhdr *auxhdr;
+     int size;
+{
+  /* Write the entire data space out to the file */
+  if (write (file, auxhdr->exec_dmem, size) != size)
+    { perror ("Can't save new data space"); exit (1); }
+
+  /* Update the header to reflect the new data size */
+  auxhdr->exec_dsize = size;
+  auxhdr->exec_bsize = 0;
+}
+
+/* Update the values of file pointers when something is inserted.  */
+
+update_file_ptrs (file, hdr, auxhdr, location, offset)
+     int file;
+     struct header *hdr;
+     struct som_exec_auxhdr *auxhdr;
+     unsigned int location;
+     int offset;
+{
+  struct subspace_dictionary_record subspace;
+  int i;
+
+  /* Increase the overall size of the module */
+  hdr->som_length += offset;
+
+  /* Update the various file pointers in the header */
+#define update(ptr) if (ptr > location) ptr = ptr + offset
+  update (hdr->aux_header_location);
+  update (hdr->space_strings_location);
+  update (hdr->init_array_location);
+  update (hdr->compiler_location);
+  update (hdr->symbol_location);
+  update (hdr->fixup_request_location);
+  update (hdr->symbol_strings_location);
+  update (hdr->unloadable_sp_location);
+  update (auxhdr->exec_tfile);
+  update (auxhdr->exec_dfile);
+
+  /* Do for each subspace dictionary entry */
+  lseek (file, hdr->subspace_location, 0);
+  for (i = 0; i < hdr->subspace_total; i++)
+    {
+      if (read (file, &subspace, sizeof (subspace)) != sizeof (subspace))
+	{ perror ("Can't read subspace record"); exit (1); }
+
+      /* If subspace has a file location, update it */
+      if (subspace.initialization_length > 0
+	  && subspace.file_loc_init_value > location)
+	{
+	  subspace.file_loc_init_value += offset;
+	  lseek (file, -sizeof (subspace), 1);
+	  if (write (file, &subspace, sizeof (subspace)) != sizeof (subspace))
+	    { perror ("Can't update subspace record"); exit (1); }
+	}
+    }
+
+  /* Do for each initialization pointer record */
+  /* (I don't think it applies to executable files, only relocatables) */
+#undef update
+}
+
+/* Read in the header records from an a.out file.  */
+
+read_header (file, hdr, auxhdr)
+     int file;
+     struct header *hdr;
+     struct som_exec_auxhdr *auxhdr;
+{
+
+  /* Read the header in */
+  lseek (file, 0, 0);
+  if (read (file, hdr, sizeof (*hdr)) != sizeof (*hdr))
+    { perror ("Couldn't read header from a.out file"); exit (1); }
+
+  if (hdr->a_magic != EXEC_MAGIC && hdr->a_magic != SHARE_MAGIC
+      &&  hdr->a_magic != DEMAND_MAGIC)
+    {
+      fprintf (stderr, "a.out file doesn't have legal magic number\n");
+      exit (1);
+    }
+
+  lseek (file, hdr->aux_header_location, 0);
+  if (read (file, auxhdr, sizeof (*auxhdr)) != sizeof (*auxhdr))
+    {
+      perror ("Couldn't read auxiliary header from a.out file");
+      exit (1);
+    }
+}
+
+/* Write out the header records into an a.out file.  */
+
+write_header (file, hdr, auxhdr)
+     int file;
+     struct header *hdr;
+     struct som_exec_auxhdr *auxhdr;
+{
+  /* Update the checksum */
+  hdr->checksum = calculate_checksum (hdr);
+
+  /* Write the header back into the a.out file */
+  lseek (file, 0, 0);
+  if (write (file, hdr, sizeof (*hdr)) != sizeof (*hdr))
+    { perror ("Couldn't write header to a.out file"); exit (1); }
+  lseek (file, hdr->aux_header_location, 0);
+  if (write (file, auxhdr, sizeof (*auxhdr)) != sizeof (*auxhdr))
+    { perror ("Couldn't write auxiliary header to a.out file"); exit (1); }
+}
+
+/* Calculate the checksum of a SOM header record. */
+
+calculate_checksum (hdr)
+     struct header *hdr;
+{
+  int checksum, i, *ptr;
+
+  checksum = 0;  ptr = (int *) hdr;
+
+  for (i = 0; i < sizeof (*hdr) / sizeof (int) - 1; i++)
+    checksum ^= ptr[i];
+
+  return (checksum);
+}
+
+/* Copy size bytes from the old file to the new one.  */
+
+copy_file (old, new, size)
+     int new, old;
+     int size;
+{
+  int len;
+  int buffer[8192];  /* word aligned will be faster */
+
+  for (; size > 0; size -= len)
+    {
+      len = min (size, sizeof (buffer));
+      if (read (old, buffer, len) != len)
+	{ perror ("Read failure on a.out file"); exit (1); }
+      if (write (new, buffer, len) != len)
+	{ perror ("Write failure in a.out file"); exit (1); }
+    }
+}
+
+/* Copy the rest of the file, up to EOF.  */
+
+copy_rest (old, new)
+     int new, old;
+{
+  int buffer[4096];
+  int len;
+
+  /* Copy bytes until end of file or error */
+  while ((len = read (old, buffer, sizeof (buffer))) > 0)
+    if (write (new, buffer, len) != len) break;
+
+  if (len != 0)
+    { perror ("Unable to copy the rest of the file"); exit (1); }
+}
+
+#ifdef	DEBUG
+display_header (hdr, auxhdr)
+     struct header *hdr;
+     struct som_exec_auxhdr *auxhdr;
+{
+  /* Display the header information (debug) */
+  printf ("\n\nFILE HEADER\n");
+  printf ("magic number %d \n", hdr->a_magic);
+  printf ("text loc %.8x   size %d \n", auxhdr->exec_tmem, auxhdr->exec_tsize);
+  printf ("data loc %.8x   size %d \n", auxhdr->exec_dmem, auxhdr->exec_dsize);
+  printf ("entry     %x \n",   auxhdr->exec_entry);
+  printf ("Bss  segment size %u\n", auxhdr->exec_bsize);
+  printf ("\n");
+  printf ("data file loc %d    size %d\n",
+	  auxhdr->exec_dfile, auxhdr->exec_dsize);
+  printf ("som_length %d\n", hdr->som_length);
+  printf ("unloadable sploc %d    size %d\n",
+	  hdr->unloadable_sp_location, hdr->unloadable_sp_size);
+}
+#endif /* DEBUG */
+
+/* arch-tag: d55a09ac-9427-4ec4-8496-cb9d7710774f
+   (do not change this comment) */
--- a/src/w32fns.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/w32fns.c	Wed Apr 11 00:17:47 2007 +0000
@@ -7560,6 +7560,8 @@
        doc: /* Show STRING in a \"tooltip\" window on frame FRAME.
 A tooltip window is a small window displaying a string.
 
+This is an internal function; Lisp code should call `tooltip-show'.
+
 FRAME nil or omitted means use the selected frame.
 
 PARMS is an optional list of frame parameters which can be
--- a/src/widget.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/widget.c	Wed Apr 11 00:17:47 2007 +0000
@@ -953,9 +953,11 @@
 	 Xt when the default font is changed.  Tell Xt not to wait,
 	 depending on the value of the frame parameter
 	 `wait-for-wm'.  */
+      x_catch_errors (FRAME_X_DISPLAY (f));
       XtVaSetValues (f->output_data.x->widget,
 		     XtNwaitForWm, (XtArgVal) f->output_data.x->wait_for_wm,
 		     NULL);
+      x_uncatch_errors ();
 
       /* Workaround: When a SIGIO or SIGALRM occurs while Xt is
 	 waiting for a ConfigureNotify event (see above), this leads
@@ -972,6 +974,7 @@
 	 as is because I think it can't do any harm.  */
       /* In April 2002, simon.marshall@misys.com reports the problem
 	 seems not to occur any longer.  */
+      x_catch_errors (FRAME_X_DISPLAY (f));
       XtVaSetValues (f->output_data.x->widget,
       		     XtNheight, (XtArgVal) (outer_widget_height + hdelta),
 		     XtNwidth, (XtArgVal) (outer_widget_width + wdelta),
@@ -984,6 +987,8 @@
                      XtNheight, (XtArgVal) pixel_height,
       		     XtNwidth, (XtArgVal) pixel_width,
 		     NULL);
+      x_uncatch_errors ();
+
 #ifdef SIGIO
       sigunblock (sigmask (SIGIO));
 #endif
--- a/src/window.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/window.c	Wed Apr 11 00:17:47 2007 +0000
@@ -2314,6 +2314,8 @@
 
 DEFUN ("get-lru-window", Fget_lru_window, Sget_lru_window, 0, 2, 0,
        doc: /* Return the window least recently selected or used for display.
+\(LRU means Least Recently Used.)
+
 Return a full-width window if possible.
 A minibuffer window is never a candidate.
 A dedicated window is never a candidate, unless DEDICATED is non-nil,
--- a/src/xdisp.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/xdisp.c	Wed Apr 11 00:17:47 2007 +0000
@@ -22742,7 +22742,7 @@
 
   Lisp_Object mouse_face;
   int original_x_pixel = x;
-  struct glyph * glyph = NULL;
+  struct glyph * glyph = NULL, * row_start_glyph = NULL;
   struct glyph_row *row;
 
   if (area == ON_MODE_LINE || area == ON_HEADER_LINE)
@@ -22760,7 +22760,7 @@
       /* Find glyph */
       if (row->mode_line_p && row->enabled_p)
 	{
-	  glyph = row->glyphs[TEXT_AREA];
+	  glyph = row_start_glyph = row->glyphs[TEXT_AREA];
 	  end = glyph + row->used[TEXT_AREA];
 
 	  for (x0 = original_x_pixel;
@@ -22884,12 +22884,17 @@
 	     is converted to a flatten by emacs lisp interpreter.
 	     The internal string is an element of the structures.
 	     The displayed string is the flatten string. */
-	  for (tmp_glyph = glyph - 1, gpos = 0;
-	       tmp_glyph->charpos >= XINT (b);
-	       tmp_glyph--, gpos++)
-	    {
-	      if (!EQ (tmp_glyph->object, glyph->object))
-		break;
+	  gpos = 0;
+	  if (glyph > row_start_glyph)
+	    {
+	      tmp_glyph = glyph - 1;
+	      while (tmp_glyph >= row_start_glyph
+		     && tmp_glyph->charpos >= XINT (b)
+		     && EQ (tmp_glyph->object, glyph->object))
+		{
+		  tmp_glyph--;
+		  gpos++;
+		}
 	    }
 
 	  /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of
@@ -24370,7 +24375,7 @@
     doc: /* Maximum number of lines to keep in the message log buffer.
 If nil, disable message logging.  If t, log messages but don't truncate
 the buffer when it becomes large.  */);
-  Vmessage_log_max = make_number (50);
+  Vmessage_log_max = make_number (100);
 
   DEFVAR_LISP ("window-size-change-functions", &Vwindow_size_change_functions,
     doc: /* Functions called before redisplay, if window sizes have changed.
--- a/src/xfns.c	Fri Mar 30 02:06:58 2007 +0000
+++ b/src/xfns.c	Wed Apr 11 00:17:47 2007 +0000
@@ -5267,6 +5267,8 @@
        doc: /* Show STRING in a "tooltip" window on frame FRAME.
 A tooltip window is a small X window displaying a string.
 
+This is an internal function; Lisp code should call `tooltip-show'.
+
 FRAME nil or omitted means use the selected frame.
 
 PARMS is an optional list of frame parameters which can be used to