changeset 90203:187d6a1f84f7

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-71 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 485-492) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 92-94) - Merge from emacs--cvs-trunk--0 - Update from CVS
author Miles Bader <miles@gnu.org>
date Fri, 22 Jul 2005 08:27:27 +0000
parents 7597b4a23c3b (current diff) 722ca9969d93 (diff)
children 7eec7b87433c
files etc/ChangeLog etc/NEWS etc/PROBLEMS lisp/ChangeLog lisp/abbrev.el lisp/add-log.el lisp/allout.el lisp/arc-mode.el lisp/array.el lisp/buff-menu.el lisp/calc/calc-aent.el lisp/calc/calc-alg.el lisp/calc/calc-arith.el lisp/calc/calc-bin.el lisp/calc/calc-comb.el lisp/calc/calc-cplx.el lisp/calc/calc-embed.el lisp/calc/calc-ext.el lisp/calc/calc-fin.el lisp/calc/calc-forms.el lisp/calc/calc-frac.el lisp/calc/calc-funcs.el lisp/calc/calc-graph.el lisp/calc/calc-help.el lisp/calc/calc-incom.el lisp/calc/calc-keypd.el lisp/calc/calc-lang.el lisp/calc/calc-macs.el lisp/calc/calc-map.el lisp/calc/calc-math.el lisp/calc/calc-misc.el lisp/calc/calc-mode.el lisp/calc/calc-mtx.el lisp/calc/calc-poly.el lisp/calc/calc-prog.el lisp/calc/calc-rewr.el lisp/calc/calc-rules.el lisp/calc/calc-sel.el lisp/calc/calc-stat.el lisp/calc/calc-store.el lisp/calc/calc-stuff.el lisp/calc/calc-trail.el lisp/calc/calc-undo.el lisp/calc/calc-units.el lisp/calc/calc-vec.el lisp/calc/calc-yank.el lisp/calc/calc.el lisp/calc/calcalg2.el lisp/calc/calcalg3.el lisp/calc/calccomp.el lisp/calc/calcsel2.el lisp/calculator.el lisp/calendar/calendar.el lisp/comint.el lisp/compare-w.el lisp/composite.el lisp/cus-edit.el lisp/custom.el lisp/descr-text.el lisp/desktop.el lisp/diff-mode.el lisp/dired-x.el lisp/dired.el lisp/dirtrack.el lisp/ediff-diff.el lisp/ediff.el lisp/emacs-lisp/bytecomp.el lisp/emacs-lisp/checkdoc.el lisp/emacs-lisp/cl-macs.el lisp/emacs-lisp/derived.el lisp/emacs-lisp/easy-mmode.el lisp/emacs-lisp/edebug.el lisp/emacs-lisp/find-func.el lisp/emacs-lisp/find-gc.el lisp/emacs-lisp/lisp-mode.el lisp/emacs-lisp/re-builder.el lisp/emulation/cua-base.el lisp/emulation/viper-cmd.el lisp/emulation/viper-init.el lisp/eshell/em-hist.el lisp/eshell/em-ls.el lisp/faces.el lisp/files.el lisp/font-core.el lisp/font-lock.el lisp/forms-d2.el lisp/frame.el lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/gnus-msg.el lisp/gnus/gnus-util.el lisp/gnus/mm-uu.el lisp/gnus/mml.el lisp/help-fns.el lisp/help-mode.el lisp/hexl.el lisp/hilit-chg.el lisp/ido.el lisp/image-file.el lisp/info.el lisp/international/isearch-x.el lisp/international/mule-cmds.el lisp/international/mule.el lisp/isearch.el lisp/mail/emacsbug.el lisp/mail/smtpmail.el lisp/mail/uce.el lisp/net/eudc-bob.el lisp/net/eudc-hotlist.el lisp/net/tramp.el lisp/novice.el lisp/paths.el lisp/pcvs-util.el lisp/play/gamegrid.el lisp/play/snake.el lisp/play/tetris.el lisp/play/zone.el lisp/progmodes/ada-mode.el lisp/progmodes/asm-mode.el lisp/progmodes/f90.el lisp/progmodes/gdb-ui.el lisp/progmodes/grep.el lisp/progmodes/gud.el lisp/progmodes/pascal.el lisp/ps-print.el lisp/replace.el lisp/s-region.el lisp/server.el lisp/simple.el lisp/skeleton.el lisp/startup.el lisp/strokes.el lisp/tempo.el lisp/term.el lisp/textmodes/org.el lisp/textmodes/picture.el lisp/vcursor.el lisp/version.el lisp/w32-fns.el lisp/whitespace.el lisp/wid-edit.el lispref/ChangeLog lispref/commands.texi lispref/display.texi lispref/frames.texi lispref/internals.texi lispref/markers.texi lispref/modes.texi lwlib/ChangeLog lwlib/lwlib-Xm.c man/ChangeLog man/calc.texi man/cl.texi man/cmdargs.texi man/custom.texi man/display.texi man/files.texi man/frames.texi man/mini.texi man/mule.texi man/sc.texi man/speedbar.texi man/text.texi man/trouble.texi man/xresources.texi nt/ChangeLog nt/configure.bat src/.gdbinit src/ChangeLog src/buffer.c src/buffer.h src/ccl.c src/composite.c src/eval.c src/fileio.c src/frame.h src/keymap.c src/lread.c src/mac.c src/macfns.c src/macgui.h src/macterm.c src/macterm.h src/minibuf.c src/search.c src/syntax.c src/textprop.c src/w32.c src/w32fns.c src/w32proc.c src/window.c src/xdisp.c src/xfaces.c
diffstat 204 files changed, 4087 insertions(+), 2543 deletions(-) [+]
line wrap: on
line diff
--- a/etc/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/etc/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,12 @@
+2005-07-19  Juri Linkov  <juri@jurta.org>
+
+	* grep.txt: New file.
+
+2005-07-19  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping): 
+	-R comes after i386 in setarch command.
+
 2005-07-12  Juri Linkov  <juri@jurta.org>
 
 	* refcard.tex (Files): Change description of `C-x C-q' from
--- a/etc/NEWS	Tue Jul 19 02:58:20 2005 +0000
+++ b/etc/NEWS	Fri Jul 22 08:27:27 2005 +0000
@@ -2473,7 +2473,7 @@
 there are also further buffers which control the execution and describe the
 state of your program.  It can separate the input/output of your program from
 that of GDB and watches expressions in the speedbar.  It also uses features of
-Emacs 21/22 such as the the toolbar, and bitmaps in the fringe to indicate
+Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
 breakpoints.
 
 Use M-x gdb to start GDB-UI.
@@ -3120,6 +3120,21 @@
 * Changes in Emacs 22.1 on non-free operating systems
 
 +++
+** The HOME directory defaults to Application Data under the user profile.
+
+If you used a previous version of Emacs without setting the HOME
+environment variable and a `.emacs' was saved, then Emacs will continue
+using C:/ as the default HOME.  But if you are installing Emacs afresh,
+the default location will be the "Application Data" (or similar
+localized name) subdirectory of your user profile.  A typical location
+of this directory is "C:\Documents and Settings\USERNAME\Application Data",
+where USERNAME is your user name.
+
+This change means that users can now have their own `.emacs' files on
+shared computers, and the default HOME directory is less likely to be
+read-only on computers that are administered by someone else.
+
++++
 ** Passing resources on the command line now works on MS Windows.
 
 You can use --xrm to pass resource settings to Emacs, overriding any
@@ -4154,8 +4169,7 @@
 
 *** The new function `call-process-shell-command'.
 
-This executes a shell command command synchronously in a separate
-process.
+This executes a shell command synchronously in a separate process.
 
 *** The new function `process-file' is similar to `call-process', but
 obeys file handlers.  The file handler is chosen based on
@@ -5090,6 +5104,10 @@
 ** GC changes:
 
 +++
+*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
+as the heap sizxe increases.
+	
++++
 *** New variables `gc-elapsed' and `gcs-done' provide extra information
 on garbage collection.
 
--- a/etc/PROBLEMS	Tue Jul 19 02:58:20 2005 +0000
+++ b/etc/PROBLEMS	Fri Jul 22 08:27:27 2005 +0000
@@ -2422,11 +2422,11 @@
 you turn off exec-shield. In this case, use the -R option to the setarch
 command:
 
-   setarch -R i386 ./temacs --batch --load loadup [dump|bootstrap]
+   setarch i386 -R ./temacs --batch --load loadup [dump|bootstrap]
 
 or
 
-   setarch -R i386 make bootstrap      
+   setarch i386 -R make bootstrap      
 
 *** Fatal signal in the command  temacs -l loadup inc dump.
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/grep.txt	Fri Jul 22 08:27:27 2005 +0000
@@ -0,0 +1,75 @@
+* Introduction  -*-grep-*-
+
+This shows the different kinds of messages grep recognizes by default and
+how they are rendered.  It is intended both to help you decide which matchers
+you need and as a test of the matchers.  Move the mouse over a colored part
+to see how much text was actually matched.
+
+Please do not edit this file in grep-mode, it may lose escape
+sequences on saving.  Visit this file literally for editing.
+
+
+* GNU grep 2.5.1
+
+grep -nH -e "INFO tree" ../info/*
+../info/dir:6:File: dir	Node: Top	This is the top of the INFO tree
+
+* GNU grep 2.5.1 with default colors
+
+grep -nH --color=always -e "INFO tree" ../info/*
+../info/dir:6:File: dir	Node: Top	This is the top of the INFO tree
+
+* GNU grep 2.5.1-cvs with specified minimal colors
+
+GREP_COLORS='mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne' grep -nH --color=always -e "INFO tree" ../info/*
+../info/dir:6:File: dir	Node: Top	This is the top of the INFO tree
+
+* GNU grep 2.5.1-cvs with default colors
+
+grep -nH --color=always -e "INFO tree" ../info/*
+../info/dir:6:File: dir	Node: Top	This is the top of the INFO tree
+
+* GNU grep 2.5.1 on lines starting with a number and colon
+
+grep -nH -e "Universal Time" ../lispref/*
+../lispref/os.texi:1010:0:00 January 1, 1970 UTC (Coordinated Universal Time)
+
+* GNU grep 2.5.1 with context lines
+
+grep -C 2 -nH --color=always -e "INFO tree" ../info/*
+../info/dir-4-looking at that node, which is (dir)Top.
+../info/dir-5-
+../info/dir:6:File: dir	Node: Top	This is the top of the INFO tree
+../info/dir-7-
+../info/dir-8-The Info Directory
+
+* GNU grep 2.5.1 on files recognized as binary
+
+Binary file emacs-7 matches
+Binary file 2005-06 matches
+
+* GNU grep 2.5.1: other messages
+
+grep: ../info/dirinfo: No such file or directory
+Grep exited abnormally with code 2 at Tue Jul 19 15:42:32
+Grep finished with no matches found at Tue Jul 19 15:43:12
+Grep finished (matches found) at Tue Jul 19 15:45:15
+
+* agrep
+
+agrep -n "INFO tree" ../info/*
+../info/dir: 6: File: dir	Node: Top	This is the top of the INFO tree
+
+* unknown greps
+
+grep -nH -e "xyzxyz" ../info/*
+../info/emacs-2:1205:10:inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2:1205:10-15:inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2:1205.10-1205.15:inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2 1205.10-15 inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2 1205.10-1205.15 inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2 1205 inserts `xyzxyzxyzxyz' in the current buffer.
+
+;;; Local Variables:
+;;; buffer-read-only: t
+;;; End:
--- a/etc/orgcard.ps	Tue Jul 19 02:58:20 2005 +0000
+++ b/etc/orgcard.ps	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,6 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
-%%Title: org-ref.dvi
+%%Title: orgcard.dvi
 %%Pages: 2
 %%PageOrder: Ascend
 %%Orientation: Landscape
@@ -8,9 +8,9 @@
 %%DocumentFonts: CMBX10 CMR8 CMTT8 CMR7 CMSY8 CMBX8 CMTI8 CMR6 CMSY6
 %%EndComments
 %DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t landscape -o org-ref.ps org-ref.dvi
+%DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi
 %DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2005.07.04:0825
+%DVIPSSource:  TeX output 2005.07.19:1850
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -352,210 +352,214 @@
 CCBD1F58ABBF1F53AD21E3BFF25EEEB046F66A924E5F431EBD7228050BE2DF43
 0B9B538DAAD511EED97630CD9A9C05CC49DC251325A93EA842C6D07B44BE620F
 08E66B611F54314B0177E299304F2294F8DEDE9914736944F125A50B5007373E
-588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C2
-C87A1A169C5ADE44B561EC1660E617FB39D1B1547B33C0FEB33C3A1D7340A62A
-CD9CEFA49481F19B39A704A53A0B98A11744143CDDA0E668E6325935C6497A9F
-AFF471194932AFECBF25B441AD55A43751FBAB76F3E544C4254AEC4BEB5CFE4C
-C1318C3A0FAD0E8C1BABEE20B203E1DD9412E66BC55BEBD6FBBEBA84F56604FD
-85D50F733D9794611F4137EC10ACB4C4ECA5A81CAACC45213E92ED3C26726BBE
-91430E7633A2BDB8EA3D0C55259D7DBE468AC0964A63728C9B8EA4E15CF0EEA3
-2E754B9170EAE6B8818DCCDDAD643B9F6C91C3C5B245CD442358C60AF390DC76
-342E659D4EC45552626F069F346F46B18062CE26D5912336C6B29FCBFA5C3113
-ED86E44B529CD95B7B5B934D899762C4F3457F56ACCC763BCCD5BD08975EB5F1
-C5216DA4CBF3409EC71054B0145183F7DFB31517D199EB16D4C6DB0AF05E5720
-10B06F395BE3C8C59CEEBCEA1E00F9EA3FD880AC197508CEC11E33B6B6EABE3C
-0FAEBF246743F62D280875D052656696AA88DABB918F793CB2994A1ACCFA0CAE
-AF6FDDF489109DEF07F93B5B0078FC5FD9829DD296F62F23400F5DD6CB096557
-EDA737413C744FDBB0615BD40A79EA2929EB7AC767E58D886B310700733D2895
-3925911133631F28291974294AACF4A35F92A5E5262DCF33810A6F9C51E9D141
-F84B0C26B5ADECB44B646C79DD1C656529B7122739C0459B2B47A2C357EF9A36
-2B376DDF54F1F4F133419EF14CCC6010D360DFA8A7B122FFC5A4C560ED184F16
-057D3F76B6B2E935B31B17FC4066916FFBA0B9AFF287D251985AB3FC3D0D7E9A
-91F094356B3D6CDBCB2D74A3FDE23526B22C223EA35C9E5054053B23AF004324
-80F023FCDFDFA6B8F0E03A799D87FC2690C5D1ABB9C52B03402E37309091A1FC
-1D66EB48FE3E4BD326AA65839A9A7276C876F8079C11F2F3A7CBFDAB5AD3D4A3
-8377AE4862F390039E3FBE5D79B5318774B0A9B1321AAFCE8E87568C0AD0E82F
-D4DCEEA5DD4EFDB2E89D336174E76036DA08DE4A26FC63560057B87FDE9E060A
-3AA30E1B447B1E8EF31762C0998DF24B2860CF8B589FCE1050CC259171420306
-F4DAC090E032E4C3E0DD43305541155C1EB135B2093F7E23106387AB7A3DA0E6
-1A835F6D058227003A8C974907CC073F2ADE33AA774165BB24381E65DF19FD6E
-F15BB66BBAB0129C79A80CF32E542B68FFAD1BCBF6A4D867933FBBFA82771E7F
-1B2E677040596B7872A038FF8F23511C33E23D362CED5E303736D1CA28D78AA2
-20701B83020AE62003DC59413C6A2413C593CDC819644742F8CDF60D541710C6
-5A23FFCE6F6CF6AE26953CA4F01A62D6F7DB8F122B30506891DA023D16E56BE4
-84D72EC9DE3B16197B3BF97EB8A840BD2C17861583477317DEA062693B2EA959
-5F5233B416B4E1D63C6014BB96D0718DD9D81A885793F315402E91C274122E5D
-96AF9A05E10DA6276A33E861C006807BBA6B005583CD961491D5F183B62EA558
-C50F25F2F6B211BD3723FF98E01167C48C0A6CCEA0477895D21519AE86FEB4D7
-47C77202688775B4C86882C20D24EBF7AC98A3B9BCBFF750433E17824A4425C5
-7444E5201F1313A4C9FF361FCD9ECB1597C1F0605FEA98DD109C636433920603
-6671529E0E7AE2EC8A7D196FCA784D3CD2F88190B3F150533BAF3CFE15247D01
-864A2552F602D65088AA7F0D87C02768D8FA62930E18702F98558982C5A202AC
-111C6B0359273116F1DF9E5610AC46B99995425144D1352A881C79D9E0042850
-B51B2375DA55C34A47510C7D7435FAE7D391BAEC1F8BC0C93B866E7CE261384C
-6B277C66E817BF006B636AB133309384FE0985DBC34190E1E1ABB3A63892361C
-9970FC5732C7A4259809EEF348E6D3BC6AAB5BB012A098A02E33F9BDDA250A8A
-421EE4EBA46B82C10A5A6ADB2390A7B363CF16A0FFEFAAD7F6D2A80FE4720095
-BD78A6E4B95D6FC7DA4196E61C5FD0F9F37537E6BA581496E38625EF0B7826DF
-F021663E6D5DF3C93C5EC2C5B510867ABFC5404F490C683337EE7B22D3CBE7DC
-8EB4F9F2C25034C8779010A6835ACED2B05B9CF9753760A803073509C71A6372
-3634DB39F894B6EBAA9A34511357F3C106E42E9A6A592C1B49BB0AF668C95448
-9E0968CE39754452648068F82C53CA2ABE392713979634E7DD66819E7B3FF5D3
-A8890FA876857F4560A44029389A6E425ED8DBB25BFDDCFB510C071414760191
-A36723D251F10830B03E21B6FD61C1E92BD630B5EFD283AF248DA69C537D6F0C
-1CDC58032A7A91E836FF66810D886A73453A28044F55F754CD70A9B3EB5D27DF
-51D6E57085AC4487C5D015FC51F840F7DBB1733500062C608802C556F8A4623D
-0F94B67BC91E07FC2AD7E067F3C033E53216804B7371498113125A8CFC63D450
-4760B98ED1397A8862A8FA5D13923D22ABDF48B7F502916EF7C7D6BC52EBA5F7
-AD95E37E4979B7417C8C0E2599E4BB85883AF9E9A3C9DA432859AF9C909DDA53
-8ED9C0B3DC6BF49C5FB81780078209D21E6B54A8E669212B6E3569B615502ECA
-D67BC610E59409178B640ECD0A125371ECAA360FDD5843892BCBD22BF4D640EB
-99515496E12E2C68567610FC8F6E03C176D14B692A9A23BE3B50C2EB30BCE5F4
-481500B293CA54AAE5CA0A85C221493792B967423418E870C4DC7344E07A7E52
-1B2DED4C2FED4C602DCF37065FEE9BDE6D1FD95FEC1F30A5E3A1833B09E6B1DA
-D6A41C57493D4C1D8D87C8BE2443D2B917A0E3D26C324CA101E84369AFA73586
-E499C3627661DCFABF7478DCEF651E33C666957BE759F9DCB9F263AD3FA48BBF
-B47A84A914CFD8297141FF5AD0186753DADAD79315D14C68C19305D73DE6E4DB
-56BDDF037DA982E956F9C3B554E0746178294ABF6F46D1669D1675AEB8C924EB
-F9966956C8AC25940640B8C9DE9A76B36D04806A918FB4F7160503031AEB7DD4
-61C04BD3F6711F09EC71FEB6EA3904FD8AF75054659ECE0DAAEA1A614AAC6574
-9098FB7BD891E65552583AA519C7E4F9E6B5531B2215300CB262F42763BFDF5D
-FA2E6EB7E7F6585C80CD880ABAE340087A781C7EABD56C59A14EC17920FA7AE3
-049BA2DE8D5BB77ADECA23767F842642B7C0CC9AA177990CF0DD00A9DD8458CA
-5506DD3A5E5BCF2329047F560F0E30FCA7CA304594B738A0C7C70D8FE364AF59
-620E6527C061B6FECEBEEF0841969656F1A7A27731338B640A3AF243F58FBBF8
-E8ADA1CCD8DE701243EBA2E1F44C732143BFC4FA89B24B3B473CDC022111D477
-ADDB77AAA600B6C6948133D05EF0838BD1E1EA1C747BDBA8A0BBF92DADE753EE
-9F556D938E16961C2D13E7534B2B5F9EFEB2AFD65FADA831E81237BEDE73F7FA
-B076E562E08D57555B3830834B64E4C1E0E1F89D9A5BFB959032106B1EFEE431
-DC828EB4EF66DEA434DAF191E92F1EFDC31954D055DDD87B1A2762DAD6AE5994
-322DC4FA2FCA4AADC293158C75900C540BC85384340B29A4B25F486145C311D0
-4296CA91BB16569CDAFDC9047D9FC8C26792828DD3CA18E045A2F9B473491501
-CD3ADB57FB1D94C1A0353861EAC98E1630E14BEA6DFB04A5B3FAE97F4EA3C792
-2C9ACBF61A5C14605AC9D0DA7E4D9904C6C6FDFF564723FDE4E72413067055C7
-22946CD598266AE7FBC63FF62068CA4F40B80C8EF9961503F7894AF2A392B595
-376F0CA48B4B23AB7112453DA02274095741C7102733C553B6EFB43A6E1DB0AC
-C320C44357C4C7E98B96B30D9FEE86B7083080F0B6262FD69E07557FD018C1E4
-2CF6A276E789A63A9CEBCC8867E12C60D78B81F7C1AB5592E4AFE1AB1C8ADF1C
-FE8A4773FDC6FC01BF698E5D46B4282983FF16F028D14104423D07047AC7003E
-6B5CD6FC2D30DD0E6162498FF67D4091D68AC65A4658215B845AF706F4B74262
-C3A28732A7E1E786006F544853CCCED8B530ECE3460B11E11CC87B22DC0AB93A
-AB7EC47BCE2BAEF0FC23C9A15C0D421D75AD13D931B8669F1018A207D8C57228
-028FEBB6453827DE33B1CDD0527CC4815CA2CF05CDF4735A1EFB79DED9AA8AC5
-A074DA91B9B860EE88F5269AC4C604DE488C269959A108FC5175637DFFB08DBD
-2AE093CFF20E15AA2624D8E2A141EC3290852E27FBAC6BE21B65CD8036221193
-9967C4A6AD631F2374582F8DA277621961DE7EA41FA110782DD3E1E7CFC51058
-C961948FDBF02A2E7BF0A299EE696F0B98A0C4ABB7CB67AB28A2EF50D3D212AC
-1C51DF3909E484FC3430FF1AB2CD9CE667A9EB489A981A9A02F8F999D9215F5A
-DD609F5DF9519DA3410867680942AAFF2275D255709997653E88CB23D16A110D
-C5C65DC18750D868C8F60E64265C81DD7CD7C2036D13532E3DC7D12600FAAFDE
-EC32EB7989458A220339D451A25E3C4B2D52D265875F06465C913FD75BA30285
-AC61B32BD2C307FCBAF38E14FF6A64C6A5C874A2D7DFE3025E3CD30BA9C60D89
-00BE5411544E97D9791949722F76A99D549D344BC1EB88C9B8BFEB74EC94D190
-F5DE00D2EA0003DECDD4FDEDC0834053AFE3EFF04193E360460A286794D02FDD
-A174E3CE72C69D32C7C4EF33B97CAB2929A26662E4E3C2313469ACB6BD21CAFD
-8C81FBAB0EE7C26BC5B40AC9880623CB5D595A4351BF7848CA3212D74AE449CB
-35BE1BE2C6C795B56D2731C0BC9C5DBCC652F025212C35C50B3937212871472C
-7B6AA7AA075FCE6068BCF7474EE3FCA088733439E5AB06D78F62A574157DFCDC
-43990D8A9673300AF0D2450C2B9B9000BDC9C4A5CE57764A7236370458E8A0D5
-0D777DC1156A9D82D070FFE0DEA2DED3854CB7A09FD34F1B3513821C26FB6F6E
-F3BA660EBB0C08D8B976CB89B4E05C95A20EB2F74F4C1DA67E783E9C936A749A
-E20866E646774E132A0A12BD5907BA8D7FCBACC83004895110BD65223C4A2821
-02C709F5A8E1E9EE3C0C2430D6CDD4AAC32F45093EEB1AE961B1BCAA823E7F55
-0B9E5614DF4B2703532E2260B70062E33F40463B176D7645168DD4AF226B39E5
-8B74BCA01988FCF9475B9935412016704A09A331365D2E745E778331ACAED5E9
-AF662A9D5C7A5FECE76F73EE20E2BBD0647304E75161347291906E7ADB3F2446
-9769F36EEBCEC59167199793122D96428A44A2D8C9B704802543B0569C140134
-8F180AFAAEDC8550B566E6D460544DB84402A9AF79D8A315C53FAFA3A5898B26
-CF8D7EAEF6B7E19B9DDF927B7DAEA9249FFF69872A6C3F4289546E6969D29360
-0A8684B1D5025DDEBF2554248AF53EE9D53F9412CA89F004911834BE96221C1E
-8582F51F1A345ADAD0537938A96E73E35063A2207FF7FFCC55C9F7AEF734D089
-A0693D41848236FCE67E85AD5372C73B61BF5B58CC2D9616FB78144198E65267
-6940C7E3E3381C91C877B7F78B4747F46D12CF347E20C1A2A78BFAF96C42D81F
-16715D7E1FE7E671242791DA7D84D5D885F905093969F3836299BF6874A8B12E
-9E1F3A05D940BFABFDD7D3085AF8A4FD01092C88CB75F4060BD85F2F958DB0A6
-64145DC3DCA6903E0E018A7594BD7114F336D12C61AE4E29138A0165FE21BE5C
-C2F4B9D496ACE81861919BB69DC06E5AEABD3F5E5BDFF3F507BDA4E366BDD481
-05558CE1213A6D28CC2D5D2E5265A754141E312F42B64EA2D51C79C71DA5BC92
-920821C437120A19F9EA3BC48F16073251D458BA53C4C7DDF0035ABB32939C11
-4842DA0E489C7C2025B432B66352C56D78BB8391DA79E75DDEC29588C596BB4D
-67EDF9492B91B83D9F1F26444094D60329A5D3F1BDE976DB2E71B6E4CA9B8EA4
-BF43C91A16A2D9D23E5448C2FA38B8D24D142549E45572A29655C9BD31755718
-A58C3DC4964C0B49791F36809863835CD8E4B196CE8D18D714B2B3AE2BE90C4D
-65C1210B9E3A8F248BAFB0CC5579302F6FC26FC3E197076891FB758B0595DC4E
-7F1EEC99FFB654D46736BCE43BF37DB7681CF7655DF55592B7A494EA541AFFC5
-CE5815E1D989D9E1CE87E116DA4BCB7E16AFAD2327C434AC71EC756B96476BBC
-0C997DC8C439E839EC939B55BEA698E3435BD911258234B6993B3890077DADCA
-4DE92B37E94166A24DABCEAC3BB808557FE09FAAFD6DD316F44952A6710B4824
-6F5B5D4AE9F8A14DD207DFB697D5DC67FC3EBAE49A1A339525ED5ADBFFE58333
-43E8AAD4030869427226950AEEBD11A07815D9C3BBF2570A51D6C0249CCE9026
-B12ECEBAF112069547DBD47B7C8869523AFA7177F6E87F534A5425693DB8AD79
-497B95A90B056F61B6B4A89A7BB23B4F93BF5DAF637D71DDF4F48E34CF347EB4
-12173D9A72526C9B561F6CB2C3D43B0487E09B2C7B1822E9CF5D2D3836553AE5
-5A71793EFB52216CAA4948C203E1EA410B3BA72B6E2059AD04B5ADF54B6A5BD6
-33EDE67267334D9170FF9E7F9802516295D91F1A63EA8433F696E3565EBDDB1F
-1055025C16B5EB6708479CBDE2188D8371EE8863CBCD8533DE37E0242842C0AD
-114045C8B131BA3790146335EE07690C8DCAFE2F61824BE4F109F33486663D45
-24391006E700052BC8E90098BE7B5F13EF5412DAF6BDF0DFE9775FDC185369B1
-C53AAAEB34A9727AF997415595F8EED263C0B1B9448119E705396F6143E8276C
-C6C586E5FA8FF1C6B701578D1399211EA9398DB2A6397F68C7B7E0B6434DD516
-E4F039207D1BE48AD5F63C3E804C2DCEB39E97DA8D1D6E8C73180A916D8923FB
-5EA2430412C28ADEE42F3B6390ADD6159BE501FE3252B6EDE96AAD8035E2C8DA
-B00C25B07488F2BCD84508719DA8D309F8191B86CDC22E73730C9C91B7CD6062
-86032E22F92B948647A3351A31DABAD5F5F8D2C9911892C359471026AC047E49
-BFCC10C17712C6B7123EC9FE3BDF0ADFBA2BEC0A69B18DA231B43BE20694139C
-D6C856E3B7C6907F8BFEAFD753BDD5B50F8B25ACC61C778FE96B229CA7F891C6
-07EAA8551B790D6CAB23C80436A3E2A7F24FE4CDA84AB81AF8D4105E2386F3EF
-D77DD83730332F0F4B176E0C4ABF39ACC995CE3EECCE76C6363557C08F0DC723
-5E2B680D852174AF6BADB73DAF19EB4F921AC61E1FCE16EACABEB591173F687A
-DDD0909654D7A243F4105F8201B6343221DAA1589DB4C496C1F702E0BD3CE68D
-75071205B4D8ED2DF85276A3E53AAA46573771E0868482A2BC805C6A9D6C5480
-E23F690D6FA9CA9600A9F42F7F0EC92853C8FF64E2F137DB193543F78356EC5D
-A090542039B0501650B6184093DDA5CDD52B6F8CE4460AC781C2F93EA339F10C
-4921774575EDAB301E387C5A9200679ED86127611043364A319CB0C68B6FE176
-B0BA672AB3DE3F2B14A9E7C8CEA1DF76C716FD53CBFE583D1D0D20D0062A3DE2
-689408AE3D527703C591BA8C9982607CC08384A1049A1B328846A719FCA05D38
-087619AE510325FBDC54307AA468827EC8D84A19376740210EE95E5844872259
-7E2A055BFDC40D3C12946ACFE8CF26095719C3E10670A10417679DA5639B4175
-9DF86246392C78E114D745B9FCBE5D4D33E4E5935E6D4EB9F00F408045AAAB98
-47E445AE32BFAFF24107A37EDE0E9BA08934370E212F39035BA2AA51E2D711F4
-6D7215A05F5AD11422C9E8F65B80405D29CCDEE79165F59EBED93F9EB264792D
-35F8C1FD095F18511EB516DB40AC15B6045D2A24A2B910EF3A632278208A0D66
-E19963591F45FD61AC0183CD5D4C5C1C8D69020874EF6079376801145636901B
-D9EA1E35EF1E6B37D257D5B90862CED7C0D1F1B32C5324A28716EAC93B556BE4
-C2716C85ACD7AF85D52DA2E33312C42A6B7F28797BE80102E37B7F9C933BBE85
-121C64FCA542C6D5B7FA7FCB7CD0C41295625FA2D99E6FFC4D08450EE7C1EE81
-BC356927FF6F5AB869D083929EC1A643515702F602AB140A410378A65A721DE8
-1BE9F270589F468D5D2003FAC662A907296302C873DE919466A128FBECF122AE
-6259456457D21A217D359EFFF23758BB537BD97472F22EC4EBE932F762884EAB
-5D59AAC0097E2EE5A9EF77B1E0376AECE3AA529E5E518A24569007F5DB2F27BB
-776BFF2348E9B2E9AB0B07B9BDBCA49E37E11E2980754CEF43ADCBBF32B9575A
-C611F4AEBEB5A718524AB25FEA08E9E913E24FD94AB4E2E4FEFEF29C7A70055B
-5FA0FA771D485CADF65EFFDD9B6897F675598532D8E974CB042BC7DD6B5A4B99
-F5D36E27D80AAA8417465223649E44E28D5AFABE693265DED4FE7711BB4BA083
-DC71244042798FE7E1965A469B8F8202DEB7C563F43A7E17A088FA36180AEDDE
-345A2D7705A5ECEE8E305218791D9956DB2E848E422291D7E2E249329246BE92
-892554EBAC59949D310F38819EDCCAB09F4DCB80144604F8F1F43447138B311C
-FCA400AD225FEF31D3B0F6A5E8DF91E4FBC39C93DDD11A2E54D1B8ECF5F386B8
-FD0DA95AE3E981FB36D9FA0344D6D41CCBE8F2320539411FA23360B88ECB4D38
-FADCAABE8049B06887D053FBF3ECC8A89BDE4A9F1ED7F6629866FA14ABAA2924
-9BDB9D6C93F6080593A4BBC0CE2567813B2AD04C99FB09443A684E644BA51B9E
-9480AE4AB2148A081F6BCE154261D4B0F03864C6F79DBD622EF471A844048766
-6A872C8E99A82CB468B6FA50260CDD90B81CCB48A6F3BCE3865AE56A86569E23
-16B13DD6114D98293C0DF2585F4E2D01E5EC8E43DD6FFE027E2F0C9CC360BE2B
-823DAB713978E73D7AA80DF69CADA74D8E23D902B9DA35EA2BC9D03AEF265D54
-79E86089AC4E8312FB9CE325D8DC9E4DB22BC048CD1F0EFCD64E62B785D97685
-6A34EB62E657BB2F3658B1EA87B4C07C45C8D8283BD35634EC67399AB00AA2F4
-A15A723E8EF9AD000007ADE862D7ADFF32A907D40BF9491FE05BCEADFDB83187
-2825ABF2EF18608411F9E31C3306B37E245F1571155D5651BA291AE16EBC0390
-FEEF8EDA9B9EAB02F1D3BABA0C4DE4FD20FEBC2DDA743FA0C32F7A746FBFAB22
-27B2B8547359B5EC413F98024A5574F48349213502D0F1C71093EF2AF2A7EE88
-67332DDCB9D9652B705E9D2ED1BEF1B9699D84F9B8520DDE2609F752E8D77F8D
-ECF010C2F18EA526B4E2EAE1694834494990A4AFAF57286E171E4053788F3B2A
-B7A2DDF04308E47448A06C66E987C2BEE43B5FD8890A1E11FCF4E0548E201941
-8437B4BC7A92174B7D5D8F4E9E98F48779968F00803F2FF59B1764EE197873EE
-D1DFF6B12B54459FB5A6864CA9D73B89ADCBDBCA2DAAD3B42C4A9175F503F21D
-C48D5145E2C6AA7D7FD787BC0D
+588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C3
+975289D47E7F35898FD87E0BE88100E53DDB356245666E7F724C208CF200B76D
+6E86BB756E083DC34DE1DCF484CD664C826962DC9CD5DB207262A43EDB8A18BC
+7D3F35237299AE378AD68A89E97D65CB05503E2C2D951E3AD2A544DABB19973C
+2B9AC59428D1FBCD89C058532357D2F4D53F35D49FCDC303475E1B41B3A2E18C
+657AA0AE4D04BFBEEE2A24D462249CDB73EB96B6702C174BDF87642C3CB6F3C0
+86B02C65EE7D5ED2F636F15F50E5D1894F48AE024E1CEB56AEAA3967DCF5ED5A
+63C9DD1DAEB9C8A353C2C90BFAA6B66B9E0B13BA0CE464A3C8CB2C5AE94AAB37
+72C62E70CEFD0558E483789630CB0FDF76E9EF75D8012E5F7FF85253C480F841
+CAA7F9FC1E4AD4576BFAD1825C989D197024F8ADB77B7DF5D341E2B68BD7FF5E
+414852120B733078E1B703AC4845E63CB624BFBC2B575CFF29AFB89BC5957A1C
+D3838B3FEE6252CDDEABBA24259E50B48741EC36BCCC888E09B9A0BDDE044D9B
+0551B31409E7FE2922D73B7E52B08C32481A2F29E81F2B1573D085997BF65B06
+12E062C2ADDB75A199AE7785015967917D9FFF94DCC8CD8CA79B95560EE9C09B
+04441CC622B2374030B08089E51AA9E9566AEAA9F81411C638F547B15793F884
+E04DAA850CD17CF5093F73DEA68AD40C288EA0C25CFD9FEB596DBC7F86C9E13A
+2F2E43BE780B66A03B4154191383951FF535D8866735B6879C5D4C51147C7553
+A012AB7FC667F7DF259690D47B1F2DE226FE539DAE8EE6FFEBDF3186E6ECDEE8
+8B3E2CBC6006456AA69276CD025F387ACD73F0CEE35CC1ED6771107E3A1B866F
+19C5C17A18552EA2DBA65EB75D493D05DA9D1247D77F65968CE5BCF68D56E249
+3D41AA3360275F993A8C0C7A33D6317AED8C6426C374E7833241E88DB88862FB
+411E711280F84C46E1A18D0F520A2474E7AF7455709AD19CCFA00463033FD0B8
+61D2CEB925BA10D19FC97AF1953C8F0EEC15254F2C4C56E9FFEF66D00E8E0BF7
+97B60CBB7F8B56B82B2F846A53E2E36CB5D27ED3881206B27DA02F35B6D32962
+54D89A03F67E672D019F2DD19195E80C0D0DECD8FCFD259907FCA25D5C407882
+CA7E54D31995F1F14376D72BF33D1AF534A05FF3D323CBBD48003F2A44369C55
+80BAF975090EF0D6CF0347C0DB4C6CE743447C7A48981E50BD1667B08CEF2A06
+0B85DFC727BD8BBC56767F0D814FAD4AADB1E2E674D9D400AA6B108A7B341F4E
+3CEC41E8B5BEDB76CB87C0CC5408B3985FA4F651B8B73A893CDB2A6506003EEC
+F83AF0FED73ED31B150DB8990AED1C1A46AAE6B4E1D4182A29E8504DBBB39036
+135745E3E2736AE23E09384761667ECAC0F24F1110FF9EACEA55DBCF86BDBFFE
+F492582A7BA7DA88932AA88B02C0E5A5B0A1DD266A36756D81CA3A056213183A
+1B09434C9FE4C98579512A77072BE31ACF25C5EC8B38A5394484303B8BE36FDB
+7146EC7DE53DF053DB16D0C2C9EFBE6E52AE86CCD389E2AC772A7231044CE76B
+ABFAE8E0F0D8BE84DC7293FE1D0FEAB9181D44BF19C2DB4C20F03DDEEFE7E463
+AD5A53B316CCFE4485D61E30913A3D77F5E364ABD1E3EDA95EC4DAF296261CBF
+22DCE22DD10B20B08876A8CAD51F4E17D981D38E6A63BF604D76901685DC3BCE
+9900E47A255606DD46ABFFC30D423333F49FF75A76C51EE968B190A3A848BDA1
+C793ECF0E41DA7338F387D3EE4DADA226AFF695AD31EFCBBA7245C348DBE726A
+C8B1C993D6FA12A4BD8B9BA30C9CE324CF051C63987866A0453F12A28C975E4D
+4A8761C33887FC2419A63312CB4E8E6DBB0C32C1642733102B587E95F0D1A5E0
+364E6D6B3995970C747B0D147832A321A942A8065FABAC9EEE96A2E316149411
+F5F3FA0690F82CBB928FA1E325CE16E119A74AB166A368A276A3FC805D7898DA
+869B51B99DB656B41527A83CF03050F8DB995CED24D926B8AF5C78504533F065
+9DD3733CDF1C97907AC47CD82407271C09486765B33BEB2950B8CD2AEF17D03E
+B93B464003418B94A165424EB4570DDB2DAB66DF48AAE2617851C443C288F122
+A44FDC795902732BB0AA746B4C16A1136966284913E14A44265671D4299FEFEA
+C5628C6CDDD52F76670D294C991C0CFF4986127A90832E4913D72457AC3EA8DB
+F9594539B0B1472825491EC9E13137C4FB5C4DC185130BF57D63D9D977A98365
+F51D64D6B9595BED8EDA9296E9436C759F06620AAC3C453CFCD8852C65D147A9
+99756DFD2399D4B8082A217E05D9713DED24E1E681A3E0D67175439B26B9C655
+440B992B158167C6C8866295CA085C094E447FC633477AF7EEADD2BC9CC6A83C
+EAC88183913966289847788602602ABF3D2BB742F24FA7F82FCB485AAA884F94
+D14BED3F1092FCF775BBC405267DAD50FA0FC972F9CB186FA350BC1E20CBDA18
+1C68E560D2FB05BF7BF45CFA16FD95BB3A92B687AB514FD2338FD965466F69EC
+EF1E1F5453596FD2A3ADC3888756D217A48EE48A11624E07545CD78EC7993BDD
+EF7B2AFBD5C5BE2526D9FD331FD13E6867ADD74CD2EC7464A193E53D428BD4B9
+AC7E96D33B684AC2F0D8F6E34D1CE086A7D7763D0D6CB811888AA6FE0BA9C5DE
+F700F213299DBF40FF4E6448F99FECD32DA0B6BC8E11E23C96B1DC16438D6D58
+AB396C890349AB2588D0B4BDE1163EB4765E2380B9B071EBA0485C3F478CEFEB
+0AFF7F36149668C6C8B93C9DC211B8219FB219F093CC921E22EB70EDA6FB0EC1
+3A05289BBDCB26BAF5B00DCBCE835BA66807E25354C3FF568E4D3D80A8D07345
+3EF15442EBD1757642D2EF0FEE55F95583545A29F7F665C0DD11A13A2F172AE5
+088656741A2FE3A7AEEC690FD9E328CCA2FC882C44665D56370347561CEE3A7B
+CBEF131B2FC47DCDBCCD8829B5D54DFDBB65D563D8F7E3E9BACDD012CAEECEA8
+A546FA226B93F21AB00E1F6B8B201874AE14D19D9AA36A50D36AB1CBAE4E06B6
+23C979AE1C120AF31123037ED8306DA84A600F73837D7143CEC4D4FA2C9D6A80
+DC32A657614E781EAD5C47CBA6988C80269C521EF82DB442CE86B4741B314D53
+779480EFB208752C601223637E90B4C6154821928D0C5852890D8B27C90E5B63
+6579E0ADF4904E268DB32CD14C4D7EB5C57C830632498DC6F637FA7345154450
+4B938FB0EFABEAFF0753B770A1A81EB6A2391C369AFBB28BFB545B7DF8C5D843
+BE2624182D1E0221C3DC415E0591828926A2B39DF8CEFDAFB6E37B085B8087CE
+38C72FABFB40D87EC3AA2926CBFF805BD55CFA6F2A2E3AC9BC3613B673346CC0
+00CA684A027A472F29D61001BE2DAFC38D3B40F165CEDE2C364B87527A01599C
+AA1BF372920926A31C0C3F0DC333088A040387445CD2AD339B7F80F38B2331EF
+2D308D7DE22212E942D928DBEC495798B4D1C345E7E0A4E850D0E0E0DF806F22
+E6BFF56A87D1566EEF4E5F0F5324B5C50FC8BEA1F2F56D2F9DC86028BF3E0C78
+F3CAA5AC2C95B69A74DF70DE61FF2C400A5A87C9496355ECD9A3F6A5689B95A6
+DD789210074316A9500985D727C5D598DAF98D72F52A7FD4A0DAB32CDCDCB1F6
+FC3CD5033C63E1A2723178DB9F0D30CDF7F976BB043411A9B52DC2E25EE41E62
+F5D7C906130515A2E871807357273606423D064280E1E0BE9C8E08406DF92012
+88D6AFD9A7F94364E3210CEFF7AA42F8771E9F57818E58B90BE3F70CB6E2BAA1
+09B5DEB0F835339A3EBCC9CC91EC95362F8A82583F5FEA4A2B1E52CFF7EB08C6
+498A0BE9922EB85DE8DC2F4C4C8BAE8A556E8799B393A1DD9A02048DE1C0BD9D
+9E08CFA6747D7D54CAC2F0530905D7BFA55A2725AC87B3BDA4C3E641FD40290A
+CB21839AABD1123E885C056098C604C1BA610DAF070884DE4F9101A5979E3521
+16829B81A06D640539D2138120C62BF7207B0292CE093BDF51EBA7FC7F3B0A41
+70D2392D19D708B5C9139E42C18EC86FDEFDB3B8110795EBAAE6969F2E1579AB
+8C3F01698EF67A733A561BF577EEF58E669358AEA0730E14A12BA0A3FBE00719
+1E1D66904BB731D4F0DB772393C47B8894FFA70AD68E895943D7EE69647CCC5B
+129C5BDC027E93E534568C8D74108DF96E3EF84B872415FC9636B46B45D55E55
+BD1C1933C4110C832076A57B253210D7AB19D10D2001AB8FB7629E5ED5313ABF
+0F6473F479EDB06401777FA50E657CAC8CAE78AB6C226919B2696F4EE4D68B62
+42B464F72E2DDB2CEE2F8D0CB5B817CF32C6D919BB64C1D8C09FFA63E99ECA7C
+334ED10FDB888A6BB4E2FEA1ECBB8B65AD694F3F0D46F833BDDCBBD326377543
+28403188A1517C7E9B6E6CEA07FCBF028D8CFBC554B877EE3EA87E3A47177488
+F1CEF87232E8F3B05ABC727E605AF1E6EF0491FFBB6024BDAC9E230A05D93896
+208253F0B553F6EE3DB0938A2D20544E839A8ABB574CB1A8ACE6BEC53409BF7C
+DD2E51D1B78E222141050DE03325D69DBC93E83DAD6C21550AED849EC7008989
+27AFFC46E63EA2BEB727CD69B7C25D790B0EB860A57CC6ABCB5F1D70AAABEEF4
+F756B93CA11A3F900ABDF10E2B61FEF8B7C06614B7C951F64DBD81F0525B4FA9
+B8F911FE3B138A2A92EB3DCCE4B1ED5EA4D5120CC6B5D9DD91AACBF96F85D5F1
+5EC81E82DBB6200174C99C6D3F1ED83B6787175419D71FD1D9DCE43C3A533AAD
+84EBFD6DA02E3FFF2671A12EC04FD54B62DFB1BFE94F6551F97D2D71101E535D
+49462DC28F44E9CF47141EE173B2081D27FD71818FB6759AD8F9E8EE6B4F4C42
+D2F5BD0EF0E42986960EBDDD1B86A8F5CCFBA8CE13790931F81A173F100262DD
+E5F0C88FFD92B7068C76537AB7E662C9F62A2E50CEFCDCACC22E0AAF29179981
+7D26ECBFCD3834D74CB191D98BC4FE269A49916A8C6DF3252A36E1C9667E195B
+3A6D4712F9E741BEFAE5464E8E62C16FC094006E6E0E44971B5477B3F613F0FD
+FB1F6157A8BD3850337EF664AB1BBCAAB6EF028A6DA82BF8BD37C87F556FC65A
+F27A92B2F03CFA2CE1C942D2F4175A1FD332F956AE4558BD42D20AF36119E967
+D4DF353D508ED5E3E1DB0A6D1DE3DC974AB489A0A2F1A817E798CD15124047A2
+0BB986DDEA0C530BAD8CC74643B3F8D6D9A4249C4A049C6624AEB9D0F5B073DF
+391DA641ED9A5719C8DF4BECC5EB464C5FED010778A7B3EEC7C4E63063ACEE75
+C91F966F93B81B09B80C4B708EF232D4B3CB86E35112AE94EFB1509767F86EDC
+CDD4D87A6CED2C54BA3D7A27D31F4D9C3C3E4BD59D5ED4FAA0EF35A95D533A46
+9CEF9CA8B889F5CA51C83FD1B2364D73DB45D3CBC584662928ADBE635370FA02
+6B27BB763476DB708A43F9056F580C234E97E925E06014F2DC0684A2B608796F
+07B9ED031153BF3F54BEA155F5CF5796EC4F413F529B7B1623A99AB18DEB5A77
+638FCA175C6B608E0CA86A0006AAED13C7E32B5D2D9F5DDA900526BBE5F2A72B
+F6AC4738D9D5F1C0C64D6EF08FBF42A93163405AFD2BE799FEF6F261AA4B1983
+D7A478B8483473A8E410938149A88E2D8F2731828C578EC94A0A1524AC6AE968
+6FF30BA8F8941E766A3400B7C90BB0C35ACC0E151EE2DE95C96CB57870B70571
+7780F054B0E0C6875303E6C8A86E327CFBA2A9A63C6A4A412BF4204A9A6CC043
+F4181DEA58886B75E8717EAC5ECA4130E3C3ACC63C974BC25168CD479B8FF2E7
+9D7383B759D7F4CA647133895B6F27060736344E17847A5376900650E8F1DE91
+35A64E2BA826FDAED6126E695B383190EE119E3D2A0C55EA00B96A87D6C31D91
+FC138FB980FBDBB123E8528D8C6902E722B0C4D5F697D08875C4AF3B54CC9D26
+000AE20D642627527F9122D8F7B4269226FA6996A086DA7993FAB72D12760980
+112A7282307B973FE18CF3AB3541320F1D56B60F10D057D55110DB5B19EA8673
+A04150ED3E31FB13C2AB1984FC035668D97F29ED5AC599E470DDC96EC55CF3AD
+CC2292D5ED757017FA84B95B1A835F35FD0D053B795099C1FA04ABADF189CC05
+CD3AB170C4676045F6218746E7BBFA8EEC7447461DE88A82CE72809B2574DD3C
+F742892BA4F986690998054D545A958FBDD657B159DEE0E20C09695E945D991A
+5A7060E0B43557D69720E5F0DA325071BA4E8612BA2CBCF0017D1DE7F75114F0
+7732430DE5B93F037BCCAAEC7FF15A3CE253B1B1ED90E176A5FFA28AE4D31F89
+8C23F25A0B3B9048B77C97251B710D6AA597F38E8A0170864721B490F332BEE3
+3451CDFF7EA716F7B61CAF9A7379C0736869A4B7A9C4FE67E00B6121A0B80799
+313059C1F350FFC355A9659DE24FE94DEF95A7453C402FDB76BB37A3E969920D
+A02E416D8BA1525DB382A268F8482D8C1F2BF85C3E0BD8BDAB6D69792018D112
+46AC210621CA7D1211854407CD771D007CCF721DFB38BF230F1FF6F4A975A29A
+5277FFECC83570E3F5F2AC00BF65CA7D6EE973E073DA7EF5C4169F2BC9EDC891
+7161AEBB815EC74BF843AD52A05CBBD770842B9A8D49EC5B2E81F9E0FDE14F1C
+EBE5751331A84B761173AF701630BAFD6BEA0EC21A6CDE53DE1B77008E4CADD3
+A8E3DB2E1E9DABBB88779E4FFBAEE434E1A4F7CE2D1617A499BE976C26168FCC
+D15CF368EB734E55A6AD683B870DB893552C47D703FF1C60F83BA255C2C2DF31
+36404158B385CBD3689657DA10DB47A4ED88CE3B2A96D71574E2581002447493
+9B2406886B0C0C63A4A8A7146E6A7376AED21B844175E225B19480E868DC4C77
+98D4E711CA2359CCC49DFEA8E46A328EEC393DE1D63DA45124F4943B0214D6FD
+4E315E3B5E0628CFAF7CBEF0D6026A346F33B66F373A303D1CC81A38D46D2CE6
+7D8B39CAC15AF7E0F1DE6B7991AA90DECA4E35BB7D1238CE7AA94FE3D2576B33
+3B28014FAF2CA6AEC8C1D97997CB762F0F7D0FF4992A683047F6C8584606A8D6
+E7325296CBE312E7CEB74D5DDDC61B86B17547E0E68278136740A3B48BEA681C
+5DA905773ADF372E0C87312506FE1BB9F375524E3F02D6BAA197E7AE619FA82A
+D18A24E4A384D56515B6DFB85618EA77F20007D212B8D79190B8A117CD1DCC9B
+40D74E4E494D174A77A174C6AF775310F7F57CD69206FCA5526EBB963951B1DA
+29E594C254B480F0D20BBA199F7F5750D34A50402E4EED113CDDDA5B7920294E
+EB9C6F18F0182BCFB1E4B9B86AF6BF073260060AC88AA344F83907E7C5613324
+1898F31B43CE8C173D1DC670BDD0FD3B75C42796FEF88BD60669FF00D6704D02
+99678D55012907C2D659A254E86F1BA20DCFECF7B07A2C240A5B1AF4D778E3EF
+6358A8B10E38679D57FCF28BD6581C824A1840BF91206398E81B39012C0095F2
+CD2C73D8845182F02BB80ABE77EEF1F709C017FC586BE7A23D0771EFC8A78165
+FF88DDAC78A4C2979C0D16ACC0A0A74A71140BADBB7B51B79A54842497F51E6A
+90A8B4CB10DDFB40D4FFCBC7ECE911A5D8A8E9053D8801813178028468E07D93
+C6645E1034CCCDC333A095C42F48AD776066DB50EA5A1048E6C13EE0838BD184
+0D4956E0576DCC1F6A2C6E21E38E1E837F311FA04120C2E3360DFBD7A0DC3E03
+59C07009AED7F8FAF16A1BCD15F01EB87AD10E096822B38CF2591EFB971D368A
+C29A3DAFA38DDA281EC38E0195ED98AA177067FC873D207ACDABA3AD341F16D2
+B7DFAFB1093FA798094251F9097EA5D8B13615A1A358758DEA0F17C8ABFFF0C4
+5184AE86AEA2EA55A9FDE19482663F37872CDA41971E5E85DD3893C486196104
+A892DD7B5D03E5D346E0D7D45F9514C7C41AA75C807F56A85C65A39405B2D07B
+7B53B082BAFA4FE094A4BC15E06A4D97EB4B0D736DBA96C10A6B13828C06B543
+5D99F79B9086F88B10E5445B8D71D587D36036D0E7095D378063F59E697A7D73
+55DD21A26CC5BA1743D41A268B16362EFF242D60119F0068F381098CA56DF9D5
+0CDE40763AC2D072F5E65B4466D612E972BFB343F829F3932012637A2C2740A9
+4BA1A01D61225010ACA3013DE57EA5D6334DAF8DAAC64DD24BB1C75A70999C9A
+7F5FA55D2E4FFE4B1B21BA2504961D0E4E7CB14C0C6A789DB141AF8DC74ADB8F
+041AC348DB7BA5ACD513735941B3234930514AAB66F7EF22D8927C5B87EA52D1
+6126D517E98965256505F2C19D973FCD26702AEFCE06501AD33861907D5F5609
+A96FE16F854B011FDBB4C332A17A36A714B00A4358E2DA5342D91AEC57C4F61B
+84F80554E8BD6C643435D36574B7A4C20F2FC49C3362A26BB2C594A7AAF50A33
+B9A6540004A1A6F455920A4E282321607CB5D58F5262B03E338461284AE25BFC
+254CF4A119A306233FEEBAB31CBC72F8B1B8D9EB3BEEE24427506823A432022D
+98B856009A7D06A49FA4EF48A54783AC536996CA1729707A97E7FF8344837BC7
+44014D12C10C2CD224D355E31FD7355427D5B19090021F607A2A44E7E45155CD
+5284F8D641D78C7F506B8E1D3537F491334DC36B3494DFFE999507A7D7A2B1CE
+23EB2F904B799B160FCA2BCF91BF7A139A0EAE690E1DAB7E382F0DC371D0BAF6
+D1F057AD27C8020025688ED5EB3609B6A26AF62270C0C4198240157766D57B7A
+638946EEC867B34DCCDB1FDFAFC587CAB7149D14396CE508FB1784F785B54D8E
+A9DCF5B823CFEE22643EF13114AF35E726DE6C9F65BC00B43BC2B7997948E878
+52C67D065440503BCD20AF6AB2E612F583388D8323C5117C3AA01CABB74E5F4D
+1370DD67C55ECCA8446700CC02F0B22099CE1E4C0AB29562E5AA11B07D3538B4
+F1E7001510CB69852E95769C4B8C663E50C3C62310096F2041810C37711445A7
+475EE2E0001639453132374212076813AE1A86D1D77780AF6B769E460DD34AA3
+A015539C85AED5D175E00231E2C476F4363945208471B458D2BDE57D51352465
+C9E4C989475D1B416E9E70B2521E9571B5986CF1347C5E59D4A0624899E70FF6
+C906A7274CE96B5B8A503A3E6A6BAD424FFE0EC4EA784669AB62DB1A3F52AAEA
+A6A04AA6D98C551F1D2F04790F52F7745D2BB3960D8264845B953B414594D5D4
+8B46D75E37AA04BBBBB3063A742B43B38B380F53038E4DC91416EB14F24B2C9E
+F5CBCFF0F116879CE571FB5DE18136795655CD15D6A0DF5813B83C16991DA0D4
+85BDF299365B87DEDFA429E0A960427FB468E07B30CF2D2788FD423B65754AD2
+F4F5974176F35E34BB068DA31C7AEF659B89F9E1376F260BD18A03DF4514BCAE
+C6DB005B366B6793914379DC4E9480B5CF2BE00D8D72503EA43D598250F95ED3
+6D6CD0522D1D36E3F64E57067F86660FF4E9536D0EEE981541B56BD894E3F876
+5D600C3B8ED301CF7AF582539B9037AA1D616D6E494ABC7F7BF3BF341B8D7520
+68DCDF4E4140E9AB85F0898E634FBF91AE7352C407365B06D5AEEE21069EDAB7
+B06A99F8BFF1335AF2039095F54B5A3D62CDEF5C95B858586B344AE958124121
+2A990E05212EDD915CC7A8FDA48424
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -1934,357 +1938,361 @@
 23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413
 19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42
 1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39
-8BF32D2E5635B6583D04BC0AA187D10FE773067ACF3B528CD412ED96902B0056
-567103E3FD911A099ADDB9EAEB3C08F1B36A918FE865B7DAE1C49F21650E65F0
-C6845C15740631BCB7618A3266D83E54976BCDC707883E531F3F833AD0DE88A0
-CDB84D8384602B992263C3C223D1B5393DC98C75EFF9AD8D98A764228C70A303
-28D87B1A5510A579D01088C26D9667DB86F72FA302A3A8EEF7E05DD1835E72C0
-66A0728CB0DD8C34BA1D772886333BC78C79374026347FAC9CED39B7FBA84DEC
-E70EABA29B80B4E813C0E6D5ECA5E9ECDF0413AF7556EA458C3C3B49A4B14A05
-3034C04E1F8665532D053F810683C957050FCF44C5D4040CF09893DBF641D68C
-0969D67BEBBA6DA451D446DCF87B8243365E7158D89332FB33CA28F0A83A7A63
-D22A0948A46F0AB9B2CDECECDA40FA75B046CED41C017FF79FBD7380CF33D726
-B03304BF8EE1EE450C065BC8B83643AA74F8D45924181D1D0C52CE78C36DFE66
-99CFBD08406AB9FDCC61242472612AF009F8625C966AC9A7228B85912CA77A9C
-832F9D14190A1DC798D4E99B5D067A020FAD7E13E2E5A155A94E46853CB93619
-39183DAAB590F1BE12C3C4B0209A93CB015E58EEA72C0F71E68EDF1CAD4CA776
-9320076D70BD2874A166F2CF735BD5154F9FBB219C868A568A7C176060F78092
-1E3661E66B7E0A8DCF294E09D487AD7F7D1ABEF83E7E0E5BDC60D672A4D8F5A2
-4C33479DB4FB7105158E19C62FB0E1B9749E6A9D4BFDF7884B1922C4C48265FB
-7851C1116696C02337B64F1A0445396102B541EE1CA10D8311F79CC58F2106D0
-12FF6B1D274B810AF318BEF04467B5066889896BBF019F63DD5DAC53EDB1CD7F
-AD10D90B2D3CE615546860B11AFD0D6B705DAC7545579DDD3ED867F31615CF4E
-F3E4BBD8527C9C3CB4DEBE71F1AC965A69A1C6E244BD5A49FC81135A587EA904
-A863FF7D421C407EDE08825D78924635E6968CAC4399D231C785C9048FD8C916
-0B2676DB4D91487B862B25F68DBBD03B604BD875420565855CCBEF9AF0793964
-4FD45E490EFE697A470FA3C60192E660C45083E27B9E569DD1DBE07706975B9C
-9AF2851279A7630999C92E9867F55D56CBBA0CA13A0F041CD0F3ADB318A0D298
-ED48F8288691BB2CE08B6A73E9FA89DAF661F201947BD64C1EB769EA3A0C6FC0
-3DC343AEF2379881E46627AD2F653B4C6BC37E8D8452C3A7E399C0B6B3D93671
-F51A92EEA7712A872D0BEBEBB071C83D9254A24C8799CCB5D2FF4DB31075483F
-3743AE4BD1CEECE6B9432BB89399FE62B87DAB3B19FA924FCC1F6C3DCA1B0049
-51024011B8670DCE537387069A8732AC4ADDD77B2A0D5D97105810854595C4E8
-0663FD917B5B587B8ADA22351D79F5E5AD494FADE90336AFC27FF9FE8BC770D6
-0A8D6FBE6E45B3D4DB20E91A53D84C8B100813CEB9A81B03E142748475EEE77A
-892B3458A3AAD744A20ACD28C7AA6C5A996C9A9900F2D6B3C1169DF3BF2B1A9A
-56EF83195431EE89A89CCA5A0EB6A59D7D89179B6C127BA0981FE0122E4184A8
-FA9094D9C3D54BB7CBA31FD03C7048A09AE67C956A5363F5D51ABB19CA264D9D
-5D515F61DBD9C35D259950530A95350A313CFA8CF06413ABEF844771BF99590E
-F9A2F28975AFD00D700E83A59A3F0B7238CC74A8C1C9DB059C84DD91F1E07580
-C4C1311FF1C4AF2AFAA07CDCE72B0928663109CB31DE1548C72EA321F0EAFE9A
-ACE0E0BBD840254E30D9A46162DACC79A07F21BA056BD90AD312A2D728CB94F5
-FDD65516843523741D2430C5338FDB4274162B8C0409ABF94581C1A3D8636BCB
-78A98069466C0C869BA08047E9C154DC6FF00A1DDCC2C4AF4D5DA5437BD02616
-C0139731CAA7817984BE614D6D41E9C21AEA1CBC9E56C783F68364023CB95387
-C71A72D9DCD59222964D04650181988D140295091175DD985F5B53B070D20B89
-5E4B621C848C9370E0687B45EB1070A688A94BE949D242AA6266ED2D64C2518C
-4A5E75442F030E137D2E3BD654C4E4EDAFF7B46EEDCC9090D537B6CE01DD6D0F
-1872A47A04ECDED2421B511118B0628148D2289B74B79B3A68CA7A2547D644B5
-2ABB83CBBFFE319957FD2189E272DA2C2E35DACA8EE229F37EB4C94C920A65C7
-165A2ACFF7B92CE4338F3030E157CC75281E1F33AF00386FBE6003C4C8CDB57C
-4EA70A31E2CD15FE6732F98BE47354C2F92AF632B5BA1C7ACCA3633ED13919BA
-106E6ABCBDC11006BA4560AFB17C7091BC1A632E7870B65717656A89EE550576
-B5D3BD5DD829886BA59D186770871C3D293EBED70D66EE3AEA926F2AE6AC6CEE
-30CE46B99DCEA2D15384C53D08C6F1A083A24C025D92832E16E816B893B3F2F6
-68BDF430788D1167B14633E0AD0FD74951C5826BE0F4B8CDD23CFAA88907C43D
-1678FB2C4053E0E2056BC4B33F36A896D1BC212B0262B6CB59AB3A5ADCC027C9
-EA6A2C0F1EA2DC6B88517BF08AF54C9B1A4A7B0A4BB9A66ABECB539BB6BA1F9F
-313F2A5619949D0FEF977DFB87ABB8B8DD420F3097B2B8BEC00EA5A3E8C207CF
-508C7CA5133CA63B98A14E11FB57BB7C461D7C8C767DB10E68BCEA1D5A4B7F29
-7AE639BFD660B1CFC78DEF00CD1278833E48A65BE281C9438976BBB475AC6818
-C533FB4D2F4D3727B68F533D03554393D66FEFDAD1A3BE79FCEF05B98A5D9EF3
-71F4D16E531408B2D866286CB89B50DAAE9978B96C8BEA869F9E90B780F0C98C
-1618C4F6FDDA21820BBA795B0AF3D00F96635FC5062544317A62A37060F965CF
-3BF8A9C7B5C3D74914E0AF04AFFDA0FB1D1E644E2FB8125E94C480B4ED41FF6B
-DE326A771B82A9C44B4DAA194D3C2A8855CA293787D7D5F466A2587860B64408
-6F14F78C085F63E6B63AC41FE7574E5E22C723202B7D42A1BE0D14A299231F75
-66FB900C2A030D0E09EF5107F9905A5C66E6A5648FBA2B8E80217160EB797496
-FE3D4904C8E3B6FDE528D1B931C369AE5115114B3701CD40B57457341D735576
-ABE1907500771C3EC5F562B63DCA85FAF5769ABF0F8F74A678E508A59802F1E1
-B11545E6C8697D1A7FBD4ED7A5DE57778DF66E04AD354E5A45E199615C6CBFC7
-7F6C232D710E8CD5F9953DDFE922B2CF50F02F65A96E1BEF0C1FE6B5C52415B9
-052B9C062B532A6B83260D13AB6D3B2A48D780E03B4519F4A2152B82D1A90359
-7CC62EBC5F26608232CDB89D2CD44F0E889AF80B1A9F8C0B9DE0EED9787D70AA
-AFE3DEF464503D9E56674C9BCD0BC65876F2F455C83412E8FCAC08ADE7F8E2AE
-CDA7A57425C7ACEF0D58CC85F71D8512B32D9C06AC001382A4095FEA02E2BF2B
-A7EB6C298B10CD398780A7120CE9A31DE391C349AA273C890F620172CC434C23
-33265359372A5451C4DACF0C859BA6D37AAAADD08D2F85DCDA2399D894840D7D
-AD9870DD307B9D602661D7ACA2F84FAFDFFABF5A89AFA9973161DC1CF3A3943D
-CB84A9C241C8B6D6CBAFD2DDC75166C3C2D5994DF4D2C60739F34E7805582A15
-76191F4150309E55FA04EF8A59C4DF8EF1C95E57F0C255B63C82A7775D4CF3BD
-A3C56600BB869D411A5ABE7EC6C67437B328DFF2F2BD6267A43D69B6788802B9
-249DAE42336C2A3DE75816951644C742C36C51F120943DE8B75052EE4405A346
-E157546DCB7D845D81AEB84E70B857B9152C3FA6D5F3BAEC8611C14F67B54DAC
-F58BBDBAD4C473C0DA872330902A46610865EB0EF8F97078841AF74758F0E6E6
-3DBA2B1659FB937AADD1C8A612C61F0C1A9636F0624E64D6D92966D892F44F09
-48A4BDFC9A83C267ACEF143585C51ED45F59126AF7EBCEC2B9584B0FC6C1E670
-FC382E476B6C33071A9FD3FC2D0F943DBE055BAEDAD6702DC0F474F9B2DAFFFB
-C0AF48B326EC447E31210586B7DCD517FB61F4D4870A5E467492F40CCEAA4F2D
-B06BF4FD8B31D9650D032A0A28E1D413162C649352784A0414C474A82DC471FF
-1FFBDAE7795DDB8BF3DF22C393E939F5634C540DFE2590D71BC1444BBD79A9D9
-7261CAC5207814AAA58D8B135A52A3D3174110FAE364257A6F79AB3B73B52A0A
-EF08DC05593BD0327BEA4697339E45996E5D6812D166165790D8E4543C130DC5
-34725E44BB037555803390CAF9F94FD6BC08AFC3ACE747B9728D8CF0128D5B4E
-1275C4BD7E50AB5F980DB3C3281E3FC4A500FC6DD0038D35F4F5589679647238
-FD7EE68BFA9AE20EB140B7277073E6F26C7EF556FD311D510C92E89B70762F42
-410ED318AFD46F66F605E98D1EF12F00727B3B3F21F695241B4B5863FB1C27E9
-6BBD4365B9AEEFE8A18AFE350731AAA0ED817498539433027D50C8D38284E888
-1E6A1E6CD54F851B264E2FC4597A6A4FE03C7CFFF7D1F75CEF43E97B22096A1B
-D8BE2DC4A899E64492359B346D9C0051361B6AE9DF079BDF21FBD274597B3C02
-4D0FB1C66B8AE0AAFCE0C1CAC54BEFE069C0BE9505EB0B1AE60869B63C396698
-EF594E1C8E5995AD22DAD027BDBA4BF2FA9B570E8F0FA3CAEECEF6DB8C4819E4
-AEBD7165A655F1B7828527DCA9D01324FBFEEDD6797C8E3E9E17B760C70D7AF8
-8EC0AEBBB2C448DFDA6B6B4BEB43291772174F1C369DBD1C4183C8E00A4DB46F
-208C324163E0BDE572A84B85393892545249DB26457AF5FB311CD5EAA11D7F9C
-3E491B0D49C77898AD873381077DF84EF4498C012D7752B22F0660810B6EC0F8
-B66D447775AD659C51D3893CD2B4509E8B9D1413A99527F720571784E7B9302B
-92175F1FCA726E8AD6D82B9B7E853FFA5739D0DE0A02BB115DABF83B1E4DE706
-C23532EE82BD57109F9A7A4E6A87DB4FF5C698B04003312F1BA23AEEE22162EF
-F22F7D338554AB08625B26D74F7D23772532A371AEDA9CC2962B0B665393FF04
-0B032502628AC491E593D0D450757AB016B2C74C6AD44594E0FEC2F880B578CB
-5C4D6A409FD6B64B9F1BD7CD8B69676814D169609D2ADB2F1E98F6C8F1A16D90
-63FEB3C8FC663DE0CCA1C5CFF03828FD1DF28678492DA710EA61B9096A173CA5
-FA8A85DCE00EA42ACCA03EF856F3F17FA32A69DF9F73C46944705C5DC20A7535
-34CCC3878E878A0BAC55B7D56CE2C43C102D0AB841BD4A3C5EA0379D321413C8
-6C2DF639D4EEA521E0A1C68D8B60319EB999707001795562E8AED4ABFAA486FD
-C11D4F12ED45A04DC72264A882C97510C91F2DD77E3D5685DB2CE52C4746F613
-AD98EF16AA9773CB00735151B7D4B9315441BC3B8BDDA5ACF619F49B6052AFAB
-0F19D9ACFC8D6E0CA79A25A8360F9749EF39FB60404E318BB1A98EEAD98FA0E8
-40DFD76BC3A84404F7D3904BFB2EE3597D8364EA556E4F7D18F32F1D86D10287
-8AE46984461ED91AE22B6EFE0CE5511921B539122DA3EB48707B8ABFCCF2E6F3
-9408D626EBD0C2A1A87827ABAAF02873B675AB54BC6CB5B40E697471320BB686
-9D845AD686DCA663AB31B4C2A1915C55A814FBA82E77736F7F258C1AE7B42449
-FD341CE08D65E648A3FB4DE280353F79FD70578A0C38C963461BE98100EE4084
-CC1DEF4E35B10BB81C632FF1AB4511B80C881A729EAB34C9E9D217E3A57EFC52
-6B73AAB4911830A00BA599013AD3BB83BD3DBC7445C316172B3B8A22B8148ADC
-FF33379CBA195094D2C2CCAE0E260D8DFEC35153BB3533BE014F456A108C9D62
-5C21C1BCD3CB9D7AA0DB74AE571A88AF6BEDDB6DE3DAF92AE60187819E8EB8A6
-7CC1CCBB5F23E63A107EC8143F0F69B62CFC95605231FE605A989407218AE464
-C2B566EB86E1075B0D8FF788B726FDA5F5F2D8743C39224C2231A46426F3B6AC
-747E69C46AC322733DC052641526E775F10924F0AF404C37BD47369986746AEE
-ECC7CAAC1B2CF6E5D86A46F4F6AAA2BB7707BA4D89F1B46DA3024A84228E1A5C
-BA5EDB68205AE6971A255381FC06BC03644D67B082FD503F502B28141D437C84
-E809F5C78BA5FBD5B8D51C012C3EFCA915505897C8099F0938EC15464FF4EAAD
-2012A1239E0251BB126F4E400C170BD1C47656CC010235236733633CE22A43D6
-3E043B687B32BAC9EDB90DEA0D0B0015E8C1DE4EE0B0E0C10F2F50F4E35B31BC
-915A1D984614AC0B10AF2FF1B28FC135D07072C0530C50FB6ABEBC1592CAB0C7
-2FF36245ECB609DD787852E5509AA57B3EC5F6186B16A4EF52ADF58D7ECD1D34
-B2BDC2BA556F7915F5293A8CB3F44E707A57F6CDBD91E90F9146874311F25B80
-A7348FA90D09459843F842FCCECFE4025D12B2BF2B61CA32E6F72B8618390560
-0157F80C82BC6A54B9F0289215D94C662CCFA55EFD0650B0ED761D98C65BD47C
-F7CD595FEF1C7DA57F3B79FD55ABBCE8D30B1D0DE32994D52F8885A87F0C109B
-D90052BCEF87DE36DB4A852E910C792C094D0D0228C53D20ADA83280C79E9100
-8AF8888CAB9835D6CE65D7FE36B18F365C4F6324DD5670157B37AF55B205F460
-D10A0D16CDCDA78539CF166ACECEF425A1740B7C8F02D13F2A86070416AD9AF7
-BD30314C6DC920E3CB78117564ABB1195397CD66FC92F54B5F1535C15E02F763
-C92A2F3F4CD1FEAD965306DF3614D0362B0191492905777B75D8D1C6F5064A1F
-111B7EFE43756B4F0996030C00503EFC5351D388C150BEC0FDA5AB0E218423E5
-78F87F1B7684AFA6DC450EF115ACF8AC2C8DFF33AD39FEA1008A46EA9D6BABBF
-B5F220B209770EF010154C87A4BC067315192ACEECE255BC6A5896C2F4963170
-576E250C3F8520E1E413A30A1C17F50F6E8D2DD87EC02320176F355709D75320
-D1747ABB9EA215793CAF3BDAC8F5C0812A630FE85D7FFC3AD199E5D83B068C44
-B757C8A127C3993C01E25FD94725415298FCFA762ED456DD7DBEDDA2F7AB71E6
-A289E0F59FAF62E3A2CB6A0995CC06838C8F9A6E19226B0E0953E2BA3764BBDC
-257212FA3143D2B67D308AD49A0B245F0A97B09919C307B326D575F1F865ADBC
-E292206795305174C193A4CABB0044936E51BF95D0B13E81F2C64248F1D9749E
-CEC22448489B2AC1D766933B570E3471B4917ECB1D66E0A4779B084B1D22074D
-108867FEC1329F5B30FA344C19FABB7C09A50F49A5B0A1C42413B3ED9FC39B36
-500AD32B07AEE4A5C0DFE29DAC2C6FEC431842A473EB710293F23774FB448E51
-3EB6B4A27D98078B2A4DF3A5F0F41308374765C86C0A879641FAD025EB77D7BC
-9328E717E2EE4AEF31A3FD23573DDB8E81F20F6499FC2BB4C94D3F1054785E0E
-6F3B8D6176EDA6E386FCBB034F6E82F6FE43CB83AA1147B05D51BBB03C477F54
-38FC98086DE0E04722C5F0CBF9270E0DFB928EC7387710118513A3C97C0D6A9C
-D67BBC5AA5DA3A33BB0F534096582355E0B3BFF7E6536FBF496FE4E05F006F88
-C7C28672CC58838790821AA48534FCFB8DFD4EBA9C94E4F50E0B9E046651F779
-E11B8915503682E7FDD90F05DFFCC5A009CE64FBBD223E2634DC95803805F4D1
-C27B4D543FA3EF2B222DAAACF40C526B2A1563C0968E7F2FB22489810A530519
-100FB442B5F972F960FF6BD86A19A1F297F93DDFF83CE2347EA3F861596B961D
-4FEDC423B8262ED0F0352DA19F07ED09117CA72EFF0CA7B666EA45493D1E1317
-559D4B5D278F107042D276C9AFA6A093ED696867BC1041E5F25B11C1687C8C1A
-72DB2FCD4B632FC212D774785F2D3579BC0DBDDBC8CCFBCF7B686ED3BD92D4F5
-378CDE86406399B059198B66E88BB9EF7E572C6460C36B0F2FA3E19AC56F93EE
-60F1F7BCE76F0AF284C3F41C8BB69F7D34B4644AECA4E9324CE2EE4E4044F4EE
-7B9C28E8B454D894445AB47B05F7B4B94529808A007A5E3A7D323F661F9D9C0B
-B5BF1C24FAE9D951AF26493C3C9302C4C040A33E94E6596246511185628C7A02
-15D33184493337E2543B1D82FD5ABF4F47E894E809C51DE0ABE163D378910FF1
-717FA82AD420E076611F5559AA027F1F82433B4B103CC1541D342330D9BE4592
-9B9112E1FAACB0FFD59326ABB3A352C54D097E0B79A91A0CB39B77AABC40D191
-C895ECDE7E9439DD2098E2D81E56F13F178CB8DFDCA5759C4580BF1DCF7AA3AE
-83F2D998FF3B9789DDD4B2A3E1F5CEEEAB48CB410F5C07DD3FBB4C362BE0D32B
-5BEA9A428692EC6585A20F11A5C73FA22D023131B1B416AC0B2F4A4C801863BB
-D43B180F82391830064FBCC5A233E3ABC5B30C1FF8155C61E589604EC6C16E48
-F3C676C95C57B8E9D4305C1B1C7ECD75B3A5C7F8B8849AA1B46FDDD928D92B21
-D0B6FFBAD0B71D101EC153669E32324C497CD26093D0D2E4AA197F9D5E459C50
-709C64D20552A3B9DA9475D3658C302B5E7EAE0DAD3F9270A327A6644AF5C3FB
-8338C062F33478E38E82C09510F27C2FD1FB2D304355F28B35C9EDFA0AAED925
-F2D1493BECA291483EB47FF0442C3692D29D10FA92ADF3C9AD85D5AC09D35949
-166DBEBAF7D425DBDF179F8BCF21912C5A2123E869DE9A9CEB4803F2C04414BE
-45DF573DB40F5B9E42406F49862C7B23826CCCB05E76BA23BAA5A17CDA93D4EB
-59569951158FC068E32ABDD8930D6C4C58A7DE1D39030E3B818E3382938F466E
-47E8189A6B902AEE4798286CF0C032E0F2AD018380C904C2F4EC61ED98CCDF25
-9E2C691BE9812FD5E0CE01F2C94134C9F0C05F4B7F1260DEC20B9907E1B5D372
-8677FB4F0485ED87A3F6EA1A647072D635F7E2838649CFE37A4FF8182882BF7E
-9474583F4E9D3548795E0A63D4859BD27B662D156DD893B3799371DB1BC75A38
-0F454EBF825D683CF2CBC8B308AEE9D8FF8EBB8A7DEA067AEFE8CC77331156CB
-20210ADE2B5DD0A9F77BB6E98F3630800BF33915E73E515B34E58516D1AD87B5
-00A8969EE2595D2365AD69FA4F67CCAA7D243B8D03FB39CA136DC1E5FD434750
-8A329F7D11DC4D33F6A0BEC9A23E5EE1A18FD5C3640E3F30FC2D8CCE5630E618
-A273CACED00DA6F094148C5D6751DD983A2823418223E715DBE8ED167B2D1999
-650D0FD8685884BCF1D6147C162BDBBB6597DCEAED3B5CAA75F301D46F2F770A
-CA1C8997E99D16CC0A58572FE1D68383D87335A38AF8C27556FF19CC421B8BE1
-8AF89CDBB98273BF4E43025A710B4ACB5D7F2C77249CF1756282B74CE43F037B
-F62DEC52EA41330A2783B5E64F72392EE25FCE9A7E872F4A9AA7BB41E5368888
-6DC531A2E602696EDA1CD3DCF808F62176E9198AAE9CA8925038D41E17570FD2
-E976F627F7213AC8EE1B2BC240871B7CC1C61B81BAA031B8396536AA62A67DE7
-63FBDFCFD363DB5CE786230B302B786A859C48BBA8CC27EADB1FBC84F1059FA1
-3A02148B4CEF5DA6D90664E72DC6F3EA267E4102102F18D79FFBE4E2A642E94E
-F3D9376838236476B1030A0C47D28F4E7EF6358D213AC0A95391659FE736010D
-355826A83F7FBEDF3164FF177C16C41789E84F375C6FEFEA767DF654B0533E98
-A1430FEE50F41D39D41DC2ED6EA7EE1FCAB31FCE526D5556E89D36F3B402C5E1
-C0CCEAFA157772B77556AAC8F874A019EAE0A797BCF85655A7834D4DC32D388F
-F3E48C0F7B338BBA1C9E949C5C0BC1A727A77FEBE57E1421FF81FE4AA81869FE
-86EF313CAD75613726AB3F7508BC904A7E55F092A16D605802D36509525EE2E0
-18B8CE25A0BEC74D167F9E766E30C4EB0D7914F4DA044FD895F3A9C196E23256
-9033CF1E352E82193458B6CFD32238CC93CCBB0E05E8E6AED8CB27157BB148C5
-C644977C16D7F4FC50DA22A28CF8F945B5E0209C8D715E8E7D9D80F32FEACD13
-E6928F4BB60E9684C0F865C9D0C2EEA5EDB0A355FB16426A2405D124F3A01977
-1DE108F66E30EE01ECAA74FE0DEC9A6D485B084FA8A38EC3A59B23FD35B72F87
-ABC6B7D73EDA44DEAC4AA7285D15339EAC0B54B52FEC5B7EA723622704A3DE1C
-AAD548509991E18B3AD4CAC7FCBA320ED3989A185CAFA4E22A42E1B5C209F774
-F5FDE4CF0FD23978F3C37BC3EB97A0AA9B9CBC66538FF705F8F7E2C3CD58A359
-40958DC811EBBD7F16902417BC1C97C3D409E4039E0569C6826D22923806BBCA
-E601CFEB9B249597BF69BB74FA9607EA9CAC2DE0C8B958574B715D64D5E2AE19
-DF262825913DE26CB598B36E6F8168F7641A58018B9ADBF73237113B9FBB958F
-1A3CF592672A51EE2463CD7F22F058597DB9C7316CCD49EFAEFB6A20646E0DDF
-794C0A9DFB62A42FC95483D7F578BA3163317AEB14561F49F6E2A909B7C92370
-2592FF0614A1AAB9AC39E93A2DE2D38330AA56BD51D1FD225D0DDA8E91B94267
-127CADEC25E9769512EE28557E051F516329445C31D75E19711CEFDF77224F25
-8B590ABB3BCACF4C3620142B0401F7218BA00C67A748A2DA5F784EF53521F536
-7110D64B659B7BCD26E03F6D35A6EA3452A8F33B4A4E580AEDBC83E7D882BF65
-AACBDB77189BD88AD8A0CAB62EA74CD673A9B37AD1C40065C309BB399045594D
-7BCACB882630E12489BD5E049F217C8498287D768B4D0BF904BF0BE1C6340D18
-C14229DE0AC87C1FB28EAF752A2C88FB5B80A4EA1066F11DD918A2FB2E18DBD8
-384E38D2B645EB843A019723C71FEA7C4D02621308D92FD72A10522EFB409D8B
-9A5E51F4AA9D768ED428750A6F34FBFEF6FDBF163B13F6FF96450BC2DE22D65D
-F7F0F5223CFD29524C61D0070228ED1113C58F48FA3154E53E67567B46F7040F
-B03DAD476D4B4A2705ED9521BD22F48AE00AD101CD53BD79B7172ADBB6D4C4CD
-951D9CB787F957A1177A7F967A3B867D48A74A0EFF9ACB491BAAB6C997896895
-2F3A1DCFFDC2D71659F916C1630ECE089BF7318201DAEE72972A8AFD0C69D5BE
-B5DBBF85ACF39AEEEB8CD634A58D4AD84A49E75E39A5799D53DDAACB7CC08310
-23D44AEEC34D256B1C6C208CF20E986B5F52A866FBE4221FF02A77459AA91933
-4DDA62FD7070BBA306D113FFE2F96090AD748C09470FEB4FFD0CF8C72EA68FB9
-3F00F3F93A56DE5659A40ECAFEDF5E3CF327CBF8DAC7DF31F0F02EC416863D12
-2787C56399B9BE4AB5DEF7D7E185FF02521844F75C48D1ADEA4C0D8436B3A780
-8A55EB846C5CFFFC5D207B0F269DB3DAA7E06FFFAD34ED5A49BFFE73CAA09B6D
-AF0C693F71CE69B77FC1378A3C4790CBE8B5546FFF134AE8CB103DD6376EF16E
-03501532E3F725E58F36089E3718C635EF95FE9921EEDB08F0CFAEDDFBFB3336
-517AE8ECA540F6918563EAB9D1B5E5BFFAAADC83D0867125E2050A05EF871ED8
-CD0AAACE7D95D37065EA0C92E46115A732F468AA43FF12337839C206157A96BF
-A8DFD01BFDF8E2D76E4D46C5B9AEF23193156FE4B535C6155F79149384737DB6
-BAFDB4DC69A64056EEE87A1186B137B6D9D394EB8811AADAE996D67EC403083A
-86771A4CDF9AC65678A65DCF46CD1EA9CBE4C1D839CD7F166BA2CA8521F698FD
-4CDEF798D360867ADC4C8FD100DC3AB3B62C5BF2527A688D3DB498AB5F407879
-970F2EF1EEBDBC4521CFCBC3E621F992F3EAD3E9737976CDB56596E661129545
-2EBE036A72F668E809D454DACA709F2C0531CCB26910652CCBF94EFC3A4B3852
-B144EB820877E7A55B33B3E9B2B1786729B0643517AD956A7A4779334D0A342A
-3DD38F70100854C0B3032397BCDA640CD12C985BB2B5835AA83D442166613350
-BACB4CA9F706141A9E9EB3DFF314B1A82113CA28B74B6603D67AA2D15A36972B
-1D8B0057D3D8EB92A1809023EB95762577BD753193DCAF7021366943AFF53A8B
-A9ECCB74BF27EE70B1D0B73078CA5CB5AACC1BEE0A61A75981F8A0A3253035FA
-1D5D6A1D47DF111693DD9A1D35D9B865C06BD05A688B0D9BC285C0EBB1DF7B2F
-2CEA26CFF7583EFED470D4BF02CAE6E4CCFE5347F61F669BF8E82ECD2112E672
-86D10C529DDB600B5237C11BEE28BC3120A0E212E2ED4F52BDF6980675D7DE7C
-89FBE11E19865B1C163EE5F4D410F95A434056202DB1BDD10B3A75FA3C091D5B
-E3E2F888A6509E1755BFB39F9EE35AEACEDE970EAF42BBFB0D441BED621A8E20
-F504AAB0F511661754B03BFBDEE9E5D704B1FFC70E429E97B8C5651C90044269
-58BB39683838446D49507DCB70AB0DEDEFB73F05E621BC7371D21465AC659AA8
-90786F8CF2A0B0ECA4B40774D7143F92F2B0A95417C475DA5308B5BDCEC67A74
-A425CD76801FF2E115FA3A95818D088392C84FCBC00D3B3C7D683253414D4C5D
-74446BBFD130AC89A0C9B68BB1CD772A1BFE8776D0772ED8C00C13C8D0412D7B
-526A73A0E38885B79551DAC3E1060537C0EE8FFE574C4B9E8155E2CD83FD85BE
-191BDD6ACAEE898A02717A9725196FA59E41FB45D2733CE77289FD178AF07D7A
-FEF8D6BABC7DA5425A45AB8EF3C2E369432252E497B172A6FFD4D3DD957C0E26
-0D3D402EAD21FB3E404DB8082DF2ED2C300A0AEC0DA12B7FB571F415017D44E2
-57509A41CFC2284455635F50F06937D23699B43084728FCA9DD25A7264B9D1F4
-2E086976B56237887470653AC62DE323911A64507B40DBF281BB060AE635F37D
-BB4F9EF7456EF62EAACAB52F0606DFA777D2965BF03D7CDA312AE654EBFA92C7
-580B7C2A2E604389152704BDF3008ED2F58200D825D0F60C7BF39AF14816B2DA
-5738DE7338132B7E7E92424B7FDFB15D8E1EC176CBB7E15F3FA064CF04E357DC
-72FDD1E8AF8079B1134EAE3E5CB6A7262994C71714691E8BD7CFF2676EA4D0C2
-A5FCD6C622B3B34469E3B2FCD810AE0252B2814EB02C544B0458CF12DAACAC5F
-4A2E078844AC2AC74543F4763CDC6FC081073CD60E276AA6E7F1D948EFA02C23
-2FC1567CD952C837AA1ABD3E3077F5AA7F9986F01B0A9EE91C0EEA3895260CB6
-3B4EA5F58F8C8C23D42C81764E72399D2EDF40C8F18EFAF113AD16E753263943
-55EEC4F01AA885DCBCDB7C9E251210AB2B9382EE45050CC1184F592BBD65D6FD
-44D9EA6BC7583CA725A1DCD28EA77A085B0A47CFCF5A847C5D29C4F64F2A17DB
-BEAD7B3BA43BAF8548B65DFB4814135A2A789E7E76C978DEAE0138AF8A0AE4BD
-B4D22A02C169BB0DA5215B2B91A10ED3A2A9797E5C5FBD11BB295B02C7498B13
-6D90D8CD79D4606007D408E8D336D75D42519BACFB7164C2797F0E9FCD98F178
-D82372F263BAF8B2D1F185E549BA63428E2B8DBCCDD243AD605DD10666F367C2
-3EB98C9157E068FCAB8D91AF9683EEE87A1158A562C911574136CFC172D50C4F
-70BC388C728E821395579A081CC946F528CE6F3471B7615F67623F9138DF8FD0
-CAADC4E42AEBF892B36AC169C716DDA724300E9378B809DC6739929C3108A812
-F9C116118E9AE1B066E1928A4A442CE02B2D3BFE18D406AAAC1603E754224AEE
-1B802E92CCDCDEF94BAA8955F389B7565AB67D73CED601FA7BFF438717EAD65B
-449941F0C87F048B9186C9C78A3D43A3D4C372B5F8DA74DAE6DD2A2816E44303
-790F04C13F08E0815B43FCD837A67BF4A2A86FECB6ED6FFA56018961A0C528FB
-472971A8E4C47C974DE12133616F3CBBFA20CE57B572F751649D9AE64A61F271
-0DDE783CF2509DFC2ED2CE7467574AAF79101D56D3D2664DDA30FC7DD5B5C6B7
-0BD084CA516A72E6D3F8B7FEDF0F11EF9CA594C2318EEA3CC266A2F4C2F2AC2C
-AB1ABDC5F7419F46308865F1FA63CF2AF4AEBB8319372B3305AA052477ACD838
-7A35218A6CD4A7C0ADE0C3F8B005D6E30C8A208A3518C1134DC34D0E64F804A4
-258A995097F17642E97FE9CC38A34C250B8828B4FBA1840EECBD06D427FE7E10
-4EFAFEBBC934AA295E12F25D6FA3D277C7C88DA60D818A8A303364BD6B2C0288
-6E94BD8E474F28BFB951BE4ABC493AB0EA6EFF110193105DF8E9CEAE1CE549D0
-A907F7A7CF1AD20E121FA6547F93CC10D7957B36ACAF213EE436C92A00AB1A24
-540E535440938E748DAA6401133235D1CC74EC8FF80F9E297FB6C56C12B4E0A4
-D53AB28F11618F2C793F6EACB593E56B8370ED5CFF467B5FFF04AD11BC5A3AF0
-A6EF110B540CD2C87070FFCA3AA0776FF070C384BCDACB0FBD4921C06E24C8F0
-CE590D788FB8C1BCF9E083B4778818F92269C274B0CC6565E2D70FFFA2480381
-040C5CA012341D51427A59C3FC9B5121956B4323872E67BA499876052131B266
-C21F0B8B37902C7C3156FAEB668AE6A7851BC7AA62FE60D792B35B6A38183B23
-E5FB11DBBAF1E60B0D9DF0E84B9EA6F1EA6C37B84736FE657F4A29E92F7DD89D
-3473C81FD7F595770BA69C91DAA3154425278D323C3E50A14FF72A02BF3820D6
-6621B91A96A1D2F76710143D41C8305E02810780D868D822DC6056DFA4690F24
-90BE5BB4F14902B97F5FB4CF31A6C8B346A76B95D82EEF610AAFF9F6B88E782C
-F0E46DD18BD1CD53C92075AFEA0C1F0870DA52455847B22A638DABEA04C90ACF
-0D89E8345F118E5E26A3934AC0C0C9F1269946E17F1AF5759123CE2359B60ED6
-3FB22A23380A34DF818CDA8570B36B92C4634A80AA4ABEFFFE36865AFB384DA8
-70E5CB4829052F8BEB962841C2030BBBF874EDEFE149EB8A38DE0ED59903FCBC
-25788EFBB825265AFD7FF2F8D5F9A947EA94A368C52986E8640A6D6A11B14DFD
-CF435B2F1F7C168D1E9C7B84B2C2D9E235DC59799B99971FE9E6D9780EAC653C
-981FBDF083B949310FF20F7B383BD10737136E88B9D294677C7C63CC50A41AC1
-B4649631134034DB9FF76E0B19799396A232809A5BE397B63B528A0E860D38AD
-A90BF0D4246F012E19CEABC74F21E2BD46FACF96D5F033B6023A98DA51653D59
-C306875AA02EDC3DB78060D72B0A00596BE36367A1681ECFEEFA447DB8DE6879
-18962C974B55038A8F67AA553ECD27C6C72D46CEADA75D68D7DACB40B063F9F7
-464401B0AE4CC61A1F55A7E40FBD0FEB890DD2FE36D9641E40BD2F6D20C54353
-C3B282E7F46D61EF3A41F8BCB31FA38EE2B99B671841DA2FAD644C11AE20B6F8
-C7D5D99806643412273F874273FBD04C65F048D76086EA1156F07A47CA0FE349
-391E906747C833320E84E18781C61DEA8FACB8D9DDF08D29E5983F2E1FDC8C72
-C200B63415529A45978010EA5C150BA9D70CF4F5799DA551A1CF7041A17DD5F4
-153A868BD4B81A25551784E2A6EE42996F4D6CFAED97725C940C0FE9FFE0AA31
-FB2A32941E6C555FCF33B4B8E802C40B423599C8E88C6DF1AEEC28938FCF3BAB
-B6846C20D7EC7278A909073BD15BA75F470F82237BBFF6E7287A3771378A944C
-8CA6215F95437DCC9EA67F7A8721FA63614CA7BC5054EF5E5716FD4B7DEFDE48
-FA8D2AF9F0B3BD92BF5F48A0DCC8406B0A940FBB5D35B56A49B7D4605A00F82D
-495AEBF2B413F19FE37AECED8060D5C32E9FE0EE9C0FB14045AE87D04B92A734
-0A35DBFFE12CB1ED64C924E4ADEE0AD635BFC70CCEC92FB07B1DE13E3D14B09C
-94590CE5F2F4B7D0C697F6F30E217ED09B35917714712B1182D687302770C205
-C3D17944AC1CC6AE2A023707E13DC1299256DB1211650F76A969D74F940CA580
-6B499C40B76BA77D12688A8CF75E90A19AA3E368D6C99FCF8163450CAD6EA028
-84D4E9A5279013354D9C8D7FB8BCF3FD31433C822F0A412A3115B0E5E71079F6
-60C6BBE10380872D5D75F1BE9BB6DE755103E4B376458B97E0B50BF8932940AE
-F95D4002737966FF15A0B67C5B717AFF0E95B9F8F3498D7CCB538FF133A977EF
-3471FCE3B83D5395F282D1982B2A6CDBD1C0DE44B3CA286E7E3F3E82B3561635
-6E462A4ABFAE8DE9331FEABA97AE7E7C93F0A30F4E3FDF4DFD66E5CBE234ADD8
-0AEFB354B80ADBDC128EAE328AF10FFDEF587B462A88F62F463D640C4F8898D4
-1AAECA8EAE36639F6CC17B68BC1F1202F462BF7CB20CBD42FF2DEC420B4A7001
-90A1F1499D49731DBC0C5DD4AADC4C32A7349219F25150117D733A0D51A7E51D
-88712AF2AC91D73A906CCFFAEA98C68DB967D96DA69E38A0406F2DD149B3E771
-68D65EF65F99A4AD33BB5B15672E57433BC84C9023BA77997E82473C557D18A9
-60F7064934EDDA12E614186A092930690D2DF97E1955FA75CA3CA077EC39A561
-27FC8DCBF13DC183774AF61C2B1B65E5E4
+8BF32EFC8C0D1CC0C1622ABA0B6CE939036B2D9CAFA2A3B0C4B5DD9AE5B2D798
+CC856CB41F82D3B5FCBBF70D07E05369713730081901FEDE318F9DA81D39F84C
+45D0996AC0E8FD780FD2E5E6BD013D98463E0A51034735243F2B3695371E8451
+6A6EC4236E47A282AD2966E06BF3FB59C6222C15A34F1E910E637D805741BC1D
+CD426BF31361147DA45BDA2884880D90AEE92DF02AE5C4772537FEEA157A6D50
+3BBB910A80A2EF41D18213631584B343ECFBD6BA006AD6BCAC63E9CD9430DF59
+98091BE32FE17FCA7B32DCA95052F5BACF73FEAFCE5EA47B740FDC972C2FAB94
+E1FE42F8536DE4DD0DBFC4CCF3A96DC1140F736344D4DC796756948ABEE0433B
+BFFD9F1A343259444D248598844888F046800D6BFC7BFE3F63900767727A8742
+10C756EC6380274290F84F7B2055C2390BF04B466B5D4437C0D6AC55C90792CE
+8A8BB5602BC96118B07FDB8692006E91585273AEFF55D71967011A1658205ECB
+A0B0C1CE1F7C5167A5868D5DA81EE5CC3A41983425663776391EA37525FF1357
+2CBD0C9B4644850880C5115C7F0677A605C1009D018A9D6BF4F94A6DD019CA26
+FA7D748D55D441CE1111EFE5254381E1F916912E1B446CC7803DEB5C9B1AF811
+3938473A2FDD49E5A0360F4020CAF9E85E056E59430B18AD352BA929C9A3DA10
+D7C524D92AEA6F4DCC13E2B59DBC0B8C0CD90B1E4E82BCEE516928BC9E1BB67A
+060EFD856CC9F1CFFEF90C421DBB3CAFD1959B332EADE93C9CCB31006248BD6A
+5D79AA8E049C5EA70DAB46F5D3E73984814E9F3E15A0383EFCD157240D43BF23
+F84372FB3915791E581FA0E4CD457289FACCC08C0D37CEC1FC45DE3751445A9F
+824A6B006B5E672AAABEC2B8D5DB7B0745C1D01C52657B7DF4FFB9803FD9655F
+B7D34C6048E8BF44A0235DFA9791770CB3E451E01ED7A578512DCA397F24F71D
+B2784D0778C02BCD5A88FB1671F8019523D8ECD0F42D273A72F2140D3C14F40F
+7BC451BE2FD39FA297D9857745B4B8F8531CA0DFD9E72E8EE0E7FBCDA811C8D4
+167DA0037F9F1F181115209C22FA250C8234695C1085931C3D92585563366C74
+826D4E5F9A61F39E3F8CEB8701591C4A5FC62940C2729A2D9FFAB09F833D47C8
+1B184163D87FB4E5EC4BD91B81C325FDA8ECC31EAC76FAB333A9EE090C202EFA
+FB2BF753A5AB8D147F8949C6FCA5922E1B2C6231ED86BBB953166DE2C08A3DC2
+433C76CAA7260AC901C3B4E2E78C8A6064F0ABBA1F4D16BACAC5288F199A0929
+25F1DC8ECA38DA299A229D86E105C29CCD0FD59585467BAB46AECA7A76905CEB
+1CE91EFB79E3B4EE3CDE096E2CF63DFF71544E639567BC8F12263B2F596CB4F1
+FEECEB69763A7EE15B0E59A2529A116E6E3BD067BFB3690021068ECBF18F6D9C
+3F3F07D8C7E2A7793FDEE84EAB71613A6EA8F6AC665A7C0376A6406171EAF3F3
+4E466A08318F942F2830757721CE2B193F3A7404D51375DF34495AE48356DD78
+E4AB3A71C2BE2094D5196BBBEBF056029805A302F6AE5F4A9BDB25461E81617E
+A634959D343DAC10BD072CE16D7C51C120F9B6A1D75EBC4D03DF60048B8CE15A
+94FD31DAE86A4BF525C979C7E96BC1DE88069A342C9E07C0340AA83DCF381134
+0C13C315D1B690B5E858A20362441C9F61A20B70392F87078E5C3F8B4AF23D99
+B051B170140D0069DC6E2D4FFAC6E45EE56221264A894AE68FABF04994EF9D87
+EF92B498493E3F0B2F003C47C861320E714FE36F9B4669226E40753B2FA90731
+CE281E469DB371C975B186E2910879681485763CD9316CD4017C5D9ACE43DCA0
+38397FE463F2A3D6B72209FBEA175E75793163F0FE4A2CAE3C7E5061D1A7C31E
+1F8FD3082D2743CEEA008B0F0AB55C2BBA23918A1BE4200DC628662775AC2D66
+FB16BB7C06C295357A1BD655CFF3E0C49046C2CFC70FDB87E62C2EA187A0914D
+2B55FDECDD9309FC215AF8882D65174ECEC01F38158C4D96FF9EF1B17AF32EB4
+E7C2B4770F5CE67E2B26BA0ABA9116BB3F89944E308A0127C99B1A145F730B50
+28473FD0DE250D63A7116DA1ECCE93B02F3CED8C894E6B090F5A01A26822503C
+EA68C5A7BC8734C35E40D3A56449F6AC36406A0818C666F0EFB88BF02AC4C296
+201B0D0848450A54B3FE1A75F641D1592D265CA639D29DD99C47AC8DCAA2FE5F
+0216CD31751A42FB48F53200053979FD87DEBBF427363CE1748FAADFA0C6E2C7
+9B407F5D041D9383385891A86F33AC51F0C7F4902580D9446D8118D8EF2BB177
+5C2A39867EF485A454C07CD835350997F5C18EC1C3A83E57F57D8A0813EF784D
+19B088E03344EEB3EE8AF03D18B2A4EB5A57E1DE60CFFC487FF1C2DCCDC88C40
+1B7B1B16A0DB3AA16474F6CF5F92C7490CA1F3D94B33B18DAAAED531D2740961
+53F662902417A01C2B33489862A446A5D7BC27B87ED382CC41175114C7B0D42E
+6DEED8A64B3034F764BDAFAA477191564F3EF1339976051C0BFF59E56FA20C7D
+C5954E0A805A4A8431B40401E8A188D2409A16013427152F64CD8CD502C5EC4E
+B2F5AFFBF1F4D5BBD636109F2AF10BF4737DC0F722E11649EA017EBB2F4F531C
+9D08E88CCC7D3345E4B2A96F14C9CF8E211B90F8A2CE2EF57A68BDA5997271C1
+93A69D91A285B2198A12F8B3C23FCA396CBF176473CC5A4C4E24ED72990BDF14
+162EDFE244272250864246D493134DBC29C5CF2C8A5B5E27FCCFC7C577C014FE
+FD8F723CFC46F2D9700738788930F22656B5F1AD5A34C4EA6C96EF45C8E68138
+CE87FEA609914E3936624E1E6B167A60237A34C04FF1500C52E7258FDF3DE58E
+FFED1699614DE43622D1057F172E54AEE1257FCC853C0D1828B072F7F4477309
+4E3E42B5C00413307335285F8404FE1229D1B2006D482993E7F96D8C9BB7C41E
+CB0A9B91F02CAAA3B8A05143ED6330BE0ADC9549D1AE8A46B2BB68E3002F3589
+0D5AFDA53BF17BC6E069E5B1CB3CD24362C702BF44F7823E005F0700AD2E150C
+CC5E486F4AE4103A5D0C7396F31C42843ECA1EAF0632AB3EA191C0701EFA0C42
+452C72B6ECD57240A505F49CDC390DE48C5251F9232F837CE604CA7C6AC0F742
+6742EE1BA48956E6CAB43F05485A4457F44BFF2E75846BFB56F9C34B17CBF84E
+4133424ADA7942199449554E493E2CBF5A4EAD39A22C166F02E5332197F32C88
+542CDD0D5018D322396F3BF767CAEB823ECD801D22E536D6201747DE4D2CFEFC
+30CF112F6DA37736C836CE44A458B170B974F2BC9B7EE06AB478F2EB94774A5A
+F18E82473C5016AE0FA8AE9DFA174F17945A5F3526C73A24D348E2A2FD14899E
+5D33177E01B7D101A571E196405CA95FE795CBD73F7185DE01F99C1122B2C050
+A4D54AC01881582AE55E34FCFB39189C4482230FE1C01F7BAF31F97B59DA6823
+606D7E318EDA739F6C18B7A3F011E76EEA67C696EE9EEBFEBC8F1F95CB450D0A
+FDCA2740E7CF611F427FD44ECD90CEA692377130C239B3A0AF9F492F377C55F6
+0C2910E3FBC614DE8F8F917FF5ED25702A5500D9477B5A09B0A12C9DAAB966C3
+AF6B4F5C16BC519B8D147E414C1334F009730E52C0C1242685F40530A32E236C
+2143B0053A7FBF6DE9CC6DA142DEE3A61E338B0E9ECE657C046F2540CA50BC49
+55062DBDC0CC1295991242EA7C749000E114EF1795ADF45A4CE8B33DB1815CB5
+CA3B4D8703CA72082B63700BD8ED24610FF157C3BB2A704FE41AFB1FAF4774F1
+A208ED52A9684A802003AAD6D9FCD5A3CF635FCC938931CB94C751212CCCDA6E
+202FEB609EB5232D1CC78DC78F60A00441965117AB45E898BEEE41B9A21D4B17
+64F5DD48296352202F5BB49BD6D7C8A031AE5E9667E077ADB2AE7D92D61EFF47
+3599436C302EA12D0C1713FDC98CFBEF052D7F06666FA15DF8571D712A3A77E1
+370D07F557A30CB110CBAF7AEFC425F9C9A4BD06F54608B44AA3B796F560711F
+6EAD4AEF60B83DB1E356D7B6844375FB3AAA0389F56D070F426C759ECD2F970B
+2E65032797BEE2FFDD78CF0B7C9684F6EB8FAAB6502F4676CA8F23D37CC4D4A3
+42EFDCFAC381E4B95D63E26FAC8DC58232288CDF0A98F076816242E68A3C3189
+9B293751D51E7582AAD19F4E575CFC301E8BDCD72F85C1BD69BC0180C1D871B4
+29AC63BB64E6B4F285AF1B0CE241C9658286523DEF4107AB12CABD9576D33F44
+493E76711E0E75D532025539810B03BE39B802AB13458A02D7815F75CE5E621F
+5ECACF9B00ADFA4652530425A808B4B65B60DD4EAC947E4FA3ECF5BE3D91559D
+6A9B0F16ACC5294AFD284ECF519B6612D9BADD8EF7911723F1786F2AD7D171F6
+B55F98D80F8D65CF39EF1C58A76A8649816FD7AA1E8B091939845DD338CA2C02
+6ACBE870783FB4D5CD36267F4A4CF2527DE0060978524E869DE7CDAF056FBB81
+84D3FCD9D1E6F076892137B190CF20066D1E05ACF410A0024505E97EA6202686
+62EBB56DE57D3298558C9EC9489312450A6D02E0490C88FC657EE2005040AE5A
+2B4BDDD4BE2706EEAB70C3163CCEC2C2D346E10B50E82EEA4564A96AC436C0B7
+54E3D9AE06257502FC0A4F9AECF410779E47492F48C8DF69D211AB390467F1A9
+2B8C820F50E0608EE015D80DB22D2067608759F0CF469C6D45CE48E1E67C2843
+3B6024D1D1828CBEA138A6F089389E6BE0CC0C1963E788E2696F4A950481DFC5
+BBA53DC81D7AD91FDEE11146D8E242F098477E69BDA5D990386316D7224884D6
+35F5C2AF00236F13FB8986ADC4518CDC93C2D1E1D256FA0DAA14577C61D4F6F6
+5BF08537E60599F7084EC51099B9463A0FE88BD4496BDB5F853FFC53424B0608
+E8F821F943CC9B3F3911C3E13931272E2A99258DB306F5F01397A7D9D00F7858
+CBAE627A78842ACFDBB3EAC00A0AB5B4C1BA5AC3FE5E11E5FE389932B09055D7
+BCF80F8A50586E33F48844F5DFFCE3A7217597CF16952229F2CE5A20C0736A0B
+2E280594E7EC9EEDBDF338A52DA3A8C3ED7FA85BA0DE4B080E0708588321D2EE
+1B9FFA8678E1A8FC5B7FA8322EBA857D5991F76DD9B171B3AA8D7CA3C932DCF2
+6432D88A9F8B3982D26595491C3B5563DE6FE8BCF41C162B61C716FE00397BCB
+5DD42814590FA24014282794104D8F27676053805A311B795469644BE6CF35F5
+EAD2C4382ACD7D250F2E1F6C814DCE68855536638B96159A3B9661FE9B3028A4
+9E064166B8D39BE15834E40875CCEA8FF08F344A3E2BE9CE9086A5CDB973F6DC
+3A214DC1AF1F81555AC450679150E02440198BD0D9D386A6E6B4855E6F9719B3
+AA4DFFCBA16DAE0CC848A4FA97E5F040352A8775A4B6025EF8D9A8FD61CC81A1
+A0B7BFEF55F765592DB8347B2ABA20A3AAADB88B030DACD939E1E70DCF5A887B
+7B65F09168F08A6D1CD30FE0F0770A9DA4B23EC783F0D9C95DC0A6354913BE9D
+D5522D1C35D993A36D8225A148BA8867F6538B583FF2E1EA5A6C8572F4AF834A
+431BD595B9C5D1ECD00326CA1A9EDC1B1195A15D3DE3B6D1049124BF7E911769
+FCC5D21ADB72B794F1AB56F08CA339026AF6D991713F6B4A1DB4A233BC571717
+A15A691E9DC191E6E2450B8F57469D1A00726E74CF8850F4812D93CFAF924D27
+D9B39963B01946F06A6EA9E2A6724232C4081CFA933436A8892406D2E7AF1B75
+D75D837D5B0A84E908B65705071912657FF16B480A4DBE894300749A16DF2833
+E0EBD750D22F28F6E958693BBEF81D635E8F1E60CBD720E853177EC41C17C1F2
+5FEBA206EE5234A246D731516AA0AEB5915E3AD101B7ACF69CA24706F9ADB04A
+2AF8E90402B5762D04DAC08EC4799554724471EBF446E7F6C9759E6D4E268724
+115153F8532A844B933E6CD4F61D43A2BA73AA53ED9F2A905299ED8EC3AA7215
+BAF9E131E4F80FEB1DC72B3086A15D5EFF32B0F5A8DCD30BBDC1047ACC79605C
+BA4F1E4138F8632E78E00E6B22C76241D1E88868D6785A39219BF6AEF386B42A
+DDB156A7BECE2B3234896551C894062D156328B803979A4DFEBBFAD3E1E039CF
+0075DA923DF2A6380A6141121D9AA40FD735A158AAFEA4D64F893256C114F231
+574D2F16C2668E4E45E3CA3B181012D5323C7EE1A92A01C2AC0AE30AD5086B20
+C96310A4537301E1D9DAF410467722F5BE87FCAE624562B5DE40B033C759F8EA
+B2734A2A2041C0BB44C5CDD3EEA3576A77BC2C39B7BCA32F8900CA40B542B837
+9DDFBDB5B325B38672F22B23F51A20E4303DF98CFCF59BA2D0AD5DD866530F01
+B410B62607CAD08422108A83920F767E4A45538AA2DA3148B87CAECD16F4CF55
+2806C64FA88AF9027565132309B5A51025B8CE6F17CCEE3BAED7011D4677D075
+4A63193C4B501D80C1E31904B2B3E8B7A01F3F85FF742B0A13D2D3570984E262
+2C92F7C9DD4FB1E1A7B61AFD0193AA1C24C800B2CB92969DEC6D24DEA026B30B
+E7CBA45177A45CAF5629B783C030163703FE5FEF406420F441D972FCA1DEFA21
+195264C0A104B847B66C556D2BF35A317AE0990670F86F3CCFECC3791F9E56EC
+B145F67A503447EE875795498242E2F35F8814A2D494208851E6A206EBF4AC47
+1C85EE20386C9B22CFAB59389D427A12B8F62678C51D128FF14942925DE6C3D7
+274176D06D7F2E4295400606478DBE1E75F8AA7F482285897AB1992DF462DCD3
+482C05E7FA03AC3CD445C79EC43C9BB6CB845CDBEFB0A0DDF9AA38911D0BAB55
+FD831183B737A738EDF8F5BE2817BBAB1AA8459A01977B76F7100A30C580439C
+EE6EEED014D41B3FB226AF22BF9D001E3EF2779E4504C648BFE7932E6BC42B23
+F4B30FED418B8FC6AE909169A0A045D4DD170AD5B4572D2110C5D546532E4071
+2278C9CC0EF6746F8DC75DEEE4D7B14E464862A414EB912CAD09A06065E82162
+4175203ECA375560F62B0C27BA57EF65D843E8A3C692BD481560B1CF971730BD
+0188E4FBF3D0A1B0F9C1D4C0FBEC598EA6EA1B1FD4BFE3610500BEF50EBB5B05
+389B149385313B3F3E4CF65EBD53220CC81C1023C4455C11574B3636C1964A4A
+A5EFAD4C41D06FD44F281E112F1401BCD2B9EF2F9D244EA5F2CCD5B900CF324A
+B97268F3564F0B5F73D18DFAA8DEFE4C4A886D5B8D58E0853058B8704F6F44F3
+0BD42EEBB38C5B7907B4F48F63796E183B14D8D337C9B5B84A2B88038F6D7678
+F286C8FCDD0328716D483B8A813FABCE8BC2C7195BC0CA833B34B65C98826F3A
+422E60407C681903403747CA0238E90DBA1677598AC8AE992A6314B28BE29B78
+478FCA65793BCC02310803F60B142F2DD9B219DC8A79C537DCED3EDBA677638D
+C2CD9B29FD96FF384B147380E0EFDCF1A5B6B6FBC4C44DD72F6E781D5C6C76EF
+227ADA8B8A2E6D172BEE63F361FD00DD992095A386B1124E40D90CC946779602
+8A65D2B4FD14874121B4839E848B3DF70BC60BF4E04D9F2852BC48E16B1D35FD
+F7DDEE0FEF8950CAF10CB6F1A50FFE74B4B55D2974E1AA5B0EB3B9D6976D7A7E
+1BB9B9121BA8E367B123BEC64D3FA53001DF59917935EEBC0D9475A9F54281CA
+1FCC265496F1B1BD3B8627458FF0058D670296C666F26340F7F117E23AF6399D
+6916E874FB63739188AEFB38442C49CC4943299F521E32153D5C4442BBC16147
+42720BEC8B068C579C4EFFAAE8F96738A1137DC9C20CF23463AD692547820C46
+0A782C06A370FE6246E22C481076C366753439B6CE9A230BEB52E6B4AF45A9A0
+C26810B594F3A9E0662544A92A90744808F8C4A4C962E4C1D0E39F0F4BEBB95C
+CDB0F08F23335159FBB51577FBF27A778D97BF5565BD0EDC997DF7F29AF3C103
+148A2A20082C61ADE0663454087D5E6BC74E43A9C232C4CF6F912E203D82DBC4
+CD2EF6359E7C758896F3036C37012335A08A5BF506277B31C255AA6CDB380B94
+A0C6EA590035765131E6032050A9E07BF66A23EC6F414BAA50DE3CE5E18E875C
+A7D1AABFD7EF30A34AEA87B36D8465CCD6A027B87CFF2A2CAD98EBDA0C24FC3C
+2594B560EBABCC9FF40CF56F19B4066A3D469C963E5128EB16FFFAB62E975B19
+70DC9EBEE56F14DE5444B76B2031DFC03D3A9DEFC0980DAECEB02E1A36FA77D7
+7CDFFD2C94B0D250F8E70415DA72D3F2117384B5BDADFFFC3F25446A5F845CE6
+E9AAA0B316D15CB8025ED0ED3882D2EBEFC6E93F4E58E5B4D6E904958E6CAB79
+30B28FC4314D24F20F00DB8F39BB208540B24CA419AD1A491FD6CAEDEB23333E
+602367F8FEA628AC535EA9F0BE0476B8C57BC56756C6B44829EC75C8A09134FD
+0AB4B6D1268F94C1973E781172FC066CE1FB2FC39B3B20F420B664A5CAB14EE9
+D0D216C2847C427F8825F859D8D9289BD8C912A16DF327EC4CB41F8A2B8D2F01
+585C4616FBF6B25E50EEFFD4494C808304B36714A82269007101446AD43277BE
+4AC365CF6CB93EB047A73D4378087BF09AC717CE489A16E1D36B89116D3EA8C4
+5CBE0A9F629795FCDBAC49D2E3577E32779C33CD82F74A78800D868E302957D7
+B766FE1D26467E86A4881125608881EA7C5697E1E8AD377D514BDFF9A1BF1566
+8A43C39EC482B6F20AFA8DEC15B7F444BD717E984AF6A37C99DECC94BF2B8A30
+1F03A05752C8AF0879168D70562B63022C61B23BC115B1D92DEC97F2978B28DA
+7DD4AB976BA0F0FD9BEA14F4E3D3304E95CDA39F9BB85EDBDBC28BFED6C80A66
+B9613AE5F1FB97B0D5E78290B367CD0A34061830EC30CDE6C6AFCBAB9323677F
+45959F7FD0608ABB2F1B8931A91A6D1DA51BEDC8037F421FA53758B4AB91E28C
+0789FE95B0C897CEE807B3F1EA03110300CB738E8B3C38E90D159A1E85407869
+87FC294E89F8DC85C1A5545D74BB35A48144EA434A933F1E403C4FF0415FE13B
+D8B841C74816764E9A32230DF236FDA89EAAE9406CE0E33E672388EE47666F70
+5107D107E089D1FC113ACF6730DDC765049F6D6C657A99C14C8D560D6961BF89
+F1DDE04EDB867BA7667A54700F995ABDE094D67152BB4E4A191AD52404ADB97A
+B6A50585C7618399A94407224DF225E0627E2F377CE95DBACEC28F277099E40F
+0474D56C1E5D6CFB36078F2FD96B34DA83F14FA6AFBEE67C0E335C844D4988D6
+8B9BB4E646B814B25479081F0FB82F5AC6BB2932EF1046269ABFC9CCE8C77548
+36DC56E43A2BEA3643E44E273DE5B0E76DB139A0C0A42450E5DA96C6C99A64B9
+A9FDDCA3DF9A560889D798ACF492A433C6DF6D22480BB0A78C347B307114DEFB
+2B81CCE915E07EC11F829265F88F8407B4545A030AA909082ACCD43E0FFB25D0
+76148792B7902E41CF04BC63A67F6C17493B2607CF7CEC2EBEFE697C1724D927
+5CC49FD9F51A61A838D5B6330F0A48E248893201F8931B663668DA04545F38C9
+6ADBD9A42A47151B4FD5C37ACDB0D7305D67AFE9B8B90F52065A1C9E7C4D1A4D
+F933C37C617FE0130094B11E337F718C43FF041110DE150023E5AAF163A03084
+C59FC78FB50DA0EC4ABFFD70FA1F7FF9E1399D983446D500C86F6C59EE97C4E5
+A429A0F2C0BEB819D3618E126CECF45E27AC02768692437C632D19C5F92327FC
+60D68C595725D3394659B7D89F0A95D62D8A66B49396A110BF64707AD6FE4E1C
+2457C86C83D2A174D3DCD73FF023F13E94710E3491F5FEF7A6723EF7AA201B88
+3D3709B4C9CE187F16D838853A0F6A84F13246BCF4E923ABA3AF52F4346A9518
+40F55F93D88E6A2A41DE8FB279F165131D1C6AD203D04723482F714688F8299F
+BCCFFF3C9C7E6523CEEE130E4878D392C2E2E2F2274B2FD9DE63E65B7A263C77
+74C290265FA2B3ADFBF425D59A43CA8A0FFAA114FD1F912B9950BC4CC0A6E236
+C40E2BE21E4D21AC0B9EB1DFB56940AA6F1FE1F15CA9EC254D963BDDD4A522F6
+94D6DB74970D2E8DFBC51D4642FEA8279BFEBFF8BDEE03578C26E700548D6E0F
+D514C2EAF8DA61BAB330EC647A939374D913ACD6673D6E931A620EB84E3DF5D5
+8BB91EFB4C22FC96F27786C9959EC5BEABADB9E216D4F3B57BF1E377D7D1385F
+68DD7FB703F5713CC2D9E4067488B863436DCFF55D2950124E18F87DB83791C9
+72F5B9F39CCE7A05C2432845CA869A271753DFA0025FE7514EA09DA99365EE62
+3C98B603FABDB4CB421F625A4CD82049F402C455DB2841B066F40085E497BA62
+BD35AEE50F51E6B434E6DCD2EF90B42A1E9FEA21B8C99E21FA1D5D5FC28F9797
+873A2FA8371A7DA96D8859C7E9CD7B688F9A23BC7B62290213D19424D2515D7A
+383F8BDAA8D76836096DAF29CCF7B51C200266D5510ED2F9131444C4D8BB571B
+EBC0C77EDDF79956BC1D8A01EEB3B83D52D156A650B13F1D5054C8279E0D5458
+16F8518EFD81BCA14DE678E3A1385CE39BAAC3005F16AFF7CED554577ABCC7BD
+AEB60BF6E98BA2C46E4389E247F0816383103594FC218540348E32B66E2CF7E5
+820494111AF1A2D2739A9F6D9D11DDB8EE0F92368A0B5006070EE15239E566AE
+032B6CEA0798E76644A4989AF332A5731B2BFB71BAB1F0AF77B88050B14E5CEA
+B6A7C010EDDCE8E9AB9E074A675B8B6DBE76AFC5FD2794FBBBD0199E00E031A5
+F8BF616BFD5775896B7FE4C0167AA435605A8AC86820D10A82F172C8D3056D8D
+C4EAFC3824B4E508E050D8B04485DBB016CA08C41F41008E327DCD775732893B
+B32719F5B323D0C448E9077687AA52208B886472AF2C3D32104486BAC57ED9AD
+EA6C496CBD0402BDCEDBE0BC0F2E5DCE0173D4295F0A6A64BC91ECD30BDFC7BE
+B61E0F00651B9E77714A7005B1343B4A3307ECC0A2FE1078A775B66FF250D7D0
+AFC71E3194F19FA4BAA305E1B728A28E5C6283B9B59B88C874F4B792F4FAC98C
+929EEAFA2861E5146C988CB334EEF702140F956617025D3A9277C8684971F7F2
+3DED17E68275C6E02634F0C7FE54515EC9608F4AAD08648AAB819778A5A49B12
+8D37D277ECBB796779E1604D12464026C58EC5078097CDDE149A36940EBDED9C
+B9D85362D5F8A2373979D4EC849A803E25394973BAB1987EB84F5A4B0DCB1546
+A8079EF9F9FF53F2627283E47E814EFF1BF808872BFBEADD5F0E59E5EFE3414B
+C473CD84E9C5C786D57DA240060618D1BEFA19CAD721C849F4EDFE61EBC5F845
+46E4E4EC253714BE81B50AE3F7988BA94F302E6D8FC4EC497D6EEEF44C5AAC16
+E173553CD5EE65038CF1326AB2718D6EADEC5C901ECF04D3777369FCBD20B929
+FF472729A0793B4597A81364D91CE416F4FA78FD03739BDF796704071E6CA58A
+2F496B6C2987C7DD12121FF1894BE614216FB465FDFB2E2ACCD182AECC7D01D1
+1FCCB5AA63B69486DD5540846B786FE54056BB60DDDFCFB4F7AF0C6C0834A0FF
+835F751E60561109D628503937399CC8D8F264AE71F183DFF1D8B07823714F20
+F514146CF945FBFD953553169A654DB183DC8C83600EF2C2BE0B200FB20DB604
+F5D3C8091FA066B8CBBCE4443A889BD5C9D2651707832ABC1B8B2C2FD1C29025
+FB48BC7A3EA273CFEF1E03A3953EF9BA0B20CF5927DA061586E4EB1582500E09
+5A7E6C46164997E48B0DDB56F429FEDAE8D29E683F8367442B1906D23574A8B4
+EEC2C0709646CFC2CE3E01B96BE3D7B00024D7C5BB74654E3A4B87BCFB86C63C
+F4D7619DF568C184993E51902A7F9F38B2540FCD9B46AAD44380919E931DF436
+F712B973A641BCD336DC7B67FA411500D7867F86D926F541B7572A0413FBE788
+4360203C36C5867812D3B44D54DF7BAAFB823597E6CC60902729BB956D2E682A
+55CAACF596C73930167F8C984DDE9FBEA620DE0D08D018D61584D9B25EDA3565
+EDF9D800FE84AD6186ABFAAEC6277E0AEA3628E9CAD817F5CEA33A30FE3EA14C
+D83822AB9C8D6623143314C284A0590D32184D3186D63CF8A5F79459518DB39B
+D164795BB5C84950DCCA976551D40CDD62852C860310B5A59ADCA296F1596924
+75E16C4ADBF3DBE28E1815A6E770A47DA53E94721BA678C054F2817FD44B30F5
+D51E5D2368E59F3FB911582851F5A030C1042CD31B77222A490882428E81F26C
+70BB082E265B5F199B29661B95542D766F0B0FC5A9F814C6B5386D285B809346
+BFDA6A762B7BC0026D472E417E9E7266A7281256BEB054D6B4872DC64E144CB4
+F737AB7F014466FCD41DF79C6686112DA89BD0D29AA3FA559A2BC19ADC89F884
+5C2B294889ED373ABC2301C2DD1DFC0D51671B9D7D220D4386CE5A23C4C4E857
+07E5A7EAF6DF73C712D23E24E9C7A2D80F6147A9665C9178C91B3C40911B9393
+08BA1952EC21A8378DA8FAA8CD751A2913AD8B744B640FFBB66C2CD68644E0D8
+5E24B33F5669F6A8562012FDF6578C814EE05377712F7A74E0D602AF487E298B
+FACAC20A401BA6CD3807E9F7DE10CF36B689F46BD14ADD3C574445CEB0671B91
+010858ECDD461FF2CF713F561372BA84C3EC5B00CBCEB4AE4994506F6F4456F5
+5E26867F6535650C6682FE58333E6791642F00ECFCD856C6A09DB7A237EA903D
+1E1B438E00848852B3C2B9C315B74309BD50BF6E7C203DA049BED675D4049DB5
+10C4276285D754A6F3E754E98CF96DFFE52A34E316720652FE5CC9A0AE6975F6
+9E31E137BAAD6678E7989A7A806EDAF3A0E1167FBA787CD9B9ABA1E80CB62AC5
+785FCD591C4FF54A861933FCD6ED065345266AD82D10D5924EB9B7C3AABD9C7C
+513DC51709B815022AF3C0AF34E49FD99CE592B595AD7132C93634909209100D
+463A20C4361454C1A4760B09736385B0B39D1A3E823CB3145A7770CA823EAE28
+90AEAF81BFF978634953B02F58E89CFBA6900A099171DE2AB435391DB7587644
+65328E1D61013B23F4F094B31A8DBB86AAA939D1FA8D75A72B1FBB00D13B3F1C
+B339F7AD3CB8AE253DF7F4F3B399605CDDE708B148E3C0C5AD208502324BBE18
+A5A486825D8DD5DDF85036572B0DDA791AC650C705F46DFC590A6F3426DDF7C5
+2A079D8D089C99E1600600E7BBB79BF4419776773BC08163E13D6A05AD80614C
+CB02CFB6A86942BBA32F01C7B84F0F6685B75EFF1B413C0F58E5B03F10F286E9
+6B988C313040CAFF7F18E0A43D86175B65CEBCC3B4C07E56F05DF620937D7321
+886A7F6AB6E462572EB69C9559B3C82C7641CF750CB6B2D28433E2943B3213C9
+5CCBA6D90C5897256116A3F15ADE3E6A751B2A2F0CFB60148A5C71FC0964B9DA
+15C23FA6B14C168B512300A24C9C001375B3FC6A1C7CFC09A61D8ED089052150
+4578358876149C5DECC2C612186BB7981C2A11CD99FE26D44EDDCA89E71ACE47
+81B076C12384E855F6698FA2515C65407A15A585CA438CD1C2C615D2EFA298F0
+464331837B45A383E9A2E8C663810B3AE1258642741FC0CBCD05BE52FA290E26
+2D2FF964091850BBE5D1582BA6CA5A555C2C8E55E8D56955DD48314CC8BA1851
+EE75DED90DACA301A6A85B5703E01DBFAE4DD7AAC249DC86615A3F99237EA745
+E850B87C30C64ADC874028EFFC3119F423606A23710D0BA80B1108A187AF5937
+5E316AA55E9AD9A478CD10D50B71A8497D3C1F53328B0DEF1C6D21A53181D62A
+5EDF953288250964446508ED06DFC0B165B46F4A5E3A7F381B47A5F94A0883DE
+7695CB39203E1BBF91976CB314CA6E247F35539ED40A995DF6119BE2F29FD693
+AE193119649AFAE8B6367D2295C353C9D3FBF01D145EF6628F920D4FCF67115D
+71259E3AF555A29A77935A94C97CD6A2F52716559AC73E5818EC15936B0322F2
+43A353B47F7842C3919E38892565747F5B1B0855E3D531B8603AB914A2885F41
+D2391864960361689DA8A1FE2EF26DADCD18445B5743F1AB744446E11F8FFF63
+995B7A0A48902C1BF963B81B5209D55C3ADF80398D0D57D9034283C48DD96E67
+C5B56FF59884C9399808E7E7C5D7E773DBB2DB168EE4668446681DC429130D97
+17067D28A3639CD643D2F87A25C44962538E82C2591DE2F5A29B2FC1FF8B9D8E
+830A9F5B15D0CB57FA9A803765C598BFDB51B55B5E8FD76F8F65231C2E478C20
+18F9A237CDAFFF986CDEF61D30C8BA87440220C0777111DAB353AD4118BAAA3F
+BD76BE63F22DD456C1EB7793AEFA3827A73E887AD2B1307F6E81B48EDB105419
+A2BF1F715B73ECF7733516639F6FB7E558C6C28E945256A422CF94AF182FDB1C
+384EC08E3D7F5D06FB49E00430EE06C6838AA8FBA740957784DD199FD2E9BC6F
+3D8542CBFD7485BEEBF76C2FA18D5AFD2EE239F54AE861B685FD00E6125D701C
+22BC8780C4CACB241DDCB77934A1735B01482CA3738212C39E6F9B5561800F58
+C5C1953F95B4769FF0370F9B922EB647E138222061E75AAE9873E7BA6A4AE756
+8E9A885753CE75078EDC94A365E28C479804D0C36BA39F5D1F02BCF6722DC36A
+DCD0B89271665266650E391AFFFDFA75E693AF1B918267F11DB1D1E55A4D651B
+4B83DAC0DAA849FA1F55F4DC4A8BE1D4BD6D8585C9A892E4D4AE26383F5328E2
+C08FF079DA850B45F1339D9A94A271A2F683A619EECDD5A357FF85FBB5824ABB
+39396D0D96FD99D9D9743F2168F8C1D0ACA41F6909A49CD4DA9F9E265097E0CC
+2AA552CB9E19779DCCBF7A76D71CB27FF30CC6EC4E6C7F9669F95111015C20C8
+0F0C5314804C0D5D8D5B7D74CDEA322F7B51AC3F7AB5058B6DCFAC33B1CD0DCB
+6CB4E7DB7537F7AE5B828A141A612933FAEE43AB160823F34C0672CBCB80EDA6
+2AB7D719B9A6BE29CBFAAC47336F453AA907CF3B6E8D7FF4BB43FF44498AC4F5
+BB7DBD6DE4B2B3792DC1A9C552CE4BF4D6BABC2C3A11F32622022F51D665FD2A
+0078CC6D15CDA90EDDF91A7F2956A11C03478D5F54997BA2F71796B524974336
+5D2F6442D67D3F7AE78B853A5306FC9540C873083A8177891DB4D228095523EA
+C16AC4E8E62422D93F27AA80C195C9F5941E0672CA120290AB23EF8BF5F56F5D
+458C245296DA0FAFD6DD159A89EB24CA38659E9EEA2B2CB2648D8F6CB0B1FD32
+6A1D9F236D6B166CB49FBD7C8875DE08FC6FA10D26E6A4FFAD94A620F4F94488
+F2A4B1773B6BF3CD0876F87D0CCD19227968EB33FA313773ADE29BFD69E91203
+E294ADED630580A5669A1892F27EF26006A707A3E66DE7071A82191B69D05AEF
+75CEC8910E439305DC9986005691CDF05951F454CD2E1CA7F92503B3C87EA23F
+60C2E37F76132B0690F262077AB47694F0151898EF6F432D9A6CD73885F2C5AB
+57D3800E45CE7011D65B9F3343F1F438DA3B63F111C3C5CD619C4C2DE89561F2
+9F7FD0AA3BC9357930DA4A82DDEEA685CBFECB6FE7D6DD5559FA2C4AAB94CA34
+3E23685944DB6C55CD2F1E74D0D3C0E4E9025BADBF4CD7F52DE8BBA4AEDC669E
+A4DD2BF21C1AF636DEE51B180AFCF993A33B59E967FFB551F4305656268BA952
+997ED1A8696ECBC4708039169695BD332C1E7A089A54F96ED5915DD75AC52707
+517ECD5CBD5F21A5CFC3573D889E30200F9E52CB35A5AFC0ED57A620A8597096
+D03D9C5B217C3CE502BBA73B0642F612AA19F1278A704F3B488DB397A0D673AF
+A2046D8C1CB06B8C3BD389E8855E0B43D705832AF415C3B2338C5267FEB382D5
+735F288C177AF742347FCC76AFB650ADE48CCB4B5544E05BF9CA8DB89F393E01
+B3CDD0721DFB11300BAC7D3A55C772AA8EFF5EAF18DB6399C8FFC93EF0CCCD8C
+BA4082BDAEAE0CC9A1E753F58C4C7E3DB4F70809BA7096D228B8E38A4BB01B1A
+F568CA003CC2C7DEE8ACFE0BAF71717822CA654E9935548F88ACDB3BC123A340
+FCF823EE9C0EBF7273268424745EF9E7B6DF2FA55B258C61EB8544AB3F909B58
+FC1B4A41F17187A9333821BC4FF44305530CDFDA14DC1CF267A3658D6B1E6A87
+023D6B300F000D55AB02FAA24F40F8E1976B1471CEE988638E2E06CEA73E7156
+ED2CBCB52D79B20A263E3FB9D73957DA47634419819A801D40D985B24E28F0D2
+04FDDA67FF546A0B32AB483E261B6D604019CB686F255C69E54019C79B2E18D5
+678D50672FE8BD02DA01AD947CEFAD69A1DF1EBC5CA112AC077354B2DB5169A6
+836583C79B9863279ADECF97F2D09F8728C15958220297C43DF1DB15257C970F
+A68D43B004059E422FD37C458F98D8ED3764529765903D8938AFB452F14D818A
+927BFEB85EAE7B3889DE3AB3FDE0F8EFC3B88AF700002CFCAFFFFF26E7B1E6F4
+FC2509373F8311D361F57FDCD828D2CB06AF9F39F7F9D0274ABC16E1C5657C0D
+084C4DAC3C166CBCFF1D7DCCB1BC40A69B
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -2295,12 +2303,12 @@
 0000000000000000000000000000000000000000000000000000000000000000
 cleartomark
 %%EndFont 
-TeXDict begin 55380996 39158280 1000 600 600 (org-ref.dvi)
+TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi)
 @start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1
 49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34
 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44
-1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 4[30 1[30 30
-30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }41
+1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 4[30 30 30 30
+30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }42
 49.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36
 2[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14
 66.4176 /CMTI8 rf /Fd 134[43 43 59 43 45 32 32 34 1[45
@@ -2323,8 +2331,8 @@
 rf /Fi 133[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 72
 53 53 51 39 52 1[48 55 53 65 44 55 1[25 53 55 46 48 54
-51 50 53 6[20 6[35 35 35 1[35 20 24 20 55 35 27 27 20
-2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }70
+51 50 53 6[20 5[35 35 35 35 1[35 20 24 20 55 35 27 27
+20 2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }71
 66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 61
 1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53
 53 40[{ TeXf7b6d320Encoding ReEncodeFont }19 119.552
@@ -2339,7 +2347,7 @@
 %%Page: 1 1
 TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45
 b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
-(3.13\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y
+(3.14\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y
 Fi(Put)24 b(the)h(follo)n(wing)e(in)g(y)n(our)h Fg(~/.emacs)931
 102 y Ff(1)-150 199 y Fg(\(autoload)38 b('org-mode)g("org")e("Org)h
 (mode")g(t\))-150 268 y(\(autoload)h('org-diary)g("org")f("Org)f(mode)h
@@ -2467,81 +2475,82 @@
 y Fg(<vm://myself@some.where)q(.org)q(/fo)q(lder)q(#id)q(>)105
 b Fi(VM)23 b(remote)2046 4143 y(W)-6 b(anderlust)25 b
 Fg(<wl:...>)h Fi(and)e(RMAIL)f Fg(<rmail:...>)k Fi(lik)n(e)c(VM)4242
--364 y Fh(T)-10 b(ables)4242 -255 y Fd(Creating)25 b(a)i(table)4242
--168 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330
-b Fg(M-x)36 b(org-table-create)4242 -98 y Fi(...)30 b(or)23
-b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39
-b(RET)d(|-)g(TAB)4242 -28 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table)
-741 b Fg(C-c)36 b(C-c)4242 41 y Fi(...)30 b(separator)24
+-364 y Fh(T)-10 b(ables)4242 -265 y Fd(Creating)25 b(a)i(table)4242
+-181 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330
+b Fg(M-x)36 b(org-table-create)4242 -111 y Fi(...)30
+b(or)23 b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39
+b(RET)d(|-)g(TAB)4242 -41 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table)
+741 b Fg(C-c)36 b(C-c)4242 28 y Fi(...)30 b(separator)24
 b(at)h(least)f(3)g(spaces)537 b Fg(C-3)36 b(C-c)g(C-c)4242
-128 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242
-215 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h
-(cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 285
+113 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242
+197 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h
+(cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 266
 y(Outside)24 b(of)e(tables,)i(the)g(same)f(k)n(eys)h(ma)n(y)f(ha)n(v)n
-(e)h(other)g(functionalit)n(y)-6 b(.)4242 371 y Fd(Re-aligning)25
-b(and)i(\014eld)h(motion)4242 458 y Fi(re-align)22 b(the)i(table)g
+(e)h(other)g(functionalit)n(y)-6 b(.)4242 351 y Fd(Re-aligning)25
+b(and)i(\014eld)h(motion)4242 435 y Fi(re-align)22 b(the)i(table)g
 (without)g(mo)n(ving)g(the)g(cursor)70 b Fg(C-c)36 b(C-c)4242
-528 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld)
-311 b Fg(TAB)4242 598 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762
-b Fg(S-TAB)4242 667 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f
-(next)h(ro)n(w)328 b Fg(RET)4242 754 y Fd(Ro)n(w)26 b(and)h(column)g
-(editing)4242 841 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left)
-544 b Fg(M-LEFT)4242 911 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
-(column)g(righ)n(t)497 b Fg(M-RIGHT)4242 980 y Fi(kill)23
-b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1050
+505 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld)
+311 b Fg(TAB)4242 574 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762
+b Fg(S-TAB)4242 644 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f
+(next)h(ro)n(w)328 b Fg(RET)4242 728 y Fd(Ro)n(w)26 b(and)h(column)g
+(editing)4242 812 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left)
+544 b Fg(M-LEFT)4242 882 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
+(column)g(righ)n(t)497 b Fg(M-RIGHT)4242 952 y Fi(kill)23
+b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1022
 y Fi(insert)23 b(new)i(column)f(to)g(left)f(of)h(cursor)f(p)r(osition)
-104 b Fg(M-S-RIGHT)4242 1137 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
-(ro)n(w)f(up)678 b Fg(M-UP)4242 1207 y Fi(mo)n(v)n(e)24
+104 b Fg(M-S-RIGHT)4242 1106 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
+(ro)n(w)f(up)678 b Fg(M-UP)4242 1176 y Fi(mo)n(v)n(e)24
 b(the)h(curren)n(t)f(ro)n(w)f(do)n(wn)594 b Fg(M-DOWN)4242
-1276 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h
-(line)291 b Fg(M-S-UP)4242 1346 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o)
+1245 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h
+(line)291 b Fg(M-S-UP)4242 1315 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o)
 n(v)n(e)i(the)f(curren)n(t)g(ro)n(w)285 b Fg(M-S-DOWN)4242
-1433 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h
-(curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1503 y
+1399 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h
+(curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1469 y
 Fi(insert)23 b(horizon)n(tal)i(line)e(ab)r(o)n(v)n(e)i(the)g(curren)n
-(t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1589 y Fd(Regions)4242
-1676 y Fi(cut)25 b(rectangular)f(region)758 b Fg(C-c)36
-b(C-h)g(C-w)4242 1746 y Fi(cop)n(y)25 b(rectangular)f(region)715
-b Fg(C-c)36 b(C-h)g(M-w)4242 1816 y Fi(paste)25 b(rectangular)f(region)
-695 b Fg(C-c)36 b(C-h)g(C-y)4242 1885 y Fi(\014ll)23
+(t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1553 y Fd(Regions)4242
+1637 y Fi(cut)25 b(rectangular)f(region)758 b Fg(C-c)36
+b(C-h)g(C-w)4242 1707 y Fi(cop)n(y)25 b(rectangular)f(region)715
+b Fg(C-c)36 b(C-h)g(M-w)4242 1777 y Fi(paste)25 b(rectangular)f(region)
+695 b Fg(C-c)36 b(C-h)g(C-y)4242 1847 y Fi(\014ll)23
 b(paragraph)h(across)g(selected)h(cells)399 b Fg(C-c)36
-b(C-q)4242 1972 y Fd(Calculations)4242 2059 y Fi(Except)31
+b(C-q)4242 1931 y Fd(Calculations)4242 2015 y Fi(Except)31
 b(for)e(the)i(summation)f(commands,)h(these)g(need)g(the)g(Emacs)4242
-2129 y(calc)24 b(pac)n(k)l(age)i(installed.)4242 2215
-y(replace)e(curren)n(t)g(\014eld)g(with)g(result)f(of)h(form)n(ula)129
-b Fg(C-c)36 b(=)4242 2285 y Fi(...)30 b(same)24 b(calculation)h(for)e
-(rest)g(of)h(column)267 b Fg(C-u)36 b(C-c)g(=)4242 2355
-y Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f(curren)n(t)g(line)96
-b Fg(C-c)36 b(*)4242 2425 y Fi(re-apply)23 b(all)g(stored)i(equations)g
+2085 y(calc)24 b(pac)n(k)l(age)i(installed.)4242 2169
+y(set)e(and)g(ev)l(al)g(column)g(form)n(ula)567 b Fg(C-c)36
+b(=)4242 2239 y Fi(set)24 b(and)g(ev)l(al)g(named-\014eld)h(form)n(ula)
+433 b Fg(C-u)36 b(C-c)g(=)4242 2308 y Fi(edit)24 b(form)n(ulas)f(in)g
+(separate)i(bu\013er)473 b Fg(C-c)36 b(')4242 2378 y
+Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f(curren)n(t)g(line)96
+b Fg(C-c)36 b(*)4242 2448 y Fi(re-apply)23 b(all)g(stored)i(equations)g
 (to)f(en)n(tire)g(table)101 b Fg(C-u)36 b(C-c)g(*)4242
-2511 y(TAB)p Fi(,)30 b Fg(RET)f Fi(and)f Fg(C-c)37 b(C-c)28
+2532 y(TAB)p Fi(,)30 b Fg(RET)f Fi(and)f Fg(C-c)37 b(C-c)28
 b Fi(trigger)h(automatic)g(recalculation)h(in)d(lines)4242
-2581 y(starting)d(with:)31 b Fg(|)36 b(#)f(|)p Fi(.)4242
-2668 y(rotate)23 b(recalculation)f(mark)g(through)g(#)g(*)g(!)30
-b(^)p 5533 2668 22 4 v 47 w($)71 b Fg(C-#)4242 2755 y
-Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in)354
-b Fg(C-c)36 b(?)4242 2824 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f(curren)
-n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 2908
+2602 y(starting)d(with:)31 b Fg(|)36 b(#)f(|)p Fi(.)4242
+2686 y(rotate)25 b(calculation)g(mark)e(through)i(#)e(*)h(!)31
+b(^)p 5487 2686 22 4 v 49 w($)115 b Fg(C-#)4242 2770
+y Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in)354
+b Fg(C-c)36 b(?)4242 2840 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f(curren)
+n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 2924
 y Fi(cop)n(y)25 b(do)n(wn)f(with)g(incremen)n(t)625 b
-Fg(S-RET)5857 2885 y Ff(4)4242 2995 y Fi(A)27 b(form)n(ula)g(can)h
-(also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)g(in)n(to)f(a)h
-(\014eld.)42 b(It)28 b(will)4242 3065 y(b)r(e)c(executed)i(b)n(y)e
-Fg(TAB)p Fi(,)g Fg(RET)h Fi(and)f Fg(C-c)36 b(C-c)p Fi(:)4242
-3152 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522 b
-Fg(=$1+$2)4242 3221 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r
-(eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3291 y Fi(...)30
+Fg(S-RET)5857 2900 y Ff(4)4242 3008 y Fi(A)25 b(form)n(ula)f(can)i
+(also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)f(in)n(to)h(a)f
+(\014eld)g(and)h(will)4242 3078 y(executed)31 b(b)n(y)e
+Fg(TAB)p Fi(,)h Fg(RET)g Fi(and)f Fg(C-c)36 b(C-c)p Fi(.)47
+b(A)28 b(leading)h Fg(=)g Fi(in)n(tro)r(duces)h(a)4242
+3148 y(column)24 b(form)n(ula,)e Fg(:=)j Fi(a)e(named-\014eld)i(form)n
+(ula.)4242 3232 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522
+b Fg(=$1+$2)4242 3301 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r
+(eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3371 y Fi(...)30
 b(with)24 b(constan)n(ts)h(from)e(constan)n(ts.el)352
-b Fg(=$1/$c/$cm)4242 3361 y Fi(Apply)24 b(curren)n(t)g(\(for)f(this)h
-(column\))g(form)n(ula)200 b Fg(=)4242 3431 y Fi(Sum)24
-b(all)f(n)n(um)n(b)r(ers)g(ab)r(o)n(v)n(e/left)j(of)d(cursor)292
-b Fg(=sum)36 b(/)g(=sumh)4242 3500 y Fi(Sum)24 b(just)f(the)i(3)f
-(\014elds)f(closest)i(to)f(cursor)279 b Fg(=sum3/=sumh3)4242
-3587 y Fd(Miscellaneous)4242 3674 y Fi(toggle)25 b(visibilit)n(y)d(of)i
-(v)n(ertical)g(lines)474 b Fg(C-c)36 b(|)4242 3744 y
-Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370 b Fg(M-x)36
-b(org-table-export)4242 3813 y Fi(imp)r(ort)23 b(tab-separated)j
-(\014le)447 b Fg(M-x)36 b(org-table-import)4242 3900
-y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i
+b Fg(=$1/$c/$cm)4242 3441 y Fi(sum)23 b(from)g(3rd)h(hline)f(ab)r(o)n
+(v)n(e)i(to)f(here)411 b Fg(:=vsum\(&III\))4242 3511
+y Fi(apply)24 b(curren)n(t)g(column)g(form)n(ula)518
+b Fg(=)4242 3595 y Fd(Miscellaneous)4242 3679 y Fi(toggle)25
+b(visibilit)n(y)d(of)i(v)n(ertical)g(lines)474 b Fg(C-c)36
+b(|)4242 3749 y Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370
+b Fg(M-x)36 b(org-table-export)4242 3819 y Fi(imp)r(ort)23
+b(tab-separated)j(\014le)447 b Fg(M-x)36 b(org-table-import)4242
+3903 y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i
 Fd(pac)n(k)-5 b(age)4242 3987 y Fi(insert)23 b(a)h(new)g
 Fg(table.el)i Fi(table)582 b Fg(C-c)36 b(~)4242 4057
 y Fi(recognize)25 b(existing)f(table.el)g(table)474 b
@@ -2551,7 +2560,7 @@
 %%Page: 2 2
 TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45
 b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
-(3.13\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150
+(3.14\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150
 120 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458
 b Fg(C-c)36 b(C-r)-150 190 y Fi(...)30 b(include)24 b(past)h(dates)793
 b Fg(C-u)36 b(C-c)g(C-r)-150 288 y Fi(add)24 b(curren)n(t)g(\014le)g
@@ -2676,10 +2685,9 @@
 3441 y(toggle)h(COMMENT)d(k)n(eyw)n(ord)j(on)f(en)n(try)285
 b Fg(C-c)36 b(;)2046 3644 y Fh(Completion)2046 3800 y
 Fi(In-bu\013er)e(completion)g(completes)h(TODO)d(k)n(eyw)n(ords)i(at)g
-(headline)2046 3869 y(start,)26 b(T)-6 b(eX)26 b(macros)f(after)h(\\)p
-Fg(\\)p Fi(",)h(option)f(k)n(eyw)n(ords)g(after)g(\\)p
-Fg(#-)p Fi(",)h(k)n(ey-)2046 3939 y(w)n(ord)d(form)n(ulas)e(after)i(\\)
-p Fg(=)p Fi(",)g(and)g(dictionary)g(w)n(ords)g(elsewhere.)2046
+(headline)2046 3869 y(start,)28 b(T)-6 b(eX)27 b(macros)g(after)g(\\)p
+Fg(\\)p Fi(",)h(option)g(k)n(eyw)n(ords)g(after)f(\\)p
+Fg(#-)p Fi(",)h(and)2046 3939 y(dictionary)c(w)n(ords)g(elsewhere.)2046
 4037 y(Complete)h(w)n(ord)e(at)h(p)r(oin)n(t)702 b Fg(M-TAB)4242
 -364 y Fh(Calendar)36 b(and)h(Diary)i(In)m(tegration)4242
 -208 y Fi(T)-6 b(o)35 b(include)g(en)n(tries)g(from)f(the)i(Emacs)f
@@ -2738,7 +2746,7 @@
 Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838
 3768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21
 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826
-y(v3.13)h(for)h(Org-Mo)r(de)e(3.13,)i(2005)4912 3882
+y(v3.14)h(for)h(Org-Mo)r(de)e(3.14,)i(2005)4912 3882
 y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g
 (design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242
 4022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e
--- a/etc/orgcard.tex	Tue Jul 19 02:58:20 2005 +0000
+++ b/etc/orgcard.tex	Fri Jul 22 08:27:27 2005 +0000
@@ -1,4 +1,4 @@
-% Reference Card for Org Mode 3.13
+% Reference Card for Org Mode 3.14
 %
 %**start of header
 \newcount\columnsperpage
@@ -32,8 +32,8 @@
 
 % 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 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
 
 % This file is intended to be processed by plain TeX (TeX82).
 %
@@ -58,7 +58,7 @@
 % Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
 % for their many good ideas.
 
-\def\orgversionnumber{3.13}
+\def\orgversionnumber{3.14}
 \def\year{2005}
 
 \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
@@ -467,29 +467,30 @@
 Except for the summation commands, these need the Emacs calc package
 installed.
 
-\key{replace current field with result of formula}{C-c =}
-\key{... same calculation for rest of column}{C-u C-c =}
+\key{set and eval column formula}{C-c =}
+\key{set and eval named-field formula}{C-u C-c =}
+\key{edit formulas in separate buffer}{C-c '}
 \key{re-apply all stored equations to current line}{C-c *}
 \key{re-apply all stored equations to entire table}{C-u C-c *}
 
 \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation
 in lines starting with: {\tt | \# |}.
 
-\key{rotate recalculation mark through \# * ! \^ \_ \$}{C-\#}
+\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
 
 \key{display column number cursor is in}{C-c ?}
 \key{sum numbers in current column/rectangle}{C-c +}
 \key{copy down with increment}{S-RET$^4$}
 
-A formula can also be typed directly into into a field.  It will be
-executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}:
+A formula can also be typed directly into into a field and will
+executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}.  A leading \kbd{=}
+introduces a column formula, \kbd{:=} a named-field formula.
 
 \key{Example: Add Col1 and Col2}{=\$1+\$2}
 \key{... with printf format specification}{=\$1+\$2;\%.2f}
 \key{... with constants from constants.el}{=\$1/\$c/\$cm}
-\key{Apply current (for this column) formula}{=}
-\key{Sum all numbers above/left of cursor}{=sum / =sumh}
-\key{Sum just the 3 fields closest to cursor}{=sum3/=sumh3}
+\key{sum from 3rd hline above to here}{:=vsum(\&III)}
+\key{apply current column formula}{=}
 
 {\bf Miscellaneous}
 
@@ -646,8 +647,8 @@
 \section{Completion}
 
 In-buffer completion completes TODO keywords at headline start, TeX
-macros after ``{\tt \\}'', option keywords after ``{\tt \#-}'',
-keyword formulas after ``{\tt =}'', and dictionary words elsewhere.
+macros after ``{\tt \\}'', option keywords after ``{\tt \#-}'', and
+dictionary words elsewhere.
 
 \key{Complete word at point}{M-TAB}
 
--- a/lisp/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,598 @@
+2005-07-22  Juanma Barranquero  <lekktu@gmail.com>
+
+	* hilit-chg.el (highlight-changes-global-initial-state)
+	(highlight-compare-buffers, hilit-chg-turn-on-maybe)
+	(hilit-chg-fixup, highlight-changes-mode):
+	Fix typos in docstrings.
+	(highlight-changes-global-modes, highlight-changes-rotate-faces):
+	Doc fixes.
+
+2005-07-21  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* emacs-lisp/easy-mmode.el (define-minor-mode): Never call the
+	mode function using `eval-after-load'.
+
+2005-07-21  Kim F. Storm  <storm@cua.dk>
+
+	* mail/emacsbug.el (report-emacs-bug): Request that backtraces are
+	included when reporting an emacs crash, and tell about the DEBUG file.
+
+	* image-file.el (insert-image-file): Add yank-handler.
+	(image-file-yank-handler): Yank handler to make unique copies of
+	images when they are yanked into a buffer next to each other.
+
+2005-07-21  Juanma Barranquero  <lekktu@gmail.com>
+
+	* comint.el (comint-use-prompt-regexp, comint-send-input)
+	(comint-source-default, comint-extract-string)
+	(comint-get-source, comint-word, comint-completion)
+	(comint-source, comint-prompt-read-only, comint-update-fence):
+	Fix typos in docstrings.
+	(comint-use-prompt-regexp-instead-of-fields, comint-kill-output):
+	Declare with define-obsolete-*-alias macros.
+	(comint-previous-matching-input-from-input)
+	(comint-next-matching-input-from-input)
+	(comint-previous-matching-input, comint-next-matching-input)
+	(comint-forward-matching-input):
+	Improve argument/docstring consistency.
+
+	* desktop.el (desktop-clear-preserve-buffers-regexp):
+	Also preserve the *server* buffer.
+
+	* simple.el (clone-indirect-buffer): Doc fix.
+	(fixup-whitespace, just-one-space)
+	(backward-delete-char-untabify, lambda): "?\ " -> "?\s".
+	(next-error, next-error-highlight)
+	(next-error-highlight-no-select, next-error-last-buffer)
+	(next-error-buffer-p, next-error-find-buffer, next-error)
+	(previous-error, next-error-no-select, previous-error-no-select)
+	(open-line, split-line, minibuffer-prompt-width, kill-new)
+	(binary-overwrite-mode): Fix typos in docstrings.
+	(set-fill-column): Fix typo in message.
+
+	* skeleton.el (skeleton-proxy-new): Doc fix.
+
+	* strokes.el (strokes-load-hook): Doc fix.
+	(strokes-grid-resolution, strokes-get-grid-position)
+	(strokes-renormalize-to-grid, strokes-read-stroke)
+	(strokes-read-complex-stroke, strokes-file, strokes-last-stroke)
+	(strokes-global-map): Fix typos in docstrings.
+	(strokes-help): Doc fix.  Fix help message and pass it through
+	`substitute-command-keys'.
+
+	* tempo.el (tempo-insert-prompt, tempo-interactive)
+	(tempo-show-completion-buffer, tempo-tags, tempo-match-finder)
+	(tempo-insert-string-functions, tempo-local-tags)
+	(tempo-define-template, tempo-insert-template)
+	(tempo-insert-prompt-compat, tempo-is-user-element)
+	(tempo-insert-mark, tempo-find-match-string, tempo-complete-tag):
+	Fix typos in docstrings.
+
+	* vcursor.el (vcursor-other-window, vcursor-bind-keys)
+	(vcursor-key-bindings, vcursor-use-vcursor-map)
+	(vcursor-find-window, vcursor-scroll-down)
+	(vcursor-disable, vcursor-beginning-of-buffer)
+	(vcursor-end-of-buffer): Fix typos in docstrings.
+	(vcursor-relative-move, vcursor-get-char-count):
+	Improve argument/docstring consistency.
+
+	* version.el: "?\ " -> "?\s".
+
+	* wid-edit.el (widget-default-create, widget-after-change)
+	(widget-default-format-handler, widget-checklist-add-item)
+	(widget-radio-add-item, widget-choose, widget-specify-secret)
+	(widget-field-value-create, widget-field-value-get)
+	(widget-editable-list-format-handler)
+	(widget-editable-list-entry-create, widget-group-value-create)
+	(widget-documentation-link-add)
+	(widget-documentation-string-value-create): "?\ " -> "?\s".
+	(widget-convert-text): Doc fix.
+	(widget-narrow-to-field, widget-field-find)
+	(widget-url-link-action, widget-emacs-library-link-action)
+	(widget-color-notify): Fix typos in docstrings.
+
+	* w32-fns.el (w32-shell-name): Use `bound-and-true-p'.
+	(x-select-text, set-w32-system-coding-system)
+	(w32-add-charset-info): Fix typos in docstrings.
+
+	* emulation/cua-base.el (cua-mode, cua-enable-register-prefix)
+	(cua-enable-cua-keys, cua-use-hyper-key)
+	(cua-virtual-rectangle-edges): Fix typos in docstrings.
+	(cua--M/H-key, cua--init-keymaps): "?\ " -> "?\s".
+
+	* net/tramp.el (tramp-handle-load): Fix typo in error message.
+
+	* emacs-lisp/re-builder.el (regexp-builder): Declare with
+	`defalias' instead of faking it.
+
+	* eshell/em-ls.el (eshell-ls-decorated-name): Doc fix.
+	(eshell-ls-missing, eshell-ls-dired-initial-args)
+	(eshell-ls-use-in-dired): Fix typos in docstrings.
+
+2005-07-20  Kim F. Storm  <storm@cua.dk>
+
+	* emulation/cua-base.el (cua-mode): Improve doc string.
+
+2005-07-20  Juanma Barranquero  <lekktu@gmail.com>
+
+	* abbrev.el (expand-region-abbrevs): Doc fix.
+	(inverse-add-mode-abbrev, inverse-add-global-abbrev):
+	Improve argument/docstring consistency.
+
+	* arc-mode.el (archive-get-descr, archive-alternate-display):
+	Doc fixes.
+	(archive-l-e): Improve argument/docstring consistency.
+	(archive-tmpdir, archive-unixdate, archive-unixtime)
+	(archive-chmod-entry): Fix typos in docstrings.
+	(archive-unflag, archive-unflag-backwards)
+	(archive-unmark-all-files): "?\ " -> "?\s".
+
+	* buff-menu.el (Buffer-menu-unmark): Doc fix.
+	(Buffer-menu-not-modified, Buffer-menu-execute)
+	(Buffer-menu-toggle-read-only, Buffer-menu-buffer+size)
+	(list-buffers-noselect, Buffer-menu-select): "?\ " -> "?\s".
+
+	* composite.el (compose-string, encode-composition-rule)
+	(compose-last-chars): Fix typos in docstrings.
+
+	* desktop.el (desktop-enable, desktop-basefilename):
+	Declare with `define-obsolete-variable-alias'.
+	(desktop-internal-v2s): Don't quote keywords.
+	(desktop-clear): "?\ " -> "?\s".
+
+	* dired.el (dired-align-file, dired-flag-backup-files)
+	(dired-change-marks, dired-unmark-all-files): "?\ " -> "?\s".
+	(dired-listing-switches, dired-ls-F-marks-symlinks)
+	(dired-dwim-target, dired-load-hook, dired-mode-hook)
+	(dired-directory, dired-faces, dired, dired-revert)
+	(dired-mode, dired-summary, dired-view-file)
+	(dired-copy-filename-as-kill, dired-delete-file)
+	(dired-no-confirm, dired-unmark-all-marks)
+	(dired-sort-by-date-regexp, dired-sort-by-name-regexp)
+	(dired-sort-inhibit, dired-sort-other): Fix typos in docstrings.
+	(dired-undo, dired-get-file-for-visit, dired-sort-toggle-or-edit):
+	Fix typos in message strings.
+
+	* dired-x.el (virtual-dired): Declare with `defalias'.
+	(dired-mark-unmarked-files, dired-local-variables-file)
+	(dired-omit-here-always): Doc fix.
+	(dired-omit-mode, dired-find-subdir)
+	(dired-enable-local-variables, dired-clean-up-buffers-too)
+	(dired-extra-startup, dired-mark-extension, dired-jump)
+	(dired-jump-other-window, dired-omit-localp, dired-virtual-mode)
+	(dired-smart-shell-command, dired-guess-shell-alist-user)
+	(dired-man, dired-initial-position, dired-x-hands-off-my-keys)
+	(dired-x-bind-find-file, dired-x-submit-report):
+	Fix typos in docstrings.
+	(dired-mark-unmarked-files): "?\ " -> "?\s".
+
+	* dirtrack.el (dirtrack-list): Fix typos in docstring.
+
+	* faces.el (describe-face): "?\ " -> "?\s".
+	(read-all-face-attributes, read-face-font, modify-face)
+	(face-attr-construct, italic): Fix typos in docstrings.
+	(frame-update-face-colors): Declare with
+	`define-obsolete-function-alias'.
+
+	* files.el (find-file-noselect, recode-file-name): Doc fixes.
+	(insert-directory, kill-some-buffers): "?\ " -> "?\s".
+	(magic-mode-alist, buffer-file-numbers-unique)
+	(write-file-functions, get-free-disk-space):
+	Fix typos in docstrings.
+	(find-file-not-found-hooks, find-file-hooks, write-file-hooks)
+	(write-contents-hooks, write-file-hooks):
+	Declare with `define-obsolete-variable-alias'.
+
+	* forms-d2.el (arch-rj): Fix typo in docstrings.
+	(arch-tocol): Likewise.  "?\ " -> "?\s".
+
+	* frame.el (set-frame-font, cursor-in-non-selected-windows):
+	Fix typo in docstring.
+	(set-screen-width, set-screen-height): Delete redundant info in
+	doctrings.
+	(new-frame, screen-height, screen-width): Declare with
+	`define-obsolete-function-alias'.
+	(delete-frame-hook, blink-cursor): Declare with
+	`define-obsolete-variable-alias'.
+
+	* paths.el (prune-directory-list): Fix typos in docstring.
+
+	* pcvs-util.el (cvs-flags-query, cvs-strings->string)
+	(cvs-prefix-get): Fix typos in docstrings.
+
+	* ps-print.el (ps-extend-face-list, ps-extend-face)
+	(ps-print-background-image): Fix typos in docstrings.
+	(ps-default-fg, ps-default-bg): Doc fixes.
+
+	* s-region.el (s-region-bind): Doc fix.
+	(s-region-move-p1, s-region-move-p2): Fix typos in docstrings.
+
+	* textmodes/org.el (org-table-formula-substitute-names)
+	(org-table-get-vertical-vector): Doc fixes.
+	(org-table-recalculate): Remove unused argument to `message'.
+
+2005-07-19  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (org-table-column-names)
+	(org-table-column-name-regexp)
+        (org-table-named-field-locations): New variables.
+        (org-archive-subtree): Protect `this-command' when calling
+	`org-copy-subtree' and `org-cut-subtree', to avoid appending to
+	the kill buffer.
+        (org-complete): Remove fixed-formula completion.
+        (org-edit-formulas-map): New variable.
+        (org-table-edit-formulas): New command.
+        (org-finish-edit-formulas, org-abort-edit-formulas)
+	(org-show-variable, org-table-get-vertical-vector): New functions.
+        (org-table-maybe-eval-formula): Handle `:=' fields.
+        (org-table-get-stored-formulas, org-table-store-formulas)
+        (org-table-get-formula, org-table-modify-formulas)
+        (org-table-replace-in-formulas): Handle named field formulas.
+        (org-table-get-specials): Store locations of named fields.
+
+2005-07-19  Juri Linkov  <juri@jurta.org>
+
+	* progmodes/grep.el (grep-regexp-alist)
+	(grep-mode-font-lock-keywords, grep-process-setup):
+	Use default GNU grep match color "01;31m" instead of "01;41m".
+	(grep-regexp-alist, grep-mode-font-lock-keywords):
+	Use `\\[[0-9]*m' instead of `\\[00m'.
+	(grep-regexp-alist): Move `\\(?:\033\\[K\\)?' from sgr_end to
+	sgr_start where its handling is more important.  Use the real
+	length of sgr_start instead of constant 8.
+	(grep-mode-font-lock-keywords): Don't delete `\\(?:\033\\[K\\)?'
+	specially.  Delete all remaining escape sequences.
+	(grep-process-setup): Set "GREP_COLORS" for GNU grep 2.5.1-cvs.
+	(grep-regexp-alist): Make hyperlink only for binary file name
+	instead of the whole line.
+	(grep-mode-map): Bind `backtab' to `compilation-previous-file'.
+	(grep-mode): Add autoload.
+
+	* emacs-lisp/find-func.el (find-function-regexp):
+	Add `define-compilation-mode'.
+
+2005-07-19  Juri Linkov  <juri@jurta.org>
+
+	* compare-w.el (compare-ignore-whitespace, compare-windows-sync)
+	(compare-windows-sync-string-size, compare-windows-recenter)
+	(compare-windows-highlight, compare-windows): Add version 22.1.
+	(compare-windows) <defface>: Inherit from lazy-highlight instead
+	of duplicating its default value.
+
+	* cus-edit.el (custom-mode-map): Bind `C-c C-c' to `Custom-set'.
+	(Custom-mode-menu): Use `info' instead of `Info-goto-node'.
+
+	* descr-text.el (describe-char): Create link buttons for `charset'
+	and `code point'.  Add the current input method name with a link
+	button to `to input' field.  Print face names of display table
+	characters in `The display table entry is displayed by' section
+	instead of printing face-id in the `display' field.
+	Guess hardcoded faces and create a link button for them.
+	Skip empty fields when calculating max-width.
+	Treat `widget-create' specially while inserting strings from the
+	collected field list.
+	(describe-char-after): Made obsolete in version 22.1, not 21.5.
+
+	* diff-mode.el (diff-file-header): Change foreground color from
+	yellow to green on light backgrounds.
+	(diff-context): Inherit from `shadow' only for color/grayscale
+	with more than 88 colors.
+	(diff-indicator-removed, diff-indicator-added)
+	(diff-indicator-changed): New faces.
+	(diff-font-lock-keywords): Use new faces.  Regroup rules.
+	Add "^---$" for `normal' diff format.  Fontify `#' lines with
+	font-lock-comment-delimiter-face and font-lock-comment-face.
+	Add `#' to ^[^...] in the rule for `diff-context-face'.
+
+	* faces.el (mode-line-highlight): Replace RoyalBlue4 with
+	a button-like box.  Inherit from `highlight' on low colors.
+	(shadow): Use shades of gray only for color/grayscale with
+	more than 88 colors.  Use green for light backgrounds with
+	8 colors, and yellow for dark backgrounds with 8 colors.
+
+	* font-lock.el (font-lock-regexp-grouping-backslash): Don't
+	inherit from escape-glyph (use bold for all cases).
+
+	* info.el (info-xref-visited): Use light foreground color `violet'
+	for dark backgrounds instead of dark color `magenta3'.
+	(info-title-1): Use `yellow' color for dark backgrounds.
+
+	* isearch.el (isearch): Use not-too-dark magenta3 instead of
+	too-light magenta2.
+
+	* replace.el (match): Use slightly more light RoyalBlue3 instead
+	of dark RoyalBlue4.
+
+	* wid-edit.el (widget-inactive): Inherit from `shadow'.
+
+2005-07-19  Juanma Barranquero  <lekktu@gmail.com>
+
+	* novice.el (disabled-command-hook): Declare it with
+	`define-obsolete-variable-alias'.
+
+	* desktop.el (desktop-enable, desktop-buffer-modes-to-save)
+	(desktop-buffer-misc-functions, desktop-buffer-handlers)
+	(desktop-load-default): Add release to obsolescence info.
+	(desktop-globals-to-clear, desktop-buffer-mode-handlers)
+	(desktop-append-buffer-args, desktop-read):
+	Fix typos in docstrings.
+	(desktop-kill): Fix typo in message.
+	(desktop-save): Doc fix.
+
+2005-07-19  Michael Kifer  <kifer@cs.stonybrook.edu>
+
+	* viper-cmd.el (viper-escape-to-state): Bug fix.
+	(viper-envelop-ESC-key): Change the definition of fast
+	keysequence so it'll work with keyboard macros.
+
+	* ediff.el (ediff-patch-buffer): Change the docstring.
+
+2005-07-19  Kenichi Handa  <handa@m17n.org>
+
+	* international/mule-cmds.el (select-safe-coding-system): Try to
+	use an auto-coding (if any) before anything else.  If the found
+	auto-coding is invalid, show a warning message.
+
+	* international/mule.el (find-auto-coding): New function created
+	by modifying the body of set-auto-coding.
+	(set-auto-coding): Use find-auto-coding to find a coding.
+
+2005-07-18  Richard M. Stallman  <rms@gnu.org>
+
+	* allout.el (allout-isearch-expose): Use isearch-mode-end-hook-quit,
+	not isearch-mode-end-hook-error.
+	(allout-before-change-protect): Fix error message.
+
+2005-07-18  Juri Linkov  <juri@jurta.org>
+
+	* allout.el (allout-mode):
+	* calculator.el (calculator-copy):
+	* custom.el (custom-known-themes):
+	* dired.el (dired-desktop-buffer-misc-data)
+	(dired-restore-desktop-buffer):
+	* dired-x.el (dired-omit-marker-char):
+	* files.el (basic-save-buffer):
+	* font-core.el (font-lock-mode):
+	* calendar/calendar.el (calendar-goto-hebrew-date)
+	(calendar-goto-coptic-date, calendar-goto-ethiopic-date)
+	(calendar-goto-persian-date):
+	* language/ethio-util.el (ethio-sera-to-fidel-region):
+	* textmodes/picture.el (picture-mode):
+	Delete duplicate duplicate words.
+
+2005-07-18  Juri Linkov  <juri@jurta.org>
+
+	* isearch.el (isearch-mode-map): Remove key bindings for regexp
+	chars * ? } |.
+	(isearch-fallback): Don't call `isearch-process-search-char'.
+	(isearch-*-char, isearch-}-char, isearch-|-char): Remove functions.
+	(isearch-process-search-char): Call `isearch-fallback' for regexp
+	chars * ? } |.
+	(isearch-return-char): Make obsolete with `make-obsolete' instead
+	of simply documenting it as obsolete in the docstring.
+	(isearch-fallback): Refill docstring.
+
+	* international/isearch-x.el
+	(isearch-process-search-multibyte-characters): Remove unneeded `concat'.
+	Add intermediate values to `junk-hist' instead of `minibuffer-history'.
+	Test the length of `str'.
+
+2005-07-18  Juanma Barranquero  <lekktu@gmail.com>
+
+	* allout.el (allout-resolve-xref): Fix typos in error strings.
+	(allout-before-change-protect): Remove unneeded `concat'.
+
+	* array.el (array-mode, array-reconfigure-rows)
+	(untabify-backward): Fix typos in docstrings.
+	(array-reconfigure-rows): Use `insert-buffer-substring', not
+	`insert-buffer'.
+
+	* calendar/icalendar.el (icalendar--get-unfolded-buffer):
+	* progmodes/ada-mode.el (ada-make-body): Use
+	`insert-buffer-substring' and `goto-char', not `insert-buffer'.
+
+	* dired.el (dired-log):
+	* tar-mode.el (tar-subfile-save-buffer):
+	* play/zone.el (zone-pgm-stress-destress):
+	Use `insert-buffer-substring', not `insert-buffer'.
+
+2005-07-17  Simon Josefsson  <jas@extundo.com>
+
+	* mail/smtpmail.el (smtpmail-auth-supported): Prefer PLAIN over LOGIN.
+
+2005-07-16  Jose E. Marchesi  <jemarch@gnu.org>
+
+	* lisp/mail/smtpmail.el (smtpmail-auth-supported):
+	Add plain auth method.
+	(smtpmail-try-auth-methods): Add AUTH PLAIN dialog.
+
+2005-07-17  Kim F. Storm  <storm@cua.dk>
+
+	* ido.el (dired-other-window): Add ido property.
+
+2005-07-16  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacs-lisp/bytecomp.el (byte-compile-maybe-guarded):
+	Fix typo in docstring.
+	(byte-compile-interactive-only-functions): Add `insert-buffer' and
+	`insert-file-literally'.
+
+	* emacs-lisp/edebug.el (def-edebug-form-spec): Add obsolescence
+	info and delete redundant message.  Doc fix.
+	(edebug-install-custom-print-funcs, edebug-reset-print-funcs)
+	(edebug-uninstall-custom-print-funcs): Define as obsolete aliases.
+
+2005-07-16  Richard M. Stallman  <rms@gnu.org>
+
+	* emacs-lisp/bytecomp.el (byte-compile-and-recursion): New function.
+	(byte-compile-and): Use byte-compile-and-recursion.
+	(byte-compile-or-recursion): New function.
+	(byte-compile-or): Use that.
+	(byte-compile-if): Guard the else-clause too.
+	(byte-compile-maybe-guarded): Handle (not (featurep 'emacs)).
+
+	* isearch.el (isearch-mode-end-hook-quit): New variable.
+	(isearch-done): Bind it.
+	(isearch-mode-end-hook): Doc fix.
+
+	* allout.el (allout-isearch-did-quit): Variable deleted.
+	(allout-real-isearch-abort): Function name no longer used.
+	(allout-mode): Do allout-enwrap-isearch whenever feature is wanted.
+	(allout-isearch-rectification): isearch-mode always exists.
+	Don't set allout-isearch-did-quit.
+	(allout-isearch-expose): Check isearch-mode-end-hook-error, not
+	allout-isearch-did-quit.
+	(allout-enwrap-isearch): Just add the hook.
+	(allout-isearch-abort): Function deleted.
+	(allout-pre-command-business): Avoid warning.
+
+	* progmodes/pascal.el (pascal-outline-map): Use fboundp, not boundp.
+	Correctly avoid warnings.
+	(pascal-outline): Likewise.
+
+	* progmodes/f90.el (f90-abbrev-start): Avoid warning.
+
+	* progmodes/asm-mode.el (asm-comment): Use with-no-warnings.
+
+	* play/tetris.el (tetris-mode): Avoid warning.
+
+	* play/snake.el (snake-mode): Avoid warning.
+
+	* play/gamegrid.el (gamegrid-shared-game-dir): Add defvar.
+	(gamegrid-set-display-table): Avoid warning.
+	(gamegrid-set-timer): Likewise.
+	(gamegrid-make-mono-tty-face): Use set-face-inverse-video-p.
+	(gamegrid-add-score-with-update-game-score-1): Take FILE
+	as argument.
+	(gamegrid-add-score-with-update-game-score): Pass that argument.
+	Rename have-shared-game-dir to gamegrid-shared-game-dir.
+
+	* net/eudc-hotlist.el (eudc-hotlist-mode): Avoid warnings.
+
+	* net/eudc-bob.el (eudc-jump-to-event): Avoid warning.
+	(eudc-bob-display-jpeg, eudc-bob-can-display-inline-images): Likewise.
+
+	* mail/uce.el (uce-reply-to-uce): Replace beginning-of-buffer
+	and insert-file.
+
+	* mail/supercite.el (sc-no-blank-line-or-header): Avoid warning.
+	(sc-ask): Avoid warnings.
+
+	* eshell/em-hist.el (eshell-rebind-keys-alist): Add defvar.
+	(eshell-hist-initialize): Use that var the natural way.
+
+	* emulation/viper-init.el (viper-activate-input-method): Avoid warning.
+
+	* emacs-lisp/re-builder.el (reb-cook-regexp): Avoid
+	warning calling lre-compile-string.
+	(reb-color-display-p): Avoid warning.
+
+	* calculator.el (calculator-last-input): Guard uses
+	of event-key and key-press-event-p.
+	(event-key, key-press-event-p): Delete definitions.
+
+	* emacs-lisp/find-gc.el (find-gc-unsafe-list)
+	(find-gc-source-directory, find-gc-subrs-callers)
+	(find-gc-noreturn-list, find-gc-source-files)
+	(find-gc-subrs-called): Vars renamed and defvar'd.
+
+	* emacs-lisp/checkdoc.el (checkdoc-make-overlay)
+	(checkdoc-overlay-put, checkdoc-delete-overlay)
+	(checkdoc-overlay-start, checkdoc-overlay-end)
+	(checkdoc-mode-line-update, checkdoc-char=):
+	Define such that compiler knows they are defined.
+	(checkdoc-call-eval-buffer): Deleted.  Use eval-buffer directly.
+	(checkdoc-read-event): Deleted.  Use read-event directly.
+
+	* whitespace.el (whitespace-make-overlay)
+	(whitespace-overlay-put, whitespace-delete-overlay)
+	(whitespace-overlay-start, whitespace-overlay-end):
+	Define such that compiler knows they are defined.
+	(whitespace): Move conditional inside.
+
+	* tempo.el (tempo-insert-template): Suppress warning.
+
+	* ediff-diff.el (longlines-mode): Add defvar.
+
+2005-07-16  Gary Howell  <g1howell-list@yahoo.com>  (tiny change)
+
+	* server.el: Bind "C-x #" in a way that works even if C-x is
+	redefined to a command key, not a prefix key.
+
+2005-07-16  Johan Bockgard  <bojohan@users.sourceforge.net>  (tiny change)
+
+	* emacs-lisp/cl-macs.el (cl-make-type-test): Defer evaluation of
+	cl-make-type-test till execution time.
+
+2005-07-16  Markus Rost  <rost@math.uni-bielefeld.de>
+
+	* dired-x.el (dired-do-relsymlink-regexp): Add missing optional
+	arg ARG and use it.
+
+2005-07-16  Johan Bockgard  <bojohan@users.sourceforge.net>  (tiny change)
+
+	* emacs-lisp/cl-macs.el (cl-make-type-test): Add `atom' type.
+
+2005-07-15  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* emacs-lisp/easy-mmode.el (define-minor-mode): Avoid constructing
+	a defcustom with two :set or :type keywords.
+
+2005-07-15  Richard M. Stallman  <rms@gnu.org>
+
+	* emacs-lisp/lisp-mode.el (emacs-lisp-mode-syntax-table):
+	Don't give ^M comment-end syntax.
+
+2005-07-16  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-var-update, gdb-var-update-handler):
+	Don't consider gdbmi (gdb-mi.el has its own update functions).
+	(gdb-var-delete): Make it work for gdbmi as well.
+	(gdb-speedbar-expand-node): Move var-update here for gdbmi.
+
+	* progmodes/gud.el (etags, sdb): Only require etags when needed.
+	(gud-speedbar-menu-items): Correct logic for enabling items.
+
+2005-07-15  Kim F. Storm  <storm@cua.dk>
+
+	* ido.el: Fix commentary.
+	(ido-define-mode-map): Move ido-next-work-file to C-M-o.
+	Use with-no-warnings around ffap-guesser.
+	(ido-file-internal, ido-read-file-name, ido-read-directory-name):
+	Let bind minibuffer-completing-file-name to t.
+
+2005-07-15  Juanma Barranquero  <lekktu@gmail.com>
+
+	* startup.el (site-run-file, keyboard-type): Doc fixes.
+	(command-line): Check for "--basic-display" argument; also for
+	"--quick", not "--bare-bones" (which was renamed).
+	(fancy-splash-text): Add missing item "Getting New Versions".
+	(normal-splash-screen): Fix typos and improve consistency with
+	`fancy-splash-text'.  Update copyright year.
+
+	* hexl.el (hexl-mode-map): Recognize also `ehelp-command' as a
+	valid binding for `help-char'.
+
+	* emacs-lisp/derived.el (derived-mode-hook-name): Doc fix.
+
+2005-07-14  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* term.el (term-mode): Disable cua-mode for term buffers.
+
+2005-07-14  Juanma Barranquero  <lekktu@gmail.com>
+
+	* add-log.el (add-log-mailing-address, change-log-merge):
+	Doc fixes.
+	(change-log-get-method-definition): Fix typo in docstring.
+
+2005-07-14  Kim F. Storm  <storm@cua.dk>
+
+	* emulation/cua-base.el:
+	(cua--pre-command-handler-1, cua--pre-command-handler)
+	(cua--post-command-handler-1, cua--post-command-handler):
+	Split in two.  Check (buffer local) value of cua-mode.
+	(cua-selection-mode): New command.
+
 2005-07-13  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* custom.el (custom-initialize-safe-set)
@@ -12,8 +607,8 @@
 	* startup.el (command-line): Use `custom-reevaluate-setting' again
 	for tooltip-mode.
 
-	* emacs-lisp/easy-mmode.el (define-minor-mode): Do not override
-	explicitly specified :initialize keyword.
+	* emacs-lisp/easy-mmode.el (define-minor-mode): Avoid constructing
+	a defcustom with two :initialize keywords.
 
 2005-07-13  Juanma Barranquero  <lekktu@gmail.com>
 
@@ -24,7 +619,7 @@
 	(allout-insert-latex-header, allout-insert-latex-trailer)
 	(allout-latex-verbatim-quote-curr-line, allout-latexify-exposed)
 	(allout-latex-verb-quote): Fix typos in docstrings.
-	(allout-enwrap-isearch, regexp-sans-escapes): Doc fix.
+	(allout-enwrap-isearch, regexp-sans-escapes): Doc fixes.
 	(allout-unprotected, allout-prefix-data):
 	Improve argument/docstring consistency.
 	(allout-chart-subtree): Fix argument spec.
@@ -42,7 +637,7 @@
 	(whitespace-check-indent-whitespace)
 	(whitespace-check-ateol-whitespace, whitespace-abort-on-error)
 	(whitespace-modes): Fix typos in docstrings.
-	(defgroup, defcustom): Doc fix.
+	(defgroup, defcustom): Doc fixes.
 
 	* winner.el (winner-mode, winner-boring-buffers)
 	(winner-pending-undo-ring): Doc fixes.
@@ -335,7 +930,7 @@
 
 2005-07-07  Jay Belanger  <belanger@truman.edu>
 
-	* calc/calc-units.el (math-apply-units):  Change the places in
+	* calc/calc-units.el (math-apply-units): Change the places in
 	which units are simplified.
 
 2005-07-07  Luc Teirlinck  <teirllm@auburn.edu>
@@ -6404,7 +6999,8 @@
 	* textmodes/refbib.el, textmodes/refer.el, textmodes/reftex-cite.el
 	* textmodes/reftex-index.el, textmodes/reftex-parse.el
 	* textmodes/reftex-ref.el, textmodes/reftex-vars.el
-	* textmodes/reftex.el, textmodes/org.el: Replace `illegal' with `invalid'.
+	* textmodes/reftex.el, textmodes/org.el:
+	Replace `illegal' with `invalid'.
 
 2005-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 
@@ -8637,7 +9233,7 @@
 	* textmodes/org.el (org-set-regexps-and-options): Rename from
 	`org-set-regexps'.  Added checking for STARTUP keyword.
 	(org-get-current-options): Add STARTUP options.
-	(org-table-insert-row): Mode mode intelligent about when
+	(org-table-insert-row): Make mode intelligent about when
 	realignment is needed.
 	(org-self-insert-command, org-delete-backward-char, org-delete-char):
 	New commands.
@@ -11831,7 +12427,7 @@
 
 	* simple.el (line-move-invisible-p): Rename from line-move-invisible.
 	(line-move): New args NOERROR and TO-END.
-	Return t if if succeed in moving specified number of lines.
+	Return t if succeed in moving specified number of lines.
 	(move-end-of-line): New function.
 
 	* simple.el (beginning-of-buffer-other-window): Use with-no-warnings.
@@ -14554,7 +15150,7 @@
 2004-08-16  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* calendar/time-date.el (time-to-number-of-days): New function.
-	Imported from from Gnus.
+	Imported from Gnus.
 
 2004-07-22  Kim F. Storm  <storm@cua.dk>
 
@@ -16115,7 +16711,7 @@
 2004-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* files.el (auto-save-file-name-transforms): Make sure ange-ftp temp
-	files files don't contain an accidental additional /.
+	files don't contain an accidental additional /.
 
 	* textmodes/tex-mode.el (tex-compilation-parse-errors): Save excursion
 	in source buffer.
@@ -22537,7 +23133,7 @@
 
 	* menu-bar.el (menu-bar-options-menu): Supply a body for the
 	[save-place] binding in the Options menu.  Have it require
-	'saveplace' and then toggle the variable manually, to avoid an an
+	'saveplace' and then toggle the variable manually, to avoid an
 	unbound variable error.  Thanks to <Sebastien.Kirche@sage.com>
 	for the bug report.
 
--- a/lisp/abbrev.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/abbrev.el	Fri Jul 22 08:27:27 2005 +0000
@@ -281,7 +281,7 @@
 			      name (abbrev-expansion name table))))
 	(define-abbrev table (downcase name) exp))))
 
-(defun inverse-add-mode-abbrev (arg)
+(defun inverse-add-mode-abbrev (n)
   "Define last word before point as a mode-specific abbrev.
 With prefix argument N, defines the Nth word before point.
 This command uses the minibuffer to read the expansion.
@@ -292,15 +292,15 @@
        global-abbrev-table
      (or local-abbrev-table
 	 (error "No per-mode abbrev table")))
-   "Mode" arg))
+   "Mode" n))
 
-(defun inverse-add-global-abbrev (arg)
+(defun inverse-add-global-abbrev (n)
   "Define last word before point as a global (mode-independent) abbrev.
 With prefix argument N, defines the Nth word before point.
 This command uses the minibuffer to read the expansion.
 Expands the abbreviation after defining it."
   (interactive "p")
-  (inverse-add-abbrev global-abbrev-table "Global" arg))
+  (inverse-add-abbrev global-abbrev-table "Global" n))
 
 (defun inverse-add-abbrev (table type arg)
   (let (name exp start end)
@@ -338,9 +338,8 @@
 
 (defun expand-region-abbrevs (start end &optional noquery)
   "For abbrev occurrence in the region, offer to expand it.
-The user is asked to type y or n for each occurrence.
-A prefix argument means don't query; expand all abbrevs.
-If called from a Lisp program, arguments are START END &optional NOQUERY."
+The user is asked to type `y' or `n' for each occurrence.
+A prefix argument means don't query; expand all abbrevs."
   (interactive "r\nP")
   (save-excursion
     (goto-char start)
--- a/lisp/add-log.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/add-log.el	Fri Jul 22 08:27:27 2005 +0000
@@ -70,7 +70,7 @@
 
 ;;;###autoload
 (defcustom add-log-mailing-address nil
-  "*Electronic mail addresses of user, for inclusion in ChangeLog headers.
+  "*Email addresses of user, for inclusion in ChangeLog headers.
 This defaults to the value of `user-mail-address'.  In addition to
 being a simple string, this value can also be a list.  All elements
 will be recognized as referring to the same user; when creating a new
@@ -976,7 +976,7 @@
   (goto-char (match-end 0)))
 
 (defun change-log-get-method-definition ()
-"For objective C, return the method name if we are in a method."
+"For Objective C, return the method name if we are in a method."
   (let ((change-log-get-method-definition-md "["))
     (save-excursion
       (if (re-search-backward "^@implementation\\s-*\\([A-Za-z_]*\\)" nil t)
@@ -1022,7 +1022,7 @@
 
 ;;;###autoload
 (defun change-log-merge (other-log)
-  "Merge the contents of ChangeLog file OTHER-LOG with this buffer.
+  "Merge the contents of change log file OTHER-LOG with this buffer.
 Both must be found in Change Log mode (since the merging depends on
 the appropriate motion commands).  OTHER-LOG can be either a file name
 or a buffer.
--- a/lisp/allout.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/allout.el	Fri Jul 22 08:27:27 2005 +0000
@@ -870,13 +870,6 @@
 (defvar allout-isearch-prior-pos nil
   "Cue for isearch-dynamic-exposure tracking, used by `allout-isearch-expose'.")
 (make-variable-buffer-local 'allout-isearch-prior-pos)
-;;;_   = allout-isearch-did-quit
-(defvar allout-isearch-did-quit nil
-  "Distinguishes isearch conclusion and cancellation.
-
-Maintained by `allout-isearch-abort' \(which is wrapped around the real
-isearch-abort), and monitored by `allout-isearch-expose' for action.")
-(make-variable-buffer-local 'allout-isearch-did-quit)
 ;;;_   = allout-override-protect nil
 (defvar allout-override-protect nil
   "Used in `allout-mode' for regulate of concealed-text protection mechanism.
@@ -1154,7 +1147,7 @@
 
 HEADER:	The first line of a topic, include the topic PREFIX and header
 	text.
-PREFIX: The leading text of a topic which which distinguishes it from
+PREFIX: The leading text of a topic which distinguishes it from
 	normal text.  It has a strict form, which consists of a
 	prefix-lead string, padding, and a bullet.  The bullet may be
 	followed by a number, indicating the ordinal number of the
@@ -1343,8 +1336,7 @@
       (if allout-layout
 	  (setq do-layout t))
 
-      (if (and allout-isearch-dynamic-expose
-	       (not (fboundp 'allout-real-isearch-abort)))
+      (if allout-isearch-dynamic-expose
 	  (allout-enwrap-isearch))
 
       (run-hooks 'allout-mode-hook)
@@ -2226,8 +2218,7 @@
 		      (if rehide-place (goto-char rehide-place))
 		      (allout-hide-current-entry-completely))
 		  (allout-hide-current-entry))
-		(error (concat
-			"Change within concealed region prevented.")))))))
+		(error "Change within concealed region prevented"))))))
     )	; if
   )	; defun
 ;;;_   = allout-post-goto-bullet
@@ -2325,9 +2316,7 @@
 	(let* ((this-key-num (cond
 			      ((numberp last-command-char)
 			       last-command-char)
-			      ;; XXX Only XEmacs has characterp.
-			      ((and (fboundp 'characterp)
-				    (characterp last-command-char))
+			      ((fboundp 'char-to-int)
 			       (char-to-int last-command-char))
 			      (t 0)))
 	       mapped-binding)
@@ -2363,7 +2352,7 @@
 
 Called as part of `allout-post-command-business'."
 
-  (let ((isearching (and (boundp 'isearch-mode) isearch-mode)))
+  (let ((isearching isearch-mode))
     (cond ((and isearching (not allout-pre-was-isearching))
 	   (allout-isearch-expose 'start))
 	  ((and isearching allout-pre-was-isearching)
@@ -2371,8 +2360,7 @@
 	  ((and (not isearching) allout-pre-was-isearching)
 	   (allout-isearch-expose 'final))
 	  ;; Not and wasn't isearching:
-	  (t (setq allout-isearch-prior-pos nil)
-	     (setq allout-isearch-did-quit nil)))))
+	  (t (setq allout-isearch-prior-pos nil)))))
 ;;;_   = allout-isearch-was-font-lock
 (defvar allout-isearch-was-font-lock
   (and (boundp 'font-lock-mode) font-lock-mode))
@@ -2414,51 +2402,16 @@
       (setq allout-isearch-prior-pos nil)
     (if (not (eq mode 'final))
 	(setq allout-isearch-prior-pos (cons (point) (allout-show-entry)))
-      (if allout-isearch-did-quit
+      (if isearch-mode-end-hook-quit
 	  nil
 	(setq allout-isearch-prior-pos nil)
-	(allout-show-children))))
-  (setq allout-isearch-did-quit nil))
+	(allout-show-children)))))
 ;;;_   > allout-enwrap-isearch ()
 (defun allout-enwrap-isearch ()
   "Impose `isearch-abort' wrapper for dynamic exposure in isearch.
 
 The function checks to ensure that the rebinding is done only once."
-
-  (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification)
-  (if (fboundp 'allout-real-isearch-abort)
-      ;;
-      nil
-                                        ; Ensure load of isearch-mode:
-    (if (or (and (fboundp 'isearch-mode)
-                 (fboundp 'isearch-abort))
-            (condition-case error
-                (load-library "isearch-mode")
-              ('file-error (message
-			    "Skipping isearch-mode provisions - %s '%s'"
-			    (car (cdr error))
-			    (car (cdr (cdr error))))
-			   (sit-for 1)
-			   ;; Inhibit subsequent tries and return nil:
-			   (setq allout-isearch-dynamic-expose nil))))
-        ;; Isearch-mode loaded, encapsulate specific entry points for
-        ;; outline dynamic-exposure business:
-        (progn
-	  ;; stash crucial isearch-mode funcs under known, private
-	  ;; names, then register wrapper functions under the old
-	  ;; names, in their stead:
-          (fset 'allout-real-isearch-abort (symbol-function 'isearch-abort))
-          (fset 'isearch-abort 'allout-isearch-abort)))))
-;;;_   > allout-isearch-abort ()
-(defun allout-isearch-abort ()
-  "Wrapper for `allout-real-isearch-abort' \(which see), to register
-actual quits."
-  (interactive)
-  (setq allout-isearch-did-quit nil)
-  (condition-case what
-      (allout-real-isearch-abort)
-    ('quit (setq allout-isearch-did-quit t)
-	  (signal 'quit nil))))
+  (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification))
 
 ;;; Prevent unnecessary font-lock while isearching!
 (defvar isearch-was-font-locking nil)
@@ -3472,9 +3425,9 @@
   (interactive)
   (if (not allout-file-xref-bullet)
       (error
-       "outline cross references disabled - no `allout-file-xref-bullet'")
+       "Outline cross references disabled - no `allout-file-xref-bullet'")
     (if (not (string= (allout-current-bullet) allout-file-xref-bullet))
-        (error "current heading lacks cross-reference bullet `%s'"
+        (error "Current heading lacks cross-reference bullet `%s'"
                allout-file-xref-bullet)
       (let (file-name)
         (save-excursion
--- a/lisp/arc-mode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/arc-mode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -131,7 +131,7 @@
   (make-temp-name
    (expand-file-name (if (eq system-type 'ms-dos) "ar" "archive.tmp")
 		     temporary-file-directory))
-  "Directory for temporary files made by arc-mode.el."
+  "Directory for temporary files made by `arc-mode.el'."
   :type 'directory
   :group 'archive)
 
@@ -481,9 +481,9 @@
   (intern (concat "archive-" (symbol-name archive-subtype) "-" suffix)))
 
 (defun archive-l-e (str &optional len)
-  "Convert little endian string/vector to integer.
-Alternatively, first argument may be a buffer position in the current buffer
-in which case a second argument, length, should be supplied."
+  "Convert little endian string/vector STR to integer.
+Alternatively, STR may be a buffer position in the current buffer
+in which case a second argument, length LEN, should be supplied."
   (if (stringp str)
       (setq len (length str))
     (setq str (buffer-substring str (+ str len))))
@@ -584,7 +584,7 @@
     (format "%02d:%02d:%02d" hour minute second)))
 
 (defun archive-unixdate (low high)
-  "Stringify unix (LOW HIGH) date."
+  "Stringify Unix (LOW HIGH) date."
   (let ((str (current-time-string (cons high low))))
     (format "%s-%s-%s"
 	    (substring str 8 10)
@@ -592,7 +592,7 @@
 	    (substring str 20 24))))
 
 (defun archive-unixtime (low high)
-  "Stringify unix (LOW HIGH) time."
+  "Stringify Unix (LOW HIGH) time."
   (let ((str (current-time-string (cons high low))))
     (substring str 11 19)))
 
@@ -604,7 +604,7 @@
 
 (defun archive-get-descr (&optional noerror)
   "Return the descriptor vector for file at point.
-Does not signal an error if optional second argument NOERROR is non-nil."
+Does not signal an error if optional argument NOERROR is non-nil."
   (let ((no (archive-get-lineno)))
     (if (and (>= (point) archive-file-list-start)
              (< no (length archive-files)))
@@ -783,7 +783,7 @@
 
 (defun archive-alternate-display ()
   "Toggle alternative display.
-To avoid very long lines some archive mode don't show all information.
+To avoid very long lines archive mode does not show all information.
 This function changes the set of information shown for each files."
   (interactive)
   (setq archive-alternate-display (not archive-alternate-display))
@@ -1184,13 +1184,13 @@
   "In archive mode, un-mark this member if it is marked to be deleted.
 With a prefix argument, un-mark that many files forward."
   (interactive "p")
-  (archive-flag-deleted p ? ))
+  (archive-flag-deleted p ?\s))
 
 (defun archive-unflag-backwards (p)
   "In archive mode, un-mark this member if it is marked to be deleted.
 With a prefix argument, un-mark that many members backward."
   (interactive "p")
-  (archive-flag-deleted (- p) ? ))
+  (archive-flag-deleted (- p) ?\s))
 
 (defun archive-unmark-all-files ()
   "Remove all marks."
@@ -1200,8 +1200,8 @@
     (save-excursion
       (goto-char archive-file-list-start)
       (while (< (point) archive-file-list-end)
-        (or (= (following-char) ? )
-            (progn (delete-char 1) (insert ? )))
+        (or (= (following-char) ?\s)
+            (progn (delete-char 1) (insert ?\s)))
         (forward-line 1)))
     (restore-buffer-modified-p modified)))
 
@@ -1239,7 +1239,7 @@
 (defun archive-chmod-entry (new-mode)
   "Change the protection bits associated with all marked or this member.
 The new protection bits can either be specified as an octal number or
-as a relative change like \"g+rw\" as for chmod(2)"
+as a relative change like \"g+rw\" as for chmod(2)."
   (interactive "sNew mode (octal or relative): ")
   (if archive-read-only (error "Archive is read-only"))
   (let ((func (archive-name "chmod-entry")))
--- a/lisp/array.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/array.el	Fri Jul 22 08:27:27 2005 +0000
@@ -638,7 +638,7 @@
   "Reconfigure the state of `array-rows-numbered' and `array-columns-per-line'.
 NEW-COLUMNS-PER-LINE is the desired value of `array-columns-per-line' and
 NEW-ROWS-NUMBERED (a character, either ?y or ?n) is the desired value
-of array-rows-numbered."
+of `array-rows-numbered'."
   (interactive "nColumns per line: \ncRows numbered? (y or n) ")
   ;; Check on new-columns-per-line
   (let ((check t))
@@ -717,7 +717,7 @@
     (let ((inhibit-quit t))
       (set-buffer main-buffer)
       (erase-buffer)
-      (insert-buffer temp-buffer)
+      (insert-buffer-substring temp-buffer)
       ;; Update local variables.
       (setq array-columns-per-line new-columns-per-line)
       (setq array-rows-numbered new-rows-numbered)
@@ -767,7 +767,7 @@
 	  (move-to-column column)))))
 
 (defun untabify-backward ()
-  "Untabify the preceding tab."
+  "Untabify the preceding TAB."
   (save-excursion
     (let ((start (point)))
       (backward-char 1)
@@ -817,7 +817,7 @@
   The array MUST reside at the top of the buffer.
 
   TABs are not respected, and may be converted into spaces at any time.
-Setting the variable 'array-respect-tabs to non-nil will prevent TAB conversion,
+Setting the variable `array-respect-tabs' to non-nil will prevent TAB conversion,
 but will cause many functions to give errors if they encounter one.
 
   Upon entering array mode, you will be prompted for the values of
--- a/lisp/buff-menu.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/buff-menu.el	Fri Jul 22 08:27:27 2005 +0000
@@ -305,7 +305,7 @@
 
 (defun Buffer-menu-unmark (&optional backup)
   "Cancel all requested operations on buffer on this line and move down.
-Optional ARG means move up."
+Optional prefix arg means move up."
   (interactive "P")
   (when (Buffer-menu-no-header)
     (let* ((buf (Buffer-menu-buffer t))
@@ -369,10 +369,10 @@
   (save-excursion
    (beginning-of-line)
    (forward-char 2)
-   (if (= (char-after) (if arg ?  ?*))
+   (if (= (char-after) (if arg ?\s ?*))
        (let ((buffer-read-only nil))
 	 (delete-char 1)
-	 (insert (if arg ?* ? ))))))
+	 (insert (if arg ?* ?\s))))))
 
 (defun Buffer-menu-beginning ()
   (goto-char (point-min))
@@ -392,7 +392,7 @@
 	  (setq modp (buffer-modified-p)))
 	(let ((buffer-read-only nil))
 	  (delete-char -1)
-	  (insert (if modp ?* ? ))))))
+	  (insert (if modp ?* ?\s))))))
   (save-excursion
     (Buffer-menu-beginning)
     (let ((buff-menu-buffer (current-buffer))
@@ -405,7 +405,7 @@
 	      (save-excursion (kill-buffer buf)))
 	  (if (and buf (buffer-name buf))
 	    (progn (delete-char 1)
-		   (insert ? ))
+		   (insert ?\s))
 	  (delete-region (point) (progn (forward-line 1) (point)))
 	    (unless (bobp)
 	      (forward-char -1))))))))
@@ -425,7 +425,7 @@
       (setq tem (Buffer-menu-buffer t))
       (let ((buffer-read-only nil))
 	(delete-char -1)
-	(insert ?\ ))
+	(insert ?\s))
       (or (eq tem buff) (memq tem others) (setq others (cons tem others))))
     (setq others (nreverse others)
 	  tem (/ (1- (frame-height)) (1+ (length others))))
@@ -521,7 +521,7 @@
     (save-excursion
       (set-buffer (Buffer-menu-buffer t))
       (vc-toggle-read-only)
-      (setq char (if buffer-read-only ?% ? )))
+      (setq char (if buffer-read-only ?% ?\s)))
     (save-excursion
       (beginning-of-line)
       (forward-char 1)
@@ -594,7 +594,7 @@
 	  (make-string (- Buffer-menu-buffer+size-width
 			  (length name)
 			  (length size))
-		       ? )
+		       ?\s)
 	  size))
 
 (defun Buffer-menu-sort (column)
@@ -677,7 +677,7 @@
 For more information, see the function `buffer-menu'."
   (let* ((old-buffer (current-buffer))
 	 (standard-output standard-output)
-	 (mode-end (make-string (- Buffer-menu-mode-width 2) ? ))
+	 (mode-end (make-string (- Buffer-menu-mode-width 2) ?\s))
 	 (header (concat "CRM "
 			 (Buffer-menu-buffer+size
 			  (Buffer-menu-make-sort-button "Buffer" 2)
@@ -712,7 +712,7 @@
 	  (insert header
 		  (apply 'string
 			 (mapcar (lambda (c)
-				   (if (memq c '(?\n ?\ )) c underline))
+				   (if (memq c '(?\n ?\s)) c underline))
 				 header)))))
       ;; Collect info for every buffer we're interested in.
       (dolist (buffer (or buffer-list (buffer-list)))
@@ -732,17 +732,17 @@
 				      (format-mode-line mode-line-process
 							nil nil buffer))))
 		    (bits (string
-			   (if (eq buffer old-buffer) ?. ?\ )
+			   (if (eq buffer old-buffer) ?. ?\s)
 			   ;; Handle readonly status.  The output buffer
 			   ;; is special cased to appear readonly; it is
 			   ;; actually made so at a later date.
 			   (if (or (eq buffer standard-output)
 				   buffer-read-only)
-			       ?% ?\ )
+			       ?% ?\s)
 			   ;; Identify modified buffers.
-			   (if (buffer-modified-p) ?* ?\ )
+			   (if (buffer-modified-p) ?* ?\s)
 			   ;; Space separator.
-			   ?\ )))
+			   ?\s)))
 		(unless file
 		  ;; No visited file.  Check local value of
 		  ;; list-buffers-directory.
--- a/lisp/calc/README	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/README	Fri Jul 22 08:27:27 2005 +0000
@@ -2,7 +2,8 @@
 This directory contains Calc, an advanced desk calculator for GNU
 Emacs.
 
-"Calc"  Copyright 1990, 1991, 1992, 1993, 2001, 2005  Free Software Foundation, Inc.
+"Calc"  Copyright 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, 
+   2005  Free Software Foundation, Inc.
 
 Written by:
 	Dave Gillespie
--- a/lisp/calc/calc-aent.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-aent.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-aent.el --- algebraic entry functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-alg.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-alg.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-alg.el --- algebraic functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger  <belanger@truman.edu>
--- a/lisp/calc/calc-arith.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-arith.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-arith.el --- arithmetic functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-bin.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-bin.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-bin.el --- binary functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-comb.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-comb.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-comb.el --- combinatoric functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-cplx.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-cplx.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-cplx.el --- Complex number functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-embed.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-embed.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-embed.el --- embed Calc in a buffer
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-ext.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-ext.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-ext.el --- various extension functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-fin.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-fin.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-fin.el --- financial functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-forms.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-forms.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,7 +1,7 @@
 ;;; calc-forms.el --- data format conversion functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-frac.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-frac.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-frac.el --- fraction functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-funcs.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-funcs.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-funcs.el --- well-known functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-graph.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-graph.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-graph.el --- graph output functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-help.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-help.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,7 +1,7 @@
 ;;; calc-help.el --- help display functions for Calc,
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
-;;           Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005  Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-incom.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-incom.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-incom.el --- complex data type input functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-keypd.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-keypd.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-keypd.el --- mouse-capable keypad input for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-lang.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-lang.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-lang.el --- calc language functions
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-macs.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-macs.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-macs.el --- important macros for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-map.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-map.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-map.el --- higher-order functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-math.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-math.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-math.el --- mathematical functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-misc.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-misc.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-misc.el --- miscellaneous functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-mode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-mode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-mode.el --- calculator modes for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-mtx.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-mtx.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-mtx.el --- matrix functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-poly.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-poly.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-poly.el --- polynomial functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-prog.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-prog.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-prog.el --- user programmability functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-rewr.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-rewr.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-rewr.el --- rewriting functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-rules.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-rules.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-rules.el --- rules for simplifying algebraic expressions in Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-sel.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-sel.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,7 +1,7 @@
 ;;; calc-sel.el --- data selection functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-stat.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-stat.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-stat.el --- statistical functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-store.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-store.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-store.el --- value storage functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-stuff.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-stuff.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-stuff.el --- miscellaneous functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-trail.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-trail.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-trail.el --- functions for manipulating the Calc "trail"
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-undo.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-undo.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-undo.el --- undo functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-units.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-units.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-units.el --- unit conversion functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-vec.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-vec.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-vec.el --- vector functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc-yank.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc-yank.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calc-yank.el --- kill-ring functionality for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calc.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calc.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,12 +1,12 @@
 ;;; calc.el --- the GNU Emacs calculator
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 
-;;           Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
 ;; Keywords: convenience, extensions
-;; Version: 2.02g
+;; Version: 2.1
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/calc/calcalg2.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calcalg2.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calcalg2.el --- more algebraic functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calcalg3.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calcalg3.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calcalg3.el --- more algebraic functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calccomp.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calccomp.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calccomp.el --- composition functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calc/calcsel2.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calc/calcsel2.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,7 @@
 ;;; calcsel2.el --- selection functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
--- a/lisp/calculator.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calculator.el	Fri Jul 22 08:27:27 2005 +0000
@@ -4,7 +4,7 @@
 
 ;; Author: Eli Barzilay <eli@barzilay.org>
 ;; Keywords: tools, convenience
-;; Time-stamp: <26 May 2005, 14:32:34, Lute Kamstra, pijl>
+;; Time-stamp: <2005-07-18 17:45:34 juri>
 
 ;; This file is part of GNU Emacs.
 
@@ -1277,12 +1277,6 @@
             (if Dbound (fset 'D Dsave) (fmakunbound 'D)))))
     (error 0)))
 
-(eval-when-compile ; silence the compiler
-  (or (fboundp 'event-key)
-      (defun event-key (&rest _) nil))
-  (or (fboundp 'key-press-event-p)
-      (defun key-press-event-p (&rest _) nil)))
-
 ;;;---------------------------------------------------------------------
 ;;; Input interaction
 
@@ -1301,8 +1295,9 @@
           (setq k (aref inp i))
           ;; if Emacs will someday have a event-key, then this would
           ;; probably be modified anyway
-          (and (fboundp 'event-key) (key-press-event-p k)
-               (event-key k) (setq k (event-key k)))
+          (and (if (fboundp 'key-press-event-p) (key-press-event-p k))
+	       (if (fboundp 'event-key)
+		   (and (event-key k) (setq k (event-key k)))))
           ;; assume all symbols are translatable with an ascii-character
           (and (symbolp k)
                (setq k (or (get k 'ascii-character) ? )))
@@ -1599,7 +1594,7 @@
         (calculator-displayers
          (if calculator-copy-displayer nil calculator-displayers)))
     (calculator-enter)
-    ;; remove trailing spaces and and an index
+    ;; remove trailing spaces and an index
     (let ((s (cdr calculator-stack-display)))
       (and s
            (if (string-match "^\\([^ ]+\\) *\\(\\[[0-9/]+\\]\\)? *$" s)
--- a/lisp/calendar/calendar.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calendar/calendar.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1818,7 +1818,7 @@
   t)
 
 (autoload 'calendar-goto-hebrew-date "cal-hebrew"
-  "Move cursor to Hebrew date date."
+  "Move cursor to Hebrew date."
   t)
 
 (autoload 'calendar-print-hebrew-date "cal-hebrew"
@@ -1830,7 +1830,7 @@
   t)
 
 (autoload 'calendar-goto-coptic-date "cal-coptic"
-   "Move cursor to Coptic date date."
+   "Move cursor to Coptic date."
    t)
 
 (autoload 'calendar-print-coptic-date "cal-coptic"
@@ -1842,7 +1842,7 @@
   t)
 
 (autoload 'calendar-goto-ethiopic-date "cal-coptic"
-   "Move cursor to Ethiopic date date."
+   "Move cursor to Ethiopic date."
    t)
 
 (autoload 'calendar-print-ethiopic-date "cal-coptic"
@@ -1854,7 +1854,7 @@
   t)
 
 (autoload 'calendar-goto-persian-date "cal-persia"
-   "Move cursor to Persian date date."
+   "Move cursor to Persian date."
    t)
 
 (autoload 'calendar-print-persian-date "cal-persia"
--- a/lisp/calendar/icalendar.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/calendar/icalendar.el	Fri Jul 22 08:27:27 2005 +0000
@@ -189,7 +189,8 @@
     (save-current-buffer
       (set-buffer unfolded-buffer)
       (erase-buffer)
-      (insert-buffer folded-ical-buffer)
+      (insert-buffer-substring folded-ical-buffer)
+      (goto-char (point-min))
       (while (re-search-forward "\r?\n[ \t]" nil t)
         (replace-match "" nil nil)))
     unfolded-buffer))
--- a/lisp/comint.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/comint.el	Fri Jul 22 08:27:27 2005 +0000
@@ -411,17 +411,15 @@
   "*If non-nil, use `comint-prompt-regexp' to recognize prompts.
 If nil, then program output and user-input are given different `field'
 properties, which Emacs commands can use to distinguish them (in
-particular, common movement commands such as begining-of-line respect
-field boundaries in a natural way)."
+particular, common movement commands such as `beginning-of-line'
+respect field boundaries in a natural way)."
   :type 'boolean
   :group 'comint)
 
 ;; Autoload is necessary for Custom to recognize old alias.
 ;;;###autoload
-(defvaralias 'comint-use-prompt-regexp-instead-of-fields
-  'comint-use-prompt-regexp)
-(make-obsolete-variable 'comint-use-prompt-regexp-instead-of-fields
-			'comint-use-prompt-regexp "22.1")
+(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
+    'comint-use-prompt-regexp "22.1")
 
 (defcustom comint-mode-hook nil
   "Hook run upon entry to `comint-mode'.
@@ -1079,14 +1077,14 @@
     (if (string-match regexp (ring-ref comint-input-ring n))
 	n)))
 
-(defun comint-previous-matching-input (regexp arg)
+(defun comint-previous-matching-input (regexp n)
   "Search backwards through input history for match for REGEXP.
 \(Previous history elements are earlier commands.)
 With prefix argument N, search for Nth previous match.
 If N is negative, find the next or Nth next match."
   (interactive (comint-regexp-arg "Previous input matching (regexp): "))
-  (setq arg (comint-search-arg arg))
-  (let ((pos (comint-previous-matching-input-string-position regexp arg)))
+  (setq n (comint-search-arg n))
+  (let ((pos (comint-previous-matching-input-string-position regexp n)))
     ;; Has a match been found?
     (if (null pos)
 	(error "Not found")
@@ -1099,15 +1097,15 @@
        (point))
       (insert (ring-ref comint-input-ring pos)))))
 
-(defun comint-next-matching-input (regexp arg)
+(defun comint-next-matching-input (regexp n)
   "Search forwards through input history for match for REGEXP.
 \(Later history elements are more recent commands.)
 With prefix argument N, search for Nth following match.
 If N is negative, find the previous or Nth previous match."
   (interactive (comint-regexp-arg "Next input matching (regexp): "))
-  (comint-previous-matching-input regexp (- arg)))
-
-(defun comint-previous-matching-input-from-input (arg)
+  (comint-previous-matching-input regexp (- n)))
+
+(defun comint-previous-matching-input-from-input (n)
   "Search backwards through input history for match for current input.
 \(Previous history elements are earlier commands.)
 With prefix argument N, search for Nth previous match.
@@ -1124,15 +1122,15 @@
 	    comint-input-ring-index nil))
   (comint-previous-matching-input
    (concat "^" (regexp-quote comint-matching-input-from-input-string))
-   arg))
-
-(defun comint-next-matching-input-from-input (arg)
+   n))
+
+(defun comint-next-matching-input-from-input (n)
   "Search forwards through input history for match for current input.
 \(Following history elements are more recent commands.)
 With prefix argument N, search for Nth following match.
 If N is negative, search backwards for the -Nth previous match."
   (interactive "p")
-  (comint-previous-matching-input-from-input (- arg)))
+  (comint-previous-matching-input-from-input (- n)))
 
 
 (defun comint-replace-by-expanded-history (&optional silent start)
@@ -1434,14 +1432,14 @@
 	return the current line with any initial string matching the
 	regexp `comint-prompt-regexp' removed.
     `comint-input-filter-functions' monitors input for \"cd\", \"pushd\", and
-	\"popd\" commands. When it sees one, it cd's the buffer.
-    comint-input-filter is the default: returns t if the input isn't all white
+	\"popd\" commands.  When it sees one, it cd's the buffer.
+    `comint-input-filter' is the default: returns t if the input isn't all white
 	space.
 
 If the Comint is Lucid Common Lisp,
-    comint-get-old-input snarfs the sexp ending at point.
-    comint-input-filter-functions does nothing.
-    comint-input-filter returns nil if the input matches input-filter-regexp,
+    `comint-get-old-input' snarfs the sexp ending at point.
+    `comint-input-filter-functions' does nothing.
+    `comint-input-filter' returns nil if the input matches input-filter-regexp,
 	which matches (1) all whitespace (2) :a, :c, etc.
 
 Similarly for Soar, Scheme, etc."
@@ -2002,8 +2000,8 @@
 	(delete-region pmark (point))))
     ;; Output message and put back prompt
     (comint-output-filter proc replacement)))
-(defalias 'comint-kill-output 'comint-delete-output)
-(make-obsolete 'comint-kill-output 'comint-delete-output "21.1")
+(define-obsolete-function-alias 'comint-kill-output
+    'comint-delete-output "21.1")
 
 (defun comint-write-output (filename &optional append mustbenew)
   "Write output from interpreter since last input to FILENAME.
@@ -2169,7 +2167,7 @@
       (goto-char pos))))
 
 
-(defun comint-forward-matching-input (regexp arg)
+(defun comint-forward-matching-input (regexp n)
   "Search forward through buffer for input fields that match REGEXP.
 If `comint-use-prompt-regexp' is non-nil, then input fields are identified
 by lines that match `comint-prompt-regexp'.
@@ -2177,7 +2175,7 @@
 With prefix argument N, search for Nth following match.
 If N is negative, find the previous or Nth previous match."
   (interactive (comint-regexp-arg "Forward input matching (regexp): "))
-  (comint-backward-matching-input regexp (- arg)))
+  (comint-backward-matching-input regexp (- n)))
 
 
 (defun comint-next-prompt (n)
@@ -2388,7 +2386,7 @@
 (defun comint-source-default (previous-dir/file source-modes)
   "Compute the defaults for `load-file' and `compile-file' commands.
 
-PREVIOUS-DIR/FILE is a pair (directory . filename) from the last
+PREVIOUS-DIR/FILE is a pair (DIRECTORY . FILENAME) from the last
 source-file processing command, or nil if there hasn't been one yet.
 SOURCE-MODES is a list used to determine what buffers contain source
 files: if the major mode of the buffer is in SOURCE-MODES, it's source.
@@ -2409,7 +2407,7 @@
 the command has been run (PREVIOUS-DIR/FILE is nil), the default directory
 is the cwd, with no default file.  (\"no default file\" = nil)
 
-SOURCE-REGEXP is typically going to be something like (tea-mode)
+SOURCE-MODES is typically going to be something like (tea-mode)
 for T programs, (lisp-mode) for Lisp programs, (soar-mode lisp-mode)
 for Soar programs, etc.
 
@@ -2440,7 +2438,7 @@
 	  (set-buffer old-buffer)))))
 
 (defun comint-extract-string ()
-  "Return string around POINT, or nil."
+  "Return string around point, or nil."
   (let ((syntax (syntax-ppss)))
     (when (nth 3 syntax)
       (condition-case ()
@@ -2460,7 +2458,7 @@
 PROMPT is the prompt string.  PREV-DIR/FILE is the (DIRECTORY . FILE) pair
 from the last source processing command.  SOURCE-MODES is a list of major
 modes used to determine what file buffers contain source files.  (These
-two arguments are used for determining defaults).  If MUSTMATCH-P is true,
+two arguments are used for determining defaults.)  If MUSTMATCH-P is true,
 then the filename reader will only accept a file that exists.
 
 A typical use:
@@ -2618,8 +2616,7 @@
 (defun comint-word (word-chars)
   "Return the word of WORD-CHARS at point, or nil if none is found.
 Word constituents are considered to be those in WORD-CHARS, which is like the
-inside of a \"[...]\" (see `skip-chars-forward'),
-plus all non-ASCII characters."
+inside of a \"[...]\" (see `skip-chars-forward'), plus all non-ASCII characters."
   (save-excursion
     (let ((here (point))
 	  giveup)
--- a/lisp/compare-w.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/compare-w.el	Fri Jul 22 08:27:27 2005 +0000
@@ -56,7 +56,8 @@
 (defcustom compare-ignore-whitespace nil
   "*Non-nil means `compare-windows' ignores whitespace."
   :type 'boolean
-  :group 'compare-w)
+  :group 'compare-w
+  :version "22.1")
 
 (defcustom compare-ignore-case nil
   "*Non-nil means `compare-windows' ignores case differences."
@@ -88,7 +89,8 @@
 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)
+  :group 'compare-w
+  :version "22.1")
 
 (defcustom compare-windows-sync-string-size 32
   "*Size of string from one window that is searched in second window.
@@ -99,7 +101,8 @@
 
 The default value 32 is good for the most cases."
   :type 'integer
-  :group 'compare-w)
+  :group 'compare-w
+  :version "22.1")
 
 (defcustom compare-windows-recenter nil
   "*List of two values, each of which is used as argument of
@@ -109,23 +112,20 @@
 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-w
+  :version "22.1")
 
 (defcustom compare-windows-highlight t
   "*Non-nil means compare-windows highlights the differences."
   :type 'boolean
-  :group 'compare-w)
+  :group 'compare-w
+  :version "22.1")
 
 (defface compare-windows
-  '((((class color) (min-colors 88) (background light))
-     (:background "paleturquoise"))
-    (((class color) (min-colors 88) (background dark))
-     (:background "paleturquoise4"))
-    (((class color))
-     (:background "turquoise3"))
-    (t (:underline t)))
+  '((t :inherit lazy-highlight))
   "Face for highlighting of compare-windows difference regions."
-  :group 'compare-w)
+  :group 'compare-w
+  :version "22.1")
 ;; backward-compatibility alias
 (put 'compare-windows-face 'face-alias 'compare-windows)
 
--- a/lisp/composite.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/composite.el	Fri Jul 22 08:27:27 2005 +0000
@@ -85,7 +85,7 @@
 (defun encode-composition-rule (rule)
   "Encode composition rule RULE into an integer value.
 RULE is a cons of global and new reference point symbols
-\(see reference-point-alist)."
+\(see `reference-point-alist')."
 
   ;; This must be compatible with C macro COMPOSITION_ENCODE_RULE
   ;; defined in composite.h.
@@ -368,11 +368,11 @@
 where N is the number of characters before point to compose,
 COMPONENTS, if non-nil, is the same as the argument to `compose-region'
 \(which see).  If it is nil, `compose-chars-after' is called,
-and that function find a proper rule to compose the target characters.
+and that function finds a proper rule to compose the target characters.
 This function is intended to be used from input methods.
 The global keymap binds special event `compose-last-chars' to this
 function.  Input method may generate an event (compose-last-chars N COMPONENTS)
-after a sequence character events."
+after a sequence of character events."
   (interactive "e")
   (let ((chars (nth 1 args)))
     (if (and (numberp chars)
--- a/lisp/cus-edit.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/cus-edit.el	Fri Jul 22 08:27:27 2005 +0000
@@ -4228,6 +4228,7 @@
     (suppress-keymap map)
     (define-key map " " 'scroll-up)
     (define-key map "\177" 'scroll-down)
+    (define-key map "\C-c\C-c" 'Custom-set)
     (define-key map "\C-x\C-s" 'Custom-save)
     (define-key map "q" 'Custom-buffer-done)
     (define-key map "u" 'Custom-goto-parent)
@@ -4257,7 +4258,7 @@
     ["Reset to Current" Custom-reset-current t]
     ["Reset to Saved" Custom-reset-saved t]
     ["Reset to Standard Settings" Custom-reset-standard t]
-    ["Info" (Info-goto-node "(emacs)Easy Customization") t]))
+    ["Info" (info "(emacs)Easy Customization") t]))
 
 (defun Custom-goto-parent ()
   "Go to the parent group listed at the top of this buffer.
--- a/lisp/custom.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/custom.el	Fri Jul 22 08:27:27 2005 +0000
@@ -584,7 +584,7 @@
    "Themes that have been defined with `deftheme'.
 The default value is the list (user standard).  The theme `standard'
 contains the Emacs standard settings from the original Lisp files.  The
-theme `user' contains all the the settings the user customized and saved.
+theme `user' contains all the settings the user customized and saved.
 Additional themes declared with the `deftheme' macro will be added to
 the front of this list.")
 
--- a/lisp/descr-text.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/descr-text.el	Fri Jul 22 08:27:27 2005 +0000
@@ -434,7 +434,14 @@
 		 (if (consp key-list)
 		     (list "type"
 			   (mapconcat #'(lambda (x) (concat "\"" x "\""))
-				      key-list " or ")))))
+				      key-list " or ")
+			   "with"
+			   `(widget-create
+			     'link
+			     :notify (lambda (&rest ignore)
+				       (describe-input-method
+					',current-input-method))
+			     ,(format "%s" current-input-method))))))
 	    ("buffer code"
 	     ,(encoded-string-description
 	       (string-as-unibyte (char-to-string char)) nil))
@@ -458,11 +465,7 @@
 		(format "by display table entry [%s] (see below)"
 			(mapconcat
 			 #'(lambda (x)
-			     (if (> (car x) #x7ffff)
-				 (format "?%c<face-id=%s>"
-					 (logand (car x) #x7ffff)
-					 (lsh (car x) -19))
-			       (format "?%c" (car x))))
+			     (format "?%c" (logand (car x) #x7ffff)))
 			 disp-vector " ")))
 	       (composition
 		(let ((from (car composition))
@@ -506,13 +509,16 @@
 	    (when (cadr elt)
 	      (insert (format formatter (car elt)))
 	      (dolist (clm (cdr elt))
-		(when (>= (+ (current-column)
-			     (or (string-match "\n" clm)
-				 (string-width clm)) 1)
-			  (window-width))
-		  (insert "\n")
-		  (indent-to (1+ max-width)))
-		(insert " " clm))
+		(if (eq (car-safe clm) 'widget-create)
+		    (progn (insert " ") (eval clm))
+		  (when (>= (+ (current-column)
+			       (or (string-match "\n" clm)
+				   (string-width clm))
+			       1)
+			    (window-width))
+		    (insert "\n")
+		    (indent-to (1+ max-width)))
+		  (insert " " clm)))
 	      (insert "\n"))))
 
 	(save-excursion
@@ -540,7 +546,21 @@
 			      (format "%s (0x%02X)" (cadr (aref disp-vector i))
 				      (cddr (aref disp-vector i)))
 			    "-- no font --")
-			  "\n ")))
+			  "\n")
+		  (when (> (car (aref disp-vector i)) #x7ffff)
+		    (let* ((face-id (lsh (car (aref disp-vector i)) -19))
+			   (face (car (delq nil (mapcar (lambda (face)
+							  (and (eq (face-id face)
+								   face-id) face))
+							(face-list))))))
+		      (when face
+			(insert (propertize " " 'display '(space :align-to 5))
+				"face: ")
+			(widget-create 'link
+				       :notify `(lambda (&rest ignore)
+						  (describe-face ',face))
+				       (format "%S" face))
+			(insert "\n"))))))
 	    (insert "these terminal codes:\n")
 	    (dotimes (i (length disp-vector))
 	      (insert (car (aref disp-vector i))
@@ -606,7 +626,7 @@
 	(describe-text-mode)))))
 
 (defalias 'describe-char-after 'describe-char)
-(make-obsolete 'describe-char-after 'describe-char "21.5")
+(make-obsolete 'describe-char-after 'describe-char "22.1")
 
 (provide 'descr-text)
 
--- a/lisp/desktop.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/desktop.el	Fri Jul 22 08:27:27 2005 +0000
@@ -106,8 +106,7 @@
   :group 'desktop)
 
 ;; Maintained for backward compatibility
-(defvaralias 'desktop-enable 'desktop-save-mode)
-(make-obsolete-variable 'desktop-enable 'desktop-save-mode)
+(define-obsolete-variable-alias 'desktop-enable 'desktop-save-mode "22.1")
 
 (defcustom desktop-save 'ask-if-new
   "*Specifies whether the desktop should be saved when it is killed.
@@ -120,7 +119,7 @@
    if-exists     -- save if desktop file exists, otherwise don't save.
    nil           -- never save.
 The desktop is never saved when `desktop-save-mode' is nil.
-The variables `desktop-directory' and `desktop-base-file-name'
+The variables `desktop-dirname' and `desktop-base-file-name'
 determine where the desktop is saved."
   :type '(choice
     (const :tag "Always save" t)
@@ -137,7 +136,7 @@
   "Name of file for Emacs desktop, excluding the directory part."
   :type 'file
   :group 'desktop)
-(defvaralias 'desktop-basefilename 'desktop-base-file-name)
+(define-obsolete-variable-alias 'desktop-basefilename 'desktop-base-file-name "22.1")
 
 (defcustom desktop-path '("." "~")
   "List of directories to search for the desktop file.
@@ -200,14 +199,14 @@
     regexp-search-ring-yank-pointer)
   "List of global variables that `desktop-clear' will clear.
 An element may be variable name (a symbol) or a cons cell of the form
-\(VAR . FORM). Symbols are set to nil and for cons cells VAR is set
-to the value obtained by evaluateing FORM."
+\(VAR . FORM).  Symbols are set to nil and for cons cells VAR is set
+to the value obtained by evaluating FORM."
   :type '(repeat (restricted-sexp :match-alternatives (symbolp consp)))
   :group 'desktop
   :version "22.1")
 
 (defcustom desktop-clear-preserve-buffers-regexp
-  "^\\(\\*scratch\\*\\|\\*Messages\\*\\|\\*tramp/.+\\*\\)$"
+  "^\\(\\*scratch\\*\\|\\*Messages\\*\\|\\*server\\*\\|\\*tramp/.+\\*\\)$"
   "Regexp identifying buffers that `desktop-clear' should not delete.
 See also `desktop-clear-preserve-buffers'."
   :type 'regexp
@@ -305,9 +304,9 @@
 DESKTOP-BUFFER-MISC.")
 (make-variable-buffer-local 'desktop-save-buffer)
 (make-obsolete-variable 'desktop-buffer-modes-to-save
-                        'desktop-save-buffer)
+                        'desktop-save-buffer "22.1")
 (make-obsolete-variable 'desktop-buffer-misc-functions
-                        'desktop-save-buffer)
+                        'desktop-save-buffer "22.1")
 
 (defcustom desktop-buffer-mode-handlers
   '((dired-mode . dired-restore-desktop-buffer)
@@ -315,7 +314,7 @@
     (mh-folder-mode . mh-restore-desktop-buffer)
     (Info-mode . Info-restore-desktop-buffer))
   "Alist of major mode specific functions to restore a desktop buffer.
-Functions are called by `desktop-read'. List elements must have the form
+Functions are called by `desktop-read'.  List elements must have the form
 \(MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
 
 Buffers with a major mode not specified here, are restored by the default
@@ -342,7 +341,7 @@
 
 (put 'desktop-buffer-mode-handlers 'risky-local-variable t)
 (make-obsolete-variable 'desktop-buffer-handlers
-                        'desktop-buffer-mode-handlers)
+                        'desktop-buffer-mode-handlers "22.1")
 
 (defcustom desktop-minor-mode-table
   '((auto-fill-function auto-fill-mode)
@@ -399,7 +398,7 @@
            (string-match desktop-clear-preserve-buffers-regexp bufname)
            (member bufname desktop-clear-preserve-buffers)
            ;; Don't kill buffers made for internal purposes.
-           (and (not (equal bufname "")) (eq (aref bufname 0) ?\ ))
+           (and (not (equal bufname "")) (eq (aref bufname 0) ?\s))
            (kill-buffer (car buffers))))
       (setq buffers (cdr buffers))))
   (delete-other-windows))
@@ -432,7 +431,7 @@
     (condition-case err
       (desktop-save desktop-dirname)
       (file-error
-        (unless (yes-or-no-p "Error while saving the desktop. Ignore? ")
+        (unless (yes-or-no-p "Error while saving the desktop.  Ignore? ")
           (signal (car err) (cdr err)))))))
 
 ;; ----------------------------------------------------------------------------
@@ -454,7 +453,7 @@
 QUOTE may be `may' (value may be quoted),
 `must' (values must be quoted), or nil (value may not be quoted)."
   (cond
-   ((or (numberp value) (null value) (eq t value))
+   ((or (numberp value) (null value) (eq t value) (keywordp value))
     (cons 'may (prin1-to-string value)))
    ((stringp value)
     (let ((copy (copy-sequence value)))
@@ -711,7 +710,7 @@
   "Read and process the desktop file in directory DIRNAME.
 Look for a desktop file in DIRNAME, or if DIRNAME is omitted, look in
 directories listed in `desktop-path'.  If a desktop file is found, it
-is processed and `desktop-after-read-hook' is run. If no desktop file
+is processed and `desktop-after-read-hook' is run.  If no desktop file
 is found, clear the desktop and run `desktop-no-desktop-file-hook'.
 This function is a no-op when Emacs is running in batch mode.
 It returns t if a desktop file was loaded, nil otherwise."
@@ -781,7 +780,7 @@
       (progn
 	(load "default" t t)
 	(setq inhibit-default-init t))))
-(make-obsolete 'desktop-load-default 'desktop-save-mode)
+(make-obsolete 'desktop-load-default 'desktop-save-mode "22.1")
 
 ;; ----------------------------------------------------------------------------
 ;;;###autoload
@@ -958,7 +957,7 @@
 			       (cons 'overwrite-mode (car mim)))))
 
 (defun desktop-append-buffer-args (&rest args)
-  "Append ARGS at end of `desktop-buffer-args-list'
+  "Append ARGS at end of `desktop-buffer-args-list'.
 ARGS must be an argument list for `desktop-create-buffer'."
   (setq desktop-buffer-args-list (nconc desktop-buffer-args-list (list args)))
   (unless desktop-lazy-timer
--- a/lisp/diff-mode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/diff-mode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -197,7 +197,7 @@
     (((class color) (min-colors 88) (background dark))
      :background "grey60" :weight bold)
     (((class color) (background light))
-     :foreground "yellow" :weight bold)
+     :foreground "green" :weight bold)
     (((class color) (background dark))
      :foreground "cyan" :weight bold)
     (t :weight bold))			; :height 1.3
@@ -250,6 +250,27 @@
 (put 'diff-changed-face 'face-alias 'diff-changed)
 (defvar diff-changed-face 'diff-changed)
 
+(defface diff-indicator-removed
+  '((t :inherit diff-removed))
+  "`diff-mode' face used to highlight indicator of removed lines (-, <)."
+  :group 'diff-mode
+  :version "22.1")
+(defvar diff-indicator-removed-face 'diff-indicator-removed)
+
+(defface diff-indicator-added
+  '((t :inherit diff-added))
+  "`diff-mode' face used to highlight indicator of added lines (+, >)."
+  :group 'diff-mode
+  :version "22.1")
+(defvar diff-indicator-added-face 'diff-indicator-added)
+
+(defface diff-indicator-changed
+  '((t :inherit diff-changed))
+  "`diff-mode' face used to highlight indicator of changed lines."
+  :group 'diff-mode
+  :version "22.1")
+(defvar diff-indicator-changed-face 'diff-indicator-changed)
+
 (defface diff-function
   '((t :inherit diff-context))
   "`diff-mode' face used to highlight function names produced by \"diff -p\"."
@@ -259,7 +280,7 @@
 (defvar diff-function-face 'diff-function)
 
 (defface diff-context
-  '((t :inherit shadow))
+  '((((class color grayscale) (min-colors 88)) :inherit shadow))
   "`diff-mode' face used to highlight context and other side-information."
   :group 'diff-mode)
 ;; backward-compatibility alias
@@ -298,24 +319,29 @@
 
 
 (defvar diff-font-lock-keywords
-  `(("^\\(@@ -[0-9,]+ \\+[0-9,]+ @@\\)\\(.*\\)$" ;unified
-     (1 diff-hunk-header-face)
-     (2 diff-function-face))
-    ("^--- .+ ----$" . diff-hunk-header-face) ;context
-    ("^\\(\\*\\{15\\}\\)\\(.*\\)$"	;context
-     (1 diff-hunk-header-face)
-     (2 diff-function-face))
+  `(("^\\(@@ -[0-9,]+ \\+[0-9,]+ @@\\)\\(.*\\)$"          ;unified
+     (1 diff-hunk-header-face) (2 diff-function-face))
+    ("^\\(\\*\\{15\\}\\)\\(.*\\)$"                        ;context
+     (1 diff-hunk-header-face) (2 diff-function-face))
     ("^\\*\\*\\* .+ \\*\\*\\*\\*". diff-hunk-header-face) ;context
+    ("^--- .+ ----$"             . diff-hunk-header-face) ;context
+    ("^[0-9,]+[acd][0-9,]+$"     . diff-hunk-header-face) ;normal
+    ("^---$"                     . diff-hunk-header-face) ;normal
     ("^\\(---\\|\\+\\+\\+\\|\\*\\*\\*\\) \\(\\S-+\\)\\(.*[^*-]\\)?\n"
      (0 diff-header-face) (2 diff-file-header-face prepend))
-    ("^[0-9,]+[acd][0-9,]+$" . diff-hunk-header-face)
-    ("^!.*\n" (0 diff-changed-face))
-    ("^[+>].*\n" (0 diff-added-face))
-    ("^[-<].*\n" (0 diff-removed-face))
-    ("^Index: \\(.+\\).*\n" (0 diff-header-face) (1 diff-index-face prepend))
+    ("^\\([-<]\\)\\(.*\n\\)"
+     (1 diff-indicator-removed-face) (2 diff-removed-face))
+    ("^\\([+>]\\)\\(.*\n\\)"
+     (1 diff-indicator-added-face) (2 diff-added-face))
+    ("^\\(!\\)\\(.*\n\\)"
+     (1 diff-indicator-changed-face) (2 diff-changed-face))
+    ("^Index: \\(.+\\).*\n"
+     (0 diff-header-face) (1 diff-index-face prepend))
     ("^Only in .*\n" . diff-nonexistent-face)
-    ("^#.*" . font-lock-string-face)
-    ("^[^-=+*!<>].*\n" (0 diff-context-face))))
+    ("^\\(#\\)\\(.*\\)"
+     (1 font-lock-comment-delimiter-face)
+     (2 font-lock-comment-face))
+    ("^[^-=+*!<>#].*\n" (0 diff-context-face))))
 
 (defconst diff-font-lock-defaults
   '(diff-font-lock-keywords t nil nil nil (font-lock-multiline . nil)))
--- a/lisp/dired-x.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/dired-x.el	Fri Jul 22 08:27:27 2005 +0000
@@ -157,7 +157,7 @@
 (define-minor-mode dired-omit-mode
   "Toggle Dired-Omit mode.
 With numeric ARG, enable Dired-Omit mode if ARG is positive, disable
-otherwise. Enabling and disabling is buffer-local.
+otherwise.  Enabling and disabling is buffer-local.
 If enabled, \"uninteresting\" files are not listed.
 Uninteresting files are those whose filenames match regexp `dired-omit-files',
 plus those ending with extensions in `dired-omit-extensions'."
@@ -185,7 +185,7 @@
 If nil, Dired finds the directory as a subdirectory in some other buffer
 if it is present as one.
 
-If there are several Dired buffers for a directory, the most recently
+If there are several dired buffers for a directory, the most recently
 used is chosen.
 
 Dired avoids switching to the current buffer, so that if you have
@@ -201,7 +201,7 @@
   :group 'dired-x)
 
 (defcustom dired-enable-local-variables t
-  "*Control use of local-variables lists in dired.
+  "*Control use of local-variables lists in Dired.
 The value can be t, nil or something else.
 A value of t means local-variables lists are obeyed;
 nil means they are ignored; anything else means query.
@@ -232,7 +232,7 @@
   :group 'dired-x)
 
 (defcustom dired-clean-up-buffers-too t
-  "*Non-nil means offer to kill buffers visiting files and dirs deleted in dired."
+  "*Non-nil means offer to kill buffers visiting files and dirs deleted in Dired."
   :type 'boolean
   :group 'dired-x)
 
@@ -271,7 +271,7 @@
 (add-hook 'dired-after-readin-hook 'dired-omit-expunge)
 
 (defun dired-extra-startup ()
-  "Automatically put on `dired-mode-hook' to get extra dired features:
+  "Automatically put on `dired-mode-hook' to get extra Dired features:
 \\<dired-mode-map>
   \\[dired-do-run-mail]\t-- run mail on folder (see `dired-bind-vm')
   \\[dired-info]\t-- run info on file
@@ -279,8 +279,8 @@
   \\[dired-do-find-marked-files]\t-- visit all marked files simultaneously
   \\[dired-omit-mode]\t-- toggle omitting of files
   \\[dired-mark-sexp]\t-- mark by Lisp expression
-  \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring.
-  \t   You can feed it to other commands using \\[yank].
+  \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring;
+  \t   you can feed it to other commands using \\[yank]
 
 For more features, see variables
 
@@ -357,7 +357,7 @@
 ;;; Mark files with some extension.
 (defun dired-mark-extension (extension &optional marker-char)
   "Mark all files with a certain EXTENSION for use in later commands.
-A `.' is not automatically prepended to the string entered."
+A `.' is *not* automatically prepended to the string entered."
   ;; EXTENSION may also be a list of extensions instead of a single one.
   ;; Optional MARKER-CHAR is marker to use.
   (interactive "sMarking extension: \nP")
@@ -434,7 +434,7 @@
 (defun dired-jump (&optional other-window)
   "Jump to dired buffer corresponding to current buffer.
 If in a file, dired the current directory and move to file's line.
-If in dired already, pop up a level and goto old directory's line.
+If in Dired already, pop up a level and goto old directory's line.
 In case the proper dired file line cannot be found, refresh the dired
 buffer and try again."
   (interactive "P")
@@ -465,7 +465,7 @@
 		    (dired-goto-file file))))))))
 
 (defun dired-jump-other-window ()
-  "Like \\[dired-jump] (dired-jump) but in other window."
+  "Like \\[dired-jump] (`dired-jump') but in other window."
   (interactive)
   (dired-jump t))
 
@@ -478,13 +478,13 @@
 ;; sk 28-Aug-1991 09:37
 (defvar dired-omit-localp 'no-dir
   "The LOCALP argument `dired-omit-expunge' passes to `dired-get-filename'.
-If it is 'no-dir, omitting is much faster, but you can only match
+If it is `no-dir', omitting is much faster, but you can only match
 against the non-directory part of the file name.  Set it to nil if you
 need to match the entire file name.")
 
 ;; \017=^O for Omit - other packages can chose other control characters.
 (defvar dired-omit-marker-char ?\017
-  "Temporary marker used by by dired-omit.
+  "Temporary marker used by dired-omit.
 Should never be used as marker by the user or other packages.")
 
 (defun dired-omit-startup ()
@@ -569,9 +569,9 @@
 REGEXP is matched against the entire file name.
 Does not re-mark files which already have a mark.
 With prefix argument, unflag all those files.
-Second optional argument LOCALP is as in `dired-get-filename'."
+Optional fourth argument LOCALP is as in `dired-get-filename'."
   (interactive "P")
-  (let ((dired-marker-char (if unflag-p ?\  dired-marker-char)))
+  (let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
     (dired-mark-if
      (and
       ;; not already marked
@@ -621,7 +621,7 @@
 
 ;;; For browsing `ls -lR' listings in a dired-like fashion.
 
-(fset 'virtual-dired 'dired-virtual)
+(defalias 'virtual-dired 'dired-virtual)
 (defun dired-virtual (dirname &optional switches)
   "Put this buffer into Virtual Dired mode.
 
@@ -638,10 +638,10 @@
 If you have save a Dired buffer in a file you can use \\[dired-virtual] to
 resume it in a later session.
 
-Type \\<dired-mode-map>\\[revert-buffer] in the
-Virtual Dired buffer and answer `y' to convert the virtual to a real
-dired buffer again.  You don't have to do this, though: you can relist
-single subdirs using \\[dired-do-redisplay]."
+Type \\<dired-mode-map>\\[revert-buffer] \
+in the Virtual Dired buffer and answer `y' to convert
+the virtual to a real dired buffer again.  You don't have to do this, though:
+you can relist single subdirs using \\[dired-do-redisplay]."
 
   ;; DIRNAME is the top level directory of the buffer.  It will become
   ;; its `default-directory'.  If nil, the old value of
@@ -725,12 +725,12 @@
 ;; `buffer-contents-mode-alist'.
 ;; Or you use infer-mode.el and infer-mode-alist, same syntax.
 (defun dired-virtual-mode ()
-  "Put current buffer into virtual dired mode (see `dired-virtual').
+  "Put current buffer into Virtual Dired mode (see `dired-virtual').
 Useful on `buffer-contents-mode-alist' (which see) with the regexp
 
     \"^  \\(/[^ /]+\\)/?+:$\"
 
-to put saved dired buffers automatically into virtual dired mode.
+to put saved dired buffers automatically into Virtual Dired mode.
 
 Also useful for `auto-mode-alist' (which see) like this:
 
@@ -768,7 +768,7 @@
       default-directory))
 
 (defun dired-smart-shell-command (cmd &optional insert)
-  "Like function `shell-command', but in the current Tree Dired directory."
+  "Like function `shell-command', but in the current Virtual Dired directory."
   (interactive (list (read-from-minibuffer "Shell command: "
 					   nil nil nil 'shell-command-history)
 		     current-prefix-arg))
@@ -800,8 +800,9 @@
 (defvar dired-local-variables-file (convert-standard-filename ".dired")
   "Filename, as string, containing local dired buffer variables to be hacked.
 If this file found in current directory, then it will be inserted into dired
-buffer and `hack-local-variables' will be run.  See Emacs Info pages for more
-information on local variables.  See also `dired-enable-local-variables'.")
+buffer and `hack-local-variables' will be run.  See Info node
+`(emacs)File Variables' for more information on local variables.
+See also `dired-enable-local-variables'.")
 
 (defun dired-hack-local-variables ()
   "Evaluate local variables in `dired-local-variables-file' for dired buffer."
@@ -828,7 +829,7 @@
 
 (defun dired-omit-here-always ()
   "Create `dired-local-variables-file' for omitting and reverts directory.
-Sets dired-omit-file-p to t in a local variables file that is readable by
+Sets `dired-omit-mode' to t in a local variables file that is readable by
 dired."
   (interactive)
   (if (file-exists-p dired-local-variables-file)
@@ -1024,7 +1025,7 @@
 
     \(REGEXP COMMAND...\)
 
-where each COMMAND can either be a string or a lisp expression that evaluates
+where each COMMAND can either be a string or a Lisp expression that evaluates
 to a string.  If several COMMANDs are given, the first one will be the default
 and the rest will be added temporarily to the history and can be retrieved
 with \\[previous-history-element] (M-p) .
@@ -1223,14 +1224,14 @@
   (dired-do-create-files 'relsymlink (function dired-make-relative-symlink)
                            "RelSymLink" arg dired-keep-marker-relsymlink))
 
-(defun dired-do-relsymlink-regexp (regexp newname &optional whole-name)
+(defun dired-do-relsymlink-regexp (regexp newname &optional arg whole-name)
   "RelSymlink all marked files containing REGEXP to NEWNAME.
 See functions `dired-do-rename-regexp' and `dired-do-relsymlink'
 for more info."
   (interactive (dired-mark-read-regexp "RelSymLink"))
   (dired-do-create-files-regexp
    (function dired-make-relative-symlink)
-   "RelSymLink" nil regexp newname whole-name dired-keep-marker-relsymlink))
+   "RelSymLink" arg regexp newname whole-name dired-keep-marker-relsymlink))
 
 
 ;;; VISIT ALL MARKED FILES SIMULTANEOUSLY.
@@ -1321,7 +1322,7 @@
 
 (defun dired-man ()
   "Run man on this file.  Display old buffer if buffer name matches filename.
-Uses ../lisp/man.el of \\[manual-entry] fame."
+Uses `man.el' of \\[manual-entry] fame."
   (interactive)
   (require 'man)
   (let* ((file (dired-get-filename))
@@ -1441,7 +1442,7 @@
 (defun dired-initial-position (dirname)
   "Where point should go in a new listing of DIRNAME.
 Point assumed at beginning of new subdir line.
-You may redefine this function as you wish, e.g. like in dired-x.el."
+You may redefine this function as you wish, e.g. like in `dired-x.el'."
   (end-of-line)
   (if dired-find-subdir (dired-goto-subdir dirname)) ; new
   (if dired-trivial-filenames (dired-goto-next-nontrivial-file)))
@@ -1550,7 +1551,7 @@
 (defvar dired-x-hands-off-my-keys t
   "*Non-nil means don't bind `dired-x-find-file' over `find-file' on keyboard.
 Similarly for `dired-x-find-file-other-window' over `find-file-other-window'.
-If you change this variable after dired-x.el is loaded then do
+If you change this variable after `dired-x.el' is loaded then do
 \\[dired-x-bind-find-file].")
 
 ;;; Bind `dired-x-find-file{-other-window}' over wherever
@@ -1559,7 +1560,7 @@
   "Bind `dired-x-find-file' in place of `find-file' \(or reverse\).
 Similarly for `dired-x-find-file-other-window' and `find-file-other-window'.
 Binding direction based on `dired-x-hands-off-my-keys'.
-This function part of `after-init-hook'."
+This function is part of `after-init-hook'."
   (interactive)
   (if (interactive-p)
       (setq dired-x-hands-off-my-keys
@@ -1592,9 +1593,9 @@
 See the function `display-buffer'.
 
 Identical to `find-file' except when called interactively, with a prefix arg
-\(e.g., \\[universal-argument]\), in which case it guesses filename near
-point.  Useful for editing file mentioned in buffer you are viewing, or to
-test if that file exists.  Use minibuffer after snatching filename."
+\(e.g., \\[universal-argument]\), in which case it guesses filename near point.
+Useful for editing file mentioned in buffer you are viewing,
+or to test if that file exists.  Use minibuffer after snatching filename."
   (interactive (list (read-filename-at-point "Find file: ")))
   (find-file (expand-file-name filename)))
 
@@ -1604,9 +1605,9 @@
 See the function `display-buffer'.
 
 Identical to `find-file-other-window' except when called interactively, with a
-prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename
-near point.  Useful for editing file mentioned in buffer you are viewing, or
-to test if that file exists.  Use minibuffer after snatching filename."
+prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename near point.
+Useful for editing file mentioned in buffer you are viewing,
+or to test if that file exists.  Use minibuffer after snatching filename."
   (interactive (list (read-filename-at-point "Find file: ")))
   (find-file-other-window (expand-file-name filename)))
 
@@ -1695,7 +1696,7 @@
   "List of variables to be appended to reports sent by `dired-x-submit-report'.")
 
 (defun dired-x-submit-report ()
-  "Submit via reporter.el a bug report on program.
+  "Submit via `reporter.el' a bug report on program.
 Send report on `dired-x-file' version `dired-x-version,' to
 `dired-x-maintainer' at address `dired-x-help-address' listing
 variables `dired-x-variable-list' in the message."
--- a/lisp/dired.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/dired.el	Fri Jul 22 08:27:27 2005 +0000
@@ -50,13 +50,13 @@
 
 ;;;###autoload
 (defcustom dired-listing-switches "-al"
-  "*Switches passed to `ls' for dired.  MUST contain the `l' option.
+  "*Switches passed to `ls' for Dired.  MUST contain the `l' option.
 May contain all other options that don't contradict `-l';
 may contain even `F', `b', `i' and `s'.  See also the variable
 `dired-ls-F-marks-symlinks' concerning the `F' switch.
 On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
 some of the `ls' switches are not supported; see the doc string of
-`insert-directory' on ls-lisp.el for more details."
+`insert-directory' on `ls-lisp.el' for more details."
   :type 'string
   :group 'dired)
 
@@ -88,7 +88,7 @@
 
 ;;;###autoload
 (defcustom dired-ls-F-marks-symlinks nil
-  "*Informs dired about how `ls -lF' marks symbolic links.
+  "*Informs Dired about how `ls -lF' marks symbolic links.
 Set this to t if `ls' (or whatever program is specified by
 `insert-directory-program') with `-lF' marks the symbolic link
 itself with a trailing @ (usually the case under Ultrix).
@@ -153,7 +153,7 @@
 
 ;;;###autoload
 (defcustom dired-dwim-target nil
-  "*If non-nil, dired tries to guess a default target directory.
+  "*If non-nil, Dired tries to guess a default target directory.
 This means: if there is a dired buffer displayed in the next window,
 use its current subdir, instead of the current subdir of this dired buffer.
 
@@ -176,13 +176,13 @@
 ;;; Hook variables
 
 (defcustom dired-load-hook nil
-  "Run after loading dired.
+  "Run after loading Dired.
 You can customize key bindings or load extensions with this."
   :group 'dired
   :type 'hook)
 
 (defcustom dired-mode-hook nil
-  "Run at the very end of dired-mode."
+  "Run at the very end of `dired-mode'."
   :group 'dired
   :type 'hook)
 
@@ -229,8 +229,7 @@
 (defvar dired-del-marker ?D
   "Character used to flag files for deletion.")
 
-(defvar dired-shrink-to-fit
-  t
+(defvar dired-shrink-to-fit t
 ;; I see no reason ever to make this nil -- rms.
 ;;  (> baud-rate search-slow-speed)
   "Non-nil means Dired shrinks the display buffer to fit the marked files.")
@@ -241,7 +240,7 @@
 
 ;;;###autoload
 (defvar dired-directory nil
-  "The directory name or wildcard spec that this Dired directory lists.
+  "The directory name or wildcard spec that this dired directory lists.
 Local to each dired buffer.  May be a list, in which case the car is the
 directory name and the cdr is the list of files to mention.
 The directory name must be absolute, but need not be fully expanded.")
@@ -295,7 +294,7 @@
 Subexpression 2 must end right before the \\n or \\r.")
 
 (defgroup dired-faces nil
-  "Faces used by dired."
+  "Faces used by Dired."
   :group 'dired
   :group 'faces)
 
@@ -598,7 +597,7 @@
 You can move around in it with the usual commands.
 You can flag files for deletion with \\[dired-flag-file-deletion] and then
 delete them by typing \\[dired-do-flagged-delete].
-Type \\[describe-mode] after entering dired for more info.
+Type \\[describe-mode] after entering Dired for more info.
 
 If DIRNAME is already in a dired buffer, that buffer is used without refresh."
   ;; Cannot use (interactive "D") because of wildcards.
@@ -911,7 +910,7 @@
 		    (move-to-column curcol)
 		    (when (looking-at
 			   (concat
-			    (if (eq (char-before) ?\ ) " *" "[^ ]* *")
+			    (if (eq (char-before) ?\s) " *" "[^ ]* *")
 			    (if num-align "[0-9][^ ]*")))
 		      (- (match-end 0) (match-beginning 0)))))
 		 ;; Now, the number of spaces to insert is align-pt-offset
@@ -1020,7 +1019,7 @@
 
 (defun dired-revert (&optional arg noconfirm)
   "Reread the dired buffer.
-Must also be called after dired-actual-switches have changed.
+Must also be called after `dired-actual-switches' have changed.
 Should not fail even on completely garbaged buffers.
 Preserves old cursor, marks/flags, hidden-p."
   (widen)				; just in case user narrowed
@@ -1500,12 +1499,12 @@
 Type \\[dired-maybe-insert-subdir] to Insert a subdirectory in this buffer.
 Type \\[dired-do-rename] to Rename a file or move the marked files to another directory.
 Type \\[dired-do-copy] to Copy files.
-Type \\[dired-sort-toggle-or-edit] to toggle sorting by name/date or change the `ls' switches.
-Type \\[revert-buffer] to read all currently expanded directories again.
+Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches.
+Type \\[revert-buffer] to read all currently expanded directories aGain.
   This retains all marks and hides subdirs again that were hidden before.
 SPC and DEL can be used to move down and up by lines.
 
-If dired ever gets confused, you can either type \\[revert-buffer] \
+If Dired ever gets confused, you can either type \\[revert-buffer] \
 to read the
 directories again, type \\[dired-do-redisplay] \
 to relist a single or the marked files or a
@@ -1575,7 +1574,7 @@
 ;; Idiosyncratic dired commands that don't deal with marks.
 
 (defun dired-summary ()
-  "Summarize basic Dired commands and show recent Dired errors."
+  "Summarize basic Dired commands and show recent dired errors."
   (interactive)
   (dired-why)
   ;>> this should check the key-bindings and use substitute-command-keys if non-standard
@@ -1590,7 +1589,7 @@
   (let (buffer-read-only)
     (undo))
   (dired-build-subdir-alist)
-  (message "Change in Dired buffer undone.
+  (message "Change in dired buffer undone.
 Actual changes in files cannot be undone by Emacs."))
 
 (defun dired-next-line (arg)
@@ -1654,7 +1653,7 @@
 	file-name
       (if (file-symlink-p file-name)
 	  (error "File is a symlink to a nonexistent target")
-	(error "File no longer exists; type `g' to update Dired buffer")))))
+	(error "File no longer exists; type `g' to update dired buffer")))))
 
 ;; Force `f' rather than `e' in the mode doc:
 (defalias 'dired-advertised-find-file 'dired-find-file)
@@ -1696,7 +1695,7 @@
       (find-file-other-window (file-name-sans-versions file t)))))
 
 (defun dired-view-file ()
-  "In Dired, examine a file in view mode, returning to dired when done.
+  "In Dired, examine a file in view mode, returning to Dired when done.
 When file is a directory, show it in this buffer if it is inserted.
 Otherwise, display it in another buffer."
   (interactive)
@@ -1976,7 +1975,7 @@
   "Copy names of marked (or next ARG) files into the kill ring.
 The names are separated by a space.
 With a zero prefix arg, use the absolute file name of each marked file.
-With \\[universal-argument], use the file name relative to the Dired buffer's
+With \\[universal-argument], use the file name relative to the dired buffer's
 `default-directory'.  (This still may contain slashes if in a subdirectory.)
 
 If on a subdir headerline, use absolute subdirname instead;
@@ -2361,7 +2360,7 @@
 (defun dired-delete-file (file &optional recursive) "\
 Delete FILE or directory (possibly recursively if optional RECURSIVE is true.)
 RECURSIVE determines what to do with a non-empty directory.  If RECURSIVE is:
-Nil, do not delete.
+nil, do not delete.
 `always', delete recursively without asking.
 `top', ask for each directory at top level.
 Anything else, ask for each sub-directory."
@@ -2554,7 +2553,7 @@
       )))
 
 (defvar dired-no-confirm nil
-  "A list of symbols for commands dired should not confirm.
+  "A list of symbols for commands Dired should not confirm.
 Command symbols are `byte-compile', `chgrp', `chmod', `chown', `compress',
 `copy', `delete', `hardlink', `load', `move', `print', `shell', `symlink',
 `touch' and `uncompress'.")
@@ -2891,7 +2890,7 @@
   "Flag all backup files (names ending with `~') for deletion.
 With prefix argument, unflag these files."
   (interactive "P")
-  (let ((dired-marker-char (if unflag-p ?\  dired-del-marker)))
+  (let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
     (dired-mark-if
      ;; Don't call backup-file-name-p unless the last character looks like
      ;; it might be the end of a backup file name.  This isn't very general,
@@ -2925,7 +2924,7 @@
       (save-excursion
 	(goto-char (point-min))
 	(while (search-forward string nil t)
-	  (if (if (= old ?\ )
+	  (if (if (= old ?\s)
 		  (save-match-data
 		    (dired-get-filename 'no-dir t))
 		t)
@@ -2933,7 +2932,7 @@
 				    (match-end 0) old new)))))))
 
 (defun dired-unmark-all-marks ()
-  "Remove all marks from all files in the Dired buffer."
+  "Remove all marks from all files in the dired buffer."
   (interactive)
   (dired-unmark-all-files ?\r))
 
@@ -2961,7 +2960,7 @@
 		       (dired-query 'query "Unmark file `%s'? "
 				    file))))
 	    (progn (subst-char-in-region (1- (point)) (point)
-					 (preceding-char) ?\ )
+					 (preceding-char) ?\s)
 		   (setq count (1+ count)))))
       (message (if (= count 1) "1 mark removed"
 		 "%d marks removed")
@@ -3004,7 +3003,7 @@
 			   (apply (function format) log args)
 			 log)))
 	      ((bufferp log)
-	       (insert-buffer log))
+	       (insert-buffer-substring log))
 	      ((eq t log)
 	       (backward-page 1)
 	       (unless (bolp)
@@ -3048,15 +3047,15 @@
 (defvar dired-sort-by-date-regexp
   (concat "^-[^" dired-ls-sorting-switches
 	  "]*t[^" dired-ls-sorting-switches "]*$")
-  "Regexp recognized by dired to set `by date' mode.")
+  "Regexp recognized by Dired to set `by date' mode.")
 
 (defvar dired-sort-by-name-regexp
   (concat "^-[^t" dired-ls-sorting-switches "]+$")
-  "Regexp recognized by dired to set `by name' mode.")
+  "Regexp recognized by Dired to set `by name' mode.")
 
 (defvar dired-sort-inhibit nil
   "Non-nil means the Dired sort command is disabled.
-The idea is to set this buffer-locally in special Dired buffers.")
+The idea is to set this buffer-locally in special dired buffers.")
 
 (defun dired-sort-set-modeline ()
   ;; Set modeline display according to dired-actual-switches.
@@ -3078,7 +3077,7 @@
 With a prefix argument you can edit the current listing switches instead."
   (interactive "P")
   (when dired-sort-inhibit
-    (error "Cannot sort this Dired buffer"))
+    (error "Cannot sort this dired buffer"))
   (if arg
       (dired-sort-other
        (read-string "ls switches (must contain -l): " dired-actual-switches))
@@ -3121,7 +3120,7 @@
     (concat result (substring string start))))
 
 (defun dired-sort-other (switches &optional no-revert)
-  "Specify new ls SWITCHES for current dired buffer.
+  "Specify new `ls' SWITCHES for current dired buffer.
 Values matching `dired-sort-by-date-regexp' or `dired-sort-by-name-regexp'
 set the minor mode accordingly, others appear literally in the mode line.
 With optional second arg NO-REVERT, don't refresh the listing afterwards."
@@ -3262,7 +3261,7 @@
        ;; Directory name followed by list of files.
        (cons (desktop-file-name (car dired-directory) desktop-dirname)
              (cdr dired-directory))
-     ;; Directory name, optionally with with shell wildcard.
+     ;; Directory name, optionally with shell wildcard.
      (desktop-file-name dired-directory desktop-dirname))
    ;; Subdirectories in `dired-subdir-alist'.
    (cdr
@@ -3277,7 +3276,7 @@
                                      desktop-buffer-misc)
   "Restore a dired buffer specified in a desktop file."
   ;; First element of `desktop-buffer-misc' is the value of `dired-directory'.
-  ;; This value is a directory name, optionally with with shell wildcard or
+  ;; This value is a directory name, optionally with shell wildcard or
   ;; a directory name followed by list of files.
   (let* ((dired-dir (car desktop-buffer-misc))
          (dir (if (consp dired-dir) (car dired-dir) dired-dir)))
--- a/lisp/dirtrack.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/dirtrack.el	Fri Jul 22 08:27:27 2005 +0000
@@ -133,8 +133,8 @@
 (defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1)
   "*List for directory tracking.
 First item is a regexp that describes where to find the path in a prompt.
-Second is a number, the regexp group to match. Optional third item is
-whether the prompt is multi-line. If nil or omitted, prompt is assumed to
+Second is a number, the regexp group to match.  Optional third item is
+whether the prompt is multi-line.  If nil or omitted, prompt is assumed to
 be on a single line."
   :group 'dirtrack
   :type  '(sexp (regexp  :tag "Prompt Expression")
--- a/lisp/ediff-diff.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/ediff-diff.el	Fri Jul 22 08:27:27 2005 +0000
@@ -30,6 +30,7 @@
 ;; compiler pacifier
 (defvar ediff-default-variant)
 (defvar null-device)
+(defvar longlines-mode)
 
 (eval-when-compile
   (let ((load-path (cons (expand-file-name ".") load-path)))
--- a/lisp/ediff.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/ediff.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1357,11 +1357,13 @@
 
 ;;;###autoload
 (defun ediff-patch-buffer (&optional arg patch-buf)
-  "Run Ediff by patching BUFFER-NAME.
-Without prefix argument: asks if the patch is in some buffer and prompts for
-the buffer or a file, depending on the answer.
-With prefix arg=1: assumes the patch is in a file and prompts for the file.
-With prefix arg=2: assumes the patch is in a buffer and prompts for the buffer."
+  "Run Ediff by patching the buffer specified at prompt.
+Without the optional prefix ARG, asks if the patch is in some buffer and
+prompts for the buffer or a file, depending on the answer.
+With ARG=1, assumes the patch is in a file and prompts for the file.
+With ARG=2, assumes the patch is in a buffer and prompts for the buffer.
+PATCH-BUF is an optional argument, which specifies the buffer that contains the
+patch. If not given, the user is prompted according to the prefix argument."
   (interactive "P")
   (require 'ediff-ptch)
   (setq patch-buf
--- a/lisp/emacs-lisp/bytecomp.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Fri Jul 22 08:27:27 2005 +0000
@@ -358,7 +358,7 @@
 
 (defvar byte-compile-interactive-only-functions
   '(beginning-of-buffer end-of-buffer replace-string replace-regexp
-			insert-file)
+    insert-file insert-buffer insert-file-literally)
   "List of commands that are not meant to be called from Lisp.")
 
 (defvar byte-compile-not-obsolete-var nil
@@ -3355,12 +3355,12 @@
   "Execute forms in BODY, potentially guarded by CONDITION.
 CONDITION is a variable whose value is a test in an `if' or `cond'.
 BODY is the code to compile  first arm of the if or the body of the
-cond clause.  If CONDITION's value is of the form `(foundp 'foo)'
-or `(boundp 'foo)', the relevant warnings from BODY about foo
+cond clause.  If CONDITION's value is of the form (fboundp 'foo)
+or (boundp 'foo), the relevant warnings from BODY about foo's
 being undefined will be suppressed.
 
-If CONDITION's value is `(featurep 'xemacs)', that suppresses all
-warnings during execution of BODY."
+If CONDITION's value is (not (featurep 'emacs)) or (featurep 'xemacs),
+that suppresses all warnings during execution of BODY."
   (declare (indent 1) (debug t))
   `(let* ((fbound
 	   (if (eq 'fboundp (car-safe ,condition))
@@ -3379,8 +3379,10 @@
 	   (if bound
 	       (cons bound byte-compile-bound-variables)
 	     byte-compile-bound-variables))
+	  ;; Suppress all warnings, for code not used in Emacs.
 	  (byte-compile-warnings
-	   (if (equal ,condition '(featurep 'xemacs))
+	   (if (member ,condition '((featurep 'xemacs)
+				    (not (featurep 'emacs))))
 	       nil byte-compile-warnings)))
      (unwind-protect
 	 (progn ,@body)
@@ -3409,7 +3411,8 @@
 	  (byte-compile-form (nth 2 form) for-effect))
 	(byte-compile-goto 'byte-goto donetag)
 	(byte-compile-out-tag elsetag)
-	(byte-compile-body (cdr (cdr (cdr form))) for-effect)
+	(byte-compile-maybe-guarded (list 'not clause)
+	  (byte-compile-body (cdr (cdr (cdr form))) for-effect))
 	(byte-compile-out-tag donetag))))
   (setq for-effect nil))
 
@@ -3450,24 +3453,38 @@
 	(args (cdr form)))
     (if (null args)
 	(byte-compile-form-do-effect t)
-      (while (cdr args)
-	(byte-compile-form (car args))
+      (byte-compile-and-recursion args failtag))))
+
+;; Handle compilation of a nontrivial `and' call.
+;; We use tail recursion so we can use byte-compile-maybe-guarded.
+(defun byte-compile-and-recursion (rest failtag)
+  (if (cdr rest)
+      (progn
+	(byte-compile-form (car rest))
 	(byte-compile-goto-if nil for-effect failtag)
-	(setq args (cdr args)))
-      (byte-compile-form-do-effect (car args))
-      (byte-compile-out-tag failtag))))
+	(byte-compile-maybe-guarded (car rest)
+	  (byte-compile-and-recursion (cdr rest) failtag)))
+    (byte-compile-form-do-effect (car rest))
+    (byte-compile-out-tag failtag)))
 
 (defun byte-compile-or (form)
   (let ((wintag (byte-compile-make-tag))
 	(args (cdr form)))
     (if (null args)
 	(byte-compile-form-do-effect nil)
-      (while (cdr args)
-	(byte-compile-form (car args))
+      (byte-compile-or-recursion args wintag))))
+
+;; Handle compilation of a nontrivial `or' call.
+;; We use tail recursion so we can use byte-compile-maybe-guarded.
+(defun byte-compile-or-recursion (rest wintag)
+  (if (cdr rest)
+      (progn
+	(byte-compile-form (car rest))
 	(byte-compile-goto-if t for-effect wintag)
-	(setq args (cdr args)))
-      (byte-compile-form-do-effect (car args))
-      (byte-compile-out-tag wintag))))
+	(byte-compile-maybe-guarded (list 'not (car rest))
+	  (byte-compile-or-recursion (cdr rest) wintag)))
+    (byte-compile-form-do-effect (car rest))
+    (byte-compile-out-tag wintag)))
 
 (defun byte-compile-while (form)
   (let ((endtag (byte-compile-make-tag))
--- a/lisp/emacs-lisp/checkdoc.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/checkdoc.el	Fri Jul 22 08:27:27 2005 +0000
@@ -430,32 +430,20 @@
 
 ;;; Compatibility
 ;;
-(if (string-match "X[Ee]macs" emacs-version)
-    (progn
-      (defalias 'checkdoc-make-overlay 'make-extent)
-      (defalias 'checkdoc-overlay-put 'set-extent-property)
-      (defalias 'checkdoc-delete-overlay 'delete-extent)
-      (defalias 'checkdoc-overlay-start 'extent-start)
-      (defalias 'checkdoc-overlay-end 'extent-end)
-      (defalias 'checkdoc-mode-line-update 'redraw-modeline)
-      (defalias 'checkdoc-call-eval-buffer 'eval-buffer)
-      )
-  (defalias 'checkdoc-make-overlay 'make-overlay)
-  (defalias 'checkdoc-overlay-put 'overlay-put)
-  (defalias 'checkdoc-delete-overlay 'delete-overlay)
-  (defalias 'checkdoc-overlay-start 'overlay-start)
-  (defalias 'checkdoc-overlay-end 'overlay-end)
-  (defalias 'checkdoc-mode-line-update 'force-mode-line-update)
-  (defalias 'checkdoc-call-eval-buffer 'eval-current-buffer)
-  )
-
-;; Emacs 20s have MULE characters which don't equate to numbers.
-(if (fboundp 'char=)
-    (defalias 'checkdoc-char= 'char=)
-  (defalias 'checkdoc-char= '=))
-
-;; Read events, not characters
-(defalias 'checkdoc-read-event 'read-event)
+(defalias 'checkdoc-make-overlay
+  (if (featurep 'xemacs) 'make-extent 'make-overlay))
+(defalias 'checkdoc-overlay-put
+  (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
+(defalias 'checkdoc-delete-overlay
+  (if (featurep 'xemacs) 'delete-extent 'delete-overlay))
+(defalias 'checkdoc-overlay-start
+  (if (featurep 'xemacs) 'extent-start 'overlay-start))
+(defalias 'checkdoc-overlay-end
+  (if (featurep 'xemacs) 'extent-end 'overlay-end))
+(defalias 'checkdoc-mode-line-update
+  (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
+(defalias 'checkdoc-char=
+  (if (featurep 'xemacs) 'char= '=))
 
 ;;; User level commands
 ;;
@@ -628,7 +616,7 @@
 		(goto-char (checkdoc-error-start (car (car err-list))))
 		(if (not (pos-visible-in-window-p))
 		    (recenter (- (window-height) 2)))
-		(setq c (checkdoc-read-event)))
+		(setq c (read-event)))
 	      (if (not (integerp c)) (setq c ??))
 	      (cond
 	       ;; Exit condition
@@ -844,7 +832,7 @@
 doesn't work is just not useful.  Comments, doc strings, and rogue
 spacing are all verified."
   (interactive)
-  (checkdoc-call-eval-buffer nil)
+  (eval-buffer nil)
   (checkdoc-current-buffer t))
 
 ;;;###autoload
--- a/lisp/emacs-lisp/cl-macs.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/cl-macs.el	Fri Jul 22 08:27:27 2005 +0000
@@ -2384,6 +2384,7 @@
 	     (cl-make-type-test val (funcall (get type 'cl-deftype-handler))))
 	    ((memq type '(nil t)) type)
 	    ((eq type 'null) `(null ,val))
+	    ((eq type 'atom) `(atom ,val))
 	    ((eq type 'float) `(floatp-safe ,val))
 	    ((eq type 'real) `(numberp ,val))
 	    ((eq type 'fixnum) `(integerp ,val))
@@ -2398,7 +2399,7 @@
 	   (cl-make-type-test val (apply (get (car type) 'cl-deftype-handler)
 					 (cdr type))))
 	  ((memq (car type) '(integer float real number))
-	   (delq t (and (cl-make-type-test val (car type))
+	   (delq t (list 'and (cl-make-type-test val (car type))
 			 (if (memq (cadr type) '(* nil)) t
 			   (if (consp (cadr type)) (list '> val (caadr type))
 			     (list '>= val (cadr type))))
--- a/lisp/emacs-lisp/derived.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/derived.el	Fri Jul 22 08:27:27 2005 +0000
@@ -96,7 +96,7 @@
 ;;; PRIVATE: defsubst must be defined before they are first used
 
 (defsubst derived-mode-hook-name (mode)
-  "Construct the mode hook name based on mode name MODE."
+  "Construct a mode-hook name based on a MODE name."
   (intern (concat (symbol-name mode) "-hook")))
 
 (defsubst derived-mode-map-name (mode)
@@ -382,18 +382,11 @@
     (derived-mode-merge-abbrev-tables old-table new-table)
     (setq local-abbrev-table new-table)))
 
-;;;(defun derived-mode-run-setup-function (mode)
-;;;  "Run the setup function if it exists."
-
-;;;  (let ((fname (derived-mode-setup-function-name mode)))
-;;;    (if (fboundp fname)
-;;;	(funcall fname))))
-
 (defun derived-mode-run-hooks (mode)
-  "Run the mode hook for MODE."
-  (let ((hooks-name (derived-mode-hook-name mode)))
-    (if (boundp hooks-name)
-	(run-hooks hooks-name))))
+   "Run the mode hook for MODE."
+   (let ((hooks-name (derived-mode-hook-name mode)))
+     (if (boundp hooks-name)
+         (run-hooks hooks-name))))
 
 ;; Functions to merge maps and tables.
 
--- a/lisp/emacs-lisp/easy-mmode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/easy-mmode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -142,8 +142,10 @@
   (let* ((mode-name (symbol-name mode))
 	 (pretty-name (easy-mmode-pretty-mode-name mode lighter))
 	 (globalp nil)
+	 (set nil)
 	 (initialize nil)
 	 (group nil)
+	 (type nil)
 	 (extra-args nil)
 	 (extra-keywords nil)
 	 (require t)
@@ -160,8 +162,10 @@
 	(:lighter (setq lighter (pop body)))
 	(:global (setq globalp (pop body)))
 	(:extra-args (setq extra-args (pop body)))
+	(:set (setq set (list :set (pop body))))
 	(:initialize (setq initialize (list :initialize (pop body))))
 	(:group (setq group (nconc group (list :group (pop body)))))
+	(:type (setq type (list :type (pop body))))
 	(:require (setq require (pop body)))
 	(:keymap (setq keymap (pop body)))
 	(t (push keyw extra-keywords) (push (pop body) extra-keywords))))
@@ -169,9 +173,10 @@
     (setq keymap-sym (if (and keymap (symbolp keymap)) keymap
 		       (intern (concat mode-name "-map"))))
 
+    (unless set (setq set '(:set 'custom-set-minor-mode)))
+
     (unless initialize
-      (setq initialize
-	    '(:initialize 'custom-initialize-default)))
+      (setq initialize '(:initialize 'custom-initialize-default)))
 
     (unless group
       ;; We might as well provide a best-guess default group.
@@ -179,6 +184,8 @@
 	    `(:group ',(intern (replace-regexp-in-string
 				"-mode\\'" "" mode-name)))))
 
+    (unless type (setq type '(:type 'boolean)))
+
     `(progn
        ;; Define the variable to enable or disable the mode.
        ,(if (not globalp)
@@ -201,10 +208,10 @@
 
 	    `(defcustom ,mode ,init-value
 	       ,(format base-doc-string pretty-name mode mode)
-	       :set 'custom-set-minor-mode
+	       ,@set
 	       ,@initialize
 	       ,@group
-	       :type 'boolean
+	       ,@type
 	       ,@(cond
 		  ((not (and curfile require)) nil)
 		  ((not (eq require t)) `(:require ,require)))
@@ -260,12 +267,7 @@
        (add-minor-mode ',mode ',lighter
 		       ,(if keymap keymap-sym
 			  `(if (boundp ',keymap-sym)
-			       (symbol-value ',keymap-sym))))
-
-       ;; If the mode is global, call the function according to the default.
-       ,(if globalp
-	    `(if (and load-file-name (not (equal ,init-value ,mode)))
-		 (eval-after-load load-file-name '(,mode (if ,mode 1 -1))))))))
+			       (symbol-value ',keymap-sym)))))))
 
 ;;;
 ;;; make global minor mode
--- a/lisp/emacs-lisp/edebug.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/edebug.el	Fri Jul 22 08:27:27 2005 +0000
@@ -243,9 +243,9 @@
   `(put (quote ,symbol) 'edebug-form-spec (quote ,spec)))
 
 (defmacro def-edebug-form-spec (symbol spec-form)
-  "For compatibility with old version.  Use `def-edebug-spec' instead."
-  (message "Obsolete: use def-edebug-spec instead.")
+  "For compatibility with old version."
   (def-edebug-spec symbol (eval spec-form)))
+(make-obsolete 'def-edebug-form-spec 'def-edebug-spec "22.1")
 
 (defun get-edebug-spec (symbol)
   ;; Get the spec of symbol resolving all indirection.
@@ -3651,9 +3651,12 @@
 ;; Replace printing functions.
 
 ;; obsolete names
-(defalias 'edebug-install-custom-print-funcs 'edebug-install-custom-print)
-(defalias 'edebug-reset-print-funcs 'edebug-uninstall-custom-print)
-(defalias 'edebug-uninstall-custom-print-funcs 'edebug-uninstall-custom-print)
+(define-obsolete-function-alias 'edebug-install-custom-print-funcs
+    'edebug-install-custom-print "22.1")
+(define-obsolete-function-alias 'edebug-reset-print-funcs
+    'edebug-uninstall-custom-print "22.1")
+(define-obsolete-function-alias 'edebug-uninstall-custom-print-funcs
+    'edebug-uninstall-custom-print "22.1")
 
 (defun edebug-install-custom-print ()
   "Replace print functions used by Edebug with custom versions."
--- a/lisp/emacs-lisp/find-func.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/find-func.el	Fri Jul 22 08:27:27 2005 +0000
@@ -62,7 +62,7 @@
   ;;  (define-derived-mode foo ...), (define-minor-mode foo)
   (concat
    "^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\
-ine-minor-mode\\|un-cvs-mode\\|foo\\|[^cfgv]\\w+\\*?\\)\
+ine-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|foo\\|[^cfgv]\\w+\\*?\\)\
 \\|easy-mmode-define-global-mode\\|menu-bar-make-toggle\\)"
    find-function-space-re
    "\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)")
--- a/lisp/emacs-lisp/find-gc.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/find-gc.el	Fri Jul 22 08:27:27 2005 +0000
@@ -23,56 +23,86 @@
 
 ;;; Commentary:
 
-;; Produce in unsafe-list the set of all functions that may invoke GC.
-;; This expects the Emacs sources to live in emacs-source-directory.
+;; Produce in find-gc-unsafe-list the set of all functions that may invoke GC.
+;; This expects the Emacs sources to live in find-gc-source-directory.
 ;; It creates a temporary working directory /tmp/esrc.
 
 ;;; Code:
 
-(defun find-gc-unsafe ()
-  (trace-call-tree nil)
-  (trace-use-tree)
-  (find-unsafe-funcs 'Fgarbage_collect)
-  (setq unsafe-list (sort unsafe-list
-			  (function (lambda (x y)
-				      (string-lessp (car x) (car y))))))
-)
+(defvar find-gc-unsafe-list nil
+  "The list of unsafe functions is placed here by `find-gc-unsafe'.")
 
-(setq emacs-source-directory "/usr/gnu/src/dist/src")
-
+(defvar find-gc-source-directory)
 
-;;; This does a depth-first search to find all functions that can
-;;; ultimately call the function "target".  The result is an a-list
-;;; in unsafe-list; the cars are the unsafe functions, and the cdrs
-;;; are (one of) the unsafe functions that these functions directly
-;;; call.
-
-(defun find-unsafe-funcs (target)
-  (setq unsafe-list (list (list target)))
-  (trace-unsafe target)
-)
+(defvar find-gc-subrs-callers nil
+  "Alist of users of subrs, from GC testing.
+Each entry has the form (FUNCTION . FUNCTIONS-THAT-CALL-IT).")
 
-(defun trace-unsafe (func)
-  (let ((used (assq func subrs-used)))
-    (or used
-	(error "No subrs-used for %s" (car unsafe-list)))
-    (while (setq used (cdr used))
-      (or (assq (car used) unsafe-list)
-	  (memq (car used) noreturn-list)
-	  (progn
-	    (setq unsafe-list (cons (cons (car used) func) unsafe-list))
-	    (trace-unsafe (car used))))))
-)
+(defvar find-gc-subrs-called nil
+  "Alist of subrs called, in GC testing.
+Each entry has the form (FUNCTION . FUNCTIONS-IT-CALLS).")
 
 
 ;;; Functions on this list are safe, even if they appear to be able
 ;;; to call the target.
 
-(setq noreturn-list '( Fsignal Fthrow wrong_type_argument ))
+(defvar find-gc-noreturn-list '(Fsignal Fthrow wrong_type_argument))
+
+;;; This was originally generated directory-files, but there were
+;;; too many files there that were not actually compiled.  The
+;;; list below was created for a HP-UX 7.0 system.
+
+(defvar find-gc-source-files
+  '("dispnew.c" "scroll.c" "xdisp.c" "window.c"
+    "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c"
+    "keymap.c" "sysdep.c" "buffer.c" "filelock.c"
+    "insdel.c" "marker.c" "minibuf.c" "fileio.c"
+    "dired.c" "filemode.c" "cmds.c" "casefiddle.c"
+    "indent.c" "search.c" "regex.c" "undo.c"
+    "alloc.c" "data.c" "doc.c" "editfns.c"
+    "callint.c" "eval.c" "fns.c" "print.c" "lread.c"
+    "abbrev.c" "syntax.c" "unexec.c"
+    "bytecode.c" "process.c" "callproc.c" "doprnt.c"
+    "x11term.c" "x11fns.c"))
 
 
-;;; This produces an a-list of functions in subrs-called.  The cdr of
-;;; each entry is a list of functions which the function in car calls.
+(defun find-gc-unsafe ()
+  "Return a list of unsafe functions--that is, which can call GC.
+Also store it in `find-gc-unsafe'."
+  (trace-call-tree nil)
+  (trace-use-tree)
+  (find-unsafe-funcs 'Fgarbage_collect)
+  (setq find-gc-unsafe-list
+	(sort find-gc-unsafe-list
+	      (function (lambda (x y)
+			  (string-lessp (car x) (car y))))))
+)
+
+;;; This does a depth-first search to find all functions that can
+;;; ultimately call the function "target".  The result is an a-list
+;;; in find-gc-unsafe-list; the cars are the unsafe functions, and the cdrs
+;;; are (one of) the unsafe functions that these functions directly
+;;; call.
+
+(defun find-unsafe-funcs (target)
+  (setq find-gc-unsafe-list (list (list target)))
+  (trace-unsafe target)
+)
+
+(defun trace-unsafe (func)
+  (let ((used (assq func find-gc-subrs-callers)))
+    (or used
+	(error "No find-gc-subrs-callers for %s" (car find-gc-unsafe-list)))
+    (while (setq used (cdr used))
+      (or (assq (car used) find-gc-unsafe-list)
+	  (memq (car used) find-gc-noreturn-list)
+	  (progn
+	    (push (cons (car used) func) find-gc-unsafe-list)
+	    (trace-unsafe (car used))))))
+)
+
+
+
 
 (defun trace-call-tree (&optional already-setup)
   (message "Setting up directories...")
@@ -83,12 +113,12 @@
 	(call-process "csh" nil nil nil "-c" "mkdir /tmp/esrc")
 	(call-process "csh" nil nil nil "-c"
 		      (format "ln -s %s/*.[ch] /tmp/esrc"
-			      emacs-source-directory))))
+			      find-gc-source-directory))))
   (save-excursion
     (set-buffer (get-buffer-create "*Trace Call Tree*"))
-    (setq subrs-called nil)
+    (setq find-gc-subrs-called nil)
     (let ((case-fold-search nil)
-	  (files source-files)
+	  (files find-gc-source-files)
 	  name entry)
       (while files
 	(message "Compiling %s..." (car files))
@@ -105,7 +135,7 @@
 						     (match-end 0))))
 		(message "%s : %s" (car files) name)
 		(setq entry (list name)
-		      subrs-called (cons entry subrs-called)))
+		      find-gc-subrs-called (cons entry find-gc-subrs-called)))
 	    (if (looking-at ".*\n?.*\"\\([A-Za-z0-9_]+\\)\"")
 		(progn
 		  (setq name (intern (buffer-substring (match-beginning 1)
@@ -117,34 +147,14 @@
 )
 
 
-;;; This was originally generated directory-files, but there were
-;;; too many files there that were not actually compiled.  The
-;;; list below was created for a HP-UX 7.0 system.
-
-(setq source-files '("dispnew.c" "scroll.c" "xdisp.c" "window.c"
-		     "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c"
-		     "keymap.c" "sysdep.c" "buffer.c" "filelock.c"
-		     "insdel.c" "marker.c" "minibuf.c" "fileio.c"
-		     "dired.c" "filemode.c" "cmds.c" "casefiddle.c"
-		     "indent.c" "search.c" "regex.c" "undo.c"
-		     "alloc.c" "data.c" "doc.c" "editfns.c"
-		     "callint.c" "eval.c" "fns.c" "print.c" "lread.c"
-		     "abbrev.c" "syntax.c" "unexec.c"
-		     "bytecode.c" "process.c" "callproc.c" "doprnt.c"
-		     "x11term.c" "x11fns.c"))
-
-
-;;; This produces an inverted a-list in subrs-used.  The cdr of each
-;;; entry is a list of functions that call the function in car.
-
 (defun trace-use-tree ()
-  (setq subrs-used (mapcar 'list (mapcar 'car subrs-called)))
-  (let ((ptr subrs-called)
+  (setq find-gc-subrs-callers (mapcar 'list (mapcar 'car find-gc-subrs-called)))
+  (let ((ptr find-gc-subrs-called)
 	p2 found)
     (while ptr
       (setq p2 (car ptr))
       (while (setq p2 (cdr p2))
-	(if (setq found (assq (car p2) subrs-used))
+	(if (setq found (assq (car p2) find-gc-subrs-callers))
 	    (setcdr found (cons (car (car ptr)) (cdr found)))))
       (setq ptr (cdr ptr))))
 )
--- a/lisp/emacs-lisp/lisp-mode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -54,8 +54,9 @@
       (modify-syntax-entry ?\t "    " table)
       (modify-syntax-entry ?\f "    " table)
       (modify-syntax-entry ?\n ">   " table)
-      ;; Give CR the same syntax as newline, for selective-display.
-      (modify-syntax-entry ?\^m ">   " table)
+;;; This is probably obsolete since nowadays such features use overlays.
+;;;      ;; Give CR the same syntax as newline, for selective-display.
+;;;      (modify-syntax-entry ?\^m ">   " table)
       (modify-syntax-entry ?\; "<   " table)
       (modify-syntax-entry ?` "'   " table)
       (modify-syntax-entry ?' "'   " table)
--- a/lisp/emacs-lisp/re-builder.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emacs-lisp/re-builder.el	Fri Jul 22 08:27:27 2005 +0000
@@ -319,7 +319,8 @@
       ;; emacs/xemacs compatibility
       (if (fboundp 'frame-parameter)
 	  (frame-parameter (selected-frame) 'display-type)
-	(frame-property (selected-frame) 'display-type))))
+	(if (fboundp 'frame-property)
+	    (frame-property (selected-frame) 'display-type)))))
 
 (defsubst reb-lisp-syntax-p ()
   "Return non-nil if RE Builder uses a Lisp syntax."
@@ -331,10 +332,7 @@
 
 ;;; This is to help people find this in Apropos.
 ;;;###autoload
-(defun regexp-builder ()
-  "Alias for `re-builder': Construct a regexp interactively."
-  (interactive)
-  (re-builder))
+(defalias 'regexp-builder 're-builder)
 
 ;;;###autoload
 (defun re-builder ()
@@ -610,7 +608,8 @@
 (defun reb-cook-regexp (re)
   "Return RE after processing it according to `reb-re-syntax'."
   (cond ((eq reb-re-syntax 'lisp-re)
-	 (lre-compile-string (eval (car (read-from-string re)))))
+	 (if (fboundp 'lre-compile-string)
+	     (lre-compile-string (eval (car (read-from-string re))))))
 	((eq reb-re-syntax 'sregex)
 	 (apply 'sregex (eval (car (read-from-string re)))))
 	((eq reb-re-syntax 'rx)
--- a/lisp/emulation/cua-base.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emulation/cua-base.el	Fri Jul 22 08:27:27 2005 +0000
@@ -62,7 +62,7 @@
 ;; If you really need to perform a command which starts with one of
 ;; the prefix keys even when the region is active, you have three options:
 ;; - press the prefix key twice very quickly (within 0.2 seconds),
-;; - press the prefix key and the following key within 0.2 seconds), or
+;; - press the prefix key and the following key within 0.2 seconds, or
 ;; - use the SHIFT key with the prefix key, i.e. C-X or C-C
 ;;
 ;; This behaviour can be customized via the
@@ -274,7 +274,7 @@
 (defcustom cua-enable-cua-keys t
   "*Enable using C-z, C-x, C-c, and C-v for undo, cut, copy, and paste.
 If the value is t, these mappings are always enabled.  If the value is
-'shift, these keys are only enabled if the last region was marked with
+`shift', these keys are only enabled if the last region was marked with
 a shifted movement key.  If the value is nil, these keys are never
 enabled."
   :type '(choice (const :tag "Disabled" nil)
@@ -314,9 +314,9 @@
   "*If non-nil, registers are supported via numeric prefix arg.
 If the value is t, any numeric prefix arg in the range 0 to 9 will be
 interpreted as a register number.
-If the value is not-ctrl-u, using C-u to enter a numeric prefix is not
+If the value is `not-ctrl-u', using C-u to enter a numeric prefix is not
 interpreted as a register number.
-If the value is ctrl-u-only, only numeric prefix entered with C-u is
+If the value is `ctrl-u-only', only numeric prefix entered with C-u is
 interpreted as a register number."
   :type '(choice (const :tag "Disabled" nil)
 		 (const :tag "Enabled, but C-u arg is not a register" not-ctrl-u)
@@ -331,7 +331,7 @@
 
 (defcustom cua-use-hyper-key nil
   "*If non-nil, bind rectangle commands to H-... instead of M-....
-If set to 'also, toggle region command is also on C-return.
+If set to `also', toggle region command is also on C-return.
 Must be set prior to enabling CUA."
   :type '(choice (const :tag "Meta key and C-return" nil)
 		 (const :tag "Hyper key only" only)
@@ -362,7 +362,7 @@
   "*If non-nil, rectangles have virtual straight edges.
 Note that although rectangles are always DISPLAYED with straight edges, the
 buffer is NOT modified, until you execute a command that actually modifies it.
-\[M-p] toggles this feature when a rectangle is active."
+M-p toggles this feature when a rectangle is active."
   :type 'boolean
   :group 'cua)
 
@@ -1060,118 +1060,122 @@
 
 ;;; Pre-command hook
 
-(defun cua--pre-command-handler ()
-  (condition-case nil
-      (let ((movement (eq (get this-command 'CUA) 'move)))
+(defun cua--pre-command-handler-1 ()
+  (let ((movement (eq (get this-command 'CUA) 'move)))
 
-	;; Cancel prefix key timeout if user enters another key.
-	(when cua--prefix-override-timer
-	  (if (timerp cua--prefix-override-timer)
-	      (cancel-timer cua--prefix-override-timer))
-	  (setq cua--prefix-override-timer nil))
+    ;; Cancel prefix key timeout if user enters another key.
+    (when cua--prefix-override-timer
+      (if (timerp cua--prefix-override-timer)
+	  (cancel-timer cua--prefix-override-timer))
+      (setq cua--prefix-override-timer nil))
 
-	;; Handle shifted cursor keys and other movement commands.
-	;; If region is not active, region is activated if key is shifted.
-	;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC).
-	;; If rectangle is active, expand rectangle in specified direction and ignore the movement.
-	(if movement
-	    (cond
-	     ((if window-system
-		  (memq 'shift (event-modifiers
-				(aref (this-single-command-raw-keys) 0)))
-		(or
-		 (memq 'shift (event-modifiers
-			       (aref (this-single-command-keys) 0)))
-		 ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home.
-		 (and (boundp 'function-key-map)
-		      function-key-map
-		      (let ((ev (lookup-key function-key-map
-					   (this-single-command-raw-keys))))
-			(and (vector ev)
-			     (symbolp (setq ev (aref ev 0)))
-			     (string-match "S-" (symbol-name ev)))))))
-	      (unless mark-active
-		(push-mark-command nil t))
-	      (setq cua--last-region-shifted t)
-	      (setq cua--explicit-region-start nil))
-	     ((or cua--explicit-region-start cua--rectangle)
-	      (unless mark-active
-		(push-mark-command nil nil)))
-	     (t
-	      ;; If we set mark-active to nil here, the region highlight will not be
-	      ;; removed by the direct_output_ commands.
-	      (setq deactivate-mark t)))
+    ;; Handle shifted cursor keys and other movement commands.
+    ;; If region is not active, region is activated if key is shifted.
+    ;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC).
+    ;; If rectangle is active, expand rectangle in specified direction and ignore the movement.
+    (if movement
+	(cond
+	 ((if window-system
+	      (memq 'shift (event-modifiers
+			    (aref (this-single-command-raw-keys) 0)))
+	    (or
+	     (memq 'shift (event-modifiers
+			   (aref (this-single-command-keys) 0)))
+	     ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home.
+	     (and (boundp 'function-key-map)
+		  function-key-map
+		  (let ((ev (lookup-key function-key-map
+					(this-single-command-raw-keys))))
+		    (and (vector ev)
+			 (symbolp (setq ev (aref ev 0)))
+			 (string-match "S-" (symbol-name ev)))))))
+	  (unless mark-active
+	    (push-mark-command nil t))
+	  (setq cua--last-region-shifted t)
+	  (setq cua--explicit-region-start nil))
+	 ((or cua--explicit-region-start cua--rectangle)
+	  (unless mark-active
+	    (push-mark-command nil nil)))
+	 (t
+	  ;; If we set mark-active to nil here, the region highlight will not be
+	  ;; removed by the direct_output_ commands.
+	  (setq deactivate-mark t)))
 
-	  ;; Handle delete-selection property on other commands
-	  (if (and mark-active (not deactivate-mark))
-	      (let* ((ds (or (get this-command 'delete-selection)
-			     (get this-command 'pending-delete)))
-		     (nc (cond
-			  ((not ds) nil)
-			  ((eq ds 'yank)
-			   'cua-paste)
-			  ((eq ds 'kill)
-			   (if cua--rectangle
-			       'cua-copy-rectangle
-			     'cua-copy-region))
-			  ((eq ds 'supersede)
-			   (if cua--rectangle
-			       'cua-delete-rectangle
-			     'cua-delete-region))
-			  (t
-			   (if cua--rectangle
-			       'cua-delete-rectangle ;; replace?
-			     'cua-replace-region)))))
-		(if nc
-		    (setq this-original-command this-command
-			  this-command nc)))))
+      ;; Handle delete-selection property on other commands
+      (if (and mark-active (not deactivate-mark))
+	  (let* ((ds (or (get this-command 'delete-selection)
+			 (get this-command 'pending-delete)))
+		 (nc (cond
+		      ((not ds) nil)
+		      ((eq ds 'yank)
+		       'cua-paste)
+		      ((eq ds 'kill)
+		       (if cua--rectangle
+			   'cua-copy-rectangle
+			 'cua-copy-region))
+		      ((eq ds 'supersede)
+		       (if cua--rectangle
+			   'cua-delete-rectangle
+			 'cua-delete-region))
+		      (t
+		       (if cua--rectangle
+			   'cua-delete-rectangle ;; replace?
+			 'cua-replace-region)))))
+	    (if nc
+		(setq this-original-command this-command
+		      this-command nc)))))
 
-	;; Detect extension of rectangles by mouse or other movement
-	(setq cua--buffer-and-point-before-command
-	      (if cua--rectangle (cons (current-buffer) (point))))
-	)
-    (error nil)))
+    ;; Detect extension of rectangles by mouse or other movement
+    (setq cua--buffer-and-point-before-command
+	  (if cua--rectangle (cons (current-buffer) (point))))))
+
+(defun cua--pre-command-handler ()
+  (when cua-mode
+    (condition-case nil
+	(cua--pre-command-handler-1)
+    (error nil))))
 
 ;;; Post-command hook
 
-(defun cua--post-command-handler ()
-  (condition-case nil
-      (progn
-	(when cua--global-mark-active
-	  (cua--global-mark-post-command))
-	(when (fboundp 'cua--rectangle-post-command)
-	  (cua--rectangle-post-command))
-	(setq cua--buffer-and-point-before-command nil)
-	(if (or (not mark-active) deactivate-mark)
-	    (setq cua--explicit-region-start nil))
+(defun cua--post-command-handler-1 ()
+  (when cua--global-mark-active
+    (cua--global-mark-post-command))
+  (when (fboundp 'cua--rectangle-post-command)
+    (cua--rectangle-post-command))
+  (setq cua--buffer-and-point-before-command nil)
+  (if (or (not mark-active) deactivate-mark)
+      (setq cua--explicit-region-start nil))
+
+  ;; Debugging
+  (if cua--debug
+      (cond
+       (cua--rectangle (cua--rectangle-assert))
+       (mark-active (message "Mark=%d Point=%d Expl=%s"
+			     (mark t) (point) cua--explicit-region-start))))
 
-	;; Debugging
-	(if cua--debug
-	    (cond
-	     (cua--rectangle (cua--rectangle-assert))
-	     (mark-active (message "Mark=%d Point=%d Expl=%s"
-				   (mark t) (point) cua--explicit-region-start))))
+  ;; Disable transient-mark-mode if rectangle active in current buffer.
+  (if (not (window-minibuffer-p (selected-window)))
+      (setq transient-mark-mode (and (not cua--rectangle)
+				     (if cua-highlight-region-shift-only
+					 (not cua--explicit-region-start)
+				       t))))
+  (if cua-enable-cursor-indications
+      (cua--update-indications))
 
-	;; Disable transient-mark-mode if rectangle active in current buffer.
-	(if (not (window-minibuffer-p (selected-window)))
-	    (setq transient-mark-mode (and (not cua--rectangle)
-					   (if cua-highlight-region-shift-only
-					       (not cua--explicit-region-start)
-					     t))))
-	(if cua-enable-cursor-indications
-	    (cua--update-indications))
+  (cua--select-keymaps))
 
-	(cua--select-keymaps)
-	)
-
-    (error nil)))
+(defun cua--post-command-handler ()
+  (when cua-mode
+    (condition-case nil
+	(cua--post-command-handler-1)
+      (error nil))))
 
 
 ;;; Keymaps
 
 (defun cua--M/H-key (map key fct)
   ;; bind H-KEY or M-KEY to FCT in MAP
-  (if (eq key 'space) (setq key ? ))
+  (if (eq key 'space) (setq key ?\s))
   (unless (listp key) (setq key (list key)))
   (define-key map (vector (cons (if cua-use-hyper-key 'hyper 'meta) key)) fct))
 
@@ -1240,7 +1244,7 @@
     (cua--M/H-key cua-global-keymap 'space	'cua-set-rectangle-mark)
     (define-key cua-global-keymap [(hyper mouse-1)] 'cua-mouse-set-rectangle-mark))
 
-  (define-key cua-global-keymap [(shift control ? )]	'cua-toggle-global-mark)
+  (define-key cua-global-keymap [(shift control ?\s)]	'cua-toggle-global-mark)
 
   ;; replace region with rectangle or element on kill ring
   (define-key cua-global-keymap [remap yank]		'cua-paste)
@@ -1328,10 +1332,26 @@
 ;;;###autoload
 (define-minor-mode cua-mode
   "Toggle CUA key-binding mode.
-When enabled, using shifted movement keys will activate the region (and
-highlight the region using `transient-mark-mode'), and typed text replaces
-the active selection.  C-z, C-x, C-c, and C-v will undo, cut, copy, and
-paste (in addition to the normal Emacs bindings)."
+When enabled, using shifted movement keys will activate the
+region (and highlight the region using `transient-mark-mode'),
+and typed text replaces the active selection.
+
+Also when enabled, you can use C-z, C-x, C-c, and C-v to undo,
+cut, copy, and paste in addition to the normal Emacs bindings.
+The C-x and C-c keys only do cut and copy when the region is
+active, so in most cases, they do not conflict with the normal
+function of these prefix keys.
+
+If you really need to perform a command which starts with one of
+the prefix keys even when the region is active, you have three
+options:
+- press the prefix key twice very quickly (within 0.2 seconds),
+- press the prefix key and the following key within 0.2 seconds, or
+- use the SHIFT key with the prefix key, i.e. C-S-x or C-S-c.
+
+You can customize `cua-enable-cua-keys' to completely disable the
+CUA bindings, or `cua-prefix-override-inhibit-delay' to change
+the prefix fallback behavior."
   :global t
   :group 'cua
   :set-after '(cua-enable-modeline-indications cua-use-hyper-key)
@@ -1393,6 +1413,15 @@
 		 (if (or (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " enabled" "")))
     (setq cua--saved-state nil))))
 
+
+;;;###autoload
+(defun cua-selection-mode (arg)
+  "Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings."
+  (interactive "P")
+  (setq-default cua-enable-cua-keys nil)
+  (cua-mode arg))
+
+
 (defun cua-debug ()
   "Toggle CUA debugging."
   (interactive)
--- a/lisp/emulation/viper-cmd.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emulation/viper-cmd.el	Fri Jul 22 08:27:27 2005 +0000
@@ -774,7 +774,8 @@
 	   )
 
 	  (if (commandp com)
-	      (progn
+	      ;; pretend that current state is the state we excaped to
+	      (let ((viper-current-state state))
 		(setq prefix-arg (or prefix-arg arg))
 		(command-execute com)))
 	  )
@@ -996,9 +997,12 @@
 	(inhibit-quit t))
     (if (viper-ESC-event-p event)
 	(progn
-	  (if (viper-fast-keysequence-p)
+	  ;; Emacs 22.50.8 introduced a bug, which makes even a single ESC into
+	  ;; a fast keyseq. To guard against this, we added a check if there
+	  ;; are other events as well
+	  (if (and (viper-fast-keysequence-p) unread-command-events)
 	      (progn
-		(let (minor-mode-map-alist)
+		(let (minor-mode-map-alist emulation-mode-map-alists)
 		  (viper-set-unread-command-events event)
 		  (setq keyseq (read-key-sequence nil 'continue-echo))
 		  ) ; let
--- a/lisp/emulation/viper-init.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/emulation/viper-init.el	Fri Jul 22 08:27:27 2005 +0000
@@ -362,8 +362,8 @@
 (defun viper-activate-input-method ()
   (cond ((and viper-emacs-p (fboundp 'activate-input-method))
 	 (activate-input-method default-input-method))
-	((and viper-xemacs-p (fboundp 'quail-mode))
-	 (quail-mode 1))))
+	((featurep 'xemacs)
+	 (if (fboundp 'quail-mode) (quail-mode 1)))))
 
 ;; Set quail-mode to ARG
 (defun viper-set-input-method (arg)
--- a/lisp/eshell/em-hist.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/eshell/em-hist.el	Fri Jul 22 08:27:27 2005 +0000
@@ -204,6 +204,8 @@
   (define-key eshell-isearch-map [(control ?c)] 'eshell-isearch-cancel-map)
   (define-key eshell-isearch-cancel-map [(control ?c)] 'eshell-isearch-cancel))
 
+(defvar eshell-rebind-keys-alist)
+
 ;;; Functions:
 
 (defun eshell-hist-initialize ()
@@ -217,10 +219,10 @@
 
   (if (and (eshell-using-module 'eshell-rebind)
 	   (not eshell-non-interactive-p))
-      (let ((rebind-alist (symbol-value 'eshell-rebind-keys-alist)))
+      (let ((rebind-alist eshell-rebind-keys-alist))
 	(make-local-variable 'eshell-rebind-keys-alist)
-	(set 'eshell-rebind-keys-alist
-	     (append rebind-alist eshell-hist-rebind-keys-alist))
+	(setq eshell-rebind-keys-alist
+	      (append rebind-alist eshell-hist-rebind-keys-alist))
 	(set (make-local-variable 'search-invisible) t)
 	(set (make-local-variable 'search-exit-option) t)
 	(add-hook 'isearch-mode-hook
--- a/lisp/eshell/em-ls.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/eshell/em-ls.el	Fri Jul 22 08:27:27 2005 +0000
@@ -64,13 +64,13 @@
   :group 'eshell-ls)
 
 (defcustom eshell-ls-dired-initial-args nil
-  "*If non-nil, args is included before any call to `ls' in dired.
+  "*If non-nil, args is included before any call to `ls' in Dired.
 This is useful for enabling human-readable format (-h), for example."
   :type '(repeat :tag "Arguments" string)
   :group 'eshell-ls)
 
 (defcustom eshell-ls-use-in-dired nil
-  "*If non-nil, use `eshell-ls' to read directories in dired."
+  "*If non-nil, use `eshell-ls' to read directories in Dired."
   :set (lambda (symbol value)
 	 (if value
 	     (unless (and (boundp 'eshell-ls-use-in-dired)
@@ -158,7 +158,7 @@
 (defface eshell-ls-missing
   '((((class color) (background light)) (:foreground "Red" :weight bold))
     (((class color) (background dark)) (:foreground "Red" :weight bold)))
-  "*The face used for highlighting non-existant file names."
+  "*The face used for highlighting non-existent file names."
   :group 'eshell-ls)
 ;; backward-compatibility alias
 (put 'eshell-ls-missing-face 'face-alias 'eshell-ls-missing)
@@ -863,8 +863,7 @@
 	(cons col-widths newfiles)))))
 
 (defun eshell-ls-decorated-name (file)
-  "Return FILE, possibly decorated.
-Use TRUENAME for predicate tests, if passed."
+  "Return FILE, possibly decorated."
   (if eshell-ls-use-colors
       (let ((face
 	     (cond
--- a/lisp/faces.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/faces.el	Fri Jul 22 08:27:27 2005 +0000
@@ -385,7 +385,7 @@
 (defun face-attribute-merged-with (attribute value faces &optional frame)
   "Merges ATTRIBUTE, initially VALUE, with faces from FACES until absolute.
 FACES may be either a single face or a list of faces.
-\[This is an internal function]"
+\[This is an internal function.]"
   (cond ((not (face-attribute-relative-p attribute value))
 	 value)
 	((null faces)
@@ -1095,7 +1095,7 @@
 
 (defun read-face-font (face &optional frame)
   "Read the name of a font for FACE on FRAME.
-If optional argument FRAME Is nil or omitted, use the selected frame."
+If optional argument FRAME is nil or omitted, use the selected frame."
   (let ((completion-ignore-case t))
     (completing-read (format "Set font attributes of face `%s' from font: " face)
 		     (append (fontset-list) (x-list-fonts "*" nil frame)))))
@@ -1103,7 +1103,7 @@
 
 (defun read-all-face-attributes (face &optional frame)
   "Interactively read all attributes for FACE.
-If optional argument FRAME Is nil or omitted, use the selected frame.
+If optional argument FRAME is nil or omitted, use the selected frame.
 Value is a property list of attribute names and new values."
   (let (result)
     (dolist (attribute face-attribute-name-alist result)
@@ -1117,7 +1117,7 @@
 If optional argument FRAME is nil or omitted, modify the face used
 for newly created frame, i.e. the global face.
 For non-interactive use, `set-face-attribute' is preferred.
-When called from elisp, if FACE is nil, all arguments but FRAME are ignored
+When called from Lisp, if FACE is nil, all arguments but FRAME are ignored
 and the face and its settings are obtained by querying the user."
   (interactive)
   (if face
@@ -1317,7 +1317,7 @@
 		(terpri))
 	      (dolist (a attrs)
 		(let ((attr (face-attribute f (car a) frame)))
-		  (insert (make-string (- max-width (length (cdr a))) ?\ )
+		  (insert (make-string (- max-width (length (cdr a))) ?\s)
 			  (cdr a) ": " (format "%s" attr) "\n")))))
 	  (terpri)))
       (print-help-return-message))))
@@ -1331,7 +1331,7 @@
 ;; face implementation.
 
 (defun face-attr-construct (face &optional frame)
-  "Return a defface-style attribute list for FACE on FRAME.
+  "Return a `defface'-style attribute list for FACE on FRAME.
 Value is a property list of pairs ATTRIBUTE VALUE for all specified
 face attributes of FACE where ATTRIBUTE is the attribute name and
 VALUE is the specified value of that attribute."
@@ -1836,8 +1836,8 @@
 ;; Update the colors of FACE, after FRAME's own colors have been
 ;; changed.
 
-(defalias 'frame-update-face-colors 'frame-set-background-mode)
-(make-obsolete 'frame-update-face-colors 'frame-set-background-mode "21.1")
+(define-obsolete-function-alias 'frame-update-face-colors
+    'frame-set-background-mode "21.1")
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1883,12 +1883,10 @@
   :group 'basic-faces)
 
 (defface mode-line-highlight
-  '((((class color) (min-colors 88) (background light))
-      :background "RoyalBlue4" :foreground "white")
-     (((class color) (min-colors 88) (background dark))
-      :background "light sky blue" :foreground "black")
-     (t
-     :inverse-video t))
+  '((((class color) (min-colors 88))
+     :box (:line-width 2 :color "grey40" :style released-button))
+    (t
+     :inherit highlight))
   "Basic mode line face for highlighting."
   :version "22.1"
   :group 'modeline
@@ -2058,7 +2056,7 @@
      ;; because in some cases the display engine will do it's own
      ;; workaround (to `dim' on ttys)
      :slant italic))
-  "Basic italic font."
+  "Basic italic face."
   :group 'basic-faces)
 
 
@@ -2150,8 +2148,14 @@
   :version "22.1")
 
 (defface shadow
-  '((((background dark))  :foreground "grey70")
-    (((background light)) :foreground "grey50"))
+  '((((class color grayscale) (min-colors 88) (background light))
+     :foreground "grey50")
+    (((class color grayscale) (min-colors 88) (background dark))
+     :foreground "grey70")
+    (((class color) (min-colors 8) (background light))
+     :foreground "green")
+    (((class color) (min-colors 8) (background dark))
+     :foreground "yellow"))
   "Basic face for shadowed text."
   :group 'basic-faces
   :version "22.1")
--- a/lisp/files.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/files.el	Fri Jul 22 08:27:27 2005 +0000
@@ -159,8 +159,7 @@
   :type 'boolean
   :group 'find-file)
 
-(defcustom revert-without-query
-  nil
+(defcustom revert-without-query nil
   "*Specify which files should be reverted without query.
 The value is a list of regular expressions.
 If the file name matches one of these regular expressions,
@@ -178,7 +177,7 @@
 (put 'buffer-file-number 'permanent-local t)
 
 (defvar buffer-file-numbers-unique (not (memq system-type '(windows-nt)))
-  "Non-nil means that buffer-file-number uniquely identifies files.")
+  "Non-nil means that `buffer-file-number' uniquely identifies files.")
 
 (defvar buffer-file-read-only nil
   "Non-nil if visited file was read-only when visited.")
@@ -381,9 +380,8 @@
 These functions are called as soon as the error is detected.
 Variable `buffer-file-name' is already set up.
 The functions are called in the order given until one of them returns non-nil.")
-(defvaralias 'find-file-not-found-hooks 'find-file-not-found-functions)
-(make-obsolete-variable
- 'find-file-not-found-hooks 'find-file-not-found-functions "22.1")
+(define-obsolete-variable-alias 'find-file-not-found-hooks
+    'find-file-not-found-functions "22.1")
 
 ;;;It is not useful to make this a local variable.
 ;;;(put 'find-file-hooks 'permanent-local t)
@@ -395,8 +393,7 @@
   :type 'hook
   :options '(auto-insert)
   :version "22.1")
-(defvaralias 'find-file-hooks 'find-file-hook)
-(make-obsolete-variable 'find-file-hooks 'find-file-hook "22.1")
+(define-obsolete-variable-alias 'find-file-hooks 'find-file-hook "22.1")
 
 (defvar write-file-functions nil
   "List of functions to be called before writing out a buffer to a file.
@@ -412,10 +409,9 @@
 to how to save a buffer to file, for instance, choosing a suitable
 coding system and setting mode bits.  (See Info
 node `(elisp)Saving Buffers'.)  To perform various checks or
-updates before the buffer is saved, use `before-save-hook' .")
+updates before the buffer is saved, use `before-save-hook'.")
 (put 'write-file-functions 'permanent-local t)
-(defvaralias 'write-file-hooks 'write-file-functions)
-(make-obsolete-variable 'write-file-hooks 'write-file-functions "22.1")
+(define-obsolete-variable-alias 'write-file-hooks 'write-file-functions "22.1")
 
 (defvar local-write-file-hooks nil)
 (make-variable-buffer-local 'local-write-file-hooks)
@@ -439,8 +435,8 @@
 To perform various checks or updates before the buffer is saved,
 use `before-save-hook'.")
 (make-variable-buffer-local 'write-contents-functions)
-(defvaralias 'write-contents-hooks 'write-contents-functions)
-(make-obsolete-variable 'write-contents-hooks 'write-contents-functions "22.1")
+(define-obsolete-variable-alias 'write-contents-hooks
+    'write-contents-functions "22.1")
 
 (defcustom enable-local-variables t
   "*Control use of local variables in files you visit.
@@ -866,8 +862,8 @@
   "Change the encoding of FILE's name from CODING to NEW-CODING.
 The value is a new name of FILE.
 Signals a `file-already-exists' error if a file of the new name
-already exists unless optional third argument OK-IF-ALREADY-EXISTS
-is non-nil.  A number as third arg means request confirmation if
+already exists unless optional fourth argument OK-IF-ALREADY-EXISTS
+is non-nil.  A number as fourth arg means request confirmation if
 the new name already exists.  This is what happens in interactive
 use with M-x."
   (interactive
@@ -1326,9 +1322,9 @@
 If a buffer exists visiting FILENAME, return that one, but
 verify that the file has not changed since visited or saved.
 The buffer is not selected, just returned to the caller.
-Optional first arg NOWARN non-nil means suppress any warning messages.
-Optional second arg RAWFILE non-nil means the file is read literally.
-Optional third arg WILDCARDS non-nil means do wildcard processing
+Optional second arg NOWARN non-nil means suppress any warning messages.
+Optional third arg RAWFILE non-nil means the file is read literally.
+Optional fourth arg WILDCARDS non-nil means do wildcard processing
 and visit all the matching files.  When wildcards are actually
 used and expanded, return a list of buffers that are visiting
 the various files."
@@ -2000,7 +1996,7 @@
 to decide the buffer's major mode.
 
 If FUNCTION is nil, then it is not called.  (That is a way of saying
-\"allow `auto-mode-alist' to decide for these files.)")
+\"allow `auto-mode-alist' to decide for these files.\")")
 
 (defun set-auto-mode (&optional keep-mode-if-same)
   "Select major mode appropriate for current buffer.
@@ -3237,7 +3233,7 @@
   "Save the current buffer in its visited file, if it has been modified.
 The hooks `write-contents-functions' and `write-file-functions' get a chance
 to do the job of saving; if they do not, then the buffer is saved in
-the visited file file in the usual way.
+the visited file in the usual way.
 Before and after saving the buffer, this function runs
 `before-save-hook' and `after-save-hook', respectively."
   (interactive)
@@ -4009,7 +4005,7 @@
       (and name				; Can be nil for an indirect buffer
 					; if we killed the base buffer.
 	   (not (string-equal name ""))
-	   (/= (aref name 0) ? )
+	   (/= (aref name 0) ?\s)
 	   (yes-or-no-p
 	    (format "Buffer %s %s.  Kill? "
 		    name
@@ -4392,9 +4388,9 @@
   :group 'dired)
 
 (defun get-free-disk-space (dir)
-  "Return the mount of free space on directory DIR's file system.
+  "Return the amount of free space on directory DIR's file system.
 The result is a string that gives the number of free 1KB blocks,
-or nil if the system call or the program which retrieve the infornmation
+or nil if the system call or the program which retrieve the information
 fail.
 
 This function calls `file-system-info' if it is available, or invokes the
@@ -4642,7 +4638,7 @@
 			  (end (insert-directory-adj-pos
 				(+ beg (read (current-buffer)))
 				error-lines)))
-		      (if (memq (char-after end) '(?\n ?\ ))
+		      (if (memq (char-after end) '(?\n ?\s))
 			  ;; End is followed by \n or by " -> ".
 			  (put-text-property start end 'dired-filename t)
 			;; It seems that we can't trust ls's output as to
--- a/lisp/font-core.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/font-core.el	Fri Jul 22 08:27:27 2005 +0000
@@ -125,7 +125,7 @@
 When you turn Font Lock mode on/off the buffer is fontified/defontified, though
 fontification occurs only if the buffer is less than `font-lock-maximum-size'.
 
-For example, to specify that Font Lock mode use use Lazy Lock mode as a support
+For example, to specify that Font Lock mode uses Lazy Lock mode as a support
 mode and use maximum levels of fontification, put in your ~/.emacs:
 
  (setq font-lock-support-mode 'lazy-lock-mode)
--- a/lisp/font-lock.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/font-lock.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1830,8 +1830,7 @@
   :group 'font-lock-highlighting-faces)
 
 (defface font-lock-regexp-grouping-backslash
-  '((((class color) (min-colors 16)) :inherit escape-glyph)
-    (t :inherit bold))
+  '((t :inherit bold))
   "Font Lock mode face for backslashes in Lisp regexp grouping constructs."
   :group 'font-lock-highlighting-faces)
 
--- a/lisp/forms-d2.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/forms-d2.el	Fri Jul 22 08:27:27 2005 +0000
@@ -32,17 +32,17 @@
 ;; The following functions are used by this form for layout purposes.
 ;;
 (defun arch-tocol (target &optional fill)
-  "Produces a string to skip to column TARGET. Prepends newline if needed.
+  "Produces a string to skip to column TARGET.  Prepends newline if needed.
 The optional FILL should be a character, used to fill to the column."
   (if (null fill)
-      (setq fill ? ))
+      (setq fill ?\s))
   (if (< target (current-column))
       (concat "\n" (make-string target fill))
     (make-string (- target (current-column)) fill)))
 ;;
 (defun arch-rj (target field &optional fill)
   "Produces a string to skip to column TARGET minus the width of field FIELD.
-Prepends newline if needed. The optional FILL should be a character,
+Prepends newline if needed.  The optional FILL should be a character,
 used to fill to the column."
   (arch-tocol (- target (length (nth field forms-fields))) fill))
 
--- a/lisp/frame.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/frame.el	Fri Jul 22 08:27:27 2005 +0000
@@ -592,8 +592,7 @@
   "Functions to run after a frame's font has been changed.")
 
 ;; Alias, kept temporarily.
-(defalias 'new-frame 'make-frame)
-(make-obsolete 'new-frame 'make-frame "22.1")
+(define-obsolete-function-alias 'new-frame 'make-frame "22.1")
 
 (defun make-frame (&optional parameters)
   "Return a newly created frame displaying the current buffer.
@@ -851,7 +850,7 @@
 To get the frame's current default font, use `frame-parameters'.
 
 The default behavior is to keep the numbers of lines and columns in
-the frame, thus may change its pixel size. If optional KEEP-SIZE is
+the frame, thus may change its pixel size.  If optional KEEP-SIZE is
 non-nil (interactively, prefix argument) the current frame size (in
 pixels) is kept by adjusting the numbers of the lines and columns."
   (interactive
@@ -1149,23 +1148,21 @@
 
 
 ;;;; Aliases for backward compatibility with Emacs 18.
-(defalias 'screen-height 'frame-height)
-(defalias 'screen-width 'frame-width)
+(define-obsolete-function-alias 'screen-height 'frame-height) ;before 19.15
+(define-obsolete-function-alias 'screen-width 'frame-width) ;before 19.15
 
 (defun set-screen-width (cols &optional pretend)
-  "Obsolete function to change the size of the screen to COLS columns.
+  "Change the size of the screen to COLS columns.
 Optional second arg non-nil means that redisplay should use COLS columns
 but that the idea of the actual width of the frame should not be changed.
-This function is provided only for compatibility with Emacs 18; new code
-should use `set-frame-width instead'."
+This function is provided only for compatibility with Emacs 18."
   (set-frame-width (selected-frame) cols pretend))
 
 (defun set-screen-height (lines &optional pretend)
-  "Obsolete function to change the height of the screen to LINES lines.
+  "Change the height of the screen to LINES lines.
 Optional second arg non-nil means that redisplay should use LINES lines
 but that the idea of the actual height of the screen should not be changed.
-This function is provided only for compatibility with Emacs 18; new code
-should use `set-frame-height' instead."
+This function is provided only for compatibility with Emacs 18."
   (set-frame-height (selected-frame) lines pretend))
 
 (defun delete-other-frames (&optional frame)
@@ -1188,14 +1185,12 @@
       (when (eq (frame-parameter frame 'minibuffer) 'only)
 	(delete-frame frame)))))
 
-(make-obsolete 'screen-height 'frame-height) ;before 19.15
-(make-obsolete 'screen-width  'frame-width) ;before 19.15
 (make-obsolete 'set-screen-width 'set-frame-width) ;before 19.15
 (make-obsolete 'set-screen-height 'set-frame-height) ;before 19.15
 
 ;; miscellaneous obsolescence declarations
-(defvaralias 'delete-frame-hook 'delete-frame-functions)
-(make-obsolete-variable 'delete-frame-hook 'delete-frame-functions "22.1")
+(define-obsolete-variable-alias 'delete-frame-hook
+    'delete-frame-functions "22.1")
 
 
 ;; Highlighting trailing whitespace.
@@ -1286,8 +1281,7 @@
 				   'blink-cursor-start)))
     (internal-show-cursor nil t)))
 
-(defvaralias 'blink-cursor 'blink-cursor-mode)
-(make-obsolete-variable 'blink-cursor 'blink-cursor-mode "22.1")
+(define-obsolete-variable-alias 'blink-cursor 'blink-cursor-mode "22.1")
 
 (defun blink-cursor-start ()
   "Timer function called from the timer `blink-cursor-idle-timer'.
@@ -1333,7 +1327,7 @@
 
 
 (defcustom cursor-in-non-selected-windows t
-  "*Non-nil means show a hollow box cursor in non-selected-windows.
+  "*Non-nil means show a hollow box cursor in non-selected windows.
 If nil, don't show a cursor except in the selected window.
 Use Custom to set this variable to get the display updated."
   :tag "Cursor in non-selected windows"
--- a/lisp/gnus/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/gnus/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,25 @@
+2005-07-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* mml.el (mml-minibuffer-read-disposition): Don't use inline by default
+	for text/rtf.  Display default in prompt.  Pass default for M-n.
+
+	* mm-uu.el (mm-uu-copy-to-buffer): Use with-current-buffer.
+
+2005-07-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-button-mailto): Remove
+	save-selected-window-window hackery because it relies on
+	save-selected-window internals.
+
+2005-07-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-next-page): Use gnus-end-of-window.
+	(gnus-article-next-page-1): Use gnus-beginning-of-window.
+	(gnus-article-prev-page): Ditto.
+
+	* gnus-util.el (gnus-beginning-of-window): New function.
+	(gnus-end-of-window): New function.
+
 2005-07-13  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus-salt.el (gnus-pick-mode): Remove the 5th arg of
--- a/lisp/gnus/gnus-art.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/gnus/gnus-art.el	Fri Jul 22 08:27:27 2005 +0000
@@ -5160,7 +5160,7 @@
 If end of article, return non-nil.  Otherwise return nil.
 Argument LINES specifies lines to be scrolled up."
   (interactive "p")
-  (move-to-window-line (max (- -1 scroll-margin) (- -1 (window-body-height))))
+  (gnus-end-of-window)
   (if (save-excursion
 	(end-of-line)
 	(and (pos-visible-in-window-p)	;Not continuation line.
@@ -5189,13 +5189,13 @@
       (end-of-buffer
        ;; Long lines may cause an end-of-buffer error.
        (goto-char (point-max)))))
-  (move-to-window-line (min scroll-margin (window-body-height))))
+  (gnus-beginning-of-window))
 
 (defun gnus-article-prev-page (&optional lines)
   "Show previous page of current article.
 Argument LINES specifies lines to be scrolled down."
   (interactive "p")
-  (move-to-window-line (min scroll-margin (window-body-height)))
+  (gnus-beginning-of-window)
   (if (and gnus-page-broken
 	   (bobp)
 	   (not (save-restriction (widen) (bobp)))) ;Real beginning-of-buffer?
@@ -5209,7 +5209,7 @@
 	      (scroll-down lines)
 	    (beginning-of-buffer
 	     (goto-char (point-min))))
-	(move-to-window-line (min scroll-margin (window-body-height)))))))
+	(gnus-beginning-of-window)))))
 
 (defun gnus-article-only-boring-p ()
   "Decide whether there is only boring text remaining in the article.
--- a/lisp/gnus/gnus-msg.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/gnus/gnus-msg.el	Fri Jul 22 08:27:27 2005 +0000
@@ -466,27 +466,19 @@
   ;; COMPOSEFUNC should return t if succeed.  Undocumented ???
   t)
 
-(defvar save-selected-window-window)
-
 ;;;###autoload
 (defun gnus-button-mailto (address)
   "Mail to ADDRESS."
   (set-buffer (gnus-copy-article-buffer))
   (gnus-setup-message 'message
-    (message-reply address))
-  (and (boundp 'save-selected-window-window)
-       (not (window-live-p save-selected-window-window))
-       (setq save-selected-window-window (selected-window))))
+    (message-reply address)))
 
 ;;;###autoload
 (defun gnus-button-reply (&optional to-address wide)
   "Like `message-reply'."
   (interactive)
   (gnus-setup-message 'message
-    (message-reply to-address wide))
-  (and (boundp 'save-selected-window-window)
-       (not (window-live-p save-selected-window-window))
-       (setq save-selected-window-window (selected-window))))
+    (message-reply to-address wide)))
 
 ;;;###autoload
 (define-mail-user-agent 'gnus-user-agent
--- a/lisp/gnus/gnus-util.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/gnus/gnus-util.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,5 +1,5 @@
 ;;; gnus-util.el --- utility functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -1577,6 +1577,30 @@
   (defalias 'gnus-set-process-query-on-exit-flag
     'process-kill-without-query))
 
+(defun gnus-beginning-of-window ()
+  "Move point to the beginning of the window."
+  (move-to-window-line
+   (if (featurep 'xemacs)
+       0
+     (min scroll-margin
+	  (max 1 (- (window-height)
+		    (if mode-line-format 1 0)
+		    (if (and (boundp 'header-line-format)
+			     (symbol-value 'header-line-format))
+			1 0)))))))
+
+(defun gnus-end-of-window ()
+  "Move point to the end of the window."
+  (move-to-window-line
+   (if (featurep 'xemacs)
+       -1
+     (max (- -1 scroll-margin)
+	  (- -1 (max 1 (- (window-height)
+			  (if mode-line-format 1 0)
+			  (if (and (boundp 'header-line-format)
+				   (symbol-value 'header-line-format))
+			      1 0))))))))
+
 (provide 'gnus-util)
 
 ;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49
--- a/lisp/gnus/mm-uu.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/gnus/mm-uu.el	Fri Jul 22 08:27:27 2005 +0000
@@ -111,8 +111,8 @@
      "^exit 0$"
      mm-uu-shar-extract)
     (forward
-;;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and
-;;; Peter von der Ah\'e <pahe@daimi.au.dk>
+     ;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and
+     ;; Peter von der Ah\'e <pahe@daimi.au.dk>
      "^-+ \\(Start of \\)?Forwarded message"
      "^-+ End \\(of \\)?forwarded message"
      mm-uu-forward-extract
@@ -186,13 +186,12 @@
 (defun mm-uu-copy-to-buffer (&optional from to)
   "Copy the contents of the current buffer to a fresh buffer.
 Return that buffer."
-  (save-excursion
-    (let ((obuf (current-buffer))
-	  (coding-system
-	   ;; Might not exist in non-MULE XEmacs
-	   (when (boundp 'buffer-file-coding-system)
-	     buffer-file-coding-system)))
-      (set-buffer (generate-new-buffer " *mm-uu*"))
+  (let ((obuf (current-buffer))
+        (coding-system
+         ;; Might not exist in non-MULE XEmacs
+         (when (boundp 'buffer-file-coding-system)
+           buffer-file-coding-system)))
+    (with-current-buffer (generate-new-buffer " *mm-uu*")
       (setq buffer-file-coding-system coding-system)
       (insert-buffer-substring obuf from to)
       (current-buffer))))
@@ -496,5 +495,5 @@
 
 (provide 'mm-uu)
 
-;;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c
+;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c
 ;;; mm-uu.el ends here
--- a/lisp/gnus/mml.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/gnus/mml.el	Fri Jul 22 08:27:27 2005 +0000
@@ -942,13 +942,15 @@
     description))
 
 (defun mml-minibuffer-read-disposition (type &optional default)
-  (let* ((default (or default
-		      (if (string-match "^text/.*" type)
-			  "inline"
-			"attachment")))
-	 (disposition (completing-read "Disposition: "
-				       '(("attachment") ("inline") (""))
-				       nil t)))
+  (unless default (setq default
+                        (if (and (string-match "\\`text/" type)
+                                 (not (string-match "\\`text/rtf\\'" type)))
+                            "inline"
+                          "attachment")))
+  (let ((disposition (completing-read
+                      (format "Disposition (default %s): " default)
+                      '(("attachment") ("inline") (""))
+                      nil t nil nil default)))
     (if (not (equal disposition ""))
 	disposition
       default)))
--- a/lisp/help-fns.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/help-fns.el	Fri Jul 22 08:27:27 2005 +0000
@@ -217,13 +217,13 @@
 			(intern (upcase name))))))
 		arglist)))
 
-;;; Could be this, if we make symbol-file do the work below.
-;;; (defun help-C-file-name (subr-or-var kind)
-;;;   "Return the name of the C file where SUBR-OR-VAR is defined.
-;;; KIND should be `var' for a variable or `subr' for a subroutine."
-;;;   (symbol-file (if (symbolp subr-or-var) subr-or-var
-;;; 		 (subr-name subr-or-var))
-;;; 	       (if (eq kind 'var) 'defvar 'defun)))
+;; Could be this, if we make symbol-file do the work below.
+;; (defun help-C-file-name (subr-or-var kind)
+;;   "Return the name of the C file where SUBR-OR-VAR is defined.
+;; KIND should be `var' for a variable or `subr' for a subroutine."
+;;   (symbol-file (if (symbolp subr-or-var) subr-or-var
+;; 		 (subr-name subr-or-var))
+;; 	       (if (eq kind 'var) 'defvar 'defun)))
 ;;;###autoload
 (defun help-C-file-name (subr-or-var kind)
   "Return the name of the C file where SUBR-OR-VAR is defined.
@@ -715,5 +715,5 @@
 
 (provide 'help-fns)
 
-;;; arch-tag: 9e10331c-ae81-4d13-965d-c4819aaab0b3
+;; arch-tag: 9e10331c-ae81-4d13-965d-c4819aaab0b3
 ;;; help-fns.el ends here
--- a/lisp/help-mode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/help-mode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -631,5 +631,5 @@
 
 (provide 'help-mode)
 
-;;; arch-tag: 850954ae-3725-4cb4-8e91-0bf6d52d6b0b
+;; arch-tag: 850954ae-3725-4cb4-8e91-0bf6d52d6b0b
 ;;; help-mode.el ends here
--- a/lisp/hexl.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/hexl.el	Fri Jul 22 08:27:27 2005 +0000
@@ -287,7 +287,7 @@
     (set (make-local-variable 'eldoc-documentation-function)
 	 'hexl-print-current-point-info)
     (eldoc-add-command-completions "hexl-")
-    (eldoc-remove-command "hexl-save-buffer" 
+    (eldoc-remove-command "hexl-save-buffer"
 			  "hexl-current-address")
 
     (if hexl-follow-ascii (hexl-follow-ascii 1)))
@@ -918,7 +918,7 @@
 (defun hexl-activate-ruler ()
   "Activate `ruler-mode'"
   (require 'ruler-mode)
-  (set (make-local-variable 'ruler-mode-ruler-function) 
+  (set (make-local-variable 'ruler-mode-ruler-function)
        'hexl-mode-ruler)
   (ruler-mode 1))
 
@@ -929,7 +929,7 @@
   (with-no-warnings
     (set (make-local-variable 'hl-line-range-function)
 	 'hexl-highlight-line-range)
-    (set (make-local-variable 'hl-line-face) 
+    (set (make-local-variable 'hl-line-face)
 	 'highlight))
   (hl-line-mode 1))
 
@@ -1009,7 +1009,8 @@
   (define-key hexl-mode-map "\C-e" 'hexl-end-of-line)
   (define-key hexl-mode-map "\C-f" 'hexl-forward-char)
 
-  (if (not (eq (key-binding (char-to-string help-char)) 'help-command))
+  (if (not (memq (key-binding (char-to-string help-char))
+                 '(help-command ehelp-command)))
       (define-key hexl-mode-map (char-to-string help-char) 'undefined))
 
   (define-key hexl-mode-map "\C-k" 'undefined)
--- a/lisp/hilit-chg.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/hilit-chg.el	Fri Jul 22 08:27:27 2005 +0000
@@ -81,11 +81,11 @@
 ;;
 ;; Example usage:
 ;; (defun my-highlight-changes-enable-hook ()
-;;   (add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)
+;;   (add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t)
 ;; )
 ;;
 ;; (defun my-highlight-changes-disable-hook ()
-;;   (remove-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)
+;;   (remove-hook 'write-file-functions 'highlight-changes-rotate-faces t)
 ;; )
 ;;
 ;; (add-hook 'highlight-changes-enable-hook 'my-highlight-changes-enable-hook)
@@ -213,7 +213,7 @@
 ;; indentation on inserts gets underlined (which can look pretty ugly!).
 
 (defface highlight-changes
-  '((((min-colors 88) (class color)) (:foreground "red1" ))
+  '((((min-colors 88) (class color)) (:foreground "red1"))
     (((class color)) (:foreground "red" ))
     (t (:inverse-video t)))
   "Face used for highlighting changes."
@@ -270,7 +270,7 @@
 (defcustom highlight-changes-global-initial-state 'passive
   "*What state `global-highlight-changes' should start in.
 This is used if `global-highlight-changes' is called with no argument.
-This variable must be set to either `active' or `passive'"
+This variable must be set to either `active' or `passive'."
   :type '(choice (const :tag "Active" active)
 		 (const :tag "Passive" passive))
   :group 'highlight-changes)
@@ -302,8 +302,8 @@
 Changes mode, or a list whose first element is `not' followed by major
 modes which are not suitable.
 
-t means the buffer is suitable if it is visiting a file and its name
-does not begin with ` ' or `*'.
+A value of t means the buffer is suitable if it is visiting a file and
+its name does not begin with ` ' or `*'.
 
 A value of nil means no buffers are suitable for `global-highlight-changes'
 \(effectively disabling the mode).
@@ -488,7 +488,7 @@
   "Fix change overlays in region between BEG and END.
 
 Ensure the overlays agree with the changes as determined from
-the text properties of type `hilit-chg' ."
+the text properties of type `hilit-chg'."
   ;; Remove or alter overlays in region beg..end
   (let (ov-start ov-end	 props q)
     ;; temp for debugging:
@@ -641,12 +641,12 @@
 \\[highlight-changes-remove-highlight] - remove the change face from the region
 \\[highlight-changes-rotate-faces] - rotate different \"ages\" of changes \
 through
-	various faces.
+	various faces
 
 Hook variables:
-`highlight-changes-enable-hook'  - when enabling Highlight Changes mode.
+`highlight-changes-enable-hook'  - when enabling Highlight Changes mode
 `highlight-changes-toggle-hook'  - when entering active or passive state
-`highlight-changes-disable-hook' - when turning off Highlight Changes mode."
+`highlight-changes-disable-hook' - when turning off Highlight Changes mode"
   (interactive "P")
   (if (or (display-color-p)
 	  (and (fboundp 'x-display-grayscale-p) (x-display-grayscale-p)))
@@ -781,11 +781,11 @@
 face described by the second element, and so on.  Very old changes remain
 shown in the last face in the list.
 
-You can automatically rotate colors when the buffer is saved
-by adding the following to `local-write-file-hooks', by evaling it in the
-buffer to be saved):
+You can automatically rotate colors when the buffer is saved by adding
+this function to `write-file-functions' as a buffer-local value.  To do
+this, eval the following in the buffer to be saved:
 
-  \(add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)"
+  \(add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t)"
   (interactive)
   ;; If not in active mode do nothing but don't complain because this
   ;; may be bound to a hook.
@@ -800,8 +800,7 @@
 	;; and display them all if active
 	(if (eq highlight-changes-mode 'active)
 	    (hilit-chg-display-changes))))
-  ;; This always returns nil so it is safe to use in
-  ;; local-write-file-hook
+  ;; This always returns nil so it is safe to use in write-file-functions
   nil)
 
 ;; ========================================================================
@@ -886,7 +885,7 @@
 If either buffer is modified and is visiting a file, you are prompted
 to save the file.
 
-Unless the buffer is unmodified and visiting a file,  the buffer is
+Unless the buffer is unmodified and visiting a file, the buffer is
 written to a temporary file for comparison.
 
 If a buffer is read-only, differences will be highlighted but no property
@@ -1110,9 +1109,9 @@
 
 A buffer is appropriate for Highlight Changes mode if all these are true:
 - the buffer is not a special buffer (one whose name begins with
-  `*' or ` ')
+  `*' or ` '),
 - the buffer's mode is suitable as per variable
-  `highlight-changes-global-modes'
+  `highlight-changes-global-modes',
 - Highlight Changes mode is not already on for this buffer.
 
 This function is called from `hilit-chg-update-all-buffers' or
--- a/lisp/ido.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/ido.el	Fri Jul 22 08:27:27 2005 +0000
@@ -101,9 +101,9 @@
 ;; The list in {...} are the matching buffers, most recent first
 ;; (buffers visible in the current frame are put at the end of the
 ;; list by default).  At any time I can select the item at the head of
-;; the list by pressing RET.  I can also bring the put the first
-;; element at the end of the list by pressing C-s or [right], or put
-;; the last element at the head of the list by pressing C-r or [left].
+;; the list by pressing RET.  I can also put the first element at the
+;; end of the list by pressing C-s or [right], or bring the last
+;; element to the head of the list by pressing C-r or [left].
 ;;
 ;; The item in [...] indicates what can be added to my input by
 ;; pressing TAB.  In this case, I will get "3" added to my input.
@@ -210,8 +210,7 @@
 ;; Example:
 ;;
 ;; If you have again two Buffers "123456" and "123" then hitting "2" does
-;; not match because "2" is not a PREFIX in any of the buffer-names. This
-;; is the only difference between the substring and prefix matching.
+;; not match because "2" is not a PREFIX in any of the buffer-names.
 
 ;; Flexible matching
 ;; -----------------
@@ -236,14 +235,10 @@
 ;;
 ;; There is limited provision for regexp matching within ido,
 ;; enabled through `ido-enable-regexp' (toggle with C-t).
-;; This allows you to type `c$' for example and see all file names
-;; ending in `c'.  This facility is quite limited though in two
-;; respects.  First, you can't currently type in expressions like
-;; `[0-9]' directly -- you have to type them in when ido-enable-regexp
-;; is nil and then toggle on the regexp functionality.  Likewise,
-;; don't enter an expression containing `\' in regexp mode.  If you
-;; try, ido gets confused, so just hit C-g and try again.  Secondly,
-;; no completion mechanism is currently offered with regexp searching.
+;; This allows you to type `[ch]$' for example and see all file names
+;; ending in `c' or `h'.
+;;
+;; Note: ido-style completion is inhibited when you enable regexp matching.
 
 
 ;; Customization
@@ -1405,7 +1400,7 @@
     (define-key map "\C-s" 'ido-next-match)
     (define-key map "\C-t" 'ido-toggle-regexp)
     (define-key map "\C-z" 'ido-undo-merge-work-directory)
-    (define-key map [(control ? )] 'ido-restrict-to-matches)
+    (define-key map [(control ?\s)] 'ido-restrict-to-matches)
     (define-key map [(control ?@)] 'ido-restrict-to-matches)
     (define-key map [right] 'ido-next-match)
     (define-key map [left] 'ido-prev-match)
@@ -1436,7 +1431,7 @@
       (define-key map [(meta ?m)] 'ido-make-directory)
       (define-key map [(meta ?n)] 'ido-next-work-directory)
       (define-key map [(meta ?o)] 'ido-prev-work-file)
-      (define-key map [(meta ?O)] 'ido-next-work-file)
+      (define-key map [(meta control ?o)] 'ido-next-work-file)
       (define-key map [(meta ?p)] 'ido-prev-work-directory)
       (define-key map [(meta ?s)] 'ido-merge-work-directories)
       )
@@ -2028,7 +2023,8 @@
     (setq item 'file))
   (let ((ido-current-directory (ido-expand-directory default))
 	(ido-context-switch-command switch-cmd)
-        ido-directory-nonreadable ido-directory-too-big
+	ido-directory-nonreadable ido-directory-too-big
+	(minibuffer-completing-file-name t)
 	filename)
 
     (if (or (not ido-mode) (ido-is-slow-ftp-host))
@@ -2056,7 +2052,7 @@
 
 	 ((and ido-use-filename-at-point
 	       (setq fn (if (eq ido-use-filename-at-point 'guess)
-			    (ffap-guesser)
+			    (with-no-warnings (ffap-guesser))
 			  (ffap-string-at-point)))
 	       (not (string-match "^http:/" fn))
 	       (setq d (file-name-directory fn))
@@ -4215,6 +4211,7 @@
 
 (put 'dired-do-rename 'ido 'ignore)
 (put 'ibuffer-find-file 'ido 'find-file)
+(put 'dired-other-window 'ido 'dir)
 
 ;;;###autoload
 (defun ido-read-buffer (prompt &optional default require-match)
@@ -4255,6 +4252,7 @@
 	     (ido-context-switch-command
 	      (if (eq (get this-command 'ido) 'find-file) nil 'ignore))
 	     (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends))
+	     (minibuffer-completing-file-name t)
 	     (ido-current-directory (ido-expand-directory dir))
 	     (ido-directory-nonreadable (not (file-readable-p ido-current-directory)))
 	     (ido-directory-too-big (and (not ido-directory-nonreadable)
@@ -4287,6 +4285,7 @@
 Read directory name, prompting with PROMPT and completing in directory DIR.
 See `read-directory-name' for additional parameters."
   (let* (filename
+	 (minibuffer-completing-file-name t)
 	 (ido-context-switch-command 'ignore)
 	 ido-saved-vc-hb
 	 (ido-current-directory (ido-expand-directory dir))
--- a/lisp/image-file.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/image-file.el	Fri Jul 22 08:27:27 2005 +0000
@@ -118,6 +118,7 @@
 	      (create-image data nil t))
 	     (props
 	      `(display ,image
+			yank-handler (image-file-yank-handler)
 			intangible ,image
 			rear-nonsticky (display intangible)
 			;; This a cheap attempt to make the whole buffer
@@ -135,6 +136,19 @@
 	  (setq truncate-lines t))))
     rval))
 
+;; We use a yank-handler to make yanked images unique, so that
+;; yanking two copies of the same image next to each other are
+;; recognized as two different images.
+(defun image-file-yank-handler (string)
+  "Yank handler for inserting an image into a buffer."
+  (let ((image (get-text-property 0 'display string)))
+    (if (consp image)
+	(put-text-property 0 (length string)
+			   'display
+			   (cons (car image) (cdr image))
+			   string))
+    (insert string)))
+
 (put 'image-file-handler 'safe-magic t)
 (defun image-file-handler (operation &rest args)
   "Filename handler for inserting image files.
--- a/lisp/info.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/info.el	Fri Jul 22 08:27:27 2005 +0000
@@ -96,7 +96,7 @@
 (defface info-xref-visited
   '((default :inherit info-xref)
     (((class color) (background light)) :foreground "magenta4")
-    (((class color) (background dark)) :foreground "magenta3")) ;"violet"?
+    (((class color) (background dark)) :foreground "violet"))
   "Face for visited Info cross-references."
   :group 'info)
 
@@ -3527,7 +3527,10 @@
 	   (Info-goto-emacs-command-node command)))))
 
 (defface info-title-1
-  '((((type tty pc) (class color)) :foreground "green" :weight bold)
+  '((((type tty pc) (class color) (background light))
+     :foreground "green" :weight bold)
+    (((type tty pc) (class color) (background dark))
+     :foreground "yellow" :weight bold)
     (t :height 1.2 :inherit info-title-2))
   "Face for info titles at level 1."
   :group 'info)
--- a/lisp/international/isearch-x.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/international/isearch-x.el	Fri Jul 22 08:27:27 2005 +0000
@@ -98,9 +98,9 @@
 (defun isearch-process-search-multibyte-characters (last-char)
   (if (eq this-command 'isearch-printing-char)
       (let ((overriding-terminal-local-map nil)
-	    (prompt (concat (isearch-message-prefix)))
+	    (prompt (isearch-message-prefix))
 	    (minibuffer-local-map isearch-minibuffer-local-map)
-	    str)
+	    str junk-hist)
 	(if isearch-input-method-function
 	    (let (;; Let input method work rather tersely.
 		  (input-method-verbose-flag nil))
@@ -108,8 +108,8 @@
 		    (cons 'with-input-method
 			  (cons last-char unread-command-events))
 		    ;; Inherit current-input-method in a minibuffer.
-		    str (read-string prompt isearch-message nil nil t))
-	      (if (not str)
+		    str (read-string prompt isearch-message 'junk-hist nil t))
+	      (if (or (not str) (< (length str) (length isearch-message)))
 		  ;; All inputs were deleted while the input method
 		  ;; was working.
 		  (setq str "")
@@ -124,7 +124,7 @@
 	    (setq unread-command-events
 		  (cons 'with-keyboard-coding
 			(cons last-char unread-command-events))
-		  str (read-string prompt)))
+		  str (read-string prompt nil 'junk-hist)))
 
 	(if (and str (> (length str) 0))
 	    (let ((unread-command-events nil))
--- a/lisp/international/mule-cmds.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/international/mule-cmds.el	Fri Jul 22 08:27:27 2005 +0000
@@ -800,7 +800,7 @@
 `prefer-coding-system'.
 
 However, the user is queried if the chosen coding system is
-inconsistent with what would be selected by `set-auto-coding' from
+inconsistent with what would be selected by `find-auto-coding' from
 coding cookies &c. if the contents of the region were read from a
 file.  (That could lead to data corruption in a file subsequently
 re-visited and edited.)
@@ -830,7 +830,33 @@
 	   (not (listp default-coding-system)))
       (setq default-coding-system (list default-coding-system)))
 
-  (let ((no-other-defaults nil))
+  (let ((no-other-defaults nil)
+	auto-cs)
+    (unless (or (stringp from) find-file-literally)    
+      ;; Find an auto-coding that is specified for the the current
+      ;; buffer and file from the region FROM and TO.
+      (save-excursion
+	(save-restriction
+	  (widen)
+	  (goto-char from)
+	  (setq auto-cs (find-auto-coding (or file buffer-file-name "")
+					  (- to from)))
+	  (if auto-cs
+	      (if (coding-system-p (car auto-cs))
+		  (setq auto-cs (car auto-cs))
+		(display-warning
+		 :warning
+		 (format "\
+Invalid coding system `%s' is specified
+for the current buffer/file by the %s.
+It is highly recommended to fix it before writing to a file."
+			 (car auto-cs)
+			 (if (eq (cdr auto-cs) :coding) ":coding tag"
+			   (format "variable `%s'" (cdr auto-cs)))))
+		(or (yes-or-no-p "Really proceed with writing? ")
+		    (error "Save aborted"))
+		(setq auto-cs nil))))))
+
     (if (eq (car default-coding-system) t)
 	(setq no-other-defaults t
 	      default-coding-system (cdr default-coding-system)))
@@ -840,6 +866,15 @@
 	  (mapcar (function (lambda (x) (cons x (coding-system-base x))))
 		  default-coding-system))
 
+    (if (and auto-cs (not no-other-defaults))
+	;; If the file has a coding cookie, try to use it before anything
+	;; else (i.e. before default-coding-system which will typically come
+	;; from file-coding-system-alist).
+	(let ((base (coding-system-base auto-cs)))
+	  (or (memq base '(nil undecided))
+	      (rassq base default-coding-system)
+	      (push (cons auto-cs base) default-coding-system))))
+
     ;; From now on, the list of defaults is reversed.
     (setq default-coding-system (nreverse default-coding-system))
 
@@ -871,52 +906,45 @@
 	     (coding-system-get preferred :mime-charset)
 	     (not (rassq base default-coding-system))
 	     (push (cons preferred base)
-		   default-coding-system)))))
+		   default-coding-system))))
 
-  (if select-safe-coding-system-accept-default-p
-      (setq accept-default-p select-safe-coding-system-accept-default-p))
+    (if select-safe-coding-system-accept-default-p
+	(setq accept-default-p select-safe-coding-system-accept-default-p))
 
-  (let ((codings (find-coding-systems-region from to))
-	(coding-system nil)
-	safe rejected unsafe)
-    ;; Classify the defaults into safe, rejected, and unsafe.
-    (dolist (elt default-coding-system)
-      (if (or (eq (car codings) 'undecided)
-	      (memq (cdr elt) codings))
-	  (if (and (functionp accept-default-p)
-		   (not (funcall accept-default-p (cdr elt))))
-	      (push (car elt) rejected)
-	    (push (car elt) safe))
-	(push (car elt) unsafe)))
-    (if safe
-	(setq coding-system (car safe)))
+    (let ((codings (find-coding-systems-region from to))
+	  (coding-system nil)
+	  safe rejected unsafe)
+      ;; Classify the defaults into safe, rejected, and unsafe.
+      (dolist (elt default-coding-system)
+	(if (or (eq (car codings) 'undecided)
+		(memq (cdr elt) codings))
+	    (if (and (functionp accept-default-p)
+		     (not (funcall accept-default-p (cdr elt))))
+		(push (car elt) rejected)
+	      (push (car elt) safe))
+	  (push (car elt) unsafe)))
+      (if safe
+	  (setq coding-system (car safe)))
 
-    ;; If all the defaults failed, ask a user.
-    (unless coding-system
-      (setq coding-system (select-safe-coding-system-interactively
-			   from to codings unsafe rejected (car codings))))
-
-    (if (and coding-system (vectorp (coding-system-eol-type coding-system)))
-	(let ((eol (coding-system-eol-type buffer-file-coding-system)))
-	  (if (numberp eol)
-	      (setq coding-system
-		    (coding-system-change-eol-conversion coding-system eol)))))
+      ;; If all the defaults failed, ask a user.
+      (unless coding-system
+	(setq coding-system (select-safe-coding-system-interactively
+			     from to codings unsafe rejected (car codings))))
 
-    ;; Check we're not inconsistent with what `coding:' spec &c would
-    ;; give when file is re-read.
-    ;; But don't do this if we explicitly ignored the cookie
-    ;; by using `find-file-literally'.
-    (unless (or (stringp from)
-		find-file-literally
-		(and coding-system
-		     (memq (coding-system-type coding-system) '(0 5))))
-      (let ((auto-cs (save-excursion
-		       (save-restriction
-			 (widen)
-			 (narrow-to-region from to)
-			 (goto-char (point-min))
-			 (set-auto-coding (or file buffer-file-name "")
-					  (buffer-size))))))
+      (if (and coding-system (vectorp (coding-system-eol-type coding-system)))
+	  (let ((eol (coding-system-eol-type buffer-file-coding-system)))
+	    (if (numberp eol)
+		(setq coding-system
+		      (coding-system-change-eol-conversion coding-system eol)))))
+
+      ;; Check we're not inconsistent with what `coding:' spec &c would
+      ;; give when file is re-read.
+      ;; But don't do this if we explicitly ignored the cookie
+      ;; by using `find-file-literally'.
+      (when (and auto-cs
+		 (not (and
+		       coding-system
+		       (memq (coding-system-type coding-system) '(0 5)))))
 	;; Merge coding-system and auto-cs as far as possible.
 	(if (not coding-system)
 	    (setq coding-system auto-cs)
@@ -948,8 +976,8 @@
 		     (format "Selected encoding %s disagrees with \
 %s specified by file contents.  Really save (else edit coding cookies \
 and try again)? " coding-system auto-cs))
-	      (error "Save aborted")))))
-    coding-system))
+	      (error "Save aborted"))))
+      coding-system)))
 
 (setq select-safe-coding-system-function 'select-safe-coding-system)
 
--- a/lisp/international/mule.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/international/mule.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1576,8 +1576,8 @@
 	(setq alist (cdr alist))))
     coding-system))
 
-(defun set-auto-coding (filename size)
-  "Return coding system for a file FILENAME of which SIZE bytes follow point.
+(defun find-auto-coding (filename size)
+  "Find a coding system for a file FILENAME of which SIZE bytes follow point.
 These bytes should include at least the first 1k of the file
 and the last 3k of the file, but the middle may be omitted.
 
@@ -1591,12 +1591,21 @@
 succeed, it checks to see if any function in `auto-coding-functions'
 gives a match.
 
-The return value is the specified coding system, or nil if nothing is
-specified.
+If a coding system is specifed, the return value is a
+cons (CODING . SOURCE), where CODING is the specified coding
+system and SOURCE is a symbol `auto-coding-alist',
+`auto-coding-regexp-alist', `coding:', or `auto-coding-functions'
+indicating by what CODING is specified.  Note that the validity
+of CODING is not checked; it's callers responsibility to check
+it.
+
+If nothing is specified, the return value is nil.
 
 The variable `set-auto-coding-function' (which see) is set to this
 function by default."
-  (or (auto-coding-alist-lookup filename)
+  (or (let ((coding-system (auto-coding-alist-lookup filename)))
+	(if coding-system
+	    (cons coding-system 'auto-coding-alist)))
       ;; Try using `auto-coding-regexp-alist'.
       (save-excursion
 	(let ((alist auto-coding-regexp-alist)
@@ -1606,7 +1615,8 @@
 	      (when (re-search-forward regexp (+ (point) size) t)
 		(setq coding-system (cdr (car alist)))))
 	    (setq alist (cdr alist)))
-	  coding-system))
+	  (if coding-system
+	      (cons coding-system 'auto-coding-regexp-alist))))
       (let* ((case-fold-search t)
 	     (head-start (point))
 	     (head-end (+ head-start (min size 1024)))
@@ -1640,9 +1650,7 @@
 		       (re-search-forward
 			"\\(.*;\\)?[ \t]*coding:[ \t]*\\([^ ;]+\\)"
 			head-end t))
-	      (setq coding-system (intern (match-string 2)))
-	      (or (coding-system-p coding-system)
-		  (setq coding-system nil)))))
+	      (setq coding-system (intern (match-string 2))))))
 
 	;; If no coding: tag in the head, check the tail.
 	;; Here we must pay attention to the case that the end-of-line
@@ -1683,10 +1691,9 @@
 		  (setq coding-system 'raw-text))
 		(when (and (not coding-system)
 			   (re-search-forward re-coding tail-end t))
-		  (setq coding-system (intern (match-string 1)))
-		  (or (coding-system-p coding-system)
-		      (setq coding-system nil))))))
-	coding-system)
+		  (setq coding-system (intern (match-string 1)))))))
+	(if coding-system
+	    (cons coding-system :coding)))
       ;; Finally, try all the `auto-coding-functions'.
       (let ((funcs auto-coding-functions)
 	    (coding-system nil))
@@ -1696,7 +1703,16 @@
 				    (goto-char (point-min))
 				    (funcall (pop funcs) size))
 				(error nil))))
-	coding-system)))
+	(if coding-system
+	    (cons coding-system 'auto-coding-functions)))))
+
+(defun set-auto-coding (filename size)
+  "Return coding system for a file FILENAME of which SIZE bytes follow point.
+See `find-auto-coding' for how the coding system is found.
+Return nil if an invalid coding system is found."
+  (let ((found (find-auto-coding filename size)))
+    (if (and found (coding-system-p (car found)))
+	(car found))))
 
 (setq set-auto-coding-function 'set-auto-coding)
 
--- a/lisp/isearch.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/isearch.el	Fri Jul 22 08:27:27 2005 +0000
@@ -154,7 +154,12 @@
   "Function(s) to call after starting up an incremental search.")
 
 (defvar isearch-mode-end-hook nil
-  "Function(s) to call after terminating an incremental search.")
+  "Function(s) to call after terminating an incremental search.
+When these functions are called, `isearch-mode-end-hook-quit'
+is non-nil if the user quit the search.")
+
+(defvar isearch-mode-end-hook-quit nil
+  "Non-nil while running `isearch-mode-end-hook' if user quit the search.")
 
 (defvar isearch-wrap-function nil
   "Function to call to wrap the search when search is failed.
@@ -205,7 +210,7 @@
   '((((class color) (min-colors 88) (background light))
      ;; The background must not be too dark, for that means
      ;; the character is hard to see when the cursor is there.
-     (:background "magenta2" :foreground "lightskyblue1"))
+     (:background "magenta3" :foreground "lightskyblue1"))
     (((class color) (min-colors 88) (background dark))
      (:background "palevioletred2" :foreground "brown4"))
     (((class color) (min-colors 16))
@@ -352,13 +357,6 @@
     (define-key map "\M-\C-y" 'isearch-yank-char)
     (define-key map    "\C-y" 'isearch-yank-line)
 
-    ;; Define keys for regexp chars * ? } |.
-    ;; Nothing special for + because it matches at least once.
-    (define-key map "*" 'isearch-*-char)
-    (define-key map "?" 'isearch-*-char)
-    (define-key map "}" 'isearch-}-char)
-    (define-key map "|" 'isearch-|-char)
-
     ;; Turned off because I find I expect to get the global definition--rms.
     ;; ;; Instead bind C-h to special help command for isearch-mode.
     ;; (define-key map "\C-h" 'isearch-mode-help)
@@ -740,6 +738,12 @@
   (setq disable-point-adjustment t))
 
 (defun isearch-done (&optional nopush edit)
+  "Exit Isearch mode.
+For successful search, pass no args.
+For a failing search, NOPUSH is t.
+For going to the minibuffer to edit the search string,
+NOPUSH is t and EDIT is t."
+
   (if isearch-resume-in-command-history
       (let ((command `(isearch-resume ,isearch-string ,isearch-regexp
 				      ,isearch-word ,isearch-forward
@@ -791,7 +795,8 @@
       ;; Update the ring data.
       (isearch-update-ring isearch-string isearch-regexp))
 
-  (run-hooks 'isearch-mode-end-hook)
+  (let ((isearch-mode-end-hook-quit (and nopush (not edit))))
+    (run-hooks 'isearch-mode-end-hook))
 
   ;; If there was movement, mark the starting position.
   ;; Maybe should test difference between and set mark iff > threshold.
@@ -1400,14 +1405,14 @@
 Respects \\[isearch-repeat-forward] and \\[isearch-repeat-backward] by
 stopping at `isearch-barrier' as needed.
 
-Do nothing if a backslash is escaping the liberalizing character.  If
-WANT-BACKSLASH is non-nil, invert this behavior (for \\} and \\|).
+Do nothing if a backslash is escaping the liberalizing character.
+If WANT-BACKSLASH is non-nil, invert this behavior (for \\} and \\|).
 
-Do nothing if regexp has recently been invalid unless optional ALLOW-INVALID
-non-nil.
+Do nothing if regexp has recently been invalid unless optional
+ALLOW-INVALID non-nil.
 
-If optional TO-BARRIER non-nil, ignore previous matches and go exactly to the
-barrier."
+If optional TO-BARRIER non-nil, ignore previous matches and go exactly
+to the barrier."
   ;; (eq (not a) (not b)) makes all non-nil values equivalent
   (when (and isearch-regexp (eq (not (isearch-backslash isearch-string))
 				(not want-backslash))
@@ -1453,26 +1458,7 @@
 	    (goto-char (if isearch-forward
 			   (max last-other-end isearch-barrier)
 			 (min last-other-end isearch-barrier)))
-	    (setq isearch-adjusted t))))))
-  (isearch-process-search-char last-command-char))
-
-;; * and ? are special when not preceded by \.
-(defun isearch-*-char ()
-  "Maybe back up to handle * and ? specially in regexps."
-  (interactive)
-  (isearch-fallback nil))
-
-;; } is special when it is preceded by \.
-(defun isearch-}-char ()
-  "Handle \\} specially in regexps."
-  (interactive)
-  (isearch-fallback t t))
-
-;; | is special when it is preceded by \.
-(defun isearch-|-char ()
-  "If in regexp search, jump to the barrier unless in a group."
-  (interactive)
-  (isearch-fallback t nil t))
+	    (setq isearch-adjusted t)))))))
 
 (defun isearch-unread-key-sequence (keylist)
   "Unread the given key-sequence KEYLIST.
@@ -1770,10 +1756,10 @@
       (isearch-process-search-char char))))
 
 (defun isearch-return-char ()
-  "Convert return into newline for incremental search.
-Obsolete."
+  "Convert return into newline for incremental search."
   (interactive)
   (isearch-process-search-char ?\n))
+(make-obsolete 'isearch-return-char 'isearch-printing-char)
 
 (defun isearch-printing-char ()
   "Add this ordinary printing character to the search string and search."
@@ -1792,6 +1778,14 @@
 	(isearch-process-search-char char)))))
 
 (defun isearch-process-search-char (char)
+  ;; * and ? are special in regexps when not preceded by \.
+  ;; } and | are special in regexps when preceded by \.
+  ;; Nothing special for + because it matches at least once.
+  (cond
+   ((memq char '(?* ??)) (isearch-fallback nil))
+   ((eq   char ?\})      (isearch-fallback t t))
+   ((eq   char ?|)       (isearch-fallback t nil t)))
+
   ;; Append the char to the search string, update the message and re-search.
   (isearch-process-search-string
    (char-to-string char)
--- a/lisp/mail/emacsbug.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/mail/emacsbug.el	Fri Jul 22 08:27:27 2005 +0000
@@ -125,9 +125,18 @@
 
     (insert "\n\n")
     (setq user-point (point))
-    (insert "\n\n\n")
+    (insert "\n\n")
+
+    (insert "If emacs crashed, and you have the emacs process in the gdb debugger,\n"
+	    "please include the output from the following gdb commands:\n"
+	    "    `bt full' and `xbacktrace'.\n")
 
-    (insert "In " (emacs-version) "\n")
+    (let ((debug-file (expand-file-name "DEBUG" data-directory)))
+      (if (file-readable-p debug-file)
+	(insert "If you would like to further debug the crash, please read the file\n"
+		debug-file " for instructions.\n")))
+
+    (insert "\n\nIn " (emacs-version) "\n")
     (if (fboundp 'x-server-vendor)
 	(condition-case nil
 	    (insert "X server distributor `" (x-server-vendor) "', version "
--- a/lisp/mail/smtpmail.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/mail/smtpmail.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,6 @@
 ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
 
-;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004
+;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp>
@@ -207,7 +207,7 @@
 (defvar smtpmail-queue-index (concat smtpmail-queue-dir
 				     smtpmail-queue-index-file))
 
-(defconst smtpmail-auth-supported '(cram-md5 login)
+(defconst smtpmail-auth-supported '(cram-md5 plain login)
   "List of supported SMTP AUTH mechanisms.")
 
 ;;;
@@ -559,8 +559,24 @@
 		(not (integerp (car ret)))
 		(>= (car ret) 400))
 	    (throw 'done nil)))
+       ((eq mech 'plain)
+	(smtpmail-send-command process "AUTH PLAIN")
+	(if (or (null (car (setq ret (smtpmail-read-response process))))
+		(not (integerp (car ret)))
+		(not (equal (car ret) 334)))
+	    (throw 'done nil))
+	(smtpmail-send-command process (base64-encode-string
+					(concat "\0"
+						(smtpmail-cred-user cred)
+						"\0"
+						(smtpmail-cred-passwd cred))))
+	(if (or (null (car (setq ret (smtpmail-read-response process))))
+		(not (integerp (car ret)))
+		(not (equal (car ret) 235)))
+	    (throw 'done nil)))
+
        (t
-        (error "Mechanism %s not implemented" mech)))
+	(error "Mechanism %s not implemented" mech)))
       ;; Remember the password.
       (when (and (not (stringp smtpmail-auth-credentials))
 		 (null (smtpmail-cred-passwd cred)))
--- a/lisp/mail/uce.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/mail/uce.el	Fri Jul 22 08:27:27 2005 +0000
@@ -283,7 +283,7 @@
 	     (re-search-forward "^Lines:")
 	     (beginning-of-line))
 	    ((eq uce-mail-reader 'rmail)
-	     (beginning-of-buffer)
+	     (goto-char (point-min))
 	     (search-forward "*** EOOH ***\n")
 	     (beginning-of-line)
 	     (forward-line -1)))
@@ -364,11 +364,7 @@
 	       (if (file-exists-p "~/.signature")
 		   (progn
 		     (insert "\n\n-- \n")
-		     (insert-file "~/.signature")
-		     ;; Function insert-file leaves point where it was,
-		     ;; while we want to place signature in the ``middle''
-		     ;; of the message.
-		     (exchange-point-and-mark))))
+		     (forward-char (cadr (insert-file-contents "~/.signature"))))))
 	      (uce-signature
 	       (insert "\n\n-- \n" uce-signature)))
 	;; And text of the original message.
--- a/lisp/net/eudc-bob.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/net/eudc-bob.el	Fri Jul 22 08:27:27 2005 +0000
@@ -69,7 +69,7 @@
 
 (defun eudc-jump-to-event (event)
   "Jump to the window and point where EVENT occurred."
-  (if eudc-xemacs-p
+  (if (fboundp 'event-closest-point)
       (goto-char (event-closest-point event))
     (set-buffer (window-buffer (posn-window (event-start event))))
     (goto-char (posn-point (event-start event)))))
@@ -89,7 +89,7 @@
 
 (defun eudc-bob-can-display-inline-images ()
   "Return non-nil if we can display images inline."
-  (if eudc-xemacs-p
+  (if (fboundp 'console-type)
       (and (memq (console-type) '(x mswindows))
 	   (fboundp 'make-glyph))
     (and (fboundp 'display-graphic-p)
@@ -120,7 +120,7 @@
   "Display the JPEG DATA at point.
 If INLINE is non-nil, try to inline the image otherwise simply
 display a button."
-  (cond (eudc-xemacs-p
+  (cond ((fboundp 'make-glyph)
 	 (let ((glyph (if (eudc-bob-can-display-inline-images)
 			  (make-glyph (list (vector 'jpeg :data data)
 					    [string :data "[JPEG Picture]"])))))
--- a/lisp/net/eudc-hotlist.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/net/eudc-hotlist.el	Fri Jul 22 08:27:27 2005 +0000
@@ -51,11 +51,11 @@
   (setq major-mode 'eudc-hotlist-mode)
   (setq mode-name "EUDC-Servers")
   (use-local-map eudc-hotlist-mode-map)
-  (setq mode-popup-menu eudc-hotlist-menu)
-  (when (and eudc-xemacs-p
-	     (featurep 'menubar))
-    (set-buffer-menubar current-menubar)
-    (add-submenu nil (cons "EUDC-Hotlist" (cdr (cdr eudc-hotlist-menu)))))
+  (when (featurep 'xemacs)
+    (setq mode-popup-menu eudc-hotlist-menu)
+    (when (featurep 'menubar)
+      (set-buffer-menubar current-menubar)
+      (add-submenu nil (cons "EUDC-Hotlist" (cdr (cdr eudc-hotlist-menu))))))
   (setq buffer-read-only t)
   (run-mode-hooks 'eudc-hotlist-mode-hook))
 
--- a/lisp/net/tramp.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/net/tramp.el	Fri Jul 22 08:27:27 2005 +0000
@@ -2095,7 +2095,7 @@
 	       file)))
     (unless noerror
       (when (not (file-exists-p file))
-	(error "Cannot load nonexistant file `%s'" file)))
+	(error "Cannot load nonexistent file `%s'" file)))
     (if (not (file-exists-p file))
 	nil
       (unless nomessage
--- a/lisp/novice.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/novice.el	Fri Jul 22 08:27:27 2005 +0000
@@ -42,8 +42,7 @@
 If nil, the feature is disabled, i.e., all commands work normally.")
 
 ;;;###autoload
-(defvaralias 'disabled-command-hook 'disabled-command-function)
-;;;###autoload (make-obsolete-variable 'disabled-command-hook 'disabled-command-function "22.1")
+(define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1")
 
 ;;;###autoload
 (defun disabled-command-function (&rest ignore)
--- a/lisp/paths.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/paths.el	Fri Jul 22 08:27:27 2005 +0000
@@ -37,13 +37,13 @@
 ;; DOC file rather than in memory.
 
 (defun prune-directory-list (dirs &optional keep reject)
-  "Returns a copy of DIRS with all non-existant directories removed.
+  "Returns a copy of DIRS with all non-existent directories removed.
 The optional argument KEEP is a list of directories to retain even if
 they don't exist, and REJECT is a list of directories to remove from
 DIRS, even if they exist; REJECT takes precedence over KEEP.
 
 Note that membership in REJECT and KEEP is checked using simple string
-comparision."
+comparison."
   (apply #'nconc
 	 (mapcar (lambda (dir)
 		   (and (not (member dir reject))
--- a/lisp/pcvs-util.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/pcvs-util.el	Fri Jul 22 08:27:27 2005 +0000
@@ -188,7 +188,7 @@
   "Concatenate the STRINGS, adding the SEPARATOR (default \" \").
 This tries to quote the strings to avoid ambiguity such that
   (cvs-string->strings (cvs-strings->string strs)) == strs
-Only some SEPARATOR will work properly."
+Only some SEPARATORs will work properly."
   (let ((sep (or separator " ")))
     (mapconcat
      (lambda (str)
@@ -277,7 +277,7 @@
 
 (defun cvs-flags-query (sym &optional desc arg)
   "Query flags based on SYM.
-Optional argument DESC will be used for the prompt
+Optional argument DESC will be used for the prompt.
 If ARG (or a prefix argument) is nil, just use the 0th default.
 If it is a non-negative integer, use the corresponding default.
 If it is a negative integer query for a new value of the corresponding
@@ -382,7 +382,7 @@
 
 (defun cvs-prefix-get (sym &optional read-only)
   "Return the current value of the prefix SYM.
-and reset it unless READ-ONLY is non-nil."
+And reset it unless READ-ONLY is non-nil."
   (prog1 (symbol-value sym)
     (unless (or read-only
 		(cvs-flags-persist (symbol-value (cvs-prefix-sym sym))))
--- a/lisp/play/gamegrid.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/play/gamegrid.el	Fri Jul 22 08:27:27 2005 +0000
@@ -179,9 +179,7 @@
 
 (defun gamegrid-make-mono-tty-face ()
   (let ((face (make-face 'gamegrid-mono-tty-face)))
-    (condition-case nil
-	(set-face-property face 'reverse t)
-      (error nil))
+    (set-face-inverse-video-p face t)
     face))
 
 (defun gamegrid-make-color-tty-face (color)
@@ -298,7 +296,7 @@
 	   'emacs-tty)))
 
 (defun gamegrid-set-display-table ()
-  (if (fboundp 'specifierp)
+  (if (featurep 'xemacs)
       (add-spec-to-specifier current-display-table
 			     gamegrid-display-table
 			     (current-buffer)
@@ -409,7 +407,7 @@
 
 (defun gamegrid-set-timer (delay)
   (if gamegrid-timer
-      (if (featurep 'itimer)
+      (if (fboundp 'set-itimer-restart)
 	  (set-itimer-restart gamegrid-timer delay)
 	(timer-set-time gamegrid-timer
 			(list (aref gamegrid-timer 1)
@@ -475,25 +473,27 @@
 ;;        FILE in the user's home directory.  There is presumably no
 ;;        shared game directory.
 
+(defvar gamegrid-shared-game-dir)
+
 (defun gamegrid-add-score-with-update-game-score (file score)
   (let* ((result nil) ;; What is this good for? -- os
-	 (have-shared-game-dir
+	 (gamegrid-shared-game-dir
 	  (not (zerop (logand (file-modes
 			       (expand-file-name "update-game-score"
 						 exec-directory))
 			      #o4000)))))
     (cond ((file-name-absolute-p file)
 	   (gamegrid-add-score-insecure file score))
-	  ((and have-shared-game-dir
+	  ((and gamegrid-shared-game-dir
 		(file-exists-p (expand-file-name file shared-game-score-directory)))
 	   ;; Use the setuid "update-game-score" program to update a
 	   ;; system-wide score file.
-	   (gamegrid-add-score-with-update-game-score-1
+	   (gamegrid-add-score-with-update-game-score-1 file
 	    (expand-file-name file shared-game-score-directory) score))
 	  ;; Else: Add the score to a score file in the user's home
 	  ;; directory.
-	  (have-shared-game-dir
-	   ;; If `have-shared-game-dir' is non-nil, then
+	  (gamegrid-shared-game-dir
+	   ;; If `gamegrid-shared-game-dir' is non-nil, then
 	   ;; "update-gamescore" program is setuid, so don't use it.
 	   (unless (file-exists-p
 		    (directory-file-name gamegrid-user-score-file-directory))
@@ -509,9 +509,9 @@
 		 (setq f (expand-file-name file f))
 		 (unless (file-exists-p f)
 		   (write-region "" nil f nil 'silent nil 'excl)))
-	       (gamegrid-add-score-with-update-game-score-1 f score))))))
+	       (gamegrid-add-score-with-update-game-score-1 file f score))))))
 
-(defun gamegrid-add-score-with-update-game-score-1 (target score)
+(defun gamegrid-add-score-with-update-game-score-1 (file target score)
   (let ((default-directory "/")
 	(errbuf (generate-new-buffer " *update-game-score loss*")))
     (apply
@@ -521,7 +521,7 @@
        (expand-file-name "update-game-score" exec-directory)
        nil errbuf nil
        "-m" (int-to-string gamegrid-score-file-length)
-       "-d" (if have-shared-game-dir
+       "-d" (if gamegrid-shared-game-dir
 		(expand-file-name shared-game-score-directory)
 	      (file-name-directory target))
        file
--- a/lisp/play/snake.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/play/snake.el	Fri Jul 22 08:27:27 2005 +0000
@@ -370,15 +370,16 @@
   (setq major-mode 'snake-mode)
   (setq mode-name "Snake")
 
-  (setq mode-popup-menu
-	'("Snake Commands"
-	  ["Start new game"	snake-start-game]
-	  ["End game"		snake-end-game
-	   (snake-active-p)]
-	  ["Pause"		snake-pause-game
-	   (and (snake-active-p) (not snake-paused))]
-	  ["Resume"		snake-pause-game
-	   (and (snake-active-p) snake-paused)]))
+  (unless (featurep 'emacs)
+    (setq mode-popup-menu
+	  '("Snake Commands"
+	    ["Start new game"	snake-start-game]
+	    ["End game"		snake-end-game
+	     (snake-active-p)]
+	    ["Pause"		snake-pause-game
+	     (and (snake-active-p) (not snake-paused))]
+	    ["Resume"		snake-pause-game
+	     (and (snake-active-p) snake-paused)])))
 
   (setq gamegrid-use-glyphs snake-use-glyphs-flag)
   (setq gamegrid-use-color snake-use-color-flag)
--- a/lisp/play/tetris.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/play/tetris.el	Fri Jul 22 08:27:27 2005 +0000
@@ -601,15 +601,16 @@
   (setq major-mode 'tetris-mode)
   (setq mode-name "Tetris")
 
-  (setq mode-popup-menu
-	'("Tetris Commands"
-	  ["Start new game"	tetris-start-game]
-	  ["End game"		tetris-end-game
-	   (tetris-active-p)]
-	  ["Pause"		tetris-pause-game
-	   (and (tetris-active-p) (not tetris-paused))]
-	  ["Resume"		tetris-pause-game
-	   (and (tetris-active-p) tetris-paused)]))
+  (unless (featurep 'emacs)
+    (setq mode-popup-menu
+	  '("Tetris Commands"
+	    ["Start new game"	tetris-start-game]
+	    ["End game"		tetris-end-game
+	     (tetris-active-p)]
+	    ["Pause"		tetris-pause-game
+	     (and (tetris-active-p) (not tetris-paused))]
+	    ["Resume"		tetris-pause-game
+	     (and (tetris-active-p) tetris-paused)])))
 
   (setq gamegrid-use-glyphs tetris-use-glyphs)
   (setq gamegrid-use-color tetris-use-color)
--- a/lisp/play/zone.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/play/zone.el	Fri Jul 22 08:27:27 2005 +0000
@@ -622,7 +622,7 @@
    (sit-for 3)
    (erase-buffer)
    (sit-for 3)
-   (insert-buffer "*Messages*")
+   (insert-buffer-substring "*Messages*")
    (message "")
    (goto-char (point-max))
    (recenter -1)
--- a/lisp/progmodes/ada-mode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/progmodes/ada-mode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -5349,7 +5349,8 @@
 This function typically is to be hooked into `ff-file-created-hooks'."
   (interactive)
   (delete-region (point-min) (point-max))
-  (insert-buffer (car (cdr (buffer-list))))
+  (insert-buffer-substring (car (cdr (buffer-list))))
+  (goto-char (point-min))
   (ada-mode)
 
   (let (found ada-procedure-or-package-start-regexp)
--- a/lisp/progmodes/asm-mode.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/progmodes/asm-mode.el	Fri Jul 22 08:27:27 2005 +0000
@@ -204,7 +204,8 @@
   (let (comempty comment)
     (save-excursion
       (beginning-of-line)
-      (setq comment (comment-search-forward (line-end-position) t))
+      (with-no-warnings
+	(setq comment (comment-search-forward (line-end-position) t)))
       (setq comempty (looking-at "[ \t]*$")))
 
   (cond
--- a/lisp/progmodes/f90.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/progmodes/f90.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1790,7 +1790,8 @@
   (let (char event)
     (if (fboundp 'next-command-event) ; XEmacs
         (setq event (next-command-event)
-              char (event-to-character event))
+              char (and (fboundp 'event-to-character)
+			(event-to-character event)))
       (setq event (read-event)
             char event))
     ;; Insert char if not equal to `?', or if abbrev-mode is off.
--- a/lisp/progmodes/gdb-ui.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Fri Jul 22 08:27:27 2005 +0000
@@ -503,15 +503,11 @@
        (setq gdb-var-list (nreverse var-list))))))
 
 (defun gdb-var-update ()
-  (if (not (member 'gdb-var-update gdb-pending-triggers))
-      (progn
-	(gdb-enqueue-input
-	 (list
-	  (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
-	      "server interpreter mi \"-var-update *\"\n"
-	    "-var-update *\n")
-				 'gdb-var-update-handler))
-	(push 'gdb-var-update gdb-pending-triggers))))
+  (when (not (member 'gdb-var-update gdb-pending-triggers))
+    (gdb-enqueue-input
+     (list "server interpreter mi \"-var-update *\"\n"
+	   'gdb-var-update-handler))
+    (push 'gdb-var-update gdb-pending-triggers)))
 
 (defconst gdb-var-update-regexp "name=\"\\(.*?\\)\"")
 
@@ -522,13 +518,9 @@
 	(let ((varnum (match-string 1)))
 	  (gdb-enqueue-input
 	   (list
-	    (if (with-current-buffer gud-comint-buffer
-		  (eq gud-minor-mode 'gdba))
-		(concat "server interpreter mi \"-var-evaluate-expression "
-			varnum "\"\n")
-	      (concat "-var-evaluate-expression " varnum "\n"))
-		     `(lambda () (gdb-var-evaluate-expression-handler
-				  ,varnum t)))))))
+	    (concat "server interpreter mi \"-var-evaluate-expression "
+		    varnum "\"\n")
+	    `(lambda () (gdb-var-evaluate-expression-handler ,varnum t)))))))
   (setq gdb-pending-triggers
    (delq 'gdb-var-update gdb-pending-triggers))
   (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
@@ -544,9 +536,10 @@
     (speedbar-timer-fn)))
 
 (defun gdb-var-delete ()
-  "Delete watched expression from the speedbar."
+  "Delete watch expression at point from the speedbar."
   (interactive)
-  (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+  (if (with-current-buffer
+	  gud-comint-buffer (memq gud-minor-mode '(gdbmi gdba)))
       (let ((text (speedbar-line-text)))
 	(string-match "\\(\\S-+\\)" text)
 	(let* ((expr (match-string 1 text))
@@ -595,7 +588,9 @@
   (cond ((string-match "+" text)        ;expand this node
 	 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
 	     (gdb-var-list-children token)
-	   (gdbmi-var-list-children token)))
+	   (progn
+	     (gdbmi-var-update)
+	     (gdbmi-var-list-children token))))
 	((string-match "-" text)	;contract this node
 	 (dolist (var gdb-var-list)
 	   (if (string-match (concat token "\\.") (nth 1 var))
--- a/lisp/progmodes/grep.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/progmodes/grep.el	Fri Jul 22 08:27:27 2005 +0000
@@ -196,6 +196,7 @@
     (define-key map "p" 'previous-error-no-select)
     (define-key map "{" 'compilation-previous-file)
     (define-key map "}" 'compilation-next-file)
+    (define-key map [backtab] 'compilation-previous-file)
     (define-key map "\t" 'compilation-next-file)
 
     ;; Set up the menu-bar
@@ -255,16 +256,17 @@
 \\(?:-\\(?:\\([0-9]+\\)\\4\\)?\\.?\\([0-9]+\\)?\\)?\\2"
      1 (3 . 6) (5 . 7))
     ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\
-\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)"
+\\(\033\\[01;31m\\(?:\033\\[K\\)?\\)\\(.*?\\)\\(\033\\[[0-9]*m\\)"
      2 3
      ;; Calculate column positions (beg . end) of first grep match on a line
      ((lambda ()
-        (setq compilation-error-screen-columns nil)
-        (- (match-beginning 5) (match-end 1) 8))
+	(setq compilation-error-screen-columns nil)
+        (- (match-beginning 4) (match-end 1)))
       .
-      (lambda () (- (match-end 5) (match-end 1) 8)))
+      (lambda () (- (match-end 5) (match-end 1)
+		    (- (match-end 4) (match-beginning 4)))))
      nil 1)
-    ("^Binary file \\(.+\\) matches$" 1 nil nil 1))
+    ("^Binary file \\(.+\\) matches$" 1 nil nil 1 1))
   "Regexp used to match grep hits.  See `compilation-error-regexp-alist'.")
 
 (defvar grep-error "grep hit"
@@ -296,17 +298,21 @@
       (1 compilation-warning-face)
       (2 compilation-line-face))
      ;; Highlight grep matches and delete markers
-     ("\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)"
+     ("\\(\033\\[01;31m\\)\\(.*?\\)\\(\033\\[[0-9]*m\\)"
       ;; Refontification does not work after the markers have been
       ;; deleted.  So we use the font-lock-face property here as Font
       ;; Lock does not clear that.
       (2 (list 'face nil 'font-lock-face grep-match-face))
-      ((lambda (p))
+      ((lambda (bound))
        (progn
 	 ;; Delete markers with `replace-match' because it updates
 	 ;; the match-data, whereas `delete-region' would render it obsolete.
 	 (replace-match "" t t nil 3)
-	 (replace-match "" t t nil 1)))))
+	 (replace-match "" t t nil 1))))
+     ("\\(\033\\[[0-9;]*[mK]\\)"
+      ;; Delete all remaining escape sequences
+      ((lambda (bound))
+       (replace-match "" t t nil 1))))
    "Additional things to highlight in grep output.
 This gets tacked on the end of the generated expressions.")
 
@@ -354,7 +360,10 @@
   (when (eq grep-highlight-matches t)
     ;; Modify `process-environment' locally bound in `compilation-start'
     (setenv "GREP_OPTIONS" (concat (getenv "GREP_OPTIONS") " --color=always"))
-    (setenv "GREP_COLOR" "01;41"))
+    ;; for GNU grep 2.5.1
+    (setenv "GREP_COLOR" "01;31")
+    ;; for GNU grep 2.5.1-cvs
+    (setenv "GREP_COLORS" "mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne"))
   (set (make-local-variable 'compilation-exit-message-function)
        (lambda (status code msg)
 	 (if (eq status 'exit)
@@ -514,6 +523,7 @@
 			 command-args)
 		       'grep-mode nil highlight-regexp)))
 
+;;;###autoload
 (define-compilation-mode grep-mode "Grep"
   "Sets `grep-last-buffer' and `compilation-window-height'."
   (setq grep-last-buffer (current-buffer))
--- a/lisp/progmodes/gud.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/progmodes/gud.el	Fri Jul 22 08:27:27 2005 +0000
@@ -42,7 +42,6 @@
 (eval-when-compile (require 'cl)) ; for case macro
 
 (require 'comint)
-(require 'etags)
 (require 'font-lock)
 
 ;; ======================================================================
@@ -352,10 +351,10 @@
        (not (memq gud-minor-mode '(gdbmi gdba))))]
     ["Edit value" speedbar-edit-line
      (with-current-buffer gud-comint-buffer
-       (not (memq gud-minor-mode '(gdbmi gdba))))]
+       (memq gud-minor-mode '(gdbmi gdba)))]
     ["Delete expression" gdb-var-delete
      (with-current-buffer gud-comint-buffer
-       (not (memq gud-minor-mode '(gdbmi gdba))))])
+       (memq gud-minor-mode '(gdbmi gdba)))])
   "Additional menu items to add to the speedbar frame.")
 
 ;; Make sure our special speedbar mode is loaded
@@ -833,6 +832,7 @@
 and source-file directory for your debugger."
   (interactive (list (gud-query-cmdline 'sdb)))
 
+  (if gud-sdb-needs-tags (require 'etags))
   (if (and gud-sdb-needs-tags
 	   (not (and (boundp 'tags-file-name)
 		     (stringp tags-file-name)
--- a/lisp/progmodes/pascal.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/progmodes/pascal.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1493,12 +1493,12 @@
 
 (if pascal-outline-map
     nil
-  (if (boundp 'set-keymap-name)
+  (if (fboundp 'set-keymap-name)
       (set-keymap-name pascal-outline-map 'pascal-outline-map))
-  (if (not (boundp 'set-keymap-parent))
-      (setq pascal-outline-map (copy-keymap pascal-mode-map))
-    (setq pascal-outline-map (make-sparse-keymap))
-    (set-keymap-parent pascal-outline-map pascal-mode-map))
+  (if (fboundp 'set-keymap-parent)
+      (set-keymap-parent (setq pascal-outline-map (make-sparse-keymap))
+			 pascal-mode-map)
+    (setq pascal-outline-map (copy-keymap pascal-mode-map)))
   (define-key pascal-outline-map "\M-\C-a"  'pascal-outline-prev-defun)
   (define-key pascal-outline-map "\M-\C-e"  'pascal-outline-next-defun)
   (define-key pascal-outline-map "\C-c\C-d" 'pascal-outline-goto-defun)
@@ -1533,7 +1533,7 @@
   (interactive "P")
   (setq pascal-outline-mode
 	(if (null arg) (not pascal-outline-mode) t))
-  (if (boundp 'redraw-mode-line)
+  (if (fboundp 'redraw-mode-line)
       (redraw-mode-line))
   (if pascal-outline-mode
       (progn
--- a/lisp/ps-print.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/ps-print.el	Fri Jul 22 08:27:27 2005 +0000
@@ -2269,7 +2269,7 @@
 FILENAME is ignored, if it doesn't exist or is read protected.
 
 X and Y are relative positions on paper to put the image.
-If X and Y are nil, the image is centralized on paper.
+If X and Y are nil, the image is centered on paper.
 
 XSCALE and YSCALE are scale factor to be applied to image before printing.
 If XSCALE and YSCALE are nil, the original size is used.
@@ -3031,7 +3031,7 @@
 		Where RED, GREEN and BLUE are reals between 0.0 (no color) and
 		1.0 (full color).
 
-Any other value is ignored and it's used the black color.
+Any other value is ignored and black will be used.
 
 It's used only when `ps-print-color-p' is non-nil."
   :type '(choice :menu-tag "Default Foreground Gray/Color"
@@ -3071,7 +3071,7 @@
 		Where RED, GREEN and BLUE are reals between 0.0 (no color) and
 		1.0 (full color).
 
-Any other value is ignored and it's used the white color.
+Any other value is ignored and white will be used.
 
 It's used only when `ps-print-color-p' is non-nil.
 
@@ -4137,10 +4137,10 @@
 If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged
 with face extension in ALIST-SYM; otherwise, overrides.
 
-If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
+If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
 otherwise, it should be an alist symbol.
 
-The elements in FACE-EXTENSION-LIST is like those for `ps-extend-face'.
+The elements in FACE-EXTENSION-LIST are like those for `ps-extend-face'.
 
 See `ps-extend-face' for documentation."
   (while face-extension-list
@@ -4155,7 +4155,7 @@
 If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged
 with face extensions in ALIST-SYM; otherwise, overrides.
 
-If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
+If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
 otherwise, it should be an alist symbol.
 
 The elements of FACE-EXTENSION list have the form:
@@ -4974,7 +4974,7 @@
 			     "PrintHeight 2 div BottomMargin add")
 	    "\nBeginBackImage\n")
 	   (ps-insert-file image-file)
-	   ;; coordinate adjustment to centralize image
+	   ;; coordinate adjustment to center image
 	   ;; around x and y position
 	   (let ((box (ps-get-boundingbox)))
 	     (save-excursion
--- a/lisp/replace.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/replace.el	Fri Jul 22 08:27:27 2005 +0000
@@ -847,7 +847,7 @@
   '((((class color) (min-colors 88) (background light))
      :background "Tan")
     (((class color) (min-colors 88) (background dark))
-     :background "RoyalBlue4")
+     :background "RoyalBlue3")
     (((class color) (min-colors 8))
      :background "blue" :foreground "white")
     (((type tty) (class mono))
--- a/lisp/s-region.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/s-region.el	Fri Jul 22 08:27:27 2005 +0000
@@ -63,12 +63,12 @@
     (error "Non-vector key: %S" key)))
 
 (defun s-region-move-p1 (&rest arg)
-  "This is an overlay function to point-moving keys that are interactive \"p\""
+  "This is an overlay function to point-moving keys that are interactive \"p\"."
   (interactive "p")
   (apply (function s-region-move) arg))
 
 (defun s-region-move-p2 (&rest arg)
-  "This is an overlay function to point-moving keys that are interactive \"P\""
+  "This is an overlay function to point-moving keys that are interactive \"P\"."
   (interactive "P")
   (apply (function s-region-move) arg))
 
@@ -83,10 +83,10 @@
   (delete-overlay s-region-overlay))
 
 (defun s-region-bind (keylist &optional map)
-  "Bind shifted keys in KEYLIST to s-region-move-p1 or s-region-move-p2.
-Each key in KEYLIST is shifted and bound to one of the s-region-move
+  "Bind shifted keys in KEYLIST to `s-region-move-p1' or `s-region-move-p2'.
+Each key in KEYLIST is shifted and bound to one of the `s-region-move'
 functions provided it is already bound to some command or other.
-Optional third argument MAP specifies keymap to add binding to, defaulting
+Optional second argument MAP specifies keymap to add binding to, defaulting
 to global keymap."
   (let ((p2 (list 'scroll-up 'scroll-down
 		  'beginning-of-buffer 'end-of-buffer)))
--- a/lisp/server.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/server.el	Fri Jul 22 08:27:27 2005 +0000
@@ -625,7 +625,7 @@
 	      ;; a minibuffer/dedicated-window (if there's no other).
 	      (error (pop-to-buffer next-buffer)))))))))
 
-(global-set-key "\C-x#" 'server-edit)
+(define-key ctl-x-map "#" 'server-edit)
 
 (defun server-unload-hook ()
   (server-start t)
--- a/lisp/simple.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/simple.el	Fri Jul 22 08:27:27 2005 +0000
@@ -74,7 +74,7 @@
 ;;; next-error support framework
 
 (defgroup next-error nil
-  "next-error support framework."
+  "`next-error' support framework."
   :group 'compilation
   :version "22.1")
 
@@ -86,8 +86,8 @@
 
 (defcustom next-error-highlight 0.1
   "*Highlighting of locations in selected source buffers.
-If number, highlight the locus in next-error face for given time in seconds.
-If t, use persistent overlays fontified in next-error face.
+If number, highlight the locus in `next-error' face for given time in seconds.
+If t, use persistent overlays fontified in `next-error' face.
 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 "Delay")
@@ -99,8 +99,8 @@
 
 (defcustom next-error-highlight-no-select 0.1
   "*Highlighting of locations in non-selected source buffers.
-If number, highlight the locus in next-error face for given time in seconds.
-If t, use persistent overlays fontified in next-error face.
+If number, highlight the locus in `next-error' face for given time in seconds.
+If t, use persistent overlays fontified in `next-error' face.
 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 "Delay")
@@ -122,7 +122,7 @@
 (add-to-list 'overlay-arrow-variable-list 'next-error-overlay-arrow-position)
 
 (defvar next-error-last-buffer nil
-  "The most recent next-error buffer.
+  "The most recent `next-error' buffer.
 A buffer becomes most recent when its compilation, grep, or
 similar mode is started, or when it is used with \\[next-error]
 or \\[compile-goto-error].")
@@ -143,7 +143,7 @@
 			       &optional avoid-current
 			       extra-test-inclusive
 			       extra-test-exclusive)
-  "Test if BUFFER is a next-error capable buffer.
+  "Test if BUFFER is a `next-error' capable buffer.
 
 If AVOID-CURRENT is non-nil, treat the current buffer
 as an absolute last resort only.
@@ -170,7 +170,7 @@
 (defun next-error-find-buffer (&optional avoid-current
 					 extra-test-inclusive
 					 extra-test-exclusive)
-  "Return a next-error capable buffer.
+  "Return a `next-error' capable buffer.
 If AVOID-CURRENT is non-nil, treat the current buffer
 as an absolute last resort only.
 
@@ -223,7 +223,7 @@
    (error "No next-error capable buffer found")))
 
 (defun next-error (&optional arg reset)
-  "Visit next next-error message and corresponding source code.
+  "Visit next `next-error' message and corresponding source code.
 
 If all the error messages parsed so far have been processed already,
 the message buffer is checked for new ones.
@@ -264,7 +264,7 @@
 (defalias 'next-match 'next-error)
 
 (defun previous-error (&optional n)
-  "Visit previous next-error message and corresponding source code.
+  "Visit previous `next-error' message and corresponding source code.
 
 Prefix arg N says how many error messages to move backwards (or
 forwards, if negative).
@@ -282,7 +282,7 @@
   (next-error n t))
 
 (defun next-error-no-select (&optional n)
-  "Move point to the next error in the next-error buffer and highlight match.
+  "Move point to the next error in the `next-error' buffer and highlight match.
 Prefix arg N says how many error messages to move forwards (or
 backwards, if negative).
 Finds and highlights the source line like \\[next-error], but does not
@@ -293,7 +293,7 @@
   (pop-to-buffer next-error-last-buffer))
 
 (defun previous-error-no-select (&optional n)
-  "Move point to the previous error in the next-error buffer and highlight match.
+  "Move point to the previous error in the `next-error' buffer and highlight match.
 Prefix arg N says how many error messages to move backwards (or
 forwards, if negative).
 Finds and highlights the source line like \\[previous-error], but does not
@@ -426,8 +426,8 @@
 
 (defun open-line (n)
   "Insert a newline and leave point before it.
-If there is a fill prefix and/or a left-margin, insert them on the new line
-if the line would have been blank.
+If there is a fill prefix and/or a `left-margin', insert them
+on the new line if the line would have been blank.
 With arg N, insert N newlines."
   (interactive "*p")
   (let* ((do-fill-prefix (and fill-prefix (bolp)))
@@ -449,7 +449,7 @@
 (defun split-line (&optional arg)
   "Split current line, moving portion beyond point vertically down.
 If the current line starts with `fill-prefix', insert it on the new
-line as well.  With prefix ARG, don't insert fill-prefix on new line.
+line as well.  With prefix ARG, don't insert `fill-prefix' on new line.
 
 When called from Lisp code, ARG may be a prefix string to copy."
   (interactive "*P")
@@ -647,7 +647,7 @@
 	    (save-excursion (forward-char -1)
 			    (looking-at "$\\|\\s(\\|\\s'")))
 	nil
-      (insert ?\ ))))
+      (insert ?\s))))
 
 (defun delete-horizontal-space (&optional backward-only)
   "Delete all spaces and tabs around point.
@@ -671,9 +671,9 @@
     (skip-chars-backward " \t")
     (constrain-to-field nil orig-pos)
     (dotimes (i (or n 1))
-      (if (= (following-char) ?\ )
+      (if (= (following-char) ?\s)
 	  (forward-char 1)
-	(insert ?\ )))
+	(insert ?\s)))
     (delete-region
      (point)
      (progn
@@ -1274,7 +1274,7 @@
 ;; For compatibility with the old subr of the same name.
 (defun minibuffer-prompt-width ()
   "Return the display width of the minibuffer prompt.
-Return 0 if current buffer is not a mini-buffer."
+Return 0 if current buffer is not a minibuffer."
   ;; Return the width of everything before the field at the end of
   ;; the buffer; this should be 0 for normal buffers.
   (1- (minibuffer-prompt-end)))
@@ -2345,7 +2345,7 @@
 
 When the yank handler has a non-nil PARAM element, the original STRING
 argument is not used by `insert-for-yank'.  However, since Lisp code
-may access and use elements from the kill-ring directly, the STRING
+may access and use elements from the kill ring directly, the STRING
 argument should still be a \"useful\" string for such uses."
   (if (> (length string) 0)
       (if yank-handler
@@ -2684,7 +2684,7 @@
 	      (let ((col (current-column)))
 		(forward-char -1)
 		(setq col (- col (current-column)))
-		(insert-char ?\  col)
+		(insert-char ?\s col)
 		(delete-char 1)))
 	  (forward-char -1)
 	  (setq count (1- count))))))
@@ -4075,7 +4075,7 @@
       (setq arg (current-column)))
   (if (not (integerp arg))
       ;; Disallow missing argument; it's probably a typo for C-x C-f.
-      (error "Set-fill-column requires an explicit argument")
+      (error "set-fill-column requires an explicit argument")
     (message "Fill column set to %d (was %d)" arg fill-column)
     (setq fill-column arg)))
 
@@ -4155,7 +4155,7 @@
 typing characters do.
 
 Note that binary overwrite mode is not its own minor mode; it is a
-specialization of overwrite-mode, entered by setting the
+specialization of overwrite mode, entered by setting the
 `overwrite-mode' variable to `overwrite-mode-binary'."
   (interactive "P")
   (setq overwrite-mode
@@ -4999,7 +4999,7 @@
      (define-key function-key-map (vector keypad) (vector normal))))
  '((kp-0 ?0) (kp-1 ?1) (kp-2 ?2) (kp-3 ?3) (kp-4 ?4)
    (kp-5 ?5) (kp-6 ?6) (kp-7 ?7) (kp-8 ?8) (kp-9 ?9)
-   (kp-space ?\ )
+   (kp-space ?\s)
    (kp-tab ?\t)
    (kp-enter ?\r)
    (kp-multiply ?*)
@@ -5140,7 +5140,7 @@
 DISPLAY-FLAG non-nil means show the new buffer with `pop-to-buffer'.
 This is always done when called interactively.
 
-Optional last arg NORECORD non-nil means do not put this buffer at the
+Optional third arg NORECORD non-nil means do not put this buffer at the
 front of the list of recently selected ones."
   (interactive
    (progn
--- a/lisp/skeleton.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/skeleton.el	Fri Jul 22 08:27:27 2005 +0000
@@ -154,7 +154,7 @@
 This command can also be an abbrev expansion (3rd and 4th columns in
 \\[edit-abbrevs]  buffer: \"\"  command-name).
 
-Optional first argument STR may also be a string which will be the value
+Optional second argument STR may also be a string which will be the value
 of `str' whereas the skeleton's interactor is then ignored."
   (skeleton-insert (funcall skeleton-filter skeleton)
 		   ;; Pretend  C-x a e  passed its prefix arg to us
--- a/lisp/startup.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/startup.el	Fri Jul 22 08:27:27 2005 +0000
@@ -184,9 +184,9 @@
 
 (defvar keyboard-type nil
   "The brand of keyboard you are using.
-This variable is used to define
-the proper function and keypad keys for use under X.  It is used in a
-fashion analogous to the environment variable TERM.")
+This variable is used to define the proper function and keypad
+keys for use under X.  It is used in a fashion analogous to the
+environment variable TERM.")
 
 (defvar window-setup-hook nil
   "Normal hook run to initialize window system display.
@@ -234,7 +234,7 @@
 This variable is defined for customization so as to make
 it visible in the relevant context.  However, actually customizing it
 is not allowed, since it would not work anyway.  The only way to set
-this variable usefully is to set it during while building and dumping Emacs."
+this variable usefully is to set it while building and dumping Emacs."
   :type '(choice (const :tag "none" nil) string)
   :group 'initialization
   :initialize 'custom-initialize-default
@@ -664,9 +664,9 @@
     ;; processed.  This is consistent with the way main in emacs.c
     ;; does things.
     (while (and (not done) args)
-      (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--user")
-                         ("--debug-init") ("--iconic") ("--icon-type")
-			 ("--no-blinking-cursor") ("--bare-bones")))
+      (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--debug-init")
+                         ("--user") ("--iconic") ("--icon-type") ("--quick")
+			 ("--no-blinking-cursor") ("--basic-display")))
              (argi (pop args))
              (orig-argi argi)
              argval)
@@ -1057,6 +1057,7 @@
 	   :face variable-pitch
 	   "\
 Copying Conditions\tConditions for redistributing and changing Emacs
+Getting New Versions\tHow to obtain the latest version of Emacs
 More Manuals / Ordering Manuals       Buying printed manuals from the FSF\n")
   (:face variable-pitch
 	   "You can do basic editing with the menu bar and scroll bar \
@@ -1345,20 +1346,20 @@
 
 Useful File menu items:
 Exit Emacs		(or type Control-x followed by Control-c)
-Recover Session		recover files you were editing before a crash
+Recover Session		Recover files you were editing before a crash
 
 Important Help menu items:
-Emacs Tutorial		Learn-by-doing tutorial for using Emacs efficiently.
+Emacs Tutorial		Learn how to use Emacs efficiently
 Emacs FAQ		Frequently asked questions and answers
 Read the Emacs Manual	View the Emacs manual using Info
 \(Non)Warranty		GNU Emacs comes with ABSOLUTELY NO WARRANTY
-Copying Conditions	Conditions for redistributing and changing Emacs.
-Getting New Versions	How to obtain the latest version of Emacs.
-More Manuals / Ordering Manuals    How to order printed manuals from the FSF.
+Copying Conditions	Conditions for redistributing and changing Emacs
+Getting New Versions	How to obtain the latest version of Emacs
+More Manuals / Ordering Manuals    How to order printed manuals from the FSF
 ")
 		  (insert "\n\n" (emacs-version)
 			  "
-Copyright (C) 2004 Free Software Foundation, Inc."))
+Copyright (C) 2005 Free Software Foundation, Inc."))
 
 	      ;; No mouse menus, so give help using kbd commands.
 
@@ -1406,7 +1407,7 @@
 
 	      (insert "\n\n" (emacs-version)
 		      "
-Copyright (C) 2004 Free Software Foundation, Inc.")
+Copyright (C) 2005 Free Software Foundation, Inc.")
 
 	      (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
 		       (eq (key-binding "\C-h\C-d") 'describe-distribution)
--- a/lisp/strokes.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/strokes.el	Fri Jul 22 08:27:27 2005 +0000
@@ -243,9 +243,9 @@
 
 (defcustom strokes-grid-resolution 9
   "*Integer defining dimensions of the stroke grid.
-The grid is a square grid, where STROKES-GRID-RESOLUTION defaults to
+The grid is a square grid, where `strokes-grid-resolution' defaults to
 `9', making a 9x9 grid whose coordinates go from (0 . 0) on the top
-left to ((STROKES-GRID-RESOLUTION - 1) . (STROKES-GRID-RESOLUTION - 1))
+left to ((strokes-grid-resolution - 1) . (strokes-grid-resolution - 1))
 on the bottom right.  The greater the resolution, the more intricate
 your strokes can be.
 NOTE: This variable should be odd and MUST NOT be less than 3 and need
@@ -259,7 +259,7 @@
   :group 'strokes)
 
 (defcustom strokes-file (convert-standard-filename "~/.strokes")
-  "*File containing saved strokes for stroke-mode (default is ~/.strokes)."
+  "*File containing saved strokes for Strokes mode (default is ~/.strokes)."
   :type 'file
   :group 'strokes)
 
@@ -284,17 +284,17 @@
   "Last stroke entered by the user.
 Its value gets set every time the function
 `strokes-fill-stroke' gets called,
-since that is the best time to set the variable")
+since that is the best time to set the variable.")
 
 (defvar strokes-global-map '()
   "Association list of strokes and their definitions.
 Each entry is (STROKE . COMMAND) where STROKE is itself a list of
 coordinates (X . Y) where X and Y are lists of positions on the
 normalized stroke grid, with the top left at (0 . 0).  COMMAND is the
-corresponding interactive function")
+corresponding interactive function.")
 
 (defvar strokes-load-hook nil
-  "Function or functions to be called when `strokes' is loaded.")
+  "Functions to be called when Strokes is loaded.")
 
 ;;; ### NOT IMPLEMENTED YET ###
 ;;(defvar edit-strokes-menu
@@ -473,10 +473,10 @@
 
 (defun strokes-get-grid-position (stroke-extent position &optional grid-resolution)
   "Map POSITION to a new grid position.
-Do so  based on its STROKE-EXTENT and GRID-RESOLUTION.
+Do so based on its STROKE-EXTENT and GRID-RESOLUTION.
 STROKE-EXTENT as a list \(\(XMIN . YMIN\) \(XMAX . YMAX\)\).
 If POSITION is a `strokes-lift', then it is itself returned.
-Optional GRID-RESOLUTION may be used in place of STROKES-GRID-RESOLUTION.
+Optional GRID-RESOLUTION may be used in place of `strokes-grid-resolution'.
 The grid is a square whose dimension is [0,GRID-RESOLUTION)."
   (cond ((consp position)		; actual pixel location
 	 (let ((grid-resolution (or grid-resolution strokes-grid-resolution))
@@ -566,7 +566,7 @@
 (defun strokes-renormalize-to-grid (positions &optional grid-resolution)
   "Map POSITIONS to a new grid whose dimensions are based on GRID-RESOLUTION.
 POSITIONS is a list of positions and stroke-lifts.
-Optional GRID-RESOLUTION may be used in place of STROKES-GRID-RESOLUTION.
+Optional GRID-RESOLUTION may be used in place of `strokes-grid-resolution'.
 The grid is a square whose dimension is [0,GRID-RESOLUTION)."
   (or grid-resolution (setq grid-resolution strokes-grid-resolution))
   (let ((stroke-extent (strokes-get-stroke-extent positions)))
@@ -726,7 +726,7 @@
 This function will display the stroke interactively as it is being
 entered in the strokes buffer if the variable
 `strokes-use-strokes-buffer' is non-nil.
-Optional EVENT is acceptable as the starting event of the stroke"
+Optional EVENT is acceptable as the starting event of the stroke."
   (save-excursion
     (let ((pix-locs nil)
 	  (grid-locs nil)
@@ -790,7 +790,7 @@
 Note that a complex stroke allows the user to pen-up and pen-down.  This
 is implemented by allowing the user to paint with button 1 or button 2 and
 then complete the stroke with button 3.
-Optional EVENT is acceptable as the starting event of the stroke"
+Optional EVENT is acceptable as the starting event of the stroke."
   (save-excursion
     (save-window-excursion
       (set-window-configuration strokes-window-configuration)
@@ -892,11 +892,12 @@
 
 ;;;###autoload
 (defun strokes-help ()
-  "Get instruction on using the `strokes' package."
+  "Get instruction on using the Strokes package."
   (interactive)
   (with-output-to-temp-buffer "*Help with Strokes*"
     (princ
-     "This is help for the strokes package.
+     (substitute-command-keys
+      "This is help for the strokes package.
 
 ------------------------------------------------------------
 
@@ -986,7 +987,7 @@
 You will be prompted to save them when you exit Emacs, or you can save
 them with
 
-> M-x strokes-save-strokes
+> M-x strokes-prompt-user-save-strokes
 
 Your strokes get loaded automatically when you enable `strokes-mode'.
 You can also load in your user-defined strokes with
@@ -1024,7 +1025,7 @@
   variable which many people wanted to see was
   `strokes-use-strokes-buffer' which allows the user to use strokes
   silently--without displaying the strokes.  All variables can be set
-  by customizing the group `strokes' via \[customize-group].")
+  by customizing the group `strokes' via \\[customize-group]."))
     (set-buffer standard-output)
     (help-mode)
     (print-help-return-message)))
--- a/lisp/tempo.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/tempo.el	Fri Jul 22 08:27:27 2005 +0000
@@ -117,7 +117,7 @@
 (defcustom tempo-interactive nil
   "*Prompt user for strings in templates.
 If this variable is non-nil, `tempo-insert' prompts the
-user for text to insert in the templates"
+user for text to insert in the templates."
   :type 'boolean
   :group 'tempo)
 
@@ -133,7 +133,7 @@
 
 (defcustom tempo-show-completion-buffer t
   "*If non-nil, show a buffer with possible completions, when only
-a partial completion can be found"
+a partial completion can be found."
   :type 'boolean
   :group 'tempo)
 
@@ -148,17 +148,17 @@
 (defvar tempo-insert-string-functions nil
   "List of functions to run when inserting a string.
 Each function is called with a single arg, STRING and should return
-another string. This could be used for making all strings upcase by
+another string.  This could be used for making all strings upcase by
 setting it to '(upcase), for example.")
 
 (defvar tempo-tags nil
-  "An association list with tags and corresponding templates")
+  "An association list with tags and corresponding templates.")
 
 (defvar tempo-local-tags '((tempo-tags . nil))
   "A list of locally installed tag completion lists.
 It is a association list where the car of every element is a symbol
-whose variable value is a template list. The cdr part, if non-nil, is a
-function or a regexp that defines the string to match. See the
+whose variable value is a template list.  The cdr part, if non-nil,
+is a function or a regexp that defines the string to match.  See the
 documentation for the function `tempo-complete-tag' for more info.
 
 `tempo-tags' is always in the last position in this list.")
@@ -175,8 +175,8 @@
 (defvar tempo-match-finder "\\b\\([[:word:]]+\\)\\="
   "The regexp or function used to find the string to match against tags.
 
-If `tempo-match-finder is a string, it should contain a regular
-expression with at least one \\( \\) pair. When searching for tags,
+If `tempo-match-finder' is a string, it should contain a regular
+expression with at least one \\( \\) pair.  When searching for tags,
 `tempo-complete-tag' calls `re-search-backward' with this string, and
 the string between the first \\( and \\) is used for matching against
 each string in the tag list. If one is found, the whole text between
@@ -229,51 +229,50 @@
 list of elements in the template, TAG is the tag used for completion,
 DOCUMENTATION is the documentation string for the insertion command
 created, and TAGLIST (a symbol) is the tag list that TAG (if provided)
-should be added to).  If TAGLIST is nil and TAG is non-nil, TAG is
-added to `tempo-tags'
+should be added to.  If TAGLIST is nil and TAG is non-nil, TAG is
+added to `tempo-tags'.
 
 The elements in ELEMENTS can be of several types:
 
- - A string. It is sent to the hooks in `tempo-insert-string-functions',
+ - A string: It is sent to the hooks in `tempo-insert-string-functions',
    and the result is inserted.
- - The symbol 'p. This position is saved in `tempo-marks'.
- - The symbol 'r. If `tempo-insert' is called with ON-REGION non-nil
-   the current region is placed here. Otherwise it works like 'p.
- - (p PROMPT <NAME> <NOINSERT>) If `tempo-interactive' is non-nil, the
+ - The symbol `p': This position is saved in `tempo-marks'.
+ - The symbol `r': If `tempo-insert' is called with ON-REGION non-nil
+   the current region is placed here.  Otherwise it works like `p'.
+ - (p PROMPT <NAME> <NOINSERT>): If `tempo-interactive' is non-nil, the
    user is prompted in the minibuffer with PROMPT for a string to be
-   inserted. If the optional parameter NAME is non-nil, the text is
-   saved for later insertion with the `s' tag. If there already is
+   inserted.  If the optional parameter NAME is non-nil, the text is
+   saved for later insertion with the `s' tag.  If there already is
    something saved under NAME that value is used instead and no
-   prompting is made. If NOINSERT is provided and non-nil, nothing is
-   inserted, but text is still saved when a NAME is provided. For
-   clarity, the symbol 'noinsert should be used as argument.
- - (P PROMPT <NAME> <NOINSERT>) Works just like the previous tag, but
-   forces tempo-interactive to be true.
- - (r PROMPT <NAME> <NOINSERT>) like the previous, but if
+   prompting is made.  If NOINSERT is provided and non-nil, nothing is
+   inserted, but text is still saved when a NAME is provided.  For
+   clarity, the symbol `noinsert' should be used as argument.
+ - (P PROMPT <NAME> <NOINSERT>): Works just like the previous tag, but
+   forces `tempo-interactive' to be true.
+ - (r PROMPT <NAME> <NOINSERT>): Like the previous tag, but if
    `tempo-interactive' is nil and `tempo-insert' is called with
-   ON-REGION non-nil, the current region is placed here. This usually
+   ON-REGION non-nil, the current region is placed here.  This usually
    happens when you call the template function with a prefix argument.
- - (s NAME) Inserts text previously read with the (p ..) construct.
-   Finds the insertion saved under NAME and inserts it. Acts like 'p
+ - (s NAME): Inserts text previously read with the (p ..) construct.
+   Finds the insertion saved under NAME and inserts it.  Acts like `p'
    if tempo-interactive is nil.
- - '& If there is only whitespace between the line start and point,
-   nothing happens. Otherwise a newline is inserted.
- - '% If there is only whitespace between point and end-of-line
-   nothing happens. Otherwise a newline is inserted.
- - 'n inserts a newline.
- - '> The line is indented using `indent-according-to-mode'. Note that
-   you often should place this item after the text you want on the
-   line.
- - 'r> Like r, but it also indents the region.
- - 'n> Inserts a newline and indents line.
- - 'o Like '% but leaves the point before the newline.
- - nil. It is ignored.
- - Anything else. It is evaluated and the result is treated as an
-   element to be inserted. One additional tag is useful for these
-   cases. If an expression returns a list '(l foo bar), the elements
-   after 'l will be inserted according to the usual rules. This makes
+ - `&': If there is only whitespace between the line start and point,
+   nothing happens.  Otherwise a newline is inserted.
+ - `%': If there is only whitespace between point and end of line,
+   nothing happens.  Otherwise a newline is inserted.
+ - `n': Inserts a newline.
+ - `>': The line is indented using `indent-according-to-mode'.  Note
+   that you often should place this item after the text you want on
+   the line.
+ - `r>': Like `r', but it also indents the region.
+ - `n>': Inserts a newline and indents line.
+ - `o': Like `%' but leaves the point before the newline.
+ - nil: It is ignored.
+ - Anything else: It is evaluated and the result is treated as an
+   element to be inserted.  One additional tag is useful for these
+   cases.  If an expression returns a list '(l foo bar), the elements
+   after `l' will be inserted according to the usual rules.  This makes
    it possible to return several elements from one expression."
-
   (let* ((template-name (intern (concat "tempo-template-"
 				       name)))
 	 (command-name template-name))
@@ -296,14 +295,14 @@
 (defun tempo-insert-template (template on-region)
   "Insert a template.
 TEMPLATE is the template to be inserted.  If ON-REGION is non-nil the
-`r' elements are replaced with the current region. In Transient Mark
+`r' elements are replaced with the current region.  In Transient Mark
 mode, ON-REGION is ignored and assumed true if the region is active."
   (unwind-protect
       (progn
 	(if (or (and (boundp 'transient-mark-mode) ; For Emacs
 		     transient-mark-mode
 		     mark-active)
-		(and (boundp 'zmacs-regions) ; For XEmacs
+		(if (featurep 'xemacs)
 		     zmacs-regions (mark)))
 	    (setq on-region t))
 	(and on-region
@@ -399,9 +398,9 @@
 ;;; tempo-insert-prompt
 
 (defun tempo-insert-prompt-compat (prompt)
-  "Compatibility hack for tempo-insert-prompt.
+  "Compatibility hack for `tempo-insert-prompt'.
 PROMPT can be either a prompt string, or a list of arguments to
-tempo-insert-prompt, or nil."
+`tempo-insert-prompt', or nil."
   (if (consp prompt)			; not nil either
       (apply 'tempo-insert-prompt prompt)
     (tempo-insert-prompt prompt)))
@@ -410,12 +409,12 @@
   "Prompt for a text string and insert it in the current buffer.
 If the variable `tempo-interactive' is non-nil the user is prompted
 for a string in the minibuffer, which is then inserted in the current
-buffer. If `tempo-interactive' is nil, the current point is placed on
+buffer.  If `tempo-interactive' is nil, the current point is placed on
 `tempo-mark'.
 
 PROMPT is the prompt string, SAVE-NAME is a name to save the inserted
-text under. If the optional argument NO-INSERT is non-nil, no text i
-inserted. This can be useful when there is a SAVE-NAME.
+text under.  If the optional argument NO-INSERT is non-nil, no text is
+inserted.  This can be useful when there is a SAVE-NAME.
 
 If there already is a value for SAVE-NAME, it is used and the user is
 never prompted."
@@ -448,8 +447,7 @@
 ;;; tempo-is-user-element
 
 (defun tempo-is-user-element (element)
-  "Tries all the user-defined element handlers in
-`tempo-user-elements'"
+  "Tries all the user-defined element handlers in `tempo-user-elements'."
   ;; Sigh... I need (some list)
   (catch 'found
     (mapcar (function (lambda (handler)
@@ -531,7 +529,7 @@
 ;;; tempo-insert-mark
 
 (defun tempo-insert-mark (mark)
-  "Insert a mark `tempo-marks' while keeping it sorted"
+  "Insert a mark `tempo-marks' while keeping it sorted."
   (cond ((null tempo-marks) (setq tempo-marks (list mark)))
 	((< mark (car tempo-marks)) (setq tempo-marks (cons mark tempo-marks)))
 	(t (let ((lp tempo-marks))
@@ -603,8 +601,8 @@
 
 COMPLETION-FUNCTION is an obsolete option for specifying an optional
 function or string that is used by `\\[tempo-complete-tag]' to find a
-string to match the tag against. It has the same definition as the
-variable `tempo-match-finder'. In this version, supplying a
+string to match the tag against.  It has the same definition as the
+variable `tempo-match-finder'.  In this version, supplying a
 COMPLETION-FUNCTION just sets `tempo-match-finder' locally."
   (let ((old (assq tag-list tempo-local-tags)))
     (if old
@@ -647,7 +645,7 @@
 
 (defun tempo-find-match-string (finder)
   "Find a string to be matched against a tag list.
-FINDER is a function or a string. Returns (STRING . POS), or nil
+FINDER is a function or a string.  Returns (STRING . POS), or nil
 if no reasonable string is found."
   (cond ((stringp finder)
 	 (let (successful)
@@ -671,7 +669,7 @@
 All the tags in the tag lists in `tempo-local-tags'
 \(this includes `tempo-tags') are searched for a match for the text
 before the point.  The way the string to match for is determined can
-be altered with the variable `tempo-match-finder'. If
+be altered with the variable `tempo-match-finder'.  If
 `tempo-match-finder' returns nil, then the results are the same as
 no match at all.
 
--- a/lisp/term.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/term.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1100,6 +1100,8 @@
   (make-local-variable 'term-current-face)
   (make-local-variable 'term-pending-frame)
   (setq term-pending-frame nil)
+  ;; Cua-mode's keybindings interfere with the term keybindings, disable it. 
+  (set (make-local-variable 'cua-mode) nil)
   (run-mode-hooks 'term-mode-hook)
   (term-if-xemacs
    (set-buffer-menubar
--- a/lisp/textmodes/org.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/textmodes/org.el	Fri Jul 22 08:27:27 2005 +0000
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 3.13
+;; Version: 3.14
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -21,8 +21,8 @@
 
 ;; 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.
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;;; Commentary:
@@ -80,6 +80,12 @@
 ;;
 ;; Changes:
 ;; -------
+;; Version 3.14
+;;    - Formulas for individual fields in table.
+;;    - Automatic recalculation in calculating tables.
+;;    - Named fields and columns in tables.
+;;    - Fixed bug with calling `org-archive' several times in a row.
+;;
 ;; Version 3.13
 ;;    - Efficiency improvements:  Fewer table re-alignments needed.
 ;;    - New special lines in tables, for defining names for individual cells.
@@ -182,7 +188,7 @@
 
 ;;; Customization variables
 
-(defvar org-version "3.13"
+(defvar org-version "3.14"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
@@ -1215,6 +1221,20 @@
   :group 'org-table
   :type 'boolean)
 
+(defcustom org-table-tab-recognizes-table.el t
+  "Non-nil means, TAB will automatically notice a table.el table.
+When it sees such a table, it moves point into it and - if necessary -
+calls `table-recognize-table'."
+  :group 'org-table
+  :type 'boolean)
+
+;; FIXME: Should this one be in another group?  Which one?
+(defcustom org-enable-fixed-width-editor t
+  "Non-nil means, lines starting with \":\" are treated as fixed-width.
+This currently only means, they are never auto-wrapped.
+When nil, such lines will be treated like ordinary lines."
+  :group 'org-table
+  :type 'boolean)
 
 (defgroup org-table-calculation nil
   "Options concerning tables in Org-mode."
@@ -1284,29 +1304,10 @@
   :group 'org-table-calculation
   :type 'boolean)
 
-(defcustom org-table-tab-recognizes-table.el t
-  "Non-nil means, TAB will automatically notice a table.el table.
-When it sees such a table, it moves point into it and - if necessary -
-calls `table-recognize-table'."
-  :group 'org-table
-  :type 'boolean)
-
-(defcustom org-export-prefer-native-exporter-for-tables nil
-  "Non-nil means, always export tables created with table.el natively.
-Natively means, use the HTML code generator in table.el.
-When nil, Org-mode's own HTML generator is used when possible (i.e. if
-the table does not use row- or column-spanning).  This has the
-advantage, that the automatic HTML conversions for math symbols and
-sub/superscripts can be applied.  Org-mode's HTML generator is also
-much faster."
-  :group 'org-table
-  :type 'boolean)
-
-(defcustom org-enable-fixed-width-editor t
-  "Non-nil means, lines starting with \":\" are treated as fixed-width.
-This currently only means, they are never auto-wrapped.
-When nil, such lines will be treated like ordinary lines."
-  :group 'org-table
+(defcustom org-table-allow-automatic-line-recalculation t
+  "Non-nil means, lines makred with |#| or |*| will be recomputed automatically.
+Automatically means, when TAB or RET or C-c C-c are pressed in the line."
+  :group 'org-table-calculation
   :type 'boolean)
 
 (defgroup org-export nil
@@ -1425,6 +1426,17 @@
   :group 'org-export
   :type 'boolean)
 
+(defcustom org-export-prefer-native-exporter-for-tables nil
+  "Non-nil means, always export tables created with table.el natively.
+Natively means, use the HTML code generator in table.el.
+When nil, Org-mode's own HTML generator is used when possible (i.e. if
+the table does not use row- or column-spanning).  This has the
+advantage, that the automatic HTML conversions for math symbols and
+sub/superscripts can be applied.  Org-mode's HTML generator is also
+much faster."
+  :group 'org-export
+  :type 'boolean)
+
 (defcustom org-export-html-table-tag
   "<table border=1 cellspacing=0 cellpadding=6>"
   "The HTML tag used to start a table.
@@ -1926,7 +1938,7 @@
 	  '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
 	    (1 'org-table t))
 	  '("^[ \t]*\\(:.*\\)" (1 'org-table t))
-	  '("| *\\(=[^|\n]*\\)" (1 'org-formula t))
+	  '("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
 	  '("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
 	  )))
     (set (make-local-variable 'org-font-lock-keywords)
@@ -2634,7 +2646,10 @@
 	(setq level (match-end 0))
       (setq heading nil level 0))
     (save-excursion
-      (org-copy-subtree)  ; We first only copy, in case something goes wrong
+      ;; We first only copy, in case something goes wrong
+      ;; we need to protect this-command, to avoid kill-region sets it,
+      ;; which would lead to duplication of subtrees
+      (let (this-command) (org-copy-subtree))
       (set-buffer buffer)
       ;; Enforce org-mode for the archive buffer
       (if (not (eq major-mode 'org-mode))
@@ -2691,7 +2706,7 @@
 	(if (not (eq this-buffer buffer)) (save-buffer))))
     ;; Here we are back in the original buffer.  Everything seems to have
     ;; worked.  So now cut the tree and finish up.
-    (org-cut-subtree)
+    (let (this-command) (org-cut-subtree))
     (if (looking-at "[ \t]*$") (kill-line))
     (message "Subtree archived %s"
 	     (if (eq this-buffer buffer)
@@ -2717,7 +2732,6 @@
 		  (skip-chars-backward "a-zA-Z0-9_:$")
 		  (point)))
 	   (texp (equal (char-before beg) ?\\))
-	   (form (equal (char-before beg) ?=))
 	   (opt (equal (buffer-substring (max (point-at-bol) (- beg 2))
 					 beg)
 		       "#+"))
@@ -2734,9 +2748,6 @@
 		   (texp
 		    (setq type :tex)
 		    org-html-entities)
-		   (form
-		    (setq type :form)
-		    '(("sum") ("sumv") ("sumh")))
 		   ((string-match "\\`\\*+[ \t]*\\'"
 				  (buffer-substring (point-at-bol) beg))
 		    (setq type :todo)
@@ -5816,6 +5827,8 @@
   "Detects a table line marked for automatic recalculation.")
 (defconst org-table-recalculate-regexp "^[ \t]*| *[#*] *\\(|\\|$\\)"
   "Detects a table line marked for automatic recalculation.")
+(defconst org-table-calculate-mark-regexp "^[ \t]*| *[!$^_#*] *\\(|\\|$\\)"
+  "Detects a table line marked for automatic recalculation.")
 (defconst org-table-hline-regexp "^[ \t]*|-"
   "Detects an org-type table hline.")
 (defconst org-table1-hline-regexp "^[ \t]*\\+-[-+]"
@@ -6119,7 +6132,7 @@
   (cond
    ((and (not new) org-table-may-need-update)) ; Realignment will happen anyway
    ((org-at-table-hline-p)
-    ;; FIXME:  I use to enforce realign here, but I think this is not needed.
+    ;; FIXME:  I used to enforce realign here, but I think this is not needed.
     ;; (setq org-table-may-need-update t)
     )
    ((and (not new)
@@ -6133,15 +6146,17 @@
     (let* ((pos (point)) s
 	   (col (org-table-current-column))
 	   (num (nth (1- col) org-table-last-alignment))
-	   l f n o upd)
+	   l f n o e)
       (when (> col 0)
 	(skip-chars-backward "^|\n")
-	(if (looking-at " *\\([^|\n]*?\\) *|")
+	(if (looking-at " *\\([^|\n]*?\\) *\\(|\\|$\\)")
 	    (progn
 	      (setq s (match-string 1)
 		    o (match-string 0)
-		    l (max 1 (- (match-end 0) (match-beginning 0) 3)))
-	      (setq f (format (if num " %%%ds |" " %%-%ds |") l)
+		    l (max 1 (- (match-end 0) (match-beginning 0) 3))
+		    e (not (= (match-beginning 2) (match-end 2))))
+	      (setq f (format (if num " %%%ds %s" " %%-%ds %s")
+			      l (if e "|" (setq org-table-may-need-update t) ""))
 		    n (format f s t t))
 	      (if new
 		  (if (<= (length new) l)
@@ -6980,91 +6995,186 @@
      ((equal n 0)                             nil)
      (t n))))
 
+(defun org-table-get-vertical-vector (desc &optional tbeg col)
+  "Get a calc vector from a column, according to descriptor DESC.
+Optional arguments TBEG and COL can give the beginning of the table
+and the current column, to avoid unnecessary parsing."
+  (save-excursion
+    (or tbeg (setq tbeg (org-table-begin)))
+    (or col (setq col (org-table-current-column)))
+    (let (beg end nn n n1 n2 l (thisline (org-current-line)) hline-list)
+      (cond
+       ((string-match "\\(I+\\)\\(-\\(I+\\)\\)?" desc)
+	(setq n1 (- (match-end 1) (match-beginning 1)))
+	(if (match-beginning 3)
+	    (setq n2 (- (match-end 2) (match-beginning 3))))
+	(setq n (if n2 (max n1 n2) n1))
+	(setq n1 (if n2 (min n1 n2)))
+	(setq nn n)
+	(while (and (> nn 0)
+		    (re-search-backward org-table-hline-regexp tbeg t))
+	  (push (org-current-line) hline-list)
+	  (setq nn (1- nn)))
+	(setq hline-list (nreverse hline-list))
+	(goto-line (nth (1- n) hline-list))
+	(when (re-search-forward org-table-dataline-regexp)
+	  (org-table-goto-column col)
+	  (setq beg (point)))
+	(goto-line (if n1 (nth (1- n1) hline-list) thisline))
+	(when (re-search-backward org-table-dataline-regexp)
+	  (org-table-goto-column col)
+	  (setq end (point)))
+	(setq l (apply 'append (org-table-copy-region beg end)))
+	(concat "[" (mapconcat (lambda (x) (setq x (org-trim x))
+				 (if (equal x "") "0" x))
+			       l ",") "]"))
+       ((string-match "\\([0-9]+\\)-\\([0-9]+\\)" desc)
+	(setq n1 (string-to-number (match-string 1 desc))
+	      n2 (string-to-number (match-string 2 desc)))
+	(beginning-of-line 1)
+	(save-excursion
+	  (when (re-search-backward org-table-dataline-regexp tbeg t n1)
+	    (org-table-goto-column col)
+	    (setq beg (point))))
+	(when (re-search-backward org-table-dataline-regexp tbeg t n2)
+	  (org-table-goto-column col)
+	  (setq end (point)))
+	(setq l (apply 'append (org-table-copy-region beg end)))
+	(concat "[" (mapconcat
+		     (lambda (x) (setq x (org-trim x))
+		       (if (equal x "") "0" x))
+		     l ",") "]"))
+       ((string-match "\\([0-9]+\\)" desc)
+	(beginning-of-line 1)
+	(when (re-search-backward org-table-dataline-regexp tbeg t
+				  (string-to-number (match-string 0 desc)))
+	  (org-table-goto-column col)
+	  (org-trim (org-table-get-field))))))))
+
 (defvar org-table-formula-history nil)
 
-(defun org-table-get-formula (&optional equation)
+(defvar org-table-column-names nil
+  "Alist with column names, derived from the `!' line.")
+(defvar org-table-column-name-regexp nil
+  "Regular expression matching the current column names.")
+(defvar org-table-local-parameters nil
+  "Alist with parameter names, derived from the `$' line.")
+(defvar org-table-named-field-locations nil
+  "Alist with locations of named fields.")
+
+(defun org-table-get-formula (&optional equation named)
   "Read a formula from the minibuffer, offer stored formula as default."
-  (let* ((col (org-table-current-column))
+  (let* ((name (car (rassoc (list (org-current-line)
+				  (org-table-current-column))
+			    org-table-named-field-locations)))
+	 (scol (if named
+		   (if name name
+		     (error "Not in a named field"))
+		 (int-to-string (org-table-current-column))))
+	 (dummy (and name (not named)
+		     (not (y-or-n-p "Replace named-field formula with column equation? " ))
+		 (error "Abort")))
 	 (org-table-may-need-update nil)
 	 (stored-list (org-table-get-stored-formulas))
-	 (stored (cdr (assoc col stored-list)))
+	 (stored (cdr (assoc scol stored-list)))
 	 (eq (cond
 	      ((and stored equation (string-match "^ *= *$" equation))
 	       stored)
 	      ((stringp equation)
 	       equation)
 	      (t (read-string
-		  "Formula: " (or stored "") 'org-table-formula-history
-		  stored)))))
-    (if (not (string-match "\\S-" eq))
-	(error "Empty formula"))
+		  (format "%s formula $%s=" (if named "Field" "Column") scol)
+		  (or stored "") 'org-table-formula-history
+		  ;stored
+		  ))))
+	 mustsave)
+    (when (not (string-match "\\S-" eq))
+      ;; remove formula
+      (setq stored-list (delq (assoc scol stored-list) stored-list))
+      (org-table-store-formulas stored-list)
+      (error "Formula removed"))
     (if (string-match "^ *=?" eq) (setq eq (replace-match "" t t eq)))
     (if (string-match " *$" eq) (setq eq (replace-match "" t t eq)))
+    (if (and name (not named))
+	;; We set the column equation, delete the named one.
+	(setq stored-list (delq (assoc name stored-list) stored-list)
+	      mustsave t))
     (if stored
-	(setcdr (assoc col stored-list) eq)
-      (setq stored-list (cons (cons col eq) stored-list)))
-    (if (not (equal stored eq))
+	(setcdr (assoc scol stored-list) eq)
+      (setq stored-list (cons (cons scol eq) stored-list)))
+    (if (or mustsave (not (equal stored eq)))
 	(org-table-store-formulas stored-list))
     eq))
 
 (defun org-table-store-formulas (alist)
   "Store the list of formulas below the current table."
-  (setq alist (sort alist (lambda (a b) (< (car a) (car b)))))
+  (setq alist (sort alist (lambda (a b) (string< (car a) (car b)))))
   (save-excursion
     (goto-char (org-table-end))
     (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:.*\n?")
 	(delete-region (point) (match-end 0)))
     (insert "#+TBLFM: "
 	    (mapconcat (lambda (x)
-			 (concat "$" (int-to-string (car x)) "=" (cdr x)))
+			 (concat "$" (car x) "=" (cdr x)))
 		       alist "::")
 	    "\n")))
 
 (defun org-table-get-stored-formulas ()
-  "Return an alist withh the t=stored formulas directly after current table."
+  "Return an alist with the t=stored formulas directly after current table."
   (interactive)
-  (let (col eq eq-alist strings string)
+  (let (scol eq eq-alist strings string seen)
     (save-excursion
       (goto-char (org-table-end))
       (when (looking-at "\\([ \t]*\n\\)*#\\+TBLFM: *\\(.*\\)")
 	(setq strings (org-split-string (match-string 2) " *:: *"))
 	(while (setq string (pop strings))
-	  (if (string-match "\\$\\([0-9]+\\) *= *\\(.*[^ \t]\\)" string)
-	      (setq col (string-to-number (match-string 1 string))
-		    eq (match-string 2 string)
-		    eq-alist (cons (cons col eq) eq-alist))))))
-    eq-alist))
+	  (when (string-match "\\$\\([a-zA-Z0-9]+\\) *= *\\(.*[^ \t]\\)" string)
+	    (setq scol (match-string 1 string)
+		  eq (match-string 2 string)
+		  eq-alist (cons (cons scol eq) eq-alist))
+	    (if (member scol seen)
+		(error "Double definition `$%s=' in TBLFM line, please fix by hand" scol)
+	      (push scol seen))))))
+    (nreverse eq-alist)))
 
 (defun org-table-modify-formulas (action &rest columns)
   "Modify the formulas stored below the current table.
 ACTION can be `remove', `insert', `swap'.  For `swap', two column numbers are
 expected, for the other action only a single column number is needed."
   (let ((list (org-table-get-stored-formulas))
-	(nmax (length (org-split-string (buffer-substring (point-at-bol) (point-at-eol))
-					"|")))
-	col col1 col2)
+	(nmax (length (org-split-string
+		       (buffer-substring (point-at-bol) (point-at-eol))
+		       "|")))
+	col col1 col2 scol si sc1 sc2)
     (cond
      ((null list))   ; No action needed if there are no stored formulas
      ((eq action 'remove)
-      (setq col (car columns))
-      (org-table-replace-in-formulas list col "INVALID")
-      (if (assoc col list) (setq list (delq (assoc col list) list)))
+      (setq col (car columns)
+	    scol (int-to-string col))
+      (org-table-replace-in-formulas list scol "INVALID")
+      (if (assoc scol list) (setq list (delq (assoc scol list) list)))
       (loop for i from (1+ col) upto nmax by 1 do
-	    (org-table-replace-in-formulas list i (1- i))
-	    (if (assoc i list) (setcar (assoc i list) (1- i)))))
+	    (setq si (int-to-string i))
+	    (org-table-replace-in-formulas list si (int-to-string (1- i)))
+	    (if (assoc si list) (setcar (assoc si list)
+					(int-to-string (1- i))))))
      ((eq action 'insert)
       (setq col (car columns))
       (loop for i from nmax downto col by 1 do
-	    (org-table-replace-in-formulas list i (1+ i))
-	    (if (assoc i list) (setcar (assoc i list) (1+ i)))))
+	    (setq si (int-to-string i))
+	    (org-table-replace-in-formulas list si (int-to-string (1+ i)))
+	    (if (assoc si list) (setcar (assoc si list)
+					(int-to-string (1+ i))))))
      ((eq action 'swap)
-      (setq col1 (car columns) col2 (nth 1 columns))
-      (org-table-replace-in-formulas list col1 "Z")
-      (org-table-replace-in-formulas list col2 col1)
-      (org-table-replace-in-formulas list "Z" col2)
-      (if (assoc col1 list) (setcar (assoc col1 list) "Z"))
-      (if (assoc col2 list) (setcar (assoc col2 list) col1))
-      (if (assoc "Z" list)  (setcar (assoc "Z" list) col2)))
+      (setq col1 (car columns) col2 (nth 1 columns)
+	    sc1 (int-to-string col1) sc2 (int-to-string col2))
+      ;; Hopefully, ZqZ will never be a name in a table...  FIXME:
+      (org-table-replace-in-formulas list sc1 "ZqZ")
+      (org-table-replace-in-formulas list sc2 sc1)
+      (org-table-replace-in-formulas list "ZqZ" sc2)
+      (if (assoc sc1 list) (setcar (assoc sc1 list) "ZqZ"))
+      (if (assoc sc2 list) (setcar (assoc sc2 list) sc1))
+      (if (assoc "ZqZ" list)  (setcar (assoc "ZqZ" list) sc2)))
      (t (error "Invalid action in `org-table-modify-formulas'")))
     (if list (org-table-store-formulas list))))
 
@@ -7079,20 +7189,14 @@
 	(setq s (replace-match s2 t t s)))
       (setcdr elt s))))
 
-(defvar org-table-column-names nil
-  "Alist with column names, derived from the `!' line.")
-(defvar org-table-column-name-regexp nil
-  "Regular expression matching the current column names.")
-(defvar org-table-local-parameters nil
-  "Alist with parameter names, derived from the `$' line.")
-
 (defun org-table-get-specials ()
   "Get the column nmaes and local parameters for this table."
   (save-excursion
     (let ((beg (org-table-begin)) (end (org-table-end))
-	  names name fields fields1 field cnt c v)
+	  names name fields fields1 field cnt c v line col)
       (setq org-table-column-names nil
-	    org-table-local-parameters nil)
+	    org-table-local-parameters nil
+	    org-table-named-field-locations nil)
       (goto-char beg)
       (when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t)
 	(setq names (org-split-string (match-string 1) " *| *")
@@ -7117,13 +7221,15 @@
 	      fields (org-split-string (match-string 2) " *| *"))
 	(save-excursion
 	  (beginning-of-line (if (equal c "_") 2 0))
+	  (setq line (org-current-line) col 1)
 	  (and (looking-at "^[ \t]*|[^|]*\\(|.*\\)")
 	       (setq fields1 (org-split-string (match-string 1) " *| *"))))
-	(while (setq field (pop fields))
-	  (setq v (pop fields1))
-	  (if (and (stringp field) (stringp v)
-		   (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field))
-	      (push (cons field v) org-table-local-parameters)))))))
+	(while (and fields1 (setq field (pop fields)))
+	  (setq v (pop fields1) col (1+ col))
+	  (when (and (stringp field) (stringp v)
+		     (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field))
+	      (push (cons field v) org-table-local-parameters)
+	      (push (list field line col) org-table-named-field-locations)))))))
 
 (defun org-this-word ()
   ;; Get the current word
@@ -7133,46 +7239,18 @@
       (buffer-substring-no-properties beg end))))
 
 (defun org-table-maybe-eval-formula ()
-  "Check if the current field starts with \"=\" and evaluate the formula."
+  "Check if the current field starts with \"=\" or \":=\".
+If yes, store the formula and apply it."
   ;; We already know we are in a table.  Get field will only return a formula
   ;; when appropriate.  It might return a separator line, but no problem.
   (when org-table-formula-evaluate-inline
     (let* ((field (org-trim (or (org-table-get-field) "")))
-	   (dfield (downcase field))
-	   col bolpos nlast)
-      (when (equal (string-to-char field) ?=)
-	(if (string-match "^\\(=sum[vh]?\\)\\([0-9]+\\)$" dfield)
-	    (setq nlast (1+ (string-to-number (match-string 2 dfield)))
-		  dfield (match-string 1 dfield)))
-	(cond
-	 ((equal dfield "=sumh")
-	  (org-table-get-field
-	   nil (org-table-sum
-		(save-excursion (org-table-goto-column 1) (point))
-		(point) nlast)))
-	 ((member dfield '("=sum" "=sumv"))
-	  (setq col (org-table-current-column)
-		bolpos (point-at-bol))
-	  (org-table-get-field
-	   nil (org-table-sum
-		(save-excursion
-		  (goto-char (org-table-begin))
-		  (if (re-search-forward org-table-dataline-regexp bolpos t)
-		      (progn
-			(goto-char (match-beginning 0))
-			(org-table-goto-column col)
-			(point))
-		    (error "No datalines above current")))
-		(point) nlast)))
-	 ((and (string-match "^ *=" field)
-	       (fboundp 'calc-eval))
-	  (org-table-eval-formula nil field)))))))
-
-(defvar org-last-recalc-undo-list nil)
-(defcustom org-table-allow-line-recalculation t
-  "FIXME:"
-  :group 'org-table
-  :type 'boolean)
+	   named eq)
+      (when (string-match "^:?=\\(.+\\)" field)
+	(setq named (equal (string-to-char field) ?:)
+	      eq (match-string 1 field))
+	(if (fboundp 'calc-eval)
+	    (org-table-eval-formula (if named '(4) nil) eq))))))
 
 (defvar org-recalc-commands nil
   "List of commands triggering the reccalculation of a line.
@@ -7210,8 +7288,10 @@
 	 (col (org-table-current-column))
 	 (forcenew (car (assoc newchar org-recalc-marks)))
 	 epos new)
-    (if l1 (setq newchar (char-to-string (read-char-exclusive "Change region to what mark?  Type # * ! $ or SPC: "))
-		 forcenew (car (assoc newchar org-recalc-marks))))
+    (when l1
+      (message "Change region to what mark?  Type # * ! $ or SPC: ")
+      (setq newchar (char-to-string (read-char-exclusive))
+	    forcenew (car (assoc newchar org-recalc-marks))))
     (if (and newchar (not forcenew))
 	(error "Invalid NEWCHAR `%s' in `org-table-rotate-recalc-marks'"
 	       newchar))
@@ -7248,7 +7328,7 @@
 (defun org-table-maybe-recalculate-line ()
   "Recompute the current line if marked for it, and if we haven't just done it."
   (interactive)
-  (and org-table-allow-line-recalculation
+  (and org-table-allow-automatic-line-recalculation
        (not (and (memq last-command org-recalc-commands)
 		 (equal org-last-recalc-line (org-current-line))))
        (save-excursion (beginning-of-line 1)
@@ -7273,7 +7353,7 @@
     (cons var (cons value modes)))
   modes)
 
-(defun org-table-eval-formula (&optional ndown equation
+(defun org-table-eval-formula (&optional arg equation
 					 suppress-align suppress-const
 					 suppress-store)
   "Replace the table field value at the cursor by the result of a calculation.
@@ -7283,64 +7363,46 @@
 installed in order to use this function.
 
 In a table, this command replaces the value in the current field with the
-result of a formula.  While nowhere near the computation options of a
-spreadsheet program, this is still very useful.  There is no automatic
-updating of a calculated field, but the table will remember the last
-formula for each column.  The command needs to be applied again after
-changing input fields.
-
-When called, the command first prompts for a formula, which is read in the
-minibuffer.  Previously entered formulas are available through the history
-list, and the last used formula for each column is offered as a default.
+result of a formula.  It also installes the formula as the \"current\" column
+formula, by storing it in a special line below the table.  When called
+with a `C-u' prefix, the current field must ba a named field, and the
+formula is installed as valid in only this specific field.
+
+When called, the command first prompts for a formula, which is read in
+the minibuffer.  Previously entered formulas are available through the
+history list, and the last used formula is offered as a default.
 These stored formulas are adapted correctly when moving, inserting, or
 deleting columns with the corresponding commands.
 
 The formula can be any algebraic expression understood by the calc package.
-Before evaluation, variable substitution takes place: \"$\" is replaced by
-the field the cursor is currently in, and $1..$n reference the fields in
-the current row.  Values from a *different* row can *not* be referenced
-here, so the command supports only horizontal computing.  The formula can
-contain an optional printf format specifier after a semicolon, to reformat
-the result.
-
-A few examples for formulas:
-  $1+$2               Sum of first and second field
-  $1+$2;%.2f          Same, and format result to two digits after dec.point
-  exp($2)+exp($1)     Math functions can be used
-  $;%.1f              Reformat current cell to 1 digit after dec.point
-  ($3-32)*5/9         degrees F -> C conversion
-
-When called with a raw \\[universal-argument] prefix, the formula is applied to the current
-field, and to the same same column in all following rows, until reaching a
-horizontal line or the end of the table.  When the command is called with a
-numeric prefix argument (like M-3 or C-7 or \\[universal-argument] 24), the formula is applied
-to the current row, and to the following n-1 rows (but not beyond a
-separator line).
-
-This function can also be called from Lisp programs and offers two additional
-Arguments:  EQUATION can be the formula to apply.  If this argument is given,
-the user will not be prompted.  SUPPRESS-ALIGN is used to speed-up
-recursive calls by by-passing unnecessary aligns.  SUPPRESS-CONST suppresses
-the interpretation of constants in the formula.  SUPPRESS-STORE means the
-formula should not be stored, either because it is already stored, or because
-it is a modified equation that should not overwrite the stored one."
+For details, see the Org-mode manual.
+
+This function can also be called from Lisp programs and offers
+additional Arguments: EQUATION can be the formula to apply.  If this
+argument is given, the user will not be prompted.  SUPPRESS-ALIGN is
+used to speed-up recursive calls by by-passing unnecessary aligns.
+SUPPRESS-CONST suppresses the interpretation of constants in the
+formula, assuming that this has been done already outside the fuction.
+SUPPRESS-STORE means the formula should not be stored, either because
+it is already stored, or because it is a modified equation that should
+not overwrite the stored one."
   (interactive "P")
-  (setq ndown (if (equal ndown '(4)) 10000 (prefix-numeric-value ndown)))
   (require 'calc)
   (org-table-check-inside-data-field)
   (org-table-get-specials)
   (let* (fields
+	 (ndown (if (integerp arg) arg 1))
 	 (org-table-automatic-realign nil)
 	 (case-fold-search nil)
 	 (down (> ndown 1))
 	 (formula (if (and equation suppress-store)
 		      equation
-		    (org-table-get-formula equation)))
+		    (org-table-get-formula equation (equal arg '(4)))))
 	 (n0 (org-table-current-column))
 	 (modes (copy-sequence org-calc-default-modes))
 	 n form fmt x ev orig c)
     ;; Parse the format string.  Since we have a lot of modes, this is
-    ;; a lot of work.
+    ;; a lot of work.  However, I think calc still uses most of the time.
     (if (string-match ";" formula)
 	(let ((tmp (org-split-string formula ";")))
 	  (setq formula (car tmp)
@@ -7374,6 +7436,7 @@
 			fields)))
       (setq ndown (1- ndown))
       (setq form (copy-sequence formula))
+      ;; Insert the references to fields in same row
       (while (string-match "\\$\\([0-9]+\\)?" form)
 	(setq n (if (match-beginning 1)
 		    (string-to-int (match-string 1 form))
@@ -7383,6 +7446,13 @@
 			 (match-string 0 form)))
 	(if (equal x "") (setq x "0"))
 	(setq form (replace-match (concat "(" x ")") t t form)))
+      ;; Insert ranges in current column
+      (while (string-match "\\&[-I0-9]+" form)
+	(setq form (replace-match
+		     (save-match-data
+		       (org-table-get-vertical-vector (match-string 0 form)
+						      nil n0))
+		     t t form)))
       (setq ev (calc-eval (cons form modes)
 			  (if org-table-formula-numbers-only 'num)))
 
@@ -7424,24 +7494,32 @@
   (unless (org-at-table-p) (error "Not at a table"))
   (org-table-get-specials)
   (let* ((eqlist (sort (org-table-get-stored-formulas)
-		       (lambda (a b) (< (car a) (car b)))))
+		       (lambda (a b) (string< (car a) (car b)))))
 	 (inhibit-redisplay t)
 	 (line-re org-table-dataline-regexp)
 	 (thisline (+ (if (bolp) 1 0) (count-lines (point-min) (point))))
 	 (thiscol (org-table-current-column))
-	 beg end entry eql (cnt 0))
+	 beg end entry eqlnum eqlname eql (cnt 0) eq a name)
     ;; Insert constants in all formulas
     (setq eqlist
 	  (mapcar (lambda (x)
 		    (setcdr x (org-table-formula-substitute-names (cdr x)))
 		    x)
 		  eqlist))
+    ;; Split the equation list
+    (while (setq eq (pop eqlist))
+      (if (<= (string-to-char (car eq)) ?9)
+	  (push eq eqlnum)
+	(push eq eqlname)))
+    (setq eqlnum (nreverse eqlnum) eqlname (nreverse eqlname))
     (if all
 	(progn
 	  (setq end (move-marker (make-marker) (1+ (org-table-end))))
 	  (goto-char (setq beg (org-table-begin)))
-	  (if (re-search-forward org-table-recalculate-regexp end t)
+	  (if (re-search-forward org-table-calculate-mark-regexp end t)
+	      ;; This is a table with marked lines, only compute selected lines
 	      (setq line-re org-table-recalculate-regexp)
+	    ;; Move forward to the first non-header line
 	    (if (and (re-search-forward org-table-dataline-regexp end t)
 		     (re-search-forward org-table-hline-regexp end t)
 		     (re-search-forward org-table-dataline-regexp end t))
@@ -7452,23 +7530,37 @@
     (goto-char beg)
     (and all (message "Re-applying formulas to full table..."))
     (while (re-search-forward line-re end t)
-      (unless (string-match "^ *[!$] *$" (org-table-get-field 1))
+      (unless (string-match "^ *[_^!$] *$" (org-table-get-field 1))
 	;; Unprotected line, recalculate
 	(and all (message "Re-applying formulas to full table...(line %d)"
 			  (setq cnt (1+ cnt))))
 	(setq org-last-recalc-line (org-current-line))
-	(setq eql eqlist)
+	(setq eql eqlnum)
 	(while (setq entry (pop eql))
 	  (goto-line org-last-recalc-line)
-	  (org-table-goto-column (car entry) nil 'force)
+	  (org-table-goto-column (string-to-int (car entry)) nil 'force)
 	  (org-table-eval-formula nil (cdr entry) 'noalign 'nocst 'nostore))))
     (goto-line thisline)
     (org-table-goto-column thiscol)
     (or noalign (and org-table-may-need-update (org-table-align))
-	(and all (message "Re-applying formulas to %d lines...done" cnt)))))
+	(and all (message "Re-applying formulas to %d lines...done" cnt)))
+    ;; Now do the names fields
+    (while (setq eq (pop eqlname))
+      (setq name (car eq)
+	    a (assoc name org-table-named-field-locations))
+      (when a
+	(message "Re-applying formula to named field: %s" name)
+	(goto-line (nth 1 a))
+	(org-table-goto-column (nth 2 a))
+	(org-table-eval-formula nil (cdr eq) 'noalign 'nocst 'nostore)))
+    ;; back to initial position
+    (goto-line thisline)
+    (org-table-goto-column thiscol)
+    (or noalign (and org-table-may-need-update (org-table-align))
+	(and all (message "Re-applying formulas...done")))))
 
 (defun org-table-formula-substitute-names (f)
-  "Replace $const with values in stirng F."
+  "Replace $const with values in string F."
   (let ((start 0) a n1 n2 nn1 nn2 s (f1 f))
     ;; First, check for column names
     (while (setq start (string-match org-table-column-name-regexp f start))
@@ -7505,6 +7597,136 @@
       (and (fboundp 'constants-get) (constants-get const))
       "#UNDEFINED_NAME"))
 
+(defvar org-edit-formulas-map (make-sparse-keymap))
+(define-key org-edit-formulas-map "\C-c\C-c" 'org-finish-edit-formulas)
+(define-key org-edit-formulas-map "\C-c\C-q" 'org-abort-edit-formulas)
+(define-key org-edit-formulas-map "\C-c?" 'org-show-variable)
+
+(defvar org-pos)
+(defvar org-window-configuration)
+
+(defun org-table-edit-formulas ()
+  "Edit the formulas of the current table in a separate buffer."
+  (interactive)
+  (unless (org-at-table-p)
+    (error "Not at a table"))
+  (org-table-get-specials)
+  (let ((eql (org-table-get-stored-formulas))
+	(pos (move-marker (make-marker) (point)))
+	(wc (current-window-configuration))
+	entry loc s)
+    (switch-to-buffer-other-window "*Edit Formulas*")
+    (erase-buffer)
+    (fundamental-mode)
+    (set (make-local-variable 'org-pos) pos)
+    (set (make-local-variable 'org-window-configuration) wc)
+    (use-local-map org-edit-formulas-map)
+    (setq s "# Edit formulas and finish with `C-c C-c'.
+# Use `C-u C-c C-c' to also appy them immediately to the entire table.
+# Use `C-c ?' to get information about $name at point.
+# To cancel editing, press `C-c C-q'.\n")
+    (put-text-property 0 (length s) 'face 'font-lock-comment-face s)
+    (insert s)
+    (while (setq entry (pop eql))
+      (when (setq loc (assoc (car entry) org-table-named-field-locations))
+	(setq s (format "# Named formula, referring to column %d in line %d\n"
+			(nth 2 loc) (nth 1 loc)))
+	(put-text-property 0 (length s) 'face 'font-lock-comment-face s)
+	(insert s))
+      (setq s (concat "$" (car entry) "=" (cdr entry) "\n"))
+      (remove-text-properties 0 (length s) '(face nil) s)
+      (insert s))
+    (goto-char (point-min))
+    (message "Edit formulas and finish with `C-c C-c'.")))
+
+(defun org-show-variable ()
+  "Show the location/value of the $ expression at point."
+  (interactive)
+  (let (var (pos org-pos) (win (selected-window)) e)
+    (save-excursion
+      (or (looking-at "\\$") (skip-chars-backward "$a-zA-Z0-9"))
+      (if (looking-at "\\$\\([a-zA-Z0-9]+\\)")
+	  (setq var (match-string 1))
+	(error "No variable at point")))
+    (cond
+     ((setq e (assoc var org-table-named-field-locations))
+      (switch-to-buffer-other-window (marker-buffer pos))
+      (goto-line (nth 1 e))
+      (org-table-goto-column (nth 2 e))
+      (select-window win)
+      (message "Named field, column %d of line %d" (nth 2 e) (nth 1 e)))
+     ((setq e (assoc var org-table-column-names))
+      (switch-to-buffer-other-window (marker-buffer pos))
+      (goto-char pos)
+      (goto-char (org-table-begin))
+      (if (re-search-forward (concat "^[ \t]*| *! *.*?| *\\(" var "\\) *|")
+			     (org-table-end) t)
+	  (progn
+	    (goto-char (match-beginning 1))
+	    (message "Named column (column %s)" (cdr e)))
+	(error "Column name not found"))
+      (select-window win))
+     ((string-match "^[0-9]$" var)
+      ;; column number
+      (switch-to-buffer-other-window (marker-buffer pos))
+      (goto-char pos)
+      (goto-char (org-table-begin))
+      (recenter 1)
+      (if (re-search-forward org-table-dataline-regexp
+			     (org-table-end) t)
+	  (progn
+	    (goto-char (match-beginning 0))
+	    (org-table-goto-column (string-to-number var))
+	    (message "Column %s" var))
+	(error "Column name not found"))
+      (select-window win))
+     ((setq e (assoc var org-table-local-parameters))
+      (switch-to-buffer-other-window (marker-buffer pos))
+      (goto-char pos)
+      (goto-char (org-table-begin))
+      (if (re-search-forward (concat "^[ \t]*| *\\$ *.*?| *\\(" var "=\\)") nil t)
+	  (progn
+	    (goto-char (match-beginning 1))
+	    (message "Local parameter."))
+	(error "Parameter not found"))
+      (select-window win))
+     (t
+      (cond
+       ((setq e (assoc var org-table-formula-constants))
+	(message "Constant: $%s=%s in `org-table-formula-constants'." var (cdr e)))
+       ((setq e (and (fboundp 'constants-get) (constants-get var)))
+	(message "Constant: $%s=%s, retrieved from `constants.el'." var e))
+       (t (error "Undefined name $%s" var)))))))
+
+(defun org-finish-edit-formulas (&optional arg)
+  "Parse the buffer for formula definitions and install them.
+With prefix ARG, apply the new formulas to the table."
+  (interactive "P")
+  (let ((pos org-pos) eql)
+    (goto-char (point-min))
+    (while (re-search-forward "^\\$\\([a-zA-Z0-9]+\\) *= *\\(.*?\\) *$" nil t)
+      (push (cons (match-string 1) (match-string 2)) eql))
+    (set-window-configuration org-window-configuration)
+    (select-window (get-buffer-window (marker-buffer pos)))
+    (goto-char pos)
+    (unless (org-at-table-p)
+      (error "Lost table position - cannot install formulae"))
+    (org-table-store-formulas eql)
+    (move-marker pos nil)
+    (kill-buffer "*Edit Formulas*")
+    (if arg
+	(org-table-recalculate 'all)
+      (message "New formulas installed - press C-u C-c C-c to apply."))))
+
+(defun org-abort-edit-formulas ()
+  "Abort editing formulas, without installing the changes."
+  (interactive)
+  (let ((pos org-pos))
+    (set-window-configuration org-window-configuration)
+    (select-window (get-buffer-window (marker-buffer pos)))
+    (goto-char pos)
+    (message "Formula editing aborted without installing changes")))
+
 ;;; The orgtbl minor mode
 
 ;; Define a minor mode which can be used in other modes in order to
@@ -7657,6 +7879,7 @@
 	  '("\C-c+"              org-table-sum)
 	  '("\C-c|"              org-table-toggle-vline-visibility)
 	  '("\C-c="              org-table-eval-formula)
+	  '("\C-c'"              org-table-edit-formulas)
 	  '("\C-c*"              org-table-recalculate)
 	  '([(control ?#)]       org-table-rotate-recalc-marks)))
 	elt key fun cmd)
@@ -7714,8 +7937,9 @@
 	 ["Paste Rectangle" org-paste-special :active (org-at-table-p) :keys "C-c C-y"]
 	 ["Fill Rectangle" org-table-wrap-region :active (org-at-table-p) :keys "C-c C-q"])
 	"--"
-	["Eval Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="]
-	["Eval Formula Down " (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+	["Set Column Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="]
+	["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+	["Edit Formulas" org-table-edit-formulas :active (org-at-table-p) :keys "C-c '"]
 	["Recalculate line" org-table-recalculate :active (org-at-table-p) :keys "C-c *"]
 	["Recalculate all" (org-table-recalculate '(4)) :active (org-at-table-p) :keys "C-u C-c *"]
 	["Toggle Recalculate Mark" org-table-rotate-recalc-marks :active (org-at-table-p) :keys "C-c #"]
@@ -8685,6 +8909,7 @@
 	   (t
 	    ;; Normal lines
 	    ;; Lines starting with "-", and empty lines make new paragraph.
+	    ;; FIXME: Should we add + and *?
 	    (if (string-match "^ *-\\|^[ \t]*$" line) (insert "<p>"))
 	    (insert line (if org-export-preserve-breaks "<br>\n" "\n"))))
 	  ))
@@ -9101,6 +9326,7 @@
 (define-key org-mode-map "\C-c+"          'org-table-sum)
 (define-key org-mode-map "\C-c|"          'org-table-toggle-vline-visibility)
 (define-key org-mode-map "\C-c="          'org-table-eval-formula)
+(define-key org-mode-map "\C-c'"          'org-table-edit-formulas)
 (define-key org-mode-map "\C-c*"          'org-table-recalculate)
 (define-key org-mode-map [(control ?#)]   'org-table-rotate-recalc-marks)
 (define-key org-mode-map "\C-c~"          'org-table-create-with-table.el)
@@ -9385,11 +9611,14 @@
      ["Fill Rectangle" org-table-wrap-region (org-at-table-p)])
     "--"
     ("Calculate"
-     ["Eval Formula" org-table-eval-formula (org-at-table-p)]
-     ["Eval Formula Down" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+     ["Set Column Formula" org-table-eval-formula (org-at-table-p)]
+     ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+     ["Edit Formulas" org-table-edit-formulas (org-at-table-p)]
+     "--"
      ["Recalculate line" org-table-recalculate (org-at-table-p)]
      ["Recalculate all" (lambda () (interactive) (org-table-recalculate '(4))) :active (org-at-table-p) :keys "C-u C-c *"]
      ["Toggle Recalculate Mark" org-table-rotate-recalc-marks (org-at-table-p)]
+     "--"
      ["Sum Column/Rectangle" org-table-sum
       (or (org-at-table-p) (org-region-active-p))]
      ["Which Column?" org-table-current-column (org-at-table-p)])
--- a/lisp/textmodes/picture.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/textmodes/picture.el	Fri Jul 22 08:27:27 2005 +0000
@@ -710,7 +710,7 @@
   C-c C-r Draw a rectangular box around mark and point.
   \\[copy-rectangle-to-register]   Copies a rectangle to a register.
   \\[advertised-undo]   Can undo effects of rectangle overlay commands
-	    commands if invoked soon enough.
+	    if invoked soon enough.
 You can return to the previous mode with:
   C-c C-c Which also strips trailing whitespace from every line.
 	    Stripping is suppressed by supplying an argument.
--- a/lisp/url/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/url/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,11 @@
+2005-07-15  Richard M. Stallman  <rms@gnu.org>
+
+	* url-http.el (url-http-parse-headers): Add :redirect arg-pair
+	when calling url-retrieve, to indicate a redirect.
+
+	* url.el (url-retrieve): The callback function can get an additional
+	keyword arg pair.
+
 2005-07-04  Lute Kamstra  <lute@gnu.org>
 
 	Update FSF's address in GPL notices.
--- a/lisp/url/url-http.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/url/url-http.el	Fri Jul 22 08:27:27 2005 +0000
@@ -501,8 +501,9 @@
 		 (url-request-data url-http-data)
 		 (url-request-extra-headers url-http-extra-headers))
 	     (url-retrieve redirect-uri url-callback-function
-			   (cons redirect-uri
-				 (cdr url-callback-arguments)))
+			   (cons :redirect
+				 (cons redirect-uri
+				       url-callback-arguments)))
 	     (url-mark-buffer-as-dead (current-buffer))))))
       (4				; Client error
        ;; 400 Bad Request
--- a/lisp/url/url.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/url/url.el	Fri Jul 22 08:27:27 2005 +0000
@@ -123,9 +123,14 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (defun url-retrieve (url callback &optional cbargs)
   "Retrieve URL asynchronously and call CALLBACK with CBARGS when finished.
-The callback is called when the object has been completely retrieved, with
+URL is either a string or a parsed URL.
+
+CALLBACK is called when the object has been completely retrieved, with
 the current buffer containing the object, and any MIME headers associated
-with it.  URL is either a string or a parsed URL.
+with it.  Normally it gets the arguments in the list CBARGS.
+However, if what we find is a redirect, CALLBACK is given
+two additional args, `:redirect' and the redirected URL,
+followed by CBARGS.
 
 Return the buffer URL will load into, or nil if the process has
 already completed."
--- a/lisp/vcursor.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/vcursor.el	Fri Jul 22 08:27:27 2005 +0000
@@ -356,7 +356,7 @@
 
 (defun vcursor-bind-keys (var value)
   "Alter the value of the variable VAR to VALUE, binding keys as required.
-VAR is usually vcursor-key-bindings.  Normally this function is called
+VAR is usually `vcursor-key-bindings'.  Normally this function is called
 on loading vcursor and from the customize package."
   (set var value)
   (cond
@@ -464,8 +464,8 @@
 
 (defcustom vcursor-key-bindings nil
   "*How to bind keys when vcursor is loaded.
-If t, guess; if xterm, use bindings suitable for an X terminal; if
-oemacs, use bindings which work on a PC with Oemacs. If nil, don't
+If t, guess; if `xterm', use bindings suitable for an X terminal; if
+`oemacs', use bindings which work on a PC with Oemacs.  If nil, don't
 define any key bindings.
 
 Default is nil."
@@ -514,7 +514,7 @@
 
 (defvar vcursor-use-vcursor-map nil
   "Non-nil if the vcursor map is mapped directly onto the main keymap.
-See vcursor-toggle-vcursor-map.")
+See `vcursor-toggle-vcursor-map'.")
 (make-variable-buffer-local 'vcursor-use-vcursor-map)
 
 (defvar vcursor-map nil "Keymap for vcursor command.")
@@ -575,7 +575,7 @@
 
 With NEW-WIN non-nil, display the virtual cursor buffer in another
 window if the virtual cursor is not currently visible \(note, however,
-that this function never changes window-point\).
+that this function never changes `window-point'\).
 
 With THIS-FRAME non-nil, don't search other frames for a new window
 \(though if the vcursor is already off-frame then its current window is
@@ -674,15 +674,15 @@
     (insert text))
   )
 
-(defun vcursor-relative-move (fn &rest args)
-  "Use FUNCTION with arbitrary ARG1 ... to move the virtual cursor.
+(defun vcursor-relative-move (func &rest args)
+  "Call FUNC with arbitrary ARGS ... to move the virtual cursor.
 
 This is called by most of the virtual-cursor motion commands."
   (let (text opoint)
     (save-excursion
       (vcursor-locate)
       (setq opoint (point))
-      (apply fn args)
+      (apply func args)
       (and (eq opoint (point-max)) (eq opoint (point))
 	   (signal 'end-of-buffer nil))
       (vcursor-move (point))
@@ -730,7 +730,7 @@
 )
 
 (defun vcursor-scroll-down (&optional n)
-  "Scroll down the vcursor window ARG lines or near-full screen if none.
+  "Scroll down the vcursor window ARG lines or near full screen if none.
 The vcursor will always appear in an unselected window."
 
   (interactive "P")
@@ -791,10 +791,10 @@
   (setq vcursor-last-command t)
   )
 
-(defun vcursor-get-char-count (fn &rest args)
-  "Apply FN to ARG1 ... and return the number of characters moved.
-Point is temporarily set to the virtual cursor position before FN is
-called.
+(defun vcursor-get-char-count (func &rest args)
+  "Apply FUNC to ARGS ... and return the number of characters moved.
+Point is temporarily set to the virtual cursor position before FUNC
+is called.
 
 This is called by most of the virtual-cursor copying commands to find
 out how much to copy."
@@ -803,7 +803,7 @@
   (save-excursion
     (set-buffer (overlay-buffer vcursor-overlay))
     (let ((start (goto-char (overlay-start vcursor-overlay))))
-      (- (progn (apply fn args) (point)) start)))
+      (- (progn (apply func args) (point)) start)))
   )
 
 ;; Make sure the virtual cursor is active.  Unless arg is non-nil,
@@ -822,13 +822,12 @@
 
 With a positive prefix ARG, the first window in cyclic order
 displaying the virtual cursor (or which was recently displaying the
-virtual cursor) will be deleted unless it's the selected
-window.
+virtual cursor) will be deleted unless it's the selected window.
 
 With a negative prefix argument, enable the virtual cursor: make it
 active at the same point as the real cursor.
 
-Copying mode is always turned off:  the next use of the vcursor will
+Copying mode is always turned off: the next use of the vcursor will
 not copy text until you turn it on again."
 
   (interactive "P")
@@ -854,7 +853,7 @@
 virtual cursor, or else after the current selected window.  If there
 is no other window, the current window is split.
 
-Arguments N and optional ALL-FRAMES are the same as with other-window.
+Arguments N and optional ALL-FRAMES are the same as with `other-window'.
 ALL-FRAMES is also used to decide whether to split the window."
 
   (interactive "p")
@@ -1042,7 +1041,7 @@
 
 (defun vcursor-beginning-of-buffer (&optional arg)
   "Move the virtual cursor to the beginning of its buffer.
-ARG is as for beginning-of-buffer."
+ARG is as for `beginning-of-buffer'."
   (interactive "P")
   (vcursor-relative-move
    (lambda (arg)
@@ -1053,7 +1052,7 @@
 
 (defun vcursor-end-of-buffer (&optional arg)
   "Move the virtual cursor to the end of its buffer.
-ARG is as for end-of-buffer.
+ARG is as for `end-of-buffer'.
 
 Actually, the vcursor is moved to the second from last character or it
 would be invisible."
--- a/lisp/version.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/version.el	Fri Jul 22 08:27:27 2005 +0000
@@ -47,7 +47,7 @@
 
 (defconst emacs-build-system (system-name))
 
-(defun emacs-version  (&optional here) "\
+(defun emacs-version (&optional here) "\
 Return string describing the version of Emacs that is running.
 If optional argument HERE is non-nil, insert string at point.
 Don't use this function in programs to choose actions according
@@ -83,7 +83,7 @@
 
 ;; We put version info into the executable in the form that `ident' uses.
 (or (memq system-type '(vax-vms windows-nt))
-    (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ? (emacs-version))
+    (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version))
 		      " $\n")))
 
 ;;Local variables:
--- a/lisp/w32-fns.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/w32-fns.el	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,6 @@
 ;;; w32-fns.el --- Lisp routines for Windows NT
 
-;; Copyright (C) 1994, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Geoff Voelker <voelker@cs.washington.edu>
 ;; Keywords: internal
@@ -60,7 +60,7 @@
 
 (defun w32-shell-name ()
   "Return the name of the shell being used."
-  (or (and (boundp 'explicit-shell-file-name) explicit-shell-file-name)
+  (or (bound-and-true-p explicit-shell-file-name)
       (getenv "ESHELL")
       (getenv "SHELL")
       (and (w32-using-nt) "cmd.exe")
@@ -272,7 +272,7 @@
 (defun set-w32-system-coding-system (coding-system)
   "Set the coding system used by the Windows system to CODING-SYSTEM.
 This is used for things like passing font names with non-ASCII
-characters in them to the system. For a list of possible values of
+characters in them to the system.  For a list of possible values of
 CODING-SYSTEM, use \\[list-coding-systems].
 
 This function is provided for backward compatibility, since
@@ -355,8 +355,8 @@
 Creates entries in `w32-charset-info-alist'.
 XLFD-CHARSET is a string which will appear in the XLFD font name to
 identify the character set. WINDOWS-CHARSET is a symbol identifying
-the Windows character set this maps to. For the list of possible
-values, see the documentation for `w32-charset-info-alist'. CODEPAGE
+the Windows character set this maps to.  For the list of possible
+values, see the documentation for `w32-charset-info-alist'.  CODEPAGE
 can be a numeric codepage that Windows uses to display the character
 set, t for Unicode output with no codepage translation or nil for 8
 bit output with no translation."
@@ -431,7 +431,7 @@
 (defun x-select-text (text &optional push)
   "Make TEXT the last selected text.
 If `x-select-enable-clipboard' is non-nil, copy the text to the system
-clipboard as well. Optional PUSH is ignored on Windows."
+clipboard as well.  Optional PUSH is ignored on Windows."
   (if x-select-enable-clipboard
       (w32-set-clipboard-data text))
   (setq x-last-selected-text text))
--- a/lisp/whitespace.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/whitespace.el	Fri Jul 22 08:27:27 2005 +0000
@@ -150,33 +150,26 @@
 don't define it."
 	`(defvar ,sym ,val ,doc))))
 
-(if (fboundp 'make-overlay)
-    (progn
-      (defalias 'whitespace-make-overlay 'make-overlay)
-      (defalias 'whitespace-overlay-put 'overlay-put)
-      (defalias 'whitespace-delete-overlay 'delete-overlay)
-      (defalias 'whitespace-overlay-start 'overlay-start)
-      (defalias 'whitespace-overlay-end 'overlay-end)
-      (defalias 'whitespace-mode-line-update 'force-mode-line-update))
-  (defalias 'whitespace-make-overlay 'make-extent)
-  (defalias 'whitespace-overlay-put 'set-extent-property)
-  (defalias 'whitespace-delete-overlay 'delete-extent)
-  (defalias 'whitespace-overlay-start 'extent-start)
-  (defalias 'whitespace-overlay-end 'extent-end)
-  (defalias 'whitespace-mode-line-update 'redraw-modeline))
+(defalias 'whitespace-make-overlay
+  (if (featurep 'xemacs) 'make-extent 'make-overlay))
+(defalias 'whitespace-overlay-put
+  (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
+(defalias 'whitespace-delete-overlay
+  (if (featurep 'xemacs) 'delete-extent 'delete-overlay))
+(defalias 'whitespace-overlay-start
+  (if (featurep 'xemacs) 'extent-start 'overlay-start))
+(defalias 'whitespace-overlay-end
+  (if (featurep 'xemacs) 'extent-end 'overlay-end))
+(defalias 'whitespace-mode-line-update
+  (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
 
-(if (featurep 'xemacs)
-(defgroup whitespace nil
-  "Check for and fix five different types of whitespaces in source code."
-  ;; Since XEmacs doesn't have a 'convenience group, use the next best group
-  ;; which is 'editing?
-  :link '(emacs-commentary-link "whitespace.el")
-  :group 'editing)
 (defgroup whitespace nil
   "Check for and fix five different types of whitespaces in source code."
   :version "21.1"
   :link '(emacs-commentary-link "whitespace.el")
-  :group 'convenience))
+  ;; Since XEmacs doesn't have a 'convenience group, use the next best group
+  ;; which is 'editing?
+  :group (if (featurep 'xemacs) 'editing 'convenience))
 
 (defcustom whitespace-check-leading-whitespace t
   "Flag to check leading whitespace.  This is the global for the system.
--- a/lisp/wid-edit.el	Tue Jul 19 02:58:20 2005 +0000
+++ b/lisp/wid-edit.el	Fri Jul 22 08:27:27 2005 +0000
@@ -275,7 +275,7 @@
 		 (while (not (or (and (>= char ?0) (< char next-digit))
 				 (eq value 'keyboard-quit)))
 		   ;; Unread a SPC to lead to our new menu.
-		   (setq unread-command-events (cons ?\  unread-command-events))
+		   (setq unread-command-events (cons ?\s unread-command-events))
 		   (setq keys (read-key-sequence title))
 		   (setq value
 			 (lookup-key overriding-terminal-local-map keys t)
@@ -377,7 +377,7 @@
 	    (end (widget-field-end field)))
 	(when size
 	  (while (and (> end begin)
-		      (eq (char-after (1- end)) ?\ ))
+		      (eq (char-after (1- end)) ?\s))
 	    (setq end (1- end))))
 	(while (< begin end)
 	  (let ((old (char-after begin)))
@@ -441,14 +441,8 @@
       (prog1 (progn ,@form)
 	(goto-char (point-max))))))
 
-(defface widget-inactive '((((class grayscale color)
-			     (background dark))
-			    (:foreground "light gray"))
-			   (((class grayscale color)
-			     (background light))
-			    (:foreground "dim gray"))
-			   (t
-			    (:slant italic)))
+(defface widget-inactive
+  '((t :inherit shadow))
   "Face used for inactive widgets."
   :group 'widget-faces)
 ;; backward-compatibility alias
@@ -802,8 +796,8 @@
 				 &optional button-from button-to
 				 &rest args)
   "Return a widget of type TYPE with endpoint FROM TO.
-Optional ARGS are extra keyword arguments for TYPE.
-and TO will be used as the widgets end points. If optional arguments
+No text will be inserted to the buffer, instead the text between FROM
+and TO will be used as the widgets end points.  If optional arguments
 BUTTON-FROM and BUTTON-TO are given, these will be used as the widgets
 button end points.
 Optional ARGS are extra keyword arguments for TYPE."
@@ -1111,7 +1105,7 @@
   :group 'widgets)
 
 (defun widget-narrow-to-field ()
-  "Narrow to field"
+  "Narrow to field."
   (interactive)
   (let ((field (widget-field-find (point))))
     (if field
@@ -1219,7 +1213,7 @@
 
 (defun widget-field-find (pos)
   "Return the field at POS.
-Unlike (get-char-property POS 'field) this, works with empty fields too."
+Unlike (get-char-property POS 'field), this works with empty fields too."
   (let ((fields widget-field-list)
 	field found)
     (while fields
@@ -1269,7 +1263,7 @@
 		   ;; Field too small.
 		   (save-excursion
 		     (goto-char end)
-		     (insert-char ?\  (- (+ begin size) end))))
+		     (insert-char ?\s (- (+ begin size) end))))
 		  ((> (- end begin) size)
 		   ;; Field too large and
 		   (if (or (< (point) (+ begin size))
@@ -1280,7 +1274,7 @@
 		     (setq begin (point)))
 		   (save-excursion
 		     (goto-char end)
-		     (while (and (eq (preceding-char) ?\ )
+		     (while (and (eq (preceding-char) ?\s)
 				 (> (point) begin))
 		       (delete-backward-char 1)))))))
 	(widget-specify-secret field))
@@ -1440,7 +1434,7 @@
 	       ((eq escape ?n)
 		(when (widget-get widget :indent)
 		  (insert ?\n)
-		  (insert-char ?  (widget-get widget :indent))))
+		  (insert-char ?\s (widget-get widget :indent))))
 	       ((eq escape ?t)
 		(let ((image (widget-get widget :tag-glyph))
 		      (tag (widget-get widget :tag)))
@@ -1504,7 +1498,7 @@
 	     (when doc-text
 	       (and (eq (preceding-char) ?\n)
 		    (widget-get widget :indent)
-		    (insert-char ?  (widget-get widget :indent)))
+		    (insert-char ?\s (widget-get widget :indent)))
 	       ;; The `*' in the beginning is redundant.
 	       (when (eq (aref doc-text  0) ?*)
 		 (setq doc-text (substring doc-text 1)))
@@ -1757,7 +1751,7 @@
   :action 'widget-url-link-action)
 
 (defun widget-url-link-action (widget &optional event)
-  "Open the url specified by WIDGET."
+  "Open the URL specified by WIDGET."
   (browse-url (widget-value widget)))
 
 ;;; The `function-link' Widget.
@@ -1797,7 +1791,7 @@
   :action 'widget-emacs-library-link-action)
 
 (defun widget-emacs-library-link-action (widget &optional event)
-  "Find the Emacs Library file specified by WIDGET."
+  "Find the Emacs library file specified by WIDGET."
   (find-file (locate-library (widget-value widget))))
 
 ;;; The `emacs-commentary-link' Widget.
@@ -1878,7 +1872,7 @@
     (insert value)
     (and size
 	 (< (length value) size)
-	 (insert-char ?\  (- size (length value))))
+	 (insert-char ?\s (- size (length value))))
     (unless (memq widget widget-field-list)
       (setq widget-field-new (cons widget widget-field-new)))
     (move-marker (cdr overlay) (point))
@@ -1911,7 +1905,7 @@
 	  (while (and size
 		      (not (zerop size))
 		      (> to from)
-		      (eq (char-after (1- to)) ?\ ))
+		      (eq (char-after (1- to)) ?\s))
 	    (setq to (1- to)))
 	  (let ((result (buffer-substring-no-properties from to)))
 	    (when secret
@@ -2192,7 +2186,7 @@
 If the item is checked, CHOSEN is a cons whose cdr is the value."
   (and (eq (preceding-char) ?\n)
        (widget-get widget :indent)
-       (insert-char ?  (widget-get widget :indent)))
+       (insert-char ?\s (widget-get widget :indent)))
   (widget-specify-insert
    (let* ((children (widget-get widget :children))
 	  (buttons (widget-get widget :buttons))
@@ -2372,7 +2366,7 @@
   ;; (setq type (widget-convert type))
   (and (eq (preceding-char) ?\n)
        (widget-get widget :indent)
-       (insert-char ?  (widget-get widget :indent)))
+       (insert-char ?\s (widget-get widget :indent)))
   (widget-specify-insert
    (let* ((value (widget-get widget :value))
 	  (children (widget-get widget :children))
@@ -2550,7 +2544,7 @@
     ;; (let ((widget-push-button-gui widget-editable-list-gui))
     (cond ((eq escape ?i)
 	   (and (widget-get widget :indent)
-		(insert-char ?\  (widget-get widget :indent)))
+		(insert-char ?\s (widget-get widget :indent)))
 	   (apply 'widget-create-child-and-convert
 		  widget 'insert-button
 		  (widget-get widget :append-button-args)))
@@ -2662,7 +2656,7 @@
     (widget-specify-insert
      (save-excursion
        (and (widget-get widget :indent)
-	    (insert-char ?\  (widget-get widget :indent)))
+	    (insert-char ?\s (widget-get widget :indent)))
        (insert (widget-get widget :entry-format)))
      ;; Parse % escapes in format.
      (while (re-search-forward "%\\(.\\)" nil t)
@@ -2726,7 +2720,7 @@
 	    value (cdr answer))
       (and (eq (preceding-char) ?\n)
 	   (widget-get widget :indent)
-	   (insert-char ?\  (widget-get widget :indent)))
+	   (insert-char ?\s (widget-get widget :indent)))
       (push (cond ((null answer)
 		   (widget-create-child widget arg))
 		  ((widget-get arg :inline)
@@ -2865,7 +2859,7 @@
 	  (narrow-to-region from to)
 	  (goto-char (point-min))
 	  (while (search-forward "\n" nil t)
-	    (insert-char ?\  indent)))))))
+	    (insert-char ?\s indent)))))))
 
 ;;; The `documentation-string' Widget.
 
@@ -2885,7 +2879,7 @@
 	(let ((before (substring doc 0 (match-beginning 0)))
 	      (after (substring doc (match-beginning 0)))
 	      button)
-	  (insert before ?\ )
+	  (insert before ?\s)
 	  (widget-documentation-link-add widget start (point))
 	  (setq button
 		(widget-create-child-and-convert
@@ -2899,7 +2893,7 @@
 	  (when shown
 	    (setq start (point))
 	    (when (and indent (not (zerop indent)))
-	      (insert-char ?\  indent))
+	      (insert-char ?\s indent))
 	    (insert after)
 	    (widget-documentation-link-add widget start (point)))
 	  (widget-put widget :buttons (list button)))
@@ -3634,7 +3628,7 @@
       (widget-apply widget :notify widget event))))
 
 (defun widget-color-notify (widget child &optional event)
-  "Update the sample, and notofy the parent."
+  "Update the sample, and notify the parent."
   (overlay-put (widget-get widget :sample-overlay)
 	       'face (widget-apply widget :sample-face-get))
   (widget-default-notify widget child event))
--- a/lispref/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/lispref/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,7 +1,24 @@
+2005-07-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* internals.texi (Garbage Collection): Add gc-cons-percentage.
+
+2005-07-18  Juri Linkov  <juri@jurta.org>
+
+	* commands.texi (Accessing Events):
+	* frames.texi (Text Terminal Colors, Resources):
+	* markers.texi (The Mark):
+	* modes.texi (Defining Minor Modes):
+	Delete duplicate duplicate words.
+
+2005-07-16  Richard M. Stallman  <rms@gnu.org>
+
+	* display.texi (Managing Overlays): Clarify make-overlay
+	args for insertion types.
+
 2005-07-13  Luc Teirlinck  <teirllm@auburn.edu>
 
-	* customize.texi (Variable Definitions): Add
-	`custom-initialize-safe-set' and `custom-initialize-safe-default'.
+	* customize.texi (Variable Definitions):
+	Add `custom-initialize-safe-set' and `custom-initialize-safe-default'.
 	`standard-value' is a list too.
 	(Defining New Types): Use @key{RET} instead of @key{ret}.
 
--- a/lispref/commands.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/lispref/commands.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1773,7 +1773,7 @@
 @defun posn-area position
 Return the window area recorded in @var{position}.  It returns @code{nil}
 when the event occurred in the text area of the window; otherwise, it
-is a symbol identifying the area in which the the event occurred.
+is a symbol identifying the area in which the event occurred.
 @end defun
 
 @defun posn-point position
--- a/lispref/display.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/lispref/display.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1133,12 +1133,14 @@
 current buffer.
 
 The arguments @var{front-advance} and @var{rear-advance} specify the
-insertion type for the start of the overlay and for the end of the
-overlay, respectively.  @xref{Marker Insertion Types}.  If
-@var{front-advance} is non-@code{nil}, text inserted at the beginning
-of the overlay is excluded from the overlay.  If @var{read-advance} is
-non-@code{nil}, text inserted at the beginning of the overlay is
-included in the overlay.
+marker insertion type for the start of the overlay and for the end of
+the overlay, respectively.  @xref{Marker Insertion Types}.  If they
+are both @code{nil}, the default, then the overlay extends to include
+any text inserted at the beginning, but not text inserted at the end.
+If @var{front-advance} is non-@code{nil}, text inserted at the
+beginning of the overlay is excluded from the overlay.  If
+@var{rear-advance} is non-@code{nil}, text inserted at the end of the
+overlay is included in the overlay.
 @end defun
 
 @defun overlay-start overlay
--- a/lispref/frames.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/lispref/frames.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1744,7 +1744,7 @@
 color number @var{number} on the terminal.
 
 The optional argument @var{rgb}, if specified, is an rgb value, a list
-of three numbers that specify what what the color actually looks like.
+of three numbers that specify what the color actually looks like.
 If you do not specify @var{rgb}, then this color cannot be used by
 @code{tty-color-approximate} to approximate other colors, because
 Emacs will not know what it looks like.
@@ -1822,7 +1822,7 @@
 @end example
 
 @noindent
-in in your X resources file (whose name is usually @file{~/.Xdefaults}
+in your X resources file (whose name is usually @file{~/.Xdefaults}
 or @file{~/.Xresources}).  Then:
 
 @example
--- a/lispref/internals.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/lispref/internals.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999
+@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999, 2005
 @c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/internals
@@ -368,6 +368,18 @@
 @code{garbage-collect} will set the threshold back to 10,000.
 @end defopt
 
+@defopt gc-cons-percentage
+The value of this variable is the minimum portion of the heap that
+should be allocated before a garbage collection takes place.  It is
+used only if the specified size is larger than
+@code{gc-cons-threshold}.
+
+As the heap size increases, the time to perform a garbage collection
+increases, so in order to compensate, this variable tries to
+correspondingly reduce the frequency of collection by letting Emacs
+allocate more memory between each collection.
+@end defopt
+
   The value returned by @code{garbage-collect} describes the amount of
 memory used by Lisp data, broken down by data type.  By contrast, the
 function @code{memory-limit} provides information on the total amount of
--- a/lispref/markers.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/lispref/markers.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -444,7 +444,7 @@
 This function returns the current buffer's mark position as an integer.
 
 If Transient Mark mode is enabled, @code{mark-even-if-inactive} is
-@code{nil} and and the mark is inactive, @code{mark} normally signals
+@code{nil} and the mark is inactive, @code{mark} normally signals
 an error.  However, if @var{force} is non-@code{nil}, then @code{mark}
 returns the mark position anyway---or @code{nil}, if the mark is not
 yet set for this buffer.
--- a/lispref/modes.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/lispref/modes.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1415,7 +1415,7 @@
 This is equivalent to specifying @var{keymap} positionally.
 @end table
 
-Any other keyword arguments are passed passed directly to the
+Any other keyword arguments are passed directly to the
 @code{defcustom} generated for the variable @var{mode}.
 
 The command named @var{mode} first performs the standard actions such
--- a/lwlib/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/lwlib/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,8 @@
+2005-07-19  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* lwlib-Xm.c (make_menu_in_widget): Disable drag and drop for 
+	labels in menu bar.
+
 2005-07-04  Lute Kamstra  <lute@gnu.org>
 
 	Update FSF's address in GPL notices.
--- a/lwlib/lwlib-Xm.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/lwlib/lwlib-Xm.c	Fri Jul 22 08:27:27 2005 +0000
@@ -524,6 +524,10 @@
   Widget* old_children;
   unsigned int old_num_children;
 
+  /* Disable drag and drop for labels in menu bar.  */
+  static char overrideTrans[] = "<Btn2Down>: Noop()";
+  XtTranslations override = XtParseTranslationTable (overrideTrans);
+
   old_children = XtCompositeChildren (widget, &old_num_children);
 
   /* Allocate the children array */
@@ -632,6 +636,8 @@
 
 	  XtAddCallback (button, XmNcascadingCallback, xm_pull_down_callback,
 			 (XtPointer)instance);
+          XtOverrideTranslations (button, override);
+
 	}
 
       children[child_index] = button;
--- a/man/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,60 @@
+2005-07-19  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.texi: Version 3.14
+
+2005-07-04  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.texi: Version 3.13
+
+2005-07-19  Juri Linkov  <juri@jurta.org>
+
+	* files.texi (Comparing Files): Mention resync for `compare-windows'.
+
+2005-07-18  Juri Linkov  <juri@jurta.org>
+
+	* calc.texi (Time Zones, Logical Operations):
+	* cl.texi (Overview):
+	* custom.texi (Easy Customization):
+	* files.texi (Old Versions):
+	* frames.texi (Wheeled Mice):
+	* mule.texi (Specify Coding):
+	* org.texi (TODO types):
+	* sc.texi (Emacs 18 MUAs):
+	* speedbar.texi (Top):
+	* text.texi (Cell Justification):
+	* trouble.texi (After a Crash):
+	* url.texi (History):
+	* xresources.texi (GTK styles):
+	Delete duplicate duplicate words.
+
+2005-07-17  Richard M. Stallman  <rms@gnu.org>
+
+	* frames.texi (Creating Frames): Fix foreground color example.
+
+	* custom.texi (Init Examples): Clean up text about conditionals.
+
+2005-07-16  Richard M. Stallman  <rms@gnu.org>
+
+	* mini.texi (Completion Commands): Fix command name for ?.
+
+2005-07-16  Johan Bockgard  <bojohan@users.sourceforge.net>  (tiny change)
+
+	* cl.texi (Type Predicates): Document `atom' type.
+
+2005-07-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* display.texi (Standard Faces): Explain that customization of
+	`menu' face has no effect on w32 and with GTK.  Add
+	cross-references.
+
+	* cmdargs.texi (General Variables): Clarify the default location
+	of $HOME on w32 systems.
+
+2005-07-15  Jason Rumney  <jasonr@gnu.org>
+
+	* cmdargs.texi (General Variables): Default HOME on MS Windows has
+	changed.
+
 2005-07-08  Kenichi Handa  <handa@m17n.org>
 
 	* mule.texi (Recognize Coding): Recommend
@@ -40,6 +97,7 @@
 	* mh-e.texi (Copying):
 	* trouble.texi (Checklist): Update FSF's address.
 
+>>>>>>> 1.631
 2005-07-03  Richard M. Stallman  <rms@gnu.org>
 
 	* flymake.texi (Example -- Configuring a tool called directly):
@@ -515,7 +573,7 @@
 
 2005-04-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* xresources.texi (Lucid Resources): Add fonSet resource.
+	* xresources.texi (Lucid Resources): Add fontSet resource.
 
 2005-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>
 
--- a/man/calc.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/calc.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -17574,7 +17574,7 @@
 falls in this hour results in a time value for the following hour,
 from 3 a.m.@: to 4 a.m.  At the end of daylight savings time, the
 hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time
-form that falls in in this hour results in a time value for the first
+form that falls in this hour results in a time value for the first
 manifestation of that time (@emph{not} the one that occurs one hour later).
 
 If @code{math-daylight-savings-hook} is @code{nil}, then the
@@ -25691,7 +25691,7 @@
 variable and the lefthand side is a number (as in @samp{2.34 = x}), then
 Calc keeps the lefthand side instead.  Finally, this command works with
 assignments @samp{x := 2.34} as well as equations, always taking the
-the righthand side, and for @samp{=>} (evaluates-to) operators, always
+righthand side, and for @samp{=>} (evaluates-to) operators, always
 taking the lefthand side.
 
 @kindex a &
--- a/man/cl.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/cl.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -136,7 +136,7 @@
 The package described here was written by Dave Gillespie,
 @file{daveg@@synaptics.com}.  It is a total rewrite of the original
 1986 @file{cl.el} package by Cesar Quiroz.  Most features of the
-the Quiroz package have been retained; any incompatibilities are
+Quiroz package have been retained; any incompatibilities are
 noted in the descriptions below.  Care has been taken in this
 version to ensure that each function is defined efficiently,
 concisely, and with minimal impact on the rest of the Emacs
@@ -736,6 +736,11 @@
 @code{(null @var{object})}.
 
 @item
+The type symbol @code{atom} represents all objects that are not cons
+cells. Thus @code{(typep @var{object} 'atom)} is equivalent to
+@code{(atom @var{object})}.
+
+@item
 The type symbol @code{real} is a synonym for @code{number}, and
 @code{fixnum} is a synonym for @code{integer}.
 
--- a/man/cmdargs.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/cmdargs.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -478,10 +478,15 @@
 otherwise.
 @item HOME
 The location of the user's files in the directory tree; used for
-expansion of file names starting with a tilde (@file{~}).  On MS-DOS, it
-defaults to the directory from which Emacs was started, with @samp{/bin}
-removed from the end if it was present.  On Windows, the default value
-of @env{HOME} is @file{C:/}, the root directory of drive @file{C:}.
+expansion of file names starting with a tilde (@file{~}).  On MS-DOS,
+it defaults to the directory from which Emacs was started, with
+@samp{/bin} removed from the end if it was present.  On Windows, the
+default value of @env{HOME} is the @file{Application Data}
+subdirectory of the user profile directory (normally, this is
+@file{C:/Documents and Settings/@var{username}/Application Data},
+where @var{username} is your user name), though for backwards
+compatibility @file{C:/} will be used instead if a @file{.emacs} file
+is found there.
 @item HOSTNAME
 The name of the machine that Emacs is running on.
 @item INCPATH
--- a/man/custom.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/custom.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -184,7 +184,7 @@
 
 @findex customize
 @cindex customization buffer
-  You can browse interactively through the the user options and change
+  You can browse interactively through the user options and change
 some of them using @kbd{M-x customize}.  This command creates a
 @dfn{customization buffer}, which offers commands to navigate through
 a logically organized structure of the Emacs user options; you can
@@ -2313,42 +2313,37 @@
 @end example
 
 @item
-Adjusting the configuration to various contexts.
-
-In most of the cases, people want their Emacs to behave the same on
-all their machines, so their configuration should be the same, no
-matter whether it's GNU/Linux or not, under X11 or on a tty, with one
-version of  Emacs or another, ...
+Adjusting the configuration to various platforms and Emacs versions.
 
-What can happen, tho, is that depending on the circumstance some
-features may or may not be available.  In that case just prepend each
-such customization with a little test that ensures that the feature
-can be used.  The best tests are usually checking that the feature is
-available, rather than checking what kind of environment is
-being used.
+Users typically want Emacs to behave the same on all systems, so the
+same init file is right for all platforms.  However, sometimes it
+happens that a function you use for customizing Emacs is not available
+on some platforms or in older Emacs versions.  To deal with that
+situation, put the customization inside a conditional that tests whether
+the function or facility is available, like this:
 
 @example
-(if (fboundp 'blinking-cursor-mode)
-    (blinking-cursor-mode 0))
+(if (fboundp 'blink-cursor-mode)
+    (blink-cursor-mode 0))
+
+(if (boundp 'coding-category-utf-8)
+    (set-coding-priority '(coding-category-utf-8)))
 @end example
 
-@example
-(if (boundp 'coding-category-utf-8)
-  (set-coding-priority '(coding-category-utf-8)))
-@end example
+@noindent
+You can also simply disregard the errors that occur if the
+function is not defined.
 
 @example
-(require 'cl)                   ; To define `ignore-errors'.
-(ignore-errors (set-face-background 'region "grey75"))
+(condition case ()
+    (set-face-background 'region "grey75")
+  (error nil))
 @end example
 
-Note also that a @code{setq} on a variable which does not exist is
-generally harmless, so those usually do not need to be made
-conditional on any kind of test.
-
+A @code{setq} on a variable which does not exist is generally
+harmless, so those do not need a conditional.
 @end itemize
 
-
 @node Terminal Init
 @subsection Terminal-specific Initialization
 
--- a/man/display.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/display.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -214,9 +214,16 @@
 @item tooltip
 This face is used for tooltips.  @xref{Tooltips}.
 @item menu
-This face determines the colors and font of Emacs's menus.  Setting the
-font of LessTif/Motif menus is currently not supported; attempts to set
-the font are ignored in this case.  @xref{Menu Bars}.
+@cindex menu bar appearance
+@cindex @code{menu} face, no effect if customized
+@cindex customization of @code{menu} face
+This face determines the colors and font of Emacs's menus.  @xref{Menu
+Bars}.  Setting the font of LessTif/Motif menus is currently not
+supported; attempts to set the font are ignored in this case.
+Likewise, attempts to customize this face in Emacs built with GTK and
+in the MS-Windows port are ignored by the respective GUI toolkits;
+you need to use system-wide styles and options to change the
+appearance of the menus.
 @end table
 
 @node Font Lock
--- a/man/files.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/files.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1643,7 +1643,7 @@
 @kindex C-x v g
   For some backends, you can display the file @dfn{annotated} with
 per-line version information and using colors to enhance the visual
-appearance, with the the command @kbd{M-x vc-annotate}.
+appearance, with the command @kbd{M-x vc-annotate}.
 It creates a new buffer
 to display file's text, colored to show how old each part is.  Text
 colored red is new, blue means old, and intermediate colors indicate
@@ -2923,8 +2923,10 @@
 window, and each starting position is pushed on the mark ring in its
 respective buffer.  Then point moves forward in each window, a character
 at a time, until a mismatch between the two windows is reached.  Then
-the command is finished.  For more information about windows in Emacs,
-@ref{Windows}.
+the command is finished.  Another invocation of this command with
+points on mismatching positions tries to skip non-matching text and
+move points forward, until a match between the two windows is reached.
+For more information about windows in Emacs, @ref{Windows}.
 
 @vindex compare-ignore-case
 @vindex compare-ignore-whitespace
--- a/man/frames.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/frames.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -495,10 +495,9 @@
 Here's a similar example for specifying a foreground color:
 
 @example
-(add-to-list 'default-frame-alist '(background-color . "blue"))
+(add-to-list 'default-frame-alist '(foreground-color . "blue"))
 @end example
 
-
 @node Frame Commands
 @section Frame Commands
 
@@ -844,7 +843,7 @@
   The variables @code{mouse-wheel-follow-mouse} and
 @code{mouse-wheel-scroll-amount} determine where and by how much
 buffers are scrolled.  The variable
-@code{mouse-wheel-progressive-speed} determines whether the the scroll
+@code{mouse-wheel-progressive-speed} determines whether the scroll
 speed is linked to how fast you move the wheel.
 
 @node Drag and Drop
--- a/man/mini.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/mini.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -270,7 +270,7 @@
 @end ifnottex
 @item ?
 Display a list of all possible completions of the text in the minibuffer
-(@code{minibuffer-list-completions}).
+(@code{minibuffer-completion-help}).
 @end table
 
 @kindex SPC
--- a/man/mule.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/mule.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1105,7 +1105,7 @@
 
 @findex recode-file-name
   If a mistake occurs when encoding a file name, use the command
-command @kbd{M-x recode-file-name} to change the file name's coding
+@kbd{M-x recode-file-name} to change the file name's coding
 system.  This prompts for an existing file name, its old coding
 system, and the coding system to which you wish to convert.
 
--- a/man/org.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/org.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -4,7 +4,7 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 3.13
+@set VERSION 3.14
 @set DATE July 2005
 
 @dircategory Emacs
@@ -94,7 +94,7 @@
 
 * Summary::                     Brief summary of what Org-mode does
 * Installation and Activation::  How to install Org-mode
-* Feedback::                    Bug reportes, ideas, patches etc.
+* Feedback::                    Bug reports, ideas, patches etc.
 
 Document Structure
 
@@ -116,9 +116,11 @@
 Calculations in tables
 
 * Formula syntax::              How to write a formula
-* Applying a formula::          How to get a formula executed
-* Recalculation::               Re-applying all formulas in a table
-* Summing::                     Summing columns and rows
+* Column formulas::             Formulas valid for all fields in a column
+* Advanced features::           Field names, parameters and automatic recalc
+* Named-field formulas::        Formulas valid in single fields
+* Editing/debugging formulas::  Changing a stored formula
+* Appetizer::                   
 
 Hyperlinks
 
@@ -180,7 +182,7 @@
 @menu
 * Summary::                     Brief summary of what Org-mode does
 * Installation and Activation::  How to install Org-mode
-* Feedback::                    Bug reportes, ideas, patches etc.
+* Feedback::                    Bug reports, ideas, patches etc.
 @end menu
 
 @node Summary, Installation and Activation, Introduction, Introduction
@@ -198,7 +200,7 @@
 table editor.  Org-mode supports ToDo items, deadlines, time stamps,
 and scheduling.  It dynamically compiles entries into an agenda that
 utilizes and smoothly integrates much of the Emacs calendar and diary.
-Plain text URL-like links connect to websites, emails, usenet
+Plain text URL-like links connect to websites, emails, Usenet
 messages, BBDB entries, and any files related to the projects.  For
 printing and sharing of notes, an Org-mode file can be exported as a
 structured ASCII file, or as HTML.
@@ -715,10 +717,19 @@
 @cindex calculations, in tables
 @kindex C-c =
 @item C-c =
-Replace current field with the result of a formula.  When called with a
-@kbd{C-u} prefix, apply the equation in the current field and down
-through the current column to a horizonal separator line or the end of
-the table.  For details, see @ref{Table calculations}.
+Install a new formula for the current column and replace current field
+with the result of the formula.
+
+@kindex C-u C-c =
+@item C-u C-c =
+Install a new formula for the current field, which must be a named
+field.  Evaluate the formula and replace the field content with the
+result.
+
+@kindex C-c '
+@item C-c '
+Edit all formulas associated with the current table in a separate
+buffer.
 
 @kindex C-c *
 @item C-c *
@@ -729,9 +740,9 @@
 
 @kindex C-#
 @item C-#
-Rotate the recalculation mark in first column through the states
+Rotate the calculation mark in first column through the states
 @samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}.  For the meaning of
-these marks see @ref{Table calculations}.  When there is an active
+these marks see @ref{Advanced features}.  When there is an active
 region, change all marks in the region.
 
 @kindex C-c ?
@@ -791,36 +802,58 @@
 @section Calculations in tables
 @cindex calculations, in tables
 
-While the Org-mode table editor misses many features of a full
-spreadsheet, it nevertheless has very useful capabilities to compute
-fields.  In horizontal direction, it can use complex expressions to
-compute a field from other fields @emph{in the same row}, using named
-columns, constants and parameters.  The Emacs @file{calc} package is
-required for this feature to work.  In vertical direction, only
-summing is supported.
+The table editor has some spreadsheet-like capabilities.  The Emacs
+@file{calc} package is required for this feature to work.  There are
+basically two levels of complexity for table calculations in Org-mode.
+On the basic level, tables do only horizontal computations, so a field
+can be computed from other fields @emph{in the same row}, and Org-mode
+assumes that there is only one formula for each column.  This is very
+efficient to work with and enough for many tasks.  On the complex
+level, columns and individual fields can be named for easier
+referencing in formulas, individual named fields can have their own
+formula associated with them, and recalculation can be automated.
 
 @menu
 * Formula syntax::              How to write a formula
-* Applying a formula::          How to get a formula executed
-* Recalculation::               Re-applying all formulas in a table
-* Summing::                     Summing columns and rows
+* Column formulas::             Formulas valid for all fields in a column
+* Advanced features::           Field names, parameters and automatic recalc
+* Named-field formulas::        Formulas valid in single fields
+* Editing/debugging formulas::  Changing a stored formula
+* Appetizer::                   Taste the power of calc
 @end menu
 
-@node Formula syntax, Applying a formula, Table calculations, Table calculations
+@node Formula syntax, Column formulas, Table calculations, Table calculations
 @subsection Formula syntax
 
-A formula for horizontal computations can be any algebraic expression
-understood by the Emacs @file{calc} package.  Before evaluation,
-variable substitution takes place: @samp{$} is replaced by the field
-the cursor is currently in, and $1..$n reference the fields in the
-current row.  @samp{$name} is interpreted as the name of a column,
-parameter or constant.  Constants are defined globally through the
-variable @code{org-table-formula-constants}.  If you have the
+A formula can be any algebraic expression understood by the Emacs
+@file{calc} package.  Before evaluation by @code{calc-eval}
+(@pxref{Calling Calc from Your Lisp Programs,calc-eval,Calling calc
+from Your Lisp Programs,calc,GNU Emacs Calc Manual}), variable
+substitution takes place:
+
+@example
+  $        @r{refers to the current field}
+  $3       @r{refers to the field in column 3 of the current row}
+  $3..$7   @r{a vector of the fields in columns 3-7 of current row}
+  $P1..$P3 @r{vector of column range, using column names}
+  &2       @r{second data field above the current, in same column}
+  &5-2     @r{vector from fifth to second field above current}
+  &III-II  @r{vector of fields between 2nd and 3rd hline above}
+  &III     @r{vector of fields between third hline above and current field}
+  $name    @r{a named field, parameter or constant}
+@end example
+
+The range vectors can be directly fed into the calc vector functions
+like functions @samp{vmean} and @samp{vsum}.
+
+@samp{$name} is interpreted as the name of a column, parameter or
+constant.  Constants are defined globally through the variable
+@code{org-table-formula-constants}.  If you have the
 @file{constants.el} package, it will also be used to resolve
-constants, including natural constants like @samp{$k} for Plancks
+constants, including natural constants like @samp{$k} for Planck's
 constant, units like @samp{$km} for kilometers.  Column names and
 parameters can be specified in special table lines.  These are
-described below, see @ref{Recalculation}.
+described below, see @ref{Advanced features}.
 
 A formula can contain an optional mode string after a semicolon.  This
 string consists of flags to influence calc's modes@footnote{By
@@ -833,66 +866,65 @@
 @samp{e2} or @samp{f4} to switch to normal, scientific, engineering,
 or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F},
 and @samp{S} to turn on degrees, radians, fraction and symbolic modes,
-respectively.  In addition, you may provide a @code{printf} specifier
-to reformat the final result.  A few examples:
+respectively.  In addition, you may provide a @code{printf} format
+specifier to reformat the final result.  A few examples:
 @example
   $1+$2                @r{Sum of first and second field}
   $1+$2;%.2f           @r{Same, format result to two decimals}
   exp($2)+exp($1)      @r{Math functions can be used}
   $;%.1f               @r{Reformat current cell to 1 decimal}
-  ($3-32)*5/9          @r{degrees F -> C conversion}
+  ($3-32)*5/9          @r{Degrees F -> C conversion}
   $c/$1/$cm            @r{Hz -> cm conversion, using @file{constants.el}}
-  tan($1);Dp3s1        @r{compute in degrees, precision 3, display SCI 1}
-  vmean($2..$7)        @r{compute column range mean, using vector function}
+  tan($1);Dp3s1        @r{Compute in degrees, precision 3, display SCI 1}
+  sin($1);Dp3%.1e      @r{Same, but use printf specifier for display}
+  vmean($2..$7)        @r{Compute column range mean, using vector function}
+  vsum(&III)           @r{Sum numbers from 3rd hline above to here}
   taylor($3,x=7,2)     @r{taylor series of $3, at x=7, second degree}
 @end example
 
-@node Applying a formula, Recalculation, Formula syntax, Table calculations
-@subsection Applying a formula
+@node Column formulas, Advanced features, Formula syntax, Table calculations
+@subsection Column formulas
 
 To apply a formula to a field, type it directly into the field,
 preceded by an equal sign, like @samp{=$1+$2}.  When you press
 @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the
-field, the formula will be evaluated and replaced with the result.  If
-the field contains only @samp{=}, the formula most recently applied
-anywhere in the @emph{same column} will be used.
+field, the formula will be stored as the formula for the current
+column, evaluated and the current field replaced with the result.  If
+the field contains only @samp{=}, the previously stored formula for
+this column is used.
 
 For each column, Org-mode will remember the most recently used
-formula.  The information is stored in a special line directly below
-the table.  When adding/deleting/moving columns with the appropriate
-commands, the stored equations will be modified accordingly.  When a
-column used in a calculation is removed, references to this column
-become invalid and will cause an error upon applying the equation.
+formula.  The information is stored in a special line starting with
+@samp{#+TBLFM} directly below the table.  When adding/deleting/moving
+columns with the appropriate commands, the stored equations will be
+modified accordingly.  When a column used in a calculation is removed,
+references to this column become invalid and will cause an error upon
+applying the equation.
 
 Instead of typing an equation into the field, you may also use the
 command @kbd{C-c =}.  It prompts for a formula (with default taken
-from the @samp{#+TBLFM:} line) and applies it to the current field.
-If you use a prefix argument (i.e. @kbd{C-u C-c =}), the formula will
-be applied to the current field and down to the next separator line
-or the end of the table.  A numerical prefix will apply it to that
-many fields in the current column.
-
-When the evaluation of a formula leads to an error, the field content
-becomes the string @samp{#ERROR}.  If you would like see what is going
-on during variable substitution and calculation in order to find a
-bug, turn on formula debugging in the menu and repeat the calculation
-by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field.
-Detailed information will be displayed.
-
-@node Recalculation, Summing, Applying a formula, Table calculations
-@subsection Recalculation
+from the @samp{#+TBLFM:} line) and applies it to the current field.  A
+numerical prefix (e.g. @kbd{C-5 C-c =}) will apply it to that many
+subsequent fields in the current column.
 
 To recompute all the fields in a line, use the command @kbd{C-c *}.
 It re-applies all stored equations to the current row, from left to
 right.  With a @kbd{C-u} prefix, this will be done to every line in
 the table, so use this command it you want to make sure the entire
-table is up-to-date.  A more automatic way of recalculating the
-current line requires marking the line: If the first column of a row
-contains only @samp{#}, the row will be re-computed with every
-@key{TAB}, @key{RET}, and @kbd{C-c C-c} in this row.  Here is an
-example of a table that collects exam results of students, with some
-rows activated for semi-automatic computations.
-
+table is up-to-date. @kbd{C-u C-c C-c} is another way to update the
+entire table.  Global updating does not touch the line(s) above the
+first horizontal separator line, assuming that this is the table
+header.
+
+@node Advanced features, Named-field formulas, Column formulas, Table calculations
+@subsection Advanced features
+
+If you want want the recalculation of fields to happen automatically,
+or if you want to be able to assign a formula to an individual field
+(instead of an entire column) you need to reserve the first column of
+the table for special marking characters.  Here is an example of a
+table that collects exam results of students and makes use of these
+features:
 @example
 @group
 |---+---------+--------+--------+--------+-------+------|
@@ -903,50 +935,112 @@
 | ^ |         |     m1 |     m2 |     m3 |    mt |      |
 |---+---------+--------+--------+--------+-------+------|
 | # | Peter   |     10 |      8 |     23 |    41 |  8.2 |
-| # | Sara    |      7 |     14 |     19 |    40 |  8.0 |
+| # | Sara    |      6 |     14 |     19 |    39 |  7.8 |
 | # | Sam     |      2 |      4 |      3 |     9 |  1.8 |
 |---+---------+--------+--------+--------+-------+------|
+|   | Average |        |        |        |  29.7 |      |
+| ^ |         |        |        |        |    at |      |
 | $ | max=50  |        |        |        |       |      |
 |---+---------+--------+--------+--------+-------+------|
-#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f
+#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(&II);%.1f
 @end group
 @end example
-@noindent
-The example also demonstrates a number of features:
-@enumerate
-@item
-If the first field of a row contains only @samp{!}, this row defines
-@emph{names} for the different columns so that you can write
-@samp{$Tot} instead of @samp{$6} --- useful in larger tables,
-when counting columns becomes error prone.
-@item
-If the first field of a row contains only @samp{$}, fields in this row
-can define @emph{parameters} for formulas.  For example, if a field in
-a @samp{$} row contains @samp{max=50}, then formulas in this table can
-refer to the value 50 using @samp{$max}.  Parameters work exactly like
-constants, only that they can be defined on a per-table basis.
-Changing a parameter and then recalculating the table can be useful
-and fun.
-@item
-It the first field contains only @samp{^}, fields in this row define
-names for the fields in the row above, for example @samp{$m1} for
-@samp{10}.  Similarly, if the marking character is @samp{_}, the names
-are valie for the fields in the row below.
-@item
-A column range @samp{$P1..$P3} is expanded to a vector, so that calc's
-vector functions (in this case @samp{vsum}, but there are many more)
-can be applied to ranges.  For a range, columns may be referenced by
-name or number, in either sequence.
-@end enumerate
-
-@noindent If a table contains any line with @samp{#} as the
-first field, @kbd{C-u C-c *} will only change the marked lines and
-leave all unmarked lines alone.  You can also mark a line with
-@samp{*}.  These lines will also be recalculated with @kbd{C-u C-c *},
-but not upon @key{TAB} and @key{RET}.  Use this for lines which are
-slow to calculate.
-
-Just to wet your appetite on what can be done with the fantastic
+
+@noindent @b{Important}: Please note that for these special tables,
+recalculating the table with @kbd{C-u C-c *} does only affect rows
+which are marked @samp{#} or @samp{*}, and named fields.  The column
+formulas are not applied in rows with empty first field.
+
+The marking characters have the following meaning:
+@table @samp
+@item !
+The fields in this line define names for the columns, so that you may
+refer to a column as @samp{$Tot} instead of @samp{$6}.
+@item ^
+This row define names for the fields @emph{above} the row.  With such
+a definition, any formula in the table may use @samp{$m1} to refer to
+the value @samp{10}.  Also, named fields can have their own formula
+associated with them.
+@item _
+Similar to @samp{^}, but defines names for the fields in the row
+@emph{below}. 
+@item $
+Fields in this row can define @emph{parameters} for formulas.  For
+example, if a field in a @samp{$} row contains @samp{max=50}, then
+formulas in this table can refer to the value 50 using @samp{$max}.
+Parameters work exactly like constants, only that they can be defined on
+a per-table basis.  Changing a parameter and then recalculating the
+table can be useful.
+@item #
+Fields in this row are automatically recalculated when pressing
+@key{TAB} or @key{RET} or @kbd{S-@key{TAB}} in this row.  Also, this row
+is selected for a global recalculation with @kbd{C-u C-c *}.  Unmarked
+lines will be left alone by this command.
+@item *
+Selects this line for global recalculation with @kbd{C-u C-c *}, but
+not for automatic recalculation.  Use this when automatic
+recalculation slows down editing too much.
+@item  
+Unmarked lines are exempted from recalculation with @kbd{C-u C-c *}.
+All lines that should be recalculated should be marked with @samp{#}
+or @samp{*}.
+@end table
+
+@node Named-field formulas, Editing/debugging formulas, Advanced features, Table calculations
+@subsection Named-field formulas
+
+A named field can have its own formula associated with it.  In the
+example above, this is used for the @samp{at} field that contains
+the average result of the students.  To enter a formula for a named
+field, just type it onto the buffer, preceded by @samp{:=}.  Or use
+@kbd{C-u C-c =}.  This equation will be stored below the table like
+@samp{$name=...}.  Any recalculation in the table (even if only
+requested for the current line) will also update all named field
+formulas.
+
+@node Editing/debugging formulas, Appetizer, Named-field formulas, Table calculations
+@subsection Editing and debugging formulas
+
+To edit a column or field formula, you can use the commands @kbd{C-c
+=} and @kbd{C-u C-c =}, respectively.  The currently active expression
+is then presented as default in the minibuffer, were it may be edited.
+
+Note that making a table field blank does not remove the formula
+associated with the field - during the next recalculation the field
+will be filled again.  To remove a formula from a field, you have to
+give an empty reply when prompted for the formula, or to edit the
+@samp{#+TBLFM} line.
+
+@kindex C-c C-c
+You may edit the @samp{#+TBLFM} directly and re-apply
+the changed equations with @kbd{C-c C-c} in that line, or with the
+normal recalculation commands in the table.  
+
+@kindex C-c '
+@kindex C-c C-c
+@kindex C-c C-q
+@kindex C-c ?
+In particular for large tables with many formulas, it is convenient to
+use the command @kbd{C-c '} to edit the formulas of the current table
+in a separate buffer.  That buffer will show the formulas one per
+line, and you are free to edit, add and remove formulas.  Press
+@kbd{C-c ?} on a @samp{$...}  expression to get information about its
+interpretation.  Exiting the buffer with @kbd{C-c C-c} only stores the
+modified formulas below the table.  Exiting with @kbd{C-u C-c C-c}
+also applies them to the entire table.  @kbd{C-c C-q} exits without
+installing the changes.
+
+When the evaluation of a formula leads to an error, the field content
+becomes the string @samp{#ERROR}.  If you would like see what is going
+on during variable substitution and calculation in order to find a
+bug, turn on formula debugging in the menu and repeat the calculation
+by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field.
+Detailed information will be displayed.
+
+@node Appetizer,  , Editing/debugging formulas, Table calculations
+@subsection Appetizer
+
+Finally, just to wet your appetite on what can be done with the fantastic
 @file{calc} package, here is a table that computes the Taylor series
 for a couple of functions (homework: try that with Excel :-)
 
@@ -966,22 +1060,6 @@
 @end group
 @end example
 
-@node Summing,  , Recalculation, Table calculations
-@subsection Summing
-
-Finally, when typing a formula into a field, a number of special
-keywords execute predefined sums over the current row or column and
-enter the result into the current field.  These calculations are
-one-off, the formula is not stored, and you will neet to re-enter it
-in order to compute again.
-
-@example
-=       @r{Execute the stored formula valid in this column.}
-=sum    @r{Sum all fields above the current (alias @code{=sumv}).}
-=sumh   @r{Sum all fields to the left of the current field.}
-=sum3   @r{Same as @samp{=sum}, but use just 3 fields above current.}
-@end example
-
 @node orgtbl-mode, table.el, Table calculations, Tables
 @section The Orgtbl minor mode
 @cindex orgtbl-mode
@@ -1029,7 +1107,7 @@
 @chapter Hyperlinks
 @cindex hyperlinks
 
-Just like HMTL, Org-mode provides links to other files, usenet
+Just like HMTL, Org-mode provides links to other files, Usenet
 articles, emails and much more.
 
 @menu
@@ -1050,7 +1128,7 @@
 @cindex USENET links
 @cindex SHELL links
 
-Org-mode supports links to files, websites, usenet and email messages;
+Org-mode supports links to files, websites, Usenet and email messages;
 and BBDB database entries.  Links are just plain-text URL-like
 locators, optionally enclosed by angular brackets.  The following list
 shows examples for each link type.
@@ -1142,13 +1220,14 @@
 store quick notes with little interruption of your work flow.  See
 @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
 information.  The notes produced by @emph{Remember} can be stored in
-different ways, and Org-mode files are a good target.
-Org-mode allows to file away notes either to a default file, or
-directly to the correct location in your Org-mode outline tree.  The
-following customization will tell @emph{Remember} to use org files as
-target, and to create annotations compatible with Org-mode links.
-
-@c FIXME: The autoload will not be necessary when Org-mode is part of Emacs
+different ways, and Org-mode files are a good target.  Org-mode allows
+to file away notes either to a default file, or directly to the
+correct location in your Org-mode outline tree.  The following
+customization@footnote{The two autoload forms are only necessary if
+@file{org.el} is not part of the Emacs distribution or and XEmacs
+package.} will tell @emph{Remember} to use org files as target, and to
+create annotations compatible with Org-mode links.
+
 @example
 (autoload 'org-remember-annotation "org")
 (autoload 'org-remember-handler "org")
@@ -2233,7 +2312,6 @@
 @cindex completion, of TODO keywords
 @cindex completion, of dictionary words
 @cindex completion, of option keywords
-@cindex completion, of keyword formulas
 
 Org-mode supports in-buffer completion.  This type of completion does
 not make use of the minibuffer.  You simply type a few letters into
@@ -2254,8 +2332,6 @@
 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
 will insert example settings for this keyword.
 @item
-After @samp{=}, complete keyword formulas for tables.
-@item
 Elsewhere, complete dictionary words using ispell.
 @end itemize
 @end table
@@ -2376,7 +2452,7 @@
 been installed properly.  As of Emacs 22, calc is part of the Emacs
 distribution.  Another possibility for interaction between the two
 packages is using calc for embedded calculations. @xref{Embedded Mode,
-, Embedded Mode, calc, The calc maanual}.
+, Embedded Mode, calc, GNU Emacs Calc Manual}.
 @cindex @file{constants.el}
 @item @file{constants.el} by Carsten Dominik
 In a table formula (@pxref{Table calculations}), it is possible to use
@@ -2431,7 +2507,7 @@
 @item
 If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the
 filling is correctly disabled.  However, if some text directly
-(without an empty line in between) preceeds or follows a table, calling
+(without an empty line in between) precedes or follows a table, calling
 @code{fill-paragraph} in that text will also fill the table like
 normal text.  Also, @code{fill-region} does bypass the
 @code{fill-paragraph} code and will fill tables like normal text.
@@ -2490,7 +2566,8 @@
 Christian Schlauer proposed angular brackets around links, among other
 things.
 @item
-David Wainberg suggested to implement an archiving mechanism.
+David Wainberg suggested to implement an archiving mechanism and helped
+testing.
 @item
 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
 @file{organizer-mode.el}.
--- a/man/sc.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/sc.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -948,7 +948,7 @@
 (setq mail-citation-hook 'sc-cite-original)
 @end example
 
-Note the lack of of a single quote on the first argument to @code{setq}.
+Note the lack of a single quote on the first argument to @code{setq}.
 
 @node  MH-E with any Emacsen, VM with any Emacsen, Emacs 18 MUAs, Getting Connected
 @comment  node-name,  next,  previous,  up
--- a/man/speedbar.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/speedbar.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -68,7 +68,7 @@
 the needs of that mode.
 
 Throughout this manual, activities are defined as `clicking on', or
-`expanding' items.  Clicking means using using @kbd{Mouse-2} on a
+`expanding' items.  Clicking means using @kbd{Mouse-2} on a
 button.  Expanding refers to clicking on an expansion button to display
 an expanded summary of the entry the expansion button is
 on.  @xref{Basic Navigation}.
--- a/man/text.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/text.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -2664,7 +2664,7 @@
 convenience feature (turned on by default).  During table recognition,
 the contents of a cell are examined to determine which justification
 was originally applied to the cell and then applies this justification
-to the the cell.  This is a speculative algorithm and is therefore not
+to the cell.  This is a speculative algorithm and is therefore not
 perfect, however, the justification is deduced correctly most of the
 time.  If you desire to disable this feature, customize the variable
 @code{table-detect-cell-alignment} to set it to @code{nil}.
--- a/man/trouble.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/trouble.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -368,7 +368,7 @@
 buffer, use @code{ysave-buffer}; you specify the buffer number, and
 the file name to write that buffer into.  You should use a file name
 which does not already exist; if the file does exist, the script does
-not make make a backup of its old contents.
+not make a backup of its old contents.
 
 @node Emergency Escape
 @subsection Emergency Escape
--- a/man/url.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/url.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -1065,7 +1065,7 @@
 
 @defopt url-history-track
 If non-@code{nil}, the library will keep track of all the URLs
-accessed.  If is is @code{t}, the list is saved to disk at the end of
+accessed.  If it is @code{t}, the list is saved to disk at the end of
 each Emacs session.  The default is @code{nil}.
 @end defopt
 
--- a/man/xresources.texi	Tue Jul 19 02:58:20 2005 +0000
+++ b/man/xresources.texi	Fri Jul 22 08:27:27 2005 +0000
@@ -932,7 +932,7 @@
 text fields in the file dialog.
 
 @item font_name = "@var{font}"
-This specifies the the font for text in the widget.  @var{font} is a
+This specifies the font for text in the widget.  @var{font} is a
 Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica
 Bold 12}, @samp{Courier 14}, @samp{Times 18}.  See below for exact
 syntax.  The names are case insensitive.
--- a/nt/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/nt/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,8 @@
+2005-07-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* configure.bat: Finish config.log with a line that indicates that
+	the configure step was successful.
+
 2005-07-04  Lute Kamstra  <lute@gnu.org>
 
 	Update FSF's address in GPL notices.
--- a/nt/configure.bat	Tue Jul 19 02:58:20 2005 +0000
+++ b/nt/configure.bat	Fri Jul 22 08:27:27 2005 +0000
@@ -513,6 +513,7 @@
 
 echo.
 echo Emacs successfully configured.
+echo Emacs successfully configured. >>config.log
 echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.
 goto end
 
--- a/src/.gdbinit	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/.gdbinit	Fri Jul 22 08:27:27 2005 +0000
@@ -129,20 +129,24 @@
   end
   if ($it->what == IT_CHARACTER)
     if ($it->len == 1 && $it->c >= ' ' && it->c < 255)
-      printf "ch='%c'", $it->c
+      printf " ch='%c'", $it->c
     else
-      printf "ch=[%d,%d]", $it->c, $it->len
+      printf " ch=[%d,%d]", $it->c, $it->len
     end
   else
     if ($it->what == IT_IMAGE)
-      printf "IMAGE=%d", $it->image_id
+      printf " IMAGE=%d", $it->image_id
     else
+      printf " "
       output $it->what
     end
   end
   if ($it->method != GET_FROM_BUFFER)
     printf " next="
     output $it->method
+    if ($it->method == GET_FROM_STRING)
+      printf "[%d]", $it->current.string_pos.charpos
+    end
   end
   printf "\n"
   if ($it->region_beg_charpos >= 0)
--- a/src/ChangeLog	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/ChangeLog	Fri Jul 22 08:27:27 2005 +0000
@@ -1,3 +1,164 @@
+2005-07-21  Juanma Barranquero  <lekktu@gmail.com>
+
+	* buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
+
+	* ccl.c (Fregister_ccl_program): Fix typos in docstring.
+	(Fccl_execute_on_string): Likewise; add usage info.
+
+	* composite.c (Fcompose_region_internal)
+	(Fcompose_string_internal):
+	Improve argument/docstring consistency.
+
+	* minibuf.c (Fminibuffer_prompt_end, Feval_minibuffer):
+	Fix typos in docstrings.
+
+	* textprop.c (Fnext_char_property_change)
+	(Fprevious_char_property_change): Doc fixes.
+
+	* window.c (Fset_window_margins, Fset_window_fringes):
+	Improve argument/docstring consistency.
+
+	* xfaces.c (Finternal_lisp_face_p): Doc fix.
+
+2005-07-21  Andreas Schwab  <schwab@suse.de>
+
+	* eval.c (restore_stack_limits): Return a value.
+
+2005-07-20  Juanma Barranquero  <lekktu@gmail.com>
+
+	* eval.c (Fdefvar): Doc fix.
+
+2005-07-20  Kim F. Storm  <storm@cua.dk>
+
+	* fileio.c (Fdo_auto_save, do_auto_save_unwind):
+	Use make_save_value to unwind protect stream.
+
+	* lread.c (Fload, load_unwind):
+	Use make_save_value to unwind protect stream.
+
+2005-07-19  Juanma Barranquero  <lekktu@gmail.com>
+
+	* eval.c (Fprog2, Fcalled_interactively_p),
+	(syms_of_eval) <debug-on-quit>: Doc fixes.
+	(syms_of_eval) <max-specpdl-size>:
+	(Finteractive_p): Fix typos in docstrings.
+
+2005-07-19  Kim F. Storm  <storm@cua.dk>
+
+	* w32fns.c (Vx_hand_shape): Variable removed.
+	(syms_of_w32fns): Intern and staticpro Qw32_charset_default.
+
+2005-07-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* buffer.h (Fgenerate_new_buffer_name): Declare (for use in coding.c).
+
+2005-07-18  Kim F. Storm  <storm@cua.dk>
+
+	* frame.h (struct frame): New member already_hscrolled_p.
+
+	* xdisp.c (redisplay_internal): Only try to hscroll each frame once
+	to avoid redisplay looping hscrolling back and forth ad infinitum.
+
+2005-07-18  Juri Linkov  <juri@jurta.org>
+
+	* buffer.c (scroll-up-aggressively, scroll-down-aggressively):
+	* keymap.c (Fminor_mode_key_binding):
+	* macterm.c (mac-emulate-three-button-mouse):
+	Delete duplicate duplicate words.
+
+2005-07-18  Ken Raeburn  <raeburn@gnu.org>
+
+	* minibuf.c (Ftest_completion): Fix odd syntax in test.
+
+2005-07-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macfns.c (x_set_cursor_color): Use XSetBackground and XSetForeground.
+
+	* macgui.h (struct _XGC): New struct.
+	(GC): Use it.
+	(GCForeground, GCBackground, GCFont): Use X11 mask values.
+	(XCreateGC, XParseGeometry): Move externs to macterm.h.
+
+	* macterm.c (x_bitmap_icon, x_make_frame_visible): Remove declarations.
+	(XSetFont): Add declaration.
+	(mac_set_forecolor, mac_set_backcolor, mac_set_colors):
+	Remove functions.
+	(GC_FORE_COLOR, GC_BACK_COLOR, GC_FONT, MAC_WINDOW_NORMAL_GC):
+	New defines.
+	(XDrawLine, mac_draw_line_to_pixmap, XClearWindow)
+	(mac_draw_bitmap, XCreatePixmapFromBitmapData, XFillRectangle)
+	(mac_draw_rectangle, mac_draw_string_common, mac_scroll_area):
+	Use them.
+	(mac_erase_rectangle): New function.
+	(XClearArea, x_draw_fringe_bitmap, x_clear_glyph_string_rect)
+	(x_draw_stretch_glyph_string): Use it.
+	(XChangeGC, XCreateGC, XGetGCValues, XSetForeground)
+	(XSetBackground, XSetFont): Adjust for new GC implementation.
+	(x_draw_fringe_bitmap, x_draw_box_rect): Use GC to set colors.
+	(XTset_vertical_scroll_bar): Clear area under scroll bar.
+
+	* macterm.h (struct mac_display_info): Change types of
+	scratch_cursor_gc black_relief.gc, and white_relief.gc to GC.
+	(XCreateGC, XParseGeometry): Move externs from macgui.h.
+
+	* xfaces.c [MAC_OS] (XCreateGC): Remove extern.
+
+2005-07-16  Richard M. Stallman  <rms@gnu.org>
+
+	* buffer.c (Fmake_overlay): Doc fix.
+
+2005-07-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* w32proc.c (syms_of_ntproc): staticpro Qhigh, Qlow,
+	Vw32_valid_locale_ids, and Vw32_valid_codepages.
+
+2005-07-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* mac.c [TARGET_API_MAC_CARBON] (Fmac_code_convert_string):
+	Use Fstring_as_unibyte instead of string_make_unibyte.
+
+2005-07-15  Richard M. Stallman  <rms@gnu.org>
+
+	* xdisp.c (select_frame_for_redisplay): Use find_symbol_value.
+
+2005-07-15  Kim F. Storm  <storm@cua.dk>
+
+	* xdisp.c: Fix redisplay loop in last change.
+	(IT_POS_VALID_AFTER_MOVE_P): New macro.
+	(move_it_vertically_backward, move_it_by_lines): Use it.
+
+2005-07-14  Jason Rumney  <jasonr@gnu.org>
+
+	* w32.c (init_environment): Default HOME directory to user's
+	appdata directory if possible.
+
+2005-07-14  Kim F. Storm  <storm@cua.dk>
+
+	* .gdbinit (pitx): Fix output format.  Print string charpos.
+
+	* lread.c (syms_of_lread): Initialize seen_list.
+
+	* search.c (syms_of_search): Staticpro searchbuf.whitespace_regexp.
+
+	* syntax.c (syms_of_syntax): Staticpro lisp objects in gl_state.
+	Staticpro re_match_object.
+
+2005-07-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macselect.c (get_scrap_target_type_list): Avoid NULL pointer
+	dereference.
+
+	* macterm.c (mac_window_to_frame): Remove duplicate define.
+
+2005-07-14  Kenichi Handa  <handa@m17n.org>
+
+	* coding.c (code_convert_region_unwind): ARG is changed to a cons.
+	(code_convert_region): Adjust for the above change.
+	(set_conversion_work_buffer): If the work buffer is already in
+	use, generate a new buffer and return it.  Otherwise return Qnil.
+	(run_pre_post_conversion_on_str): Adjust for the above change.
+	(run_pre_write_conversin_on_c_str): Likewise.
+
 2005-07-13  Kim F. Storm  <storm@cua.dk>
 
 	* xdisp.c (start_display): Don't reseat to next visible line start
@@ -9,7 +170,7 @@
 	count rows moved over when moving to start of current row in case
 	row starts in middle of a string or image.  Also move further
 	backward if we end up in a string or image.
-	(try_cursor_movement): if overlay string spans multiple lines,
+	(try_cursor_movement): If overlay string spans multiple lines,
 	move backward to set cursor on start of an overlay string.
 	(cursor_row_p): Row is ok if cursor is at newline from string, but
 	string starts on this line (so we always position cursor at start
@@ -38,22 +199,22 @@
 	(disable_mouse_highlight): Remove unused variable.
 	[USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click)
 	(x_scroll_bar_handle_press, x_scroll_bar_handle_release)
-	(x_scroll_bar_handle_drag): Remove argument `timestamp'.  All
-	callers changed.
+	(x_scroll_bar_handle_drag): Remove argument `timestamp'.
+	All callers changed.
 	[USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click): Don't set
 	timestamp.
 	[USE_CARBON_EVENTS] (mac_handle_mouse_event): Likewise.
 	(x_scroll_bar_create, XTset_vertical_scroll_bar): Show scroll bar
 	only when its width is less than the height.
 	(XTredeem_scroll_bar): Sync with xterm.c.
-	(font_name_table, font_name_table_size, font_name_count): Make
-	static.
+	(font_name_table, font_name_table_size, font_name_count):
+	Make static.
 	(drag_and_drop_file_list): Remove variable.  Previous use is now
 	local to function.
 	(do_ae_open_documents): Move DRAG_N_DROP event construction part
 	from XTread_socket.
-	(XTread_socket): Consolidate setting of event timestamp.  Move
-	DRAG_N_DROP event construction part to do_ae_open_documents.
+	(XTread_socket): Consolidate setting of event timestamp.
+	Move DRAG_N_DROP event construction part to do_ae_open_documents.
 	Support extra_keyboard_modifiers.
 
 	* xfaces.c (try_font_list) [MAC_OS]: Try font family name
--- a/src/buffer.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/buffer.c	Fri Jul 22 08:27:27 2005 +0000
@@ -3573,10 +3573,12 @@
        doc: /* Create a new overlay with range BEG to END in BUFFER.
 If omitted, BUFFER defaults to the current buffer.
 BEG and END may be integers or markers.
-The fourth arg FRONT-ADVANCE, if non-nil, makes the
-front delimiter advance when text is inserted there.
-The fifth arg REAR-ADVANCE, if non-nil, makes the
-rear delimiter advance when text is inserted there.  */)
+The fourth arg FRONT-ADVANCE, if non-nil, makes the marker
+for the front of the overlay advance when text is inserted there
+(which means the text *is not* included in the overlay).
+The fifth arg REAR-ADVANCE, if non-nil, makes the marker
+for the rear of the overlay advance when text is inserted there
+(which means the text *is* included in the overlay).  */)
      (beg, end, buffer, front_advance, rear_advance)
      Lisp_Object beg, end, buffer;
      Lisp_Object front_advance, rear_advance;
@@ -5743,7 +5745,7 @@
 When the value is 0.0, point goes at the bottom line, which in the simple
 case that you moved off with C-f means scrolling just one line.  1.0 means
 point goes at the top, so that in that simple case, the window
-window scrolls by a full window height.  Meaningful values are
+scrolls by a full window height.  Meaningful values are
 between 0.0 and 1.0, inclusive.  */);
 
   DEFVAR_PER_BUFFER ("scroll-down-aggressively",
@@ -5756,7 +5758,7 @@
 When the value is 0.0, point goes at the top line, which in the simple
 case that you moved off with C-b means scrolling just one line.  1.0 means
 point goes at the bottom, so that in that simple case, the window
-window scrolls by a full window height.  Meaningful values are
+scrolls by a full window height.  Meaningful values are
 between 0.0 and 1.0, inclusive.  */);
 
 /*DEFVAR_LISP ("debug-check-symbol", &Vcheck_symbol,
@@ -5944,15 +5946,15 @@
      doc: /* Cursor to use when this buffer is in the selected window.
 Values are interpreted as follows:
 
-  t 		 use the cursor specified for the frame
-  nil		 don't display a cursor
-  box		 display a filled box cursor
-  hollow	 display a hollow box cursor
-  bar		 display a vertical bar cursor with default width
-  (bar . WIDTH)	 display a vertical bar cursor with width WIDTH
-  hbar		 display a horizontal bar cursor with default height
+  t 		  use the cursor specified for the frame
+  nil		  don't display a cursor
+  box		  display a filled box cursor
+  hollow	  display a hollow box cursor
+  bar		  display a vertical bar cursor with default width
+  (bar . WIDTH)	  display a vertical bar cursor with width WIDTH
+  hbar		  display a horizontal bar cursor with default height
   (hbar . HEIGHT) display a horizontal bar cursor with height HEIGHT
-  ANYTHING ELSE	 display a hollow box cursor.
+  ANYTHING ELSE	  display a hollow box cursor
 
 When the buffer is displayed in a nonselected window,
 this variable has no effect; the cursor appears as a hollow box.  */);
--- a/src/buffer.h	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/buffer.h	Fri Jul 22 08:27:27 2005 +0000
@@ -1,6 +1,6 @@
 /* Header file for the buffer manipulation primitives.
-   Copyright (C) 1985,86,93,94,95,97,98,99,2000,01,03,04
-   Free Software Foundation, Inc.
+   Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
+     2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -860,6 +860,7 @@
 EXFUN (Fnext_overlay_change, 1);
 EXFUN (Fdelete_overlay, 1);
 EXFUN (Fbuffer_local_value, 2);
+EXFUN (Fgenerate_new_buffer_name, 2);
 
 /* Functions to call before and after each text change.  */
 extern Lisp_Object Vbefore_change_functions;
--- a/src/ccl.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/ccl.c	Fri Jul 22 08:27:27 2005 +0000
@@ -2030,7 +2030,7 @@
        3, 5, 0,
        doc: /* Execute CCL-PROGRAM with initial STATUS on STRING.
 
-CCL-PROGRAM is a symbol registered by register-ccl-program,
+CCL-PROGRAM is a symbol registered by `register-ccl-program',
 or a compiled code generated by `ccl-compile' (for backward compatibility,
 in this case, the execution is slower).
 
@@ -2051,7 +2051,8 @@
 If the optional 5th arg UNIBYTE-P is non-nil, the returned string
 is a unibyte string.  By default it is a multibyte string.
 
-See the documentation of `define-ccl-program' for the detail of CCL program.  */)
+See the documentation of `define-ccl-program' for the detail of CCL program.
+usage: (ccl-execute-on-string CCL-PROGRAM STATUS STRING &optional CONTINUE UNIBYTE-P)  */)
      (ccl_prog, status, str, contin, unibyte_p)
      Lisp_Object ccl_prog, status, str, contin, unibyte_p;
 {
@@ -2177,8 +2178,8 @@
 
 DEFUN ("register-ccl-program", Fregister_ccl_program, Sregister_ccl_program,
        2, 2, 0,
-       doc: /* Register CCL program CCL_PROG as NAME in `ccl-program-table'.
-CCL_PROG should be a compiled CCL program (vector), or nil.
+       doc: /* Register CCL program CCL-PROG as NAME in `ccl-program-table'.
+CCL-PROG should be a compiled CCL program (vector), or nil.
 If it is nil, just reserve NAME as a CCL program name.
 Return index number of the registered CCL program.  */)
      (name, ccl_prog)
--- a/src/composite.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/composite.c	Fri Jul 22 08:27:27 2005 +0000
@@ -628,8 +628,8 @@
 Compose text in the region between START and END.
 Optional 3rd and 4th arguments are COMPONENTS and MODIFICATION-FUNC
 for the composition.  See `compose-region' for more detail.  */)
-     (start, end, components, mod_func)
-     Lisp_Object start, end, components, mod_func;
+     (start, end, components, modification_func)
+     Lisp_Object start, end, components, modification_func;
 {
   validate_region (&start, &end);
   if (!NILP (components)
@@ -638,7 +638,7 @@
       && !STRINGP (components))
     CHECK_VECTOR (components);
 
-  compose_text (XINT (start), XINT (end), components, mod_func, Qnil);
+  compose_text (XINT (start), XINT (end), components, modification_func, Qnil);
   return Qnil;
 }
 
@@ -649,8 +649,8 @@
 Compose text between indices START and END of STRING.
 Optional 4th and 5th arguments are COMPONENTS and MODIFICATION-FUNC
 for the composition.  See `compose-string' for more detail.  */)
-     (string, start, end, components, mod_func)
-     Lisp_Object string, start, end, components, mod_func;
+     (string, start, end, components, modification_func)
+     Lisp_Object string, start, end, components, modification_func;
 {
   CHECK_STRING (string);
   CHECK_NUMBER (start);
@@ -661,7 +661,7 @@
       || XINT (end) > SCHARS (string))
     args_out_of_range (start, end);
 
-  compose_text (XINT (start), XINT (end), components, mod_func, string);
+  compose_text (XINT (start), XINT (end), components, modification_func, string);
   return string;
 }
 
--- a/src/eval.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/eval.c	Fri Jul 22 08:27:27 2005 +0000
@@ -235,6 +235,7 @@
 {
   max_specpdl_size = XINT (XCAR (data));
   max_lisp_eval_depth = XINT (XCDR (data));
+  return Qnil;
 }
 
 /* Call the Lisp debugger, giving it argument ARG.  */
@@ -471,10 +472,10 @@
 }
 
 DEFUN ("prog2", Fprog2, Sprog2, 2, UNEVALLED, 0,
-       doc: /* Eval X, Y and BODY sequentially; value from Y.
-The value of Y is saved during the evaluation of the remaining args,
-whose values are discarded.
-usage: (prog2 X Y BODY...)  */)
+       doc: /* Eval FORM1, FORM2 and BODY sequentially; value from FORM2.
+The value of FORM2 is saved during the evaluation of the
+remaining args, whose values are discarded.
+usage: (prog2 FORM1 FORM2 BODY...)  */)
      (args)
      Lisp_Object args;
 {
@@ -564,8 +565,8 @@
 
 DEFUN ("interactive-p", Finteractive_p, Sinteractive_p, 0, 0, 0,
        doc: /* Return t if the function was run directly by user input.
-This means that the function was called with call-interactively (which
-includes being called as the binding of a key)
+This means that the function was called with `call-interactively'
+\(which includes being called as the binding of a key)
 and input is currently coming from the keyboard (not in keyboard macro),
 and Emacs is not running in batch mode (`noninteractive' is nil).
 
@@ -586,14 +587,14 @@
 
 
 DEFUN ("called-interactively-p", Fcalled_interactively_p, Scalled_interactively_p, 0, 0, 0,
-       doc: /* Return t if the function using this was called with call-interactively.
+       doc: /* Return t if the function using this was called with `call-interactively'.
 This is used for implementing advice and other function-modifying
 features of Emacs.
 
 The cleanest way to test whether your function was called with
-`call-interactively', the way to do that is by adding an extra
-optional argument, and making the `interactive' spec specify non-nil
-unconditionally for that argument.  (`p' is a good way to do this.)  */)
+`call-interactively' is by adding an extra optional argument,
+and making the `interactive' spec specify non-nil unconditionally
+for that argument.  (`p' is a good way to do this.)  */)
      ()
 {
   return interactive_p (1) ? Qt : Qnil;
@@ -779,7 +780,7 @@
 
 
 DEFUN ("defvar", Fdefvar, Sdefvar, 1, UNEVALLED, 0,
-       doc: /* Define SYMBOL as a variable.
+       doc: /* Define SYMBOL as a variable, and return SYMBOL.
 You are not required to define a variable in order to use it,
 but the definition can supply documentation and an initial value
 in a way that tags can recognize.
@@ -2859,8 +2860,7 @@
 	  val = (*XSUBR (fun)->function) (internal_args[0]);
 	  goto done;
 	case 2:
-	  val = (*XSUBR (fun)->function) (internal_args[0],
-					  internal_args[1]);
+	  val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1]);
 	  goto done;
 	case 3:
 	  val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
@@ -2868,8 +2868,7 @@
 	  goto done;
 	case 4:
 	  val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
-					  internal_args[2],
-					  internal_args[3]);
+					  internal_args[2], internal_args[3]);
 	  goto done;
 	case 5:
 	  val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
@@ -3395,7 +3394,7 @@
 syms_of_eval ()
 {
   DEFVAR_INT ("max-specpdl-size", &max_specpdl_size,
-	      doc: /* *Limit on number of Lisp variable bindings & unwind-protects.
+	      doc: /* *Limit on number of Lisp variable bindings and `unwind-protect's.
 If Lisp code tries to increase the total number past this amount,
 an error is signaled.
 You can safely use a value considerably larger than the default value,
@@ -3492,10 +3491,8 @@
   Vdebug_ignored_errors = Qnil;
 
   DEFVAR_BOOL ("debug-on-quit", &debug_on_quit,
-	       doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
-Does not apply if quit is handled by a `condition-case'.
-When you evaluate an expression interactively, this variable
-is temporarily non-nil if `eval-expression-debug-on-quit' is non-nil.  */);
+    doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
+Does not apply if quit is handled by a `condition-case'.  */);
   debug_on_quit = 0;
 
   DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call,
--- a/src/fileio.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/fileio.c	Fri Jul 22 08:27:27 2005 +0000
@@ -5734,13 +5734,13 @@
 }
 
 static Lisp_Object
-do_auto_save_unwind (stream)  /* used as unwind-protect function */
-     Lisp_Object stream;
+do_auto_save_unwind (arg)  /* used as unwind-protect function */
+     Lisp_Object arg;
 {
+  FILE *stream = (FILE *) XSAVE_VALUE (arg)->pointer;
   auto_saving = 0;
-  if (!NILP (stream))
-    fclose ((FILE *) (XFASTINT (XCAR (stream)) << 16
-		      | XFASTINT (XCDR (stream))));
+  if (stream != NULL)
+    fclose (stream);
   return Qnil;
 }
 
@@ -5785,8 +5785,7 @@
   int auto_saved = 0;
   int do_handled_files;
   Lisp_Object oquit;
-  FILE *stream;
-  Lisp_Object lispstream;
+  FILE *stream = NULL;
   int count = SPECPDL_INDEX ();
   int orig_minibuffer_auto_raise = minibuffer_auto_raise;
   int old_message_p = 0;
@@ -5838,24 +5837,10 @@
 	}
 
       stream = fopen (SDATA (listfile), "w");
-      if (stream != NULL)
-	{
-	  /* Arrange to close that file whether or not we get an error.
-	     Also reset auto_saving to 0.  */
-	  lispstream = Fcons (Qnil, Qnil);
-	  XSETCARFASTINT (lispstream, (EMACS_UINT)stream >> 16);
-	  XSETCDRFASTINT (lispstream, (EMACS_UINT)stream & 0xffff);
-	}
-      else
-	lispstream = Qnil;
     }
-  else
-    {
-      stream = NULL;
-      lispstream = Qnil;
-    }
-
-  record_unwind_protect (do_auto_save_unwind, lispstream);
+
+  record_unwind_protect (do_auto_save_unwind,
+			 make_save_value (stream, 0));
   record_unwind_protect (do_auto_save_unwind_1,
 			 make_number (minibuffer_auto_raise));
   minibuffer_auto_raise = 0;
--- a/src/frame.h	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/frame.h	Fri Jul 22 08:27:27 2005 +0000
@@ -463,6 +463,10 @@
      realized.  Reset to zero whenever the default face changes.
      Used to see the difference between a font change and face change.  */
   unsigned default_face_done_p : 1;
+
+  /* Set to non-zero if this frame has already been hscrolled during
+     current redisplay.  */
+  unsigned already_hscrolled_p : 1;
 };
 
 #ifdef MULTI_KBOARD
@@ -821,13 +825,13 @@
 			Display-related Macros
  ***********************************************************************/
 
-/* Canonical y-unit on frame F.  
+/* Canonical y-unit on frame F.
    This value currently equals the line height of the frame (which is
    the height of the default font of F).  */
 
 #define FRAME_LINE_HEIGHT(F) ((F)->line_height)
 
-/* Canonical x-unit on frame F. 
+/* Canonical x-unit on frame F.
    This value currently equals the average width of the default font of F.  */
 
 #define FRAME_COLUMN_WIDTH(F) ((F)->column_width)
--- a/src/keymap.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/keymap.c	Fri Jul 22 08:27:27 2005 +0000
@@ -1694,7 +1694,7 @@
 
 DEFUN ("minor-mode-key-binding", Fminor_mode_key_binding, Sminor_mode_key_binding, 1, 2, 0,
        doc: /* Find the visible minor mode bindings of KEY.
-Return an alist of pairs (MODENAME . BINDING), where MODENAME is the
+Return an alist of pairs (MODENAME . BINDING), where MODENAME is
 the symbol which names the minor mode binding KEY, and BINDING is
 KEY's definition in that mode.  In particular, if KEY has no
 minor-mode bindings, return nil.  If the first binding is a
--- a/src/lread.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/lread.c	Fri Jul 22 08:27:27 2005 +0000
@@ -853,7 +853,6 @@
 {
   register FILE *stream;
   register int fd = -1;
-  register Lisp_Object lispstream;
   int count = SPECPDL_INDEX ();
   Lisp_Object temp;
   struct gcpro gcpro1;
@@ -1088,10 +1087,7 @@
     }
 
   GCPRO1 (file);
-  lispstream = Fcons (Qnil, Qnil);
-  XSETCARFASTINT (lispstream, (EMACS_UINT)stream >> 16);
-  XSETCDRFASTINT (lispstream, (EMACS_UINT)stream & 0xffff);
-  record_unwind_protect (load_unwind, lispstream);
+  record_unwind_protect (load_unwind, make_save_value (stream, 0));
   record_unwind_protect (load_descriptor_unwind, load_descriptor_list);
   specbind (Qload_file_name, found);
   specbind (Qinhibit_file_name_operation, Qnil);
@@ -1150,11 +1146,12 @@
 }
 
 static Lisp_Object
-load_unwind (stream)  /* used as unwind-protect function in load */
-     Lisp_Object stream;
+load_unwind (arg)  /* used as unwind-protect function in load */
+     Lisp_Object arg;
 {
-  fclose ((FILE *) (XFASTINT (XCAR (stream)) << 16
-		    | XFASTINT (XCDR (stream))));
+  FILE *stream = (FILE *) XSAVE_VALUE (arg)->pointer;
+  if (stream != NULL)
+    fclose (stream);
   if (--load_in_progress < 0) load_in_progress = 0;
   return Qnil;
 }
@@ -4161,6 +4158,7 @@
   staticpro (&read_objects);
   read_objects = Qnil;
   staticpro (&seen_list);
+  seen_list = Qnil;
 
   Vloads_in_progress = Qnil;
   staticpro (&Vloads_in_progress);
--- a/src/mac.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/mac.c	Fri Jul 22 08:27:27 2005 +0000
@@ -1,5 +1,5 @@
 /* Unix emulation routines for GNU Emacs on the Mac OS.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -4144,7 +4144,11 @@
   src_encoding = get_cfstring_encoding_from_lisp (source);
   tgt_encoding = get_cfstring_encoding_from_lisp (target);
 
-  string = string_make_unibyte (string);
+  /* We really want string_to_unibyte, but since it doesn't exist yet, we
+     use string_as_unibyte which works as well, except for the fact that
+     it's too permissive (it doesn't check that the multibyte string only
+     contain single-byte chars).  */
+  string = Fstring_as_unibyte (string);
   if (src_encoding != kCFStringEncodingInvalidId
       && tgt_encoding != kCFStringEncodingInvalidId)
     str = CFStringCreateWithBytes (NULL, SDATA (string), SBYTES (string),
--- a/src/macfns.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/macfns.c	Fri Jul 22 08:27:27 2005 +0000
@@ -1570,9 +1570,10 @@
     {
       BLOCK_INPUT;
       /* Update frame's cursor_gc.  */
-      f->output_data.mac->cursor_gc->foreground = fore_pixel;
-      f->output_data.mac->cursor_gc->background = pixel;
-
+      XSetBackground (FRAME_MAC_DISPLAY (f),
+		      f->output_data.mac->cursor_gc, pixel);
+      XSetForeground (FRAME_MAC_DISPLAY (f),
+		      f->output_data.mac->cursor_gc, fore_pixel);
       UNBLOCK_INPUT;
 
       if (FRAME_VISIBLE_P (f))
--- a/src/macgui.h	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/macgui.h	Fri Jul 22 08:27:27 2005 +0000
@@ -180,15 +180,24 @@
   XFontStruct *font;
 } XGCValues;
 
-typedef XGCValues *GC;
+typedef struct _XGC
+{
+  /* Original value.  */
+  XGCValues xgcv;
 
-extern XGCValues *
-XCreateGC (void *, Window, unsigned long, XGCValues *);
+  /* Cached data members follow.  */
 
-#define GCForeground 0x01
-#define GCBackground 0x02
-#define GCFont 0x03
-#define GCGraphicsExposures 0
+  /* QuickDraw foreground color.  */
+  RGBColor fore_color;
+
+  /* QuickDraw background color.  */
+  RGBColor back_color;
+} *GC;
+
+#define GCForeground            (1L<<2)
+#define GCBackground            (1L<<3)
+#define GCFont 			(1L<<14)
+#define GCGraphicsExposures	0
 
 /* Bit Gravity */
 
@@ -248,8 +257,6 @@
 #define PBaseSize	(1L << 8) /* program specified base for incrementing */
 #define PWinGravity	(1L << 9) /* program specified window gravity */
 
-extern int XParseGeometry ();
-
 typedef struct {
     int x, y;
     unsigned width, height;
--- a/src/macselect.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/macselect.c	Fri Jul 22 08:27:27 2005 +0000
@@ -371,7 +371,7 @@
   err = GetScrapFlavorCount (scrap, &count);
   if (err == noErr)
     flavor_info = xmalloc (sizeof (ScrapFlavorInfo) * count);
-  if (err == noErr && flavor_info)
+  if (flavor_info)
     {
       err = GetScrapFlavorInfoList (scrap, &count, flavor_info);
       if (err != noErr)
@@ -380,6 +380,8 @@
 	  flavor_info = NULL;
 	}
     }
+  if (flavor_info == NULL)
+    count = 0;
 #endif
   for (rest = Vselection_converter_alist; CONSP (rest); rest = XCDR (rest))
     {
--- a/src/macterm.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/macterm.c	Fri Jul 22 08:27:27 2005 +0000
@@ -96,8 +96,6 @@
 			(NILP (Vmac_command_key_is_meta) ? optionKey : cmdKey) \
 			: controlKey)
 #define macAltKey      (NILP (Vmac_command_key_is_meta) ? cmdKey : optionKey)
-
-#define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP)
 
 
 /* Non-nil means Emacs uses toolkit scroll bars.  */
@@ -263,14 +261,19 @@
 					    Lisp_Object *, Lisp_Object *,
 					    unsigned long *));
 
-static int is_emacs_window (WindowPtr);
-
-int x_bitmap_icon (struct frame *, Lisp_Object);
-void x_make_frame_visible (struct frame *);
+static int is_emacs_window P_ ((WindowPtr));
+
+static void XSetFont P_ ((Display *, GC, XFontStruct *));
 
 /* Defined in macmenu.h.  */
 extern void menubar_selection_callback (FRAME_PTR, int);
 
+#define GC_FORE_COLOR(gc)	(&(gc)->fore_color)
+#define GC_BACK_COLOR(gc)	(&(gc)->back_color)
+#define GC_FONT(gc)		((gc)->xgcv.font)
+#define MAC_WINDOW_NORMAL_GC(w)	(((mac_output *) GetWRefCon (w))->normal_gc)
+
+
 /* X display function emulation */
 
 void
@@ -282,51 +285,6 @@
 }
 
 
-/* Set foreground color for subsequent QuickDraw commands.  Assume
-   graphic port has already been set.  */
-
-static void
-mac_set_forecolor (unsigned long color)
-{
-  RGBColor fg_color;
-
-  fg_color.red = RED16_FROM_ULONG (color);
-  fg_color.green = GREEN16_FROM_ULONG (color);
-  fg_color.blue = BLUE16_FROM_ULONG (color);
-
-  RGBForeColor (&fg_color);
-}
-
-
-/* Set background color for subsequent QuickDraw commands.  Assume
-   graphic port has already been set.  */
-
-static void
-mac_set_backcolor (unsigned long color)
-{
-  RGBColor bg_color;
-
-  bg_color.red = RED16_FROM_ULONG (color);
-  bg_color.green = GREEN16_FROM_ULONG (color);
-  bg_color.blue = BLUE16_FROM_ULONG (color);
-
-  RGBBackColor (&bg_color);
-}
-
-/* Set foreground and background color for subsequent QuickDraw
-   commands.  Assume that the graphic port has already been set.  */
-
-static void
-mac_set_colors (gc, bg_save)
-     GC gc;
-     RGBColor *bg_save;
-{
-  if (bg_save)
-    GetBackColor (bg_save);
-  mac_set_forecolor (gc->foreground);
-  mac_set_backcolor (gc->background);
-}
-
 /* Mac version of XDrawLine.  */
 
 static void
@@ -336,16 +294,12 @@
      GC gc;
      int x1, y1, x2, y2;
 {
-  RGBColor old_bg;
-
   SetPortWindowPort (w);
 
-  mac_set_colors (gc, &old_bg);
+  RGBForeColor (GC_FORE_COLOR (gc));
 
   MoveTo (x1, y1);
   LineTo (x2, y2);
-
-  RGBBackColor (&old_bg);
 }
 
 void
@@ -361,7 +315,7 @@
   GetGWorld (&old_port, &old_gdh);
   SetGWorld (p, NULL);
 
-  mac_set_colors (gc, NULL);
+  RGBForeColor (GC_FORE_COLOR (gc));
 
   LockPixels (GetGWorldPixMap (p));
   MoveTo (x1, y1);
@@ -371,6 +325,27 @@
   SetGWorld (old_port, old_gdh);
 }
 
+
+static void
+mac_erase_rectangle (w, gc, x, y, width, height)
+     WindowPtr w;
+     GC gc;
+     int x, y;
+     unsigned int width, height;
+{
+  Rect r;
+
+  SetPortWindowPort (w);
+
+  RGBBackColor (GC_BACK_COLOR (gc));
+  SetRect (&r, x, y, x + width, y + height);
+
+  EraseRect (&r);
+
+  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
+}
+
+
 /* Mac version of XClearArea.  */
 
 void
@@ -381,22 +356,7 @@
      unsigned int width, height;
      int exposures;
 {
-  struct mac_output *mwp = (mac_output *) GetWRefCon (w);
-  Rect r;
-  XGCValues xgc;
-  RGBColor old_bg;
-
-  xgc.foreground = mwp->x_compatible.foreground_pixel;
-  xgc.background = mwp->x_compatible.background_pixel;
-
-  SetPortWindowPort (w);
-
-  mac_set_colors (&xgc, &old_bg);
-  SetRect (&r, x, y, x + width, y + height);
-
-  EraseRect (&r);
-
-  RGBBackColor (&old_bg);
+  mac_erase_rectangle (w, MAC_WINDOW_NORMAL_GC (w), x, y, width, height);
 }
 
 /* Mac version of XClearWindow.  */
@@ -406,15 +366,9 @@
      Display *display;
      WindowPtr w;
 {
-  struct mac_output *mwp = (mac_output *) GetWRefCon (w);
-  XGCValues xgc;
-
-  xgc.foreground = mwp->x_compatible.foreground_pixel;
-  xgc.background = mwp->x_compatible.background_pixel;
-
   SetPortWindowPort (w);
 
-  mac_set_colors (&xgc, NULL);
+  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
 
 #if TARGET_API_MAC_CARBON
   {
@@ -442,7 +396,6 @@
 {
   BitMap bitmap;
   Rect r;
-  RGBColor old_bg;
 
   bitmap.rowBytes = sizeof(unsigned short);
   bitmap.baseAddr = (char *)bits;
@@ -450,7 +403,8 @@
 
   SetPortWindowPort (w);
 
-  mac_set_colors (gc, &old_bg);
+  RGBForeColor (GC_FORE_COLOR (gc));
+  RGBBackColor (GC_BACK_COLOR (gc));
   SetRect (&r, x, y, x + width, y + height);
 
 #if TARGET_API_MAC_CARBON
@@ -463,7 +417,7 @@
 	    overlay_p ? srcOr : srcCopy, 0);
 #endif /* not TARGET_API_MAC_CARBON */
 
-  RGBBackColor (&old_bg);
+  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
 }
 
 
@@ -569,12 +523,16 @@
      char *data;
      unsigned int width, height;
      unsigned long fg, bg;
-     unsigned int depth;	/* not used */
+     unsigned int depth;
 {
   Pixmap pixmap;
   BitMap bitmap;
   CGrafPtr old_port;
   GDHandle old_gdh;
+  static GC gc = NULL;		/* not reentrant */
+
+  if (gc == NULL)
+    gc = XCreateGC (display, w, 0, NULL);
 
   pixmap = XCreatePixmap (display, w, width, height, depth);
   if (pixmap == NULL)
@@ -583,8 +541,10 @@
   GetGWorld (&old_port, &old_gdh);
   SetGWorld (pixmap, NULL);
   mac_create_bitmap_from_bitmap_data (&bitmap, data, width, height);
-  mac_set_forecolor (fg);
-  mac_set_backcolor (bg);
+  XSetForeground (display, gc, fg);
+  XSetBackground (display, gc, bg);
+  RGBForeColor (GC_FORE_COLOR (gc));
+  RGBBackColor (GC_BACK_COLOR (gc));
   LockPixels (GetGWorldPixMap (pixmap));
 #if TARGET_API_MAC_CARBON
   CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap),
@@ -612,16 +572,13 @@
      unsigned int width, height;
 {
   Rect r;
-  RGBColor old_bg;
 
   SetPortWindowPort (w);
 
-  mac_set_colors (gc, &old_bg);
+  RGBForeColor (GC_FORE_COLOR (gc));
   SetRect (&r, x, y, x + width, y + height);
 
   PaintRect (&r); /* using foreground color of gc */
-
-  RGBBackColor (&old_bg);
 }
 
 
@@ -640,7 +597,7 @@
 
   GetGWorld (&old_port, &old_gdh);
   SetGWorld (p, NULL);
-  mac_set_colors (gc, NULL);
+  RGBForeColor (GC_FORE_COLOR (gc));
   SetRect (&r, x, y, x + width, y + height);
 
   LockPixels (GetGWorldPixMap (p));
@@ -663,16 +620,13 @@
      unsigned int width, height;
 {
   Rect r;
-  RGBColor old_bg;
 
   SetPortWindowPort (w);
 
-  mac_set_colors (gc, &old_bg);
+  RGBForeColor (GC_FORE_COLOR (gc));
   SetRect (&r, x, y, x + width + 1, y + height + 1);
 
   FrameRect (&r); /* using foreground color of gc */
-
-  RGBBackColor (&old_bg);
 }
 
 
@@ -693,7 +647,7 @@
 
   GetGWorld (&old_port, &old_gdh);
   SetGWorld (p, NULL);
-  mac_set_colors (gc, NULL);
+  RGBForeColor (GC_FORE_COLOR (gc));
   SetRect (&r, x, y, x + width + 1, y + height + 1);
 
   LockPixels (GetGWorldPixMap (p));
@@ -715,9 +669,6 @@
      char *buf;
      int nchars, mode, bytes_per_char;
 {
-  RGBColor old_bg;
-
-  SetPortWindowPort (w);
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
   UInt32 textFlags, savedFlags;
   if (!NILP(Vmac_use_core_graphics)) {
@@ -726,17 +677,22 @@
   }
 #endif
 
-  mac_set_colors (gc, &old_bg);
-
-  TextFont (gc->font->mac_fontnum);
-  TextSize (gc->font->mac_fontsize);
-  TextFace (gc->font->mac_fontface);
+  SetPortWindowPort (w);
+
+  RGBForeColor (GC_FORE_COLOR (gc));
+  if (mode != srcOr)
+    RGBBackColor (GC_BACK_COLOR (gc));
+
+  TextFont (GC_FONT (gc)->mac_fontnum);
+  TextSize (GC_FONT (gc)->mac_fontsize);
+  TextFace (GC_FONT (gc)->mac_fontface);
   TextMode (mode);
 
   MoveTo (x, y);
   DrawText (buf, 0, nchars * bytes_per_char);
 
-  RGBBackColor (&old_bg);
+  if (mode != srcOr)
+    RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
   if (!NILP(Vmac_use_core_graphics))
     SwapQDTextFlags(savedFlags);
@@ -915,7 +871,7 @@
   BackColor (whiteColor);
   CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
 
-  mac_set_colors (gc, NULL);
+  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
 #endif /* not TARGET_API_MAC_CARBON */
 }
 
@@ -1005,28 +961,37 @@
 /* Mac replacement for XChangeGC.  */
 
 static void
-XChangeGC (void * ignore, XGCValues* gc, unsigned long mask,
-                XGCValues *xgcv)
+XChangeGC (display, gc, mask, xgcv)
+     Display *display;
+     GC gc;
+     unsigned long mask;
+     XGCValues *xgcv;
 {
   if (mask & GCForeground)
-    gc->foreground = xgcv->foreground;
+    XSetForeground (display, gc, xgcv->foreground);
   if (mask & GCBackground)
-    gc->background = xgcv->background;
+    XSetBackground (display, gc, xgcv->background);
   if (mask & GCFont)
-    gc->font = xgcv->font;
+    XSetFont (display, gc, xgcv->font);
 }
 
 
 /* Mac replacement for XCreateGC.  */
 
-XGCValues *
-XCreateGC (void * ignore, Window window, unsigned long mask,
-                      XGCValues *xgcv)
-{
-  XGCValues *gc = (XGCValues *) xmalloc (sizeof (XGCValues));
-  bzero (gc, sizeof (XGCValues));
-
-  XChangeGC (ignore, gc, mask, xgcv);
+GC
+XCreateGC (display, window, mask, xgcv)
+     Display *display;
+     Window window;
+     unsigned long mask;
+     XGCValues *xgcv;
+{
+  GC gc = xmalloc (sizeof (*gc));
+
+  if (gc)
+    {
+      bzero (gc, sizeof (*gc));
+      XChangeGC (display, gc, mask, xgcv);
+    }
 
   return gc;
 }
@@ -1046,10 +1011,18 @@
 /* Mac replacement for XGetGCValues.  */
 
 static void
-XGetGCValues (void* ignore, XGCValues *gc,
-                   unsigned long mask, XGCValues *xgcv)
-{
-  XChangeGC (ignore, xgcv, mask, gc);
+XGetGCValues (display, gc, mask, xgcv)
+     Display *display;
+     GC gc;
+     unsigned long mask;
+     XGCValues *xgcv;
+{
+  if (mask & GCForeground)
+    xgcv->foreground = gc->xgcv.foreground;
+  if (mask & GCBackground)
+    xgcv->background = gc->xgcv.background;
+  if (mask & GCFont)
+    xgcv->font = gc->xgcv.font;
 }
 
 
@@ -1061,7 +1034,13 @@
      GC gc;
      unsigned long color;
 {
-  gc->foreground = color;
+  if (gc->xgcv.foreground != color)
+    {
+      gc->xgcv.foreground = color;
+      gc->fore_color.red = RED16_FROM_ULONG (color);
+      gc->fore_color.green = GREEN16_FROM_ULONG (color);
+      gc->fore_color.blue = BLUE16_FROM_ULONG (color);
+    }
 }
 
 
@@ -1073,7 +1052,25 @@
      GC gc;
      unsigned long color;
 {
-  gc->background = color;
+  if (gc->xgcv.background != color)
+    {
+      gc->xgcv.background = color;
+      gc->back_color.red = RED16_FROM_ULONG (color);
+      gc->back_color.green = GREEN16_FROM_ULONG (color);
+      gc->back_color.blue = BLUE16_FROM_ULONG (color);
+    }
+}
+
+
+/* Mac replacement for XSetFont.  */
+
+static void
+XSetFont (display, gc, font)
+     Display *display;
+     GC gc;
+     XFontStruct *font;
+{
+  gc->xgcv.font = font;
 }
 
 
@@ -1120,19 +1117,6 @@
 #endif
 }
 
-
-/* Mac replacement for XSetFont.  */
-
-static void
-XSetFont (display, gc, font)
-     Display *display;
-     GC gc;
-     XFontStruct *font;
-{
-  gc->font = font;
-}
-
-
 /* x_sync is a no-op on Mac.  */
 void
 x_sync (f)
@@ -1443,7 +1427,6 @@
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   Display *display = FRAME_MAC_DISPLAY (f);
   WindowPtr window = FRAME_MAC_WINDOW (f);
-  XGCValues gcv;
   GC gc = f->output_data.mac->normal_gc;
   struct face *face = p->face;
   int rowY;
@@ -1467,9 +1450,6 @@
 
   if (p->bx >= 0 && !p->overlay_p)
     {
-      XGCValues gcv;
-      gcv.foreground = face->background;
-
 #if 0  /* MAC_TODO: stipple */
       /* In case the same realized face is used for fringes and
 	 for something displayed in the text (e.g. face `region' on
@@ -1481,9 +1461,7 @@
 	XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background);
 #endif
 
-      XFillRectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		      &gcv,
-		      p->bx, p->by, p->nx, p->ny);
+      mac_erase_rectangle (window, face->gc, p->bx, p->by, p->nx, p->ny);
 
 #if 0  /* MAC_TODO: stipple */
       if (!face->stipple)
@@ -1494,15 +1472,17 @@
   if (p->which)
     {
       unsigned short *bits = p->bits + p->dh;
-
-      gcv.foreground = (p->cursor_p
-			? (p->overlay_p ? face->background
-			   : f->output_data.mac->cursor_pixel)
-			: face->foreground);
-      gcv.background = face->background;
-
-      mac_draw_bitmap (display, window, &gcv, p->x, p->y,
+      XGCValues gcv;
+
+      XGetGCValues (display, face->gc, GCForeground, &gcv);
+      XSetForeground (display, face->gc,
+		      (p->cursor_p
+		       ? (p->overlay_p ? face->background
+			  : f->output_data.mac->cursor_pixel)
+		       : face->foreground));
+      mac_draw_bitmap (display, window, face->gc, p->x, p->y,
 		       p->wd, p->h, bits, p->overlay_p);
+      XSetForeground (display, face->gc, gcv.foreground);
     }
 
   mac_reset_clipping (display, window);
@@ -1980,10 +1960,7 @@
      struct glyph_string *s;
      int x, y, w, h;
 {
-  XGCValues xgcv;
-
-  xgcv.foreground = s->gc->background;
-  XFillRectangle (s->display, s->window, &xgcv, x, y, w, h);
+  mac_erase_rectangle (s->window, s->gc, x, y, w, h);
 }
 
 
@@ -2571,27 +2548,29 @@
 {
   XGCValues xgcv;
 
-  xgcv.foreground = s->face->box_color;
+  XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
+  XSetForeground (s->display, s->gc, s->face->box_color);
   mac_set_clip_rectangle (s->display, s->window, clip_rect);
 
   /* Top.  */
-  XFillRectangle (s->display, s->window, &xgcv,
+  XFillRectangle (s->display, s->window, s->gc,
 		  left_x, top_y, right_x - left_x + 1, width);
 
   /* Left.  */
   if (left_p)
-    XFillRectangle (s->display, s->window, &xgcv,
+    XFillRectangle (s->display, s->window, s->gc,
 		    left_x, top_y, width, bottom_y - top_y + 1);
 
   /* Bottom.  */
-  XFillRectangle (s->display, s->window, &xgcv,
+  XFillRectangle (s->display, s->window, s->gc,
 		  left_x, bottom_y - width + 1, right_x - left_x + 1, width);
 
   /* Right.  */
   if (right_p)
-    XFillRectangle (s->display, s->window, &xgcv,
+    XFillRectangle (s->display, s->window, s->gc,
 		    right_x - width + 1, top_y, width, bottom_y - top_y + 1);
 
+  XSetForeground (s->display, s->gc, xgcv.foreground);
   mac_reset_clipping (s->display, s->window);
 }
 
@@ -3010,13 +2989,7 @@
 	    }
 	  else
 #endif /* MAC_TODO */
-	    {
-	      XGCValues xgcv;
-	      XGetGCValues (s->display, gc, GCForeground | GCBackground, &xgcv);
-	      XSetForeground (s->display, gc, xgcv.background);
-	      XFillRectangle (s->display, s->window, gc, x, y, w, h);
-	      XSetForeground (s->display, gc, xgcv.foreground);
-	    }
+	    mac_erase_rectangle (s->window, gc, x, y, w, h);
 
 	  mac_reset_clipping (s->display, s->window);
 	}
@@ -4567,13 +4540,10 @@
 	    && XINT (bar->width) == sb_width
 	    && XINT (bar->height) == height))
 	{
-	  /* Clear areas not covered by the scroll bar because it's not as
-	     wide as the area reserved for it .  This makes sure a
-	     previous mode line display is cleared after C-x 2 C-x 1, for
-	     example.  */
-	  int area_width = WINDOW_SCROLL_BAR_AREA_WIDTH (w);
+	  /* Since toolkit scroll bars are smaller than the space reserved
+	     for them on the frame, we have to clear "under" them.  */
 	  XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		      left, top, area_width, height, 0);
+		      left, top, width, height, 0);
 
 #if 0
           if (sb_left + sb_width >= FRAME_PIXEL_WIDTH (f))
@@ -10151,7 +10121,7 @@
     doc: /* t means that when the option-key is held down while pressing the
 mouse button, the click will register as mouse-2 and while the
 command-key is held down, the click will register as mouse-3.
-'reverse means that the the option-key will register for mouse-3
+'reverse means that the option-key will register for mouse-3
 and the command-key will register for mouse-2.  nil means that
 no emulation should be done and the modifiers should be placed
 on the mouse-1 event. */);
--- a/src/macterm.h	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/macterm.h	Fri Jul 22 08:27:27 2005 +0000
@@ -149,7 +149,7 @@
   int smallest_font_height;
 
   /* Reusable Graphics Context for drawing a cursor in a non-default face. */
-  XGCValues *scratch_cursor_gc;
+  GC scratch_cursor_gc;
 
   /* These variables describe the range of text currently shown in its
      mouse-face, together with the window they apply to. As long as
@@ -388,7 +388,7 @@
   /* Relief GCs, colors etc.  */
   struct relief
   {
-    XGCValues *gc;
+    GC gc;
     unsigned long pixel;
     int allocated_p;
   }
@@ -601,6 +601,8 @@
 EXFUN (Fx_display_grayscale_p, 1);
 EXFUN (Fx_display_planes, 1);
 extern void x_free_gcs P_ ((struct frame *));
+extern int XParseGeometry P_ ((char *, int *, int *, unsigned int *,
+			       unsigned int *));
 
 /* Defined in macterm.c.  */
 
@@ -614,6 +616,7 @@
 					       unsigned long, unsigned long,
 					       unsigned int));
 extern void XFreePixmap P_ ((Display *, Pixmap));
+extern GC XCreateGC P_ ((Display *, Window, unsigned long, XGCValues *));
 extern void XSetForeground P_ ((Display *, GC, unsigned long));
 extern void XSetBackground P_ ((Display *, GC, unsigned long));
 extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long));
--- a/src/minibuf.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/minibuf.c	Fri Jul 22 08:27:27 2005 +0000
@@ -349,7 +349,7 @@
 DEFUN ("minibuffer-prompt-end", Fminibuffer_prompt_end,
        Sminibuffer_prompt_end, 0, 0, 0,
        doc: /* Return the buffer position of the end of the minibuffer prompt.
-Return (point-min) if current buffer is not a mini-buffer.  */)
+Return (point-min) if current buffer is not a minibuffer.  */)
      ()
 {
   /* This function is written to be most efficient when there's a prompt.  */
@@ -1014,7 +1014,7 @@
 Prompt with PROMPT.  If non-nil, optional second arg INITIAL-CONTENTS
 is a string to insert in the minibuffer before reading.
 \(INITIAL-CONTENTS can also be a cons of a string and an integer.  Such
-arguments are used as in `read-from-minibuffer')  */)
+arguments are used as in `read-from-minibuffer'.)  */)
      (prompt, initial_contents)
      Lisp_Object prompt, initial_contents;
 {
@@ -1758,7 +1758,7 @@
       || NILP (alist))
     {
       tem = Fassoc_string (string, alist, completion_ignore_case ? Qt : Qnil);
-      if NILP (tem)
+      if (NILP (tem))
 	return Qnil;
     }
   else if (VECTORP (alist))
--- a/src/search.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/search.c	Fri Jul 22 08:27:27 2005 +0000
@@ -3047,6 +3047,7 @@
       searchbufs[i].regexp = Qnil;
       searchbufs[i].whitespace_regexp = Qnil;
       staticpro (&searchbufs[i].regexp);
+      staticpro (&searchbufs[i].whitespace_regexp);
       searchbufs[i].next = (i == REGEXP_CACHE_SIZE-1 ? 0 : &searchbufs[i+1]);
     }
   searchbuf_head = &searchbufs[0];
--- a/src/syntax.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/syntax.c	Fri Jul 22 08:27:27 2005 +0000
@@ -3391,6 +3391,14 @@
 
   staticpro (&Vsyntax_code_object);
 
+  staticpro (&gl_state.object);
+  staticpro (&gl_state.global_code);
+  staticpro (&gl_state.current_syntax_table);
+  staticpro (&gl_state.old_prop);
+
+  /* Defined in regex.c */
+  staticpro (&re_match_object);
+
   Qscan_error = intern ("scan-error");
   staticpro (&Qscan_error);
   Fput (Qscan_error, Qerror_conditions,
--- a/src/textprop.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/textprop.c	Fri Jul 22 08:27:27 2005 +0000
@@ -719,7 +719,7 @@
 overlay, and returns the position of that.
 If none is found, the function returns (point-max).
 
-If the optional third argument LIMIT is non-nil, don't search
+If the optional second argument LIMIT is non-nil, don't search
 past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
      (position, limit)
      Lisp_Object position, limit;
@@ -744,7 +744,7 @@
 overlay, and returns the position of that.
 If none is found, the function returns (point-max).
 
-If the optional third argument LIMIT is non-nil, don't search
+If the optional second argument LIMIT is non-nil, don't search
 past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
      (position, limit)
      Lisp_Object position, limit;
--- a/src/w32.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/w32.c	Fri Jul 22 08:27:27 2005 +0000
@@ -20,8 +20,6 @@
 
    Geoff Voelker (voelker@cs.washington.edu)                         7-29-94
 */
-
-
 #include <stddef.h> /* for offsetof */
 #include <stdlib.h>
 #include <stdio.h>
@@ -73,6 +71,7 @@
 #define _ANONYMOUS_STRUCT
 #endif
 #include <windows.h>
+#include <shlobj.h>
 
 #ifdef HAVE_SOCKETS	/* TCP connection support, if kernel can do it */
 #include <sys/socket.h>
@@ -100,6 +99,9 @@
 #include "w32heap.h"
 #include "systime.h"
 
+typedef HRESULT (WINAPI * ShGetFolderPath_fn)
+  (IN HWND, IN int, IN HANDLE, IN DWORD, OUT char *);
+
 void globals_of_w32 ();
 
 extern Lisp_Object Vw32_downcase_file_names;
@@ -903,7 +905,9 @@
   static const char * const tempdirs[] = {
     "$TMPDIR", "$TEMP", "$TMP", "c:/"
   };
+
   int i;
+
   const int imax = sizeof (tempdirs) / sizeof (tempdirs[0]);
 
   /* Make sure they have a usable $TMPDIR.  Many Emacs functions use
@@ -942,6 +946,8 @@
     LPBYTE lpval;
     DWORD dwType;
     char locale_name[32];
+    struct stat ignored;
+    char default_home[MAX_PATH];
 
     static struct env_entry
     {
@@ -964,6 +970,35 @@
       {"LANG", NULL},
     };
 
+    /* For backwards compatibility, check if a .emacs file exists in C:/
+       If not, then we can try to default to the appdata directory under the
+       user's profile, which is more likely to be writable.   */
+    if (stat ("C:/.emacs", &ignored) < 0)
+    {
+      HRESULT profile_result;
+      /* Dynamically load ShGetFolderPath, as it won't exist on versions
+	 of Windows 95 and NT4 that have not been updated to include
+	 MSIE 5.  Also we don't link with shell32.dll by default.  */
+      HMODULE shell32_dll;
+      ShGetFolderPath_fn get_folder_path;
+      shell32_dll = GetModuleHandle ("shell32.dll");
+      get_folder_path = (ShGetFolderPath_fn)
+	GetProcAddress (shell32_dll, "SHGetFolderPathA");
+
+      if (get_folder_path != NULL)
+	{
+	  profile_result = get_folder_path (NULL, CSIDL_APPDATA, NULL,
+					    0, default_home);
+
+	  /* If we can't get the appdata dir, revert to old behaviour.  */
+	  if (profile_result == S_OK)
+	    env_vars[0].def_value = default_home;
+	}
+
+      /* Unload shell32.dll, it is not needed anymore.  */
+      FreeLibrary (shell32_dll);
+    }
+
   /* Get default locale info and use it for LANG.  */
   if (GetLocaleInfo (LOCALE_USER_DEFAULT,
                      LOCALE_SABBREVLANGNAME | LOCALE_USE_CP_ACP,
--- a/src/w32fns.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/w32fns.c	Fri Jul 22 08:27:27 2005 +0000
@@ -154,7 +154,7 @@
    over text or in the modeline.  */
 
 Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
-Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape, Vx_hand_shape;
+Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape;
 
 /* The shape when over mouse-sensitive text.  */
 
@@ -8822,6 +8822,8 @@
   staticpro (&Qw32_charset_ansi);
   Qw32_charset_ansi = intern ("w32-charset-ansi");
   staticpro (&Qw32_charset_symbol);
+  Qw32_charset_default = intern ("w32-charset-default");
+  staticpro (&Qw32_charset_default);
   Qw32_charset_symbol = intern ("w32-charset-symbol");
   staticpro (&Qw32_charset_shiftjis);
   Qw32_charset_shiftjis = intern ("w32-charset-shiftjis");
--- a/src/w32proc.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/w32proc.c	Fri Jul 22 08:27:27 2005 +0000
@@ -2146,6 +2146,8 @@
 {
   Qhigh = intern ("high");
   Qlow = intern ("low");
+  staticpro (&Qhigh);
+  staticpro (&Qlow);
 
 #ifdef HAVE_SOCKETS
   defsubr (&Sw32_has_winsock);
@@ -2241,6 +2243,9 @@
 Note that this option is only useful for files on NTFS volumes, where hard links
 are supported.  Moreover, it slows down `file-attributes' noticeably.  */);
   Vw32_get_true_file_attributes = Qt;
+
+  staticpro (&Vw32_valid_locale_ids);
+  staticpro (&Vw32_valid_codepages);
 }
 /* end of ntproc.c */
 
--- a/src/window.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/window.c	Fri Jul 22 08:27:27 2005 +0000
@@ -6246,33 +6246,33 @@
 reserve for the left marginal area.  Optional third arg RIGHT-WIDTH
 does the same for the right marginal area.  A nil width parameter
 means no margin.  */)
-     (window, left, right)
-     Lisp_Object window, left, right;
+     (window, left_width, right_width)
+     Lisp_Object window, left_width, right_width;
 {
   struct window *w = decode_window (window);
 
   /* Translate negative or zero widths to nil.
      Margins that are too wide have to be checked elsewhere.  */
 
-  if (!NILP (left))
+  if (!NILP (left_width))
     {
-      CHECK_NUMBER (left);
-      if (XINT (left) <= 0)
-	left = Qnil;
+      CHECK_NUMBER (left_width);
+      if (XINT (left_width) <= 0)
+	left_width = Qnil;
     }
 
-  if (!NILP (right))
+  if (!NILP (right_width))
     {
-      CHECK_NUMBER (right);
-      if (XINT (right) <= 0)
-	right = Qnil;
+      CHECK_NUMBER (right_width);
+      if (XINT (right_width) <= 0)
+	right_width = Qnil;
     }
 
-  if (!EQ (w->left_margin_cols, left)
-      || !EQ (w->right_margin_cols, right))
+  if (!EQ (w->left_margin_cols, left_width)
+      || !EQ (w->right_margin_cols, right_width))
     {
-      w->left_margin_cols = left;
-      w->right_margin_cols = right;
+      w->left_margin_cols = left_width;
+      w->right_margin_cols = right_width;
 
       adjust_window_margins (w);
 
@@ -6317,22 +6317,22 @@
 If optional fourth arg OUTSIDE-MARGINS is non-nil, draw the fringes
 outside of the display margins.  By default, fringes are drawn between
 display marginal areas and the text area.  */)
-     (window, left, right, outside_margins)
-     Lisp_Object window, left, right, outside_margins;
+     (window, left_width, right_width, outside_margins)
+     Lisp_Object window, left_width, right_width, outside_margins;
 {
   struct window *w = decode_window (window);
 
-  if (!NILP (left))
-    CHECK_NATNUM (left);
-  if (!NILP (right))
-    CHECK_NATNUM (right);
-
-  if (!EQ (w->left_fringe_width, left)
-      || !EQ (w->right_fringe_width, right)
+  if (!NILP (left_width))
+    CHECK_NATNUM (left_width);
+  if (!NILP (right_width))
+    CHECK_NATNUM (right_width);
+
+  if (!EQ (w->left_fringe_width, left_width)
+      || !EQ (w->right_fringe_width, right_width)
       || !EQ (w->fringes_outside_margins, outside_margins))
     {
-      w->left_fringe_width = left;
-      w->right_fringe_width = right;
+      w->left_fringe_width = left_width;
+      w->right_fringe_width = right_width;
       w->fringes_outside_margins = outside_margins;
 
       adjust_window_margins (w);
--- a/src/xdisp.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/xdisp.c	Fri Jul 22 08:27:27 2005 +0000
@@ -5967,6 +5967,15 @@
 	     Moving an iterator without producing glyphs
  ***********************************************************************/
 
+/* Check if iterator is at a position corresponding to a valid buffer
+   position after some move_it_ call.  */
+
+#define IT_POS_VALID_AFTER_MOVE_P(it)			\
+  ((it)->method == GET_FROM_STRING			\
+   ? IT_STRING_CHARPOS (*it) == 0			\
+   : 1)
+
+
 /* Move iterator IT to a specified buffer or X position within one
    line on the display without producing glyphs.
 
@@ -6490,7 +6499,7 @@
       move_it_to (&it2, start_pos, -1, -1, it2.vpos + 1,
 		  MOVE_TO_POS | MOVE_TO_VPOS);
     }
-  while (it2.method != GET_FROM_BUFFER);
+  while (!IT_POS_VALID_AFTER_MOVE_P (&it2));
   xassert (IT_CHARPOS (*it) >= BEGV);
   it3 = it2;
 
@@ -6690,7 +6699,7 @@
   else if (dvpos > 0)
     {
       move_it_to (it, -1, -1, -1, it->vpos + dvpos, MOVE_TO_VPOS);
-      if (it->method != GET_FROM_BUFFER)
+      if (!IT_POS_VALID_AFTER_MOVE_P (it))
 	move_it_to (it, IT_CHARPOS (*it) + 1, -1, -1, -1, MOVE_TO_POS);
     }
   else
@@ -6712,13 +6721,13 @@
       reseat (it, it->current.pos, 1);
 
       /* Move further back if we end up in a string or an image.  */
-      while (it->method != GET_FROM_BUFFER)
+      while (!IT_POS_VALID_AFTER_MOVE_P (it))
 	{
 	  /* First try to move to start of display line.  */
 	  dvpos += it->vpos;
 	  move_it_vertically_backward (it, 0);
 	  dvpos -= it->vpos;
-	  if (it->method == GET_FROM_BUFFER)
+	  if (IT_POS_VALID_AFTER_MOVE_P (it))
 	    break;
 	  /* If start of line is still in string or image,
 	     move further back.  */
@@ -10182,7 +10191,9 @@
 	    (BUFFER_LOCAL_VALUEP (val)
 	     || SOME_BUFFER_LOCAL_VALUEP (val)))
 	&& XBUFFER_LOCAL_VALUE (val)->check_frame)
-      Fsymbol_value (sym);
+      /* Use find_symbol_value rather than Fsymbol_value
+	 to avoid an error if it is void.  */
+      find_symbol_value (sym);
 
   for (tail = XFRAME (old)->param_alist; CONSP (tail); tail = XCDR (tail))
     if (CONSP (XCAR (tail))
@@ -10193,7 +10204,7 @@
 	    (BUFFER_LOCAL_VALUEP (val)
 	     || SOME_BUFFER_LOCAL_VALUEP (val)))
 	&& XBUFFER_LOCAL_VALUE (val)->check_frame)
-      Fsymbol_value (sym);
+      find_symbol_value (sym);
 }
 
 
@@ -10267,6 +10278,16 @@
   ++redisplaying_p;
   specbind (Qinhibit_free_realized_faces, Qnil);
 
+  {
+    Lisp_Object tail, frame;
+
+    FOR_EACH_FRAME (tail, frame)
+      {
+	struct frame *f = XFRAME (frame);
+	f->already_hscrolled_p = 0;
+      }
+  }
+
  retry:
   pause = 0;
   reconsider_clip_changes (w, current_buffer);
@@ -10701,8 +10722,12 @@
 	      if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f))
 		{
 		  /* See if we have to hscroll.  */
-		  if (hscroll_windows (f->root_window))
-		    goto retry;
+		  if (!f->already_hscrolled_p)
+		    {
+		      f->already_hscrolled_p = 1;
+		      if (hscroll_windows (f->root_window))
+			goto retry;
+		    }
 
 		  /* Prevent various kinds of signals during display
 		     update.  stdio is not robust about handling
--- a/src/xfaces.c	Tue Jul 19 02:58:20 2005 +0000
+++ b/src/xfaces.c	Fri Jul 22 08:27:27 2005 +0000
@@ -783,8 +783,6 @@
 #ifdef MAC_OS
 /* Mac OS emulation of GCs */
 
-extern XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *);
-
 static INLINE GC
 x_create_gc (f, mask, xgcv)
      struct frame *f;
@@ -3988,7 +3986,7 @@
 DEFUN ("internal-lisp-face-p", Finternal_lisp_face_p,
        Sinternal_lisp_face_p, 1, 2, 0,
        doc: /* Return non-nil if FACE names a face.
-If optional second parameter FRAME is non-nil, check for the
+If optional second argument FRAME is non-nil, check for the
 existence of a frame-local face with name FACE on that frame.
 Otherwise check for the existence of a global face.  */)
      (face, frame)