changeset 83423:b64b7e867d0a

Merged from miles@gnu.org--gnu-2005 (patch 677) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-677 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-463
author Karoly Lorentey <lorentey@elte.hu>
date Mon, 26 Dec 2005 03:16:59 +0000
parents 1f5d64c4df6f (current diff) 38ade54b22bb (diff)
children e5cd70e447a8
files admin/FOR-RELEASE etc/TODO lisp/ChangeLog lisp/cus-start.el lisp/font-lock.el lisp/subr.el lisp/term/mac-win.el lispref/ChangeLog mac/makefile.MPW man/ChangeLog man/frames.texi src/coding.c src/coding.h src/fontset.c src/keyboard.c src/macterm.c src/macterm.h src/termhooks.h src/w32term.c src/xfns.c src/xmenu.c src/xselect.c
diffstat 113 files changed, 2000 insertions(+), 1440 deletions(-) [+]
line wrap: on
line diff
--- a/admin/FOR-RELEASE	Mon Dec 26 02:21:31 2005 +0000
+++ b/admin/FOR-RELEASE	Mon Dec 26 03:16:59 2005 +0000
@@ -50,8 +50,6 @@
 
 * BUGS
 
-** circle-printing bug from Stephen Berman; see my 5 Dec message.
-
 ** Ronan Keryell's Sep 23 bug about "tramp sudo:: and version control on RCS"
 
 ** TCP server processes do not work on Windows.
@@ -66,65 +64,6 @@
 ** Add a node to the Lisp manual describing key sequences from the
 Lisp point of view.
 
-** Fix some of these doc strings by adding \\<keymap-name> where needed.
-
-ada-mode
-array-mode
-artist-mode
-autoarg-mode
-bibtext-mode
-bookmark-bmenu-other-window-with-mouse
-checkdoc-minor-mode
-constrain-to-field
-copy-file
-decipher-mode
-define-generic-mode
-define-ibuffer-op
-diff-mode
-dired-maybe-insert-subdir
-ediff-merge-buffers-with-ancestor
-ediff-merge-directories-with-ancestor
-ediff-merge-directory-revisions-with-ancestor
-edir-merge-revisions-with-ancestor
-edirs-merge-with-ancestor
-edit-picture
-ethio-fidel-to-sera-mail-or-marker
-ethio-sera-to-fidel-mail-or-marker
-face-attribute-specified-or
-face-equal
-flyspell-mode
-hexl-mode
-hi-lock-mode
-ibuffer
-ido-find-file
-internal-lisp-face-equal-p
-isearch-forward
-kmacro-start-macro
-kmacro-start-macro-or-insert-counter
-make-byte-code
-mh-user-agent-compose
-next-single-char-property-change
-octave-mode
-outline-mode
-pascal-mode
-picture-mode
-previous-single-char-property-change
-python-mode
-read-from-minibuffer
-read-key-sequence
-read-key-sequence-vector
-reftex-index-phrases-mode
-reftex-mode
-rmail-mode
-sh-mode
-shell-script-mode
-solar-equinoxes-solstices
-table-capture
-table-insert
-table-split-cell-horizontally
-view-mode
-w32-shell-dos-semantics
-
 ** Check man/info.texi.
 
 ** Add missing years in copyright notices of all files.
@@ -135,7 +74,7 @@
 DIRECTORY		STATUS		IN CHARGE
 ---------		------		---------
 etc (and subdirs)	done		Thien-Thi Nguyen (ttn(@gnu.org))
-leim			working		Kenichi Handa
+leim			done		Kenichi Handa
 lib-src			done		ttn
 lisp			done		ttn
 lisp/calc		done		ttn
@@ -236,7 +175,7 @@
 lispref/commands.texi    "Luc Teirlinck"   Chong Yidong
 lispref/compile.texi     "Luc Teirlinck"   Chong Yidong
 lispref/control.texi     "Luc Teirlinck"   Chong Yidong
-lispref/customize.texi   Chong Yidong
+lispref/customize.texi   Chong Yidong      "Luc Teirlinck"
 lispref/debugging.texi   Joakim Verona <joakim@verona.se>   Lute Kamstra
 lispref/display.texi     Chong Yidong
 lispref/edebug.texi      Chong Yidong      "Luc Teirlinck"
--- a/etc/TODO	Mon Dec 26 02:21:31 2005 +0000
+++ b/etc/TODO	Mon Dec 26 03:16:59 2005 +0000
@@ -52,11 +52,13 @@
 ** In Emacs Info, examples of using Customize should be clickable
    and they should create Custom buffers.
 
+** The toolbar should show keyboard equivalents in its tooltips.
+
 * Important features:
 
 ** Provide user-friendly ways to list all available font families,
-   list fonts, display a font as a sample, etc.  [fx looked at
-  multilingual font selection for Unicode-based Emacs 23.]
+   list fonts, display a font as a sample, etc.  [fx is looking at
+  multilingual font selection for the Unicode branch of Emacs.]
 
 ** Rewrite the face code to be simpler, clearer and faster.
 
@@ -89,10 +91,6 @@
    same value of this property.
 *** Discretionary hyphens that are not visible when they are at end of line.
 
-** Make movemail work with IMAP.
-  movemail from GNU mailutils does that, so switching to it will solve
-  the issue.
-
 ** Internationalize Emacs's messages.
 
 ** Install mmc@maruska.dyndns.org's no-flicker change.
@@ -270,16 +268,6 @@
   ignoring X resources (Doze equivalents?) and most of the
   environment.  What should not be ignored needs consideration.
 
-** Enhance locale handling:  handle language, territory and charset
-  orthogonally and de-emphasize language environments.  Use the locale
-  to set up more things, such as fontsets, the default Ispell
-  dictionary, diary format, calendar holidays and display, quoting
-  characters and phrase boundaries, sentence endings, collation for
-  sorting (at least for unicodes), HTTP Accept-language, patterns for
-  directory listings and compilation messages, yes-or-no replies,
-  common menu items when the toolkit supports it ...  `locale-info'
-  needs extending for LC_COLLATE &c.  [fx started on this.]
-
 ** Improve the GC (generational, incremental).  (We may be able to use
   the Boehm collector.)  [See the Boehm-GC branch in CVS for work on
   this.]
@@ -398,6 +386,16 @@
   are also put in utf-8 lang. env.  In such a case, it is
   better to use Japanese lang. env. but prefer utf-8 coding system.
 
+** Enhance locale handling:  handle language, territory and charset
+  orthogonally and de-emphasize language environments.  Use the locale
+  to set up more things, such as fontsets, the default Ispell
+  dictionary, diary format, calendar holidays and display, quoting
+  characters and phrase boundaries, sentence endings, collation for
+  sorting (at least for unicodes), HTTP Accept-language, patterns for
+  directory listings and compilation messages, yes-or-no replies,
+  common menu items when the toolkit supports it ...  `locale-info'
+  needs extending for LC_COLLATE &c.  [fx started on this.]
+
 ** Eliminate the current restriction on header printing by ps-print.
   Currently, a header can contain only single 1-byte charset in
   addition to ASCII.
--- a/etc/orgcard.ps	Mon Dec 26 02:21:31 2005 +0000
+++ b/etc/orgcard.ps	Mon Dec 26 03:16:59 2005 +0000
@@ -10,7 +10,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi
 %DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2005.12.16:1527
+%DVIPSSource:  TeX output 2005.12.20:0859
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -352,204 +352,208 @@
 CCBD1F58ABBF1F53AD21E3BFF25EEEB046F66A924E5F431EBD7228050BE2DF43
 0B9B538DAAD511EED97630CD9A9C05CC49DC251325A93EA842C6D07B44BE620F
 08E66B611F54314B0177E299304F2294F8DEDE9914736944F125A50B5007373E
-588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C1
-3A6757674B84D9B585F981DDFFB42163EADF90346248E014A74E3FB3E6276FC1
-B4289FCDB4FDBE9C70CAF38E410965A3610F649DF8F81C73B87FBE27D44A3CA6
-D7883821CA22795E3EED184F4F59AC687AC06DC4DE7FD098E0EA61C494A5E960
-643D78025B1D18B4B7FBACCE2DEA453E35C08A6AC093F45FA0B1DE132F743CBA
-75F2E7BE0311132C0E63C69D5182B98AEFC610F61D1E1EA51120D8A9F5DFFA8C
-37C0ECCA2120E1DF7A551343BD7573FA24144A8D59CA684FF9FCC1E023A3401E
-9797D658E92CED2255A273E429FAF43B0355E27EC83974BA4675520B2DC70DDA
-DF783452C679BB77759479CB02FF3377BCCD8580E3D87D34CD579AA3F89AAB44
-E526EE761B0D371E27B5A02A5C494C5169651FA79795D332045B3E7F2CA100FA
-FA8ADA74DCA851DA1BC7531E58EE08FC22F2F35E94D5DA013A4C9669B2825D26
-021982566B4347E518E82602B0CE5CBA1CD38E8B3CEBBFDF9E9811C896313F37
-51D5F7162441E4B2DF18A7A34326114950BE85B3E5AB465D54652575AAC03DF3
-E50E9FE8D184D33534E12AB92DF20BD72DC129A86CCC24981FF82E297D0B0F9E
-0B66137443B501B5FA711C7DF380DB1F64404DA241D1EF5F2D012A0293405302
-F828BF879F46962DFAF75F44D4A394DB9D42E4874477097FF6F8DB9BC8712BC8
-661A95A2467073355FE697CBE1D8E298569935E5405C22555C40DB775A808F54
-642939D8E4F76C61B2FE966F4FB55319873127C8EEB05732A1538FE03EC2D8CB
-9089DE328A396DAB3908179FEA2FC3F2ECC48593049FD23114A04B474FF4FBED
-4D3B8835148CCB742574F4914B7201CE41A57A42EF61099509E5C42B744611C2
-B40581A6BCF6FA223E5B5221B8BB16AC6EEE3774130E121F23A04E1548F58899
-41C9DD31E720AE7392E4E2CE0ED4B691620CDB0228D3BEE1F4AF4112241C74E5
-89C40027D8F25369B8F8815BB2403AD0E662895788B884C37D5746AFB596D64C
-91C4B4AC3B860C089DBC08719251578B4AEABE5119CE4A5BF7BE0FC5847A7BE2
-82EE4F04FE7F67A4B02B73B1E6D69803B856FFF88BBCDC4BDE933DA0090E3D24
-5E9F11C18394EB1A69A8C648793D729B3C76FCD4817F0452A3CFE4B47DDFCA2E
-8A7987C7AC0C5CDC51D42A0AC709201FC4858488389FD39C0F14E68C9E8E918F
-2EA7CDA76FF8E950004610903FCCB3BB4523F508016865C0F3DC87ACC363CA71
-981A1B75907A3348D8C35E867AAB1E024F02C1194664E2E4A8354A37C872726B
-B6D473C2FC1907459E9AB67A223242E9F340DD0AA85370070865311AA1AF3E69
-BC3C286D23125C8001AC764125DA2A007EDFCAFC23AC17047F115039CFF7719D
-172A2976B25175FF34BED0486DAC13B3960F7C82B3F40179C0ABE42BA0DCFD22
-E82E6B47087D860E7C001B9C77BE65354EED91B802E16E308E0EB449449BBA69
-BF82461F824006BA23E5DEFD08AD630382AD24F5820240CF266B524629119A9E
-568FBAE62F7DCA9A8E038CC470C3D40F5A28154F71D49CF3376F12B35BDB5103
-43CB5A77CC06D6E6568793DBE6F2F5E790C4C61ADD771886C32B343F770EB898
-ABE5830F10E08855F2E3710BA7A7611BAE785B16A17C7C3E96949BE7E952960C
-55F85782937576D319FBC8D015F278B33191D444020510CC857B80AB9D2CBDE8
-A097E47F522EBD31BFC07E5D62E11349E52EC30D934277F52E627F01229CF3A1
-3150AFBF3A47521D33F6060FAB19F3D5E572DE196E4B9D6B07C7DA1130CBA29F
-C20E18E63979ED97F7CA6D4A0D5E35AB480DE427A3C7D98189E39650F062BB0E
-B603F8C4276237F4EF1A117AF66616DA4394969FD32C9487BCD3BB8956CB261D
-A7B6822762ED2CAE7EF809021DF732143796A0A220A43ACB23CD8D019A63BA65
-3900405988F03B4847BECDC0BF96E6F9DF339A32ABFAA8C7DE02978CA89DD3F8
-22852CBC2A1A339E5E5928BB1F6589EA13F66D07C38AEBE44361DEBC8D529B5E
-E05EE01DB98F53E40A15A5C524C87F2A3F2238AEC054295217406B5569D0D183
-9102E7B4F63FF0599B1E2F4D4B375FBD84EE0792191AF7E6DA7AB1208F422807
-DF6A76606542430AA6A8CB8103B6C2AED2981C3C32932DCDA258C2A4EE6726BD
-546DED3A25D153322A907256E3D47AC6DBD030A4950572B5D092BB7BF44BF296
-3D2558F21F2D02076D1FAC2B0C3055A32127C56CAACF3ED83389B97F5CF85B99
-13F17A8D568A24FCFD3A67D77BC302C2C3BE864D828F82B1C0266DEEF26797BF
-2BB0BCE4A90C9BC5936576CD13A3FC68A3E77F1496D64E35DAEA8B7034A4AEED
-77DC6F2489AE7C5061C6D26D132D640B16A8597AD76B4A10F1F6CAF0D3D03488
-1D43FA6517E4E3403B9B5DE190233A21638203BF1E26B4141ADCB720F6CF0DAC
-BA2797A763D3CCC235BD8E824F76D7DAD10EE1D81062A15BFDDD2597AFFA9785
-38ED014803582AC7174DD9A3CEFF6B1853861BC26490C565D06BD40FF2574232
-A037F6CBEE39D142B732D76C5D3AA9ED356DB3F32CE17485E0685D25228D04B0
-9ACACF2F45AA22B06C885AEE6B688A4413F78480B2514C9D8F0C0FDC1CCEA424
-055EA4F21C58C11EEF35D93BF4FF5CD6CE5F6D5086EDECE08A204603D21AA55E
-3BC356F129216C45DB39DF5D073E034DBEB3D9FD3B6F3FC1DC36DE953B614541
-85865A1FA68CE5F33609C13B34A6D61E415631B863FD8241B7B648A926AB4B4B
-BB36F77618030F0F12CA2791A8DF77CEB70B3D20213774FA778B15764AAD214B
-38B949DA9E1BD3CA9F35CBA1B5C165C8E7808B054A8DD3DA4EB734BB6BCE9BDF
-E26FE758C8663F0C0A038BAAD033DC61D5951386D0CEFC4953DB117A32B3E7EA
-2C314B62654F2AB0CF5CDA47DBD398A0B24F68BE7E96F5A1E13997AE9DEA4767
-06E767E97559883FFAF99DD954BD92E077B70BDFBE7EB412F97E6D5EB850BBBE
-614C94A47E0110E17945EBBD89514A0F466A491A553D2A1F4E45DDA45BD7E242
-71F72A3BFF7B816205E7E9070EBF97BDDBD69D6C7BE8195A80EF00A450BDBE22
-DF2DC92689803A21A6069F9FD0EE1D21B1DAD0036B750D80F4C27847E49052AB
-6CE3AC50933D6ABD597A77F608F681AE3204AC5EA90DF8D94D0732A9CD36E186
-00B3FCB742A1219D124F64178DECF64E9477417A5768F7A35273785626C75F06
-29E8F8609574D3B1D11DAA5C31D971C5CB4F008A07A50EC88EC3A6BA7BE34FEA
-BD13C6E4297C54A68D77D93F1D864D07D46DA3099E783C10F2A1409782A7D358
-D2FAE601C33EE893769753A996F9C533584A6DA1016D024E3D1A4795EC82E718
-A969E496C1768E2D109A03F19E109F26E2A7330436D63466BBF722D5DFED0C6E
-32727F1C909C7D904BDF80893366E07A3F50D50B3CEAD62CA5BE7BAA499793F2
-8D31619270E1013BB8593F12933C32F1FF25939D04C863B9C13A9681CDB0FC97
-09D987D476B87143F16C6CC687C073E11A7AA9AF508EFF714367E6371F61D88D
-C48685A861A2CE5876781D9E67EE1AE407A4583C0F787BCEF96FA3AD6ACD7240
-0313B2712601C71C3A3B4AA2FF1C6450C83311823F59005EB1F533A9686F575E
-10A2F86FAAEE062476FB0F25B8A076568785FCE5C807F6AE452193E030CE4673
-582549A4A79C62A4A9D881FE893BBBA0DB9D101E3ED230603AA987AF453DFB54
-4A9C5A6AFA92F8FA0E9C649BA8791106C9EB84EE57F85E710D5C75BA3F50BFA2
-48C3DB83E7CFF4663B53A1225FFB08F8A73768EFA641255A1F0F2400C901EB07
-E3605CFFC5CDDFDA6F32FB05F1E334FCAD07D6F7C5510C3FE556B598C9576B6E
-8BAC48BA0E8ACEDD0437225EFC7617336D96AD13853FC2C14872DBF3F59041ED
-D94EF2FD18DB0BC4E0B2EDF8374A04CFC77FFAF95CDEE4A6F350D5FAB91BAE8D
-D3BEA0CD0A5CFE82868FA6B9FF1D824B084C664F2FFA69C59D69786966764EDF
-11E12F692EA4F9AEFB94BA8F7124E0A54B40A27B5EFD3F333FDBFE1823BF5687
-3E2A7D9828E58EEB412AC9922804E470E449F7AF100C8846DBAFE581DB3D1EF2
-603144A62AAFA7DF9FC925FC10922FD9264C626B83D0F72EE045D831D64A3ADF
-8C89E4571C97F1D90FE910FD633932EFDBB93D72CDCE970DDDE89DE05074AE47
-7322CC2CED801E4AC068CF0900F2C89908B03A79953B640C2995C37CDFC719AC
-E1666F7C33B047F86A1D8002DFD34F544DBFDFC8E8895CF7B76BFE065C2DCD65
-77C63FF35E1603053E839D4E586BD3D836B8F3607A80126FA4A7220BED2A81A8
-A536224F9A82B912FE4D04F2552ECF52D8DE6C756A48F9AA1846EED1C7EAB7D5
-FB3D6CF1B5B9F5B5622AAA0EC8ADFF7B648FC7A8E583984839E02CA462971C3B
-88BA639FAE7ABC0A73FAA490C92188981045BA68705C66DB5FAEB10CC8B831DD
-45AD8677682EFEDCC0F04C09A9AF365BD8538978FA47ABA7DECD6E30FD770D9F
-7D19A1FA0C0D126491F20B0584E6E02806DD56CA4F04282549E112AD77619DB0
-536D2695EFAFFEAEEF20360DD93B404A8626DD27CB904B306151845F8E649C9E
-93421279160215EE7A3B275E5AE99F2D4C8540609DBB9B4D084CB93817E8090D
-C38B0755DFFDD48B03F15847250C3B0F0D1FF0CB8D2B08A86D6755780A7F244E
-04E74A3A7F65BA429A35CE856CD858E0E1D28B93650FBCF8B68BF45D5CBB79C5
-B8F147BB12CEB2B198044576D54DCA1E5900C478C714E35816C6C72F49A7B7EC
-52F8021E4A52938403DA93EC8766717B7AFF436EA6CE0AEA5B53DD1593BD4C0B
-A1C69EDB97F09FAB01DDF697CC803F2E0C828376FDB779A7A14D90BFA27064BF
-9F76EDAD9159D3687AC5290E3AA97FA85B7E2D6D9A93D453EDE90A3DF2F76D45
-2878AA74C3BF40268C7BE7F17BCCB0F45C5F135076188EDC12BD22022A391390
-6D8C4AE077EAEB4FBB0A7D4CC57435D0BD5B2C96058D7F09F14E1EADFFF53D9E
-277BF06C1AD687AD2ADF9E8E3DA035375E5A1E2191273C22498308A3F3451FA4
-8F9694F3C459101CF5A57AE16EFA685DB852B3CAE3A8EB49ECC55EC76948BEBA
-AFBD31AE0E475986319CC070F83E5419877E90449385EFD6085FDE79F762C2FA
-8B7FA109126EB97BF1714D1FF975C0ADE725846556E6AA0F8CAEF200D5EE897B
-EE3F73DD0EE5E506B17E562F173A13F01C7A35E9B87A72403E39884ECBA55A54
-18E98868F7D61512299A63103F5ECF110F7DA4D03E0B993438037DD8E93D6C9D
-FD36435A7625BB47CCBD58506441D07FE1A4A0B0EC8EC80DAD4DAD8CCF11FCCC
-D7DEE863D8BDBB2AF8BE49FD5F3A2A0169C7E9153BA07584629114BA1C0AF127
-F8BECCC41D7CA8F91BDFD4793D2F659452671DECC917E219A63457DF50AE0E0F
-A86B21E595210BCE3276DF47A623FDCFE1520BE11CE1A14DC590F6DAB1396A30
-EC8790FC9E59915B52B2773F96D5ED0226F8DE7E480C491BF6AFFC3AC48625A6
-8F6DBEDBABF203DC6970C1FF4A99F11EE2CD0BE08A5E55D7582A02E8E790E96A
-D1D4D9905CF1233210E607D880DBE8101EE6E00BFEFE369DE911C533D9C5A4DE
-727468362CBAB14B33F9791F38B684748BDFC163BE9A859CDB8544F0D39E98B2
-37C237DC3D7B960594D2E5126A22CCBC46080D8DBA29C56754C9D87ACED4D3AC
-D0F4EC087D3EE26AF22132923B392B101F38F9FB5287DD80B014215F488F7BEE
-3644506279AE1377BBD54631803B4906A8938149C2621D93ED30E0AC2A45FD6E
-0BC9880E98922C5AF11631B0CC3FAA8ADE80DD9204090DDB4533E8E84A920100
-1182C2D8A97A202A218BD1FA04370470F43E25DEA8E19E9B0F7CF346BD3FC1D4
-81A3CC42730846515831C6FDB94FCF6C4F557D20986D0446B5F0913C7EE13822
-F1458CFE602926A62D58D35693C43C916AC10AFAFCF6337C52C12A32A076DEA8
-7E880CD509D160CD80E0CA05F6DA3E50EC5ABD0CF1F1CF725B0E07757B789FA4
-83B1C943B039146494101AA9873BB8AC097AF8A1C8664DA5A5A6523FFA705E4B
-CCBD20A60264C16F2A7AB67CB2D13BE8114BA90DE976A2762B9A1526643A3686
-08A6693B967C614638A6AAF50FBBA847FD311A50276660C0E6E29B57981909D8
-424589E0C602293053C2BE6A56CF51BB1FBE97A3BB9B1C7C845DD3304D812507
-8FB9D7837593DD0051B5F6EEC11AA80888D247982AE871C4D665F646C216BEB9
-2666546D6FDD4CDD68924259109AE202A79F9E317B7DA63CB83DC8058C99898A
-75077910E0A42A1B7EE0E8C6723CF6098EDFA7523776A28D985FC8C46F412EAE
-E1F8DAFB90E75B2EAD5D166B03C099EC19DE18BBED2205C21924A6E2E72272CC
-C61EB27336E3C5A0848F9845A15873BFEAF4ED8E46D7D1E53641A7C8C83B3314
-6D8D7CAD912E08DCF730A260F1B6A9874B128A9F4E462F028DDE01677069BA70
-85751970D15A28006928FD882041684AB99E9DF145ECE51664477EBE16024C02
-AF4337CD06997B6D4C62808AF0974896FA2FEA86AA3B15235EA9D79FE96E6A7B
-3B6DFE839B9C0692BF6C2D216B1F7E06B70F6C848CA93B5F524C4FEBA16EFD86
-A17FC47FE825F00DCE060D1557CF3A60254143E178EBD0462AADA68F6A23FD14
-3E91D6EDD3CC038AE4E7FC74D3A7D198AF912F61F84F44CA7B21DD1004B2FE6F
-202D720AFDCFD70868FD70C0EF5B40E2BAD782EA73C1305961A572955A0CF859
-2AD779B170CDCD54FDD5061E5967BB4E62856C7757BFB5F4D52344BB8EFFE87F
-9FCBCF9DB6CF9EB008CC37695829E2738A04E6D20E16F7F42BA61422D0BC8301
-9879E2D784FC263A9FE0C4B0F95FB29E919155F787C885DDBD1F18AB49EB3A12
-A1A1A34A389673F41C08490E463883EF637429F094B6013F502AFC084DBFA90B
-EE7E8561569D714938F8EDAAAC4339583EA908BFECBF86F56AF4E5BA1D4DCF51
-ACD61EB7FDC8957A0D2485313EEDFFEBED52F519A6C4ABF72AF5EB3EF7813FE9
-5B04D4D4ACF29C3256E2DE77A752B16F905DA2F0E744C587FF36B3E4DF350095
-0C780F7BC60FEFB63B1BF86EC400416A28DDD5460E3D202FECC45A723CAB6D53
-06FD4BA81441B7D8C254F66CD65446924BE54FEB728A78D5776E8A4AF107B75B
-D983E3869D745380B7A4904EBB1A9E31410AD52A1337518DD33D9ED47D662BBC
-02E293A64D6E4A464EC44AC5EF6FE0BDE53343479928769706D728695E112D85
-522334A6369D4B5BCDF411E01F8462768A73EC1A1EC0EBBF2AB6D6F93FABACAB
-DF5202AADDC2E940EED9AB910801EF95DDA016A3DB26621CAB2EE249A540BEC8
-2A95B709DC31F890C82D225E1AC504F74805F663EB4322FDA91EFB556695031A
-D65904BAD452B494F6868F2894C4AA3CB8A9F44571FBFDD2B48A331070CB7191
-12B6022A8470E7860589DF6D594D62C88DF7D70FBD19FECDA8681F7C51161D2E
-572A100D0B29B3F128AA94B195A41F51DADFF704147E97734E12D09C0E00C375
-74D22B509E9B28AFAB9892D48F8B0AEF0C64E765EB3457C0E7CB8ED7872C6C88
-B0079087C8DA629AFA529AAE62267823F7A7C264BA93AEDE105E8382C4A79413
-12DFA7ADCDCC1A22B722CD23BECAEC2DAA329C8D3D261E6721457AE4D1996F9D
-3EF8E9569BC4CDEEFBEAC527C5EE02DBF60C3A5E823CD314862965ACA30B0066
-F69A82B6AF6F4D4FE3364DBE0140CBF62A643550E2C113D52C8ADD97B4CD7B45
-F30365D65478481714B3B35CBD7A90070B2FEDF4BAE6B6E9AA4EEF2415DDAB03
-DD90678CAFEF588BF92270C58BC46C3321921A900626287706575A7F755672AD
-1AA6F7015479E26F0FCD3E4CD4F790CE7AEA1765CC4C5960B0F548885C2FC6C4
-F23E0BF2473AFBFCA4ED207456BE63C765B407951A68399F2DA59C1E3F2E6CA4
-8BC2CAEF5AA0A046AAE9414A43DB889881A8C6F3EAB6EDFEABB29F9105147F0B
-A9069B65827F2BB5A7A3DAC2803B279F2162354923CAC770CB915162693B4069
-AAD063253F9325ADE55BFA94CEFDF62D6AE0965AB35BFFF883589FDAA53EA0A5
-465BBCF81595BD1D299778B7D5EDF4052E86251081E132AEBE53E7F6374F2739
-702A14FEE9BFB3D374761E62F9043B24DF318F8C78E789AD3299F97113E409E9
-2F092C72B814CA79D1BECDEB2AAA1B8CB85B75B2CA6FB4E882AC118588CFCFB6
-2D1CDE698B9BF277F6ACB296871771A225BF812BA3B3151555BDB5362B1F0F59
-997D295FF00EADBCC528AD6233296DD472013B8190417DF6CCA0A87AFDBAB090
-A4E40383A6D5FD5822313907F710C9F1C844A3CA5FCC568B6F43B38F772480BA
-BC64CB822CDE771AE4C9F58CD7F30C31E3DFD21853F9DEFB3F5DE7EA5D1376AF
-A6D7DE67B57406C36D2087EA224DDD2526E76640E0ED66426BEA8B26A45AD00B
-D89F9D68CE088408D0CD9F56B33BFF120CCC9FFF0F7A4EBFFAEE09D1DF06CD2E
-A3720CC3236B28AC3F0F0F74B5BEE74A8F452722B25D4E629DD97F01B829A7FC
-1F83D10AAB3D64782C3ABDD32F98CFA8DFA66CCAD02CD69D68E5EE364F327128
-C25E0D860ABA76CABBBF3981F113EC2E54B7A5E829FAA2EFD526BDB6726F9469
-D7BF91B3DF4BBFB61F8FCBBB322AC4C7DB15BF531BAA97E3CB808CF400785D95
-11552504FE80410C0B5B30FE31481DB159EBC4FC40EB6F5C098F5D9001A76B78
-013675B443F3E9D3F1EA30097F01823A2A07C92CE535FF8DF4B1AFFABA291E70
-539A73904631054F9EA220B6206A4F2CF3DC909BC5F3E49035FD391529ED1555
-ACBD25AD0209A7600F05F6E0C7A23509B936A01C40B04F64F7085292468CA32A
-DAA568A3AA4C798FFBF122D476FC954F551D9F7AA995939AD401774CF4A217D5
-954556B69BF9AA15962CA3A266C6DC34FE7F21232E07A450EC6E7FDA40C6BC34
-D15E52A2130A321BAC0437C0AE6CEFD3413D19AB436DFD6178D434C759150ED2
-23FCF3F9D2AA7351DA3E841A5BE2CDC0208F69032F04BB157A79A668DCAF6A
+588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C2
+C87A1A169C5ADE44B561EC1660E617FB39D1B1547B33C0FEB33C3A1D7340A62A
+CD9CEFA49481F19B39A704A53A0B98A11744143CDDA0E668E6325935C6497A9F
+AFF471194932AFECBF25B441AD55A43751FBAB76F3E544C4254AEC4BEB5CFE4C
+C1318C3A0FAD0E8C1BABEE20B203E1DD9412E66BC55BEBD6FBBEBA84F56604FD
+85D50F733D9794611F4137EC10ACB4C4ECA5A81CAACC45213E92ED3C26726BBE
+91430E7633A2BDB8EA3D0C55259D7DBE468AC0964A63728C9B8EA4E15CF0EEA3
+2E754B9170EAE6B8818DCCDDAD643B9F6C91C3C5B245CD442358C60AF390DC76
+342E659D4EC45552626F069F346F46B18062CE26D5912336C6B29FCBFA5C3113
+ED86E44B529CD95B7B5B934D899762C4F3457F56ACCC763BCCD5BD08975EB5F1
+C5216DA4CBF3409EC71054B0145183F7DFB31517D199EB16D4C6DB0AF05E5720
+10B06F395BE3C8C59CEEBCEA1E00F9EA3FD880AC197508CEC11E33B6B6EABE3C
+0FAEBF246743F62D280875D052656696AA88DABB918F793CB2994A1ACCFA0CAE
+AF6FDDF489109DEF07F93B5B0078FC5FD9829DD296F62F23400F5DD6CB096557
+EDA737413C744FDBB0615BD40A79EA2929EB7AC767E58D886B310700733D2895
+3925911133631F28291974294AACF4A35F92A5E5262DCF33810A6F9C51E9D141
+F84B0C26B5ADECB44B646C79DD1C656529B7122739C0459B2B47A2C357EF9A36
+2B376DDF54F1F4F133419EF14CCC6010D360DFA8A7B122FFC5A4C560ED184F16
+057D3F76B6B2E935B31B17FC4066916FFBA0B9AFF287D251985AB3FC3D0D7E9A
+91F094356B3D6CDBCB2D74A3FDE23526B22C223EA35C9E5054053B23AF004324
+80F023FCDFDFA6B8F0E03A799D87FC2690C5D1ABB9C52B03402E37309091A1FC
+1D66EB5A75DAE988DA5E35B8E67BB084DC7E327BAA29BAA9EC60B63402DCBB4C
+C8FD3B7085ECDF029AEC6D080B62195A6C917CE9A900D02BDA73002650A8B802
+491C6D31EAB59795664FBEA51FD8529AF2384996D55F545DEA08F50E33951BAB
+BE953410B5C59904F4EDEFBB625B23FDE1CFD8222E30E14502D3FE19E37B7113
+190B7758414E048DC1F00ACFCAD4FD2A2E802E0BAF0565535698728E09E90E0D
+C5C8727764E70231D0B2D35317396B7A18F0B7125E2A79DD14F55293D7F0C162
+63F981C32F6DFC5613CC640DC32C14DADADE08E1AD23517C92715CF56A067E4F
+CD64DD84FC5074FBC6332AD5252B6A1CD9F6D0B79D957EBCEFAF348F69FD005A
+0D9988EA2CA91FBFDF72875C90BEEB2C3077858924B963BB54BC078DCEDF4DE5
+AE3AA2EB548FD9DED0B10EF502384E8D0A5D21DA465B564EB2C5D90528133EA2
+162016087ED07369D8EFF5006E0A4E31DF616851F387B4C3987A5101BB478B59
+97A1283A44C77586B2043C78356C5F9199A5DC8228BA6752D6F87AA49180A117
+C44E4E37F9CCFB8801824886A3BB8B45C09C4C3EF6F84D1A792F931142D4D92A
+4AFE82C564A28974AFEB8EBB07F08B2D35686554D4FDE904816AD5216DD9E50E
+594734194EF111F052C64F9EB5D9F643125847C386C3270D72D390F95ACCA259
+163390180BABABCD514E5B62AEDA79047D3D501F04E65D6F7746E6E65B842EE7
+0B45D8177B9155B3A3719B6054F92FC2EA9E9A17CFF146234BFEA708BA65C81B
+ABA8DF53CF17730D838099A5B00B29AEA31B6E59BDCC184A6BB91C3D38E37E86
+A5274FCEE9CE46EA1629A10490C136B03FCBF4ED56EE9BE8E2C7047320CF375F
+AA345383EE934DF28971CFAFC24F155546E24C399A5E91E5B7FBB127C7594718
+05CBE48E093BF76265A2E3499BE07F2967EC5A1F1B71B2716CDBF21A3BBCCDFD
+750E5BDE0E7354EC9994F5F5934949EEC70E0F84450828D851F6A4507F299E14
+D5CF89AFBB0B136D6704C6ADA1DFA98812C38D55AF4DE4DEAC2DA2F1D97EC7BF
+0F08F2CCF3D994044A59957698C532E7E4DEBDE4E19339ACC10F9E51CD6AE95B
+F6EDCF24604AA1D0E4C32E20F4078ADB2A22BFA93BA0E182F612FD57F606105B
+30F669CC646D3F50C26F1108D06DE3C8388EF2713295B1546E72E79B17999964
+8A739D2B83144AD0D0763E4EBA6C140182DD8B48AA20BFBFFB34D105F4738E50
+056F56C95AFFCE0192CAAEE4A910560A3124ACF504051327DED441E5347AB4C8
+BA566D84961FA34CC0A96D3B60BCF2075416D89F8C653D552561004EC42715AD
+706DEC4842B3526C0134718C81EFD988A6A86BEBD58B66A1EEA6C8067521D43D
+F23C72788F4D325D083BFA68224E40606E5E1FFAFB57979E3E85F0E8CEC4059C
+630DDF5F8665F00D824C94292A5882B5320CF1143D6FFE9B3EABA993CB6438D9
+5D7817C144451672C84EC88B3C7BCE2F50DF72733FDCCB62861AC3FBCE509D63
+E7E55E7F8A92FB18751BFE1E9FA5597562E756FE93C76CE9E1F8C0E199E568C0
+913B5F2E13F37E64D40A48FAB264188F45A2BF24757A516A5F63D057684B9B98
+77080D5BCDA67AF263D060DD7C4A434D2B769BFE6666C3E543D2807EF64DA025
+4136E09C9208A5166346BF4BEDEA772B1939ED947C5F86EB056AFCAD57ACF6FE
+F9B314ADFB521DB4D555881AFBA0F0E8FDC010CD3D62E80A5E0E267DD8200D08
+044F8CA818F496FBDE6E28749CF7EB01EDE032B507BDA2EEB30AD4B052D838FF
+C03C91F9FF6EB370258C69C62464BE1A3F97D829989F38161B6E1BE8CB6CF03C
+70A899F129316B44DC1DFDD2EC395E565BE75262B01881593D1C746C8C3CE8C8
+86CF532DBC7545EB71FEFB0DDE02D41F0CBBCE397A3268ED38AC09FEFB447957
+EC3E378A2202546E6931F21A1E7530BE3523BDE30E131A9993F39CE17FDEE438
+853D1F3D57E45D91E8A4B930FC00420943E78C942D8458F0A1B1DFA6492F82F8
+60FCCC61C3489AB2711270A6CF28BE65DBA89499B243503FE69CD77224F3021F
+CE71A9FF70B1C43C88F8E42387461428A841D1DA38CB352079CC08B41131B404
+DC95786F4C74ACF1D2930228A40E168CF84B122AE41797496D603D95263F9948
+AD0BFC5C30D74D3F90C18DEF1C3BB0611EC24460FD4F966995F1AA234E8808DF
+BE2B6DE6AAE516228380443CF3AEE8D89533CF255AC2D0982FE663ACF360A2D3
+7B2F9E5AE9A3464137380675BAA98A93DF016E6347BBB474E28B5E399A4C8CDA
+95A3B9CEA9F666ECE9F41F3CE151E10B1D5F1DFED5CB72F5EF113EDA32377C22
+DD0B49EF1A7C504EA453647ECD2DE34ED0D3CB42EDDEA85F4D6A1454BDF42AD9
+CA45E910A2FD55F73CEF456F0083EB85F70B762A9F9A60682DDDCCD3258C5473
+F65EA74CD5FC2D564DE3FB61FFA65F03479DE6AFA0A622D35A085C0253DBF87B
+DC6B608A90987775F99DAB0AB986C4D434DED6F272E30620A47E8CA434FEAEBC
+AD761DEA4762FD36E8CDE681E24B11F7BE2334070C677F78932BFCF06B8165CA
+B4420AC4779852FBA083CF46A260C2211D7B43BC4A40290552F4ECC0A4F8B46B
+8ECB8D06145A6ADD646B26589FF6031FEAFCFA699948C6C5495010F3E9234789
+57812F71766F83E232FBAFF49229276737A386D977A69D1EE47D32652451D924
+4698E1549BF460605D185F972A85FC9705B2E5F1632F1E076E83C8C90E474B6D
+BFC6E4A0744333F04931D5303BF8763A3DD01C6450AB9EFCE3C30F0BE6830EA4
+C10550AFAD304C2F2469D6EE1EF8471A4B71E5C8DEB4269448F79A34951C3E8B
+B93E7AE0A35C0913878819687DB77AF56A2B52495F9CE51A8618F93470B446FF
+1A98159CCCF9F1B8E63F1CC8CC65A3FA89D5D1F2A33A15AF2D6D4A05B59D0571
+A307B8227B362E9AAAEAEC72EFEF780D50814DFC8176C2F4D764DB89011C1A45
+12E8FCACDD32AACAC1FA34EDA96D79CB94D00C9D034BD0932652A09AD0E71823
+87044876E7E4E6AD4EE60E9268DA89F9B74976D6AE73A7519E99BA07E3F713D3
+EB374CC6CE999ED0C8F2C6E7AFC86DB62CA067999CA3CF3493BDC8E0F14F8807
+3D6B78B69983DB7652E4D512CC2E2EAC2EFAB1D2B84294D0E6EFC0ED689E01E3
+3C964ECA7779953A2F253A75B3395E2307E250D49E2EB5BFE629457F4E123105
+A6277B0DE169C5A4A61C51A611378140A27883C4BB1EA002CD9869CE71E1EC62
+22DF61F5927CC11DDC33A475CBC32FB85E082719B1F49E33D887CF3488376E2C
+F7ABE7FEE41A29D1A18F766F78BF70C867A989F29A4F476DD7BF839AF76E88BD
+A77546053516551E1625F8C175C736CE531743F2A18F8E223A2F4CEBF0D44385
+18C0827521B66AFE490DE54DF202309629F978AE5D55ACE621DCDFEF8588C0B7
+C5CC4E369AA9DFC5D18A91FA8F41D8818E3EF939C6516D46FFFAE220CE014F85
+C6FBA21C6A85F68585FE84F4B1F5E58D8EA211CB4B845F51C02ED57F09E642EE
+F5CF7FF95563D88AABC474669B52D7311721C2A96C1C3FB084DE1D1EEEDE81E6
+723E85CB2F68A10772B0B5174848F5D80C4032805C66FE017F909E0963543131
+AA65592D6588BCDDA9EAAC04A2A5D61CFD913D8FE1F41F3DA45754DE58100369
+66F2A0EBEE5F4A020BC0DB5497036E47BBCBD862BCFAA69BCF44A26D6382AB23
+5ED978572CB0FBC849256FC5AF95D1FFBA1D1B886B4C118741D19831073460D0
+F1EF54AAF24B6E0F11F6285D882FC12758D27C5F10F7FDCE0705D3DE172407FA
+E66F64B21AD68F4B840688098EB612F934A3BCC77D795EAA42CE26A2DE9D3CC8
+FCFDF16226CC17B92A297E240D785E533C587F973F0AC7ADE63A46B742C14594
+F76173284FE76BBBF54F1EA746214AA8723E22AF100A61D0356F001247A68656
+0636B7C4664B9DC4D9E5D5CA61F13C24E02777B10D9150420B924CB2F82FA44B
+39347503C1CBADB7E7666DF511365D5779B9BB3E053691E83E01A9F1529A6939
+9C2EEA1EE2602F9B9E2013A8388AFC43D1468C62DC825D5810F3BCBD6C3461D0
+98265AD96C4AD4D3D7E9D2B8B2C5A12A75B075BEFADC6BDDA74BB8E5E06706CB
+F071192AA34AF71F1031BDA9A3C84537E9FF14DDF538FBDA52F9D9B902AC2663
+873505F5D96E75A4648F91507F6DF299CA90BD1DCE0B2C78229D47E000D06639
+668C4C4540B99F964662931D95809B57097F40B215DFF190E5FB9EFCCC4D6B8F
+BFFC303F106994AB90BF40FCE4AF1764B6961BF7F9C391ED4BABC67698E23532
+8625573193FC2B7DA4FF344B7EE53368A75D568ED9E9703AF41E747C2CCD93A2
+07939715066E0CF30012D44C4044B4537D75CC311FAA881E18CCF9D157F87AF3
+75924E8DF44280A3F35C20E7B6E577D602FB6D67EA43D6AF7F98354EAD72840B
+5DAA49E41FDF6ECBFA5D80B9FEF10E976B3BAE6974EFB494699D0C5A6606CD19
+9084E93C4D4C9C1C23B48B9EACD0AD34C17BABA64C01BE4A5DADFA505F086DEA
+D21A76AF639F8ED341458762C5E6E25FC190BED50808E748CE61FBA24D188FE9
+10D441A4774427F61A2F9FDCBAFB9FA701E4879AD0B3132E31313342C4301A3D
+D5698BC21F9943269F5B02B3E1511C8076F44D49AFE2D2E8F58F986C4F77D63B
+83A9F2DB2C40A49782D6399F9BFFB44F6B5AF4D3A6637D60CCF31067107CF836
+A4201362EDDA47DD22DB94D98F26044C4BCAE0B5E2C11D04E05FD418E7D543A8
+42425D0068291AFBA2E5A3F2417F279C4F7D3A2B65D7875A07293830D181C9B3
+1FCB23C9CD236E861C8A9B771E0F76638B6AF3B9030A594948A470715603EED1
+759279D519C1336D7A13D031076A7D600D475171CB888B48D93CAEBD0FC40657
+0430F5312CFD124B3A848A5A3E947E7F63655C58721B7BD400C2AF4124321C5B
+31A0F0D4F45FA1E381DBE391840CDBBFB4F1C8BEEDCDEF65DC6C76FE1FA153AE
+5D7AF7A637CD62F7B3E97AC58B3B4ED8751689E981C6324F6C5779A511AFB506
+D5032B8F08BD146DC32481EFD9B3A6F6B62A3F6E1ABAAFC914B7C99BED2C3F17
+0672B57C2062BA589A720341E5837DDFAEDCB938DD796B7101DC1D6C06381709
+C9B7BF8693ACA95B731423CA51DE111059D88C60108AEBA388BEF931C0765352
+667548B2BC583D71A76E9EB521F10EA096540F50B20B8C07EE205A8189EDE811
+0CE29F5B6728297575879950B3BD6435E2A7F8F39519107557F72702B3BD3A22
+0FBBCF6ECF5A467133360975F74B1E67BCD082F486E7712183EBE2BF41E25DBC
+33FE043AB4FD9596DE10B3994B839D0C1734C3D8B92992A35ABB839D6B6E7D49
+233A0E0A2203562FF3C55D03496AEF3E0D32ED8F565E3B6E73A3FBCB8D8DC0BD
+7D36A4EAA2086618657E6775E083187D6340CA5BABC2AA8605D4AC0184406B96
+EA9E53B257FE600663E9E8430AB874EE8DA594B4D5414FDC8B76B94376A16FE9
+E2B98A5F0FDE4BA0614A67AF83270347EBC98A5AC9B962171EC337BB711E65A8
+D2E0184AC041CBCCB109744487FF25045693A22DCEDEFF949972D66F15FF0D6B
+96294011AFAA11AB7AD70C573022779716AFC303E5689D194BA0A2B401933B77
+7077EE767B3CCAB29D3FED8050DE8563675FA600DCD1DAB01FFA69671C050E1E
+C94E850BF916143CB175F6532B8F16A24835A684490B3377BDAACA1B6D1FEDA8
+94FCCD0D9922F085B4277D4C8A737BAF5B83CA6EF22D8583B3773C53E07EFFA6
+7F4186DE5B6D8BADE173932D07A5E7E66349E1360ADAD3976B23F2EEE7F4AF16
+ABF1FB9EE93792BFA78959A27AE1A4A942EBB27DB8DD7E9087C3221920C067A0
+B7AC2E61935BEA07199A1005DDADFD6212F31CEAB4E35A98CA4955AF1E9F3101
+FB829CBEDF719AD84C3A46DFCB274F71E44AD5A9DD761728C0BAD505F708DBCA
+C1DE916DA8323CCE8ECEC44EB3FE8BB1D5FDD022F3D2552E659BB10C5B603337
+64AD364473F01AE7A2D94C8F948B470059C49ED0AD738286799F85C82610F550
+B89CF1EA73D78F80FFB9EEC2C657D0174BF769F1E43D03F641A8DE9399AA848B
+BFF6FD45FC754C929F360915F92E9B3583F15ECD02F56333368EA044484C8691
+48C40D27259AE8348B978DA0873D09B0F1AE22B413DB994A10069ADCABF1B849
+3CA5CDE63956101B29B2923DE91CB738FDF629C66F8BA17559B911FCC000D416
+EB789D824184E74E1372C6408584BC2EB7E4FDFC22FA743ACD07C8C50AA15DB1
+03C3C7E8AD8EC10471C38B07FE9116BAC46B796E363940C622A66FE2EF2DAE3B
+0C4981865608A335241455CBF6B4DEC47B68F03E8213DFCBE2CACD7E58560BEA
+737C1670B54B4340460A294129BAF10EEBCAE5CDDA6F93E235136FA1EC12D6A4
+4ED6CE266B0D890437D79EAB499F924C8713E73846D208AE58D35B485C9BCE8C
+9A8CEFFA63740DB2CB9733DB9BA466180356ACB22F2314525AE04EA4D087764F
+D3522B3456C2275FE9BB3D0CDA2CB59D7E92148E739D711A2F10F7894C86608A
+8044744C88F91C808EC592E70DBDE2ADB7BD14D8FBAA1810D3D224028F58134F
+760010605FC4ACB37915ED950040AD5F26EBCEA3F7713939049F8B775C2E7926
+F47EDA3F302B80646CA7A853C6834D88A85936A88EE74EB3A5D3C98F9929CC70
+738F553FD115D264DA5112DC1B5032575D70EC5A3BC3876918C54CA46DB2D3EA
+6A9A92FA33FC10E0DC8E215FFA7E16D08C4E700401FC8DB499F49253DB1E0280
+788593A67F431D91DF1AE222426537C1357BAFD0480C4BB4BEABAB9B0DA4E42A
+7022A6CFC8A1F2A450F54EC48447657BDCD04D8A499893D452DB44E5006A0C2A
+35FC721B127E47854F899BEC7EDC5788D114C48A97A919A5A0D9D09A7D8B1B14
+5EE76BAE2B268787797231C86129B2B2C5A69452944F43DB4ED4E8EC96984262
+CB1DA28A965B7BD5FAB5509018584C67B770357AA4D74B944BFF2919E110308E
+346B80ECA9265BFF0A0663EE4735E7FC146464AE18B3EB1A05F2E8B0730DE422
+E79959C61B60FD403965FF937F409BF578B339154CEBD0A0BB6F2971B0DC3420
+579638EFBE19287D9FEBFC55196C4B9AEC60E6029D203F32109BF23BD6AFFE03
+CF1CF34C9B4F1DE35AD5002ED3649C69B3B8026D202C1890AB9AAFF5A0AC515D
+F0D2EF855FE7CF38EE5951649CB5A942296B636FA5FB3A6F8EF9FD23CEE18028
+D9A60365BE650ABA903E6A484EDF0F71028869DED5A88BC73977485F4277E036
+23AC65148BFC9CE1963049E674B88ADF6DB30CC4F6C8C4BFC3F3AF085E7B3976
+0B22DCF6DA40C63ABBD054A62ED9BBC200C1508D4F7681C1D6945C36FFD90F07
+83029A21900B6F738BBB2F2AA05D27DE3D6902E23CE4A5B40FCD03B47E5C2D24
+A02FFF8E3634CC4EC6F299F15547F28047585A356BBB244AB7BAC36D98309AA1
+BDC5380D9C47315F8DAAD1E859C725761AEB8E9B78A88F3391BAF35F7EBA488E
+94FB7B0C6FA08A451CE40486703E4FFAE3F870B6A72077238F347642983DC4D9
+3F5D3085B5047C841D5315D434FC6874E5B3B5E28607E4227AF81CE22E5E5FF9
+052977E442ED3FCCCB23F7B14139EC8CC123E33B136A06C6CCC40654701E803D
+D1FBF72DE6280EA2BDBD47C7F181F2D54DD0D0131F1A5763645990C42094B073
+0F9200566CF0B1554214C9D6F84C71AE24D5B9447016116B03E1FB4489F07288
+C2B58B66D5D624443E0CFDAACA79AB702B29E5AA024E5E17C49E675CF1EC7F3B
+90F3446686F40DE0629493BFFA0CD9CE240BDB2999F254DEC756C53091C5C23C
+22950E56B09C88250EB802948A5069801CF9ADE91BEF62AF9135DD19E0CDF451
+D70835489137045E6094F1F2A7A5878E1E5E495E528B460D509568A942304A43
+16DEB2A9B20E4512E7C611626ADEDB2DD04AB2FD65A27508317E9DDB9C97E44C
+E181D04C266B6761C5A63D5A22F44381BDD7CFF52F3AE364A5196853639CBC2F
+CB6D8E9F95291997E1B0FC7915E1BB30F1879CB6A0CD98A87AC6DD3F01E85B8B
+0836ADB32D7E6FCA2F03A7EFE38B5DBB2487132E7BF1FA8EF9AD9C940BEAA65C
+9F272A9E483A058624158FFCDF9D48E54BC1C38D9010E766DC1E99E9C7A9AF0A
+9D49AC8AA78A4F3A8364F84CD33FA29120F15936E06DD5064880E2D4F5FD8FB3
+7E47F8B0350FD52E7537F5CAA75E05717A5CB84D56DA8FCF061AAEE227DEE7D5
+8BF5E4C72DA6C7DB1FCA7D
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -2308,7 +2312,7 @@
 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 30 1[30
-1[30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }40
+30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }41
 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
@@ -2347,7 +2351,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
-(4.00\))-150 -39 y Fh(Getting)37 b(Started)-150 89 y
+(4.01\))-150 -39 y Fh(Getting)37 b(Started)-150 89 y
 Fg(\(add-to-list)i('auto-mode-alist)h('\("\\\\.org$")e(.)e
 (org-mode\)\))-150 172 y(\(define-key)i(global-map)h("\\C-cl")e
 ('org-store-link\))1504 148 y Ff(2)-150 254 y Fg(\(define-key)h
@@ -2560,7 +2564,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
-(4.00\))-150 -45 y Fh(Agenda)37 b(Views)-150 102 y Fi(add/mo)n(v)n(e)25
+(4.01\))-150 -45 y Fh(Agenda)37 b(Views)-150 102 y Fi(add/mo)n(v)n(e)25
 b(curren)n(t)f(\014le)g(to)g(fron)n(t)g(of)f(agenda)197
 b Fg(C-c)36 b([)-150 172 y Fi(remo)n(v)n(e)24 b(curren)n(t)g(\014le)g
 (from)f(y)n(our)g(agenda)299 b Fg(C-c)36 b(])-150 242
@@ -2589,23 +2593,23 @@
 b Fg(RET)-150 1641 y Fi(toggle)25 b(follo)n(w-mo)r(de)861
 b Fg(f)-150 1737 y Fd(Change)27 b(displa)n(y)-150 1833
 y Fi(delete)e(other)f(windo)n(ws)791 b Fg(o)-150 1903
-y Fi(switc)n(h)24 b(to)g(w)n(eekly)h(view)767 b Fg(w)-150
-1973 y Fi(switc)n(h)24 b(to)g(daily)g(view)822 b Fg(d)-150
-2043 y Fi(toggle)25 b(inclusion)e(of)h(diary)f(en)n(tries)473
-b Fg(D)-150 2112 y Fi(toggle)25 b(time)f(grid)f(for)g(daily)g(sc)n
-(hedule)388 b Fg(g)-150 2182 y Fi(toggle)25 b(displa)n(y)e(of)h(logb)r
-(o)r(ok)g(en)n(tries)446 b Fg(l)-150 2252 y Fi(refresh)23
-b(agenda)i(bu\013er)f(with)g(an)n(y)g(c)n(hanges)239
-b Fg(r)-150 2322 y Fi(displa)n(y)24 b(the)g(follo)n(wing)f
-Fg(org-agenda-ndays)221 b(RIGHT)-150 2391 y Fi(displa)n(y)24
+y Fi(switc)n(h)24 b(to)g(daily)g(/)g(w)n(eekly)g(view)534
+b Fg(d)36 b(/)f(w)-150 1973 y Fi(toggle)25 b(inclusion)e(of)h(diary)f
+(en)n(tries)473 b Fg(D)-150 2043 y Fi(toggle)25 b(time)f(grid)f(for)g
+(daily)g(sc)n(hedule)388 b Fg(g)-150 2112 y Fi(toggle)25
+b(displa)n(y)e(of)h(logb)r(o)r(ok)g(en)n(tries)446 b
+Fg(l)-150 2182 y Fi(refresh)23 b(agenda)i(bu\013er)f(with)g(an)n(y)g(c)
+n(hanges)239 b Fg(r)-150 2252 y Fi(displa)n(y)24 b(the)g(follo)n(wing)f
+Fg(org-agenda-ndays)221 b(RIGHT)-150 2322 y Fi(displa)n(y)24
 b(the)g(previous)g Fg(org-agenda-ndays)238 b(LEFT)-150
-2461 y Fi(goto)25 b(to)r(da)n(y)1110 b Fg(.)-150 2557
-y Fd(Remote)27 b(editing)-150 2654 y Fi(digit)d(argumen)n(t)984
-b Fg(0-9)-150 2724 y Fi(c)n(hange)25 b(state)g(of)f(curren)n(t)g(TODO)f
-(item)333 b Fg(t)-150 2793 y Fi(set)24 b(priorit)n(y)f(of)g(curren)n(t)
-i(item)612 b Fg(p)-150 2876 y Fi(raise)23 b(priorit)n(y)g(of)g(curren)n
-(t)i(item)557 b Fg(S-UP)1430 2852 y Ff(4)-150 2956 y
-Fi(lo)n(w)n(er)23 b(priorit)n(y)g(of)h(curren)n(t)g(item)538
+2391 y Fi(goto)25 b(to)r(da)n(y)1110 b Fg(.)-150 2488
+y Fd(Remote)27 b(editing)-150 2584 y Fi(digit)d(argumen)n(t)984
+b Fg(0-9)-150 2654 y Fi(c)n(hange)25 b(state)g(of)f(curren)n(t)g(TODO)f
+(item)333 b Fg(t)-150 2724 y Fi(set)24 b(tags)h(for)d(curren)n(t)j
+(headline)573 b Fg(:)-150 2793 y Fi(set)24 b(priorit)n(y)f(of)g(curren)
+n(t)i(item)612 b Fg(p)-150 2876 y Fi(raise)23 b(priorit)n(y)g(of)g
+(curren)n(t)i(item)557 b Fg(S-UP)1430 2852 y Ff(4)-150
+2956 y Fi(lo)n(w)n(er)23 b(priorit)n(y)g(of)h(curren)n(t)g(item)538
 b Fg(S-DOWN)1500 2933 y Ff(4)-150 3026 y Fi(displa)n(y)24
 b(w)n(eigh)n(ted)h(priorit)n(y)e(of)g(curren)n(t)h(item)189
 b Fg(P)-150 3106 y Fi(c)n(hange)25 b(timestamp)g(to)f(one)g(da)n(y)h
@@ -2757,7 +2761,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(v4.00)h(for)h(Org-Mo)r(de)e(4.00,)i(2005)4912 3882
+y(v4.01)h(for)h(Org-Mo)r(de)e(4.01,)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	Mon Dec 26 02:21:31 2005 +0000
+++ b/etc/orgcard.tex	Mon Dec 26 03:16:59 2005 +0000
@@ -1,4 +1,4 @@
-% Reference Card for Org Mode 4.00
+% Reference Card for Org Mode 4.01
 %
 %**start of header
 \newcount\columnsperpage
@@ -58,7 +58,7 @@
 % Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
 % for their many good ideas.
 
-\def\orgversionnumber{4.00}
+\def\orgversionnumber{4.01}
 \def\year{2005}
 
 \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
@@ -557,8 +557,7 @@
 {\bf Change display}
 
 \key{delete other windows}{o}
-\key{switch to weekly view}{w}
-\key{switch to daily view}{d}
+\key{switch to daily / weekly view}{d / w}
 \key{toggle inclusion of diary entries}{D}
 \key{toggle time grid for daily schedule}{g}
 \key{toggle display of logbook entries}{l}
@@ -571,6 +570,7 @@
 
 \key{digit argument}{0-9}
 \key{change state of current TODO item}{t}
+\key{set tags for current headline}{:}
 \key{set priority of current item}{p}
 \key{raise priority of current item}{S-UP$^4$}
 \key{lower priority of current item}{S-DOWN$^4$}
--- a/leim/Makefile.in	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/Makefile.in	Mon Dec 26 03:16:59 2005 +0000
@@ -1,9 +1,7 @@
 # Makefile for leim subdirectory in GNU Emacs.
-# Copyright (C) 1997,98,1999,2000,2001 Electrotechnical Laboratory, JAPAN.
-#   Licensed to the Free Software Foundation.
-# Copyright (C) 1997,98,1999,2000,01,02,03,2004,2005
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 #   Free Software Foundation, Inc.
-# Copyright (C) 2001,02,03,2004
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 #   National Institute of Advanced Industrial Science and Technology (AIST)
 #   Registration Number H14PRO021
 
--- a/leim/leim-ext.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/leim-ext.el	Mon Dec 26 03:16:59 2005 +0000
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2004
 ;;   Free Software Foundation, Inc.
-;; Copyright (C) 2004
+;; Copyright (C) 2004, 2005
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H13PRO009
 
--- a/leim/makefile.w32-in	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/makefile.w32-in	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 # -*- Makefile -*- for leim subdirectory in GNU Emacs on the Microsoft W32 API.
-# Copyright (C) 1997, 2004 Electrotechnical Laboratory, JAPAN.
-#   Licensed to the Free Software Foundation.
-# Copyright (C) 2005, Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+#   Free Software Foundation, Inc.
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H14PRO021
 
 # This file is part of GNU Emacs.
 
--- a/leim/quail/croatian.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/croatian.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,6 @@
 ;;; quail/croatian.el -- Quail package for inputing Croatian  -*-coding: iso-8859-2;-*-
 
-;; Copyright (C) 2002 Free Software Foundation.
+;; Copyright (C) 2002 Free Software Foundation, Inc.
 
 ;; Author: Hrvoje Nik¹iæ <hniksic@xemacs.org>,
 ;;         modeled after czech.el by Milan Zamazal.
--- a/leim/quail/cyril-jis.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/cyril-jis.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; cyril-jis.el --- Quail package for inputting JISX0208 Cyrillic letters
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2001  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Cyrillic
 
--- a/leim/quail/cyrillic.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/cyrillic.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,10 @@
 ;;; cyrillic.el --- Quail package for inputting Cyrillic characters
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
 ;; Keywords: multilingual, input method, Cyrillic, i18n
--- a/leim/quail/czech.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/czech.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,6 @@
 ;;; czech.el --- Quail package for inputting Czech -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1998, 2001 Free Software Foundation.
+;; Copyright (C) 1998, 2001  Free Software Foundation, Inc.
 
 ;; Author: Milan Zamazal <pdm@zamazal.org>
 ;; Maintainer: Pavel Jan,Bm(Bk <Pavel@Janik.cz>
--- a/leim/quail/ethiopic.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/ethiopic.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; ethiopic.el --- Quail package for inputting Ethiopic characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997, 1998 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 1998, 1999, 2001
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, ethiopic
 
--- a/leim/quail/greek.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/greek.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; greek.el --- Quail package for inputting Greek -*-coding: iso-2022-7bit-*-
 
-;; Copyright (C) 1997, 2001 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Greek
 
--- a/leim/quail/hangul.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/hangul.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; hangul.el --- Quail package for inputting Korean Hangul characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2002  Free Software Foundation, Inc.
+;; Copyright (C) 1997
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Korean, Hangul
 
--- a/leim/quail/hangul3.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/hangul3.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; hangul3.el --- Quail package for inputting Korean Hangul characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 1998, 2001  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Korean, Hangul
 
--- a/leim/quail/hanja-jis.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/hanja-jis.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; hanja-jis.el --- Quail package for inputting Korean Hanja (JISX0208)  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Korean, Hangul
 
--- a/leim/quail/hanja.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/hanja.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; hanja.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Korean, Hanja
 
--- a/leim/quail/hanja3.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/hanja3.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,6 @@
 ;;; hanja3.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2002  Free Software Foundation, Inc.
 
 ;; Author: Koaunghi Un <koanughi.un@zdv.uni-tuebingen.de>
 ;; Keywords: mule, quail, multilingual, input method, Korean, Hanja
--- a/leim/quail/hebrew.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/hebrew.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; hebrew.el --- Quail package for inputting Hebrew characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1998 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1999
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, input method, Hebrew
 
--- a/leim/quail/indian.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/indian.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,6 @@
 ;;; indian.el --- Quail packages for inputting Indian
 
-;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003  Free Software Foundation, Inc.
 
 ;; Author: KAWABATA, Taichi <kawabata@m17n.org>
 
--- a/leim/quail/ipa.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/ipa.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; ipa.el --- Quail package for inputting IPA characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, IPA
 
--- a/leim/quail/japanese.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/japanese.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; japanese.el --- Quail package for inputting Japanese  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Japanese
 
--- a/leim/quail/lao.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/lao.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,6 @@
 ;;; lao.el --- Quail package for inputting Lao characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2004
+;; Copyright (C) 1997, 1999, 2004
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
--- a/leim/quail/latin-alt.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/latin-alt.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,9 @@
 ;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2001, 2002  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, latin
 
--- a/leim/quail/latin-ltx.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/latin-ltx.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,9 @@
 ;;; latin-ltx.el --- Quail package for TeX-style input -*-coding: utf-8;-*-
 
-;; Copyright (C) 2001, 2004  Free Software Foundation, Inc.
-;; Copyright (C) 2001 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2001, 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2001
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
 ;;         Dave Love <fx@gnu.org>
--- a/leim/quail/latin-post.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/latin-post.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,9 @@
 ;;; latin-post.el --- Quail packages for inputting various European characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation.
+;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, latin
 
--- a/leim/quail/latin-pre.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/latin-pre.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,10 @@
 ;;; latin-pre.el --- Quail packages for inputting various European characters  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, latin, input method
 
--- a/leim/quail/lrt.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/lrt.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; lrt.el --- Quail package for inputting Lao characters by LRT method  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1998  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Lao, LRT.
 
--- a/leim/quail/py-punct.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/py-punct.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,9 @@
 ;;; py-punct.el --- Quail packages for Chinese (pinyin + extra symbols)  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
 ;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Ken'ichi HANDA <handa@etl.go.jp>
 
--- a/leim/quail/pypunct-b5.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/pypunct-b5.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols)
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Ken'ichi HANDA <handa@etl.go.jp>
 
--- a/leim/quail/slovak.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/slovak.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,6 @@
 ;;; slovak.el --- Quail package for inputting Slovak  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1998, 2001 Free Software Foundation.
+;; Copyright (C) 1998, 2001 Free Software Foundation, Inc.
 
 ;; Authors: Tibor ,B)(Bimko <tibor.simko@fmph.uniba.sk>
 ;;	Milan Zamazal <pdm@zamazal.org>
--- a/leim/quail/symbol-ksc.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/symbol-ksc.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601)
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Korean, Hangul
 
--- a/leim/quail/thai.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/thai.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,8 +1,6 @@
 ;;; thai.el --- Quail package for inputting Thai characters
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2005
+;; Copyright (C) 1995, 1997, 1999, 2005
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
--- a/leim/quail/tibetan.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/tibetan.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; tibetan.el --- Quail package for inputting Tibetan characters
 
-;; Copyright (C) 1995 Free Software Foundation, Inc.
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Copyright (C) 1995  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998, 1999, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, Tibetan
 
--- a/leim/quail/uni-input.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/uni-input.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,9 @@
 ;;; uni-input.el --- Hex Unicode input method
 
-;; Copyright (C) 2001  Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2003  Free Software Foundation, Inc.
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: i18n
--- a/leim/quail/viqr.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/viqr.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; viqr.el --- Quail packages for inputting Vietnamese with VIQR system  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, input method, latin
 
--- a/leim/quail/vntelex.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/leim/quail/vntelex.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,6 @@
 ;;; vntelex.el --- Quail package for Vietnamese by Telex method
 
-;; Copyright (C) 2001, 2002 Free Software Foundation.
+;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 
 ;; Author:   Werner Lemberg <wl@gnu.org>
 ;; Keywords: multilingual, input method, Vietnamese
--- a/lisp/ChangeLog	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/ChangeLog	Mon Dec 26 03:16:59 2005 +0000
@@ -1,3 +1,85 @@
+2005-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* log-view.el (log-view-file-re, log-view-message-re): Use shy groups.
+	(log-view-font-lock-keywords): Ajust subgroup numbers.
+	(log-view-current-tag): Don't hard code the number of subgroups.
+
+2005-12-20  Juri Linkov  <juri@jurta.org>
+
+	* tooltip.el (tooltip): Move defgroup before define-minor-mode.
+	(tooltip-x-offset, tooltip-y-offset): Doc fix.
+
+	* menu-bar.el (menu-bar-menu-frame-live-and-visible-p)
+	(menu-bar-non-minibuffer-window-p): Instead of checking
+	display-multi-frame-p, use selected-frame when menu-updating-frame
+	is nil.
+
+2005-12-20  Davis Herring  <herring@lanl.gov>  (tiny change)
+
+	* align.el (align-rules-list): Use [ \t] instead of \s-
+	for column separators in text mode.
+
+2005-12-20  Nick Roberts  <nickrob@snap.net.nz>
+
+	* help-mode.el (help-customize-variable, help-customize-face):
+	Don't pop help-xref-stack as help-follow no longer pushes
+	anything on to it.
+
+2005-12-20  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el: (org-agenda-custom-commands): New option.
+	(org-agenda): Offer custom commands on splash screen.
+	(org-make-tags-matcher): Parser for Boolean logic added.
+	(org-agenda-set-tags): New command.
+	(org-agenda-menu, org-agenda-mode-map): Add `org-agenda-set-tags'.
+	(org-set-tags): Efficiency improvements.
+	(org-auto-align-tags): New option.
+	(org-todo, org-demote, org-promote): Realign tags.
+	(org-tags-completion-function): Use also "&" and "|" as separators.
+	(org-org-menu): Agenda commands simplified.
+
+2005-12-19  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* cus-edit.el (customize-apropos, customize-apropos-options):
+	Docstring changes.
+
+	* font-lock.el (font-lock): Add tags to the links in the defgroup.
+
+2005-12-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* longlines.el (longlines-mode): Wrap while widened.
+	(longlines-decode-region, longlines-encode-region): Compute max
+	just once.
+
+2005-12-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* cus-edit.el (mac): New group.
+
+	* cus-start.el (all): Add user options in macterm.c.  Add test for
+	Mac-related built-ins.  Fix test for GTK-related built-ins.
+
+	* term/mac-win.el (mac-handle-language-change)
+	(mac-ae-open-documents, mac-ae-get-url, mac-services-open-file)
+	(mac-services-open-selection, mac-services-mail-selection)
+	(mac-services-mail-to, mac-services-insert-text)
+	(mac-dispatch-apple-event): Add docstrings.
+	(x-get-selection, mac-select-convert-to-string): Select coding
+	system from `utf-16be' and `utf-16le' using `byteorder'.
+
+2005-12-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* subr.el (lazy-completion-table): Don't be fooled if the var holds
+	a "list" (lambda ...) rather than a real completion list.
+
+	* emacs-lisp/cl-extra.el (cl-macroexpand-all): Fix code-walk for
+	lexical-let when encountering ((lambda (...) ...) ...).
+
+2005-12-17  Chong Yidong  <cyd@stupidchicken.com>
+
+	* progmodes/sh-script.el (sh-mode):
+	* language/ethio-util.el (ethio-fidel-to-sera-mail-or-marker):
+	* textmodes/picture.el (picture-mode): Update docstrings.
+
 2005-12-17  Eli Zaretskii  <eliz@gnu.org>
 
 	* makefile.w32-in (autoloads, custom-deps): Warn that parts of
@@ -9,8 +91,8 @@
 
 2005-12-17  Chong Yidong  <cyd@stupidchicken.com>
 
-	* emacs-lisp/edebug.el (edebug-safe-prin1-to-string): Capture
-	error from printing circular structures.
+	* emacs-lisp/edebug.el (edebug-safe-prin1-to-string):
+	Capture error from printing circular structures.
 
 2005-12-17  Martin Rudalics  <rudalics@gmx.at>  (tiny change)
 
@@ -7215,7 +7297,7 @@
 2005-08-26  Kim F. Storm  <storm@cua.dk>
 
 	* subr.el (version-list-<, version-list-<=, version-list-=):
-	Renamed from integer-list-*.
+	Rename from integer-list-*.
 	(version-list-not-zero): Likewise.  Fix while loop.
 	(version=): Use version-list-= instead of string-equal.
 
@@ -12362,8 +12444,7 @@
 	(multiple-value-bind, multiple-value-setq, shiftf):
 	Improve argument/docstring consistency.
 
-	* subr.el (focus-frame, unfocus-frame):
-	Revert deletion on 2005-05-01.
+	* subr.el (focus-frame, unfocus-frame): Revert deletion on 2005-05-01.
 
 2005-05-22  Andre Spiegel  <spiegel@gnu.org>
 
@@ -12496,8 +12577,7 @@
 	(subst-if-not, nsubst, nsubst-if, nsubst-if-not, sublis)
 	(nsublis, tree-equal): Improve argument/docstring consistency.
 
-	* subr.el (send-string, send-region):
-	Remove obsolescence declaration.
+	* subr.el (send-string, send-region): Remove obsolescence declaration.
 	(window-dot, set-window-dot, read-input, show-buffer)
 	(eval-current-buffer, string-to-int):
 	Add release number to obsolescence declarations.
@@ -12574,8 +12654,8 @@
 	* emacs-lisp/byte-run.el (eval-when-compile): Doc fix.
 
 	* emacs-lisp/bytecomp.el
-	(byte-compile-file-form-custom-declare-variable): Call
-	byte-compile-nogroup-warn if appropriate.
+	(byte-compile-file-form-custom-declare-variable):
+	Call byte-compile-nogroup-warn if appropriate.
 
 	* progmodes/compile.el (compilation-finish-function): Mark obsolete.
 	(compilation-set-window): Don't call left-fringe-p; do it directly.
--- a/lisp/align.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/align.el	Mon Dec 26 03:16:59 2005 +0000
@@ -559,7 +559,7 @@
     ;; With a numeric prefix argument, or C-u, space delimited text
     ;; tables will be aligned.
     (text-column
-     (regexp   . "\\(^\\|\\S-\\)\\(\\s-+\\)\\(\\S-\\|$\\)")
+     (regexp   . "\\(^\\|\\S-\\)\\([ \t]+\\)\\(\\S-\\|$\\)")
      (group    . 2)
      (modes    . align-text-modes)
      (repeat   . t)
--- a/lisp/composite.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/composite.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 ;;; composite.el --- support character composition
 
-;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1999, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, character composition
 
--- a/lisp/cus-edit.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/cus-edit.el	Mon Dec 26 03:16:59 2005 +0000
@@ -459,6 +459,13 @@
   :link '(custom-manual "(emacs)Windows")
   :group 'environment)
 
+(defgroup mac nil
+  "Mac specific features."
+  :link '(custom-manual "(emacs)Mac OS")
+  :group 'environment
+  :version "22.1"
+  :prefix "mac-")
+
 ;;; Utilities.
 
 (defun custom-quote (sexp)
@@ -1258,7 +1265,8 @@
 If ALL is `faces', include only faces.
 If ALL is `groups', include only groups.
 If ALL is t (interactively, with prefix arg), include variables
-that are not customizable options, as well as faces and groups."
+that are not customizable options, as well as faces and groups
+\(but we recommend using `apropos-variable' instead)."
   (interactive "sCustomize regexp: \nP")
   (let ((found nil))
     (mapatoms (lambda (symbol)
@@ -1286,7 +1294,8 @@
 ;;;###autoload
 (defun customize-apropos-options (regexp &optional arg)
   "Customize all loaded customizable options matching REGEXP.
-With prefix arg, include variables that are not customizable options."
+With prefix arg, include variables that are not customizable options
+\(but we recommend using `apropos-variable' instead)."
   (interactive "sCustomize regexp: \nP")
   (customize-apropos regexp (or arg 'options)))
 
--- a/lisp/cus-start.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/cus-start.el	Mon Dec 26 03:16:59 2005 +0000
@@ -194,6 +194,33 @@
 	     (suggest-key-bindings keyboard (choice (const :tag "off" nil)
 						    (integer :tag "time" 2)
 						    (other :tag "on")))
+	     ;; macterm.c
+	     (mac-control-modifier mac (choice (const :tag "No modifier" nil)
+					       (const control) (const meta)
+					       (const alt) (const hyper)
+					       (const super)) "22.1")
+	     (mac-command-modifier mac (choice (const :tag "No modifier" nil)
+					       (const control) (const meta)
+					       (const alt) (const hyper)
+					       (const super)) "22.1")
+	     (mac-option-modifier mac (choice (const :tag "No modifier (work as option)" nil)
+					      (const control) (const meta)
+					      (const alt) (const hyper)
+					      (const super)) "22.1")
+	     (mac-function-modifier mac
+				    (choice (const :tag "No modifier (work as function)" nil)
+					    (const control) (const meta)
+					    (const alt) (const hyper)
+					    (const super)) "22.1")
+	     (mac-emulate-three-button-mouse mac
+					     (choice (const :tag "No emulation" nil)
+						     (const :tag "Option->2, Command->3" t)
+						     (const :tag "Command->2, Option->3" reverse))
+				    "22.1")
+	     (mac-wheel-button-is-mouse-2 mac boolean "22.1")
+	     (mac-pass-command-to-system mac boolean "22.1")
+	     (mac-pass-control-to-system mac boolean "22.1")
+	     (mac-allow-anti-aliasing mac boolean "22.1")
 
 ;; This is not good news because it will use the wrong
 ;; version-specific directories when you upgrade.  We need
@@ -366,6 +393,8 @@
 		       (eq system-type 'ms-dos))
 		      ((string-match "\\`w32-" (symbol-name symbol))
 		       (eq system-type 'windows-nt))
+ 		      ((string-match "\\`mac-" (symbol-name symbol))
+ 		       (eq window-system 'mac))
 		      ((string-match "\\`x-.*gtk" (symbol-name symbol))
 		       (featurep 'gtk))
 		      ((string-match "\\`x-" (symbol-name symbol))
--- a/lisp/emacs-lisp/cl-extra.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/emacs-lisp/cl-extra.el	Mon Dec 26 03:16:59 2005 +0000
@@ -743,6 +743,11 @@
 	 (let* ((args (cl-macroexpand-body (cdr form) env)) (p args))
 	   (while (and p (symbolp (car p))) (setq p (cddr p)))
 	   (if p (cl-macroexpand-all (cons 'setf args)) (cons 'setq args))))
+        ((consp (car form))
+         (cl-macroexpand-all (list* 'funcall
+                                    (list 'function (car form))
+                                    (cdr form))
+                             env))
 	(t (cons (car form) (cl-macroexpand-body (cdr form) env)))))
 
 (defun cl-macroexpand-body (body &optional env)
--- a/lisp/font-lock.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/font-lock.el	Mon Dec 26 03:16:59 2005 +0000
@@ -212,8 +212,8 @@
 ;; Define core `font-lock' group.
 (defgroup font-lock '((jit-lock custom-group))
   "Font Lock mode text highlighting package."
-  :link '(custom-manual "(emacs)Font Lock")
-  :link '(custom-manual "(elisp)Font Lock Mode")
+  :link '(custom-manual :tag "Emacs Manual" "(emacs)Font Lock")
+  :link '(custom-manual :tag "Elisp Manual" "(elisp)Font Lock Mode")
   :group 'faces)
 
 (defgroup font-lock-faces nil
--- a/lisp/help-mode.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/help-mode.el	Mon Dec 26 03:16:59 2005 +0000
@@ -136,16 +136,12 @@
 (define-button-type 'help-customize-variable
   :supertype 'help-xref
   'help-function (lambda (v)
-		   (if help-xref-stack
-		       (pop help-xref-stack))
 		   (customize-variable v))
   'help-echo (purecopy "mouse-2, RET: customize variable"))
 
 (define-button-type 'help-customize-face
   :supertype 'help-xref
   'help-function (lambda (v)
-		   (if help-xref-stack
-		       (pop help-xref-stack))
 		   (customize-face v))
   'help-echo (purecopy "mouse-2, RET: customize face"))
 
--- a/lisp/language/ethio-util.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/language/ethio-util.el	Mon Dec 26 03:16:59 2005 +0000
@@ -824,7 +824,7 @@
 
 ;;;###autoload
 (defun ethio-sera-to-fidel-mail-or-marker (&optional arg)
-  "Execute ethio-sera-to-fidel-mail or ethio-sera-to-fidel-marker depending on the current major mode.
+  "Execute `ethio-sera-to-fidel-mail' or `ethio-sera-to-fidel-marker' depending on the current major mode.
 If in rmail-mode or in mail-mode, execute the former; otherwise latter."
 
   (interactive "P")
@@ -1214,7 +1214,7 @@
 
 ;;;###autoload
 (defun ethio-fidel-to-sera-mail-or-marker (&optional arg)
-  "Execute ethio-fidel-to-sera-mail or ethio-fidel-to-sera-marker depending on the current major mode.
+  "Execute `ethio-fidel-to-sera-mail' or `ethio-fidel-to-sera-marker' depending on the current major mode.
 If in rmail-mode or in mail-mode, execute the former; otherwise latter."
 
   (interactive "P")
--- a/lisp/log-view.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/log-view.el	Mon Dec 26 03:16:59 2005 +0000
@@ -25,11 +25,36 @@
 
 ;;; Commentary:
 
-;; Todo:
+;; Major mode to browse revision log histories.
+;; Currently supports the format output by:
+;;  RCS, SCCS, CVS, Subversion.
+
+;; Examples of log output:
+
+;;;; RCS/CVS:
 
-;; - add compatibility with cvs-log.el
+;; ----------------------------
+;; revision 1.35	locked by: turlutut
+;; date: 2005-03-22 18:48:38 +0000;  author: monnier;  state: Exp;  lines: +6 -8
+;; (gnus-display-time-event-handler):
+;; Check display-time-timer at runtime rather than only at load time
+;; in case display-time-mode is turned off in the mean time.
+;; ----------------------------
+;; revision 1.34
+;; date: 2005-02-09 15:50:38 +0000;  author: kfstorm;  state: Exp;  lines: +7 -7
+;; branches:  1.34.2;
+;; Change release version from 21.4 to 22.1 throughout.
+;; Change development version from 21.3.50 to 22.0.50.
+
+;;;; SCCS:
+
+;;;; Subversion:
+
+;;; Todo:
+
 ;; - add ability to modify a log-entry (via cvs-mode-admin ;-)
 ;; - remove references to cvs-*
+;; - make it easier to add support for new backends without changing the code.
 
 ;;; Code:
 
@@ -87,17 +112,20 @@
 (defvar log-view-message-face 'log-view-message)
 
 (defconst log-view-file-re
-  (concat "^\\("
-	  "Working file: \\(.+\\)"
-	  "\\|SCCS/s\\.\\(.+\\):"
-	  "\\)\n"))
-;; In RCS, a locked revision will look like "revision N.M\tlocked by: FOO".
-(defconst log-view-message-re "^\\(revision \\([.0-9]+\\)\\(?:\t.*\\)?\\|r\\([0-9]+\\) | .* | .*\\|D \\([.0-9]+\\) .*\\)$")
+  (concat "^\\(?:Working file: \\(.+\\)"                ;RCS and CVS.
+          "\\|SCCS/s\\.\\(.+\\):"                       ;SCCS.
+	  "\\)\n"))                   ;Include the \n for font-lock reasons.
+
+(defconst log-view-message-re
+  (concat "^\\(?:revision \\([.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS.
+          "\\|r\\([0-9]+\\) | .* | .*"                ; Subversion.
+          "\\|D \\([.0-9]+\\) .*"                     ; SCCS.
+          "\\)$"))
 
 (defconst log-view-font-lock-keywords
   `((,log-view-file-re
+     (1 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t)
      (2 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t)
-     (3 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t)
      (0 log-view-file-face append))
     (,log-view-message-re . log-view-message-face)))
 (defconst log-view-font-lock-defaults
@@ -158,10 +186,17 @@
     (forward-line 1)
     (let ((pt (point)))
       (when (re-search-backward log-view-message-re nil t)
-	(let ((rev (or (match-string 2) (match-string 3) (match-string 4))))
+        (let (rev)
+          ;; Find the subgroup that matched.
+          (dotimes (i (/ (match-data 'integers) 2))
+            (setq rev (or rev (match-string (1+ i)))))
 	  (unless (re-search-forward log-view-file-re pt t)
 	    rev))))))
 
+(defvar cvs-minor-current-files)
+(defvar cvs-branch-prefix)
+(defvar cvs-secondary-branch-prefix)
+
 (defun log-view-minor-wrap (buf f)
   (let ((data (with-current-buffer buf
 		(cons
--- a/lisp/longlines.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/longlines.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,6 @@
 ;;; longlines.el --- automatically wrap long lines
 
-;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Authors:    Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 ;;             Alex Schroeder <alex@gnu.org>
@@ -111,7 +111,7 @@
 	(add-hook 'before-revert-hook 'longlines-before-revert-hook nil t)
         (make-local-variable 'buffer-substring-filters)
 	(set (make-local-variable 'isearch-search-fun-function)
-	     'longlinges-search-function)
+	     'longlines-search-function)
         (add-to-list 'buffer-substring-filters 'longlines-encode-string)
         (when longlines-wrap-follows-window-size
           (set (make-local-variable 'fill-column)
@@ -127,8 +127,8 @@
           ;; longlines-wrap-lines that we'll never encounter from here
 	  (save-restriction
 	    (widen)
-	    (longlines-decode-buffer))
-          (longlines-wrap-region (point-min) (point-max))
+	    (longlines-decode-buffer)
+	    (longlines-wrap-region (point-min) (point-max)))
           (set-buffer-modified-p mod))
         (when (and longlines-show-hard-newlines
                    (not longlines-showing))
@@ -166,7 +166,6 @@
 	(widen)
 	(longlines-encode-region (point-min) (point-max))))
     (remove-hook 'change-major-mode-hook 'longlines-mode-off t)
-    (remove-hook 'before-kill-functions 'longlines-encode-region t)
     (remove-hook 'after-change-functions 'longlines-after-change-function t)
     (remove-hook 'post-command-hook 'longlines-post-command-function t)
     (remove-hook 'before-revert-hook 'longlines-before-revert-hook t)
@@ -327,10 +326,11 @@
   (if (null beg) (setq beg (point)))
   (if (null end) (setq end (mark t)))
   (save-excursion
-    (goto-char (min beg end))
-    (while (search-forward "\n" (max beg end) t)
-      (set-hard-newline-properties
-       (match-beginning 0) (match-end 0)))))
+    (let ((reg-max (max beg end)))
+      (goto-char (min beg end))
+      (while (search-forward "\n" reg-max t)
+	(set-hard-newline-properties
+	 (match-beginning 0) (match-end 0))))))
 
 (defun longlines-decode-buffer ()
   "Turn all newlines in the buffer into hard newlines."
@@ -341,9 +341,10 @@
 Hard newlines are left intact.  The optional argument BUFFER exists for
 compatibility with `format-alist', and is ignored."
   (save-excursion
-    (let ((mod (buffer-modified-p)))
+    (let ((reg-max (max beg end))
+	  (mod (buffer-modified-p)))
       (goto-char (min beg end))
-      (while (search-forward "\n" (max (max beg end)) t)
+      (while (search-forward "\n" reg-max t)
         (unless (get-text-property (match-beginning 0) 'hard)
           (replace-match " ")))
       (set-buffer-modified-p mod)
@@ -422,7 +423,7 @@
 
 ;; Isearch
 
-(defun longlinges-search-function ()
+(defun longlines-search-function ()
   (cond
    (isearch-word
     (if isearch-forward 'word-search-forward 'word-search-backward))
--- a/lisp/menu-bar.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/menu-bar.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1418,8 +1418,7 @@
 (defun menu-bar-menu-frame-live-and-visible-p ()
   "Return non-nil if the menu frame is alive and visible.
 The menu frame is the frame for which we are updating the menu."
-  (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame
-		      (selected-frame))))
+  (let ((menu-frame (or menu-updating-frame (selected-frame))))
     (and (frame-live-p menu-frame)
 	 (frame-visible-p menu-frame))))
 
@@ -1428,8 +1427,7 @@
 
 See the documentation of `menu-bar-menu-frame-live-and-visible-p'
 for the definition of the menu frame."
-  (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame
-		      (selected-frame))))
+  (let ((menu-frame (or menu-updating-frame (selected-frame))))
     (not (window-minibuffer-p (frame-selected-window menu-frame)))))
 
 (defun kill-this-buffer ()	; for the menu bar
--- a/lisp/mh-e/ChangeLog	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/ChangeLog	Mon Dec 26 03:16:59 2005 +0000
@@ -1,3 +1,68 @@
+2005-12-19  Stephen Gildea
+
+	* mh-customize.el (mh-after-commands-processed-hook): New variable.
+	(mh-before-commands-processed-hook): mh-folder-updated-hook, renamed.
+
+	* mh-e.el (mh-process-commands): Rename mh-folder-updated-hook 
+	to mh-before-commands-processed-hook, call new
+	mh-after-commands-processed-hook.
+	(mh-folders-changed): New variable (for use in
+	mh-after-commands-processed-hook).
+
+2005-12-19  Bill Wohler  <wohler@newt.com>
+
+	* mh-acros.el:
+	* mh-alias.el:
+	* mh-comp.el:
+	* mh-customize.el:
+	* mh-e.el:
+	* mh-funcs.el:
+	* mh-gnus.el:
+	* mh-identity.el:
+	* mh-inc.el:
+	* mh-index.el:
+	* mh-init.el:
+	* mh-junk.el:
+	* mh-mime.el:
+	* mh-pick.el:
+	* mh-print.el:
+	* mh-seq.el:
+	* mh-speed.el:
+	* mh-utils.el:
+	Follow commenting conventions. Don't use ;;; form so much, except
+	for headings. Precede headings with page feed. This was mostly
+	already done, so I made it a convention. Did not update copyright
+	on a couple of files since this was an insignificant change.
+
+2005-12-18  Bill Wohler  <wohler@newt.com>
+
+	* mh-customize.el (mh-toolbar): Rename to mh-tool-bar.
+	(mh-tool-bar-search-function): Sync docstrings with manual.
+	(mh-tool-bar-customize): Replace toolbar with tool bar in
+	docstring.
+	(mh-tool-bar-letter-help): Fix manual reference.
+	(mh-xemacs-use-toolbar-flag): Rename to
+	mh-xemacs-use-tool-bar-flag. Initialize to
+	mh-xemacs-has-tool-bar-flag. Sync docstrings with manual.
+	(mh-xemacs-toolbar-position): Rename to
+	mh-xemacs-tool-bar-position. Initialize to nil. Drop "no tool bar"
+	option (redundant) and change "Same As Default Tool Bar" setting
+	to nil. Sync docstrings with manual.
+	(mh-tool-bar-define): Replace toolbar with tool-bar or tool bar
+	depending on context.
+	(mh-toolbar-init): Rename to mh-tool-bar-init. Simplified
+	condition for calling set-specifier. Only look at the value of
+	mh-xemacs-use-tool-bar-flag.
+	(mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons): Sync
+	docstrings with manual.
+
+	* mh-comp.el (mh-letter-mode): Use mh-tool-bar-init instead of
+	mh-toolbar-init.
+
+	* mh-e.el (mh-folder-mode): Ditto.
+
+	* mh-utils.el (mh-show-mode): Ditto.
+
 2005-12-15  Bill Wohler  <wohler@newt.com>
 
 	* mh-e.el (mh-delete-msg): Sync docstrings with manual.
--- a/lisp/mh-e/mh-acros.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-acros.el	Mon Dec 26 03:16:59 2005 +0000
@@ -55,7 +55,7 @@
       `(require 'cl)
     `(eval-when-compile (require 'cl))))
 
-;;; Macros to generate correct code for different emacs variants
+;; Macros to generate correct code for different emacs variants
 
 (defmacro mh-do-in-gnu-emacs (&rest body)
   "Execute BODY if in GNU Emacs."
@@ -144,11 +144,11 @@
 
 (provide 'mh-acros)
 
-;;; Local Variables:
-;;; no-byte-compile: t
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; no-byte-compile: t
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
 ;; arch-tag: b383b49a-494f-4ed0-a30a-cb6d5d2da4ff
 ;;; mh-acros.el ends here
--- a/lisp/mh-e/mh-alias.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-alias.el	Mon Dec 26 03:16:59 2005 +0000
@@ -38,7 +38,10 @@
 					; completing-read-multiple.
 (eval-when-compile (defvar mail-abbrev-syntax-table))
 
+
+
 ;;; Autoloads
+
 (eval-when (compile load eval)
   (ignore-errors
     (require 'mailabbrev)
@@ -71,6 +74,7 @@
 You can update the alias list manually using \\[mh-alias-reload].")
 
 
+
 ;;; Alias Loading
 
 (defun mh-alias-tstamp (arg)
@@ -228,6 +232,7 @@
       (mh-alias-reload)))
 
 
+
 ;;; Alias Expansion
 
 (defun mh-alias-ali (alias &optional user)
@@ -312,6 +317,7 @@
         (delete-region begin end)
         (insert expansion)))))
 
+
 ;;; Adding addresses to alias file.
 
 (defun mh-alias-suggest-alias (string &optional no-comma-swap)
@@ -653,10 +659,10 @@
 
 (provide 'mh-alias)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 49879e46-5aa3-4569-bece-e5a58731d690
+;; arch-tag: 49879e46-5aa3-4569-bece-e5a58731d690
 ;;; mh-alias.el ends here
--- a/lisp/mh-e/mh-comp.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-comp.el	Mon Dec 26 03:16:59 2005 +0000
@@ -52,7 +52,9 @@
 (defvar mh-mml-mode-default)
 (defvar mh-identity-menu)
 
+
 ;;; Autoloads
+
 (autoload 'mail-mode-fill-paragraph "sendmail")
 (autoload 'mm-handle-displayed-p "mm-decode")
 
@@ -80,6 +82,8 @@
 when this function is called.  Also, the hook `sc-pre-hook' is run
 before, and `sc-post-hook' is run after the guts of this function.")
 
+
+
 ;;; Site customization (see also mh-utils.el):
 
 (defvar mh-send-prog "send"
@@ -91,6 +95,8 @@
 This allows transaction log to be visible if -watch, -verbose or -snoop are
 used.")
 
+
+
 ;;; Scan Line Formats
 
 (defvar mh-note-repl ?-
@@ -824,7 +830,7 @@
 
 (put 'mh-letter-mode 'mode-class 'special)
 
-;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
+;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
 (eval-when-compile (defvar mh-letter-menu nil))
 (easy-menu-define
   mh-letter-menu mh-letter-mode-map "Menu for MH-E letter mode."
@@ -874,8 +880,11 @@
      mh-mh-to-mime-undo (equal mh-compose-insertion 'mh)]
     ["Kill This Draft"          mh-fully-kill-draft t]))
 
+
+
 ;;; Help Messages
-;;; Group messages logically, more or less.
+
+;; Group messages logically, more or less.
 (defvar mh-letter-mode-help-messages
   '((nil
      "Send letter:          \\[mh-send-letter]"
@@ -994,7 +1003,7 @@
   ;; Enable undo since a show-mode buffer might have been reused.
   (buffer-enable-undo)
   (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map)
-  (mh-funcall-if-exists mh-toolbar-init :letter)
+  (mh-funcall-if-exists mh-tool-bar-init :letter)
   (make-local-variable 'font-lock-defaults)
   (cond
    ((or (equal mh-highlight-citation-style 'font-lock)
@@ -2026,8 +2035,11 @@
     (goto-char (point-max))
     (mh-letter-next-header-field)))
 
-;;; Build the letter-mode keymap:
-;;; If this changes, modify mh-letter-mode-help-messages accordingly, above.
+
+
+;;; Build mh-letter-mode keymap
+
+;; If this changes, modify mh-letter-mode-help-messages accordingly, above.
 (gnus-define-keys  mh-letter-mode-map
   " "                   mh-letter-complete-or-space
   ","                   mh-letter-confirm-address
@@ -2089,10 +2101,10 @@
 
 (provide 'mh-comp)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 62865511-e610-4923-b0b5-f45a8ab70a34
+;; arch-tag: 62865511-e610-4923-b0b5-f45a8ab70a34
 ;;; mh-comp.el ends here
--- a/lisp/mh-e/mh-customize.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-customize.el	Mon Dec 26 03:16:59 2005 +0000
@@ -83,6 +83,11 @@
   (require 'mh-init)
   (require 'mh-identity))
 
+;; For compiler warnings...
+(eval-when-compile
+  (defvar mh-show-buffer)
+  (defvar mh-show-folder-buffer))
+
 (defun mh-customize (&optional delete-other-windows-flag)
   "Customize MH-E variables.
 If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in
@@ -94,11 +99,6 @@
 
 
 
-;;; For compiler warnings...
-(eval-when-compile
-  (defvar mh-show-buffer)
-  (defvar mh-show-folder-buffer))
-
 ;;; MH-E Customization Groups
 
 (defgroup mh-e nil
@@ -198,9 +198,9 @@
   :link '(custom-manual "(mh-e)Threading")
   :group 'mh-e)
 
-(defgroup mh-toolbar nil
-  "The toolbar"
-  :link '(custom-manual "(mh-e)Toolbar")
+(defgroup mh-tool-bar nil
+  "The tool bar"
+  :link '(custom-manual "(mh-e)Tool Bar")
   :prefix "mh-"
   :group 'mh-e)
 
@@ -217,6 +217,8 @@
   :prefix "mh-"
   :group 'mh-e)
 
+
+
 ;;; Faces
 
 (defgroup mh-folder-faces nil
@@ -998,7 +1000,7 @@
 
 ;;; Scan Line Formats (:group 'mh-scan-line-formats)
 
-;;; Forward definition to avoid compiler and runtime error.
+;; Forward definition to avoid compiler and runtime error.
 (defvar mh-scan-format-file t)
 
 (defun mh-adaptive-cmd-note-flag-check (symbol value)
@@ -1163,9 +1165,9 @@
 
 ;;; Sequences (:group 'mh-sequences)
 
-;;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to
-;;; the docstring: "Additional sequences that should not to be preserved can be
-;;; specified by setting `mh-unpropagated-sequences' appropriately." XXX
+;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to
+;; the docstring: "Additional sequences that should not to be preserved can be
+;; specified by setting `mh-unpropagated-sequences' appropriately." XXX
 
 (defcustom mh-refile-preserves-sequences-flag t
   "*Non-nil means that sequences are preserved when messages are refiled.
@@ -1801,15 +1803,18 @@
 
 
 
-;;; The Toolbar (:group 'mh-toolbar)
+;;; The Tool Bar (:group 'mh-tool-bar)
 
 (defcustom mh-tool-bar-search-function 'mh-search-folder
-  "*Function called by the tool-bar search button.
-See `mh-search-folder' and `mh-index-search' for details."
+  "*Function called by the tool bar search button.
+
+Available functions include `mh-search-folder', the default, and
+`mh-index-search'. You can also choose \"Other Function\" from the \"Value
+Menu\" and enter a function of your own choosing."
   :type '(choice (const mh-search-folder)
                  (const mh-index-search)
-                 (function :tag "Other function"))
-  :group 'mh-toolbar)
+                 (function :tag "Other Function"))
+  :group 'mh-tool-bar)
 
 ;; Functions called from the tool bar
 (defun mh-tool-bar-search (&optional arg)
@@ -1819,7 +1824,7 @@
   (call-interactively mh-tool-bar-search-function))
 
 (defun mh-tool-bar-customize ()
-  "Call `mh-customize' from the toolbar."
+  "Call `mh-customize' from the tool bar."
   (interactive)
   (mh-customize t))
 
@@ -1830,9 +1835,9 @@
   (delete-other-windows))
 
 (defun mh-tool-bar-letter-help ()
-  "Visit \"(mh-e)Draft Editing\"."
+  "Visit \"(mh-e)Editing Drafts\"."
   (interactive)
-  (info "(mh-e)Draft Editing")
+  (info "(mh-e)Editing Drafts")
   (delete-other-windows))
 
 (defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag)
@@ -1855,45 +1860,35 @@
 
 ;; XEmacs has a couple of extra customizations...
 (mh-do-in-xemacs
-  (defcustom mh-xemacs-use-toolbar-flag (if (and (featurep 'toolbar)
-                                                 (featurep 'xpm)
-                                                 (device-on-window-system-p))
-                                            t
-                                          nil)
-    "*If non-nil, use toolbar.
-
-This will default to t if you are in an environment that supports
-toolbars and xpm."
+  (defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag
+    "*If non-nil, use tool bar.
+
+This option controls whether to show the MH-E icons at all. By default, this
+option is turned on if the window system supports tool bars. If your system
+doesn't support tool bars, then you won't be able to turn on this option."
     :type 'boolean
-    :group 'mh-toolbar)
-
-  (defcustom mh-xemacs-toolbar-position (if mh-xemacs-use-toolbar-flag
-                                            'default
-                                          nil)
-    "*Where to put the toolbar.
-
-Valid non-nil values are \"default\", \"top\", \"bottom\", \"left\",
-\"right\".  These match the four edges of the frame, with \"default\"
-meaning \"use the same position as the default-toolbar\".
-
-A nil value means do not use a toolbar.
-
-If this variable is set to anything other than \"default\" and the
-default-toolbar has a different positional setting from the value of
-this variable, then two toolbars will be displayed.  The MH-E toolbar
-and the default-toolbar."
-    :type '(radio (const :tag "Same position as the \"default-toolbar\""
-                         :value default)
-                  (const :tag "Along the top edge of the frame"
-                         :value top)
-                  (const :tag "Along the bottom edge of the frame"
-                         :value bottom)
-                  (const :tag "Along the left edge of the frame"
-                         :value left)
-                  (const :tag "Along the right edge of the frame"
-                         :value right)
-                  (const :tag "Don't use a toolbar" nil))
-    :group 'mh-toolbar))
+    :group 'mh-tool-bar
+    :set (lambda (symbol value)
+           (if (and (eq value t)
+                    (not mh-xemacs-has-tool-bar-flag))
+               (error "Tool bar not supported"))
+           (set-default symbol value)))
+
+  (defcustom mh-xemacs-tool-bar-position nil
+    "*Tool bar location.
+
+This option controls the placement of the tool bar along the four edges of the
+frame. You can choose from one of \"Same As Default Tool Bar\", \"Top\",
+\"Bottom\", \"Left\", or \"Right\". If this variable is set to anything other
+than \"Same As Default Tool Bar\" and the default tool bar is in a different
+location, then two tool bars will be displayed: the MH-E tool bar and the
+default tool bar."
+    :type '(radio (const :tag "Same As Default Tool Bar" :value nil)
+                  (const :tag "Top" :value top)
+                  (const :tag "Bottom" :value bottom)
+                  (const :tag "Left" :value left)
+                  (const :tag "Right" :value right))
+    :group 'mh-tool-bar))
 
 (defun mh-buffer-exists-p (mode)
   "Test whether a buffer with major mode MODE is present."
@@ -1996,7 +1991,7 @@
                                     (t 'folder-vectors)))
                  (list (cond ((eq type :letter) 'mh-tool-bar-letter-buttons)
                              (t 'mh-tool-bar-folder-buttons)))
-                 (key (intern (concat "mh-" type1 "toolbar-" name-str)))
+                 (key (intern (concat "mh-" type1 "tool-bar-" name-str)))
                  (setter (intern (concat type1 "-button-setter")))
                  (mbuttons (cond ((eq type :letter) 'letter-buttons)
                                  ((eq type :show) 'show-buttons)
@@ -2063,89 +2058,87 @@
                      tool-bar-map))))
          ;; Custom setter functions
          (defun mh-tool-bar-folder-buttons-set (symbol value)
-           "Construct toolbar for `mh-folder-mode' and `mh-show-mode'."
+           "Construct tool bar for `mh-folder-mode' and `mh-show-mode'."
            (set-default symbol value)
            (mh-tool-bar-folder-buttons-init))
          (defun mh-tool-bar-letter-buttons-set (symbol value)
-           "Construct toolbar for `mh-letter-mode'."
+           "Construct tool bar for `mh-letter-mode'."
            (set-default symbol value)
            (mh-tool-bar-letter-buttons-init)))
        ;; XEmacs specific code
        (mh-do-in-xemacs
-         (defvar mh-toolbar-folder-vector-map
+         (defvar mh-tool-bar-folder-vector-map
            ',(loop for button in folder-buttons
                    for vector in folder-vectors
                    collect (cons button vector)))
-         (defvar mh-toolbar-show-vector-map
+         (defvar mh-tool-bar-show-vector-map
            ',(loop for button in show-buttons
                    for vector in show-vectors
                    collect (cons button vector)))
-         (defvar mh-toolbar-letter-vector-map
+         (defvar mh-tool-bar-letter-vector-map
            ',(loop for button in letter-buttons
                    for vector in letter-vectors
                    collect (cons button vector)))
-         (defvar mh-toolbar-folder-buttons nil)
-         (defvar mh-toolbar-show-buttons nil)
-         (defvar mh-toolbar-letter-buttons nil)
+         (defvar mh-tool-bar-folder-buttons nil)
+         (defvar mh-tool-bar-show-buttons nil)
+         (defvar mh-tool-bar-letter-buttons nil)
          ;; Custom setter functions
          (defun mh-tool-bar-letter-buttons-set (symbol value)
            (set-default symbol value)
-           (when mh-xemacs-has-toolbar-flag
-             (setq mh-toolbar-letter-buttons
+           (when mh-xemacs-has-tool-bar-flag
+             (setq mh-tool-bar-letter-buttons
                    (loop for b in value
-                         collect (cdr (assoc b mh-toolbar-letter-vector-map))))))
+                         collect (cdr (assoc b mh-tool-bar-letter-vector-map))))))
          (defun mh-tool-bar-folder-buttons-set (symbol value)
            (set-default symbol value)
-           (when mh-xemacs-has-toolbar-flag
-             (setq mh-toolbar-folder-buttons
+           (when mh-xemacs-has-tool-bar-flag
+             (setq mh-tool-bar-folder-buttons
                    (loop for b in value
-                         collect (cdr (assoc b mh-toolbar-folder-vector-map))))
-             (setq mh-toolbar-show-buttons
+                         collect (cdr (assoc b mh-tool-bar-folder-vector-map))))
+             (setq mh-tool-bar-show-buttons
                    (loop for b in value
-                         collect (cdr (assoc b mh-toolbar-show-vector-map))))))
-         ;; Initialize toolbar
-         (defun mh-toolbar-init (mode)
-           "Install toolbar in MODE."
-           (let ((toolbar (cond ((eq mode :folder) mh-toolbar-folder-buttons)
-                                ((eq mode :letter) mh-toolbar-letter-buttons)
-                                ((eq mode :show) mh-toolbar-show-buttons)))
+                         collect (cdr (assoc b mh-tool-bar-show-vector-map))))))
+         (defun mh-tool-bar-init (mode)
+           "Install tool bar in MODE."
+           (let ((tool-bar (cond ((eq mode :folder) mh-tool-bar-folder-buttons)
+                                ((eq mode :letter) mh-tool-bar-letter-buttons)
+                                ((eq mode :show) mh-tool-bar-show-buttons)))
                  (height 37)
                  (width 40)
                  (buffer (current-buffer)))
-             (when (and mh-xemacs-toolbar-position mh-xemacs-use-toolbar-flag
-                        mh-xemacs-has-toolbar-flag)
+             (when mh-xemacs-use-tool-bar-flag
                (cond
-                ((eq mh-xemacs-toolbar-position 'top)
-                 (set-specifier top-toolbar toolbar buffer)
+                ((eq mh-xemacs-tool-bar-position 'top)
+                 (set-specifier top-toolbar tool-bar buffer)
                  (set-specifier top-toolbar-visible-p t)
                  (set-specifier top-toolbar-height height))
-                ((eq mh-xemacs-toolbar-position 'bottom)
-                 (set-specifier bottom-toolbar toolbar buffer)
+                ((eq mh-xemacs-tool-bar-position 'bottom)
+                 (set-specifier bottom-toolbar tool-bar buffer)
                  (set-specifier bottom-toolbar-visible-p t)
                  (set-specifier bottom-toolbar-height height))
-                ((eq mh-xemacs-toolbar-position 'left)
-                 (set-specifier left-toolbar toolbar buffer)
+                ((eq mh-xemacs-tool-bar-position 'left)
+                 (set-specifier left-toolbar tool-bar buffer)
                  (set-specifier left-toolbar-visible-p t)
                  (set-specifier left-toolbar-width width))
-                ((eq mh-xemacs-toolbar-position 'right)
-                 (set-specifier right-toolbar toolbar buffer)
+                ((eq mh-xemacs-tool-bar-position 'right)
+                 (set-specifier right-toolbar tool-bar buffer)
                  (set-specifier right-toolbar-visible-p t)
                  (set-specifier right-toolbar-width width))
-                (t (set-specifier default-toolbar toolbar buffer)))))))
-       ;; Declare customizable toolbars
+                (t (set-specifier default-toolbar tool-bar buffer)))))))
+       ;; Declare customizable tool bars
        (custom-declare-variable
         'mh-tool-bar-folder-buttons
         '(list ,@(mapcar (lambda (x) `(quote ,x)) folder-defaults))
-        "Choose buttons to include in MH-E folder/show toolbar."
-        :group 'mh-toolbar :set 'mh-tool-bar-folder-buttons-set
+        "List of buttons to include in MH-Folder tool bar."
+        :group 'mh-tool-bar :set 'mh-tool-bar-folder-buttons-set
         :type '(set ,@(loop for x in folder-buttons
                             for y in folder-docs
                             collect `(const :tag ,y ,x))))
        (custom-declare-variable
         'mh-tool-bar-letter-buttons
         '(list ,@(mapcar (lambda (x) `(quote ,x)) letter-defaults))
-        "Choose buttons to include in MH-E letter toolbar."
-        :group 'mh-toolbar :set 'mh-tool-bar-letter-buttons-set
+        "List of buttons to include in MH-Letter tool bar."
+        :group 'mh-tool-bar :set 'mh-tool-bar-letter-buttons-set
         :type '(set ,@(loop for x in letter-buttons
                             for y in letter-docs
                             collect `(const :tag ,y ,x)))))))
@@ -2301,15 +2294,24 @@
   :group 'mh-hooks
   :group 'mh-folder)
 
-(defcustom mh-folder-updated-hook nil
-  "Invoked when the folder actions (such as moves and deletes) are performed.
+(defcustom mh-before-commands-processed-hook nil
+  "Invoked before the folder actions (such as moves and deletes) are performed.
 Variables that are useful in this hook include `mh-delete-list' and
-`mh-refile-list' which can be used to see which changes are being made to
+`mh-refile-list' which can be used to see which changes will be made to
 current folder, `mh-current-folder'."
   :type 'hook
   :group 'mh-hooks
   :group 'mh-folder)
 
+(defcustom mh-after-commands-processed-hook nil
+  "Invoked after the folder actions (such as moves and deletes) are performed.
+Variables that are useful in this hook include `mh-folders-changed',
+which lists which folders were affected by deletes and refiles.  This
+list will always include the current folder, which is also available
+in `mh-current-folder'."
+  :type 'hook
+  :group 'mh-hooks)
+
 (defcustom mh-forward-hook nil
   "Invoked on the forwarded letter by \\<mh-folder-mode-map>\\[mh-forward]."
   :type 'hook
@@ -2403,6 +2405,8 @@
 
 ;;; Faces (:group 'mh-*-faces + group where faces described)
 
+
+
 ;;; Faces Used in Scan Listing (:group 'mh-folder-faces)
 
 (defvar mh-folder-body-face 'mh-folder-body
@@ -2767,10 +2771,10 @@
   "Face used for the current folder when it has unread messages."
   :group 'mh-speed-faces)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
-
-;;; arch-tag: 778d2a20-82e2-4276-be9d-309386776a68
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
+
+;; arch-tag: 778d2a20-82e2-4276-be9d-309386776a68
 ;;; mh-customize.el ends here
--- a/lisp/mh-e/mh-e.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-e.el	Mon Dec 26 03:16:59 2005 +0000
@@ -105,11 +105,12 @@
 The string is displayed after the folder's name.  nil for no annotation.")
 
 
+
 ;;; Scan Line Formats
 
-;;; Parameterize MH-E to work with different scan formats.  The defaults work
-;;; with the standard MH scan listings, in which the first 4 characters on
-;;; the line are the message number, followed by two places for notations.
+;; Parameterize MH-E to work with different scan formats.  The defaults work
+;; with the standard MH scan listings, in which the first 4 characters on
+;; the line are the message number, followed by two places for notations.
 
 ;; The following scan formats are passed to the scan program if the setting of
 ;; `mh-scan-format-file' is t. They are identical except the later one makes
@@ -459,6 +460,8 @@
 
 (defvar mh-refile-list nil)             ;List of folder names in mh-seq-list.
 
+(defvar mh-folders-changed nil)         ;For mh-after-commands-processed-hook.
+
 (defvar mh-next-direction 'forward)     ;Direction to move to next message.
 
 (defvar mh-view-ops ())                 ;Stack of ops that change the folder
@@ -483,6 +486,8 @@
 
 (defvar mh-colors-available-flag nil)   ;Are colors available?
 
+
+
 ;;; Macros and generic functions:
 
 (defun mh-mapc (function list)
@@ -1507,14 +1512,16 @@
     (mh-index-read-data))
   (mh-make-folder-mode-line))
 
-;;; Ensure new buffers won't get this mode if default-major-mode is nil.
+;; Ensure new buffers won't get this mode if default-major-mode is nil.
 (put 'mh-folder-mode 'mode-class 'special)
 
 
 
-;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
-;;; Menus for folder mode: folder, message, sequence (in that order)
-;;; folder-mode "Sequence" menu
+;;; Build mh-folder-mode menu
+
+;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
+;; Menus for folder mode: folder, message, sequence (in that order)
+;; folder-mode "Sequence" menu
 (easy-menu-define
   mh-folder-sequence-menu mh-folder-mode-map "Menu for MH-E folder-sequence."
   '("Sequence"
@@ -1535,7 +1542,7 @@
     "--"
     ["Push State Out to MH"             mh-update-sequences t]))
 
-;;; folder-mode "Message" menu
+;; folder-mode "Message" menu
 (easy-menu-define
   mh-folder-message-menu mh-folder-mode-map "Menu for MH-E folder-message."
   '("Message"
@@ -1568,7 +1575,7 @@
     ["Unpack Uuencoded Message..."      mh-store-msg (mh-get-msg-num nil)]
     ["Burst Digest Message"             mh-burst-digest (mh-get-msg-num nil)]))
 
-;;; folder-mode "Folder" menu
+;; folder-mode "Folder" menu
 (easy-menu-define
   mh-folder-folder-menu mh-folder-mode-map  "Menu for MH-E folder."
   '("Folder"
@@ -1742,7 +1749,7 @@
   (easy-menu-add mh-folder-message-menu)
   (easy-menu-add mh-folder-folder-menu)
   (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map)
-  (mh-funcall-if-exists mh-toolbar-init :folder)
+  (mh-funcall-if-exists mh-tool-bar-init :folder)
   (if (and mh-xemacs-flag
            font-lock-auto-fontify)
       (turn-on-font-lock)))             ; Force font-lock in XEmacs.
@@ -1786,7 +1793,7 @@
   (mh-visit-folder desktop-buffer-name)
   (current-buffer))
 
-;;; desktop-buffer-mode-handlers appeared in Emacs 22.
+;; desktop-buffer-mode-handlers appeared in Emacs 22.
 (if (fboundp 'desktop-buffer-mode-handlers)
     (add-to-list 'desktop-buffer-mode-handlers
                  '(mh-folder-mode . mh-restore-desktop-buffer)))
@@ -2144,13 +2151,15 @@
 
 (defun mh-process-commands (folder)
   "Process outstanding commands for FOLDER.
-The value of `mh-folder-updated-hook' is a list of functions to be called,
-with no arguments, before the commands are processed."
+The value of `mh-before-commands-processed-hook' is a list of functions
+to be called, with no arguments, before the commands are processed.
+After all cammands are processed, the functions in
+`mh-after-commands-processed-hook' are called with no arguments."
   (message "Processing deletes and refiles for %s..." folder)
   (set-buffer folder)
   (with-mh-folder-updating (nil)
-    ;; Run the hook while the lists are still valid
-    (run-hooks 'mh-folder-updated-hook)
+    ;; Run the before hook -- the refile and delete lists are still valid
+    (run-hooks 'mh-before-commands-processed-hook)
 
     ;; Update the unseen sequence if it exists
     (mh-update-unseen)
@@ -2217,17 +2226,23 @@
         (when (mh-speed-flists-active-p)
           (apply #'mh-speed-flists t folders-changed))
         (cond ((memq 'unthread mh-view-ops) (mh-thread-inc folder (point-max)))
-              (mh-index-data (mh-index-insert-folder-headers)))))
+              (mh-index-data (mh-index-insert-folder-headers))))
+
+      (and (buffer-file-name (get-buffer mh-show-buffer))
+           (not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer))))
+           ;; If "inc" were to put a new msg in this file,
+           ;; we would not notice, so mark it invalid now.
+           (mh-invalidate-show-buffer))
 
-    (and (buffer-file-name (get-buffer mh-show-buffer))
-         (not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer))))
-         ;; If "inc" were to put a new msg in this file,
-         ;; we would not notice, so mark it invalid now.
-         (mh-invalidate-show-buffer))
+      (setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil))
+      (mh-remove-all-notation)
+      (mh-notate-user-sequences)
 
-    (setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil))
-    (mh-remove-all-notation)
-    (mh-notate-user-sequences)
+      ;; Run the after hook -- now folders-changed is valid, 
+      ;; but not the lists of specific messages.
+      (let ((mh-folders-changed folders-changed))
+        (run-hooks 'mh-after-commands-processed-hook)))
+
     (message "Processing deletes and refiles for %s...done" folder)))
 
 (defun mh-update-unseen ()
@@ -2478,7 +2493,7 @@
 
 
 
-;;; Build the folder-mode keymap:
+;;; Build mh-folder-mode keymap:
 
 (suppress-keymap mh-folder-mode-map)
 
@@ -2631,15 +2646,15 @@
 
 ;;; Help Messages
 
-;;; If you add a new prefix, add appropriate text to the nil key.
-;;;
-;;; In general, messages are grouped logically. Taking the main commands for
-;;; example, the first line is "ways to view messages," the second line is
-;;; "things you can do with messages", and the third is "composing" messages.
-;;;
-;;; When adding a new prefix, ensure that the help message contains "what" the
-;;; prefix is for. For example, if the word "folder" were not present in the
-;;; `F' entry, it would not be clear what these commands operated upon.
+;; If you add a new prefix, add appropriate text to the nil key.
+;;
+;; In general, messages are grouped logically. Taking the main commands for
+;; example, the first line is "ways to view messages," the second line is
+;; "things you can do with messages", and the third is "composing" messages.
+;;
+;; When adding a new prefix, ensure that the help message contains "what" the
+;; prefix is for. For example, if the word "folder" were not present in the
+;; `F' entry, it would not be clear what these commands operated upon.
 (defvar mh-help-messages
   '((nil "[i]nc, [.]show, [,]show all, [n]ext, [p]revious,\n"
          "[d]elete, [o]refile, e[x]ecute,\n"
@@ -2682,10 +2697,10 @@
 
 (provide 'mh-e)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: cce884de-bd37-4104-9963-e4439d5ed22b
+;; arch-tag: cce884de-bd37-4104-9963-e4439d5ed22b
 ;;; mh-e.el ends here
--- a/lisp/mh-e/mh-funcs.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-funcs.el	Mon Dec 26 03:16:59 2005 +0000
@@ -39,6 +39,8 @@
 (mh-require-cl)
 (require 'mh-e)
 
+
+
 ;;; Scan Line Formats
 
 (defvar mh-note-copied "C"
@@ -47,6 +49,8 @@
 (defvar mh-note-printed "P"
   "Messages that have been printed are marked by this character.")
 
+
+
 ;;; Functions
 
 ;;;###mh-autoload
@@ -411,10 +415,10 @@
 
 (provide 'mh-funcs)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 1936c4f1-4843-438e-bc4b-a63bb75a7762
+;; arch-tag: 1936c4f1-4843-438e-bc4b-a63bb75a7762
 ;;; mh-funcs.el ends here
--- a/lisp/mh-e/mh-gnus.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-gnus.el	Mon Dec 26 03:16:59 2005 +0000
@@ -30,8 +30,8 @@
 
 ;;; Code:
 
-;;; Load libraries in a non-fatal way in order to see if certain functions are
-;;; pre-defined.
+;; Load libraries in a non-fatal way in order to see if certain functions are
+;; pre-defined.
 (load "mailabbrev" t t)
 (load "mailcap" t t)
 (load "mm-decode" t t)
@@ -147,10 +147,10 @@
 	disposition
       default)))
 
-;;; This is mm-save-part from Gnus 5.10 since that function in emacs21.2 is
-;;; buggy (the args to read-file-name are incorrect). When all supported
-;;; versions of Emacs come with at least Gnus 5.10, we can delete this
-;;; function and rename calls to mh-mm-save-part to mm-save-part.
+;; This is mm-save-part from Gnus 5.10 since that function in emacs21.2 is
+;; buggy (the args to read-file-name are incorrect). When all supported
+;; versions of Emacs come with at least Gnus 5.10, we can delete this
+;; function and rename calls to mh-mm-save-part to mm-save-part.
 (defun mh-mm-save-part (handle)
   "Write HANDLE to a file."
   (let ((name (mail-content-type-get (mm-handle-type handle) 'name))
@@ -181,12 +181,12 @@
 
 (provide 'mh-gnus)
 
-;;; Local Variables:
-;;; no-byte-compile: t
-;;; no-update-autoloads: t
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; no-byte-compile: t
+;; no-update-autoloads: t
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
 ;; arch-tag: 1e3638af-cad3-4c69-8427-bc8eb6e5e4fa
 ;;; mh-gnus.el ends here
--- a/lisp/mh-e/mh-identity.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-identity.el	Mon Dec 26 03:16:59 2005 +0000
@@ -282,10 +282,10 @@
 
 (provide 'mh-identity)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 07d66ef6-8726-4ac6-9ecf-e566cd5bfb45
+;; arch-tag: 07d66ef6-8726-4ac6-9ecf-e566cd5bfb45
 ;;; mh-identity.el ends here
--- a/lisp/mh-e/mh-inc.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-inc.el	Mon Dec 26 03:16:59 2005 +0000
@@ -98,10 +98,10 @@
 
 (provide 'mh-inc)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835
+;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835
 ;;; mh-inc.el ends here
--- a/lisp/mh-e/mh-index.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-index.el	Mon Dec 26 03:16:59 2005 +0000
@@ -26,18 +26,18 @@
 
 ;;; Commentary:
 
-;;;  (1) The following search engines are supported:
-;;;        swish++
-;;;        swish-e
-;;;        mairix
-;;;        namazu
-;;;        pick
-;;;        grep
-;;;
-;;;  (2) To use this package, you first have to build an index. Please read
-;;;      the documentation for `mh-index-search' to get started. That
-;;;      documentation will direct you to the specific instructions for your
-;;;      particular indexer.
+;;  (1) The following search engines are supported:
+;;        swish++
+;;        swish-e
+;;        mairix
+;;        namazu
+;;        pick
+;;        grep
+;;
+;;  (2) To use this package, you first have to build an index. Please read
+;;      the documentation for `mh-index-search' to get started. That
+;;      documentation will direct you to the specific instructions for your
+;;      particular indexer.
 
 ;;; Change Log:
 
@@ -91,17 +91,17 @@
 
 
 
-;;; A few different checksum programs are supported. The supported programs
-;;; are:
-;;;   1. md5sum
-;;;   2. md5
-;;;   3. openssl
-;;;
-;;; To add support for your favorite checksum program add a clause to the cond
-;;; statement in mh-checksum-choose. This should set the variable
-;;; mh-checksum-cmd to the command line needed to run the checsum program and
-;;; should set mh-checksum-parser to a function which returns a cons cell
-;;; containing the message number and checksum string.
+;; A few different checksum programs are supported. The supported programs
+;; are:
+;;   1. md5sum
+;;   2. md5
+;;   3. openssl
+;;
+;; To add support for your favorite checksum program add a clause to the cond
+;; statement in mh-checksum-choose. This should set the variable
+;; mh-checksum-cmd to the command line needed to run the checsum program and
+;; should set mh-checksum-parser to a function which returns a cons cell
+;; containing the message number and checksum string.
 
 (defvar mh-checksum-cmd)
 (defvar mh-checksum-parser)
@@ -152,8 +152,7 @@
 
 
 
-;;; Make sure that we don't produce too long a command line.
-
+;; Make sure that we don't produce too long a command line.
 (defvar mh-index-max-cmdline-args 500
   "Maximum number of command line args.")
 
@@ -1653,10 +1652,10 @@
 
 (provide 'mh-index)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 607762ad-0dff-4fe1-a27e-6c0dde0dcc47
+;; arch-tag: 607762ad-0dff-4fe1-a27e-6c0dde0dcc47
 ;;; mh-index ends here
--- a/lisp/mh-e/mh-init.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-init.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,4 +1,4 @@
-;;; mh-init.el --- MH-E initialization.
+;;; mh-init.el --- MH-E initialization
 
 ;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 
@@ -43,14 +43,14 @@
 (mh-require-cl)
 (require 'mh-utils)
 
-;;; Avoid compiler warnings.
+;; Avoid compiler warnings.
 (eval-when-compile (defvar image-load-path))
 
-;;; Set for local environment:
-;;; mh-progs and mh-lib used to be set in paths.el, which tried to
-;;; figure out at build time which of several possible directories MH
-;;; was installed into.  But if you installed MH after building Emacs,
-;;; this would almost certainly be wrong, so now we do it at run time.
+;; Set for local environment:
+;; mh-progs and mh-lib used to be set in paths.el, which tried to
+;; figure out at build time which of several possible directories MH
+;; was installed into.  But if you installed MH after building Emacs,
+;; this would almost certainly be wrong, so now we do it at run time.
 
 (defvar mh-progs nil
   "Directory containing MH commands, such as inc, repl, and rmm.")
@@ -350,10 +350,10 @@
 
 (provide 'mh-init)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
 ;; arch-tag: e8372aeb-d803-42b1-9c95-3c93ad22f63c
 ;;; mh-init.el ends here
--- a/lisp/mh-e/mh-junk.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-junk.el	Mon Dec 26 03:16:59 2005 +0000
@@ -420,10 +420,10 @@
 
 (provide 'mh-junk)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1
+;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1
 ;;; mh-junk.el ends here
--- a/lisp/mh-e/mh-mime.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-mime.el	Mon Dec 26 03:16:59 2005 +0000
@@ -219,9 +219,9 @@
 
 See also \\[mh-mh-to-mime].")
 
-;;; Delete mh-minibuffer-read-type and mh-mime-content-types and use
-;;; mml-minibuffer-read-type when Emacs20 is no longer supported unless we
-;;; think (mh-file-mime-type) is better than (mm-default-file-encoding).
+;; Delete mh-minibuffer-read-type and mh-mime-content-types and use
+;; mml-minibuffer-read-type when Emacs20 is no longer supported unless we
+;; think (mh-file-mime-type) is better than (mm-default-file-encoding).
 
 (defun mh-minibuffer-read-type (filename &optional default)
   "Return the content type associated with the given FILENAME.
@@ -1347,9 +1347,9 @@
     (mm-set-handle-multipart-parameter
      handle 'mh-region (cons (point-min-marker) (point-max-marker)))))
 
-;;; I rewrote the security part because Gnus doesn't seem to ever minimize
-;;; the button. That is once the mime-security button is pressed there seems
-;;; to be no way of getting rid of the inserted text.
+;; I rewrote the security part because Gnus doesn't seem to ever minimize
+;; the button. That is once the mime-security button is pressed there seems
+;; to be no way of getting rid of the inserted text.
 (defun mh-mime-security-show-details (handle)
   "Toggle display of detailed security info for HANDLE."
   (let ((details (mm-handle-multipart-ctl-parameter handle 'gnus-details)))
@@ -1509,10 +1509,10 @@
 
 (provide 'mh-mime)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 0dd36518-1b64-4a84-8f4e-59f422d3f002
+;; arch-tag: 0dd36518-1b64-4a84-8f4e-59f422d3f002
 ;;; mh-mime.el ends here
--- a/lisp/mh-e/mh-pick.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-pick.el	Mon Dec 26 03:16:59 2005 +0000
@@ -158,15 +158,22 @@
   (add-text-properties (point) (1- (line-end-position)) '(read-only t))
   (goto-char (point-max)))
 
-;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
+
+
+;;; Build mh-pick-mode menu
+
+;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
 (easy-menu-define
   mh-pick-menu mh-pick-mode-map "Menu for MH-E pick-mode"
   '("Pick"
     ["Execute the Search"       mh-pick-do-search t]))
 
 
+
+
 ;;; Help Messages
-;;; Group messages logically, more or less.
+
+;; Group messages logically, more or less.
 (defvar mh-pick-mode-help-messages
   '((nil
      "Search messages using pick:  \\[mh-pick-do-search]\n"
@@ -351,7 +358,8 @@
 
 
 ;;; Build the pick-mode keymap:
-;;; If this changes, modify mh-pick-mode-help-messages accordingly, above.
+
+;; If this changes, modify mh-pick-mode-help-messages accordingly, above.
 (gnus-define-keys  mh-pick-mode-map
   "\C-c?"               mh-help
   "\C-c\C-i"            mh-index-do-search
@@ -374,10 +382,10 @@
 
 (provide 'mh-pick)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: aef2b271-7768-42bd-a782-9a14ba9f83f7
+;; arch-tag: aef2b271-7768-42bd-a782-9a14ba9f83f7
 ;;; mh-pick.el ends here
--- a/lisp/mh-e/mh-print.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-print.el	Mon Dec 26 03:16:59 2005 +0000
@@ -183,7 +183,7 @@
      (setq mh-ps-print-color-option nil)
      (message "Colors will not be printed"))))
 
-;;; Old non-PS based printing
+;; Old non-PS based printing
 ;;;###mh-autoload
 (defun mh-print-msg (range)
   "Print RANGE the old fashioned way\\<mh-folder-mode-map>.
@@ -242,10 +242,10 @@
 
 (provide 'mh-print)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
 ;; arch-tag: 8d84d50b-2a49-4d0d-b51e-ba9c9b6fc679
 ;;; mh-print.el ends here
--- a/lisp/mh-e/mh-seq.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-seq.el	Mon Dec 26 03:16:59 2005 +0000
@@ -78,7 +78,10 @@
 ;; Shush the byte-compiler
 (defvar tool-bar-mode)
 
+
+
 ;;; Data structures (used in message threading)...
+
 (mh-defstruct (mh-thread-message (:conc-name mh-message-)
                                  (:constructor mh-thread-make-message))
   (id nil)
@@ -91,15 +94,20 @@
   message parent children
   (real-child-p t))
 
+
 
 ;;; Internal variables:
+
 (defvar mh-last-seq-used nil
   "Name of seq to which a msg was last added.")
 
 (defvar mh-non-seq-mode-line-annotation nil
   "Saved value of `mh-mode-line-annotation' when narrowed to a seq.")
 
+
+
 ;;; Maps and hashes...
+
 (defvar mh-thread-id-hash nil
   "Hashtable used to canonicalize message identifiers.")
 (defvar mh-thread-subject-hash nil
@@ -377,9 +385,10 @@
 
 
 
-;;; Commands to manipulate sequences.  Sequences are stored in an alist
-;;; of the form:
-;;;     ((seq-name msgs ...) (seq-name msgs ...) ...)
+;;; Commands to manipulate sequences.
+
+;; Sequences are stored in an alist of the form:
+;;     ((seq-name msgs ...) (seq-name msgs ...) ...)
 
 (defvar mh-sequence-history ())
 
@@ -412,7 +421,10 @@
         (error "No messages in sequence `%s'" seq))
     seq))
 
+
+
 ;;; Functions to read ranges with completion...
+
 (defvar mh-range-seq-names)
 (defvar mh-range-history ())
 (defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map))
@@ -702,11 +714,10 @@
 
 
 
-;;; Commands to handle new 'subject sequence.
-;;; Or "Poor man's threading" by psg.
+;;; Commands to handle new 'subject sequence ("Poor man's threading" by psg)
 
-;;; XXX: The function mh-subject-to-sequence-unthreaded uses the magic number
-;;;  41 for the max size of the subject part. Avoiding this would be desirable.
+;; XXX: The function mh-subject-to-sequence-unthreaded uses the magic number
+;;  41 for the max size of the subject part. Avoiding this would be desirable.
 (defun mh-subject-to-sequence (all)
   "Put all following messages with same subject in sequence 'subject.
 If arg ALL is t, move to beginning of folder buffer to collect all messages.
@@ -970,6 +981,8 @@
       (mh-thread-delete)
     (mh-delete-subject)))
 
+
+
 ;;; Message threading:
 
 (defmacro mh-thread-initialize-hash (var test)
@@ -1745,10 +1758,10 @@
 
 (provide 'mh-seq)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 8e952711-01a2-485b-bf21-c9e3ad4de942
+;; arch-tag: 8e952711-01a2-485b-bf21-c9e3ad4de942
 ;;; mh-seq.el ends here
--- a/lisp/mh-e/mh-speed.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-speed.el	Mon Dec 26 03:16:59 2005 +0000
@@ -558,10 +558,10 @@
 
 (provide 'mh-speed)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: d38ddcd4-3c00-4e37-99bf-8b89dda7b32c
+;; arch-tag: d38ddcd4-3c00-4e37-99bf-8b89dda7b32c
 ;;; mh-speed.el ends here
--- a/lisp/mh-e/mh-utils.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/mh-e/mh-utils.el	Mon Dec 26 03:16:59 2005 +0000
@@ -62,7 +62,10 @@
 (defvar font-lock-defaults)
 (defvar mark-active)
 
+
+
 ;;; Autoloads
+
 (autoload 'gnus-article-highlight-citation "gnus-cite")
 (autoload 'message-fetch-field "message")
 (autoload 'message-tokenize-header "message")
@@ -70,7 +73,10 @@
 (unless (fboundp 'make-hash-table)
   (autoload 'make-hash-table "cl"))
 
+
+
 ;;; CL Replacements
+
 (defun mh-search-from-end (char string)
   "Return the position of last occurrence of CHAR in STRING.
 If CHAR is not present in STRING then return nil. The function is used in lieu
@@ -79,10 +85,11 @@
         when (equal (aref string index) char) return index
         finally return nil))
 
-;;; Additional header fields that might someday be added:
-;;; "Sender: " "Reply-to: "
+;; Additional header fields that might someday be added:
+;; "Sender: " "Reply-to: "
 
 
+
 ;;; Scan Line Formats
 
 (defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)"
@@ -171,7 +178,8 @@
                                         ; this number
   (part-index-hash (make-hash-table)))  ; Avoid incrementing the part number
                                         ; for nested messages
-;;; This has to be a macro, since we do: (setf (mh-buffer-data) ...)
+
+;; This has to be a macro, since we do: (setf (mh-buffer-data) ...)
 (defmacro mh-buffer-data ()
   "Convenience macro to get the MIME data structures of the current buffer."
   `(gethash (current-buffer) mh-globals-hash))
@@ -457,6 +465,8 @@
       (gnus-article-highlight-citation t)
       (set-buffer-modified-p modified))))
 
+
+
 ;;; Internal bookkeeping variables:
 
 ;; Cached value of the `Path:' component in the user's MH profile.
@@ -510,6 +520,8 @@
 ;;Non-nil means next SPC or whatever goes to next undeleted message.
 (defvar mh-page-to-next-msg-flag nil)
 
+
+
 ;;; Internal variables local to a folder.
 
 ;; Name of current folder, a string.
@@ -554,7 +566,7 @@
             (cons modeline-buffer-id-left-extent "XEmacs%N:"))
           (cons modeline-buffer-id-right-extent " %17b")))))
 
-;;; This holds a documentation string used by describe-mode.
+;; This holds a documentation string used by describe-mode.
 (defun mh-showing-mode (&optional arg)
   "Change whether messages should be displayed.
 With arg, display messages iff ARG is positive."
@@ -574,6 +586,8 @@
 ;; Showing message with headers or normally.
 (defvar mh-showing-with-headers nil)
 
+
+
 ;;; MH-E macros
 
 (defmacro with-mh-folder-updating (save-modification-flag &rest body)
@@ -740,10 +754,10 @@
                         (mh-expand-file-name folder)
                       mh-folder-filename)))
 
-;;; Infrastructure to generate show-buffer functions from folder functions
-;;; XEmacs does not have deactivate-mark? What is the equivalent of
-;;; transient-mark-mode for XEmacs? Should we be restoring the mark in the
-;;; folder buffer after the operation has been carried out.
+;; Infrastructure to generate show-buffer functions from folder functions
+;; XEmacs does not have deactivate-mark? What is the equivalent of
+;; transient-mark-mode for XEmacs? Should we be restoring the mark in the
+;; folder buffer after the operation has been carried out.
 (defmacro mh-defun-show-buffer (function original-function
                                          &optional dont-return)
   "Define FUNCTION to run ORIGINAL-FUNCTION in folder buffer.
@@ -784,8 +798,8 @@
                                            (get-buffer cur-buffer-name))))
                       (pop-to-buffer (get-buffer cur-buffer-name) nil)))))))))
 
-;;; Generate interactive functions for the show buffer from the corresponding
-;;; folder functions.
+;; Generate interactive functions for the show buffer from the corresponding
+;; folder functions.
 (mh-defun-show-buffer mh-show-previous-undeleted-msg
                       mh-previous-undeleted-msg)
 (mh-defun-show-buffer mh-show-next-undeleted-msg
@@ -883,7 +897,10 @@
 (mh-defun-show-buffer mh-show-display-with-external-viewer
                       mh-display-with-external-viewer)
 
-;;; Populate mh-show-mode-map
+
+
+;;; Build mh-show-mode keymaps
+
 (gnus-define-keys mh-show-mode-map
   " "    mh-show-page-msg
   "!"    mh-show-refile-or-write-again
@@ -1081,7 +1098,7 @@
     ["Quit MH-E"                        mh-quit t]))
 
 
-;;; Ensure new buffers won't get this mode if default-major-mode is nil.
+;; Ensure new buffers won't get this mode if default-major-mode is nil.
 (put 'mh-show-mode 'mode-class 'special)
 
 ;; Avoid compiler warnings in XEmacs and Emacs 20
@@ -1120,7 +1137,7 @@
            font-lock-auto-fontify)
       (turn-on-font-lock))
   (set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map)
-  (mh-funcall-if-exists mh-toolbar-init :show)
+  (mh-funcall-if-exists mh-tool-bar-init :show)
   (when mh-decode-mime-flag
     (mh-make-local-hook 'kill-buffer-hook)
     (add-hook 'kill-buffer-hook 'mh-mime-cleanup nil t))
@@ -1260,10 +1277,10 @@
 
 
 
-;; Picon display
+;;; Picon display
 
-;;; XXX: This should be customizable. As a side-effect of setting this
-;;;   variable, arrange to reset mh-picon-existing-directory-list to 'unset.
+;; XXX: This should be customizable. As a side-effect of setting this
+;;   variable, arrange to reset mh-picon-existing-directory-list to 'unset.
 (defvar mh-picon-directory-list
   '("~/.picons" "~/.picons/users" "~/.picons/usenix" "~/.picons/news"
     "~/.picons/domains" "~/.picons/misc"
@@ -2388,6 +2405,8 @@
       (insert "\n\n"))
     (buffer-size)))
 
+
+
 ;;; Issue commands to MH.
 
 (defun mh-exec-cmd (command &rest args)
@@ -2593,10 +2612,10 @@
 
 (provide 'mh-utils)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
-;;; arch-tag: 1af39fdf-f66f-4b06-9b48-18a7656c8e36
+;; arch-tag: 1af39fdf-f66f-4b06-9b48-18a7656c8e36
 ;;; mh-utils.el ends here
--- a/lisp/progmodes/sh-script.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/progmodes/sh-script.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1336,7 +1336,7 @@
 The default style of this mode is that of Rosenblatt's Korn shell book.
 The syntax of the statements varies with the shell being used.  The
 following commands are available, based on the current shell's syntax:
-
+\\<sh-mode-map>
 \\[sh-case]	 case statement
 \\[sh-for]	 for loop
 \\[sh-function]	 function definition
--- a/lisp/ps-bdf.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/ps-bdf.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,9 @@
 ;;; ps-bdf.el --- BDF font file handler for ps-print
 
-;; Copyright (C) 1998, 1999, 2001, 2003 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1998, 1999, 2001  Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2001, 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: wp, BDF, font, PostScript
 ;; Maintainer: Kenichi Handa <handa@etl.go.jp>
--- a/lisp/subr.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/subr.el	Mon Dec 26 03:16:59 2005 +0000
@@ -2280,7 +2280,7 @@
   (let ((str (make-symbol "string")))
     `(dynamic-completion-table
       (lambda (,str)
-        (unless (listp ,var)
+        (when (functionp ,var)
           (setq ,var (,fun ,@args)))
         ,var))))
 
--- a/lisp/term/mac-win.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/term/mac-win.el	Mon Dec 26 03:16:59 2005 +0000
@@ -1140,6 +1140,7 @@
 
 ;;;; Keyboard layout/language change events
 (defun mac-handle-language-change (event)
+  "Set keyboard coding system to what is specified in EVENT."
   (interactive "e")
   (let ((coding-system
 	 (cdr (assq (car (cadr event)) mac-script-code-coding-systems))))
@@ -1201,21 +1202,14 @@
     (when (and (stringp data)
 	       (setq data-type (get-text-property 0 'foreign-selection data)))
       (cond ((eq data-type 'public.utf16-plain-text)
-	     (if (fboundp 'mac-code-convert-string)
-		 (let ((s (mac-code-convert-string data nil coding)))
-		   (if s
-		       (setq data (decode-coding-string s coding))
-		     (setq data
-			   ;; (decode-coding-string data 'utf-16) is
-			   ;; not correct because
-			   ;; public.utf16-plain-text is defined as
-			   ;; native byte order, no BOM.
-			   (decode-coding-string
-			    (mac-code-convert-string data nil 'utf-8)
-			    'utf-8))))
-	       ;; No `mac-code-convert-string' means non-Carbon, which
-	       ;; implies big endian.
-	       (setq data (decode-coding-string data 'utf-16be))))
+	     (let ((encoded (and (fboundp 'mac-code-convert-string)
+				 (mac-code-convert-string data nil coding))))
+	       (if encoded
+		   (setq data (decode-coding-string encoded coding))
+		 (setq data
+		       (decode-coding-string data
+					     (if (eq (byteorder) ?B)
+						 'utf-16be 'utf-16le))))))
 	    ((eq data-type 'com.apple.traditional-mac-plain-text)
 	     (setq data (decode-coding-string data coding)))
 	    ((eq data-type 'public.file-url)
@@ -1332,25 +1326,17 @@
 	  (remove-text-properties 0 (length str) '(composition nil) str)
 	  (cond
 	   ((eq type 'public.utf16-plain-text)
-	    (if (fboundp 'mac-code-convert-string)
-		(let (s)
-		  (when (memq coding (find-coding-systems-string str))
-		    (setq coding
-			  (coding-system-change-eol-conversion coding 'mac))
-		    (setq s (mac-code-convert-string
-			     (encode-coding-string str coding)
-			     coding nil)))
-		  (setq str (or s
-				;; (encode-coding-string str
-				;; 'utf-16-mac) is not correct because
-				;; public.utf16-plain-text is defined
-				;; as native byte order, no BOM.
-				(mac-code-convert-string
-				 (encode-coding-string str 'utf-8-mac)
-				 'utf-8 nil))))
-	      ;; No `mac-code-convert-string' means non-Carbon, which
-	      ;; implies big endian.
-	      (setq str (encode-coding-string str 'utf-16be-mac))))
+	    (let (s)
+	      (when (and (fboundp 'mac-code-convert-string)
+			 (memq coding (find-coding-systems-string str)))
+		(setq coding (coding-system-change-eol-conversion coding 'mac))
+		(setq s (mac-code-convert-string
+			 (encode-coding-string str coding)
+			 coding nil)))
+	      (setq str (or s
+			    (encode-coding-string str
+						  (if (eq (byteorder) ?B)
+						      'utf-16be 'utf-16le))))))
 	   ((eq type 'com.apple.traditional-mac-plain-text)
 	    (let ((encodables (find-coding-systems-string str))
 		  (rest mac-script-code-coding-systems))
@@ -1484,6 +1470,7 @@
 	 (decode-coding-string utf8-text 'utf-8))))
 
 (defun mac-ae-open-documents (event)
+  "Open the documents specified by the Apple event EVENT."
   (interactive "e")
   (let ((ae (mac-event-ae event)))
     (dolist (file-name (mac-ae-list ae nil 'undecoded-file-name))
@@ -1511,6 +1498,8 @@
       (error "No text in Apple event.")))
 
 (defun mac-ae-get-url (event)
+  "Open the URL specified by the Apple event EVENT.
+Currently the `mailto' scheme is supported."
   (interactive "e")
   (let* ((ae (mac-event-ae event))
 	 (parsed-url (url-generic-parse-url (mac-ae-text ae))))
@@ -1541,10 +1530,12 @@
 (define-key mac-apple-event-map [hicommand about] 'display-splash-screen)
 
 (defun mac-services-open-file ()
+  "Open the file specified by the selection value for Services."
   (interactive)
   (find-file-existing (x-selection-value mac-services-selection)))
 
 (defun mac-services-open-selection ()
+  "Create a new buffer containing the selection value for Services."
   (interactive)
   (switch-to-buffer (generate-new-buffer "*untitled*"))
   (insert (x-selection-value mac-services-selection))
@@ -1553,6 +1544,7 @@
   )
 
 (defun mac-services-mail-selection ()
+  "Prepare a mail buffer containing the selection value for Services."
   (interactive)
   (compose-mail)
   (rfc822-goto-eoh)
@@ -1560,10 +1552,12 @@
   (insert (x-selection-value mac-services-selection) "\n"))
 
 (defun mac-services-mail-to ()
+  "Prepare a mail buffer to be sent to the selection value for Services."
   (interactive)
   (compose-mail (x-selection-value mac-services-selection)))
 
 (defun mac-services-insert-text ()
+  "Insert the selection value for Services."
   (interactive)
   (let ((text (x-selection-value mac-services-selection)))
     (if (not buffer-read-only)
@@ -1584,6 +1578,7 @@
   'mac-services-mail-to)
 
 (defun mac-dispatch-apple-event (event)
+  "Dispatch EVENT according to the keymap `mac-apple-event-map'."
   (interactive "e")
   (let* ((binding (lookup-key mac-apple-event-map (mac-event-spec event)))
 	 (service-message
--- a/lisp/textmodes/org.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/textmodes/org.el	Mon Dec 26 03:16:59 2005 +0000
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.00
+;; Version: 4.01
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -81,6 +81,13 @@
 ;;
 ;; Changes:
 ;; -------
+;; Version 4.01
+;;    - Tags can also be set remotely from agenda buffer.
+;;    - Boolean logic for tag searches.
+;;    - Additional agenda commands can be configured through the variable
+;;      `org-agenda-custom-commands'.
+;;    - Minor bug fixes.
+;;
 ;; Version 4.00
 ;;    - Headlines can contain TAGS, and Org-mode can produced a list
 ;;      of matching headlines based on a TAG search expression.
@@ -199,7 +206,7 @@
 ;;    - Cleanup.
 ;;
 ;; Version 3.07
-;;    - Some folding incinsistencies removed.
+;;    - Some folding inconsistencies removed.
 ;;    - BBDB links to company-only entries.
 ;;    - Bug fixes and global cleanup.
 ;;
@@ -266,7 +273,7 @@
 
 ;;; Customization variables
 
-(defvar org-version "4.00"
+(defvar org-version "4.01"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
@@ -594,6 +601,23 @@
   :group 'org-agenda
   :type '(repeat file))
 
+(defcustom org-agenda-custom-commands
+  '(("w" todo "WAITING")
+    ("u" tags "+WORK+URGENT-BOSS"))
+  "Custom commands for the agenda.
+These commands will be offered on the splash screen displayed by the
+agenda dispatcher \\[org-agenda].  Each entry is a list of 3 items:
+
+key    The key (as a string) to be associated with the command.
+type   The command type, either `todo' for a todo list with a specific
+       todo keyword, or `tags' for a tags search.
+match  What to search for.  Either a TODO keyword, or a tags match query."
+  :group 'org-agenda
+  :type '(repeat
+	  (list (string :tag "Key")
+		(choice :tag "Type" (const tags) (const todo))
+		(string :tag "Match"))))
+
 (defcustom org-select-timeline-window t
   "Non-nil means, after creating a timeline, move cursor into Timeline window.
 When nil, cursor will remain in the current window."
@@ -981,7 +1005,7 @@
   :tag "Org Tags"
   :group 'org)
 
-(defcustom org-tags-column 40
+(defcustom org-tags-column 48
   "The column to which tags should be indented in a headline.
 If this number is positive, it specified the column.  If it is negative,
 it means that the tags should be flushright to that column.  For example,
@@ -989,9 +1013,19 @@
   :group 'org-tags
   :type 'integer)
 
+(defcustom org-auto-align-tags t
+  "Non-nil means, realign tags after pro/demotion of TODO state change.
+These operations change the length of a headline and therefore shift
+the tags around.  With this options turned on, after each such operation
+the tags are again aligned to `org-tags-column'."
+  :group 'org-tags
+  :type 'boolean)
+
 (defcustom org-use-tag-inheritance t
   "Non-nil means, tags in levels apply also for sublevels.
-When nil, only the tags directly give in a specific line apply there."
+When nil, only the tags directly give in a specific line apply there.
+If you turn off this option, you very likely want to turn on the
+companion option `org-tags-match-list-sublevels'."
   :group 'org-tags
   :type 'boolean)
 
@@ -1000,7 +1034,9 @@
 Because of tag inheritance (see variable `org-use-tag-inheritance'),
 the sublevels of a headline matching a tag search often also match
 the same search.  Listing all of them can create very long lists.
-Setting this variable to nil causes subtrees to be skipped."
+Setting this variable to nil causes subtrees to be skipped.
+This option is off by default, because inheritance in on.  If you turn
+inheritance off, you very likely want to turn this option on."
   :group 'org-tags
   :type 'boolean)
 
@@ -2721,6 +2757,8 @@
 	 (up-head (make-string (1- level) ?*)))
     (if (= level 1) (error "Cannot promote to level 0. UNDO to recover"))
     (replace-match up-head nil t)
+    ;; Fixup tag positioning
+    (and org-auto-align-tags (org-set-tags nil t))
     (if org-adapt-indentation
 	(org-fixup-indentation "^ " "" "^ ?\\S-"))))
 
@@ -2732,6 +2770,8 @@
   (let* ((level (save-match-data (funcall outline-level)))
 	 (down-head (make-string (1+ level) ?*)))
     (replace-match down-head nil t)
+    ;; Fixup tag positioning
+    (and org-auto-align-tags (org-set-tags nil t))
     (if org-adapt-indentation
 	(org-fixup-indentation "^ " "  " "^\\S-"))))
 
@@ -3467,6 +3507,8 @@
 	    (org-log-done)
 	  (if (not this)
 	      (org-log-done t))))
+      ;; Fixup tag positioning
+      (and org-auto-align-tags (org-set-tags nil t))
       (run-hooks 'org-after-todo-state-change-hook)))
   ;; Fixup cursor location if close to the keyword
   (if (and (outline-on-heading-p)
@@ -4226,6 +4268,7 @@
 (define-key org-agenda-mode-map "o"        'delete-other-windows)
 (define-key org-agenda-mode-map "L"        'org-agenda-recenter)
 (define-key org-agenda-mode-map "t"        'org-agenda-todo)
+(define-key org-agenda-mode-map ":"        'org-agenda-set-tags)
 (define-key org-agenda-mode-map "."        'org-agenda-goto-today)
 (define-key org-agenda-mode-map "d"        'org-agenda-day-view)
 (define-key org-agenda-mode-map "w"        'org-agenda-week-view)
@@ -4293,6 +4336,7 @@
      :style toggle :selected org-agenda-follow-mode :active t]
     "--"
     ["Cycle TODO" org-agenda-todo t]
+    ["Set Tags" org-agenda-set-tags t]
     ("Reschedule"
      ["Reschedule +1 day" org-agenda-date-later t]
      ["Reschedule -1 day" org-agenda-date-earlier t]
@@ -4338,7 +4382,7 @@
 (defun org-agenda (arg)
   "Dispatch agenda commands to collect entries to the agenda buffer.
 Prompts for a character to select a command.  Any prefix arg will be passed
-on to the selected command.  Possible selections are:
+on to the selected command.  The default selections are:
 
 a     Call `org-agenda' to display the agenda for the current day or week.
 t     Call `org-todo-list' to display the global todo list.
@@ -4349,35 +4393,70 @@
       selections, like `+WORK+URGENT-WITHBOSS'.
 M     like `m', but select only TODO entries, no ordinary headlines.
 
+More commands can be added by configuring the variable
+`org-agenda-custom-commands'.
+
 If the current buffer is in Org-mode and visiting a file, you can also
 first press `1' to indicate that the agenda should be temporarily
 restricted to the current file."
   (interactive "P")
-  (let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode)))
-	c)
-    (put 'org-agenda-files 'org-restrict nil)
-    (message"[a]genda [t]odoList [T]odoKwd [m]atchTags [M]atchTagsTodo%s"
-	    (if restrict-ok " [1]JustThisFile" ""))
-    (setq c (read-char-exclusive))
-    (message "")
-    (when (equal c ?1)
-      (if restrict-ok
-	  (put 'org-agenda-files 'org-restrict (list (buffer-file-name)))
-	(error "Cannot restrict agenda to current buffer"))
-      (message "Single file: [a]genda [t]odoList [T]odoKwd [m]atchTags [M]atchTagsTodo")
-      (setq c (read-char-exclusive))
-      (message ""))
-    (cond
-     ((equal c ?a) (call-interactively 'org-agenda-list))
-     ((equal c ?t) (call-interactively 'org-todo-list))
-     ((equal c ?T)
-      (setq current-prefix-arg (or arg '(4)))
-      (call-interactively 'org-todo-list))
-     ((equal c ?m) (call-interactively 'org-tags-view))
-     ((equal c ?M)
-      (setq current-prefix-arg (or arg '(4)))
-      (call-interactively 'org-tags-view))
-     (t (error "Invalid key")))))
+  (catch 'exit
+    (let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode)))
+	  (custom org-agenda-custom-commands)
+	  c entry key type string)
+      (put 'org-agenda-files 'org-restrict nil)
+      (save-window-excursion
+	(delete-other-windows)
+	(switch-to-buffer-other-window " *Agenda Commands*")
+	(erase-buffer)
+	(insert
+	 "Press key for an agenda command:
+--------------------------------
+a   Agenda for current week or day
+t   List of all TODO entries             T   Entries with special TODO kwd
+m   Match a TAGS query                   M   Like m, but only TODO entries.
+C   Configure your own agenda commands")
+	(while (setq entry (pop custom))
+	  (setq key (car entry) type (nth 1 entry) string (nth 2 entry))
+	  (insert (format "\n%-4s%-12s: %s"
+			  key
+			  (if (eq type 'tags) "Tags query" "TODO keyword")
+			  string)))
+	(goto-char (point-min))
+	(fit-window-to-buffer)
+	(message "Press key for agenda command%s"
+		(if restrict-ok ", or [1] to restrict to current file" ""))
+	(setq c (read-char-exclusive))
+	(message "")
+	(when (equal c ?1)
+	  (if restrict-ok
+	      (put 'org-agenda-files 'org-restrict (list (buffer-file-name)))
+	    (error "Cannot restrict agenda to current buffer"))
+	  (message "Press key for agenda command%s"
+		   (if restrict-ok " (restricted to current file)" ""))
+	  (setq c (read-char-exclusive))
+	  (message "")))
+      (require 'calendar)  ; FIXME: can we avoid this for some commands?
+      (cond
+       ((equal c ?C) (customize-variable 'org-agenda-custom-commands))
+       ((equal c ?a) (call-interactively 'org-agenda-list))
+       ((equal c ?t) (call-interactively 'org-todo-list))
+       ((equal c ?T)
+	(setq current-prefix-arg (or arg '(4)))
+	(call-interactively 'org-todo-list))
+       ((equal c ?m) (call-interactively 'org-tags-view))
+       ((equal c ?M)
+	(setq current-prefix-arg (or arg '(4)))
+	(call-interactively 'org-tags-view))
+       ((setq entry (assoc (char-to-string c) org-agenda-custom-commands))
+	(setq type (nth 1 entry) string (nth 2 entry))
+	(cond
+	 ((eq type 'tags)
+	  (org-tags-view current-prefix-arg string))
+	 ((eq type 'todo)
+	  (org-todo-list string))
+	 (t (error "Invalid custom agenda command type %s" type))))
+       (t (error "Invalid key"))))))
 
 (defun org-fit-agenda-window ()
   "Fit the window to the buffer size."
@@ -4667,7 +4746,8 @@
 	 (kwds org-todo-keywords)
 	 (completion-ignore-case t)
 	 (org-select-this-todo-keyword
-	  (and arg (integerp arg) (nth (1- arg) org-todo-keywords)))
+	  (if (stringp arg) arg
+	    (and arg (integerp arg) (nth (1- arg) org-todo-keywords))))
 	 rtn rtnall files file pos)
     (when (equal arg '(4))
       (setq org-select-this-todo-keyword
@@ -6005,6 +6085,30 @@
     (org-agenda-change-all-lines newhead hdmarker)
     (beginning-of-line 1)))
 
+(defun org-agenda-set-tags ()
+  "Set tags for the current headline."
+  (interactive)
+  (org-agenda-check-no-diary)
+  (let* ((marker (or (get-text-property (point) 'org-marker)
+		     (org-agenda-error)))
+	 (hdmarker (get-text-property (point) 'org-hd-marker))
+	 (buffer (marker-buffer hdmarker))
+	 (pos (marker-position hdmarker))
+	 (buffer-read-only nil)
+	 newhead)
+    (with-current-buffer buffer
+      (widen)
+      (goto-char pos)
+      (org-show-hidden-entry)
+      (save-excursion
+	(and (outline-next-heading)
+	     (org-flag-heading nil)))   ; show the next heading
+      (call-interactively 'org-set-tags)
+      (end-of-line 1)
+      (setq newhead (org-get-heading)))
+    (org-agenda-change-all-lines newhead hdmarker)
+    (beginning-of-line 1)))
+
 (defun org-agenda-date-later (arg &optional what)
   "Change the date of this item to one day later."
   (interactive "p")
@@ -6269,21 +6373,34 @@
 (defun org-make-tags-matcher (match)
   "Create the TAGS matcher form for the tags-selecting string MATCH."
   (unless match
+    ;; Get a new match request, with completion
     (setq org-last-tags-completion-table
 	  (or (org-get-buffer-tags)
 	      org-last-tags-completion-table))
     (setq match (completing-read
 		 "Tags: " 'org-tags-completion-function nil nil nil
 		 'org-tags-history)))
-  (let ((match0 match) minus tag mm matcher)
-    (while (string-match "^\\([-+:]\\)?\\([A-Za-z_]+\\)" match)
-      (setq minus (and (match-end 1) (equal (string-to-char match) ?-))
-	    tag (match-string 2 match)
-	    match (substring match (match-end 0))
-	    mm (list 'member (downcase tag) 'tags-list)
-	    mm (if minus (list 'not mm) mm))
-      (push mm matcher))
-    (cons match0 (cons 'and matcher))))
+  ;; parse the string and create a lisp form
+  (let ((match0 match) minus tag mm matcher orterms term orlist)
+    (setq orterms (org-split-string match "|"))
+    (while (setq term (pop orterms))
+      (while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_]+\\)" term)
+	(setq minus (and (match-end 1)
+			 (equal (match-string 1 term) "-"))
+	      tag (match-string 2 term)
+	      term (substring term (match-end 0))
+	      mm (list 'member (downcase tag) 'tags-list)
+	      mm (if minus (list 'not mm) mm))
+	(push mm matcher))
+      (push (if (> (length matcher) 1) (cons 'and matcher) (car matcher))
+	    orlist)
+      (setq matcher nil))
+    (setq matcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist)))
+    ;; Return the string and lisp forms of the matcher
+    (cons match0 matcher)))
+
+;;(org-make-tags-matcher "&hello&-you")
+
 
 ;;;###autoload
 (defun org-tags-view (&optional todo-only match keep-modes)
@@ -6368,32 +6485,35 @@
       (if just-align
 	  (setq tags current)
 	(setq org-last-tags-completion-table
-	      (or (org-get-buffer-tags);; FIXME: replace +- with :, so that we can use history stuff???
+	      (or (org-get-buffer-tags)
 		  org-last-tags-completion-table))
 	(setq tags
 	      (let ((org-add-colon-after-tag-completion t))
 		(completing-read "Tags: " 'org-tags-completion-function
 				 nil nil current 'org-tags-history)))
-	(while (string-match "[-+]" tags)
+	(while (string-match "[-+&]+" tags)
 	  (setq tags (replace-match ":" t t tags)))
 	(unless (string-match ":$" tags) (setq tags (concat tags ":")))
 	(unless (string-match "^:" tags) (setq tags (concat ":" tags))))
-      (beginning-of-line 1)
-      (looking-at (concat "\\(.*\\)\\(" (regexp-quote current) "\\)[ \t]*"))
-      (setq hd (save-match-data (org-trim (match-string 1))))
-      (delete-region (match-beginning 0) (match-end 0))
-      (insert hd " ")
-      (move-to-column (max (current-column)
-			   (if (> org-tags-column 0)
-			       org-tags-column
-			     (- org-tags-column (length tags))))
-		      t)
-      (insert tags)
+      (if (equal current "")
+	  (end-of-line 1)
+	(beginning-of-line 1)
+	(looking-at (concat "\\(.*\\)\\(" (regexp-quote current) "\\)[ \t]*"))
+	(setq hd (match-string 1))
+	(delete-region (match-beginning 0) (match-end 0))
+	(insert (org-trim hd) " "))
+      (unless (equal tags "")
+	(move-to-column (max (current-column)
+			     (if (> org-tags-column 0)
+				 org-tags-column
+			       (- (- org-tags-column) (length tags))))
+			t)
+	(insert tags))
       (move-to-column col))))
 
 (defun org-tags-completion-function (string predicate &optional flag)
   (let (s1 s2 rtn (ctable org-last-tags-completion-table))
-    (if (string-match "^\\(.*[-+:]\\)\\([^-+:]*\\)$" string)
+    (if (string-match "^\\(.*[-+:&|]\\)\\([^-+:&|]*\\)$" string)
         (setq s1 (match-string 1 string)
               s2 (match-string 2 string))
       (setq s1 "" s2 string)) 
@@ -11610,19 +11730,13 @@
      ["Goto Calendar" org-goto-calendar t]
      ["Date from Calendar" org-date-from-calendar t])
     "--"
-    ("Agenda/Summary Views"
-     "Current File"
+    ["Agenda Command" org-agenda t]
+    ("File List for Agenda")
+    ("Special views current file"
      ["TODO Tree"  org-show-todo-tree t]
      ["Check Deadlines" org-check-deadlines t]
      ["Timeline" org-timeline t]
-     ["Tags Tree" org-tags-sparse-tree t]
-     "--"
-     "All Agenda Files"
-     ["Command Dispatcher" org-agenda t]
-     ["TODO list" org-todo-list t]
-     ["Agenda" org-agenda-list t]
-     ["Tags View" org-tags-view t])
-    ("File List for Agenda")
+     ["Tags Tree" org-tags-sparse-tree t])
     "--"
     ("Hyperlinks"
      ["Store Link (Global)" org-store-link t]
@@ -12011,5 +12125,3 @@
 
 ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
 ;;; org.el ends here
-
-
--- a/lisp/textmodes/picture.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/textmodes/picture.el	Mon Dec 26 03:16:59 2005 +0000
@@ -661,60 +661,69 @@
 ;;;###autoload
 (defun picture-mode ()
   "Switch to Picture mode, in which a quarter-plane screen model is used.
+\\<picture-mode-map>
 Printing characters replace instead of inserting themselves with motion
 afterwards settable by these commands:
-  C-c <	  Move left after insertion.
-  C-c >	  Move right after insertion.
-  C-c ^	  Move up after insertion.
-  C-c .	  Move down after insertion.
-  C-c `	  Move northwest (nw) after insertion.
-  C-c '	  Move northeast (ne) after insertion.
-  C-c /	  Move southwest (sw) after insertion.
-  C-c \\   Move southeast (se) after insertion.
-  C-u C-c `  Move westnorthwest (wnw) after insertion.
-  C-u C-c '  Move eastnortheast (ene) after insertion.
-  C-u C-c /  Move westsouthwest (wsw) after insertion.
-  C-u C-c \\  Move eastsoutheast (ese) after insertion.
+
+ Move left after insertion:            \\[picture-movement-left]
+ Move right after insertion:           \\[picture-movement-right]
+ Move up after insertion:              \\[picture-movement-up]
+ Move down after insertion:            \\[picture-movement-down]
+
+ Move northwest (nw) after insertion:  \\[picture-movement-nw]
+ Move northeast (ne) after insertion:  \\[picture-movement-ne]
+ Move southwest (sw) after insertion:  \\[picture-movement-sw]
+ Move southeast (se) after insertion:  \\[picture-movement-se]
+
+ Move westnorthwest (wnw) after insertion:  C-u \\[picture-movement-nw]
+ Move eastnortheast (ene) after insertion:  C-u \\[picture-movement-ne]
+ Move westsouthwest (wsw) after insertion:  C-u \\[picture-movement-sw]
+ Move eastsoutheast (ese) after insertion:  C-u \\[picture-movement-se]
+
 The current direction is displayed in the mode line.  The initial
 direction is right.  Whitespace is inserted and tabs are changed to
 spaces when required by movement.  You can move around in the buffer
 with these commands:
-  \\[picture-move-down]	  Move vertically to SAME column in previous line.
-  \\[picture-move-up]	  Move vertically to SAME column in next line.
-  \\[picture-end-of-line]	  Move to column following last non-whitespace character.
-  \\[picture-forward-column]	  Move right inserting spaces if required.
-  \\[picture-backward-column]	  Move left changing tabs to spaces if required.
-  C-c C-f Move in direction of current picture motion.
-  C-c C-b Move in opposite direction of current picture motion.
-  Return  Move to beginning of next line.
+
+ Move vertically to SAME column in previous line: \\[picture-move-down]
+ Move vertically to SAME column in next line:     \\[picture-move-up]
+ Move to column following last
+  non-whitespace character:                       \\[picture-end-of-line]
+ Move right, inserting spaces if required:        \\[picture-forward-column]
+ Move left changing tabs to spaces if required:   \\[picture-backward-column]
+ Move in direction of current picture motion:     \\[picture-motion]
+ Move opposite to current picture motion:         \\[picture-motion-reverse]
+ Move to beginning of next line:                  \\[next-line]
+
 You can edit tabular text with these commands:
-  M-Tab	  Move to column beneath (or at) next interesting character.
-	    `Indents' relative to a previous line.
-  Tab	  Move to next stop in tab stop list.
-  C-c Tab Set tab stops according to context of this line.
-	    With ARG resets tab stops to default (global) value.
-	    See also documentation of variable	picture-tab-chars
-	    which defines \"interesting character\".  You can manually
-	    change the tab stop list with command \\[edit-tab-stops].
+
+ Move to column beneath (or at) next interesting
+  character (see variable `picture-tab-chars'):   \\[picture-tab-search]
+ Move to next stop in tab stop list:              \\[picture-tab]
+ Set tab stops according to context of this line: \\[picture-set-tab-stops]
+   (With ARG, resets tab stops to default value.)
+ Change the tab stop list:                        \\[edit-tab-stops]
+
 You can manipulate text with these commands:
-  C-d	  Clear (replace) ARG columns after point without moving.
-  C-c C-d Delete char at point - the command normally assigned to C-d.
-  \\[picture-backward-clear-column]  Clear (replace) ARG columns before point, moving back over them.
-  \\[picture-clear-line]	  Clear ARG lines, advancing over them.	 The cleared
-	    text is saved in the kill ring.
-  \\[picture-open-line]	  Open blank line(s) beneath current line.
+ Clear ARG columns after point without moving:    \\[picture-clear-column]
+ Delete char at point:                            \\[delete-char]
+ Clear ARG columns backward:                      \\[picture-backward-clear-column]
+ Clear ARG lines, advancing over them:            \\[picture-clear-line]
+  (the cleared text is saved in the kill ring)
+ Open blank line(s) beneath current line:         \\[picture-open-line]
+
 You can manipulate rectangles with these commands:
-  C-c C-k Clear (or kill) a rectangle and save it.
-  C-c C-w Like C-c C-k except rectangle is saved in named register.
-  C-c C-y Overlay (or insert) currently saved rectangle at point.
-  C-c C-x Like C-c C-y except rectangle is taken from named register.
-  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
-	    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.
+  Clear a rectangle and save it:                  \\[picture-clear-rectangle]
+  Clear a rectangle, saving in a named register:  \\[picture-clear-rectangle-to-register]
+  Insert currently saved rectangle at point:      \\[picture-yank-rectangle]
+  Insert rectangle from named register:           \\[picture-yank-rectangle-from-register]
+  Draw a rectangular box around mark and point:   \\[picture-draw-rectangle]
+  Copies a rectangle to a register:               \\[copy-rectangle-to-register]
+  Undo effects of rectangle overlay commands:     \\[advertised-undo]
+
+You can return to the previous mode with \\[picture-mode-exit], which
+also strips trailing whitespace from every line.  Stripping is suppressed
+by supplying an argument.
 
 Entry to this mode calls the value of `picture-mode-hook' if non-nil.
 
--- a/lisp/tooltip.el	Mon Dec 26 02:21:31 2005 +0000
+++ b/lisp/tooltip.el	Mon Dec 26 03:16:59 2005 +0000
@@ -29,7 +29,15 @@
 
 (defvar comint-prompt-regexp)
 
-;;; Customizable settings
+(defgroup tooltip nil
+  "Customization group for the `tooltip' package."
+  :group 'help
+  :group 'gud
+  :group 'mouse
+  :group 'tools
+  :version "21.1"
+  :tag "Tool Tips")
+
 ;;; Switching tooltips on/off
 
 ;; We don't set track-mouse globally because this is a big redisplay
@@ -60,14 +68,8 @@
   (setq show-help-function
 	(if tooltip-mode 'tooltip-show-help nil)))
 
-(defgroup tooltip nil
-  "Customization group for the `tooltip' package."
-  :group 'help
-  :group 'gud
-  :group 'mouse
-  :group 'tools
-  :version "21.1"
-  :tag "Tool Tips")
+
+;;; Customizable settings
 
 (defcustom tooltip-delay 0.7
   "Seconds to wait before displaying a tooltip the first time."
@@ -92,9 +94,10 @@
 
 (defcustom tooltip-x-offset 5
   "X offset, in pixels, for the display of tooltips.
-The offset is relative to the position of the mouse.  It must
-be chosen so that the tooltip window doesn't contain the mouse
-when it pops up.
+The offset is the distance between the X position of the mouse and
+the left border of the tooltip window.  It must be chosen so that the
+tooltip window doesn't contain the mouse when it pops up, or it may
+interfere with clicking where you wish.
 
 If `tooltip-frame-parameters' includes the `left' parameter,
 the value of `tooltip-x-offset' is ignored."
@@ -103,9 +106,10 @@
 
 (defcustom tooltip-y-offset +20
   "Y offset, in pixels, for the display of tooltips.
-The offset is relative to the position of the mouse.  It must
-be chosen so that the tooltip window doesn't contain the mouse
-when it pops up.
+The offset is the distance between the Y position of the mouse and
+the top border of the tooltip window.  It must be chosen so that the
+tooltip window doesn't contain the mouse when it pops up, or it may
+interfere with clicking where you wish.
 
 If `tooltip-frame-parameters' includes the `top' parameter,
 the value of `tooltip-y-offset' is ignored."
--- a/lispref/ChangeLog	Mon Dec 26 02:21:31 2005 +0000
+++ b/lispref/ChangeLog	Mon Dec 26 03:16:59 2005 +0000
@@ -1,3 +1,19 @@
+2005-12-20  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* customize.texi (Type Keywords): Delete xref to "Text help-echo",
+	because it is confusing.  If the :help-echo keyword is a function,
+	it is not directly used as the :help-echo overlay property, as the
+	xref seems to suggest (it does not take the appropriate args).
+
+2005-12-19  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* customize.texi (Common Keywords): Fix Texinfo usage.
+	(Group Definitions, Variable Definitions): Update for new
+	conventions for using `*' in docstrings.
+
+	* tips.texi (Documentation Tips): Update for new conventions for
+	using `*' in docstrings.
+
 2005-12-16  Richard M. Stallman  <rms@gnu.org>
 
 	* minibuf.texi (Minibuffer Contents): Minor cleanup.
--- a/lispref/customize.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/lispref/customize.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -76,7 +76,7 @@
 Link to a web page; @var{url} is a string which specifies the
 @acronym{URL}.  The link appears in the customization buffer as
 @var{url} and invokes the WWW browser specified by
-@var{browse-url-browser-function}.
+@code{browse-url-browser-function}.
 
 @item (emacs-commentary-link @var{library})
 Link to the commentary section of a library; @var{library} is a string
@@ -155,8 +155,7 @@
 @defmac defgroup group members doc [keyword value]@dots{}
 Declare @var{group} as a customization group containing @var{members}.
 Do not quote the symbol @var{group}.  The argument @var{doc} specifies
-the documentation string for the group.  It should not start with a
-@samp{*} as in @code{defcustom}; that convention is for variables only.
+the documentation string for the group.
 
 The argument @var{members} is a list specifying an initial set of
 customization items to be members of the group.  However, most often
@@ -211,12 +210,9 @@
 @defmac defcustom option default doc [keyword value]@dots{}
 Declare @var{option} as a customizable user option variable.  Do not
 quote @var{option}.  The argument @var{doc} specifies the documentation
-string for the variable.  It should often start with a @samp{*} to mark
-it as a @dfn{user option} (@pxref{Defining Variables}).  Do not start
-the documentation string with @samp{*} for options which cannot or
-normally should not be set with @code{set-variable}; examples of the
-former are global minor mode options such as
-@code{global-font-lock-mode} and examples of the latter are hooks.
+string for the variable.  There is no need to start it with a @samp{*}
+because @code{defcustom} automatically marks @var{option} as a
+@dfn{user option} (@pxref{Defining Variables}).
 
 If @var{option} is void, @code{defcustom} initializes it to
 @var{default}.  @var{default} should be an expression to compute the
@@ -1015,7 +1011,6 @@
 @code{help-echo} string and may actually be a function or form evaluated
 to yield a help string.  If it is a function, it is called with one
 argument, the widget.
-@xref{Text help-echo}.
 
 @item :match @var{function}
 Specify how to decide whether a value matches the type.  The
--- a/lispref/help.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/lispref/help.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -133,11 +133,17 @@
 (symbol-plist 'command-line-processed)
      @result{} (variable-documentation 188902)
 @end group
+@group
+(documentation-property 'emacs 'group-documentation)
+     @result{} "Customization of the One True Editor."
+@end group
 @end smallexample
 @end defun
 
 @defun documentation function &optional verbatim
 This function returns the documentation string of @var{function}.
+@code{documentation} handles macros, named keyboard macros, and
+special forms, as well as ordinary functions.
 
 If @var{function} is a symbol, this function first looks for the
 @code{function-documentation} property of that symbol; if that has a
@@ -157,6 +163,11 @@
 @code{documentation} returns @code{nil}.
 @end defun
 
+@defun face-documentation face
+This function returns the documentation string of @var{face} as a
+face.
+@end defun
+
 @c Wordy to prevent overfull hboxes.  --rjc 15mar92
 Here is an example of using the two functions, @code{documentation} and
 @code{documentation-property}, to display the documentation strings for
@@ -498,14 +509,27 @@
 about them, see @ref{Help, , Help, emacs, The GNU Emacs Manual}.  Here
 we describe some program-level interfaces to the same information.
 
-@deffn Command apropos regexp &optional do-all
+@deffn Command apropos pattern &optional do-all
 This function finds all ``meaningful'' symbols whose names contain a
-match for the regular expression @var{regexp}, and returns a list of
-them, with associated documentation (@pxref{Regular Expressions}).  It
-also displays the symbols in a buffer named @samp{*Apropos*}, each
+match for the apropos pattern @var{pattern}.  An apropos pattern is
+either a word to match, a space-separated list of words of which at
+least two must match, or a regular expression (if any special regular
+expression characters occur).  A symbol is ``meaningful'' if it has a
+definition as a function, variable, or face, or has properties.
+
+The function returns a list of elements that look like this:
+
+@example
+(@var{symbol} @var{score} @var{fn-doc} @var{var-doc} @var{plist-doc} @var{widget-doc} @var{face-doc} @var{group-doc})
+@end example
+
+Here, @var{score} is an integer measure of how important the symbol
+seems to be as a match, and the remaining elements are documentation
+strings for @var{symbol}'s various roles (or @code{nil}).
+
+It also displays the symbols in a buffer named @samp{*Apropos*}, each
 with a one-line description taken from the beginning of its
-documentation string.  A symbol is ``meaningful'' if it has a
-definition as a function, variable, or face, or has properties.
+documentation string.
 
 @c Emacs 19 feature
 If @var{do-all} is non-@code{nil}, or if the user option
--- a/lispref/tips.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/lispref/tips.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -640,11 +640,10 @@
 include before the first blank line so as to make this display useful.
 
 @item
-A variable's documentation string should start with @samp{*} if the
-variable is one that users would often want to set interactively.  If
-the value is a long list, or a function, or if the variable would be set
-only in init files, then don't start the documentation string with
-@samp{*}.  @xref{Defining Variables}.
+When you define a variable that users ought to set interactively, you
+normally should use @code{defcustom}.  However, if for some reason you
+use @code{defvar} instead, start the doc string with a @samp{*}.
+@xref{Defining Variables}.
 
 @item
 The documentation string for a variable that is a yes-or-no flag should
--- a/mac/ChangeLog	Mon Dec 26 02:21:31 2005 +0000
+++ b/mac/ChangeLog	Mon Dec 26 03:16:59 2005 +0000
@@ -1,3 +1,7 @@
+2005-12-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* makefile.MPW (macselect.c.x): Depend on keymap.h.
+
 2005-12-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* Emacs.app/Contents/Info.plist: Add CFBundleURLTypes key and
--- a/mac/makefile.MPW	Mon Dec 26 02:21:31 2005 +0000
+++ b/mac/makefile.MPW	Mon Dec 26 03:16:59 2005 +0000
@@ -903,6 +903,7 @@
 	"{Src}macterm.h" ¶
 		"{Src}macgui.h" ¶
 		"{Src}frame.h" ¶
+	"{Src}keymap.h" ¶
 	{BLOCKINPUT_H_GROUP}
 
 {Src}mac.c Ä ¶
--- a/man/ChangeLog	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/ChangeLog	Mon Dec 26 03:16:59 2005 +0000
@@ -1,4 +1,44 @@
-2005-12-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+2005-12-20  Juri Linkov  <juri@jurta.org>
+
+	* files.texi (VC Status): Put P and N near p and n.
+
+2005-12-20  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.texi: (Tags): Boolean logic documented.
+	(Agenda Views): Document custom commands.
+
+2005-12-20  David Kastrup  <dak@gnu.org>
+
+	* faq.texi (AUCTeX): Update version and mailing list info.
+
+2005-12-19  Richard M. Stallman  <rms@gnu.org>
+
+	* programs.texi (Electric C): Delete the info about newline control.
+	(Other C Commands): Minor cleanup.
+	(Left Margin Paren): Minor cleanup.
+
+2005-12-19  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* custom.texi (Easy Customization): Add "Browsing Custom" to menu.
+	(Customization Groups): Delete text moved to "Browsing Custom".
+	(Browsing Custom): New node.
+	(Specific Customization): Clarify which commands only work for
+	loaded options.
+
+2005-12-18  Bill Wohler  <wohler@newt.com>
+
+	* frames.texi (Tool Bars): Shorten text of previous change.
+
+2005-12-18  Aaron S. Hawley  <Aaron.Hawley@uvm.edu>
+
+	* files.texi (VC Status): Document log-view mode.
+
+2005-12-18  Bill Wohler  <wohler@newt.com>
+
+	* frames.texi (Tool Bars): Mention that you can turn off tool bars
+	permanently via the customize interface.
+
+2005-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus.texi (MIME Commands): Mention addition of
 	multipart/alternative to gnus-buttonized-mime-types and add xref
@@ -10,7 +50,7 @@
 
 2005-12-16  Carsten Dominik  <dominik@science.uva.nl>
 
-	* org.texi: (Tags): New section.
+	* org.texi (Tags): New section.
 	(Agenda Views): Chapter reorganized.
 
 2005-12-16  Ralf Angeli  <angeli@iwi.uni-sb.de>
@@ -43,7 +83,7 @@
 
 2005-12-12  Carsten Dominik  <dominik@science.uva.nl>
 
-	* org.texi: (Progress Logging): New section.
+	* org.texi (Progress Logging): New section.
 
 2005-12-12  Richard M. Stallman  <rms@gnu.org>
 
@@ -355,7 +395,7 @@
 	* help.texi (Help Echo): By default, help echos are only shown on
 	mouse-over, not on point-over.
 
-2005-11-04  J,bi(Br,bt(Bme Marant  <jerome@marant.org>
+2005-11-04  J,Ai(Br,At(Bme Marant  <jerome@marant.org>
 
 	* misc.texi (Shell Mode): Describe how to activate password echoing.
 
@@ -4158,7 +4198,7 @@
 	(../info/ses, ses.dvi): New targets.
 	* ses.texi: New file.
 
-2002-09-06  Pavel Jan,Bm(Bk  <Pavel@Janik.cz>
+2002-09-06  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
 
 	* texinfo.tex: Update to texinfo 4.2.
 
@@ -4166,7 +4206,7 @@
 
 	* reftex.texi: Update to RefTeX 4.19.
 
-2002-06-17  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+2002-06-17  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
 	* Makefile.in (INFO_TARGETS, DVI_TARGETS): Add Tramp.
 	(../info/tramp, tramp.dvi): New targets.
--- a/man/custom.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/custom.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -206,6 +206,7 @@
 
 @menu
 * Groups: Customization Groups.   How options are classified in a structure.
+* Browsing: Browsing Custom.   Browsing and searching for options and faces.
 * Changing a Variable::      How to edit a value and set an option.
 * Saving Customizations::    Specifying the file for saving customizations.
 * Face Customization::       How to edit the attributes of a face.
@@ -275,9 +276,13 @@
 pertaining to that feature.  You can also go straight to a particular
 group by name, using the command @kbd{M-x customize-group}.
 
+@node Browsing Custom
+@subsection Browsing and Searching for Options and Faces
 @findex customize-browse
-  You can view the structure of customization groups on a larger scale
-with @kbd{M-x customize-browse}.  This command creates a special kind of
+You can use @kbd{M-x customize} to browse the groups and options, but
+often @kbd{M-x customize-browse} is a more efficient alternative.
+That is because it lets you view the structure of customization groups
+on a larger scale.  This command creates a special kind of
 customization buffer which shows only the names of the groups (and
 variables and faces), and their structure.
 
@@ -291,6 +296,13 @@
 that group and its contents, just that variable, or just that face.
 This is the way to set values in it.
 
+  If you can guess part of the name of the options you are interested
+in, then sometimes @kbd{M-x customize-apropos} can be another useful
+way to search for options.  However, unlike @code{customize} and
+@code{customize-browse}, @code{customize-apropos} can only find
+options that are loaded in the current Emacs session.  @xref{Specific
+Customization,, Customizing Specific Items}.
+
 @node Changing a Variable
 @subsection Changing a Variable
 
@@ -627,7 +639,9 @@
 customize-variable} and specify the variable name.  This sets up the
 customization buffer with just one variable---the one that you asked
 for.  Editing, setting and saving the value work as described above,
-but only for the specified variable.
+but only for the specified variable.  Minibuffer completion is very
+handy if you only know part of the name.  However, it only finds
+options that have been loaded in the current Emacs session.
 
 @findex customize-face
   Likewise, you can modify a specific face, chosen by name, using
@@ -638,15 +652,16 @@
   You can also set up the customization buffer with a specific group,
 using @kbd{M-x customize-group}.  The immediate contents of the chosen
 group, including user options, faces, and other groups, all appear
-as well.  However, these subgroups' own contents are not included.
+as well (even if not already loaded).  However, the subgroups' own
+contents are not included.
 
 @findex customize-apropos
   To control more precisely what to customize, you can use @kbd{M-x
 customize-apropos}.  You specify a regular expression as argument; then
-all options, faces and groups whose names match this regular expression
-are set up in the customization buffer.  If you specify an empty regular
-expression, this includes @emph{all} groups, options and faces (but
-that takes a long time).
+all @emph{loaded} options, faces and groups whose names match this
+regular expression are set up in the customization buffer.  If you
+specify an empty regular expression, this includes @emph{all} groups,
+options and faces (but that takes a long time).
 
 @findex customize-changed-options
   When you upgrade to a new Emacs version, you might want to customize
@@ -654,7 +669,8 @@
 To do this, use @kbd{M-x customize-changed-options} and specify a
 previous Emacs version number using the minibuffer.  It creates a
 customization buffer which shows all the options (and groups) whose
-definitions have been changed since the specified version.
+definitions have been changed since the specified version.  (Not just
+those that are already loaded.)
 
 @findex customize-saved
 @findex customize-customized
--- a/man/faq.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/faq.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -3844,10 +3844,12 @@
 AUC@TeX{} is a set of sophisticated major modes for @TeX{}, LaTeX,
 ConTeXt, and Texinfo offering context-sensitive syntax highlighting,
 indentation, formatting and folding, macro completion, @TeX{} shell
-functionality, and debugging.  Some important supplemental packages are
-described in @ref{Introduction, RefTeX, Introduction, reftex, Ref@TeX{}
-User Manual}, and
-@uref{http://preview-latex.sourceforge.net,preview-latex}.
+functionality, and debugging.  Be also sure to check out
+@ref{Introduction, RefTeX, Introduction, reftex, Ref@TeX{} User Manual}.
+Current versions of AUC@TeX{} include the
+@uref{http://www.gnu.org/software/auctex/preview-latex,preview-latex}
+package for WYSIWYG previews of various LaTeX constructs in the Emacs
+source buffer.
 
 @table @b
 
@@ -3859,7 +3861,7 @@
 @email{dak@@gnu.org, David Kastrup}
 
 @item Latest version
-11.54
+11.82
 
 @item Distribution
 @uref{ftp://ftp.gnu.org/pub/gnu/auctex/}
@@ -3868,8 +3870,8 @@
 @uref{http://www.gnu.org/software/auctex/}
 
 @item Mailing list:
-Subscription requests to @email{auc-tex-subscribe@@sunsite.dk}@*
-Submissions to @email{auc-tex@@sunsite.dk}
+Subscription requests to @email{auctex-request@@gnu.org}@*
+Submissions to @email{auctex@@gnu.org}
 
 @end table
 
--- a/man/files.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/files.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -1788,7 +1788,46 @@
   To view the detailed version control status and history of a file,
 type @kbd{C-x v l} (@code{vc-print-log}).  It displays the history of
 changes to the current file, including the text of the log entries.  The
-output appears in a separate window.
+output appears in a separate window.  The point is centered at the
+revision of the file that is currently being visited.
+
+From the change log buffer, the following keys are used to move
+between the logs of revisions and files, to view past revisions, and
+to view diffs:
+
+@table @kbd
+@item p
+Move to the previous revision-item in the buffer.  (Revision entries in the log
+buffer are usually in reverse-chronological order, so the previous
+revision-item usually corresponds to a newer revision.)  A numeric
+prefix argument is a repeat count.
+
+@item n
+Move to the next revision-item (which most often corresponds to the
+previous revision of the file).  A numeric prefix argument is a repeat
+count.
+
+@item P
+Move to the log of the previous file, when the logs of multiple files
+are in the log buffer (@pxref{VC Dired Mode}).  Otherwise, just move
+to the beginning of the log.  A numeric prefix argument is a repeat
+count, so @kbd{C-u 10 P} would move backward 10 files.
+
+@item N
+Move to the log of the next file, when the logs of multiple files are
+in the log buffer (@pxref{VC Dired Mode}).  It also takes a numeric
+prefix argument as a repeat count.
+
+@item f
+Visit the revision indicated at the current line, like typing @kbd{C-x
+v ~} and specifying this revision's number (@pxref{Old Versions}).
+
+@item d
+Display the diff (@pxref{Comparing Files}) between the revision
+indicated at the current line and the next earlier revision.  This is
+useful to see what actually changed when the revision indicated on the
+current line was committed.
+@end table
 
 @node VC Undo
 @subsubsection Undoing Version Control Actions
--- a/man/frames.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/frames.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -963,7 +963,7 @@
 bar uses monochrome icons (PBM or XBM format).
 
   You can turn display of tool bars on or off with @kbd{M-x
-tool-bar-mode}.
+tool-bar-mode} or by customizing the option @code{tool-bar-mode}.
 
 @node Dialog Boxes
 @section Using Dialog Boxes
--- a/man/help.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/help.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -47,7 +47,7 @@
 @item C-h a @var{topics} @key{RET}
 This searches for commands whose names match @var{topics}, which
 should be a keyword, a list of keywords, or a regular expression
-(@pxref{Regexps}).  This command displays a the matches in a new
+(@pxref{Regexps}).  This command displays all the matches in a new
 buffer.  @xref{Apropos}.
 
 @item C-h i d m emacs @key{RET} i @var{topic} @key{RET}
@@ -336,7 +336,7 @@
 @end quotation
 
 @findex apropos
-  To list all Lisp symbols that contain a match an Apropos pattern,
+  To list all Lisp symbols that contain a match for an Apropos pattern,
 not just the ones that are defined as commands, use the command
 @kbd{M-x apropos} instead of @kbd{C-h a}.  This command does not check
 key bindings by default; specify a numeric argument if you want it to
@@ -374,7 +374,7 @@
   By default, Apropos lists the search results for
 @code{apropos-documentation} in order of relevance of the match.  If
 the variable @code{apropos-documentation-sort-by-scores} is
-@code{nil}, Apropos lists the symbosl found in alphabetical order.
+@code{nil}, Apropos lists the symbols found in alphabetical order.
 
 @node Library Keywords
 @section Keyword Search for Lisp Libraries
--- a/man/org.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/org.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -4,7 +4,7 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 4.00
+@set VERSION 4.01
 @set DATE December 2005
 
 @dircategory Emacs
@@ -229,7 +229,7 @@
 
 @example
 @r{@bullet{} as an outline extension with visibility cycling and structure editing}
-@r{@bullet{} as an ASCII system and table editor to take structured notes}
+@r{@bullet{} as an ASCII system and table editor for taking structured notes}
 @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities}
 @r{@bullet{} as a simple hypertext system, with HTML export}
 @r{@bullet{} as a TODO list editor}
@@ -532,7 +532,7 @@
 @node Archiving, Sparse trees, Structure editing, Document Structure
 @section Archiving
 @cindex archiving
-@cindex filing subtries
+@cindex filing subtrees
 
 When a project represented by a (sub)tree is finished, you may want
 to move the tree to an archive place, either in the same file under a
@@ -618,12 +618,24 @@
 
 @example
 * Meeting with the French group      :WORK:
-** Summary by Frank                  :BOSS:
+** Summary by Frank                  :BOSS:NOTES:
 *** TODO Prepare slides for him      :ACTION:
 @end example
 @noindent
-the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, and
-@samp{:ACTION:}.
+the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:},
+@samp{:NOTES:}, and @samp{:ACTION:}.  When executing tag searches and
+Org-mode finds that a certain headline matches the search criterion,
+it will not check any sublevel headline, assuming that these likely
+also match, and that the list of matches can become very long.  You
+can influence inheritance and searching using the variables
+@code{org-use-tag-inheritance} and
+@code{org-tags-match-list-sublevels}.
+
+@kindex M-@key{TAB}
+Tags can simply be typed into the buffer.  After a colon,
+@kbd{M-@key{TAB}} offers completion on all tags being used in the
+current buffer.  There are also special commands for inserting tags,
+and for executing searches based on tags.
 
 @table @kbd
 @kindex C-c C-c
@@ -631,29 +643,33 @@
 @cindex completion, of tags
 Enter new tags for the current headline.  The minibuffer will prompt
 for a list of tags and offer completion with respect to all other tags
-used in the current buffer.  After pressing @key{RET}, the tags will
+used in the current buffer.  Several tags, separated by colons, may be
+specified at the prompt.  After pressing @key{RET}, the tags will
 be inserted and aligned to @code{org-tags-column}.  When called with a
 @kbd{C-u} prefix, align all tags in the current buffer to that column,
-just to make things look nice.  Tags can also be just typed into the
-buffer, with @kbd{M-@key{TAB}} support.
-@cindex M-@key{TAB}
-@item M-@key{TAB}
-Tags can also be typed directly into the buffer, using
-@kbd{M-@key{TAB}} completion.
+just to make things look nice.  TAGS are automatically realigned after
+promotion, demotion, and TODO state changes (@pxref{TODO basics}).
 @kindex C-c \
 @item C-c \
-Create a sparse tree with all headlines matching a given set of tags.
-The command prompts for the tags to match.  The criterion is just a
-list of tags separated by @samp{+} or @samp{-} for positive and
-negative selection.  For example, @samp{+WORK-BOSS} would select all
-headlines that are tagged @samp{:WORK:}, but discard those also tagged
-@samp{:BOSS:}.
+Create a sparse tree with all headlines matching a tags search.
 @kindex C-c a m
 @item C-c a m
 Create a global list of tag matches from all agenda files.
 @xref{Matching headline tags}.
 @end table
 
+A tags search string can use Boolean operators @samp{&} for AND and
+@samp{|} for OR.  @samp{&} binds more strongly than
+@samp{|}. Parenthesis are currently no implemented.  A tag may also be
+preceded by @samp{-}, to select against it, and @samp{+} is syntactic
+sugar for positive selection.  The AND operator @samp{&} is optional
+when @samp{+} or @samp{-} is present.  For example, @samp{+WORK-BOSS}
+would select all headlines that are tagged @samp{:WORK:}, but discard
+those also tagged @samp{:BOSS:}.  The search string @samp{WORK|LAPTOP}
+selects all lines tagged @samp{:WORK:} or @samp{:LAPTOP:}. The string
+@samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are
+also tagged @samp{NIGHT}.
+
 @node Plain Lists,  , Tags, Document Structure
 @section Plain Lists
 @cindex plain lists
@@ -692,7 +708,7 @@
 @end example
 
 Org-mode supports these lists by tuning filling and wrapping commands
-to correctly deal with them.  Futhermore, the following commands act
+to correctly deal with them.  Furthermore, the following commands act
 on items when the cursor is in the first line of an item (the line
 with the bullet or number).
 
@@ -1322,11 +1338,11 @@
 
 Similar to Wiki implementations, Org-mode interprets words spelled in
 CamelCase (i.e. mixed case with at least one capital letter following
-on a small letter inside the word) as links.  While in Wiki
-implementations these links usually point to another file, in Org-mode
-they point to a target in the current file.  Targets are CamelCased
-words in double angular brackets, and may be located anywhere, also in
-a comment line.  For example
+on a small letter inside the word) as links.  While in Wiki these
+links usually point to another file, in Org-mode they point to a
+target in the current file.  Targets are CamelCased words in double
+angular brackets, and may be located anywhere, also in a comment line.
+For example
 @example
 # <<MyTarget>>
 @end example
@@ -2020,32 +2036,16 @@
 @chapter Agenda Views
 @cindex agenda views
 
-@ignore
-We have already described three commands to filter important
-information in an org file into a sparse tree (@pxref{Sparse trees}):
-
-@cindex sparse trees
-@itemize @bullet
-@item
-The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}.
-@item
-The occur tree @kbd{C-c /}, see @ref{TODO items}.
-@item
-Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
-timestamps}.
-@end itemize
-@noindent
-@end ignore
-
-Org-mode can collect and sort selected items into a separate buffer.
-The information to be listed is collected from all @emph{agenda
-files}, the files listed in the variable @code{org-agenda-files}.
-Thus even if you only work with a single Org-mode file, this file must
-be put into that list@footnote{When using the dispatcher pressing
-@kbd{1} before selecting a command will actually limit the command to
-the current file, and ignore @code{org-agenda-files} until the next
-dispatcher command.}.  You can customize this variable, but the easiest
-way to maintain it is through the following commands
+Org-mode can select items based of various criteria, and display them
+in a separate buffer.  The information to be shown is collected from
+all @emph{agenda files}, the files listed in the variable
+@code{org-agenda-files}.  Thus even if you only work with a single
+Org-mode file, this file must be put into that list@footnote{When
+using the dispatcher pressing @kbd{1} before selecting a command will
+actually limit the command to the current file, and ignore
+@code{org-agenda-files} until the next dispatcher command.}.  You can
+customize @code{org-agenda-files}, but the easiest way to maintain it
+is through the following commands
 
 @cindex files, adding to agenda list
 @table @kbd
@@ -2084,11 +2084,21 @@
 corresponding locations in the original Org-mode files, and even to
 edit these files remotely.
 
+@cindex custom agenda commands
+@cindex agenda commands, custom
 The views are created through a dispatcher that should be bound to a
 global key, for example @kbd{C-c a} (@pxref{Installation and
 Activation}).  In the following we will assume that @kbd{C-c a} is
 indeed how the dispatcher is accessed and list keyboard access to
-commands accordingly.
+commands accordingly.  The dispatcher offers a number of default
+commands, for example to create a TODO list or a the calendar-like
+agenda.  You can also define a number of custom searches for tags and
+specific TODO keywords through the variable
+@code{org-agenda-custom-commands}.
+@kindex C-c a C
+These commands will be offered by the dispatcher just like the default
+commands.  If you press @kbd{C-c a C}, you will get a customization
+buffer for this variable.
 
 @menu
 * Agenda::                      Your weekly planner
@@ -2230,7 +2240,7 @@
 for example @kbd{3 r}.
 @end table
 
-Remote editing of TDOD items means that you can change the state of a
+Remote editing of TODO items means that you can change the state of a
 TODO entry with a single key press.  The commands available in the
 TODO list are described in @ref{Agenda commands}.
 
@@ -2241,15 +2251,15 @@
 
 If headlines in the agenda files are marked with @emph{tags}
 (@pxref{Tags}), you can select headlines based on the tags that apply
-to them and collect them into an ageenda buffer.
+to them and collect them into an agenda buffer.
 
 @table @kbd
 @kindex C-c a m
 @item C-c a m
 Produce a list of all headlines that match a given set of tags.  The
-command prompts for a selection criterion, which is a simple list of
-TAGS with positive and negative selection, like
-@samp{+WORK+URGENT-WITHBOSS}.
+command prompts for a selection criterion, which is a boolean logic
+expression with tags, like @samp{+WORK+URGENT-WITHBOSS} or
+@samp{WORK|HOME} (@pxref{Tags}).
 @kindex C-c a M
 @item C-c a M
 Like @kbd{C-c a m}, but only select headlines that are also TODO
@@ -2396,6 +2406,10 @@
 Change the TODO state of the item, both in the agenda and in the
 original org file.
 
+@kindex :
+@item :
+Set tags for the current headline.
+
 @kindex ,
 @item ,
 Set the priority for the current item.  Org-mode prompts for the
@@ -2900,7 +2914,7 @@
 After @samp{*}, complete CamelCase versions of all headlines in the
 buffer.
 @item
-After @samp{:}, complete tags used elswhere in the buffer.
+After @samp{:}, complete tags used elsewhere in the buffer.
 @item
 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
 @samp{OPTIONS} which set file-specific options for Org-mode.  When the
@@ -2917,11 +2931,11 @@
 @cindex options, for customization
 @cindex variables, for customization
 
-There is a large number of variables which can be used to customize
+There are more than 100 variables that can be used to customize
 Org-mode.  For the sake of compactness of the manual, we are not
-describing the variables here.  For an overview of customization
-variables, use @kbd{M-x org-customize}.  Or select @code{Browse Org
-Group} from the @code{Org->Customization} menu.
+describing the variables here.  A structured overview of customization
+variables is available with @kbd{M-x org-customize}.  Or select
+@code{Browse Org Group} from the @code{Org->Customization} menu.
 
 @node FAQ, Interaction, Customization, Miscellaneous
 @section Frequently asked questions
@@ -3167,59 +3181,63 @@
 
 Org-mode was written by Carsten Dominik, who still maintains it at the
 Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
-The following people have helped the development along with ideas,
-suggestions and patches.
+The following people (in alphabetic order) have helped the development
+along with ideas, suggestions and patches.  Many thanks to all of you,
+Org-mode would not be what it is without your input.
 
 @itemize @bullet
 @item
+Pavel Chalmoviansky reported bugs and suggested improvements
+related to the agenda treatment of items with specified time.
+@item
+Sacha Chua, the current maintainer of Planner, suggested to copy
+linking code from Planner (I took code for RMAIL and Wanderlust).
+@item
+Christian Egli converted the documentation into TeXInfo format and
+patched basic CSS formatting support into the HTML exporter.  He also
+inspired the agenda by showing me his plans for a multifile summary.
+@item
+Kai Grossjohann pointed out that a number of key bindings in Org-mode
+conflict with other packages.
+@item
+Stefan Monnier provided a patch with lots of little fixes to keep the
+Emacs-Lisp compiler happy.
+@item
+Tim O'Callaghan suggested in-file links, search options for
+general file links, and TAGS.
+@item
+Oliver Oppitz made useful suggestions.
+@item
+Pete Phillips helped the development of the TAGS feature with beta
+testing and suggestions.
+@item
 Matthias Rempe (Oelde) provided ideas, a patch introducing Windows
 NT/2000 support, and quality control.
 @item
 Kevin Rogers contributed code to access VM files on remote hosts.
 @item
-Juergen Vollmer contributed code generating the table of contents
-in HTML output, and other export improvements.
-@item
-Christian Egli converted the documentation into TeXInfo format and
-patched basic CSS formatting support into the HTML exporter.  He also
-inspired the agenda by showing me his plans for a multifile summary.
-@item
 Philip Rooke created the Org-mode reference card.  He also helped with
 beta testing and contributed a number of very useful ideas.
 @item
 Christian Schlauer proposed angular brackets around links, among other
 things.
 @item
-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}.
 @item
-Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
+Juergen Vollmer contributed code generating the table of contents
+in HTML output, and other export improvements.
 @item
-Sacha Chua, the current maintainer of Planner, suggested to copy
-linking code from Planner (I took code for RMAIL and Wanderlust).
+David Wainberg suggested to implement an archiving mechanism and helped
+testing.
 @item
-Oliver Oppitz made useful suggestions.
+Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
 @item
 Carsten Wimmer suggested some changes and helped fix a bug in linking
 to GNUS.
-@item
-Pavel Chalmoviansky reported bugs and suggested improvements related
-to the agenda treatment of items with specified time.
-@item
-Stefan Monnier provided a patch with lots of little fixes to keep the
-Emacs-Lisp compiler happy.
-@item
-Kai Grossjohann pointed out that a number of key bindings in Org-mode
-conflict with other packages.
 @item 
 Roland Winkler pointed out that additional keybindings are needed to
 use Org-mode on a tty.
-@item
-Tim O'Callaghan suggested in-file links, search options for
-general file links, and TAGS.
 @c @item
 @c Nic Ferrier and Christian Egli implemented XML export.
 @end itemize
--- a/man/programs.texi	Mon Dec 26 02:21:31 2005 +0000
+++ b/man/programs.texi	Mon Dec 26 03:16:59 2005 +0000
@@ -128,17 +128,19 @@
 @node Defuns
 @section Top-Level Definitions, or Defuns
 
-  In Emacs, a major definition at the top level in the buffer is
-called a @dfn{defun}.  The name comes from Lisp, but in Emacs we use
-it for all languages.
+  In Emacs, a major definition at the top level in the buffer,
+something like a function, is called a @dfn{defun}.  The name comes
+from Lisp, but in Emacs we use it for all languages.
 
-  In most programming language modes, Emacs assumes that a defun is
+  In many programming language modes, Emacs assumes that a defun is
 any pair of parentheses (or braces, if the language uses braces this
 way) that starts at the left margin.  For example, in C, the body of a
-function definition is normally a defun, because the open-brace that
-begins it is normally at the left margin.  A variable's initializer
-can also count as a defun, if the open-brace that begins the
-initializer is at the left margin.
+function definition is a defun, usually recognized as an open-brace
+that begins at the left margin@footnote{Alternatively, you can set up
+C Mode to recognize a defun at an opening brace at the outermost
+level.  @xref{Movement Commands,,, ccmode, the CC Mode Manual}.}.  A
+variable's initializer can also count as a defun, if the open-brace
+that begins the initializer is at the left margin.
 
   However, some language modes provide their own code for recognizing
 defuns in a way that suits the language syntax and conventions better.
@@ -156,14 +158,24 @@
 
 @cindex open-parenthesis in leftmost column
 @cindex ( in leftmost column
-  In most major modes, Emacs assumes that any opening delimiter found
-at the left margin is the start of a top-level definition, or defun.
-Therefore, @strong{never put an opening delimiter at the left margin
-unless it should have that significance.}  For instance, never put an
+  Emacs assumes by default that any opening delimiter found at the
+left margin is the start of a top-level definition, or defun.  You can
+override this default by setting this user option:
+
+@defvar open-paren-in-column-0-is-defun-start
+If this user option is set to @code{t} (the default), opening
+parentheses or braces at column zero always start defuns.  When it's
+@code{nil}, defuns are found by searching for parens or braces at the
+outermost level.  Some major modes, including C and related modes, set
+@code{open-paren-in-column-0-is-defun-start} buffer-locally to
+@code{nil}
+@end defvar
+
+  In modes where @code{open-paren-in-column-0-is-defun-start} is
+@code{t}, @strong{don't put an opening delimiter at the left margin
+unless it is a defun start}.  For instance, never put an
 open-parenthesis at the left margin in a Lisp file unless it is the
-start of a top-level list.  Never put an open-brace or other opening
-delimiter at the beginning of a line of C code unless it is at top
-level.
+start of a top-level list.
 
   If you don't follow this convention, not only will you have trouble
 when you explicitly use the commands for motion by defuns; other
@@ -173,10 +185,10 @@
 
   The most likely problem case is when you want an opening delimiter
 at the start of a line inside a string.  To avoid trouble, put an
-escape character (@samp{\}, in C and Emacs Lisp, @samp{/} in some
-other Lisp dialects) before the opening delimiter.  This will not
-affect the contents of the string, but will prevent that opening
-delimiter from starting a defun.  Here's an example:
+escape character (@samp{\}, in Emacs Lisp, @samp{/} in some other Lisp
+dialects) before the opening delimiter.  This will not affect the
+contents of the string, but will prevent that opening delimiter from
+starting a defun.  Here's an example:
 
 @example
   (insert "Foo:
@@ -195,8 +207,9 @@
 the operation, we changed Emacs to assume that any opening delimiter
 at the left margin is the start of a defun.  This heuristic is nearly
 always right, and avoids the need to scan back to the beginning of the
-buffer.  However, it mandates following the convention described
-above.
+buffer.  However, now that modern computers are so powerful, this
+scanning is rarely slow enough to annoy, so we've provided a way to
+disable the heuristic.
 
 @node Moving by Defuns
 @subsection Moving by Defuns
@@ -399,13 +412,14 @@
 result of @key{TAB} because you find it unaesthetic for a particular
 line.
 
-  Remember that an open-parenthesis, open-brace or other opening delimiter
-at the left margin is assumed by Emacs (including the indentation routines)
-to be the start of a function.  Therefore, you must never have an opening
-delimiter in column zero that is not the beginning of a function, not even
-inside a string.  This restriction is vital for making the indentation
-commands fast; you must simply accept it.  @xref{Left Margin Paren},
-for more information on this.
+  By default, an open-parenthesis, open-brace or other opening
+delimiter at the left margin is assumed by Emacs (including the
+indentation routines) to be the start of a function.  This speeds up
+indentation commands.  If you will be editing text which contains
+opening delimiters in column zero that aren't the beginning of a
+functions, even inside strings or comments, you must set
+@code{open-paren-in-column-0-is-defun-start}.  @xref{Left Margin
+Paren}, for more information on this.
 
   Normally, lines are indented with tabs and spaces.  If you want Emacs
 to use spaces only, see @ref{Just Spaces}.
@@ -560,16 +574,16 @@
 Select a predefined style @var{style} (@code{c-set-style}).
 @end table
 
-  A @dfn{style} is a named collection of customizations that can
-be used in C mode and the related modes.  Emacs comes with several
+  A @dfn{style} is a named collection of customizations that can be
+used in C mode and the related modes.  @ref{Styles,,, ccmode, The CC
+Mode Manual}, for a complete description.  Emacs comes with several
 predefined styles, including @code{gnu}, @code{k&r}, @code{bsd},
 @code{stroustrup}, @code{linux}, @code{python}, @code{java},
-@code{whitesmith}, @code{ellemtel}, @code{cc-mode}, and @code{user}.
-Some of these styles are primarily intended for one language, but any
-of them can be used with any of the languages supported by these
-modes.  To find out what a style looks like, select it and reindent
-some code, e.g., by typing @key{C-M-q} at the start of a function
-definition.
+@code{whitesmith}, @code{ellemtel}, and @code{awk}.  Some of these
+styles are primarily intended for one language, but any of them can be
+used with any of the languages supported by these modes.  To find out
+what a style looks like, select it and reindent some code, e.g., by
+typing @key{C-M-q} at the start of a function definition.
 
 @kindex C-c . @r{(C mode)}
 @findex c-set-style
@@ -577,8 +591,8 @@
 .}.  Specify a style name as an argument (case is not significant).
 This command affects the current buffer only, and it affects only
 future invocations of the indentation commands; it does not reindent
-the code in the buffer.  To reindent the whole buffer in the new
-style, you can type @kbd{C-x h C-M-\}.
+the code already in the buffer.  To reindent the whole buffer in the
+new style, you can type @kbd{C-x h C-M-\}.
 
 @vindex c-default-style
   You can also set the variable @code{c-default-style} to specify the
@@ -589,23 +603,24 @@
 
 @example
 (setq c-default-style
-      '((java-mode . "java") (other . "gnu")))
+      '((java-mode . "java") (awk-mode . "awk") (other . "gnu")))
 @end example
 
 @noindent
-specifies an explicit choice for Java mode, and the default @samp{gnu}
-style for the other C-like modes.  (These settings are actually the
-defaults.)  This variable takes effect when you select one of the
-C-like major modes; thus, if you specify a new default style for Java
-mode, you can make it take effect in an existing Java mode buffer by
-typing @kbd{M-x java-mode} there.
+specifies explicit choices for Java and AWK modes, and the default
+@samp{gnu} style for the other C-like modes.  (These settings are
+actually the defaults.)  This variable takes effect when you select
+one of the C-like major modes; thus, if you specify a new default
+style for Java mode, you can make it take effect in an existing Java
+mode buffer by typing @kbd{M-x java-mode} there.
 
   The @code{gnu} style specifies the formatting recommended by the GNU
 Project for C; it is the default, so as to encourage use of our
 recommended style.
 
-  @xref{Customizing Indentation,,, ccmode, the CC Mode Manual}, for
-more information on customizing indentation for C and related modes,
+  @xref{Indentation Engine Basics,,, ccmode, the CC Mode Manual}, and
+@ref{Customizing Indentation,,, ccmode, the CC Mode Manual}, for more
+information on customizing indentation for C and related modes,
 including how to override parts of an existing style and how to define
 your own styles.
 
@@ -708,11 +723,12 @@
   A somewhat random-sounding command which is nevertheless handy is
 @kbd{C-M-t} (@code{transpose-sexps}), which drags the previous
 balanced expression across the next one.  An argument serves as a
-repeat count, and a negative argument drags the previous balanced
-expression backwards across those before it (thus canceling out the
-effect of @kbd{C-M-t} with a positive argument).  An argument of zero,
-rather than doing nothing, transposes the balanced expressions ending
-at or after point and the mark.
+repeat count, moving the previous expression over that many following
+ones.  A negative argument drags the previous balanced expression
+backwards across those before it (thus canceling out the effect of
+@kbd{C-M-t} with a positive argument).  An argument of zero, rather
+than doing nothing, transposes the balanced expressions ending at or
+after point and the mark.
 
 @kindex C-M-@@
 @kindex C-M-@key{SPC}
@@ -722,9 +738,9 @@
 that @kbd{C-M-f} would move to.  @kbd{C-M-@@} takes arguments like
 @kbd{C-M-f}.  In particular, a negative argument is useful for putting
 the mark at the beginning of the previous balanced expression.  The
-alias @kbd{C-M-@key{SPC}} is equivalent to @kbd{C-M-@@}.  If you use
-this command repeatedly, or in Transient Mark mode whenever the mark
-is active, it extends the region by one sexp each time.
+alias @kbd{C-M-@key{SPC}} is equivalent to @kbd{C-M-@@}.  When you
+repeat this command, or use it in Transient Mark mode when the mark is
+active, it extends the region by one sexp each time.
 
   In languages that use infix operators, such as C, it is not possible
 to recognize all balanced expressions as such because there can be
@@ -875,7 +891,7 @@
 @item @kbd{C-M-j}
 @itemx @kbd{M-j}
 Like @key{RET} followed by inserting and aligning a comment
-(@code{comment-indent-new-line}).
+(@code{comment-indent-new-line}).  @xref{Multi-Line Comments}.
 @item @kbd{M-x comment-region}
 @itemx @kbd{C-c C-c} (in C-like modes)
 Add or remove comment delimiters on all the lines in the region.
@@ -948,8 +964,13 @@
   (1+ x))           ; This line adds one.
 @end example
 
-  In C code, a comment preceded on its line by nothing but whitespace
-is indented like a line of code.
+  For C-like buffers, you can configure the exact effect of @kbd{M-;}
+more flexibly than for most buffers by setting the user options
+@code{c-indent-comment-alist} and
+@code{c-indent-comments-syntactically-p}.  For example, on a line
+ending in a closing brace, @kbd{M-;} puts the comment one space after
+the brace rather than at @code{comment-column}.  For full details see
+@ref{Comment Commands,,, ccmode, The CC Mode Manual}. 
 
 @node Multi-Line Comments
 @subsection Multiple Lines of Comments
@@ -958,23 +979,23 @@
 @kindex M-j
 @cindex blank lines in programs
 @findex comment-indent-new-line
+
   If you are typing a comment and wish to continue it on another line,
 you can use the command @kbd{C-M-j} or @kbd{M-j}
-(@code{comment-indent-new-line}).  This terminates the comment you are
-typing, creates a new blank line afterward, and begins a new comment
-indented under the old one.  When Auto Fill mode is on, going past the
+(@code{comment-indent-new-line}).  If @code{comment-multi-line}
+(@pxref{Options for Comments}) is non-@code{nil}, it moves to a new
+line within the comment.  Otherwise it closes the comment and starts a
+new comment on a new line.  When Auto Fill mode is on, going past the
 fill column while typing a comment causes the comment to be continued
-in just this fashion.  If point is not at the end of the line when you
-type the command, the text on the rest of the line becomes part of the
-new comment line.
+in just this fashion.
 
 @kindex C-c C-c (C mode)
 @findex comment-region
   To turn existing lines into comment lines, use the @kbd{M-x
-comment-region} command.  It adds comment delimiters to the lines that start
-in the region, thus commenting them out.  With a negative argument, it
-does the opposite---it deletes comment delimiters from the lines in the
-region.
+comment-region} command (or type @kbd{C-c C-c} in C-like buffers).  It
+adds comment delimiters to the lines that start in the region, thus
+commenting them out.  With a negative argument, it does the
+opposite---it deletes comment delimiters from the lines in the region.
 
   With a positive argument, @code{comment-region} duplicates the last
 character of the comment start sequence it adds; the argument specifies
@@ -985,6 +1006,11 @@
 indentation, you should use an argument of two or three, if between defuns;
 if within a defun, it must be three.
 
+  You can configure C Mode such that when you type a @samp{/} at the
+start of a line in a multi-line block comment, this closes the
+comment.  Enable the @code{comment-close-slash} clean-up for this.
+@xref{Clean-ups,,, ccmode, The CC Mode Manual}.
+
 @node Options for Comments
 @subsection Options Controlling Comments
 
@@ -1038,13 +1064,13 @@
 @vindex comment-multi-line
   The variable @code{comment-multi-line} controls how @kbd{C-M-j}
 (@code{indent-new-comment-line}) behaves when used inside a comment.
-Specifically, when @code{comment-multi-line} is @code{nil} (the
-default value), the command inserts a comment terminator, begins a new
-line, and finally inserts a comment starter.  Otherwise it does not
-insert the terminator and starter, so it effectively continues the
-current comment across multiple lines.  In languages that allow
-multi-line comments, the choice of value for this variable is a matter
-of taste.
+Specifically, when @code{comment-multi-line} is @code{nil}, the
+command inserts a comment terminator, begins a new line, and finally
+inserts a comment starter.  Otherwise it does not insert the
+terminator and starter, so it effectively continues the current
+comment across multiple lines.  In languages that allow multi-line
+comments, the choice of value for this variable is a matter of taste.
+The default for this variable depends on the major mode.
 
 @vindex comment-indent-function
   The variable @code{comment-indent-function} should contain a function
@@ -1510,11 +1536,13 @@
 
 @item M-x c-backward-into-nomenclature
 @findex c-backward-into-nomenclature
-Move point backward to beginning of a C++ nomenclature section or word.
-With prefix argument @var{n}, move @var{n} times.  If @var{n} is
-negative, move forward.  C++ nomenclature means a symbol name in the
-style of NamingSymbolsWithMixedCaseAndNoUnderlines; each capital letter
-begins a section or word.
+Move point backward to beginning of a C++ nomenclature section or
+word.  With prefix argument @var{n}, move @var{n} times.  If @var{n}
+is negative, move forward.  C++ nomenclature means a symbol name in
+the style of NamingSymbolsWithMixedCaseAndNoUnderlines; each capital
+letter begins a section or word.  Rather than this command, you might
+well prefer the newer ``Subword Mode'', which does the same thing
+better.  @xref{Other C Commands}.
 
 In the GNU project, we recommend using underscores to separate words
 within an identifier in C or C++, rather than using case distinctions.
@@ -1529,154 +1557,90 @@
 @subsection Electric C Characters
 
   In C mode and related modes, certain printing characters are
-``electric''---in addition to inserting themselves, they also reindent
-the current line, and optionally also insert newlines.  The
+@dfn{electric}---in addition to inserting themselves, they also
+reindent the current line, and optionally also insert newlines.  The
 ``electric'' characters are @kbd{@{}, @kbd{@}}, @kbd{:}, @kbd{#},
 @kbd{;}, @kbd{,}, @kbd{<}, @kbd{>}, @kbd{/}, @kbd{*}, @kbd{(}, and
 @kbd{)}.
 
-  Electric characters insert newlines only when the @dfn{auto-newline}
-feature is enabled (indicated by @samp{/a} in the mode line after the
-mode name).  This feature is controlled by the variable
-@code{c-auto-newline}.  You can turn this feature on or off with the
-command @kbd{C-c C-a}:
+  You might find electric indentation inconvenient if you are editing
+chaotically indented code.  If you are new to CC Mode, you might find
+it disconcerting.  You can toggle electric action with the command
+@kbd{C-c C-l}; when it is enabled, @samp{/l} appears in the mode line
+after the mode name:
+
+@table @kbd
+@item C-c C-l
+@kindex C-c C-l @r{(C mode)}
+@findex c-toggle-electric-state
+Toggle electric action (@code{c-toggle-electric-state}).  With a
+prefix argument, this command enables electric action if the argument
+is positive, disables it if it is negative.
+@end table
+
+  Electric characters insert newlines only when, in addition to the
+electric state, the @dfn{auto-newline} feature is enabled (indicated
+by @samp{/la} in the mode line after the mode name).  You can turn
+this feature on or off with the command @kbd{C-c C-a}:
 
 @table @kbd
 @item C-c C-a
 @kindex C-c C-a @r{(C mode)}
-@findex c-toggle-auto-state
-Toggle the auto-newline feature (@code{c-toggle-auto-state}).  With a
+@findex c-toggle-auto-newline
+Toggle the auto-newline feature (@code{c-toggle-auto-newline}).  With a
 prefix argument, this command turns the auto-newline feature on if the
 argument is positive, and off if it is negative.
 @end table
 
-  The colon character is electric because that is appropriate for a
-single colon.  But when you want to insert a double colon in C++, the
-electric behavior of colon is inconvenient.  You can insert a double
-colon with no reindentation or newlines by typing @kbd{C-c :}:
-
-@table @kbd
-@item C-c :
-@ifinfo
-@c This uses ``colon'' instead of a literal `:' because Info cannot
-@c cope with a `:' in a menu
-@kindex C-c @key{colon} @r{(C mode)}
-@end ifinfo
-@ifnotinfo
-@kindex C-c : @r{(C mode)}
-@end ifnotinfo
-@findex c-scope-operator
-Insert a double colon scope operator at point, without reindenting the
-line or adding any newlines (@code{c-scope-operator}).
-@end table
-
-@vindex c-electric-pound-behavior
-  The electric @kbd{#} key reindents the line if it appears to be the
-beginning of a preprocessor directive.  This happens when the value of
-@code{c-electric-pound-behavior} is @code{(alignleft)}.  You can turn
-this feature off by setting @code{c-electric-pound-behavior} to
-@code{nil}.
-
-@vindex c-hanging-braces-alist
-   The variable @code{c-hanging-braces-alist} controls the insertion of
-newlines before and after inserted braces.  It is an association list
-with elements of the following form: @code{(@var{syntactic-symbol}
-. @var{nl-list})}.  Most of the syntactic symbols that appear in
-@code{c-offsets-alist} are meaningful here as well.
-
-   The list @var{nl-list} may contain either of the symbols
-@code{before} or @code{after}, or both; or it may be @code{nil}.  When a
-brace is inserted, the syntactic context it defines is looked up in
-@code{c-hanging-braces-alist}; if it is found, the @var{nl-list} is used
-to determine where newlines are inserted: either before the brace,
-after, or both.  If not found, the default is to insert a newline both
-before and after braces.
-
-@vindex c-hanging-colons-alist
-   The variable @code{c-hanging-colons-alist} controls the insertion of
-newlines before and after inserted colons.  It is an association list
-with elements of the following form: @code{(@var{syntactic-symbol}
-. @var{nl-list})}.  The list @var{nl-list} may contain either of the
-symbols @code{before} or @code{after}, or both; or it may be @code{nil}.
-
-   When a colon is inserted, the syntactic symbol it defines is looked
-up in this list, and if found, the @var{nl-list} is used to determine
-where newlines are inserted: either before the brace, after, or both.
-If the syntactic symbol is not found in this list, no newlines are
-inserted.
-
-@vindex c-cleanup-list
-   Electric characters can also delete newlines automatically when the
-auto-newline feature is enabled.  This feature makes auto-newline more
-acceptable, by deleting the newlines in the most common cases where you
-do not want them.  Emacs can recognize several cases in which deleting a
-newline might be desirable; by setting the variable
-@code{c-cleanup-list}, you can specify @emph{which} of these cases that
-should happen.  The variable's value is a list of symbols, each
-describing one case for possible deletion of a newline.  Here are the
-meaningful symbols, and their meanings:
-
-@table @code
-@item brace-catch-brace
-Clean up @samp{@} catch (@var{condition}) @{} constructs by placing the
-entire construct on a single line.  The clean-up occurs when you type
-the @samp{@{}, if there is nothing between the braces aside from
-@code{catch} and @var{condition}.
-
-@item brace-else-brace
-Clean up @samp{@} else @{} constructs by placing the entire construct on
-a single line.  The clean-up occurs when you type the @samp{@{} after
-the @code{else}, but only if there is nothing but white space between
-the braces and the @code{else}.
-
-@item brace-elseif-brace
-Clean up @samp{@} else if (@dots{}) @{} constructs by placing the entire
-construct on a single line.  The clean-up occurs when you type the
-@samp{@{}, if there is nothing but white space between the @samp{@}} and
-@samp{@{} aside from the keywords and the @code{if}-condition.
-
-@item empty-defun-braces
-Clean up empty defun braces by placing the braces on the same
-line.  Clean-up occurs when you type the closing brace.
-
-@item defun-close-semi
-Clean up the semicolon after a @code{struct} or similar type
-declaration, by placing the semicolon on the same line as the closing
-brace.  Clean-up occurs when you type the semicolon.
-
-@item list-close-comma
-Clean up commas following braces in array and aggregate
-initializers.  Clean-up occurs when you type the comma.
-
-@item scope-operator
-Clean up double colons which may designate a C++ scope operator, by
-placing the colons together.  Clean-up occurs when you type the second
-colon, but only when the two colons are separated by nothing but
-whitespace.
-@end table
+  Usually the CC Mode style configures the exact circumstances in
+which Emacs inserts auto-newlines.  You can also configure this
+directly.  @xref{Custom Auto-newlines,,, ccmode, The CC Mode Manual}.
 
 @node Hungry Delete
 @subsection Hungry Delete Feature in C
 @cindex hungry deletion (C Mode)
 
-  When the @dfn{hungry-delete} feature is enabled (indicated by
-@samp{/h} or @samp{/ah} in the mode line after the mode name), a single
-@key{DEL} command deletes all preceding whitespace, not just one space.
-To turn this feature on or off, use @kbd{C-c C-d}:
+  If you want to delete an entire block of whitespace at point, you
+can use @dfn{hungry deletion}.  This deletes all the contiguous
+whitespace either before point or after point in a single operation.
+@dfn{Whitespace} here includes tabs and newlines, but not comments or
+preprocessor commands.
 
 @table @kbd
+@item C-c C-@key{BS}
+@itemx C-c @key{BS}
+@findex c-hungry-backspace
+@kindex C-c C-@key{BS} (C Mode)
+@kindex C-c @key{BS} (C Mode)
+@code{c-hungry-backspace}---Delete the entire block of whitespace
+preceding point.
+
 @item C-c C-d
-@kindex C-c C-d @r{(C mode)}
+@itemx C-c C-@key{DEL}
+@itemx C-c @key{DEL}
+@findex c-hungry-delete-forward
+@kindex C-c C-d (C Mode)
+@kindex C-c C-@key{DEL} (C Mode)
+@kindex C-c @key{DEL} (C Mode)
+@code{c-hungry-delete-forward}---Delete the entire block of whitespace
+following point.
+@end table
+
+  As an alternative to the above commands, you can enable @dfn{hungry
+delete mode}.  When this feature is enabled (indicated by @samp{/h} in
+the mode line after the mode name), a single @key{BS} command deletes
+all preceding whitespace, not just one space, and a single @kbd{C-c
+C-d} (but @emph{not} @key{delete}) deletes all following whitespace.
+
+@table @kbd
+@item M-x c-toggle-hungry-state
 @findex c-toggle-hungry-state
-Toggle the hungry-delete feature (@code{c-toggle-hungry-state}).  With a
-prefix argument, this command turns the hungry-delete feature on if the
-argument is positive, and off if it is negative.
-
-@item C-c C-t
-@kindex C-c C-t @r{(C mode)}
-@findex c-toggle-auto-hungry-state
-Toggle the auto-newline and hungry-delete features, both at once
-(@code{c-toggle-auto-hungry-state}).
+Toggle the hungry-delete feature
+(@code{c-toggle-hungry-state})@footnote{This command had the binding
+@kbd{C-c C-d} in earlier versions of Emacs.  @kbd{C-c C-d} is now
+bound to @code{c-hungry-delete-forward}.}.  With a prefix argument,
+this command turns the hungry-delete feature on if the argument is
+positive, and off if it is negative.
 @end table
 
 @vindex c-hungry-delete-key
@@ -1687,6 +1651,16 @@
 @subsection Other Commands for C Mode
 
 @table @kbd
+@item C-c C-w
+@itemx M-x c-subword-mode
+@findex c-subword-mode
+Enable (or disable) @dfn{subword mode}.  In subword mode, Emacs's word
+commands then recognize upper case letters in
+@samp{StudlyCapsIdentifiers} as word boundaries.  This is indicated by
+the flag @samp{/w} on the mode line after the mode name
+(e.g. @samp{C/law}).  You can even use @kbd{M-x c-subword-mode} in
+non-CC Mode buffers.
+
 @item M-x c-context-line-break
 @findex c-context-line-break
 This command inserts a line break and indents the new line in a manner
@@ -1697,9 +1671,13 @@
 
 @code{c-context-line-break} isn't bound to a key by default, but it
 needs a binding to be useful.  The following code will bind it to
-@kbd{C-j}.
+@kbd{C-j}.  We use @code{c-initialization-hook} here to make sure
+the keymap is loaded before we try to change it.
+
 @example
-(define-key c-mode-base-map "\C-j" 'c-context-line-break)
+(defun my-bind-clb ()
+  (define-key c-mode-base-map "\C-j" 'c-context-line-break))
+(add-hook 'c-initialization-hook 'my-bind-clb)
 @end example
 
 @item C-M-h
--- a/src/ChangeLog	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/ChangeLog	Mon Dec 26 03:16:59 2005 +0000
@@ -1,3 +1,57 @@
+2005-12-20  Juri Linkov  <juri@jurta.org>
+
+	* xmenu.c (Fx_popup_menu): Set Vmenu_updating_frame to f if
+	position is non-nil, else set it to nil.
+
+	* macmenu.c (Fx_popup_menu): Add `else' to set
+	Vmenu_updating_frame to nil only if position is nil.
+
+	* w32menu.c (Fx_popup_menu): Add `else' to set
+	Vmenu_updating_frame to nil only if position is nil.
+
+2005-12-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* keyboard.c (make_lispy_event): Drag-and-drop items are now
+	stored in member `args' of struct input_event.
+
+	* termhooks.h (struct input_event): Fix comment for DRAG_N_DROP_EVENT.
+
+	* xselect.c (x_handle_dnd_message): Drag-and-drop items are now
+	stored in member `args' of struct input_event.
+
+	* w32term.c (construct_drag_n_drop): Likewise.
+
+	* macterm.c (mac_do_receive_drag): Likewise.
+	(x_use_underline_position_properties): Undo 2005-07-13 change.
+	(syms_of_macterm) <x-use-underline-position-properties>: Likewise.
+	(mac_use_core_graphics, mac_wheel_button_is_mouse_2)
+	(mac_pass_command_to_system, mac_pass_control_to_system): New
+	boolean variables renamed from Lisp_Object ones
+	Vmac_use_core_graphics, Vmac_wheel_button_is_mouse_2,
+	Vmac_pass_command_to_system, and Vmac_pass_control_to_system.  All
+	uses changed.
+	(syms_of_macterm): DEFVAR_BOOL them.  Remove previous DEFVAR_LISPs.
+	Make them user options.
+	(mac_handle_command_event, mac_store_services_event): Call
+	create_apple_event_from_event_ref without 5th argument.
+	(backtranslate_modified_keycode): Mask off modifier keys that are
+	mapped to some Emacs modifiers before passing it to KeyTranslate.
+	(syms_of_macterm): Make variables `mac-emulate-three-button-mouse',
+	`mac-wheel-button-is-mouse-2', and `mac-*-modifier' user options.
+	Fix docstrings of `mac-*-modifier'.
+
+	* mac.c (create_apple_event_from_event_ref): Remove arg `types'.
+	(do_applescript): Change argument types to Lisp_Object.  All uses
+	changed.
+
+	* macterm.h (create_apple_event_from_event_ref): Remove 5th
+	argument from extern.
+
+2005-12-18  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* xfns.c (Fx_backspace_delete_keys_p): In case we cannot determine
+	the answer, return `lambda', not nil.
+
 2005-12-17  Eli Zaretskii  <eliz@gnu.org>
 
 	* makefile.w32-in (bootstrap-temacs): Warn that parts of commands
--- a/src/category.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/category.c	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,8 @@
 /* GNU Emacs routines to deal with category tables.
-   Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
+   Copyright (C) 1998, 2001, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 1999
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/category.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/category.h	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,7 @@
 /* Declarations having to do with Emacs category tables.
-   Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-     Licensed to the Free Software Foundation.
+   Copyright (C) 1995, 1998, 1999
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/ccl.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/ccl.c	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* CCL (Code Conversion Language) interpreter.
-   Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/ccl.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/ccl.h	Mon Dec 26 03:16:59 2005 +0000
@@ -1,6 +1,7 @@
 /* Header for CCL (Code Conversion Language) interpreter.
-   Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
+   Copyright (C) 1995, 1998, 2000
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/charset.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/charset.c	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Basic multilingual character support.
-   Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/charset.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/charset.h	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Header for multibyte character handler.
-   Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/coding.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/coding.c	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Coding system handler (conversion, detection, and etc).
-   Copyright (C) 1995,97,1998,2002,2003  Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 2002, 2003, 2004, 2005
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/coding.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/coding.h	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Header for coding system handler.
-   Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 2000
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/composite.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/composite.c	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Composite sequence support.
-   Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1999
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/composite.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/composite.h	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Header for composite sequence handler.
-   Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1997
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/fontset.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/fontset.c	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Fontset handler.
-   Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
    Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 2000, 2003, 2004, 2005
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/fontset.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/fontset.h	Mon Dec 26 03:16:59 2005 +0000
@@ -1,7 +1,8 @@
 /* Header for fontset handler.
-   Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN.
-   Licensed to the Free Software Foundation.
-   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 2000
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H14PRO021
 
 This file is part of GNU Emacs.
 
--- a/src/keyboard.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/keyboard.c	Mon Dec 26 03:16:59 2005 +0000
@@ -5854,14 +5854,8 @@
 	Lisp_Object head, position;
 	Lisp_Object files;
 
-	/* The frame_or_window field should be a cons of the frame in
-	   which the event occurred and a list of the filenames
-	   dropped.  */
-	if (! CONSP (event->frame_or_window))
-	  abort ();
-
-	f = XFRAME (XCAR (event->frame_or_window));
-	files = XCDR (event->frame_or_window);
+	f = XFRAME (event->frame_or_window);
+	files = event->arg;
 
 	/* Ignore mouse events that were made on frames that
 	   have been deleted.  */
@@ -11721,6 +11715,9 @@
 string, `read-key-sequence' replaces the matching suffix with its
 binding, and continues with the new sequence.
 
+If the binding is a function, it is called with one argument (the prompt)
+and its return value (a key sequence) is used.
+
 The events that come from bindings in `local-function-key-map' are not
 themselves looked up in `local-function-key-map'.
 
--- a/src/mac.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/mac.c	Mon Dec 26 03:16:59 2005 +0000
@@ -399,19 +399,17 @@
 
 #if TARGET_API_MAC_CARBON
 OSErr
-create_apple_event_from_event_ref (event, num_params, names,
-				   types, sizes, result)
+create_apple_event_from_event_ref (event, num_params, names, types, result)
      EventRef event;
      UInt32 num_params;
      EventParamName *names;
      EventParamType *types;
-     UInt32 *sizes;
      AppleEvent *result;
 {
   OSErr err;
   static const ProcessSerialNumber psn = {0, kCurrentProcess};
   AEAddressDesc address_desc;
-  UInt32 i;
+  UInt32 i, size;
   CFStringRef string;
   CFDataRef data;
   char *buf;
@@ -452,13 +450,17 @@
 #endif
 
       default:
-	buf = xmalloc (sizes[i]);
+	err = GetEventParameter (event, names[i], types[i], NULL,
+				 0, &size, NULL);
+	if (err != noErr)
+	  break;
+	buf = xmalloc (size);
 	if (buf == NULL)
 	  break;
 	err = GetEventParameter (event, names[i], types[i], NULL,
-				 sizes[i], NULL, buf);
+				 size, NULL, buf);
 	if (err == noErr)
-	  AEPutParamPtr (result, names[i], types[i], buf, sizes[i]);
+	  AEPutParamPtr (result, names[i], types[i], buf, size);
 	xfree (buf);
 	break;
       }
@@ -3189,7 +3191,10 @@
    wildcard filename expansion.  Since we don't really have a shell on
    the Mac, this case is detected and the starting of the shell is
    by-passed.  We really need to add code here to do filename
-   expansion to support such functionality. */
+   expansion to support such functionality.
+
+   We can't use this strategy in Carbon because the High Level Event
+   APIs are not available.  */
 
 int
 run_mac_command (argv, workdir, infn, outfn, errfn)
@@ -3933,84 +3938,53 @@
 
 /* Compile and execute the AppleScript SCRIPT and return the error
    status as function value.  A zero is returned if compilation and
-   execution is successful, in which case RESULT returns a pointer to
-   a string containing the resulting script value.  Otherwise, the Mac
-   error code is returned and RESULT returns a pointer to an error
-   string.  In both cases the caller should deallocate the storage
-   used by the string pointed to by RESULT if it is non-NULL.  For
-   documentation on the MacOS scripting architecture, see Inside
-   Macintosh - Interapplication Communications: Scripting Components.  */
+   execution is successful, in which case *RESULT is set to a Lisp
+   string containing the resulting script value.  Otherwise, the Mac
+   error code is returned and *RESULT is set to an error Lisp string.
+   For documentation on the MacOS scripting architecture, see Inside
+   Macintosh - Interapplication Communications: Scripting
+   Components.  */
 
 static long
-do_applescript (char *script, char **result)
+do_applescript (script, result)
+     Lisp_Object script, *result;
 {
-  AEDesc script_desc, result_desc, error_desc;
+  AEDesc script_desc, result_desc, error_desc, *desc = NULL;
   OSErr error;
   OSAError osaerror;
-  long length;
-
-  *result = 0;
+
+  *result = Qnil;
 
   if (!as_scripting_component)
     initialize_applescript();
 
-  error = AECreateDesc (typeChar, script, strlen(script), &script_desc);
+  error = AECreateDesc (typeChar, SDATA (script), SBYTES (script),
+			&script_desc);
   if (error)
     return error;
 
   osaerror = OSADoScript (as_scripting_component, &script_desc, kOSANullScript,
 			  typeChar, kOSAModeNull, &result_desc);
 
-  if (osaerror == errOSAScriptError)
-    {
-      /* error executing AppleScript: retrieve error message */
-      if (!OSAScriptError (as_scripting_component, kOSAErrorMessage, typeChar,
-			   &error_desc))
-        {
-#if TARGET_API_MAC_CARBON
-          length = AEGetDescDataSize (&error_desc);
-          *result = (char *) xmalloc (length + 1);
-          if (*result)
-            {
-              AEGetDescData (&error_desc, *result, length);
-              *(*result + length) = '\0';
-            }
-#else /* not TARGET_API_MAC_CARBON */
-          HLock (error_desc.dataHandle);
-          length = GetHandleSize(error_desc.dataHandle);
-          *result = (char *) xmalloc (length + 1);
-          if (*result)
-            {
-              memcpy (*result, *(error_desc.dataHandle), length);
-              *(*result + length) = '\0';
-            }
-          HUnlock (error_desc.dataHandle);
-#endif /* not TARGET_API_MAC_CARBON */
-          AEDisposeDesc (&error_desc);
-        }
-    }
-  else if (osaerror == noErr)  /* success: retrieve resulting script value */
+  if (osaerror == noErr)
+    /* success: retrieve resulting script value */
+    desc = &result_desc;
+  else if (osaerror == errOSAScriptError)
+    /* error executing AppleScript: retrieve error message */
+    if (!OSAScriptError (as_scripting_component, kOSAErrorMessage, typeChar,
+			 &error_desc))
+      desc = &error_desc;
+
+  if (desc)
     {
 #if TARGET_API_MAC_CARBON
-      length = AEGetDescDataSize (&result_desc);
-      *result = (char *) xmalloc (length + 1);
-      if (*result)
-        {
-          AEGetDescData (&result_desc, *result, length);
-          *(*result + length) = '\0';
-        }
+      *result = make_uninit_string (AEGetDescDataSize (desc));
+      AEGetDescData (desc, SDATA (*result), SBYTES (*result));
 #else /* not TARGET_API_MAC_CARBON */
-      HLock (result_desc.dataHandle);
-      length = GetHandleSize(result_desc.dataHandle);
-      *result = (char *) xmalloc (length + 1);
-      if (*result)
-        {
-          memcpy (*result, *(result_desc.dataHandle), length);
-          *(*result + length) = '\0';
-        }
-      HUnlock (result_desc.dataHandle);
+      *result = make_uninit_string (GetHandleSize (desc->dataHandle));
+      memcpy (SDATA (*result), *(desc->dataHandle), SBYTES (*result));
 #endif /* not TARGET_API_MAC_CARBON */
-      AEDisposeDesc (&result_desc);
+      AEDisposeDesc (desc);
     }
 
   AEDisposeDesc (&script_desc);
@@ -4028,38 +4002,20 @@
     (script)
     Lisp_Object script;
 {
-  char *result, *temp;
-  Lisp_Object lisp_result;
+  Lisp_Object result;
   long status;
 
   CHECK_STRING (script);
 
   BLOCK_INPUT;
-  status = do_applescript (SDATA (script), &result);
+  status = do_applescript (script, &result);
   UNBLOCK_INPUT;
-  if (status)
-    {
-      if (!result)
-        error ("AppleScript error %d", status);
-      else
-        {
-          /* Unfortunately only OSADoScript in do_applescript knows how
-             how large the resulting script value or error message is
-             going to be and therefore as caller memory must be
-             deallocated here.  It is necessary to free the error
-             message before calling error to avoid a memory leak.  */
-          temp = (char *) alloca (strlen (result) + 1);
-          strcpy (temp, result);
-          xfree (result);
-          error (temp);
-        }
-    }
+  if (status == 0)
+    return result;
+  else if (!STRINGP (result))
+    error ("AppleScript error %d", status);
   else
-    {
-      lisp_result = build_string (result);
-      xfree (result);
-      return lisp_result;
-    }
+    error ("%s", SDATA (result));
 }
 
 
--- a/src/macmenu.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/macmenu.c	Mon Dec 26 03:16:59 2005 +0000
@@ -746,7 +746,8 @@
 
       XSETFRAME (Vmenu_updating_frame, f);
     }
-  Vmenu_updating_frame = Qnil;
+  else
+    Vmenu_updating_frame = Qnil;
 #endif /* HAVE_MENUS */
 
   title = Qnil;
--- a/src/macterm.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/macterm.c	Mon Dec 26 03:16:59 2005 +0000
@@ -93,8 +93,9 @@
 
 Lisp_Object Vx_toolkit_scroll_bars;
 
-/* If Non-nil, the text will be rendered using Core Graphics text rendering which may anti-alias the text.  */
-Lisp_Object Vmac_use_core_graphics;
+/* If non-zero, the text will be rendered using Core Graphics text
+   rendering which may anti-alias the text.  */
+int mac_use_core_graphics;
 
 
 /* Non-zero means that a HELP_EVENT has been generated since Emacs
@@ -105,6 +106,10 @@
 /* Last window where we saw the mouse.  Used by mouse-autoselect-window.  */
 static Lisp_Object last_window;
 
+/* Non-zero means make use of UNDERLINE_POSITION font properties.
+   (Not yet supported.)  */
+int x_use_underline_position_properties;
+
 /* This is a chain of structures for all the X displays currently in
    use.  */
 
@@ -199,8 +204,7 @@
 
 /* The keysyms to use for the various modifiers.  */
 
-static Lisp_Object Qalt, Qhyper, Qsuper, Qcontrol,
-  Qmeta, Qmodifier_value;
+static Lisp_Object Qalt, Qhyper, Qsuper, Qcontrol, Qmeta, Qmodifier_value;
 
 extern int inhibit_window_system;
 
@@ -687,7 +691,7 @@
 {
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
   UInt32 textFlags, savedFlags;
-  if (!NILP(Vmac_use_core_graphics)) {
+  if (mac_use_core_graphics) {
     textFlags = kQDUseCGTextRendering;
     savedFlags = SwapQDTextFlags(textFlags);
   }
@@ -723,7 +727,7 @@
       if (err == noErr)
 	{
 #ifdef MAC_OSX
-	  if (NILP (Vmac_use_core_graphics))
+	  if (!mac_use_core_graphics)
 	    {
 #endif
 	      mac_begin_clip (GC_CLIP_REGION (gc));
@@ -802,7 +806,7 @@
   if (mode != srcOr)
     RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
-  if (!NILP(Vmac_use_core_graphics))
+  if (mac_use_core_graphics)
     SwapQDTextFlags(savedFlags);
 #endif
 }
@@ -895,7 +899,7 @@
   CGGlyph *glyphs;
   CGSize *advances;
 
-  if (NILP (Vmac_use_core_graphics) || GC_FONT (gc)->cg_font == NULL)
+  if (!mac_use_core_graphics || GC_FONT (gc)->cg_font == NULL)
     return 0;
 
   port = GetWindowPort (FRAME_MAC_WINDOW (f));
@@ -8109,17 +8113,17 @@
 Lisp_Object Vmac_emulate_three_button_mouse;
 
 #if USE_CARBON_EVENTS
-/* True if the mouse wheel button (i.e. button 4) should map to
+/* Non-zero if the mouse wheel button (i.e. button 4) should map to
    mouse-2, instead of mouse-3.  */
-Lisp_Object Vmac_wheel_button_is_mouse_2;
-
-/* If Non-nil, the Mac "Command" key is passed on to the Mac Toolbox
+int mac_wheel_button_is_mouse_2;
+
+/* If non-zero, the Mac "Command" key is passed on to the Mac Toolbox
    for processing before Emacs sees it.  */
-Lisp_Object Vmac_pass_command_to_system;
-
-/* If Non-nil, the Mac "Control" key is passed on to the Mac Toolbox
+int mac_pass_command_to_system;
+
+/* If non-zero, the Mac "Control" key is passed on to the Mac Toolbox
    for processing before Emacs sees it.  */
-Lisp_Object Vmac_pass_control_to_system;
+int mac_pass_control_to_system;
 #endif
 
 /* Points to the variable `inev' in the function XTread_socket.  It is
@@ -8176,8 +8180,6 @@
   if (mods & shiftKey)
     result |= shift_modifier;
 
-
-
   /* Deactivated to simplify configuration:
      if Vmac_option_modifier is non-NIL, we fully process the Option
      key. Otherwise, we only process it if an additional Ctrl or Command
@@ -8265,10 +8267,10 @@
 	return mac_get_emulated_btn(mods);
       }
     case kEventMouseButtonSecondary:
-      return NILP (Vmac_wheel_button_is_mouse_2) ? 1 : 2;
+      return mac_wheel_button_is_mouse_2 ? 2 : 1;
     case kEventMouseButtonTertiary:
     case 4:  /* 4 is the number for the mouse wheel button */
-      return NILP (Vmac_wheel_button_is_mouse_2) ? 2 : 1;
+      return mac_wheel_button_is_mouse_2 ? 1 : 2;
     default:
       return 0;
     }
@@ -8779,10 +8781,8 @@
 					 kEventParamKeyModifiers};
 	static EventParamType types[] = {typeHICommand,
 					 typeUInt32};
-	static UInt32 sizes[] = {sizeof (HICommand),
-				 sizeof (UInt32)};
 	err = create_apple_event_from_event_ref (event, 2, names, types,
-						 sizes, &apple_event);
+						 &apple_event);
 	if (err == noErr)
 	  {
 	    err = mac_store_apple_event (class_key, id_key, &apple_event);
@@ -8966,8 +8966,8 @@
     {
     case kEventServicePaste:
       id_key = Qpaste;
-      err = create_apple_event_from_event_ref (event, 0, NULL,
-					       NULL, NULL, &apple_event);
+      err = create_apple_event_from_event_ref (event, 0, NULL, NULL,
+					       &apple_event);
       break;
 
     case kEventServicePerform:
@@ -8976,12 +8976,10 @@
 					 kEventParamServiceUserData};
 	static EventParamType types[] = {typeCFStringRef,
 					 typeCFStringRef};
-	static UInt32 sizes[] = {sizeof (CFStringRef),
-				 sizeof (CFStringRef)};
 
 	id_key = Qperform;
 	err = create_apple_event_from_event_ref (event, 2, names, types,
-						 sizes, &apple_event);
+						 &apple_event);
       }
       break;
 
@@ -9191,8 +9189,8 @@
       XSETINT (event.x, mouse.h);
       XSETINT (event.y, mouse.v);
       XSETFRAME (frame, f);
-      event.frame_or_window = Fcons (frame, file_list);
-      event.arg = Qnil;
+      event.frame_or_window = frame;
+      event.arg = file_list;
       /* Post to the interrupt queue */
       kbd_buffer_store_event (&event);
       /* MAC_TODO: Mimic behavior of windows by switching contexts to Emacs */
@@ -9411,10 +9409,12 @@
 static int
 backtranslate_modified_keycode(int mods, int keycode, int def)
 {
-  if  (mods &
-       (controlKey |
-	(NILP (Vmac_option_modifier) ? 0 : optionKey) |
-	cmdKey))
+  EventModifiers mapped_modifiers =
+    (NILP (Vmac_control_modifier) ? 0 : controlKey)
+    | (NILP (Vmac_option_modifier) ? 0 : optionKey)
+    | (NILP (Vmac_command_modifier) ? 0 : cmdKey);
+
+  if (mods & mapped_modifiers)
     {
       /* This code comes from Keyboard Resource,
 	 Appendix C of IM - Text.  This is necessary
@@ -9429,14 +9429,15 @@
 	 to preserve key combinations translated by the OS
 	 such as Alt-3.
       */
-      /* mask off option and command */
-      int new_modifiers = mods & 0xe600;
+      /* Mask off modifier keys that are mapped to some Emacs
+	 modifiers.  */
+      int new_modifiers = mods & ~mapped_modifiers;
       /* set high byte of keycode to modifier high byte*/
       int new_keycode = keycode | new_modifiers;
       Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
       unsigned long some_state = 0;
       return (int) KeyTranslate (kchr_ptr, new_keycode,
-			   &some_state) & 0xff;
+				 &some_state) & 0xff;
       /* TO DO: Recognize two separate resulting characters, "for
 	 example, when the user presses Option-E followed by N, you
 	 can map this through the KeyTranslate function using the
@@ -9990,9 +9991,9 @@
 	       will pass back noErr, otherwise it will pass back
 	       "eventNotHandledErr" and we can process it
 	       normally.  */
-	    if ((!NILP (Vmac_pass_command_to_system)
+	    if ((mac_pass_command_to_system
 		 || !(er.modifiers & cmdKey))
-		&& (!NILP (Vmac_pass_control_to_system)
+		&& (mac_pass_control_to_system
 		    || !(er.modifiers & controlKey))
 		&& (NILP (Vmac_option_modifier)
 		    || !(er.modifiers & optionKey)))
@@ -10061,12 +10062,10 @@
 		}
 	      else
 		{
-
 		  inev.code =
 		    backtranslate_modified_keycode(er.modifiers, keycode,
 						   er.message & charCodeMask);
 		  inev.kind = ASCII_KEYSTROKE_EVENT;
-
 		}
 	  }
 
@@ -10711,6 +10710,18 @@
   atsu_font_id_hash = Qnil;
 #endif
 
+  /* We don't yet support this, but defining this here avoids whining
+     from cus-start.el and other places, like "M-x set-variable".  */
+  DEFVAR_BOOL ("x-use-underline-position-properties",
+	       &x_use_underline_position_properties,
+     doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
+nil means ignore them.  If you encounter fonts with bogus
+UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
+to 4.1, set this to nil.
+
+NOTE: Not supported on Mac yet.  */);
+  x_use_underline_position_properties = 0;
+
   DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
 	       doc: /* If not nil, Emacs uses toolkit scroll bars.  */);
 #ifdef USE_TOOLKIT_SCROLL_BARS
@@ -10725,35 +10736,35 @@
 /* Variables to configure modifier key assignment.  */
 
   DEFVAR_LISP ("mac-control-modifier", &Vmac_control_modifier,
-    doc: /* Modifier key assumed when the Mac control key is pressed.
-The value can be `alt', `control', `hyper', or `super' for the
+    doc: /* *Modifier key assumed when the Mac control key is pressed.
+The value can be `control', `meta', `alt', `hyper', or `super' for the
 respective modifier.  The default is `control'.  */);
   Vmac_control_modifier = Qcontrol;
 
   DEFVAR_LISP ("mac-option-modifier", &Vmac_option_modifier,
-    doc: /* Modifier key assumed when the Mac alt/option key is pressed.
-The value can be `alt', `control', `hyper', or `super' for the
+    doc: /* *Modifier key assumed when the Mac alt/option key is pressed.
+The value can be `control', `meta', `alt', `hyper', or `super' for the
 respective modifier.  If the value is nil then the key will act as the
 normal Mac control modifier, and the option key can be used to compose
 characters depending on the chosen Mac keyboard setting.  */);
   Vmac_option_modifier = Qnil;
 
   DEFVAR_LISP ("mac-command-modifier", &Vmac_command_modifier,
-    doc: /* Modifier key assumed when the Mac command key is pressed.
-The value can be `alt', `control', `hyper', or `super' for the
+    doc: /* *Modifier key assumed when the Mac command key is pressed.
+The value can be `control', `meta', `alt', `hyper', or `super' for the
 respective modifier.  The default is `meta'.  */);
   Vmac_command_modifier = Qmeta;
 
   DEFVAR_LISP ("mac-function-modifier", &Vmac_function_modifier,
-    doc: /* Modifier key assumed when the Mac function key is pressed.
-The value can be `alt', `control', `hyper', or `super' for the
+    doc: /* *Modifier key assumed when the Mac function key is pressed.
+The value can be `control', `meta', `alt', `hyper', or `super' for the
 respective modifier.  Note that remapping the function key may lead to
 unexpected results for some keys on non-US/GB keyboards.  */);
   Vmac_function_modifier = Qnil;
 
   DEFVAR_LISP ("mac-emulate-three-button-mouse",
 	       &Vmac_emulate_three_button_mouse,
-    doc: /* Specify a way of three button mouse emulation.
+    doc: /* *Specify a way of three button mouse emulation.
 The value can be nil, t, or the symbol `reverse'.
 nil means that no emulation should be done and the modifiers should be
 placed on the mouse-1 event.
@@ -10765,27 +10776,27 @@
   Vmac_emulate_three_button_mouse = Qnil;
 
 #if USE_CARBON_EVENTS
-  DEFVAR_LISP ("mac-wheel-button-is-mouse-2", &Vmac_wheel_button_is_mouse_2,
-   doc: /* Non-nil if the wheel button is mouse-2 and the right click mouse-3.
+  DEFVAR_BOOL ("mac-wheel-button-is-mouse-2", &mac_wheel_button_is_mouse_2,
+   doc: /* *Non-nil if the wheel button is mouse-2 and the right click mouse-3.
 Otherwise, the right click will be treated as mouse-2 and the wheel
 button will be mouse-3.  */);
-  Vmac_wheel_button_is_mouse_2 = Qt;
-
-  DEFVAR_LISP ("mac-pass-command-to-system", &Vmac_pass_command_to_system,
-   doc: /* Non-nil if command key presses are passed on to the Mac Toolbox.  */);
-  Vmac_pass_command_to_system = Qt;
-
-  DEFVAR_LISP ("mac-pass-control-to-system", &Vmac_pass_control_to_system,
-   doc: /* Non-nil if control key presses are passed on to the Mac Toolbox.  */);
-  Vmac_pass_control_to_system = Qt;
-
-#endif
-
-  DEFVAR_LISP ("mac-allow-anti-aliasing", &Vmac_use_core_graphics,
-   doc: /* If non-nil, allow anti-aliasing.
+  mac_wheel_button_is_mouse_2 = 1;
+
+  DEFVAR_BOOL ("mac-pass-command-to-system", &mac_pass_command_to_system,
+   doc: /* *Non-nil if command key presses are passed on to the Mac Toolbox.  */);
+  mac_pass_command_to_system = 1;
+
+  DEFVAR_BOOL ("mac-pass-control-to-system", &mac_pass_control_to_system,
+   doc: /* *Non-nil if control key presses are passed on to the Mac Toolbox.  */);
+  mac_pass_control_to_system = 1;
+
+#endif
+
+  DEFVAR_BOOL ("mac-allow-anti-aliasing", &mac_use_core_graphics,
+   doc: /* *If non-nil, allow anti-aliasing.
 The text will be rendered using Core Graphics text rendering which
 may anti-alias the text.  */);
-  Vmac_use_core_graphics = Qnil;
+  mac_use_core_graphics = 0;
 
   /* Register an entry for `mac-roman' so that it can be used when
      creating the terminal frame on Mac OS 9 before loading
--- a/src/macterm.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/macterm.h	Mon Dec 26 03:16:59 2005 +0000
@@ -583,7 +583,7 @@
 extern OSErr create_apple_event_from_event_ref P_ ((EventRef, UInt32,
 						    EventParamName *,
 						    EventParamType *,
-						    UInt32 *, AppleEvent *));
+						    AppleEvent *));
 extern CFStringRef cfstring_create_with_utf8_cstring P_ ((const char *));
 extern CFStringRef cfstring_create_with_string P_ ((Lisp_Object));
 extern Lisp_Object cfdata_to_lisp P_ ((CFDataRef));
--- a/src/termhooks.h	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/termhooks.h	Mon Dec 26 03:16:59 2005 +0000
@@ -144,14 +144,14 @@
   DRAG_N_DROP_EVENT,		/* A drag-n-drop event is generated when
 				   files selected outside of Emacs are dropped
 				   onto an Emacs window.
-				   Currently used only on Windows NT.
 				   .modifiers holds the state of the
 				   modifier keys.
 				   .x and .y give the mouse position,
 				   in characters, within the window.
-				   .frame_or_window is a cons of the frame
-				   in which the drop was made and a list of
-				   the filenames of the dropped files.
+				   .frame_or_window is the frame in
+				   which the drop was made.
+				   .arg is a platform-dependent
+				   representation of the dropped items.
 				   .timestamp gives a timestamp (in
 				   milliseconds) for the click.  */
   USER_SIGNAL_EVENT,		/* A user signal.
--- a/src/w32menu.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/w32menu.c	Mon Dec 26 03:16:59 2005 +0000
@@ -738,7 +738,8 @@
 
       XSETFRAME (Vmenu_updating_frame, f);
     }
-  Vmenu_updating_frame = Qnil;
+  else
+    Vmenu_updating_frame = Qnil;
 #endif /* HAVE_MENUS */
 
   title = Qnil;
--- a/src/w32term.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/w32term.c	Mon Dec 26 03:16:59 2005 +0000
@@ -3187,8 +3187,8 @@
   DragFinish (hdrop);
 
   XSETFRAME (frame, f);
-  result->frame_or_window = Fcons (frame, files);
-  result->arg = Qnil;
+  result->frame_or_window = frame;
+  result->arg = files;
   return Qnil;
 }
 
--- a/src/xfns.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/xfns.c	Mon Dec 26 03:16:59 2005 +0000
@@ -5524,7 +5524,8 @@
        doc: /* Check if both Backspace and Delete keys are on the keyboard of FRAME.
 FRAME nil means use the selected frame.
 Value is t if we know that both keys are present, and are mapped to the
-usual X keysyms.  */)
+usual X keysyms.  Value is `lambda' if we cannot determine if both keys are
+present and mapped to the usual X keysyms.  */)
      (frame)
      Lisp_Object frame;
 {
@@ -5543,7 +5544,7 @@
   if (!XkbLibraryVersion (&major, &minor))
     {
       UNBLOCK_INPUT;
-      return Qnil;
+      return Qlambda;
     }
 
   /* Check that the server supports XKB.  */
@@ -5552,7 +5553,7 @@
   if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor))
     {
       UNBLOCK_INPUT;
-      return Qnil;
+      return Qlambda;
     }
 
   /* In this code we check that the keyboard has physical keys with names
@@ -5607,7 +5608,7 @@
   UNBLOCK_INPUT;
   return have_keys;
 #else /* not HAVE_XKBGETKEYBOARD */
-  return Qnil;
+  return Qlambda;
 #endif /* not HAVE_XKBGETKEYBOARD */
 }
 
--- a/src/xmenu.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/xmenu.c	Mon Dec 26 03:16:59 2005 +0000
@@ -905,8 +905,11 @@
 
       if (! FRAME_X_P (f))
         error ("Can not put X menu on non-X terminal");
+
+      XSETFRAME (Vmenu_updating_frame, f);
     }
-  Vmenu_updating_frame = Qnil;
+  else
+    Vmenu_updating_frame = Qnil;
 #endif /* HAVE_MENUS */
 
   record_unwind_protect (unuse_menu_items, Qnil);
--- a/src/xselect.c	Mon Dec 26 02:21:31 2005 +0000
+++ b/src/xselect.c	Mon Dec 26 03:16:59 2005 +0000
@@ -2759,11 +2759,11 @@
 
   mouse_position_for_drop (f, &x, &y);
   bufp->kind = DRAG_N_DROP_EVENT;
-  bufp->frame_or_window = Fcons (frame, vec);
+  bufp->frame_or_window = frame;
   bufp->timestamp = CurrentTime;
   bufp->x = make_number (x);
   bufp->y = make_number (y);
-  bufp->arg = Qnil;
+  bufp->arg = vec;
   bufp->modifiers = 0;
 
   return 1;