Mercurial > emacs
changeset 90242:5e2d3828e89f
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-91
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 581-597)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 133-141)
- Update from CVS
- Merge from emacs--cvs-trunk--0
- Update from CVS: texi/gnus.texi (RSS): Fix key description.
- Update from CVS: texi/gnus.texi (Document Server Internals): Addition.
line wrap: on
line diff
--- a/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,3 +1,12 @@ +2005-10-08 Richard M. Stallman <rms@gnu.org> + + * make-dist (tempparent): Don't check for 14-char file name limit. + +2005-10-07 Romain Francoise <romain@orebokech.com> + + * make-dist: Add etc/images/ezimage and etc/images/mail + directories. Install images in etc/images. + 2005-10-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * configure.in: Prefer Carbon if --enable-carbon-app or
--- a/admin/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/admin/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,3 +1,8 @@ +2005-10-11 Juanma Barranquero <lekktu@gmail.com> + + * FOR-RELEASE (FATAL ERRORS): Remove item about JPEG + libraries on Windows (Done). + 2005-10-01 Jason Rumney <jasonr@gnu.org> * admin.el (set-version): Set version numbers in nt/emacs.rc.
--- a/admin/FOR-RELEASE Fri Oct 14 03:41:43 2005 +0000 +++ b/admin/FOR-RELEASE Sat Oct 15 00:26:05 2005 +0000 @@ -53,20 +53,8 @@ ** Investigate reported crashes related to using an invalid pointer from string_free_list. -** Emacs on Windows crashes reading JPEG images from files. - -The problem is caused by the Emacs executable and the image library -having multiple, incompatible copies of the run-time code, which can -happen when mixing a MSVC build of Emacs with a MinGW build of the -jpeg library (or the other way around). The fix is straightforward -and has already been posted on the developers' list, but it is on the -back burner waiting for a legal comment or an alternate implementation -(around 30 lines of code). - * BUGS -* Pierre Albarede's Aug 30 bug report about C-v and long lines. - ** Make a new interface for specifying window configurations so that we can fix bugs in balance-windows. @@ -132,7 +120,7 @@ SECTION READERS ----------------------------- man/abbrevs.texi Chong Yidong Joakim Verona -man/anti.texi +man/anti.texi Chong Yidong man/basic.texi "Luc Teirlinck" Chong Yidong man/buffers.texi "Luc Teirlinck" Chong Yidong man/building.texi "Ted Zlatanov" <tzz@lifelogs.com> @@ -153,7 +141,7 @@ man/killing.texi "Luc Teirlinck" Chong Yidong man/kmacro.texi "Luc Teirlinck" Chong Yidong man/macos.texi -man/maintaining.texi +man/maintaining.texi Chong Yidong man/major.texi "Luc Teirlinck" Chong Yidong man/mark.texi "Luc Teirlinck" Chong Yidong man/mini.texi "Luc Teirlinck" Chong Yidong @@ -184,7 +172,7 @@ ---------------------------------- lispref/abbrevs.texi "Luc Teirlinck" Chong Yidong lispref/advice.texi joakim@verona.se Chong Yidong -lispref/anti.texi +lispref/anti.texi Chong Yidong lispref/backups.texi "Luc Teirlinck" Chong Yidong lispref/buffers.texi "Luc Teirlinck" Chong Yidong lispref/calendar.texi Joakim Verona <joakim@verona.se> Chong Yidong
--- a/etc/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/etc/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,3 +1,15 @@ +2005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * NEWS: -nb => -nbi + +2005-10-10 Carsten Dominik <dominik@science.uva.nl> + + * orgcard.tex: Version 3.17, no changes except version number. + +2005-10-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * NEWS: -nb, --no-bitmap-icon + 2005-10-02 Stefan Monnier <monnier@iro.umontreal.ca> * TODO: Clarify the local variables entry.
--- a/etc/NEWS Fri Oct 14 03:41:43 2005 +0000 +++ b/etc/NEWS Sat Oct 15 00:26:05 2005 +0000 @@ -251,6 +251,11 @@ `inhibit-splash-screen'). +++ +** The default is now to use an bitmap as the icon, so the command-line options +--icon-type, -i has been replaced with options --no-bitmap-icon, -nbi to turn +the bitmap icon off. + ++++ ** New user option `inhibit-startup-buffer-menu'. When loading many files, for instance with `emacs *', Emacs normally displays a buffer menu. This option turns the buffer menu off. @@ -2982,6 +2987,50 @@ `diary-outlook-formats' can be customized to recognize additional formats. ++++ +** Speedbar changes: + +*** Speedbar items can now be selected by clicking mouse-1, based on +the `mouse-1-click-follows-link' mechanism. + +*** SPC and DEL are no longer bound to scroll up/down in the speedbar +keymap. + +*** The new command `speedbar-toggle-line-expansion', bound to SPC, +contracts or expands the line under the cursor. + +*** New command `speedbar-create-directory', bound to `M'. + +*** The new commands `speedbar-expand-line-descendants' and +`speedbar-contract-line-descendants', bound to `[' and `]' +respectively, expand and contract the line under cursor with all of +its descendents. + +*** The new user option `speedbar-query-confirmation-method' controls +how querying is performed for file operations. A value of 'always +means to always query before file operations; 'none-but-delete means +to not query before any file operations, except before a file +deletion. + +*** The new user option `speedbar-select-frame-method' specifies how +to select a frame for displaying a file opened with the speedbar. A +value of 'attached means to use the attached frame (the frame that +speedbar was started from.) A number such as 1 or -1 means to pass +that number to `other-frame'. + +*** The new user option `speedbar-use-tool-tips-flag', if non-nil, +means to display tool-tips for speedbar items. + +*** The frame management code in speedbar.el has been split into a new +`dframe' library. Emacs Lisp code that makes use of the speedbar +should use `dframe-attached-frame' instead of +`speedbar-attached-frame', `dframe-timer' instead of `speedbar-timer', +`dframe-close-frame' instead of `speedbar-close-frame', and +`dframe-activity-change-focus-flag' instead of +`speedbar-activity-change-focus-flag'. The variables +`speedbar-update-speed' and `speedbar-navigating-speed' are also +obsolete; use `dframe-update-speed' instead. + --- ** sql changes. @@ -4428,7 +4477,7 @@ and scroll-bar settings. +++ -*** The new function `window-split-tree' returns a frame's window split tree. +*** The new function `window-tree' returns a frame's window tree. +++ ** Customizable fringe bitmaps
--- a/etc/orgcard.ps Fri Oct 14 03:41:43 2005 +0000 +++ b/etc/orgcard.ps Sat Oct 15 00:26:05 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.09.23:1744 +%DVIPSSource: TeX output 2005.10.10:1112 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -385,183 +385,181 @@ 7C9CB4390F825B68E7A6DF4D67DAEF89F1D461ABEDACBF1FA02FEF65F0B8E3ED 45974B9EC80855D5A1B34D792CC7793D4F05E81E185C3FA86C8A8FF108BAC2E0 801AB0B3FE4C0CD5257441F29F2F293F4BDCC67D00EFB68440FAEAFE138279D2 -415687CEFCE35F8A1BBB0C18AE4A8ABA688D2F3894B5654AB7AD595E022E6BB3 -083B492C4D6F553EE6DB0D7EF1616F397EA60DC79B6FF8998154D881C74F07D2 -C3B1B9AE8C307182A23EE559466355AA9D092FAA3651C430A550F9C6B18BB05E -1F4B2D7DA2AE2C9BF19B27C827F0E087FD64C5AEB89DF781E2D3FB7F5A471054 -8013A06284F6016A236A1152441EE4703EF4CDB21B964FC029980C62A30DA336 -B5B8DF6EC9FB172B746F1E7A1AB9B5828B1EE32889B22FB532D02045E3567F7C -44B2A0028D20469F45390FEAA44C3555BFAC6F4AF6350CAA53AB97286D25EE00 -933BA6B4E511CF1EBFE8BF240023602A60C3ABC555A08927D0E6AEDC3516D6FA -E4D82F913831A17710EC3A6DB1CE499B58C7B530A1EC4AC1AFF12ED8E79D7EEC -62B47FCAB38ABB2E80B7E05426A416742315C848BEC5AC0D1116BAEFBF220607 -3490F241891680E26C03DB4FFAE6CA4FCB6292226D4549CBCABC3206D1E4D327 -6AAC59B3F07E5D68CD7752C1BA1178A8C7DB6E947DCFAA9EEEDBD01FC8A4D201 -F5BD270279DC4805A24382F6A6108D1B3414D40F46EA91C6108B333342EE1F7E -7086DC76CE42C9C6A6D2858CE3B3E82D0294D8A88E22A0FA9028509F97C85CF5 -3B565E5570F8D4F6F40B8CBD19181B62176FBE65972381E0715EA9281EAE0FE7 -66B5154154738DEAFC9932B3D16EC9EB6F7524F22147C085272719A4AC5CBED3 -E62D88246C56B12ACEB231D42BE72F46D7C6749F9F2487DCEA19ACD3FF21E05B -74324DF87D11DE064F7EFA010B699E7C199908BFC672DDCD69B98D81DDC9C7A4 -062C25FFF5052E5B8042AE6898BAF38ED1C063780B672F0B4E8D331127C0D612 -5705230D97ADCC8103D85DFC7BF7CF154C8A6AABC88419E732EE1C6C724288FE -46F011FD8DD86B343F6240D95D20E8C01452365A061345E876A1B672C2548FC0 -CC0E1B02843714DCA1D8837FBB77E42E590A00D0A4EC1A34DF909A83898C6275 -DC40EAD69FB9436D7D5F0CDB5984A79B86A5AC2DFA0C54F8DC2B210D5C5F890E -64487A1BEB453C2B8D15BE63A1C74CCAEA825CC480AE4C2F4EE985DF8FB624A5 -60CA0E37A9638558EC3C5D1E87936B77D6422E87AB313CC4D91185AA672B92F3 -9D76E2D34A17BA0F35203E72B7D26B71B332D352B2101E871539CB4479954F9C -714158C724DAA05BB5B479CD54E8B0528EF51043EA676CCA3AF74F6CE6024EEE -71346FB0DE3310627BCF9C354FA2BFA44D00E4C11EFC1585C5C5E0C56ECAB11A -EB2037735F483FC4DE666CC61DD2B3214FC3EB4E960DEE07E5835533BE351B99 -18A32EE9888E98922885F3BFC8D5A86B076FF8030D68535FDBA76FBF821842A1 -F7068897E43B3533A9020F1FB35F6BDD8A97C4EE1ACA20EE72081527955D6EC9 -6A2FE32DB339508A0D05AD69AA839BC0D0B7C3B3EE4319A5D27FFDFDF9756583 -A39D0570768314B0B2D5303EF7AF3D52B651093C440CD8AFCE9E27F512D52345 -E292E0E582FBB4A628705A63E6FA384AE2898D324BE2E142716114F158E6178B -5F4D198C5A16608D05C22E647C3025A12955BB5F423563EED4AF398BF2621383 -04AEE3E372C05ADEF6C5D1E5047EE5701884A65B56E0AF429B78FC3A20F72CE8 -F1AEBA8DED5F661A2B336BDC348F8360839E1C2455E7DDB0E190ACA4FA5F4F19 -A2223C786B8E8AE770CEC7A8DEFE523E94458BB67CB2F22555802BDA8CEFD118 -ED2E1BFEE8FFDF6BDF4A61A3E5461B65166147057D47507E7DA9297BE7856D7C -36126E3B82352231A9E9EFC120935438F90913F6DB8953D325907CC8CB0BA012 -3AFD73AC92E481E1FDD6DE7C49ECA620DE1AFCA3E5BA20AADD72B66BE2ECD1DA -70FE7AB3C8DEEC078A034628E68F7B915FE7AC8C3F20A5FA0A80436E4FE0A20D -36589A6F5DB1BACDD8D7325E2F21464FBAB56E729FE7343B02D260FDB2C48607 -4FA69790941A8F45ADE89EF8C1027B04466D1BDAD348A91D5191C7A596BE2408 -5EDE1545714987B4473A51B0C39B1CD9F7B27E7DFC4E828D321E7F40282D7184 -7C5341A9EB897DA4A6C77ACC3FC22B98F40D5422CF53F3E561F781E7BD0F8D77 -F1225D15E96FD9A5723FC0A9E07FCDC18A837C7B14EE0A3158AFAFA976E6F419 -B57A920F7B0784082F818DFE9535570D1C2DB50421D47946FF134BE8FF8B70F5 -F3BD74B7F330BCB49D0CA72C275B39F1204BC7B701F26F80586CE138043BFC05 -11E101A875BA9277500C5AAF134F7E56C34E4704C4F47199F27EE2CC95B70DA7 -BB6D247FA6035D0DF7CCE23B54D67A348528FA551C0CD11BD1B46C62530CD19E -386B27B16A1DDFFB157604C074124374878F9ADEEAE039B4CC91426BE209BE74 -24FB053A5759BE2D970A5CE835D2E462AFFBF4649380049CBFBA8A030135A09D -42DD6EA17E65E0C8BFF3A442B64FC5298C50AD74ED875176EF737F8BE425CB94 -4C7035B5DC09E70A5B35230627CAE6449145357A220400C34281EB9475D3EA87 -310F5D6C14FAAF11356651346907AD48FA099EAE60ECD1E4C9491DCB6519043E -A1D5536CC8F92EA54A4D7FB9D1045284FA76C70F9DC5A23412584D11753C94EF -306A38B474E4F27AE0879819A5BA1FB401FACC0A71678C88BB2E7A8C1D130D91 -FCAD77B00FAC404BA1578779135656287A1F0BC7B6C4D3122ABED9F8B1927D3A -2038D58CA763939F53B8F667DF14811FCB3781B774EE3137B95B456F77E077C3 -F3557D5E06CEDBFB7FD84F5CFA36BF60D0C6BB8EE19FAABD169148FF6C38C30C -B1E354FB043E47F4D1C98A9F95FFECC90760E4DD269F5E212F7E0F6B5519664E -8D88024A5F439DC44C08C2F87EA4C4C5FB0FE0DA729C5D3D53F803B6CFC92793 -B955E961428A9BC704FC576CBD7B77A2E52CE46AA1CEF0CC8987D682804C1052 -D0998F37B2122EFA3932346E5947A5C96E09563D8DDAE2BD95D137155C044788 -1ECB14524651A18A0FC7F0D43F7C8888246BF5F3D7EFBA55F7924FACBD9948D5 -B10027AFA16FD9876E034A9409D9DE405BD3370A907BF9ECBA8289061C94019D -56FFA03F2FC8FFC11882CD5ACCF3AEE9D0FDDECB08433E19F536CEBDB5554947 -7769A3D1A6160689F118B55FEB95EE64391236407596C67E59EB604358845376 -D828EF56639C526F69634AD2C5C13F36F2CD9889BFFEE334F9EF212006298465 -2CDB8F2BC4EE08157E5AE915763EAC45CAAA393FACF3CF8E50788AE1AE6BD39B -49F24D099DC274C4CA6538C20ABBD8BBB9FBE3A038D6798317B938327A7F33FD -866D1CCD14148C95B96E0F35596C6A558077A6C7A2D87CC83393FDB57A6391F1 -875E85FEDAEA2036B1618DF94687A978E6CFDF7944F39E422FE3303270CDAD35 -81F7626BD3375AD01D436A012868C735326114F8AFB42B886CD32EB4A98A19B4 -E1B62B77F2F00548C531EE95F5EA677D16BE65BECF9FE0334757FCFA45F84CED -42F30B37E7DE566107D0F57A3B777E38A725D7AA8A4383BCEFE55CD51AF0B6ED -D1EB1942129CDFDBFFFB5E8D55DAA966AE6A086603F30D400359C2C273DEDEDE -38DE88FB502DA13592F3A7D396816DE8A0A86093E2B6DBA7A77C411F27A478E9 -3EF3166D7AD9133DDF48D873AEF825EF6CB162B98482BD50BDD2D48DD65CC73E -FEF538543B1A6DC11E71A3904A11EA208E70CD1852B0B19CB2EDCD0813D90B07 -19F0DEFFA8F02099B4D6EE3E74B0F0E6BBA43C4A24E6E91E1973ECAB64D313C0 -99F93025AEBBE3B402A87724ADF72937C66235F36A698529F92CFB67D861F908 -493730108FC4D7D9A8E01644FBBEF3B39253B7BFF5EF1DF6C2ACC4CC7F1EFD6E -72F8A54E8D568A484D0E15D2C88D1743D6E225ABD547F7953A5F5E42406F4EAE -EADD36D4998A41CEBABCB1F2945687400C7BE6322E4D924D9901D42032CC55FE -64254DEB51F5C844BCDB03D7069AD72F8F55CC306E12481D0CFAC6210BBF6EC1 -51D195E3A1B23ACD61FFF6A1A446D86DAD11BAD6A74B66D1B7362004FE7C3D2D -E4D5580654FB98A089F7322DACF853C0FF96747526AFE3F896988F7B0144897B -88091909ADDB26726D582235467E7E75372F16F804C7063311402E0F08C41804 -3264D3A54C0795902B0A70CF624827016B3D135F57C192E05EAE87EBE42618CD -CC4D35AF0EEF5BB9A0B78580573458BF8E808B2C9352D9AC844FC13B64EA6A0A -680636D47A0DF610F14FC3B59215B21599C52E206B5038F5AF3A9121BDDB0991 -64AEA5390C32ED5242C93DEAC8A8E398223A4466BEE9AF7DC8EBD1E58E82700D -97AF154B17F0CB94835996913FA29796BF0F262FD7BF307BF31D628128655E40 -8E8A8A6D0073EADB219EFAA3F1C1A040A5CA2B3AB8BF13500250D5DCC6C23A8D -546ACF1B5CE5E71362B9B8B472DB26FDE4624C4D25659F80179E2B840EEEDA65 -262CAE1572E905DC55993DD5652EF70AD17D4FC3651816E60CEE9A7ED5BE8989 -BCC82E24E2B118C176EC340917ED0D61C5195A3B5BAE92373DF0426B1B0E2E3E -07109E9975DED88D1D0A5459D6DBF6912938201A68B3260252091F8C977EA319 -F765D5E0FF6142886632373821EEA024B37604FEAD330949B483E7E9D972B07C -DE877A6991218B9992092462F59EE0BE0342BFB7F26E06AEBA3272D61BA95026 -C1529A435D9F96CBDF8541F91DB2851470B2155C544882D0D0E3990CED8CCF21 -DC8CD12312EB65A48E085935D2B8C0825027737E7E7256AEB89FCE18436FE4C1 -234453520F8E5799ABDDF6B0289178E0A5FCE7E0C9EF98983DAD2C27F69AD57A -417B9539492F30C6AFFFED9CBDC21EBFFAFDDF1F6E9AA9E312988C6CB380CD82 -D86224F31FD16D04E2C07016E99B23F59F05D4F0BCC758B4ABF5FBB2101DE03C -88F5C6971BC83CD764A2045074C31A8C465047FC28CC7D3CEC16EF29E3DDB8B2 -61CD29FAB521D6127A792DF0190F2D5F79879A25682A9452C2A04898B1D748FA -B1B686CD1F9B706657FC96BAB215E471630F94E6A68741CB3035F04F22FA0779 -5266634CAD26160BA102705891640B1171D41BDA8F75E482C62CD3A9D3155738 -1CC4109C167294849466BDC51AB3F640226787E805DCB1A6DDEE253B23E7BDB5 -BCF49FB392113175211BE07E855AF27EF7E7BACE38AB88C1D9BBFD648CE1A073 -9305F78663CD67AFFF0881B355661DB7A48D6F427F31E6E0ED530D55CF5FF3BC -06D2F4FE5E2CE0ADC23B293C5DEDDC39E5F21DE7E629B7A2333C7B0FC6DFE4BD -53FF9F83580668D56E0810CB5830CF84A1E6AE8E4A8CA2EEFED7EDF89A09AD75 -9D315E5C70A0AF0352BC304808209E9E4EFA27A8A9AFB5ABDACB712E47AF831B -7FFE6F3BCEDB86661A9A6B2F515C215276E963997C88E24FFA9593192303C907 -7E9B2E1096D692024C3B52849BD82E0FB5FA248DC46B457A634194C6BA29F2C2 -9FEBD559E7CC6A3B5D9256DE1396EB2C635B7A128193EF783CD2ED5F217BB9EE -1B2D2377F993BE53ADD197F2F12DCC0576B2B0FD6DCF6784016F36F6BA89B834 -262D1E024963D39E279479E1D127CA75112BCFE619615EB6C15346EC3A2EDC7E -8A342E1FC8B8A61B3D08968C00977A4654F036C4B9353DC2C7500EB8F12A2AFE -12491D37A10EBDB0F19409736DA7B62AE9A9E7AE738DA76A63D0CA3C11B997A5 -B0FD5E8C0FDF9759487B3803280F1036B2DDAD846AA162113E5D2EE94B301A58 -02911791528309473040FE0F512A7A2FB30508DC2FA0F4B4220147AB7CC4A83B -7B7A9313AFEE47127AC66CCA2FD6301D58C27B5C49E4C41785EDF404C5D9DC5A -54443FCCB690A5AABB33C7E1874DFE775E39CBA54C3F609065E77D7DB6C34BD2 -892EC469510256C092AD1A8B70C78D68C2EC211CAD18D3A38D571B7C25B7C465 -D8F90E80E19392B13899CDE111D7145C7A8DB5B988F54049E5E94BABF539A7C9 -6AA339CA44B0DB3B406B9F29373A3AE28B5E4544D25D0A4DDBB1EBC9DE4D5854 -2A0C39158DAA88CCA1C2DE5F9E588A35669FC9CCD6C80251CD95B3B75555C37B -19D6E10D1A2EA592D6FFB2A640BE02F00C1A62B5D6B1038C6F13FEF94ED8EEDD -BD4B1CE4A61DD41DBE1EB32DD2E98513AC545E9CCDCDC74F8D1293BFC4F81AC9 -1AAE6611F1F439C52A87C760D08F86D7273EE05569F0D62A88F8C0BA1E6BE645 -9191D1D39D43C9C3565C972A145E0AA8924FDA038B4600A8FA5DD3CA2DA18863 -6ED416AC4133D0E96EAB882BD17F1C995D7822A9A6BD20F9589EA1B99317AA71 -CE08AAD2837F4956C32731CD2895697AA160B039EAE99842AE7C6D562BF0F383 -5369C8A133D6F3C4BEC8B45911143B9C825F8A3CF4FDCB31B97F48006BE9ADC0 -11DCFD1AA424D6D4C5F21A2DED6E5E4622BD2D6419F8B097FEDD3BF4806BA6E5 -5FE67DE62197608351FA7BF17909687B58DC6323356A1560EBA7DAF0DA6C30F1 -9A1463EB04179802CD3D9393867DC77191ED81B045B924AA3F76809565792135 -2D24B8E017A7FF8C8991D060E6F3F6137BCCF30B41A14DB349A677C99D2EC6FE -591BF5CFFA31098AAA62D88E10E2F9844F3AF63AEDED630B1CDDF6FBD581B5B6 -98ED711902189716AABEDBE428594FEE3C203BF6764932847474C12B74D9D9E4 -D18AA4553DC217E0EE86C5CA32398BAAF0955247A1BABCCB62CD3C59798DDC83 -8D248B6E1E9700E989766503D664AB48809E5339A9FD63C537468075FE34D0C8 -2124080D8AAC6D82EC06146ECB9625DD1A1885B4A9338596EB6A4082DEF5EBF3 -AE5ACB49645174BBBC1BC4E64FC4D26469216DFA9C1AB7DDB5364CDBFD50F9E1 -B837419A5B7C5968048618AC453CA045E37D8A87F01B24D30E1F0B905CB29816 -DF958C7FCA6E5BC581E76F03D2B2E67E97B974E4EDBFB31C3851ABD18A8B17B9 -E4ACC739EE9A72EE738F047F5A67C9EE3011E534C363C4604D4C580B7853F659 -7F769BE90A5E2469258B20F8D4DF10BD4A0B69586CDDA5BD08F6FEC75451386B -ED5ABF5489B30D495C24183D6695EC6B7FD554A050A9C7B04D76A783B4346D70 -62A0A947304D81F35C29001F3E855AA34FA9B0CB1A5DD721247087AC30851702 -B2484D7F7C488256758D24318903958AB96AE39216AA7252708D7897C3607914 -DD35B0C862FBB495AFD7AB36FE422BDB7935CE34B6EAF269A7512328D56EBF7E -8FB7698BE3946D38365AB6180F139E15E28A52FF40A1C2C42C7D1596C58B654C -04E43AE282CE56BECB9F8EE264D062630205BD361AC7385380F7D3BED9B0C26D -FC01078D6BBB23C70D32EA798AC9620C60CCBBBCAEF286F52189EE63DF7832EA -FECA2C7EF4D2CA56EF45406365330C898FA73415F9A18E877429C9124982EB41 -FA7159B512FAC6259910A21866470AD9945A0D7FC39D956334A6B30026AA0838 -43E3369BC9C743BE3C29512D49EE3551933CFD29658AA3A2B41E265A68152B9E -6E5ED231DA1EB9C36392ED8C2692FB9E316E96AB83806D72FC1B4C6354E85149 -2655F669F44E49C4110ABFE8F0FEC7821B388436C99C33B203ABADB40729CE97 -A804BCDE32480ACEF760580E7BF94CE28077555F3FC58CAB8048E7CD891A5BA0 -F09AE7E90C64E0374565DF7E03DFEA10198B742BA58CD7969E2EAEEC8311613A -A9092E53147729A4C32B4ACA7AB77A9E01EFF4F294C601A79A3276917682A345 -0A52DFC61AB6E5D3CD6D989BDD8ADCF02272E4A1633B2939158434BD7D168975 -96A85A09BDAA86DC5BCF2088672B5217E87449DA42F66464B49926AC4A047BED -14023EB87BD154073A163DECD7F6380F38C52BFDADE187DA6A92DDED2E4724F5 -D2E58CE99686D259A4269DA7275AE3F43DDF42593750405108575A5037B2F912 -F18584CBD9FE3EF6935CCB5E081982DEC072F7FD6B55FF962D84373CB0F8C0E7 -C990834B6B64934C646AE5929BFFE0609739EC2691048AE17FD884009B975CAB -43C38008EC1893931947B846F7BD5B2B4D20AFFCB1270A27D32CC9E673AC0D26 -E3AC2BA7EF1A4A1A823B14DC8E25745EADF916F0EE3EBA79CB75FC17AFFFA614 -F570D732E4C7CA6F52B3C3A1CC726DBD1CE3E808 +415687CEFCE35F8A1BBB0C18AE4A8ABA688D2F3894B5654AB7AD595E02221090 +2BB6DBA4C0F57B6505E06154D2FD2B4867047BA56876080E6355F74A94B6110E +519BDFCCE8B1591398350C973E52643947FF0DDF1EF1D5BDC2CB548691337378 +CF13E83C7724774281EBCCD04A9A6193DFCAA31067CCDD98444C705CDFC58F57 +51343E8EEF46E9B779B89D59ABE35BAB4F08719816215E434BEB69263F40E144 +B30D52B749F3B66A9147F225777BC69BB72A12C96852AB90629CB453EC8BEF3D +62FD39F7DFF6F9466E98EB42D718EC3F40773D76EFB2FF4E7261C3C64A4C937E +823F633F19C6F58F4BD5E0EF012ECBECC797680A1B862AED6A1DFFD252155E20 +57E8B6B0156FEED1987931DE5EF1CA6D3B580BEAF56C71D8A2385481CFF22E6E +7B6D2FB8F139B5FC183BF5FA5E1ECADE0C78F6F43F37AF77F228E6E41B98142C +085427FF927194E7BE2B84ECCA36BA40DD7EDB158D3DA6109F4668FD12AB988B +0D65E1E14C092F865452DC646E0C246376ACA12C01F17D714A4DB87EDE98B6C3 +60E5A0F414813EF3392168D164463CDB5D55CE2862008ED4FD65F113195E5CE8 +854F473644A50DAAC5D39A3E10D690ECEE89CABBFA93D2B91F4116FAB704797C +C8397FDDC9F364013CDCAE9E9704B1DE28E2CD476AF57C3A30460AF14634C05E +7F1F232F563BFE0C7C3D669700A38A4752AE88BB814DFD08B40E9E7F8BFA0252 +177405ECFE96FC249A6F1B530AF5CF106E21EFE0AC0729C36385E022BBA827F1 +68C11A91E90CA1472AB5767F14821E8FE5E32C7DB4A88FB64E746187CEF23FCE +C499D2472AF392EBB6F79F714AC991F390769C25DC58D364147D868AC08DD739 +FA4602613467E3F2B04ECCCD12333F55D80BA4132883B2498D652E61D4E0096C +B5193FA063E5C4131397D76C9656CE31CDC41D24C17F3208971BB853FDCB3F62 +B3CC083E6D9682CACA448112C84C0FC9FB19C8AB13E0C33EDFEC2A4CC16AB125 +044C048B65011725D34571D9C235736B61A485F7FF0835C7294A6FF2E48194F1 +8FFF4C5A055091AFF95E674F9CD2E43ECCA77F4876B5B50A1D5B38319D594246 +CCA3CD4F81AB3CE49B648FB21F0959801B814422D31DA4F7C3581032F8310E76 +95660ABF1A1DB536081F61FBB83AE5C8B47A9E0575FC475754DEC3689B28582C +016062AA7AA63EE703DBC73ACCB5316DC3A12A2B7926D132D5B463B01452B475 +51862ED934A55F3DEB560FE2CAC39909C99CBDCA1F7239D122D9FFDE76D90D8E +0576A645714E190BE1938E8A9EF1E4E5C55AC58899C2ED571F246A612EB73EBD +24B76697C6A4FFDF1447CA182096A771B26788DD9456E0DD04C83119B0E1D0C7 +3C4323F13AC8786BF2B89F3759180E58AA599D2F981FE280E82768C0E3ABBBA7 +CC14B6521FE6179CDD5EFD68E9BDC2F53B5D6C25155564176618EA019D0BA472 +76C553A27871443019F43AE1B1B898AAFE70EA1F274C57582E70719AF3A53597 +1E88D7603DC99E5113062024B63E9BE65CE676E4F61DDB8F77E40C47A8F7D6A8 +2590664A97ED1D14547FCBED2C7E37BC09558954D4E3B93DFC48E504BCCE7865 +E44F4C479A27F3BCF551203BB51F443630B06F3D75D24EE7478B1AF78130174F +FCE0B804DBCE20F62989ECD03A0CC1A42A1F7FBB673EED9E93E1B36D6E3E9905 +24E71A3391786905FFF7A2B56FC23AE64D4478D25ECDFAE9235606EEDC854E62 +F2EE5F50849138DE28C569D08961EACE1E6AA1787825B0706C532ABE724AD9D9 +87B1F459B0197A9F2B8002686E814BC91A91DEC9C0BE90F3F76242E3709228E3 +DE8116E7138751A8854E8A515BBA1E0F8A16C77BFABB6562601B85E1497E6E82 +AE4B8688DD6FDEFCD53226058BC6923EE68A195F375DC42448DD39905439A38D +1B61CC01CEF9D2618F72E05E018A9E83AB1BACA13D1FAEE362F60C2E00523558 +E801B3BC8F79E4079D10627DAC3EE837B39337BFA4FCCE26FFAE8B9AAD60B710 +0BDDAADC236257D1DC9A7C41F83EE6F44573A357A3A1820D03685C919D80293C +1276AAB97166B2D0D82D1045075648ACCA7933FF2B68F7584DA6E78899F0F5C2 +247A46AD8162A61671A1B633DF24EBFCC985C029223B98362431118BD6ADFAE5 +61A8C91E79306D1E3D4DFA5073C6BAB2DD04D441418B47015A7A0F21DA1C1B8C +0E9B5DAF91CDCB69F86B62B4C003BE88B4DAE2D5F9DC00FEA9D3136B7EBF92E2 +7AD8617DEEEE72E869E2483548B56B90BC88F8E767676341B45FD0C000B8E080 +42CC156B75ABFA7026D54B31FFE73D285A2330C7698727BCA6511F8C404994EB +8C8D437CB593291E8816FFFE3E4BD7BAADA3CB009982EC7F0192C5429FF37D2A +AC8DD62D454A8B50857804BDB8EBA7347902EEDCB394FF153503E77174D71439 +A57D9941E1EC82D2CC49847933FF387BC7EC6E730BA6EFE48A9BB5B1A6785DCC +AD7A9557FF402D8AF864E0FAEB0AAAE4C93243F3E6C550A18047F2CB9AB57FAC +CE3F57FA2072D37763FB32172C2908B152948BE21051D26715C9326B858D538C +B9C8A6DDF567C6DC6E7DBFE7CFD29A498490AC16D964B1FC1FD81B95735A5E3B +03CE325D2138969138F3B6CB027E54C987E4C81E52EFA77A824B40F71B2EA2CC +E98F2AB61546E4BFADE41731E48D6EE82C19257DD9FFF78CF3D01A2055863099 +21C06567DF3F852DC96838488CBB41D5D587BAC66C9586F093E493E1EFA65260 +9B9F0148227A5D3F69FFF499675F0A52EF0615E8272825E69D0D8496CAD940CA +93655503DA72D62D8D35C6E25337ADF834198C750910461C25965925D0DEF604 +844C1257BFF739EAD0918630473F5B9E88A5AB0417815239189E0738A1134655 +DCF9B009A68120E823B23C770F7AD7C0A11EBE9962D3F14940C8D2C1A7295F63 +908BD22A418F4E8F81526FC827CBA16BA143050278D4F2FECBBFAFD3DC8003F8 +81FD27C56330B33BEBA0EFEF1F0384C45756B1A74339E232873504E55DB50E3B +59A2CA167D209142C1ED6029313C73B7D83B0E22B1410C01519206795FA33F63 +C88A326500EB96700A24A434382BEEA0D0692E12E3AC72D568AA0133B0CCCF70 +C34C979B31975536089EA02286AC17FAC1CC980FDB0BA382F7755602DCB18CEA +C862957FD6DA71D7180B3AFA8851458B5DA45DD8C5336E7033F4E957CFC2C08D +1B3F550A219034ACFE7353BDB815B7B65BAF0F947BFC3C5E47AAB9FEE752B938 +34F5E6AADE58FD6F827B0649DB56F21097A780F57E253AA57CA6D5C97AB407B8 +8646B1652557344AB12A962D745016BF5E3E712E56520A30D2D4725FA67B2AC4 +8E331D28063727F0DCB494D6DE60F01FC86DD340EB5C8201CEE5C83B141A6FF9 +72974B88E35BE6061626D570539AB1BA69183EBD64FEDDE0E3C8221A5190DA08 +58853CB53920A109561473A0E0A3E6C89E66F9A5372483CDF9CB9F05F6AD5AD1 +F673B2DB23090B73C08E0D914366AFF8190366111E0504E11A1B123E2E752B75 +90728C69D7FBCCFD6411CBE4AF4734CD67F4F4CF231F38F4A2085C9896C5CE05 +8DC64395C62FDFB3ED92FBF66451DA41385E35FF0E0B381DCEBAF01CB9550679 +A0B3016A0E6CAC3E9C9B6FCDD0991B3AD4DB08B899A321FB78EE4205A0440285 +BE7D4AECB70BF2574EFD1A8E715AF68DC99E30DE8233C557AA120584199A80EB +BCABC03A01AAEF4259F4740D3E217288BBDD85F690BFF141CAD097B6E7353364 +CE25F9818D743CE61A3EC151B120462A411332FE32F279F7BE76014AC2BF7C44 +C9B2E6A156F4F63C2522470963BF1FE855AD6A083349BAE5A077AE1381F0E264 +4F3CC894E16A0B1E5195B66CB83F0904E3C9C3154E87231CFF119A00165C4338 +7EBE20D9F9F7E73AE9DBFF5A5B25E241A52C180843852748415EB5F040B38D59 +FA08110F79D73ABDF3AABCB1A95933E7A56120D63B473ACA80B80769638ED878 +0E0513D8134962A1C350712424910E4528AB2C27F805E73D0C204B94809C5872 +DE2B60DB49C7414001AE889875E6FE43F8D3BDE20EA92F4B92F9E9077F96987A +FAF2EF0CE7FD75387CC8E98CCEC81F1EC31955098C66936CFAC4200A7896B245 +CD57EE8BFF38CF671576240C466CD5AE235E46DDA8825C72619AD25EBD9B4D20 +B0DBC776CFB8E8F988903E59573D77D9CD6AC5CA6447323B9B6B9D4EA9C975A6 +CAC725E12C3B10BD7D38BED398F49D132D850B737979658BE3D6585D63052366 +255234F4A3A6CFA9E1B1CA462CD6FBFE67F8B02E7988BD6C81AECB1396AFB4C9 +6CF9F41A9426D1AE18A3CA08062CD08FF430935081B48EF4FF53093B1BD25B15 +13B8F3207B3F5AF6788364DD45853A1ABB21E67848184228238C7290ECDD5B6F +6A755FCA9D9422FB325FC74A8831C33F053DED1525FC298DCFA03F382FE259CB +6DA17A718CFBC755A5EA1B46AACB7C5882B341D01EF761625804C83A2073E41E +C1B47DF7037677D53BEBB9D1EBCE59E1D10E68C4E4BC9972443FFDE127B6A7AC +0ACA3D597FD27904183920B6050DF7F6D2B6EFF4FDE0BF73863020BD00C03803 +DF70E829030D042FF85E288550BA31479A53EA746760D4D330EF65A9CD017EB4 +75528EDC8F9D527098258D7C89A642333C73CEB113F80D3D507E0D7E62BECEC5 +C63C8545A01F94E2ED182472AA6AC86864E3725C31930B0ED0B8AE8AC33FE5D2 +5A2AADDCECA9877DBBB9CBDD7255F5AE1F0D64A399447AAECAC3360D77BB85D0 +49988DF9FD104F31917A03ED7C3319CD51EF4DE19D7EAA3292DD8D1BE8A729AF +ED576D7D298EEF456B4E252B9057A8186328ADAFE674FD28936FA4A66AA8CEFE +FD75A180F88B56FF34C353EA48E19D94BD98B0BD330A06D2FDE75D950EED3A61 +ED046D38B86429EAD3C8FD076BBF224F97A07EB96DF43027A1F3C841080B08D9 +90669E035C80E052EF8C209097AC6C1EA442E6E553055D659573CC1764866C76 +4A998871A49FE54F852DC81C19EB833DCB827C4FFEA4203C1539FB6057006EFC +8C9FAAF9E4676EA22CAC6907105292F59169E0690CAAC7C5D71E6CA25220BB09 +6B815EE86C14BB4FC2EB5F684E96A5A23813F0979D07990723861939EA40A6A8 +B6B360F5DB0062A426036CEF16485B4BBB0A18056E8BEA923884EB5876F82A90 +F9B175F1F9C0DEAC73DBF7A8B8B735C271CCB85181FA5007706E31D349571B9B +C876251A0DEB34DB2715CD37B5F38CE8D5AF46C338C98B70FF11535D355ACFC7 +9107738B8907A52BEEE7EF642593D486EE15CEA7D17328F58D2C453FFC9D5422 +35084974E464ADD547B26F3FA94988DF0B1F36ECD048D41C8459A258698DA53A +B71546604E7EBACAD7A9A949451A5841B3CBFC65E818B6923003CC9CB2D0EE17 +54DB8F558DA7CC3E5678CA5F2317A0713B8CA73D4B4F555BF5CB00410B7CAC34 +C862B645F311E814A23F60810162C6E7FCC2830ABE3BEF1F60975F1ADEE9174A +82E67ADFEAF665F4DEB6EFA2A12F2A44AFF5D5B73FE036AF2BDC271E44E5C119 +F3165F00248C3CFBE900A4D925B9E99BD7B72549DA2E26BDDAA760936F7D056E +16214EFC4BF143588FDC9195389359F05FB38B07FA192895B5482BC16DA48FB2 +675F45BE53D1FD413192E344AE1B8D4D34B6DE4BD2C5F0CCAC25D8C416E82FF4 +8DD67C02CE58BE6C1411750195A6FC57186BA2A501D9E94E55B99435FF0B80A9 +468ABE2014EB30AADC5512550BCC194B2654CF439E669779FFA2D0D956B02311 +9A7C15A34D3EB890D1971307E85CF10C316A560454ABEFE5B9E4BF9E12D2C18B +D42ABCC8A9E848028BE311B0315E3EF2DA66F87C0204D62172F3DA5392489B4D +6DE4005E73F3C7CA198F6EAF1359C7B41E0A9B6A1D4E5BA635A376157910521D +516AD8BF7275725C81D75D553D6C45807422C979E85896967933C80B693FAFDD +7A0BF5CFD1CB0C19CB60517BC725F5B5AE16D38E9878CC4B80B5CA95C942E6FC +2DABE3617E5CF76CC6CD83F257E7B7B746D164A26B451D400C8177946FA447EE +6A68C961E78DFBC76DF68AEBD9E1061DC729088E4C2FE68DB331A031B42BFB26 +14045F941615EA0D1ADB1F7672FF6726AC59AF4835115B14ADB0C6422BAE128B +956F8AA6F35773757D13EF82C640F1D79E7904AE638958A63F8D4B48534B6758 +EE840A51857C852EB04680C6B5789D0EF46178A02801CDE990D2C1689B7FCA63 +D3F3953340DBFDCA3FEDE5F026F0C15EB43848B78A6C2D6C01231FDDDC0A67CF +AF1C673B95370C4FB888B551BC360762DB048D91F614A764E9EB618111122664 +C33BDDA6C8996B8B85A3583C5661B5B66B8222B46325F6244E0323B3B3EEE469 +433F262863585D54DF1F11AEF52C2114CB0AFCDCD2AF7C6C7ED155B1F58B84C1 +AB11520AB2D62C3DECDD638D83E42195B8315BCB37C1A7A0BE6BA1274AC9C4FB +FB9647197DED96DD50FBDFE9E46050400B78F04744E687ED5F51DCD04067DACB +E4299E7EEC824DEBE6D165C463B920A4BBD08EC3554F4CEE40F044529AA8F059 +81AEC16191D42BCE549DC373DC8252D8AB83C4512BCB4FDF83603D629B26E302 +A49E90B234503D5622FFB038E8EA2CE5794FA2E97E80FE5231ECE372A35DB9B5 +D7D86AC8B690635AC11789940493C7D37934E2FDF8F56433824C7F2AAFA357D4 +6952E877C901139D1F68F379DE71A51C0F7EAA3272A412744C52F9782DAFA97B +8A753144988536ADAE7964B6E7D63191C1C521DCB90656DD8AF540C67D30B644 +048B0CC17F54090F1CAE35B59F190BDC2A473BA8BBAC2D8E4004E6BFB02FE922 +849F6DE710ABDE45BF0CBCC91EA5FE97806C059617D5EB64FBBEDBC570A39F5C +DB4C9E35F3C57E6693196066843B53DF3633C3E44F4A3857DEE327121DFB0BF6 +3CFA4F3FD2EE79DE54ED1E66168B6718F0DB0EAE4B0387AC2D680E60BAE49478 +0D89683C04CF89CB5B22CA2A5B4F56827388AEC1263EC0E0918E12E26834FF3D +E53BF07C6670109AC0236F4676C014782B9AB4C139499A0E72A8FF6101A39F5B +99B33D6EF20B9A959159EC1BDFE1AAC8846352DE5B3B29137A34E8ACD5883FD9 +56F140D6BF3A66A4E2B547CF555DBAA3C8A04E2616873C76AD8E0257C8224EA9 +5EF69C5EE5BBA0D9DAA564EE3648A3F19AC70652EF6B2529D87E11FF3102A846 +4AB88679CF80547A3D94A2EFFAC31005CAB09BEF2B9D20B5AEB4FA1882126B62 +B7C151CE7A504381B3E24EE88FC789B0ED87A13A3A04AB0742940DEEB24B5D3D +75FDCDA9B817FA318C932E9397E4E4011714EA81D69717F21470ABA8BA20DDDD +A9ECF00C6804214BC82B20C91A445C6B0B5158F57315CF1939539F6A2FFEF426 +E493FCF410E5D576AF15B178E77E65B79328A79ECC7A681C6C8585EFCE1DC079 +C0F140D40EC95B468564DE0BAFA0EB3E70BE89797146F56B7BE9A4B7BF3E5B8F +BCECD50A1793FCE65EBA1E335247E3964BE095810964326D580CF2F26133A799 +1A078D83BD6E550812CC56CF295A1E6545B339440A1D3392866B9E4500428130 +E42B64F1E4824FB0D785F787C7A0515DD39678008950E25564E3E148190F8C30 +922D719A29798C3C120EEDD5BC0F4C321F82C08761E68D8400993655CEB31839 +A98154FE243670B464AC40BAD7F18893F517A09D7EB5CB30CAD9ADF62DF7D9DA +5F60EC004A9B9A49DD43005B66E05EDEDBCD49B94DCA88E91F6D359ECF19FC2D +660EEDB26CD608D0B2E0867633CF353F16804E2E8155C9DF6B6FEEEB2CE1FEF0 +9492C875FDDA09F81D8266766E6CE28199D1EA777FF67F71F3F7BEB60A2DEF9E +68B059FB0135812071176E44A70C38A3FA80648225631B16B17D683343313F52 +810F6E7D60BB7C895317C6C0A93289B1A29E6D221E55BE350547FD775CE2F77F +94ACA7430811E849E86F87C4913D04E15B704A8059C9F4E9B15EB1F32F081F19 +49255ABA9890AE20DEF0BCEB216B5372DE32AED9577FFD9E06 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2033,273 +2031,271 @@ 6EAD4AEF60B83DB1E356D7B6844375FB3AAA0389F56D070F426C759ECD2F970B 2E65032797BEE2FFDD78CF0B7C9684F6EB8FAAB6502F4676CA8F23D37CC4D4A3 42EFDCFAC381E4B95D63E26FAC8DC58232288CDF0A98F076816242E68A3C3189 -8EA28401139ED158D704F62F79ED030B0B8C6FDF57D79CB24D633DAEA4D152F2 -6D841A03E07789BCC6FE50E341EBB0E62D9A727C6A55256893D89562240BE250 -43EB09EAEB3C19F1BCB4319DC85CE4FA356D25386C9646BE83B51DECCADDF627 -32DEFB64DC618A9506F372828A3B615E63CB685AF64E199532C3AA540A6B628A -8E4019355DCBF124E438AEA613E35D755F8B9263861A63966743FB7DF52F2F08 -2D4337B8ECB52EF7E09311A5FF7C40E608E68B9D0A764F83A294E3439CED09CA -CEE4EFE17CAAC95C323E51B205DA84CA8C17260D7643DA0DC0222A5A6F192602 -B240ADCCCEB494EAAA6DD3961D0A5B697A1754C77FFBFB45305B72C533D6D506 -6ED9C0E158AC4CC72F1CE4D70D35EE49FB5997BC93CA764B7CDBDC0DED90A276 -5B7333DDA2EA5CB20696DBC572D77DD5847752A7181DFB4D862B7454DF10893B -B41B2D30036A20BFAC047CA6E78118C1B59AAE1A36938CE018105478260C91BA -84F8CE3EFEC29EBDECD0C1D65AC7DE83B2A6210BD2D535EB78471375A03ED62D -7AAB24E7E940B021B6772D2C74C662E78F25782F00C956F49C078246D3D5D230 -BACC06F32A5804C4984FE5F40D53A21710435E43A9D178AE305C052A44773E2E -018175E9B6D0A6F856179DDF4B66B9B6C02080BFD3F79821CFF92F44F7900367 -F43EB4BD305740DF903D212B00B44DB51718D40A186D0CF87CFAE417FD957611 -5314E281183E04CC0218AAA77C267AFD4A0D4E1908A1D60E1005B33EB5EE5047 -BACDB817380466BF1D084140E623402D174A0810BC2447BB2A0B7A1C1E4EADDE -04EB1432A994D12446064F3F08CF3FA1D62CC361EB1B8D956CE12255C12C35FD -A0528F3C74A333C3409E138A551D2E2351DB44BC0F1F6CA6454E3A64B2A74659 -A7CCE55CDEB071FD94B4D166E17F3640DDE2B3D5633E3AD8CA18F0C6776BC247 -263AE4E046077DC73D5E9C7117AA1B8A823B5A18A64004329F47379B050597D1 -0D3925A3E59D630C1E88EC5A6B61BB696635B48A65D000820B4AB15C11F43A1D -028C5667E750A6875650883B6DD72A783280772EBF55A6E08814DF09D8047CE2 -BAF5498D4F567FCED475372BDD73DFDA5911FCC6B32ACE95DF38900BED5747CA -4880693640008D4298EBF2C9C053B38C821A244367331EC78BAD53EAC16D358E -94F1BCC39C05B61A8347E4B69B19941B320271FCE6E415FB14352587A929077F -9DC65C455A76B8C2F5E7FBBD0437EC17134242D3BB13B0722C6B197C54E5EAD8 -18AF5887986C7895294E4E810EA9BC21D29E2CED5C82BAFA33FE5058F3F252A2 -C1C2F313872048F8D2EADE51B5A94290094085F43D81ED74DE3EFE8AE9DEA7EA -49F466F7F133F2C82D656523B407797A61B8C9982D5B60293EB7F18A2085E1EF -7C1F60A8A438314F0388F722ACFCE55195C1F3F1E17159845941589928BEC56A -F31ED3C2218CDE188A3B55D17FF605E05D8AE1065CAC7B135A1E6B54EC841644 -B430A21C8B0ACAF85204A564E57FE3AAC1A4B8E8D1CFBA68852D39C4A3159DC4 -605EDF016558176CF811F7591977490B3C21A1E4A79D27E5D76310FCBD435C95 -40F95C34771663015DF949A64B171F229F83025C0A907965DD988A0F2A75E8E1 -1B498406159A0C332949577D32E1545FA3401879F05329982C72A203D7652CE6 -5AD49FF99AA463047C93F56DE4916158EED499FD7073823BC5324BC00191B24E -456D1A93FBF6E6137B4AA3A773047072021F8C20E9A553879C60A54774A9E845 -BBE9DB5D253F61EA096DDFCD8F321B74465B604BF3AD557CD20E6F1C7B0169BF -B37105EDBC8FDBF1E3DB5554775E475DD3AC4F88DF0D72CDA441C04A0CC47526 -7A35680041E78C0B8CE7A54540D591DF9CC8164EA3A3C7C871B029AF99DC0DE2 -E994E863765F9D907EF27DBB707E9EA1CB479E1AAC73F741E9EF0AA96F8455CD -0084F105227A5A3B6E066C5487FC956CDCC0E8D1F6B92E8E0F54EBDA69C7DE9B -A63EA7FC5C969185D72362A6EA294E30DE8E13CB701C90EF7E13250B34545B30 -CA046BA19A488FE9FB27C7FB9B7A6017F78D2B8E9C5ACDA576801381F6B2C435 -DA1B205A4041A7C1E0B55B44E71AB130A11713DA2D971D2FDD1416AD86412604 -6E65D39D7D77732E6B42910C85FCDCB473E5F2ED159F9AF583CA21C4AE230D63 -607222B23A1E413A671F55E6B71B1F772F9EED06CBD5F299D033DAC93F80330D -3E3CAD7850FDAE6EF00E1E1D02395CA135829FC65A6B8CC95537DCD7AB804425 -2172752ADC751F0CCE122C7A470CF445FF92D6DDBA43E0903AF9EBDDF94DEA18 -679567FD8A7E78DCF94B26D5C2E4E46BDF150D67032545A5DCA2EA06E49BA763 -D5531360293B0AF7D83A7706D82C730B97D78FD494E47502CAA1125B1AEE7093 -129C7BB9DC79AFCF1F08E8157A50AEA2CDB077806133548C9159D1C5B8EDA8BA -8FC4E14051F42AD4217EB631A846394CE942C16A2B2FA617701CB3403ACB7AED -1B0BDF2F56B65F14BD2D3D4860AFA59D61709D1AEE9388B04E40B7F6D1878293 -9D828F81DB610843ED5306632A99A23E11D00A53B46660E6AE8BD5DB9284BDB5 -BF5F5118DEF0585FB46364C7F0CA697C43712C8A366F717D600D56B3B5162E98 -24EA12C92C8831414F54DA383B358AEC3E312C456EF0DBD70E81819DDC2F00FA -B3E1EDE9C4610F5E51D0F4E0EAD5508BA97AC5D6EB5F16D2927633A7E92D521C -E9C34D91D69C5273E3B591E8E9732EC02FFCE392AA2093A154A8AF4323BE07A3 -ED6E4E2A0FC7CE95E879AC41D515014E54913E3B68D83FD3C621F400CF93F9D0 -2308DEB63797130B1C9FCB29ED6FD1BB8E140178CE267192E5D2830DFEA98831 -500EB89845F0D6B47BD87958CA500896A1AAB34AB6AE1568D0CFF85766CA1B78 -AA828FDD1B699828832ECE7E48B2AD702109B72781640C7CFA52E0A490C22A36 -D106F18CBC5B629C61A3FAFEA54946A2BF98133683FEA93C17499CC8621F9395 -D169358AF2C2D4F9008954E5DCE465E1F2333CB65DFD554052D49E268677B602 -7D064A95B1B2AF7F6B4F223D772C88201A835A934465139DAE6AE837F6F653F0 -60CCE5FAF8FE9A6198294771724BE20A20E3A65BA23F34B59310154F54730941 -C39D3D438F2DAB828172F68A16CAB5A3D1EAFD41A982C8D7DA0438146625CD88 -A0D3264A1C4947B2ADD5B320B982C12D1AA4C45334CA821177EA18F2ECFCA050 -11577526AE45DB0C4E2D11F9470954AB14BDCE0F921097A6B73239B8E11CF61D -D2A41C16C8286A4D5C1E4F90CA103203CD2361C983593BE6CDF6E1A93E15AD93 -CB4B66C51F0BB708EC26CDE3E413FD5F14100A0402D1FFEFEF92A3060C8178EE -B7448BBA900476F1ABFAB06478ADB9D426FF04604A4C7881D96A7B66E6BBDA4C -B828F046F5307345354D8DEF36543281AEEDE1407F9ED00D55BF3A7808D26422 -C26DF7CF6880111F52D0E884D8ADAB5B8CAE44DB6F4C4A7BD6D4B29C69DBE0E5 -8EE2F7FF6AA30BFFCEB9A6AF4909FFCD80F68EA11E2AFD247257D1C1ADC14E5B -FB18ADDEDA37AC39B95906EF8F5531011BC351B19A7D7056F90FA1FA0228634C -3C353A19539F78EFF72152E1A83C40F705923605DD4E3AC3801CCDFC3393B665 -9BD2334180424290256C383F229AB6062D3732B8E3497E8E413AC1CB5896016D -9333B7610D3899BE52FFC49A2F24A7E9BA277C46D1B53763CAB0FC8076E3C0B8 -AA329CB6D9BC4714891C766F4E7B1DB3C17E34CECA89CA084DEA904227976419 -E93940D4F773C28FBFB771CF206D857168C3C9200A1EDF3281465F4AA3639250 -8167B6839466831D66D7AC762F1F4138A5DC4940AB4A908CCD022D37541E02F2 -DD976E727A9AD36DAFC65FE440D4A9EDDC5434E7E60431C6F65F1EEA1FC2381F -A9CE5E6AFF4187EA3C03FF68AA552410675D55E321DE3073638EAAE12F9F164E -0206CD106458EB6E1AABEDC21E93DF33D4FE77F168CB5E2F7051077EE345377B -1AFF83007A866E86A3AB71D96C5264A524F367C5C94BC3C13FA63ADCFD3A0612 -2D384E8622C0FE2FD6F3BCD97276EC66DD3A348AED1049958516168712F7605B -4A0935B2526A6F2107AC9CCE157823E0476798790426C029B64ACD8152ABA13F -0B977FAA390FC397E5181B37B9A67FF72A8FCA83EA399DD2F3D9ED076F26EF5F -871FBBA26AFA0B83ECEC1DDCEB5A543DFB395314F32D0096520F3F03FD4C242C -9B089D84E46A62875DA88811CA1DE61E898698219EBD5C3E240A513261BC4046 -9563C6B3376ADD56C10A01080326DE260F58DC1C247F6B37C77031E58E2B62FB -07D1A560A187EB97D93214211D3EA4CE098C306985199C98F289CC14C15C24D0 -1E1B27B4626D8B877FABF9935EEBE37E5EE2FDF544E9262A4CE1748EBC50D690 -C6C58846736684482C5BE0585115BA020984571C5FD3A6787E8F5B76E9AF4258 -97BDB1937C7E482C1080639007A1F6C06993A8C168DE54FAF48E2C5BAB7CF01A -521A043B69C656EC17B10AE310F5768979A6CADC836CC10A5C842728BFDA4BF6 -D5D836EE57B49D8D42DD26FC15E13ABDF58043CF6AF5969374914DCAF4DAA415 -42D24BB29521E29CC2AE3113ACE9098A954D9A43FF36E5EC12655E49EA8118D8 -009CC243141EB69112E5F93C313A095946067DAD6662E69E12EAD6D803E3F2D0 -9FD1095FF7E1449744882D2CB4184727FBEAECF87BAD52DC5855FB3D0CEC065F -F93D86608522082CE33EE38BCA76DE948931334A7D66E306EE3F6A95EE28D40C -B79C62A848E44D7ED27BDE438054CEE3478F64F5BA9F4AB828BDC228BF616F70 -7F589760B6CB6C66558ED8F3518D283AD8950B75C8304983D0E597FD8C9FB30A -3BBBE79820E68B547A5398BE7BFB4FF9EEEBA6584275FD4E328698746763C356 -FCE94EA9CC2768AE4C6261F623755646EF15421A73870578EDEDD6ACA608FEE7 -9E3DBC12CA6A25D6C1F8628865A7A737FD13780372E1423D7B079B5360CD1A42 -0C94CFA4A5E6E812C149BDBF6A94D99D55AF61182BF43AA9DE6FF801C1524E4B -1727815484C92F8E63C2D9C716ECE1C0451ACD62832F349D6E8D2C1F9646B6BF -2B82352E14ADDC6EB1DAAD0F46D852ACE0AD78F638F491FEC7E5C70BCAC41305 -5FA3E5018BCA8CA62C412C6304C6330D020CEA9AF60ED5964B907EBF65634B11 -7D2CB6A25CFA843BE865A82D50FCFF7F94E47580E7DB88CD060FD149FC0C1EA6 -F174D407FE7CA377967ADACC5B876233ECD2601036F87D8CAEC8320D70C5EC06 -42E62EF1A2A2033B8DCEB7DDC4D8E94264EDC2AD8E3C4D1B8BAB34572312F5DD -EBD34F74EB83A5AA8FEC51E663E1F104EDBA38469DD49EFEECDEA2BE7DF7C8DC -9E424CB30B135335FB2F128DAB2EFE900F7CE6B401615B0DFCE70D4C22F51F60 -0F5247A261CEBD55B6716A36ED3ED2BC4C1DF2E1A4D63EF5C9F3D17C1C8DABA6 -CC2D06C252D21BC288020D51D1343CD2531DC71AF1195F535B2228708B03E63B -59EDB01D4BB609798EB0EC74A72837B34D5351CC617F6403E9F5465A299613A2 -2137C6DDA812F6326840FF7616CF323AAF43203742783E5570EB4FC228C93ACA -46C3FC78BEC83A655B48CBA55D337728A2DD0DEEF346338C1ABDAEE2A56F6C3E -784ED1742B242052224E4EB5FC583F238807A119E78C9B290645B516EF931BC5 -598A64FCD9BD82A5D1D4CE3F01C5A08B12147B0128C712612FBCD7E485603AFB -769B6A6829AB4237762F70824DEAD4414EE5BD4AC440F76CC9FCB155D9AD320F -A84EE2E7797EAD8E2EA03946AA3816540F4DC97EA169EF7D44A107030A5275C2 -7321F760948A24E243B95C9B44C5110576B81A9BDF7206AA9445E673F65407EE -13F5F1389F9875B5E9997ADE151DE75E7DF47A128007F0FAB2A3B6B218C104E6 -0D8B168F630110BA045BA473C7B515D6FB3E8D9D6B90AC901499306B44A79D7D -28B9AFBB5963ADA9ED6DCA3DA607C994F0DA16CEEC47717B1EAD6FAF96580133 -2055DDFAA11EAAD717569C8F702A119235569458298D489F66F50502D8D29D53 -AF4C050D783345477827805D408944472D7FF85B0EF814C36BE790C71BA19594 -5EE88D99B47B3B098FA7D8C84C99AA51290604C8C4CCD6080101235BC741E4A2 -1A2F54778A7E77B63EA497ECB71EA8AD469D65DDD6D8776707DD52160C7BFBCA -23929AE8AF2A0D8D2D8D233923404E300D0678D08BB8BA3FA4B81B46922C04A5 -A521C71F808560D2B1DE5F9F7B3B629475134B4702125805CF4CAA0BE126EF9E -AFE93778035EC428DCE96A93B274102E8FB0D11C96D0B4C27A6F33DD6000E6ED -823C814E8572E36AD1E21C8EA27462E08CB71259AC109C86999A4D50D6177E2D -0F8713C6CFB0415D02D52FA559DEC8995F536B2CF338E1E6CEFF1DDD91DF4F7F -68B550977E7BB90DEF1EC24A008312EEC5E4BFE0993743D067CEF1EFEB383C24 -C9C80F936068C2BCF2085252DFC096D05B7135F1C645A8C1BA3C8C16E6A330D8 -E4C1A41F0BFB9A0AB4C21872D512222A0059E35DDE9F144D1451AD78D16F1F4B -5B3666466A18F6247739BECE6A892A617375C722D6BF5DED9A519CF2EE29DD2E -23326963FF9CFCA32E53FE9E4704CC2FA42B915436C34BA169E9878690AB4BD4 -8AA2BA04479F5F9E472308AEBBC45CB6270A690422C68C5C56CC6675B0BEF0F5 -EB4DB9478295CF9D922F8D869A3A20C42C5B4C5E0181738262E468659AF751D1 -D0C170935944475288010298D0DAC4AE7708CB253B8941F91DA2020F47B5B55D -0470D6C4FD89D970ADACCED67DE7BA99EA1EA02A633B2E7731D0EF6556190849 -7952308071B8DC8CDBAB15F6FCFE1C667BD4C0D6C5D351E56FB5747CF7518597 -9F155290E8FAC19A51B31AAC847B696BF626B65F18919E0FB5895E49137C208B -36381592CAB93193FA04C50D4D37943FC52054E3466E7ED7134BBD646BCDAE5B -CC8C0943166E82FEFE02141592572A6EFA52FD193E0092BC581A4244F83CEB34 -C9F35737ABAF1754D61ABD899A8BBE2AF894200A759AAEDB27C4E1A339DC60A9 -F22ED20E54E952E2C6DB328E6D9F2543C318247AFDF6EE1E890D2FE0956C0924 -2C3119516A9DE1F8CD15CEB11D3F802D3F41E9B3927CECFCCBBE55F8B2C9261C -51990DD48EA5AC1900A32FC053C7812C9683564B523938B3C74C9C078DB851F6 -E219BB63042B69978523D638C549E5227921C446AFFA396A8E6728C774119791 -D77AA58D7853DB026416BB2CF5CBB624F83D4DEA2056915E43D0DD3481B41896 -E715E2AAC87C10DF63DBFF724CE4A5CCA6C6F009213E2E748275809784F65288 -F96177F90D07C3FBAB0F83FA54B46F50C5D921E498C06DEC3B704840F7AA72FC -0D0F1DB46CE59496B6A79D9169AF68E708B7E1AEAD754E6C8C6C534527CC9B09 -6513DC67C5A1941CC4061394F34D2A482450ABFFC78480ADA145FE2C24355D00 -85E581FB956F19A361C91AA32C8084BCD0443E85D313020043A4870721AAA540 -8D78F7A2B9D33DD67306A68BA901461ECB068DC745BDF0F5FD5EB4AD9E9B93BE -4D2536FC5FC13D3DA84173CB3423B67DB738C26030509EB748688943316666A1 -B6CD6976E8D383C28D5B88078C500D4135531DAE5D6DF1C5DBFF191E3382E565 -3DC50B22DEA1E1367518A9143C3158519271C41301339F8666C4180ACF631BF4 -CC44488929D90655608F33EAF4E1966C03D187181EFB474143E3F309543E687A -6AE1C12E33892D9A3C218AF94A4DE08797E639636C7D2745FA846CBB1479E2C8 -45978FE6B22D02D4CAF3DEE8542D5B978A86BFD526069981094B4F0BAF2EB6E2 -77F7AC896366A642837C057774F0A45235AE35827EB47D4D2F430CA4B8F4BD42 -45DCCAFB700E20C031FC1A38923C6173615D2D03CF4C225016CC93A0356ABB63 -B4F50AFE3BDDC417472BEBA6A3216B81A0755D68B99DF13AD956AF12518B7FB3 -9A9EF940AD5C7E788C579F0AEE8E52BC8F033CE70E995A29E48F8527313B79A4 -19A7AD0276FFB441A8A8F2DBD3EE8000C6788FDA0FEC0BFE72B1DAE52F890209 -0CB03B7C02B8CEA68328B43D16A93F40B3EF8ECA9B8C27EDF01931B06DB3ED55 -08F3017BC5965DED9281965A0DB6A6412B6AD447608346F8B254E5914E8A5093 -0B1F561AAF68179612BBAF1D8C4501FCAFA6D024AD505BB29BE89F9307793A35 -DBB3264052836CF223D6A2BE17117AD4DEBC2E3CC3853A2879C5F4B2F036871D -966EA551071A2230A00A8F12FE60114ADEA08E5F32FBED0ABBA31CD7A5D509EC -CC72EFE19AEF2107095DBAD50F73AB56ABA9D0384C29526DEF162910B89CECB0 -B0ED2F5BDA61AFC44632D737810ED47BB89994772198167315F898DE0614F2DF -A0EA64CE22FA62EC1A2D8184DCB57DFE6CD9A573AD7815CE677049AA3B073A68 -6F103C97951A401CB7D5C4E41E936C73C6ECC0AE0163576C913097A50CD2B189 -C135927450521BAC01D981B805BE453428839DBE2CF0B2A96E3D5DE93B1D9411 -BD2BDAEE782636388CDB0304E6621ED1AE849C45B51E36A9D6065F6ACFFE8224 -FBD2C5B02D2324CA550CFB66D0F9489E2B4B0DA49A3260DF965683F433F7860A -1F4B12F772F332A049F909383B88AF16C321441F3A2074590E907983B7B7E643 -1349CE37B942E166C851DBF68B2F58023566987CAB9F1D05BF773161B81A0584 -2B39DAB2E00DD4E101465EF425A6C24FE051FED0B658A2E02CE960FD55A3CAE9 -B1DEBE866D4B0CA3AD93AF477C4EDC907F3FA286153D8FBA938CE0EA2D314914 -B0F988FF0226F4409518323DFF26E78A4654827B5BF9F2A6BA534AA93C17901C -2B855C3E28AB0B0F09DA1C07CF904802C97108FB8F85E349150E773DADACBD3B -CFBC02FC33182DE08ED5C6B01FDC9C955286AD96909235404538595E81EE86D3 -8886492962E92E11B8F5C753DCBFC88306A0D390E8674C04C183830CAFF8101B -FAC76B1DC865BDEDFD3B0C28C6CA1C969993D335AF70F80782A08E13BE7F00AD -FF175C302E582B13A64B33F46640CFD5224164762F7EC20CBB779A6C6A536027 -D801CFC048190F02EFBDC670147EC52759A2D7F54E19A30989DE04DFB08062D3 -6A78B0FA6F5FDB2CB5D225CB1FCF6C71407A576E3D985AA1BF482665794CCCF5 -CFA9038ED91157260B3F85E7B50F1A47CB61519391E744F62B5E567E13AF41F4 -AF224D3A8CF5AE9734B3EFEBE5CD56CC4C26FD551CEF64D56A52D5C1D0B00F22 -727844FBFBF599DED45A466E46BD20BED6BDA0539F01A6EA7087A76313A59668 -CC48D25D0AC54558A77684114BC2941EF7E785A61CA6A4AC12113248E5F999E6 -4B7B3DDC3D06CA3196381CD543B52917660E8AAB1B5EF56CAAD0CF5CCA14AD86 -82ED132A71E7C48B79DE14525BD110E5831E0A575E2425727769A66C1F018ECD -6304682D80E7E343EB106B126DE1384D729E9F2A8E054B7DDF651207BCE28BAA -18D19C9D7085C747749C52B89A4CB492B5FABFCBACA522E21CF33CDFF0488F46 -79D81BF13513BC1293F0E17F37D808143E1C197543DFA6CA2A8969638F0CD799 -5930300FD61DB36DB8D256CB1682E23CCD65479C7791B2D3DD0BB1AD5E248674 -95277F235CC9D0BDEC4D3F320B03C3DFAADACCBA2B33422F5664E777DB049495 -2B34B5D369AFCD58F5F69DCDDB865B332EE1955226E4BACE1D4D1A71AD791785 -7BC2B701A5BF7611413DCCA1336BBBAEADC5BAF054324A641BAFFB601531B187 -791C2367A302040DF89E3A6879C50A9903DBAD252AFC558634860065244751F0 -07F6B91729FCB170140A39190956EE31CFFFB360A4FEA9F8064AF6224898C633 -15B743C005CA3603F22409B5404A532659E0748DF6A08A304B799206C26CF81A -B0B2B4737AD52DD6D2B9F3E001F2CB8FE3DFC2C42197721D534D94400AF45A79 -62BBC2D9810530D880A68004C5221B2BF6EA5D366E387B4970D82C03AAE964B7 -97763C054083502D5F7928EC7A016B779E714F80518A332587D56B98038A8F17 -CE35F07308AD6BEF760174EE9EF6D779B73D97BC8810D335A945A80AA820E495 -8ED3F2C9436E19C11C2F4C4926530E2BD813527D99DA5D43BA763E397B66FE67 -9979299DD514743C8DE3A014FA551E68257739EC2A6A06E29D3096DD4D53516B -E68204CB21CDA0AF8862980CA956DB89DD6FF54D12A120A82F1948F28F8F5F55 -B69252C842D1B564DAA862CC4C86D42124E88C2CEE773C4394EF7AB12781FDB4 -7C1F6950D36987C92896F14F6BE66DCE2D2ECF7EEBFF92D5A782A3ECF958A9BD -E8E551F0FB231241B1C9CBAC93B18A29052362F894E0A86930660BA6015CA415 -BC65885A29A4BA20D1229B0F12D03C52E38476FBC50C59CF702A6DC11F5B819F -414AA539D622755302271F43870E337595A7BBB674BD11CF0B20F0CC2FF7BD88 -6EFB43E36E3870F748593249ACA4CAFEDE6BF14C3F6B474F18C877346CAFAB38 -359620FAF58C4923ECA8EF490942E05693F0909623FD974F54928CC11A7F7E9B -6F2DD0B23EB06801AEA78B27ED6D4C718B8CB0F1E838487BCB51595E3AF1515D -9C28B2FB5E74CF4C5772178D603BA50D44C172C89B78EB40DFFFE008C8BAB54A -053D5B9A9C62E5EA50C0932F743FA66C3374B727AFCEDE1A125236A76BE64570 -9F94369064AE74428173DBCE2CFF1DF90DE1BC0A5AE52C9B93DEDAECAA606E32 -B6987990E4429C87CB6B2E08800689345862483F1C1C63EEA072EB6EF3A6DC34 -9A05C17F98D501D15C6D1FDD87B608DF395691A99D027AE89BD031CE74D96C32 -1C1DBB33B70A1DA9DF76E28A7E645601CA6843724221C83E0840D1EEC4E0A3C2 -C898A366F03152FAB5C21575FE079C8F367B72E12061AC4D85C59BD6C28D241B -118BE6000AE4CE9C2BAC0C9BE46B4BFA2EE160E65D5B9B405CDCFDB619EEF7AD -66B6C14BB536006EDAC9B340F4618372A2F71EEC48B618E1FCA5B55492DE9ACD -BDA5F30B25739C3352E70C8BC6AD31A263B89A01E3BAB92D8351206C57C40983 -7FADECB045A309CB9BFE28925446D98137D872FF8D1863376D055F4D3D0FDB00 -008A2B12570DB5E2E770F300DB06FA5F287C9E1A58F92E5C6B0AD193F44C6D62 -01822097C8059A187FD56F5E243BAB3726589CF24DF311289E9F663E8C1A9622 -21BEB646FC0C3F3BE1821A67F249E80CABF77894B5C197C00A42AF80E4F5C0E8 -51C7464C427C2DF89FCCFA851EEA7C40F661FAAB65EB5CD9D5B5F7EA5D86DF7C -C54F0504F573A3860FDDF2D186E8D36D394C861BE9C48162B61AB9A8E7DDDF31 -18404D5C8C6BDF7C8FAAB452831199090F70BA20AF0289593B3A1AAADB9B3D6E -8E0798B87E8DE26E8333E49896AC44508E835581A9BFFCEAF0E59CBB13BC04A2 -C05C936DDB7D69DBDEB9B0411CEDB53F1D149496BF51BB23C3B07F62D34A1FEF -F0BE8139A9CB352821AE90293BB79E82751336C9EDD971455FCF0452A72FA705 -0454F32DC0BC4394C4E4F4C90E203313BEC4483053CC3ABFF8E9FDAD6D65A7A8 -67FFC0B08A4F6582BE48F050C817F05B6949BB50E4B83456F801A83B9FCE8B05 -FF97F73AF6B037C8EBF49E62F3497C92F351D942E5C7AA49156458254E7E67C2 -97A49E4F75114F62623A471CB2C21A7C666D3E8088FD1F3F67627E5B6949508A -EAC44C7FF37F501348A93944ACDF4284613B9ECA369FE186E2E0C013693448B5 -CDA2B7630E09A0283236B0DB58C29B5249AFEBB87B5357549D4D55A1A871832F -F07C5CD2D1272E02A59D8433DB9FF170706AB964A07F52E4CC6782E8DCA74BFA -3D6B5347990224FC3780F036BFF243CAC8B9CBF544086C0078C290FCCB665612 -75BB17D6B80A09CF21EA087BD82592E5E3F801BE227D5EED19BC99F5750F0E24 -ECE512FB2B35DFB1B6BE645D7ECA90AA0EB583BE252BE3E7AC4A642FCDC4D541 -23180C2C71835BA0CBC06E56E99F198FFC2830021C20A9ED35DFFA76C0FBB7D9 -F48A05EC327123B520E0BC1ABDE393C0AF88AF610C1513E7E578595B90B9D101 -245006733BD8A44F89FFC7164AA59B1E73558A85F775B7AC1FC6D646D89544AA -B9CD23D9C7403F122749C21FF7539A87307084C0FA290570EC52E0BA8F306B37 -491ADF370A75112AC14F33A7F57BA0DC82271E5ADE77CB +8EAEDFDBC8802E6C8D2F78857CE66105FEFAA26AA62235515B9DF83D86CA7F06 +4887E80BC9C14A4C5974463498998052A711AF175999917AB6530A5981D5FC02 +F6F5BDAFD469D43E2E2134C6BFF0B68ED9CABD7A14B0F0C2427F14682AD3E1E5 +EC92396EF1DF4FC20F1B574F1FDF7BE782DAEB1490C2182F017E633F47EE6B56 +971A2837D4C9E8C78E5B28D34BA512FBD85CC07117D7A261904D6E2C57413264 +DC745E50EACD437C729BCA09AA240BF7F99B11DABC36B90AD717BED1439D1649 +A8F219ABF3C3E8275B4C41DD3251907E90601B7625C72E4EC7BB58EE544E09CC +D86769AE126E8325A6997F7163187B190B0C73F76783EE86095540C40C86CDBE +B2ED24860D2224024AA004929555C0C4EA645EFEE62B7A20DFFAB78A256704E4 +0BE2A5E2DFD2086BB24376D399A14888757AACCCAAB87C123445F38C7B2D6B75 +3E7EB1D517A4B4C8770251666F76C1F1C79DE62671BD3D0CAD2C1434D9E0E931 +883723EB811D9906BE8305278E586493C90CEAA20307064A29F20BB204E5CEA8 +FE94F52A5DE7C1F3F7403F642F29E81F2B38760DB0F0DFE9775FDFE49C685F69 +360C20D3ACAFD0BF01C813DEF6C95F16BFB43923A78B5B20112BBA77DCFB3F81 +7DE00A59336368DE9737943A9B33160D3FA500B5C74D36BDACC54A5D6862056E +B02CD766308328E2C8C7FC41A0E9B21C75C08219195CD22FC5D3A99AC9FB25C7 +1D72A08B5B86B4866CBA3CC965743CFDB0FBD2DC51EB24BA7BC9E6C99A03259E +B78BFBAE4DA928215E1B969FD6B00E3C44393AE4C0F3A18E380A55BB8EAD5713 +44D479967A07C711E8DB24C3E01EC9F0B6C2F936DBFB3F3B5FBF0850C55B9A38 +2C546BED80AFE9B30E3AA308FD575FBF349F4C556A1F5227495EB5A313CC6AAA +BA779533C79CC35EE45C86333E307864EDD1BB5D45BC3058BA88A351FD39312B +B031A56703E91714EEE44056F6B826090B63CD30144C95B88A3E5B250A2B2AF8 +9254E991853F7C8165185BAEBA1F088C9AE10B16B618F8E32352DEB52967E3A9 +A39E6DF485104508B77B3569AF0FF6AC768EAB7432BCD14F18B0A6B2D7AF694D +958E51BF543A3A337FE6CA854586F2FD61C5835A939AD374CB05BC334CD893C8 +031FE1D92920DB07488228C03FDEF985574836565885E5023CEFE96AD27D2F7F +468DE1FE34C26216CF4219288A88DB2512CC9A79BBC672D38A430B643B64D09A +C2A82DD14F6AC4085C2B2D950839F1B3DBE701AD3F4488ADFC4953056AE03B04 +0CAB248A3697303B74171D342AC88F6E436A28970752BBDDA6A49CA78DFC76EB +8A2EAF1E6E663DE24E221125555B79CFD316BD450196DFE80AFC35F9D0EFD36E +FA0D1050E4CE2DF26B9605FB8950E2BBE6C873F1621DDD52FC977D9A7E5E5DCB +3C7200B775513A763647F6DF8C6EBCB415242654867A519A57880271AB25A9C8 +9255B10E0D0FEF324CC97D1BE4278C69A7ED352FFDD4B83FA569CDF24E8698E3 +04CAB5E8F66EB18BACADCB452E7E2D93FAA3D7DED9E392E7A82B2E343F61CC6C +D8943214CB064C361930803CF4C470925857C83D9FA4871854E84980762F8B11 +CAC395DC7C24DA3D94C70903CF0B406F67D71E37835A40A676CEE1780C955E7E +2699F15A82AF0138A106E0BB7C179F1480678F90D7794777652300C073D8127C +9C0F6C08AF449C339C324B286BCF56CA6CB069D351AAEE86C04BBF3BFED533B5 +4993C9EDAE588F9122BBF1D830E1B024235EBF5842FCD14DA0E759453A0A87D0 +569C89320936EF3A9A93865600133C2800BD77A49A7CB1EA1ABC17A89AEA5383 +50740DB2DBA5A00ABB556FDD5181B8086CC1683703829BD9995E9B9928ED6CE6 +4ADACDFB73DE333CA7B8F7DB17EB25C30846D9DF5110FBF2A5B004E80486B5F0 +F0A5E9EE3B37FDF87E52A65CA61DAF5774521BE090875605FC33445A8CB47470 +5C088A7AAED828BD3D93BE80F93CCBB71B702DA053B9CF4C5D949678B54E7D7B +8B4D28E3283310890884A4DEE9BA606770C8FC52FAA87A1846E402F5110F79CF +685AD45742AA00FA8304E668BB4B3A78BA2BE8717306419F4EE1EC696B4C8CD9 +0877326DE7DCCE619D86F9A75C194CD7406A9B1B9C962A381DA83707264F879F +FF16DBFB7B15D38347423C4D14CB8B26007BF591AC6A0FA815852433CE4AC18A +4FD19818F04737C71BBF48C925699AFCFDD25D92010069D2568E655B43A2A88E +3F734C472714E5FC7CAD6189611A10FC281118DA6D78743B9F5CA56301888AB4 +1B4099F9593D046157054869A6267C12474BABDAF528DD0E0F2452C38052787C +12B04D3F2A46888BBA6ED82374485BDFF8B887B8238105D63E912B01D25FB099 +834F60570D0E50CFF2ABC21162EAED3B6D1E8F3575E285EB59A3CFE0D4291255 +40EFDDD282C4A213FD3313C21DC6D90AD561435DF54236CA665EE4B45D7F57C8 +C43B9AFF7AB6E35C1D3BF42CC45DAD238B10F782559007BBA003B508CB25C41F +8CA0B35779C6B5EA62D3F3D4543E12863DCC7A41432DF12464F119E9584C8BFD +FD46563D85185C21A221D398AC93B79C1206975DAB906418E4F27DB339B6B50E +BE1CB70F5ADACA9635B61CCC4DC831CC3EF73AB139061D725190EA2E0C8FD7C6 +8D805D2D19A2F54769D68ACE92B6DBF22C0A2EDB9B45C604E724FABE2762AA93 +2F30FE0FF0FFA874FD655D416F254BC4EE83EFC2489DDA222C669FDDDC14170E +607B85563BECB3D0D397CDF9CFD6E1D7FF5116334317A188FB8537B38B328CDE +2D05354E9774AAA3BD0E21053683879F89324F1714B42DF0A6E9D902BA5373E3 +2A6E95367DD0CFCEC5F1576631969BC441CA14E5E927FE46CB26601D492B8A9E +D5FB32EC9BECA60CA49A241C5F432B2E71B4EC4AE2E4CAF8A488CE89639F2008 +04762E7F895F5865655E81AEEF5B4CB02E47ABEA8E35F95B289B5BF52D760539 +53C5F2950A886B43E4D6AF59199A6C8CDAA2BB2767D5ABDEFFCD40EEFA0B1D02 +ED629131B0FFBD54693A602AC1BD15745E2C80C4A9DB293EA112393CC16A3904 +A26BA8FFD378D0C13D656ECEEBCCDB6F177777CB24359791F987BBC6A8F9F33F +54919747ABC99A0C994F65151C777472AF32480E21399F6FF16BAB2B1501FE31 +9D991F02F20235D5117B1255622EDECC52FB0A752C9DC5CF7DB8B8213E0386E1 +4CE8CA8116B3326DE080035488E7E68F52DB93B456B7DBE5CE4A10298083B1DA +8C1C682D701299958D772E7ADD0E94944F0C4CD12A23DE08FAC08469CDA4B7FA +7E7C86A82C998975B0CF64527869AA22388B3338C0DB25B26B3C5BB43DF9AB3A +7A356DAA33B0B36B4C39330635FE1D8BD33A00208B49F15CE341A54C5698F447 +43638F0B8EEEC6BA29DE5F016365CD09342039C6C30D2C25E38BF1D6DBB78580 +F0BF68CDFBD27D25AA0D9B60D91AE236157C9C5293046695E6C6C74388CB4E69 +43B316C090C3641E1B846FAC1579770B4A2D0F55847CA1162DEDFD59D544E402 +0D472889C3B8177FC1FC57A1D56894750787A6388A9F53004575B85437674062 +E93B2517E379DFD6F735B363D5588591A1D5C384193B6FC50CF4BFF941307783 +3D23C679FB825C99E536B1D0638AE039CD1B38D3FDD72FF18A3E686C32576328 +F16A3090AA2D5527009F821A5F6DAEC910982407451BC6442762B8486C3F923C +4F2EA39609025D5BC6345EB42A74342304819397459C7C576AA92ECEB4584D58 +BF275974AF38FD6CE06A25EC5659D9BE7F616602D48CD61A3F9303500D1A1DA1 +E6D0EAD6141B3E5209E6728DC6436AC89E27D591C4A1057467C5EE398CFFBDC5 +E9E9DBE6649F926671D15AC22E4DA06D2E882BB371682172D21F108D62BABC36 +28F0A65F816E0F389C27419EFA98B070B4F761AF9E8277D1AAA42D8CA68B51CA +21C09C83AD39A9B94EB527F4E114EEAD8DFA8996EA536E0FB71EFCAB6EBD5EA0 +1C3840716B944F6DD6B7BA486F188202D879A07242550A1487F96E0704EBA09E +BF6EBCA8AEEFE48EB5CE14CB3E3D7823DDE0EE6700D5E5D60D76A677FE18AD56 +6752653E7333CC4C21229079F40F4DCC756362B8BBF4AC77C527E285956B1543 +4268C9CCFDECF6E4E5A9B65893AC7C707465E0502AF76E458B6193B943F8CB3E +AEDDEC24C24AD1DF95B958EB48F9D79608A2C53D281F77801B1D0191E2456B17 +825825502754E688CACD557422C5EEF2221F39DE067051611D118020DD2CF23B +F7530C9F085AD552E0EE0E2A0967631D36D3F19F16D0C3EBA4806B1B050F74E3 +D101E032C64C8950560EA38C473099D45DB3E9B3ECE0F5DD604B3AB8CE424618 +BFB6BF2A357CA3FDE707BA64B42BF9585E95F717FAA6157E6B03D098EED24DF5 +DA296997ABFD50D085092AF1FBA05DD63A354200134E6CC02AC5978CD7F5DB4C +9F6480918FE5348DD6908C6CC33413E41B41E308CA598AE14E61C1E61F8EED96 +995E95D2AF962AD7E7E08AE45FE5A15A9C9B9C9A4A003F80EE6A35EC9DE3428A +98863BBD9F3247BBD3661EABA6DB4A885E3CF961E3FA211BC75B97C01AF1D196 +5A67092149A7D759804BDCE977EB1BBE8E150DF922B7E9AB6F90A8F4373BDDE2 +AEB4BEB35DA4876795B5401A84BC613A43F425FCF92E9F9EF479CCC441C2B35C +EF2745005AA4890E904004C66434408374D569A1ED0B6CFB30A26C91C9ADC8F3 +07EC65241B13F5B9741527DBE436E8C9DB6FF461A78391AC480D5A8AF8DF33AE +79AB46290DDD2C1D6BD0CBAC35EE36496EAE145D52353E6EB263DFE620EB54B0 +49651CA5B551077E59A0963F707F1DEB5B329BDB46F59537854B982C7A5C5D43 +6DD9398FB9D035DA69C9874094104F4EF073E8FD995C8FC81D8B285E22CEB34D +568F6609A5902886875DE5C52C496D5146D200BF495F5EC143B93CC49E5C2A08 +D4267B161D4AAD19A05EF614886BC60A66A6342FB499480F38BDEBC97E0A5C1E +5759955496515E544266E1DC67620A31A47997B6AD78F5DAB4640EF4AFC5E0FE +EAB4677B4D02CEB83868BB7E0192DC0B8B2A32A78575A4019A7137F206223238 +C754551A6644A3D3DFFBF819916ED174FDEF284DABE4179FF24F406303547ABF +D453EF90B6713978992A11DF0D0CBCCF423AF7D29B171AA79978EEA46574BF14 +2A631C701B921C6746067A40AC96F5A05D3F60834F5A63363D05D44CFE0E6820 +E467E28CF920243F3B01A09F20D91DDACDEDB5EDA65CC9CA01C395BCE006F690 +8D83231B3015692822C11F541E5D4A6651A315151A26C4A145D7D4644682B094 +9A8870FD7E6AD333E7A78933BACD0F28A1B8CBCA57A7FE19AB2165A22648D09C +7796E45EF0F36605561BE1F039106DA70ED7C603081D459F004CDA4B4CD201EC +E7653A8311DC66B95AE6DBBDEEBA50016D14ADE0488FE1AB0377B7049A0F9A09 +14B16EA09F1EE2565D567EE0FA21C712F5DBD1CC53E8C23E40338E43C4965BE4 +EEF1CAE961E2F2C9775BD78274FB62016A7363FA3D3936D02667EA6841775DF9 +3CBF9165389CCFA9392D139735575C3662F0355BC343851BCEDD7CA61278EB0B +A7810A4317C52B15F559C0F0762A0F4A17D52052779B655C3F77CD0613D07367 +52BB9BF23D904FD1B70AD6C107EB1831C241BA878BD7CF0B2EFAA4BD2E3F9BCF +D09A2A4F2C9EE9D742ED921721701AC2ACD6E9754CDB6E1EAD891B0D63474600 +24C221A5550472C685E6BC6ADAF7BAD61135D960B66B59A524423CF6815407B5 +29ACEE91F08C4F3AFF74931786D014BDF6F85A57C50C50CA13082F0F962D8A7D +D91BB97760E1DF2A8051FEE387AEC967524E8AA2D6D4C824AADD46EDF9683DB5 +6FDD72CCA7D000BE8BD526F5AC2990ECAA151A4B65F87BACAB9CEDFE7F2BE5BF +0DA724EF6AA670E37CB8DFCE9D32A90590831C9E71FA8C929F01C09D379B819F +C86B1F1CA2DCCAD147496898756107F3B1EA3FF25D603E625C3ADB1A122C4010 +B1A8BE368C268F1938CC1DA24ED7F22634A4B3DEBCEFE6AC250B9384F7A34131 +36A38C1589FFA8EDB470D62EE09EE9F19E6CC76F0EBDA2C9E9D6276C466F02BD +5F6F9E9AF9A74793B8B36C36E8C198215EB0259F871FD4356A9FFB3337988711 +5A84B7829626D3C7FBAD3D4FD5EA30953408BB97D77229F5C27150D72CBB6A6C +4585FE13E452D977DBF7EC2639F06B0D0420D965CAB90E1797DE9D201E1219AA +3B06CD074470641FE3CDD17A17E68FB3B7F2B5498F2C74D6209EB97EF626286C +1982FD51DB1B80CF8D3AAC6C449AF5B32966D483B12C4C2C4C2359523B603892 +13109BA0D7E208DC74CFC4583AF2F0E50AE9458F5112A780991C8B6EA248E76E +15C78B3B068C5BFFB1F015A9639EFBCCCC5507206D204EC199CE2D38A2A2F7ED +E9604F1F146AAC9F21B0F6E306202E5BA947C38FA3C9CFE0E2332A903E9F9360 +C3C8750D8DA48FA999397CB7C98F130E449E6116D120DA2902137B9B9CD92D4F +48BA0A077EDF1BE73E43A4C445D9D3738EFE2674FB1849F2037D7CE3D43D126A +607D72B5EEDD491EBDBC9E45EE8AD7E07DE4B0AB22698CCA2800DC307C2D3726 +A98D432531FED2BD1FFE8329A23FFE76837D502A7453FA4EDD1C6EEC8DDCC96B +C23543F90CC51B078F513E0444CA873332E146B87785078084B6E5E89DF07C68 +3777F088436E1D5E5D3EC8078E5D4079AE89C546EEEF93B5EC16CB8C6D95051B +DF0D5B1B59487483402198EE5D20DF471DC29330012EB2934FF9321E5F55D42E +9DDAC8B2A5ABC0549D3E31F4E700F92F92D41991E3680C74D3C8D78FC37F24E0 +6A00CB6FA5145BBA9637DE8A8BCB5DA54E4CBF2A42874A277D8BE7BE258BDFB3 +580E4360299187051E62C27B2C79CDDB9B279A2059325CBA86847B13893AA6D9 +E497C6A771868237B064D20953D44DEDCDA37586ECDE68994A96EB8013753EF2 +CAACD7045E07B8440DCBE8DCBD6862A14E349691C93C83F9F7F9E67C5A746BC0 +7864B3E9938BB5A8D244DE021D45B7766364F5AA1BC2BA0633404F00AD6A097C +DC400FADF01566720B6341407C60045EEDD3187B79EE341FB867A0D1C61903BA +2FF729083A1D94B1B2CC31E28F6D098135E9008BF046650D8EA8881EC30C03CE +DEAC187BC4B92E3F8F90F6E433E3053A2841D95B4CD5A5536D2FD8BA3C8BFCA9 +BA560A0171B941AD077865DCFA6D7DCAAF5EBE285BD0807A7207BE986E8351BE +03064839D4358B16264538A453D42C095552F552383FBA044C7F2D47A3A69EC4 +6E5FD899E0E55CF0B94BDACBC436660DD0CB9C24030345944BF4C62FFA0C7A63 +35F86BC16EB62F5B117458B12ED15387165036F2A2E106BF8D388075382D886E +5FCE7DE83E43F9145D0DAD6CCD00772F6D3C0804BA01B9DF8F31AFC3B2E0F7C1 +976A83DFFD9DE717AAEB614EE6C32DFB3E0592BDC29C18ED416AB637E8769C7C +9F0D9AC0F017A9CC75BA10EF9B30ED1C31DAA78D6CA6F3F71A988F0FBB0BA50E +4775BD68A0FA366E16351193EC5390EC553437388EBE4153E678D850DFDBDBDD +BDFA73F47A3E6A800EEFDA70402B73E571B3B55A6475C055A89D0504423F829D +FA76DD2C7D78280429E6527AAA64AD7FD074F300732771ACA43288CDBB3D26FD +DD4A0AF02CED8E7503E6479643741581E0565970A56C7DD5D7E1C314639EA886 +0E581B4DE3742FB93683F0BF5932019AF0AE1DF9A2812B3E0200C6FCED8AB6E0 +C5256611D969FF4472771FC0ADB16E71A5C32BB6E3C3A79C832C32574262ACE4 +20225A253F4B5C750903DF5D9F5C3AD6DE75500F2B2584973612115924906460 +AE9AB02B1DEE0AACD47B7610241ADFEA06EEC2677BA7CEA0CF3CA93BE4083710 +1956D6974422517019551C92FC19CDFFCAEF2A26C9508D206D9642D66B33971C +8996CDFD0789B2DFB9460A8E00BD6E2BA83120E94E4EBFBBD5A06C2C77555465 +B50579BBC9EBF8C6D9066C4114383392998324DCF86B9ADC935F66176E019DBB +081AE411E45A1499A7DF7B5C998C6DF917AB3D43639CE6365AFBACE5FF30A70F +F0B0087701AA9C5E871A97EF789F94A222F7E586BE8BD1C83FF7E0A429918A8C +0275B463A881742F71096D6ED5946BDF93CD1EA0D407C0542ACE030BE6214211 +BB580CAF11EB8635D6C00052A5A0ADCED3CD6BD1E99141BE1D247CB48CE39CD6 +CAEE933C1068729E9A167515F743E0B66BD06481FFA48CE9C6DCF4F0145BC851 +0710C946391AABEFB70AA2D02DF83E68EED2305195B53B667331B9EF352D7FFF +56EAC2571490A80E0F5EDB22EF988671B978CBA393FAEE0271A02AD4E7916FAD +5BA6E42816C0E4A6B59AD4882CBBE4279392940636B95B14AC72EC763F3C8DF5 +158902E1144BCB9B77497B94AB6F985BAFE6A6EA919ADF5DC76D9547BFC10CF7 +F27AF0F3F369A40F0818EC70BA8D0E3064208B929F4691B4C3359FF49A32477F +E21B57B2C2D7A6C444C09147DAF3C53BBAF46FDC8F18F8F53534F69DB5568BFA +41412B4050EBAD38E48DE3CB3B2024365A2D9436AFAE44DFA3B145EB031F2B34 +A98C93D81397DED7235D26F7C55B6E9DEC79AAD7ECD9D25119C11657E7F593C0 +00B3B94107B15D33F2B27BCB1C7544018613FCE5546AB33EA041BDD6DF071D9A +93AB099D606F7B5437A61C294770AFD946F292CBC5C0E657DFD3B99645D02611 +C3C2D5C083304436098C8BF60C7527F06997B4D10AE189322D279DB5834EDB43 +FAC2E91C1E9B468583AE8EBB861898CE9415A6FA5E099EAAE096BDE2978A142B +930EE1DE108AB039C1512D066AD015A88024072732AD9932203E38F8F822931C +226A39466C45C1D5161583730D41695AD184C7DA4A2F6E06599B0A7D2676C99F +265568564D74A19CFE27CE4F3EAF0F1C1AC97902FAF891506B735F9E35D4E91B +10A54E78899C211532A36D3C85D7C37B287D7D0BB3FCCF4922FA25A2B7EE57E9 +6F834FA1614758B455E4ED8A4F3BB2155EF04D18F8771DE6E441AD8B90CEC661 +81096112F28A4F5BF8C0D03647974574330A9DB9FD4858A866B827E02815D6FE +269545855B4C2978ADF3D01FD470375622DB6302841304C4B34DFC14C934A5EA +D948AFF88638AB565855086B9BDC7ED1C2B1A2DCDE0237F64379FBF189B062BC +3E271422401D7044171D1CF04BCE2334018509119BF2A1A9F77D539FB78049F7 +55447125C1B1BC734D552A95A6542A45B56BC7A9D77D865D69FAD63EBB5CEF5C +A6CC02E78F40A5F4D2D0083A57B9EE39AA1A85AB63F3611BD2F27CC4C0C38B99 +C66CE4ABA335F4E6325EF52E64BFB558C1B0C811C779A46F079E64639EC28C94 +7FB1A2D4C30533813E739009C352DCF93441E0C61A2B43D180D495C62D4433E2 +D5CDC01224D6CE29F06FDFA328E338648FB3C47BBEAED76E2C10DB94B8B39D19 +9A596EAB6D5E0033252119CD31BDC7857CF5833E011DB5330DAEC0C0C6C2CC37 +C3B81DADE8B960867D48E26ADF34929E7A74C220048C250AFD23CD03CA8CAFE7 +AAA8D671FFE2654B5E129B632D2F6AE861C0868F7567ECE49364558EEBE71069 +C1EBB2A01276A674D83944221FB6206A4CB07F451ECBEF842FC10C107ED7CF01 +7B1584DC6B33A0BB78B9741433E59446427D272CC35EA60C69988FB24E5F8FC6 +B8E8B5980FCD7381BFC34789377156F357B7D3A2165913DBC2D15DF5CF92E6FB +42DB4B09628D45936F15456A007230CC9EA9703C14B12443497C8961A46055D8 +FC5D1A2E3E03BB7993079353406FAB03AA50CE6D589EFAC8E186898D39A3B158 +73A86DBEC6D4BA9F706E3E66AC32510865C7FC495CBDD03482F48F77A7C68A56 +7FD81C53FCD359F3518A810A9EBF8B3287B3498FD8DC09612F46F8933B24F230 +6EA06D9CC090E62350DC87C37EE8C2A00B5B305B5F9DF024A354D218BBD6F893 +29C2455C3A6FA80442CF96F71EF417766B36BEA9599A148C741019958E5D9D6F +57BD18C456126C9C2E61B26BA99CC24E381CF54DF698B638395DC4CF5646B297 +35DF231EF503C8A9242ABEC825B86E6B1C396225DE9DD5A74CD4AB2E52CE5502 +E64FE52B841E9C903B6041010CF762B9DA460DBE1B7AB6547E56967AD50A20A8 +A3562CE86FE628FCBD8D5A46CDC6928CC907883B3B223D1BB39FFEC99C295471 +5819DA78E1A28E67BE9C9ECF030D17B750CF63A1FFCCE03488BBCD5AB8833229 +129EFF723149ACCA53F3349F20A95175C634C1AECBA667E94A6EC7240CC73738 +56853DA698EFBFBE8D4EA742115D056E60A5C563CE677211F762D78728F4A4FF +16106B14CF733EC786BC81BF382D929C6E779BF2C5CAC1A7141311467B230972 +473561159C7F359C249A40CC0A2B78153B1407C9B5C58B61BE08EE79D2361242 +7F796F70F131C8EB601DCAC36940A0432598B85A9808D2E3A3AE04481AC98AD4 +765F604A00F6BFBFABC92FCDAFDA89DAF343D56D8BB390DD8196E65823CCBE14 +A44D12EC7460A65E46C3546D6A2C3B5E16B023DEE94A5F29CEEE87F773748F96 +32EF586A0CE0E35DC20A2F79A398A52060A5A4ACAAC9F38A5C5F5E18C5F548B6 +14EC4B3E3DCA73ECF7111C84980AB97DFBCC2B072D917EE0110248FF4728042E +F527F2B5BC1C5CA2FC93FA15ED3F83DC3992CA9ED5BF29EC2ACD3F65CFEFD598 +D3ED8D7F3D54D220D79CD51A599194E511A440B43F1976B944FBA750C80E786D +514014EB35E21B85CF8DE707B96B03B2BB973B9E215C1FC9816DB019765D5B25 +0A1B77FAAA4E048CA5BA20CEA9CA184F59BF87DE90BED9DD310C7FAFE3E93583 +DC243BA6CFDD104A3B126AC33F040E706D9EC76C986C1BC084623E58EA5E197B +2E35DC67BA1BC12FA7013F9212868299C2AA052521D0FE1C8117BA36553B8024 +4FFD05A76B5AB7285E06584ED89DE8E7B6BD50CBA86B0E167BD86820AD60112A +9C90BECB87FFEEEC23104B36BEEEF385FEDF701E9CED8C77D1BD04DB0F5C7616 +373AC3D57A4E056E1A22238E4E4873084E29B993B43F382D90161084F3243769 +AEC08A9272E3F1FAC01BACD9FD24D0C7749423CF64078B39AF900305714A3980 +2CB0B3D6F122A6CEF41C2E290D8EFC54E4ECC8908FDAC9DFD7F3F0EE7A98D260 +EC5C7E3484AFBDE096CCC71D9C2E2DDFA1429C0845AD23A6D235663086C76716 +F5A9EAA8BD0B23D6A9482E452E0BFE1B2FD9B24FC4495C212B4EF23D328AE080 +8CD8DBF54981E161763D7F354A1A411A61D71C5CF36E551269024CEA701E9462 +E09EC70BC5676B2F5DAA0202FBA4948E8E2F896DF94CF23CD93882F0C6F574F2 +C2508020035864D35D73E573105F13F1AF6CE24F4DDD537D52C1E04E1275BF48 +7F28BFA941FEC50C43AC453CCF22645BEED3434AE099A63DCDAA368C2DBDBB65 +F1C83773639DC0E5E22521622A5A7F1FB6C05FA104E22AA914629A5599545712 +9612711D4D8702405003E5D3A94334E32AED660957DE864F657D0878A8636639 +3644D887B87ADB7148DEE4C3F40C302A018F0D8939D901080BDE7C64813DF7B5 +23D6484C7AD67B42AF576895873775C4D8BDFEF8D429317F10D9D344C429D5E8 +8C95A7CBD3BD08F28D46C620EAF97BC44FFF733970C76D2436BC46B04B5CB80D +D6900BDE70957162C71B62F5E0B07637050ADFFF583014DA9F24DED2CA080F50 +574262A788352244EE07ACA41E7827C30D40BF3DD7BBD32F1EE757A661B8F83B +7CD28FE74546961C5A6AE1E201ED17343522264D3CA4C149FD0AE2ECE287068A +3A269B22C8CF8EC9D6B375B38AC613F0F1F4A47C99404D541674B7C40C4CED3B +79105290D297F9771072FCBCC89502405BA5D927C01062B3A781C45EB6048E73 +961ECA73E091FCE341EB6723439B38B188EA498FE9E77B2E5E97880A4CC9ADFD +A6F3AF790B84BDEBD1331F77DF164ABC9B969BB5C431BD9FAF52539B339BAA9C +96ABC3D341722CD608CEF0F08D3E6AAE4962DB8198673B19F3C469559B993F5D +DFF518F5EAF32191B9BC76165FA1A5CFE7B4BA741D140EFDF797F51807385F01 +A4DCD08030ADD12175887CBB60210FF5F275E8BD9706D69CE55F0D5030951A7B +B0D31DFA257ADFA67C9914D4A1EFDC365AEAAA4B31FDA0D401A542 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2314,7 +2310,7 @@ @start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1 49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44 -1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 3[30 30 1[30 +1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 2[30 1[30 1[30 30 30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }42 49.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36 2[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14 @@ -2338,7 +2334,7 @@ rf /Fi 133[31 37 37 51 37 39 27 28 28 37 39 35 39 59 20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35 3[53 72 53 53 51 39 52 1[48 55 53 65 44 55 1[25 53 55 46 48 54 -51 50 53 6[20 3[35 2[35 35 35 1[35 20 24 20 55 35 27 +51 50 53 6[20 2[35 3[35 35 35 1[35 20 24 20 55 35 27 27 20 2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont } 71 66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 61 1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53 @@ -2354,7 +2350,7 @@ %%Page: 1 1 TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45 b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h -(3.16\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y +(3.17\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y Fi(Put)24 b(the)h(follo)n(wing)e(in)g(y)n(our)h Fg(~/.emacs)931 102 y Ff(1)-150 199 y Fg(\(autoload)38 b('org-mode)g("org")e("Org)h (mode")g(t\))-150 268 y(\(autoload)h('org-diary)g("org")f("Org)f(mode)h @@ -2569,7 +2565,7 @@ %%Page: 2 2 TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45 b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h -(3.16\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150 +(3.17\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150 120 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458 b Fg(C-c)36 b(C-r)-150 190 y Fi(...)30 b(include)24 b(past)h(dates)793 b Fg(C-u)36 b(C-c)g(C-r)-150 288 y Fi(add)24 b(curren)n(t)g(\014le)g @@ -2755,7 +2751,7 @@ Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838 3768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826 -y(v3.16)h(for)h(Org-Mo)r(de)e(3.16,)i(2005)4912 3882 +y(v3.17)h(for)h(Org-Mo)r(de)e(3.17,)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 Fri Oct 14 03:41:43 2005 +0000 +++ b/etc/orgcard.tex Sat Oct 15 00:26:05 2005 +0000 @@ -1,4 +1,4 @@ -% Reference Card for Org Mode 3.16 +% Reference Card for Org Mode 3.17 % %**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{3.16} +\def\orgversionnumber{3.17} \def\year{2005} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
--- a/lisp/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,25 +1,363 @@ +2005-10-14 Chong Yidong <cyd@stupidchicken.com> + + * longlines.el (longlinges-search-function) + (longlines-search-forward, longlines-search-backward): New + functions. + (longlines-mode): Set isearch-search-fun-function to + longlinges-search-function. + + * mouse.el (mouse-drag-region-1): Handle the case where a + double-click event is bound to an arbitrary function. + +2005-10-14 David Ponce <david@dponce.com> + + * recentf.el (recentf-track-opened-file) + (recentf-track-closed-file, recentf-update-menu) + (recentf-used-hooks, recentf-enabled-p): Move before dialog stuff. + (recentf-dialog-mode-map): Map follow-link to RET, so dialogs obey + mouse-1-click-follows-link. + +2005-10-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * toolbar/diropen.xpm, toolbar/diropen.pbm: New versions made from + Gnome file-manager.png. Suggested by + Joachim Nilsson <joachim.nilsson@vmlinux.org>. + + * toolbar/README: Add diropen.xpm. + +2005-10-13 Bill Wohler <wohler@newt.com> + + * makefile.w32-in (MH_E_SRC): Rename from MH-E-SRC per NMAKE + restrictions. Suggested by David Robinow <drobinow@gmail.com>. + +2005-10-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/mixal-mode.el (mixal-operation-codes-alist): + Don't waste the byte-compiler's time on constant data. + +2005-10-13 Kenichi Handa <handa@m17n.org> + + * international/utf-8.el (utf-8-compose): Display an invalid UTF-8 + byte with `escape-glyph' face. + + * international/fontset.el (ccl-encode-unicode-font): + Lookup utf-subst-table-for-encode, not ucs-mule-cjk-to-unicode. + Handle the case that ucs-mule-to-mule-unicode translates a character to + ASCII (usually for IPA characters). + +2005-10-12 Bill Wohler <wohler@newt.com> + + * makefile.w32-in (MH-E-SRC): New. Used by mh-autoloads. + (mh-autoloads): New. Builds mh-e/mh-loaddefs.el. Rebuilds if any + files in MH-E-SRC have been updated. + (updates, compile, recompile, bootstrap): Depend on mh-autoloads. + +2005-10-12 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/mixal-mode.el (mixal-operation-codes): Remove. + (mixal-mode-syntax-table): Add \n as end-comment. + (mixal-operation-codes-alist): Immediately initialize to full value. + (mixal-add-operation-code): Remove. + (mixal-describe-operation-code): Make the arg non-optional. + Use the interactive spec instead. + Use mixal-operation-codes-alist rather than mixal-operation-codes. + (mixal-font-lock-keywords): Don't highlight comments here any more. + (mixal-font-lock-syntactic-keywords): New var. + (mixal-mode): Use it. Fix comment-start-skip. + +2005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * startup.el (command-line-x-option-alist): -nb => -nbi + +2005-10-12 Kim F. Storm <storm@cua.dk> + + * startup.el (fancy-splash-default-action): Discard mouse click in + the spash screen window, as it has no sensible meaning in the + next window to be selected. Fixes error reported by Jan D. + +2005-10-12 Reiner Steib <Reiner.Steib@gmx.de> + + * desktop.el (desktop-load-file): Do nothing when FUNCTION is nil. + +2005-10-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/mixal-mode.el: Sync with version in the GNU MDK project. + Try to fix up minor layout issues like indentation, line break, etc... + (mixal-mode-syntax-table): Don't try to specify comment syntax, + because it doesn't work. + (mixal-operation-codes): Add some more codes. + (mixal-font-lock-keywords): Process comments here. + (mixal-mode): mixasm no longer needs -g option. + +2005-10-11 Sven Joachim <svenjoac@gmx.de> (tiny change) + + * progmodes/sh-script.el (sh-tmp-file): + Use mktemp -t. Finish support for es and rc shells. + +2005-10-11 Jay Belanger <belanger@truman.edu> + + * calc/calcalg2.el (calc-integral): With an argument, compute the + definite integral. + +2005-10-11 Chong Yidong <cyd@stupidchicken.com> + + * mouse.el (mouse-drag-region-1): Don't try to catch a + double-click when doing follow-link (it's overridden anyway). + +2005-10-11 Juanma Barranquero <lekktu@gmail.com> + + * emacs-lisp/autoload.el (update-directory-autoloads): Doc fix. + (autoload-print-form-outbuf): Add docstring. + +2005-10-11 Juri Linkov <juri@jurta.org> + + * info.el (Info-mode-menu): Delete menu item "Edit". + (Info-mode): Delete description of Info-edit from docstring, + and rearrange descriptions of Info commands in the order + they are documented in the Info manual. + +2005-10-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * calendar/appt.el (appt-check): Use diary-selective-display var. + +2005-10-10 Richard M. Stallman <rms@gnu.org> + + * net/newsticker.el (newsticker-start, newsticker-show-news): + Add autoload cookies. + +2005-10-10 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> + + * progmodes/sh-script.el (sh-tmp-file): Use mktemp. + +2005-10-10 Karl Chen <quarl@cs.berkeley.edu> + + * jka-cmpr-hook.el (jka-compr-handler): Fix typo in `operations' prop. + +2005-10-10 Jay Belanger <belanger@truman.edu> + + * calc/calc-arith.el (math-check-known-scalarp) + (math-check-known-matrixp): Check the values of arguments that are + variables. + (math-check-known-square-matrixp): New function. + (math-known-square-matrixp): Use math-check-known-square-matrixp. + (math-super-types): Add sqmatrix type. + + * calc/calc-mode.el (calc-matrix-mode, math-get-modes-vec): Change the + mode name `square' to 'sqmatrix'. + + * calc/calc.el (calc-matrix-mode, calc-set-mode-line): Change the + mode name `square' to 'sqmatrix'. + +2005-10-10 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/etags.el (select-tags-table-mode): Don't use + selective-display. + (tags-select-tags-table): Pass `button' to the action function. + (select-tags-table): Place the side-info on button properties rather + than in hidden text. Abbreviate file names. + (select-tags-table-mode-map): Inherit rather than copy buttom-map. + (select-tags-table-select): Add `button' argument. + Get side-info from the button property rather than from hidden text. + +2005-10-11 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gud.el (gud-install-speedbar-variables): Add more bindings. + (gud-speedbar-buttons): Preserve point if possible. + (gud-sentinel): Restore previous speedbar display type. + + * progmodes/gdb-ui.el (gdba): Improve diagram. + (def-gdb-auto-update-handler, gdb-info-locals-handler) + (gdb-put-breakpoint-icon, gdb-remove-breakpoint-icons): + Call get-buffer-window once. + +2005-10-10 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/pascal.el (pascal-mode-map): Move init into declaration. + (pascal-mode-syntax-table): Make (* *) markers same class as { ... }. + (pascal-indent-command): Remove unused var `ind'. + (pascal-indent-case): Remove unused var `oldpos'. + (pascal-outline-map): Don't inherit from pascal-mode-map anymore, + since it's now used as a proper minor mode map. + (pascal-outline): Rename to pascal-outline-mode. + (pascal-outline-mode): Use define-minor-mode. + (pascal-outline-mode, pascal-outline-change): Use overlays rather than + selective-display. + +2005-10-10 Andreas Schwab <schwab@suse.de> + + * textmodes/tex-mode.el (tex-font-lock-keywords-2): Adjust match + number. Reported by Karl Chen <quarl@cs.berkeley.edu>. + + * Makefile.in ($(lisp)/mh-e/mh-loaddefs.el): Fix for building + outside source directory. + +2005-10-10 Carsten Dominik <dominik@science.uva.nl> + + * textmodes/org.el: (org-mode-map): Explicit definition of `C-c + C-x' as a prefix. + (orgtbl-mode-map): Full keymap instead of sparse, because all + `self-insert-command' keys are redefined in this map. + (org-export-as-html): Specify charset for HTML file, by taking it + from the coding system. + +2005-10-10 Kenichi Handa <handa@m17n.org> + + * textmodes/flyspell.el (flyspell-check-word-p): + If unread-command-events is non-empty, don't call sit-for. + +2005-10-09 Richard M. Stallman <rms@gnu.org> + + * font-lock.el (font-lock-syntactic-keywords) + (font-lock-keywords): Doc fixes. + + * textmodes/flyspell.el (flyspell-external-point-words): + Simplify logic, and don't try to check for consecutive appearances + of one incorrect word. + +2005-10-10 Nick Roberts <nickrob@snap.net.nz> + + * speedbar.el (speedbar-buffer-easymenu-definition): Add menu + separator. + + * progmodes/gud.el (gud-last-speedbar-buffer): Remove. + (gud-install-speedbar-variables): Add GUD to speedbar "Displays" list. + (gud-expansion-speedbar-buttons): New function. + (gud-speedbar-buttons): Check for gud-comint-buffer. + +2005-10-09 Bill Wohler <wohler@newt.com> + + * Makefile.in (updates): Add mh-loaddefs dependency. + +2005-10-09 Chong Yidong <cyd@stupidchicken.com> + + * speedbar.el (speedbar-file-key-map): Fix typo. + +2005-10-09 Daniel Brockman <daniel@brockman.se> + + * cus-start.el (line-spacing): Add custom spec. + +2005-10-09 Romain Francoise <romain@orebokech.com> + + * textmodes/ispell.el (ispell-check-version): Fix last change. + +2005-10-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * term/x-win.el: Remove -i, --icon-type from comment. + + * startup.el (command-line-x-option-alist): Remove options -i, + -itype, --icon-type, added -nb, --no-bitmap-icon + +2005-10-09 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gud.el (gud-speedbar-menu-items): Use :visible + instead of :active. + +2005-10-08 Eric Hanchrow <offby1@blarg.net> + + * textmodes/ispell.el (ispell-check-version): + Ignore hyphen, and all that follows, in aspell's version text. + +2005-10-08 Jay Belanger <belanger@truman.edu> + + * calc/calc-arith.el (math-known-square-matrixp): New function. + (math-pow-fancy): Check for matrices before distributing exponent + across products. + + * calc/calc-keypd.el (calc-do-keypad): Widen keypad window for + fullscreen keypad. Suggested by Luc Teirlinck. + (calc-keypad-show-input): Add space for formatting. + + * calc/calc-mode.el (calc-matrix-mode, math-get-modes-vec): + Add square matrix option. + + * calc/calc-poly.el (math-expand-term): Check for matrices instead + of checking calc-matrix-mode when deciding how to expand. + + * calc/calc.el (calc-set-mode-line): Add square matrix option. + +2005-10-08 Lars Hansen <larsh@soem.dk> + + * net/tramp.el (tramp-perl-directory-files-and-attributes): + Add error handling. + (tramp-handle-directory-files-and-attributes): Handle perl error msg. + +2005-10-08 Michael Albinus <michael.albinus@gmx.de> + + Sync with Tramp 2.0.51. + + * net/tramp.el (tramp-handle-set-visited-file-modtime) + (tramp-handle-insert-file-contents, tramp-handle-write-region): + Insert special handling for `last-coding-system-used', again + it still seems to be necessary (unlike stated before). + Reported by Toshinori Sugita <sugita@d-pad.co.jp>. + (tramp-password-prompt-regexp): There might be other words before + trailing ":". Reported by Kurt Steinkraus <kurt@steinkraus.us>. + (tramp-chunksize): Improve docstring. + (tramp-set-auto-save-file-modes): Octal integer code #o600 breaks + Emacs 20. Use `tramp-octal-to-decimal' therefore. Reported by + Christian Joergensen <bugs@razor.dk>. + +2005-10-07 Glenn Morris <rgm@gnu.org> + + * progmodes/f90.el (f90-keywords-re, f90-mode): Doc fix. + (f90-font-lock-keywords-2, f90-mode-abbrev-table): Add `double + precision'. + +2005-10-07 Romain Francoise <romain@orebokech.com> + + * ibuf-ext.el (ibuffer-do-shell-command-pipe) + (ibuffer-do-shell-command-pipe-replace) + (ibuffer-do-shell-command-file, ibuffer-do-eval) + (ibuffer-do-view-and-eval, ibuffer-do-rename-uniquely) + (ibuffer-do-revert, ibuffer-do-replace-regexp) + (ibuffer-do-query-replace, ibuffer-do-query-replace-regexp) + (ibuffer-do-print, ibuffer-filter-by-mode, ibuffer-filter-by-used-mode) + (ibuffer-filter-by-name, ibuffer-filter-by-filename) + (ibuffer-filter-by-size-gt, ibuffer-filter-by-size-lt) + (ibuffer-filter-by-content, ibuffer-filter-by-predicate + (ibuffer-do-sort-by-major-mode, ibuffer-do-sort-by-mode-name) + (ibuffer-do-sort-by-alphabetic, ibuffer-do-sort-by-size): + Autoload file sans suffix. + + * emulation/cua-base.el (cua-toggle-global-mark): Likewise. + +2005-10-07 David Ponce <david@dponce.com> + + * recentf.el (recentf-menu-open-all-flag): New option. + (recentf-digit-shortcut-command-name): New function. + (recentf--shortcuts-keymap): New variable. + (recentf-menu-shortcuts): New variable. + (recentf-make-menu-items): Initialize it. Replace the "More..." + menu item by "All...", if `recentf-menu-open-all-flag' is non-nil. + (recentf-menu-value-shortcut): New function. + (recentf-make-menu-item): Use it. No more in-lined. + (recentf-dialog-mode-map): Base on `recentf--shortcuts-keymap'. + (recentf-open-most-recent-file): Rename from + `recentf-open-file-with-key'. Don't depend on key binding. + (recentf-mode-map): New variable. + (recentf-mode): Use it. + 2005-10-06 Bill Wohler <wohler@newt.com> - * mh-e/mh-loaddefs.el: Removed. Now generated automatically. - - * Makefile.in (AUTOGENEL): Added mh-e/mh-loaddefs.el. - (MH-E-SRC): Added. Used by mh-autoloads. - (mh-autoloads): Added. Builds mh-e/mh-loaddefs.el. Rebuilds if any + * mh-e/mh-loaddefs.el: Remove. Now generated automatically. + + * Makefile.in (AUTOGENEL): Add mh-e/mh-loaddefs.el. + (MH-E-SRC): New. Used by mh-autoloads. + (mh-autoloads): New. Builds mh-e/mh-loaddefs.el. Rebuilds if any files in MH-E-SRC have been updated. (compile, recompile, bootstrap): Depend on mh-autoloads. 2005-10-07 Nick Roberts <nickrob@snap.net.nz> - + * progmodes/gud.el (gud-menu-map): Only display un-intuitive gud-break and gud-remove icons when the fringe is not available. * progmodes/gdb-ui.el (gdb-fringe-width -> gdb-buffer-fringe-width): Typo. -2005-10-06 Thien-Thi Nguyen <ttn@gnu.org> +2005-10-06 Michael Cadilhac <michael.cadilhac-@t-lrde.epita.fr> (tiny change) * play/zone.el (zone): Wrap body with save-window-excursion. - Suggested by Michael Cadilhac. 2005-10-06 Stefan Monnier <monnier@iro.umontreal.ca> @@ -551,7 +889,7 @@ color rxvt terminals by using the code xterm.el used to use before 2005-04-09 in order to match the colors used by rxvt. -2005-09-24 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) +2005-09-24 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) * term/rxvt.el (rxvt-register-default-colors): Add support for 88 colors rxvt-unicode terminals by using the same code as xterm.el. @@ -2481,7 +2819,7 @@ Sync with Tramp 2.0.50. - * tramp.el: Remove defvar of `last-coding-system-used' in the + * net/tramp.el: Remove defvar of `last-coding-system-used' in the XEmacs case; not necessary anymore. (tramp-user-regexp): Allow "@" as part of user name. (tramp-handle-set-visited-file-modtime) @@ -2522,7 +2860,7 @@ instead of octal character code ?\600. The latter resulted in a syntax error with XEmacs. - * tramp-smb.el: Remove defvar of `last-coding-system-used' in the + * net/tramp-smb.el: Remove defvar of `last-coding-system-used' in the XEmacs case; not necessary anymore. (tramp-smb-handle-write-region): No special handling for `last-coding-system-used, because this is done in @@ -5678,8 +6016,8 @@ * log-view.el (log-view-file, log-view-message): Remove "-face" suffix from face names. - (log-view-file-face, log-view-message-face): New - backward-compatibility aliases for renamed faces. + (log-view-file-face, log-view-message-face): + New backward-compatibility aliases for renamed faces. (log-view-file-face, log-view-message-face): Use renamed log-view faces. @@ -5699,8 +6037,8 @@ (ruler-mode-margins-face, ruler-mode-fringes-face) (ruler-mode-column-number-face, ruler-mode-fill-column-face) (ruler-mode-comment-column-face, ruler-mode-goal-column-face) - (ruler-mode-tab-stop-face, ruler-mode-current-column-face): New - backward-compatibility aliases for renamed faces. + (ruler-mode-tab-stop-face, ruler-mode-current-column-face): + New backward-compatibility aliases for renamed faces. (ruler-mode-pad, ruler-mode-margins, ruler-mode-fringes) (ruler-mode-column-number, ruler-mode-fill-column) (ruler-mode-comment-column, ruler-mode-goal-column) @@ -5823,8 +6161,7 @@ * comint.el (comint-check-proc, make-comint-in-buffer) (comint-source-default): Doc fixes. - * term.el (term-send-string): Improve argument/docstring - consistency. + * term.el (term-send-string): Improve argument/docstring consistency. 2005-06-09 Luc Teirlinck <teirllm@auburn.edu> @@ -5941,12 +6278,11 @@ XEmacs code. (flyspell-word): Minor simplification. (flyspell-math-tex-command-p): Quieten the byte-compiler. - (flyspell-external-point-words): Remove unused vars `size' and - `start'. - (flyspell-do-correct): Rename from flyspell-xemacs-correct. Merge - the corresponding Emacs code. - (flyspell-correct-word, flyspell-xemacs-popup): Use - flyspell-do-correct. + (flyspell-external-point-words): Remove unused vars `size' and `start'. + (flyspell-do-correct): Rename from flyspell-xemacs-correct. + Merge the corresponding Emacs code. + (flyspell-correct-word, flyspell-xemacs-popup): + Use flyspell-do-correct. * emacs-lisp/debug.el (debug): Don't bury the buffer unless it's in a dedicated window. @@ -5985,8 +6321,7 @@ Add a completion-base-size-function property. * simple.el (completion-setup-function): Look for - completion-base-size-function property of - minibuffer-completion-table. + completion-base-size-function property of minibuffer-completion-table. * files.el (locate-file-completion): Doc fix. @@ -7437,7 +7772,7 @@ Sync with Tramp 2.0.49. - * tramp.el (tramp-handle-dired-call-process) + * net/tramp.el (tramp-handle-dired-call-process) (tramp-handle-insert-directory):`insert-buffer' cannot be used because the contents of the Tramp buffer is changed before insertion (`expand-file' and alike). @@ -10186,7 +10521,7 @@ Sync with Tramp 2.0.48. - * tramp.el (all): Change all addresses to .gnu.org. + * net/tramp.el (all): Change all addresses to .gnu.org. (tramp-append-tramp-buffers): New defun. (tramp-bug): Apply `tramp-append-tramp-buffers' as post-hook. Catch `dont-send' signal. @@ -10196,7 +10531,7 @@ Kjetil Kjernsmo <kjetil@kjernsmo.net>. Check for Emacs 21.3.50 removed. - * tramp-smb.el (all): Remove debug construct for + * net/tramp-smb.el (all): Remove debug construct for `with-parsed-tramp-file-name'. (tramp-smb-prompt): Prompt can contain spaces inside directory names. (tramp-smb-handle-delete-directory, tramp-smb-handle-delete-file): @@ -12038,7 +12373,7 @@ Sync with Tramp 2.0.47. - * tramp.el (tramp-operation-not-permitted-regexp) New defcustom, + * net/tramp.el (tramp-operation-not-permitted-regexp) New defcustom, catching keep-date problems in cp/scp operations. (tramp-handle-copy-file): Don't call `set-file-modes' unconditionally. Specialized functions should know better what is @@ -12057,7 +12392,7 @@ (tramp-file-name-for-operation): Mark `shell-command' as magic for Emacs only. - * tramp-util.el (tramp-minor-mode): New minor mode. Add it to + * net/tramp-util.el (tramp-minor-mode): New minor mode. Add it to `find-file-hooks' and `dired-mode-hook'. (tramp-minor-mode-map): Respective map. Add remapping for `compile' and `recompile'. @@ -12065,19 +12400,19 @@ (tramp-compile): Enable `tramp-minor-mode' and `compilation-mode' in buffer "*Compilation*". Call the commands asynchronously. - * tramp-vc.el (tramp-vc-do-command, tramp-vc-do-command-new) + * net/tramp-vc.el (tramp-vc-do-command, tramp-vc-do-command-new) (tramp-vc-simple-command): Call `tramp-handle-shell-command' but `shell-command', because it isn't magic in XEmacs. Reported by Adrian Aichner <adrian@xemacs.org>. - * tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry for + * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry for `substitute-in-file-name. (tramp-smb-handle-substitute-in-file-name): New defun. (tramp-smb-advice-PC-do-completion): Delete advice. 2005-01-16 Kai Grossjohann <kgrossjo@eu.uu.net> - * tramp.el (tramp-wait-for-output): Fix typo in echo processing. + * net/tramp.el (tramp-wait-for-output): Fix typo in echo processing. Fix error in deleting region. 2005-01-15 Richard M. Stallman <rms@gnu.org>
--- a/lisp/ChangeLog.11 Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/ChangeLog.11 Sat Oct 15 00:26:05 2005 +0000 @@ -1,4 +1,3 @@ - 2004-12-31 Jay Belanger <belanger@truman.edu> * calc/calc-store.el (calcVar-digit, calcVar-oper): Remove the need @@ -673,7 +672,7 @@ 2004-12-13 Stefan Monnier <monnier@iro.umontreal.ca> * vc-svn.el (vc-svn-repository-hostname): Adjust to new format. - Reported by Ville Skyttä <scop@xemacs.org>. + Reported by Ville Skytt,Ad(B <scop@xemacs.org>. (vc-svn-annotate-current-time, vc-svn-annotate-time-of-rev) (vc-svn-annotate-time, vc-svn-annotate-extract-revision-at-line) (vc-svn-annotate-command, vc-svn-annotate-re): Support for svn @@ -1238,7 +1237,7 @@ (sc-recite-region): Handle the case where sc-recite-frame-alist is a symbol. -2004-11-27 Arne Jørgensen <arne@arnested.dk> (tiny change) +2004-11-27 Arne J,Ax(Brgensen <arne@arnested.dk> (tiny change) * wid-edit.el (widget-narrow-to-field): New function. (widget-complete): Use it. @@ -1714,7 +1713,7 @@ Replace variables comp-highlight, comp-buf, comp-base, comp-height, comp-tag, comp-hpos and comp-vpos by declared variables. -2004-11-23 Jan Djärv <jan.h.d@swipnet.se> +2004-11-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * cus-start.el (all): Add x-use-old-gtk-file-dialog. @@ -2613,7 +2612,7 @@ (display-call-tree, byte-compile-arglist-warn): Handle t returned by byte-compile-fdefinition. -2004-11-09 Jan Djärv <jan.h.d@swipnet.se> +2004-11-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * Makefile.in (maintainer-clean): Depend on distclean. @@ -2807,7 +2806,7 @@ * files.el (set-auto-mode): Don't get error after setting -*-mode-*-. -2004-11-04 Jan Djärv <jan.h.d@swipnet.se> +2004-11-04 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * dired.el (dired-read-dir-and-switches): Call read-directory-name if a dialog will be used, read-file-name otherwise. @@ -2903,7 +2902,7 @@ * emacs-lisp/advice.el (ad-make-advised-definition): Use called-interactively-p. -2004-11-02 Jan Djärv <jan.h.d@swipnet.se> +2004-11-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * files.el (find-file-existing): New function. @@ -2978,7 +2977,7 @@ * calc/calc-frac.el (calc-over-notation): Replace `completing-read' with `interactive "s"'. -2004-11-01 Jan Djärv <jan.h.d@swipnet.se> +2004-11-01 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * mouse.el (mouse-yank-at-click, mouse-yank-secondary): Revert change from 2004-10-16. '*' checks the current buffer, but the @@ -3096,7 +3095,7 @@ (bibtex-complete): Do not use bibtex-choose-completion-string. (bibtex-url): Simplify. -2004-10-31 Jan Djärv <jan.h.d@swipnet.se> +2004-10-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el (x-dnd-test-function, x-dnd-protocol-alist) (x-dnd-types-alist, x-dnd-open-file-other-window) @@ -3192,7 +3191,7 @@ (grep-mode-font-lock-keywords): Delete grep markers instead of making them invisible. -2004-10-28 Jan Djärv <jan.h.d@swipnet.se> +2004-10-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * mail/emacsbug.el (report-emacs-bug): Insert x-server-vendor and x-server-version in bug report. @@ -4109,7 +4108,7 @@ (enriched-mode): Make sure that enabling and disabling the mode is a no-op. Doc fix. -2004-09-23 HÃ¥kon Malmedal <hmalmedal@yahoo.no> (tiny change) +2004-09-23 H,Ae(Bkon Malmedal <hmalmedal@yahoo.no> (tiny change) * calendar/holidays.el (holiday-advent): Report on a specified day offset from advent, not just advent. @@ -4819,7 +4818,7 @@ lines that begin in the region, rather than on all complete lines in the region. -2004-08-31 Jan Djärv <jan.h.d@swipnet.se> +2004-08-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el (x-dnd-protocol-alist): Document update. (x-dnd-known-types): Defcustom it. @@ -6049,7 +6048,7 @@ * progmodes/python.el (python-open-block-statement-p): Fix indentation after a block opening that contains a comment. -2004-06-12 Jérôme Marant <jerome@marant.org> (tiny change) +2004-06-12 J,Ai(Br,At(Bme Marant <jerome@marant.org> (tiny change) * bindings.el (completion-ignored-extensions): Add file extensions of Python byte-compiled files. @@ -6177,7 +6176,7 @@ * replace.el (perform-replace): Use `limit' to terminate the while-loop explicitly. -2004-06-09 Jan Djärv <jan.h.d@swipnet.se> +2004-06-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * toolbar/tool-bar.el (tool-bar-add-item, tool-bar-local-item): Use lc-*.xpm as prefix instead of *-locol.xpm. @@ -6231,7 +6230,7 @@ (compilation-error-regexp-alist-alist): Recognize {standard input} GNU messages (for gcc --pipe) and more kinds of Oracle messages. -2004-06-08 Jan Djärv <jan.h.d@swipnet.se> +2004-06-08 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * toolbar/copy-locol.xpm, toolbar/cut-locol.xpm * toolbar/help-locol.xpm, toolbar/home-locol.xpm @@ -6292,7 +6291,7 @@ * help-fns.el (help-argument-name): Inherit from italic face only if the frame supports it. -2004-06-06 Jan Djärv <jan.h.d@swipnet.se> +2004-06-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * toolbar/alias.pbm, toolbar/close.pbm, toolbar/copy.pbm * toolbar/cut.pbm, toolbar/help.pbm, toolbar/home.pbm @@ -7048,7 +7047,7 @@ * progmodes/compile.el (compilation-warning-face) (compilation-info-face): Use min-colors. -2004-05-15 Jan Djärv <jan.h.d@swipnet.se> +2004-05-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * toolbar/close.pbm, toolbar/close.xpm, toolbar/copy.pbm * toolbar/copy.xpm, toolbar/cut.pbm, toolbar/cut.xpm @@ -7138,7 +7137,7 @@ * progmodes/compile.el (compilation-set-window-height): Use save-excursion to protect against misplaced marker. -2004-05-12 Jan Djärv <jan.h.d@swipnet.se> +2004-05-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * custom.el (defface): Document that type can have value gtk. @@ -7600,12 +7599,12 @@ * select.el (xselect-convert-to-string): Move comment to intended line. -2004-05-03 Jan Djärv <jan.h.d@swipnet.se> +2004-05-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * toolbar/tool-bar.el (tool-bar-setup): Use lookup-key for cut/copy/paste in case menu-bar-enable-clipboard is in effect. -2004-05-03 Jan Djärv <jan.h.d@swipnet.se> +2004-05-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * term/x-win.el (x-clipboard-yank): Don't exit on error from x-get-selection. @@ -8174,7 +8173,7 @@ * info-look.el: Add support for cfengine-mode. (info-lookup-setup-mode): Use dolist. -2004-04-23 Juan León Lahoz GarcÃa <juan-leon.lahoz@tecsidel.es> +2004-04-23 Juan Le,As(Bn Lahoz Garc,Am(Ba <juan-leon.lahoz@tecsidel.es> * wdired.el: New file. @@ -8452,7 +8451,7 @@ (rmail-decode-region): Use -dos variety of `coding', to remove any ^M characters left after qp or base64 decoding. -2004-04-19 Jan Djärv <jan.h.d@swipnet.se> +2004-04-19 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el (x-dnd-open-local-file, x-dnd-open-file): Improve error messages. @@ -9090,7 +9089,7 @@ * dired.el (dired-font-lock-keywords): Fix permission regexps. -2004-04-02 Jan Djärv <jan.h.d@swipnet.se> +2004-04-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el (x-dnd-handle-moz-url, x-dnd-insert-utf16-text): Use utf-16le on little endian machines and utf-16be otherwise. @@ -9151,7 +9150,7 @@ * dired-x.el (dired-mark-sexp): Replace hard-coded month names by `dired-move-to-filename-regexp'. -2004-03-31 HÃ¥kan Granath <hakan.granath@kau.se> (tiny change) +2004-03-31 H,Ae(Bkan Granath <hakan.granath@kau.se> (tiny change) * dired.el (dired-move-to-filename-regexp): Add `.' to HH:MM. @@ -9226,7 +9225,7 @@ 2004-03-28 Stefan Monnier <monnier@iro.umontreal.ca> * vc-hooks.el (vc-file-not-found-hook): Fix typo. - From lorentey@elte.hu (LÅ‘rentey Károly). + From lorentey@elte.hu (L$,1 q(Brentey K,Aa(Broly). 2004-03-27 Luc Teirlinck <teirllm@auburn.edu> @@ -10569,7 +10568,7 @@ * progmodes/grep.el (grep-compute-defaults): Fix typos. -2004-02-15 Jan Djärv <jan.h.d@swipnet.se> +2004-02-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el: Mention support for Motif in commentary. (x-dnd-handle-drag-n-drop-event): Ditto. @@ -10628,7 +10627,7 @@ Use listp instead of consp to avoid putting a nil arg. (diff): Add a revert-buffer function. -2004-02-10 Jan Djärv <jan.h.d@swipnet.se> +2004-02-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el (x-dnd-types-alist): Add COMPOUND_TEXT, FILE_NAME handled by x-dnd-handle-file-name. @@ -10793,7 +10792,7 @@ * view.el (view-mode-enable): Add view-mode-map to minor-mode-overriding-map-alist. -2004-02-05 Jan Djärv <jan.h.d@swipnet.se> +2004-02-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el (x-dnd-get-local-file-name): Fix byte compiler warning @@ -10817,7 +10816,7 @@ * files.el (auto-mode-alist): Fix .scm, .stk, .ss, .sch entry. -2004-02-03 Jan Djärv <jan.h.d@swipnet.se> +2004-02-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * x-dnd.el: New file for drag and drop. @@ -11049,7 +11048,7 @@ * vc.el (vc-annotate-mode): Inherit from fundamental-mode and activate view-mode explicitly. -2004-01-21 Jan Djärv <jan.h.d@swipnet.se> +2004-01-21 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * term/x-win.el (x-clipboard-yank, menu-bar-edit-menu): Call menu-bar-enable-clipboard and make Paste use clipboard first. @@ -11798,7 +11797,7 @@ (gdb-var-update-handler, gdb-var-delete): Add server prefix to the gdb commands that use mi to keep them out of the command history. -2003-11-29 Jan Djärv <jan.h.d@swipnet.se> +2003-11-29 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * cus-start.el (all): Add use-file-dialog. @@ -12217,10 +12216,10 @@ (octave-blink-matching-block-open, octave-auto-fill): Use line-(beginning|end)-position instead. -2003-10-23 Francesco Potortì <pot@gnu.org> +2003-10-23 Francesco Potort,Al(B <pot@gnu.org> * emacs-lisp/authors.el (authors-aliases): Add correct realname - for Francesco Potortì. + for Francesco Potort,Al(B. 2003-10-23 Dave Love <fx@gnu.org> @@ -13236,7 +13235,7 @@ * international/utf-16.el: Add mime-text-unsuitable coding system properties. - * international/latin1-disp.el (latin1-display): Add ?•. + * international/latin1-disp.el (latin1-display): Add ?$,1s"(B. * cus-edit.el: Add some :links. (bib): Remove. @@ -13811,7 +13810,7 @@ * progmodes/sh-script.el (sh-mode-syntax-table): Change syntax of ?, to "_". -2003-07-20 Kai Großjohann <kai.grossjohann@gmx.net> +2003-07-20 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> Version 2.0.36 of Tramp released. * net/tramp.el (tramp-default-password-end-of-line): Rename from
--- a/lisp/Makefile.in Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/Makefile.in Sat Oct 15 00:26:05 2005 +0000 @@ -119,7 +119,7 @@ $(srcdir)/update-subdirs $$file; \ done; -updates: update-subdirs autoloads finder-data custom-deps +updates: update-subdirs autoloads mh-autoloads finder-data custom-deps # Update the AUTHORS file. @@ -242,9 +242,9 @@ $(EMACS) $(EMACSOPT) \ -l autoload \ --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ - --eval "(setq generated-autoload-file (expand-file-name \"mh-e/mh-loaddefs.el\"))" \ + --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \ --eval "(setq make-backup-files nil)" \ - -f batch-update-autoloads mh-e + -f batch-update-autoloads $(lisp)/mh-e echo "" >> $@ echo "(provide 'mh-loaddefs)" >> $@ echo ";;; Local Variables:" >> $@
--- a/lisp/calc/calc-arith.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calc/calc-arith.el Sat Oct 15 00:26:05 2005 +0000 @@ -239,6 +239,7 @@ (real number) (number) (scalar) + (sqmatrix matrix vector) (matrix vector) (vector) (const))) @@ -305,6 +306,10 @@ (and (not (Math-scalarp a)) (not (math-known-scalarp a t)))) +(defun math-known-square-matrixp (a) + (and (math-known-matrixp a) + (math-check-known-square-matrixp a))) + ;;; Try to prove that A is a scalar (i.e., a non-vector). (defun math-check-known-scalarp (a) (cond ((Math-objectp a) t) @@ -323,8 +328,17 @@ (let ((decl (if (eq (car a) 'var) (or (assq (nth 2 a) math-decls-cache) math-decls-all) - (assq (car a) math-decls-cache)))) - (memq 'scalar (nth 1 decl)))))) + (assq (car a) math-decls-cache))) + val) + (cond + ((memq 'scalar (nth 1 decl)) + t) + ((and (eq (car a) 'var) + (boundp (nth 2 a)) + (setq val (symbol-value (nth 2 a)))) + (math-check-known-scalarp val)) + (t + nil)))))) ;;; Try to prove that A is *not* a scalar. (defun math-check-known-matrixp (a) @@ -342,9 +356,46 @@ (let ((decl (if (eq (car a) 'var) (or (assq (nth 2 a) math-decls-cache) math-decls-all) - (assq (car a) math-decls-cache)))) - (memq 'vector (nth 1 decl)))))) + (assq (car a) math-decls-cache))) + val) + (cond + ((memq 'matrix (nth 1 decl)) + t) + ((and (eq (car a) 'var) + (boundp (nth 2 a)) + (setq val (symbol-value (nth 2 a)))) + (math-check-known-matrixp val)) + (t + nil)))))) +;;; Given that A is a matrix, try to prove that it is a square matrix. +(defun math-check-known-square-matrixp (a) + (cond ((math-square-matrixp a) + t) + ((eq (car-safe a) '^) + (math-check-known-square-matrixp (nth 1 a))) + (t + (let ((decl (if (eq (car a) 'var) + (or (assq (nth 2 a) math-decls-cache) + math-decls-all) + (assq (car a) math-decls-cache))) + val) + (cond + ((memq 'sqmatrix (nth 1 decl)) + t) + ((and (eq (car a) 'var) + (boundp (nth 2 a)) + (setq val (symbol-value (nth 2 a)))) + (math-check-known-square-matrixp val)) + ((and (or + (integerp calc-matrix-mode) + (eq calc-matrix-mode 'sqmatrix)) + (eq (car-safe a) 'var)) + t) + ((memq 'matrix (nth 1 decl)) + nil) + (t + nil)))))) ;;; Try to prove that A is a real (i.e., not complex). (defun math-known-realp (a) @@ -1869,6 +1920,21 @@ (cond ((and math-simplify-only (not (equal a math-simplify-only))) (list '^ a b)) + ((and (eq (car-safe a) '*) + (or + (and + (math-known-matrixp (nth 1 a)) + (math-known-matrixp (nth 2 a))) + (and + calc-matrix-mode + (not (eq calc-matrix-mode 'scalar)) + (and (not (math-known-scalarp (nth 1 a))) + (not (math-known-scalarp (nth 2 a))))))) + (if (and (= b -1) + (math-known-square-matrixp (nth 1 a)) + (math-known-square-matrixp (nth 2 a))) + (list '* (list '^ (nth 2 a) -1) (list '^ (nth 1 a) -1)) + (list '^ a b))) ((and (eq (car-safe a) '*) (or (math-known-num-integerp b) (math-known-nonnegp (nth 1 a))
--- a/lisp/calc/calc-keypd.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calc/calc-keypd.el Sat Oct 15 00:26:05 2005 +0000 @@ -296,7 +296,7 @@ (set-window-buffer old-win (calc-trail-buffer)) (set-window-buffer win calc-keypad-buffer) (set-window-start win 1) - (setq win (split-window win (+ width 3) t)) + (setq win (split-window win (+ width 7) t)) (set-window-buffer win calcbuf)) (if (or t ; left-side keypad not yet fully implemented (< (save-excursion @@ -384,7 +384,7 @@ (delete-region (point-min) (point)) (if calc-keypad-input (insert "Calc: " calc-keypad-input "\n") - (insert "----+-----Calc " calc-version "-----+----" + (insert "----+-----Calc " calc-version " -----+----" (int-to-string (1+ calc-keypad-menu)) "\n"))))) (setq calc-keypad-prev-input calc-keypad-input))
--- a/lisp/calc/calc-mode.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calc/calc-mode.el Sat Oct 15 00:26:05 2005 +0000 @@ -352,6 +352,7 @@ (if (eq calc-complex-mode 'polar) 1 0) (cond ((eq calc-matrix-mode 'scalar) 0) ((eq calc-matrix-mode 'matrix) -2) + ((eq calc-matrix-mode 'sqmatrix) -3) (calc-matrix-mode) (t -1)) (cond ((eq calc-simplify-mode 'none) -1) @@ -476,7 +477,9 @@ (cond ((eq arg 0) 'scalar) ((< (prefix-numeric-value arg) 1) (and (< (prefix-numeric-value arg) -1) 'matrix)) - (arg (prefix-numeric-value arg)) + (arg + (if (consp arg) 'sqmatrix + (prefix-numeric-value arg))) ((eq calc-matrix-mode 'matrix) 'scalar) ((eq calc-matrix-mode 'scalar) nil) (t 'matrix))) @@ -485,9 +488,11 @@ calc-matrix-mode calc-matrix-mode) (message (if (eq calc-matrix-mode 'matrix) "Variables are assumed to be matrices" - (if calc-matrix-mode - "Variables are assumed to be scalars (non-matrices)" - "Variables are not assumed to be matrix or scalar")))))) + (if (eq calc-matrix-mode 'sqmatrix) + "Variables are assumed to be square matrices" + (if calc-matrix-mode + "Variables are assumed to be scalars (non-matrices)" + "Variables are not assumed to be matrix or scalar"))))))) (defun calc-set-simplify-mode (mode arg msg) (calc-change-mode 'calc-simplify-mode
--- a/lisp/calc/calc-poly.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calc/calc-poly.el Sat Oct 15 00:26:05 2005 +0000 @@ -1069,25 +1069,18 @@ (math-add-or-sub (list '/ (nth 1 (nth 1 expr)) (nth 2 expr)) (list '/ (nth 2 (nth 1 expr)) (nth 2 expr)) nil (eq (car (nth 1 expr)) '-))) - ((and (eq calc-matrix-mode 'matrix) - (eq (car-safe expr) '^) - (natnump (nth 2 expr)) - (> (nth 2 expr) 1) - (memq (car-safe (nth 1 expr)) '(+ -))) - (if (= (nth 2 expr) 2) - (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (nth 1 expr)) - (list '* (nth 2 (nth 1 expr)) (nth 1 expr)) - nil (eq (car (nth 1 expr)) '-)) - (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (list '^ (nth 1 expr) - (1- (nth 2 expr)))) - (list '* (nth 2 (nth 1 expr)) (list '^ (nth 1 expr) - (1- (nth 2 expr)))) - nil (eq (car (nth 1 expr)) '-)))) ((and (eq (car-safe expr) '^) (memq (car-safe (nth 1 expr)) '(+ -)) (integerp (nth 2 expr)) - (if (and (eq calc-matrix-mode 'matrix) - (> (nth 2 expr) 1)) + (if (and + (or (math-known-matrixp (nth 1 (nth 1 expr))) + (math-known-matrixp (nth 2 (nth 1 expr))) + (and + calc-matrix-mode + (not (eq calc-matrix-mode 'scalar)) + (not (and (math-known-scalarp (nth 1 (nth 1 expr))) + (math-known-scalarp (nth 2 (nth 1 expr))))))) + (> (nth 2 expr) 1)) (if (= (nth 2 expr) 2) (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (nth 1 expr)) (list '* (nth 2 (nth 1 expr)) (nth 1 expr))
--- a/lisp/calc/calc.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calc/calc.el Sat Oct 15 00:26:05 2005 +0000 @@ -654,6 +654,7 @@ (defcalcmodevar calc-matrix-mode nil "If `matrix', variables are assumed to be matrix-valued. If a number, variables are assumed to be NxN matrices. +If `sqmatrix', variables are assumed to be square matrices of an unspecified size. If `scalar', variables are assumed to be scalar-valued. If nil, symbolic math routines make no assumptions about variables.") @@ -1551,6 +1552,7 @@ (cond ((eq calc-matrix-mode 'matrix) "Matrix ") ((integerp calc-matrix-mode) (format "Matrix%d " calc-matrix-mode)) + ((eq calc-matrix-mode 'sqmatrix) "SqMatrix ") ((eq calc-matrix-mode 'scalar) "Scalar ") (t "")) (if (eq calc-complex-mode 'polar) "Polar " "")
--- a/lisp/calc/calcalg2.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calc/calcalg2.el Sat Oct 15 00:26:05 2005 +0000 @@ -52,19 +52,21 @@ (setq expr (list func expr var))) (calc-enter-result n "derv" expr)))) -(defun calc-integral (var) - (interactive "sIntegration variable: ") - (calc-slow-wrapper - (if (or (equal var "") (equal var "$")) - (calc-enter-result 2 "intg" (list 'calcFunc-integ - (calc-top-n 2) - (calc-top-n 1))) - (let ((var (math-read-expr var))) - (if (eq (car-safe var) 'error) - (error "Bad format in expression: %s" (nth 1 var))) - (calc-enter-result 1 "intg" (list 'calcFunc-integ - (calc-top-n 1) - var)))))) +(defun calc-integral (var &optional arg) + (interactive "sIntegration variable: \nP") + (if arg + (calc-tabular-command 'calcFunc-integ "Integration" "intg" nil var nil nil) + (calc-slow-wrapper + (if (or (equal var "") (equal var "$")) + (calc-enter-result 2 "intg" (list 'calcFunc-integ + (calc-top-n 2) + (calc-top-n 1))) + (let ((var (math-read-expr var))) + (if (eq (car-safe var) 'error) + (error "Bad format in expression: %s" (nth 1 var))) + (calc-enter-result 1 "intg" (list 'calcFunc-integ + (calc-top-n 1) + var))))))) (defun calc-num-integral (&optional varname lowname highname) (interactive "sIntegration variable: ")
--- a/lisp/calendar/appt.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/appt.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,9 +1,9 @@ ;;; appt.el --- appointment notification functions -;; Copyright (C) 1989, 1990, 1994, 1998, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1990, 1994, 1998, 2004, 2005 Free Software Foundation, Inc. ;; Author: Neil Mager <neilm@juliet.ll.mit.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; This file is part of GNU Emacs. @@ -337,13 +337,13 @@ diary-hook (cons 'appt-make-list diary-hook)))) (diary)) - (let ((diary-display-hook 'appt-make-list) - (d-buff (find-buffer-visiting - (substitute-in-file-name diary-file))) - selective) - (if d-buff ; diary buffer exists - (with-current-buffer d-buff - (setq selective selective-display))) + (let* ((diary-display-hook 'appt-make-list) + (d-buff (find-buffer-visiting + (substitute-in-file-name diary-file))) + (selective + (if d-buff ; Diary buffer exists. + (with-current-buffer d-buff + diary-selective-display)))) (diary) ;; If the diary buffer existed before this command, ;; restore its display state. Otherwise, kill it.
--- a/lisp/calendar/cal-iso.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/cal-iso.el Sat Oct 15 00:26:05 2005 +0000 @@ -3,7 +3,7 @@ ;; Copyright (C) 1995, 1997, 2004 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; Human-Keywords: ISO calendar, calendar, diary
--- a/lisp/calendar/cal-menu.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/cal-menu.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Lara Rios <lrios@coewl.cen.uiuc.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; Human-Keywords: calendar, popup menus, menu bar
--- a/lisp/calendar/cal-move.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/cal-move.el Sat Oct 15 00:26:05 2005 +0000 @@ -3,7 +3,7 @@ ;; Copyright (C) 1995, 2005 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; Human-Keywords: calendar
--- a/lisp/calendar/cal-x.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/cal-x.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; Author: Michael Kifer <kifer@cs.sunysb.edu> ;; Edward M. Reingold <reingold@cs.uiuc.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; Human-Keywords: calendar, dedicated frames, X Window System
--- a/lisp/calendar/calendar.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/calendar.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; Human-Keywords: calendar, Gregorian calendar, diary, holidays
--- a/lisp/calendar/diary-lib.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/diary-lib.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; Free Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; This file is part of GNU Emacs.
--- a/lisp/calendar/holidays.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/holidays.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; Software Foundation, Inc. ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: holidays, calendar ;; This file is part of GNU Emacs.
--- a/lisp/calendar/solar.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/calendar/solar.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> ;; Denis B. Roegel <Denis.Roegel@loria.fr> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar ;; Human-Keywords: sunrise, sunset, equinox, solstice, calendar, diary, ;; holidays
--- a/lisp/cus-start.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/cus-start.el Sat Oct 15 00:26:05 2005 +0000 @@ -99,6 +99,7 @@ (scroll-down-aggressively windows (choice (const :tag "off" nil) number) "21.1") + (line-spacing display (choice (const :tag "none" nil) integer)) ;; callint.c (mark-even-if-inactive editing-basics boolean) ;; callproc.c
--- a/lisp/desktop.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/desktop.el Sat Oct 15 00:26:05 2005 +0000 @@ -963,10 +963,11 @@ (defun desktop-load-file (function) "Load the file where auto loaded FUNCTION is defined." - (let ((fcell (symbol-function function))) - (when (and (listp fcell) - (eq 'autoload (car fcell))) - (load (cadr fcell))))) + (when function + (let ((fcell (symbol-function function))) + (when (and (listp fcell) + (eq 'autoload (car fcell))) + (load (cadr fcell)))))) ;; ---------------------------------------------------------------------------- ;; Create a buffer, load its file, set its mode, ...;
--- a/lisp/emacs-lisp/autoload.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/emacs-lisp/autoload.el Sat Oct 15 00:26:05 2005 +0000 @@ -175,7 +175,8 @@ (goto-char (point-min)) (read (current-buffer)))))) -(defvar autoload-print-form-outbuf) +(defvar autoload-print-form-outbuf nil + "Buffer which gets the output of `autoload-print-form'.") (defun autoload-print-form (form) "Print FORM such that `make-docfile' will find the docstrings. @@ -492,7 +493,7 @@ (defun update-directory-autoloads (&rest dirs) "\ Update loaddefs.el with all the current autoloads from DIRS, and no old ones. -This uses `update-file-autoloads' (which see) do its work. +This uses `update-file-autoloads' (which see) to do its work. In an interactive call, you must give one argument, the name of a single directory. In a call from Lisp, you can supply multiple directories as separate arguments, but this usage is discouraged.
--- a/lisp/emulation/cua-base.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/emulation/cua-base.el Sat Oct 15 00:26:05 2005 +0000 @@ -548,7 +548,7 @@ ;;; Global Mark support is in cua-gmrk.el -(autoload 'cua-toggle-global-mark "cua-gmrk.el" nil t nil) +(autoload 'cua-toggle-global-mark "cua-gmrk" nil t nil) ;; Stub definitions until cua-gmrk.el is loaded
--- a/lisp/font-lock.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/font-lock.el Sat Oct 15 00:26:05 2005 +0000 @@ -354,7 +354,7 @@ Each element in a user-level keywords list should have one of these forms: MATCHER - (MATCHER . MATCH) + (MATCHER . SUBEXP) (MATCHER . FACENAME) (MATCHER . HIGHLIGHT) (MATCHER HIGHLIGHT ...) @@ -380,12 +380,13 @@ MATCH-HIGHLIGHT should be of the form: - (MATCH FACENAME [OVERRIDE [LAXMATCH]]) + (SUBEXP FACENAME [OVERRIDE [LAXMATCH]]) + +SUBEXP is the number of the subexpression of MATCHER to be highlighted. -MATCH is the subexpression of MATCHER to be highlighted. FACENAME is an -expression whose value is the face name to use. Face default attributes -can be modified via \\[customize]. Instead of a face, FACENAME can -evaluate to a property list of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) +FACENAME is an expression whose value is the face name to use. +Instead of a face, FACENAME can evaluate to a property list +of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) in which case all the listed text-properties will be set rather than just FACE. In such a case, you will most likely want to put those properties in `font-lock-extra-managed-props' or to override @@ -395,7 +396,8 @@ be overwritten. If `keep', only parts not already fontified are highlighted. If `prepend' or `append', existing fontification is merged with the new, in which the new or existing fontification, respectively, takes precedence. -If LAXMATCH is non-nil, no error is signaled if there is no MATCH in MATCHER. +If LAXMATCH is non-nil, that means don't signal an error if there is +no match for SUBEXP in MATCHER. For example, an element of the form highlights (if not already highlighted): @@ -508,36 +510,35 @@ should return a face. This is normally set via `font-lock-defaults'.") (defvar font-lock-syntactic-keywords nil - "A list of the syntactic keywords to highlight. -Can be the list or the name of a function or variable whose value is the list. + "A list of the syntactic keywords to put syntax properties on. +The value can be the list itself, or the name of a function or variable +whose value is the list. + See `font-lock-keywords' for a description of the form of this list; -the differences are listed below. MATCH-HIGHLIGHT should be of the form: +only the differences are stated here. MATCH-HIGHLIGHT should be of the form: - (MATCH SYNTAX OVERRIDE LAXMATCH) + (SUBEXP SYNTAX OVERRIDE LAXMATCH) where SYNTAX can be a string (as taken by `modify-syntax-entry'), a syntax table, a cons cell (as returned by `string-to-syntax') or an expression whose value is such a form. OVERRIDE cannot be `prepend' or `append'. -For example, an element of the form highlights syntactically: +Here are two examples of elements of `font-lock-syntactic-keywords' +and what they do: (\"\\\\$\\\\(#\\\\)\" 1 \".\") - a hash character when following a dollar character, with a SYNTAX of - \".\" (meaning punctuation syntax). Assuming that the buffer syntax table does - specify hash characters to have comment start syntax, the element will only - highlight hash characters that do not follow dollar characters as comments - syntactically. + gives a hash character punctuation syntax (\".\") when following a + dollar-sign character. Hash characters in other contexts will still + follow whatever the syntax table says about the hash character. (\"\\\\('\\\\).\\\\('\\\\)\" (1 \"\\\"\") (2 \"\\\"\")) - both single quotes which surround a single character, with a SYNTAX of - \"\\\"\" (meaning string quote syntax). Assuming that the buffer syntax table - does not specify single quotes to have quote syntax, the element will only - highlight single quotes of the form 'c' as strings syntactically. - Other forms, such as foo'bar or 'fubar', will not be highlighted as strings. + gives a pair single-quotes, which surround a single character, a SYNTAX of + \"\\\"\" (meaning string quote syntax). Single-quote characters in other + contexts will not be affected. This is normally set via `font-lock-defaults'.")
--- a/lisp/gnus/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/gnus/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,3 +1,31 @@ +2005-10-09 Daniel Brockman <daniel@brockman.se> + + * format-spec.el (format-spec): Propagate text properties of % spec. + +2005-01-21 Derek Atkins <warlord@MIT.EDU> (tiny change) + + * pgg-pgp.el (pgg-pgp-decrypt-region): Use passphrase cache. + +2005-10-08 Simon Josefsson <jas@extundo.com> + + * pgg-parse.el (top-level): Don't require custom, it is + autoloaded. (To sync with No Gnus.) + +2005-05-09 Simon Josefsson <jas@extundo.com> + + * pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): Fix PIN caching, + tiny patch from "Georg C. F. Greve" <greve@gnu.org>. + +2005-10-08 Simon Josefsson <jas@extundo.com> + + * pgg-def.el (top-level): Don't require custom, it is + autoloaded. (To sync with No Gnus.) + +2005-10-04 David Hansen <david.hansen@gmx.net> + + * nnrss.el (nnrss-request-article): Add support for the comments tag. + (nnrss-check-group): Ditto. + 2005-10-04 Reiner Steib <Reiner.Steib@gmx.de> * mm-url.el (mm-url-predefined-programs): Add switches for curl.
--- a/lisp/gnus/format-spec.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/gnus/format-spec.el Sat Oct 15 00:26:05 2005 +0000 @@ -33,7 +33,8 @@ "Return a string based on FORMAT and SPECIFICATION. FORMAT is a string containing `format'-like specs like \"bash %u %k\", while SPECIFICATION is an alist mapping from format spec characters -to values." +to values. Any text properties on a %-spec itself are propagated to +the text that it generates." (with-temp-buffer (insert format) (goto-char (point-min)) @@ -47,10 +48,17 @@ (let* ((num (match-string 1)) (spec (string-to-char (match-string 2))) (val (cdr (assq spec specification)))) - (delete-region (1- (match-beginning 0)) (match-end 0)) (unless val (error "Invalid format character: %s" spec)) - (insert (format (concat "%" num "s") val)))) + ;; Pad result to desired length. + (let ((text (format (concat "%" num "s") val))) + ;; Insert first, to preserve text properties. + (insert-and-inherit text) + ;; Delete the specifier body. + (delete-region (+ (match-beginning 0) (length text)) + (+ (match-end 0) (length text))) + ;; Delete the percent sign. + (delete-region (1- (match-beginning 0)) (match-beginning 0))))) ;; Signal an error on bogus format strings. (t (error "Invalid format string"))))
--- a/lisp/gnus/nnrss.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/gnus/nnrss.el Sat Oct 15 00:26:05 2005 +0000 @@ -197,6 +197,7 @@ " "))) (link (nth 2 e)) (enclosure (nth 7 e)) + (comments (nth 8 e)) ;; Enable encoding of Newsgroups header in XEmacs. (default-enable-multibyte-characters t) (rfc2047-header-encoding-alist @@ -205,7 +206,7 @@ rfc2047-header-encoding-alist) rfc2047-header-encoding-alist)) rfc2047-encode-encoded-words body) - (when (or text link enclosure) + (when (or text link enclosure comments) (insert "\n") (insert "<#multipart type=alternative>\n" "<#part type=\"text/plain\">\n") @@ -220,6 +221,8 @@ (insert (car enclosure) " " (nth 2 enclosure) " " (nth 3 enclosure) "\n")) + (when comments + (insert comments "\n")) (setq body (buffer-substring body (point))) (insert "<#/part>\n" "<#part type=\"text/html\">\n" @@ -232,6 +235,8 @@ (insert "<p><a href=\"" (car enclosure) "\">" (cadr enclosure) "</a> " (nth 2 enclosure) " " (nth 3 enclosure) "</p>\n")) + (when comments + (insert "<p><a href=\"" comments "\">comments</a></p>\n")) (insert "</body></html>\n" "<#/part>\n" "<#/multipart>\n")) @@ -528,7 +533,7 @@ (defun nnrss-check-group (group server) (let (file xml subject url extra changed author date - enclosure rss-ns rdf-ns content-ns dc-ns) + enclosure comments rss-ns rdf-ns content-ns dc-ns) (if (and nnrss-use-local (file-exists-p (setq file (expand-file-name (nnrss-translate-file-chars @@ -576,6 +581,7 @@ (setq date (or (nnrss-node-text dc-ns 'date item) (nnrss-node-text rss-ns 'pubDate item) (message-make-date))) + (setq comments (nnrss-node-text rss-ns 'comments item)) (when (setq enclosure (cadr (assq (intern (concat rss-ns "enclosure")) item))) (let ((url (cdr (assq 'url enclosure))) (len (cdr (assq 'length enclosure))) @@ -606,7 +612,8 @@ (and author (nnrss-mime-encode-string author)) date (and extra (nnrss-decode-entities-string extra)) - enclosure) + enclosure + comments) nnrss-group-data) (gnus-sethash (or url extra) t nnrss-group-hashtb) (setq changed t))
--- a/lisp/gnus/pgg-def.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/gnus/pgg-def.el Sat Oct 15 00:26:05 2005 +0000 @@ -25,8 +25,6 @@ ;;; Code: -(require 'custom) - (defgroup pgg () "Glue for the various PGP implementations." :group 'mime
--- a/lisp/gnus/pgg-gpg.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/gnus/pgg-gpg.el Sat Oct 15 00:26:05 2005 +0000 @@ -100,13 +100,13 @@ (if (and pgg-cache-passphrase (progn (goto-char (point-min)) - (re-search-forward "^\\[GNUPG:] GOOD_PASSPHRASE\\>" nil t))) + (re-search-forward "^\\[GNUPG:] \\(GOOD_PASSPHRASE\\>\\)\\|\\(SIG_CREATED\\)" nil t))) (pgg-add-passphrase-cache (or key (progn (goto-char (point-min)) (if (re-search-forward - "^\\[GNUPG:] NEED_PASSPHRASE \\w+ ?\\w*" nil t) + "^\\[GNUPG:] NEED_PASSPHRASE\\(_PIN\\)? \\w+ ?\\w*" nil t) (substring (match-string 0) -8)))) passphrase)))
--- a/lisp/gnus/pgg-parse.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/gnus/pgg-parse.el Sat Oct 15 00:26:05 2005 +0000 @@ -37,8 +37,6 @@ (eval-when-compile (require 'cl)) -(require 'custom) - (defgroup pgg-parse () "OpenPGP packet parsing." :group 'pgg)
--- a/lisp/gnus/pgg-pgp.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/gnus/pgg-pgp.el Sat Oct 15 00:26:05 2005 +0000 @@ -149,14 +149,16 @@ (defun pgg-pgp-decrypt-region (start end) "Decrypt the current region between START and END." (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id)) + (key (pgg-pgp-lookup-key pgg-pgp-user-id 'encrypt)) (passphrase (pgg-read-passphrase - (format "PGP passphrase for %s: " pgg-pgp-user-id) - (pgg-pgp-lookup-key pgg-pgp-user-id 'encrypt))) + (format "PGP passphrase for %s: " pgg-pgp-user-id) key)) (args '("+verbose=1" "+batchmode" "+language=us" "-f"))) (pgg-pgp-process-region start end passphrase pgg-pgp-program args) - (pgg-process-when-success nil))) + (pgg-process-when-success + (if pgg-cache-passphrase + (pgg-add-passphrase-cache key passphrase))))) (defun pgg-pgp-sign-region (start end &optional clearsign) "Make detached signature from text between START and END."
--- a/lisp/ibuf-ext.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/ibuf-ext.el Sat Oct 15 00:26:05 2005 +0000 @@ -329,7 +329,7 @@ (ibuffer-backward-filter-group 1)) (ibuffer-forward-line 0)) -;;;###autoload (autoload 'ibuffer-do-shell-command-pipe "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-shell-command-pipe "ibuf-ext") (define-ibuffer-op shell-command-pipe (command) "Pipe the contents of each marked buffer to shell command COMMAND." (:interactive "sPipe to shell command: " @@ -339,7 +339,7 @@ (point-min) (point-max) command (get-buffer-create "* ibuffer-shell-output*"))) -;;;###autoload (autoload 'ibuffer-do-shell-command-pipe-replace "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-shell-command-pipe-replace "ibuf-ext") (define-ibuffer-op shell-command-pipe-replace (command) "Replace the contents of marked buffers with output of pipe to COMMAND." (:interactive "sPipe to shell command (replace): " @@ -351,7 +351,7 @@ (shell-command-on-region (point-min) (point-max) command nil t))) -;;;###autoload (autoload 'ibuffer-do-shell-command-file "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-shell-command-file "ibuf-ext") (define-ibuffer-op shell-command-file (command) "Run shell command COMMAND separately on files of marked buffers." (:interactive "sShell command on buffer's file: " @@ -364,7 +364,7 @@ (make-temp-file (substring (buffer-name) 0 (min 10 (length (buffer-name)))))))))) -;;;###autoload (autoload 'ibuffer-do-eval "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-eval "ibuf-ext") (define-ibuffer-op eval (form) "Evaluate FORM in each of the buffers. Does not display the buffer during evaluation. See @@ -374,7 +374,7 @@ :modifier-p :maybe) (eval form)) -;;;###autoload (autoload 'ibuffer-do-view-and-eval "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-view-and-eval "ibuf-ext") (define-ibuffer-op view-and-eval (form) "Evaluate FORM while displaying each of the marked buffers. To evaluate a form without viewing the buffer, see `ibuffer-do-eval'." @@ -389,14 +389,14 @@ (eval form)) (switch-to-buffer ibuffer-buf)))) -;;;###autoload (autoload 'ibuffer-do-rename-uniquely "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-rename-uniquely "ibuf-ext") (define-ibuffer-op rename-uniquely () "Rename marked buffers as with `rename-uniquely'." (:opstring "renamed" :modifier-p t) (rename-uniquely)) -;;;###autoload (autoload 'ibuffer-do-revert "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-revert "ibuf-ext") (define-ibuffer-op revert () "Revert marked buffers as with `revert-buffer'." (:dangerous t @@ -405,7 +405,7 @@ :modifier-p :maybe) (revert-buffer t t)) -;;;###autoload (autoload 'ibuffer-do-replace-regexp "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-replace-regexp "ibuf-ext") (define-ibuffer-op replace-regexp (from-str to-str) "Perform a `replace-regexp' in marked buffers." (:interactive @@ -425,7 +425,7 @@ (replace-match to-str)))) t)) -;;;###autoload (autoload 'ibuffer-do-query-replace "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-query-replace "ibuf-ext") (define-ibuffer-op query-replace (&rest args) "Perform a `query-replace' in marked buffers." (:interactive @@ -441,7 +441,7 @@ (apply #'query-replace args))) t)) -;;;###autoload (autoload 'ibuffer-do-query-replace-regexp "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-query-replace-regexp "ibuf-ext") (define-ibuffer-op query-replace-regexp (&rest args) "Perform a `query-replace-regexp' in marked buffers." (:interactive @@ -457,7 +457,7 @@ (apply #'query-replace-regexp args))) t)) -;;;###autoload (autoload 'ibuffer-do-print "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-print "ibuf-ext") (define-ibuffer-op print () "Print marked buffers as with `print-buffer'." (:opstring "printed" @@ -969,7 +969,7 @@ ;;; Extra operation definitions -;;;###autoload (autoload 'ibuffer-filter-by-mode "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-mode "ibuf-ext") (define-ibuffer-filter mode "Toggle current view to buffers with major mode QUALIFIER." (:description "major mode" @@ -987,7 +987,7 @@ ""))))) (eq qualifier (with-current-buffer buf major-mode))) -;;;###autoload (autoload 'ibuffer-filter-by-used-mode "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-used-mode "ibuf-ext") (define-ibuffer-filter used-mode "Toggle current view to buffers with major mode QUALIFIER. Called interactively, this function allows selection of modes @@ -1006,14 +1006,14 @@ ""))))) (eq qualifier (with-current-buffer buf major-mode))) -;;;###autoload (autoload 'ibuffer-filter-by-name "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-name "ibuf-ext") (define-ibuffer-filter name "Toggle current view to buffers with name matching QUALIFIER." (:description "buffer name" :reader (read-from-minibuffer "Filter by name (regexp): ")) (string-match qualifier (buffer-name buf))) -;;;###autoload (autoload 'ibuffer-filter-by-filename "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-filename "ibuf-ext") (define-ibuffer-filter filename "Toggle current view to buffers with filename matching QUALIFIER." (:description "filename" @@ -1027,7 +1027,7 @@ (expand-file-name dired-directory)))) (string-match qualifier it))) -;;;###autoload (autoload 'ibuffer-filter-by-size-gt "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-size-gt "ibuf-ext") (define-ibuffer-filter size-gt "Toggle current view to buffers with size greater than QUALIFIER." (:description "size greater than" @@ -1036,7 +1036,7 @@ (> (with-current-buffer buf (buffer-size)) qualifier)) -;;;###autoload (autoload 'ibuffer-filter-by-size-lt "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-size-lt "ibuf-ext") (define-ibuffer-filter size-lt "Toggle current view to buffers with size less than QUALIFIER." (:description "size less than" @@ -1045,7 +1045,7 @@ (< (with-current-buffer buf (buffer-size)) qualifier)) -;;;###autoload (autoload 'ibuffer-filter-by-content "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-content "ibuf-ext") (define-ibuffer-filter content "Toggle current view to buffers whose contents match QUALIFIER." (:description "content" @@ -1055,7 +1055,7 @@ (goto-char (point-min)) (re-search-forward qualifier nil t)))) -;;;###autoload (autoload 'ibuffer-filter-by-predicate "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-filter-by-predicate "ibuf-ext") (define-ibuffer-filter predicate "Toggle current view to buffers for which QUALIFIER returns non-nil." (:description "predicate" @@ -1094,7 +1094,7 @@ "normal")) (ibuffer-redisplay t)) -;;;###autoload (autoload 'ibuffer-do-sort-by-major-mode "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-sort-by-major-mode "ibuf-ext") (define-ibuffer-sorter major-mode "Sort the buffers by major modes. Ordering is lexicographic." @@ -1108,7 +1108,7 @@ (car b) major-mode))))) -;;;###autoload (autoload 'ibuffer-do-sort-by-mode-name "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-sort-by-mode-name "ibuf-ext") (define-ibuffer-sorter mode-name "Sort the buffers by their mode name. Ordering is lexicographic." @@ -1122,7 +1122,7 @@ (car b) mode-name)))) -;;;###autoload (autoload 'ibuffer-do-sort-by-alphabetic "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-sort-by-alphabetic "ibuf-ext") (define-ibuffer-sorter alphabetic "Sort the buffers by their names. Ordering is lexicographic." @@ -1131,7 +1131,7 @@ (buffer-name (car a)) (buffer-name (car b)))) -;;;###autoload (autoload 'ibuffer-do-sort-by-size "ibuf-ext.el") +;;;###autoload (autoload 'ibuffer-do-sort-by-size "ibuf-ext") (define-ibuffer-sorter size "Sort the buffers by their size." (:description "size")
--- a/lisp/info.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/info.el Sat Oct 15 00:26:05 2005 +0000 @@ -3150,8 +3150,6 @@ :help "Look for another occurrence of previous item"] ["Lookup a string in all indices..." info-apropos :help "Look for a string in the indices of all manuals"]) - ["Edit" Info-edit :help "Edit contents of this node" - :active Info-enable-edit] ["Copy Node Name" Info-copy-current-node-name :help "Copy the name of the current node into the kill ring"] ["Clone Info buffer" clone-buffer @@ -3290,18 +3288,17 @@ \\[Info-menu] Pick menu item specified by name (or abbreviation). Picking a menu item causes another node to be selected. \\[Info-directory] Go to the Info directory node. +\\[Info-top-node] Go to the Top node of this file. +\\[Info-final-node] Go to the final node in this file. +\\[Info-backward-node] Go backward one node, considering all nodes as forming one sequence. +\\[Info-forward-node] Go forward one node, considering all nodes as forming one sequence. +\\[Info-next-reference] Move cursor to next cross-reference or menu item. +\\[Info-prev-reference] Move cursor to previous cross-reference or menu item. \\[Info-follow-reference] Follow a cross reference. Reads name of reference. \\[Info-history-back] Move back in history to the last node you were at. \\[Info-history-forward] Move forward in history to the node you returned from after using \\[Info-history-back]. \\[Info-history] Go to menu of visited nodes. \\[Info-toc] Go to table of contents of the current Info file. -\\[Info-top-node] Go to the Top node of this file. -\\[Info-final-node] Go to the final node in this file. -\\[Info-backward-node] Go backward one node, considering all nodes as forming one sequence. -\\[Info-forward-node] Go forward one node, considering all nodes as forming one sequence. -\\[Info-index] Look up a topic in this file's Index and move to that node. -\\[Info-index-next] (comma) Move to the next match from a previous \\<Info-mode-map>\\[Info-index] command. -\\[info-apropos] Look for a string in the indices of all manuals. Moving within a node: \\[Info-scroll-up] Normally, scroll forward a full screen. @@ -3315,22 +3312,22 @@ \\[beginning-of-buffer] Go to beginning of node. Advanced commands: -\\[Info-copy-current-node-name] Put name of current Info node in the kill ring. -\\[clone-buffer] Select a new cloned Info buffer in another window. -\\[Info-edit] Edit contents of selected node. -1 .. 9 Pick first ... ninth item in node's menu. - Every third `*' is highlighted to help pick the right number. -\\[Info-goto-node] Move to node specified by name. - You may include a filename as well, as (FILENAME)NODENAME. -\\[universal-argument] \\[info] Move to new Info file with completion. -\\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>. \\[Info-search] Search through this Info file for specified regexp, and select the node in which the next occurrence is found. \\[Info-search-case-sensitively] Search through this Info file for specified regexp case-sensitively. \\[Info-search-next] Search for another occurrence of regexp from a previous \\<Info-mode-map>\\[Info-search] command. -\\[Info-next-reference] Move cursor to next cross-reference or menu item. -\\[Info-prev-reference] Move cursor to previous cross-reference or menu item." +\\[Info-index] Look up a topic in this file's Index and move to that node. +\\[Info-index-next] (comma) Move to the next match from a previous \\<Info-mode-map>\\[Info-index] command. +\\[info-apropos] Look for a string in the indices of all manuals. +\\[Info-goto-node] Move to node specified by name. + You may include a filename as well, as (FILENAME)NODENAME. +1 .. 9 Pick first ... ninth item in node's menu. + Every third `*' is highlighted to help pick the right number. +\\[Info-copy-current-node-name] Put name of current Info node in the kill ring. +\\[clone-buffer] Select a new cloned Info buffer in another window. +\\[universal-argument] \\[info] Move to new Info file with completion. +\\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>." (kill-all-local-variables) (setq major-mode 'Info-mode) (setq mode-name "Info") @@ -3669,23 +3666,23 @@ ((equal tag "Up") Info-up-link-keymap)))))) (when Info-use-header-line (goto-char (point-min)) - (let ((header-end (line-end-position)) - header) - ;; If we find neither Next: nor Prev: link, show the entire - ;; node header. Otherwise, don't show the File: and Node: - ;; parts, to avoid wasting precious space on information that - ;; is available in the mode line. - (if (re-search-forward - "\\(next\\|up\\|prev[ious]*\\): " - header-end t) - (progn - (goto-char (match-beginning 1)) - (setq header (buffer-substring (point) header-end))) - (if (re-search-forward "node:[ \t]*[^ \t]+[ \t]*" header-end t) - (setq header + (let* ((header-end (line-end-position)) + (header + ;; If we find neither Next: nor Prev: link, show the entire + ;; node header. Otherwise, don't show the File: and Node: + ;; parts, to avoid wasting precious space on information that + ;; is available in the mode line. + (if (re-search-forward + "\\(next\\|up\\|prev[ious]*\\): " + header-end t) + (progn + (goto-char (match-beginning 1)) + (buffer-substring (point) header-end)) + (if (re-search-forward "node:[ \t]*[^ \t]+[ \t]*" + header-end t) (concat "No next, prev or up links -- " - (buffer-substring (point) header-end))) - (setq header (buffer-substring (point) header-end)))) + (buffer-substring (point) header-end)) + (buffer-substring (point) header-end))))) (put-text-property (point-min) (1+ (point-min)) 'header-line (replace-regexp-in-string @@ -3701,9 +3698,15 @@ ;; Fontify titles (goto-char (point-min)) - (when not-fontified-p - (while (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" - nil t) + (when (and font-lock-mode not-fontified-p) + (while (and (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" + nil t) + ;; Only consider it as an underlined title if the ASCII + ;; underline has the same size as the text. A typical + ;; counter example is when a continuation "..." is alone + ;; on a line. + (= (- (match-end 1) (match-beginning 1)) + (- (match-end 2) (match-beginning 2)))) (let* ((c (preceding-char)) (face (cond ((= c ?*) 'info-title-1)
--- a/lisp/jka-cmpr-hook.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/jka-cmpr-hook.el Sat Oct 15 00:26:05 2005 +0000 @@ -281,7 +281,7 @@ ;;; in order to decide when to call it. (put 'jka-compr-handler 'safe-magic t) -(put 'jka-compr-handler 'operations '(jka-compr-byte-compiler-base-file-name +(put 'jka-compr-handler 'operations '(byte-compiler-base-file-name write-region insert-file-contents file-local-copy load))
--- a/lisp/longlines.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/longlines.el Sat Oct 15 00:26:05 2005 +0000 @@ -109,6 +109,8 @@ (add-to-list 'buffer-file-format 'longlines) (add-hook 'change-major-mode-hook 'longlines-mode-off nil t) (make-local-variable 'buffer-substring-filters) + (set (make-local-variable 'isearch-search-fun-function) + 'longlinges-search-function) (add-to-list 'buffer-substring-filters 'longlines-encode-string) (when longlines-wrap-follows-window-size (set (make-local-variable 'fill-column) @@ -148,6 +150,7 @@ 'longlines-window-change-function t) (when longlines-wrap-follows-window-size (kill-local-variable 'fill-column)) + (kill-local-variable 'isearch-search-fun-function) (kill-local-variable 'require-final-newline) (kill-local-variable 'buffer-substring-filters) (kill-local-variable 'use-hard-newlines))) @@ -381,6 +384,27 @@ (longlines-wrap-region (point-min) (point-max)) (set-buffer-modified-p mod)))) +;; Isearch + +(defun longlinges-search-function () + (cond + (isearch-word + (if isearch-forward 'word-search-forward 'word-search-backward)) + (isearch-regexp + (if isearch-forward 're-search-forward 're-search-backward)) + (t + (if isearch-forward + 'longlines-search-forward + 'longlines-search-backward)))) + +(defun longlines-search-forward (string &optional bound noerror count) + (let ((search-spaces-regexp "[ \n]")) + (re-search-forward (regexp-quote string) bound noerror count))) + +(defun longlines-search-backward (string &optional bound noerror count) + (let ((search-spaces-regexp "[ \n]")) + (re-search-backward (regexp-quote string) bound noerror count))) + ;; Loading and saving (add-to-list
--- a/lisp/mail/supercite.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mail/supercite.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; 2005 Free Software Foundation, Inc. ;; Author: 1993 Barry A. Warsaw <bwarsaw@python.org> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Created: February 1993 ;; Last Modified: 1993/09/22 18:58:46 ;; Keywords: mail, news
--- a/lisp/makefile.w32-in Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/makefile.w32-in Sat Oct 15 00:26:05 2005 +0000 @@ -179,7 +179,7 @@ $(srcdir)/update-subdirs $$file; \ done; -updates: update-subdirs autoloads finder-data custom-deps +updates: update-subdirs autoloads mh-autoloads finder-data custom-deps # Update the AUTHORS file. @@ -210,7 +210,7 @@ # compiled find the right files. # Need separate version for sh and native cmd.exe -compile: subdirs.el compile-$(SHELLTYPE) doit +compile: subdirs.el mh-autoloads compile-$(SHELLTYPE) doit compile-CMD: # -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g @@ -285,9 +285,47 @@ # Note that this doesn't create .elc files. It only recompiles if an # .elc is present. -recompile: doit +recompile: mh-autoloads doit $(emacs) -f batch-byte-recompile-directory $(lisp) +# Update MH-E internal autoloads. These are not to be confused with +# the autoloads for the MH-E entry points, which are already in +# loaddefs.el. +MH_E_SRC = $(lisp)/mh-e/mh-acros.el $(lisp)/mh-e/mh-alias.el \ + $(lisp)/mh-e/mh-comp.el $(lisp)/mh-e/mh-customize.el \ + $(lisp)/mh-e/mh-e.el $(lisp)/mh-e/mh-funcs.el \ + $(lisp)/mh-e/mh-mime.el $(lisp)/mh-e/mh-pick.el \ + $(lisp)/mh-e/mh-print.el $(lisp)/mh-e/mh-inc.el \ + $(lisp)/mh-e/mh-init.el $(lisp)/mh-e/mh-index.el \ + $(lisp)/mh-e/mh-identity.el $(lisp)/mh-e/mh-junk.el \ + $(lisp)/mh-e/mh-seq.el $(lisp)/mh-e/mh-speed.el \ + $(lisp)/mh-e/mh-utils.el + +mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el +$(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC) + echo ";;; mh-loaddefs.el --- automatically extracted autoloads" > $@ + echo ";;" >> $@ + echo ";;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc." >> $@ + echo ";;; Author: Bill Wohler <wohler@newt.com>" >> $@ + echo ";;; Keywords: mail" >> $@ + echo ";;; Commentary:" >> $@ + echo ";;; Change Log:" >> $@ + echo ";;; Code:" >> $@ + $(EMACS) $(EMACSOPT) \ + -l autoload \ + --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ + --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \ + --eval "(setq make-backup-files nil)" \ + -f batch-update-autoloads $(lisp)/mh-e + echo "" >> $@ + echo "(provide 'mh-loaddefs)" >> $@ + echo ";;; Local Variables:" >> $@ + echo ";;; version-control: never" >> $@ + echo ";;; no-byte-compile: t" >> $@ + echo ";;; no-update-autoloads: t" >> $@ + echo ";;; End:" >> $@ + echo ";;; mh-loaddefs.el ends here" >> $@ + # Prepare a bootstrap in the lisp subdirectory. # # Build loaddefs.el to make sure it's up-to-date. If it's not, that @@ -319,7 +357,7 @@ # When done, remove bootstrap-emacs from ../bin, so that # it will not be mistaken for an installed binary. -bootstrap: update-subdirs autoloads compile finder-data custom-deps +bootstrap: update-subdirs autoloads mh-autoloads compile finder-data custom-deps - $(DEL) $(EMACS) #
--- a/lisp/mh-e/.cvsignore Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/.cvsignore Sat Oct 15 00:26:05 2005 +0000 @@ -1,1 +1,2 @@ +mh-autoloads.el mh-loaddefs.el
--- a/lisp/mh-e/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,11339 +1,33 @@ -2005-09-30 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-refile-msg, mh-tool-bar-reply-from) - (mh-tool-bar-reply-to, mh-tool-bar-reply-all) - (mh-alias-grab-from-field, mh-pack-folder): Image files moved to - etc/images/mail so added "mail/" prefix. - (mh-reply): Ditto. Also renamed reply2.* to reply.*. - (mh-rescan-folder): Ditto. Renamed image file to refresh.* since - it can be used in the general sense. Does not have "mail/" - prefix. - -2005-09-24 Emilio C. Lopes <eclig@gmx.net> - - * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw): - * mh-comp.el (mh-insert-letter): - * mh-utils.el (mh-prompt-for-folder): - Follow convention for reading with the minibuffer. - -2005-09-19 Juanma Barranquero <lekktu@gmail.com> - - * mh-print.el (mh-ps-print-msg-show): Fix misplaced parenthesis in - previous change. - -2005-09-18 D Goel <deego@gnufans.org> - - * mh-alias.el (mh-alias-ali): Fix `message' call: first arg - should be a format spec. - - * mh-print.el (mh-ps-spool-buffer, mh-ps-spool-a-msg) - (mh-ps-print-msg, mh-ps-print-msg-show): Ditto. - - * mh-mime.el (mh-toggle-mh-decode-mime-flag): Ditto. - - * mh-index.el (mh-index-sequenced-messages): Ditto. - - * mh-e.el (mh-refile-or-write-again, mh-page-msg): Ditto. - - * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) - (mh-spamassassin-blacklist, mh-spamassassin-whitelist): Ditto. - -2005-08-15 Dan Nicolaescu <dann@ics.uci.edu> - - * mh-customize.el: Do not use face-alias compatibility for - faces that did not appear in the previous Emacs release. - -2005-08-10 Lars Hansen <larsh@soem.dk> - - * mh-e.el: Add handler to desktop-buffer-mode-handlers. - (mh-restore-desktop-buffer): Remove autoload cookie. - (mh-folder-mode): Add autoload cookie. - -2005-07-04 Lute Kamstra <lute@gnu.org> - - Update FSF's address in GPL notices. - -2005-06-17 Lute Kamstra <lute@gnu.org> - - * mh-customize.el (mh-folder-body-face, mh-folder-cur-msg-face) - (mh-folder-cur-msg-number-face): New backward-compatibility - aliases for renamed faces. - -2005-06-17 Miles Bader <miles@gnu.org> - - * mh-customize.el (mh-folder-body, mh-folder-cur-msg) - (mh-folder-cur-msg-number, mh-folder-date, mh-folder-followup) - (mh-folder-msg-number, mh-folder-refiled, mh-folder-subject) - (mh-folder-tick, mh-folder-to, mh-index-folder) - (mh-letter-header-field, mh-show-cc, mh-show-date) - (mh-show-header, mh-show-pgg-good, mh-show-pgg-unknown) - (mh-show-pgg-bad, mh-show-signature, mh-show-to, mh-show-from) - (mh-show-xface, mh-speedbar-folder, mh-speedbar-selected-folder) - (mh-speedbar-folder-with-unseen-messages) - (mh-speedbar-selected-folder-with-unseen-messages) - (mh-folder-msg-number, mh-folder-subject, mh-folder-followup) - (mh-folder-subject): Remove "-face" suffix from face names. - (mh-folder-body, mh-folder-cur-msg, mh-folder-cur-msg-number) - (mh-folder-date-face, mh-folder-followup-face) - (mh-folder-msg-number-face, mh-folder-refiled-face) - (mh-folder-subject-face, mh-folder-tick-face, mh-folder-to-face) - (mh-index-folder-face, mh-letter-header-field-face) - (mh-show-cc-face, mh-show-date-face, mh-show-header-face) - (mh-show-pgg-good-face, mh-show-pgg-unknown-face) - (mh-show-pgg-bad-face, mh-show-signature-face, mh-show-to-face) - (mh-show-from-face, mh-show-xface-face, mh-speedbar-folder-face) - (mh-speedbar-selected-folder-face) - (mh-speedbar-folder-with-unseen-messages-face) - (mh-speedbar-selected-folder-with-unseen-messages-face): - New backward-compatibility aliases for renamed faces. - (mh-folder-body-face, mh-folder-cur-msg-face) - (mh-folder-cur-msg-number-face, mh-folder-date-face) - (mh-folder-followup-face, mh-folder-msg-number-face) - (mh-folder-deleted-face, mh-folder-refiled-face) - (mh-folder-subject-face, mh-folder-address-face) - (mh-folder-scan-format-face, mh-folder-to-face) - (mh-index-folder-face, mh-show-cc-face, mh-show-date-face) - (mh-show-header-face, mh-show-pgg-good-face) - (mh-show-pgg-unknown-face, mh-show-pgg-bad-face) - (mh-show-to-face, mh-show-from-face, mh-show-subject-face) - (mh-speedbar-folder-with-unseen-messages) - (mh-speedbar-selected-folder-with-unseen-messages): - Use renamed MH-E faces. - - * mh-utils.el (mh-letter-font-lock-keywords) - (mh-face-display-function): Use renamed MH-E faces. - * mh-speed.el (mh-folder-speedbar-buttons) - (mh-speed-update-current-folder, mh-speed-normal-face) - (mh-speed-bold-face, mh-speed-add-buttons) - (mh-speed-invalidate-map): Likewise. - * mh-mime.el (mh-signature-highlight): Likewise. - -2005-06-16 Juanma Barranquero <lekktu@gmail.com> - - * mh-comp.el (mh-send-sub): - * mh-identity.el (mh-identity-field-handler): - * mh-mime.el (mh-secure-message): - Don't use `format' on `error' arguments. - -2005-06-14 Juanma Barranquero <lekktu@gmail.com> - - * mh-mime.el (mh-secure-message): Follow error conventions. - -2005-05-28 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.84. - - * MH-E-NEWS, README: Updated for release 7.84. - - * mh-e.el (Version, mh-version): Updated for release 7.84. - -2005-05-28 Bill Wohler <wohler@newt.com> - - * mh-e.el, mh-comp.el: Don't autoload Info-goto-node. It's not - used, and if it were, the code should use the info function - instead. - - Use full year in copyright notices (for example, 2005, not 05). - - * Makefile (mh-loaddefs.el, mh-e-autoloads.el): Added 2005 to - copyright notice. - - * mh-inc.el: Use three ;;; to precede Local Variables to be - consistent with other files. Will have to ask Stefan Monnier why - he changed it. - - * README: This version of MH-E to appear in GNU Emacs 22.1, not - 21.5. - - * ChangeLog: The * in a ChangeLog entry must only be used before a - filename. - - Fixed compilation warnings in CVS Emacs. This included using - "public" functions instead of "private" ones (info instead of - Info-goto-node, view-mode-enter instead of view-mode), and - removing a customization group that didn't have a parent group. In - addition, string-to-int was recently deprecated; use - string-to-number instead. - - * mh-customize.el (Info-goto-node): Deleted autoload. - (mh-e): Deleted mh group. Use single mh-e group instead. - (mh-tool-bar-folder-help, mh-tool-bar-letter-help): Use info - instead of Info-goto-node. - - * mh-e.el (mh-read-msg-list): string-to-int deprecated; use - string-to-number. - - * mh-funcs.el (mh-list-folders): Use view-mode-enter instead of - view-mode. - - * mh-seq.el (mh-list-sequences): Use view-mode-enter instead of - view-mode. - - * mh-utils.el (mh-get-msg-num): string-to-int deprecated; use - string-to-number. - - Merged in changes from CVS Emacs including: - - * mh-utils.el (mh-show-mode): - * mh-pick.el (mh-pick-mode): Remove spurious run-hooks. Lute - Kamstra <lute@gnu.org> 2005-05-26. - -2005-05-25 Bill Wohler <wohler@newt.com> - - Merged in changes from CVS Emacs including: - - * mh-customize.el (mh-speedbar-selected-folder-face): Special case - high number of colors displays. Dan Nicolaescu <dann@ics.uci.edu> - 2005-04-08. - - * mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with - `valid'. Replace `illegal' with `invalid'. Werner Lemberg - <wl@gnu.org> 2005-03-25. - - * mh-inc.el (mh-inc-spool-list): Correctly declare the external - var. Stefan <monnier@iro.umontreal.ca> 2004-09-07. - -2005-05-18 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-reply): Mention use of mh-repl-group-formfile in - docstring. - -2005-05-05 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Added +cvs to release number. - -2005-05-05 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.83. - - * MH-E-NEWS, README: Updated for release 7.83. - - * mh-e.el (Version, mh-version): Updated for release 7.83. - -2005-05-05 Bill Wohler <wohler@newt.com> - - * README: To appear in Emacs 21.5, since 21.4 was released (but - without the latest MH-E). - - * release-utils (usage): Added --variable-changes. - -2005-05-04 Bill Wohler <wohler@newt.com> - - * mh-customize.el (*-face): Made docstrings consistent. - - * mh-seq.el (mh-pick-args-list): Extracted function for turning - string of pick arguments to list. Fixed list so that multi-word - arguments were put in a single string (closes SF #1122655). - (mh-edit-pick-expr): Use it. - - * mh-unit.el (mh-unit): Since 21.4 snuck out but didn't contain - updated lm-verify, don't run lm-verify on versions before 21.5. - (mh-unit-test-pick-args-list): Added. - - * mh-customize.el (mh-yank-from-start-of-msg): Use headline - capitalization. Changed wording of some choices to be more consistent. - (mh-invisible-header-fields-internal): Added fields from usa.net. - -2005-04-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-mime-security-button-face): New function which - determines the face to use to colorize encrypted or signed emails. - (mh-insert-mime-security-button): Modified to colorize the button - differently based on whether the signature was valid or not, - whether the decryption was successful or not, etc. - - * mh-customize.el (mh-show-pgg-good-face) - (mh-show-pgg-unknown-face, mh-show-pgg-bad-face): Faces added to - highlight buttons introduced for encrpted or signed MIME parts. - -2005-03-19 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-mml-method-default): Sorted alphabetically. - (mh-insert-x-mailer-flag, mh-reply-show-message-flag): Moved from - mh-letter group to mh-sending-mail group. The writing of the - documentation revealed that these options were misplaced. - -2005-03-17 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-junk-background): Put in alphabetical order. - Synced with manual. - (mh-junk-program): Use double-quotes on non-symbols. - - * mh-pick.el: (mh-search-folder): Synced docstrings with manual. - - * mh-index.el: (mh-index-search, mh-pick-execute-search) - (mh-grep-execute-search, mh-mairix-execute-search) - (mh-swish-execute-search, mh-swish++-execute-search) - (mh-namazu-execute-search): Synced docstrings with manual. Note - that I'm now grabbing the output of an Info buffer which is why - the indents on the examples has changed a bit. If we all use that - methodology in the future, we shouldn't produce as many gratuitous - diffs. I also noticed that `grep' and `search' became links to - unrelated things, so let's use double-quotes for quoting - non-symbols in the docstrings. - - * mh-customize.el (mh-index-new-messages-folders) - (mh-index-ticked-messages-folders): Synced docstrings with manual. - -2005-02-16 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-swish-execute-search): Simplify the indexing - recipe for swish. Thanks to Eric Jensen for the suggestion. - -2005-02-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-swish-execute-search) - (mh-swish++-execute-search): Make the indexing recipes better. - (mh-swish-next-result): The indexer might find matches in files - that aren't messages. Make the function handle that case - gracefully. - -2005-02-07 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-inc-prog, mh-inc-spool-list): Synced - docstrings with manual. - -2005-02-06 Bill Wohler <wohler@newt.com> - - * mh-junk.el (mh-spamassassin-blacklist): Removed trailing - whitespace. - - * mh-e.el (mh-refile-or-write-again): Checkdoc fix. - - * mh-identity.el (mh-identity-list-set) - (mh-identity-field-handler, mh-identity-handler-gpg-identity) - (mh-identity-handler-signature) - (mh-identity-handler-attribution-verb) - (mh-identity-handler-default, mh-identity-handler-top): Docstring - editing. - - * mh-customize.el (mh-identity-list, mh-auto-fields-list) - (mh-identity-default, mh-identity-handlers): Synced docstrings - with manual. - -2005-02-03 Bill Wohler <wohler@newt.com> - - * mh-xemacs.el (define-behavior 'mh): Moved Ben's code here from - mh-e.el and added standard documentation. - - * mh-e.el: Received patch from Ben Wing <ben@666.com> to add - define-behavior on XEmacs. - -2005-01-28 Jeffrey C Honig <jch@honig.net> - - * mh-customize.el (mh-invisible-header-fields-internal): Added - X-Evolution header added by Evolution mai client. - -2005-01-18 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-invisible-header-fields-internal): Added - DomainKey-Signature (http://antispam.yahoo.com/domainkeys/). - There's a Comment field that goes with it, but I thought it was - too general to add. - -2005-01-06 Bill Wohler <wohler@newt.com> - - * mh-junk.el (mh-spamassassin-blacklist): Fixed typo to fix an - error when junking spamassassin mail when mh-junk-background is - turned on. - -2004-12-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-show-unquote-From): Make the buffer writable - before trying to change it (closes SF #1089870). - - * mh-comp.el (mh-complete-word): Fix a typo in a variable - name (closes SF #1089870) - -2004-11-28 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-complete-word): Kill the *Completions* buffer in - any cases where we belive we are done with it. Not perfect, but - better than just leaving it around. - -2004-11-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-acros.el (mh-funcall-if-exists): In XEmacs, presence of a - function at compile time doesn't guarantee it's existence at run - time. So make the macro handle that situation better. - -2004-11-05 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-acros.el (advice): Load advice, since it isn't loaded in - XEmacs causing compilation problems. - -2004-10-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-mairix-execute-search) - (mh-mairix-regexp-builder): Update the interface to mairix so that - it will work with versions of mairix 0.12 and later. - - * mh-funcs.el (mh-rmf-daemon): Avoid using - beginning-of-buffer since it clobbers the mark and it was pointed - out on the Emacs developers list to be the wrong thing to do. - - * mh-e.el (mh-inc-folder): Only remove the window on the show - buffer. This means if the user has BBDB enabled then the window - displaying BBDB information isn't clobbered. - (mh-refile-or-write-again): Don't use the function - interactive-p. There was a long thread on the Emacs developers - list where it was pointed out that it is incorrect to use this - function most of the time. - - * mh-comp.el (autoload): Don't set auto-mode-alist. This could - screw things up for users that don't use MH-E (closes SF #1032353). - -2004-10-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-refile-or-write-again): Generalize the function to - work on a range of messages (closes SF #1046330). - -2004-09-02 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-process-commands): The concurrent execution of mark - and refile can cause problems since both the commands change the - current folder. This change avoids that by getting rid of the - concurrency. Another change covers the corner case where we refile - messages to a previously empty folder. Before the modification - sequences weren't preserved even if the appropriate flag was - set. That is no longer the case. - -2004-08-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-get-new-mail): Also, update the unseen sequence from - disk. Otherwise, the new messages aren't highlighted. - - * mh-seq.el (mh-thread-inc): Fix a bug which appears when inc is - run in a narrowed folder. The user sequence notation was getting - lost. The change fixes that. - - * mh-e.el (mh-get-new-mail): Make inc more efficient by reusing - the existing user sequence notation and deleted/refiled notation. - -2004-08-24 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Added +cvs to release number. - -2004-08-24 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.82. - - * MH-E-NEWS, README: Updated for release 7.82. - - * mh-e.el (Version, mh-version): Updated for release 7.82. +2005-10-14 Bill Wohler <wohler@newt.com> -2004-08-24 Bill Wohler <wohler@newt.com> - - * mh-init.el (mh-variant-set): Change MH to mh as that's what is - emitted by `mh-variant-mh-info' (closes SF #1014781). - (mh-variant-p): Add mu-mh to docstring. - -2004-08-23 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-acros.el (mh-require-cl): Remove unneeded autoloads. - (require): Add an advice to the function so that at compile time - the uncompiled file is loaded. This avoids compilation problems - when built in the Emacs tree. - - * mh-mime.el (mh-identity-pgg-default-user-id): Defvar the - variable, to avoid compiler warnings. - - * mh-e.el (mh-seq): Load mh-seq since functions defined there are - used here. Without this, the state mh-seq.elc would be loaded. - - * mh-customize.el (mh-init, mh-identity): Load mh-init and - mh-identity at compile time manually, before the corresponding - stale elc files get autoloaded. - -2004-08-21 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Add +cvs to release number. - -2004-08-21 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.81. - - * MH-E-NEWS, README: Updated for release 7.81. - - * mh-e.el (Version, mh-version): Updated for release 7.81. - -2004-08-21 Bill Wohler <wohler@newt.com> - - * release-utils (variable_changes): Check for checked-out - directory before proceeding. Remove temporary files. - Rename --variable-update flag to --variable-changes. - -2004-08-16 Mark D. Baushke <mdb@gnu.org> - - * mh-mime.el (mh-toggle-mh-decode-mime-flag: New function. - * mh-e.el (mh-help-messages): Add [;] help string for it. - (mh-folder-mode-map): Add ";" key binding for it. - -2004-08-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-acros.el (mh-defstruct): Distinguishing structures created - by mh-defstruct just based on the number of fields is not - sufficient, since both the mh-thread-message and - mh-thread-container structures have the same length. - -2004-08-15 Mark D. Baushke <mdb@gnu.org> - - * mh-customize.el (mh-identity-handlers): Use ":default" instead of - "default" to avoid problems with "Default:" as a user defined field. - * mh-identity.el (mh-identity-field-handler): Ditto. - -2004-08-15 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Added +cvs to release number. - -2004-08-15 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.4.80. - - * MH-E-NEWS, README: Updated for release 7.4.80. - - * mh-e.el (Version, mh-version): Updated for release 7.4.80. - -2004-08-15 Bill Wohler <wohler@newt.com> - - * mh-funcs.el, mh-gnus.el, mh-inc.el, mh-init.el, mh-junk.el, - mh-pick.el, mh-print.el, mh-xemacs.el: Added 2004 to Copyright. - - * mh-acros.el, mh-alias.el: Checkdoc fixes. - -2004-08-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-acros.el (cl): Load cl in this file. That is all right, since - this file is only used at compile time, and so cl doesn't get - loaded at run time. This avoids problems with stale *.elc files - present in the Emacs source tree during compilation. - (mh-defstruct): Modify it to make it more CL like and in the - process simplify it a bit. This makes the argument list of the - constructor compatible with the previous version, thereby avoiding - a compilation error when an old version of mh-seq.elc is present. - - * mh-seq.el (mh-thread-id-container, mh-thread-get-message) - (mh-thread-get-message-container): Revert back to the CL style - of using keyword arguments, since the mh-defstruct now produces - code compatible to such usage. - -2004-08-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-acros.el (mh-defstruct, mh-require-cl): Checkdoc fixes. - - * mh-utils.el (message-tokenize-header, message-fetch-field): Add - autoloads. - (mh-folder-completing-read): Make the folder completion look - better with CVS Emacs. - - * mh-init.el (mh-variant-set): Remove dead code. - -2004-08-11 Bill Wohler <wohler@newt.com> - - * *.el: Use the following at the top of each file which seems to - do a good job of suppressing compilation warnings in 21.3 and CVS - Emacs (21.4). This replaces (require 'cl) or (require - 'utils) (mh-require-cl) calls: - - (eval-when-compile (require 'mh-acros)) - (mh-require-cl) - -2004-08-10 Bill Wohler <wohler@newt.com> - - * release-utils (DESCRIPTION): Added one. - (FILES, SEE ALSO, VERSION): Deleted empty and incorrect sections. - - * mh-e.el (mh-colors-available-p): Call x-display-color-cells with - mh-funcall-if-exists since it no longer seems to be defined in - GNU Emacs 21.4. - -2004-08-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-process-kill-without-query, mh-speed-flists): - Avoid a compiler warning in versions of Emacs where - process-kill-without-query is a deprecated function. - - * mh-seq.el (mh-thread-message, mh-thread-container): Use - mh-defstruct instead of defstruct. - (mh-thread-id-container, mh-thread-get-message-container) - (mh-thread-get-message): Use the slightly different structure - constructor function. - - * mh-acros.el (mh-defstruct): New macro which is a partial - replacement of the defstruct in CL. - (no-byte-compile): Don't compile the file since it isn't loaded at - run time, so efficiency isn't an issue. - - * mh-utils.el (mh-buffer-data): Use mh-defstruct instead of - defstruct. - -2004-08-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-funcs.el, mh-junk.el, mh-print.el: Use mh-require-cl to avoid - compilation warnings in Emacs-21.3. - - * mh-acros.el (mh-require-cl): Add autoloads of CL functions used. - -2004-08-09 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-show-use-xface-flag): Mention that `fetch' and - `curl' are supported as well. - -2004-08-08 Bill Wohler <wohler@newt.com> - - * mh-xemacs.el (mh-xemacs-has-toolbar-flag): Checkdoc fixes. - - * mh-mime.el (mh-display-with-external-viewer): Checkdoc fixes. - - * mh-identity.el: (mh-identity-attribution-verb-end): Stripped - trailing space; checkdoc fixes. - - * mh-e.el (mh-restore-desktop-buffer): Checkdoc fixes. - - * mh-customize.el: (mh-inc-spool-list, - mh-compose-forward-as-mime-flag, defcustom): Stripped trailing - space; checkdoc fixes. - - * mh-comp.el (mh-reply): Stripped trailing space. - - * mh-unit.el (mh-unit-files): Added mh-acros.el and mh-gnus.el. - (mh-unit): Don't lm-verify pre-21.4. Save buffers before killing - since we might have done some editing. - - * import-emacs: Deleted. Functionality subsumed by release-utils. - - * release-utils: New script. Performs import-emacs functionality - and displays new and deleted options. - - * Makefile (import-emacs): Call release-utils instead of - import-emacs. - - * mh-funcs.el (mh-undo-folder): Removed deprecated `ignore' - argument. - - * mh-e.el (mh-scan-date-regexp): Deleted as Peter claims it is - obsolete. - (mh-folder-font-lock-keywords): Removed reference to deleted - variable `mh-scan-date-regexp'. - - * mh-customize.el (mh-auto-fields-prompt-flag): Made reference to - `mh-auto-fileds-lists'. - (mh-forward-hook): Fixed docstring typo. - -2004-08-07 Bill Wohler <wohler@newt.com> - - * mh-acros.el: New file. Currently holds macros needed by - mh-customize.el but is planned to hold all macros to avoid - dependency problems when compiling. - - * mh-utils.el (mh-xemacs-flag): Defined in mh-customize.el now. - (mh-require-cl, mh-do-in-gnu-emacs, mh-do-in-xemacs) - (mh-funcall-if-exists, mh-make-local-hook, mh-mark-active-p): - Moved to new file mh-acros.el. - - * mh-customize.el: Require mh-acros and cl only when compiling and - mh-loaddefs at runtime instead of mh-utils. - (mh-xemacs-flag): Define it here instead of mh-utils.el. - - * Makefile (MH-E-SRC): Added mh-acros.el. - - * mh-gnus.el (default-enable-multibyte-characters): Don't define - any more. It doesn't seem to be needed. - - * mh-customize.el (mh-junk-background): New variable. If on, spam - programs are run in background. Running in foreground can be slow. - Defaults to nil to spare machines with little memory. - - * mh-junk.el (mh-spamassassin-blacklist, mh-bogofilter-blacklist) - (mh-bogofilter-whitelist, mh-spamprobe-blacklist) - (mh-spamprobe-whitelist): Use new option mh-junk-background. - -2004-07-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-folder-completing-read): In recent CVS Emacs, - the first letter of the possible choices in the completion buffer - is highlighted. The change is needed for this feature to work - during folder name completion. This is not entirely sufficient, - since the leading "+" in folder names is still mishandled. A patch - is required in Emacs itself to address that. - -2004-07-22 Mark D. Baushke <mdb@gnu.org> - - * mh-e.el (recursive-load-depth-limit): Move - recursive-load-depth-limit code to ... - * mh-utils.el (recursive-load-depth-limit): ... here to avoid - problems compiling mh-utils.el and mh-alias.el with gnus-5.10.6 - under emacs-21.1. Use eval-and-compile instead of eval-when. - -2004-07-20 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-invisible-header-fields-internal): Added - header fields emitted by T-Mobile picture phones (X-Mms-*, and - commented out X-Operator field saying it's like X-Mailer). - -2004-07-12 Bill Wohler <wohler@newt.com> - - * mh-gnus.el: Set local variables indent-tabs-mode and - sentence-end-double-space to nil. - - * mh-customize.el: Checkpoint from option docstring updates and - manual synchronization from last summer. For the options listed - below, docstring was usually completely rewritten. Use "on" - instead of "t" in docstring to match what is seen in customization - buffer. Use headline capitalization. Standardize on "Auto-detect" - text when option has that capibility. - (mh): Since we work on more than one type of Emacs, use Emacs - instead of GNU Emacs. Prefer GNU mailutils over GNU Mailutils. - (mh-variant): s/Autodetect at startup/Auto-detect/. - (mh-alias-insertion-location): s/Sorted - alphabetically/Alphabetical/. s/At the top of file/Top/. s/At the - bottom of file/Bottom/. - (mh-alias-local-users-prefix): s/Use login instead of real - name/Use Login/. - (mh-identity-list): Sorted values by fields, attribution, - signature, GPG key. - (mh-auto-fields-list): Missing quote. - (mh-compose-insertion): s/Use Gnus/Gnus/. s/Use mhn/mhn/. - (mh-compose-space-does-completion-flag): s/SPACE/<SPC>/. - (mh-extract-from-attribution-verb): Since we have French, added - German too ;-). - (mh-letter-complete-function): Mention default in docstring. - (mh-invisible-header-fields-internal): Added X-ELNK-Trace from - Earthlink. - (mh-alias-flash-on-comma, mh-alias-insert-file) - (mh-alias-passwd-gecos-comma-separator-flag) - (mh-recenter-summary-flag, mh-default-folder-for-message-function) - (mh-default-folder-must-exist-flag, mh-index-program) - (mh-index-ticked-messages-folders, mh-ins-buf-prefix) - (mh-delete-yanked-msg-window-flag, mh-identity-default): See - summary above. - - * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-mu-mh-info): - Prefer GNU mailutils over GNU Mailutils MH. - - * mh-comp.el (sc-cite-original, mh-smail, mh-smail-batch) - (mh-edit-again, mh-extract-rejected-mail, mh-forward) - (mh-smail-other-window, mh-reply, mh-send, mh-send-other-window): - Use `mh-send' instead of \\[mh-send]] since links in the docstring - are more useful than a key sequence in these cases. Use "See also" - instead of "See also documentation for". - - Merged in 7.4.4 changes, described below. - - * mh-e.el (Version, mh-version): Set to 7.4.4+cvs. - -2004-07-10 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.4.4. - - * MH-E-NEWS, README: Updated for release 7.4.4. - - * mh-e.el (Version, mh-version): Updated for release 7.4.4. - - This patch release contains the following patches: - - * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el - and mh-xemacs-icons.el which were removed since their names - exceeded DOS 8+3 limits. - - * Makefile: - (mh-e-autoloads.el): Add target to make `mh-e-autoloads.el', a - file containg usual entry commands into MH-E to be used for users - installing MH-E separately from Emacs. - (XEMACS_LOADDEFS_FILE): New. Used to generate mh-loaddefs.el - in XEmacs. - (XEMACS_LOADDEFS_COOKIE): Ditto. - (XEMACS_LOADDEFS_PKG_NAME): Ditto. - (XEMACS_OPTIONS): Add '-no-autoloads' to give a cleaner build - environment. - (MH-E-SRC): Moved mh-xemacs.el to new variable MH-E-XEMACS-SRC. - (MH-E-XEMACS-SRC): New variable to hold XEmacs source files. - (MH-E-XEMACS-OBJ): New variable to hold XEmacs object files. - (clean): Moved XEmacs-specific code to clean-xemacs. - (xemacs): Added clean-xemacs prerequisite. Moved down to XEmacs - section of file. Add target to build mh-loaddefs.el in XEmacs - (loaddefs-xemacs): New rule to build mh-loaddefs.el in XEmacs. - (clean-xemacs): New target to remove XEmacs-specific files. - (compile-xemacs): New. It allows for the '-no-autoloads' option - and byte-compiles all the source files with a single instance of - XEmacs. - (dist): Added $(MH-E-XEMACS-SRC) to tarball. - (AUTO_PRELOADS): Removed, in favour of 'AUTOLOAD_PACKAGE_NAME' and - 'AUTOLOAD_FILE'. - (AUTOLOAD_PACKAGE_NAME): New. - (AUTOLOAD_FILE): New. - (all): Don't set $EMACS_HOME if building with XEmacs. - (xemacs): Use 'compile-xemacs' instead of 'compile'. - (auto-autoloads.elc): Use new $AUTOLOAD_* vars and allow for - '-no-autoloads'. - (custom-load.elc): Allow for '-no-autoloads'. - - * mh-e.el: Don't require mh-xemacs-compat which no longer exists. - The XEmacs stuff gets required by mh-customize.el which is - required by mh-utils.el which is required by mh-e.el. This all - happens before mh-xemacs-compat was required, so all should be - well. - (mh-restore-desktop-buffer): Move from desktop.el. Add Parameters. - (mh-restore-desktop-buffer): Delete with-no-warnings. - (mh-folder-mode): Bind desktop-save-buffer to t. - (Courtesy Lars Hansen). - - * mh-alias.el (mh-assoc-ignore-case): New macro to use - assoc-string when available (Emacs 21.4+); assoc-ignore-case - otherwise. - (mh-alias-reload, mh-alias-expand, - mh-alias-minibuffer-confirm-address): Use it. - - * mh-seq.el: Added mh-autoload to mh-read-seq-default. - - * mh-utils.el (mh-require-cl): The Emacs coding conventions - require that the cl package not be required at runtime. However, - the cl package in versions of Emacs prior to 21.4 left cl routines - in their macro expansions. Use mh-require-cl to provide the cl - routines in the best way possible (closes SF #930012). - (require 'mouse): To shush compiler. - - Use new function mh-require-cl throughout. - - Add arch taglines (courtesy Miles Bader). - - * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and - mh-xemacs-icons.el with mh-xemacs.el. - - * import-emacs: Also grab the ChangeLog. - - * *.pbm: Regenerated using GIMP to be consistent with other Emacs - icons. - 1. Edit .xpm image in GIMP. - 2. Image > Mode > Indexed. Check Use Black/White Palette and No - Color Dithering. - 3. File > Save As file.xbm. - 4. Run xbmtopbm < file.xbm > file.pbm. - Thanks to jan.h.d@swipnet.se for the help. - -2004-07-07 Stephen Gildea - - * mh-customize.el (mh-invisible-header-fields-internal): - Add X-Greylist, X-Source*, and X-WebTV-Signature. - Replace specific X-Spam-* headers with general pattern. - -2004-06-15 Bill Wohler <wohler@newt.com> - - * README: Vladimir Ivanovic reports that mh-rmail works with - XEmacs 21.5.17, so updated requirements text accordingly (closes - SF #644321). - -2004-05-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-mail-header-end): Replace call to - rfc822-goto-eoh with something that allows From_ lines in the mail - header. - -2004-04-14 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-show-mouse): s/EVENT/event/. Thanks to John Paul - Wallington <jpw@gnu.org> for pointing this out. - -2004-04-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-folder-size-flist): Add -showzero option so that the - parsing code doesn't get confused by the presence of -noshowzero - in the user's .mh_profile (closes SF #933954). - -2004-04-07 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-insert-mime-button) - (mh-insert-mime-security-button): Add evaporate property to - overlays used in MIME part buttons. This avoids problems with + * mh-e.el, mh-funcs.el, mh-init.el, mh-mime.el, mh-pick.el: + * mh-seq.el, mh-utils.el: Ran mh-unit. Continued copyright lines + need to be indented. + + * mh-seq.el (mh-non-seq-mode-line-annotation): Moved + make-variable-buffer-local call to top level to avoid warnings in CVS Emacs. -2004-03-16 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-folder-from-address): Go to the end of buffer if the - re-search-forward fails (closes SF #917096). - -2004-02-02 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-compose-forward-as-mime-flag): New user - customizable variable that controls whether messages are forwarded - as MIME attachments (closes SF #827203). - - * mh-comp.el (mh-forward): Call forw with -mime option only if - mh-compose-forward-as-mime-flag is non-nil. - -2003-12-26 Jeffrey C Honig <jch@honig.net> - - * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) - (mh-spamassassin-blacklist, mh-spamassassin-blacklist) - (mh-spamassassin-blacklist, mh-spamassassin-whitelist) - (mh-spamassassin-whitelist, mh-bogofilter-blacklist) - (mh-spamprobe-blacklist): Add progress messages. Change "Couldn't" - to "Unable" in error messages. Run bogofilter and spamprobe in - the foreground to prevent a large number of processes from - swamping the system. - -2003-12-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-prompt-for-refile-folder): Marking the whole folder - and then refiling all messages throws an error, since this - function expects point to be on a valid scan line. The change - relaxes this requirement, thereby avoiding the above problem. - -2003-12-14 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-ascii-buffer-p): New function that checks if a - buffer is entirely composed of ASCII. - (mh-send-letter): Encode the draft if it contains non-ASCII - characters. - -2003-12-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-invisible-headers): Keep only unique fields - in list of header fields to hide. This avoids problems in XEmacs. - -2003-12-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-print-scan-lines): The imenu index was not - getting created for threaded index buffers. The change fixes this. - - * mh-index.el (mh-index-insert-folder-headers): Always create the - imenu index. - (mh-index-create-imenu-index): Set which-func-mode to t. If - which-function-mode is turned on after the folder buffer has been - prepared, display of the folder info was being inhibited. The - change fixes that. - -2003-12-09 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-mode): Setup mh-mail-header-separator - based on draft contents. - (mh-letter-mode, mh-letter-mail-header-end-marker) - (mh-letter-header-end): Remove use of the variable - mh-letter-mail-header-end-marker. Instead use - mh-mail-header-separator. This avoids problems in font locking - draft buffers (closes SF #855479). - -2003-12-09 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-index-insert-folder-headers): Modified so that - imenu--index-alist is updated. - (mh-index-create-imenu-index): New function that generates an - index usable by imenu. This adds which-func-mode support to index - folders (closes SF #855520). - - * mh-e.el (which-func, which-func-modes): Tell which-func that - mh-folder-mode supports it. - (mh-folder-mode): Add support for imenu. - -2003-11-22 Peter S Galbraith <psg@debian.org> - - * Makefile: renamed mh-startup.el to mh-e-autoloads.el - - * README: renamed mh-startup.el to mh-e-autoloads.el - - * .cvsignore: Added mh-e-autoloads.el - -2003-11-18 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.4.3. - - * MH-E-NEWS, README: Updated for release 7.4.3. - - * mh-e.el (Version, mh-version): Updated for release 7.4.3. - - This patch release contains the following two patches: - - * mh-identity.el (mh-identity-make-menu): Removed condition on - mh-auto-fields-list. Use it to enable or disable menu item - instead. - - * mh-customize.el (mh-identity-list): Removed defvar and moved - defcustom before mh-auto-fields-list so that defvar wouldn't - clobber user's customization settings. - -2003-11-17 Jeffrey C Honig <jch@honig.net> - - * mh-print.el (mh-print-msg): Do not print a message on deprecated - usage, the bindings have been removed. - - * mh-e.el (mh-folder-mode-map): Remove "l" binding for - mh-print-msg. - - * mh-utils.el (mh-show-mode-map): Remove "l" binding for - mh-print-msg. - -2003-11-16 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-beginning-of-word): Use the function - mh-mail-abbrev-make-syntax-table instead of the function - mail-abbrev-make-syntax-table. - - * mh-gnus.el (mh-mail-abbrev-make-syntax-table): Add a wrapper - function that calls mail-abbrev-make-syntax-table if available. - This is needed so that MH-E built with CVS Emacs will work with - released versions of Emacs21 and vice versa. - -2003-11-14 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-invisible-header-fields-internal): Add - "X-NAI-Spam-" and "X-Spam-Report:". - -2003-11-14 Mark D. Baushke <mdb@gnu.org> - - * mh-customize.el (mh-invisible-header-fields-internal): - Add X-AntiAbuse and X-MailScanner. - (Patch from Stephen Gildea.) - -2003-11-13 Peter S Galbraith <psg@debian.org> - - * mh-identity.el (mh-identity-handler-attribution-verb): New - function. A new Identity handler for the attribution verb (e.g. - "wrote:") to allow for different identities to use different - languages. - (mh-identity-insert-attribution-verb): New function. Insert the - attribution verb, placing special markers so it can be deleted and - replaced later. - (mh-identity-attribution-verb-start): New variable. Holds the - marker for the start of the attribution verb. - (mh-identity-attribution-verb-end): New variable. Holds the - marker for the end of the attribution verb. - - * mh-customize.el (mh-identity-handlers): Add new - ":attribution-verb" tag for the attribution-verb handler. - (mh-identity-list): Idem. - - * mh-comp.el (mh-yank-cur-msg): Insert attribution verb using - mh-identity-insert-attribution-verb. - (mh-extract-from-attribution): Extract only the name from the From - line, without appending `mh-extract-from-attribution-verb' since - markers need to be inserted around that now. - -2003-11-12 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-rmail, mh-nmail): Well, actually, we run in both GNU - Emacs and XEmacs, so removed the "GNU" in the docstrings unless - one is strictly talking about GNU Emacs. - - * mh-comp.el (mh-smail, mh-smail-batch, mh-smail-other-window): - Ditto. - -2003-11-11 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-customize): Minor docstring change. - (mh, mh-e): The short description for MH-E is: The GNU Emacs - Interface to the MH Mail System. Therefore, updated docstrings - accordingly. - - * mh-comp.el (mh-smail, mh-smail-batch, mh-smail-other-window): - Ditto. - - * mh-e.el (mh-rmail, mh-nmail): Ditto. - -2003-11-10 Satyaki Das <satyakid@stanford.edu> - - * mh-mime.el (mh-mml-to-mime): In case errors happen in - mml-to-mime, restore contents of the draft buffer (closes SF - #839303). - -2003-11-07 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-letter-mode-hook): Moved to mh-sending-mail - group (where it is now documented in the manual). - (mh-pick-mode-hook): Moved to mh-index group (where it is now - documented in the manual). - - * mh-loaddefs.el: Deleted per our discussion on mh-e-devel. No - more conflicts! No more check-ins! Anyone pulling CVS MH-E is - expected to compile. This file shall be added to the tarball so - that users of the distribution are not. - -2003-11-07 Mark D. Baushke <mdb@gnu.org> - - * mh-loaddefs.el: Regenerated. - - * mh-customize.el (mh-forward-hook): Define new hook. - * mh-comp.el (mh-forward): Use it. - -2003-11-07 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-utils.el (mh-show-toggle-mime-buttons) - (mh-show-display-with-external-viewer): New interactive functions - callable from the show buffer. - (mh-show-mime-map): Add bindings for "K t" and "K e". - (mh-show-msg): Propagate change to - mh-display-buttons-for-inline-parts-flag to the show buffer. - - * mh-mime.el (mh-display-with-external-viewer): New interactive - function to display MIME parts with external viewer (closes SF - #839318). - - * mh-e.el (mh-folder-mode): Make the variable - mh-display-buttons-for-inline-parts-flag buffer-local so that - display of MIME buttons can be toggled. - (mh-toggle-mime-buttons): New interactive function to toggle - display of MIME buttons. - (mh-mime-map): Modified to add bindings for "K t" and "K e". - -2003-11-04 Steve Youngs <sryoungs@bigpond.net.au> - - * Makefile (XEMACS_LOADDEFS_FILE): New. Used to generate - mh-loaddefs.el in XEmacs. - (XEMACS_LOADDEFS_COOKIE): Ditto. - (XEMACS_LOADDEFS_PKG_NAME): Ditto. - (xemacs): Add target to build mh-loaddefs.el in XEmacs - (clean-xemacs): Remove `mh-loaddefs.el*' - (loaddefs-xemacs): New rule to build mh-loaddefs.el in XEmacs. - -2003-11-02 Peter S Galbraith <psg@debian.org> - - * mh-init.el (mh-variant-set-variant): Reset `mh-x-mailer-string' - when we select an MH variant. - -2003-11-02 Jeffrey C Honig <jch@honig.net> - - * mh-loaddefs.el: Regenerated. - - * mh-funcs.el (mh-print-msg): Move to mh-print.el. - - * mh-e.el (mh-folder-mode-map): Add mh-print-msg ("l") back, it - will print a message that this usage is deprecated. - - * mh-print.el (require, mh-ps-print-msg, mh-ps-print-msg-file): - Require mh-funcs for mh-note-printed. PS print functions were not - setting the printed notation. Move mh-print-msg here for - consistency. Print message if mh-print-msg invoked via deprecated - key binding. - -2003-11-01 Peter S Galbraith <psg@debian.org> - - * Makefile: Add target to make `mh-startup.el', a file containg - usual entry commands into MH-E to be used for users installing - MH-E separately from Emacs. - - * README: Document the above for users. - -2003-10-29 Jeffrey C Honig <jch@honig.net> - - * mh-utils.el (mh-show-ps-print-map): Add "?" and "l" to - mh-show-ps-print-map. - - * mh-e.el (mh-ps-print-map, mh-help-messages): Add "?" and "l" to - mh-ps-print-map. Add "l" to help message. - -2003-10-27 Bill Wohler <wohler@newt.com> - - * Makefile (MH-E-SRC): Moved mh-xemacs.el to new variable - MH-E-XEMACS-SRC. - (MH-E-XEMACS-SRC): New variable to hold XEmacs source files. - (MH-E-XEMACS-OBJ): New variable to hold XEmacs object files. - (clean): Moved XEmacs-specific code to clean-xemacs. - (xemacs): Added clean-xemacs prerequisite. Moved down to - XEmacs section of file. - (clean-xemacs): New target to remove XEmacs-specific files. - (compile-xemacs): Added $(MH-E-XEMACS-SRC) prerequisite. - (dist): Added $(MH-E-XEMACS-SRC) to tarball. - -2003-10-27 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-index.el (mh-indexer-choices): Remove option for the non-free - glimpse indexer (closes SF #831276). - (mh-glimpse-binary, mh-glimpse-directory) - (mh-glimpse-execute-search, mh-glimpse-next-result): Functions - and variables to implement glimpse support are removed. - - * mh-customize.el (mh-index-program): Remove option for glimpse. - -2003-10-24 Satyaki Das <satyakid@stanford.edu> - - * mh-customize.el: Remove top-level test for toolbar enabled - XEmacs since it is not needed. - (mh-tool-bar-define): Add test for XEmacs toolbar in the functions - mh-toolbar-init, mh-tool-bar-letter-buttons-set and - mh-tool-bar-folder-buttons-set. This enables proper compilation - irrespective of whether the XEmacs was built with toolbar support - or not. - - * mh-comp.el (mh-letter-mode): Remove conditional since it is not - needed. - - * mh-e.el (mh-folder-mode): Same as above. - - * mh-utils.el (mh-show-mode): Same as above. - - * mh-xemacs.el (mh-xemacs-icon-map): Remove condition on toolbar - presence since we want the build to work if XEmacs without - toolbars is used during compilation. - -2003-10-23 Bill Wohler <wohler@newt.com> - - * mh-customize.el: The Great Reorganization. Sorted groups - alphabetically. Aligned variables in customization groups with - manual sections. Group docstrings changed to match manual chapter - titles. - -2003-10-22 Satyaki Das <satyakid@stanford.edu> - - * mh-speed.el (timer): Avoid compiler warning in XEmacs. - -2003-10-22 Steve Youngs <sryoungs@bigpond.net.au> - - * Makefile (XEMACS_OPTIONS): Add '-no-autoloads' to give a cleaner - build environment. - (AUTO_PRELOADS): Removed, in favour of 'AUTOLOAD_PACKAGE_NAME' and - 'AUTOLOAD_FILE'. - (AUTOLOAD_PACKAGE_NAME): New. - (AUTOLOAD_FILE): New. - (all): Don't set $EMACS_HOME if building with XEmacs. - (xemacs): Use 'compile-xemacs' instead of 'compile'. - (auto-autoloads.elc): Use new $AUTOLOAD_* vars and allow for - '-no-autoloads'. - (custom-load.elc): Allow for '-no-autoloads'. - (compile-xemacs): New. It allows for the '-no-autoloads' option - and byte-compiles all the source files with a single instance of - XEmacs. - - * mh-e.el (mh-folder-mode): Only load the toolbar in XEmacs if - toolbar support is available. - - * mh-comp.el (mh-letter-mode): Only load the toolbar in XEmacs if - toolbar support is available. - - * mh-customize.el: Require 'mh-xemacs' at toplevel when - 'mh-xemacs-flag' is non-nil. - Wrap all the toolbar code in a test that is true if using - GNU/Emacs or a toolbar-enabled XEmacs. - - * mh-print.el (mh-ps-spool-a-msg): Comment out - `clean-message-header-flag' because it isn't used anywhere. - - * mh-utils.el (mh-show-mode): Only load the toolbar in XEmacs if - toolbar support is available. - - * mh-xemacs.el: Autoload `regexp-opt', `customize-group', - `view-mode', `with-electric-help', `pp', `sort-numeric-fields', - `reverse-region', and `goto-address' at compile time. - (mh-xemacs-has-toolbar-flag): New. This is non-nil when XEmacs - has toolbar support. - (mh-xemacs-toolbar-*-icon): Use it. - -2003-10-21 Mark D. Baushke <mdb@gnu.org> - - * mh-identity.el (mh-identity-field-handler): Fields that begin - with ":" must have an mh-identity-handler defined or the user - gets an error. - -2003-10-17 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-identity-list): This change affects users! - The keyword "signature" becomes ":signature". The recently added - keyword "pgg-default-user-id" becomes ":pgg-default-user-id". - (mh-auto-fields-list): The keyword "Identity" becomes ":identity". - (mh-identity-handlers): Idem for signature and pgg-default-user-id. - - * mh-comp.el (mh-insert-auto-fields): Idem for Identity. - -2003-10-17 Peter S Galbraith <psg@debian.org> - - * mh-xemacs.el: Add eval-and-compile call to (load "toolbar" t t) to - make sure `toolbar-make-button-list' is defined. We can't use - require because Emacs doesn't have this library. - -2003-10-16 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-signature-file-name) - (mh-letter-insert-signature-hook): Merge docstring with manual. - - * mh-comp.el (mh-file-is-vcard-p): Checkdoc fix. - (mh-insert-signature): Merge docstring with manual. - - * mh-customize.el (mh-junk): Changed manual link in defgroup from - Customizing mh-e to Junk. - (mh-junk-function-alist): Moved SpamAssassin to first in list on - the hunch that it is the most popular and should be chosen if - other anti-spam programs exist. - (mh-junk-mail-folder): Since the variable can accept values other - than folder names, renamed to mh-junk-disposition to more - accurately reflect the content. Merge docstring with manual. - (mh-junk-program): Moved SpamAssassin to the top of the menu for - the same reason presented in mh-junk-function-alist. Also, fixed - case of spam programs to match official usage. Merge docstring - with manual. - - * mh-junk.el (mh-junk-blacklist): - s/mh-junk-mail-folder/mh-junk-disposition/. Merge docstring with - manual. - (mh-junk-whitelist): Merge docstring with manual. - (mh-bogofilter-blacklist): No longer suggest using automatic - classification so use -s instead of -Ns. - (mh-bogofilter-whitelist): No longer suggest using automatic - classification so use -n instead of -Sn. - (mh-spamassassin-blacklist, mh-spamassassin-whitelist): Merge - docstring with manual. Moved spamassassin functions to top of file - so functions appear in same order that they are presented in menu. - -2003-10-09 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mail-citation-hook): Moved from mh-comp.el and - made into a defcustom. - -2003-10-09 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-comp.el (mh-get-header-field): Add autoload cookie. - - * mh-utils.el (mh-show-ps-print-toggle-mime) - (mh-show-ps-print-toggle-color, mh-show-ps-print-toggle-faces) - (mh-show-ps-print-msg-file, mh-show-ps-print-msg) - (mh-show-ps-print-msg-show): New interactive functions callable - from the show buffer. - (mh-show-ps-print-map): New key map for printing. - - * mh-e.el (mh-folder-mode-map): Remove key binding for - mh-print-msg. - (mh-ps-print-map): Add new key map for printing. - - * Makefile (MH-E-SRC): Add mh-print.el. - -2003-10-07 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-x-image-url-fetch-image): In XEmacs, - make-temp-file is not present. So to avoid security problems, use - a temporary file in the user's home directory. This avoids issues - in creating files in a world-writable directory. - - * mh-mime.el (mh-signature-highlight): In Emacs, arrange for the - overlay to be freed when it is no longer needed. Also, implement - signature highlighting in XEmacs. - -2003-10-05 Satyaki Das <satyakid@stanford.edu> - - * mh-mime.el (mh-mime-display, mh-mm-inline-message): Respect the - value of `mm-verify-option' and `mm-decrypt-option'. - (mh-mime-display-security): Rearrange code a bit to avoid too many - new lines being inserted when message verification/decryption is - carried out while the message is being read. Also use the - point-m{in|ax}-marker functions to make the function easier to read. - (mh-mime-security-press-button): Extend the function so that the - user can verify/decrypt messages while reading them. - - * mh-gnus.el (mm-possibly-verify-or-decrypt): Added to avoid - compiler warning with old Gnus. - - * mh-utils.el (mh-x-image-url-sane-p): New function which checks - if the URL in X-Image-URL is something we can handle. - (mh-x-image-url-display): Don't display image if the URL looks - malformed. - -2003-10-04 Mark D Baushke <mdb@gnu.org> - - * mh-comp.el (mh-letter-menu): Simplify menu heading. - -2003-10-03 Mark D Baushke <mdb@gnu.org> - - * mh-mime.el (mh-mml-query-cryptographic-method): Avoid - revisionist history and still provide a good default. - - * mh-comp.el (mh-letter-menu): Remove the Disable Security - parenthetical comment. - - * mh-loaddefs.el: Regenerated. - - * mh-customize.el (mh-mml-method-default): What method should be - used in secure directives. - - * mh-mime.el (mh-secure-message): New function used to generate - the mml security tags. - (mh-mml-unsecure-message): New wrapper function around - mml-unsecure-messages. - (mh-mml-secure-message-sign-pgpmime): Remove function. - (mh-mml-secure-message-encrypt-pgpmime): Ditto. - (mh-mml-cryptographic-method-history): New variable. - (mh-mml-query-cryptographic-method): New function. - (mh-mml-secure-message-encrypt): Ditto. - (mh-mml-secure-message-signencrypt): Ditto. - (mh-mml-secure-message-sign): Ditto. - - * mh-comp.el (mh-letter-menu, mh-letter-mode-help-messages, - (mh-letter-mode-map): Update to use new functions. - -2003-09-26 Satyaki Das <satyakid@stanford.edu> - - * mh-seq.el (mh-interactive-range): The function has been - extended so that it now takes a default result to return if no - interactive prefix arg is given and no region is active. - - * mh-e.el (mh-add-sequence-notation): If transient-mark-mode is - on, then the active region is deactivated based on whether a user - sequence or a internal sequence is being notated. The change - removes this inconsistency. - (mh-catchup, mh-folder-map): A new interactive function to mark - messages as read has been added and bound to "F c" in the folder - mode. - - * mh-utils.el (mh-show-catchup, mh-show-folder-map): New - interactive function callable from show mode buffers has been - bound to "F c". - -2003-09-24 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-clean-message-header-flag) - (mh-invisible-header-fields-default, mh-invisible-header-fields): - Merge docstring with manual. - -2003-09-24 Mark D. Baushke <mdb@gnu.org> - - * mh-junk.el (mh-junk-blacklist): Junked messages should be put - into the mh-seen-list to avoid propagating the unseen sequence - into the spam folder. - - * mh-loaddefs.el: Regenerated. - - * mh-mime.el (mh-mml-secure-message-sign-pgpmime): Add an optional - dontsign argument to remove an existing secure message directive. - Update the docstring -- this fuction does not allow for - encrypt/sign, just sign directives. - - * mh-mime.el (mh-mml-secure-message-sign-pgpmime): Use - mml-insert-tag directly to provide a sender if - mh-identity-pgg-default-user-id is set. - (mh-mml-secure-message-encrypt-pgpmime): Use mml-insert-tag - directly to provide a sender if this message is to be both signed - and encrypted and mh-identity-pgg-default-user-id is set. - -2003-09-23 Bill Wohler <wohler@newt.com> - - * mh-alias.el (Commentary): Removed as it is now in the manual. - (mh-alias-system-aliases): Moved here from mh-customize.el. By - definition, "system" definitions are not user-visible, and user - filenames are in the the Aliasfile: profile component, so this - variable really shouldn't be a defcustom - (mh-alias-tstamp, mh-alias-filenames, mh-alias-reload) - (mh-alias-add-alias, mh-alias-grab-from-field) - (mh-alias-add-address-under-point, mh-alias-apropos): Merge - docstring with manual. - (mh-alias-reload-maybe): Minor comment update. - (mh-alias-insert-file): Merge docstring with manual. Removed - "[press TAB]" from prompt since users should know about completion - and space can be used as well. - (mh-alias-for-from-p): No longer returns a surprising result (t if - there was **not** an alias for the From field) if the From header - field is missing. This function now returns what you would expect - a function of this name to return. Renamed from - mh-alias-from-has-no-alias-p since negatives in the function name - make logic harder to follow. - (mh-alias-add-alias-to-file): Merge docstring with manual. - Improved verbiage of prompt. Aliases are now inserted "[b]efore" - or "[a]fter" the existing alias instead of "[i]nsert" or - "[a]ppend." Note how the new usage flows better. - - * mh-customize.el (mh-alias): Changed manual link in defgroup from - Customizing mh-e to Aliases. - (mh-alias-grab-from-field button): mh-alias-from-has-no-alias-p - renamed to mh-alias-for-from-p and no longer returns surprising - value if there isn't a From field. Therefore, enable button if - there is a From header field and mh-alias-for-from-p returns nil. - (mh-letter-complete-function) - (mh-alias-completion-ignore-case-flag, mh-alias-flash-on-comma) - (mh-alias-insert-file, mh-alias-insertion-location) - (mh-alias-local-users, mh-alias-local-users-prefix) - (mh-alias-passwd-gecos-comma-separator-flag): Merge docstring with - manual. - (mh-alias-system-aliases): Moved to mh-alias.el. - - * mh-comp.el (mh-letter-complete-function-alist): Removed comment - about making this customizable since I didn't think it seemed - appropriate in the manual. - (mh-letter-complete): Merge docstring with manual. - -2003-09-23 Satyaki Das <satyakid@stanford.edu> - - * mh-speed.el (mh-speed-flists): When exiting emacs, don't ask if - the flists process should be killed. - - * mh-e.el (mh-folder-message-menu): Enable undo menu entry only - if something can be undone. - - * mh-customize.el (undo): Enable undo button only if something - can be undone. - -2003-09-22 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-identity-handlers): New defcustom. Alist of - Handler functions for mh-identity (downcased) fields. - (mh-identity-list): Add support for pgg-default-user-id. - - * mh-identity.el (mh-insert-identity): Modified to use - `mh-identity-handlers', adding hacking flexibility for those who - might need it. - (mh-identity-field-handler): New function. Return the handler for - a FIELD or nil if none set. The field name is downcased. - (mh-identity-handler-gpg-identity): New function; handler for pgg - pgp identities. It sets a buffer-local value for - `mh-pgg-default-user-id' which must be handled by mh-send-letter. - (mh-identity-pgg-default-user-id): New buffer-local variable to - hold the requested key ID. - (mh-identity-handler-signature): New function; handler t insert - and remove signature files. - (mh-identity-handler-default): New function; the default handler - to insert or remove generic field. - (mh-identity-handler-top): Insert a field at the top of the - header. - (mh-identity-handler-bottom): Insert a field at the bottom of the - header. - (mh-header-field-delete): Make more robust wrt the field having a - trailing colon or not. - (mh-identity-make-menu): Add a "Customize Identities" menu entry. - - * mh-loaddefs.el: Regenerated. - -2003-09-21 Peter S Galbraith <psg@debian.org> - - * mh-init.el (mh-variant-set): Bug fix for mh-variant long names - with version numbers. - - * mh-e.el (mh-scan-format): patch from Sergey Poznyakoff. - GNU mailutils now supports the %(decode) format - -2003-09-20 Satyaki Das <satyakid@stanford.edu> - - * mh-gnus.el (mh-mm-text-html-renderer): New function to query - which HTML renderer is being used by Gnus. - - * mh-mime.el (mh-signature-highlight): Renderers used to display - HTML parts garble the signature separator in various ways. The - function has been modified to take that into account. - (mh-mime-display-single, mh-mm-display-part): Pass the new - optional argument to `mh-signature-highlight'. - -2003-09-19 Mark D. Baushke <mdb@gnu.org> - - * mh-mime.el (mh-have-file-command, mh-file-mime-type): Made an - mh-autoload as they are used in mh-comp.el. - - * mh-loaddefs.el: Regenerated. - -2003-09-18 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-fields): Make sure field has a colon. - -2003-09-18 Satyaki Das <satyakid@stanford.edu> - - * mh-seq.el (mh-toggle-tick): Don't hardcode the name of the tick - sequencence in the function. This would have caused improper - highlighting of the tick sequence if the user had changed its - name. - -2003-09-15 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-folder-message-menu): Fix a little bug which shows - up as a problem during compilation (closes SF #806577). - -2003-09-15 Mark D. Baushke <mdb@gnu.org> - - * mh-customize.el (mh-invisible-header-fields-internal): Added - a new field for GNU mailutils per Sergey Poznyakoff. - -2003-09-09 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (vcard): Unconditionally load vcard.el, if - available, so that vcards are always inlined. - -2003-09-09 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-file-mime-type-substitutions): Add entry to - convert text/plain .vcf files to text/x-vcard. - (mh-mime-content-types): Add text/x-vcard. - -2003-09-09 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-rejected-letter-start): Added strings for qmail - and exim (addresses SF #404965). - -2003-09-09 Satyaki Das <satyakid@stanford.edu> - - * mh-gnus.el (mm-inline-text-vcard): Make vcard display work with - Gnus-5.9. The extra file vcard.el is still needed. - - * mh-mime.el (mh-signature-highlight): New function that - highlights message signatures. - (mh-mm-display-part, mh-mime-display-single): Highlight signatures - using `mh-signature-highlight' (closes SF #802722). More work is - needed for XEmacs. - (mh-mime-display): Highlight signature in non-MIME email too. - - * mh-customize.el (mh-show-signature-face): New face used to - display message signature. - -2003-09-08 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-version): Do something sensible when - mh-variant-in-use is undefined. - * mh-junk.el (mh-spamassassin-blacklist) - (mh-spamassassin-whitelist): Change options to be compatoble with - old version of spamassassin (V2.20). - -2003-09-07 Mark D. Baushke <mdb@gnu.org> - - * mh-mime.el (mh-access-types): Per RFC 2049, the "afs" - access-type for message/external-body has been removed. - Update the comments to reference the current MIME RFCs - 2045, 2046 and 2049 rather than the obsolete RFC 1521. - -2003-09-05 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-version): Bumped version number to 7.4.2+cvs. - -2003-09-04 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-picon-directory-list, mh-picon-directory): The - mh-picon-directory-list variable supersedes mh-picon-directory. - (mh-picon-existing-directory-list): New variable that contains - the list of picon directories that actually exist. - (mh-picon-set-directory-list): New function to update - mh-picon-existing-directory-list from mh-picon-directory-list. - (mh-picon-get-image): The function has been modified to search a - list of possible picon source directories. The regexp to extract - the username from the email address has been made smarter so that - it can recognize email addresses of the form user+random@foo.net - and extract "user" from there. - (mh-picon-file-contents): The file type recognition code has been - moved from mh-picon-get-image into this function. - (mh-picon-generate-path): The function has been generalized so - that searching multiple paths is now feasible. - - * mh-pick.el, mh-e.el: Checkdoc fixes. - -2003-09-02 Satyaki Das <satyakid@stanford.edu> - - * mh-identity.el (eval-when): It seems that the mh-comp-loaded - code isn't required any more. - -2003-08-30 Satyaki Das <satyakid@stanford.edu> - - * mh-init.el (mh-variant-set): Replace `error' with `message' so - that Emacs CVS will compile without errors if no MH variant is - present. - -2003-08-29 Satyaki Das <satyakid@stanford.edu> - - * mh-init.el (mh-variant-set): Add interactive spec to the - function. - - * mh-mime.el (mh-mhn-compose-external-type): Optional arguments - are prompted for only if prefix arg is given. - -2003-08-29 Mark D. Baushke <mdb@gnu.org> - - * mh-mime.el (mh-mhn-compose-external-type): Modified to be - interactive and prompts for many of the fields. Made an - mh-autoload. - (mh-access-types): New table derived from RFC2017, RFC1521 and - RFC1738, used in a completing-read in - mh-mhn-compose-external-type. - - * mh-loaddefs.el: Regenerated. - -2003-08-26 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-picon-image-types, mh-picon-get-image): Avoid - compiler warnings. - (mh-sub-folders-actual): Parsing of the output from folders has - been modified, so that it also works for MH (closes SF #792300). - - * mh-junk.el (mh-spamassassin-whitelist): Avoid calling - ietf-drums-parse-address if it isn't present. - (mh-spamassassin-identify-spammers): Avoid use of puthash so that - Emacs20 doesn't complain. - - * mh-e.el (mh-colors-available-p): Wrap call to - display-color-cells in a mh-funcall-if-exists to avoid compiler - warning in Emacs20. - -2003-08-25 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-colors-available-flag, mh-folder-mode): New - variable to track if colors are available and it is set - appropriately in mh-folder-mode. - (mh-colors-available-p, mh-colors-in-use-p): Two functions to - check whether colors are available and if they are actually being - used. - (mh-add-sequence-notation): Just changing a scan line doesn't - make font-lock refontify the line in Emacs20. So explicitly - refontify the scan line in such a situation. - (mh-internal-seq): If colors aren't being used then treat the - tick sequence like a normal user sequence. - - * mh-seq.el (mh-put-msg-in-seq): Do font-lock highlighting after - the messages have been added to the sequence. - (mh-toggle-tick): Modified so that highlighting of the ticked - messages will be properly done. If font-lock isn't being used or - if colors aren't supported by the Emacs where MH-E is running, - then the `%' character is used to annotate ticked messages. - - * mh-utils.el (mh-picon-image-types): Since Emacs20 doesn't have - image-type-available-p, wrap calls to that function in - ignore-errors. - (mh-add-msgs-to-seq): Do the font-lock highlighting after the - messages have been added. - -2003-08-24 Bill Wohler <wohler@newt.com> - - * Makefile (MH-E-SRC): Replaced mh-xemacs-compat.el and - mh-xemacs-icons.el with mh-xemacs.el. - - * mh-e.el: Don't require mh-xemacs-compat which no longer exists. - The XEmacs stuff gets required by mh-customize.el which is - required by mh-utils.el which is required by mh-e.el. This all - happens before mh-xemacs-compat was required, so all should be - well. - - * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and - mh-xemacs-icons.el with mh-xemacs.el. - - * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el - and mh-xemacs-icons.el which were removed since their names - exceeded DOS 8+3 limits. - - * mh-customize.el (mh-compose-skipped-header-fields): Use - uppercase for field names. - -2003-08-21 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-sequences): Introduced new customization - group for sequences. - (mh-refile-preserves-sequences-flag, mh-tick-seq) - (mh-update-sequences-after-mh-show-flag): Moved option from - mh-folder to mh-sequences group. Synced docstring with manual. - (mh-index-ticked-messages-folders): Since mh-tick-seq is - customizable, use it instead of tick in the docstring. - - * mh-index.el (mh-index-ticked-messages): Since mh-tick-seq is - customizable, use it instead of tick in the docstring. + * mh-comp.el (mh-insert-letter): Replaced deprecated read-input + with read-string. - * mh-seq.el (mh-msg-is-in-seq): Can now specify an alternate - message number with a prefix argument. - (mh-narrow-to-tick): Since mh-tick-seq is customizable, use it - instead of tick in the docstring. Also, use mh-tick-seq instead of - tick in warning message. - -2003-08-20 Peter S Galbraith <psg@debian.org> - - * mh-customize.el: setq mh-variant to 'none when byte-compiling, - since we don't care what MH variant (if any) is on the system at - that point. - - * mh-init.el (mh-variant-set): Don't probe for MH variant when - mh-variant is set to'none (during byte-compilation). - -2003-08-19 Peter S Galbraith <psg@debian.org> - - * mh-pick.el (mh-pick-single-dash): New defconst. Search - components that are supported by single-dash option in - pick. - (mh-pick-regexp-builder): Use `mh-pick-single-dash' and adapt - patch from Sergey Poznyakoff. - - * mh-comp.el (mh-reply): mu-mh supports `repl -group', thanks to - Sergey Poznyakof. - - * mh-init.el: checkdoc fixes. - -2003-08-19 Bill Wohler <wohler@newt.com> - - * mh-seq.el: (mh-edit-pick-expr): Renamed from mh-read-pick-regexp - since the new name is more indicative of what the function does. - Prompt now says "Pick expression" instead of "Pick regexp". - (mh-narrow-to-subject): Rewrote function to behave like other - similar functions. - (mh-narrow-to-header-field, mh-narrow-to-range) - (mh-narrow-to-tick): s/regexp/pick-expr/. - (mh-widen, mh-narrow-to-from, mh-narrow-to-cc, mh-narrow-to-to): - Synced docstrings with manual - -2003-08-19 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.4.2. - - * MH-E-NEWS, README: Updated for release 7.4.2. - - * mh-e.el (Version, mh-version): Updated for release 7.4.2. - - * mh-e.el (mh-folder-size, mh-folder-size-folder) - (mh-folder-size-flist): If flist is not present use folder to find - the number of messages in the folder. Also the .mh_sequences file - is read to find the number of unseen messages (patch from 1.349 - and branched for 7.4.2, closes SF #791021). - - * mh-utils.el (mh-flists-present-flag, mh-find-progs): Introduce a - new variable to test for the presence of the flists program and - set it in mh-find-progs. - (mh-collect-folder-names): Use folders instead of flists. One - advantage is that folders is available on MH while flists is not. - Another is that if an explicit -sequence argument isn't given and - Unseen-Sequence profile is not present then flists croaks while - folders doesn't. - (mh-collect-folder-names-filter): Don't consider folder names that - start with a `.' character. This is needed since the folders - command doesn't filter them out like flists does. - (patches from 1.307 and 1.309 and branched for 7.4.2, closes SF - #791021). - -2003-08-18 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-index-sequenced-messages) - (mh-index-new-messages, mh-index-ticked-messages): Updated - docstrings from manual (closes SF #718833). - - * mh-customize.el (mh-variant): Checkdoc fix. - (mh-index-new-messages-folders): Don't mention defvar in - docstring, use `+inbox' instead. - (mh-index-ticked-messages-folders): Don't mention defvar in - docstring, use `tick' instead. - - * mh-comp.el (mh-repl-group-formfile): Checkdoc fix. - -2003-08-18 Peter S Galbraith <psg@debian.org> - - * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-info): Add - support for GNU mailutils. - (mh-variant-mu-mh-info): New function to detect mu-mh and return - info about it for `mh-variants'. - - * mh-e.el (mh-regenerate-headers): mu-mh has different error - message for a invalid mesage list. - -2003-08-18 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-e): New defgroup. Sort of an alias for the - 'mh group that a user might be more likely to find. - -2003-08-18 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-insert-auto-fields-done-local): Docstring tweak. - (mh-compose-and-send-mail): Do not call mh-insert-auto-fields. - This should be done only once in mh-send-letter. - -2003-08-18 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-mode): Call `mh-find-path unconditionally, - like elsewehere in MH-E. - - * mh-utils.el (mh-find-path): Run setup code only if - `mh-find-path-run' is nil such that this is only done once. - Also remove the `setq' for `read-mail-command' and `mail-user-agent'. - -2003-08-18 Peter S Galbraith <psg@debian.org> - - * mh-e.el: require 'mh-utils first - - * mh-customize.el (mh-variant): defcustom moved here. - - * mh-init.el (mh-variants): Made an mh-autoload. - -2003-08-18 Peter S Galbraith <psg@debian.org> - - * Makefile (MH-E-SRC): Added mh-init.el to MH-E-SRC. - - * mh-utils.el (mh-find-progs): Deleted. Make obsolete by mh-init.el. - (mh-find-path): Call `mh-variants' instead of now obsolete - `mh-find-progs'. - (mh-path-search): Deleted. Was only used by `mh-find-progs'. - - * mh-e.el: require mh-init.el. - (mh-version): Use simpler `mh-variant-in-use'. - (mh-scan-format): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. - - * mh-comp.el (mh-insert-x-mailer): Use simpler `mh-variant-in-use'. - - * mh-utils.el (mh-progs, mh-lib, mh-lib-progs) - (mh-flists-present-flag): Moved to mh-init.el. - (mh-nmh-flag): Deleted. Use (mh-variant-p 'nmh) instead. - - * mh-comp.el (mh-repl-group-formfile, mh-forward, mh-reply) - (mh-send-letter): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. - - * mh-mime.el (mh-edit-mhn, mh-mime-save-parts): Use (mh-variant-p - 'nmh) instead of mh-nmh-flag. - -2003-08-16 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-folder-selection): New group to hold - variables described in Folder Selection section in manual. - (mh-default-folder-list, mh-default-folder-must-exist-flag, - mh-default-folder-prefix): Moved to mh-folder-selection group. - Updated docstrings per manual update. - (mh-default-folder-for-message-function): New defcustom. Was a - defvar in mh-utils.el. Updated docstring per manual update. - - * mh-utils.el (mh-default-folder-for-message-function): Moved to - mh-customize.el. - - * mh-e.el (mh-folder-from-address, mh-prompt-for-refile-folder): - Updated docstrings per manual update. - - * mh-unit.el (mh-unit-files): Added mh-init.el. - -2003-08-16 Peter S Galbraith <psg@debian.org> - - * mh-init.el: New file. Code to initialize the MH-E back-end. - Highlights: - (mh-variant): New defcustom. Users may customize `mh-variant' to - switch between available variants. - (mh-variants): Available MH variants are described in this variable. - (mh-variant-in-use, mh-variant-p): Developers may check which - variant is currently in use with the variable `mh-variant-in-use' - or the function `mh-variant-p'. - -2003-08-15 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-auto-fields-list): The manual uses Fcc - instead of fcc, so I've changed the user-visible text - accordingly. I've left the const alone for backwards - compatibility. - -2003-08-14 Bill Wohler <wohler@newt.com> - - * mh-identity.el (mh-insert-identity): Changed signature deletion - test to test for both markers, rather than testing to see if the - start marker is bound. Since the start marker is defined in this - file, it should always be bound. Suggestion by Satyaki. - - * mh-comp.el (mh-send-letter): Go to the top of the draft so that - the user can see which header fields have been inserted. I think - this is more important than leaving point alone or going to the - end to see the signature since Mail-Followup-To or Bcc or cc could - have some deleterious effects. - - * mh-customize.el (mh-auto-fields-prompt-flag): New variable. - Non-nil means to prompt before sending if fields inserted. - - * mh-comp.el (mh-insert-auto-fields): Now return t if fields - inserted; otherwise nil. - (mh-send-letter): Deleted obsolete documentation about adding - X-Mailer and X-Face. Prompt before sending if auto fields added - and mh-auto-fields-prompt-flag is t. - - * mh-customize.el (mh-identity-list): Allow signature to come from - mh-signature-file-name. In this case, the "signature" value is set - to nil. This might not be the best implementation. Suggestions - welcome. - - * mh-identity.el (mh-insert-identity): Now that the signature can - be a nil value, moved test higher up in cond so that the test for - a nil value would not be executed first prevening signature - handling. Handle nil signature value by calling - mh-insert-signature with no arguments which means to use - mh-signature-file-name. - - * mh-comp.el (mh-insert-signature): Changed text of message if no - signature inserted. - - * mh-customize.el (mh-identity-list): Changed "Signature" constant - back to "signature" so it *won't* be backwards-incompatible any - more. I discovered one could use the :tag keyword to get headline - captalization in the menu. - - * mh-identity.el (mh-insert-identity): Ditto. - - * mh-identity.el (mh-identity-make-menu): Always build menu. - Always create Insert Auto Fields menu item. Just don't enable it - if mh-auto-fields-list is nil. Enable radio buttons always. Make - None a radio button choice with the other identities. - - * mh-comp.el (mh-letter-menu): Removed cond on fboundp - 'easy-menu-define. We don't do this elsewhere. - -2003-08-13 Bill Wohler <wohler@newt.com> - - * mh-identity.el (mh-identity-make-menu, mh-insert-identity): Use - headline capitalization in menu items. Even the internal names are - exposed in the customize interface, so they need to be uppercase - too. - (mh-insert-identity): Rather than goto-char to - mh-identity-signature-start before deleting, simply pass it to - delete-region. When setting markers, use point-min-marker and - point-max-marker instead of moving point. Set marker type of - mh-identity-signature-start to t to fix a bug where changing - identity deleted user's text. - - * mh-customize.el (mh-identity-list, mh-auto-fields-list): - Reworked docstring. Use headline capitalization. Commented out - implementation details for later deletion or resurrection upon - popular demand. N.B. If your mh-identity-list contains "signature" - then you will need to either edit your .emacs file manually, or - delete your existing "signature" which will become a regular field - with this change and create a new signature. I figured I could get - away with this since 8.0 is a major release, and coinciding with - the manual update will be a MAJOR release. I apologize profusely - that I didn't catch this before it was released. - (mh-identity-default): Use headline capitalization in example. - -2003-08-12 Jeffrey C Honig <jch@honig.net> - - * mh-customize.el (mh-alias-reloaded-hook): Define - `mh-alias-reloaded-hook'. - - * mh-alias.el (mh-alias-reload): Run `mh-alias-reloaded-hook' - after reloading the aliases. - -2003-08-12 Mark D. Baushke <mdb@gnu.org> - - * mh-comp.el (mh-insert-signature): Use functionp to avoid - the possibility of doing a funcall on a void function. - -2003-08-12 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-identity): Point group manual link to new - Identities section. - (mh-signature-separator-flag): New variable which can be used to - suppress the output of the signature separator. - - * mh-comp.el (mh-insert-signature): Use - mh-signature-separator-flag. - - * mh-identity.el (mh-insert-identity): If the identity's signature - file didn't exist, an fboundp error was thrown. This was fixed by - removing signature tests that were redundant and out of date with - the tests in mh-insert-signature. Removed second signature - condition as it is now handled in the first signature condition. - -2003-08-12 Peter S Galbraith <psg@debian.org> - - * mh-identity.el (mh-insert-identity): Don't insert new lines on - signatures anymore. - - * mh-comp.el (mh-insert-signature): Make sure signature file is - readable before trying to insert it. - -2003-08-11 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-insert-signature): Unconditionally insert a - newline so that signatures are inserted consistently, and so that - there isn't any text after the cursor so that the user can start - typing his message immediately. Use new variable and function - mh-signature-separator and mh-signature-separator-p. - - * mh-customize.el (mh-delete-yanked-msg-window-flag): Checkdoc - fix. - (mh-signature-file-name): Updated docstring now that this variable - can be a function. Added cross-references to - mh-signature-separator, mh-signature-separator-regexp, and - mh-signature-separator-p which might be used in such functions. - - * mh-identity.el (mh-insert-identity): Don't include signature if - signature separator already present. Useful when running - mh-edit-again. - - * mh-mime.el (mh-inline-vcard-p): Use mh-signature-separator-p. - - * mh-utils.el (mh-signature-separator-regexp): New variable - containing "^-- $" which should be used when looking for the - signature separator. - (mh-signature-separator): New variable containing "-- \n" which - should be used when inserting the signature separator. - (mh-signature-separator-p): New function that returns non-nil if - mh-signature-separator-regexp is found in the buffer. - -2003-08-09 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-x-image-scaling-function): Variable that - contains function used to scale images. Possible choices are - mh-x-image-scale-with-convert and mh-x-image-scale-with-pnm. - (mh-convert-executable): Removed. - (mh-x-image-scale-with-pnm, mh-x-image-scale-with-convert): New - functions that scale images using pnm tools or ImageMagick. - (mh-x-image-scale-and-display, mh-x-image-url-display): Use - mh-x-image-scaling-function instead of mh-convert-executable. - -2003-08-08 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-signature): Bug fix. Handle case of nil - `mh-signature-file-name' and hooks correctly. - - * mh-identity.el (mh-insert-identity): Refactor to use - mh-insert-signature - - * mh-comp.el (mh-signature-separator-p): Removed. - - * mh-comp.el (mh-insert-signature): Merge MIME awareness from - mh-insert-identity into this command. Allow - `mh-signature-file-name' to be a function to call. See if "-- " - needs to be inserted only after hooks have run. - -2003-08-07 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-compose-skipped-header-fields): Added - X-Image-URL. - (mh-autoload): Removed cookies. They aren't necessary in - mh-e.el, mh-utils.el, or mh-customize.el. - - * mh-e.el (mh-autoload): Removed cookies. They aren't necessary in - mh-e.el, mh-utils.el, or mh-customize.el. - - * mh-identity.el (mh-insert-identity): Made regexp for signature - separator more explicit. Hmmm, maybe we should create - mh-signature-separator-regexp... - - * mh-index.el (mh-replace-string): Moved to mh-utils.el. - - * mh-utils.el (mh-replace-string): Moved here from mh-index.el. - (mh-autoload): Removed cookies. They aren't necessary in mh-e.el, - mh-utils.el, or mh-customize.el. - - * mh-comp.el (mh-insert-signature): Added file argument to insert - a file other than mh-signature-file-name. Insert signature - separator, unless file already contains one. - -2003-08-06 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-folder-size, mh-folder-size-folder) - (mh-folder-size-flist): If flist is not present use folder to - find the number of messages in the folder. Also the .mh_sequences - file is read to find the number of unseen messages. - - * mh-utils.el (mh-flists-present-flag, mh-find-progs): Introduce - a new variable to test for the presence of the flists program and - set it in mh-find-progs. - -2003-08-06 Peter S Galbraith <psg@debian.org> - - * mh-customize.el: Change the order of `mh-identity-list' and - `mh-auto-fields-list' and remove byte-compilation defvar for - `mh-identity-list'. This fixes a customization bug for - `mh-identity-list', where it wasn't set correctly. - - * mh-identity.el (mh-identity-make-menu): mh-auto-fields-list may - not be bound yet when initially loaded. - -2003-08-06 Bill Wohler <wohler@newt.com> - - * mh-alias.el (mh-alias-add-address-under-point): Removed trailing - period from messages. The conventions say that errors should not - end with a period and that "Foo...done" messages should not end in - a period, but they aren't explicit about messages in general. - Given what the conventions *do* say, and because most of our - messages don't end with a period, let's just say that messages in - general don't end in a period, just like error messages. - - * mh-comp.el (mh-extract-rejected-mail, mh-letter-mode-message): - Ditto. - - * mh-e.el (mh-refile-a-msg): Ditto. - - * mh-funcs.el (mh-undo-folder): Ditto. - - * mh-mime.el (mh-mime-save-parts): Ditto. - - * mh-seq.el (mh-subject-to-sequence-unthreaded) - (mh-narrow-to-subject, mh-delete-subject): Ditto. - - * mh-index.el (mh-index-sequenced-messages) - (mh-index-new-messages, mh-index-ticked-messages): Discovered that - in general we should only use question marks in yes-or-no-p or - y-or-n-p prompts, but not in other prompts that use - completing-read and offer defaults. In these cases, use colons - instead (closes SF #730470). - - * mh-mime.el (mh-mime-save-parts): Ditto. - - * mh-utils.el (mh-prompt-for-folder): Ditto. - - * mh-alias.el (mh-alias-apropos): Multiple messages are usually - shown one at a time rather than appended. Send output to - mh-aliases-buffer instead of *Help*. - (mh-alias-local-users): Checkdoc fix. +2005-10-09 Bill Wohler <wohler@newt.com> - * mh-funcs.el (mh-undo-folder): Removed commented-out code since - its deadline had expired. - - * mh-utils.el (mh-aliases-buffer): New buffer name, used in - mh-aliases.el. - -2003-08-06 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-x-image-url-cache-canonicalize): Make this - function work for XEmacs too. - (mh-collect-folder-names): Use folders instead of flists. One - advantage is that folders is available on MH while flists is not. - Another is that if an explicit -sequence argument isn't given and - Unseen-Sequence profile is not present then flists croaks while - folders doesn't. - (mh-collect-folder-names-filter): Don't consider folder names that - start with a `.' character. This is needed since the folders - command doesn't filter them out like flists does. - - * mh-index.el (mh-replace-string): Add autoload for it. - -2003-08-05 Satyaki Das <satyakid@stanford.edu> - - * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw) - (mh-mml-forward-message): The variable mh-sent-from-msg can be a - list. So check that the value is really a number before using it - like one. - - * mh-comp.el (mh-insert-letter): Same as above. - - * mh-utils.el (mh-picon-get-image): Make the code that finds the - address of the sender more robust. - (mh-face-display-function): Make it work with XEmacs. - (mh-picon-image-types): A new variable that stores what image - types can be used. - -2003-08-05 Satyaki Das <satyakid@stanford.edu> - - * mh-customize.el (mh-tool-bar-define): Make the save button such - that is activated only if the buffer needs to saved. - - * mh-utils.el (mh-face-display-function, mh-picon-get-image): Some - domains, for instance cs.cmu.edu, don't have xpm files. So we need - to search for all three files. The change does that. - (mh-picon-file-contents): A utility function to return the - contents of a file as a string. - (mh-picon-get-image): Write it as a loop to make it simpler. - (mh-x-image-set-download-state): Make the link simpler. - -2003-08-04 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-x-image-url-display): Don't bother to try to - download image if we don't have the necessary tools to display - it. - (mh-face-display-function): Add preliminary support for "domain" - picons. - (mh-picon-get-image, mh-picon-generate-path): Functions to find - best match for domain in the From header field. - - * mh-e.el (mh-previous-unread-msg): If some of the messages in the - unseen sequence are not present in the folder buffer then calling - this function gets stuck and can't skip over them. The change - fixes this. - (mh-next-unread-msg): Same as above. - -2003-08-04 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-show-mode): Added cross reference to - mh-folder-mode in docstring (closes SF #728638). Added - \\{mh-show-mode-map} to show keymap. - - * mh-e.el (mh-folder-mode): Added information about ranges to - docstring (closes SF #728638). - - * mh-speed.el (mh-speed-refresh): New function that calls - mh-speed-flists and mh-invalidate-map. - (mh-folder-speedbar-key-map): Replaced keybindings for - mh-speed-invalidate-map and mh-speed-flists with a single binding - for mh-speed-refresh. - (mh-folder-speedbar-menu-items): Replaced menu items for Run - Flists and Invalidate Cached Folders with the single menu item - Refresh Speedbar in order to simplify the UI. - - * mh-customize.el (mh-fetch-x-image-url): Added DOS as another - reason not to set this to t. - -2003-08-04 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-scan-folder): Handle ranges from user input properly. - -2003-08-03 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-find-msg-get-num): Removed. If threading isn't - present, the messages are sorted by index. So `mh-goto-msg' was - implemented as a binary search and this function was used in that - implementation. So this isn't needed any more. - (mh-msg-search-pat): Removed. Before the advent of message - threading, this function was used to generate a regexp used to - search for a particular message. It isn't used anymore. The - variable `mh-scan-msg-number-regexp' should be updated and used in - `mh-goto-msg' instead of hardcoding the regexp in the code. Then - we might be able to better support other scan line formats in the - future. - - * mh-seq.el (mh-map-to-seq-msgs, mh-notate-seq): Removed. These - functions were used to notate user sequences. But calling - `mh-goto-msg' inside of a loop is inefficient. So the sequence - notation code was rewritten thereby making these functions - redundant. - (mh-copy-line-to-point): Removed. This function was used in the - implementation the now removed function `mh-copy-seq-to-point'. - That function was problematic and was replaced by the less general - `mh-copy-seq-to-eob'. This makes `mh-copy-line-to-point' - redundant. - (mh-region-to-msg-list): Removed since this is a special case of - the more general `mh-range-to-msg-list'. - - * mh-loaddefs.el: Regenerated. - -2003-08-03 Jeffrey C Honig <jch@honig.net> - - * mh-customize.el (mh-invisible-header-fields-default): Added - several new fields to hide. Sorted the list with sort-lines. - -2003-08-03 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-invisible-headers): Variable renamed to - `mh-invisible-header-fields-compiled'. - (mh-invisible-headers): Implement above change. - - * mh-utils.el (mh-display-msg): Idem. - - * mh-mime.el (mh-mm-inline-message): Idem. - - * mh-comp.el (mh-insert-letter): Idem. - -2003-08-03 Bill Wohler <wohler@newt.com> - - * mh-speed.el (mh-folder-speedbar-menu-items): Added separator - between standard and MH-E menu items. Use headline capitalization - in menu items. - - * mh-utils.el (mh-temp-fetch-buffer): New constant to hold - buffer name for wget output. - (mh-x-image-url-fetch-image): Use mh-temp-fetch-buffer instead - of hard-coded buffer name. Use make-temp-file to avoid race - conditions and subsequent security issues raised in make-temp-name - docstring. - -2003-08-03 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-wget-executable, mh-wget-choice, mh-wget-option) - (mh-x-image-url-fetch-image): Support the use of `curl' and - `fetch' as alternatives to `wget'. - (mh-wget-choice): Change order of search. - (mh-x-image-url-fetch-image): Rename buffer. - -2003-08-03 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-x-image-set-download-state) - (mh-x-image-get-download-state): Specially named symbolic links - are used to keep track of whether a X-Image-URL header field needs - to downloaded the next time it is seen. These functions get and - set the symlinks appropriately. - (mh-x-image-url-fetch-image): Simplified since the query has been - moved to `mh-x-image-url-display'. Also if wget isn't present then - try again next time since the user might install wget before - trying once more. - (mh-x-image-scale-and-display): Handle absence of the `convert' - program better. If it isn't present then we will try to display - the image the next time it is encountered. Also use the -geometry - option to convert since the -resize option isn't present in older - versions. - (mh-x-image-url-display): Move all the code that decides whether - an X-Image-URL header field will be fetched in this function. Also - remember the user's decision so that if the image couldn't be - fetched the first time, we will try to fetch it later on without - asking again. - -2003-08-02 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-local-users): Exclude all aliases already - in mh-alias-alist from `ali' (closes SF #772595). - -2003-08-01 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-x-image-display, mh-x-image-url-display): Avoid - a race. The X-Image-URL is displayed asynchronously. Suppose a - message with a image is shown with `mh-show'. If a different - message is displayed before the image can be fetched, then the new - message will have the image displayed. With this change the race - is less likely to happen. - -2003-08-01 Peter S Galbraith <psg@debian.org> - - * mh-inc.el (mh-inc-spool-map): Fix what `mh-inc-spool-map-help' - must look like as a fake `mh-help-messages' in order to work - correctly in mh-help. - -2003-07-31 Bill Wohler <wohler@newt.com> - - * mh-inc.el (mh-inc-spool-map): Use mh-help instead of - mh-ephem-message in order to display help in its own buffer - instead of minibuffer. - - * mh-utils.el (mh-help-buffer): New variable to hold the name of - the MH-E help buffer name. - - * mh-funcs.el (mh-help, mh-prefix-help): Use with-electric-help to - display help messages. I observed a friend with a vision - disability and the 5 seconds the help appeared on the screen was - not long enough for him to lock on it. I've therefore changed the - help function to display the help in its own buffer called *MH-E - Help* (closes SF #493740 and SF #656631). - - * mh-customize.el (mh-fetch-x-image-url): Changed default from nil - to 'ask. Updated docstring from manual. - (mh-invisible-header-fields-internal): Added X-Image-URL. - (mh-show-use-xface-flag): Updated docstring from manual. - (mh-x-face-file): Ditto. - - * mh-mime.el (mh-mhn-compose-external-type): Don't insert the - directory parameter if it's nil. The mhbuild man page indicates - that this parameter is optional, so this should be fine. - - * mh-comp.el (mh-letter-mode-map): Added keybindings for - mh-mhn-compose-anon-ftp and - mh-mhn-compose-external-compressed-tar. - (mh-letter-menu): Uncommented menu items for same. - -2003-07-30 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-pick.el (mh-do-pick-search): Removed since the function - `mh-pick-do-search' performs the same action as this function. - - * mh-index.el (mh-index-update-unseen): Removed since the - generalized sequence synchronization code that keeps sequences in - index folders in sync with the sequences in the source folders - makes this function redundant. - - * mh-e.el (mh-folder-unseen-seq-name, mh-folder-unseen-seq-list): - Removed. These two functions were used in the unseen sequence - highlighting before the sequence highlighting code was - generalized. In any event calls to the function - `mh-folder-unseen-seq-name' can be replaced by the variable - `mh-unseen-seq' and calls to `mh-folder-unseen-seq-list' can be - replaced with (cdr (assoc mh-unseen-seq mh-seq-list)). - (mh-unmark-all-headers): Removed since this function has been - superseded by mh-remove-all-notation. - (mh-map-over-seqs): Removed since we now have the generalized - iteration over message ranges (the `mh-iterate-on-range' macro) - that can be used instead. - (mh-notate-if-in-one-seq): Removed. This function was used for - changing the `%' notation for user sequences. It can't be used for - that purpose any more, since we have a different scheme now. - - * mh-unit.el (mh-unit-tests): Removed since it isn't needed any - more. - (mh-unit): Run all function that start with the string - "mh-unit-test-". - -2003-07-30 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-invisible-header-fields): Checkdoc fix. - - * mh-utils.el (mh-x-image-url-cache-canonicalize): Shortened using - example in files.el:make-backup-file-name-1. - (mh-face-display-function): Added X-Image-URL to docstring. - - * mh-unit.el (mh-unit-x-image-url-cache-canonicalize): New - function to test mh-x-image-url-cache-canonicalize since it lent - itself well to unit testing. Had to start somewhere! - (mh-unit-equal): New function that throws an error if RESULT - doesn't equal EXPECTED. - (mh-unit): Call mh-unit-x-image-url-cache-canonicalize. - -2003-07-29 Satyaki Das <satyakid@stanford.edu> - - * mh-unit.el (mh-unit-update-call-graph): Make the function work - better with dotted lists, that is lists of the form (a b c . d) - where `d' isn't nil. With this we are able to avoid marking some - functions as unused even though they are actually used in alists. - -2003-07-28 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-letter): Remove `mh-visible-headers' - operation. - - * mh-mime.el (mh-mm-inline-message): Same. - - * mh-utils.el (mh-display-msg): Same. - (mh-clean-msg-header): Make a note of above change. - - * mh-customize.el (mh-invisible-header-fields-internal): Renamed - from prior `mh-invisible-header-fields-default'. - (mh-invisible-header-fields-default): Renamed from prior - `mh-invisible-header-fields-default-override'. - (mh-invisible-header-fields): Renamed from prior - `mh-invisible-header-fields-user'. - (mh-visible-headers): Removed! We use invisible fields only now. - (mh-visible-header-fields): Removed! - -2003-07-28 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-invisible-header-fields-default): Added 3 - new fields to hide. - -2003-07-28 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-show): Add an extra argument to the function so - that interactive use will always force redisplay of the message. - - * mh-mime.el (mh-mime-display, mh-mm-inline-message): Bind the - variables `mm-verify-option' and `mm-decrypt-option' so that - verification and decryption of mail can happen without any - additional tinkering. - -2003-07-25 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-invisible-header-fields-default): New defvar - holding default fields to hide. This replaces the old - `mh-invisible-header-fields' defcustom. - (mh-invisible-header-fields-user): New defcustom. Users add - fields to suppress that we didn't include in - `mh-invisible-header-fields-default'. This could be named simply - `mh-invisible-header-fields' and it wouldn't really break anything - for users who have customized it to a long list now redundant with - `mh-invisible-header-fields-default'. - (mh-invisible-header-fields-default-override): New defcustom. - Users check off the fields they want displyed from what we - included in `mh-invisible-header-fields-default'. - (mh-invisible-headers): Function adapted to new variables. - -2003-07-25 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-inc-folder): If the user is in a different folder - displaying a message and runs mh-inc-folder, then the folder - changes to +inbox but the show window continues to display the - message in the old folder. The change fixes this. - (mh-visit-folder): Make the handling of the show window similar to - that of mh-inc-folder. - -2003-07-24 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-folder-message-menu, mh-folder-folder-menu): Use the - predicate mh-outstanding-commands-p instead of its exapansion. - Also use the same label in both menus. - (mh-outstanding-commands-p): Generalized so that it will work in - mh-show-mode buffers as well. - - * mh-customize.el (mh-tool-bar-define): Enable tool-bar button for - mh-execute-commands only if there are pending deletes or refiles. - -2003-07-19 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-show-msg): If a unseen message is first marked - for deletion/refiling and then displayed, the bold highlighting - does not go away. This change fixes that. - - * mh-seq.el (mh-msg-is-in-seq): Fix a bug in the function. If any - message was marked for refiling, then the function would have you - believe that every message in the folder is being refiled. - -2003-07-17 Bill Wohler <wohler@newt.com> - - * mh-e.el: Removed email address for Stephen Gildea's in Change - Log at his request (damn spammers). Removed other email addresses - while I was at it since the SourceForge URL should be sufficient - contact information. - - (mh-scan-format-*mh): Fixed typo in comment above these variables. - These variables are used if mh-scan-format-file is t, not nil. - Also mh-scan-format-file is no longer "above" (courtesy Stephen - Gildea). - -2003-07-17 Satyaki Das <satyakid@stanford.edu> - - * mh-mime.el (mh-mhn-quote-unescaped-sharp): New function that - quotes `#' characters in the first column that aren't part of a - MHN directive. - (mh-mhn-directive-present-p): Generalized to allow the function - to search for MHN directives in a part of the buffer. - (mh-edit-mhn): Quote unescaped `#' characters in the draft (closes - SF #762464). - -2003-07-16 Satyaki Das <satyakid@stanford.edu> - - * mh-alias.el (mh-alias-read-address-map): If - mh-alias-flash-on-comma is nil when mh-alias is loaded, then - setting mh-alias-flash-on-comma to t later on doesn't turn on - address completion display till Emacs is restarted. The change - fixes this. - -2003-07-15 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-cmd-note): Cleaned up docstring (changed phrase - to sentences). Moved to Scan Line Formats section. - (mh-scan-msg-number-regexp) - (mh-scan-msg-overflow-regexp, mh-scan-msg-format-regexp) - (mh-scan-msg-format-string, mh-scan-msg-search-regexp): Cleaned up - docstrings (changed phrases to sentences). - (mh-note-seq): Cleaned up docstring (changed phrase to sentences). - Also, this variable is now a character and not a string. Moved to - Scan Line Formats section. - - * mh-funcs.el (mh-note-copied, mh-note-printed): Cleaned up - docstrings (changed phrases to sentences). Also, these variables - are now characters and not strings. - - * mh-e.el (mh-scan-format-mh, mh-scan-format-nmh): Filled. I was - hoping to quote the hint `t' but checkdoc wouldn't let me. - (mh-note-deleted, mh-note-refiled, mh-note-cur): Moved to Scan - Line Formats section. - (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp) - (mh-scan-refiled-msg-regexp, mh-scan-valid-regexp) - (mh-scan-cur-msg-number-regexp, mh-scan-date-regexp) - (mh-scan-rcpt-regexp, mh-scan-body-regexp) - (mh-scan-subject-regexp, mh-scan-format-regexp): Cleaned - up docstrings (changed phrases to sentences). - (mh-scan-cur-msg-regexp): Marked this variable as obsolete; it - should be removed for 8.0. - - * mh-comp.el (mh-note-repl, mh-note-forw, mh-note-dist): Cleaned - up docstrings (changed phrases to sentences). Also, these - variables are now characters and not strings. - -2003-07-15 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-index-update-single-msg) - (mh-index-create-sequences): Handle the situation where there are - copies of the exact same message correctly. - -2003-07-15 Satyaki Das <satyakid@stanford.edu> + * mh-init.el (mh-image-load-path): New function that adds the path + to the MH-E images to the image-load-path or load-path depending + on the version of Emacs. - * mh-seq.el (mh-thread-update-scan-line-map): Modified since - notation is already a character. - - * mh-utils.el (mh-note-seq): Convert from string to character. - (mh-notate): Modified since characters are used to notate instead - of strings of length one. - - * mh-comp.el (mh-note-repl, mh-note-forw, mh-note-dist): Convert - from string to characters. - - * mh-e.el (mh-note-deleted, mh-note-refiled, mh-note-cur): Same as - above (closes SF #770772). - (mh-unmark-all-headers): Modified since mh-note-* variables are - now characters. - (mh-remove-sequence-notation): The mh-notate function remembers - the previous notation. Before the change to the mh-note-* - variables, mh-notate would only remember the change if a string - was used to notate the message. Now mh-notate is always called - with a character notation. So the deletion has to take place - explicitly. - -2003-06-28 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-mhn-directive-present-p): If shell comments are - present that have a space after the # but no content, then this - function would throw an error. This has been fixed (closes SF - #762458). - -2003-06-27 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-index-search): Use the new and improved - mh-index-new-folder. - (mh-index-new-folder): Improved so that redoing the same search - will reuse the old index folder. - (mh-index-folder-search-regexp): New function which that extracts - out the search expression that produced the index folder. - -2003-06-24 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Set to 7.4.1+cvs. - -2003-06-25 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.4.1. - - * MH-E-NEWS, README: Updated for release 7.4.1. - - * mh-e.el (Version, mh-version): Updated for release 7.4.1. - -2003-06-25 Bill Wohler <wohler@newt.com> - - * mh-unit.el (require 'cl): Added. Needed when compiling - separately. - - * Makefile (clean): Now a double-colon rule. Added a second clean - target to remove mh-unit.elc. - (compile): Removed mh-unit.elc. - (mh-unit.elc): New target used to compile mh-unit. - -2003-06-24 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Set to 7.4+cvs. - -2003-06-24 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.4. - - * MH-E-NEWS, README: Updated for release 7.4. - - * mh-e.el (Version, mh-version): Updated for release 7.4. - -2003-06-24 Bill Wohler <wohler@newt.com> - - * mh-alias.el (mh-alias-gecos-name, mh-alias-local-users) - (mh-alias-suggest-alias): s/gcos/gecos. The original acronym was - GECOS but was later renamed to GCOS (see - http://info.astrian.net/jargon/terms/g/GCOS.html). But the term - really needs to match the field named pw_gecos in struct passwd in - /usr/include/pwd.h - - * mh-customize.el (mh-letter-faces): New group to house - mh-letter-header-field-face. - (mh-interpret-number-as-range-flag) - (mh-kill-folder-suppress-prompt-hook): Use "you" instead of "the - user" to make text more friendly. - (mh-index-ticked-messages-folders, mh-visible-headers) - (mh-visible-header-fields): Alphabetized. - (mh-alias-passwd-gcos-comma-separator-flag): Alphabetized and - s/gcos/gecos. - (mh-alias-local-users-prefix): Fixed docstring. Prefixes are - prepended, not appended. Additional checkdoc fix. - (mh-letter-header-field-face): Set group to new group - mh-letter-faces and moved option into this group. - - * mh-index.el (mh-index-sequenced-messages): Improved wording of - docstring and mentioned use of prefix argument. - - * mh-seq.el (mh-widen): Made docstring more accurate (hopefully!). - -2003-06-18 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-replace-string): Modified to preserve case of - replacement text. - (mh-index-parse-search-regexp): Preserve case of search terms. - This is needed to take advantage of the acronym indexing in - swish++ (closes SF #755718). - -2003-06-13 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-show-index-sequenced-messages): Interactive - function callable from the show buffer. - (mh-show-folder-map): Add key binding for "F q". - - * mh-e.el (mh-folder-map): Same as above. - - * mh-index.el (mh-index-sequenced-messages): Add interactive spec - to the function (closes SF #718833). - -2003-06-13 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-flists-execute): Needed to expand mhpath too. - -2003-06-12 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-flists-execute): Modified so that flists - present in mh-progs is called. - -2003-06-07 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-forward, mh-forward): Use (mh-mail-header-end) to - find the end of headers instead of doing an re-search-forward - based on mh-mail-header-separator. - -2003-06-06 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-toggle-header-field-display): Make the - function callable from the show buffer. This means that the - buffer is temporarily made writable and the modification status - of the buffer restored to the original value. - -2003-06-06 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-address-mail-regexp): Bug fix! It wasn't a true - copy of the goto-addr variable. My modification only recognized - addresses with one dot after the @. Sorry about that. - -2003-06-05 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-replace-in-string): Move comment into doc - string to satisfy checkdoc. - - * mh-alias.el (mh-alias-apropos): Checkdoc fix. - -2003-06-05 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-identity-list): Fixed typo in docstring. - -2003-06-05 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-complete-function-alist): Add bcc an reply-to. - -2003-06-04 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-complete-function-alist): Add dcc. - -2003-06-03 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-replace-in-string): New function name instead of - `dired-replace-in-string'. - * mh-alias.el (mh-alias-gcos-name): Use it. - - * mh-alias.el (mh-alias-apropos): New command. Show all aliases - that match REGEXP either in name or content. - - * mh-alias.el (mh-alias-suggest-alias): Add no-comma-swap optional - arg. - (mh-alias-canonicalize-suggestion): Change a comma to a period in - created aliases. - (mh-alias-local-users): Call `mh-alias-suggest-alias' with - `no-comma-swap' arg set to t. - - * mh-alias.el (mh-alias-local-users): Fix case of nil - `mh-alias-passwd-gcos-comma-separator-flag'. - - * mh-alias.el (mh-alias-gcos-name): Fix for case of empty gcos - name field. - (mh-alias-local-users): Fix same. - - * mh-alias.el (mh-alias-canonicalize-suggestion): Replace use by - verbose `replace-regexp' by a looped `replace-match' - -2003-06-02 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (dired-replace-in-string): Bind if not already - defined. Borrowed from dired.el - - * mh-alias.el (mh-alias-gcos-name): switch to using - dired-replace-in-string. - -2003-06-02 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-letter-font-lock-keywords): Fontify header - fields in the draft buffer that aren't skipped when navigating - with TAB (or S-TAB). - - * mh-customize.el (mh-clean-message-header-flag) - (mh-invisible-headers, mh-invisible-header-fields) - (mh-alias-passwd-gcos-comma-separator-flag): Checkdoc fix. - (mh-letter-header-field-face): New face to fontify the header - fields. - - * mh-comp.el (mh-insert-auto-fields-done-local): Checkdoc fix. - (mh-letter-mode, mh-letter-mail-header-end-marker): Remember the - end of the message header in a marker. This is used to fontify the - header fields. - (mh-font-lock-field-data, mh-letter-header-end): Functions used - to fontify message header fields. - - * mh-alias.el (mh-alias-gcos-name): Checkdoc fix. - -2003-06-02 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-gcos-name): New function. Return a usable - address string from a GCOS-NAME and USERNAME. - (mh-alias-local-users): Use it. - - * mh-customize.el (mh-alias-passwd-gcos-comma-separator-flag): New - defcustom. Whether the gcos field in the passwd file uses comma as - a separator. - - * mh-customize.el (mh-alias-local-users-prefix): New - defcustom. String to append to the real names of users from the - passwd file. If nil, use the username string unmodified instead of - the real name from the gcos field of the passwd file. - - * mh-alias.el (mh-alias-local-users): Use it to generate aliases - which by default are now the real name prefixed by "local." - -2003-06-01 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-modify-header-field): Bug fix. Calling with with - a value that was already inserted causes it to get inserted a - second time. I have wrapped the value around \b word delimiters. - Hope there are no side effects for other code. - - * mh-comp.el (mh-insert-auto-fields): Attempt regardless of - `mh-insert-auto-fields-done-local' flag in interactive use. - - * mh-comp.el (mh-insert-auto-fields-done-local): Keep track of - whether `mh-insert-auto-fields' was called in a buffer. - (mh-insert-auto-fields): Set it and use it. Also, don't enter an - identity if one was already entered manually. - (mh-send-letter): Call `mh-insert-auto-fields' again when sending - message. - (mh-compose-and-send-mail): Call `mh-insert-auto-fields' _after_ - `mh-letter-mode' so `mh-identity-local' doesn't get cleared by the - mode invocation. - -2003-06-01 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-seq.el (mh-thread-parse-scan-line): The value of - mh-scan-field-from-start-offset was hardcoded in one place. The - change fixes that. - - * mh-utils.el (mh-show-mode): Setup mh-show-mode to display - elipsis for truncated header fields and to skip over them quickly. - (mh-clean-msg-header): Make another pass over the message header - fields truncating long headers. - - * mh-comp.el (mh-letter-complete): Remove unnecessary autoload. - (mh-letter-toggle-header-field-display): Take into account that - an empty line can also end the message header. The function was - originally written with the draft buffer in mind. - -2003-06-01 Mark D. Baushke <mdb@gnu.org> - - * mh-comp.el (mh-letter-mode-map): Do not steal C-t. Use C-c C-t - for the mh-letter-toggle-header-field-display command. - -2003-05-31 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-visible-headers): Changed to a defvar that - will be set using new `mh-visible-headers' function using - `mh-visible-header-fields' as input. - (mh-visible-headers): New function, described above. - (mh-visible-header-fields): New defcustom. The UI to set - `mh-visible-headers'. - (mh-invisible-header-fields-set): Deleted. Code merged into - defcustom since it's so short. - -2003-05-31 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-toggle-header-field-display): Extended to - truncate headers if they are too long. - (mh-letter-truncate-header-field): Make code that would be - duplicated into a function. - (mh-letter-hide-all-skipped-fields): Modified so that fields that - are important are hidden if they are too long. - -2003-05-31 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el ("tool-bar"): Since tool-bar isn't available on - XEmacs, requiring it causes problems. So load it instead. - (mh-do-at-event-location): New macro to do stuff at location of - events. This has been refactored out of mh-push-button. - - * mh-mime.el (mh-push-button): Simplified since it now uses the - mh-do-at-event-location macro. - - * mh-comp.el (mh-hidden-header-keymap): Keymap to make mouse - clicks on header toggle its display. - (mh-letter-toggle-header-field-display-button): Interactive - function to toggle header display when mouse button is clicked. - -2003-05-31 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-mode): Remove conditional on tool-bar-mode. - - * mh-comp.el (mh-letter-mode): Same. - - * mh-utils.el (mh-show-mode): Same. - -2003-05-30 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (tool-bar): Load tool-bar explicitly. This avoids - problems with incorrect initialization of tool-bar-map otherwise. - -2003-05-30 Peter S Galbraith <psg@mixed.dyndns.org> - - * mh-comp.el (mh-modify-header-field): Minor fix of spaces for - when an entry already existed. - (mh-insert-auto-fields): Make interactive. Add optional `quiet' - arg for use when called systematically on every buffer. Won't be - used interactively for more verbose output. - (mh-letter-mode-map): Add \C-c\M-d keybinding for - mh-insert-auto-fields. - - * mh-identity.el (mh-identity-make-menu): Add a menu entry in - Identity menu for mh-insert-auto-fields. - - * mh-customize.el (mh-invisible-header-fields): Add entries for - `Envelope-to' and `X-Original-To'. - -2003-05-30 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-mode): Skip over invisible text quickly. - -2003-05-30 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-mode): Use text properties to achieve - invisibility. This is more portable and the same code can be used - for all Emacs versions. - (mh-letter-toggle-header-field-display): Rewritten to use text - properties. - (mh-dead-overlay-p, mh-letter-hidden-header-fields)): Removed. - -2003-05-29 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-hidden-header-fields, mh-letter-mode): Add - a hash table, initialized it in mh-letter-mode, to remember the - overlays introduced to hide long headers fields. - (mh-insert-x-mailer): checkdoc fix. - (mh-compose-and-send-mail): Hide unimportant message header - fields. - (mh-letter-header-field-regexp, mh-letter-header-field-at-point) - (mh-letter-next-header-field, mh-letter-previous-header-field): - Add a variable that contains the header-field name regexp and use - it instead of the regexp directly. - (mh-letter-toggle-header-field-display, mh-letter-mode-map): Add - new key binding in mh-letter-mode that toggles display of long - header fields, in mh-letter-mode. - (mh-dead-overlay-p): A predicate which checks if a given header - field has an active overlay hiding it. - (mh-letter-hide-all-skipped-fields): New function that shortens - uninteresting headers. - -2003-05-29 Eric Ding <ericding@acorn.bethesda.net> - - * mh-comp.el (mh-letter-next-header-field-or-indent): Call - indent-relative rather than indent-for-tab-command. - -2003-05-29 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-complete-or-space): The meaning of the - customizable variable was reversed. Also make the doc string more - accurate. - -2003-05-28 Satyaki Das <satyakid@stanford.edu> - - * mh-customize.el (mh-compose-skipped-header-fields): New - customizable variable that lists headers that are skipped. - (mh-compose-space-does-completion-flag): Option to do completion - with space (closes SF #745634). - - * mh-comp.el (mh-insert-x-mailer): Check the value of - mh-insert-x-mailer-flag in this function instead of in its caller. - (mh-compose-and-send-mail, mh-send-letter): Insert X-Mailer and - X-Face headers when the draft is first presented to the user - instead of when the mail is sent (closes SF #745624). - (mh-letter-complete-or-space): Allow for this key binding to be - overridden. - (mh-letter-next-header-field): Fix a problem with multiline header - fields. - (mh-letter-next-header-field, mh-letter-previous-header-field): - Make these functions skip unwanted header fields. - (mh-letter-skipped-header-field-p): New predicate that checks if a - header field is to be skipped. - - * mh-seq.el (mh-thread-inc): Inc'ing email in threaded mode was - causing duplication of the current notation. The change fixes that. - -2003-05-28 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-beginning-of-word): Generalize it to skip - arbitrary number of words. - (mh-letter-complete-or-space): New interactive function that - allows space character to be used for completion. - (mh-letter-mode-map): Add key binding to allow space to be used - for completion. - -2003-05-27 Satyaki Das <satyakid@stanford.edu> - - * mh-customize.el (mh-compose-prompt-flag): Customizable variable - that controls whether the user is prompted when composing a draft. - It replaces mh-dont-prompt-for-address-flag (closes SF #745622). - - * mh-comp.el (mh-letter-next-header-field): If the point is in - the header field name, then go the start of the header field - instead of the next field. - (mh-interactive-read-address, mh-interactive-read-string) - (mh-letter-adjust-point): Use mh-compose-prompt-flag instead of - mh-dont-prompt-for-address-flag. - -2003-05-27 Satyaki Das <satyakid@stanford.edu> - - * mh-customize.el (mh-tool-bar-define): Fix incorrect usage of - set-specifier (closes SF #745655). Also the button enabling code - interacts poorly with font-lock in XEmacs. So disable that. - -2003-05-26 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-folder-from-address): The function - message-fetch-field expects that the buffer is narrowed to the - mail header. The change makes sure that this is indeed the case. - - * mh-mime.el (mh-add-missing-mime-version-header) - (mh-decode-message-body): Same as above. - -2003-05-25 Satyaki Das <satyakid@stanford.edu> - - * mh-alias.el (mh-alias-minibuffer-confirm-address): Modified to - use mh-beginning-of-word. - - * mh-comp.el (mh-letter-confirm-address): Calling - mh-alias-reload-maybe can be expensive. So do it only if we really - need to. - -2003-05-25 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-comp.el (mh-letter-confirm-address): Load aliases if not yet - loaded. - - * mh-alias.el (mh-alias-reload-maybe): Autoload it since it is - used in mh-comp.el. - -2003-05-24 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-letter-skip-leading-whitespace-in-header-field): - New function to skip leading space and tab characters when placing - point in a header field. - (mh-letter-next-header-field, mh-letter-previous-header-field): - Skip leading whitespace when using TAB to navigate to header - fields. - (mh-letter-confirm-address): New interactive function that - displays the last expansion of the last alias when "," is typed. - (mh-letter-mode-map): Add key binding for "," (closes SF #745634). - -2003-05-23 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el (mh-edit-again, mh-forward, mh-send) - (mh-send-other-window, mh-send-sub): Modified so that if - mh-dont-prompt-for-address-flag is non-nil, then MH-E won't prompt - for addresses to send mail to and instead directly jump to the - draft (closes SF #745622). - (mh-letter-complete-function-alist): An alist that is used to - decide which completion function to use in which header. This - variable should probably be customizable. - (mh-letter-complete): Now uses mh-letter-complete-function-alist. - (mh-letter-header-field-at-point, mh-letter-next-header-field) - (mh-letter-next-header-field-or-indent) - (mh-letter-previous-header-field): Commands for easier navigation - to header fields. - (mh-dont-prompt-for-address-flag): Variable which controls - whether MH-E prompts for addresses. - (mh-interactive-read-address, mh-interactive-read-string): Two - functions to ask user for input depending on the value of the - above flag. - (mh-letter-adjust-point): New function that sets point to the - first header field. - (mh-letter-mode-map): Add key bindings for TAB and S-TAB (closes - SF #745627). - -2003-05-23 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-comp.el (mh-complete-word): New function which is - approximately equivalent to mail-abbrev-complete-alias. - (mh-beginning-of-word): Refactor repeated code into its own - function. - (mh-folder-expand-at-point): Make Fcc completion work in XEmacs - by not using mail-abbrev-complete-alias. - - * mh-alias.el (mh-alias-letter-expand-alias): Make alias - expansion work in XEmacs. Replace the use of the function - mail-abbrev-complete-alias, which isn't present in XEmacs. - - * mh-mime.el (mh-mml-to-mime): If a MIME message is created - immediately after starting MH-E then invoking mh-mml-to-mime - causes an error because "message" isn't being loaded. The change - works around this problem. - (mh-mime-maybe-display-alternatives): Give better indication of - which MIME parts are alternatives. - -2003-05-22 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-add-sequence-notation, mh-remove-sequence-notation): - Just delete and add the same character in the scan line to make - font-lock refontify it. The previous trick of removing all text - properties didn't work in XEmacs. - - * mh-seq.el (mh-put-msg-in-seq): Complain if the user tries to - create an invalid MH sequence. - - * mh-mime.el (mh-mime-display-alternative): Modified to - optionally display alternatives as buttons. - (mh-mime-maybe-display-alternatives): New function which displays - alternative MIME parts as buttons. - (mh-mime-save-part): Initially mh-mime-save-parts-directory is - nil and calling file-name-as-directory with nil arg leads to an - error. So fall back on the default-directory in that case. - - * mh-customize.el (mh-display-buttons-for-alternatives-flag): New - customizable variable that controls display of the alternative - MIME parts (closes SF #741288). - -2003-05-22 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-invisible-header-fields): Commented out - "User-Agent:". It's similar to X-Mailer, so display it. - -2003-05-21 Satyaki Das <satyakid@stanford.edu> - - * mh-customize.el (mh-tool-bar-define): Add an optional argument - to the button description that can dynamically enable/disable - buttons. - (mh-tool-bar-define): The alias grabbing button is disabled if the - current message doesn't have a From header or if the sender is - already in the user's alias. This functionality was inadvertently - lost when the Emacs/XEmacs toolbar unification took place. - -2003-05-20 Satyaki Das <satyakid@stanford.edu> - - * mh-unit.el (mh-unit-construct-call-graph): Be more aggressive - and flag interactive functions that aren't autoloaded or have no - key bindings. - (mh-unit-interactive-function-p): Remove now unused function. - (mh-unit, mh-unit-construct-call-graph): Replace mh-files with - mh-unit-files. - -2003-05-20 Bill Wohler <wohler@newt.com> - - * mh-unit.el (mh-prune-trailing-spaces): Renamed to - mh-unit-prune-trailing-spaces to clean up the namespace. - (mh-files): Renamed to mh-unit-files. Ditto. - (mh-unit): Checkdoc fix. - - * mh-index.el (mh-index-p): Added autoload cookie since mh-index-p - is used by mh-customize.el. This calls for another mh-unit test - that looks for mh-autoloads for functions that are no longer used - in other files. - - * mh-loaddefs.el: Regenerated. - -2003-05-20 Satyaki Das <satyakid@stanford.edu> - - * mh-unit.el (mh-unit-construct-call-graph): Factor out the code - to read the lisp files to a separate function. Also change it to - construct a function call-graph. Autoloaded functions are taken - into account. - (mh-unit-find-all-used-functions, mh-unit-called-functions) - (mh-unit-find-all-unused-functions): Find all unused functions by - computing a fixed point starting from the set of top level - functions. - (mh-unit-analyze-block): Removed. - (mh-unit-update-call-graph): mh-unit-functions-called was renamed - with modifications to update the function call graph. - -2003-05-19 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-utils.el (mh-notate): Modified to keep track of notation - that was replaced when sequence notation is added. Thus when the - sequence is deleted, the original notation is recovered. - (mh-add-msgs-to-seq): Modified to work with the new sequence - notation code. - - * mh-seq.el (mh-delete-seq, mh-put-msg-in-seq): Simplified since - we don't need to handle tick and unseen sequences specially any - more. - (mh-narrow-to-seq): Don't need to call mh-notate-user-sequences - since mh-copy-seq-to-eob already does that. - (mh-widen): Remove sequence notation, so that notation when - messages are replied to aren't lost. - (mh-copy-seq-to-eob): Simplified with the use of - mh-iterate-on-range. - (mh-thread-inc): This function doesn't need to notate user - sequences since its callers already do that. - (mh-thread-parse-scan-line): Simplified since mh-note-seq doesn't - appear in scan lines it is given as arguments. - (mh-thread-update-scan-line-map): Remove the test, since its - caller already does the required check. - (mh-thread-folder): Simplified by the use of mh-iterate-on-range. - (mh-tick-add-overlay, mh-tick-remove-overlay, mh-notate-tick): - These functions aren't needed any more, since overlays aren't used - any more. Also overlays aren't portable to XEmacs, so nasty - conditional code that used overlays in Emacs and extents in Xemacs - have been eliminated. - (mh-toggle-tick): Generalize it to work on a range of messages - like the other interactive messages. - - * mh-funcs.el (mh-undo-folder): Use mh-remove-all-notation - instead of mh-unmark-all-headers. - - * mh-e.el (mh-folder-font-lock-keywords): The entry for unseen - sequence highlighting is now done by the macro. - (mh-generate-sequence-font-lock): New macro to highlight any - arbitrary sequence. This macro is invoked twice to get the - highlighting for unseen and tick sequences. - (mh-sequence-notation-history, mh-folder-mode): New variable that - keeps track of the old notation when a message is notated with - mh-note-seq. - (mh-regenerate-headers, mh-get-new-mail): Add appropriate calls to - mh-notate-user-sequences and mh-remove-all-notation. - (mh-unmark-all-headers): Add comment that this function shouldn't - be used any more. - (mh-add-sequence-notation, mh-remove-sequence-notation): New - functions to notate message with mh-note-seq and to remove it. - (mh-remove-all-notation): Simplified to use mh-iterate-on-range. - (mh-process-commands): Use mh-remove-all-notation instead of - mh-unmark-all-headers. - (mh-notate-user-sequences, mh-delete-msg-from-seq): Simplified - since the tick and unseen sequences don't need special handling - any more. - (mh-internal-seq): Make it possible to dynamically change what - sequences are treated as internal (internal means font lock is - used to highlight the sequence). - (mh-clear-text-properties): Removed since it isn't needed - anymore. - -2003-05-19 Satyaki Das <satyakid@stanford.edu> - - * mh-unit.el (mh-unit-analyze-block, mh-unit-interactive-function-p) - (mh-unit-find-all-unused-functions): Change argument name bl to - block. - -2003-05-19 Satyaki Das <satyakid@stanford.edu> - - * mh-unit.el (mh-unit-find-all-unused-functions): New interactive - function to find all unused functions in MH-E. - (mh-unit-analyze-block, mh-unit-interactive-function-p) - (mh-unit-functions-called): Functions used by - mh-unit-find-all-unused-functions do its job. - - * Makefile (compile): Byte-compile mh-unit.el, since the analysis - to find unused code runs faster when compiled. - -2003-05-18 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-seq.el (mh-notate-deleted-and-refiled): Add autoload - declaration since this function is used in mh-index.el. - - * mh-e.el, mh-customize.el, mh-utils.el: Adjust require/provide - statements so that mh-e.el isn't loaded twice. - -2003-05-15 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-defun-show-buffer): Arrange for the current - line in the folder buffer to be highlighted even when we are in - the show buffer. - -2003-05-14 Satyaki Das <satyakid@stanford.edu> - - * mh-seq.el (mh-read-range): Allow this to work on invalid - sequences that only MH-E knows about. - - * mh-index.el (mh-create-sequence-map, mh-index-add-to-sequence) - (mh-index-delete-from-sequence): Don't consider sequences that - aren't valid MH sequences. - - * mh-e.el (mh-valid-seq-p): New predicate to check if a symbol - could be a MH sequence. - (mh-undefine-sequence, mh-define-sequence): Don't execute "mark" - unless the sequence name is a valid MH sequence. - - * mh-utils.el (mh-exec-cmd): In case an error happens in the - call-process and non-strings are present in ARGS, then the error - message isn't properly displayed. The change fixes this. - -2003-05-14 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-mime-save-part): Bug Fix: Make sure - `mm-default-directory' gets a trailing "/" if - `mh-mime-save-parts-directory' doesn't have one. Otherwise the - default in the prompt of `mh-mm-save-part' will be wrong. Perhaps - `mh-mm-save-part' needs to do this check itself. - -2003-05-14 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-unpropagated-sequences): New function and - variable to keep track of sequences that shouldn't be propagated. - (mh-create-sequence-map, mh-index-add-to-sequence) - (mh-index-delete-from-sequence): Use mh-unpropagated-sequences to - stop changes to some sequences being reflected back to the source - folders. - -2003-05-13 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-e.el (mh-process-commands): Preserve sequences when messages - are refiled (closes SF #737128). - - * mh-index.el (mh-create-sequence-map) - (mh-index-create-sequences): Refactor code that is reused into a - new function. - - * mh-customize.el (mh-refile-preserves-sequences-flag): New - customizable flag that controls whether sequences are preserved - when messages are refiled. - -2003-05-13 Eric Ding <ericding@alum.mit.edu> - - * mh-e.el (mh-scan-format): The argument for scan format files - should be -form, not -format. - -2003-05-13 Satyaki Das <satyakid@stanford.edu> - - * mh-seq.el (mh-widen): The scan line map stack was not being - properly updated when ALL-FLAG is non-nil. The change fixes that. - - * mh-e.el (mh-reset-threads-and-narrowing): The change resets the - scan line map stack. - -2003-05-12 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-seq.el (mh-thread-scan-line-map-stack) - (mh-thread-old-scan-line-map): Instead of the old scan line map, - now we need to maintain a stack of scan line maps. - (mh-narrow-to-seq): Modified so that multiple level of narrowings - can be done. We now maintain a stack of old views instead of - hiding the old scan lines. This makes it possible to have - multiple levels of narrowings. - (mh-widen): A optional prefix arg was added to allow undoing all - narrowing. - (mh-read-seq-default, mh-read-range): Don't use - mh-narrowed-to-seq, since it doesn't exist any more. - (mh-thread-initialize-hash, mh-thread-initialize): The - mh-thread-initialize function has been refactored. - (mh-thread-update-scan-line-map): Maintain notations in the stack - of scan line maps. - (mh-notate-tick, mh-toggle-tick): Simplified, since we don't have - mh-narrowed-to-seq any more. This means there is a slight loss of - functionality. Earlier if we narrowed to the tick sequence the - ticked messages weren't highlighted. This feature isn't present - any more. - - * mh-e.el (mh-execute-commands, mh-reset-threads-and-narrowing) - (mh-folder-sequence-menu, mh-get-new-mail): Use - mh-folder-view-stack instead of the now removed - mh-narrowed-to-seq. - (mh-narrowed-to-seq, mh-tick-seq-changed-when-narrowed-flag): - These variables have been removed. - (mh-folder-view-stack): New variable to keep track of a stack of - narrowings. - (mh-execute-commands, mh-get-new-mail): Add extra argument to - mh-widen so that all narrowings are undone. - - * Makefile (MH-E-SRC, MH-E-OTHERS): Move mh-gnus.el from MH-E-SRC - to MH-E-OTHERS so that it isn't byte compiled. - -2003-05-10 Satyaki Das <satyakid@stanford.edu> - - * mh-seq.el (mh-read-seq): Improve the function a bit by adding - history to the sequence prompt. - -2003-05-09 Satyaki Das <satyakid@stanford.edu> - - * mh-gnus.el: New file that won't be byte-compiled. From now on - having different Gnus versions at run-time and compile-time won't - cause errors in MH-E. - - * mh-mime.el (mh-small-show-buffer-p, mh-display-smileys) - (mh-display-emphasis): Handle all legal values of - font-lock-maximum-size. The existing code assumed didn't consider - the case where it could be an alist. - (mh-small-image-p): Simplified, so that aliasing XEmacs functions - in Emacs isn't necessary any more. - (mh-mm-display-part): Remove unnecessary call to fboundp. The - mh-funcall-if-exists does that for us any way. - (mh-defun-compat, gnus-local-map-property, mm-merge-handles) - (mm-set-handle-multipart-parameter, mm-readable-p) - (mm-long-lines-p, mm-keep-viewer-alive-p, mm-destroy-parts) - (mh-mm-save-part, mm-handle-multipart-ctl-parameter): These - compatibility functions have been moved to mh-gnus.el. - - * Makefile (MH-E-SRC): Add mh-gnus.el. - - * mh-seq.el (mh-narrow-to-header-field) - (mh-current-message-header-field): Checkdoc fixes. - - * mh-e.el (mh-undefine-sequence): Since mh-coalesce-msg-list - returns a list, apply is needed. - -2003-05-09 Noel Cragg <noel@red-bean.com> (tiny change) - - * mh-junk.el (mh-spamassassin-blacklist): Separate "--local" and - "--no-rebuild" arguments to call-process. - [Patch committed by satyaki] - -2003-05-08 Satyaki Das <satyakid@stanford.edu> - - * mh-seq.el (mh-translate-range): Take into account differnt - semantics of split-string in Emacs and XEmacs. - (mh-read-pick-regexp, mh-narrow-to-from, mh-narrow-to-cc) - (mh-narrow-to-to, mh-narrow-to-header-field) - (mh-current-message-header-field, mh-narrow-to-range): New - narrowing functions that can select messages based on different - message headers. - - * mh-utils.el (mh-show-limit-map): Add new narrowing functions - callable from the show buffer. - - * mh-e.el (mh-help-messages): Add help text for new functions. - (mh-limit-map): Add new narrowing functions (closes SF #732823). - -2003-05-07 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-collect-folder-names): Use mh-exec-daemon to - run flists. This means we don't have to remember to expand the MH - executable in the mh-progs path. - (mh-exec-cmd-daemon): Return the new process object produced. - -2003-05-06 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-folder-font-lock-unseen): Use mh-seq-list to do - unseen sequence highlighting instead of reading the .mh_sequences - file from disk every time. + * mh-customize.el: Call mh-image-load-path just before + mh-tool-bar-define so that the toolbar images can be found. -2003-05-05 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-show-sequence-map): Add key binding for S' - (closes SF #732825). - - * mh-e.el (mh-sequence-map): Ditto. - (mh-help-messages): Updated for S'. - -2003-05-04 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-index-write-data): The with-temp-buffer macro - is a bit better than write-file, so use that instead. - -2003-05-03 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-index-update-maps, mh-index-search) - (mh-index-sequenced-messages): Write index data to disk. This - allows us to recover index folder information if Emacs is - restarted, or the index folder is visited after the buffer has - been killed (closes SF #701762). - (mh-index-write-data, mh-index-read-data) - (mh-index-write-hashtable, mh-index-read-hashtable): Functions to - store and read index data information to disk. - (mh-index-insert-folder-headers, mh-index-group-by-folder): We - can no longer use object identity to compare strings, since they - might have been read back from disk. - - * mh-e.el (mh-index-data-file): New variable that stores the name - of the file that keeps track of index folder data. - (mh-make-folder): Read index folder data if available. - - * mh-utils.el (mh-show, mh-summary-height, mh-modify): Make - checkdoc happy. - - * mh-seq.el (mh-tick-add-overlay): Rearrange code to make code - more uniform. - - * mh-loaddefs.el: Regenerated. - -2003-05-02 Satyaki Das <satyakid@stanford.edu> - - * mh-seq.el (mh-tick-add-overlay): If a message with a short scan - line is ticked, then the highlighting didn't extend to the right - margin. This change fixes that. - -2003-05-01 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-help-messages): Added brackets around / and - downcased limit to be consistent with other commands with - punctuation keybindings. Don't document aliases. - -2003-05-01 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-seq.el (mh-read-range): Fix comment. - -2003-04-30 Mark D. Baushke <mdb@gnu.org> - - * mh-e.el (mh-help-messages): Better documentation for the F map. - -2003-04-30 Satyaki Das <satyakid@stanford.edu> - - * mh-utils.el (mh-find-path): Cache folder names so that - folder name completion is always fast. - (mh-flists-partial-line, mh-flists-process): Variables used for - pre-caching folder names. - (mh-collect-folder-names, mh-collect-folder-names-filter) - (mh-populate-sub-folders-cache): Functions to pre-cache folder - names. - (mh-exec-cmd): Produce more info in *MH-E Log*. - - * mh-index.el (mh-index-search): Call the correct function. - (mh-index-sequenced-messages): If folders is nil, then all mail - is searched. The change restores that. - -2003-04-30 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-summary-height): Move variable integer out - of defcustom, and instead specify that `nil' means to calculate - that size dynamically. Fixes SF #723267. - - * mh-utils.el (mh-summary-height): New function. Return ideal - mh-summary-height value for current frame height. - (mh-show-msg): Use it. - -2003-04-30 Mark D. Baushke <mdb@gnu.org> - - * mh-index.el (mh-index-ticked-messages): Fix prompt and - description string. - (mh-index-new-messages): Ditto. - - * mh-loaddefs.el: Regenerated. - - * mh-index.el (mh-index-sequenced-messages): Renamed from - mh-index-new-messages with minor argument change. - (mh-index-new-messages): Implement by calling - mh-index-sequenced-messages with the appropriate arguments. - (mh-index-ticked-messages): New function. Does the same thing as - mh-index-new-messages, but on its own set of folders and using the - mh-tick-seq instead of mh-unseen-seq. - - * mh-e.el (mh-folder-map): Add "F'" to the map for - mh-index-ticked-messages. - (mh-help-messages): Replace broken [t]hread with [n]ew messages. - - * mh-customize.el (mh-index-ticked-messages-folders): New user - customizable flag that controls the folders to be searched by - mh-index-ticked-messages. - - * mh-utils.el (mh-show-index-ticked-messages): Wrapper for - mh-index-ticked-messages. - (mh-show-folder-map): Add "F'" to the map for - mh-index-ticked-messages. - -2003-04-30 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-index-search): The old cur in the source folder - might not exist. This could cause mh-exec-cmd to fail. So don't - add an error message in that case. - -2003-04-29 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-folder-from-address): Modified to allow multiple - Cc: headers to work properly. - (mh-inc-folder, mh-visit-folder): Fix an off by one error. - - * mh-utils.el (mh-notate): Update the scan line map. This fixes a - tiny bug. In threaded view, if a message is replied to then the - message is notated with a "-". Now if inc is done then the "-" - added is lost. The change fixes this. - - * mh-seq.el (mh-translate-range): Use the correct function. - (mh-thread-update-scan-line-map): New function that updates the - scan line map when a message is notated. - -2003-04-28 Satyaki Das <satyakid@stanford.edu> - - * mh-index.el (mh-index-parse-search-regexp): Avoid compiler - warning in GNU Emacs 21.3. - - * mh-seq.el (mh-widen): Ditto. - -2003-04-28 Satyaki Das <satyakid@stanford.edu> - - * mh-customize.el (mh-interpret-number-as-range-flag): New user - customizable flag that controls whether a single number, N is - interpreted as the range last:N. - - * mh-seq.el (mh-read-range): Generalize it for use when reading - range to scan. - (mh-interactive-range): Modified to use the new mh-read-range. - - * mh-speed.el (mh-speed-view): Use mh-read-range instead of the - now removed mh-read-msg-range function. - - * mh-funcs.el (mh-pack-folder): Ditto. - - * mh-e.el (mh-rescan-folder, mh-visit-folder): Ditto. - (mh-read-msg-range): Removed. - - * mh-loaddefs.el: Regenerated - -2003-04-27 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-seq.el (mh-range-completion-function): Fix checkdoc warning. - (mh-iterate-on-range): Mention that the macro can iterate over a - MH message range too. - -2003-04-27 Bill Wohler <wohler@newt.com> - - * mh-unit.el (mh-unit): As it turns out, lm-crack-copyright has - been updated to handle multiple-line copyrights in 21.3, so - updated code to run lm-verify only if user has 21.3 or greater. - Delete buffers after use, unless user already had buffer open. - -2003-04-27 Satyaki Das <satyakid@stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-index.el (mh-index-search): The MH command "refile" changes - cur. The change restores cur in source folders. - (mh-index-new-messages): Use the appropriate arguments for - mh-read-seq. - - * mh-seq.el (mh-read-seq-default, mh-read-seq): Restore these - functions to just read sequence names. - (mh-range-seq-names, mh-range-history, mh-range-completion-map) - (mh-range-completion-function, mh-read-range): New function which - reads MH range with completion and history. - (mh-interactive-range): Use mh-read-range instead of - mh-read-seq-default. - (mh-put-msg-in-seq): Change documentation about MH message range. - - * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Change - documentation about MH message range. - - * mh-funcs.el (mh-copy-msg, mh-print-msg): Ditto. - - * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion) - (mh-refile-msg, mh-undo, mh-delete-msg-from-seq): Ditto. - - * mh-comp.el (mh-forward): Ditto. - -2003-04-26 Satyaki Das <satyakid@stanford.edu> - - * mh-comp.el, mh-e.el, mh-funcs.el, mh-junk.el, mh-seq.el: - Replace msg-or-seq with range everywhere. - - * mh-loaddefs.el: Regenerated. - -2003-04-25 Satyaki Das <satyakid@stanford.edu> - - * mh-e.el (mh-index-sequence-search-flag, mh-folder-mode): New - local variable to remember that a folder buffer contains results - from a sequence search. This is needed so that "C-u F i" will work - as expected. - (mh-visit-folder): Create sequences in the index folder. - (mh-process-commands, mh-delete-msg-from-seq): If speedbar is on - then update the speedbar message counts immediately. - (mh-delete-msg-from-seq): Make the code faster by calling "mark" - just once. Also update source folder sequence if messages are - being deleted from a sequence in an index folder. - (mh-undefine-sequence): Simplified to remove the speedbar updating - code. Also DTRT and don't change any sequence when called with an - empty list of messages. - (mh-refile-msg, mh-delete-msg): Move to next message only if the - current message has been deleted or refiled, as the case may be. - - * mh-utils.el (mh-show-msg): Update the message counts in the - speedbar, if it is on, immediately. - (mh-speed-flists-active-p, mh-speed-flists-inhibit-flag): A new - flag has been added which inhibits updating of the speedbar. This - is used to avoid needless speedbar updates when - mh-execute-commands is called in index folders. - - * mh-speed.el (mh-speed-flists): Extended so that multiple - folders can be given as arguments. Also the code that kept track - of the current folder, needed since flists adds an extra ?+ char - at the end of the current folder name, wasn't entirely correct. - That has also been fixed. - - * mh-seq.el (mh-delete-seq, mh-put-msg-in-seq): Modified so that - sequence in source folder is updated if we delete a sequence in an - index folder. - (mh-read-seq, mh-read-seq-default, mh-translate-range) - (mh-interactive-msg-or-seq): The mh-interactive-msg-or-seq - function can read in an arbitrary MH message range. - (mh-iterate-on-msg-or-seq): The macro has been extended to work on - a MH range. - (mh-subject-to-sequence, mh-subject-to-sequence-unthreaded) - (mh-subject-to-sequence-threaded, mh-thread-find-msg-subject): Fix - the mh-subject-to-sequence function so that it will work in - threaded folders too. - (mh-tick-add-overlay): Fix a leak of overlays. - (mh-toggle-tick): Ticking, or unticking, messages in the index - folder is propagated to the source folders (closes SF #709664). - - * mh-index.el (mh-flists-results-folder, mh-flists-sequence) - (mh-flists-called-flag): New variables to implement searching for - arbitrary sequences. - (mh-index-generate-pretty-name): Updated so that folder names are - generated for flists search that can take any sequence name. - (mh-index-search): Since sequences are now properly maintained the - unseen-flag argument isn't needed and hence removed. Also redoing - a sequence search with "C-u F i" is handled correctly. Finally - the speedbar is updated to reflect the new index folder created. - (mh-index-create-sequences): New function that creates sequences - in the index folder. - (mh-index-matching-source-msgs, mh-index-execute-commands): - Improved so that scan lines for refiled/deleted messages are - removed from the source folders as well. - (mh-index-add-to-sequence, mh-index-delete-from-sequence): New - functions to update sequences in source folder to reflect changes - in index folder. - (mh-index-quote-for-shell): A utility function to that quotes - characters with special meaning to /bin/sh. - (mh-flists-execute, mh-index-new-messages): Updated to search for - arbitrary sequences (closes SF #718833). - - * mh-loaddefs.el: Regenerated. - -2003-04-25 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-kill-folder-suppress-prompt-hook): New hook - used by mh-kill-folder to suppress the prompt. - - * mh-funcs.el (mh-kill-folder): Suppress prompt not if - mh-index-data is non-nil, but if any functions in - mh-kill-folder-suppress-prompt-hook return non-nil. - - * mh-index.el (mh-index-p): New function with returns non-nil if - the current folder was generated by an index search for use by - mh-kill-folder-suppress-prompt-hook - - * mh-unit.el (mh-unit): Commented out lm-verify step until code - updated to handle split Copyright lines. - - * mh-e.el (mh-version): Set to 7.3+cvs. - -2003-04-24 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.3. - - * MH-E-NEWS, README: Updated for release 7.3. - - * mh-e.el (Version, mh-version): Updated for release 7.3. - -2003-04-24 Satyaki Das <satyakid@stanford.edu> - - * mh-xemacs-compat.el (mh-utils): Require mh-utils at compile - time, since the mh-do-in-xemacs macro is used. - - * mh-inc.el (cl): Require cl at compile time since we are using - the loop and setf macros. - -2003-04-24 Satyaki Das <satyakid@stanford.edu> - - * mh-unit.el (mh-files): Fix the list of files to check. - -2003-04-24 Bill Wohler <wohler@newt.com> - - * ChangeLog: Appended copyright to end of file. - - * Makefile: Added copyright and license. - - * README: Added copyright. - - * import-emacs: Changed copyright from Newt Software to Bill - Wohler and use license from mh-e.el, except that this file is - a part of MH-E, not GNU Emacs. - - * mh-alias.el: Updated copyright so that it doesn't wrap upon - advice from Richard Stallman who said to use two-digit years when - they are surrounded by 4-digit years that are in the same century - and to break up copyrights on multiple lines. - * mh-comp.el: Ditto. - * mh-e.el: Ditto. - * mh-funcs.el: Ditto. - * mh-identity.el: Ditto. - * mh-mime.el: Ditto. - * mh-seq.el: Ditto. - * mh-utils.el: Ditto. - * mh-xemacs-compat.el: Ditto. - - * mh-unit.el: New file. Unit tests for MH-E. This version merely - runs checkdoc and lm-verify which is useful before releasing the - software. It can and should be expanded to do real unit tests. - -2003-04-22 Mark D Baushke <mdb@gnu.org> - - * mh-alias.el: Update Copyright. - * mh-comp.el: Ditto. - * mh-customize.el: Ditto. - * mh-e.el: Ditto. - * mh-funcs.el: Ditto. - * mh-identity.el: Ditto. - * mh-index.el: Ditto. - * mh-mime.el: Ditto. - * mh-pick.el: Ditto. - * mh-seq.el: Ditto. - * mh-speed.el: Ditto. - * mh-utils.el: Ditto. - * mh-xemacs-compat.el: Ditto. - -2003-04-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-normalize-folder-name): Make the completion - code work properly with XEmacs. This change is neeeded since - split-string behaves differently in XEmacs than it does in GNU - Emacs. - (mh-exec-cmd-error): Add a comment, so that we change it later on. - -2003-04-18 Steve Youngs <youngs@xemacs.org> - - * mh-xemacs-icons.el (mh-xemacs-icons): Provide 'mh-xemacs-icons' - not 'mh-xemacs-toolbar'. - - * mh-xemacs-compat.el (mh-xemacs-toolbar): Remove require, it's - now called 'mh-xemacs-icons' and it is required from - 'mh-customize'. - - * mh-customize.el: Require 'mh-xemacs-icons' instead of - 'mh-xemacs-toolbar'. - -2003-04-17 Peter S Galbraith <psg@debian.org> - - * mh-xemacs-icons.el: New file (renamed from mh-xemacs-toolbar.el). - Holds XEmacs icons. - - * mh-xemacs-toolbar.el: Deleted. - - * Makefile: Incorporate the file renaming. - -2003-04-15 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-forward): Pass a list of messages into - mh-compose-and-send-mail instead of msg-or-seq. - (mh-annotate-msg): The previous version called - mh-iterate-on-msg-or-seq in the letter buffer. The new version - simply adds the ability to operate on message lists. Thanks to - Satyaki for the fix and suggestion for passing a list from - mh-forward. - -2003-04-14 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-annotate-msg): Updated to handle msg-or-seq for - mh-forward was passing a msg-or-seq to mh-compose-and-send-mail - which in turn passed the msg-or-seq to mh-annotate-msg. In - particular, forwarding a region failed. Note that the msgs - argument in much of mh-comp.el should really be converted to - msg-or-seq accordingly. But not now, unless something is broken as - was the case here. We can revamp after the release. - -2003-04-13 Bill Wohler <wohler@newt.com> - - * mh-funcs.el (mh-kill-folder): Added space after prompt to give - the (yes or no) bit a little elbow room. - - * mh-xemacs-toolbar.el: Removing a copyright is a no-no. - Reinstated Steve's copyright. - -2003-04-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-do-in-gnu-emacs, mh-do-in-xemacs): Add - indentation hooks for the macros. - -2003-04-11 Bill Wohler <wohler@newt.com> +2005-10-04 Bill Wohler <wohler@newt.com> - * mh-alias.el, mh-comp.el, mh-customize.el, mh-funcs.el, - mh-identity.el, mh-inc.el, mh-index.el, mh-junk.el, mh-utils.el: - Merged in changes from CVS GNU Emacs. These included the removal - of trailing whitespace. - - * mh-customize.el: The "anti-entropy" check-in. Moved groups - around slightly to reflect commentary. Moved defcustoms around - to preserve alphabetization. Big diff, little content. - (mh-xemacs-use-toolbar-flag): Doc fix. - (mh-xemacs-toolbar-position): Fixed typo in docstring. - (mh-default-folder-list): Updated docstring to reflect new Check - Recipient tag. Also, set type of Address to regexp. - (mh-x-mailer-string): Moved to mh-comp.el where it is used. - - * mh-comp.el (mh-x-mailer-string): Moved here from customize.el. - Not quite sure how it got to mh-customize.el in the first place. - - * mh-e.el (mh-folder-folder-menu): Added Folder -> View New - Messages menu item. - - * mh-utils.el (mh-show-folder-menu): Ditto. - - * mh-inc.el: Added Change Log comment (lm-verify fix). - - * mh-index.el (mh-index-search): Added documentation about prefix - argument for users, in addition to documentation for programmers. - - * mh-mime.el (mh-edit-mhn, mh-edit-mhn, mh-mml-to-mime): Docstring - fixes germaine to the change whereby we now check for MIME - directives before sending. - - * mh-xemacs-toolbar.el: Fixed copyright. Added Change Log comment - (lm-verify fix). Added standard MH-E local variables. Removed - time-stamp stuff. - -2003-04-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-iterate-on-msg-or-seq): Add a missed comma. - -2003-04-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-visit-folder): Prompt before reusing - existing folder buffer. - - * mh-xemacs-toolbar.el (require): Require mh-utils at compile - time to avoid compilation error when doing "make bootstrap" in - CVS Emacs. - - * mh-inc.el (mh-inc-spool-list): Declare it so that a compile - time warning is avoided when doing "make bootstrap" in CVS Emacs. - -2003-04-10 Peter S Galbraith <psg@debian.org> - - * mh-inc.el (mh-inc-spool-generator): Changed to a defun instead - of a defmacro, applying Satyaki's patch. - (mh-inc-spool-def-key): same. - (mh-inc-spool-make): same. - - * mh-utils.el: define-key "I" in mh-show-mode-map for - mh-inc-spool-map. - - * mh-comp.el (mh-modify-header-field): Remove debug message. - -2003-04-10 Peter S Galbraith <psg@debian.org> - - * mh-inc.el (mh-inc-spool-map-help): Default to nil. - (mh-inc-spool-map): Make "?" key display message when - `mh-inc-spool-map-help' is nil (instead of mh-inc-spool-map-help - containing the message). - - * mh-e.el: require mh-inc.el - * mh-e.el: define-key "I" in mh-folder-mode-map for mh-inc-spool-map. - (mh-help-messages): Add help string for "I" key. - -2003-04-09 Peter S Galbraith <psg@debian.org> - - * mh-inc.el: New file. New feature to `inc' mail from various - spool files into different folders. - - * mh-loaddefs.el: Regenerate for mh-inc's mh-inc-spool-list-set. - - * Makefile (MH-E-IMG): Add highlight icon. - (MH-E-SRC): Add mh-inc.el file. - - * mh-customize.el (mh-inc-spool-list): New variable for new - feature to `inc' mail from various spool files into different - folders. - -2003-04-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-mail-delivery-buffer): Add a defconst for - mh-mail-delivery-buffer. - - * mh-comp.el (mh-send-letter): Use mh-mail-delivery-buffer. - - * mh-mime.el (mh-small-image-p): Add mh-funcall-if-exists to - avoid compiler warning in GNU Emacs. - -2003-04-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-small-image-p): Make the function slightly more - error-resistant in XEmacs. - - * mh-seq.el (mh-narrow-to-seq, mh-widen): Update tool-bar-map in - the show buffer if needed. This allows us to display the widen - button in the show buffer only when the folder is narrowed. - - * mh-customize.el (mh-tool-bar-define): Changed so that a - separate tool-bar-map is used in show-mode when folder is - narrowed to a sequence. - -2003-04-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-iterate-on-msg-or-seq): Reinstate the use of - make-symbol since using gensym causes compiler warnings in CVS - Emacs. - -2003-04-08 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-forward): Function didn't handle a region of - messages. Use new function mh-msg-or-seq-to-msg-list to get a list - of messages in all circumstances. Also, use mh-coalesce-msg-list - on message list before submitting to forw since this should always - be done when calling a program to reduce the chance of exceeding - command-line limits. - - * mh-seq.el (mh-iterate-on-msg-or-seq): Backed out previous - change. A nil msg-or-seq should mean no messages, and Satyaki is - going to use gensym instead of make-symbol. - (mh-msg-or-seq-to-msg-list): New function to convert a msg-or-seq - to a list of message numbers. - - * mh-e.el (mh-coalesce-msg-list): Touched up the docstring a - little. - - * mh-funcs.el (mh-print-msg): Can now print regions, message - lists, sequences and, of course, single messages. This version - works a little differently from the old version. Instead of - calling mhl | lpr once on all messages, mhl | lpr is called once - per message in order to put each message's number in the header. - Thanks to Satyaki for some code and ideas. - - * mh-seq.el (mh-iterate-on-msg-or-seq): The argument msg-or-seq - can now be nil which means the current message. Make local symbols - so that local variables don't step on user's symbols (the msgs - symbol got me). - -2003-04-06 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-forward): Updated docstrings to indicate that a - list of messages is acceptable as well. - - * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion, mh-refile-msg) - (mh-undo, mh-notate-user-sequences, mh-delete-msg-from-seq): Ditto. - - * mh-funcs.el (mh-copy-msg, mh-print-msg): Ditto. - - * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Ditto. - - * mh-seq.el (mh-put-msg-in-seq, mh-iterate-on-msg-or-seq) - (mh-interactive-msg-or-seq): Ditto. - -2003-04-06 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Call - mh-refile-a-msg and mh-delete-a-msg with nil as the message - number since that is more efficient. - - * mh-seq.el (mh-iterate-on-msg-or-seq): Extended so that it will - handle lists of messages numbers as well. - (mh-put-msg-in-seq): Use mh-iterate-on-msg-or-seq to simplify the - function. - - * mh-funcs.el (mh-copy-msg): Same as above. - - * mh-e.el (mh-refile-msg): Make it more efficient. Using nil in - mh-refile-a-msg avoids needing to re-search-forward to that - message. - (mh-undo): Fix typo in interactive spec. - (mh-notate-user-sequences): Generalize the function to take a - msg-or-seq as argument. - (mh-delete-msg-from-seq): Extend the function so that it is now - able to subtract messages belonging in one sequence from another. - (mh-undo): Unify the region and sequence handling. The message - number branch of the function does extra stuff, so we can't merge - that in. - -2003-04-06 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-forward): Use mh-interactive-msg-or-seq. Inserted - consistent verbiage in docstring for msg-or-seq. - (mh-reply): Don't mention default in opening line in all - docstrings. - - * mh-e.el (mh-delete-msg, mh-refile-msg) - (mh-undo, mh-delete-msg-from-seq): Use mh-interactive-msg-or-seq. - Inserted consistent verbiage in docstring for msg-or-seq. In - mh-delete-msg-from-seq, renamed msg-or-region to msg-or-seq. - - * mh-funcs.el (mh-copy-msg, mh-print-msg): Use - mh-interactive-msg-or-seq. Inserted consistent verbiage in - docstring for msg-or-seq. - - * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Inserted - consistent verbiage in docstring for msg-or-seq. - - * mh-seq.el (mh-msg-is-in-seq): Don't mention default in opening - line in all docstrings. - (mh-put-msg-in-seq): Use mh-interactive-msg-or-seq. Inserted - consistent verbiage in docstring for msg-or-seq. - - * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion, mh-refile-msg): - Rewritten to use new mh-interactive-msg-or-seq function and - mh-iterate-on-msg-or-seq macro. mh-delete-msg-no-motion gained the - ability to operate on regions. - - * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Rewritten to - use new mh-interactive-msg-or-seq function and - mh-iterate-on-msg-or-seq macro thereby gaining the ability to - operate on sequences or regions. - - * mh-seq.el (mh-iterate-on-msg-or-seq): New macro to execute code - on a message, a region of messages, or a sequence. This macro - should be in all functions that operate on messages to provide a - uniform interface. - (mh-interactive-msg-or-seq): New function used in interactive - calls to obtain a message number, region, or sequence. This - function should be in all functions that operate on messages to - provide a uniform interface. - - * mh-utils.el (with-mh-folder-updating, mh-in-show-buffer): Use - 'defun lisp-indent-hook property instead of 1 to fix indentation - of these macros. - -2003-04-05 Peter S Galbraith <psg@debian.org> - - * mh-loaddefs.el: Regenerated. - * mh-funcs.el (mh-ephem-message): autoload. - -2003-04-04 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-from-address): Minor Fix. Wrong ending of - `when' block. - -2003-04-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-mml-directive-present-p): The regexp has been - modified to recognize directives to encrypt/sign messages. - -2003-04-03 Mark D. Baushke <mdb@gnu.org> - - * mh-e.el (mh-folder-from-address): E-mail messages missing the - To: field, but which have a Cc: field should also be handled. - -2003-04-03 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-inc-folder): Modified the prompt text to read - better. - - * mh-comp.el (mh-forward): Deleted local variable `compose'. - Deleted obsolete setting of mh-{mmh|mml}-compose-insert-flag. - (mh-letter-menu): Use mh-{mmh|mml}-directive-present-p instead of - obsolete. mh-{mmh|mml}-compose-insert-flag. - (mh-letter-mode): Deleted obsolete setting of - mh-{mmh|mml}-compose-insert-flag. - (mh-send-letter): This function now automatically runs the - directive-to-MIME conversion if any directives are detected, - rather than relying on the unreliable - mh-{mmh|mml}-compose-insert-flag variables. Updated docstring - accordingly. - - * mh-identity.el (mh-insert-identity): Use - mh-{mmh|mml}-directive-present-p instead of obsolete. - mh-{mmh|mml}-compose-insert-flag. - - * mh-loaddefs.el: Regenerated. - - * mh-mime.el (mh-mhn-compose-type, mh-mhn-compose-external-type) - (mh-mhn-compose-forw, mh-edit-mhn, mh-mml-to-mime) - (mh-mml-forward-message, mh-mml-attach-file) - (mh-mml-secure-message-sign-pgpmime) - (mh-mml-secure-message-encrypt-pgpmime): Deleted obsolete setting - of mh-{mmh|mml}-compose-insert-flag. - (mh-mml-directive-present-p): Checkdoc fix. - - * mh-utils.el (mh-mhn-compose-insert-flag, - mh-mml-compose-insert-flag): Deleted. Replaced by - mh-{mhn|mml}-directive-present-p. - -2003-04-03 Mark D. Baushke <mdb@gnu.org> - - * mh-e.el (mh-folder-from-address): Fix minor problem with To: - address processing. - - * mh-e.el (mh-folder-from-address): Bugfix match ?+ character not - a "?+" string. - -2003-04-03 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-inc-folder): Add second optional argument for the - folder to inc new mail into instead of mh-inbox. - -2003-04-03 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-from-address): The first match found in - `mh-default-folder-list' is used. - - * mh-customize.el (mh-default-folder-list): Tweak docs - -2003-04-03 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-mime.el (mh-mhn-directive-present-p): New function to test if - a MHN directive is present in the current buffer. - (mh-mml-directive-present-p): New function to test if a MML - directive is present in the current buffer. - - * mh-comp.el (mh-letter-mode): Originally this function checked if - a #forw directive was present and set mh-mhn-compose-insert-flag - to t. The modification generalizes this test so that one of the - variables mh-{mml|mhn}-compose-insert-flag will get set if we have - any sort of MHN or MML directive is already present. - - * mh-seq.el (tool-bar-map): Add a defvar to avoid compiler - warnings in CVS version of GNU Emacs. - - * mh-utils.el (tool-bar-map): Same as above. - - * mh-e.el (tool-bar-map): same as above. - -2003-04-02 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-xemacs-toolbar.el (mh-xemacs-toolbar-toggle-tick-icon): - Change color to match mh-folder-tick-face. - - * highlight.xpm: Same as above. - -2003-04-02 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-from-address): Check `mh-default-folder-list' - for cases against the recipient instead of the originator. - - * mh-customize.el (mh-default-folder-list): Add extra boolean flag - to conditionally check the recipient address instead of the - originator. - -2003-04-02 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-folder-tick-face): Change tick highlight - face to a background yellow-green, as suggested by Bill. - -2003-04-01 Peter S Galbraith <psg@debian.org> - - * highlight.xpm: New icon for mh-toggle-tick. - - * mh-xemacs-toolbar.el (mh-xemacs-icon-map): Add tool-bar entry - for mh-toggle-tick. - (mh-xemacs-toolbar-toggle-tick-icon): New constant. - - * mh-customize.el: Add tool-bar entry for mh-toggle-tick. - -2003-03-31 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-utils.el (mh-show-narrow-to-tick, mh-show-limit-map) - (mh-show-sequence-menu): Add new interactive function - mh-show-narrow-to-tick callable from the show buffer and arrange - for a key binding and a menu entry. - - * mh-seq.el (mh-narrow-to-tick): New interactive function that - narrows to the tick sequence. - - * mh-e.el (mh-folder-sequence-menu, mh-limit-map): Arrange for a - key binding and a menu entry for mh-narrow-to-tick. - - * mh-comp.el (mh-letter-mode): Enable undo since we could be - reusing a show buffer where undo is disabled (closes SF #712777). - -2003-03-31 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-sequence-menu): Add entry for mh-toggle-tick. - - * mh-utils.el (mh-show-sequence-menu): Add entry for - mh-show-toggle-tick. - -2003-03-28 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-delete-seq): If the tick sequence is killed with - "S k" then the highlighting wasn't getting removed. The change - fixes this. - -2003-03-27 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-notate-user-sequences): Extend it so that only the - messages in a part of the folder are notated. - (mh-delete-msg-from-seq): Extend it so that it will delete all - messages in the marked region. - (mh-delete-a-msg-from-seq): New function that deletes a single - message from a sequence. - (mh-clear-text-properties): If there is a ticked unseen message - and the message is removed from the unseen list with "S d" then - unticking the message doesn't change the highlight. This change - fixes this. - -2003-03-27 Peter S Galbraith <psg@debian.org> - - * mh-xemacs-toolbar.el (mh-xemacs-toolbar-*-icon): Use original - 24x24 icons, changing background only. - -2003-03-27 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-junk.el (mh-spamassassin-identify-spammers): Remove unused - variable buffer-exists. - (mh-spamassassin-identify-spammers): Remove unused variable user. - - * mh-customize.el (mh-junk-choose): Tweak it to remove XEmacs - compiler warning. - -2003-03-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-print-scan-lines): Handling of a boundary - condition when messages from the last source folder had been - removed was incorrect. This caused a folder header to appear - without any messages listed under it. This change fixes this. - (mh-thread-forget-message): Remove the entry from the scan line - table as well. This is needed for proper display of threaded view - of index folders. - -2003-03-26 Bill Wohler <wohler@newt.com> - - * Makefile, README, import-emacs, mh-alias.el, mh-comp.el, - mh-customize.el, mh-e.el, mh-funcs.el, mh-identity.el, - mh-index.el, mh-loaddefs.el, mh-mime.el, mh-pick.el, mh-seq.el, - mh-speed.el, mh-utils.el, mh-xemacs-compat.el, - mh-xemacs-toolbar.el: Removed RCS keywords per Emacs conventions - (closes SF #680731). + * ChangeLog: Moved contents into ChangeLog.1 and trimmed. + + * ChangeLog.1: New file. Contains old ChangeLog. -2003-03-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el: Fix commentary to mention that mairix is supported - as well. - - * mh-loaddefs.el: Regenerated. - - * mh-utils.el (mh-show-junk-blacklist, mh-show-junk-whitelist): - Interactive functions callable from the show buffer. - (mh-show-junk-map): Key bindings in show mode. - - * mh-e.el (mh-junk-map): Key bindings to call spam program. - (mh-help-messages): Update help text. - - * mh-customize.el (mh-junk): New customization group for spam - program interface. - (mh-junk-choice, mh-junk-function-alist, mh-junk-choose): - Functions and variables that decide which junk program is used. - (mh-junk-program, mh-junk-mail-folder): User customizable - variables that control the choice of spam program and the action - performed on received spam. - - * Makefile (MH-E-SRC): Add mh-junk.el. - -2003-03-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-utils.el (mh-show-toggle-tick, mh-show-mode-map): New - interactive function callable from the show buffer and a key - binding for it. - - * mh-seq.el (mh-delete-seq): Remove highlight from tick sequence. - (mh-put-msg-in-seq): Disable adding messages to tick sequence. - (mh-widen): Reset mh-tick-seq-changed-when-narrowed-flag. - (mh-tick-add-overlay, mh-tick-remove-overlay, mh-notate-tick) - (mh-toggle-tick): New functions to highlight/unhighlight tick - sequence and the interactive function that is used to toggle - tick. - - * mh-e.el (mh-tick-seq-changed-when-narrowed-flag): New variable - that remembers if we are narrowed to the tick sequence. In that - case the highlighting isn't shown, since it adds no extra info. - (mh-folder-mode): Initialize mh-tick-seq-changed-when-narrowed-flag. - (mh-notate-user-sequences): Notate the tick sequence. - (mh-internal-seq): Treat mh-tick-seq like an internal sequence. - (mh-delete-msg-from-seq): Don't allow deletion from tick sequence. - (mh-folder-mode-map): Add key binding for "'" - - * mh-customize.el (mh-tick-seq, mh-folder-tick-face): New - customizable variables that contain the name of the tick sequence - and the face to use to highlight it. - -2003-03-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-seq.el (mh-thread-print-scan-lines): New function which - prints out thread tree. It maintains the original folder info if - the folder was created by index search (closes SF #709672). - (mh-copy-seq-to-eob, mh-thread-inc, mh-thread-folder): Use - factored out function mh-thread-print-scan-lines. - (mh-toggle-threads): Since threading is allowed in index folders - there can be lines in the folder which aren't valid message scan - lines. So it is OK for mh-get-msg-num to fail once in a while. - - * mh-index.el (mh-index-update-maps): Make the parsing of messages - that need to annotated with the X-MHE-Checksum header more robust. - If the search yielded no results then an error was being produced. - (mh-index-search): Enable automatic threading of index folders if - mh-show-threads-flag is non-nil (closes SF #709667). - (mh-index-next-folder): Relax error checking since index folder - can be threaded while the source folder info is visible. - (mh-index-group-by-folder): New function that is used in - mh-thread-folder to keep source folder info visible during - threading. - -2003-03-25 Bill Wohler <wohler@newt.com> - - * mh-loaddefs.el: Regenerated. - - * mh-customize.el (mh-index-new-messages-folders): New variable - that controls which folders "F n (mh-index-new-messages)" - accesses. Was mh-flists-search-folders. - - * mh-index.el (mh-flists-search-folders): Still used internally, - but users now use new option mh-index-new-messages-folders. - Removed documentation since to avoid duplication with - mh-index-new-messages-folders. - (mh-flists-recursive-search-flag): Deleted. Use - mh-recursive-folders-flag instead. - (mh-flists-execute): Updated docs to specify which global - variables are used. Use mh-recursive-folders-flag instead of - mh-flists-recursive-search-flag. - (mh-index-new-messages): Edited doc, and refer to new option - mh-index-new-messages-folders. Ditto within code. Don't need to - prepend + to folder name as flists does that for us. Use - -2003-03-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-refile-msg): Add optional argument that controls - whether mh-last-destination-folder is updated or not. - -2003-03-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-tool-bar-define): Fix a problem in the - XEmacs version which caused the show mode toolbar to have the - buttons in the reverse order. Also the add-hooks are no longer - needed since mh-toolbar-init is called in the appropriate modes. - - * mh-comp.el (mh-letter-mode): Call mh-toolbar-init in XEmacs to - initialize toolbar. - - * mh-utils.el (mh-show-mode): Same as above. - - * mh-e.el (mh-folder-mode): Same as above. - -2003-03-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-exec-cmd-env-daemon): New function which - executes a command asynchronously with its own environment. - - * mh-comp.el (mh-redistribute): The function has been modified so - that /bin/sh isn't used to run send. It has also been refactored - so that the same code isn't repeated. - -2003-03-21 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-invisible-header-fields): Added X-Bogosity - for bogofilter. - -2003-03-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-xemacs-toolbar.el: Remove the code since that gets generated - when mh-tool-bar-define is expanded. - (mh-xemacs-icon-map): A alist to map GNU Emacs icon names to the - actual icons to be used in XEmacs. This is used in - mh-tool-bar-define. - - * mh-customize.el (mh-toolbar): Use this group in XEmacs as well. - (mh-tool-bar-item-*): All these constants have been removed since - they aren't needed in the new scheme. - (mh-tool-bar-reply-3-buttons-flag): This variable has been - removed. - (mh-tool-bar-search-function): This is now used in XEmacs as well. - (mh-tool-bar-folder-set, mh-tool-bar-folder-buttons-set) - (mh-tool-bar-letter-buttons-set, mh-tool-bar-show-set) - (mh-tool-bar-letter-set): These functions aren't defined at the - top level any more. - (mh-tool-bar-reply-generator): A macro to generate the required - functions for the three reply buttons. - (mh-tool-bar-search, mh-tool-bar-customize) - (mh-tool-bar-folder-help, mh-tool-bar-letter-help) - (mh-tool-bar-reply-from, mh-show-tool-bar-reply-from) - (mh-tool-bar-reply-to, mh-show-tool-bar-reply-to) - (mh-tool-bar-reply-all, mh-show-tool-bar-reply-all): New - interactive functions that are called when tool bar buttons are - clicked. - (mh-xemacs-use-toolbar-flag, mh-xemacs-toolbar-position): - Additional customizable variables that are present only for - XEmacs. - (mh-tool-bar-define): A macro that generates the required code - for GNU Emacs and XEmacs tool bar. - (mh-tool-bar-define): Define the MH-E tool bar. - -2003-03-17 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-notate-cur): Notate current message only if it - hasn't been marked for deletion or refiling. - -2003-03-15 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-invisible-header-fields): Added - X-Spam-Checker-Version. - (mh-auto-fields-list): checkdoc fix. - -2003-03-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-new-messages): If the destination folder - where the unseen messages are supposed to be copied to was - already present, but MH-E doesn't have it open, then a new folder - was being created. The change fixes this. - (mh-index-update-unseen, mh-flists-recursive-search-flag): Fix - checkdoc warnings. - - * mh-loaddefs.el: Regenerated. - -2003-03-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-flists-results-folder): Subfolder under - +mhe-index where the results of the flists call is put. - (mh-index-generate-pretty-name): Make sure that normal index - searching will never use the folder reserved for the flists - results. - (mh-index-search): Add an extra parameter that marks all the - messages in the index folder to the unseen sequence. - (mh-index-update-unseen): Function to keep unseen sequence of - index folder synced with the actual folders from where the - messages were copied. This works only if the unseen messages are - displayed with mh-show. Killing the unseen sequence in the index - folder or adding/removing messages to it doesn't change the - unseen sequence in the source folders yet. - (mh-flists-search-folders): Variable that decides the folders on - which flists is run. - (mh-flists-recursive-search-flag): If non-nil, flists is passed - the -recurse option. - (mh-flists-execute): Function which uses /bin/sh to execute - flists and then print out the list of message files that match. - (mh-index-new-messages): New interactive function which searches - for messages in the unseen sequence (closes SF #701756). - - * mh-utils.el (mh-show-folder-map): Add binding for - mh-index-new-messages. - (mh-show-msg): Update the unseen sequence in the source folder. - - * mh-e.el (mh-folder-font-lock-unseen): The function assumes that - the end of buffer is reached when there isn't a valid scan line - on the current line. This doesn't work in the index folder since - we have lines containing the folder name and empty lines in - between the actual scan lines. The modification removes this - assumption. - (mh-folder-map): Add key binding for "Fn" - - * mh-seq.el (mh-iterate-on-messages-in-region): If the point is - not at the beginning of the line, then the first message in the - region would be missed. The fix avoids this. - - * mh-mime.el (mh-inline-vcard-p): Don't try to inline vcards if - we don't have the right libraries. - -2003-03-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-next-undeleted-msg, mh-previous-undeleted-msg) - (mh-next-msg): Add optional argument wait-after-complaining-flag. - If non-nil and there are no undeleted messages after (or before) - the current one, then pause for a second after printing out the - message. - (mh-refile-or-write-again): Modify call to mh-next-msg to use the - wait-after-complaining-flag. - -2003-03-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-refile-or-write-again): If mh-next-msg fails to find - a message to go to it prints out a diagnostic, which overwrites - the diagnostic about the folder the message was refiled to. The - change fixes this. - -2003-03-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-widen, mh-narrow-to-seq): Update - mh-narrowed-to-seq before notating sequences. This is a bit - helpful for mh-tick.el. - (mh-put-msg-in-seq): Fix a minor bug. No internal sequence should - be notated -- the original code was doing the right thing only for - the "unseen" sequence. - - * mh-index.el (mh-index-choose): Add autoload cookie for - mh-index-choose. This is needed for GNU Emacs 20.5. - - * mh-loaddefs.el: Regenerated. - -2003-03-09 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-display-smileys): This function originally had a - test to see if font-lock-maximum-size was bound, but this was - recently removed. The test was put in for a reason; if - font-lock-maximum-size isn't bound, void-variable errors would - ensue. I put the bound test back in. - -2003-03-08 Steve Youngs <youngs@xemacs.org> - - * mh-mime.el (mh-mime-security-button-map): Use 'mh-push-button' - in XEmacs as well. - -2003-03-07 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-xemacs-toolbar.el: Declare a whole bunch of stuff for GNU - Emacs, so that we don't get so many compiler warnings. Also - surround calls to set-specifier and toolbar-make-button-list with - mh-funcall-if-exists. Maybe GNU Emacs shouldn't try to compile - this file in the first place. - - * mh-xemacs-compat.el (mh-modeline-glyph): Declare it within - mh-do-in-xemacs to avoid compiler warning in GNU Emacs. - (mh-xemacs-push-button): Removed. - - * mh-mime.el (mh-mime-button-map): Use the generalized - mh-push-button function. - (mh-push-button): Enhance it so that it works on XEmacs too. - -2003-03-08 Steve Youngs <youngs@xemacs.org> - - * mh-xemacs-compat.el (mh-modeline-logo): New constant holding the - modeline image. - (mh-modeline-glyph): Use it. - -2003-03-08 Steve Youngs <youngs@xemacs.org> - - * mh-xemacs-toolbar.el: New file that defines and displays a - toolbar in XEmacs. - - * mh-xemacs-compat.el (mh-xemacs-toolbar): Require it here. - - * Makefile (MH-E-SRC): Add mh-xemacs-toolbar.el. - - * mh-customize.el (mh-toolbar): - (mh-tool-bar-letter-buttons): - (mh-tool-bar-letter-buttons-set): - (mh-tool-bar-folder-buttons): - (mh-tool-bar-folder-buttons-set): - (mh-tool-bar-search-function): - (mh-tool-bar-reply-3-buttons-flag): - (mh-tool-bar-item-inc): - (mh-tool-bar-item-save-mime): - (mh-tool-bar-item-prev-msg): - (mh-tool-bar-item-page-msg): - (mh-tool-bar-item-next-msg): - (mh-tool-bar-item-delete): - (mh-tool-bar-item-refile): - (mh-tool-bar-item-undo): - (mh-tool-bar-item-perform): - (mh-tool-bar-item-toggle-show): - (mh-tool-bar-item-reply-from): - (mh-tool-bar-item-reply-to): - (mh-tool-bar-item-reply-all): - (mh-tool-bar-item-reply): - (mh-tool-bar-item-alias): - (mh-tool-bar-item-compose): - (mh-tool-bar-item-rescan): - (mh-tool-bar-item-repack): - (mh-tool-bar-item-search): - (mh-tool-bar-item-visit): - (mh-tool-bar-item-prefs): - (mh-tool-bar-item-help): - (mh-tool-bar-item-widen): - (mh-tool-bar-item-send): - (mh-tool-bar-item-attach): - (mh-tool-bar-item-spell): - (mh-tool-bar-item-save): - (mh-tool-bar-item-undo-op): - (mh-tool-bar-item-kill): - (mh-tool-bar-item-copy): - (mh-tool-bar-item-paste): - (mh-tool-bar-item-kill-draft): - (mh-tool-bar-item-comp-prefs): - The MH-E toolbar for XEmacs is defined differently from the - GNU/Emacs version, so only define these if we're in GNU/Emacs. - XEmacs doesn't need to see them and it's always good to cut down - on pollution. - -2003-03-08 Steve Youngs <youngs@xemacs.org> - - * mh-mime.el (mh-mime-button-map): Bind the 2nd mouse button to - `mh-xemacs-push-button' in XEmacs. - (mh-mime-security-button-map): Ditto. - - * mh-xemacs-compat.el: Shush the byte-compiler. - (mh-xemacs-push-button): New function to make MIME buttons work in - XEmacs. - -2003-03-08 Steve Youngs <youngs@xemacs.org> - - * mh-mime.el (mh-display-emphasis): Don't test - `font-lock-maximum-size' to see if it is bound, just test for a - non-nil value. This variable can have a nil value which makes it - bound and dividing nil by 8 throws an error. - This fixes a bug in MH-E under XEmacs when - `font-lock-maximum-size' is nil that prevented article emphasis - and smiley display which in turn was causing the "Flush changes in - article x y/n" errors. - (mh-display-smileys): Ditto. - -2003-03-08 Steve Youngs <youngs@xemacs.org> - - * mh-utils.el (mh-logo-display): Display logo in XEmacs as well. - - * mh-xemacs-compat.el (mh-modeline-glyph): New. The MH-E modeline - logo for XEmacs. - -2003-03-06 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-allow-root-folder-flag): New global variable - that decides if "+" is an acceptable folder name. - (mh-folder-completion-function): Refine the test for existing - folders to take mh-allow-root-folder-flag into account. - (mh-folder-completing-read, mh-prompt-for-folder): Use the - allow-root-folder-flag argument of mh-prompt-for-folder and add a - similar argument to mh-folder-completing-read. - (mh-exec-cmd-error): Make the function nicer by using - process-environment to pass the environment variable assignments. - -2003-03-05 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-push-button): Preserve point in the show buffer - if the mouse is used to expand/contract a button. - - * mh-customize.el (mh-x-face-file): Mention X-Image-URL in - documentation. - - * mh-comp.el (mh-insert-x-face): Modified to allow insertion of - X-Image-URL header field. - -2003-03-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-face-display-function): Modified to facilitate - display of X-Image-URL images. - (mh-find-path): Initialize X-Image-URL cache directory. - (mh-x-image-url-cache-canonicalize, mh-x-image-url-fetch-image) - (mh-x-image-scale-and-display, mh-x-image-url-display) - (mh-x-image-display): New functions for X-Image-URL image display - and cache management. - - * mh-customize.el (mh-show-use-xface-flag): Add info about - requirements for X-Image-URL display. - (mh-fetch-x-image-url): New customizable variable that controls - fetching of X-Image-URL. - -2003-03-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-make-local-hook): New macro which works around - API changes in add-hook. Version of GNU Emacs before 21.1 and - XEmacs require a call to make-local-hook and just the LOCAL - argument of add-hook is not sufficient. - (mh-show-mode): Make kill-buffer-hook buffer local. - - * mh-e.el (mh-folder-mode): Same as above. - - * mh-comp.el (mh-compose-and-send-mail): Same as above. - -2003-03-02 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-push-button): Clicking on a MIME button used to - cause the window with the show buffer to be selected. With this - change the selected window doesn't change. - -2003-03-01 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-flists): Avoid a potential race condition. - When flists is called manually, or when an unseen message is read, - mh-speed-partial-line was not reinitialized. - - * mh-e.el (mh-visit-folder): If mh-visit-folder is used to visit - the folder currently being visited (effectively doing a rescan) - then mh-previous-window-config is erroneously set. The change - fixes this. - - * mh-customize.el (mh-index-show-hook): Remove unused variable. - -2003-02-28 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-scan-folder): Call mh-reset-threads-and-narrowing - only after the user has replied to question. This avoids premature - clearing of the folder. - (mh-rescan-folder, mh-visit-folder): Remove calls to - mh-reset-threads-and-narrowing since it is now called in - mh-scan-folder anyway. - - * mh-funcs.el (mh-sort-folder): Same as above. - -2003-02-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-alias.el (mh-alias-alist): Change initial value to a symbol, - so that it is different from the empty list, which could also - mean that there are no aliases. - (mh-alias-reload-maybe): Change test so that empty alist of - aliases is properly handled (closes SF #693859). - -2003-02-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-decode-message-header): The message header could - be encoded, for instance the author's name could contain - characters not in ASCII. This function will decode such header - fields. - (mh-mm-inline-message): Use mh-decode-message-header. - - * mh-utils.el (mh-display-msg): Use mh-decode-message-header. - (mh-message-number-width): Use mh-scan-prog instead of "scan". - - * mh-loaddefs.el: Regenerated. - -2003-02-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-truncate-log-buffer): Refine it so that the - function will do the right thing even if called from a buffer - other than mh-log-buffer. - -2003-02-22 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-add-alias): Really fix SF #690216. - This functions needs to strip brackets on standalone addresses as - well. - -2003-02-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-xemacs-compat.el (replace-regexp-in-string): Remove the - definition since it isn't used any more. - -2003-02-20 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-which-file-has-alias): Bug fix. Needed to - specify `noerror' on search. - - * mh-alias.el (mh-alias-suggest-alias): Add condition for input - string being an email address in brackets. We need to strip out - the brackets. (closes SF #690216) - -2003-02-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-pick.el (mh-search-folder): The function was setting the - global value of the variables mh-current-folder and - mh-previous-window-config. This can lead to problems in code which - assumes that these variables are nil when we aren't in a folder - buffer. So make the variables local before setting them. - -2003-02-19 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-mime-display): All the MIME display code has been - wrapped in a condition-case so that if something goes wrong, the - raw message will be displayed. - - * mh-funcs.el (mh-undo-folder): Comment out call to sit-for that - seems unnecessary. - - * mh-e.el (mh-scan-folder): Messages marked for deletion or - refiling weren't getting annotated properly. The change fixes - this. - (mh-process-or-undo-commands): Change prompt to reflect what - really happens in the code. - -2003-02-18 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-folder-expand-at-point): The function - mail-abbrev-complete-alias often returns nil. This had the - unfortunate consequence of always causing an error. The change - fixes this. - - * mh-alias.el (mh-alias-canonicalize-suggestion): New function - which obviates the our need replace-regexp-in-string. - (mh-alias-suggest-alias): Use mh-alias-canonicalize-suggestion to - eliminate calls to replace-regexp-in-string. This avoids problems - in Emacs20. - - * mh-utils.el (mh-notate): Handle the case when nil is passed as - notation gracefully. - (mh-speed-flists-active-p): New function that returns non-nil if - flists is being used in the speedbar to update message counts. - - * mh-seq.el (mh-put-msg-in-seq): Fix a bug which made it - impossible to add messages to the unseen sequence. Also adding - messages to the unseen sequence will now update the speedbar - message counts immediately. - - * mh-e.el (mh-get-new-mail, mh-process-commands) - (mh-undefine-sequence): Update speedbar message counts, if the - speedbar is active and is displaying message counts. - (mh-delete-msg-from-seq): In addition to updating message counts, - unhighlight the message so that interactively removing messages - from the unseen sequence makes the bold highlight of unseen - messages in the scan buffer go away. - (mh-clear-text-properties): New function that removes all text - properties from the current scan line. - -2003-02-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-face-display-function): Wrap call of - insert-image in mh-funcall-if-exists. This avoids a compiler - warning in Emacs20. - - * mh-speed.el (mh-speed-flists): Weaken test a bit to avoid - compiler warning in Emacs20. - (mh-speedbar-change-expand-button-char): Wrap call of - speedbar-insert-image-button-maybe in mh-funcall-if-exists. This - function isn't present in the speedbar that ships with Emacs20, so - calling it there causes an error. - - * mh-seq.el (mh-msg-is-in-seq): Adjust loop call a bit to avoid - compiler warning in XEmacs. The XEmacs compiler should be improved - so that such spurious warnings from builtin macros are suppressed. - - * mh-index.el (mh-index-search): Same as above. - - * mh-e.el (tool-bar-mode): The declaration is needed for Emacs20 - too. - - * mh-comp.el (mailabbrev): Try loading it any way. Some day XEmacs - will get it and then MH-E will just use it. - (tool-bar-mode, tool-bar-map): These declarations are needed for - Emacs20 too. - (mh-mail-abbrev-make-syntax-table, mh-folder-expand-at-point): - Remove mh-mail-abbrev-make-syntax-table since mh-funcall-if-exists - can be used instead. - - * mh-alias.el (require): Avoid autoloading functions that may not - be defined. - (mh-read-address, mh-alias-letter-expand-alias): Rewrite using - mh-funcall-if-exists. - -2003-02-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-speed.el (mh-folder-speedbar-buttons, mh-speed-add-buttons) - (mh-speed-toggle): Reuse markers instead of creating more of them. - (mh-speed-flists-folder, mh-speed-flists): Add optional folder - argument to mh-speed-flists so that message counts are updated - only for that one folder. - (mh-speed-parse-flists-output): If no change in counts then avoid - consing. - - * mh-index.el (mh-index-execute): Rewritten to use a temporary - buffer that is not left behind. - - * mh-funcs.el (mh-store-buffer): Use mh-log-buffer instead of the - special purpose *Store Output* buffer. - -2003-02-14 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-show-xface-face): Make it always be black - foreground on a white background (the reverse of that can make - some X-Face images look creepy). - - * mh-utils.el (mh-truncate-log-buffer): Modify the function to - return the current size of mh-log-buffer. Also we are now a bit - more careful in adding separators between consecutive messages. - (mh-exec-cmd): Fix a bug where the the log buffer would be - displayed even if no error happened in the current command but - the log buffer had messages from a previous error. - - * mh-mime.el (mh-mime-save-parts): Use mh-log-buffer to show - error messages. - - * mh-alias.el (mh-alias-local-users): Add a space between parens. - -2003-02-14 Steve Youngs <youngs@xemacs.org> - - * mh-utils.el (mh-face-display-function): Call - `x-face-xmas-wl-display-x-face' using `mh-funcall-if-exists'. - - * mh-xemacs-compat.el (replace-regexp-in-string): New. - -2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-log-buffer-lines): New variable that keeps - track of the number of lines to keep in mh-log-buffer. - (mh-truncate-log-buffer): New function that is used to make sure - that the log buffer doesn't grow to unbounded size. - (mh-exec-cmd, mh-exec-cmd-daemon, mh-handle-process-error): Use - mh-truncate-log-buffer instead of erase-buffer to keep some - number of previous log messages around (closes SF #685476). - -2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (tool-bar-mode): Declare it in XEmacs. - (mh-folder-mode): Use mh-funcall-if-exists to call hl-line-mode. - - * mh-utils.el (mh-funcall-if-exists): New macro that calls a - function only if it exists. - (mh-logo-display, mh-defun-show-buffer): Use mh-funcall-if-exists - to call the functions find-image and deactivate-mark. - - * mh-mime.el (mh-mime-cleanup, mh-small-image-p) - (mh-mm-display-part): Use mh-funcall-if-exists to call the - functions image-size and remove-images. - - * mh-comp.el (tool-bar-map, tool-bar-mode): Declare the variables - in XEmacs. - (mh-folder-expand-at-point): Use mh-funcall-if-exists to call - mail-abbrev-complete-alias if it exists. - - * mh-alias.el (mh-read-address): Use mh-funcall-if-exists for - future extensibility. - -2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-logo-display): The function find-image is - present only in GNU Emacs. - (mh-defun-show-buffer): The function deactivate-mark is present - only in GNU Emacs. - (default-enable-multibyte-characters): Declare it in XEmacs to - avoid compiler warning. - (mh-face-display-function): Avoid inserting space if there isn't - any Face or X-Face header field to display. - - * mh-seq.el (mh-thread-last-ancestor): Move declaration of - variable before its first use to silence XEmacs warning. - - * mh-mime.el (default-enable-multibyte-characters, dots, type): - Declare these in XEmacs to remove compiler warnings in XEmacs. - (mh-mime-cleanup, mh-mm-display-part): Call remove-images only in - GNU Emacs. - (mh-small-image-p): Call image-size only in GNU Emacs. - - * mh-index.el (mh-mairix-next-result): Fix a bug where a quote - was missing. - (mh-swish++-regexp-builder): Remove the unused binding meta. - - * mh-e.el (mh-folder-size): Pass on an extra value to remove - XEmacs warning. - (mh-folder-mode): Surround calls to hl-line-mode and - tool-bar-mode with mh-do-in-gnu-emacs since these functions - aren't present in XEmacs. - - * mh-customize.el (mh-tool-bar-show-set, mh-tool-bar-letter-set) - (mh-tool-bar-folder-set): These functions call tool-bar-* - functions which are present only in GNU Emacs. So surround them - with mh-do-in-gnu-emacs. - - * mh-comp.el (mh-letter-mode, mh-folder-expand-at-point): Only - call these functions in GNU Emacs. - (mail-abbrevs): Declare it in XEmacs. - - * mh-alias.el (mh-read-address): Call completing-read-multiple - only in GNU Emacs. - (mail-abbrevs): Declare it in XEmacs. - (mh-alias-add-alias-to-file): Remove unused code. - -2003-02-14 Ville Skyttä <scop@xemacs.org> - - * mh-comp.el: Add autoloaded auto-mode-alist association. - -2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-face-display-function): Make the XEmacs part a - little simpler. - -2003-02-14 Steve Youngs <youngs@xemacs.org> - - * mh-customize.el (mh-show-xface-face): XEmacs doesn't have the - ':inherit' keyword for defface, rewrite with sane defaults. - - * mh-utils.el (mh-face-display-function): Fix bug that was - corrupting xface images when displayed with XEmacs' internal - xface image support. Also make XEmacs honour 'mh-show-xface-face' - when using internal xface image support. - -2003-02-12 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-modify-header-field): New function. To header - FIELD add VALUE. If OVERWRITE-FLAG is non-nil then the old value, - if present, is discarded. This is more flexible than before. - (mh-insert-auto-fields): Use it. This and the new function are a - courtesy of Satyaki. Thanks! - - * mh-customize.el (mh-auto-fields-list): Doc tweaks suggested by - Bill. - -2003-02-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-folder-expand-at-point): Tweak the error - message. Completion in the Fcc header field is only supported in - GNU Emacs 21. - -2003-02-12 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-auto-fields-list): Reorder after - `mh-identity-list' since it needs it to be defined. Move to - mh-identity customization group. - -2003-02-11 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-insert-mail-followup-to-flag): Removed. - Obsolete. - (mh-insert-mail-followup-to-list): Removed. Obsolete. Use - `mh-auto-fields-list' instead, which is a more general solution. - (mh-auto-fields-list): New defcustom. Alist of addresses for - which header lines are automatically inserted. Replaces - `mh-insert-mail-followup-to-list'. - - * mh-comp.el (mh-insert-mail-followup-to): Removed. Obsolete. - (mh-insert-auto-fields): New function. Insert custom fields if To - or Cc match `mh-auto-fields-list', replacing - mh-insert-mail-followup-to with a more general solution. - (mh-compose-and-send-mail): Call mh-insert-auto-fields instead of - mh-insert-mail-followup-to. Also don't call mh-insert-identity to - insert default setting if mh-insert-auto-fields inserted an - identity. - -2003-02-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-show-xface-function): Try to load the external - x-face library only if XEmacs doesn't have xface support. - (mh-face-display-function): Renamed. Also handle various - permutations of x-face and xface support in XEmacs better. - - * mh-customize.el (mh-show-use-xface-flag): Any emacs whose - major version is greater than or equal to 21 supports display of - X-Face and Face header fields. - -2003-02-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-do-in-gnu-emacs, mh-do-in-xemacs): Macros that - execute code only in GNU Emacs and XEmacs respectively. - (mh-emacs21-face-display-function): Refactor to make it slightly - nicer. Get rid of compiler warnings in GNU Emacs by using the - above macros. Also check for presence of xface feature (in XEmacs - specific code) before trying to display X-Face header field image. - -2003-02-11 Steve Youngs <youngs@xemacs.org> - - * mh-customize.el (mh-show-use-xface-flag): If using XEmacs and - can't find the external x-face pkg still enable X-Face images if - feature 'xface is present. - Update the doc string. - - * mh-utils.el (mh-emacs21-face-display-function): Make it work in - XEmacs. - (mh-show-xface-function): If using XEmacs without xface support, - use x-face.el pkg. If using XEmacs with xface support, or Emacs - 21, use mh-emacs21-face-display-function. - -2003-02-11 Mark D. Baushke <mdb@gnu.org> - - * mh-customize.el (mh-invisible-header-fields): Add - "X-Notes-Item:" which is generated by Lotus Notes Domino. See - URL<http://www-12.lotus.com/ldd/doc/domino_notes/Rnext/help6_admin.nsf - /f4b82fbb75e942a6852566ac0037f284/5eda03c647f879c285256c1d00396051 - ?OpenDocument&Highlight=0,x-notes-item> for details on how Domino - users may disable (restore the default) generation of these headers. - -2003-02-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-folder-expand-at-point): Add function doc string - and produce a nicer error message for Emacs versions that lack - mail-abbrev-complete-alias. - - * mh-utils.el (mh-handle-process-error): Check doc fix. - - * mh-e.el (mh-folder-from-address): Same as above. - -2003-02-10 Peter S Galbraith <psg@debian.org> - - * mh-comp.el: require mailabbrev, except in XEmacs. - (mh-mail-abbrev-make-syntax-table): New defmacro to call - mail-abbrev-make-syntax-table introduced in Emacs21. - (mh-folder-expand-at-point): Handle nested folders. - All of the above was written by Satyaki. I just applied the patch - and tested. - -2003-02-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el: Fixes to keep the byte compiler happy. - - * mh-customize.el (mh-invisible-header-fields): Modified to - remove space after ":" in header field names. - -2003-02-09 Peter S Galbraith <psg@mixed.dyndns.org> - - * mh-comp.el (mh-letter-complete): Add completion for fcc lines. - (mh-folder-expand-at-point): Do completion at point for folder - name. Like `mh-alias-letter-expand-alias' for aliases, it doesn't - work on XEmacs because it relies on `mail-abbrev-complete-alias' - to do completion. Maybe Steve could update XEmacs' mailabbrev.el? - -2003-02-09 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-invisible-header-fields): Remove trailing - space in "X-Face: " and "Face: " entries since those line often - break there. - -2003-02-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-emacs21-face-display-function): Use - mh-show-xface-face to colorize X-Face image. - - * mh-customize.el (mh-invisible-header-fields): Add extra headers - to ignore. - (mh-show-xface-face): Allow customization of the X-Face colors. - -2003-02-07 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-uncompface-executable, mh-uncompface): Remember - the path of the uncompface executable so that we don't need to - search for it every time. - (mh-emacs21-face-display-function): If more than one X-Face (or - Face) header field was present then the fields would get - concatenated, leading to garbled output. The change only displays - the first image. - - * mh-customize.el (mh-x-face-file): Change documentation since it - can now be used to insert a Face header field. - - * mh-comp.el (mh-insert-x-face): Generalized to allow insertion - of Face header field. - -2003-02-06 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-emacs21-face-display-function): Updated - docstring. It is a common mistake to refer to a header field as a - header. The term header refers to the entire header while the term - header field refers to a single field. - - * mh-customize.el (mh-show-use-xface-flag): Ditto. - -2003-02-06 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-show-xface-function): Modified to use - mh-emacs21-face-display-function if we are running GNU Emacs 21. - (mh-face-to-png): New function to convert a Face header to a png - image. - (mh-uncompface): New function which converts an X-Face header to - a pbm image. - (mh-icontopbm): New function that does the job of icontopbm. - (mh-emacs21-face-display-function): New function that displays - Face/X-Face image in GNU Emacs 21. - (mh-show-xface): Modified to test if we are running in X. - Otherwise face display is suppressed. - - * mh-customize.el (mh-show-use-xface-flag): Tweak it, now that - MH-E supports face display natively on Emacs 21. Also remove the - check for window-system since it doesn't belong in a customizable - variable. - -2003-02-06 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (sendmail): Require it so that XEmacs can find - rfc822-goto-eoh. - (mh-mail-header-end): A substitute for mail-header-end that - doesn't widen the buffer. This is essential to avoid problems when - dealing with nested messages. - (mh-in-header-p, mh-letter-header-font-lock) - (mh-header-field-font-lock, mh-show-font-lock-fontify-region) - (mh-show-unquote-From): Use mh-mail-header-end instead of - mail-header-end. - - * mh-mime.el (mh-decode-message-body): same as above (closes SF - #681518). - - * mh-comp.el (mh-yank-cur-msg): same as above. - -2003-02-05 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-display-msg): Call mh-show-mode before invisible - headers are cleaned. This means that any surviving X-Face header - can be removed unconditionally in mh-clean-msg-header. - (mh-clean-msg-header): Since the function is now called with a - read-only buffer, make the buffer temporarily writable. - - * mh-mime.el (mh-mm-inline-message): Do X-Face display before - invisible headers are removed. - - * mh-customize.el (mh-invisible-headers): Simplified since the - X-Face header isn't treated specially any more. - (mh-invisible-header-fields): Add Face: and X-Face: to list of - invisible headers. - - * mh-mime.el (mh-mime-display): If body is empty the headers would - be treated like the body. The change fixes this (closes SF #681162). - (mh-mime-display): This change really fixes the above problem. - -2003-02-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-current-folder-name): Global variable that - keeps track of current folder. - (mh-normalize-folder-name): Substitute @ with - mh-current-folder-name (closes SF #666774). - (mh-prompt-for-folder): Bind mh-current-folder-name. Also - invalidate cache if we are visiting a folder that wasn't found in - the sub-folder cache. This is an indication that folders may have - been created outside of MH-E and so the cache may be stale. - -2003-02-03 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-decode-content-transfer-encoded-message): Removed. - (mh-display-msg): Remove the use of the above function. - (mh-normalize-folder-name): Leading "/" characters were being - lost. The change fixes this (closes SF #676890). - - * mh-mime.el (mh-decode-message-body): New function, factored out - from mh-mime-display and enhanced, to decode message based on - charset and content-transfer-encoding. This eliminates the need - for the external mimencode (closes SF #674857). - (mh-mime-display): Use mh-decode-message-body. - - * mh-e.el (mh-header-display): Don't need the binding since the - variable isn't present any more. - (mh-inc-folder): Avoid calling mh-show if point is not on a valid - scan line (closes SF #678115). - - * mh-customize.el - (mh-decode-content-transfer-encoded-message-flag): Removed. - -2003-02-03 Bill Wohler <wohler@newt.com> - - * import-emacs: MH-E now has its own directory in Emacs. - - * mh-e.el: (mh-version): Set to 7.2+cvs. - -2003-02-03 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.2. - - * MH-E-NEWS, README: Updated for release 7.2. - - * mh-e.el (Version, mh-version): Updated for release 7.2. - -2003-02-03 Bill Wohler <wohler@newt.com> - - * Makefile (dist): mkdir needs to happen *before* files are - copied. - - * MH-E-NEWS: Fixed some awkward verbiage. - -2003-02-02 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-invisible-headers): Surround regexp-opt - expression in parens to avoid problems viewing certain messages. - -2003-01-30 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-flists): Search for flists in mh-progs. - The original was inadvertently searching for flists in the user's - path. - -2003-01-27 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-default-folder-must-exist-flag): Changed - default to t according to the principle of least surprise. - -2003-01-26 Bill Wohler <wohler@newt.com> - - * mh-utils.el: Checkdoc fixes. - - * mh-pick.el (mh-do-search, mh-search-folder): Checkdoc fixes. - - * mh-loaddefs.el: Regenerated (lm-verify fixes). - - * mh-index.el (mh-mairix-next-result): Checkdoc fixes. - - * mh-alias.el: lm-verify fix. - - * Makefile (MH-E-SRC): Added ChangeLog, now that Emacs has a - lisp/mh-e directory. - (MH-E-ETC-ETC): Removed ChangeLog. - (dist): Moved creation of mail directory next to copy of files - into mail directory. - (install-emacs): Copy $(MH-E-SRC) into new directory - $(EMACS_HOME/lisp/mh-e. - (MH-E-SRC): Moved ChangeLog into new variable MH-E-OTHERS and - include MH-E-LOADDEFS there too. - (mh-loaddefs.el): Added lines so that lm-verify passes. - (dist, install-emacs): Use MH-E-OTHERS instead of MH-E-LOADDEFS. - -2003-01-26 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-tidy-draft-buffer, mh-compose-and-send-mail): - Rename mh-kill-draft-hook to mh-tidy-draft-buffer. - -2003-01-25 Jeffrey C Honig <jch@honig.net> - - * mh-utils.el (mh-exec-cmd, mh-exec-cmd-daemon) - (mh-process-daemon): Use mh-log-buffer for the output of commands - from mh-exec-cmd. - - * mh-utils.el (mh-temp-folders-buffer): Sequences and folders - loose the -temp from their buffer names as they are interesting to - the user. - - * mh-seq.el (mh-list-sequences): New name, mh-sequences-buffer as - it is intended to be interesting to the user. - - * mh-funcs.el (mh-list-folders): New name, mh-folders-buffer as it - is intended to be interesting to the user. - - * mh-comp.el (mh-check-whom, mh-compose-and-send-mail): Use - mh-recipients-buffer constant. Add a kill buffer hook to delete - the recipients buffer when a draft buffer is killed. - -2003-01-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-customize): New interactive argument - deletes other windows. - (mh-tool-bar-show-set, mh-tool-bar-letter-set) - (mh-tool-bar-folder-set): Modified so that clicking the customize - and help buttons deletes the other windows in the frame. - - * mh-mime.el (mh-mm-inline-message): Remove unused code. - - * mh-seq.el (mh-notate-deleted-and-refiled): Fix a small bug where - the wrong notation was being used. - (mh-toggle-threads): The function had a bug if you did the - following starting from an unthreaded wide folder: - (1) Create a sequence with S p - (2) Narrow to new sequence with S n - (3) Thread narrowed folder with T t - (4) Kill sequence with S k - (5) Unthread narrowed folder with T t - At this point we would have an empty folder. The change fixes - this. - (mh-toggle-threads): Fix documentation. - - * mh-customize.el (mh-invisible-header-fields): Add - X-MHE-Checksum to invisible headers. - - * mh-comp.el (mh-insert-x-mailer): Slightly more informative - X-Mailer header. - -2003-01-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-header-display): Modified so that quoted-printable - or base64 encoded messages are left untouched. - - * mh-utils.el (mh-decode-content-transfer-encoded-message): Munge - the Content-Transfer-Encoding header so that the MIME decoding - routines of Gnus doesn't get confused. - (mh-display-msg): Use insert-file-contents-literally so that - display will work for non-ascii. - - * mh-mime.el (mh-mime-display): Use charset info to decode - message file (closes SF #655123). - -2003-01-24 Bill Wohler <wohler@newt.com> - - * mh-alias.el (mh-alias-add-alias-to-file): Removed period from - error message and added parens around error function. - -2003-01-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-decode-quoted-printable-flag): Removed. - (mh-decode-content-transfer-encoded-message-flag): This replaces - mh-decode-quoted-printable-flag. - - * mh-utils.el (mh-decode-content-transfer-encoded-message): New - function which handles messages that are encoded as base64 or - quoted-printable (closes SF #674190). - (mh-decode-quoted-printable): Removed. - (mh-display-msg): Use mh-decode-content-transfer-encoded-message - instead of mh-decode-quoted-printable. - -2003-01-23 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-generate-scan-lines): Fix a little bug - that would occasionally cause angles ('<' and '>') to appear at - root level. - -2003-01-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-notate-cur): Enable overlay arrow display in text - mode too. - - * mh-e.el (mh-folder-mode): Initialize overlay-arrow-string so - that a '>' is displayed in text mode. - -2003-01-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-scan-msg-overflow-regexp): Change the variable - so that a space is always maintained in the beginning of the scan - line. - - * mh-seq.el (mh-notate-seq, mh-notate-cur): Make the functions - faster by cutting down on the use of mh-goto-msg. - (mh-toggle-threads): Add call to mh-notate-cur, since inserting - the folder names in a search results folder screws up the - location of the overlay arrow. - - * mh-index.el (mh-index-delete-folder-headers): Position the - point on a message line if possible. - - * mh-funcs.el (mh-copy-msg): Use the mh-iterate macro to make the - function faster. - - * mh-e.el (mh-scan-folder): Reuse mh-notate-deleted-and-refiled. - - * mh-loaddefs.el: Regenerated. - - * mh-utils.el (mh-add-msgs-to-seq): Add a new parameter that - suppresses the annotation of the sequence since it is - inefficient. - - * mh-seq.el (mh-delete-seq): Speed up the part of the function - that removes the sequence notation. - (mh-put-msg-in-seq, mh-notate-deleted-and-refiled): Use - mh-iterate-on-messages-in-region to make the function fasters when - operating on regions. The key idea is to loop over the folder - buffer exactly once and do all annotations. The existing algo - would walk over the buffer multiple times thereby slowing things - down. - (mh-iterate-on-messages-in-region): Added an extra parameter which - is bound to the message index as the loop is executed. - (mh-region-to-msg-list, mh-thread-delete, mh-thread-refile): Use - the new mh-iterate-on-messages-in-region macro. - - * mh-e.el (mh-delete-msg-no-motion, mh-refile-msg, mh-undo): Same - as above. - (mh-notate-user-sequences): Change algorithm to make notating of - user sequences fast. - -2003-01-19 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-logo.xpm: New image file that contains the MH-E logo. - Change foreground color to the blue in the MH-E logo. - - * Makefile (MH-E-IMG): Add mh-logo.xpm to list of image files. - - * mh-utils.el (mh-show-buffer-mode-line-buffer-id): Adjust it to - keep space in the beginning for the logo. - (mh-logo-cache): New variable that caches the logo image file - location. - (mh-logo-display): Display the MH-E logo on the mode line. - (mh-display-msg): Display logo in mh-show-mode. - - * mh-e.el (mh-make-folder-mode-line): Display logo in - mh-folder-mode. - - * mh-comp.el (mh-compose-and-send-mail): Display logo in - mh-letter-mode. - - * mh-loaddefs.el: Regenerated. - - * mh-seq.el (mh-iterate-on-messages-in-region): New macro to - iterate on all messages in a region. - (mh-region-to-msg-list): Simplified since it uses - mh-iterate-on-messages-in-region now. - - * mh-e.el (mh-delete-msg, mh-refile-msg): Change interactive spec - to pass the region that is to be deleted when appropriate. - (mh-delete-msg-no-motion, mh-refile-msg, mh-undo): Operate on - regions directly without creating the list of messages to be - deleted/refiled. - (mh-delete-a-msg, mh-refile-a-msg, mh-undo-msg): The msg - parameter in these functions can now be nil. If so, the current - message is deleted, refiled or undone respectively. Avoids the - use of mh-goto-msg in this case and speeds up operations on - regions quite a bit. - -2003-01-19 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-read-address): Bug Fix. In XEmacs and Emacs20, - it would always prompt using "To: " instead of using the command - argument (closes SF #670913). - -2003-01-19 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-folder-completion-function): If there is a - +foo/bar folder and the user types foo//bar then the completion - function would say a match happened without showing the - normalized folder name. This change fixes that. - -2003-01-18 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-rmail): Modified so that new and unseen messages - are shown (closes SF #667542). - -2003-01-17 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-generate-pretty-name): Generate nicer - names. In particular all '-' characters are removed. - -2003-01-16 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-index-program): Documentation fix. - - * mh-loaddefs.el: Regenerated. - - * mh-customize.el (mh-index-program): Add choices for mairix and - pick. - - * mh-index.el (mh-indexer-choices): Add search interfaces for - mairix and pick. - (mh-index-search): Add links for mairix and pick. - (mh-index-pick-folder, mh-pick-binary): Variables needed to - implement pick support. - (mh-pick-execute-search, mh-pick-next-result): New functions to - implement pick support. - (mh-mairix-binary, mh-mairix-directory, mh-mairix-folder): New - variables for mairix support. - (mh-mairix-execute-search, mh-mairix-next-result) - (mh-mairix-regexp-builder, mh-mairix-convert-to-sop*): New - functions for mairix. - - * mh-funcs.el (mh-kill-folder): Move message to the end. - - * mh-e.el (mh-folder-mode): Make overlay-arrow-position and - overlay-arrow-string local variables so that the arrow will - remain even if some other folder is visited. - (mh-remove-cur-notation, mh-remove-all-notation): The test isn't - required any more since overlay-arrow-position is local. - (mh-goto-cur-msg): Remove overlay arrow if current message - doesn't exist. - - * mh-seq.el (mh-notate-cur): Don't need to set - overlay-arrow-string any more since it is local and has been set - at initialization. - -2003-01-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-current-folder): Keep track of current - folder when flists is called. - (mh-speed-flists, mh-speed-parse-flists-output): Try to avoid - ambiguity when folders are present with + at the end of the name. - Unfortunately it can't always be avoided. - - * mh-e.el (mh-folder-size): Remove the unnecessary error check. - (mh-parse-flist-output-line): Add extra argument which - occasionally avoid problems with folder names that end with '+'. - - * mh-utils.el (mh-sub-folders-actual): Fix the folder name - parsing so that it doesn't get confused by trailing '+' chars in - the folder name. - -2003-01-14 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-normalize-folder-name): Enhanced so that it can - now handle ".." and "." correctly during folder name completion. - (mh-normalize-folder-name): Avoid error in boundary condition - where the folder string is empty. - -2003-01-14 Mark D. Baushke <mdb@gnu.org> - - * mh-e.el (mh-visit-folder): Pass `current-prefix-arg' to - the `mh-read-msg-range' function as the optional - always-prompt-flag. - -2003-01-14 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-normalize-folder-name): New function that - normalizes folder names. - (mh-sub-folders): Use mh-normalize-folder-name. Also the function - has been modified so that a trailing slash is only added if the - folder potentially has subfolders. - (mh-sub-folders-actual): Simplified since the folder has already - been normalized in mh-sub-folders. - (mh-remove-from-sub-folders-cache): Modified so that the cached - results of two of the folders ancestors are invalidated. - (mh-folder-completion-map): Ugly hack to make the error go away - when minibuffer-complete-word is called. - (mh-folder-completion-function): The completion function will now - be more selective in adding '/' at the end of completed folder - names. - (mh-folder-completing-read): The folder name is normalized before - return. The minibuffer-local-completion-map is shadowed to avoid - error with SPC (bound to minibuffer-complete-word). We really - need a better solution. - -2003-01-13 Bill Wohler <wohler@newt.com> - - * mh-seq.el: Edited comment and docstring text to conform with RFC - 2822 terminology. Message-ID is the header field. It contains a - message identifier. - -2003-01-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-sub-folders): Add an argument that returns - sub-folders with a / character appended at the end. - (mh-folder-completion-function): Modify the function so that one - tab is now sufficient to complete the folder name and add a - trailing /. - (mh-folder-completing-read): Remove the trailing / that the - completion function now adds to the folder name. Also multiple / - characters in the folder input are removed. So if the user inputs - +foo///bar//baz///// then that will be converted to +foo/bar/baz. - This will improve the performance of caching. - - * mh-seq.el (mh-notate-cur): Check that a valid current message - exists before trying to notate (closes SF #667331). - (mh-message-id-regexp): New variable to store regexp to recognize - message-ids. - (mh-thread-generate): Use mh-message-id-regexp to filter out non - message-id's from the References: header. - -2003-01-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-notate-cur): Disable overlay-arrow display if we - aren't on a graphic display. - -2003-01-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-notate-cur): New function to notate the current - message. The marker in the fringe is updated too. - (mh-narrow-to-seq, mh-widen, mh-thread-inc, mh-thread-folder): Use - the specialized function mh-notate-cur instead of mh-notate-seq. - - * mh-e.el (mh-arrow-marker): New buffer local variable to store - the position where the marker in the fringe is going to be - displayed (closes SF #664824). - (mh-folder-mode): Create a marker for the fringe. - (mh-update-sequences, mh-get-new-mail, mh-goto-cur-msg): Call the - specialized function mh-notate-cur instead of mh-notate-seq or - mh-notate. - (mh-remove-cur-notation, mh-remove-all-notation): Reset the - overlay-arrow-position if needed. - - * mh-loaddefs.el: Regenerated. - -2003-01-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-remove-from-sub-folders-cache): Modified so that - creating nested folders doesn't produce inconsistent results. - (mh-prompt-for-folder): Remove call of mh-folder-list-change-hook. - - * mh-funcs.el (mh-kill-folder): Don't ask for confirmation if - called on a folder holding index search results. Also the now - removed mh-folder-list-change-hook is called no more. - - * mh-customize.el (mh-auto-folder-collect-flag) - (mh-folder-list-change-hook): Removed. - - * mh-loaddefs.el: Regenerated. - -2003-01-10 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-default-folder-must-exist-flag): New - variable to suppress suggested folder if the folder doesn't - already exist (closes SF #657096). - (mh-default-folder-list): New variable that - holds mapping between an address and the desired folder for - filing (closes SF #657096). - (mh-default-folder-prefix, mh-default-folder-must-exist-flag): In - docstring, refer to documentation for mh-prompt-for-refile-folder - and mh-folder-from-address. - (mh-highlight-citation-p, mh-compose-insertion, - (mh-insert-mail-followup-to-list, mh-index-program, - (mh-identity-default): Fixed case of tags. - - * mh-e.el (mh-folder-from-address): Use new variable - mh-default-folder-must-exist-flag to return nil if this variable - is t and the folder doesn't already exist. In addition, can now - look up a default folder in the new variable - mh-default-folder-list (closes SF #657096). - (mh-prompt-for-refile-folder): In docstring, refer to - documentation in mh-folder-from-address. - - * mh-index.el (mh-swish-execute-search): Changed \..* to \\..* in - the FileRules filename in the sample config file. Otherwise, the - users don't see the backslash at all, and no files are indexed! - (closes SF #665888). - -2003-01-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-folder): Get headers for exactly the - messages that are present. If only messages 1-10 and 3800-3900 - are being shown then we will now scan exactly those messages and - not the full range from 1-3900 as was being done earlier. - (mh-toggle-threads): When converting from threaded to normal view - only the messages present in the buffer are scanned. Earlier all - messages from the minimum to the maximum would be scanned (closes - SF #626117). - - * mh-pick.el (mh-search-folder): Fix typo. - (mh-pick-do-search): Fix bug from cut and paste. Also set window - config properly. - - * mh-utils.el (mh-prompt-for-folder): Add new argument to allow - it to accept + as a folder name. This allows the user to search - all folders when "Fs" is used. - - * mh-pick.el (mh-search-folder): Fix interactive spec of function. - (mh-pick-do-search): Rewritten to call pick in one go. This will - make adding pick as a default index search program easier. Also - pick now accepts the same query syntax as the index search - programs (closes SF #664816). - (mh-next-pick-field): Removed. - (mh-pick-parse-search-buffer): New function to parse the search - buffer. - (mh-pick-construct-regexp, mh-pick-regexp-builder): New function - to produce a pick query from the parsed representation. - - * mh-index.el (mh-index-do-search): Refactor the search pattern - parser into a new function and use that instead. - - * mh-loaddefs.el: Regenerated. - -2003-01-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-loaddefs.el: Regenerated. - - * mh-utils.el (mh-remove-from-sub-folders-cache) - (mh-prompt-for-folder): Replace mh-update-sub-folders-cache with - mh-remove-from-sub-folders-cache. - (mh-exec-cmd-daemon): Mention set-process-filter in documentation. - - * mh-pick.el (mh-searching-function): New buffer local variable - that keeps track of the default searching function to be used. - (mh-pick-mode): Make mh-searching-function buffer local. - (mh-search-folder): Set mh-searching-function to use pick. - (mh-search-folder, mh-pick-menu, mh-pick-mode-help-messages) - (mh-pick-mode, mh-do-pick-search, mh-pick-do-search): Rename - mh-do-pick-search to mh-pick-do-search. But keep - mh-do-pick-search as a deprecated function. - (mh-do-search): New interactive function that performs the - default search. - (mh-pick-mode-map): Update keymap. - - * mh-index.el (mh-index-search): Set mh-searching-function to do - index search. - (mh-index-new-folder): Replace mh-update-sub-folders-cache with - mh-remover-from-sub-folders-cache. - - * mh-funcs.el (mh-kill-folder): Same as above. - - * mh-index.el (mh-index-evaluate, mh-swish++-regexp-builder): - Checkdoc fixes. - - * mh-customize.el: Fixes to make byte compiler in CVS Emacs - perfectly happy. - -2003-01-09 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-folder-from-address): New function that proposes the - name of a folder with an alias for the address in the current message. - (mh-prompt-for-refile-folder): Use it (closes SF #657096). - - * mh-customize.el (mh-default-folder-prefix): New variable used by - mh-folder-from-address. - (mh-invisible-header-fields): Edited docstring. - - * mh-alias.el (mh-alias-address-to-alias): Added ;;;###mh-autoload - cookie (used by mh-folder-from-address in mh-e.el). Edited text in - comment. - - * mh-utils.el: Provided naming conventions for buffer and buffer - variable names. - (mh-temp-folders-buffer): Renamed buffer to " *mh-folders*". - (mh-temp-sequences-buffer): Renamed buffer to " *mh-sequences*". - (mh-info-buffer): Renamed from mh-temp-info-buffer. - (mh-log-buffer): New buffer variable to hold name of "*MH-E Log*" - buffer which is expected to be used for the output of MH commands. - Perhaps we always create this buffer at initialization and append - to it rather than erase it each time? - - * mh-e.el (mh-quit): Loop over all buffers and delete MH-E - temporary and working buffers. As long as the buffer naming - conventions are followed, new buffers will be automatically - killed. - (mh-version): Renamed mh-temp-info-buffer to mh-info-buffer. - - * mh-comp.el (mh-insert-x-mailer): Renamed mh-temp-info-buffer to - mh-info-buffer. - -2003-01-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-folder-size): If the user doesn't have a - Unseen-Sequence definition in .mh_profile then an error was - produced. This change fixes that. - - * mh-seq.el (mh-thread-generate): Replace the *mh-thread* buffer - with a temporary buffer which is cleaned up when the function - exits. - - * mh-e.el (mh-prompt-for-refile-folder): New function which - refactors out the intelligent folder guessing code from - mh-refile-msg. - (mh-refile-msg): Use mh-prompt-for-refile-folder. - - * mh-seq.el (mh-thread-refile): Use mh-prompt-for-refile-folder to - do the same intelligent destination folder guessing as - mh-refile-msg (closes SF #664829). - - * mh-utils.el (mh-folder-list, mh-make-folder-list-process) - (mh-folder-list-temp, mh-folder-list-partial-line) - (mh-set-folder-list): Removed. - (mh-sub-folders-cache, mh-sub-folders, mh-sub-folders-actual): - Moved over from mh-speed.el to implement hierarchical completion. - (mh-update-sub-folders-cache): Utility function called when - new folders are created or folders are removed. - (mh-folder-completion-function): New function is the folder name - completion function used in completing-read. - (mh-folder-completing-read): A thin wrapper function that is used - instead of completing-read directly. In the future we might want - to allow the user a customizable variable which will turn off - folders based completion. - (mh-prompt-for-folder): Use mh-folder-completing-read to read in - the folder name with hierachical completion (closes SF #664821). - - * mh-speed.el (mh-speed-folders, mh-speed-folders-cache) - (mh-speed-folders-actual): Moved to mh-utils.el as mh-sub-folders, - mh-sub-folders-cache and mh-sub-folders-actual respectively. - (mh-speed-invalidate-map, mh-speed-invalidate-map) - (mh-speed-add-folder): Use the new names. - - * mh-funcs.el (mh-kill-folder): Remove code that used to update - mh-folder-list which is no longer present. Instead - mh-update-sub-folders-cache is called. - - * mh-index.el (mh-index-new-folder): Same as above. - -2003-01-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-exec-cmd-daemon): An argument was added which - controls what is done with the process output. - - * mh-funcs.el (mh-kill-folder): Use mh-previous-window-config to - restore window configuration. Also the call to mh-exec-cmd-daemon - only displays output if an error happened (closes SF #664828). - (mh-rmf-daemon): Check rmf output and display it only if - something went wrong. - (mh-print-msg): Pass in nil argument to mh-exec-cmd-daemon. - - * mh-comp.el (mh-redistribute, mh-send-letter): Pass in nil - argument to mh-exec-cmd-daemon so that the functions will behave - as before. - - * mh-pick.el (mh-search-folder): The current window config is - stored. - (mh-make-pick-template): Make the message headers read-only. - (mh-pick-mode-help-messages): Update help message. - (mh-do-pick-search): Fix problem when buffer isn't showing any - messages. - (mh-next-pick-field): Use buffer-substring-no-properties is - better. - (mh-pick-mode-map): Add key bindings (partially addresses - SF #664816) - - * mh-index.el (mh-indexer-choices): Add a new field for each - index program choice. If it is non-nil then it is the name of a - function that given a lisp expression to search for generates a - pattern that is acceptable to the search program. - (mh-index-regexp-builder): New variable that stores the function - to be used to convert from the lisp expression syntax to - something that the search program understands. - (mh-index-generate-pretty-name): Generalized so that it can take - a list of strings as input. - (mh-index-search): Modified so that if the configured program has - a corresponding regexp-builder then a search buffer like pick - search is produced. Otherwise the previous behavior is maintained. - (mh-index-do-search): New interactive function that takes the - contents of the search buffer, generates an appropriate query and - produces the search results buffer by calling mh-index-search. - (mh-replace-string, mh-index-parse-search-regexp) - (mh-index-add-implicit-ops, mh-index-evaluate): New functions - which parses the infix search expression that the user enters. A - parse tree from which queries for different search programs can - be produced is produced. - (mh-swish++-regexp-builder, mh-swish++-print-regexp): Takes the - internal form of the query and produces input suitable for - swish++. - - * mh-loaddefs.el: Regenerated. - -2003-01-08 Bill Wohler <wohler@newt.com> - - * Makefile (emacs-logs): New target for viewing CVS Emacs logs. - Useful to see if an Emacs developer has changed MH-E. - - * MH-E-NEWS: Fixed case of MH-E in the "Changes" title. - - * mh-utils.el (mh-temp-info-buffer): New variable to hold name of - buffer that contains version info. - - * mh-e.el (mh-version): Use mh-temp-info-buffer instead of - mh-temp-buffer since version information was getting clobbered by - the aliasing code before it could be seen (closes SF #664467). - (mh-quit): Delete mh-temp-info-buffer. - - * mh-comp.el (mh-insert-x-mailer): Use mh-temp-info-buffer to find - version info instead of mh-temp-buffer. You kind of need this - patch to send mail. - -2003-01-07 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Set to 7.1+cvs. - -2003-01-07 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.1. - - * MH-E-NEWS, README: Updated for release 7.1. - - * mh-e.el (Version, mh-version): Updated for release 7.1. - -2003-01-07 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-auto-folder-collect-flag, - mh-alias-system-aliases, mh-alias-insert-file): Edited docstrings. - - * Makefile (MH-E-IMG): Added alias.pbm and alias.xpm. - - * mh-alias.el (mh-alias-insert-file, mh-alias-add-alias): Fixed - checkdoc warnings. - -2003-01-07 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-search-from-end): New function that is used to - replace our usage of the CL function search. - (font-lock): The library is loaded to avoid compilation warning - in CVS Emacs. - - * mh-speed.el (mh-speed-goto-folder, mh-speed-add-folder) - (mh-speed-extract-folder-name, mh-speed-invalidate-map): Use - mh-search-from-end instead of search. - - * mh-seq.el (mh-thread-remove-parent-link): Use loop instead of - remove*. - (mh-thread-process-in-reply-to): Use mh-search-from-end instead - of search. - - * mh-index.el (mh-md5-parser): Fix name of function. - (mh-index-update-single-msg, mh-index-update-maps): Avoid using - destructuring-bind since Emacs-20.7 can't handle this particular - usage. - (mh-namazu-next-result): Use mh-search-from-end instead of - search. - - * mh-e.el (recursive-load-depth-limit): Add a defvar since CVS - emacs which doesn't have the variable defined causes a compiler - warning. - (mh-refile-a-msg): Rewritten to avoid using pushnew. - (mh-undo-msg): Use loop instead of remove-if. - - * mh-comp.el (mh-show-buffer-message-number): Use - mh-search-from-end instead of search. - -2003-01-01 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-visit-folder): Modified so that if RANGE is nil then - all messages are displayed. Documentation modified so that this is - explicitly stated. - (mh-visit-folder): Really fix it this time. - -2003-01-01 Mark D Baushke <mdb@gnu.org> - - * mh-alias.el (mh-alias-from-has-no-alias-p): Needs the - mh-autoload comment or mh-customize may have problems finding the - function. - - * mh-loaddefs.el: Regenerated. - -2002-12-28 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-namazu-execute-search): Fix bug in documentation. - -2002-12-28 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-letter-mode): Mention mh-compose-insertion - variable in docstring, explain how to expand directives, and - don't mention mh-mhn-compose-insertion which isn't used directly - any more. - (mh-send-letter): Mention that X-Mailer and X-Face are inserted - automatically so that a user isn't tempted to do so himself in - mh-before-send-letter-hook. - (mh-insert-letter): Use "variable" prefix for mh-invisible-headers - now that we have both a function and a variable. Clarified - language a bit. - -2002-12-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-show-xface-function): Only load x-face-e21 if - the emacs is not XEmacs. - - * mh-index.el (mh-index-new-folder): The folder created should - always be added to mh-folder-list. Otherwise folder name - completion doesn't find the new folder created. - -2002-12-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-clean-message-header-flag) - (mh-visible-headers, mh-invisible-headers) - (mh-invisible-header-fields-set): Reworded to satisfy checkdoc. - - * mh-loaddefs.el: Regenerated. - - * mh-e.el (mh-inc-folder, mh-visit-folder, mh-read-msg-range): - Handle nil value of mh-large-folder properly. - - * mh-customize.el (mh-tool-bar-show-set, mh-tool-bar-letter-set) - (mh-tool-bar-folder-set, mh-tool-bar-folder-buttons) - (mh-invisible-headers, mh-invisible-header-fields-set): Checkdoc - fixes. - (mh-large-folder): Updated to allow for infinity. If - mh-large-folder is nil then all folders are deemed small. - -2002-12-23 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-inc-folder, mh-visit-folder): Emit a message if - threading was suppressed because the number of messages exceed - mh-large-folder. - -2002-12-23 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-invisible-headers): Deleted. Moved to - mh-customize.el - - * mh-customize.el (mh-invisible-header-fields): New - defcustom. Simple user interface to change mh-invisible-headers. - (mh-invisible-header-fields-set): New function called when - mh-invisible-header-fields is set. - (mh-invisible-headers): New function. Does the actual work of - building the variable mh-invisible-headers from - mh-invisible-header-fields. - (mh-invisible-headers): defvar moved from mh-utils.el - -2002-12-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-folder-size): Removed. Something very - similar appears as mh-folder-size. - (mh-speed-view): Simplified since the range selection logic has - been moved to mh-read-msg-range. - (mh-speed-parse-flists-output-line): Moved to mh-e.el as - mh-parse-flist-output-line. - - * mh-funcs.el (mh-pack-folder): Use the new mh-read-msg-range. - - * mh-e.el (mh-rescan-folder): Use the new mh-read-msg-range. - (mh-parse-flist-output-line): Moved from mh-speed.el where this - function was called mh-speed-parse-flists-output-line. - (mh-folder-size): Renamed from mh-speed-folder-size. The function - has been made more general and can be called from any buffer and - not just the speedbar buffer. - (mh-visit-folder): Use the new mh-read-msg-range (addresses SF - #655891). - (mh-read-msg-range): Rewritten. - -2002-12-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-delete-subject-or-thread): New interactive - function that intelligently deletes messages based on threading, - if the folder is threaded, or on subject if folder isn't threaded. - - * mh-utils.el (mh-show-delete-subject-or-thread): New interactive - function, callable from the show buffer, to intelligently delete - messages based on threading info or subject. - (mh-show-mode-map): Change binding of "k" to call - mh-show-delete-subject-or-thread. - - * mh-e.el (mh-folder-mode-map): Change binding of "k" to call - mh-delete-subject-or-thread. - - * mh-comp.el (mh-letter-mode-map): Add key binding for - mh-insert-identity. - - * mh-loaddefs.el: Regenerated. - -2002-12-21 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-tool-bar-letter-set): Bug fix. The - `tool-bar-add-item-from-menu' items were broken. I can't use my - constants there. - -2002-12-21 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-insert-file): Bug fix. I never checked - that an AliasFile entry existed in .mh_profile. - -2002-12-21 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-alias-insertion-location): New defustom. - Specifies where new aliases are entered in alias files. - - * mh-alias.el (mh-alias-add-alias-to-file): Use it. - -2002-12-21 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-add-alias-to-file): If ALIAS matches - exactly, prompt to [i]nsert before old value or [a]ppend after it. - (mh-alias-insert-file): Make sure we don't edit the passwd file. - Add optional argument for alias; If ALIAS is specified and it - already exists, try to return the file that contains it. - (mh-alias-which-file-has-alias): New function. Return the name of - writable file which defines ALIAS from list FILE-LIST. - (mh-alias-add-alias): Remove prompts for case of alias already - defined; done in mh-alias-add-alias-to-file. - -2002-12-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-folders-actual): Fix bug in parsing of - folder names that have spaces in them. The original function would - truncate the folder name at the first space. - (mh-speed-flists): Add -sequence option to flists. This guards - against the user specifying something other than the unseen - sequence in his .mh_profile. - (mh-speed-parse-flists-output-line): New function that parses a - single line in the output of flists to find the folder name and - the counts of unseesn and total messages. - (mh-speed-parse-flists-output): Fix parsing bug which truncates - the folder names at the first space. - - * mh-index.el (mh-index-generate-pretty-name): New function which - generates a nicer name for the search results. It trims white - space at the beginning and end and replaces white space with - underscores within the search regexp. - (mh-index-search): Use mh-index-generate-pretty-name. - - * mh-loaddefs.el: Regenerated. - -2002-12-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-new-folder): Add new folder to - mh-folder-list to enable name completion. - (mh-glimpse-execute-search, mh-swish-execute-search) - (mh-swish++-execute-search): Fix documentation. - - * mh-seq.el (mh-thread-generate): Fixed a stupid bug where the wrong - folder could get 'scan'ed when generating the threaded view. - - * mh-index.el (mh-index-search): If optional prefix arg is given - then the search in the current index buffer is redone. - (mh-glimpse-execute-search, mh-swish-execute-search) - (mh-namazu-execute-search): Documentation fixes. - - * mh-e.el (mh-index-previous-search): New buffer local variable - stores parameters of search that created the buffer. - (mh-folder-mode): Make mh-index-previous-search buffer local. - (mh-visit-folder): Tweak the function so that only a single window - with the folder buffer is shown if mh-showing-mode is nil. - - * mh-loaddefs.el: Regenerated. - -2002-12-19 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-add-alias): Bug fix. - -2002-12-19 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-add-alias): New interactive command. Add - ALIAS for ADDRESS in personal alias file. - (mh-alias-grab-from-field): New interactive command. Add ALIAS for - ADDRESS in personal alias file. - (mh-alias-add-address-under-point): New interactive - command. Insert an alias for email address under point. - (mh-alias-suggest-alias): New function. Suggest an alias for STRING. - (mh-alias-insert-file): New function. Return the alias file to - write a new entry in. - (mh-alias-address-to-alias): New function. Return the ADDRESS - alias if defined, or nil." - (mh-alias-from-has-no-alias-p): New function. Return t is From has - no current alias set. Used as tool-bar button enable function. - (mh-alias-add-alias-to-file): New function. Add ALIAS for ADDRESS - in alias FILE without alias check or prompts. - - * alias.xpm, alias.pbm: New tool-bar icon for - mh-alias-grab-from-field. - - * mh-e.el (mh-folder-line-matches-show-buffer-p): New function. - Return t if the message under point in folder-mode is in the show - buffer. - - * mh-utils.el (mh-goto-address-find-address-at-point): New - function copied from goto-addr.el, which we don't want to - force-load on users. Find e-mail address around or before point. - (mh-address-mail-regexp): New defvar. A regular expression - probably matching an e-mail address. - - * mh-customize.el (mh-alias-insert-file): New defcustom. - Filename to use to store new MH-E aliases. - (mh-tool-bar-folder-buttons): Enable mh-tool-bar-item-alias icon. - - * mh-comp.el (mh-extract-from-header-value): New function. - Extract From: string from header. - -2002-12-19 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-update-single-msg): New defvar controls - max number of command line args. - (mh-index-execute): New function which is to be used - instead of xargs so that we don't give the shell too many command - line args. - (mh-index-update-maps): Use mh-index-execute instead of xargs. - (mh-index-search): Remove unused code. Also the first message in - folder buffer is made current. - -2002-12-18 Peter S Galbraith <psg@debian.org> - - * mh-loaddefs.el: Regenerated. - - * mh-comp.el (mh-letter-tool-bar-map): Moved to mh-customize.el - - * mh-e.el (mh-folder-tool-bar-map): Moved to mh-customize.el - - * mh-utils.el (mh-get-msg-num): autoloaded. - (mh-show-tool-bar-map): Moved to mh-customize.el - - * mh-customize.el (mh-tool-bar-item-*): 33 new defconsts for - tool-bar setup and customization. - (mh-tool-bar-folder-buttons-set): New function to setup the - tool-bar after customization. - (mh-tool-bar-folder-buttons): New defcustom to specify which icons - appears in the tool-bar. - (mh-tool-bar-letter-buttons-set): New function to setup the - tool-bar after customization. - (mh-tool-bar-letter-buttons): New defcustom to specify which icons - appears in the tool-bar. - (mh-tool-bar-show-set): New function to setup mh-letter-tool-bar-map. - (mh-tool-bar-letter-set): New function to setup - mh-letter-tool-bar-map. - -2002-12-18 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-folder-mode-map): Change entries for "\t", "\M-\t" - and backtab to call mh-index-next-folder and - mh-index-previous-folder as appropriate. - - * mh-index.el (mh-index-next-folder, mh-index-previous-folder): - New interactive functions which jumps to search results of next - and previous folders respectively. - - * mh-loadddefs.el: Regenerated. - - * mh-index.el (mh-index-delete-folder-headers): Arrange for - mh-goto-cur-msg to just go to the current message. - - * mh-e.el (mh-visit-folder): Since mh-scan-folder erases the whole - buffer anyway, we don't need to delete the folder headers. Also - index-data is non-nil only when the buffer folder doesn't exist. - So we need to call mh-make-folder. - (mh-folder-mode): Fix bug in that mh-index-checksum-origin-map was - not being made buffer local! - -2002-12-17 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-visit-folder): Fix bug. - - * mh-index.el (mh-md5sum-buffer): Buffer from which md5sum is run. - (mh-index-folder-first, mh-index-folder-last) - (mh-index-original-msg-list): Convenience macros aren't needed - anymore since the data structure has been changed. - (mh-index-update-single-msg): New function to update maps that - relate MD5 checksums to actual messages and vice-versa for a - single message. - (mh-index-update-maps): Do the above for all messages. If some - messages don't have MD5 checksums, they are annotated with the - result of md5sum. - (mh-index-search): Updated for the new version of mh-index-data. - (mh-msg-exists-p): New function to test a message exists. - (mh-index-insert-folder-headers): Updated for new mh-index-data. - (mh-index-delete-folder-headers): New function used to eliminate - original folder names from the buffer and make it look like a - plain folder buffer. This is used from mh-process-commands. - (mh-index-visit-folder): Use new version of mh-index-data. - (mh-index-match-checksum): New function which checks if the - X-MHE-Checksum header of a message matches. - (mh-index-execute-commands): New function that rmm's the original - messages. Then after mh-execute-commands executes it will seem - that the original messages were executed upon. This completes the - fix of SF #623321. - (mh-checksum-buffer): Renamed from mh-md5sum-buffer. - (mh-checksum-cmd, mh-checksum-parser): New globals to allow - different checksum programs to be used. - (mh-checksum-choose): New functions to find a checksum program. - (mh-openssl-parser, mh-md5sum-parser, mh-md5-parser): Functions to - parse the output of md5, md5sum and openssl. - (mh-index-update-maps): Use checksum parsing function. - (mh-index-search): Set checksum choice. Add a call to recenter, - otherwise the window point in the index buffer doesn't get set - properly. - - * mh-funcs.el (mh-pack-folder, mh-sort-folder): Enable these - functions in folders created by index search. - - * mh-e.el (mh-index-msg-checksum-map) - (mh-index-checksum-origin-map): New buffer local variables that - keep track of message checksums (used to implement - refiling/deletion for folders created by index folders). - (mh-last-msg): Make the function behave like mh-first-msg. - (mh-visit-folder): Add new optional argument which initializes - folders created by mh-index-search. - (mh-folder-mode): Make the variables mh-index-msg-checksum-map and - mh-index-checksum-origin-map buffer local. - (mh-process-commands): Call mh-index-execute-commands when called - from an index search buffer. This will reflect the changes being - made in the search folder to the original folders. - - * mh-loaddefs.el: Regenerated. - -2002-12-16 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-insert-folder-headers): Fix a bug which - caused the folder buffer to be marked as modified after rescanning - an index folder. - -2002-12-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-visit-folder): The function should insert folder - names if it is visiting a folder created by index search. - - * mh-index.el (mh-index-insert-folder-headers): The function now - maintains the old value of buffer-modified-p and temporarily makes - the buffer writable. - - * mh-utils.el (mh-show-index-visit-folder): New interactive - function callable from show buffer that displays search results - from one folder. - (mh-show-mode-map): Key binding for "v". - - * mh-speed.el: Fix credits. - (mh-index-folder-speedbar-buttons) - (mh-index-show-speedbar-buttons) - (mh-index-folder-speedbar-key-map) - (mh-index-show-speedbar-key-map) - (mh-index-folder-speedbar-menu-items) - (mh-index-show-speedbar-menu-items): Removed since the modes - mh-index-folder-mode and mh-index-show-mode no longer exist. - (mh-speed-extract-folder-name): Remove the bits about - mh-index-folder-mode and mh-index-show-mode. - - * mh-seq.el (mh-copy-seq-to-eob): Updated to work properly with - index search results. - (mh-region-to-msg-list): Skip over non-scan lines. - (mh-thread-inc, mh-thread-add-spaces, mh-thread-folder): Skip - non-scan lines when populating mh-thread-scan-line-map. - (mh-thread-folder, mh-toggle-threads): Move the check for buffer - modification from mh-thread-folder to mh-toggle-threads. - (mh-toggle-threads): When returning to unthreaded view insert the - folder names if called from a index folder. - - * mh-index.el: Fix credits and update commentary. - (font-lock-defaults, mh-index-buffer, mh-index-show-buffer) - (mh-index-ma-x-msg-index, mh-index-other-buffer) - (mh-index-matches, mh-index-previous-window-configuration) - (mh-index-current-msg, mh-index-folder-mode-keymap) - (mh-index-button-map, mh-index-folder-mode-help-messages): Remove - eliminated variables. - (mh-index-folder): New variable sets the MH folder under which the - index searches are stored. - (mh-index-folder-first, mh-index-folder-last) - (mh-index-original-msg-list): Convenience macros used to pull data - elements out of a list. If needed setf can be used to change them - as well. - (mh-index-search): Rewritten to create real folders where all the - normal folder operation. This partially fixes SF #623321 (refiles - and deletes doesn't work on original messages). - (mh-index-find-max-width, mh-index-search-again) - (mh-index-insert-scan, mh-index-callback, mh-index-search) - (mh-index-notate, mh-index-show, mh-index-header-display) - (mh-index-next, mh-index-folder-mode, mh-index-show-mode): - Functions, macros and modes removed. - (mh-folder-exists-p): New function to check if a folder exists. - (mh-index-new-folder): Generate a new folder name from a given - base string that mimics the way emacs generates buffer names. - (mh-index-insert-folder-headers): Insert folder names among the - search results. - (mh-index-visit-folder): New interactive function to show the - search results of one individual folder. - (mh-swish++-execute-search): Update documentation. - - * mh-funcs.el (mh-pack-folder, mh-sort-folder): Disable these - functions if index search results are being viewed. - - * mh-e.el (mh-folder-font-lock-keywords): Add highlight for - folder. - (mh-index-data): New buffer local variable that will be used to - store info about index search results. - (mh-rescan-folder): Implement rescanning for index search results. - (mh-folder-mode): Make mh-index-data buffer local. - (mh-remove-all-notation): Modified to take into account not all - lines in the folder buffer are normal scan lines. - (mh-folder-mode-map): Add key binding for "v" to jump to original - folder narrowed to search results. - - * mh-customize.el (mh-index-folder-face): Make it bold so that it - will look like before. - - * mh-loaddefs.el: Regenerated. - -2002-12-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-map-to-seq-msgs): Modified so that it can be given - a list of messages in addition to a sequence. - (mh-region-to-sequence, mh-region-to-msg-list): The function - mh-region-to-msg-list replaces mh-region-to-sequence. The new - function avoids creating a dummy sequence in MH-E. - (mh-thread-delete, mh-thread-refile, mh-put-msg-in-seq): Modified - to use mh-region-to-msg-list. - - * mh-funcs.el (mh-copy-msg): Modified to use mh-region-to-msg-list. - - * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Modified to use - mh-region-to-msg-list. - - * mh-comp.el (mh-forward): Modified to use mh-region-to-msg-list. - The buffer-local variable mail-header-separator is no longer - bound. This fixes a bug where the default value of - mail-header-separator gets used if mh-forward is called in a fresh - emacs session. - (mh-annotate-msg): Update this so that it will handle message - lists too. - (mh-insert-letter): Make the test stronger. Since %d is being used - the argument better be an integer. - - * mh-loaddefs.el: Regenerated. - -2002-12-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-funcs.el (mh-copy-msg): Add support for transient-mark-mode. - If mark is active and transient-mark-mode is enabled then all the - messages in the region are copied. - - * mh-seq.el (mh-list-sequences): Use mh-coalesce-msg-list to print - messages in sequence nicely. The prompt for the folder is removed - (the current folder is always used) and the output is made nicer - by not overflowing the screen width. - - * mh-loaddefs.el: Regenerated. - -2002-12-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-letter-complete): Checkdoc fix. - - * mh-seq.el (mh-thread-current-indentation-level): New function - which returns the thread indentation level of current message. - (mh-thread-next-sibling, mh-thread-previous-sibling): New - interactive functions to jump to the next and previous siblings in - thread tree respectively. - (mh-thread-immediate-ancestor): New function to jump to ancestor - of current message in thread tree. - (mh-thread-ancestor): New interactive function to jump to - immediate ancestor or to root message of current thread depending - on optional argument. - - * mh-utils.el (mh-show-thread-ancestor) - (mh-show-thread-next-sibling, mh-show-thread-previous-sibling): - Interactive functions callable from the show buffer. - (mh-show-thread-map): Bindings for Tu, Tp and Tn. - - * mh-e.el (mh-thread-map): Bindings for Tu, Tp and Tn. - - * mh-loaddefs.el: Regenerated. - -2002-12-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-region-to-sequence): Change name of region - sequence created to 'mhe-region. This avoids any chance of - collision with actual MH sequences. - (mh-put-msg-in-seq, mh-thread-delete, mh-thread-refile): Change - name of region sequence used to 'mhe-region. Also delete the - 'mhe-region sequence when done. - - * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Same as above. - - * mh-comp.el (mh-forward): Same as above. - - * mh-loaddefs.el: Regenerated. - -2002-12-08 Bill Wohler <wohler@newt.com> - - * mh-alias.el: Edited documentation. Broke up file into 2 - sections: Alias Loading and Alias Expansion. Made terminology - consistent (replaced expand, substitute, and translate with - expand). - (mh-alias-reload): Brought message in line with coding conventions - and made more concise too. - (mh-alias-translate): Renamed to mh-alias-expand. - (mh-alias-substitute-aliases-flag): Renamed to - mh-alias-expand-aliases-flag. - (mh-alias-reload-local-users): Renamed to mh-alias-local-users. - Now just returns an alist of local users rather than have - side-effects. - (mh-alias-reload): Set timestamp at beginning of function to catch - edge case when alias added just after ali runs. Changed logic to - reflect return value of mh-alias-local-users. - - * mh-customize.el (mh-alias-substitute-aliases-flag): Renamed to - mh-alias-expand-aliases-flag. - (mh-alias-local-users): Fixed documentation. - - * mh-loaddefs.el: Regenerated - -2002-12-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (require): Load Gnus at compile time so that the - constant gnus-version is defined when MH-E is being compiled. - (mh-macro-expansion-time-gnus-version, mh-run-time-gnus-version): - Use the constant gnus-version instead of the function gnus-version - to find out about gnus version information. - (gnus-version): Remove the autoload since it is not needed any - more. - -2002-12-08 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-version): Moved compilation information in front of - Emacs information. The idea is that you start at MH-E and move - outwards. Show N/A if Gnus not compiled (be explicit). Matched - coding style with other output statements. (Aside: not that - efficiency matters here, but fewer calls to format have to be - faster, right? ;-). Matched output style of old output to new - statement--liked Satyaki's indentation better ;-). - -2002-12-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (gnus-version): Autoload the function for use in - mh-version. - (mh-macro-expansion-time-gnus-version): New macro that finds the - Gnus version at macro expansion time. - (mh-run-time-gnus-version): New function to find the Gnus version - at run time. - (mh-version): Add information about Gnus versions available at - compile time and run time. - -2002-12-07 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-ali): Add optional argument. if USER is - t, then assume ALIAS is an address and call ali with option -user. - - * mh-alias.el (mh-alias-filenames): if ARG is t, appends list of - files from `mh-alias-system-aliases' to output list obtained from - mhparam output user list only. - (mh-alias-tstamp): Use it. - -2002-12-05 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-inline-vcard-p): A new function which decides if - a vcard should be displayed inline. - (mh-mime-display-single): Use mh-inline-vcard-p to display - attached vcard as a signature if no other signature is present - (this partially addresses SF #649216). - -2002-12-05 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-send-letter): Edits docs for mh-mml-to-mime - getting run if variable `mh-mml-compose-insert-flag' is set. - (mh-get-header-field): use buffer-substring-no-properties instead - of buffer-substring. - -2002-12-04 Peter S Galbraith <psg@debian.org> - - * mh-loaddefs.el: Regenerated. - - * mh-customize.el (mh-customize): Add ;;;###mh-autoload tag. - -2002-12-04 Peter S Galbraith <psg@debian.org> - - * mh-loaddefs.el: Regenerated. - - * mh-comp.el (mh-letter-complete): New command to do alias or word - completion in letter-mode. - (mh-letter-mode-map): Add \M-\t binding for mh-letter-complete. - - * mh-alias.el (mh-alias-letter-mode-expand-alias-hook): Obsolete. - Replaced by mh-letter-complete command. - (mh-alias-reload-maybe): New function to rebuild alias table if - out of date. - (mh-alias-letter-expand-alias): No longer interactive. Use - mh-letter-complete instead. - -2002-12-04 Peter S Galbraith <psg@debian.org> - - * mh-customize.el (mh-letter-complete-function): New defcustom. - Function to call when completing outside of fields specified to - aliases. - - * mh-alias.el (mh-alias-filenames): - s/mh-mhparam-component/mh-profile-component/ - (mh-profile-component): Move to mh-utils.el and make interactive. - (mh-read-address): Make it autoloaded. - - * mh-loaddefs.el: Regenerated. - - * mh-comp.el (mh-read-address): Removed. Replaced by mh-alias - version. - - * mh-utils.el (mh-profile-component): Moved from mh-alias.el. - -2002-12-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-msg-is-in-seq): Formatting change. - - * mh-index.el (mh-index-insert-scan): Remove unused variable. - -2002-12-04 Bill Wohler <wohler@newt.com> - - * mh-loaddefs.el: Regenerated. - - * Makefile (MH-E-SRC): Moved mh-loaddefs.el into MH-E-LOADDEFS as - this was causing a cycle. - (MH-E-LOADDEFS): New variable to house mh-loaddefs.el. - (emacs): Reintroduced autoloads. - (autoloads): We're baaa-aack! - (dist, install-emacs): Use MH-E-LOADDEFS. - - * mh-comp.el (mh-customize): Moved to mh-customize.el. - - * mh-customize.el (mh-customize): Moved here from mh-comp. Makes - more sense, doesn't it? - - * mh-alias.el, mh-comp.el, mh-e.el, mh-index.el, mh-mime.el, - mh-pick.el, mh-speed.el: Added mh-autoload cookie to all - interactive functions. - -2002-12-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * Makefile (world): Remove target. - (mh-loaddefs.el): Add comment that only GNU Emacs can be used to - regenerate mh-loaddefs.el. - - * mh-make.el: Removed. - -2002-12-04 Mark D. Baushke <mdb@gnu.org> - - * mh-e.el (recursive-load-depth-limit): Only modify the limit - if it is an integer. - -2002-12-04 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-header-field-beginning): New function. Move to - the beginning of the current header field. - -2002-12-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-make.el (mh-files): Read in the MH-E filenames from the - environment variable where the Makefile puts it. - (mh-generate-autoloads, step2): Simplified since we now have the - complete file names. - - * Makefile (world): Pass the MH-E files into the script, so that - the filenames don't need to be repeated in the script. - -2002-12-04 Bill Wohler <wohler@newt.com> - - * mh-loaddefs.el: New file. Check in automatically generated file - and include in package for the benefit of those who don't want to - or can't compile. - - * Makefile (MH-E-SRC): Added mh-loaddefs.el now that it is checked - in and will be packaged. - (emacs): Removed autoloads. Adding mh-loaddefs.el to MH-E-SRC is - sufficient to build it. - (compile): Depend on MH-E-SRC instead of MH-E-OBJ and pass $? into - emacs so that Emacs is only invoked once to compile files. This - speeds things up by a factor of 3. It would be nice to only pass - those files that have been modified, but Emacs 21.4 will have - batch-byte-compile-if-not-done which we might be able to copy into - mh-make.el (or my proposed mh-e-dev.el which would be more - general-purpose). - (.SUFFIXES): Removed. Now that compile works directly on the - sources, the implicit rule is obsolete. - (autoloads): Deleted. See emacs change above. - -2002-12-03 Bill Wohler <wohler@newt.com> - - * Makefile (MH-E-SRC, emacs): - -2002-12-03 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-make.el (mh-emacs): Make failing condition more strict. - (mh-loaddefs-end): Remove redundant statement. - - * Makefile (world): A little typo. The bug didn't seem to make any - difference though. - - * mh-make.el: New script that compiles MH-E. - (mh-loaddefs-beginning, mh-loaddefs-end): Don't save the autoloads - file in between. Only save at the end. - (mh-emacs-generate-autoloads, mh-xemacs-generate-autoloads) - (mh-generate-autoloads): Replace the separate functions in Emacs - and XEmacs with one that works in both variants. This simplifies - the script a lot. - (mh-generate-autoloads): doc fix. - - * Makefile (world): New target which works for both GNU Emacs and - XEmacs. - -2002-12-03 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-mhparam-component): Don't raise error if call to - mhparam fails. - - * mh-alias.el (mh-alias-letter-expand-alias): Build alias table if - not already available. - -2002-12-03 Bill Wohler <wohler@newt.com> - - * mh-customize.el (mh-show-threads-flag): Alphabetized. - -2002-12-03 Jeffrey C Honig <jch@honig.net> - - * Makefile: Moved .PHONY rule after all rule for compatibility - with BSD/OS's old pmake. - -2002-12-03 Mark D Baushke <mdb@gnu.org> - - * mh-e.el (mh-get-new-mail): Simplify no-new-mail test. - (mh-add-cur-notation): Remove unnecessary function. - -2002-12-03 Peter S Galbraith <psg@debian.org> - - * mh-identity.el (mh-identity-make-menu): Check if - 'mh-letter-mode-map' is bound, since this code also gets run when - mh-customize.el is loaded at startup. - -2002-12-03 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-customize.el (mh-show-threads-flag): New customizable - variable which controls if new folders start of in threaded mode - (closes SF #646794). - - * mh-e.el (mh-rescan-folder): Fix the function so that threading - is preserved across rescans. - (mh-visit-folder, mh-inc-folder): The folder is threaded if it was - already threaded or if mh-show-threads-flag is non-nil and the - number of scan lines is fewer than mh-large-folders (closes SF - #646794). - -2002-12-02 Mark D Baushke <mdb@gnu.org> - - * mh-e.el (mh-add-cur-notation): New function to mark the - current message with the mh-note-cur character. - (mh-get-new-mail): Use mh-add-cur-notation to undo the work of - mh-remove-cur-notation if there was no new mail (closes SF #647681). - - * mh-e.el (mh-set-cmd-note): Do not update the default mh-cmd-note - value (closes SF #643701). - -2002-12-02 Peter S Galbraith <psg@debian.org> - - * mh-alias.el (mh-alias-reload): Renamed from mh-alias-learn-aliases. - (mh-alias-load-local-users): Renamed from mh-alias-learn-local-users. - (mh-alias-passwd-alist): New variable, holding aliases extracted - from the passwd file. - (mh-alias-tstamp): New variable storing the timestamp for alias - list generation. - (mh-read-address, mh-alias-reload, mh-alias-reload-local-users): - Complete rewrite. - (mh-alias-minibuffer-confirm-address): Use mh-alias-translate. - (mh-alias-translate): New function. Return translation for alias, - checking if in blind or passwd list. - (mh-alias-letter-expand-alias): Rewrite using - mail-abbrev-complete-alias from mailabbrev.el - (mh-alias-expand-alias-map): New variable. - (mh-alias-ali): New function. Return formatted string of - translated ALIAS from ali. - (mh-mhparam-component): New function. Return COMPONENT value from - mhparam, or nil if unset. - (mh-alias-filenames): New function. Provide list of alias - filenames from mhparam, or nil if none are set. - - * mh-customize.el (mh-alias-display-blind-name-on-completion-flag): - Obsoleted. - (mh-alias-timestamp): Renamed to mh-alias-system-aliases. - -2002-12-02 Bill Wohler <wohler@newt.com> - - * Makefile (mh-loaddefs.el): Suppress creation of backup file. - -2002-12-02 Mark D. Baushke <mdb@gnu.org> - - * Makefile (mh-loaddefs.el): Simplify rule. - - * Makefile (clean): Remove mh-loaddefs.el* for good measure. - ($(MH-E-OBJ)): Depend on mh-loaddefs.el to compile these. - (autoloads, mh-loaddefs.el): Revamp rules. - (mh-loaddefs.el-tail, autoloads-gen): Remove rules. - - * mh-e.el (recursive-load-depth-limit): Do not try to - bump the value unless the variable exists. - - * mh-e.el (recursive-load-depth-limit): Bump value of - recursive-load-depth-limit to 50 to allow emacs 21.1 which - normally has a default value of 10 to be able to compile MH-E. - -2002-12-02 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-funcs.el (mh-pack-folder, mh-sort-folder): Fix the functions - so that threading is preserved (needed for SF #646794). - - * mh-identity.el (mh-identity-signature-start) - (mh-identity-signature-end): Checkdoc fixes. - - * mh-e.el (mh-previous-unread-msg, mh-next-unread-msg): Checkdoc - fixes. - -2002-12-01 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-identity.el (compile): Make mh-identity.el compile without - warnings. - - * mh-e.el (mh-previous-unread-msg, mh-next-unread-msg): New - interactive functions that go to next and previous unread - messages (closes SF #630328). - (mh-folder-mode-map): Add key bindings for M-n and M-p to - mh-folder-mode-map. - - * mh-utils.el (mh-show-next-unread-msg) - (mh-show-previous-unread-msg): New interactive functions that go - to the next and previous unread messages respectively. These are - callable from the show buffer. - (mh-show-mode-map): Add key bindings for M-n and M-p to - mh-show-mode-map. - -2002-12-01 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-defun-compat): Make it indent like a defun. - - * mh-index.el (mh-defun-index): Make it indent like a defun. - - * mh-customize.el: New file (closes SF #643722). - - * Makefile (MH-E-SRC): Added mh-customize.el (closes SF #643722). - - * mh-speed.el, mh-pick.el, mh-mime.el, mh-index.el, mh-e.el, - mh-comp.el: Moved all defgroups, defcustoms, and deffaces to - mh-customize.el (closes SF #643722). - - * mh-utils.el (mh-xemacs-flag): Moved here from below since - needed by mh-customize.el. - (mh-customize): Required. mh-invisible-headers) - (mh-bury-show-buffer-flag, mhl-formfile): - Moved all defgroups, defcustoms, and deffaces to mh-customize.el - (closes SF #643722) . - - * mh-identity.el (mh-comp-loaded): New variable in a desparate - attempt to prevent an infinite loop. - (eval-when-compile): Was able to remove these defvars as they are - now predefined in mh-loaddefs and mh-customize. - (mh-identity-list-set): Added ;;;###mh-autoload cookie. - Moved all defgroups, defcustoms, and deffaces to mh-customize.el - (closes SF #643722). - - * mh-alias.el (mh-e): Require this, as it needs defcustoms, which - is in mh-customize which is required by mh-utils which is required - by mh-e. - Moved all defgroups, defcustoms, and deffaces to mh-customize.el - (closes SF #643722). - -2002-11-30 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-thread-map): Add key bindings "Td" and "To" (closes - SF #630493). - (mh-help-messages): Update help message for prefix map. - (mh-help-messages): Doc fix. - (mh-help-messages): Really fix it. - - * mh-utils.el (mh-show-thread-delete, mh-show-thread-refile): New - interactive functions corresponding to mh-thread-delete and - mh-thread-refile callable from the show buffer. - (mh-show-thread-map): Add key bindings for "Td" "To". - - * mh-seq.el (mh-narrow-to-seq, mh-put-msg-in-seq, mh-rename-seq) - (mh-narrow-to-subject, mh-delete-subject, mh-toggle-threads): Add - mh-autoload cookies. - (mh-thread-find-children): New function which finds the region - containing all children of a message. - (mh-thread-delete): New interactive function that marks for - deletion the current message and its children. - (mh-thread-refile): New interactive function that marks for - refiling the current message and its children. - -2002-11-30 Bill Wohler <wohler@newt.com> - - * mh-funcs.el, mh-identity.el, mh-index.el, mh-pick.el, mh-seq.el: - Removed MH-E autoloads. These are now provided by mh-loaddefs.el. - Added ;;;###mh-autoload tag to selected functions so that - autoloads for those functions can be automatically created in - mh-loaddefs.el (closes half of SF #643722). - - * mh-mime.el (mh-buffer-data): Moved to mh-utils where it is used. - Added ;;;###mh-autoload tag to selected functions so that - autoloads for those functions can be automatically created in - mh-loaddefs.el (closes half of SF #643722).. - - * mh-utils.el (mh-loaddefs): Added require. - (mh-buffer-data): Moved here from mh-mime.el as it is used in - mh-display-msg. - (mh-set-cmd-note): Moved to mh-e.el. - Removed MH-E autoloads. These are now provided by mh-loaddefs.el. - Added ;;;###mh-autoload tag to selected functions so that - autoloads for those functions can be automatically created in - mh-loaddefs.el (closes half of SF #643722).. - - * mh-e.el (mh-set-cmd-note): Moved here from mh-utils.el since it - uses mh-scan-format-file which is defined here. - Removed MH-E autoloads. These are now provided by mh-loaddefs.el. - Added ;;;###mh-autoload tag to selected functions so that - autoloads for those functions can be automatically created in - mh-loaddefs.el (closes half of SF #643722).. - - * mh-comp.el, mh-speed.el (mh-utils): Removed require. mh-utils is - provided via mh-e.el. - Removed MH-E autoloads. These are now provided by mh-loaddefs.el. - Added ;;;###mh-autoload tag to selected functions so that - autoloads for those functions can be automatically created in - mh-loaddefs.el (closes half of SF #643722).. - - * Makefile (emacs): Add dependency on autoloads. - (clean): Remove mh-loaddefs.el too. - (autoloads): New target. Builds mh-loaddefs.el. - (mh-loaddefs.el): New target. Initializes mh-loaddefs.el. - (mh-loaddefs.el-tail): New target. Appends to mh-loaddefs.el. - (autoloads-gen): Runs batch-update-autoloads to populate - mh-loaddefs.el (closes half of SF #643722).. - (auto-autoloads.elc): Renamed from autoloads to be explicit about - file that's created. - (custom-load.elc): Ditto. - -2002-11-30 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-last-ancestor): New variable which keeps - track of oldest ancestor of last message. If due to narrowing the - common ancestor of two messages is lost then one of them is - promoted to be the parent of the other. This variable helps in - this process. - (mh-thread-generate-scan-lines): Group messages which belong to - the same thread tree, even if a common ancestor is no longer - present. - (mh-thread-folder, mh-copy-seq-to-eob, mh-thread-inc): Bind - mh-thread-last-ancestor to nil when calling - mh-thread-generate-scan-lines. - - * mh-mime.el (font-lock): Font-lock required at compile time to - avoid warning about font-lock-maximum-size - (mh-display-smileys, mh-display-emphasis): Show graphical smileys - and emphasis only if message isn't too large. - - * mh-e.el (mh-visit-folder): Revisiting a buried folder which has - been threaded or narrowed confuses MH-E. Even though the folder is - displayed as not threaded and not narrowed, MH-E still believes - the folder is in the previous state. This can cause problems when - trying to narrow/thread the folder. The change fixes this. - - * mh-mime.el (mh-mime-display-alternative): The setting of - mh-display-buttons-for-inline-parts-flag was not being used when - displaying one of the alternatives. This change fixes that. - - * mh-comp.el (mh-show-buffer-message-number): Replace subseq with - substring. - (mh-filter-out-non-text): When filtering out MIME buttons from - yanked text, the last line of the MIME part was getting lost. The - fix avoids that and removes only the last new line instead. - -2002-11-29 Peter S Galbraith <psg@debian.org> - - * Makefile (MH-E-SRC): Add mh-alias. - - * mh-alias.el: Assign copyright to FSF instead of myself. - (mh-read-address): Add support for emacs-21's - completing-read-multiple to prompt for multiple entries. - (mh-alias-PC-complete-address): Deleted. - (mh-alias-learn-aliases): Use mh-exec-cmd-quiet instead of old kludge. - (mh-alias-letter-mode-expand-alias-hook): Simplify. - (mh-alias-hostname): Deleted. - (mh-alias-substitute-aliases-flag): Change default to nil. - (mh-alias-display-blind-name-on-completion-flag) Change default to - nil. - (mh-alias-alist): Now holds alias values. - (mh-alias-lowercase-alist): Deleted. - (mh-alias-minibuffer-confirm-address, mh-alias-learn-aliases) - (mh-alias-learn-local-users, mh-alias-letter-expand-alias): Use - new mh-alias-alist instead of old mh-alias-lowercase-alist. - - * mh-alias.el: Moved from contrib/ directory. Now part of MH-E! - - * Makefile (MH-E-SRC): Add mh-identity. - - * mh-identity.el (mh-compose-and-send-mail, mh-insert-identity) - (mh-identity-make-menu, mh-identity-default, mh-identity-menu): - Moved to mh-comp.el. - - * mh-comp.el (mh-compose-and-send-mail): Add mh-identity support. - (mh-insert-identity, mh-identity-make-menu, mh-identity-default) - (mh-identity-menu): Added from mh-identity.el - -2002-11-29 Bill Wohler <wohler@newt.com> - - * mh-comp.el, mh-e.el, mh-funcs.el, mh-identity.el, mh-index.el, - mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el: - Ran indent-region, reformatted long lines, ran untabify. - (indent-tabs-mode): Set file local variable to nil. - -2002-11-29 Bill Wohler <wohler@newt.com> - - Released MH-E version 7.0. - - * mh-e.el (Version, mh-version): Updated for release 7.0. - - * mh-comp.el (subseq, search): Require cl instead of autoloading - these due to compilation warnings in CVS Emacs. - -2002-11-23 Bill Wohler <wohler@newt.com> - - * MH-E-NEWS: Emphasize the renaming of the variables at the top of - the notes. - -2002-11-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-show-mode-map): Remove binding for RET since it - is not needed and the binding is more useful to toggle display of - MIME parts. - - * mh-mime.el (mh-mime-button-commands): Remove bindings for "i" - and "o" from MIME buttons. - (mh-insert-mime-button): Change comment to reflect change in - button key map. - -2002-11-21 Bill Wohler <wohler@newt.com> - - Released MH-E version 6.1.91. - - * mh-e.el (Version, mh-version): Updated for release 6.1.91. - - * MH-E-NEWS: Inline HTML parts supported with Gnus 5.10, not 5.9. - -2002-11-21 Mark D. Baushke <mdb@gnu.org> - - * mh-comp.el (mh-letter-insert-signature-hook): This should be in - customize-group mh-compose. - -2002-11-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (load): Load mm-view.el here so that - mm-inline-text-html would be defined if available. - (mh-mm-inline-media-tests): If mm-inline-text-html is available - then use it, otherwise fall back on using mm-inline-text (closes - SF #641482). - - * mh-mime.el (load): Remove the load of mm-view here since it - happens in mh-utils.el now. - -2002-11-15 Bill Wohler <wohler@newt.com> - - Released MH-E version 6.1.90. - - * README (Compile): New section. Users must now compile MH-E due - to the vagaries of the various versions of gnus. - - * Makefile (MH-E-IMG): Added reply-all.pbm, reply-all.xpm, - reply-from.pbm, reply-from.xpm, reply-to.pbm, reply-to.xpm. - (MH-E-ETC-ETC): Added Makefile and README. - (dist): Depend on all, so clean happens. Don't add .elc files to - tarball as they are built upon installation now. - -2002-11-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-process-commands): Fix a bug in mh-execute-commands. - If called in threaded mode, cur was always getting set to the last - message in the folder. - -2002-11-14 Bill Wohler <wohler@newt.com> - - * mh-e.el (Version, mh-version): Updated for release 6.1.90. - - * MH-E-NEWS, README: Updated for release 7.0. - - * mh-utils.el (mh-index-search): Added full docstring which new - users will need before they run a search! - (mh-swish++-execute-search, mh-swish-execute-search, - mh-namazu-execute-search mh-glimpse-execute-search): Added - autoloads with full docstrings for the same reason! - - * mh-e.el (mh-limit-map): Removed / / alias for - mh-narrow-to-subject. - - * mh-utils.el (mh-show-thread-map): Removed / / alias for - mh-show-narrow-to-subject. - - * mh-seq.el (mh-delete-subject): Checkdoc fix. - - * mh-e.el (mh-help-messages): Added / prefix character to help - string. Tweaked / helpstring a little. - -2002-11-14 Mark D. Baushke <mdb@gnu.org> - - * mh-utils.el (mh-set-cmd-note): Fix nitpick by adding one to the - width for cosmetic reasons. - -2002-11-14 Peter S Galbraith <psg@debian.org> - - * mh-identity.el (mh-insert-identity): Fix a few things undone by - Jeff's patch. - (mml-insert-tag): Add autoload. - -2002-11-13 Mark D. Baushke <mdb@gnu.org> - - * mh-identity.el (mh-insert-identity): A value of either nil or - "" should cause the field to be removed. - (mh-identity-list): Update the docstring. - -2002-11-13 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-limit-map): New key map for limits (subject for now). - * mh-utils.el (mh-show-limit-map): Same. - - * mh-seq.el (mh-delete-subject): Renamed from - mh-delete-subject-sequence. - (mh-narrow-to-subject): Renamed from mh-narrow-to-subject-sequence. - (mh-next-unseen-subject-sequence): Removed. :-( - * mh-e.el: Use 'em - * mh-seq.el: Use 'em. - -2002-11-13 Mark D. Baushke <mdb@gnu.org> - - * mh-e.el (mh-alt-show): New defalias for mh-show. - (mh-alt-refile-msg): New defalias for mh-refile-msg. - (mh-alt-send): New defalias for mh-send. - (mh-folder-mode-map): Use mh-alt-show, mh-alt-refile-msg and - mh-alt-send for the alias bindings. - (mh-alt-visit-folder): New defalias for mh-visit-folder. - (mh-folder-map): Use it. - (mh-folder-message-menu): Revert previous change. - -2002-11-13 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-message-menu): Make key binding "o" appear in - menu for mh-refile-msg. - -2002-11-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-generate-scan-lines): In threaded view, - scan lines of duplicate messages were too long. The change fixes - that. - -2002-11-13 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-adaptive-cmd-note-flag): Improved grammar in - docstring. - - * mh-speed.el (mh-speed-run-flists-flag): While documenting this - variable in the release notes, I was unsure what would happen if - set to nil. So, I clarified the docstring and indicated - implications of setting this variable to nil, and offered manual - workaround. - -2002-11-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-quit): Fix documentation and run - mh-before-quit-hook and mh-quit-hook. - -2002-11-13 Bill Wohler <wohler@newt.com> - - * mh-utils.el (with-mh-folder-updating): Renamed local variable - mh-save-modification-flag to save-modification-flag. - -2002-11-12 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-index-keymap): Renamed to - mh-index-folder-mode-keymap to be a closer to the usual keymap - naming convention. Since we want our own keymap and not inherit - the one in mh-folder-mode, we need to use a suffix other than - -map. - - * mh-e.el (mh-folder-sequence-menu): s/Msg/Message. - s/Seq/Sequence. - (mh-folder-message-menu): s/Msg/Message. Removed redundant refile - item. - (mh-folder-folder-menu): Aligned symbols. - - * mh-index.el (mh-index-folder-message-menu): s/Msg/Message. - - * mh-utils.el (mh-show-sequence-menu): s/Msg/Message. - s/Seq/Sequence. - (mh-show-message-menu): s/Msg/Message. Removed redundant refile - item. - (mh-show-folder-menu): Aligned symbols. - -2002-11-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-matches, mh-index-current-match): Remove - these variables since they were only used for glimpse and grep. - Now the functionality of all the indexing programs will be - uniform. - (mh-index-search, mh-index-insert-scan, mh-defun-index) - (mh-index-show): Simplify functions since matches are no longer - shown. - (mh-index-parse-match): Remove function. - - * mh-e.el (mh-scan-cmd-note-width, mh-scan-destination-width) - (mh-scan-date-width, mh-scan-date-flag-width) - (mh-scan-from-mbox-width, mh-scan-from-mbox-sep-width): New - variables to keep track of the widths of the different fields in - the scan lines. - (mh-scan-field-from-start-offset, mh-scan-field-from-end-offset) - (mh-scan-field-subject-start-offset): Offsets that are computed - from the scan line widths. - - * mh-seq.el (mh-copy-seq-to-eob, mh-thread-inc) - (mh-thread-parse-scan-line): Use new variables that remember the - various offsets in place of integer constants. - (mh-thread-generate-scan-lines): Space shouldn't be added here! - -2002-11-12 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-scan-format-mh, mh-scan-format-nmh): Noted that the - first column is column number 0 and changed "sixth column" to - "fifth column" accordingly. - - * mh-index.el (mh-index-folder-mode): Clarified method of replying - in mode documentation. - (mh-index-folder-tool-bar-map): s/mh-e/MH-E/. - - * mh-e.el (mh-generate-new-cmd-note): Try not to mention internal - variable mh-cmd-note in docstrings. - - * mh-utils.el (mh-adaptive-cmd-note-flag): Set default value to t. - Reworded docstring so it doesn't mention internal variable - mh-cmd-note. Added information about using fixed-width message - numbers. - (mh-cmd-note): Mention mh-set-cmd-note in docstring. Also suggest - that it is updated dynamically only if mh-scan-format-file is t. - (mh-set-cmd-note): Grammer fix in docstring. - (mh-cmd-note): Noted that the first column is column number 0. - - * mh-e.el (mh-scan-format-file): Added information about - mh-set-cmd-note and mh-adaptive-cmd-note-flag to docstring. - - * mh-index.el (mh-index-keymap): Added bindings for i - (mh-inc-folder), m (mh-send alias), and s (mh-send) since these - appear to be supported and are found in the toolbar. - (mh-index-folder-key-map): Ditto for f (mh-visit-folder alias), o - (mh-visit-folder) alias, and v (mh-visit-folder). - (mh-index-folder-mode-help-messages): Changes for above. - (mh-index-folder-message-menu, mh-index-folder-folder-menu): New - menus. I decided to delete the unavailable items since greying out - implies that the user can do something to access them. In this - case, that's not the case. Well, that's not entirely true--the - user could write code for those functions ;-). - (mh-index-folder-mode): Use new menus. - - * mh-utils.el (mh-prompt-for-folder): Added optional argument - default-string which can be used in case the string for default - isn't intuitive enough. - - * mh-index.el (mh-index-search): Made default prompt more - intuitive (I hope!). - -2002-11-11 Peter S Galbraith <psg@debian.org> - - * mh-identity.el (mh-header-field-delete): Remove save-excursion. - Strange that this worked for me before... Thanks to Jeff for the - patch. - (mh-insert-identity): Numerous tweaks and fixes from Jeff who also - adds a nicer-looking MIME header for signatures inserted after - MIME insertions. - -2002-11-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-parse-scan-line): Generalize this function - so that it can take a string containing the scan-line as argument - in addition to using the line at point. - (mh-thread-add-spaces): New function to pad each scan line to the - appropriate length. This is called when mh-cmd-note is increased. - - * mh-e.el (mh-generate-new-cmd-note): Make this work on a threaded - folder by using mh-thread-add-spaces to pad the pre-existing lines - in mh-thread-scan-line-map appropriately. - (mh-thread-add-spaces): Autoload from mh-seq. - -2002-11-11 Mark D. Baushke <mdb@gnu.org> - - * mh-index.el: Fix checkdoc nit. - - * mh-mime.el (mh-display-buttons-for-inline-parts-flag): Renamed - from mh-display-buttons-for-inline-parts. - (mh-mime-display-single): Use it. - This addresses part of SF #627015. - - * mh-e.el (mh-print-background-flag): Renamed from - mh-print-background. - * mh-funcs.el (mh-print-msg): Use it. - This addresses part of SF #627015. - - * mh-comp.el (mh-delete-yanked-msg-window-flag): Renamed from - mh-delete-yanked-msg-window. - (mh-yank-from-start-of-msg, mh-yank-cur-msg): Use it. - This addresses part of SF #627015. - - * mh-utils.el (mh-update-sequences-after-mh-show-flag): Renamed - from mh-update-sequences-after-mh-show. - (mh-show-msg): Use it. - This addresses part of SF #627015. - - * mh-utils.el (mh-decode-quoted-printable-flag): Renamed from - mh-decode-quoted-printable - (mh-display-msg, mh-decode-quoted-printable-have-mimedecode): - Use it. - This addresses part of SF #627015. - - * mh-utils.el (mh-recursive-folders-flag): Renamed from - mh-recursive-folders. - (mh-make-folder-list-background): Use it. - * mh-funcs.el (mh-list-folders): Ditto. - This addresses part of SF #627015. - - * mh-utils.el (mh-auto-folder-collect-flag): Renamed from - mh-auto-folder-collect. - (mh-find-path): Use it. - This addresses part of SF #627015. - - * mh-utils.el (mh-decode-mime-flag): Renamed from - mh-decode-mime. - * mh-utils.el (mh-show-mode, mh-show-xface) - (mh-decode-quoted-printable, mh-display-msg, mh-display-msg): Use it. - * mh-mime.el (mh-graphical-smileys-flag) - (mh-graphical-emphasis-flag): Ditto. - * mh-index.el (mh-index-search, mh-index-show): Ditto. - * mh-e.el (mh-header-display): Ditto. - This addresses part of SF #627015. - - * mh-e.el (mh-make-folder-mode-line): Use save-window-excursion - to get back to the current message. - -2002-11-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-keymap, mh-index-page-msg) - (mh-index-folder-tool-bar-map): Replace mh-index-scroll-up with - mh-index-page-msg. - (mh-index-keymap, mh-index-previous-page): Replace - mh-index-scroll-down with mh-index-previous-page. - -2002-11-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (autoload/require): Load mh-mime when mh-index.el is - loaded. This fixes the infinite load loop. I am not sure what the - actual problem is. Also removed the nop requires/autoloads. - (mh-defun-index): Use the right argument for mh-recenter. - Otherwise it misbehaves for the default value of - mh-summary-height. - - * mh-e.el (mh-goto-next-button): Fix infinite loop when S-Tab was - used on first line of index folder buffer. - -2002-11-09 Peter S Galbraith <psg@debian.org> - - * mh-index.el (mh-index-folder-tool-bar-map): Tool-bar for - mh-index-mode. - (mh-index-folder-mode): Use it. - (mh-index-keymap): Added mouse-2 binding, like in regular - folder-mode. - -2002-11-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-folder-mode): Fix doc string for major - mode. It was pointing to the wrong keymap. - (mh-index-show-mode): Fix doc string for mode. Also add mh-help - support. - - * mh-comp.el (mh-forward, mh-yank-cur-msg): Use new macro - mh-mark-active-p instead. This does the right thing for different - variants of Emacs. - (mh-yank-cur-msg): Add a space between sexprs. - - * mh-utils.el (mh-mark-active-p): New macro which papers over - diffences between GNU Emacs and XEmacs. The variables mark-active - and transient-mark-mode are used in GNU Emacs while zmacs-regions - and region-active-p are used in XEmacs. - - * mh-seq.el (mh-put-msg-in-seq, mh-thread-ancestor-p): Use - mh-mark-active-p as above. - - * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Use - mh-mark-active-p as above. - -2002-11-06 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-yank-cur-msg): Fix for XEmacs. It didn't work - with a selected region, and left the inserted text selected (in - reverse video). I didn't use SF patch #402315 to implement this. - -2002-11-05 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-show-tool-bar-map): Change call to - mh-tool-bar-search-command such that user can customize it for the - current session. - - * mh-e.el (mh-folder-tool-bar-map): Same. - -2002-11-05 Bill Wohler <wohler@newt.com> - - * mh-utils.el, mh-e.el (mh-tool-bar-search-function): Renamed from - mh-tool-bar-search-command. - - * mh-index.el (mh-index-search): Backed out previous change to - prompt. There ain't no folder named "all." - - * mh-utils.el (mh-tool-bar-search-command): Added mh-search-folder - and mh-index-search to the docstring so that user can easily click - on them for more information. - - * mh-pick.el (mh-search-folder): Mention that this function uses - the MH pick command to give the user more information when - choosing between mh-search-folder and mh-index-folder. - - * mh-index.el (mh-index-search): Edited the docstring. Direct the - user to mh-index-program if necessary. - (mh-index-program): Edited this docstring too. Viewing the help - in a *Help* buffer really exposes grammatical flaws. - -2002-11-05 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-tool-bar-search-command): New defcustom to set - what search function to use in tool-bar. - (mh-show-tool-bar-map): Use it. - - * mh-e.el (mh-folder-tool-bar-map): Use it. - -2002-11-05 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-index-search): Changed default prompt from "+" - to "all". mh-prompt-for-folder doesn't seem to mind. - - * mh-e.el (mh-folder-folder-menu): Added menu entry for - mh-index-search. - - * mh-utils.el (mh-show-folder-menu): Added menu entry for - mh-index-search. - - * mh-index.el: Added commentary on supported search engines and - for getting started (initializing database). - -2002-11-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-keymap, mh-index-folder-key-map): Move key - binding of "i" to "Fi". - (mh-index-folder-mode-help-messages): Change help message to - reflect above change. - -2002-11-04 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-index-program, mh-indexer): Swapped names since - the former seems like a better user variable name. If you've - customized mh-indexer, be sure to toss it out and customize - mh-index-program. - -2002-11-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-indexer-choices): Not having the quotes in the - binary names is a bit nicer since that maintains uniformity with - the other names. - (mh-index-choose): Use symbol-value instead of eval. Eval should - be avoided except when it can't be :-). - -2002-11-04 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-index-program): New variable to hold the name of - the indexer that was found; use this instead of clobbering - user-customizable variable mh-indexer. - (mh-index-search): Use it. Added comments to keep others from - doing what I had done (fortunately, I caught myself before - checking it in ;-). - (mh-index-choose): Set mh-index-program instead of mh-indexer. - Update docstring to describe side-effects. - - * mh-index.el (mh-indexer): Added swish++ to docstring. Chances - are good that if someone has both swish++ and swish, they want to - use the much faster, much smaller swish, so move it up in the - list. - (mh-indexer-choices): Ditto for rationale for moving swish++ up in - priority over swish. Also, use -binary symbols instead of - hard-coding binary names. This allows package installers to - customize the location of the binaries in site-lisp and still have - the auto-detection code work. It also allows one to have alternate - binary names (see mh-swish++-binary). - (mh-index-search): Ditto (moving swish++ up). - (mh-swish++-binary): Look for search++, then search. The rationale - is that a package maintainer may rename search to search++ if - search is already in use (e.g., Debian) so try it first. - (mh-swish++-execute-search): Replaced Satyaki's path with dummy - path in docstring. Also removed RecurseSubdirs since this is the - default. Added comment that index might be named index++ on some - systems (e.g., Debian). - (mh-index-choose): Updated to work with new mh-indexer-choices. - -2002-11-04 Peter S Galbraith <psg@debian.org> - - * mh-identity.el (mh-identity-list-set): Don't call easy-menu-add - here, since that adds the menu to the Customize buffer in XEmacs. - -2002-11-04 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-mhn-compose-insert-flag) - (mh-mml-compose-insert-flag): Removed eval-when-compile defvar. - - * mh-mime.el (mh-mhn-compose-insert-flag) - (mh-mml-compose-insert-flag): Move variables to mh-utils.el. - Fixes mh-letter-menu for XEmacs. - -2002-11-04 Eric Ding <eding@rational.com> - - * mh-comp.el (mh-rejected-letter-start): add another string - -2002-11-04 Eric Ding <ericding@alum.mit.edu> - - * mh-comp.el (mh-rejected-letter-start): regexp-opt doesn't take - regexps as args, only regular strings - -2002-11-04 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-mail-followup-to): Don't modify a - pre-existing M-F-T field. If a nmh replgroupcomps propagates a - M-F-T field in a message reply, then we have to have it alone. - -2002-11-02 Bill Wohler <wohler@newt.com> - - * mh-comp.el, mh-e.el, mh-funcs.el, mh-identity.el, mh-index.el, - mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el, - mh-xemacs-compat.el: Added Local Variables section. Defined - sentence-end-double-space to be nil so that those who might not - buy my setting of this variable can at least run checkdoc without - a whole lot of noise. - -2002-11-02 Peter S Galbraith <psg@debian.org> - - * mh-identity.el: New file. Multiple Identify support for MH-E. - Used to easily set different fields such as From and Organization, - as well as diffrent signature files. This file won't be included - with V7.0. - -2002-11-02 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-mm-save-part): New function to wrap mm-save-part - from Gnus 5.10 to make it explicit which code has been - commandeered. - (mh-mime-save-part): Call mh-mm-save-part instead of cut-n-pasted - code from Gnus 5.10. - -2002-11-02 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-yank-from-start-of-msg): Edit docstring to - mention related variables mh-reply-show-message-flag and - mh-delete-yanked-msg-window. - (mh-reply): Change the "Reply to whom" prompt. - -2002-11-01 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-show-hook): Moved to mh-utils.el where it is used. - (mh-folder-list-change-hook): Converted this from defvar in other - files to defcustom here. It is called, not documented as - obsolete, and might as well be documented. - (mh-inc-folder, mh-quit, mh-delete-a-msg, mh-refile-a-msg, - mh-process-commands, mh-update-unseen): Added missing - documentation about hook, or made verbiage about hook consistent - throughout, even if the function isn't interactive. - - * mh-utils.el (mh-folder-list-change-hook): Moved defvar to mh-e - and made it a defcustom. - (mh-show-mode-hook): Put it back in (actually, it was in mh-e.el, - but this is the place where it is called). - (mh-show-hook): Moved here from mh-e.el since it's called here. - (mh-show-mode): Call mh-show-mode-hook. - (mh-show-mode, mh-show-msg, mh-find-path, mh-prompt-for-folder, - mh-prompt-for-folder, mh-set-folder-list): Added missing - documentation about hook, or made verbiage about hook consistent - throughout, even if the function isn't interactive. - - * mh-comp.el (mh-send-letter): Made verbiage about hook consistent - throughout. - (mh-insert-prefix-string): Made docstring more descriptive of what - is going on. - - * mh-funcs.el (mh-kill-folder): Added missing documentation about - hook. - - * mh-index.el (mh-index-show-hook): Moved defvar to defcustom. - (mh-index-show): Made verbiage about hook consistent throughout. - - * mh-mime.el (mh-edit-mhn-hook): Moved defvar to defcustom. - (mh-edit-mhn): Added missing documentation about hook. - - * mh-pick.el (mh-pick-mode): Made verbiage about hook consistent - throughout. Call the damn hook. - -2002-11-01 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-insert-mail-followup-to-list): Fix typo so that - it will look right in info. - - * mh-index.el (mh-index-search): Change argument name from - new-buffer-p to new-buffer-flag. - (mh-index-search-again, mh-index-search): New index-buffers were - being named *mh-index*<2>, *m-index*<2><2> and so on. This problem - is fixed. - (mh-index-scroll-up, mh-index-scroll-down): Scrolling in index - show buffers (after the first one) was broken. - (mh-index-quit): Bury show buffer instead of killing it. Killing - it, without killing the corresponding folder buffer, can cause - confusion with two folder buffers trying to display in the same - show buffer. - - * mh-seq.el (mh-thread-prune-containers): Rewritten without - recursion. Also removed the top-level-p argument since it isn't - required anymore. - (mh-thread-sort-containers): New function factored out from - previous definition of mh-thread-prune-containers. It sorts - message containers in ascending order wrt their message indices. - (mh-thread-generate): Use new mh-thread-prune-containers. - - * mh-e.el (mh-remove-all-notation): Fix the test. It was testing - at the wrong place! - -2002-10-31 Bill Wohler <wohler@newt.com> - - * Makefile, README, import-emacs, mh-comp.el, mh-e.el, - mh-funcs.el, mh-index.el, mh-mime.el, mh-pick.el, mh-seq.el, - mh-speed.el, mh-utils.el: Replaced mh-e with MH-E. - -2002-10-31 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-parse-scan-line): Modified to remove user - sequence notation and leave notation for other things alone. This - ensures that threading doesn't lose notations for replied-to - messages. - - * mh-e.el (mh-inc-folder): Remove call to mh-widen here and - instead do it in mh-get-new-mail. This way the widening happens - only if new mail is incorporated. - (mh-generate-new-cmd-note): The function now returns the point - from which the new messages start. This will allow threading to do - the right thing. - (mh-get-new-mail): Always call mh-remove-cur-notation. Otherwise - adaptive scan mode leaves two messages marked as current in - certain cases. Fix indentation of if statement. If there are - messages to be incorporated, the folder is widened. If mh-cmd-note - changes set start-of-inc correctly. - (mh-remove-all-notation): Change this function to only remove user - sequence notation and leave notation for replied-to messages and - similar notation alone. This means operations like narrowing to - subject sequence and widening don't lose notations. - -2002-10-31 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-insert-mail-followup-to-list): Fixed typo in - docstring and other minor edits. Checkdoc removed trailing spaces. - (mh-insert-signature): Checkdoc flagged docstring. Reverted to - previous value. Added specific name of hook that is run. - (mh-regexp-in-field-p, mh-insert-letter): Checkdoc removed - trailing spaces. - -2002-10-31 Jeffrey C Honig <jch@honig.net> - - * mh-e.el (mh-show-mode-hook): Remove the unused - mh-show-mode-hook, mh-show-hook is the one that is used. - - * mh-utils.el (mh-show-mode): Change the documentation to refer to - mh-show-hook instead of the unused mh-show-mode-hook. - -2002-10-31 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-mail-followup-to-list): Set default to nil - and include example in doc string. - -2002-10-31 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-indexer): Add customization choice for swish++. - (mh-indexer-choices): Add swish++ choice. - (mh-index-search): Change doc to reflect addition of swish++ option. - (mh-swish++-binary, mh-swish++-directory): New variables for - swish++ interface. - (mh-swish++-execute-search): New function to execute swish++ - search. - (mh-swish++-next-result): Function aliased to mh-swish-next-result - since the result format of swish++ is the same as that of swish-e. - (mh-index-search): Always overwrite window-configuration with new - value. This is needed since we don't kill the index-buffer when - quitting which means the window configuration wasn't getting set - properly. - (mh-index-search-again): If index buffer is reused, reset the old - window config to its original value. - -2002-10-30 Bill Wohler <wohler@newt.com> - - * Makefile (emacs, xemacs): New targets. - (all): Use these targets instead of calling specific targets. - (.PHONY): Added emacs, xemacs, autoloads, custom-loads. Broke up - target and moved pieces into their own sections. - - -2002-10-30 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-show-font-lock-keywords): Wrap an - 'eval-and-compile around its defvar, otherwise byte-compilation - fails on `mh-show-font-lock-keywords-with-cite'. - -2002-10-29 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-letter-insert-signature-hook) - (mh-insert-signature): Add a hook to be called before inserting - the signature. Do not attempt to insert the signature if - mh-insert-signature-file-name is nil. - -2002-10-29 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-inc-folder): Call mh-widen when mh-narrowed-to-seq - (Closes SF #629233: inc in narrowed folder suboptimal) - - * mh-comp.el (mh-insert-letter): Stop using mhl to include a - message before it mangles the header, and supercite fails - (Closes SF #629153: mh-insert-letter uses mhl?). - (mh-insert-prefix-string): Leave point at beginning instead of - end, since that's what sc-cite-original does. - (mh-yank-cur-msg): Adjust for mh-insert-prefix-string change. - -2002-10-30 Steve Youngs <youngs@xemacs.org> - - * mh-e.el (mh-folder-mode): Check for 'font-lock-auto-fontify' - when in XEmacs so we don't do font-locking unconditionally. - - * mh-utils.el (mh-show-mode): Ditto. - -2002-10-29 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-refiled-face, mh-folder-cur-msg-number-face) - (mh-folder-to-face, mh-folder-body-face): Define faces instead of - copying them from font-lock faces. This mh-e will look the same - in XEmacs as it does in Emacs. - * mh-utils.el (mh-show-cc-face, mh-show-date-face) - (mh-show-header-face): Ditto. - -2002-10-29 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-send-letter): I meant to use - mh-goto-header-field, not mh-get-header-field. The former returns - nil if the header is not found and doesn't need a conditional. - -2002-10-29 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-forward): Bug fix. Change 'kill-line for a - 'delete-region, because I don't want that text yanked with C-y. - - * mh-seq.el (mh-put-msg-in-seq): Add support for selected - region (Closes SF feature request #630324). - -2002-10-28 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-prune-subject): Make the regexp a little - general so that a subject of the form "Re[218]: howdy" would be - properly pruned. - - * mh-mime.el (mh-mime-save-part): Copy function definition of - mm-save-part from cvs gnus since that function is buggy in gnus - that comes with emacs21.2. - -2002-10-28 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-scan-subject-regexp): Add an expression to match an - optional bracketed number after "Re", such as in "Re[2]:" - (Patch by Satyaki; I checked it and applied). - (mh-folder-font-lock-subject): Adapt to new mh-scan-subject-regexp. - * mh-seq.el (mh-subject-to-sequence): Ditto. - - * mh-e.el (mh-folder-sequence-menu): Remove "Toggle Subject - Thread" from menu. mh-toggle-threads is in the Folder menu. - - * mh-e.el (mh-folder-sequence-menu): Minor menu text edits. - - * mh-utils.el (mh-show-update-sequences): Added to - mh-defun-show-buffer builds; needed for menu. - (mh-show-sequence-menu, mh-show-message-menu) - (mh-show-folder-menu): 3 new menus in mh-show-mode-map that mirror - the menus used in mh-folder-mode. - (mh-show-mode): easy-menu-add the 3 menus. - -2002-10-28 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-goto-msg): Fix the regexp to search so that we - go to the right message. In a threaded folder message 2 may be - present after 26 and the previous regexp would go to 26 when we - really wanted to go to 2! - - * mh-seq.el (mh-widen): Add call to mh-recenter to make it like - mh-narrow-to-seq. - -2002-10-28 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-show-mime-save-parts): Deleted definition. - (mh-show-mime-map, tool-bar-map): Use mh-mime-save-parts instead - of mh-show-mime-save-parts. - -2002-10-28 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-tool-bar-map): tool-bar-add-item key name - bug fix. - * mh-utils.el (mh-show-tool-bar-map): Same. - * mh-e.el (mh-folder-tool-bar-map, mh-folder-seq-tool-bar-map): Same - -2002-10-27 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-toggle-threads): Add call to mh-recenter to make - its behavior like that of mh-narrow-to-seq. - -2002-10-27 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-mime-save-parts): Renamed from - mh-store-mime-parts for consistency with mh-mime-save-part. Fixed - bug whereby mh-mime-save-parts-directory was not getting - initialized properly from a string-valued - mh-mime-save-parts-default-directory. - (mh-mime-save-parts-default-directory): Ditto. Check your - customizations! - (mh-mime-save-parts-directory): Ditto. - - * mh-utils.el (mh-show-mime-save-parts): Renamed from - mh-store-mime-parts. - (mh-show-mime-map): Added keybinding "K a" for - mh-show-mime-save-parts. - - * mh-e.el (mh-mime-save-parts) Renamed from mh-store-mime-parts. - (mh-mime-map): Added keybinding "K a" for mh-mime-save-parts. - (mh-help-messages): Added help for "K a". - -2002-10-27 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-search-addr-regexp, mh-regexp-in-field-p): Rename - the first to the second (and recode a bit). - (mh-insert-mail-followup-to): Use it. - -2002-10-27 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-invisible-headers): Backed out change. Removed - Mail-Followup-To due to objections from Peter and Mark. - -2002-10-27 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-msg-is-in-seq): Modified to show info about - whether the message being queried about has been marked to be - deleted or refiled. - - * mh-mime.el (mh-insert-mime-security-button): Make - pressed-details a local. - -2002-10-27 Steve Youngs <youngs@xemacs.org> - - * .cvsignore: New file. - -2002-10-26 Steve Youngs <youngs@xemacs.org> - - * mh-seq.el (mh-notate-deleted-and-refiled): Don't bind local - variable 'dest', it isn't used anywhere. - - * mh-pick.el (mh-do-pick-search): Don't bind local variable - 'finding-messages', it isn't used anywhere. - - * mh-utils.el: Byte-compiler warning suppression. - (mh-gnus-article-highlight-citation): Rather than redefining - 'gnus-cite-face-list', just re-order it. - (mh-show-mode): Force turning on font-lock in XEmacs. - - * mh-seq.el: Byte-compiler warning suppression. - - * mh-index.el: Byte-compiler warning suppression. - - * mh-comp.el: Byte-compiler warning suppression. - - * mh-xemacs-compat.el: Add defaliases for 'timerp' & - 'cancel-timer' to the equivalent 'itimer' functions. - (rfc822): Require it for 'rfc822-goto-eoh'. - Byte-compiler warning suppression. - - * mh-e.el (mh-folder-mode): Force turning on font-lock in XEmacs. - (mh-toggle-threads): Remove duplicate autoload. - Byte-compiler warning suppression. - (mh-folder-unseen-seq-list): Use 'with-temp-buffer' to fix a bug - in XEmacs when font-lock is on. - (mh-folder-unseen-seq-name): Ditto. - -2002-10-27 Mark D. Baushke <mdb@gnu.org> - - * Makefile: Reorganize to allow for building also compiling for - XEmacs too. Sanitize so that it will work using least-common - denominator versions of 'make'. Tested using GNU make, Solaris make, - and Berkely make. - (all): Use recursive invokation based on the emacs or xemacs - executable passed on the 'make EMACS=xemacs' command line. - (XEMACS_OPTIONS): The incantation to be passed to an xemacs editor - to compile things properly. - (AUTO_PRELOADS): Magic XEmacs glue. - (clean): Ditto. - (autoloads): Ditto. - (custom-loads): Ditto. - -2002-10-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-last-msg): Add call to mh-recenter. - -2002-10-26 Peter S Galbraith <psg@debia.org> - - * mh-comp.el (mh-search-addr-regexp, mh-re-search-to-cc): Remove - `mh-re-search-to-cc' in favour of more generalized new function - `mh-search-addr-regexp'. - (mh-insert-mail-followup-to): Use it. - -2002-10-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-copy-seq-to-eob): Avoid rethreading when the - folder is already threaded. This is more efficient and also avoids - problems when the folder is widened. - (mh-thread-inc): Don't try to restore the point to original - location since mh-inc-folder from where this is called changes - point location after calling this function. - - * mh-e.el (mh-make-folder-mode-line): Fix a small bug where the - test was wrong. - -2002-10-26 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-mail-followup-to): Fix for new defcustom. - -2002-10-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-notate-deleted-and-refiled): Remove unused binding - of dest. The problem was pointed out by Steve as well. - - * mh-e.el (mh-toggle-threads): Remove duplicate autoload as - pointed out by Steve. - -2002-10-26 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-invisible-headers): Added Mail-Followup-To. - -2002-10-26 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-mail-followup-to-list): Change defvar to - defcustom. - -2002-10-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-remove-all-notation): New function that removes all - notation. - - * mh-seq.el (mh-narrow-to-seq): When hiding the original folder - remove all notation. This avoids stale notation hanging around. - Also changes in show buffer and position in folder buffer are - avoided if possible. - (mh-widen): When widening the scan-lines are notated based on the - current state of the folder. This means any changes made when the - folder was narrowed are shown consistently. - (mh-notate-deleted-and-refiled): Update the documentation. - (mh-thread-parse-scan-line): For some reason the ASCII value of - the space character was being used here. This is fixed. - (mh-thread-inc, mh-toggle-threads): Avoid change of point in - folder and message being displayed in shown buffer. - - * mh-utils.el (mh-recenter): Rewrite mh-recenter to show fewer - blank lines when point is towards the end of the folder buffer. - -2002-10-25 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-mail-followup-to-flag): New boolean - defcustom to append a Mail-Followup-To field to the header. The - insertion is done if the To: or Cc: fields matches an entry in - `mh-insert-mail-followup-to-list'." - (mh-insert-mail-followup-to-list): New defvar. List of addresses - for which a Mail-Followup-To field is inserted. - (mh-re-search-to-cc): New function. Search for REGEXP in To: and - Cc: fields. - (mh-insert-mail-followup-to): New function. Insert - Mail-Followup-To: if To or Cc match `mh-insert-mail-followup-to-list'. - (mh-compose-and-send-mail): Call mh-insert-mail-followup-to if - mh-insert-mail-followup-to-flag is true. - -2002-10-25 Mark D. Baushke <mdb@gnu.org> - - * mh-utils.el (mh-show-maximum-size): New variable to control - the display of large messages. - (mh-display-msg): Use it (Closes SF #488696). - - * mh-seq.el (mh-toggle-threads): Checkdoc fix. - - * mh-e.el (mh-reset-threads-and-narrowing): Checkdoc fix. - - * mh-comp.el (mh-insert-x-mailer-flag): Renamed from - mh-insert-x-mailer-p. Update docstring. - (mh-send-letter): Use it. - (mh-reply-show-message-flag): Renamed from - mh-reply-show-message-p. Update docstring. - (mh-reply): Use it. - This addresses part of SF #627015. - - * mh-e.el (mh-recenter-summary-flag): Renamed from - mh-recenter-summary-p. Update docstring. - (mh-set-scan-mode): Use it. - This addresses part of SF #627015. - -2002-10-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-reset-threads-and-narrowing): New function which - resets all thread and narrowing state to completely unthreaded and - widened state. As a side effect, the folder buffer is erased. - (mh-rescan-folder): Reset threads and narrowing state. - - * mh-funcs.el (mh-pack-folder-1): Reset threads and narrowing state. - - * mh-seq.el (mh-copy-seq-to-eob): Change mh-view-ops after - threading is over so that if user aborts threading, it doesn't - leave mh-e in an inconsistent state. - (mh-toggle-threads): Use mh-scan-folder to populate the folder - buffer instead of mh-rescan-folder which resets threading and - narrowing state. - -2002-10-24 Bill Wohler <wohler@newt.com> - - * mh-e is completely checkdoc clean now. - - * mh-utils.el (mh-clean-message-header-flag): Renamed from - mh-clean-message-header. - (mh-bury-show-buffer-flag): Renamed from mh-bury-show-buffer. - (mh-show-use-goto-addr-flag): Renamed from mh-show-use-goto-addr. - This addresses part of SF #627015. - - * mh-mime.el (mh-clean-message-header-flag): Renamed from - mh-clean-message-header. - Checkdoc fixes. This addresses part of SF #627015. - - * mh-index.el (mh-clean-message-header-flag): Renamed from - mh-clean-message-header. This addresses part of SF #627015. - - * mh-funcs.el (mh-do-not-confirm-flag): Renamed from - mh-do-not-confirm. This addresses part of SF #627015. - - * mh-e.el (mh-do-not-confirm-flag): Renamed from - mh-do-not-confirm. - (mh-clean-message-header-flag): Renamed from - mh-clean-message-header. - This addresses part of SF #627015. - - * mh-comp.el: checkdoc fixes. - -2002-10-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-copy-seq-to-eob): Rewritten to scan the headers - fresh instead of yanking from buffer. This is needed to get - correct threading in copied sequence. - (mh-thread-inc, mh-thread-update-scan-line-map) - (mh-thread-parse-scan-line): Eliminate the use, and hence the - definition of, the kludgy mh-thread-update-scan-line-map. Instead - the functions mh-notate-deleted-and-refiled and - mh-notate-user-sequences are used to get the message marks right. - (mh-thread-generate-scan-lines): Updated to allow the thread tree - to be used in a narrowed folder buffer. - (mh-thread-folder, mh-toggle-threads): Remove - mh-folder-threaded-view-flag. - (mh-thread-old-scan-line-map): New buffer-local variable that - remembers the original scan-line map so that the sequence thread, - narrow, widen will work. - (mh-narrow-to-seq, mh-widen): Remember the scan-line map when - narrowing and restore it when widening. - - * mh-e.el (mh-folder-threaded-view-flag, mh-folder-folder-menu) - (mh-regenerate-headers, mh-get-new-mail) - (mh-make-folder-mode-line, mh-process-commands) - (mh-delete-scan-msgs): Remove mh-folder-threaded-view-flag. - Instead (memq 'unthread mh-view-ops) is used to test if the folder - is threaded. - - * mh-mime.el (mh-display-emphasis): Shadow article-goto-body here - since we want to do emphasis on the whole of the region and not - just after the first blank line. - (mh-mm-display-part): When displaying a text part show smilies and - emphasis. - - * mh-index.el (mh-index-insert-scan): Attempt to keep number of - args to scan small if there are lots of adjacent matches. - (mh-index-quit): Bury index-buffer on quit instead of killing it. - This behavior is more like that of mh-quit. - - * mh-seq.el (mh-widen): If folder was threaded after narrowing - then make mh-widen undo the threading instead of erroring out. - -2002-10-24 Peter S Galbraith <psg@debian.org> - - * mh-seq.el (mh-toggle-threads): Add a cond (as suggested by - Satyaki) to properly unthread a narrowed-to-sequence. - - * mh-seq.el (mh-thread-generate-scan-lines): Fix threading - breakage from partial switch to mh-container-real-child-flag and - to dupl-flag. - - * mh-comp.el (mh-yank-cur-msg): Bug fix: specify - (eq t mh-yank-from-start-of-msg) when that's what we want. - -2002-10-24 Mark D. Baushke <mdb@gnu.org> - - * mh-seq.el (mh-thread-prune-subject): Renamed subject-pruned-p as - subject-pruned-flag. - (mh-thread-inc): Renamed old-buffer-modified-p as - old-buffer-modified-flag. - (mh-thread-generate-scan-lines): Renamed dupl-p as dupl-flag. - This addresses part of SF #627015. - - * mh-index.el (mh-index-advance): Renamed backward-p - local variable as backward-flag. - (mh-index-next-button): Renamed backward-p - argument as backward-flag. - (mh-index-show): Renamed display-headers-p argument as - display-headers-flag. - This addresses part of SF #627015. - - * mh-e.el (mh-scan-format, mh-version): Use mh-nmh-flag. - (mh-folder-mime-action): Renamed include-security-p - argument as include-security-flag. - (mh-goto-next-button, mh-next-button): Renamed backward-p - argument as backward-flag. - (mh-get-new-mail): Renamed new-mail-p local variable as - new-mail-flag. - (mh-goto-cur-msg): Renamed minimal-changes-p argument as - minimal-changes-flag. - (redraw-needed-flag): Renamed redraw-needed-p local variable as - redraw-needed-flag. - (mh-seq-containing-msg): Renamed include-internal-p argument as - include-internal-flag. - (mh-page-msg): Use mh-page-to-next-msg-flag. - This addresses part of SF #627015. - - * mh-mime.el (mh-mhn-compose-insert-flag): Renamed from - mh-mhn-compose-insert-p. Make it buffer-local. - (mh-mhn-compose-type, mh-mhn-compose-external-type, - mh-mhn-compose-forw, mh-edit-mhn): Use mh-mhn-compose-insert-flag. - (mh-mml-to-mime, mh-mml-secure-message-encrypt-pgpmime, - mh-mime-display-part, mh-mime-display-single): Use - mh-gnus-pgp-support-flag renamed from mh-gnus-pgp-support-p. - (mh-mime-display-single): Renamed small-image-p local - variable as small-image-flag. - (mh-mime-inline-part): Renamed local variable inserted-p as - inserted-flag. - (mh-mime-inline-part): Renamed local variable displayed-p as - displayed-flag. - This addresses part of SF #627015. - - * mh-comp.el (mh-letter-menu, mh-letter-mode, mh-send-letter): - mh-mhn-compose-insert-flag. - (mh-repl-group-formfile, mh-forward): Use mh-nmh-flag - renamed from mh-nmh-p. - (mh-reply, mh-insert-x-mailer, mh-send-letter): Use mh-nmh-flag. - (mh-letter-mode-map): Use mh-gnus-pgp-support-flag renamed from - mh-gnus-pgp-support-p. - (mh-mml-secure-message-sign-pgpmime): Use - mh-gnus-pgp-support-flag. - This addresses part of SF #627015. - - * mh-utils.el (mh-page-to-next-msg-flag): Renamed from - mh-page-to-next-msg-p. - (mh-show-msg): Use mh-page-to-next-msg-flag. - (mh-gnus-pgp-support-flag): Renamed from - mh-gnus-pgp-support-p. - (mh-show-font-lock-fontify-region): Fix docstring per checkdoc. - (with-mh-folder-updating): Renamed argument - save-modification-flag-p as mh-save-modification-flag. - (mh-prompt-for-folder): Renamed new-file-p local - variable as new-file-flag. - This addresses part of SF #627015. - -2002-10-24 Mark D Baushke <mdb@gnu.org> - - * mh-comp.el (mh-forward): Fix mh-mml-compose-insert-p reference - in last commit to be mh-mml-compose-insert-flag. - (mh-mml-compose-insert-flag): Move defvar to fix compiler warning. - -2002-10-24 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-forward): Add support for transient-mark mode. - When using nmh, always specify -mime so as to preserve the - original message(s). If mh-compose-insertion is 'gnus, convert - the mhbuild format forwarding directives into MML. - -2002-10-24 Eric Ding <ericding@alum.mit.edu> - - * mh-comp.el (mh-send-letter): Fix for earlier change that added - "-mime" for bcc'ed MIME mail; still doesn't work with nmh 1.0, but - at least no longer triggered for every outgoing message! - -2002-10-24 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-yank-cur-msg): Fix selected regions for supercite - (see text below). - - * mh-comp.el (mh-yank-cur-msg): Fix for supercite. Someone played - with the point and mark setting prior to the call to - 'mh-insert-prefix-string and that broke supercite. I put comments - to make it obvious to future coders why those settings exists. - Note that supercite is still broken when a region is selected in - the show buffer. Presumably it's been like that for a long time. - We need to insert the header as well as the selected region oin - that case. I'll submit an SF bug. - -2002-10-24 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-yank-from-start-of-msg, mh-reply): Use -noformat - flag to reply when 'autosupercite or 'autoattrib are specified to - prevent duplicate cites of the body of a message. - -2002-10-23 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (font-lock-default-fontify-region): Add autoload to - avoid compiler warning. - -2002-10-23 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-mode): set fill-paragraph-function to our - own 'mh-fill-paragraph-function instead of simply - 'mail-mode-fill-paragraph (because it doesn't handle a non-nil - fill-prefix correctly). - (mh-fill-paragraph-function): New function for mh-letter-mode - fill-paragraph-function in order to handle non-nil fill-prefix. - Call sendmail's mail-mode-fill-paragraph if in the mail header, - else call default fill-paragraph with fill-prefix set to nil. - (Closes SF #489927) - - * mh-comp.el (mh-letter-mode): Let's use font-lock even if gnus is - used in show-mode. The reason is that gnus uses static text - properties which are not appropriate for a buffer that will be - edited. So the choice here is either fontify the citations and - header or the header only. - - * mh-utils.el (mh-show-font-lock-fontify-region): Limit font-lock - in mh-show-mode to the header. Used when mh-highlight-citation-p - is set to gnus, leaving the body to be dealt with by gnus - highlighting. This fixes gnus text emphasis in mh-show-mode. - (mh-show-mode): In font-lock-defaults, set - font-lock-fontify-region-function to mh-show-font-lock-fontify-region. - -2002-10-23 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-mml-attach-file): Prompt for disposition should - be Disposition, not Content-Type. The Content-Type has been - determined automatically. - -2002-10-23 Mark D. Baushke <mdb@gnu.org> - - * MH-E-NEWS: - s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ - s/mh-show-use-xface/mh-show-use-xface-flag/ - s/mh-tool-bar-reply-3-buttons/mh-tool-bar-reply-3-buttons-flag/ - This addresses part of SF #627015. - - * mh-comp.el: - s/mh-mml-compose-insert-p/mh-mml-compose-insert-flag/ - s/mh-xemacs-p/mh-xemacs-flag/ - (mh-letter-menu): Use mh-mml-compose-insert-flag. - (mh-insert-x-mailer): Use mh-xemacs-flag. - (mh-mml-compose-insert-flag): Renamed from - mh-mml-compose-insert-p. - (mh-send-letter): Use mh-mml-compose-insert-flag. - This addresses part of SF #627015. - - * mh-e.el: - s/mh-folder-threaded-view-p/mh-folder-threaded-view-flag/ - s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ - s/mh-xemacs-p/mh-xemacs-flag/ - (mh-folder-threaded-view-flag): Renamed from - mh-folder-threaded-view-p. Make it buffer local. - (mh-folder-tool-bar-map): Use mh-tool-bar-reply-3-buttons-flag. - (mh-remove-xemacs-horizontal-scrollbar): Use mh-xemacs-flag. - (mh-make-folder, mh-regenerate-headers, mh-get-new-mail): Use - mh-adaptive-cmd-note-flag. - (mh-folder-folder-menu, mh-regenerate-headers, mh-get-new-mail, - mh-make-folder-mode-line, mh-process-commands, - mh-delete-scan-msgs): Use mh-folder-threaded-view-flag. - This addresses part of SF #627015. - - * mh-index.el: - s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ - (mh-index-search): Use mh-adaptive-cmd-note-flag. - This addresses part of SF #627015. - - * mh-mime.el: - s/mh-mml-compose-insert-p/mh-mml-compose-insert-flag/ - s/mh-xemacs-p/mh-xemacs-flag/ - (mh-mml-compose-insert-flag): Renamed from - mh-mml-compose-insert-p. Make it buffer local. - (mh-mml-attach-file, mh-mml-secure-message-sign-pgpmime, - mh-mml-secure-message-encrypt-pgpmime): Use it. - (gnus-local-map-property): Use mh-xemacs-flag. - This addresses part of SF #627015. - - * mh-seq.el: - s/mh-folder-threaded-view-p/mh-folder-threaded-view-flag/ - (mh-thread-generate, mh-thread-folder, mh-toggle-threads): Use - mh-folder-threaded-view-flag. - This addresses part of SF #627015. - - * mh-speed.el: - s/mh-speed-run-flists-p/mh-speed-run-flists-flag/ - s/mh-speed-refresh-p/mh-speed-refresh-flag/ - (mh-speed-run-flists-flag): Renamed from mh-speed-run-flists-p. - (mh-folder-speedbar-buttons): Use it. - (mh-speed-refresh-flag): Renamed from mh-speed-refresh-p. - (mh-speed-update-current-folder, mh-speed-invalidate-map, - mh-speed-add-folder): Use it. - This addresses part of SF #627015. - - * mh-utils.el: - s/mh-xemacs-p/mh-xemacs-flag/ - s/mh-tool-bar-reply-3-buttons/mh-tool-bar-reply-3-buttons-flag/ - s/mh-show-use-xface/mh-show-use-xface-flag/ - (mh-xemacs-flag): Renamed from mh-xemacs-p. - (mh-show-xface-function): Use it. - (mh-tool-bar-reply-3-buttons-flag): Renamed from - mh-tool-bar-reply-3-buttons. - (mh-show-tool-bar-map): Use it. - (mh-adaptive-cmd-note-flag): Renamed from mh-adaptive-cmd-note. - (mh-cmd-note): Use it in description. - (mh-show-use-xface-flag): Renamed from mh-show-use-xface. Use - mh-xemacs-flag. - (mh-show-xface): Use mh-show-use-xface-flag. - This addresses part of SF #627015. - -2002-10-23 Bill Wohler <wohler@newt.com> - - * Makefile (all): Rather than have to run "make clean all" all the - time, make the default target do a clean so all you have to say is - "make". - - * mh-e.el (mh-folder-map): Moved "t (mh-toggle-threads)" to T - prefix. - -2002-10-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-indexer-choices, mh-swish-binary): The - executable swish-e can be used to search (just like swish-search). - However the Makefile in swish-e-2.2.2 doesn't install - swish-search. So it is preferable to use swish-e. - -2002-10-22 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-letter-mode-map): Added aliases for keybindings. - For example, you now have "C-c C-m C-i" in addition to "C-c C-m - i". - -2002-10-22 Mark D. Baushke <mdb@gnu.org> - - * mh-mime.el (mh-graphical-smileys-flag): Renamed from - mh-graphical-smileys-p. - (mh-display-smileys): Use it. - (mh-graphical-emphasis-flag): Renamed from - mh-graphical-emphasis-p. - (mh-display-emphasis): Use it. This addresses part of SF #627015. - -2002-10-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-insert-mime-security-button): A message is - produced if PGP decryption/verification fails. This addresses - SF# 627025. - -2002-10-21 Bill Wohler <wohler@newt.com> - - * mh-seq.el (mh-widen): Checkdoc removed the period in the error. - The info node (elisp) Coding Conventions says: "An error message - should start with a capital letter but should not end with a - period." - - * mh-e.el, mh-utils.el (mh-tool-bar-reply-3-buttons): Moved - defcustom to mh-utils because I got an error about a nil value for - mh-tool-bar-reply-3-buttons when I fired up mh-rmail. - - * mh-comp.el, mh-funcs.el, mh-mime.el, mh-pick.el: Moved (provide) - to the end of the file to be consistent with most other files (see - additional rationale in mh-e.el description below). - - * mh-e.el: Had to remove eval-when-compile from the (require 'cl) - here too (because the remove-if generated a warning in CVS Emacs). - Moved (provide) to the end of the file to be consistent with most - other files. My guess is that this is good to keep a feature from - being "provided" if the file craps out while being loaded. - -2002-10-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-reply, Info-goto-node): Add autoloads to avoid - compiler warnings. - (mh-tool-bar-reply-3-buttons): Add defvar to avoid compiler - warning. - - * mh-seq.el (mh-narrow-to-seq): Remember that a narrowing has - occurred. - (mh-valid-view-change-operation-p): New function that checks if - the widening or unthreading that we are about to perform is - allowed. - (mh-widen): Check if widening is applicable. - (mh-thread-inc, mh-thread-folder): Use delete-region instead of - erase-buffer. This means if the buffer is narrowed then the hidden - parts aren't removed. This allows widening of the folder later on. - (mh-toggle-threads): Maintain mh-view-ops. - - * mh-e.el (mh-view-ops, mh-folder-mode): New buffer-local variable - that keeps track of the sequence in which threading and narrowing - of the folder buffer has been carried out. This is needed so that - narrowing followed by threading (or vice versa) behaves in a - reasonable manner. - (mh-regenerate-headers): Use delete-region instead of - erase-buffer. - (mh-make-folder-mode-line): Change mh-first-msg-num and - mh-last-msg-num conservatively. This might show a larger range in - the mode-line but allows the unthreading to not miss messages - present initially. - -2002-10-21 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-graphical-emphasis-p): Added _underline_ to the - docstring, as well as the source of the strings, - gnus-emphasis-alist. - (mh-graphical-emphasis-p, mh-graphical-smileys-p): Set the default - to t. - -2002-10-21 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-show-mode): Invoke new toolbar. - (mh-show-tool-bar-map): New tool-bar for mh-show-mode, similar to - mh-letter-mode. - -2002-10-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-display-msg): Call the smiley display function - after the call to mh-show-mode. This is needed since mh-show-mode - kills all buffer-local variables and resets the variable that - controls display of graphical smileys. - -2002-10-21 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-folder-mime-action): Change mime to MIME in message. - - * mh-comp.el (mh-mml-to-mime autoload): Ditto. - -2002-10-21 Mark D Baushke <mdb@gnu.org> - - * mh-mime.el (smiley-region): Use load for a non-fatal dependency - on the smiley library. - -2002-10-21 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-forward): Search for a blank line as well as - mail-header-separator. - (mh-letter-mode): Search for a blank line as well as - mail-header-separator. - (mh-send-letter): The default BCC encapsulation will make a MIME - message unreadable. If we are running nmh and the letter contains - a Bcc: and a Content-Type: field, add the -mime switch to to the - arguments to send. - -2002-10-21 Peter S Galbraith <psg@debian.org> - - * mh-utils.el: Add a mh-defun-show-buffer call to define - mh-show-pack-folder. - -2002-10-21 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-store-mime-parts): Simplify code a bit. - - * mh-e.el (mh-help-messages): Update help message for changed - keybindings. - -2002-10-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-invalidate-map): Invalidate - mh-speed-folders-cache before it is used by mh-speed-folders. Also - fix indentation of if statement. - (mh-speed-folder-size): The folder name should be extracted from - the speedbar buffer and not from the temp buffer has was happening - before. - (mh-speed-folder-size): Harden the function some more. It - shouldn't produce errors any more unless flist really didn't work. - -2002-10-21 Bill Wohler <wohler@newt.com> - - * mh-seq.el (mh-put-msg-in-seq): Formatting only. The reason I was - in there is because I was trying to use mh-put-msg-in-seq and - mh-msg-is-in-seq non-interactively and found that although the - docstring says it uses the current message by default, I got - errors if I passed in nil for the message. Is this expected, or is - this a bug? I suppose the fix would be to make the arguments - optional, right? This would cause the arguments in - mh-put-msg-in-seq to be reversed, however. Might be a backwards - compatibility problem. - - * mh-speed.el (mh-speed-view): Convert default size to string - before passing it to read-string. This was done because XEmacs - can't handle a numeric value for the default. - -2002-10-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-show-mode-map, mh-show-folder-map) - (mh-show-sequence-map, mh-show-thread-map, mh-show-extract-map) - (mh-show-digest-map, mh-show-mime-map): Interactive functions - callable in show buffer are now prefixed with mh-show. - - * mh-seq.el (mh-notate-deleted-and-refiled): Take into account the - changes to mh-refile-list and the removal of the 'deleted - sequence. - (mh-toggle-threads): Changing from threaded to normal view doesn't - try to push out message refiles and deletions to MH. - - * mh-e.el (mh-rescan-folder, mh-scan-folder): Add a new optional - argument to both functions that prevents them from carrying out - pending refiles and deletes. - (mh-undo): Remove dead code. - (mh-delete-a-msg, mh-undo-msg): Get rid of the 'deleted sequence. - The same information is present in mh-delete-list any way. - (mh-refile-a-msg, mh-undo-msg, mh-process-commands): Change the - semantics of mh-refile-list to make it self-contained. This - variable now contains a list of lists. The first element of each - sublist is the destination folder name. The remaining elements are - the messages that are to be refiled to the destination folder. - (mh-toggle-threads, mh-folder-folder-menu): Use mh-toggle-threads - instead of mh-thread-folder. - -2002-10-20 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-store-mime-parts): Bug fix? Make this command - work when in the show buffer, and not just in the folder buffer - pointing to a message. - -2002-10-20 Peter S Galbraith <psg@debian.org> - - * mh-seq.el (mh-narrow-to-subject-sequence): Renamed from - mh-narrow-to-subject-thread. - (mh-subject-to-sequence): Renamed from mh-subject-thread-to-sequence. - (mh-delete-subject-sequence): Renamed from mh-delete-subject-thread. - (mh-next-unseen-subject-sequence): Renamed from - mh-next-unseen-subject-thread. - (mh-toggle-subject-thread): Removed. :-( - - * mh-e.el: s/subject-thread/subject-sequence/ - (mh-thread-map): Bind mh-widen to "w". - - * mh-utils.el: s/subject-thread/subject-sequence/ - (mh-show-thread-map): Bind mh-widen to "w". - -2002-10-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-folder): This function is no longer - interactive. The mh-toggle-threads is the interactive function - that gets called by the user. Also the already computed values in - mh-first-msg-num and mh-last-msg-num are used instead of - recomputing the first and last message indices in the current - folder. - (mh-toggle-threads): New interactive function that toggles - threaded view of the folder. - - * mh-utils.el (mh-letter-toggle-threads): New interactive function - which toggles thread view from show buffer. This function replaces - mh-letter-thread-folder. - (mh-show-folder-map): Use mh-letter-toggle-threads instead of - mh-letter-thread-folder. - - * mh-e.el (mh-folder-map): Use mh-toggle-threads instead of - mh-thread-folder. - -2002-10-20 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-scan-folder): Formatting only. - (mh-goto-cur-msg): Removed call to mh-last-msg in those cases - where there isn't a current message. Since I've started using the - speedbar to read my mh-e mail, I've had to use M-< every time to - go to the beginning of the new messages. Very annoying! Thus, if - there isn't a current message, the cursor is left alone, which - sounds like the right thing to do anyway. - -2002-10-19 Peter S Galbraith <psg@debian.org> - - * mh-seq.el (mh-subject-thread-to-sequence): Bug fix. After - making the 'subject sequence real, I now have to delete it globally. - - * mh-seq.el (mh-toggle-subject-thread): Make toggle back to full - scan exactly mh-widen (removed moving to current message). - - * mh-seq.el (mh-subject-thread-to-sequence): Make 'subject - sequence a real one, exported to MH. This means you can, for - example, mh-forward it. But it also shows up with a mark in the - scan output. (Closes SF #489445). - -2002-10-19 Bill Wohler <wohler@newt.com> - - * mh-speed.el (mh-speed-view): If there weren't any unseen - messages, and you specified a string (a sequence like "last") when - prompted for the number of messages to display, you got an error. - This has been fixed. - -2002-10-19 Mark D Baushke <mdb@gnu.org> - - * mh-e.el (mh-last-destination-folder): Destination of last refile - command. - (mh-last-destination-write): Destination of last write command. - (mh-refile-msg): Use 'mh-last-destination-folder and update both it - and 'mh-last-destination. - (mh-write-msg-to-file): Use 'mh-last-destination-write and update - both it and 'mh-last-destination (Closes SF #580772). - -2002-10-19 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-yank-from-start-of-msg): Changed default to - 'attribution. - (mh-letter-mode-map): Removed commented-out keybindings as well as - alias "C-c C-m a (mh-compose-insertion)." Prefer "C-c C-m i." - - * mh-utils.el: Removed autoload of help. It no longer appears to - be necessary in cvs Emacs (21.4). - -2002-10-18 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-execute-commands): Doc fix. - (mh-compat-write-file-hook): Renamed to - mh-write-file-functions-compat. - (mh-folder-mode): Add mh-write-file-functions-compat instead of - mh-compat-write-file-hook - -2002-10-18 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-invisible-headers-show-xface): Killed this - variable. - (mh-invisible-headers): Use 'mh-show-use-xface instead of - 'mh-invisible-headers-show-xface to determine whether to render - the X-Face header line visible or not. - -2002-10-18 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-compat-write-file-hook, mh-folder-mode): Use the new - macro mh-compat-write-file-hook to use write-file-functions for - Emacs 21.4 and local-write-file-hooks for older versions. - -2002-10-18 Mark D Baushke <mdb@gnu.org> - - * mh-utils.el (mh-invisible-headers): Add more anti-spam headers. - -2002-10-18 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-mml-forward-message): mml-attach-file constructs - a malformed composition if the description string is empty, so - test for that and call mml-attach-file without that argument if - it's an empty string (closes SF #625168). - -2002-10-17 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-keymap): Removed extra binding of " ". - (mh-index-folder-mode-help-messages): Made the cheat sheet entry - of quit like the others. - (mh-index-search): If space was pressed in the index buffer before - a search result has been shown with ".", the old show buffer would - be scrolled. This is confusing since the index and show buffer - contents are contradictory. Killing the show buffer here avoids - this problem. - (mh-index-configure-windows): Refine the window configuration - logic. Avoid the two window view unless there is a message being - displayed in the show buffer. - (mh-index-scroll-up): Rewrite this function. The old version had a - bizarre problem where the show buffer wouldn't be scrolled if the - speedbar was present. - (mh-index-scroll-down): Rewritten because of similar reason as - above. - -2002-10-17 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-reply): Add an undo boundary in the undo list - before calling 'mh-yank-cur-msg (closes SF #623693). - -2002-10-17 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-folder-mode): Use local-write-file-hooks instead of - write-file-hooks. This is required for XEmacs and also the right - thing according to GNU Emacs21 documentation. - -2002-10-16 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-generate): Get threading to work correctly - on partial folders. The fix here disregards messages that aren't - already present in the buffer. - (mh-thread-folder): When querying scan about thread info try to - avoid asking about messages that aren't present in the folder - buffer. A more efficient fix would be to ask scan about just the - messages that are present instead of a range of messages. However - that runs the risk of sending long command lines to scan. Another - change was to populate the mh-scan-line-map early so that the - change in mh-thread-generate would work. - (mh-thread-generate-scan-lines): In case duplicates are present - make one of them the pseudo parent of the rest. This makes it look - prettier if there are multiple duplicates at top level. - - * mh-comp.el (mh-edit-again): If a buffer in show-mode is being - reused then reinsert message file. This should fix SF #624283. - - * mh-mime.el (mh-mm-display-part): Make sure mh-display-part is - always called when we want to remove the displayed MIME part. - -2002-10-16 Bill Wohler <wohler@newt.com> - - * mh-speed.el (mh-speed-folder-size): checkdoc fix. - (mh-speed-view): Tweaked output to mirror gnus verbiage. Offer - to view number of messages in folder rather than mh-large-folder. - Replaced (intern mh-unseen-seq) with mh-unseen-seq since the - former was generating errors. - -2002-10-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-large-folder): New customizable variable to - control mh-e's perception of large folders. - (mh-speed-folder-size): New function which computes the size of - folder on current line. - (mh-speed-view): Modified to handle large folders. If the folder - being clicked has unseen messages then only those messages are - shown. Otherwise if number of messages in folder is larger than - mh-large-folders then the user is asked for the number of messages - to be shown. If the folder satisfies neither of the above cases - then it is displayed in its entirety - -2002-10-15 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-index-keymap): Use gnus-define-keys. Sorted. - Noticed that there were two key bindings for SPACE... - - * mh-speed.el (mh-folder-speedbar-key-map): Ditto (except for the - dup SPACE binding). - - Completed help in other modes: - - * mh-utils.el (mh-xemacs-p): Fixed doc. - (mh-show-mode-map, mh-show-folder-map, mh-show-sequence-map) - (mh-show-thread-map, mh-show-extract-map): Added binding for - mh-help. - - * mh-pick.el (mh-search-folder): Added startup help message. - (mh-pick-mode-help-messages): New variable that contains help - messages for pick buffer. - (mh-pick-mode): Set local buffer variable mh-help-messages to - mh-pick-mode-help-messages. - - * mh-index.el (mh-index-keymap): Added binding for mh-help - (mh-index-folder-mode-help-messages): New variable that contains - help messages for MH Index buffer. - (mh-index-folder-mode): Set local buffer variable mh-help-messages - to mh-index-mode-help-messages. - - * mh-funcs.el (mh-help, mh-prefix-help): Call - substitute-command-keys on the help messages. - - * mh-e.el (mh-help-messages): Added ,. Ran C-M-q. - (mh-help): This autoload doc is now used for more than just the - MH-Folder, so drop that specific text. - - * mh-comp.el (mh-edit-again, mh-extract-rejected-mail) - (mh-forward, mh-reply, mh-send-sub): Call mh-letter-mode-message - to display a help message at startup. - (mh-letter-mode): Set local buffer variable mh-help-messages to - mh-letter-mode-help-messages. - (mh-letter-mode-help-messages): New variable with help messages - for the MH-Letter buffer. - (mh-letter-mode-message): New function that displays a startup - help message. - (mh-letter-mode-map): Added binding for mh-help. Sorted. - -2002-10-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speedbar-selected-folder-with-unseen-messages-face) - (mh-speedbar-folder-face, mh-speedbar-selected-folder-face) - (mh-speedbar-folder-with-unseen-messages-face): New faces for mh-e - speedbar. - (mh-folder-speedbar-buttons, mh-speed-update-current-folder) - (mh-speed-add-buttons): Use the new faces. - (mh-speed-normal-face, mh-speed-bold-face): Functions to convert - to bold face and back to normal face. - (mh-speed-set-face): Removed. - (mh-speed-highlight): Modified to allow it to be used instead of - mh-speed-set-face. Also changes were made to fontify folders with - unread messages. - (mh-speed-parse-flists-output, mh-speed-parse-flists-output) - (mh-speed-invalidate-map): Use mh-speed-highlight instead of - mh-speed-set-face. - -2002-10-15 Bill Wohler <wohler@newt.com> - - * mh-mime.el, mh-seq.el, mh-speed.el, mh-utils.el: It appears that - the cl package has been restructured in 21.4 in such a way that - the use of eval-when-compile no longer suppresses warnings when - compiling so that (require 'cl) must be called directly (maybe - this is a bug in 21.4 ;-). Thus the autoloads of cl are no longer - needed. Now compiles clean under 21.4. - - * mh-e.el (mh-folder-mode): The use of local-write-file-hooks is - deprecated in Emacs 21.4, so use add-hook write-file-functions (or - write-file-hook for older versions) with the LOCAL argument - instead. Now compiles clean under 21.4. - - * mh-comp.el (mh-yank-cur-msg): Push a mark at the opposite end of - the included text to make it easy to jump or delete to the other - end of the included text. - -2002-10-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-insert-prefix-string): Remove the erroneous use - of set-mark and other related functions. - -2002-10-14 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-yank-from-start-of-msg): Fixed documentation. It - isn't ignored if there is a region. It is still used for the - attribution. - (mh-yank-cur-msg): Removed unnecessary push-mark when snarfing the - entire message. Move the cursor to the end of the snarfed message - if there is a region. In this case, push a mark so user can pop to - the beginning of the snarfed fragment. - (mh-insert-prefix-string): This calls set-mark which I find - suspect since I found that my last user mark was deleted after - yanking a message. Added a comment to this effect. Will probably - add a bug report... - - * README (Installed, Supported versions): To appear in GNU Emacs - 21.3; supported on Emacs 21, 20.7 and XEmacs 21. - - * mh-funcs.el (mh-concat-list): Deleted. Use mapconcat instead. - (mh-help, mh-prefix-help): Use mapconcat instead of mh-concat-list. - (mh-ephem-message): Use "%s" in message. - - * mh-funcs.el (mh-concat-list): New function to concatenate a list - of strings into a single string. I would have thought elisp - already contained a function like this, but I couldn't find it. - (mh-ephem-message): New function to display a message in the - minibuffer ephemerally. minibuffer-message seemed like the right - function, but it writes to the current buffer oddly enough. - (mh-help, mh-prefix-help): New functions to display command - cheat sheets in the minibuffer (closes SF #493740). It would be - nice to refactor these two into a single function if possible. - - * mh-e.el (mh-folder-mode-map, mh-folder-map, mh-sequence-map) - (mh-thread-map, mh-extract-map): Added ? keybinding for `mh-help' - and `mh-prefix-help' (closes SF #493740). - (mh-help-messages): New variable to hold various help messages. - (mh-help, mh-prefix-help): Autoload from mh-funcs.el. - -2002-10-13 Bill Wohler <wohler@newt.com> - - * mh-index.el (mh-glimpse-directory, mh-swish-directory, - mh-namazu-directory): New variables that hold the name of the - configuration and indexing directory. All are now hidden `.' - directories. - - * mh-e.el, mh-funcs.el, mh-index.el, mh-mime.el, mh-pick.el, - mh-seq.el, mh-xemacs-compat.el (Docstrings): Converted comments to - docstrings, reworded some docstrings to conform to Emacs - documentation conventions, and eliminated all checkdoc warnings - (except for -flag, which we'll fix after 6.2 is released). - -2002-10-13 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-swish-next-result): Fix a bug in a corner case - where the lack of a trailing "/" caused the function to wrongly - filter out correct hits. This should fix SF #622679. - -2002-10-12 Steve Youngs <youngs@xemacs.org> - - * mh-utils.el (mh-xemacs-p): Simplify it, don't test for - 'defvaralias' and don't use 'running-xemacs'. - -2002-10-11 Bill Wohler <wohler@newt.com> - - * mh-comp.el: (Docstrings): Eliminated all checkdoc warnings by - converting comments to docstrings and rewording some docstrings to - conform to Emacs documentation conventions. - -2002-10-11 Steve Youngs <youngs@xemacs.org> - - * mh-utils.el (mh-xemacs-p): New. - (mh-show-use-xface): Use it. - (mh-show-xface-function): Ditto. - - * mh-e.el (toplevel): Ditto. - (mh-remove-xemacs-horizontal-scrollbar): Ditto. - (mh-folder-mode-map): Ditto. - - * mh-comp.el (mh-insert-x-mailer): Ditto. - - * mh-mime.el (gnus-local-map-property): Ditto. - (mh-mml-to-mime): Move (require 'mh-utils) to toplevel. - (mh-prompt-for-folder): Autoloading this not needed because - mh-utils is now required at toplevel. - (mh-show-xface): Ditto. - (mh-show-addr): Ditto. - -2002-10-11 Bill Wohler <wohler@newt.com> - - * Makefile (EMACS_HOME): Set default to $(TOP)/../emacs so it - would be useful. - - * mh-utils.el (mh-invisible-headers): Added various spam header - fields. - (mh-path-search): Removed argument `func-p' and related code. It - was not documented and no one used it. - (Docstrings): Converted comments to docstrings, reworded some - docstrings to conform to Emacs documentation conventions, and - basically eliminated all checkdoc warnings (except for -flag - warnings). - -2002-10-11 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-generate): Kill dead code. - -2002-10-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-region-to-sequence): Don't include point-max in - region (closes SF #621632). - - * mh-utils.el (mh-defun-show-buffer): Fix call of - frame-first-window to work with XEmacs. Also avoid warning about - cur-buffe-name in XEmacs. - (mh-modify, mh-goto-msg): Remove dead code. - - * mh-speed.el (mh-speed-toggle, mh-speed-add-buttons): Remove dead - code. - - * mh-seq.el (mh-subject-thread-to-sequence, mh-thread-get-message, - mh-thread-generate, mh-thread-folder): Remove dead code. - - * mh-mime.el (mh-mm-inline-message): Remove dead code. - - * mh-index.el (mh-index-search): Remove dead code. - - * mh-comp.el (mh-open-line): Remove dead code. - - * mh-e.el (mh-folder-mode): Use the macro - mh-remove-xemacs-horizontal-scrollbar to avoid compiler-warning in - Emacs. - (mh-remove-xemacs-horizontal-scrollbar): New macro to avoid - compiler-warnings. - -2002-10-10 Mark D Baushke <mdb@gnu.org> - - * Makefile (EMACS_OPTIONS): New macro for command-line compile - options. - (EMACS): Allow the user to specify which emacs command to use for - the compile. - (COMPILE_COMMAND): Combine the compile command with its options. - (.el.elc): Use the new $(COMPILE_COMMAND). - -2002-10-10 Mark D Baushke <mdb@gnu.org> - - * mh-speed.el (mh-speed-select-attached-frame): Define a new - compatibility macro for getting to the attached-frame. - (mh-speed-update-current-folder): Use it. - -2002-10-10 Mark D Baushke <mdb@gnu.org> - - * mh-speed.el (mh-speed-update-current-folder): Use - 'dframe-select-attached-frame if we are in a newer speedbar - version that no longer supports the 'speedbar-attached-frame - variable. - -2002-10-10 Steve Youngs <youngs@xemacs.org> - - * mh-speed.el (mh-speed-update-current-folder): Use - 'dframe-select-attached-frame' if we're in XEmacs. - - * mh-e.el (mh-folder-mode): Remove the horizontal scrollbar from - the MH-Folder buffer if we're in XEmacs. - -2002-10-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-show-xface-function): New global that stores - what function needs to be called to display X-Face. - (mh-show-xface): Rewritten to avoid compiler warning. - -2002-10-09 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-exchange-point-and-mark-preserving-active-mark): - Simplify code for all emacsen to avoid byte-compilation warnings. - -2002-10-09 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-mm-display-part): If a sub-part of the current - part is an inline image then clicking the button keeps the image - around. The change fixes this bug. - -2002-10-09 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-exec-cmd-output): Use new function - 'mh-exchange-point-and-mark-preserving-active-mark instead of - 'exchange-point-and-mark. Fixes a bug in emacs20 and XEmacs21. - (mh-exchange-point-and-mark-preserving-active-mark): New function. - Does like 'exchange-point-and-mark but doesn't activate the mark. - - * mh-comp.el (mh-letter-menu): Allow access to "Pull in All - Compositions" menu entries when edits have really occurred. - Works with "forw: -mime" mh_profile entry, so this fixes a bug. - - * mh-mime.el (mh-mime-inline-part, mh-mm-display-part): Use - line-beginning-position and line-end-position instead of - point-at-bol and point-at-eol XEmacs functions. - * mh-xemacs-compat.el: Added line-end-position and - line-beginning-position compatibility aliases. - -2002-10-08 Mark D. Baushke <mdb@gnu.org> - - * mh-utils.el (mh-scan-msg-format-regexp): The regexp to find - %number(msg). - (mh-scan-msg-format-string): Format to be used with the current - maximum width of message number for the folder in the - `mh-upate-scan-format' function. - (mh-update-scan-format): Use `mh-scan-msg-format-regexp' for greater - flexibility. The message number is no longer anchored to the - beginning of the `mh-scan-format-nmh' or `mh-scan-format-mh' format - strings. The `mh-update-scan-format' allows for using zero-filled - message numbers. - -2002-10-08 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-folder-menu): Add entry for "Thread Folder". - -2002-10-07 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-generate): Use mh-progs to get path to mh - executables. - - * mh-speed.el (mh-speed-flists): Use mh-progs to get path to mh - executables right. - (mh-speed-folders-actual): Same as above. - -2002-10-05 Steve Youngs <youngs@xemacs.org> - - * mh-comp.el (mh-yank-from-start-of-msg): Make default setting 't' - a const. - - * mh-xemacs-compat.el (match-string-no-properties): Rewrite as a - defsubst using 'buffer-substring-no-properties' so we don't grab - any extents. - (rfc822-goto-eoh): Removed. This exists in the XEmacs mail-lib - package. - (mail-header-end): Ditto. - (mail-mode-fill-paragraph): Ditto. - -2002-10-05 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-invalidate-map): When called interactively - the function will clear mh-speed-folders-cache. - -2002-10-02 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-insert-mime-button): Rewrite without using - replace-match. - -2002-10-01 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-file-mime-type-substitutions): Reorder code to - avoid compiler warning. - -2002-10-01 Bill Wohler <wohler@newt.com> - - * Makefile (MH-E-ETC): Moved ChangeLog into MH-E-ETC-ETC since it - shouldn't get installed in Emacs. - (install-emacs): Install MH-E-IMG into Emacs' lisp/toolbar and - MH-E-IMG2 into Emacs' lisp/mail. - -2002-10-01 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-tool-bar-reply-3-buttons): New customization. - Non-nil means use three buttons for reply commands in tool-bar. - If you have room on your tool-bar because you are using a large - font, you may set this variable to expand the single reply - button into three buttons that won't lead to minibuffer prompt - about who to reply to. - (mh-folder-tool-bar-map): Use mh-tool-bar-reply-3-buttons to - decide how many buttons to use for replying. - - * mh-mime.el (mh-file-mime-type-substitutions) - (mh-file-mime-type-substitute): Fix typos and doc strings. - -2002-09-30 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-file-mime-type): Run Content-Type string returned - by file command through mh-file-mime-type-substitute (see below). - (mh-file-mime-type-substitute): Possibly change Content-Type - string using mh-file-mime-type-substitutions variable. This is - mostly because all MS-Office file are seen as application/msword - by the file command. - (mh-file-mime-type-substitutions): New variable. Defines - substitutions to make for Content-Type returned from file command. - -2002-09-27 Bill Wohler <wohler@newt.com> - - * README: Moved Id to end of file since it broke outline mode at - the beginning. - - * import-emacs (release): Renamed "mainline" tag to - "emacs-mainline" to correspond with existing CVS tag. - (EMACS_HOME): Fixed typo in docstring. - - * mh-utils.el (mh-folder-name-p, mh-defun-show-buffer): Lowercase - NIL and T in docstring. - (mh-update-scan-format): Fixed typo. - - * mh-comp.el, mh-e.el, mh-pick.el, mh-utils.el: Updated from CVS - Emacs. The only new thing appears to be to downcase NIL and T in - the documentation. - -2002-09-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-generate): The threading code will now be - more resistant to corruption of messages. Before the change any - corruption of message x would cause all messages with indices - higher than x to be neglected when threading! - -2002-09-23 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-store-mime-parts): Don't store value into - user-customizable variable mh-store-mime-parts-default-directory - and use mh-store-mime-parts-directory instead. - -2002-09-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-prune-subject): Use regular expressions to - make the subject pruning behave the way it is specified in the - imap-thread RFC. - - * mh-speed.el (mh-speed-folders-actual): Don't use pop when we - are not going to use the first element. This avoids a compilation - warning with cvs emacs. - -2002-09-19 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-display-msg): Put the call to - set-buffer-modified after mh-show-mode. This is needed for CVS - emacs since calling mh-show-mode marks the buffer as modified if - font-lock is on. - -2002-09-17 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-store-mime-parts-default-directory): Renamed from - mh-store-mime-parts-directory - (mh-store-mime-parts-directory): Renamed from - mh-store-mime-parts-directory-default. - -2002-09-16 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mail-citation-hook): Doc tweaks suggested by Bill. - -2002-09-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (autoloads): Reorder autoload of mh-reply to avoid - compiler warning. - -2002-09-03 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-store-mime-parts-directory): New defcustom. - Default directory to use for mh-store-mime-parts. - (mh-store-mime-parts): New Command. Store the MIME parts of the - current message. - (mh-store-mime-parts-directory-default): New internal working - variable. Default to use for mh-store-mime-parts-directory, set - from last use. - - * mh-e.el (mh-folder-seq-tool-bar-map): Add mh-store-mime-parts to - toolbar. - - -2002-08-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-generate-scan-lines): In threaded view, - complete scan lines are printed for all messages (not just the - ones at the top of a thread). - - * mh-index.el (mh-index-insert-scan): Replace use of kill-line - since that pollutes the kill-ring. - - * mh-comp.el (autoloads): Add autoloads for search and subseq to - get rid of compiler warnings. - -2002-08-19 Peter S Galbraith <psg@debian.org> - - * reply-to.xpm, reply-to.pbm, reply-from.xpm, reply-from.pbm, - * reply-all.xpm, reply-all.bpm: New icons for various reply methods. - * mh-e.el (mh-folder-tool-bar-map): Split reply button into three - that won't prompt for "from", "to" and "all". - * mh-comp.el (mh-reply): Put variable reply-to in the interactive - list since it's specified on the command line for the new toolbar. - - * mh-comp.el (mail-citation-hook): Tweak docs concerning - historical usage for supercite. - (mh-yank-from-start-of-msg): Add settings 'supercite and - 'autosupercite. Rename 'automatic to 'autoattrib. - (mh-insert-prefix-string): Invoke sc-cite-original if - mh-yank-from-start-of-msg is et to 'supercite or 'autosupercite. - -2002-08-17 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (compilation-fix): Reorder defvars to avoid warnings - during compilation. - -2002-08-17 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-yank-from-start-of-msg): Add 'automatic choice. - Do as for `attribution' automatically when show buffer matches the - message being replied-to. - (mh-reply): Call 'mh-yank-cur-msg when mh-yank-from-start-of-msg - is set to 'automatic and show buffer matches message number being - replied-to. - (mh-show-buffer-message-number): New helper function to get the - message number of the current show-buffer. - (mh-yank-cur-msg): Handle 'automatic choice the same as 'attribution. - (mh-yank-cur-msg): Bug fix. It would bail on error if - mh-show-buffer didn't exists. - -2002-08-16 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-x-mailer): It wrongly assumed that Emacs - was used even when XEmacs was used. Fixed so X-Mailer header is - more exact about what we are using. - -2002-08-15 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-version): Change CVS version number to 6.1+cvs just - so X-Mailer header is more exact about what we are using. - - * mh-mime.el (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp, - mh-mml-attach-file): - "Jeffrey P. Morgenthaler" <jpmorgen@congee.gsfc.nasa.go> reported - that "require" in emacs 20.3 doesn't handle 3 arguments. We - use "load" at the top of file elsewhere anyway to handle such a - case of non-essential loading, so switch to that here. - -2002-08-06 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-funcs.el (autoload): Add autoload for mh-speed-invalidate-map. - - * mh-speed.el (mh-speed-add-folder): New function to make the - speedbar aware of new folders when they are created by mh-e. - - * mh-utils.el (mh-prompt-for-folder): Use mh-speed-add-folder to - tell speedbar that new folder is being created. Also use folder - instead of mkdir to create new folders. - -2002-08-01 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-decode-quoted-printable): Conditionalize the - limit of search for quoted-printable. If we're using mm-decode - for MIME decoding, it's possible that `mimedecode' could mess our - message, so we only run a full search for quoted-printable parts - when not using gnus' mm-decode. When using mm-decode, mimedecode - can still help by handling the case of the whole message being - quoted-printable as opposed to only a part. - -2002-07-31 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-compose-insertion): Moved from mh-mime.el because - the pulldown menu were broken in XEmacs21 from this variable being - undefined. - -2002-07-28 Mark D. Baushke <mdb@gnu.org> - - * mh-utils.el (mh-show-mode): Use the default paragraph-start - rather than the inherited text-mode value. - -2002-07-28 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-duplicates): New hash table to track - duplicate messages. - (mh-thread-get-message): Remove debug code. - (mh-thread-canonicalize-id): Modified to handle messages without - message-id header. Such messages are given distinct copies of the - empty string as message-id. - (mh-thread-generate): The function was inadvertently rebuilding - the thread tree when message refiles and message deletes are - processed. The change here fixes that. Also code has been added to - keep track of duplicate message-id's. - (mh-thread-generate-scan-lines): Modified to print scan lines for - duplicate messages (that is messages with the same message-id). - (mh-thread-forget-message): Modified to maintain - mh-thread-duplicates. - -2002-07-22 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-parse-flists-output): Use delete-region - instead of kill-region. Otherwise the kill ring gets polluted. - -2002-07-16 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-thread-update-scan-line-map): New function to - refresh the stale scan lines. - (mh-thread-inc): Update old scan lines when mh-thread-inc is - called. Otherwise notations for deleted and refiled messages get - lost and the folder display gets out of sync with real mh-e state. - - * mh-mime.el (mh-mm-display-part): Call Gnus citation highlight - code when text part is displayed. Otherwise buttonized text parts - aren't correctly fontified when they are displayed. - -2002-07-15 Mark D. Baushke <mdb@gnu.org> - - * mh-utils.el (mm-decode): Use load for the Non-fatal depencency - on the mm-decode library. - * mh-mime.el (mm-decode, mm-uu, mm-view): Use load for the - Non-fatal depencencies on the mm-decode, mm-uu and mm-view - libraries. - -2002-07-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-require, mh-autoload): Remove these macros. - (mh-decode-mime): Initialized to t iff the mm-decode library is - present in the load-path. - * mh-mime.el (mh-require): Don't use it anymore. - -2002-07-15 Mark D Baushke <mdb@gnu.org> - - * mh-utils.el (mh-update-scan-format): Rewrite for compatibility - with Xemacs as replace-match appears not to have identical - functionality with FSF emacs. - (mh-scan-msg-format-regexp): Deleted. This regexp is now hardcoded - into the mh-update-scan-format function. - -2002-07-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el: Add message threading code. - - * mh-utils.el (mh-letter-thread-folder): New interactive function - that allows switching to threaded view from show buffer. - (mh-show-folder-map): Bound "F t" to call mh-letter-thread-folder. - (mh-goto-msg): Replace the function to not assume that messages - are sorted in the folder buffer. - - * mh-e.el (mh-folder-threaded-view-p): New buffer local variable - in the folder buffer that records whether threaded view is being - used currently. - (mh-scan-subject-regexp, mh-scan-format-regexp): Get font lock - working for threaded view as well. - (mh-regenerate-headers): Reset mh-folder-threaded-view-p to nil. - (mh-get-new-mail, mh-process-commands): Do incremental threading - if folder is in threaded view. - (mh-delete-scan-msgs): Update thread tables if folder is in - threaded view. - (mh-folder-map): Add "F t" as key binding for mh-thread-folder - - * mh-comp.el (mh-yank-cur-msg): Bug fix. mh-show-buffer is only - has a meaningful value in the folder buffer. - -2002-07-11 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-yank-cur-msg): Run only if mh-show-buffer - actually exists (otherwise a back-traceable error occurred). - - * mh-utils.el (mh-find-progs): Run PATH search only when mh-progs, - mh-lib and mh-lib-progs are not all already set. This allows the - user to set them using a simple setq prior to loading mh-e. This - is useful for implementation of mh-e on win32. Note that many - commands still call mh-find-path which also parses the mh_profile - file (that may still fail on win32), so this is still done often. - But it lets us change the mh_profile file and have mh-e see the - changed file without exiting emacs and starting over so I left - that in. - -2002-07-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-show): Fixed a bug in mh-index-show which - caused it to lose track of point when called from show buffer. - -2002-07-04 Mark D. Baushke <mdb@gnu.org> - - * Makefile: Add more information and common methods to allow both - GNU make and Berkeley make to properly build everything. - -2002-07-04 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-push-button): Bug fix for mime display with - mouse. Select show window before executing the mime display - functions. - -2002-07-01 Mark D. Baushke <mdb@gnu.org> - - * Makefile: Use a conditional variable assignment operator rather - than ifndef to let Makefile be used by both GNU make and Berkeley - make (or similar versions of make). This does not help Solaris - /usr/ccs/bin/make, but Solaris make has problems with the ifndef - syntax too. - -2002-07-01 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-search): Check for mh-decode-mime before - adding mh-mime-cleanup to kill-buffer-hook. - - * mh-mime.el (mm-destroy-parts): Add definition for old emacs. - -2002-06-30 Mark D Baushke <mdb@gnu.org> - - * mh-utils.el (mh-update-scan-format): Add documentation string. - (mh-scan-msg-format-regexp): Update the regexp to find %(msg). - (mh-set-cmd-note): When mh-scan-format-file is not t, dynamic - update of mh-cmd-note is wrong. Do not assume that - mh-scan-format-nmh and mh-scan-format-mh can be kept in lock-step - with mh-cmd-note via mh-set-cmd-note. The mh-scan-format function - is now where the updated mh-cmd-note value is put into the scan - format. - - * mh-e.el (mh-generate-new-cmd-note): Add documentation string. - (mh-scan-format): Use mh-update-scan-format to get updated copies - of mh-scan-format-nmh and mh-scan-format-mh to avoid format skew. - (mh-get-new-mail): Do not try to adapt mh-cmd-note unless - mh-scan-format-file is equal to t. - (mh-scan-format-nmh): No longer buffer local. - (mh-scan-format-mh): No longer buffer local. - -2002-06-30 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-max-msg-index): New variable to keep track - of max message index among search results. If mh-adaptive-cmd-note - is non-nil this is used to compute the width of the index field. - (mh-index-search): Keep track of max index seen while parsing the - search results and set it if mh-adaptive-cmd-note is non-nil. - (mh-index-find-max-width): New function to find the required width - of the message index field. - (mh-defun-index): Binding buffer local variables is bad, so don't - do that. - (mh-index-show): New argument display-headers-p decides whether - the message is displayed in raw form or not. - (mh-index-header-display): New interactive function bound to "," - which shows the message in raw form. - (mh-index-keymap): Add appropriate bindings for backtab and ",". - (read-from-string): Add ignore-errors around it so that the code - doesn't die when it gets unexpected input. - -2002-06-29 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-count-windows): This function works around the - lack of the window-list builtin function in emacs20. - -2002-06-29 Mark D Baushke <mdb@gnu.org> - - * mh-utils.el (mh-message-number-width): New function to scan - the last message of a folder and return its width. - (mh-adaptive-cmd-note): New variable, if Non-nil indicates that - mh-set-cmd-note should be called with the message width for the - folder. - (mh-cmd-note): Update documentation. - (mh-update-scan-format): Helper function for updating the - mh-scan-format-nmh and mh-scan-format-mh variables. - (mh-scan-msg-overflow-regexp): New variable to help find problem - messages after an inc. - (mh-scan-msg-format-regexp): New variable to find the old message - width in one of the mh-scan-format-nmh or mh-scan-format-mh - variables. - (mh-set-default-cmd-note): Replaced by mh-set-cmd-note. - (mh-set-cmd-note): New function to replace update mh-cmd-note - value. - - * mh-e.el (mh-regenerate-headers): If mh-adaptive-cmd-note is - non-nil, use mh-set-cmd-note on empty folder buffers. - (mh-make-folder): Ditto. - (mh-generate-new-cmd-note): New function to adapt the mh-cmd-note - to fit when mh-get-new-mail gets message number truncation. - (mh-get-new-mail): Maybe use mh-generate-new-cmd-note if - mh-adaptive-cmd-note is Non-nil. - -2002-06-29 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el (mh-speed-view): The display gets confused if the - cursor is in the show buffer when mh-speed-view is called. This is - a fix for that. - -2002-06-27 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-next-undeleted-msg): Get rid of optional arg - reverse-p. If there are no more undeleted messages the the point - remains at its original position and a message is produced (closes - SF #494304). - (mh-previous-undeleted-msg): Change similar to - mh-next-undeleted-msg. - (mh-next-msg, mh-refile-msg, mh-delete-msg): Backout previous - change. - (mh-folder-map): Bind "S-tab" and "K S-tab" to mh-prev-button. - - * mh-utils.el (mh-show-mode-map): Bind "S-tab" and "K S-tab" to - mh-letter-prev-button. - - * mh-mime.el (gnus-newsgroup-name): Initialize it to nil, so that - mm-uu-dissect doesn't cause error. - -2002-06-27 Mark D Baushke <mdb@gnu.org> - - * mh-utils.el (mh-cmd-note): Make buffer-local. Changes to this - variable should be made via the new mh-set-default-cmd-note - function. - (mh-set-default-cmd-note): New function to setq-default the - mh-cmd-note, mh-scan-format-mh and mh-scan-format-nmh values to - related values. - - * mh-e.el (mh-scan-format-mh): Make buffer-local. - (mh-scan-format-nmh): Ditto. - (mh-scan-good-msg-regexp): Use a more general regular expression - so that the width of message numbers, mh-cmd-note, may vary. - (mh-scan-deleted-msg-regexp): Ditto. - (mh-scan-refiled-msg-regexp): Ditto. - (mh-scan-cur-msg-number-regexp): Ditto. - (mh-scan-cur-msg-regexp): Ditto. - (mh-scan-subject-regexp): Ditto. - -2002-06-26 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-speed.el: Speedbar support code. - - * Makefile: Add mh-speed.el to MH-E-SRC. - - * mh-utils.el (mh-prompt-for-folder): Add speedbar hook if - speedbar is being used. - - * mh-funcs.el (mh-kill-folder): Add speedbar hook if speedbar is - being used. - - * mh-e.el (speedbar-autoloads): Autoload speedbar initialization - functions so that speedbar can find them. - -2002-06-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-grep-execute-search, mh-grep-next-result): Allow - grep to be used to search mail. - (mh-index-font-lock-keywords): Modified to avoid bug when using - lazy font-lock. - - * mh-e.el (mh-delete-msg, mh-refile-msg): Modify so that if no - undeleted (or unrefiled) message exists in the current movement - direction then try to find an undeleted (or unrefiled) message in - the opposite direction instead. - (mh-next-undeleted-msg): Added a new optional argument. If non-nil - search for undeleted message backwards if none exists in the - forward direction. - (mh-previous-undeleted-msg): Added an optional argument. If - non-nil search for undeleted message in the forward direction if - none exists in the backward direction. - (mh-next-msg): Optional argument to change direction if undeleted - messages are not found in the current direction. - - * mh-index.el (mh-cmd-note): Use mh-cmd-note instead of hardcoding - the index field size to 4. - - * mh-utils.el (mh-show-addr, mh-show-xface): New functions added - to do xface display and goto-addr interface to allow reuse by the - mime display code. - (mh-show-mode): Use mh-show-addr and mh-show-xface. Only add - mh-mime-cleanup to kill-buffer-hook if mime decoding is enabled. - (mh-modify): Use mh-letter-mode instead of mh-show-mode when - editing messages. - - * mh-mime.el (mh-mm-inline-message): Arrange for xface and - highlighting to work in forwarded messages. - -2002-06-23 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-yank-from-start-of-msg): Add 'attribution' option - to add an attribution line in mh-yank-cur-msg. - (mh-extract-from-attribution-verb): Verb to use for attribution - when a message is yanked by mh-yank-cur-msg. Provides a method - for setting a different language. - (mh-yank-cur-msg): Add support for 'attribution' option. - (mh-extract-from-attribution): Function to get the attribution - line, or the sender from the From: line in the current show buffer. - -2002-06-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-show): mh-display-msg was not being called - in the show buffer. This causes weird results on some mime messages. - - * mh-mime.el (gnus-newsgroup-charset): Defvar to avoid error in - pgp messages if gnus hasn't been used yet. - - * mh-comp.el (mh-letter-mode-map): Typo fix. - -2002-06-19 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-mml-secure-message-encrypt-pgpmime): Typo fix. - (compiler-warnings): Add autoloads to remove compiler warnings. - - * mh-index.el (autoload-fixes): Fix autoload forms. - -2002-06-18 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-letter-mode-map): Change binding of "\C-c\C-ma" - to mh-compose-insertion. Remove duplicate binding for "C-c\C-mf". - (compiler-warnings): Add defvar to remove compiler-warning. - -2002-06-18 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-menu): Conditionalize GPG function on - mh-gnus-pgp-support-p. - - * mh-mime.el (mh-mml-forward-message): s/subseq/substring/. - (mh-compose-forward): cut&paste typo: s/messages/message/. - (mml-minibuffer-read-file): autoload added. - (mml-minibuffer-read-description): autoload added. - (mml-insert-empty-tag): autoload added. - (mh-mml-secure-message-sign-pgpmime): Check mh-gnus-pgp-support-p. - (mh-mml-secure-message-encrypt-pgpmime): Check mh-gnus-pgp-support-p. - -2002-06-17 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-show-use-xface): Check for availability of - `uncompface' executable on system. - - * mh-mime.el (mh-compose-forward): New front end for both - mh-mml-forward-message and mh-mhn-compose-forw. - (mh-compose-insertion): New front end for both mh-mml-attach-file - and mh-mhn-compose-insertion. - (mh-mml-to-mime): New function. Compose mime message from mml - directives. - (mh-mml-forward-message): New function. Forward a message as - attachment. - (mh-mml-attach-file): New function. Attach a file to the outgoing - MIME message. - (mh-mml-compose-insert-p): New variable. Buffer-local variable to - know whether MIME insertion was done. Triggers an automatic call - to `mh-mml-to-mime' in `mh-send-letter'. - (mh-mml-secure-message-sign-pgpmime): New function. - Front end to mml-secure-message-sign-pgpmime. - (mh-mml-secure-message-encrypt-pgpmime): New function. - Front end to mml-secure-message-encrypt-pgpmime. - - * mh-comp.el (mh-send-letter): automatic call to `mh-mml-to-mime' - if mh-mml-compose-insert-p is set. - (mh-letter-mode-map): Add keys for new mh-mime functions above. - * mh-comp.el: Added autoloads for new mh-mime functions above. - -2002-06-17 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-show-use-xface): new defcustom to determine - whether to call external package x-face to display the x-face. - (mh-invisible-headers-show-xface): variable now defaults to value - of mh-show-use-xface. - (mh-show-mode): When mh-show-use-xface is t, invoke - external package x-face to display the x-face. - -2002-06-15 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-prev-button): New interactive function which moves - point to the previous mime button in the show buffer. - (mh-folder-mode-map): Bind M-TAB and K M-TAB to mh-prev-button. - - * mh-utils.el (mh-show-mode-map): Bind M-TAB and K M-TAB to call - mh-letter-prev-button (which is analogous to mh-prev-button). - (mh-gnus-pgp-support-p): New global variable to replace the - variable mh-recent-gnus-p. The name better describes what it is - used for. - - * mh-mime.el (mh-mime-display-part, mh-mime-display-single): Use - mh-gnus-pgp-support-p instead of mh-recent-gnus-p. - -2002-06-12 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-display-buttons-for-inline-parts): New - customizable variable. When non-nil inline parts have are - displayed with a button (that is initially expanded). - (mh-maybe-insert-newline): The function has been removed. - (mh-mime-display-single): Add code to display buttons for inline - parts. Reduce the insertion of extra newlines between inline parts - and also for pgp signature parts. - (mh-mm-display-part): The function has been rewritten and cleaned - up. There was a bug which could change the show buffer if the user - pressed C-g while a mime part was being displayed has been fixed. - (mh-press-button, mh-push-button): Use unwind-protect to make sure - that set-buffer-modified-p is always called after mime display. - (mh-mime-inline-part): The behavior of the function has been - changed so that it toggles the display of the raw bytes. - (mh-mime-display-security): Remove the display of too many - newlines. - (documentation): Remove most check-doc warnings. - - * mh-comp.el (mh-filter-out-non-text): Updated since whitespace - added around mime buttons have changed. - -2002-06-10 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-index.el (mh-index-last-search, mh-index-search): The default - prompt in mh-index-search has been removed since currently there - is no good way of reading "+" with mh-prompt-for-folder. - (mh-index-folder-mode, mh-index-show-mode): New major modes - derived from mh-folder-mode and mh-show-mode respectively. They - use a restricted keymap compared to the parent modes. - (mh-index-folder-face): New customizable face to display folder - names in the index buffer. - (documentation): Change two spaces after period back to one. - -2002-06-08 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-folder-toggle-mime-part): New interactive function - to control mime display from folder buffer. - (mh-folder-inline-mime-part): New interactive function to inline - raw mime part from folder buffer. - (mh-folder-save-mime-part): New interactive function to save mime - part from folder buffer. - (mh-folder-mode-map): Add keybindings for "K v", "K o", "K i" and - "K \t" to mh-folder-mode-map. - (mh-goto-next-button): Modified to allow searching for next button - that satisfies some condition. - (mh-folder-mime-action): Support function for - mh-folder-save-mime-part, mh-folder-inline-mime-part and - mh-folder-toggle-mime-part. - - * mh-utils.el (mh-show-mode-map): Modify keymap to add appropriate - bindings for "K v", "K o", "K i" and "K \t". - - * mh-index.el (documentation): Fix docs according to checkdoc - format. - -2002-06-07 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el, mh-funcs.el (Compiler): Remove (require 'view) and - instead add defvar for view-exit-action. - -2002-06-06 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (mh-insert-x-face): If transient-mark-mode is enabled - the call to mark returns error. So avoid using mark. - - * mh-index.el: Support for new interactive function - mh-index-search. - - * mh-e.el (mh-next-button, mh-goto-next-button): Refactor - mh-next-button so that the code may be reused by mh-index.el. - (mh-folder-map): Add key "F i" to call mh-index-search. - - * mh-utils.el (mh-recent-gnus-p): Fix documentation. - (mh-msg-folder, mh-display-msg): The new function mh-msg-folder - maps a MH folder name to the buffer displaying it. In normal - operation the two names are identical but they are different in a - folder buffer generated by index search. Minor modification to - mh-display-msg to use mh-msg-folder to enable mh-index-search to - reuse code. - (mh-show-mode-map): Add key "F i" to call mh-index-search. - - * Makefile: Add mh-index.el - -2002-06-05 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-message-menu): Add an entry for mh-modify. - -2002-05-31 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-decode-quoted-printable): Only decode if the - whole message is encoded. So restrict the search for the - content-transfer-encoding header to the headers of the message - itself. - - * mh-mime.el (mh-mime-display-alternative): Make sure that point - is moved after mm-display-part is called. - -2002-05-29 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (mh-mime-display-single): Fix the logic that - determines when an attachment is buttonized. For inline parts that - can't be displayed a button is now created. - -2002-05-29 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-regenerate-headers): Fix an error in which the - mh-mode-line-annotation was not being set properly. - - * mh-mime.el, mh-utils.el (compilation): Macros mh-require and - mh-autoload are used to make sure that emacs20 doesn't croak when - it tries to load non-existent mm-* files. - (mh-decode-mime): Make it default to nil for Emacs major version - below 21. - -2002-05-28 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-e.el (mh-regenerate-headers): Generalize the function to - handle multiple ranges. - -2002-05-25 Satyaki Das <satyaki@theforce.stanford.edu> - - * compilation: Reduce use of eval-when-compile so that load-path - is not changed if lisp files are loaded without compilation. Small - changes were made to Makefile, mh-comp.el mh-e.el, mh-funcs.el, - mh-seq.el, mh-utils.el - - * mh-e.el (mh-next-button, mh-folder-mode-map): New interactive - function to advance point to next MIME button. It is bound to TAB. - - * mh-utils.el (mh-letter-next-button, mh-show-mode-map): New - interactive function mh-letter-next-button has been added to - advance point to the next MIME button. It is bound to TAB. - - * mh-mime.el (comments): Added some comments. - -2002-05-24 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-mime.el (compilation): Replace (eval-when-compile ...) by - (eval-when (compile) ...) to remove a bug when mh-e is loaded - without compilation. - -2002-05-23 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-comp.el (compilation): Some code was rearranged to avoid - compiler warnings. - - * mh-e.el (compilation): Code rearrangement and extra autoloads to - remove compiler warnings - (mh-quit): Add call to mh-destroy-postponed-handles to remove - handles that are associated with external viewers. Also fixed a - bug that I accidentally introduced by adding an extra line when - cut and pasting my changes. - - * mh-func.el (compilation): Code rearrangement to remove compiler - warnings. - - * mh-mime.el (compilation): Code rearrangement to remove compiler - warnings. - (mh-defun-compat): New macro to define to useful functions that - aren't present present in old Gnus. - (mh-destroy-postponed-handles): New function to cleanup handles - that are associated with external viewers. - (mh-handle-set-external-undisplayer): New function to replace - mm-handle-set-external-undisplayer. It associates handles for - external viewers with the folder buffer. These are released when - the user quits the folder. - (mh-mime-display, mh-press-button, mh-push-button): Hook in - mh-handle-set-external-undisplayer. - (mh-maybe-insert-newline): New function to avoid inserting too - many newlines between mime parts. - (mh-mm-display-part): Workaround for Gnus bug which causes new - lines to be inserted when images are shown inline. - (mh-mime-display-security): Cut down on newlines inserted. - - * mh-pick.el (compilation): Code rearrangement to remove compiler - warnings. - - * mh-seq.el (compilation): Code rearrangement to remove compiler - warnings. - (comments): Remove @SD from comments. - - * mh-utils.el (compilation): Slight code rearrangement. - (mh-defun-show-buffer): Fix documentation so that the first line - is not too long as was the case earlier. Use - mh-previous-window-config to remember where the cursor should - return functions like mh-reply. - (mh-display-msg): Initialize handles data-structure for the folder - buffer so that postponed handles can be added to it. - (mh-add-msgs-to-seq): Always keep messages in the sequences - sorted. This removes some unexpected behavior when working with - sequences that go out of sync with the corresponding MH sequences. - (mh-canonicalize-sequence): New function to sort and remove - duplicates from mh-e sequence. - -2002-05-21 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (require): Load mm-decode.el here so that - mm-inline-media-tests is properly initialized. - - * mh-comp.el (mh-yank-cur-msg): Don't try to remove the displayed - mime parts when yanking the message. This also fixes the problem - of regions not being respected during the yank. - -2002-05-20 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (compiler-warnings): Some code was rearranged to - remove all compiler warnings. - (mh-decode-mime): New defcustom to control whether - mime attachments are shown using Gnus. - (mh-globals-hash): New global variable which maps a given buffer - to the corresponding mime data structures. - (mh-recent-gnus-p): New global variable which checks if Gnus is - recent enough so that PGP/GPG encrypted messages can be handled. - (mh-mm-inline-media-tests): Tests to determine whether a mime part - can be shown inline. - (mh-gnus-article-highlight-citation): Shadow the Gnus function, - gnus-article-add-button before gnus-article-highlight-citation is - called. This prevents the insertion of useless buttons in the - message. - (mh-show-mode): Don't set font-lock-support-mode to nil. Modify - kill-buffer-hook to call mh-mime-cleanup. - (mh-modify): Only the edit buffer is shown. - (mh-display-msg): Add call to mh-mime-display, mh-display-smileys, - mh-display-emphasis when mh-decode-mime is non-nil. - - * mh-mime.el (mh-buffer-data): New structure to keep track of - per-buffer mime information. - (compiler-warnings): Some code was rearranged to get rid of all - compiler warnings. - (mh-graphical-smileys-p): New defcustom which controls whether - graphical smileys are shown. - (mh-graphical-emphasis-p): New defcustom for graphical emphasis. - (mh-max-inline-image-width, mh-max-inline-image-height): New - defcustoms for inlining image. - (gnus-local-map-property, mm-merge-handles): Copy utility - functions for use with version of Gnus that ships with Emacs21.1. - (mh-mime-cleanup): New function to free mime data-structures. - (mh-add-missing-mime-version-header): New function to add missing - Mime-Version header if a Content-Type header exists. - (mh-display-smileys): New function to show graphical smileys. - (mh-display-emphasis): New function to show graphical emphasis. - (new-globals): New variables mh-mime-button-* and - mh-mime-security-* were added to control mime buttons. - (mh-mime-display): New function to display mime messages. The - functions mh-mime-display-part, mh-mime-display-alternative, - mh-mime-display-mixed, mh-mime-part-index, mh-small-image-p, - mh-mime-display-single, mh-insert-mime-button, mh-mm-display-part, - mh-press-button, mh-push-button, mh-mime-save-part, - mh-mime-inline-part, mh-widget-press-button, mh-mm-inline-message, - mh-mime-display-security, mh-mime-security-show-details, - mh-mime-security-press-button and mh-insert-mime-security-button - were added to support mh-mime-display. - - * mh-e.el (mh-header-display): Bind mh-decode-mime to nil when - mh-show-msg is called, so that mime isn't decoded when headers are - displayed. - (mh-quit): The show buffer is killed instead of invalidating and - burying it. - - * mh-comp.el (mh-yank-cur-msg): Filter out the mime buttons from - the yanked message. - (mh-filter-out-non-text): New function to filter out attachments - from message being yanked. - -2002-05-20 Bill Wohler <Bill.Wohler@openwave.com> - - * mh-utils.el (mh-invisible-headers-show-xface): First sentence of - docstring was not entirely on first line so was truncated in - customize and help buffers. Reworded so first sentence could fit - within 80 columns per checkdoc recommendation. - (mh-defun-show-buffer): Reworded per checkdoc recommendations. - Removed @SD while I was in there. - -2002-05-18 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-seq.el (mh-narrow-to-seq): This function now removes the - current message notation in the folder. Otherwise, two current - message notations may be present after mh-widen is called. Also - mh-copy-seq-to-eob is called instead of mh-copy-seq-to-point since - the latter has a bug. - (mh-copy-seq-to-point): This function has a tricky problem. It - calls mh-map-to-seq-msgs which uses mh-goto-msg. mh-goto-msg - assumes that the folder is sorted (since it uses binary - search). The assumption isn't true, so it may not copy all the - messages. Since this function is not used any more it has been - removed. - (mh-copy-seq-to-eob): This function is a specialized (and - hopefully correct) replacement for mh-copy-seq-to-point. - -2002-05-17 Satyaki Das <satyaki@theforce.stanford.edu> - - * mh-utils.el (mh-gnus-article-highlight-citation): Workaround for - problem caused by low value of recursive-load-depth-limit in - Emacs21.1 and CVS version of Gnus. - (mh-show-mode-map): New keymap variable to facilitate use of - summary commands from the show buffer. - (mh-show-folder-buffer): New local variable which keeps track of - the folder-buffer corresponding to the message being shown. - (mh-defun-show-buffer): New macro to convert interactive functions - callable in the summary buffer to interactive functions callable - in the show buffer. - (mh-show-mode): Make buffer read-only and use mh-show-mode-map as - keymap (closes SF #527946). - (mh-modify): New interactive function to edit a message in-place. - - * mh-e.el (mh-goto-cur-msg): Add an optional argument, - minimal-changes-p. If non-nil, the function will just change - the point to current message and do not change folder display. - (mh-folder-mode-map): Make "M" call mh-modify. - -2002-05-07 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-invisible-headers-show-xface): New defcustom - variable. If non-nil, the X-Face header line will be excluded from - the variable `mh-invisible-headers'. Set this when using a - package such as x-face-el to display X-Face icons in mh-show-mode. - This variable's setting will eventually be set automatically when - mh-e does its own X-Face decoding (or this variable will be replaced - by one telling mh-e to decode the X-Face). We may not ship the - next release with this variable. - -2002-05-07 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-x-face-file): New defcustom variable. File name - containing the encoded X-Face string to insert in outgoing mail. - (mh-insert-x-face): New function. Appends an X-Face field to the - header, but only if it doesn't already exist and if 'mh-x-face-file' - is non-nil and points to an existing file. - (mh-send-letter): Invoke mh-insert-x-face. - -2002-04-29 Mike Kupfer <m.kupfer@acm.org> - - * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Check - whether XEmacs region is actually active (needed at least for 21.1). - [Patch committed by psg] - -2002-04-29 Mike Kupfer <m.kupfer@acm.org> - - * mh-utils.el (mh-prompt-for-folder): Remove "default" argument - from completing-read as XEmacs-21.1 doesn't have it (21.4 does - however) and using the argument adds no functionality. - [Patch committed by psg] - -2002-04-11 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Add support for - XEmacs to act on selected region when active. - -2002-04-10 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): XEmacs fix; Add - check to see if mark-active is bound, because Mandrake Linux include - XEmacs initialization code that binds transient-mark-mode. This - fix gets around a problem in Mandrake only. It wasn't a problem - on XEmacs generally. Fixes SF #541915. - -2002-04-08 Bill Wohler <wohler@newt.com> - - Released mh-e version 6.1. - - * mh-e.el (mh-folder-unseen-seq-name): Use "mhparam -component - Unseen-Sequence" command and "Unseen-Sequence: \\(.*\\)$" regexp - to increase robustness. - (mh-folder-unseen-seq-list): Use `expand-file-name' as - `mh-expand-file-name' isn't needed and the former saves function - call. - (Version, mh-version): Updated for release 6.1. - -2002-04-08 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-unseen-seq-list): Specify mh-progs path in - call to mark command. Fixes a bug in which unseen messages - weren't highlighted if "mark" wasn't in the path. - -2002-04-07 Bill Wohler <wohler@newt.com> - - * MH-E-NEWS: Updated for release 6.1. - - * README: Updated for release 6.1. Updated verbiage about reading - MH-E-NEWS. - - * mh-comp.el, mh-e.el, mh-funcs.el, mh-mime.el, mh-seq.el, - mh-utils.el, mh-xemacs-compat.el: Updated copyright in files - modified this year. - - * mh-xemacs-compat.el: Put Author field back in, but set to FSF. - - * mh-comp.el, mh-funcs.el, mh-mime.el, mh-seq.el, - mh-utils.el: Fixed all checkdoc errors, except for no - documentation, and documentation in comments. Also removed the- - prefix from certain local variables. - - * mh-e.el: Fixed all checkdoc errors, except for no documentation, - and documentation in comments. Also removed the- prefix from - certain local variables. - (mh-folder-unseen-seq-name): Refactored to make default sequence - name more explicit and to handle undefined Unseen-Sequence MH - profile entry better. - -2002-04-02 Peter S Galbraith <psg@debian.org> - - * mh-e.el: 'defvar mh-folder-unseen-seq-name' called a function to - set it's value, and this happens also on byte-compilation (where - it can fail if the user's MH environment is not setup correctly). - I now set the value of mh-folder-unseen-seq-name at runtime when I - first need it. This should fix Debian bugs - http://bugs.debian.org/140232 and http://bugs.debian.org/140817 - -2002-03-25 Peter S Galbraith <psg@debian.org> - - * mh-utils.el: remove "(require 'mh-e)" since mh-utils.el should - be at the bottom of the dependency tree. - * mh-e.el (mh-folder-unseen-seq-name): Make sure mh-progs is set - and use it as path to mhparam command in call-process. - -2002-01-23 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-font-lock-keywords): Add call to - mh-folder-font-lock-unseen to fontify unseen messages in bold. - (mh-folder-unseen-seq-name): Provide name of unseen sequence from - mhparam. Used as default for variable of same name. - (mh-folder-unseen-seq-list): Returns a list of unseen messages - numbers for current folder. - (mh-folder-unseen-seq-cache): Cache variable to hold list of - unseen message numbers while font-lock iterates. This variable is - buffer-local. - (mh-folder-font-lock-unseen): Returns unseen message lines to - font-lock one by one. - -2002-01-15 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-prefix-string): Wrap a - "(let ((zmacs-regions nil))" around (mark) so it works in XEmacs. - Bug reported and fix suggested by Will Partain <partain@dcs.gla.ac.uk> - Indeed, this is how it appears in XEmacs-21's mh-comp.el. - -2001-12-16 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-forward): Move the assignment to `fwd-msg-file' - to before the assignment to `draft' as the later changes buffers - and invalidates `mh-seq-list' (which is used in a function called - by (mh-seq-to-msgs)). Resolves SF #489448. - - * mh-utils.el: Add defcustoms for `mh-temp-folders-buffer' and - `mh-temp-sequences-buffer'. - - * mh-e.el (mh-quit): If they exist, kill 'mh-temp-buffer, - 'mh-temp-folders-buffer and 'mh-temp-sequences-buffer when - quitting. - - * mh-funcs.el (mh-list-folders): Use `mh-temp-folders-buffer' - (a defcustom initialized to "*Folders*") for folder listing. Put - into view mode and set it up to kill the buffer when exiting view - mode. - - * mh-seq.el (mh-list-sequences): Use `mh-temp-sequences-buffer' - (a defcustom initialized to "*Sequences") for sequences listing. - Put into view mode and set it up to kill the buffer when exiting - view mode. - -2001-12-16 Bill Wohler <wohler@newt.com> - - Released mh-e version 6.0. - - * MH-E-NEWS: Be a little more specific about incompatible changes. - Added info about outdated manual. - Removed variables in mh-scan regexp table that did not exist in - 5.0.2. - Added helpful documentation about finding relevant variables - containing regexps to mh-scan-format-file's description. - - * mh-e.el (mh-scan-format-file): Added information about getting a - list of regexp variables that you'll need to change if you - customize your scan's output. - (mh-folder-mode): Added documentation about `mh-scan-format-file' - for those users who modify their scan formats. - - * README: New file. Describes packages and provides simple - installation instructions. - - * Makefile (clean, dist, install-emacs): Replaced $(RM) with rm - -rf (closes SF #488661). - -2001-12-14 Bill Wohler <wohler@newt.com> - - Released mh-e version 5.0.93. - - * Makefile (MH-E-SRC): Added mh-xemacs-compat.el. - (MH-E-IMG): Added .pbm images for all. Removed mail_ prefix from - all. - (MH-E-IMG2): New variable to hold images in mail sub-directory. - (dist): Updated target to make mail sub-directory and copy - MH-E-IMG2 images there. - - * mh-xemacs-compat.el: Modified docs per GNU coding conventions. - - * mh-e.el: Reorganized variables having to do with the scan line. - Moved some random variables that were interspersed out of the - middle. Moved `mh-scan-format-file' first and let the variables - flow from there. - - As the number of variables increases, it is becoming important to - organize the mh-e namespace. Several variables having to do with - the format of scan lines were renamed, as follows: - (mh-good-msg-regexp): Renamed to mh-scan-good-msg-regexp. - (mh-deleted-msg-regexp): Renamed to mh-scan-deleted-msg-regexp. - (mh-refiled-msg-regexp): Renamed to mh-scan-refiled-msg-regexp. - (mh-valid-scan-line): Renamed to mh-scan-valid-regexp. - (mh-cur-msg-number-regexp): Renamed to mh-scan-cur-msg-number-regexp. - (mh-cur-msg-line-regexp): Renamed to mh-scan-cur-msg-regexp. - (mh-scan-rcpt-addr-regexp): Renamed to mh-scan-rcpt-regexp. - (mh-scan.font-lock-regexp): Renamed to mh-scan-format-regexp. - (mh-folder-scan-font-lock-face): Renamed to - mh-folder-scan-format-face. - (mh-folder-cur-msg-line-face): Renamed to mh-folder-cur-msg-face). - -2001-12-13 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-msg-number-regexp): Renamed to - mh-scan-msg-number-regexp. - (mh-msg-search-regexp): Renamed to mh-scan-msg-search-regexp. - - * Corrected typos, quoted variables in doc strings, and made minor - wording changes in docs. - -2001-12-13 Peter S Galbraith <psg@debian.org> - - * mh-xemacs-compat.el: defalias 'match-string-no-properties to - 'match-string for XEmacs. I've seen a better function for this - that actually removes text properties, but this will do for now. - - * mh-utils.el (mh-decode-quoted-printable): deactivate-mark not - bound in XEmacs. - - * mh-xemacs-compat.el: GNU Emacs Functions needed by XEmacs. - New file. - * mh-e.el: (require 'mh-xemacs-compat) when running XEmacs. - -2001-12-12 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-send-letter): function local-variable-p needs two - arguments in XEmacs. - (mh-send-letter): sendmail-coding-system not bound in XEmacs. - (mh-send-letter): default-buffer-file-coding-system not bound in - Xemacs. - - * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): - transient-mark-mode not bound in XEmacs. The feature of - operations made on all messages in the selected range when - transient-mark-mode is on doesn't work in XEmacs. - - * mh-e.el, mh-utils.el: Conditionalize calls to - 'add-to-list 'facemenu-unlisted-faces for XEmacs. - -2001-12-11 Jeffrey C Honig <jch@honig.net> - - * mh-e.el (mh-scan-format): Add `mh-scan-format-file' variable to - specify the scan format string or file to use. Define formats for - MH and nmh that are compatible with the standard format, but - provide hints for font-lock. Define (mh-scan-format) for use by - (mh-regenerate-headers) and (mh-get-new-mail) to specify the args - necessary to inform the scan program which scan format string or - file to use. - -2001-12-07 Peter S Galbraith <psg@debian.org> - - * mh-e.el (scan.font-lock): New format file documented in comments. - (mh-scan.font-lock-regexp): Adapted to new format. - (mh-folder-font-lock-keywords): Use new format. - - * mh-e.el (page-down.xpm): Icon renamed from nextpage. - - * mh-utils.el (mh-decode-quoted-printable): Bug fix. Better check - on what actually is a quoted-printable attachment. - -2001-12-06 Eric Ding <ericding@alum.mit.edu> - - * mh-mime.el (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp): - require mailcap.el here rather than using autoload at top of - mh-mime. - (mh-file-mime-type): get rid of unused variables (why were they - there to begin with?) - -2001-12-06 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-cur-msg-number-regexp, mh-cur-msg-line-regexp): - mh-cur-scan-msg-regexp splits into these two variables. - The whole-line fontification is disabled, but easily restored by a - user (although it could be a defcustom with choices DISABLED or - the correct regexp?) - (mh-folder-cur-msg-line-face): mh-folder-current-msg-face renamed - to this. - (mh-folder-cur-msg-number-face): mh-folder-current-face renamed to - this. - - * cabinet.xpm: Revert to rescan icon name. - * mh-e.el (mh-folder-tool-bar-map): s/cabinet/rescan/ - - * mh-e.el (mh-folder-font-lock-keywords): Reorder and tweak such - that current message line highlight doesn't mess up other highlights. - -2001-12-05 Eric Ding <ericding@alum.mit.edu> - - * mh-utils.el (mh-show-from-face): Change mh-show-from-face to - cyan on dark backgrounds; through a series of changes, it had - become the same color as mh-show-subject-face! - -2001-12-05 Bill Wohler <Bill.Wohler@openwave.com> - - * mh-e.el, mh-utils.el: Fixed typos in face definitions, and made - a couple of small doc string tweaks while I was in there. Peter, - if you don't agree, let me know and I'll back them out. I thought - the "mh-e" in the text was redundant since the variables start - with "mh"; I was also thinking ahead to how the documentation may - read. - -2001-12-05 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-cur-scan-msg-regexp): Match 0 is the whole line. - (mh-folder-current-msg-face): New face with only a background - settings, used in font-lock for the current message. - (mh-folder-font-lock-keywords): Use mh-folder-current-msg-face for - mh-cur-scan-msg-regexp. - - * mh-utils.el (mh-show-from-face): Use red3 instead of red for - light backgrounds. It's not as bright on the eyes. - (mh-show-subject-face): copy from mh-folder-subject-face instead. - Makes the look consistent with folder-mode. - - * mh-e.el (mh-folder-subject-face): Moved to mh-utils since we - need it to copy to mh-show-subject-face. - -2001-12-05 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-folder-mode-map): Moved `mh-extract-rejected-mail' - from "a" to "E". Better mnemonic, nicer to folks used to using a - for `mh-reply'. - -2001-12-04 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-folder-map): Added "S" for `mh-sort-folder'. - -2001-12-04 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-subject-face et al.): Yet another attempt at - colours for folder-mode. Still themed, but fewer and darker - colours (Blame Eric this time!). I'll get to underlining tomorrow - night. - - * mh-e.el (mh-folder-tool-bar-map): Renamed all icons so they - don't have the word mail in them. Also generated a pbm format of - each icon for users without XPM support conpiled into Emacs. - -2001-12-04 Eric Ding <ericding@alum.mit.edu> - - * mh-utils.el (mh-show-font-lock-keywords): Use - mh-header-subject-font-lock instead of regexp for subject headers, - which may go multiple lines. - (mh-header-subject-font-lock): New function. - Fix typos (hightlight -> highlight). - -2001-12-04 Eric Ding <ericding@alum.mit.edu> - - * mh-e.el: changes to face colors on dark backgrounds. - (mh-folder-followup-face): change to LightGoldenRod. - (mh-folder-date-face): change to snow3. - (mh-folder-msg-number-face): change to snow4. - -2001-12-04 Bill Wohler <wohler@newt.com> - - Released mh-e version 5.0.92. - - * mh-utils.el (gnus-cite-face-list) - (mh-gnus-article-highlight-citation): Don't autoload. Revert to - requiring in `mh-gnus-article-highlight-citation' as before. With - the autoloads, if you ran mh-e before gnus, you'd get an undefined - gnus variable when viewing an article in gnus. Go figure. - -2001-12-03 Bill Wohler <wohler@newt.com> - - Released mh-e version 5.0.91. - - * MH-E-NEWS: Removed info about bumping up `max-specpdl-size' now - that workaround has been implemented. - - * Makefile (MH-E-OBJ): New variable to hold .elc files. - (all): Just compile. - (clean): New target that blows away MH-E-OBJ. - (dist): Added $(MH-E-OBJ) to tarball. - - - Attempt to quiet compilation errors to a dull roar. - - * mh-e.el: Require easymenu, added autoload of info. - (mh-smail, mh-smail-other-window): Comment says these were needed - by Emacs 18. Out! - - * mh-utils.el: Don't require sendmail, but require mh-e. - Moved autoloads to top of file, and autoload gnus-cite and - sendmail too. - - * mh-pick.el: Require easymenu. Remove cond on - `easy-menu-define'--it exists. - - * mh-mime.el: Autoload mailcap. - - * mh-comp.el: Require mh-e and easymenu, moved autoloads to top of - file. - - - * Makefile: (EMACS): New constant to hold emacs calling sequence. - (install): Renamed to install-emacs. - (compile): New target to compile all files. - (dist): Make dependent on compile. - (import): Renamed to import-emacs. - (%.elc): New implicit rule to compile elisp files. - - * mh-e.el (mh-thread-map): Added "Td" for - mh-delete-subject-thread. - -2001-12-03 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-tool-bar-map): Change tooltip for exec icon. - - * mh-e.el (mh-folder-subject-face): Change to IndianRed1. - (mh-folder-followup-face): Change to IndianRed. - (mh-folder-deleted-face): Use sedate face instead of bright one. - -2001-12-03 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-invisible-headers): Increase size of - `max-specpdl-size' locally to work around insufficient default. - (mh-invisible-headers): Added X-Info and X-VSMLoop (NTMail). - -2001-12-03 Jeffrey C Honig <jch@honig.net> - - * mh-utils.el (mh-find-progs): Searches should not stop if the - strings are not found, there is error detection at the end of the - routine (closes SF #488231). - -2001-12-02 Bill Wohler <wohler@newt.com> - - * MH-E-NEWS: Added info about bumping up `max-specpdl-size'. - - * Makefile (MH-E-IMG): New variable that contains images used by - mh-e. Add these files to release. - - * MH-E-NEWS: Second draft of mh-e 6.0 (was 5.1) release notes. - - * mh-e.el (mh-folder-updated-hook): Reworded to avoid ambiguity. - Is the hook called when you type `d' or when you type `x'? - (mh-unseen-updated-hook): Reworded to be consistent with - `mh-folder-updated-hook.' - - * mh-utils.el (mh-recenter): Accepted Gerd's change which is - evaluated at compile time. - -2001-12-02 Bill Wohler <wohler@newt.com> - - * mh-e.el Major, major keymap changes. The specific changes are - listed below, but view the sources, or use "C-h m" in MH Folder - mode for the complete list. - - Use of sub-keymaps inspired by gnus. The changes tripped me up at - first too, but after about 5 minutes of shock (which is to be - expected, I've been using the old keybindings for 16 years), I - honestly found the new bindings to be nice indeed. It will also - provide flexibility to allow for future functionality. I hate to - do this on the eve of the beta release, but you asked for it! It's - likely I'll have to pull an Eric and back this change out, but if - we can live with pink subjects, this can't be so bad ;-). - Question: will the users revolt? If they do, I suppose we can - release 6.0.1 the next day ;-). - (mh-folder-map, mh-sequence-map, mh-extract-map, mh-digest-map): - New keymaps which start with F, S, X, and D, respectively. The - mhstore commands can go in the mh-extract-map eventually. - (mh-thread-map): Renamed from mh-folder-thread-map. - - Keymap changes and rationale. The sub-keymaps allowed some - consistency (e.g., esp. with l(ist) and k(ill). - - e Deleted. Already have x. Now used by mh-edit-again. - a Deleted. Already have r. Now used by mh-extract-rej.. - j Deleted. Already have g. - - M-a -> e Better mnemonic. Matches rmail. Frees movement cmd. - M-e -> a Try `a'gain! - - M-f -> Fv Frees movement command - M-f -> Ff Alias (keep?) - M-f -> Fo Alias (keep?) - M-k -> Fk No reason but to keep with folder commands - M-l -> Fl No reason but to keep with folder commands - M-p -> Fp No reason but to keep with folder commands - M-r -> Fr Frees movement command - M-s -> Fs No reason but to keep with folder commands - M-u -> Fu No reason but to keep with folder commands - - M-% -> Sd Better mnemonic - M-# -> Sk Better mnemonic - M-q -> Sl Better mnemonic - C-xn -> Sn Frees up standard key binding - % -> Sp Better mnemonic for putting a message in a sequence - ? -> Ss Shows sequences that message is in - C-xw -> Sw Frees up standard key binding - - M-n -> Xs Better mnemonic (shar) - M-n -> Xu Better mnemonic (uuencode) - - M-SPC -> DSPC Frees mark command - M-\177 -> D\177 No reason but to keep with digest commands - M-b -> Db Frees movement command - -2001-12-01 Bill Wohler <wohler@newt.com> - - * mh-e.el: Use gnus style of keymaps. Now requires gnus-util. - (mh-folder-thread-map): New map, created by gnus-define-keys. - Reached when typing T in mh-folder-mode-map. Moved threading - functions to this new keymap so we can use dired again. - (mh-folder-mode-map): Defined by gnus-define-keys. Otherwise than - the new threading functions, no changes to the UI were made at - this point--saving that for the next check-in. - - * mh-pick.el (mh-pick-mode-map): Use gnus-define-keys. Now - requires gnus-util. - - * mh-comp.el (mh-letter-mode-map): Use gnus-define-keys. Now - requires gnus-util. - -2001-12-01 Jeffrey C Honig <jch@honig.net> - - * mh-e.el: Update the documentation for the regexps used by - `mh-folder-font-lock-keywords' to specify how many parethesized - expressions they are expected to have and what those expressions - are expected to match. - -2001-12-01 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-folder-mode): Removed iteration of key bindings, - \\{mh-folder-mode-map} suffices. Removed variable documentation - also as this is already out of date and a maintenance hassle. - Reference new mh customization group instead. - - * mh-comp.el (mh-letter-mode): Ditto. Also added new information - about MIME directives getting processed automatically if inserted - via mh-e commands. - - * mh-pick.el (mh-pick-mode): Edited documentation so it reads like - the other modes. - - * mh-e.el (mh-compat-quit): Deleted obsolete and unused function. - Comment in this function said that `b' shouldn't be used for - burst-digest, as it is used for `back' in info, less, and rn. But - what does `back' mean in MH Folder? I suppose if you visit a - folder, you would go `back' to the original folder. Hmmm, I guess - we'll leave the `b' binding alone for now. - - * mh-utils.el: Moved some of the variable comments to the first - column so they wouldn't wrap in such an ugly fashion. - (mh-showing-mode): Renamed variable and function from mh-showing - to conform with minor mode conventions. Added optional arg to - function so it would behave like a normal minor mode: no or nil - arg toggles mode, 0 arg turns off, non-nil turns on. It also turns - out that desktop-create-buffer would barf when recreating mh-e - buffers because it was calling mh-show with an arg. - (mh-show-mode): Use define-derived-mode to simplify definition a - *lot*. - (mh-set-mode-name): Deprecated by use of define-derived-mode. - Removed. - - * mh-pick.el (mh-pick-mode): Use define-derived-mode to simplify - definition a *lot*. - - * mh-e.el (mh-scan-prog): Removed message about "Buffer local" as - this message will appear in a future version of Emacs. - (mh-inc-folder): mh-showing renamed to mh-show-mode and made a - real minor mode. - (mh-folder-mode): Use define-derived-mode to simplify definition a - *lot*. - - * import-emacs (release): Change `(none)' to `mainline' so import - doesn't choke after running `cvs up -A' on Emacs. - (COPYING): Moved from $EMACS_HOME/etc to $EMACS_HOME. - (cvs update): Whoops! Forgot the second join (-jemacs). - make import works fine again. - -2001-11-30 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-font-lock-keywords): Change order of - font-lock patterns such that subject body text doesn't get date - fontification. - - * mh-e.el (mh-scan-subject-regexp): Bug fix. Remove a dot. - scan.font-lock users have to setq it separately. - -2001-11-30 Eric Ding <ericding@alum.mit.edu> - - * mh-utils.el (mh-clean-msg-header): Go back to using - mh-delete-line. Using invisible text property is nicer in some - ways, but winds up with somewhat mysterious behavior should user - kill/yank stuff from the header (i.e., text gets yanked invisibly - and won't be seen by user until file is reloaded). - -2001-11-29 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-page-msg): Use mh-next-direction to page in the - right direction. - -2001-11-29 Jeffrey C Honig <jch@honig.net> - - * mh-e.el (mh-scan-folder): Fix logic to not attempt to go to - the current message if there are no messages in the folder. - -2001-11-29 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-font-lock-subject): New fontifier function - for subject lines in folder-mode - (mh-scan-followup-regexp): Deleted obsolete regexp. Use - mh-scan-subject-regexp instead. - (mh-folder-font-lock-keywords): Use mh-folder-font-lock-subject - instead of obsolete mh-scan-followup-regexp variable. - (mh-folder-date-face, mh-folder-msg-number-face): - (mh-folder-subject-face, mh-folder-followup-face): - Now defined as proper faces instead of copied from font-lock - faces. - - * mh-mime.el (mh-media-type-regexp): New variable. Regexp matching - valid media types used in MIME attachment compositions. - (mh-file-mime-type): Use mh-media-type-regexp instead of - hard-wiring its value. - - * mh-utils.el (mh-show-unquote-From): New function to unquote - "^>From" in mh-show-mode (not saved to disk). - (mh-show-mode): Call mh-show-unquote-From. - -2001-11-29 Eric Ding <ericding@alum.mit.edu> - - * mh-utils.el (mh-clean-msg-header): Use mh-make-line-invisible - rather than mh-delete-line. - (mh-make-line-invisible): New function to make line(s) invisible - rather than deleting line(s). Optional argument specifies number - of lines to delete. - (mh-show-msg): screen-height has been deprecated; use no more. - (mh-notate): screen-width has been deprecated; use no more. - -2001-11-29 Jeffrey C Honig <jch@honig.net> - - * mh-utils.el: (mh-find-progs): Change mh-find-progs to rely on - the existence of mhparam. The location of mhparam is used to find - `mh-progs'. It uses the libdir and etcdir to find the - `mh-lib-progs' and `mh-lib' directories. If etcdir doesn't return - anything we assume `mh-lib-progs' is the same as `mh-lib' and that - we are using MH instead of nmh. - -2001-11-29 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-scan.font-lock-regexp): Change docs to reflect that - second paren expression is the user match. - (mh-folder-font-lock-keywords): Change from 1st to 2nd parenthesized - expression to match user name, after Jeffrey's change to the regexps. - -2001-11-29 Bill Wohler <Bill.Wohler@openwave.com> - - * mh-utils.el (mh-clean-message-header): Default is now t. - (mh-invisible-headers): Padded out to contain all the headers that - the mh-e developers don't like to see (closes SF #415759). - -2001-11-28 Bill Wohler <Bill.Wohler@openwave.com> - - * mh-comp.el (mh-rejected-letter-start): Added MIME MDN. While - this allows mh-extract-rejected-mail to strip the start of the - MDN, there is still a closing MIME marker at the end. This should - be cleaned up eventually. - -2001-11-28 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-seq-tool-bar-map): New tool-bar used for - folder-mode when narrowed to sequence. - * mh-seq.el (mh-narrow-to-seq): Set tool-bar to - mh-folder-seq-tool-bar-map. - (mh-widen): Set tool-bar to mh-folder-tool-bar-map. - * widen.xpm: New icon used in mh-folder-seq-tool-bar-map. - - * mh-mime.el (mh-file-mime-type): Much better check on validity of - 'file' output. - - * mh-e.el (mh-scan-subject-regexp): New regexp variable for - subject string in folder mode. Used to extract subject sequence, - and will be used for font-lock soon. - * mh-seq.el (mh-subject-thread-to-sequence): More robust code by - using mh-scan-subject-regexp, allows users with non-standard - scan format to use subject sequences. - - * mh-comp.el (mh-letter-fill-column): Fill column to use in - mh-letter-mode. (Yes, I'm doing this in spite of what Bill said; - Someone can always undo it later) - (mh-letter-mode): setq fill-column to mh-letter-fill-column. - -2001-11-28 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-page-msg): The first time the end of page is hit, - set mh-page-to-next-msg-p to t. The second time the end of page is - hit, go to the next message. - - * mh-utils.el: (mh-show-msg): Initialize mh-page-to-next-msg-p to - nil. - -2001-11-27 Bill Wohler <wohler@newt.com> - - * mh-mime.el (mh-mime-content-types): Updated list of types to - contain types used by mh-e developers, but not including types not - listed in - http://www.isi.edu/in-notes/iana/assignments/media-types/media-types. - -2001-11-27 Peter S Galbraith <psg@debian.org> - - * mh-seq.el (mh-subject-thread-to-sequence) New function placing - all messages with similar subject line into a sequence named - 'subject. - (mh-narrow-to-subject-thread): New command to narrow to all - messages with similar subject line into a sequence named 'subject. - (mh-toggle-subject-thread): New command to toggle between a new - 'subject sequence or the wide view of a folder. - (mh-delete-subject-thread): New command to delete all following - messages with similar subject lines (leaving preceeding ones - untouched). - (mh-next-unseen-subject-thread): New command to create and move to - a new subject thread created from the next unseen message as a - starting point. - * mh-e.el (mh-folder-message-menu): New menu entries for subject - threads. - (mh-folder-mode-map): New keybindings for subject threads. - (mh-lessp): New function to sort messages. - - * mh-utils.el (mh-show-font-lock-keywords): and various - faces... scoped within eval-after-load "font-lock" to avoid - requiring font-lock to use its faces. - * mh-e.el (mh-folder-font-lock-keywords): Same. - -2001-11-27 Jeffrey C Honig <jch@honig.net> - - * mh-mime.el (mh-file-mime-type): Use mh-temp-buffer instead of - " *mh-temp". - - * mh-comp.el (mh-insert-x-mailer): Kill mh-temp-buffer after use. - -2001-11-26 Eric Ding <ericding@alum.mit.edu> - - * mh-utils.el: revert to using external mimedecode to decode - MIME quoted-printable parts - -2001-11-26 Jeffrey C Honig <jch@honig.net> - - * mh-e.el (mh-process-commands): Added mh-folder-updated-hook. - * mh-e.el (mh-update-unseen): Added mh-unseen-updated-hook. - -2001-11-26 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-file-mime-type): Make sure output from file - command is known to mailcap file, otherwise prompt the user. - (mh-mime-content-types): Add "image/png" type. - - * mh-e.el (mh-folder-font-lock-keywords): Use a bunch of new - mh-folder-*-face faces. - * mh-utils.el (mh-show-font-lock-keywords): Use a bunch of new - mh-show-*-face faces. - - * mh-utils.el (mh-letter-header-font-lock): Bug fix. Fix infinite - loop in emacs20 font-locking. - (mh-header-field-font-lock): Preventive fix with similar change. - - * mh-comp.el (mh-reply-show-message-p): Typo. diplayed -> displayed. - * MH-E-NEWS: Same. - - * mh-e.el (mh-folder-tool-bar-map): Bug fix. I had - mh-repack-folder instead of mh-pack-folder. - -2001-11-26 Bill Wohler <wohler@phone.com> - - * mh-e.el: - Updated header for consistency and to conform with (elisp)Library - Headers. - (mh-do-not-confirm): Updated documentation string to reflect - reality (e.g., is no longer used by mh-kill-folder and is used by - more functions than just mh-undo-folder). - (mh-page-msg): Now shows the next undeleted message if looking at the - bottom of the current message. - (mh-process-or-undo-commands): Fixed indentation. - - * mh-mime.el: - (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp): If MIME type - cannot be determined with file command, use mailcap-mime-types (if - available) to provide list for completing read. - - * MH-E-NEWS: First draft of mh-e 5.1 release notes. - -2001-11-26 Eric Ding <ericding@alum.mit.edu> - - * mh-utils.el (mh-decode-quoted-printable): Implement - quoted-printable decoding in elisp (starting with code copied - from FLIM). - (mh-decode-quoted-printable-region): Move (require 'hexl) outside - while loop. - (mh-decode-quoted-printable): give user a choice between using - internal code or external program to decode quoted-printable - content. Resurrect code that calls external mimedecode program. - -2001-11-25 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-highlight-citation-p): New variable to determine - whether to hightlight citations in message body with gnus, - font-lock or not at all. - (mh-show-font-lock-keywords): removed citations from keywords. - (mh-show-font-lock-keywords-with-cite): New variable, equivalent - to prior mh-show-font-lock-keywords. - (mh-gnus-article-highlight-citation): hook into gnus for - multi-level citation highlighting. - (mh-show-mode): Use either mh-show-font-lock-keywords or - mh-show-font-lock-keywords-with-cite, depending on value of - mh-highlight-citation-p, and possibly call - mh-gnus-article-highlight-citation. - * mh-comp.el (mh-letter-mode): Same as for mh-show-mode above. - -2001-11-25 Jeffrey C Honig <jch@honig.net> - - * mh-comp.el (mh-redistribute): Added mh-redist-background - variable to cause mh-redistribute to run the redist command in the - background. This causes the transaction log to be visible, like - with send. - -2001-11-25 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-inc-folder): 'inc' finishes by displaying the first - new message if already showing messages. - -2001-11-22 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-prompt-for-folder): Exit with error if no folder - specified, otherwise mh-refile-msg may try to create a folder with - empty name, and this creates problems; even mh-undo can't handle - it (Closes SF #476824). - - * mh-comp.el (mh-letter-tool-bar-map): Info button needed to - require 'info. Also tweaked help texts. - (mh-letter-menu): Use headline capitalization (Closes SF #483203). - * mh-e.el (mh-folder-tool-bar-map): Same as above. - (mh-folder-folder-menu, mh-folder-message-menu): - (mh-folder-sequence-menu): Same as above. - * mh-pick.el (mh-pick-menu): Same as above. - -2001-11-21 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-reply-show-message-p): The setting of this - variable determines whether the MH show-buffer is diplayed with - the current message when using mh-reply without a prefix argument. - Set it to nil if you already include the message automatically in - your draft using "repl: -filter repl.filter" in your ~/.mh_profile - file. - (mh-reply): Don't show message in other window if - mh-reply-show-message-p is nil. - - * mh-e.el (mh-folder-tool-bar-map): Add mail_exec.xpm icon for - mh-execute-commands. - - * mh-utils.el (mh-show-mouse): New function to click on a message - in folder-mode and show that message. - * mh-e.el (mh-folder-mode-map): Bind mh-show-mouse to mouse-2. - - * mh-e.el (mh-page-msg): Show buffer first if not displayed, - instead of simply complaining there's no other window. - - * mh-e.el (mh-folder-tool-bar-map): New tool-bar for folder mode! - (mh-folder-mode): Setup tool-bar. - - * mh-mime.el (mh-have-file-command): try to non-fatally load - executable.el because emacs20 doesn't autoload it. - * mh-utils.el (load "executable" t t): Idem. - - * mh-utils.el (mh-clean-msg-header): Bug fix. locally bind - after-change-functions to nil, working around a strange font-lock - bug in emacs20 when (add-hook 'mh-show-mode-hook 'turn-on-font-lock) - was used. - - * mh-comp.el (require 'sendmail): Moved from mh-comp.el to - mh-utils.el because it is needed in reading mail too. - (mh-header-field-end, mh-in-header-p): Moved to mh-utils.el - because they are needed by mh-show-mode's font-lock code. - Unfortunately, this splits the field related code into two files. - Perhaps it should all go into mh-utils? - -2001-11-20 Eric Ding <ericding@alum.mit.edu> - - * mh-utils.el (mh-show-from-face): Fix typo in defface - -2001-11-20 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-mail-header-separator): Set to -------- as - defined by MH (components, and replcomps files). This variable - cannot be a regexp since it is used as an argument to insert and - is passed through regexp-quote before being used. The previous - value broke a lot of code, including mailcrypt. - - * mh-comp.el (mh-letter-mode, mh-send-letter): Insert X-Mailer - header field from mh-send-letter. - (mh-edit-again, mh-extract-rejected-mail): Call - mh-insert-header-separator to ensure that there is a separator. - Packages such as mailcrypt depend on it. - (mh-insert-header-separator): New function to insert - mh-mail-header-separator if it doesn't exist. - -2001-11-20 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-mode): Make font-lock-defaults a local variable - * mh-e.el (mh-folder-mode): Same. - * mh-utils.el (mh-show-mode): Same. - - * mh-e.el (mh-scan-msg-num-regexp): Delete variable and replace - with mh-good-msg-regexp. - - * mh-utils.el (mh-mail-header-separator): Bug fix. Moved from - mh-comp.el to mh-utils.el (which mh-comp.el loads). - - * mh-comp.el (mh-in-header-p): Recycle sendmail.el code (as - suggested by Bill). - * mh-utils.el (mh-letter-header-font-lock): Use mh-in-header-p. - - * mh-comp.el (mh-letter-tool-bar-map): tool-bar customize button goes - to customizing mh-compose group. - - * mh-utils.el (mh-show-mode): font-lock bug fix. Locally set - font-lock-support-mode to nil. - (mh-letter-header-font-lock, mh-header-field-font-lock): font-lock - bug fix. Don't return match beyond font-lock search limit. - - * mh-comp.el (mh-letter-mode): Emacs20 bug fix. tool-bar-mode is - not a bound variable. - -2001-11-19 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-tool-bar-map): tool-bar help button goes - to 'Draft Editing' info node. - - * mh-utils.el (mh-show-from-face, mh-show-to-face): New faces used - for font-lock. - (mh-header-to-font-lock, mh-header-cc-font-lock) - (mh-header-field-font-lock): New helper function returning whole - header field arguments to font-lock. - (mh-show-font-lock-keywords): Heavily modified using the above. - - * mh-e.el (mh-scan-msg-num-regexp): Regexp matching the message - number in scan lines. - (mh-scan-date-regexp): Regexp matching a valid date in scan lines. - (mh-scan-rcpt-addr-regexp): Regexp specifying the recipient in - scan lines for messages we sent. - (mh-scan-followup-regexp): Regexp matching a followup subject - line, starting with Re: - (mh-scan-body-regexp): - Regexp matching the message body beginning displayed in scan lines. - (mh-scan.font-lock-regexp): Regexp matching output of the the - optional scan.font-lock format file. - (mh-folder-font-lock-keywords): New font-lock for folder-mode that - uses the above regexps. - -2001-11-19 chad <y@mit.edu> - - * mh-comp.el (mh-letter-tool-bar-map): made both references to - mh-letter-tool-bar-map conditional on tool-bar-mode, instead of - just one. - -2001-11-19 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mh-position-on-field): Move to the end of the header - if the field is not present. This function was documented to do - this, but wasn't doing so. - (mh-insert-x-mailer): Simplified by using existing - mh-goto-header-field and mh-insert-fields functions. Now that - mh-insert-fields is used to insert X-Mailer header field, no - longer need to include X-Mailer in mh-x-mailer-string. - -2001-11-18 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-tool-bar-map): New version of - mh-letter-mode tool-bar. Changed order of buttons; made customize - and info buttons specific to mh-e. - - * mh-e.el (mh-folder-font-lock-keywords): New font-lock regexp - uses variables mh-deleted-msg-regexp, mh-refiled-msg-regexp and - mh-cur-scan-msg-regexp, so will better adapt to non-default scan - formats. Also, lines marked for refiling are now fontified. - -2001-11-18 Bill Wohler <wohler@newt.com> - - * mh-utils.el (mh-show-mode): Added local variable - mail-header-separator which is initialized to - mh-mail-header-separator. - - * mh-comp.el (mh-mail-header-separator): Updated to include ^$. - Needed when running mh-edit-again, since by then the separator is - gone. Added documentation saying one should use - mail-header-separator and initialize it from - mh-mail-header-separator. - (mh-forward): Initialize mail-header-separator since - mh-letter-mode hasn't kicked in yet (which does initialize - mail-header-separator). - (mh-letter-mode): Initialize mail-header-separator from - mh-mail-header-separator, not hard-coded string. - - * mh-comp.el (mh-insert-x-mailer-p): New variable to control - whether X-Mailer string is inserted. Default: t. - (mh-x-mailer-string): New variable that caches actual X-Mailer - string. - (mh-letter-mode): Call mh-insert-x-mailer if mh-insert-x-mailer-p - is t. - (mh-insert-x-mailer): New function that inserts X-Mailer header - field. - -2001-11-17 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-letter-header-font-lock): New function to return - the entire mail header to font-lock for sedate font-locking. - (mh-show-font-lock-keywords): Modified to fontify whole lines and use - mh-letter-header-font-lock above to fontify whole header. - -2001-11-17 Bill Wohler <wohler@newt.com> - - * mh-comp.el (mail-header-separator): Added ^ and $ to make more - specific. - (mh-forward, mh-letter-mode): Replaced hard-coded string with - mail-header-separator. - -2001-11-16 Bill Wohler <wohler@newt.com> - - * mh-e.el (mh-e-RCS-id): Renamed to mh-version. - (mh-version): The variable: Set to a number instead of Id since - the Id didn't have the mh-e version number, and both Emacs and - gnus do it this way too. - (mh-version): The function: Fixed for nmh. Now displays mh-e - version correctly. Cleaned up output and display mh-progs, etc. - (Closes SF #405620.) - -2001-11-15 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-tool-bar-map): New tool-bar support for - mh-letter-mode in emacs21. Uses icons from gnus/message.el. - * mh-comp.el (mh-letter-mode): Add buffer-local binding of - tool-bar-map to mh-letter-tool-bar-map. - -2001-11-15 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-have-file-command): Add check for existence of - executable-find command, which Jeffrey didn't exist in emacs-20.4. - * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): same - as above. - * mh-mime.el (mh-file-mime-type): Bug Fix. Some versions of - 'file' output a string like "file: Using regular magic file..." - to stderr, so discard stderr when using call-process with 'file'. - -2001-11-14 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-have-file-command): Check if 'file' command on - system accepts arguments -i -b before accepting it for our use. - -2001-11-14 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-find-progs): Use expand-file-name instead of - concatenating together strings into a path. - -2001-11-14 Peter S Galbraith <psg@debian.org> - - * mh-e.el (mh-folder-sequence-menu): Enable mh-widen in sequence - menu only when mh-narrowed-to-seq is t. - -2001-11-14 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-have-file-command): Use 'executable-find' instead - of more complicated and error-prone call-process to which command. - * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): Same - change as above. - -2001-11-14 Jeffrey C Honig <jch@honig.net> - - * mh-e.el (mh-make-folder-mode-line): Bug fix. Properly deal with - folders that do not have any lines in them. Print "no msgs" - instead of "0 msgs". Do not try to print a range when there are - no messages. - * mh-e.el (mh-regenerate-headers): Bug fix. Catch and remove the - "scan: band message list" message. - -2001-11-13 Jeffrey C Honig <jch@honig.net> - - * mh-utils.el (mh-find-progs): Bug fix. Add "mh/etc" to the - subdirectories to search for "components". On BSD/OS, nmh is in - "/usr/contrib/mh/*". - -2001-11-13 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-mode): Bug fix. Load mh-mime before - setting mh-mhn-compose-insert-p (when looking at a "forw: -mime" - message containing a MIME composition) such that the variable is - properly declared as buffer-local. - -2001-11-12 Bill Wohler <wohler@newt.com> - - * mh-funcs.el (mh-print-msg): mhl is in the mh-lib-progs - directory, not mh-lib (closes SF #481128). - -2001-11-12 Peter S Galbraith <psg@debian.org> - - * mh-seq.el (mh-widen): Bug fix (closes SF #481036). - In a sequence with pending deletes and refiles, running mh-widen - would wipe out their notations, even though the sequences are still - defined. Fixed by calling a new function, - mh-notate-deleted-and-refiled. Also changed the coping of - mh-goto-msg-num since it didn't work consistently. - * mh-seq.el (mh-notate-deleted-and-refiled): New functions written - to fix above mh-widen bug. It's a first cut, we may want to clear - all notations first, and notate the current-message sequence and - user sequences. Time will tell. - -2001-11-12 Peter S Galbraith <psg@debian.org> - - * mh-seq.el (mh-widen): Make it attempt to stay on the same - message number (closes SF bug #480922). - -2001-11-11 Bill Wohler <wohler@newt.com> - - * import-emacs: New shell script to import Emacs changes to mh-e. - - * Makefile (import): New target to import Emacs changes. - -2001-11-09 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-file-mime-type): Bug fix. Change regexp to - extract mime type from 'file -i' command output. - -2001-11-08 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-update-sequences-after-mh-show): - New customizable variable telling whether to run - mh-update-sequences in mh-show-mode. Default is t. - * mh-utils.el (mh-show-msg): Run mh-update-sequences when - mh-update-sequences-after-mh-show is set. - -2001-11-08 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): - New variable telling whether command 'mimedecode' is on system. - (http://www.freesoft.org/CIE/FAQ/mimedeco.c) - * mh-utils.el (mh-decode-quoted-printable): - New customizable variable telling whether to run mimedecode on - MIME message containing quoted-printable parts. mimedecode will - only alter quoted-printable parts , leaving others intact, and the - resulting message is still fully MIME. - * mh-utils.el (mh-decode-quoted-printable): New function to run - mimedecode on the current buffer. - * mh-utils.el (mh-display-msg): Conditionnaly call - mh-decode-quoted-printable function if mh-decode-quoted-printable - variable is set, to view messages containing quoted-printable - characters into 8-bit. - -2001-11-08 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-mode): Set mh-mhn-compose-insert-p if - looking at a "forw: -mime" message containing a MIME composition. - * mh-mime.el (mh-file-mime-type): Bug fix. Failed on files like - "~/.mh_profile" because of shell construct. Wrapped filename with - expand-file-name. - * mh-comp.el (mh-letter-mode-map): C-cC-o keybinding in - mh-letter-mode-map for mh-open-line. - -2001-11-07 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-open-line): New user function to split open a line - when editing a reply with included text. - * mh-comp.el (mh-current-fill-prefix): New function used by - mh-open-line to get the fill-prefix on the current line. - * mh-comp.el: Add mh-open-line to mh-letter-mode menubar. - -2001-11-06 Peter S Galbraith <psg@debian.org> - - * mh-seq.el (mh-region-to-sequence): New function, creating a - sequence named 'region containing the message list in the selected - region. - * mh-e.el (mh-delete-msg): Mark messages in region for deletion if - mark is active and in transient-mark-mode. - * mh-e.el (mh-refile-msg): Mark messages in region for refiling if - mark is active and in transient-mark-mode. - * mh-e.el (mh-undo): Undo message marks for refile or deletion if - region if mark is active and in transient-mark-mode. - -2001-11-06 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-letter-mode): Use sendmail.el's fill-paragraph. - Copy its settings for paragraph-start, paragraph-separate, - fill-paragraph-function, adaptive-fill-regexp and - adaptive-fill-first-line-regexp. This make M-q (fill-paragraph) - work correctly! - -2001-11-05 Peter S Galbraith <psg@debian.org> - - * mh-funcs.el (mh-kill-folder): Remove mh-do-not-confirm condition - and always prompt the user for such a drastic step. Also change - the prompt a bit to clarify it. - -2001-11-04 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-mhn-compose-insert-p): New buffer-local variable - to tell when a MIME insertion was done in a letter. - * mh-mime.el (mh-mhn-compose-type): Set mh-mhn-compose-insert-p. - * mh-mime.el (mh-mhn-compose-external-type): - Set mh-mhn-compose-insert-p. - * mh-mime.el (mh-mhn-compose-forw): Set mh-mhn-compose-insert-p. - * mh-mime.el (mh-edit-mhn): Clear mh-mhn-compose-insert-p. - * mh-comp.el (mh-send-letter): Run mh-edit-mhn when - mh-mhn-compose-insert-p is set. - -2001-11-03 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-have-file-command): new function testing whether - file command is on the system. - * mh-mime.el (mh-file-mime-type): new function returning MIME type - from file command. - * mh-mime.el (mh-mhn-compose-insertion): Make use of - mh-file-mime-type function instead of prompting. - -2001-10-30 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-show-use-goto-addr): defcustom this new - variable, determining whether to call goto-addr in mh-show-mode. - * mh-utils.el (mh-show-mode): Call goto-address when - mh-show-use-goto-addr is t. - -2001-10-25 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-recenter): Clarify docs and change '(t) to - (list 4) to match elisp doc on what C-u prefix argument actually is. - -2001-10-23 Peter S Galbraith <psg@debian.org> - - * mh-utils.el (mh-summary-height): In my quest to make mh-e more - useful out-of-the-box for new users, set mh-summary-height to a - minimum of 4 and a maximum of 10 depending on frame height. I - typically have 70 lines in my Emacs frame, so having a default of - 4 was silly for my case. - * mh-e.el (mh-update-sequences): Check for nil value of - mh-current-folder, which happens if mh-summary-height < 4 - although I haven't tracked doen why that happens. - -2001-10-22 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-insert-fields): Test for nil value when inserting - field. - -2001-10-20 Peter S Galbraith <psg@debian.org> - - * mh-comp.el (mh-user-agent-compose): Merged-in from XEmacs-21.4 source - * mh-comp.el (mh-letter-mode): Add easy-menu-add statement for XEmacs21 - * mh-pick.el (mh-pick-mode): Add easy-menu-add statement for XEmacs21. - * mh-e.el (mh-folder-mode): Add easy-menu-add statements for XEmacs21. - * mh-utils.el: defalias 'screen-height to 'frame-height for XEmacs21. - -2001-10-19 Peter S Galbraith <psg@debian.org> - - * mh-mime.el (mh-edit-mhn): Use mhbuild in nmh context. - * mh-utils.el (mh-find-progs): The variable mh-nmh-p (t when nmh - is in use rather than MH) was set assuming that the string "nmh" - will be in mh-lib-progs or mh-lib. This failed on Debian systems. - Better to check for the existence of mhbuild in directory mh-progs. - (closes SF bug #441776) - -2001-10-18 Peter S Galbraith <psg@debian.org> - - * mh-e.el: Add menubar entry from contrib/mh-menubar.el - * mh-comp.el: Add menubar entry from contrib/mh-menubar.el - * mh-pick.el: Add menubar entry from contrib/mh-menubar.el - -2001-07-30 Peter S Galbraith <psg@debian.org> - - * mh-e.el: Change font-lock patterns for folders. - Fontify scan.font-lock patterns (which will be documented) - and fontify subject lines prefixed with "Re:" differently. - * mh-comp.el (mh-letter-mode): Add font-lock support as in - mh-show-mode. - -2001-04-14 chad brown <y@mit.edu> - - Rearrange the font-lock keywords a bit. - -2001-04-12 chad brown <y@mit.edu> - - Preliminary (somewhat boring) font-lock support for mh-e. More - interesting font-lock support probably wants to have better - support for multiple format files - -2001-02-24 chad brown <y@mit.edu> - - Add default nmh paths to mh-find-prog in mh-utils.el. - change to mh-kill-folder in mh-funcs.el to make it more general. - -2001-02-19 Bill Wohler <wohler@newt.com> - - * Makefile (EMACS): Renamed to EMACS_HOME. Also, don't define if - EMACS_HOME already exists to give developer a chance to set - environment variable. - (install): $MH-E-SRC is copied to $(EMACS_HOME)/lisp/mail, not - $(EMACS_HOME)/src. - (dist): Leave release in current directory. - - - Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2005 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/mh-e/ChangeLog.1 Sat Oct 15 00:26:05 2005 +0000 @@ -0,0 +1,11416 @@ +2005-09-30 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-refile-msg, mh-tool-bar-reply-from) + (mh-tool-bar-reply-to, mh-tool-bar-reply-all) + (mh-alias-grab-from-field, mh-pack-folder): Image files moved to + etc/images/mail so added "mail/" prefix. + (mh-reply): Ditto. Also renamed reply2.* to reply.*. + (mh-rescan-folder): Ditto. Renamed image file to refresh.* since + it can be used in the general sense. Does not have "mail/" + prefix. + +2005-09-29 Bill Wohler <wohler@newt.com> + + Merged in changes from CVS Emacs including: + + * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw): + * mh-comp.el (mh-insert-letter): + * mh-utils.el (mh-prompt-for-folder): + Follow convention for reading with the minibuffer. Emilio C. Lopes + <eclig@gmx.net> 2005-09-24. + +2005-09-26 Bill Wohler <wohler@newt.com> + + * mh-e.el (desktop-buffer-mode-handlers): Only add to this list if + the variable exists. Not present pre-version 22. + + Merged in changes from CVS Emacs including: + + * mh-print.el (mh-ps-print-msg-show): Fix misplaced parenthesis in + previous change. Juanma Barranquero <lekktu@gmail.com> 2005-09-19 + + * mh-alias.el (mh-alias-ali): Fix `message' call: first arg + should be a format spec. + + * mh-print.el (mh-ps-spool-buffer, mh-ps-spool-a-msg) + (mh-ps-print-msg, mh-ps-print-msg-show): Ditto. + + * mh-mime.el (mh-toggle-mh-decode-mime-flag): Ditto. + + * mh-index.el (mh-index-sequenced-messages): Ditto. + + * mh-e.el (mh-refile-or-write-again, mh-page-msg): Ditto. + + * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) + (mh-spamassassin-blacklist, mh-spamassassin-whitelist): Ditto. D + Goel <deego@gnufans.org> 2005-09-18. + + * mh-customize.el: Do not use face-alias compatibility for + faces that did not appear in the previous Emacs release. Dan + Nicolaescu <dann@ics.uci.edu> 2005-08-15. + + * mh-e.el: Add handler to desktop-buffer-mode-handlers. + (mh-restore-desktop-buffer): Remove autoload cookie. + (mh-folder-mode): Add autoload cookie. Lars Hansen + <larsh@soem.dk> 2005-08-10. + + Update FSF's address in GPL notices Lute Kamstra <lute@gnu.org> + 2005-07-04 . + + * mh-customize.el (mh-folder-body-face, mh-folder-cur-msg-face) + (mh-folder-cur-msg-number-face): New backward-compatibility + aliases for renamed faces. Lute Kamstra <lute@gnu.org> 2005-06-17. + + * mh-customize.el (mh-folder-body, mh-folder-cur-msg) + (mh-folder-cur-msg-number, mh-folder-date, mh-folder-followup) + (mh-folder-msg-number, mh-folder-refiled, mh-folder-subject) + (mh-folder-tick, mh-folder-to, mh-index-folder) + (mh-letter-header-field, mh-show-cc, mh-show-date) + (mh-show-header, mh-show-pgg-good, mh-show-pgg-unknown) + (mh-show-pgg-bad, mh-show-signature, mh-show-to, mh-show-from) + (mh-show-xface, mh-speedbar-folder, mh-speedbar-selected-folder) + (mh-speedbar-folder-with-unseen-messages) + (mh-speedbar-selected-folder-with-unseen-messages) + (mh-folder-msg-number, mh-folder-subject, mh-folder-followup) + (mh-folder-subject): Remove "-face" suffix from face names. + (mh-folder-body, mh-folder-cur-msg, mh-folder-cur-msg-number) + (mh-folder-date-face, mh-folder-followup-face) + (mh-folder-msg-number-face, mh-folder-refiled-face) + (mh-folder-subject-face, mh-folder-tick-face, mh-folder-to-face) + (mh-index-folder-face, mh-letter-header-field-face) + (mh-show-cc-face, mh-show-date-face, mh-show-header-face) + (mh-show-pgg-good-face, mh-show-pgg-unknown-face) + (mh-show-pgg-bad-face, mh-show-signature-face, mh-show-to-face) + (mh-show-from-face, mh-show-xface-face, mh-speedbar-folder-face) + (mh-speedbar-selected-folder-face) + (mh-speedbar-folder-with-unseen-messages-face) + (mh-speedbar-selected-folder-with-unseen-messages-face): + New backward-compatibility aliases for renamed faces. + (mh-folder-body-face, mh-folder-cur-msg-face) + (mh-folder-cur-msg-number-face, mh-folder-date-face) + (mh-folder-followup-face, mh-folder-msg-number-face) + (mh-folder-deleted-face, mh-folder-refiled-face) + (mh-folder-subject-face, mh-folder-address-face) + (mh-folder-scan-format-face, mh-folder-to-face) + (mh-index-folder-face, mh-show-cc-face, mh-show-date-face) + (mh-show-header-face, mh-show-pgg-good-face) + (mh-show-pgg-unknown-face, mh-show-pgg-bad-face) + (mh-show-to-face, mh-show-from-face, mh-show-subject-face) + (mh-speedbar-folder-with-unseen-messages) + (mh-speedbar-selected-folder-with-unseen-messages): + Use renamed MH-E faces. + + * mh-utils.el (mh-letter-font-lock-keywords) + (mh-face-display-function): Use renamed MH-E faces. + * mh-speed.el (mh-folder-speedbar-buttons) + (mh-speed-update-current-folder, mh-speed-normal-face) + (mh-speed-bold-face, mh-speed-add-buttons) + (mh-speed-invalidate-map): Likewise. + * mh-mime.el (mh-signature-highlight): Likewise. Miles Bader + <miles@gnu.org> 2005-06-17. + + * mh-comp.el (mh-send-sub): + * mh-identity.el (mh-identity-field-handler): + * mh-mime.el (mh-secure-message): + Don't use `format' on `error' arguments. Juanma + Barranquero <lekktu@gmail.com> 2005-06-16. + + * mh-mime.el (mh-secure-message): Follow error conventions. + Juanma Barranquero <lekktu@gmail.com> 2005-06-14. + +2005-09-24 Bill Wohler <wohler@newt.com> + + * mh-unit.el (mh-unit): Changed lm-verify test to Emacs 22. + +2005-09-22 Bill Wohler <wohler@newt.com> + + * Makefile: Incorporated ideas from Clemens Fruhwirth to + generalize mh-loaddefs.el to make it work for both GNU Emacs and + XEmacs. + (EMACS_OPTIONS, XEMACS_OPTIONS): Use double-dash for all long + options. + (EMACS_LOADDEFS_COOKIE): New variable for generate-autoload-cookie + setting. Obsoletes XEMACS_LOADDEFS_COOKIE. + (EMACS_EXPORT_MH_LOADDEFS): New variable for GNU Emacs commands to + rebuild mh-loaddefs.el. + (XEMACS_EXPORT_MH_LOADDEFS): New variable for XEmacs commands to + rebuild mh-loaddefs.el. Obsoletes XEMACS_LOADDEFS_FILE and + XEMACS_LOADDEFS_PKG_NAME. + (MH-E-LOADDEFS-SRC): New variable which is set to $(MH-E-SRC) on + GNU Emacs, and adds $(MH-E-XEMACS-SRC) on XEmacs. + (all): Modify EMACS_EXPORT_MH_LOADDEFS and MH-E-LOADDEFS-SRC on + XEMacs. + (mh-loaddefs.el): Now depends on $(MH-E-LOADDEFS-SRC) and has + generic compile command that works on both GNU Emacs XEmacs. + (xemacs): Depend on autoloads instead of deleted loaddefs-xemacs. + (loaddefs-xemacs): Deleted. + +2005-07-19 Bill Wohler <wohler@newt.com> + + * README (INSTALL): Added info for Mac users. + +2005-07-16 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-font-lock-field-data): Fix a bug where the + function would return t but match-data was being set to nil + (closes SF #1241017). + +2005-07-12 Jeffrey C Honig <jch@honig.net> + + * mh-customize.el (mh-invisible-header-fields-internal) + (mh-invisible-header-fields-internal): Add Received-SPF header and + X-Gmail- prefixes seen from Gmail. + +2005-06-08 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-auto-fields): Inset identity regardless of + whether one was already set, since if one used a default identity + it would never be overridden. + +2005-06-02 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-customize): Use customization group mh-e. + + * mh-init.el (mh-path): Use customization group mh-e. Thanks to + Peter Whaite for these patches (closes SF #1213716). + +2005-06-01 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-compose-forward): Only use mh-sent-from-msg as a + default message if it's a number (as is done elsewhere). + Otherwise, an error is thrown if this function is called from a + draft created by mh-forward since this variable is a list. Also + added a space after the "Messages [%s]:" prompt. + +2005-05-30 Jeffrey C Honig <jch@honig.net> + + * mh-mime.el (mh-compose-forward): Allow insertion of multiple + forwarded messages by range (including sequences). For the sent + folder the default message presented is the sent message. For + other folders, the default message is "cur", if it exists. + +2005-05-28 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Added +cvs to version. + +2005-05-28 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.84. + + * MH-E-NEWS, README: Updated for release 7.84. + + * mh-e.el (Version, mh-version): Updated for release 7.84. + +2005-05-28 Bill Wohler <wohler@newt.com> + + * mh-e.el, mh-comp.el: Don't autoload Info-goto-node. It's not + used, and if it were, the code should use the info function + instead. + + Use full year in copyright notices (for example, 2005, not 05). + + * Makefile (mh-loaddefs.el, mh-e-autoloads.el): Added 2005 to + copyright notice. + + * mh-inc.el: Use three ;;; to precede Local Variables to be + consistent with other files. Will have to ask Stefan Monnier why + he changed it. + + * README: This version of MH-E to appear in GNU Emacs 22.1, not + 21.5. + + * ChangeLog: The * in a ChangeLog entry must only be used before a + filename. + + Fixed compilation warnings in CVS Emacs. This included using + "public" functions instead of "private" ones (info instead of + Info-goto-node, view-mode-enter instead of view-mode), and + removing a customization group that didn't have a parent group. In + addition, string-to-int was recently deprecated; use + string-to-number instead. + + * mh-customize.el (Info-goto-node): Deleted autoload. + (mh-e): Deleted mh group. Use single mh-e group instead. + (mh-tool-bar-folder-help, mh-tool-bar-letter-help): Use info + instead of Info-goto-node. + + * mh-e.el (mh-read-msg-list): string-to-int deprecated; use + string-to-number. + + * mh-funcs.el (mh-list-folders): Use view-mode-enter instead of + view-mode. + + * mh-seq.el (mh-list-sequences): Use view-mode-enter instead of + view-mode. + + * mh-utils.el (mh-get-msg-num): string-to-int deprecated; use + string-to-number. + + Merged in changes from CVS Emacs including: + + * mh-utils.el (mh-show-mode): + * mh-pick.el (mh-pick-mode): Remove spurious run-hooks. Lute + Kamstra <lute@gnu.org> 2005-05-26. + +2005-05-25 Bill Wohler <wohler@newt.com> + + Merged in changes from CVS Emacs including: + + * mh-customize.el (mh-speedbar-selected-folder-face): Special case + high number of colors displays. Dan Nicolaescu <dann@ics.uci.edu> + 2005-04-08. + + * mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with + `valid'. Replace `illegal' with `invalid'. Werner Lemberg + <wl@gnu.org> 2005-03-25. + + * mh-inc.el (mh-inc-spool-list): Correctly declare the external + var. Stefan <monnier@iro.umontreal.ca> 2004-09-07. + +2005-05-18 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-reply): Mention use of mh-repl-group-formfile in + docstring. + +2005-05-05 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Added +cvs to release number. + +2005-05-05 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.83. + + * MH-E-NEWS, README: Updated for release 7.83. + + * mh-e.el (Version, mh-version): Updated for release 7.83. + +2005-05-05 Bill Wohler <wohler@newt.com> + + * README: To appear in Emacs 21.5, since 21.4 was released (but + without the latest MH-E). + + * release-utils (usage): Added --variable-changes. + +2005-05-04 Bill Wohler <wohler@newt.com> + + * mh-customize.el (*-face): Made docstrings consistent. + + * mh-seq.el (mh-pick-args-list): Extracted function for turning + string of pick arguments to list. Fixed list so that multi-word + arguments were put in a single string (closes SF #1122655). + (mh-edit-pick-expr): Use it. + + * mh-unit.el (mh-unit): Since 21.4 snuck out but didn't contain + updated lm-verify, don't run lm-verify on versions before 21.5. + (mh-unit-test-pick-args-list): Added. + + * mh-customize.el (mh-yank-from-start-of-msg): Use headline + capitalization. Changed wording of some choices to be more consistent. + (mh-invisible-header-fields-internal): Added fields from usa.net. + +2005-04-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-mime-security-button-face): New function which + determines the face to use to colorize encrypted or signed emails. + (mh-insert-mime-security-button): Modified to colorize the button + differently based on whether the signature was valid or not, + whether the decryption was successful or not, etc. + + * mh-customize.el (mh-show-pgg-good-face) + (mh-show-pgg-unknown-face, mh-show-pgg-bad-face): Faces added to + highlight buttons introduced for encrpted or signed MIME parts. + +2005-03-19 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-mml-method-default): Sorted alphabetically. + (mh-insert-x-mailer-flag, mh-reply-show-message-flag): Moved from + mh-letter group to mh-sending-mail group. The writing of the + documentation revealed that these options were misplaced. + +2005-03-17 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-junk-background): Put in alphabetical order. + Synced with manual. + (mh-junk-program): Use double-quotes on non-symbols. + + * mh-pick.el: (mh-search-folder): Synced docstrings with manual. + + * mh-index.el: (mh-index-search, mh-pick-execute-search) + (mh-grep-execute-search, mh-mairix-execute-search) + (mh-swish-execute-search, mh-swish++-execute-search) + (mh-namazu-execute-search): Synced docstrings with manual. Note + that I'm now grabbing the output of an Info buffer which is why + the indents on the examples has changed a bit. If we all use that + methodology in the future, we shouldn't produce as many gratuitous + diffs. I also noticed that `grep' and `search' became links to + unrelated things, so let's use double-quotes for quoting + non-symbols in the docstrings. + + * mh-customize.el (mh-index-new-messages-folders) + (mh-index-ticked-messages-folders): Synced docstrings with manual. + +2005-02-16 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-swish-execute-search): Simplify the indexing + recipe for swish. Thanks to Eric Jensen for the suggestion. + +2005-02-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-swish-execute-search) + (mh-swish++-execute-search): Make the indexing recipes better. + (mh-swish-next-result): The indexer might find matches in files + that aren't messages. Make the function handle that case + gracefully. + +2005-02-07 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-inc-prog, mh-inc-spool-list): Synced + docstrings with manual. + +2005-02-06 Bill Wohler <wohler@newt.com> + + * mh-junk.el (mh-spamassassin-blacklist): Removed trailing + whitespace. + + * mh-e.el (mh-refile-or-write-again): Checkdoc fix. + + * mh-identity.el (mh-identity-list-set) + (mh-identity-field-handler, mh-identity-handler-gpg-identity) + (mh-identity-handler-signature) + (mh-identity-handler-attribution-verb) + (mh-identity-handler-default, mh-identity-handler-top): Docstring + editing. + + * mh-customize.el (mh-identity-list, mh-auto-fields-list) + (mh-identity-default, mh-identity-handlers): Synced docstrings + with manual. + +2005-02-03 Bill Wohler <wohler@newt.com> + + * mh-xemacs.el (define-behavior 'mh): Moved Ben's code here from + mh-e.el and added standard documentation. + + * mh-e.el: Received patch from Ben Wing <ben@666.com> to add + define-behavior on XEmacs. + +2005-01-28 Jeffrey C Honig <jch@honig.net> + + * mh-customize.el (mh-invisible-header-fields-internal): Added + X-Evolution header added by Evolution mai client. + +2005-01-18 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-invisible-header-fields-internal): Added + DomainKey-Signature (http://antispam.yahoo.com/domainkeys/). + There's a Comment field that goes with it, but I thought it was + too general to add. + +2005-01-06 Bill Wohler <wohler@newt.com> + + * mh-junk.el (mh-spamassassin-blacklist): Fixed typo to fix an + error when junking spamassassin mail when mh-junk-background is + turned on. + +2004-12-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-show-unquote-From): Make the buffer writable + before trying to change it (closes SF #1089870). + + * mh-comp.el (mh-complete-word): Fix a typo in a variable + name (closes SF #1089870) + +2004-11-28 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-complete-word): Kill the *Completions* buffer in + any cases where we belive we are done with it. Not perfect, but + better than just leaving it around. + +2004-11-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-acros.el (mh-funcall-if-exists): In XEmacs, presence of a + function at compile time doesn't guarantee it's existence at run + time. So make the macro handle that situation better. + +2004-11-05 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-acros.el (advice): Load advice, since it isn't loaded in + XEmacs causing compilation problems. + +2004-10-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-mairix-execute-search) + (mh-mairix-regexp-builder): Update the interface to mairix so that + it will work with versions of mairix 0.12 and later. + + * mh-funcs.el (mh-rmf-daemon): Avoid using + beginning-of-buffer since it clobbers the mark and it was pointed + out on the Emacs developers list to be the wrong thing to do. + + * mh-e.el (mh-inc-folder): Only remove the window on the show + buffer. This means if the user has BBDB enabled then the window + displaying BBDB information isn't clobbered. + (mh-refile-or-write-again): Don't use the function + interactive-p. There was a long thread on the Emacs developers + list where it was pointed out that it is incorrect to use this + function most of the time. + + * mh-comp.el (autoload): Don't set auto-mode-alist. This could + screw things up for users that don't use MH-E (closes SF #1032353). + +2004-10-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-refile-or-write-again): Generalize the function to + work on a range of messages (closes SF #1046330). + +2004-09-02 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-process-commands): The concurrent execution of mark + and refile can cause problems since both the commands change the + current folder. This change avoids that by getting rid of the + concurrency. Another change covers the corner case where we refile + messages to a previously empty folder. Before the modification + sequences weren't preserved even if the appropriate flag was + set. That is no longer the case. + +2004-08-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-get-new-mail): Also, update the unseen sequence from + disk. Otherwise, the new messages aren't highlighted. + + * mh-seq.el (mh-thread-inc): Fix a bug which appears when inc is + run in a narrowed folder. The user sequence notation was getting + lost. The change fixes that. + + * mh-e.el (mh-get-new-mail): Make inc more efficient by reusing + the existing user sequence notation and deleted/refiled notation. + +2004-08-24 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Added +cvs to release number. + +2004-08-24 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.82. + + * MH-E-NEWS, README: Updated for release 7.82. + + * mh-e.el (Version, mh-version): Updated for release 7.82. + +2004-08-24 Bill Wohler <wohler@newt.com> + + * mh-init.el (mh-variant-set): Change MH to mh as that's what is + emitted by `mh-variant-mh-info' (closes SF #1014781). + (mh-variant-p): Add mu-mh to docstring. + +2004-08-23 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-acros.el (mh-require-cl): Remove unneeded autoloads. + (require): Add an advice to the function so that at compile time + the uncompiled file is loaded. This avoids compilation problems + when built in the Emacs tree. + + * mh-mime.el (mh-identity-pgg-default-user-id): Defvar the + variable, to avoid compiler warnings. + + * mh-e.el (mh-seq): Load mh-seq since functions defined there are + used here. Without this, the state mh-seq.elc would be loaded. + + * mh-customize.el (mh-init, mh-identity): Load mh-init and + mh-identity at compile time manually, before the corresponding + stale elc files get autoloaded. + +2004-08-21 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Add +cvs to release number. + +2004-08-21 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.81. + + * MH-E-NEWS, README: Updated for release 7.81. + + * mh-e.el (Version, mh-version): Updated for release 7.81. + +2004-08-21 Bill Wohler <wohler@newt.com> + + * release-utils (variable_changes): Check for checked-out + directory before proceeding. Remove temporary files. + Rename --variable-update flag to --variable-changes. + +2004-08-16 Mark D. Baushke <mdb@gnu.org> + + * mh-mime.el (mh-toggle-mh-decode-mime-flag: New function. + * mh-e.el (mh-help-messages): Add [;] help string for it. + (mh-folder-mode-map): Add ";" key binding for it. + +2004-08-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-acros.el (mh-defstruct): Distinguishing structures created + by mh-defstruct just based on the number of fields is not + sufficient, since both the mh-thread-message and + mh-thread-container structures have the same length. + +2004-08-15 Mark D. Baushke <mdb@gnu.org> + + * mh-customize.el (mh-identity-handlers): Use ":default" instead of + "default" to avoid problems with "Default:" as a user defined field. + * mh-identity.el (mh-identity-field-handler): Ditto. + +2004-08-15 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Added +cvs to release number. + +2004-08-15 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.4.80. + + * MH-E-NEWS, README: Updated for release 7.4.80. + + * mh-e.el (Version, mh-version): Updated for release 7.4.80. + +2004-08-15 Bill Wohler <wohler@newt.com> + + * mh-funcs.el, mh-gnus.el, mh-inc.el, mh-init.el, mh-junk.el, + mh-pick.el, mh-print.el, mh-xemacs.el: Added 2004 to Copyright. + + * mh-acros.el, mh-alias.el: Checkdoc fixes. + +2004-08-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-acros.el (cl): Load cl in this file. That is all right, since + this file is only used at compile time, and so cl doesn't get + loaded at run time. This avoids problems with stale *.elc files + present in the Emacs source tree during compilation. + (mh-defstruct): Modify it to make it more CL like and in the + process simplify it a bit. This makes the argument list of the + constructor compatible with the previous version, thereby avoiding + a compilation error when an old version of mh-seq.elc is present. + + * mh-seq.el (mh-thread-id-container, mh-thread-get-message) + (mh-thread-get-message-container): Revert back to the CL style + of using keyword arguments, since the mh-defstruct now produces + code compatible to such usage. + +2004-08-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-acros.el (mh-defstruct, mh-require-cl): Checkdoc fixes. + + * mh-utils.el (message-tokenize-header, message-fetch-field): Add + autoloads. + (mh-folder-completing-read): Make the folder completion look + better with CVS Emacs. + + * mh-init.el (mh-variant-set): Remove dead code. + +2004-08-11 Bill Wohler <wohler@newt.com> + + * *.el: Use the following at the top of each file which seems to + do a good job of suppressing compilation warnings in 21.3 and CVS + Emacs (21.4). This replaces (require 'cl) or (require + 'utils) (mh-require-cl) calls: + + (eval-when-compile (require 'mh-acros)) + (mh-require-cl) + +2004-08-10 Bill Wohler <wohler@newt.com> + + * release-utils (DESCRIPTION): Added one. + (FILES, SEE ALSO, VERSION): Deleted empty and incorrect sections. + + * mh-e.el (mh-colors-available-p): Call x-display-color-cells with + mh-funcall-if-exists since it no longer seems to be defined in + GNU Emacs 21.4. + +2004-08-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-process-kill-without-query, mh-speed-flists): + Avoid a compiler warning in versions of Emacs where + process-kill-without-query is a deprecated function. + + * mh-seq.el (mh-thread-message, mh-thread-container): Use + mh-defstruct instead of defstruct. + (mh-thread-id-container, mh-thread-get-message-container) + (mh-thread-get-message): Use the slightly different structure + constructor function. + + * mh-acros.el (mh-defstruct): New macro which is a partial + replacement of the defstruct in CL. + (no-byte-compile): Don't compile the file since it isn't loaded at + run time, so efficiency isn't an issue. + + * mh-utils.el (mh-buffer-data): Use mh-defstruct instead of + defstruct. + +2004-08-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-funcs.el, mh-junk.el, mh-print.el: Use mh-require-cl to avoid + compilation warnings in Emacs-21.3. + + * mh-acros.el (mh-require-cl): Add autoloads of CL functions used. + +2004-08-09 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-show-use-xface-flag): Mention that `fetch' and + `curl' are supported as well. + +2004-08-08 Bill Wohler <wohler@newt.com> + + * mh-xemacs.el (mh-xemacs-has-toolbar-flag): Checkdoc fixes. + + * mh-mime.el (mh-display-with-external-viewer): Checkdoc fixes. + + * mh-identity.el: (mh-identity-attribution-verb-end): Stripped + trailing space; checkdoc fixes. + + * mh-e.el (mh-restore-desktop-buffer): Checkdoc fixes. + + * mh-customize.el: (mh-inc-spool-list, + mh-compose-forward-as-mime-flag, defcustom): Stripped trailing + space; checkdoc fixes. + + * mh-comp.el (mh-reply): Stripped trailing space. + + * mh-unit.el (mh-unit-files): Added mh-acros.el and mh-gnus.el. + (mh-unit): Don't lm-verify pre-21.4. Save buffers before killing + since we might have done some editing. + + * import-emacs: Deleted. Functionality subsumed by release-utils. + + * release-utils: New script. Performs import-emacs functionality + and displays new and deleted options. + + * Makefile (import-emacs): Call release-utils instead of + import-emacs. + + * mh-funcs.el (mh-undo-folder): Removed deprecated `ignore' + argument. + + * mh-e.el (mh-scan-date-regexp): Deleted as Peter claims it is + obsolete. + (mh-folder-font-lock-keywords): Removed reference to deleted + variable `mh-scan-date-regexp'. + + * mh-customize.el (mh-auto-fields-prompt-flag): Made reference to + `mh-auto-fileds-lists'. + (mh-forward-hook): Fixed docstring typo. + +2004-08-07 Bill Wohler <wohler@newt.com> + + * mh-acros.el: New file. Currently holds macros needed by + mh-customize.el but is planned to hold all macros to avoid + dependency problems when compiling. + + * mh-utils.el (mh-xemacs-flag): Defined in mh-customize.el now. + (mh-require-cl, mh-do-in-gnu-emacs, mh-do-in-xemacs) + (mh-funcall-if-exists, mh-make-local-hook, mh-mark-active-p): + Moved to new file mh-acros.el. + + * mh-customize.el: Require mh-acros and cl only when compiling and + mh-loaddefs at runtime instead of mh-utils. + (mh-xemacs-flag): Define it here instead of mh-utils.el. + + * Makefile (MH-E-SRC): Added mh-acros.el. + + * mh-gnus.el (default-enable-multibyte-characters): Don't define + any more. It doesn't seem to be needed. + + * mh-customize.el (mh-junk-background): New variable. If on, spam + programs are run in background. Running in foreground can be slow. + Defaults to nil to spare machines with little memory. + + * mh-junk.el (mh-spamassassin-blacklist, mh-bogofilter-blacklist) + (mh-bogofilter-whitelist, mh-spamprobe-blacklist) + (mh-spamprobe-whitelist): Use new option mh-junk-background. + +2004-07-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-folder-completing-read): In recent CVS Emacs, + the first letter of the possible choices in the completion buffer + is highlighted. The change is needed for this feature to work + during folder name completion. This is not entirely sufficient, + since the leading "+" in folder names is still mishandled. A patch + is required in Emacs itself to address that. + +2004-07-22 Mark D. Baushke <mdb@gnu.org> + + * mh-e.el (recursive-load-depth-limit): Move + recursive-load-depth-limit code to ... + * mh-utils.el (recursive-load-depth-limit): ... here to avoid + problems compiling mh-utils.el and mh-alias.el with gnus-5.10.6 + under emacs-21.1. Use eval-and-compile instead of eval-when. + +2004-07-20 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-invisible-header-fields-internal): Added + header fields emitted by T-Mobile picture phones (X-Mms-*, and + commented out X-Operator field saying it's like X-Mailer). + +2004-07-12 Bill Wohler <wohler@newt.com> + + * mh-gnus.el: Set local variables indent-tabs-mode and + sentence-end-double-space to nil. + + * mh-customize.el: Checkpoint from option docstring updates and + manual synchronization from last summer. For the options listed + below, docstring was usually completely rewritten. Use "on" + instead of "t" in docstring to match what is seen in customization + buffer. Use headline capitalization. Standardize on "Auto-detect" + text when option has that capibility. + (mh): Since we work on more than one type of Emacs, use Emacs + instead of GNU Emacs. Prefer GNU mailutils over GNU Mailutils. + (mh-variant): s/Autodetect at startup/Auto-detect/. + (mh-alias-insertion-location): s/Sorted + alphabetically/Alphabetical/. s/At the top of file/Top/. s/At the + bottom of file/Bottom/. + (mh-alias-local-users-prefix): s/Use login instead of real + name/Use Login/. + (mh-identity-list): Sorted values by fields, attribution, + signature, GPG key. + (mh-auto-fields-list): Missing quote. + (mh-compose-insertion): s/Use Gnus/Gnus/. s/Use mhn/mhn/. + (mh-compose-space-does-completion-flag): s/SPACE/<SPC>/. + (mh-extract-from-attribution-verb): Since we have French, added + German too ;-). + (mh-letter-complete-function): Mention default in docstring. + (mh-invisible-header-fields-internal): Added X-ELNK-Trace from + Earthlink. + (mh-alias-flash-on-comma, mh-alias-insert-file) + (mh-alias-passwd-gecos-comma-separator-flag) + (mh-recenter-summary-flag, mh-default-folder-for-message-function) + (mh-default-folder-must-exist-flag, mh-index-program) + (mh-index-ticked-messages-folders, mh-ins-buf-prefix) + (mh-delete-yanked-msg-window-flag, mh-identity-default): See + summary above. + + * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-mu-mh-info): + Prefer GNU mailutils over GNU Mailutils MH. + + * mh-comp.el (sc-cite-original, mh-smail, mh-smail-batch) + (mh-edit-again, mh-extract-rejected-mail, mh-forward) + (mh-smail-other-window, mh-reply, mh-send, mh-send-other-window): + Use `mh-send' instead of \\[mh-send]] since links in the docstring + are more useful than a key sequence in these cases. Use "See also" + instead of "See also documentation for". + + Merged in 7.4.4 changes, described below. + + * mh-e.el (Version, mh-version): Set to 7.4.4+cvs. + +2004-07-10 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.4.4. + + * MH-E-NEWS, README: Updated for release 7.4.4. + + * mh-e.el (Version, mh-version): Updated for release 7.4.4. + + This patch release contains the following patches: + + * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el + and mh-xemacs-icons.el which were removed since their names + exceeded DOS 8+3 limits. + + * Makefile: + (mh-e-autoloads.el): Add target to make `mh-e-autoloads.el', a + file containg usual entry commands into MH-E to be used for users + installing MH-E separately from Emacs. + (XEMACS_LOADDEFS_FILE): New. Used to generate mh-loaddefs.el + in XEmacs. + (XEMACS_LOADDEFS_COOKIE): Ditto. + (XEMACS_LOADDEFS_PKG_NAME): Ditto. + (XEMACS_OPTIONS): Add '-no-autoloads' to give a cleaner build + environment. + (MH-E-SRC): Moved mh-xemacs.el to new variable MH-E-XEMACS-SRC. + (MH-E-XEMACS-SRC): New variable to hold XEmacs source files. + (MH-E-XEMACS-OBJ): New variable to hold XEmacs object files. + (clean): Moved XEmacs-specific code to clean-xemacs. + (xemacs): Added clean-xemacs prerequisite. Moved down to XEmacs + section of file. Add target to build mh-loaddefs.el in XEmacs + (loaddefs-xemacs): New rule to build mh-loaddefs.el in XEmacs. + (clean-xemacs): New target to remove XEmacs-specific files. + (compile-xemacs): New. It allows for the '-no-autoloads' option + and byte-compiles all the source files with a single instance of + XEmacs. + (dist): Added $(MH-E-XEMACS-SRC) to tarball. + (AUTO_PRELOADS): Removed, in favour of 'AUTOLOAD_PACKAGE_NAME' and + 'AUTOLOAD_FILE'. + (AUTOLOAD_PACKAGE_NAME): New. + (AUTOLOAD_FILE): New. + (all): Don't set $EMACS_HOME if building with XEmacs. + (xemacs): Use 'compile-xemacs' instead of 'compile'. + (auto-autoloads.elc): Use new $AUTOLOAD_* vars and allow for + '-no-autoloads'. + (custom-load.elc): Allow for '-no-autoloads'. + + * mh-e.el: Don't require mh-xemacs-compat which no longer exists. + The XEmacs stuff gets required by mh-customize.el which is + required by mh-utils.el which is required by mh-e.el. This all + happens before mh-xemacs-compat was required, so all should be + well. + (mh-restore-desktop-buffer): Move from desktop.el. Add Parameters. + (mh-restore-desktop-buffer): Delete with-no-warnings. + (mh-folder-mode): Bind desktop-save-buffer to t. + (Courtesy Lars Hansen). + + * mh-alias.el (mh-assoc-ignore-case): New macro to use + assoc-string when available (Emacs 21.4+); assoc-ignore-case + otherwise. + (mh-alias-reload, mh-alias-expand, + mh-alias-minibuffer-confirm-address): Use it. + + * mh-seq.el: Added mh-autoload to mh-read-seq-default. + + * mh-utils.el (mh-require-cl): The Emacs coding conventions + require that the cl package not be required at runtime. However, + the cl package in versions of Emacs prior to 21.4 left cl routines + in their macro expansions. Use mh-require-cl to provide the cl + routines in the best way possible (closes SF #930012). + (require 'mouse): To shush compiler. + + Use new function mh-require-cl throughout. + + Add arch taglines (courtesy Miles Bader). + + * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and + mh-xemacs-icons.el with mh-xemacs.el. + + * import-emacs: Also grab the ChangeLog. + + * *.pbm: Regenerated using GIMP to be consistent with other Emacs + icons. + 1. Edit .xpm image in GIMP. + 2. Image > Mode > Indexed. Check Use Black/White Palette and No + Color Dithering. + 3. File > Save As file.xbm. + 4. Run xbmtopbm < file.xbm > file.pbm. + Thanks to jan.h.d@swipnet.se for the help. + +2004-07-07 Stephen Gildea + + * mh-customize.el (mh-invisible-header-fields-internal): + Add X-Greylist, X-Source*, and X-WebTV-Signature. + Replace specific X-Spam-* headers with general pattern. + +2004-06-15 Bill Wohler <wohler@newt.com> + + * README: Vladimir Ivanovic reports that mh-rmail works with + XEmacs 21.5.17, so updated requirements text accordingly (closes + SF #644321). + +2004-05-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-mail-header-end): Replace call to + rfc822-goto-eoh with something that allows From_ lines in the mail + header. + +2004-04-14 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-show-mouse): s/EVENT/event/. Thanks to John Paul + Wallington <jpw@gnu.org> for pointing this out. + +2004-04-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-folder-size-flist): Add -showzero option so that the + parsing code doesn't get confused by the presence of -noshowzero + in the user's .mh_profile (closes SF #933954). + +2004-04-07 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-insert-mime-button) + (mh-insert-mime-security-button): Add evaporate property to + overlays used in MIME part buttons. This avoids problems with + CVS Emacs. + +2004-03-16 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-folder-from-address): Go to the end of buffer if the + re-search-forward fails (closes SF #917096). + +2004-02-02 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-compose-forward-as-mime-flag): New user + customizable variable that controls whether messages are forwarded + as MIME attachments (closes SF #827203). + + * mh-comp.el (mh-forward): Call forw with -mime option only if + mh-compose-forward-as-mime-flag is non-nil. + +2003-12-26 Jeffrey C Honig <jch@honig.net> + + * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) + (mh-spamassassin-blacklist, mh-spamassassin-blacklist) + (mh-spamassassin-blacklist, mh-spamassassin-whitelist) + (mh-spamassassin-whitelist, mh-bogofilter-blacklist) + (mh-spamprobe-blacklist): Add progress messages. Change "Couldn't" + to "Unable" in error messages. Run bogofilter and spamprobe in + the foreground to prevent a large number of processes from + swamping the system. + +2003-12-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-prompt-for-refile-folder): Marking the whole folder + and then refiling all messages throws an error, since this + function expects point to be on a valid scan line. The change + relaxes this requirement, thereby avoiding the above problem. + +2003-12-14 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-ascii-buffer-p): New function that checks if a + buffer is entirely composed of ASCII. + (mh-send-letter): Encode the draft if it contains non-ASCII + characters. + +2003-12-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-invisible-headers): Keep only unique fields + in list of header fields to hide. This avoids problems in XEmacs. + +2003-12-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-print-scan-lines): The imenu index was not + getting created for threaded index buffers. The change fixes this. + + * mh-index.el (mh-index-insert-folder-headers): Always create the + imenu index. + (mh-index-create-imenu-index): Set which-func-mode to t. If + which-function-mode is turned on after the folder buffer has been + prepared, display of the folder info was being inhibited. The + change fixes that. + +2003-12-09 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-mode): Setup mh-mail-header-separator + based on draft contents. + (mh-letter-mode, mh-letter-mail-header-end-marker) + (mh-letter-header-end): Remove use of the variable + mh-letter-mail-header-end-marker. Instead use + mh-mail-header-separator. This avoids problems in font locking + draft buffers (closes SF #855479). + +2003-12-09 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-index-insert-folder-headers): Modified so that + imenu--index-alist is updated. + (mh-index-create-imenu-index): New function that generates an + index usable by imenu. This adds which-func-mode support to index + folders (closes SF #855520). + + * mh-e.el (which-func, which-func-modes): Tell which-func that + mh-folder-mode supports it. + (mh-folder-mode): Add support for imenu. + +2003-11-22 Peter S Galbraith <psg@debian.org> + + * Makefile: renamed mh-startup.el to mh-e-autoloads.el + + * README: renamed mh-startup.el to mh-e-autoloads.el + + * .cvsignore: Added mh-e-autoloads.el + +2003-11-18 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.4.3. + + * MH-E-NEWS, README: Updated for release 7.4.3. + + * mh-e.el (Version, mh-version): Updated for release 7.4.3. + + This patch release contains the following two patches: + + * mh-identity.el (mh-identity-make-menu): Removed condition on + mh-auto-fields-list. Use it to enable or disable menu item + instead. + + * mh-customize.el (mh-identity-list): Removed defvar and moved + defcustom before mh-auto-fields-list so that defvar wouldn't + clobber user's customization settings. + +2003-11-17 Jeffrey C Honig <jch@honig.net> + + * mh-print.el (mh-print-msg): Do not print a message on deprecated + usage, the bindings have been removed. + + * mh-e.el (mh-folder-mode-map): Remove "l" binding for + mh-print-msg. + + * mh-utils.el (mh-show-mode-map): Remove "l" binding for + mh-print-msg. + +2003-11-16 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-beginning-of-word): Use the function + mh-mail-abbrev-make-syntax-table instead of the function + mail-abbrev-make-syntax-table. + + * mh-gnus.el (mh-mail-abbrev-make-syntax-table): Add a wrapper + function that calls mail-abbrev-make-syntax-table if available. + This is needed so that MH-E built with CVS Emacs will work with + released versions of Emacs21 and vice versa. + +2003-11-14 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-invisible-header-fields-internal): Add + "X-NAI-Spam-" and "X-Spam-Report:". + +2003-11-14 Mark D. Baushke <mdb@gnu.org> + + * mh-customize.el (mh-invisible-header-fields-internal): + Add X-AntiAbuse and X-MailScanner. + (Patch from Stephen Gildea.) + +2003-11-13 Peter S Galbraith <psg@debian.org> + + * mh-identity.el (mh-identity-handler-attribution-verb): New + function. A new Identity handler for the attribution verb (e.g. + "wrote:") to allow for different identities to use different + languages. + (mh-identity-insert-attribution-verb): New function. Insert the + attribution verb, placing special markers so it can be deleted and + replaced later. + (mh-identity-attribution-verb-start): New variable. Holds the + marker for the start of the attribution verb. + (mh-identity-attribution-verb-end): New variable. Holds the + marker for the end of the attribution verb. + + * mh-customize.el (mh-identity-handlers): Add new + ":attribution-verb" tag for the attribution-verb handler. + (mh-identity-list): Idem. + + * mh-comp.el (mh-yank-cur-msg): Insert attribution verb using + mh-identity-insert-attribution-verb. + (mh-extract-from-attribution): Extract only the name from the From + line, without appending `mh-extract-from-attribution-verb' since + markers need to be inserted around that now. + +2003-11-12 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-rmail, mh-nmail): Well, actually, we run in both GNU + Emacs and XEmacs, so removed the "GNU" in the docstrings unless + one is strictly talking about GNU Emacs. + + * mh-comp.el (mh-smail, mh-smail-batch, mh-smail-other-window): + Ditto. + +2003-11-11 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-customize): Minor docstring change. + (mh, mh-e): The short description for MH-E is: The GNU Emacs + Interface to the MH Mail System. Therefore, updated docstrings + accordingly. + + * mh-comp.el (mh-smail, mh-smail-batch, mh-smail-other-window): + Ditto. + + * mh-e.el (mh-rmail, mh-nmail): Ditto. + +2003-11-10 Satyaki Das <satyakid@stanford.edu> + + * mh-mime.el (mh-mml-to-mime): In case errors happen in + mml-to-mime, restore contents of the draft buffer (closes SF + #839303). + +2003-11-07 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-letter-mode-hook): Moved to mh-sending-mail + group (where it is now documented in the manual). + (mh-pick-mode-hook): Moved to mh-index group (where it is now + documented in the manual). + + * mh-loaddefs.el: Deleted per our discussion on mh-e-devel. No + more conflicts! No more check-ins! Anyone pulling CVS MH-E is + expected to compile. This file shall be added to the tarball so + that users of the distribution are not. + +2003-11-07 Mark D. Baushke <mdb@gnu.org> + + * mh-loaddefs.el: Regenerated. + + * mh-customize.el (mh-forward-hook): Define new hook. + * mh-comp.el (mh-forward): Use it. + +2003-11-07 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-utils.el (mh-show-toggle-mime-buttons) + (mh-show-display-with-external-viewer): New interactive functions + callable from the show buffer. + (mh-show-mime-map): Add bindings for "K t" and "K e". + (mh-show-msg): Propagate change to + mh-display-buttons-for-inline-parts-flag to the show buffer. + + * mh-mime.el (mh-display-with-external-viewer): New interactive + function to display MIME parts with external viewer (closes SF + #839318). + + * mh-e.el (mh-folder-mode): Make the variable + mh-display-buttons-for-inline-parts-flag buffer-local so that + display of MIME buttons can be toggled. + (mh-toggle-mime-buttons): New interactive function to toggle + display of MIME buttons. + (mh-mime-map): Modified to add bindings for "K t" and "K e". + +2003-11-04 Steve Youngs <sryoungs@bigpond.net.au> + + * Makefile (XEMACS_LOADDEFS_FILE): New. Used to generate + mh-loaddefs.el in XEmacs. + (XEMACS_LOADDEFS_COOKIE): Ditto. + (XEMACS_LOADDEFS_PKG_NAME): Ditto. + (xemacs): Add target to build mh-loaddefs.el in XEmacs + (clean-xemacs): Remove `mh-loaddefs.el*' + (loaddefs-xemacs): New rule to build mh-loaddefs.el in XEmacs. + +2003-11-02 Peter S Galbraith <psg@debian.org> + + * mh-init.el (mh-variant-set-variant): Reset `mh-x-mailer-string' + when we select an MH variant. + +2003-11-02 Jeffrey C Honig <jch@honig.net> + + * mh-loaddefs.el: Regenerated. + + * mh-funcs.el (mh-print-msg): Move to mh-print.el. + + * mh-e.el (mh-folder-mode-map): Add mh-print-msg ("l") back, it + will print a message that this usage is deprecated. + + * mh-print.el (require, mh-ps-print-msg, mh-ps-print-msg-file): + Require mh-funcs for mh-note-printed. PS print functions were not + setting the printed notation. Move mh-print-msg here for + consistency. Print message if mh-print-msg invoked via deprecated + key binding. + +2003-11-01 Peter S Galbraith <psg@debian.org> + + * Makefile: Add target to make `mh-startup.el', a file containg + usual entry commands into MH-E to be used for users installing + MH-E separately from Emacs. + + * README: Document the above for users. + +2003-10-29 Jeffrey C Honig <jch@honig.net> + + * mh-utils.el (mh-show-ps-print-map): Add "?" and "l" to + mh-show-ps-print-map. + + * mh-e.el (mh-ps-print-map, mh-help-messages): Add "?" and "l" to + mh-ps-print-map. Add "l" to help message. + +2003-10-27 Bill Wohler <wohler@newt.com> + + * Makefile (MH-E-SRC): Moved mh-xemacs.el to new variable + MH-E-XEMACS-SRC. + (MH-E-XEMACS-SRC): New variable to hold XEmacs source files. + (MH-E-XEMACS-OBJ): New variable to hold XEmacs object files. + (clean): Moved XEmacs-specific code to clean-xemacs. + (xemacs): Added clean-xemacs prerequisite. Moved down to + XEmacs section of file. + (clean-xemacs): New target to remove XEmacs-specific files. + (compile-xemacs): Added $(MH-E-XEMACS-SRC) prerequisite. + (dist): Added $(MH-E-XEMACS-SRC) to tarball. + +2003-10-27 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-index.el (mh-indexer-choices): Remove option for the non-free + glimpse indexer (closes SF #831276). + (mh-glimpse-binary, mh-glimpse-directory) + (mh-glimpse-execute-search, mh-glimpse-next-result): Functions + and variables to implement glimpse support are removed. + + * mh-customize.el (mh-index-program): Remove option for glimpse. + +2003-10-24 Satyaki Das <satyakid@stanford.edu> + + * mh-customize.el: Remove top-level test for toolbar enabled + XEmacs since it is not needed. + (mh-tool-bar-define): Add test for XEmacs toolbar in the functions + mh-toolbar-init, mh-tool-bar-letter-buttons-set and + mh-tool-bar-folder-buttons-set. This enables proper compilation + irrespective of whether the XEmacs was built with toolbar support + or not. + + * mh-comp.el (mh-letter-mode): Remove conditional since it is not + needed. + + * mh-e.el (mh-folder-mode): Same as above. + + * mh-utils.el (mh-show-mode): Same as above. + + * mh-xemacs.el (mh-xemacs-icon-map): Remove condition on toolbar + presence since we want the build to work if XEmacs without + toolbars is used during compilation. + +2003-10-23 Bill Wohler <wohler@newt.com> + + * mh-customize.el: The Great Reorganization. Sorted groups + alphabetically. Aligned variables in customization groups with + manual sections. Group docstrings changed to match manual chapter + titles. + +2003-10-22 Satyaki Das <satyakid@stanford.edu> + + * mh-speed.el (timer): Avoid compiler warning in XEmacs. + +2003-10-22 Steve Youngs <sryoungs@bigpond.net.au> + + * Makefile (XEMACS_OPTIONS): Add '-no-autoloads' to give a cleaner + build environment. + (AUTO_PRELOADS): Removed, in favour of 'AUTOLOAD_PACKAGE_NAME' and + 'AUTOLOAD_FILE'. + (AUTOLOAD_PACKAGE_NAME): New. + (AUTOLOAD_FILE): New. + (all): Don't set $EMACS_HOME if building with XEmacs. + (xemacs): Use 'compile-xemacs' instead of 'compile'. + (auto-autoloads.elc): Use new $AUTOLOAD_* vars and allow for + '-no-autoloads'. + (custom-load.elc): Allow for '-no-autoloads'. + (compile-xemacs): New. It allows for the '-no-autoloads' option + and byte-compiles all the source files with a single instance of + XEmacs. + + * mh-e.el (mh-folder-mode): Only load the toolbar in XEmacs if + toolbar support is available. + + * mh-comp.el (mh-letter-mode): Only load the toolbar in XEmacs if + toolbar support is available. + + * mh-customize.el: Require 'mh-xemacs' at toplevel when + 'mh-xemacs-flag' is non-nil. + Wrap all the toolbar code in a test that is true if using + GNU/Emacs or a toolbar-enabled XEmacs. + + * mh-print.el (mh-ps-spool-a-msg): Comment out + `clean-message-header-flag' because it isn't used anywhere. + + * mh-utils.el (mh-show-mode): Only load the toolbar in XEmacs if + toolbar support is available. + + * mh-xemacs.el: Autoload `regexp-opt', `customize-group', + `view-mode', `with-electric-help', `pp', `sort-numeric-fields', + `reverse-region', and `goto-address' at compile time. + (mh-xemacs-has-toolbar-flag): New. This is non-nil when XEmacs + has toolbar support. + (mh-xemacs-toolbar-*-icon): Use it. + +2003-10-21 Mark D. Baushke <mdb@gnu.org> + + * mh-identity.el (mh-identity-field-handler): Fields that begin + with ":" must have an mh-identity-handler defined or the user + gets an error. + +2003-10-17 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-identity-list): This change affects users! + The keyword "signature" becomes ":signature". The recently added + keyword "pgg-default-user-id" becomes ":pgg-default-user-id". + (mh-auto-fields-list): The keyword "Identity" becomes ":identity". + (mh-identity-handlers): Idem for signature and pgg-default-user-id. + + * mh-comp.el (mh-insert-auto-fields): Idem for Identity. + +2003-10-17 Peter S Galbraith <psg@debian.org> + + * mh-xemacs.el: Add eval-and-compile call to (load "toolbar" t t) to + make sure `toolbar-make-button-list' is defined. We can't use + require because Emacs doesn't have this library. + +2003-10-16 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-signature-file-name) + (mh-letter-insert-signature-hook): Merge docstring with manual. + + * mh-comp.el (mh-file-is-vcard-p): Checkdoc fix. + (mh-insert-signature): Merge docstring with manual. + + * mh-customize.el (mh-junk): Changed manual link in defgroup from + Customizing mh-e to Junk. + (mh-junk-function-alist): Moved SpamAssassin to first in list on + the hunch that it is the most popular and should be chosen if + other anti-spam programs exist. + (mh-junk-mail-folder): Since the variable can accept values other + than folder names, renamed to mh-junk-disposition to more + accurately reflect the content. Merge docstring with manual. + (mh-junk-program): Moved SpamAssassin to the top of the menu for + the same reason presented in mh-junk-function-alist. Also, fixed + case of spam programs to match official usage. Merge docstring + with manual. + + * mh-junk.el (mh-junk-blacklist): + s/mh-junk-mail-folder/mh-junk-disposition/. Merge docstring with + manual. + (mh-junk-whitelist): Merge docstring with manual. + (mh-bogofilter-blacklist): No longer suggest using automatic + classification so use -s instead of -Ns. + (mh-bogofilter-whitelist): No longer suggest using automatic + classification so use -n instead of -Sn. + (mh-spamassassin-blacklist, mh-spamassassin-whitelist): Merge + docstring with manual. Moved spamassassin functions to top of file + so functions appear in same order that they are presented in menu. + +2003-10-09 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mail-citation-hook): Moved from mh-comp.el and + made into a defcustom. + +2003-10-09 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-comp.el (mh-get-header-field): Add autoload cookie. + + * mh-utils.el (mh-show-ps-print-toggle-mime) + (mh-show-ps-print-toggle-color, mh-show-ps-print-toggle-faces) + (mh-show-ps-print-msg-file, mh-show-ps-print-msg) + (mh-show-ps-print-msg-show): New interactive functions callable + from the show buffer. + (mh-show-ps-print-map): New key map for printing. + + * mh-e.el (mh-folder-mode-map): Remove key binding for + mh-print-msg. + (mh-ps-print-map): Add new key map for printing. + + * Makefile (MH-E-SRC): Add mh-print.el. + +2003-10-07 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-x-image-url-fetch-image): In XEmacs, + make-temp-file is not present. So to avoid security problems, use + a temporary file in the user's home directory. This avoids issues + in creating files in a world-writable directory. + + * mh-mime.el (mh-signature-highlight): In Emacs, arrange for the + overlay to be freed when it is no longer needed. Also, implement + signature highlighting in XEmacs. + +2003-10-05 Satyaki Das <satyakid@stanford.edu> + + * mh-mime.el (mh-mime-display, mh-mm-inline-message): Respect the + value of `mm-verify-option' and `mm-decrypt-option'. + (mh-mime-display-security): Rearrange code a bit to avoid too many + new lines being inserted when message verification/decryption is + carried out while the message is being read. Also use the + point-m{in|ax}-marker functions to make the function easier to read. + (mh-mime-security-press-button): Extend the function so that the + user can verify/decrypt messages while reading them. + + * mh-gnus.el (mm-possibly-verify-or-decrypt): Added to avoid + compiler warning with old Gnus. + + * mh-utils.el (mh-x-image-url-sane-p): New function which checks + if the URL in X-Image-URL is something we can handle. + (mh-x-image-url-display): Don't display image if the URL looks + malformed. + +2003-10-04 Mark D Baushke <mdb@gnu.org> + + * mh-comp.el (mh-letter-menu): Simplify menu heading. + +2003-10-03 Mark D Baushke <mdb@gnu.org> + + * mh-mime.el (mh-mml-query-cryptographic-method): Avoid + revisionist history and still provide a good default. + + * mh-comp.el (mh-letter-menu): Remove the Disable Security + parenthetical comment. + + * mh-loaddefs.el: Regenerated. + + * mh-customize.el (mh-mml-method-default): What method should be + used in secure directives. + + * mh-mime.el (mh-secure-message): New function used to generate + the mml security tags. + (mh-mml-unsecure-message): New wrapper function around + mml-unsecure-messages. + (mh-mml-secure-message-sign-pgpmime): Remove function. + (mh-mml-secure-message-encrypt-pgpmime): Ditto. + (mh-mml-cryptographic-method-history): New variable. + (mh-mml-query-cryptographic-method): New function. + (mh-mml-secure-message-encrypt): Ditto. + (mh-mml-secure-message-signencrypt): Ditto. + (mh-mml-secure-message-sign): Ditto. + + * mh-comp.el (mh-letter-menu, mh-letter-mode-help-messages, + (mh-letter-mode-map): Update to use new functions. + +2003-09-26 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-interactive-range): The function has been + extended so that it now takes a default result to return if no + interactive prefix arg is given and no region is active. + + * mh-e.el (mh-add-sequence-notation): If transient-mark-mode is + on, then the active region is deactivated based on whether a user + sequence or a internal sequence is being notated. The change + removes this inconsistency. + (mh-catchup, mh-folder-map): A new interactive function to mark + messages as read has been added and bound to "F c" in the folder + mode. + + * mh-utils.el (mh-show-catchup, mh-show-folder-map): New + interactive function callable from show mode buffers has been + bound to "F c". + +2003-09-24 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-clean-message-header-flag) + (mh-invisible-header-fields-default, mh-invisible-header-fields): + Merge docstring with manual. + +2003-09-24 Mark D. Baushke <mdb@gnu.org> + + * mh-junk.el (mh-junk-blacklist): Junked messages should be put + into the mh-seen-list to avoid propagating the unseen sequence + into the spam folder. + + * mh-loaddefs.el: Regenerated. + + * mh-mime.el (mh-mml-secure-message-sign-pgpmime): Add an optional + dontsign argument to remove an existing secure message directive. + Update the docstring -- this fuction does not allow for + encrypt/sign, just sign directives. + + * mh-mime.el (mh-mml-secure-message-sign-pgpmime): Use + mml-insert-tag directly to provide a sender if + mh-identity-pgg-default-user-id is set. + (mh-mml-secure-message-encrypt-pgpmime): Use mml-insert-tag + directly to provide a sender if this message is to be both signed + and encrypted and mh-identity-pgg-default-user-id is set. + +2003-09-23 Bill Wohler <wohler@newt.com> + + * mh-alias.el (Commentary): Removed as it is now in the manual. + (mh-alias-system-aliases): Moved here from mh-customize.el. By + definition, "system" definitions are not user-visible, and user + filenames are in the the Aliasfile: profile component, so this + variable really shouldn't be a defcustom + (mh-alias-tstamp, mh-alias-filenames, mh-alias-reload) + (mh-alias-add-alias, mh-alias-grab-from-field) + (mh-alias-add-address-under-point, mh-alias-apropos): Merge + docstring with manual. + (mh-alias-reload-maybe): Minor comment update. + (mh-alias-insert-file): Merge docstring with manual. Removed + "[press TAB]" from prompt since users should know about completion + and space can be used as well. + (mh-alias-for-from-p): No longer returns a surprising result (t if + there was **not** an alias for the From field) if the From header + field is missing. This function now returns what you would expect + a function of this name to return. Renamed from + mh-alias-from-has-no-alias-p since negatives in the function name + make logic harder to follow. + (mh-alias-add-alias-to-file): Merge docstring with manual. + Improved verbiage of prompt. Aliases are now inserted "[b]efore" + or "[a]fter" the existing alias instead of "[i]nsert" or + "[a]ppend." Note how the new usage flows better. + + * mh-customize.el (mh-alias): Changed manual link in defgroup from + Customizing mh-e to Aliases. + (mh-alias-grab-from-field button): mh-alias-from-has-no-alias-p + renamed to mh-alias-for-from-p and no longer returns surprising + value if there isn't a From field. Therefore, enable button if + there is a From header field and mh-alias-for-from-p returns nil. + (mh-letter-complete-function) + (mh-alias-completion-ignore-case-flag, mh-alias-flash-on-comma) + (mh-alias-insert-file, mh-alias-insertion-location) + (mh-alias-local-users, mh-alias-local-users-prefix) + (mh-alias-passwd-gecos-comma-separator-flag): Merge docstring with + manual. + (mh-alias-system-aliases): Moved to mh-alias.el. + + * mh-comp.el (mh-letter-complete-function-alist): Removed comment + about making this customizable since I didn't think it seemed + appropriate in the manual. + (mh-letter-complete): Merge docstring with manual. + +2003-09-23 Satyaki Das <satyakid@stanford.edu> + + * mh-speed.el (mh-speed-flists): When exiting emacs, don't ask if + the flists process should be killed. + + * mh-e.el (mh-folder-message-menu): Enable undo menu entry only + if something can be undone. + + * mh-customize.el (undo): Enable undo button only if something + can be undone. + +2003-09-22 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-identity-handlers): New defcustom. Alist of + Handler functions for mh-identity (downcased) fields. + (mh-identity-list): Add support for pgg-default-user-id. + + * mh-identity.el (mh-insert-identity): Modified to use + `mh-identity-handlers', adding hacking flexibility for those who + might need it. + (mh-identity-field-handler): New function. Return the handler for + a FIELD or nil if none set. The field name is downcased. + (mh-identity-handler-gpg-identity): New function; handler for pgg + pgp identities. It sets a buffer-local value for + `mh-pgg-default-user-id' which must be handled by mh-send-letter. + (mh-identity-pgg-default-user-id): New buffer-local variable to + hold the requested key ID. + (mh-identity-handler-signature): New function; handler t insert + and remove signature files. + (mh-identity-handler-default): New function; the default handler + to insert or remove generic field. + (mh-identity-handler-top): Insert a field at the top of the + header. + (mh-identity-handler-bottom): Insert a field at the bottom of the + header. + (mh-header-field-delete): Make more robust wrt the field having a + trailing colon or not. + (mh-identity-make-menu): Add a "Customize Identities" menu entry. + + * mh-loaddefs.el: Regenerated. + +2003-09-21 Peter S Galbraith <psg@debian.org> + + * mh-init.el (mh-variant-set): Bug fix for mh-variant long names + with version numbers. + + * mh-e.el (mh-scan-format): patch from Sergey Poznyakoff. + GNU mailutils now supports the %(decode) format + +2003-09-20 Satyaki Das <satyakid@stanford.edu> + + * mh-gnus.el (mh-mm-text-html-renderer): New function to query + which HTML renderer is being used by Gnus. + + * mh-mime.el (mh-signature-highlight): Renderers used to display + HTML parts garble the signature separator in various ways. The + function has been modified to take that into account. + (mh-mime-display-single, mh-mm-display-part): Pass the new + optional argument to `mh-signature-highlight'. + +2003-09-19 Mark D. Baushke <mdb@gnu.org> + + * mh-mime.el (mh-have-file-command, mh-file-mime-type): Made an + mh-autoload as they are used in mh-comp.el. + + * mh-loaddefs.el: Regenerated. + +2003-09-18 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-fields): Make sure field has a colon. + +2003-09-18 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-toggle-tick): Don't hardcode the name of the tick + sequencence in the function. This would have caused improper + highlighting of the tick sequence if the user had changed its + name. + +2003-09-15 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-folder-message-menu): Fix a little bug which shows + up as a problem during compilation (closes SF #806577). + +2003-09-15 Mark D. Baushke <mdb@gnu.org> + + * mh-customize.el (mh-invisible-header-fields-internal): Added + a new field for GNU mailutils per Sergey Poznyakoff. + +2003-09-09 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (vcard): Unconditionally load vcard.el, if + available, so that vcards are always inlined. + +2003-09-09 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-file-mime-type-substitutions): Add entry to + convert text/plain .vcf files to text/x-vcard. + (mh-mime-content-types): Add text/x-vcard. + +2003-09-09 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-rejected-letter-start): Added strings for qmail + and exim (addresses SF #404965). + +2003-09-09 Satyaki Das <satyakid@stanford.edu> + + * mh-gnus.el (mm-inline-text-vcard): Make vcard display work with + Gnus-5.9. The extra file vcard.el is still needed. + + * mh-mime.el (mh-signature-highlight): New function that + highlights message signatures. + (mh-mm-display-part, mh-mime-display-single): Highlight signatures + using `mh-signature-highlight' (closes SF #802722). More work is + needed for XEmacs. + (mh-mime-display): Highlight signature in non-MIME email too. + + * mh-customize.el (mh-show-signature-face): New face used to + display message signature. + +2003-09-08 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-version): Do something sensible when + mh-variant-in-use is undefined. + * mh-junk.el (mh-spamassassin-blacklist) + (mh-spamassassin-whitelist): Change options to be compatoble with + old version of spamassassin (V2.20). + +2003-09-07 Mark D. Baushke <mdb@gnu.org> + + * mh-mime.el (mh-access-types): Per RFC 2049, the "afs" + access-type for message/external-body has been removed. + Update the comments to reference the current MIME RFCs + 2045, 2046 and 2049 rather than the obsolete RFC 1521. + +2003-09-05 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-version): Bumped version number to 7.4.2+cvs. + +2003-09-04 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-picon-directory-list, mh-picon-directory): The + mh-picon-directory-list variable supersedes mh-picon-directory. + (mh-picon-existing-directory-list): New variable that contains + the list of picon directories that actually exist. + (mh-picon-set-directory-list): New function to update + mh-picon-existing-directory-list from mh-picon-directory-list. + (mh-picon-get-image): The function has been modified to search a + list of possible picon source directories. The regexp to extract + the username from the email address has been made smarter so that + it can recognize email addresses of the form user+random@foo.net + and extract "user" from there. + (mh-picon-file-contents): The file type recognition code has been + moved from mh-picon-get-image into this function. + (mh-picon-generate-path): The function has been generalized so + that searching multiple paths is now feasible. + + * mh-pick.el, mh-e.el: Checkdoc fixes. + +2003-09-02 Satyaki Das <satyakid@stanford.edu> + + * mh-identity.el (eval-when): It seems that the mh-comp-loaded + code isn't required any more. + +2003-08-30 Satyaki Das <satyakid@stanford.edu> + + * mh-init.el (mh-variant-set): Replace `error' with `message' so + that Emacs CVS will compile without errors if no MH variant is + present. + +2003-08-29 Satyaki Das <satyakid@stanford.edu> + + * mh-init.el (mh-variant-set): Add interactive spec to the + function. + + * mh-mime.el (mh-mhn-compose-external-type): Optional arguments + are prompted for only if prefix arg is given. + +2003-08-29 Mark D. Baushke <mdb@gnu.org> + + * mh-mime.el (mh-mhn-compose-external-type): Modified to be + interactive and prompts for many of the fields. Made an + mh-autoload. + (mh-access-types): New table derived from RFC2017, RFC1521 and + RFC1738, used in a completing-read in + mh-mhn-compose-external-type. + + * mh-loaddefs.el: Regenerated. + +2003-08-26 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-picon-image-types, mh-picon-get-image): Avoid + compiler warnings. + (mh-sub-folders-actual): Parsing of the output from folders has + been modified, so that it also works for MH (closes SF #792300). + + * mh-junk.el (mh-spamassassin-whitelist): Avoid calling + ietf-drums-parse-address if it isn't present. + (mh-spamassassin-identify-spammers): Avoid use of puthash so that + Emacs20 doesn't complain. + + * mh-e.el (mh-colors-available-p): Wrap call to + display-color-cells in a mh-funcall-if-exists to avoid compiler + warning in Emacs20. + +2003-08-25 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-colors-available-flag, mh-folder-mode): New + variable to track if colors are available and it is set + appropriately in mh-folder-mode. + (mh-colors-available-p, mh-colors-in-use-p): Two functions to + check whether colors are available and if they are actually being + used. + (mh-add-sequence-notation): Just changing a scan line doesn't + make font-lock refontify the line in Emacs20. So explicitly + refontify the scan line in such a situation. + (mh-internal-seq): If colors aren't being used then treat the + tick sequence like a normal user sequence. + + * mh-seq.el (mh-put-msg-in-seq): Do font-lock highlighting after + the messages have been added to the sequence. + (mh-toggle-tick): Modified so that highlighting of the ticked + messages will be properly done. If font-lock isn't being used or + if colors aren't supported by the Emacs where MH-E is running, + then the `%' character is used to annotate ticked messages. + + * mh-utils.el (mh-picon-image-types): Since Emacs20 doesn't have + image-type-available-p, wrap calls to that function in + ignore-errors. + (mh-add-msgs-to-seq): Do the font-lock highlighting after the + messages have been added. + +2003-08-24 Bill Wohler <wohler@newt.com> + + * Makefile (MH-E-SRC): Replaced mh-xemacs-compat.el and + mh-xemacs-icons.el with mh-xemacs.el. + + * mh-e.el: Don't require mh-xemacs-compat which no longer exists. + The XEmacs stuff gets required by mh-customize.el which is + required by mh-utils.el which is required by mh-e.el. This all + happens before mh-xemacs-compat was required, so all should be + well. + + * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and + mh-xemacs-icons.el with mh-xemacs.el. + + * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el + and mh-xemacs-icons.el which were removed since their names + exceeded DOS 8+3 limits. + + * mh-customize.el (mh-compose-skipped-header-fields): Use + uppercase for field names. + +2003-08-21 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-sequences): Introduced new customization + group for sequences. + (mh-refile-preserves-sequences-flag, mh-tick-seq) + (mh-update-sequences-after-mh-show-flag): Moved option from + mh-folder to mh-sequences group. Synced docstring with manual. + (mh-index-ticked-messages-folders): Since mh-tick-seq is + customizable, use it instead of tick in the docstring. + + * mh-index.el (mh-index-ticked-messages): Since mh-tick-seq is + customizable, use it instead of tick in the docstring. + + * mh-seq.el (mh-msg-is-in-seq): Can now specify an alternate + message number with a prefix argument. + (mh-narrow-to-tick): Since mh-tick-seq is customizable, use it + instead of tick in the docstring. Also, use mh-tick-seq instead of + tick in warning message. + +2003-08-20 Peter S Galbraith <psg@debian.org> + + * mh-customize.el: setq mh-variant to 'none when byte-compiling, + since we don't care what MH variant (if any) is on the system at + that point. + + * mh-init.el (mh-variant-set): Don't probe for MH variant when + mh-variant is set to'none (during byte-compilation). + +2003-08-19 Peter S Galbraith <psg@debian.org> + + * mh-pick.el (mh-pick-single-dash): New defconst. Search + components that are supported by single-dash option in + pick. + (mh-pick-regexp-builder): Use `mh-pick-single-dash' and adapt + patch from Sergey Poznyakoff. + + * mh-comp.el (mh-reply): mu-mh supports `repl -group', thanks to + Sergey Poznyakof. + + * mh-init.el: checkdoc fixes. + +2003-08-19 Bill Wohler <wohler@newt.com> + + * mh-seq.el: (mh-edit-pick-expr): Renamed from mh-read-pick-regexp + since the new name is more indicative of what the function does. + Prompt now says "Pick expression" instead of "Pick regexp". + (mh-narrow-to-subject): Rewrote function to behave like other + similar functions. + (mh-narrow-to-header-field, mh-narrow-to-range) + (mh-narrow-to-tick): s/regexp/pick-expr/. + (mh-widen, mh-narrow-to-from, mh-narrow-to-cc, mh-narrow-to-to): + Synced docstrings with manual + +2003-08-19 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.4.2. + + * MH-E-NEWS, README: Updated for release 7.4.2. + + * mh-e.el (Version, mh-version): Updated for release 7.4.2. + + * mh-e.el (mh-folder-size, mh-folder-size-folder) + (mh-folder-size-flist): If flist is not present use folder to find + the number of messages in the folder. Also the .mh_sequences file + is read to find the number of unseen messages (patch from 1.349 + and branched for 7.4.2, closes SF #791021). + + * mh-utils.el (mh-flists-present-flag, mh-find-progs): Introduce a + new variable to test for the presence of the flists program and + set it in mh-find-progs. + (mh-collect-folder-names): Use folders instead of flists. One + advantage is that folders is available on MH while flists is not. + Another is that if an explicit -sequence argument isn't given and + Unseen-Sequence profile is not present then flists croaks while + folders doesn't. + (mh-collect-folder-names-filter): Don't consider folder names that + start with a `.' character. This is needed since the folders + command doesn't filter them out like flists does. + (patches from 1.307 and 1.309 and branched for 7.4.2, closes SF + #791021). + +2003-08-18 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-index-sequenced-messages) + (mh-index-new-messages, mh-index-ticked-messages): Updated + docstrings from manual (closes SF #718833). + + * mh-customize.el (mh-variant): Checkdoc fix. + (mh-index-new-messages-folders): Don't mention defvar in + docstring, use `+inbox' instead. + (mh-index-ticked-messages-folders): Don't mention defvar in + docstring, use `tick' instead. + + * mh-comp.el (mh-repl-group-formfile): Checkdoc fix. + +2003-08-18 Peter S Galbraith <psg@debian.org> + + * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-info): Add + support for GNU mailutils. + (mh-variant-mu-mh-info): New function to detect mu-mh and return + info about it for `mh-variants'. + + * mh-e.el (mh-regenerate-headers): mu-mh has different error + message for a invalid mesage list. + +2003-08-18 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-e): New defgroup. Sort of an alias for the + 'mh group that a user might be more likely to find. + +2003-08-18 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-insert-auto-fields-done-local): Docstring tweak. + (mh-compose-and-send-mail): Do not call mh-insert-auto-fields. + This should be done only once in mh-send-letter. + +2003-08-18 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-mode): Call `mh-find-path unconditionally, + like elsewehere in MH-E. + + * mh-utils.el (mh-find-path): Run setup code only if + `mh-find-path-run' is nil such that this is only done once. + Also remove the `setq' for `read-mail-command' and `mail-user-agent'. + +2003-08-18 Peter S Galbraith <psg@debian.org> + + * mh-e.el: require 'mh-utils first + + * mh-customize.el (mh-variant): defcustom moved here. + + * mh-init.el (mh-variants): Made an mh-autoload. + +2003-08-18 Peter S Galbraith <psg@debian.org> + + * Makefile (MH-E-SRC): Added mh-init.el to MH-E-SRC. + + * mh-utils.el (mh-find-progs): Deleted. Make obsolete by mh-init.el. + (mh-find-path): Call `mh-variants' instead of now obsolete + `mh-find-progs'. + (mh-path-search): Deleted. Was only used by `mh-find-progs'. + + * mh-e.el: require mh-init.el. + (mh-version): Use simpler `mh-variant-in-use'. + (mh-scan-format): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. + + * mh-comp.el (mh-insert-x-mailer): Use simpler `mh-variant-in-use'. + + * mh-utils.el (mh-progs, mh-lib, mh-lib-progs) + (mh-flists-present-flag): Moved to mh-init.el. + (mh-nmh-flag): Deleted. Use (mh-variant-p 'nmh) instead. + + * mh-comp.el (mh-repl-group-formfile, mh-forward, mh-reply) + (mh-send-letter): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. + + * mh-mime.el (mh-edit-mhn, mh-mime-save-parts): Use (mh-variant-p + 'nmh) instead of mh-nmh-flag. + +2003-08-16 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-folder-selection): New group to hold + variables described in Folder Selection section in manual. + (mh-default-folder-list, mh-default-folder-must-exist-flag, + mh-default-folder-prefix): Moved to mh-folder-selection group. + Updated docstrings per manual update. + (mh-default-folder-for-message-function): New defcustom. Was a + defvar in mh-utils.el. Updated docstring per manual update. + + * mh-utils.el (mh-default-folder-for-message-function): Moved to + mh-customize.el. + + * mh-e.el (mh-folder-from-address, mh-prompt-for-refile-folder): + Updated docstrings per manual update. + + * mh-unit.el (mh-unit-files): Added mh-init.el. + +2003-08-16 Peter S Galbraith <psg@debian.org> + + * mh-init.el: New file. Code to initialize the MH-E back-end. + Highlights: + (mh-variant): New defcustom. Users may customize `mh-variant' to + switch between available variants. + (mh-variants): Available MH variants are described in this variable. + (mh-variant-in-use, mh-variant-p): Developers may check which + variant is currently in use with the variable `mh-variant-in-use' + or the function `mh-variant-p'. + +2003-08-15 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-auto-fields-list): The manual uses Fcc + instead of fcc, so I've changed the user-visible text + accordingly. I've left the const alone for backwards + compatibility. + +2003-08-14 Bill Wohler <wohler@newt.com> + + * mh-identity.el (mh-insert-identity): Changed signature deletion + test to test for both markers, rather than testing to see if the + start marker is bound. Since the start marker is defined in this + file, it should always be bound. Suggestion by Satyaki. + + * mh-comp.el (mh-send-letter): Go to the top of the draft so that + the user can see which header fields have been inserted. I think + this is more important than leaving point alone or going to the + end to see the signature since Mail-Followup-To or Bcc or cc could + have some deleterious effects. + + * mh-customize.el (mh-auto-fields-prompt-flag): New variable. + Non-nil means to prompt before sending if fields inserted. + + * mh-comp.el (mh-insert-auto-fields): Now return t if fields + inserted; otherwise nil. + (mh-send-letter): Deleted obsolete documentation about adding + X-Mailer and X-Face. Prompt before sending if auto fields added + and mh-auto-fields-prompt-flag is t. + + * mh-customize.el (mh-identity-list): Allow signature to come from + mh-signature-file-name. In this case, the "signature" value is set + to nil. This might not be the best implementation. Suggestions + welcome. + + * mh-identity.el (mh-insert-identity): Now that the signature can + be a nil value, moved test higher up in cond so that the test for + a nil value would not be executed first prevening signature + handling. Handle nil signature value by calling + mh-insert-signature with no arguments which means to use + mh-signature-file-name. + + * mh-comp.el (mh-insert-signature): Changed text of message if no + signature inserted. + + * mh-customize.el (mh-identity-list): Changed "Signature" constant + back to "signature" so it *won't* be backwards-incompatible any + more. I discovered one could use the :tag keyword to get headline + captalization in the menu. + + * mh-identity.el (mh-insert-identity): Ditto. + + * mh-identity.el (mh-identity-make-menu): Always build menu. + Always create Insert Auto Fields menu item. Just don't enable it + if mh-auto-fields-list is nil. Enable radio buttons always. Make + None a radio button choice with the other identities. + + * mh-comp.el (mh-letter-menu): Removed cond on fboundp + 'easy-menu-define. We don't do this elsewhere. + +2003-08-13 Bill Wohler <wohler@newt.com> + + * mh-identity.el (mh-identity-make-menu, mh-insert-identity): Use + headline capitalization in menu items. Even the internal names are + exposed in the customize interface, so they need to be uppercase + too. + (mh-insert-identity): Rather than goto-char to + mh-identity-signature-start before deleting, simply pass it to + delete-region. When setting markers, use point-min-marker and + point-max-marker instead of moving point. Set marker type of + mh-identity-signature-start to t to fix a bug where changing + identity deleted user's text. + + * mh-customize.el (mh-identity-list, mh-auto-fields-list): + Reworked docstring. Use headline capitalization. Commented out + implementation details for later deletion or resurrection upon + popular demand. N.B. If your mh-identity-list contains "signature" + then you will need to either edit your .emacs file manually, or + delete your existing "signature" which will become a regular field + with this change and create a new signature. I figured I could get + away with this since 8.0 is a major release, and coinciding with + the manual update will be a MAJOR release. I apologize profusely + that I didn't catch this before it was released. + (mh-identity-default): Use headline capitalization in example. + +2003-08-12 Jeffrey C Honig <jch@honig.net> + + * mh-customize.el (mh-alias-reloaded-hook): Define + `mh-alias-reloaded-hook'. + + * mh-alias.el (mh-alias-reload): Run `mh-alias-reloaded-hook' + after reloading the aliases. + +2003-08-12 Mark D. Baushke <mdb@gnu.org> + + * mh-comp.el (mh-insert-signature): Use functionp to avoid + the possibility of doing a funcall on a void function. + +2003-08-12 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-identity): Point group manual link to new + Identities section. + (mh-signature-separator-flag): New variable which can be used to + suppress the output of the signature separator. + + * mh-comp.el (mh-insert-signature): Use + mh-signature-separator-flag. + + * mh-identity.el (mh-insert-identity): If the identity's signature + file didn't exist, an fboundp error was thrown. This was fixed by + removing signature tests that were redundant and out of date with + the tests in mh-insert-signature. Removed second signature + condition as it is now handled in the first signature condition. + +2003-08-12 Peter S Galbraith <psg@debian.org> + + * mh-identity.el (mh-insert-identity): Don't insert new lines on + signatures anymore. + + * mh-comp.el (mh-insert-signature): Make sure signature file is + readable before trying to insert it. + +2003-08-11 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-insert-signature): Unconditionally insert a + newline so that signatures are inserted consistently, and so that + there isn't any text after the cursor so that the user can start + typing his message immediately. Use new variable and function + mh-signature-separator and mh-signature-separator-p. + + * mh-customize.el (mh-delete-yanked-msg-window-flag): Checkdoc + fix. + (mh-signature-file-name): Updated docstring now that this variable + can be a function. Added cross-references to + mh-signature-separator, mh-signature-separator-regexp, and + mh-signature-separator-p which might be used in such functions. + + * mh-identity.el (mh-insert-identity): Don't include signature if + signature separator already present. Useful when running + mh-edit-again. + + * mh-mime.el (mh-inline-vcard-p): Use mh-signature-separator-p. + + * mh-utils.el (mh-signature-separator-regexp): New variable + containing "^-- $" which should be used when looking for the + signature separator. + (mh-signature-separator): New variable containing "-- \n" which + should be used when inserting the signature separator. + (mh-signature-separator-p): New function that returns non-nil if + mh-signature-separator-regexp is found in the buffer. + +2003-08-09 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-x-image-scaling-function): Variable that + contains function used to scale images. Possible choices are + mh-x-image-scale-with-convert and mh-x-image-scale-with-pnm. + (mh-convert-executable): Removed. + (mh-x-image-scale-with-pnm, mh-x-image-scale-with-convert): New + functions that scale images using pnm tools or ImageMagick. + (mh-x-image-scale-and-display, mh-x-image-url-display): Use + mh-x-image-scaling-function instead of mh-convert-executable. + +2003-08-08 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-signature): Bug fix. Handle case of nil + `mh-signature-file-name' and hooks correctly. + + * mh-identity.el (mh-insert-identity): Refactor to use + mh-insert-signature + + * mh-comp.el (mh-signature-separator-p): Removed. + + * mh-comp.el (mh-insert-signature): Merge MIME awareness from + mh-insert-identity into this command. Allow + `mh-signature-file-name' to be a function to call. See if "-- " + needs to be inserted only after hooks have run. + +2003-08-07 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-compose-skipped-header-fields): Added + X-Image-URL. + (mh-autoload): Removed cookies. They aren't necessary in + mh-e.el, mh-utils.el, or mh-customize.el. + + * mh-e.el (mh-autoload): Removed cookies. They aren't necessary in + mh-e.el, mh-utils.el, or mh-customize.el. + + * mh-identity.el (mh-insert-identity): Made regexp for signature + separator more explicit. Hmmm, maybe we should create + mh-signature-separator-regexp... + + * mh-index.el (mh-replace-string): Moved to mh-utils.el. + + * mh-utils.el (mh-replace-string): Moved here from mh-index.el. + (mh-autoload): Removed cookies. They aren't necessary in mh-e.el, + mh-utils.el, or mh-customize.el. + + * mh-comp.el (mh-insert-signature): Added file argument to insert + a file other than mh-signature-file-name. Insert signature + separator, unless file already contains one. + +2003-08-06 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-folder-size, mh-folder-size-folder) + (mh-folder-size-flist): If flist is not present use folder to + find the number of messages in the folder. Also the .mh_sequences + file is read to find the number of unseen messages. + + * mh-utils.el (mh-flists-present-flag, mh-find-progs): Introduce + a new variable to test for the presence of the flists program and + set it in mh-find-progs. + +2003-08-06 Peter S Galbraith <psg@debian.org> + + * mh-customize.el: Change the order of `mh-identity-list' and + `mh-auto-fields-list' and remove byte-compilation defvar for + `mh-identity-list'. This fixes a customization bug for + `mh-identity-list', where it wasn't set correctly. + + * mh-identity.el (mh-identity-make-menu): mh-auto-fields-list may + not be bound yet when initially loaded. + +2003-08-06 Bill Wohler <wohler@newt.com> + + * mh-alias.el (mh-alias-add-address-under-point): Removed trailing + period from messages. The conventions say that errors should not + end with a period and that "Foo...done" messages should not end in + a period, but they aren't explicit about messages in general. + Given what the conventions *do* say, and because most of our + messages don't end with a period, let's just say that messages in + general don't end in a period, just like error messages. + + * mh-comp.el (mh-extract-rejected-mail, mh-letter-mode-message): + Ditto. + + * mh-e.el (mh-refile-a-msg): Ditto. + + * mh-funcs.el (mh-undo-folder): Ditto. + + * mh-mime.el (mh-mime-save-parts): Ditto. + + * mh-seq.el (mh-subject-to-sequence-unthreaded) + (mh-narrow-to-subject, mh-delete-subject): Ditto. + + * mh-index.el (mh-index-sequenced-messages) + (mh-index-new-messages, mh-index-ticked-messages): Discovered that + in general we should only use question marks in yes-or-no-p or + y-or-n-p prompts, but not in other prompts that use + completing-read and offer defaults. In these cases, use colons + instead (closes SF #730470). + + * mh-mime.el (mh-mime-save-parts): Ditto. + + * mh-utils.el (mh-prompt-for-folder): Ditto. + + * mh-alias.el (mh-alias-apropos): Multiple messages are usually + shown one at a time rather than appended. Send output to + mh-aliases-buffer instead of *Help*. + (mh-alias-local-users): Checkdoc fix. + + * mh-funcs.el (mh-undo-folder): Removed commented-out code since + its deadline had expired. + + * mh-utils.el (mh-aliases-buffer): New buffer name, used in + mh-aliases.el. + +2003-08-06 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-x-image-url-cache-canonicalize): Make this + function work for XEmacs too. + (mh-collect-folder-names): Use folders instead of flists. One + advantage is that folders is available on MH while flists is not. + Another is that if an explicit -sequence argument isn't given and + Unseen-Sequence profile is not present then flists croaks while + folders doesn't. + (mh-collect-folder-names-filter): Don't consider folder names that + start with a `.' character. This is needed since the folders + command doesn't filter them out like flists does. + + * mh-index.el (mh-replace-string): Add autoload for it. + +2003-08-05 Satyaki Das <satyakid@stanford.edu> + + * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw) + (mh-mml-forward-message): The variable mh-sent-from-msg can be a + list. So check that the value is really a number before using it + like one. + + * mh-comp.el (mh-insert-letter): Same as above. + + * mh-utils.el (mh-picon-get-image): Make the code that finds the + address of the sender more robust. + (mh-face-display-function): Make it work with XEmacs. + (mh-picon-image-types): A new variable that stores what image + types can be used. + +2003-08-05 Satyaki Das <satyakid@stanford.edu> + + * mh-customize.el (mh-tool-bar-define): Make the save button such + that is activated only if the buffer needs to saved. + + * mh-utils.el (mh-face-display-function, mh-picon-get-image): Some + domains, for instance cs.cmu.edu, don't have xpm files. So we need + to search for all three files. The change does that. + (mh-picon-file-contents): A utility function to return the + contents of a file as a string. + (mh-picon-get-image): Write it as a loop to make it simpler. + (mh-x-image-set-download-state): Make the link simpler. + +2003-08-04 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-x-image-url-display): Don't bother to try to + download image if we don't have the necessary tools to display + it. + (mh-face-display-function): Add preliminary support for "domain" + picons. + (mh-picon-get-image, mh-picon-generate-path): Functions to find + best match for domain in the From header field. + + * mh-e.el (mh-previous-unread-msg): If some of the messages in the + unseen sequence are not present in the folder buffer then calling + this function gets stuck and can't skip over them. The change + fixes this. + (mh-next-unread-msg): Same as above. + +2003-08-04 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-show-mode): Added cross reference to + mh-folder-mode in docstring (closes SF #728638). Added + \\{mh-show-mode-map} to show keymap. + + * mh-e.el (mh-folder-mode): Added information about ranges to + docstring (closes SF #728638). + + * mh-speed.el (mh-speed-refresh): New function that calls + mh-speed-flists and mh-invalidate-map. + (mh-folder-speedbar-key-map): Replaced keybindings for + mh-speed-invalidate-map and mh-speed-flists with a single binding + for mh-speed-refresh. + (mh-folder-speedbar-menu-items): Replaced menu items for Run + Flists and Invalidate Cached Folders with the single menu item + Refresh Speedbar in order to simplify the UI. + + * mh-customize.el (mh-fetch-x-image-url): Added DOS as another + reason not to set this to t. + +2003-08-04 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-scan-folder): Handle ranges from user input properly. + +2003-08-03 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-find-msg-get-num): Removed. If threading isn't + present, the messages are sorted by index. So `mh-goto-msg' was + implemented as a binary search and this function was used in that + implementation. So this isn't needed any more. + (mh-msg-search-pat): Removed. Before the advent of message + threading, this function was used to generate a regexp used to + search for a particular message. It isn't used anymore. The + variable `mh-scan-msg-number-regexp' should be updated and used in + `mh-goto-msg' instead of hardcoding the regexp in the code. Then + we might be able to better support other scan line formats in the + future. + + * mh-seq.el (mh-map-to-seq-msgs, mh-notate-seq): Removed. These + functions were used to notate user sequences. But calling + `mh-goto-msg' inside of a loop is inefficient. So the sequence + notation code was rewritten thereby making these functions + redundant. + (mh-copy-line-to-point): Removed. This function was used in the + implementation the now removed function `mh-copy-seq-to-point'. + That function was problematic and was replaced by the less general + `mh-copy-seq-to-eob'. This makes `mh-copy-line-to-point' + redundant. + (mh-region-to-msg-list): Removed since this is a special case of + the more general `mh-range-to-msg-list'. + + * mh-loaddefs.el: Regenerated. + +2003-08-03 Jeffrey C Honig <jch@honig.net> + + * mh-customize.el (mh-invisible-header-fields-default): Added + several new fields to hide. Sorted the list with sort-lines. + +2003-08-03 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-invisible-headers): Variable renamed to + `mh-invisible-header-fields-compiled'. + (mh-invisible-headers): Implement above change. + + * mh-utils.el (mh-display-msg): Idem. + + * mh-mime.el (mh-mm-inline-message): Idem. + + * mh-comp.el (mh-insert-letter): Idem. + +2003-08-03 Bill Wohler <wohler@newt.com> + + * mh-speed.el (mh-folder-speedbar-menu-items): Added separator + between standard and MH-E menu items. Use headline capitalization + in menu items. + + * mh-utils.el (mh-temp-fetch-buffer): New constant to hold + buffer name for wget output. + (mh-x-image-url-fetch-image): Use mh-temp-fetch-buffer instead + of hard-coded buffer name. Use make-temp-file to avoid race + conditions and subsequent security issues raised in make-temp-name + docstring. + +2003-08-03 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-wget-executable, mh-wget-choice, mh-wget-option) + (mh-x-image-url-fetch-image): Support the use of `curl' and + `fetch' as alternatives to `wget'. + (mh-wget-choice): Change order of search. + (mh-x-image-url-fetch-image): Rename buffer. + +2003-08-03 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-x-image-set-download-state) + (mh-x-image-get-download-state): Specially named symbolic links + are used to keep track of whether a X-Image-URL header field needs + to downloaded the next time it is seen. These functions get and + set the symlinks appropriately. + (mh-x-image-url-fetch-image): Simplified since the query has been + moved to `mh-x-image-url-display'. Also if wget isn't present then + try again next time since the user might install wget before + trying once more. + (mh-x-image-scale-and-display): Handle absence of the `convert' + program better. If it isn't present then we will try to display + the image the next time it is encountered. Also use the -geometry + option to convert since the -resize option isn't present in older + versions. + (mh-x-image-url-display): Move all the code that decides whether + an X-Image-URL header field will be fetched in this function. Also + remember the user's decision so that if the image couldn't be + fetched the first time, we will try to fetch it later on without + asking again. + +2003-08-02 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-local-users): Exclude all aliases already + in mh-alias-alist from `ali' (closes SF #772595). + +2003-08-01 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-x-image-display, mh-x-image-url-display): Avoid + a race. The X-Image-URL is displayed asynchronously. Suppose a + message with a image is shown with `mh-show'. If a different + message is displayed before the image can be fetched, then the new + message will have the image displayed. With this change the race + is less likely to happen. + +2003-08-01 Peter S Galbraith <psg@debian.org> + + * mh-inc.el (mh-inc-spool-map): Fix what `mh-inc-spool-map-help' + must look like as a fake `mh-help-messages' in order to work + correctly in mh-help. + +2003-07-31 Bill Wohler <wohler@newt.com> + + * mh-inc.el (mh-inc-spool-map): Use mh-help instead of + mh-ephem-message in order to display help in its own buffer + instead of minibuffer. + + * mh-utils.el (mh-help-buffer): New variable to hold the name of + the MH-E help buffer name. + + * mh-funcs.el (mh-help, mh-prefix-help): Use with-electric-help to + display help messages. I observed a friend with a vision + disability and the 5 seconds the help appeared on the screen was + not long enough for him to lock on it. I've therefore changed the + help function to display the help in its own buffer called *MH-E + Help* (closes SF #493740 and SF #656631). + + * mh-customize.el (mh-fetch-x-image-url): Changed default from nil + to 'ask. Updated docstring from manual. + (mh-invisible-header-fields-internal): Added X-Image-URL. + (mh-show-use-xface-flag): Updated docstring from manual. + (mh-x-face-file): Ditto. + + * mh-mime.el (mh-mhn-compose-external-type): Don't insert the + directory parameter if it's nil. The mhbuild man page indicates + that this parameter is optional, so this should be fine. + + * mh-comp.el (mh-letter-mode-map): Added keybindings for + mh-mhn-compose-anon-ftp and + mh-mhn-compose-external-compressed-tar. + (mh-letter-menu): Uncommented menu items for same. + +2003-07-30 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-pick.el (mh-do-pick-search): Removed since the function + `mh-pick-do-search' performs the same action as this function. + + * mh-index.el (mh-index-update-unseen): Removed since the + generalized sequence synchronization code that keeps sequences in + index folders in sync with the sequences in the source folders + makes this function redundant. + + * mh-e.el (mh-folder-unseen-seq-name, mh-folder-unseen-seq-list): + Removed. These two functions were used in the unseen sequence + highlighting before the sequence highlighting code was + generalized. In any event calls to the function + `mh-folder-unseen-seq-name' can be replaced by the variable + `mh-unseen-seq' and calls to `mh-folder-unseen-seq-list' can be + replaced with (cdr (assoc mh-unseen-seq mh-seq-list)). + (mh-unmark-all-headers): Removed since this function has been + superseded by mh-remove-all-notation. + (mh-map-over-seqs): Removed since we now have the generalized + iteration over message ranges (the `mh-iterate-on-range' macro) + that can be used instead. + (mh-notate-if-in-one-seq): Removed. This function was used for + changing the `%' notation for user sequences. It can't be used for + that purpose any more, since we have a different scheme now. + + * mh-unit.el (mh-unit-tests): Removed since it isn't needed any + more. + (mh-unit): Run all function that start with the string + "mh-unit-test-". + +2003-07-30 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-invisible-header-fields): Checkdoc fix. + + * mh-utils.el (mh-x-image-url-cache-canonicalize): Shortened using + example in files.el:make-backup-file-name-1. + (mh-face-display-function): Added X-Image-URL to docstring. + + * mh-unit.el (mh-unit-x-image-url-cache-canonicalize): New + function to test mh-x-image-url-cache-canonicalize since it lent + itself well to unit testing. Had to start somewhere! + (mh-unit-equal): New function that throws an error if RESULT + doesn't equal EXPECTED. + (mh-unit): Call mh-unit-x-image-url-cache-canonicalize. + +2003-07-29 Satyaki Das <satyakid@stanford.edu> + + * mh-unit.el (mh-unit-update-call-graph): Make the function work + better with dotted lists, that is lists of the form (a b c . d) + where `d' isn't nil. With this we are able to avoid marking some + functions as unused even though they are actually used in alists. + +2003-07-28 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-letter): Remove `mh-visible-headers' + operation. + + * mh-mime.el (mh-mm-inline-message): Same. + + * mh-utils.el (mh-display-msg): Same. + (mh-clean-msg-header): Make a note of above change. + + * mh-customize.el (mh-invisible-header-fields-internal): Renamed + from prior `mh-invisible-header-fields-default'. + (mh-invisible-header-fields-default): Renamed from prior + `mh-invisible-header-fields-default-override'. + (mh-invisible-header-fields): Renamed from prior + `mh-invisible-header-fields-user'. + (mh-visible-headers): Removed! We use invisible fields only now. + (mh-visible-header-fields): Removed! + +2003-07-28 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-invisible-header-fields-default): Added 3 + new fields to hide. + +2003-07-28 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-show): Add an extra argument to the function so + that interactive use will always force redisplay of the message. + + * mh-mime.el (mh-mime-display, mh-mm-inline-message): Bind the + variables `mm-verify-option' and `mm-decrypt-option' so that + verification and decryption of mail can happen without any + additional tinkering. + +2003-07-25 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-invisible-header-fields-default): New defvar + holding default fields to hide. This replaces the old + `mh-invisible-header-fields' defcustom. + (mh-invisible-header-fields-user): New defcustom. Users add + fields to suppress that we didn't include in + `mh-invisible-header-fields-default'. This could be named simply + `mh-invisible-header-fields' and it wouldn't really break anything + for users who have customized it to a long list now redundant with + `mh-invisible-header-fields-default'. + (mh-invisible-header-fields-default-override): New defcustom. + Users check off the fields they want displyed from what we + included in `mh-invisible-header-fields-default'. + (mh-invisible-headers): Function adapted to new variables. + +2003-07-25 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-inc-folder): If the user is in a different folder + displaying a message and runs mh-inc-folder, then the folder + changes to +inbox but the show window continues to display the + message in the old folder. The change fixes this. + (mh-visit-folder): Make the handling of the show window similar to + that of mh-inc-folder. + +2003-07-24 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-folder-message-menu, mh-folder-folder-menu): Use the + predicate mh-outstanding-commands-p instead of its exapansion. + Also use the same label in both menus. + (mh-outstanding-commands-p): Generalized so that it will work in + mh-show-mode buffers as well. + + * mh-customize.el (mh-tool-bar-define): Enable tool-bar button for + mh-execute-commands only if there are pending deletes or refiles. + +2003-07-19 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-show-msg): If a unseen message is first marked + for deletion/refiling and then displayed, the bold highlighting + does not go away. This change fixes that. + + * mh-seq.el (mh-msg-is-in-seq): Fix a bug in the function. If any + message was marked for refiling, then the function would have you + believe that every message in the folder is being refiled. + +2003-07-17 Bill Wohler <wohler@newt.com> + + * mh-e.el: Removed email address for Stephen Gildea's in Change + Log at his request (damn spammers). Removed other email addresses + while I was at it since the SourceForge URL should be sufficient + contact information. + + (mh-scan-format-*mh): Fixed typo in comment above these variables. + These variables are used if mh-scan-format-file is t, not nil. + Also mh-scan-format-file is no longer "above" (courtesy Stephen + Gildea). + +2003-07-17 Satyaki Das <satyakid@stanford.edu> + + * mh-mime.el (mh-mhn-quote-unescaped-sharp): New function that + quotes `#' characters in the first column that aren't part of a + MHN directive. + (mh-mhn-directive-present-p): Generalized to allow the function + to search for MHN directives in a part of the buffer. + (mh-edit-mhn): Quote unescaped `#' characters in the draft (closes + SF #762464). + +2003-07-16 Satyaki Das <satyakid@stanford.edu> + + * mh-alias.el (mh-alias-read-address-map): If + mh-alias-flash-on-comma is nil when mh-alias is loaded, then + setting mh-alias-flash-on-comma to t later on doesn't turn on + address completion display till Emacs is restarted. The change + fixes this. + +2003-07-15 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-cmd-note): Cleaned up docstring (changed phrase + to sentences). Moved to Scan Line Formats section. + (mh-scan-msg-number-regexp) + (mh-scan-msg-overflow-regexp, mh-scan-msg-format-regexp) + (mh-scan-msg-format-string, mh-scan-msg-search-regexp): Cleaned up + docstrings (changed phrases to sentences). + (mh-note-seq): Cleaned up docstring (changed phrase to sentences). + Also, this variable is now a character and not a string. Moved to + Scan Line Formats section. + + * mh-funcs.el (mh-note-copied, mh-note-printed): Cleaned up + docstrings (changed phrases to sentences). Also, these variables + are now characters and not strings. + + * mh-e.el (mh-scan-format-mh, mh-scan-format-nmh): Filled. I was + hoping to quote the hint `t' but checkdoc wouldn't let me. + (mh-note-deleted, mh-note-refiled, mh-note-cur): Moved to Scan + Line Formats section. + (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp) + (mh-scan-refiled-msg-regexp, mh-scan-valid-regexp) + (mh-scan-cur-msg-number-regexp, mh-scan-date-regexp) + (mh-scan-rcpt-regexp, mh-scan-body-regexp) + (mh-scan-subject-regexp, mh-scan-format-regexp): Cleaned + up docstrings (changed phrases to sentences). + (mh-scan-cur-msg-regexp): Marked this variable as obsolete; it + should be removed for 8.0. + + * mh-comp.el (mh-note-repl, mh-note-forw, mh-note-dist): Cleaned + up docstrings (changed phrases to sentences). Also, these + variables are now characters and not strings. + +2003-07-15 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-index-update-single-msg) + (mh-index-create-sequences): Handle the situation where there are + copies of the exact same message correctly. + +2003-07-15 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-thread-update-scan-line-map): Modified since + notation is already a character. + + * mh-utils.el (mh-note-seq): Convert from string to character. + (mh-notate): Modified since characters are used to notate instead + of strings of length one. + + * mh-comp.el (mh-note-repl, mh-note-forw, mh-note-dist): Convert + from string to characters. + + * mh-e.el (mh-note-deleted, mh-note-refiled, mh-note-cur): Same as + above (closes SF #770772). + (mh-unmark-all-headers): Modified since mh-note-* variables are + now characters. + (mh-remove-sequence-notation): The mh-notate function remembers + the previous notation. Before the change to the mh-note-* + variables, mh-notate would only remember the change if a string + was used to notate the message. Now mh-notate is always called + with a character notation. So the deletion has to take place + explicitly. + +2003-06-28 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-mhn-directive-present-p): If shell comments are + present that have a space after the # but no content, then this + function would throw an error. This has been fixed (closes SF + #762458). + +2003-06-27 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-index-search): Use the new and improved + mh-index-new-folder. + (mh-index-new-folder): Improved so that redoing the same search + will reuse the old index folder. + (mh-index-folder-search-regexp): New function which that extracts + out the search expression that produced the index folder. + +2003-06-24 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Set to 7.4.1+cvs. + +2003-06-25 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.4.1. + + * MH-E-NEWS, README: Updated for release 7.4.1. + + * mh-e.el (Version, mh-version): Updated for release 7.4.1. + +2003-06-25 Bill Wohler <wohler@newt.com> + + * mh-unit.el (require 'cl): Added. Needed when compiling + separately. + + * Makefile (clean): Now a double-colon rule. Added a second clean + target to remove mh-unit.elc. + (compile): Removed mh-unit.elc. + (mh-unit.elc): New target used to compile mh-unit. + +2003-06-24 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Set to 7.4+cvs. + +2003-06-24 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.4. + + * MH-E-NEWS, README: Updated for release 7.4. + + * mh-e.el (Version, mh-version): Updated for release 7.4. + +2003-06-24 Bill Wohler <wohler@newt.com> + + * mh-alias.el (mh-alias-gecos-name, mh-alias-local-users) + (mh-alias-suggest-alias): s/gcos/gecos. The original acronym was + GECOS but was later renamed to GCOS (see + http://info.astrian.net/jargon/terms/g/GCOS.html). But the term + really needs to match the field named pw_gecos in struct passwd in + /usr/include/pwd.h + + * mh-customize.el (mh-letter-faces): New group to house + mh-letter-header-field-face. + (mh-interpret-number-as-range-flag) + (mh-kill-folder-suppress-prompt-hook): Use "you" instead of "the + user" to make text more friendly. + (mh-index-ticked-messages-folders, mh-visible-headers) + (mh-visible-header-fields): Alphabetized. + (mh-alias-passwd-gcos-comma-separator-flag): Alphabetized and + s/gcos/gecos. + (mh-alias-local-users-prefix): Fixed docstring. Prefixes are + prepended, not appended. Additional checkdoc fix. + (mh-letter-header-field-face): Set group to new group + mh-letter-faces and moved option into this group. + + * mh-index.el (mh-index-sequenced-messages): Improved wording of + docstring and mentioned use of prefix argument. + + * mh-seq.el (mh-widen): Made docstring more accurate (hopefully!). + +2003-06-18 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-replace-string): Modified to preserve case of + replacement text. + (mh-index-parse-search-regexp): Preserve case of search terms. + This is needed to take advantage of the acronym indexing in + swish++ (closes SF #755718). + +2003-06-13 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-show-index-sequenced-messages): Interactive + function callable from the show buffer. + (mh-show-folder-map): Add key binding for "F q". + + * mh-e.el (mh-folder-map): Same as above. + + * mh-index.el (mh-index-sequenced-messages): Add interactive spec + to the function (closes SF #718833). + +2003-06-13 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-flists-execute): Needed to expand mhpath too. + +2003-06-12 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-flists-execute): Modified so that flists + present in mh-progs is called. + +2003-06-07 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-forward, mh-forward): Use (mh-mail-header-end) to + find the end of headers instead of doing an re-search-forward + based on mh-mail-header-separator. + +2003-06-06 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-toggle-header-field-display): Make the + function callable from the show buffer. This means that the + buffer is temporarily made writable and the modification status + of the buffer restored to the original value. + +2003-06-06 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-address-mail-regexp): Bug fix! It wasn't a true + copy of the goto-addr variable. My modification only recognized + addresses with one dot after the @. Sorry about that. + +2003-06-05 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-replace-in-string): Move comment into doc + string to satisfy checkdoc. + + * mh-alias.el (mh-alias-apropos): Checkdoc fix. + +2003-06-05 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-identity-list): Fixed typo in docstring. + +2003-06-05 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-complete-function-alist): Add bcc an reply-to. + +2003-06-04 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-complete-function-alist): Add dcc. + +2003-06-03 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-replace-in-string): New function name instead of + `dired-replace-in-string'. + * mh-alias.el (mh-alias-gcos-name): Use it. + + * mh-alias.el (mh-alias-apropos): New command. Show all aliases + that match REGEXP either in name or content. + + * mh-alias.el (mh-alias-suggest-alias): Add no-comma-swap optional + arg. + (mh-alias-canonicalize-suggestion): Change a comma to a period in + created aliases. + (mh-alias-local-users): Call `mh-alias-suggest-alias' with + `no-comma-swap' arg set to t. + + * mh-alias.el (mh-alias-local-users): Fix case of nil + `mh-alias-passwd-gcos-comma-separator-flag'. + + * mh-alias.el (mh-alias-gcos-name): Fix for case of empty gcos + name field. + (mh-alias-local-users): Fix same. + + * mh-alias.el (mh-alias-canonicalize-suggestion): Replace use by + verbose `replace-regexp' by a looped `replace-match' + +2003-06-02 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (dired-replace-in-string): Bind if not already + defined. Borrowed from dired.el + + * mh-alias.el (mh-alias-gcos-name): switch to using + dired-replace-in-string. + +2003-06-02 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-letter-font-lock-keywords): Fontify header + fields in the draft buffer that aren't skipped when navigating + with TAB (or S-TAB). + + * mh-customize.el (mh-clean-message-header-flag) + (mh-invisible-headers, mh-invisible-header-fields) + (mh-alias-passwd-gcos-comma-separator-flag): Checkdoc fix. + (mh-letter-header-field-face): New face to fontify the header + fields. + + * mh-comp.el (mh-insert-auto-fields-done-local): Checkdoc fix. + (mh-letter-mode, mh-letter-mail-header-end-marker): Remember the + end of the message header in a marker. This is used to fontify the + header fields. + (mh-font-lock-field-data, mh-letter-header-end): Functions used + to fontify message header fields. + + * mh-alias.el (mh-alias-gcos-name): Checkdoc fix. + +2003-06-02 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-gcos-name): New function. Return a usable + address string from a GCOS-NAME and USERNAME. + (mh-alias-local-users): Use it. + + * mh-customize.el (mh-alias-passwd-gcos-comma-separator-flag): New + defcustom. Whether the gcos field in the passwd file uses comma as + a separator. + + * mh-customize.el (mh-alias-local-users-prefix): New + defcustom. String to append to the real names of users from the + passwd file. If nil, use the username string unmodified instead of + the real name from the gcos field of the passwd file. + + * mh-alias.el (mh-alias-local-users): Use it to generate aliases + which by default are now the real name prefixed by "local." + +2003-06-01 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-modify-header-field): Bug fix. Calling with with + a value that was already inserted causes it to get inserted a + second time. I have wrapped the value around \b word delimiters. + Hope there are no side effects for other code. + + * mh-comp.el (mh-insert-auto-fields): Attempt regardless of + `mh-insert-auto-fields-done-local' flag in interactive use. + + * mh-comp.el (mh-insert-auto-fields-done-local): Keep track of + whether `mh-insert-auto-fields' was called in a buffer. + (mh-insert-auto-fields): Set it and use it. Also, don't enter an + identity if one was already entered manually. + (mh-send-letter): Call `mh-insert-auto-fields' again when sending + message. + (mh-compose-and-send-mail): Call `mh-insert-auto-fields' _after_ + `mh-letter-mode' so `mh-identity-local' doesn't get cleared by the + mode invocation. + +2003-06-01 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-seq.el (mh-thread-parse-scan-line): The value of + mh-scan-field-from-start-offset was hardcoded in one place. The + change fixes that. + + * mh-utils.el (mh-show-mode): Setup mh-show-mode to display + elipsis for truncated header fields and to skip over them quickly. + (mh-clean-msg-header): Make another pass over the message header + fields truncating long headers. + + * mh-comp.el (mh-letter-complete): Remove unnecessary autoload. + (mh-letter-toggle-header-field-display): Take into account that + an empty line can also end the message header. The function was + originally written with the draft buffer in mind. + +2003-06-01 Mark D. Baushke <mdb@gnu.org> + + * mh-comp.el (mh-letter-mode-map): Do not steal C-t. Use C-c C-t + for the mh-letter-toggle-header-field-display command. + +2003-05-31 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-visible-headers): Changed to a defvar that + will be set using new `mh-visible-headers' function using + `mh-visible-header-fields' as input. + (mh-visible-headers): New function, described above. + (mh-visible-header-fields): New defcustom. The UI to set + `mh-visible-headers'. + (mh-invisible-header-fields-set): Deleted. Code merged into + defcustom since it's so short. + +2003-05-31 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-toggle-header-field-display): Extended to + truncate headers if they are too long. + (mh-letter-truncate-header-field): Make code that would be + duplicated into a function. + (mh-letter-hide-all-skipped-fields): Modified so that fields that + are important are hidden if they are too long. + +2003-05-31 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el ("tool-bar"): Since tool-bar isn't available on + XEmacs, requiring it causes problems. So load it instead. + (mh-do-at-event-location): New macro to do stuff at location of + events. This has been refactored out of mh-push-button. + + * mh-mime.el (mh-push-button): Simplified since it now uses the + mh-do-at-event-location macro. + + * mh-comp.el (mh-hidden-header-keymap): Keymap to make mouse + clicks on header toggle its display. + (mh-letter-toggle-header-field-display-button): Interactive + function to toggle header display when mouse button is clicked. + +2003-05-31 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-mode): Remove conditional on tool-bar-mode. + + * mh-comp.el (mh-letter-mode): Same. + + * mh-utils.el (mh-show-mode): Same. + +2003-05-30 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (tool-bar): Load tool-bar explicitly. This avoids + problems with incorrect initialization of tool-bar-map otherwise. + +2003-05-30 Peter S Galbraith <psg@mixed.dyndns.org> + + * mh-comp.el (mh-modify-header-field): Minor fix of spaces for + when an entry already existed. + (mh-insert-auto-fields): Make interactive. Add optional `quiet' + arg for use when called systematically on every buffer. Won't be + used interactively for more verbose output. + (mh-letter-mode-map): Add \C-c\M-d keybinding for + mh-insert-auto-fields. + + * mh-identity.el (mh-identity-make-menu): Add a menu entry in + Identity menu for mh-insert-auto-fields. + + * mh-customize.el (mh-invisible-header-fields): Add entries for + `Envelope-to' and `X-Original-To'. + +2003-05-30 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-mode): Skip over invisible text quickly. + +2003-05-30 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-mode): Use text properties to achieve + invisibility. This is more portable and the same code can be used + for all Emacs versions. + (mh-letter-toggle-header-field-display): Rewritten to use text + properties. + (mh-dead-overlay-p, mh-letter-hidden-header-fields)): Removed. + +2003-05-29 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-hidden-header-fields, mh-letter-mode): Add + a hash table, initialized it in mh-letter-mode, to remember the + overlays introduced to hide long headers fields. + (mh-insert-x-mailer): checkdoc fix. + (mh-compose-and-send-mail): Hide unimportant message header + fields. + (mh-letter-header-field-regexp, mh-letter-header-field-at-point) + (mh-letter-next-header-field, mh-letter-previous-header-field): + Add a variable that contains the header-field name regexp and use + it instead of the regexp directly. + (mh-letter-toggle-header-field-display, mh-letter-mode-map): Add + new key binding in mh-letter-mode that toggles display of long + header fields, in mh-letter-mode. + (mh-dead-overlay-p): A predicate which checks if a given header + field has an active overlay hiding it. + (mh-letter-hide-all-skipped-fields): New function that shortens + uninteresting headers. + +2003-05-29 Eric Ding <ericding@acorn.bethesda.net> + + * mh-comp.el (mh-letter-next-header-field-or-indent): Call + indent-relative rather than indent-for-tab-command. + +2003-05-29 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-complete-or-space): The meaning of the + customizable variable was reversed. Also make the doc string more + accurate. + +2003-05-28 Satyaki Das <satyakid@stanford.edu> + + * mh-customize.el (mh-compose-skipped-header-fields): New + customizable variable that lists headers that are skipped. + (mh-compose-space-does-completion-flag): Option to do completion + with space (closes SF #745634). + + * mh-comp.el (mh-insert-x-mailer): Check the value of + mh-insert-x-mailer-flag in this function instead of in its caller. + (mh-compose-and-send-mail, mh-send-letter): Insert X-Mailer and + X-Face headers when the draft is first presented to the user + instead of when the mail is sent (closes SF #745624). + (mh-letter-complete-or-space): Allow for this key binding to be + overridden. + (mh-letter-next-header-field): Fix a problem with multiline header + fields. + (mh-letter-next-header-field, mh-letter-previous-header-field): + Make these functions skip unwanted header fields. + (mh-letter-skipped-header-field-p): New predicate that checks if a + header field is to be skipped. + + * mh-seq.el (mh-thread-inc): Inc'ing email in threaded mode was + causing duplication of the current notation. The change fixes that. + +2003-05-28 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-beginning-of-word): Generalize it to skip + arbitrary number of words. + (mh-letter-complete-or-space): New interactive function that + allows space character to be used for completion. + (mh-letter-mode-map): Add key binding to allow space to be used + for completion. + +2003-05-27 Satyaki Das <satyakid@stanford.edu> + + * mh-customize.el (mh-compose-prompt-flag): Customizable variable + that controls whether the user is prompted when composing a draft. + It replaces mh-dont-prompt-for-address-flag (closes SF #745622). + + * mh-comp.el (mh-letter-next-header-field): If the point is in + the header field name, then go the start of the header field + instead of the next field. + (mh-interactive-read-address, mh-interactive-read-string) + (mh-letter-adjust-point): Use mh-compose-prompt-flag instead of + mh-dont-prompt-for-address-flag. + +2003-05-27 Satyaki Das <satyakid@stanford.edu> + + * mh-customize.el (mh-tool-bar-define): Fix incorrect usage of + set-specifier (closes SF #745655). Also the button enabling code + interacts poorly with font-lock in XEmacs. So disable that. + +2003-05-26 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-folder-from-address): The function + message-fetch-field expects that the buffer is narrowed to the + mail header. The change makes sure that this is indeed the case. + + * mh-mime.el (mh-add-missing-mime-version-header) + (mh-decode-message-body): Same as above. + +2003-05-25 Satyaki Das <satyakid@stanford.edu> + + * mh-alias.el (mh-alias-minibuffer-confirm-address): Modified to + use mh-beginning-of-word. + + * mh-comp.el (mh-letter-confirm-address): Calling + mh-alias-reload-maybe can be expensive. So do it only if we really + need to. + +2003-05-25 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-comp.el (mh-letter-confirm-address): Load aliases if not yet + loaded. + + * mh-alias.el (mh-alias-reload-maybe): Autoload it since it is + used in mh-comp.el. + +2003-05-24 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-letter-skip-leading-whitespace-in-header-field): + New function to skip leading space and tab characters when placing + point in a header field. + (mh-letter-next-header-field, mh-letter-previous-header-field): + Skip leading whitespace when using TAB to navigate to header + fields. + (mh-letter-confirm-address): New interactive function that + displays the last expansion of the last alias when "," is typed. + (mh-letter-mode-map): Add key binding for "," (closes SF #745634). + +2003-05-23 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el (mh-edit-again, mh-forward, mh-send) + (mh-send-other-window, mh-send-sub): Modified so that if + mh-dont-prompt-for-address-flag is non-nil, then MH-E won't prompt + for addresses to send mail to and instead directly jump to the + draft (closes SF #745622). + (mh-letter-complete-function-alist): An alist that is used to + decide which completion function to use in which header. This + variable should probably be customizable. + (mh-letter-complete): Now uses mh-letter-complete-function-alist. + (mh-letter-header-field-at-point, mh-letter-next-header-field) + (mh-letter-next-header-field-or-indent) + (mh-letter-previous-header-field): Commands for easier navigation + to header fields. + (mh-dont-prompt-for-address-flag): Variable which controls + whether MH-E prompts for addresses. + (mh-interactive-read-address, mh-interactive-read-string): Two + functions to ask user for input depending on the value of the + above flag. + (mh-letter-adjust-point): New function that sets point to the + first header field. + (mh-letter-mode-map): Add key bindings for TAB and S-TAB (closes + SF #745627). + +2003-05-23 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-comp.el (mh-complete-word): New function which is + approximately equivalent to mail-abbrev-complete-alias. + (mh-beginning-of-word): Refactor repeated code into its own + function. + (mh-folder-expand-at-point): Make Fcc completion work in XEmacs + by not using mail-abbrev-complete-alias. + + * mh-alias.el (mh-alias-letter-expand-alias): Make alias + expansion work in XEmacs. Replace the use of the function + mail-abbrev-complete-alias, which isn't present in XEmacs. + + * mh-mime.el (mh-mml-to-mime): If a MIME message is created + immediately after starting MH-E then invoking mh-mml-to-mime + causes an error because "message" isn't being loaded. The change + works around this problem. + (mh-mime-maybe-display-alternatives): Give better indication of + which MIME parts are alternatives. + +2003-05-22 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-add-sequence-notation, mh-remove-sequence-notation): + Just delete and add the same character in the scan line to make + font-lock refontify it. The previous trick of removing all text + properties didn't work in XEmacs. + + * mh-seq.el (mh-put-msg-in-seq): Complain if the user tries to + create an invalid MH sequence. + + * mh-mime.el (mh-mime-display-alternative): Modified to + optionally display alternatives as buttons. + (mh-mime-maybe-display-alternatives): New function which displays + alternative MIME parts as buttons. + (mh-mime-save-part): Initially mh-mime-save-parts-directory is + nil and calling file-name-as-directory with nil arg leads to an + error. So fall back on the default-directory in that case. + + * mh-customize.el (mh-display-buttons-for-alternatives-flag): New + customizable variable that controls display of the alternative + MIME parts (closes SF #741288). + +2003-05-22 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-invisible-header-fields): Commented out + "User-Agent:". It's similar to X-Mailer, so display it. + +2003-05-21 Satyaki Das <satyakid@stanford.edu> + + * mh-customize.el (mh-tool-bar-define): Add an optional argument + to the button description that can dynamically enable/disable + buttons. + (mh-tool-bar-define): The alias grabbing button is disabled if the + current message doesn't have a From header or if the sender is + already in the user's alias. This functionality was inadvertently + lost when the Emacs/XEmacs toolbar unification took place. + +2003-05-20 Satyaki Das <satyakid@stanford.edu> + + * mh-unit.el (mh-unit-construct-call-graph): Be more aggressive + and flag interactive functions that aren't autoloaded or have no + key bindings. + (mh-unit-interactive-function-p): Remove now unused function. + (mh-unit, mh-unit-construct-call-graph): Replace mh-files with + mh-unit-files. + +2003-05-20 Bill Wohler <wohler@newt.com> + + * mh-unit.el (mh-prune-trailing-spaces): Renamed to + mh-unit-prune-trailing-spaces to clean up the namespace. + (mh-files): Renamed to mh-unit-files. Ditto. + (mh-unit): Checkdoc fix. + + * mh-index.el (mh-index-p): Added autoload cookie since mh-index-p + is used by mh-customize.el. This calls for another mh-unit test + that looks for mh-autoloads for functions that are no longer used + in other files. + + * mh-loaddefs.el: Regenerated. + +2003-05-20 Satyaki Das <satyakid@stanford.edu> + + * mh-unit.el (mh-unit-construct-call-graph): Factor out the code + to read the lisp files to a separate function. Also change it to + construct a function call-graph. Autoloaded functions are taken + into account. + (mh-unit-find-all-used-functions, mh-unit-called-functions) + (mh-unit-find-all-unused-functions): Find all unused functions by + computing a fixed point starting from the set of top level + functions. + (mh-unit-analyze-block): Removed. + (mh-unit-update-call-graph): mh-unit-functions-called was renamed + with modifications to update the function call graph. + +2003-05-19 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-utils.el (mh-notate): Modified to keep track of notation + that was replaced when sequence notation is added. Thus when the + sequence is deleted, the original notation is recovered. + (mh-add-msgs-to-seq): Modified to work with the new sequence + notation code. + + * mh-seq.el (mh-delete-seq, mh-put-msg-in-seq): Simplified since + we don't need to handle tick and unseen sequences specially any + more. + (mh-narrow-to-seq): Don't need to call mh-notate-user-sequences + since mh-copy-seq-to-eob already does that. + (mh-widen): Remove sequence notation, so that notation when + messages are replied to aren't lost. + (mh-copy-seq-to-eob): Simplified with the use of + mh-iterate-on-range. + (mh-thread-inc): This function doesn't need to notate user + sequences since its callers already do that. + (mh-thread-parse-scan-line): Simplified since mh-note-seq doesn't + appear in scan lines it is given as arguments. + (mh-thread-update-scan-line-map): Remove the test, since its + caller already does the required check. + (mh-thread-folder): Simplified by the use of mh-iterate-on-range. + (mh-tick-add-overlay, mh-tick-remove-overlay, mh-notate-tick): + These functions aren't needed any more, since overlays aren't used + any more. Also overlays aren't portable to XEmacs, so nasty + conditional code that used overlays in Emacs and extents in Xemacs + have been eliminated. + (mh-toggle-tick): Generalize it to work on a range of messages + like the other interactive messages. + + * mh-funcs.el (mh-undo-folder): Use mh-remove-all-notation + instead of mh-unmark-all-headers. + + * mh-e.el (mh-folder-font-lock-keywords): The entry for unseen + sequence highlighting is now done by the macro. + (mh-generate-sequence-font-lock): New macro to highlight any + arbitrary sequence. This macro is invoked twice to get the + highlighting for unseen and tick sequences. + (mh-sequence-notation-history, mh-folder-mode): New variable that + keeps track of the old notation when a message is notated with + mh-note-seq. + (mh-regenerate-headers, mh-get-new-mail): Add appropriate calls to + mh-notate-user-sequences and mh-remove-all-notation. + (mh-unmark-all-headers): Add comment that this function shouldn't + be used any more. + (mh-add-sequence-notation, mh-remove-sequence-notation): New + functions to notate message with mh-note-seq and to remove it. + (mh-remove-all-notation): Simplified to use mh-iterate-on-range. + (mh-process-commands): Use mh-remove-all-notation instead of + mh-unmark-all-headers. + (mh-notate-user-sequences, mh-delete-msg-from-seq): Simplified + since the tick and unseen sequences don't need special handling + any more. + (mh-internal-seq): Make it possible to dynamically change what + sequences are treated as internal (internal means font lock is + used to highlight the sequence). + (mh-clear-text-properties): Removed since it isn't needed + anymore. + +2003-05-19 Satyaki Das <satyakid@stanford.edu> + + * mh-unit.el (mh-unit-analyze-block, mh-unit-interactive-function-p) + (mh-unit-find-all-unused-functions): Change argument name bl to + block. + +2003-05-19 Satyaki Das <satyakid@stanford.edu> + + * mh-unit.el (mh-unit-find-all-unused-functions): New interactive + function to find all unused functions in MH-E. + (mh-unit-analyze-block, mh-unit-interactive-function-p) + (mh-unit-functions-called): Functions used by + mh-unit-find-all-unused-functions do its job. + + * Makefile (compile): Byte-compile mh-unit.el, since the analysis + to find unused code runs faster when compiled. + +2003-05-18 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-seq.el (mh-notate-deleted-and-refiled): Add autoload + declaration since this function is used in mh-index.el. + + * mh-e.el, mh-customize.el, mh-utils.el: Adjust require/provide + statements so that mh-e.el isn't loaded twice. + +2003-05-15 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-defun-show-buffer): Arrange for the current + line in the folder buffer to be highlighted even when we are in + the show buffer. + +2003-05-14 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-read-range): Allow this to work on invalid + sequences that only MH-E knows about. + + * mh-index.el (mh-create-sequence-map, mh-index-add-to-sequence) + (mh-index-delete-from-sequence): Don't consider sequences that + aren't valid MH sequences. + + * mh-e.el (mh-valid-seq-p): New predicate to check if a symbol + could be a MH sequence. + (mh-undefine-sequence, mh-define-sequence): Don't execute "mark" + unless the sequence name is a valid MH sequence. + + * mh-utils.el (mh-exec-cmd): In case an error happens in the + call-process and non-strings are present in ARGS, then the error + message isn't properly displayed. The change fixes this. + +2003-05-14 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-mime-save-part): Bug Fix: Make sure + `mm-default-directory' gets a trailing "/" if + `mh-mime-save-parts-directory' doesn't have one. Otherwise the + default in the prompt of `mh-mm-save-part' will be wrong. Perhaps + `mh-mm-save-part' needs to do this check itself. + +2003-05-14 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-unpropagated-sequences): New function and + variable to keep track of sequences that shouldn't be propagated. + (mh-create-sequence-map, mh-index-add-to-sequence) + (mh-index-delete-from-sequence): Use mh-unpropagated-sequences to + stop changes to some sequences being reflected back to the source + folders. + +2003-05-13 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-e.el (mh-process-commands): Preserve sequences when messages + are refiled (closes SF #737128). + + * mh-index.el (mh-create-sequence-map) + (mh-index-create-sequences): Refactor code that is reused into a + new function. + + * mh-customize.el (mh-refile-preserves-sequences-flag): New + customizable flag that controls whether sequences are preserved + when messages are refiled. + +2003-05-13 Eric Ding <ericding@alum.mit.edu> + + * mh-e.el (mh-scan-format): The argument for scan format files + should be -form, not -format. + +2003-05-13 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-widen): The scan line map stack was not being + properly updated when ALL-FLAG is non-nil. The change fixes that. + + * mh-e.el (mh-reset-threads-and-narrowing): The change resets the + scan line map stack. + +2003-05-12 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-seq.el (mh-thread-scan-line-map-stack) + (mh-thread-old-scan-line-map): Instead of the old scan line map, + now we need to maintain a stack of scan line maps. + (mh-narrow-to-seq): Modified so that multiple level of narrowings + can be done. We now maintain a stack of old views instead of + hiding the old scan lines. This makes it possible to have + multiple levels of narrowings. + (mh-widen): A optional prefix arg was added to allow undoing all + narrowing. + (mh-read-seq-default, mh-read-range): Don't use + mh-narrowed-to-seq, since it doesn't exist any more. + (mh-thread-initialize-hash, mh-thread-initialize): The + mh-thread-initialize function has been refactored. + (mh-thread-update-scan-line-map): Maintain notations in the stack + of scan line maps. + (mh-notate-tick, mh-toggle-tick): Simplified, since we don't have + mh-narrowed-to-seq any more. This means there is a slight loss of + functionality. Earlier if we narrowed to the tick sequence the + ticked messages weren't highlighted. This feature isn't present + any more. + + * mh-e.el (mh-execute-commands, mh-reset-threads-and-narrowing) + (mh-folder-sequence-menu, mh-get-new-mail): Use + mh-folder-view-stack instead of the now removed + mh-narrowed-to-seq. + (mh-narrowed-to-seq, mh-tick-seq-changed-when-narrowed-flag): + These variables have been removed. + (mh-folder-view-stack): New variable to keep track of a stack of + narrowings. + (mh-execute-commands, mh-get-new-mail): Add extra argument to + mh-widen so that all narrowings are undone. + + * Makefile (MH-E-SRC, MH-E-OTHERS): Move mh-gnus.el from MH-E-SRC + to MH-E-OTHERS so that it isn't byte compiled. + +2003-05-10 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-read-seq): Improve the function a bit by adding + history to the sequence prompt. + +2003-05-09 Satyaki Das <satyakid@stanford.edu> + + * mh-gnus.el: New file that won't be byte-compiled. From now on + having different Gnus versions at run-time and compile-time won't + cause errors in MH-E. + + * mh-mime.el (mh-small-show-buffer-p, mh-display-smileys) + (mh-display-emphasis): Handle all legal values of + font-lock-maximum-size. The existing code assumed didn't consider + the case where it could be an alist. + (mh-small-image-p): Simplified, so that aliasing XEmacs functions + in Emacs isn't necessary any more. + (mh-mm-display-part): Remove unnecessary call to fboundp. The + mh-funcall-if-exists does that for us any way. + (mh-defun-compat, gnus-local-map-property, mm-merge-handles) + (mm-set-handle-multipart-parameter, mm-readable-p) + (mm-long-lines-p, mm-keep-viewer-alive-p, mm-destroy-parts) + (mh-mm-save-part, mm-handle-multipart-ctl-parameter): These + compatibility functions have been moved to mh-gnus.el. + + * Makefile (MH-E-SRC): Add mh-gnus.el. + + * mh-seq.el (mh-narrow-to-header-field) + (mh-current-message-header-field): Checkdoc fixes. + + * mh-e.el (mh-undefine-sequence): Since mh-coalesce-msg-list + returns a list, apply is needed. + +2003-05-09 Noel Cragg <noel@red-bean.com> (tiny change) + + * mh-junk.el (mh-spamassassin-blacklist): Separate "--local" and + "--no-rebuild" arguments to call-process. + [Patch committed by satyaki] + +2003-05-08 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-translate-range): Take into account differnt + semantics of split-string in Emacs and XEmacs. + (mh-read-pick-regexp, mh-narrow-to-from, mh-narrow-to-cc) + (mh-narrow-to-to, mh-narrow-to-header-field) + (mh-current-message-header-field, mh-narrow-to-range): New + narrowing functions that can select messages based on different + message headers. + + * mh-utils.el (mh-show-limit-map): Add new narrowing functions + callable from the show buffer. + + * mh-e.el (mh-help-messages): Add help text for new functions. + (mh-limit-map): Add new narrowing functions (closes SF #732823). + +2003-05-07 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-collect-folder-names): Use mh-exec-daemon to + run flists. This means we don't have to remember to expand the MH + executable in the mh-progs path. + (mh-exec-cmd-daemon): Return the new process object produced. + +2003-05-06 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-folder-font-lock-unseen): Use mh-seq-list to do + unseen sequence highlighting instead of reading the .mh_sequences + file from disk every time. + +2003-05-05 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-show-sequence-map): Add key binding for S' + (closes SF #732825). + + * mh-e.el (mh-sequence-map): Ditto. + (mh-help-messages): Updated for S'. + +2003-05-04 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-index-write-data): The with-temp-buffer macro + is a bit better than write-file, so use that instead. + +2003-05-03 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-index-update-maps, mh-index-search) + (mh-index-sequenced-messages): Write index data to disk. This + allows us to recover index folder information if Emacs is + restarted, or the index folder is visited after the buffer has + been killed (closes SF #701762). + (mh-index-write-data, mh-index-read-data) + (mh-index-write-hashtable, mh-index-read-hashtable): Functions to + store and read index data information to disk. + (mh-index-insert-folder-headers, mh-index-group-by-folder): We + can no longer use object identity to compare strings, since they + might have been read back from disk. + + * mh-e.el (mh-index-data-file): New variable that stores the name + of the file that keeps track of index folder data. + (mh-make-folder): Read index folder data if available. + + * mh-utils.el (mh-show, mh-summary-height, mh-modify): Make + checkdoc happy. + + * mh-seq.el (mh-tick-add-overlay): Rearrange code to make code + more uniform. + + * mh-loaddefs.el: Regenerated. + +2003-05-02 Satyaki Das <satyakid@stanford.edu> + + * mh-seq.el (mh-tick-add-overlay): If a message with a short scan + line is ticked, then the highlighting didn't extend to the right + margin. This change fixes that. + +2003-05-01 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-help-messages): Added brackets around / and + downcased limit to be consistent with other commands with + punctuation keybindings. Don't document aliases. + +2003-05-01 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-seq.el (mh-read-range): Fix comment. + +2003-04-30 Mark D. Baushke <mdb@gnu.org> + + * mh-e.el (mh-help-messages): Better documentation for the F map. + +2003-04-30 Satyaki Das <satyakid@stanford.edu> + + * mh-utils.el (mh-find-path): Cache folder names so that + folder name completion is always fast. + (mh-flists-partial-line, mh-flists-process): Variables used for + pre-caching folder names. + (mh-collect-folder-names, mh-collect-folder-names-filter) + (mh-populate-sub-folders-cache): Functions to pre-cache folder + names. + (mh-exec-cmd): Produce more info in *MH-E Log*. + + * mh-index.el (mh-index-search): Call the correct function. + (mh-index-sequenced-messages): If folders is nil, then all mail + is searched. The change restores that. + +2003-04-30 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-summary-height): Move variable integer out + of defcustom, and instead specify that `nil' means to calculate + that size dynamically. Fixes SF #723267. + + * mh-utils.el (mh-summary-height): New function. Return ideal + mh-summary-height value for current frame height. + (mh-show-msg): Use it. + +2003-04-30 Mark D. Baushke <mdb@gnu.org> + + * mh-index.el (mh-index-ticked-messages): Fix prompt and + description string. + (mh-index-new-messages): Ditto. + + * mh-loaddefs.el: Regenerated. + + * mh-index.el (mh-index-sequenced-messages): Renamed from + mh-index-new-messages with minor argument change. + (mh-index-new-messages): Implement by calling + mh-index-sequenced-messages with the appropriate arguments. + (mh-index-ticked-messages): New function. Does the same thing as + mh-index-new-messages, but on its own set of folders and using the + mh-tick-seq instead of mh-unseen-seq. + + * mh-e.el (mh-folder-map): Add "F'" to the map for + mh-index-ticked-messages. + (mh-help-messages): Replace broken [t]hread with [n]ew messages. + + * mh-customize.el (mh-index-ticked-messages-folders): New user + customizable flag that controls the folders to be searched by + mh-index-ticked-messages. + + * mh-utils.el (mh-show-index-ticked-messages): Wrapper for + mh-index-ticked-messages. + (mh-show-folder-map): Add "F'" to the map for + mh-index-ticked-messages. + +2003-04-30 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-index-search): The old cur in the source folder + might not exist. This could cause mh-exec-cmd to fail. So don't + add an error message in that case. + +2003-04-29 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-folder-from-address): Modified to allow multiple + Cc: headers to work properly. + (mh-inc-folder, mh-visit-folder): Fix an off by one error. + + * mh-utils.el (mh-notate): Update the scan line map. This fixes a + tiny bug. In threaded view, if a message is replied to then the + message is notated with a "-". Now if inc is done then the "-" + added is lost. The change fixes this. + + * mh-seq.el (mh-translate-range): Use the correct function. + (mh-thread-update-scan-line-map): New function that updates the + scan line map when a message is notated. + +2003-04-28 Satyaki Das <satyakid@stanford.edu> + + * mh-index.el (mh-index-parse-search-regexp): Avoid compiler + warning in GNU Emacs 21.3. + + * mh-seq.el (mh-widen): Ditto. + +2003-04-28 Satyaki Das <satyakid@stanford.edu> + + * mh-customize.el (mh-interpret-number-as-range-flag): New user + customizable flag that controls whether a single number, N is + interpreted as the range last:N. + + * mh-seq.el (mh-read-range): Generalize it for use when reading + range to scan. + (mh-interactive-range): Modified to use the new mh-read-range. + + * mh-speed.el (mh-speed-view): Use mh-read-range instead of the + now removed mh-read-msg-range function. + + * mh-funcs.el (mh-pack-folder): Ditto. + + * mh-e.el (mh-rescan-folder, mh-visit-folder): Ditto. + (mh-read-msg-range): Removed. + + * mh-loaddefs.el: Regenerated + +2003-04-27 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-seq.el (mh-range-completion-function): Fix checkdoc warning. + (mh-iterate-on-range): Mention that the macro can iterate over a + MH message range too. + +2003-04-27 Bill Wohler <wohler@newt.com> + + * mh-unit.el (mh-unit): As it turns out, lm-crack-copyright has + been updated to handle multiple-line copyrights in 21.3, so + updated code to run lm-verify only if user has 21.3 or greater. + Delete buffers after use, unless user already had buffer open. + +2003-04-27 Satyaki Das <satyakid@stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-index.el (mh-index-search): The MH command "refile" changes + cur. The change restores cur in source folders. + (mh-index-new-messages): Use the appropriate arguments for + mh-read-seq. + + * mh-seq.el (mh-read-seq-default, mh-read-seq): Restore these + functions to just read sequence names. + (mh-range-seq-names, mh-range-history, mh-range-completion-map) + (mh-range-completion-function, mh-read-range): New function which + reads MH range with completion and history. + (mh-interactive-range): Use mh-read-range instead of + mh-read-seq-default. + (mh-put-msg-in-seq): Change documentation about MH message range. + + * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Change + documentation about MH message range. + + * mh-funcs.el (mh-copy-msg, mh-print-msg): Ditto. + + * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion) + (mh-refile-msg, mh-undo, mh-delete-msg-from-seq): Ditto. + + * mh-comp.el (mh-forward): Ditto. + +2003-04-26 Satyaki Das <satyakid@stanford.edu> + + * mh-comp.el, mh-e.el, mh-funcs.el, mh-junk.el, mh-seq.el: + Replace msg-or-seq with range everywhere. + + * mh-loaddefs.el: Regenerated. + +2003-04-25 Satyaki Das <satyakid@stanford.edu> + + * mh-e.el (mh-index-sequence-search-flag, mh-folder-mode): New + local variable to remember that a folder buffer contains results + from a sequence search. This is needed so that "C-u F i" will work + as expected. + (mh-visit-folder): Create sequences in the index folder. + (mh-process-commands, mh-delete-msg-from-seq): If speedbar is on + then update the speedbar message counts immediately. + (mh-delete-msg-from-seq): Make the code faster by calling "mark" + just once. Also update source folder sequence if messages are + being deleted from a sequence in an index folder. + (mh-undefine-sequence): Simplified to remove the speedbar updating + code. Also DTRT and don't change any sequence when called with an + empty list of messages. + (mh-refile-msg, mh-delete-msg): Move to next message only if the + current message has been deleted or refiled, as the case may be. + + * mh-utils.el (mh-show-msg): Update the message counts in the + speedbar, if it is on, immediately. + (mh-speed-flists-active-p, mh-speed-flists-inhibit-flag): A new + flag has been added which inhibits updating of the speedbar. This + is used to avoid needless speedbar updates when + mh-execute-commands is called in index folders. + + * mh-speed.el (mh-speed-flists): Extended so that multiple + folders can be given as arguments. Also the code that kept track + of the current folder, needed since flists adds an extra ?+ char + at the end of the current folder name, wasn't entirely correct. + That has also been fixed. + + * mh-seq.el (mh-delete-seq, mh-put-msg-in-seq): Modified so that + sequence in source folder is updated if we delete a sequence in an + index folder. + (mh-read-seq, mh-read-seq-default, mh-translate-range) + (mh-interactive-msg-or-seq): The mh-interactive-msg-or-seq + function can read in an arbitrary MH message range. + (mh-iterate-on-msg-or-seq): The macro has been extended to work on + a MH range. + (mh-subject-to-sequence, mh-subject-to-sequence-unthreaded) + (mh-subject-to-sequence-threaded, mh-thread-find-msg-subject): Fix + the mh-subject-to-sequence function so that it will work in + threaded folders too. + (mh-tick-add-overlay): Fix a leak of overlays. + (mh-toggle-tick): Ticking, or unticking, messages in the index + folder is propagated to the source folders (closes SF #709664). + + * mh-index.el (mh-flists-results-folder, mh-flists-sequence) + (mh-flists-called-flag): New variables to implement searching for + arbitrary sequences. + (mh-index-generate-pretty-name): Updated so that folder names are + generated for flists search that can take any sequence name. + (mh-index-search): Since sequences are now properly maintained the + unseen-flag argument isn't needed and hence removed. Also redoing + a sequence search with "C-u F i" is handled correctly. Finally + the speedbar is updated to reflect the new index folder created. + (mh-index-create-sequences): New function that creates sequences + in the index folder. + (mh-index-matching-source-msgs, mh-index-execute-commands): + Improved so that scan lines for refiled/deleted messages are + removed from the source folders as well. + (mh-index-add-to-sequence, mh-index-delete-from-sequence): New + functions to update sequences in source folder to reflect changes + in index folder. + (mh-index-quote-for-shell): A utility function to that quotes + characters with special meaning to /bin/sh. + (mh-flists-execute, mh-index-new-messages): Updated to search for + arbitrary sequences (closes SF #718833). + + * mh-loaddefs.el: Regenerated. + +2003-04-25 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-kill-folder-suppress-prompt-hook): New hook + used by mh-kill-folder to suppress the prompt. + + * mh-funcs.el (mh-kill-folder): Suppress prompt not if + mh-index-data is non-nil, but if any functions in + mh-kill-folder-suppress-prompt-hook return non-nil. + + * mh-index.el (mh-index-p): New function with returns non-nil if + the current folder was generated by an index search for use by + mh-kill-folder-suppress-prompt-hook + + * mh-unit.el (mh-unit): Commented out lm-verify step until code + updated to handle split Copyright lines. + + * mh-e.el (mh-version): Set to 7.3+cvs. + +2003-04-24 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.3. + + * MH-E-NEWS, README: Updated for release 7.3. + + * mh-e.el (Version, mh-version): Updated for release 7.3. + +2003-04-24 Satyaki Das <satyakid@stanford.edu> + + * mh-xemacs-compat.el (mh-utils): Require mh-utils at compile + time, since the mh-do-in-xemacs macro is used. + + * mh-inc.el (cl): Require cl at compile time since we are using + the loop and setf macros. + +2003-04-24 Satyaki Das <satyakid@stanford.edu> + + * mh-unit.el (mh-files): Fix the list of files to check. + +2003-04-24 Bill Wohler <wohler@newt.com> + + * ChangeLog: Appended copyright to end of file. + + * Makefile: Added copyright and license. + + * README: Added copyright. + + * import-emacs: Changed copyright from Newt Software to Bill + Wohler and use license from mh-e.el, except that this file is + a part of MH-E, not GNU Emacs. + + * mh-alias.el: Updated copyright so that it doesn't wrap upon + advice from Richard Stallman who said to use two-digit years when + they are surrounded by 4-digit years that are in the same century + and to break up copyrights on multiple lines. + * mh-comp.el: Ditto. + * mh-e.el: Ditto. + * mh-funcs.el: Ditto. + * mh-identity.el: Ditto. + * mh-mime.el: Ditto. + * mh-seq.el: Ditto. + * mh-utils.el: Ditto. + * mh-xemacs-compat.el: Ditto. + + * mh-unit.el: New file. Unit tests for MH-E. This version merely + runs checkdoc and lm-verify which is useful before releasing the + software. It can and should be expanded to do real unit tests. + +2003-04-22 Mark D Baushke <mdb@gnu.org> + + * mh-alias.el: Update Copyright. + * mh-comp.el: Ditto. + * mh-customize.el: Ditto. + * mh-e.el: Ditto. + * mh-funcs.el: Ditto. + * mh-identity.el: Ditto. + * mh-index.el: Ditto. + * mh-mime.el: Ditto. + * mh-pick.el: Ditto. + * mh-seq.el: Ditto. + * mh-speed.el: Ditto. + * mh-utils.el: Ditto. + * mh-xemacs-compat.el: Ditto. + +2003-04-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-normalize-folder-name): Make the completion + code work properly with XEmacs. This change is neeeded since + split-string behaves differently in XEmacs than it does in GNU + Emacs. + (mh-exec-cmd-error): Add a comment, so that we change it later on. + +2003-04-18 Steve Youngs <youngs@xemacs.org> + + * mh-xemacs-icons.el (mh-xemacs-icons): Provide 'mh-xemacs-icons' + not 'mh-xemacs-toolbar'. + + * mh-xemacs-compat.el (mh-xemacs-toolbar): Remove require, it's + now called 'mh-xemacs-icons' and it is required from + 'mh-customize'. + + * mh-customize.el: Require 'mh-xemacs-icons' instead of + 'mh-xemacs-toolbar'. + +2003-04-17 Peter S Galbraith <psg@debian.org> + + * mh-xemacs-icons.el: New file (renamed from mh-xemacs-toolbar.el). + Holds XEmacs icons. + + * mh-xemacs-toolbar.el: Deleted. + + * Makefile: Incorporate the file renaming. + +2003-04-15 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-forward): Pass a list of messages into + mh-compose-and-send-mail instead of msg-or-seq. + (mh-annotate-msg): The previous version called + mh-iterate-on-msg-or-seq in the letter buffer. The new version + simply adds the ability to operate on message lists. Thanks to + Satyaki for the fix and suggestion for passing a list from + mh-forward. + +2003-04-14 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-annotate-msg): Updated to handle msg-or-seq for + mh-forward was passing a msg-or-seq to mh-compose-and-send-mail + which in turn passed the msg-or-seq to mh-annotate-msg. In + particular, forwarding a region failed. Note that the msgs + argument in much of mh-comp.el should really be converted to + msg-or-seq accordingly. But not now, unless something is broken as + was the case here. We can revamp after the release. + +2003-04-13 Bill Wohler <wohler@newt.com> + + * mh-funcs.el (mh-kill-folder): Added space after prompt to give + the (yes or no) bit a little elbow room. + + * mh-xemacs-toolbar.el: Removing a copyright is a no-no. + Reinstated Steve's copyright. + +2003-04-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-do-in-gnu-emacs, mh-do-in-xemacs): Add + indentation hooks for the macros. + +2003-04-11 Bill Wohler <wohler@newt.com> + + * mh-alias.el, mh-comp.el, mh-customize.el, mh-funcs.el, + mh-identity.el, mh-inc.el, mh-index.el, mh-junk.el, mh-utils.el: + Merged in changes from CVS GNU Emacs. These included the removal + of trailing whitespace. + + * mh-customize.el: The "anti-entropy" check-in. Moved groups + around slightly to reflect commentary. Moved defcustoms around + to preserve alphabetization. Big diff, little content. + (mh-xemacs-use-toolbar-flag): Doc fix. + (mh-xemacs-toolbar-position): Fixed typo in docstring. + (mh-default-folder-list): Updated docstring to reflect new Check + Recipient tag. Also, set type of Address to regexp. + (mh-x-mailer-string): Moved to mh-comp.el where it is used. + + * mh-comp.el (mh-x-mailer-string): Moved here from customize.el. + Not quite sure how it got to mh-customize.el in the first place. + + * mh-e.el (mh-folder-folder-menu): Added Folder -> View New + Messages menu item. + + * mh-utils.el (mh-show-folder-menu): Ditto. + + * mh-inc.el: Added Change Log comment (lm-verify fix). + + * mh-index.el (mh-index-search): Added documentation about prefix + argument for users, in addition to documentation for programmers. + + * mh-mime.el (mh-edit-mhn, mh-edit-mhn, mh-mml-to-mime): Docstring + fixes germaine to the change whereby we now check for MIME + directives before sending. + + * mh-xemacs-toolbar.el: Fixed copyright. Added Change Log comment + (lm-verify fix). Added standard MH-E local variables. Removed + time-stamp stuff. + +2003-04-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-iterate-on-msg-or-seq): Add a missed comma. + +2003-04-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-visit-folder): Prompt before reusing + existing folder buffer. + + * mh-xemacs-toolbar.el (require): Require mh-utils at compile + time to avoid compilation error when doing "make bootstrap" in + CVS Emacs. + + * mh-inc.el (mh-inc-spool-list): Declare it so that a compile + time warning is avoided when doing "make bootstrap" in CVS Emacs. + +2003-04-10 Peter S Galbraith <psg@debian.org> + + * mh-inc.el (mh-inc-spool-generator): Changed to a defun instead + of a defmacro, applying Satyaki's patch. + (mh-inc-spool-def-key): same. + (mh-inc-spool-make): same. + + * mh-utils.el: define-key "I" in mh-show-mode-map for + mh-inc-spool-map. + + * mh-comp.el (mh-modify-header-field): Remove debug message. + +2003-04-10 Peter S Galbraith <psg@debian.org> + + * mh-inc.el (mh-inc-spool-map-help): Default to nil. + (mh-inc-spool-map): Make "?" key display message when + `mh-inc-spool-map-help' is nil (instead of mh-inc-spool-map-help + containing the message). + + * mh-e.el: require mh-inc.el + * mh-e.el: define-key "I" in mh-folder-mode-map for mh-inc-spool-map. + (mh-help-messages): Add help string for "I" key. + +2003-04-09 Peter S Galbraith <psg@debian.org> + + * mh-inc.el: New file. New feature to `inc' mail from various + spool files into different folders. + + * mh-loaddefs.el: Regenerate for mh-inc's mh-inc-spool-list-set. + + * Makefile (MH-E-IMG): Add highlight icon. + (MH-E-SRC): Add mh-inc.el file. + + * mh-customize.el (mh-inc-spool-list): New variable for new + feature to `inc' mail from various spool files into different + folders. + +2003-04-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-mail-delivery-buffer): Add a defconst for + mh-mail-delivery-buffer. + + * mh-comp.el (mh-send-letter): Use mh-mail-delivery-buffer. + + * mh-mime.el (mh-small-image-p): Add mh-funcall-if-exists to + avoid compiler warning in GNU Emacs. + +2003-04-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-small-image-p): Make the function slightly more + error-resistant in XEmacs. + + * mh-seq.el (mh-narrow-to-seq, mh-widen): Update tool-bar-map in + the show buffer if needed. This allows us to display the widen + button in the show buffer only when the folder is narrowed. + + * mh-customize.el (mh-tool-bar-define): Changed so that a + separate tool-bar-map is used in show-mode when folder is + narrowed to a sequence. + +2003-04-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-iterate-on-msg-or-seq): Reinstate the use of + make-symbol since using gensym causes compiler warnings in CVS + Emacs. + +2003-04-08 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-forward): Function didn't handle a region of + messages. Use new function mh-msg-or-seq-to-msg-list to get a list + of messages in all circumstances. Also, use mh-coalesce-msg-list + on message list before submitting to forw since this should always + be done when calling a program to reduce the chance of exceeding + command-line limits. + + * mh-seq.el (mh-iterate-on-msg-or-seq): Backed out previous + change. A nil msg-or-seq should mean no messages, and Satyaki is + going to use gensym instead of make-symbol. + (mh-msg-or-seq-to-msg-list): New function to convert a msg-or-seq + to a list of message numbers. + + * mh-e.el (mh-coalesce-msg-list): Touched up the docstring a + little. + + * mh-funcs.el (mh-print-msg): Can now print regions, message + lists, sequences and, of course, single messages. This version + works a little differently from the old version. Instead of + calling mhl | lpr once on all messages, mhl | lpr is called once + per message in order to put each message's number in the header. + Thanks to Satyaki for some code and ideas. + + * mh-seq.el (mh-iterate-on-msg-or-seq): The argument msg-or-seq + can now be nil which means the current message. Make local symbols + so that local variables don't step on user's symbols (the msgs + symbol got me). + +2003-04-06 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-forward): Updated docstrings to indicate that a + list of messages is acceptable as well. + + * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion, mh-refile-msg) + (mh-undo, mh-notate-user-sequences, mh-delete-msg-from-seq): Ditto. + + * mh-funcs.el (mh-copy-msg, mh-print-msg): Ditto. + + * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Ditto. + + * mh-seq.el (mh-put-msg-in-seq, mh-iterate-on-msg-or-seq) + (mh-interactive-msg-or-seq): Ditto. + +2003-04-06 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Call + mh-refile-a-msg and mh-delete-a-msg with nil as the message + number since that is more efficient. + + * mh-seq.el (mh-iterate-on-msg-or-seq): Extended so that it will + handle lists of messages numbers as well. + (mh-put-msg-in-seq): Use mh-iterate-on-msg-or-seq to simplify the + function. + + * mh-funcs.el (mh-copy-msg): Same as above. + + * mh-e.el (mh-refile-msg): Make it more efficient. Using nil in + mh-refile-a-msg avoids needing to re-search-forward to that + message. + (mh-undo): Fix typo in interactive spec. + (mh-notate-user-sequences): Generalize the function to take a + msg-or-seq as argument. + (mh-delete-msg-from-seq): Extend the function so that it is now + able to subtract messages belonging in one sequence from another. + (mh-undo): Unify the region and sequence handling. The message + number branch of the function does extra stuff, so we can't merge + that in. + +2003-04-06 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-forward): Use mh-interactive-msg-or-seq. Inserted + consistent verbiage in docstring for msg-or-seq. + (mh-reply): Don't mention default in opening line in all + docstrings. + + * mh-e.el (mh-delete-msg, mh-refile-msg) + (mh-undo, mh-delete-msg-from-seq): Use mh-interactive-msg-or-seq. + Inserted consistent verbiage in docstring for msg-or-seq. In + mh-delete-msg-from-seq, renamed msg-or-region to msg-or-seq. + + * mh-funcs.el (mh-copy-msg, mh-print-msg): Use + mh-interactive-msg-or-seq. Inserted consistent verbiage in + docstring for msg-or-seq. + + * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Inserted + consistent verbiage in docstring for msg-or-seq. + + * mh-seq.el (mh-msg-is-in-seq): Don't mention default in opening + line in all docstrings. + (mh-put-msg-in-seq): Use mh-interactive-msg-or-seq. Inserted + consistent verbiage in docstring for msg-or-seq. + + * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion, mh-refile-msg): + Rewritten to use new mh-interactive-msg-or-seq function and + mh-iterate-on-msg-or-seq macro. mh-delete-msg-no-motion gained the + ability to operate on regions. + + * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Rewritten to + use new mh-interactive-msg-or-seq function and + mh-iterate-on-msg-or-seq macro thereby gaining the ability to + operate on sequences or regions. + + * mh-seq.el (mh-iterate-on-msg-or-seq): New macro to execute code + on a message, a region of messages, or a sequence. This macro + should be in all functions that operate on messages to provide a + uniform interface. + (mh-interactive-msg-or-seq): New function used in interactive + calls to obtain a message number, region, or sequence. This + function should be in all functions that operate on messages to + provide a uniform interface. + + * mh-utils.el (with-mh-folder-updating, mh-in-show-buffer): Use + 'defun lisp-indent-hook property instead of 1 to fix indentation + of these macros. + +2003-04-05 Peter S Galbraith <psg@debian.org> + + * mh-loaddefs.el: Regenerated. + * mh-funcs.el (mh-ephem-message): autoload. + +2003-04-04 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-from-address): Minor Fix. Wrong ending of + `when' block. + +2003-04-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-mml-directive-present-p): The regexp has been + modified to recognize directives to encrypt/sign messages. + +2003-04-03 Mark D. Baushke <mdb@gnu.org> + + * mh-e.el (mh-folder-from-address): E-mail messages missing the + To: field, but which have a Cc: field should also be handled. + +2003-04-03 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-inc-folder): Modified the prompt text to read + better. + + * mh-comp.el (mh-forward): Deleted local variable `compose'. + Deleted obsolete setting of mh-{mmh|mml}-compose-insert-flag. + (mh-letter-menu): Use mh-{mmh|mml}-directive-present-p instead of + obsolete. mh-{mmh|mml}-compose-insert-flag. + (mh-letter-mode): Deleted obsolete setting of + mh-{mmh|mml}-compose-insert-flag. + (mh-send-letter): This function now automatically runs the + directive-to-MIME conversion if any directives are detected, + rather than relying on the unreliable + mh-{mmh|mml}-compose-insert-flag variables. Updated docstring + accordingly. + + * mh-identity.el (mh-insert-identity): Use + mh-{mmh|mml}-directive-present-p instead of obsolete. + mh-{mmh|mml}-compose-insert-flag. + + * mh-loaddefs.el: Regenerated. + + * mh-mime.el (mh-mhn-compose-type, mh-mhn-compose-external-type) + (mh-mhn-compose-forw, mh-edit-mhn, mh-mml-to-mime) + (mh-mml-forward-message, mh-mml-attach-file) + (mh-mml-secure-message-sign-pgpmime) + (mh-mml-secure-message-encrypt-pgpmime): Deleted obsolete setting + of mh-{mmh|mml}-compose-insert-flag. + (mh-mml-directive-present-p): Checkdoc fix. + + * mh-utils.el (mh-mhn-compose-insert-flag, + mh-mml-compose-insert-flag): Deleted. Replaced by + mh-{mhn|mml}-directive-present-p. + +2003-04-03 Mark D. Baushke <mdb@gnu.org> + + * mh-e.el (mh-folder-from-address): Fix minor problem with To: + address processing. + + * mh-e.el (mh-folder-from-address): Bugfix match ?+ character not + a "?+" string. + +2003-04-03 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-inc-folder): Add second optional argument for the + folder to inc new mail into instead of mh-inbox. + +2003-04-03 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-from-address): The first match found in + `mh-default-folder-list' is used. + + * mh-customize.el (mh-default-folder-list): Tweak docs + +2003-04-03 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-mime.el (mh-mhn-directive-present-p): New function to test if + a MHN directive is present in the current buffer. + (mh-mml-directive-present-p): New function to test if a MML + directive is present in the current buffer. + + * mh-comp.el (mh-letter-mode): Originally this function checked if + a #forw directive was present and set mh-mhn-compose-insert-flag + to t. The modification generalizes this test so that one of the + variables mh-{mml|mhn}-compose-insert-flag will get set if we have + any sort of MHN or MML directive is already present. + + * mh-seq.el (tool-bar-map): Add a defvar to avoid compiler + warnings in CVS version of GNU Emacs. + + * mh-utils.el (tool-bar-map): Same as above. + + * mh-e.el (tool-bar-map): same as above. + +2003-04-02 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-xemacs-toolbar.el (mh-xemacs-toolbar-toggle-tick-icon): + Change color to match mh-folder-tick-face. + + * highlight.xpm: Same as above. + +2003-04-02 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-from-address): Check `mh-default-folder-list' + for cases against the recipient instead of the originator. + + * mh-customize.el (mh-default-folder-list): Add extra boolean flag + to conditionally check the recipient address instead of the + originator. + +2003-04-02 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-folder-tick-face): Change tick highlight + face to a background yellow-green, as suggested by Bill. + +2003-04-01 Peter S Galbraith <psg@debian.org> + + * highlight.xpm: New icon for mh-toggle-tick. + + * mh-xemacs-toolbar.el (mh-xemacs-icon-map): Add tool-bar entry + for mh-toggle-tick. + (mh-xemacs-toolbar-toggle-tick-icon): New constant. + + * mh-customize.el: Add tool-bar entry for mh-toggle-tick. + +2003-03-31 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-utils.el (mh-show-narrow-to-tick, mh-show-limit-map) + (mh-show-sequence-menu): Add new interactive function + mh-show-narrow-to-tick callable from the show buffer and arrange + for a key binding and a menu entry. + + * mh-seq.el (mh-narrow-to-tick): New interactive function that + narrows to the tick sequence. + + * mh-e.el (mh-folder-sequence-menu, mh-limit-map): Arrange for a + key binding and a menu entry for mh-narrow-to-tick. + + * mh-comp.el (mh-letter-mode): Enable undo since we could be + reusing a show buffer where undo is disabled (closes SF #712777). + +2003-03-31 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-sequence-menu): Add entry for mh-toggle-tick. + + * mh-utils.el (mh-show-sequence-menu): Add entry for + mh-show-toggle-tick. + +2003-03-28 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-delete-seq): If the tick sequence is killed with + "S k" then the highlighting wasn't getting removed. The change + fixes this. + +2003-03-27 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-notate-user-sequences): Extend it so that only the + messages in a part of the folder are notated. + (mh-delete-msg-from-seq): Extend it so that it will delete all + messages in the marked region. + (mh-delete-a-msg-from-seq): New function that deletes a single + message from a sequence. + (mh-clear-text-properties): If there is a ticked unseen message + and the message is removed from the unseen list with "S d" then + unticking the message doesn't change the highlight. This change + fixes this. + +2003-03-27 Peter S Galbraith <psg@debian.org> + + * mh-xemacs-toolbar.el (mh-xemacs-toolbar-*-icon): Use original + 24x24 icons, changing background only. + +2003-03-27 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-junk.el (mh-spamassassin-identify-spammers): Remove unused + variable buffer-exists. + (mh-spamassassin-identify-spammers): Remove unused variable user. + + * mh-customize.el (mh-junk-choose): Tweak it to remove XEmacs + compiler warning. + +2003-03-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-print-scan-lines): Handling of a boundary + condition when messages from the last source folder had been + removed was incorrect. This caused a folder header to appear + without any messages listed under it. This change fixes this. + (mh-thread-forget-message): Remove the entry from the scan line + table as well. This is needed for proper display of threaded view + of index folders. + +2003-03-26 Bill Wohler <wohler@newt.com> + + * Makefile, README, import-emacs, mh-alias.el, mh-comp.el, + mh-customize.el, mh-e.el, mh-funcs.el, mh-identity.el, + mh-index.el, mh-loaddefs.el, mh-mime.el, mh-pick.el, mh-seq.el, + mh-speed.el, mh-utils.el, mh-xemacs-compat.el, + mh-xemacs-toolbar.el: Removed RCS keywords per Emacs conventions + (closes SF #680731). + + +2003-03-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el: Fix commentary to mention that mairix is supported + as well. + + * mh-loaddefs.el: Regenerated. + + * mh-utils.el (mh-show-junk-blacklist, mh-show-junk-whitelist): + Interactive functions callable from the show buffer. + (mh-show-junk-map): Key bindings in show mode. + + * mh-e.el (mh-junk-map): Key bindings to call spam program. + (mh-help-messages): Update help text. + + * mh-customize.el (mh-junk): New customization group for spam + program interface. + (mh-junk-choice, mh-junk-function-alist, mh-junk-choose): + Functions and variables that decide which junk program is used. + (mh-junk-program, mh-junk-mail-folder): User customizable + variables that control the choice of spam program and the action + performed on received spam. + + * Makefile (MH-E-SRC): Add mh-junk.el. + +2003-03-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-utils.el (mh-show-toggle-tick, mh-show-mode-map): New + interactive function callable from the show buffer and a key + binding for it. + + * mh-seq.el (mh-delete-seq): Remove highlight from tick sequence. + (mh-put-msg-in-seq): Disable adding messages to tick sequence. + (mh-widen): Reset mh-tick-seq-changed-when-narrowed-flag. + (mh-tick-add-overlay, mh-tick-remove-overlay, mh-notate-tick) + (mh-toggle-tick): New functions to highlight/unhighlight tick + sequence and the interactive function that is used to toggle + tick. + + * mh-e.el (mh-tick-seq-changed-when-narrowed-flag): New variable + that remembers if we are narrowed to the tick sequence. In that + case the highlighting isn't shown, since it adds no extra info. + (mh-folder-mode): Initialize mh-tick-seq-changed-when-narrowed-flag. + (mh-notate-user-sequences): Notate the tick sequence. + (mh-internal-seq): Treat mh-tick-seq like an internal sequence. + (mh-delete-msg-from-seq): Don't allow deletion from tick sequence. + (mh-folder-mode-map): Add key binding for "'" + + * mh-customize.el (mh-tick-seq, mh-folder-tick-face): New + customizable variables that contain the name of the tick sequence + and the face to use to highlight it. + +2003-03-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-seq.el (mh-thread-print-scan-lines): New function which + prints out thread tree. It maintains the original folder info if + the folder was created by index search (closes SF #709672). + (mh-copy-seq-to-eob, mh-thread-inc, mh-thread-folder): Use + factored out function mh-thread-print-scan-lines. + (mh-toggle-threads): Since threading is allowed in index folders + there can be lines in the folder which aren't valid message scan + lines. So it is OK for mh-get-msg-num to fail once in a while. + + * mh-index.el (mh-index-update-maps): Make the parsing of messages + that need to annotated with the X-MHE-Checksum header more robust. + If the search yielded no results then an error was being produced. + (mh-index-search): Enable automatic threading of index folders if + mh-show-threads-flag is non-nil (closes SF #709667). + (mh-index-next-folder): Relax error checking since index folder + can be threaded while the source folder info is visible. + (mh-index-group-by-folder): New function that is used in + mh-thread-folder to keep source folder info visible during + threading. + +2003-03-25 Bill Wohler <wohler@newt.com> + + * mh-loaddefs.el: Regenerated. + + * mh-customize.el (mh-index-new-messages-folders): New variable + that controls which folders "F n (mh-index-new-messages)" + accesses. Was mh-flists-search-folders. + + * mh-index.el (mh-flists-search-folders): Still used internally, + but users now use new option mh-index-new-messages-folders. + Removed documentation since to avoid duplication with + mh-index-new-messages-folders. + (mh-flists-recursive-search-flag): Deleted. Use + mh-recursive-folders-flag instead. + (mh-flists-execute): Updated docs to specify which global + variables are used. Use mh-recursive-folders-flag instead of + mh-flists-recursive-search-flag. + (mh-index-new-messages): Edited doc, and refer to new option + mh-index-new-messages-folders. Ditto within code. Don't need to + prepend + to folder name as flists does that for us. Use + +2003-03-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-refile-msg): Add optional argument that controls + whether mh-last-destination-folder is updated or not. + +2003-03-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-tool-bar-define): Fix a problem in the + XEmacs version which caused the show mode toolbar to have the + buttons in the reverse order. Also the add-hooks are no longer + needed since mh-toolbar-init is called in the appropriate modes. + + * mh-comp.el (mh-letter-mode): Call mh-toolbar-init in XEmacs to + initialize toolbar. + + * mh-utils.el (mh-show-mode): Same as above. + + * mh-e.el (mh-folder-mode): Same as above. + +2003-03-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-exec-cmd-env-daemon): New function which + executes a command asynchronously with its own environment. + + * mh-comp.el (mh-redistribute): The function has been modified so + that /bin/sh isn't used to run send. It has also been refactored + so that the same code isn't repeated. + +2003-03-21 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-invisible-header-fields): Added X-Bogosity + for bogofilter. + +2003-03-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-xemacs-toolbar.el: Remove the code since that gets generated + when mh-tool-bar-define is expanded. + (mh-xemacs-icon-map): A alist to map GNU Emacs icon names to the + actual icons to be used in XEmacs. This is used in + mh-tool-bar-define. + + * mh-customize.el (mh-toolbar): Use this group in XEmacs as well. + (mh-tool-bar-item-*): All these constants have been removed since + they aren't needed in the new scheme. + (mh-tool-bar-reply-3-buttons-flag): This variable has been + removed. + (mh-tool-bar-search-function): This is now used in XEmacs as well. + (mh-tool-bar-folder-set, mh-tool-bar-folder-buttons-set) + (mh-tool-bar-letter-buttons-set, mh-tool-bar-show-set) + (mh-tool-bar-letter-set): These functions aren't defined at the + top level any more. + (mh-tool-bar-reply-generator): A macro to generate the required + functions for the three reply buttons. + (mh-tool-bar-search, mh-tool-bar-customize) + (mh-tool-bar-folder-help, mh-tool-bar-letter-help) + (mh-tool-bar-reply-from, mh-show-tool-bar-reply-from) + (mh-tool-bar-reply-to, mh-show-tool-bar-reply-to) + (mh-tool-bar-reply-all, mh-show-tool-bar-reply-all): New + interactive functions that are called when tool bar buttons are + clicked. + (mh-xemacs-use-toolbar-flag, mh-xemacs-toolbar-position): + Additional customizable variables that are present only for + XEmacs. + (mh-tool-bar-define): A macro that generates the required code + for GNU Emacs and XEmacs tool bar. + (mh-tool-bar-define): Define the MH-E tool bar. + +2003-03-17 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-notate-cur): Notate current message only if it + hasn't been marked for deletion or refiling. + +2003-03-15 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-invisible-header-fields): Added + X-Spam-Checker-Version. + (mh-auto-fields-list): checkdoc fix. + +2003-03-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-new-messages): If the destination folder + where the unseen messages are supposed to be copied to was + already present, but MH-E doesn't have it open, then a new folder + was being created. The change fixes this. + (mh-index-update-unseen, mh-flists-recursive-search-flag): Fix + checkdoc warnings. + + * mh-loaddefs.el: Regenerated. + +2003-03-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-flists-results-folder): Subfolder under + +mhe-index where the results of the flists call is put. + (mh-index-generate-pretty-name): Make sure that normal index + searching will never use the folder reserved for the flists + results. + (mh-index-search): Add an extra parameter that marks all the + messages in the index folder to the unseen sequence. + (mh-index-update-unseen): Function to keep unseen sequence of + index folder synced with the actual folders from where the + messages were copied. This works only if the unseen messages are + displayed with mh-show. Killing the unseen sequence in the index + folder or adding/removing messages to it doesn't change the + unseen sequence in the source folders yet. + (mh-flists-search-folders): Variable that decides the folders on + which flists is run. + (mh-flists-recursive-search-flag): If non-nil, flists is passed + the -recurse option. + (mh-flists-execute): Function which uses /bin/sh to execute + flists and then print out the list of message files that match. + (mh-index-new-messages): New interactive function which searches + for messages in the unseen sequence (closes SF #701756). + + * mh-utils.el (mh-show-folder-map): Add binding for + mh-index-new-messages. + (mh-show-msg): Update the unseen sequence in the source folder. + + * mh-e.el (mh-folder-font-lock-unseen): The function assumes that + the end of buffer is reached when there isn't a valid scan line + on the current line. This doesn't work in the index folder since + we have lines containing the folder name and empty lines in + between the actual scan lines. The modification removes this + assumption. + (mh-folder-map): Add key binding for "Fn" + + * mh-seq.el (mh-iterate-on-messages-in-region): If the point is + not at the beginning of the line, then the first message in the + region would be missed. The fix avoids this. + + * mh-mime.el (mh-inline-vcard-p): Don't try to inline vcards if + we don't have the right libraries. + +2003-03-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-next-undeleted-msg, mh-previous-undeleted-msg) + (mh-next-msg): Add optional argument wait-after-complaining-flag. + If non-nil and there are no undeleted messages after (or before) + the current one, then pause for a second after printing out the + message. + (mh-refile-or-write-again): Modify call to mh-next-msg to use the + wait-after-complaining-flag. + +2003-03-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-refile-or-write-again): If mh-next-msg fails to find + a message to go to it prints out a diagnostic, which overwrites + the diagnostic about the folder the message was refiled to. The + change fixes this. + +2003-03-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-widen, mh-narrow-to-seq): Update + mh-narrowed-to-seq before notating sequences. This is a bit + helpful for mh-tick.el. + (mh-put-msg-in-seq): Fix a minor bug. No internal sequence should + be notated -- the original code was doing the right thing only for + the "unseen" sequence. + + * mh-index.el (mh-index-choose): Add autoload cookie for + mh-index-choose. This is needed for GNU Emacs 20.5. + + * mh-loaddefs.el: Regenerated. + +2003-03-09 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-display-smileys): This function originally had a + test to see if font-lock-maximum-size was bound, but this was + recently removed. The test was put in for a reason; if + font-lock-maximum-size isn't bound, void-variable errors would + ensue. I put the bound test back in. + +2003-03-08 Steve Youngs <youngs@xemacs.org> + + * mh-mime.el (mh-mime-security-button-map): Use 'mh-push-button' + in XEmacs as well. + +2003-03-07 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-xemacs-toolbar.el: Declare a whole bunch of stuff for GNU + Emacs, so that we don't get so many compiler warnings. Also + surround calls to set-specifier and toolbar-make-button-list with + mh-funcall-if-exists. Maybe GNU Emacs shouldn't try to compile + this file in the first place. + + * mh-xemacs-compat.el (mh-modeline-glyph): Declare it within + mh-do-in-xemacs to avoid compiler warning in GNU Emacs. + (mh-xemacs-push-button): Removed. + + * mh-mime.el (mh-mime-button-map): Use the generalized + mh-push-button function. + (mh-push-button): Enhance it so that it works on XEmacs too. + +2003-03-08 Steve Youngs <youngs@xemacs.org> + + * mh-xemacs-compat.el (mh-modeline-logo): New constant holding the + modeline image. + (mh-modeline-glyph): Use it. + +2003-03-08 Steve Youngs <youngs@xemacs.org> + + * mh-xemacs-toolbar.el: New file that defines and displays a + toolbar in XEmacs. + + * mh-xemacs-compat.el (mh-xemacs-toolbar): Require it here. + + * Makefile (MH-E-SRC): Add mh-xemacs-toolbar.el. + + * mh-customize.el (mh-toolbar): + (mh-tool-bar-letter-buttons): + (mh-tool-bar-letter-buttons-set): + (mh-tool-bar-folder-buttons): + (mh-tool-bar-folder-buttons-set): + (mh-tool-bar-search-function): + (mh-tool-bar-reply-3-buttons-flag): + (mh-tool-bar-item-inc): + (mh-tool-bar-item-save-mime): + (mh-tool-bar-item-prev-msg): + (mh-tool-bar-item-page-msg): + (mh-tool-bar-item-next-msg): + (mh-tool-bar-item-delete): + (mh-tool-bar-item-refile): + (mh-tool-bar-item-undo): + (mh-tool-bar-item-perform): + (mh-tool-bar-item-toggle-show): + (mh-tool-bar-item-reply-from): + (mh-tool-bar-item-reply-to): + (mh-tool-bar-item-reply-all): + (mh-tool-bar-item-reply): + (mh-tool-bar-item-alias): + (mh-tool-bar-item-compose): + (mh-tool-bar-item-rescan): + (mh-tool-bar-item-repack): + (mh-tool-bar-item-search): + (mh-tool-bar-item-visit): + (mh-tool-bar-item-prefs): + (mh-tool-bar-item-help): + (mh-tool-bar-item-widen): + (mh-tool-bar-item-send): + (mh-tool-bar-item-attach): + (mh-tool-bar-item-spell): + (mh-tool-bar-item-save): + (mh-tool-bar-item-undo-op): + (mh-tool-bar-item-kill): + (mh-tool-bar-item-copy): + (mh-tool-bar-item-paste): + (mh-tool-bar-item-kill-draft): + (mh-tool-bar-item-comp-prefs): + The MH-E toolbar for XEmacs is defined differently from the + GNU/Emacs version, so only define these if we're in GNU/Emacs. + XEmacs doesn't need to see them and it's always good to cut down + on pollution. + +2003-03-08 Steve Youngs <youngs@xemacs.org> + + * mh-mime.el (mh-mime-button-map): Bind the 2nd mouse button to + `mh-xemacs-push-button' in XEmacs. + (mh-mime-security-button-map): Ditto. + + * mh-xemacs-compat.el: Shush the byte-compiler. + (mh-xemacs-push-button): New function to make MIME buttons work in + XEmacs. + +2003-03-08 Steve Youngs <youngs@xemacs.org> + + * mh-mime.el (mh-display-emphasis): Don't test + `font-lock-maximum-size' to see if it is bound, just test for a + non-nil value. This variable can have a nil value which makes it + bound and dividing nil by 8 throws an error. + This fixes a bug in MH-E under XEmacs when + `font-lock-maximum-size' is nil that prevented article emphasis + and smiley display which in turn was causing the "Flush changes in + article x y/n" errors. + (mh-display-smileys): Ditto. + +2003-03-08 Steve Youngs <youngs@xemacs.org> + + * mh-utils.el (mh-logo-display): Display logo in XEmacs as well. + + * mh-xemacs-compat.el (mh-modeline-glyph): New. The MH-E modeline + logo for XEmacs. + +2003-03-06 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-allow-root-folder-flag): New global variable + that decides if "+" is an acceptable folder name. + (mh-folder-completion-function): Refine the test for existing + folders to take mh-allow-root-folder-flag into account. + (mh-folder-completing-read, mh-prompt-for-folder): Use the + allow-root-folder-flag argument of mh-prompt-for-folder and add a + similar argument to mh-folder-completing-read. + (mh-exec-cmd-error): Make the function nicer by using + process-environment to pass the environment variable assignments. + +2003-03-05 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-push-button): Preserve point in the show buffer + if the mouse is used to expand/contract a button. + + * mh-customize.el (mh-x-face-file): Mention X-Image-URL in + documentation. + + * mh-comp.el (mh-insert-x-face): Modified to allow insertion of + X-Image-URL header field. + +2003-03-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-face-display-function): Modified to facilitate + display of X-Image-URL images. + (mh-find-path): Initialize X-Image-URL cache directory. + (mh-x-image-url-cache-canonicalize, mh-x-image-url-fetch-image) + (mh-x-image-scale-and-display, mh-x-image-url-display) + (mh-x-image-display): New functions for X-Image-URL image display + and cache management. + + * mh-customize.el (mh-show-use-xface-flag): Add info about + requirements for X-Image-URL display. + (mh-fetch-x-image-url): New customizable variable that controls + fetching of X-Image-URL. + +2003-03-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-make-local-hook): New macro which works around + API changes in add-hook. Version of GNU Emacs before 21.1 and + XEmacs require a call to make-local-hook and just the LOCAL + argument of add-hook is not sufficient. + (mh-show-mode): Make kill-buffer-hook buffer local. + + * mh-e.el (mh-folder-mode): Same as above. + + * mh-comp.el (mh-compose-and-send-mail): Same as above. + +2003-03-02 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-push-button): Clicking on a MIME button used to + cause the window with the show buffer to be selected. With this + change the selected window doesn't change. + +2003-03-01 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-flists): Avoid a potential race condition. + When flists is called manually, or when an unseen message is read, + mh-speed-partial-line was not reinitialized. + + * mh-e.el (mh-visit-folder): If mh-visit-folder is used to visit + the folder currently being visited (effectively doing a rescan) + then mh-previous-window-config is erroneously set. The change + fixes this. + + * mh-customize.el (mh-index-show-hook): Remove unused variable. + +2003-02-28 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-scan-folder): Call mh-reset-threads-and-narrowing + only after the user has replied to question. This avoids premature + clearing of the folder. + (mh-rescan-folder, mh-visit-folder): Remove calls to + mh-reset-threads-and-narrowing since it is now called in + mh-scan-folder anyway. + + * mh-funcs.el (mh-sort-folder): Same as above. + +2003-02-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-alias.el (mh-alias-alist): Change initial value to a symbol, + so that it is different from the empty list, which could also + mean that there are no aliases. + (mh-alias-reload-maybe): Change test so that empty alist of + aliases is properly handled (closes SF #693859). + +2003-02-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-decode-message-header): The message header could + be encoded, for instance the author's name could contain + characters not in ASCII. This function will decode such header + fields. + (mh-mm-inline-message): Use mh-decode-message-header. + + * mh-utils.el (mh-display-msg): Use mh-decode-message-header. + (mh-message-number-width): Use mh-scan-prog instead of "scan". + + * mh-loaddefs.el: Regenerated. + +2003-02-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-truncate-log-buffer): Refine it so that the + function will do the right thing even if called from a buffer + other than mh-log-buffer. + +2003-02-22 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-add-alias): Really fix SF #690216. + This functions needs to strip brackets on standalone addresses as + well. + +2003-02-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-xemacs-compat.el (replace-regexp-in-string): Remove the + definition since it isn't used any more. + +2003-02-20 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-which-file-has-alias): Bug fix. Needed to + specify `noerror' on search. + + * mh-alias.el (mh-alias-suggest-alias): Add condition for input + string being an email address in brackets. We need to strip out + the brackets. (closes SF #690216) + +2003-02-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-pick.el (mh-search-folder): The function was setting the + global value of the variables mh-current-folder and + mh-previous-window-config. This can lead to problems in code which + assumes that these variables are nil when we aren't in a folder + buffer. So make the variables local before setting them. + +2003-02-19 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-mime-display): All the MIME display code has been + wrapped in a condition-case so that if something goes wrong, the + raw message will be displayed. + + * mh-funcs.el (mh-undo-folder): Comment out call to sit-for that + seems unnecessary. + + * mh-e.el (mh-scan-folder): Messages marked for deletion or + refiling weren't getting annotated properly. The change fixes + this. + (mh-process-or-undo-commands): Change prompt to reflect what + really happens in the code. + +2003-02-18 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-folder-expand-at-point): The function + mail-abbrev-complete-alias often returns nil. This had the + unfortunate consequence of always causing an error. The change + fixes this. + + * mh-alias.el (mh-alias-canonicalize-suggestion): New function + which obviates the our need replace-regexp-in-string. + (mh-alias-suggest-alias): Use mh-alias-canonicalize-suggestion to + eliminate calls to replace-regexp-in-string. This avoids problems + in Emacs20. + + * mh-utils.el (mh-notate): Handle the case when nil is passed as + notation gracefully. + (mh-speed-flists-active-p): New function that returns non-nil if + flists is being used in the speedbar to update message counts. + + * mh-seq.el (mh-put-msg-in-seq): Fix a bug which made it + impossible to add messages to the unseen sequence. Also adding + messages to the unseen sequence will now update the speedbar + message counts immediately. + + * mh-e.el (mh-get-new-mail, mh-process-commands) + (mh-undefine-sequence): Update speedbar message counts, if the + speedbar is active and is displaying message counts. + (mh-delete-msg-from-seq): In addition to updating message counts, + unhighlight the message so that interactively removing messages + from the unseen sequence makes the bold highlight of unseen + messages in the scan buffer go away. + (mh-clear-text-properties): New function that removes all text + properties from the current scan line. + +2003-02-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-face-display-function): Wrap call of + insert-image in mh-funcall-if-exists. This avoids a compiler + warning in Emacs20. + + * mh-speed.el (mh-speed-flists): Weaken test a bit to avoid + compiler warning in Emacs20. + (mh-speedbar-change-expand-button-char): Wrap call of + speedbar-insert-image-button-maybe in mh-funcall-if-exists. This + function isn't present in the speedbar that ships with Emacs20, so + calling it there causes an error. + + * mh-seq.el (mh-msg-is-in-seq): Adjust loop call a bit to avoid + compiler warning in XEmacs. The XEmacs compiler should be improved + so that such spurious warnings from builtin macros are suppressed. + + * mh-index.el (mh-index-search): Same as above. + + * mh-e.el (tool-bar-mode): The declaration is needed for Emacs20 + too. + + * mh-comp.el (mailabbrev): Try loading it any way. Some day XEmacs + will get it and then MH-E will just use it. + (tool-bar-mode, tool-bar-map): These declarations are needed for + Emacs20 too. + (mh-mail-abbrev-make-syntax-table, mh-folder-expand-at-point): + Remove mh-mail-abbrev-make-syntax-table since mh-funcall-if-exists + can be used instead. + + * mh-alias.el (require): Avoid autoloading functions that may not + be defined. + (mh-read-address, mh-alias-letter-expand-alias): Rewrite using + mh-funcall-if-exists. + +2003-02-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-speed.el (mh-folder-speedbar-buttons, mh-speed-add-buttons) + (mh-speed-toggle): Reuse markers instead of creating more of them. + (mh-speed-flists-folder, mh-speed-flists): Add optional folder + argument to mh-speed-flists so that message counts are updated + only for that one folder. + (mh-speed-parse-flists-output): If no change in counts then avoid + consing. + + * mh-index.el (mh-index-execute): Rewritten to use a temporary + buffer that is not left behind. + + * mh-funcs.el (mh-store-buffer): Use mh-log-buffer instead of the + special purpose *Store Output* buffer. + +2003-02-14 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-show-xface-face): Make it always be black + foreground on a white background (the reverse of that can make + some X-Face images look creepy). + + * mh-utils.el (mh-truncate-log-buffer): Modify the function to + return the current size of mh-log-buffer. Also we are now a bit + more careful in adding separators between consecutive messages. + (mh-exec-cmd): Fix a bug where the the log buffer would be + displayed even if no error happened in the current command but + the log buffer had messages from a previous error. + + * mh-mime.el (mh-mime-save-parts): Use mh-log-buffer to show + error messages. + + * mh-alias.el (mh-alias-local-users): Add a space between parens. + +2003-02-14 Steve Youngs <youngs@xemacs.org> + + * mh-utils.el (mh-face-display-function): Call + `x-face-xmas-wl-display-x-face' using `mh-funcall-if-exists'. + + * mh-xemacs-compat.el (replace-regexp-in-string): New. + +2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-log-buffer-lines): New variable that keeps + track of the number of lines to keep in mh-log-buffer. + (mh-truncate-log-buffer): New function that is used to make sure + that the log buffer doesn't grow to unbounded size. + (mh-exec-cmd, mh-exec-cmd-daemon, mh-handle-process-error): Use + mh-truncate-log-buffer instead of erase-buffer to keep some + number of previous log messages around (closes SF #685476). + +2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (tool-bar-mode): Declare it in XEmacs. + (mh-folder-mode): Use mh-funcall-if-exists to call hl-line-mode. + + * mh-utils.el (mh-funcall-if-exists): New macro that calls a + function only if it exists. + (mh-logo-display, mh-defun-show-buffer): Use mh-funcall-if-exists + to call the functions find-image and deactivate-mark. + + * mh-mime.el (mh-mime-cleanup, mh-small-image-p) + (mh-mm-display-part): Use mh-funcall-if-exists to call the + functions image-size and remove-images. + + * mh-comp.el (tool-bar-map, tool-bar-mode): Declare the variables + in XEmacs. + (mh-folder-expand-at-point): Use mh-funcall-if-exists to call + mail-abbrev-complete-alias if it exists. + + * mh-alias.el (mh-read-address): Use mh-funcall-if-exists for + future extensibility. + +2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-logo-display): The function find-image is + present only in GNU Emacs. + (mh-defun-show-buffer): The function deactivate-mark is present + only in GNU Emacs. + (default-enable-multibyte-characters): Declare it in XEmacs to + avoid compiler warning. + (mh-face-display-function): Avoid inserting space if there isn't + any Face or X-Face header field to display. + + * mh-seq.el (mh-thread-last-ancestor): Move declaration of + variable before its first use to silence XEmacs warning. + + * mh-mime.el (default-enable-multibyte-characters, dots, type): + Declare these in XEmacs to remove compiler warnings in XEmacs. + (mh-mime-cleanup, mh-mm-display-part): Call remove-images only in + GNU Emacs. + (mh-small-image-p): Call image-size only in GNU Emacs. + + * mh-index.el (mh-mairix-next-result): Fix a bug where a quote + was missing. + (mh-swish++-regexp-builder): Remove the unused binding meta. + + * mh-e.el (mh-folder-size): Pass on an extra value to remove + XEmacs warning. + (mh-folder-mode): Surround calls to hl-line-mode and + tool-bar-mode with mh-do-in-gnu-emacs since these functions + aren't present in XEmacs. + + * mh-customize.el (mh-tool-bar-show-set, mh-tool-bar-letter-set) + (mh-tool-bar-folder-set): These functions call tool-bar-* + functions which are present only in GNU Emacs. So surround them + with mh-do-in-gnu-emacs. + + * mh-comp.el (mh-letter-mode, mh-folder-expand-at-point): Only + call these functions in GNU Emacs. + (mail-abbrevs): Declare it in XEmacs. + + * mh-alias.el (mh-read-address): Call completing-read-multiple + only in GNU Emacs. + (mail-abbrevs): Declare it in XEmacs. + (mh-alias-add-alias-to-file): Remove unused code. + +2003-02-14 Ville Skyttä <scop@xemacs.org> + + * mh-comp.el: Add autoloaded auto-mode-alist association. + +2003-02-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-face-display-function): Make the XEmacs part a + little simpler. + +2003-02-14 Steve Youngs <youngs@xemacs.org> + + * mh-customize.el (mh-show-xface-face): XEmacs doesn't have the + ':inherit' keyword for defface, rewrite with sane defaults. + + * mh-utils.el (mh-face-display-function): Fix bug that was + corrupting xface images when displayed with XEmacs' internal + xface image support. Also make XEmacs honour 'mh-show-xface-face' + when using internal xface image support. + +2003-02-12 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-modify-header-field): New function. To header + FIELD add VALUE. If OVERWRITE-FLAG is non-nil then the old value, + if present, is discarded. This is more flexible than before. + (mh-insert-auto-fields): Use it. This and the new function are a + courtesy of Satyaki. Thanks! + + * mh-customize.el (mh-auto-fields-list): Doc tweaks suggested by + Bill. + +2003-02-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-folder-expand-at-point): Tweak the error + message. Completion in the Fcc header field is only supported in + GNU Emacs 21. + +2003-02-12 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-auto-fields-list): Reorder after + `mh-identity-list' since it needs it to be defined. Move to + mh-identity customization group. + +2003-02-11 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-insert-mail-followup-to-flag): Removed. + Obsolete. + (mh-insert-mail-followup-to-list): Removed. Obsolete. Use + `mh-auto-fields-list' instead, which is a more general solution. + (mh-auto-fields-list): New defcustom. Alist of addresses for + which header lines are automatically inserted. Replaces + `mh-insert-mail-followup-to-list'. + + * mh-comp.el (mh-insert-mail-followup-to): Removed. Obsolete. + (mh-insert-auto-fields): New function. Insert custom fields if To + or Cc match `mh-auto-fields-list', replacing + mh-insert-mail-followup-to with a more general solution. + (mh-compose-and-send-mail): Call mh-insert-auto-fields instead of + mh-insert-mail-followup-to. Also don't call mh-insert-identity to + insert default setting if mh-insert-auto-fields inserted an + identity. + +2003-02-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-show-xface-function): Try to load the external + x-face library only if XEmacs doesn't have xface support. + (mh-face-display-function): Renamed. Also handle various + permutations of x-face and xface support in XEmacs better. + + * mh-customize.el (mh-show-use-xface-flag): Any emacs whose + major version is greater than or equal to 21 supports display of + X-Face and Face header fields. + +2003-02-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-do-in-gnu-emacs, mh-do-in-xemacs): Macros that + execute code only in GNU Emacs and XEmacs respectively. + (mh-emacs21-face-display-function): Refactor to make it slightly + nicer. Get rid of compiler warnings in GNU Emacs by using the + above macros. Also check for presence of xface feature (in XEmacs + specific code) before trying to display X-Face header field image. + +2003-02-11 Steve Youngs <youngs@xemacs.org> + + * mh-customize.el (mh-show-use-xface-flag): If using XEmacs and + can't find the external x-face pkg still enable X-Face images if + feature 'xface is present. + Update the doc string. + + * mh-utils.el (mh-emacs21-face-display-function): Make it work in + XEmacs. + (mh-show-xface-function): If using XEmacs without xface support, + use x-face.el pkg. If using XEmacs with xface support, or Emacs + 21, use mh-emacs21-face-display-function. + +2003-02-11 Mark D. Baushke <mdb@gnu.org> + + * mh-customize.el (mh-invisible-header-fields): Add + "X-Notes-Item:" which is generated by Lotus Notes Domino. See + URL<http://www-12.lotus.com/ldd/doc/domino_notes/Rnext/help6_admin.nsf + /f4b82fbb75e942a6852566ac0037f284/5eda03c647f879c285256c1d00396051 + ?OpenDocument&Highlight=0,x-notes-item> for details on how Domino + users may disable (restore the default) generation of these headers. + +2003-02-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-folder-expand-at-point): Add function doc string + and produce a nicer error message for Emacs versions that lack + mail-abbrev-complete-alias. + + * mh-utils.el (mh-handle-process-error): Check doc fix. + + * mh-e.el (mh-folder-from-address): Same as above. + +2003-02-10 Peter S Galbraith <psg@debian.org> + + * mh-comp.el: require mailabbrev, except in XEmacs. + (mh-mail-abbrev-make-syntax-table): New defmacro to call + mail-abbrev-make-syntax-table introduced in Emacs21. + (mh-folder-expand-at-point): Handle nested folders. + All of the above was written by Satyaki. I just applied the patch + and tested. + +2003-02-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el: Fixes to keep the byte compiler happy. + + * mh-customize.el (mh-invisible-header-fields): Modified to + remove space after ":" in header field names. + +2003-02-09 Peter S Galbraith <psg@mixed.dyndns.org> + + * mh-comp.el (mh-letter-complete): Add completion for fcc lines. + (mh-folder-expand-at-point): Do completion at point for folder + name. Like `mh-alias-letter-expand-alias' for aliases, it doesn't + work on XEmacs because it relies on `mail-abbrev-complete-alias' + to do completion. Maybe Steve could update XEmacs' mailabbrev.el? + +2003-02-09 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-invisible-header-fields): Remove trailing + space in "X-Face: " and "Face: " entries since those line often + break there. + +2003-02-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-emacs21-face-display-function): Use + mh-show-xface-face to colorize X-Face image. + + * mh-customize.el (mh-invisible-header-fields): Add extra headers + to ignore. + (mh-show-xface-face): Allow customization of the X-Face colors. + +2003-02-07 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-uncompface-executable, mh-uncompface): Remember + the path of the uncompface executable so that we don't need to + search for it every time. + (mh-emacs21-face-display-function): If more than one X-Face (or + Face) header field was present then the fields would get + concatenated, leading to garbled output. The change only displays + the first image. + + * mh-customize.el (mh-x-face-file): Change documentation since it + can now be used to insert a Face header field. + + * mh-comp.el (mh-insert-x-face): Generalized to allow insertion + of Face header field. + +2003-02-06 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-emacs21-face-display-function): Updated + docstring. It is a common mistake to refer to a header field as a + header. The term header refers to the entire header while the term + header field refers to a single field. + + * mh-customize.el (mh-show-use-xface-flag): Ditto. + +2003-02-06 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-show-xface-function): Modified to use + mh-emacs21-face-display-function if we are running GNU Emacs 21. + (mh-face-to-png): New function to convert a Face header to a png + image. + (mh-uncompface): New function which converts an X-Face header to + a pbm image. + (mh-icontopbm): New function that does the job of icontopbm. + (mh-emacs21-face-display-function): New function that displays + Face/X-Face image in GNU Emacs 21. + (mh-show-xface): Modified to test if we are running in X. + Otherwise face display is suppressed. + + * mh-customize.el (mh-show-use-xface-flag): Tweak it, now that + MH-E supports face display natively on Emacs 21. Also remove the + check for window-system since it doesn't belong in a customizable + variable. + +2003-02-06 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (sendmail): Require it so that XEmacs can find + rfc822-goto-eoh. + (mh-mail-header-end): A substitute for mail-header-end that + doesn't widen the buffer. This is essential to avoid problems when + dealing with nested messages. + (mh-in-header-p, mh-letter-header-font-lock) + (mh-header-field-font-lock, mh-show-font-lock-fontify-region) + (mh-show-unquote-From): Use mh-mail-header-end instead of + mail-header-end. + + * mh-mime.el (mh-decode-message-body): same as above (closes SF + #681518). + + * mh-comp.el (mh-yank-cur-msg): same as above. + +2003-02-05 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-display-msg): Call mh-show-mode before invisible + headers are cleaned. This means that any surviving X-Face header + can be removed unconditionally in mh-clean-msg-header. + (mh-clean-msg-header): Since the function is now called with a + read-only buffer, make the buffer temporarily writable. + + * mh-mime.el (mh-mm-inline-message): Do X-Face display before + invisible headers are removed. + + * mh-customize.el (mh-invisible-headers): Simplified since the + X-Face header isn't treated specially any more. + (mh-invisible-header-fields): Add Face: and X-Face: to list of + invisible headers. + + * mh-mime.el (mh-mime-display): If body is empty the headers would + be treated like the body. The change fixes this (closes SF #681162). + (mh-mime-display): This change really fixes the above problem. + +2003-02-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-current-folder-name): Global variable that + keeps track of current folder. + (mh-normalize-folder-name): Substitute @ with + mh-current-folder-name (closes SF #666774). + (mh-prompt-for-folder): Bind mh-current-folder-name. Also + invalidate cache if we are visiting a folder that wasn't found in + the sub-folder cache. This is an indication that folders may have + been created outside of MH-E and so the cache may be stale. + +2003-02-03 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-decode-content-transfer-encoded-message): Removed. + (mh-display-msg): Remove the use of the above function. + (mh-normalize-folder-name): Leading "/" characters were being + lost. The change fixes this (closes SF #676890). + + * mh-mime.el (mh-decode-message-body): New function, factored out + from mh-mime-display and enhanced, to decode message based on + charset and content-transfer-encoding. This eliminates the need + for the external mimencode (closes SF #674857). + (mh-mime-display): Use mh-decode-message-body. + + * mh-e.el (mh-header-display): Don't need the binding since the + variable isn't present any more. + (mh-inc-folder): Avoid calling mh-show if point is not on a valid + scan line (closes SF #678115). + + * mh-customize.el + (mh-decode-content-transfer-encoded-message-flag): Removed. + +2003-02-03 Bill Wohler <wohler@newt.com> + + * import-emacs: MH-E now has its own directory in Emacs. + + * mh-e.el: (mh-version): Set to 7.2+cvs. + +2003-02-03 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.2. + + * MH-E-NEWS, README: Updated for release 7.2. + + * mh-e.el (Version, mh-version): Updated for release 7.2. + +2003-02-03 Bill Wohler <wohler@newt.com> + + * Makefile (dist): mkdir needs to happen *before* files are + copied. + + * MH-E-NEWS: Fixed some awkward verbiage. + +2003-02-02 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-invisible-headers): Surround regexp-opt + expression in parens to avoid problems viewing certain messages. + +2003-01-30 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-flists): Search for flists in mh-progs. + The original was inadvertently searching for flists in the user's + path. + +2003-01-27 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-default-folder-must-exist-flag): Changed + default to t according to the principle of least surprise. + +2003-01-26 Bill Wohler <wohler@newt.com> + + * mh-utils.el: Checkdoc fixes. + + * mh-pick.el (mh-do-search, mh-search-folder): Checkdoc fixes. + + * mh-loaddefs.el: Regenerated (lm-verify fixes). + + * mh-index.el (mh-mairix-next-result): Checkdoc fixes. + + * mh-alias.el: lm-verify fix. + + * Makefile (MH-E-SRC): Added ChangeLog, now that Emacs has a + lisp/mh-e directory. + (MH-E-ETC-ETC): Removed ChangeLog. + (dist): Moved creation of mail directory next to copy of files + into mail directory. + (install-emacs): Copy $(MH-E-SRC) into new directory + $(EMACS_HOME/lisp/mh-e. + (MH-E-SRC): Moved ChangeLog into new variable MH-E-OTHERS and + include MH-E-LOADDEFS there too. + (mh-loaddefs.el): Added lines so that lm-verify passes. + (dist, install-emacs): Use MH-E-OTHERS instead of MH-E-LOADDEFS. + +2003-01-26 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-tidy-draft-buffer, mh-compose-and-send-mail): + Rename mh-kill-draft-hook to mh-tidy-draft-buffer. + +2003-01-25 Jeffrey C Honig <jch@honig.net> + + * mh-utils.el (mh-exec-cmd, mh-exec-cmd-daemon) + (mh-process-daemon): Use mh-log-buffer for the output of commands + from mh-exec-cmd. + + * mh-utils.el (mh-temp-folders-buffer): Sequences and folders + loose the -temp from their buffer names as they are interesting to + the user. + + * mh-seq.el (mh-list-sequences): New name, mh-sequences-buffer as + it is intended to be interesting to the user. + + * mh-funcs.el (mh-list-folders): New name, mh-folders-buffer as it + is intended to be interesting to the user. + + * mh-comp.el (mh-check-whom, mh-compose-and-send-mail): Use + mh-recipients-buffer constant. Add a kill buffer hook to delete + the recipients buffer when a draft buffer is killed. + +2003-01-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-customize): New interactive argument + deletes other windows. + (mh-tool-bar-show-set, mh-tool-bar-letter-set) + (mh-tool-bar-folder-set): Modified so that clicking the customize + and help buttons deletes the other windows in the frame. + + * mh-mime.el (mh-mm-inline-message): Remove unused code. + + * mh-seq.el (mh-notate-deleted-and-refiled): Fix a small bug where + the wrong notation was being used. + (mh-toggle-threads): The function had a bug if you did the + following starting from an unthreaded wide folder: + (1) Create a sequence with S p + (2) Narrow to new sequence with S n + (3) Thread narrowed folder with T t + (4) Kill sequence with S k + (5) Unthread narrowed folder with T t + At this point we would have an empty folder. The change fixes + this. + (mh-toggle-threads): Fix documentation. + + * mh-customize.el (mh-invisible-header-fields): Add + X-MHE-Checksum to invisible headers. + + * mh-comp.el (mh-insert-x-mailer): Slightly more informative + X-Mailer header. + +2003-01-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-header-display): Modified so that quoted-printable + or base64 encoded messages are left untouched. + + * mh-utils.el (mh-decode-content-transfer-encoded-message): Munge + the Content-Transfer-Encoding header so that the MIME decoding + routines of Gnus doesn't get confused. + (mh-display-msg): Use insert-file-contents-literally so that + display will work for non-ascii. + + * mh-mime.el (mh-mime-display): Use charset info to decode + message file (closes SF #655123). + +2003-01-24 Bill Wohler <wohler@newt.com> + + * mh-alias.el (mh-alias-add-alias-to-file): Removed period from + error message and added parens around error function. + +2003-01-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-decode-quoted-printable-flag): Removed. + (mh-decode-content-transfer-encoded-message-flag): This replaces + mh-decode-quoted-printable-flag. + + * mh-utils.el (mh-decode-content-transfer-encoded-message): New + function which handles messages that are encoded as base64 or + quoted-printable (closes SF #674190). + (mh-decode-quoted-printable): Removed. + (mh-display-msg): Use mh-decode-content-transfer-encoded-message + instead of mh-decode-quoted-printable. + +2003-01-23 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-generate-scan-lines): Fix a little bug + that would occasionally cause angles ('<' and '>') to appear at + root level. + +2003-01-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-notate-cur): Enable overlay arrow display in text + mode too. + + * mh-e.el (mh-folder-mode): Initialize overlay-arrow-string so + that a '>' is displayed in text mode. + +2003-01-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-scan-msg-overflow-regexp): Change the variable + so that a space is always maintained in the beginning of the scan + line. + + * mh-seq.el (mh-notate-seq, mh-notate-cur): Make the functions + faster by cutting down on the use of mh-goto-msg. + (mh-toggle-threads): Add call to mh-notate-cur, since inserting + the folder names in a search results folder screws up the + location of the overlay arrow. + + * mh-index.el (mh-index-delete-folder-headers): Position the + point on a message line if possible. + + * mh-funcs.el (mh-copy-msg): Use the mh-iterate macro to make the + function faster. + + * mh-e.el (mh-scan-folder): Reuse mh-notate-deleted-and-refiled. + + * mh-loaddefs.el: Regenerated. + + * mh-utils.el (mh-add-msgs-to-seq): Add a new parameter that + suppresses the annotation of the sequence since it is + inefficient. + + * mh-seq.el (mh-delete-seq): Speed up the part of the function + that removes the sequence notation. + (mh-put-msg-in-seq, mh-notate-deleted-and-refiled): Use + mh-iterate-on-messages-in-region to make the function fasters when + operating on regions. The key idea is to loop over the folder + buffer exactly once and do all annotations. The existing algo + would walk over the buffer multiple times thereby slowing things + down. + (mh-iterate-on-messages-in-region): Added an extra parameter which + is bound to the message index as the loop is executed. + (mh-region-to-msg-list, mh-thread-delete, mh-thread-refile): Use + the new mh-iterate-on-messages-in-region macro. + + * mh-e.el (mh-delete-msg-no-motion, mh-refile-msg, mh-undo): Same + as above. + (mh-notate-user-sequences): Change algorithm to make notating of + user sequences fast. + +2003-01-19 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-logo.xpm: New image file that contains the MH-E logo. + Change foreground color to the blue in the MH-E logo. + + * Makefile (MH-E-IMG): Add mh-logo.xpm to list of image files. + + * mh-utils.el (mh-show-buffer-mode-line-buffer-id): Adjust it to + keep space in the beginning for the logo. + (mh-logo-cache): New variable that caches the logo image file + location. + (mh-logo-display): Display the MH-E logo on the mode line. + (mh-display-msg): Display logo in mh-show-mode. + + * mh-e.el (mh-make-folder-mode-line): Display logo in + mh-folder-mode. + + * mh-comp.el (mh-compose-and-send-mail): Display logo in + mh-letter-mode. + + * mh-loaddefs.el: Regenerated. + + * mh-seq.el (mh-iterate-on-messages-in-region): New macro to + iterate on all messages in a region. + (mh-region-to-msg-list): Simplified since it uses + mh-iterate-on-messages-in-region now. + + * mh-e.el (mh-delete-msg, mh-refile-msg): Change interactive spec + to pass the region that is to be deleted when appropriate. + (mh-delete-msg-no-motion, mh-refile-msg, mh-undo): Operate on + regions directly without creating the list of messages to be + deleted/refiled. + (mh-delete-a-msg, mh-refile-a-msg, mh-undo-msg): The msg + parameter in these functions can now be nil. If so, the current + message is deleted, refiled or undone respectively. Avoids the + use of mh-goto-msg in this case and speeds up operations on + regions quite a bit. + +2003-01-19 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-read-address): Bug Fix. In XEmacs and Emacs20, + it would always prompt using "To: " instead of using the command + argument (closes SF #670913). + +2003-01-19 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-folder-completion-function): If there is a + +foo/bar folder and the user types foo//bar then the completion + function would say a match happened without showing the + normalized folder name. This change fixes that. + +2003-01-18 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-rmail): Modified so that new and unseen messages + are shown (closes SF #667542). + +2003-01-17 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-generate-pretty-name): Generate nicer + names. In particular all '-' characters are removed. + +2003-01-16 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-index-program): Documentation fix. + + * mh-loaddefs.el: Regenerated. + + * mh-customize.el (mh-index-program): Add choices for mairix and + pick. + + * mh-index.el (mh-indexer-choices): Add search interfaces for + mairix and pick. + (mh-index-search): Add links for mairix and pick. + (mh-index-pick-folder, mh-pick-binary): Variables needed to + implement pick support. + (mh-pick-execute-search, mh-pick-next-result): New functions to + implement pick support. + (mh-mairix-binary, mh-mairix-directory, mh-mairix-folder): New + variables for mairix support. + (mh-mairix-execute-search, mh-mairix-next-result) + (mh-mairix-regexp-builder, mh-mairix-convert-to-sop*): New + functions for mairix. + + * mh-funcs.el (mh-kill-folder): Move message to the end. + + * mh-e.el (mh-folder-mode): Make overlay-arrow-position and + overlay-arrow-string local variables so that the arrow will + remain even if some other folder is visited. + (mh-remove-cur-notation, mh-remove-all-notation): The test isn't + required any more since overlay-arrow-position is local. + (mh-goto-cur-msg): Remove overlay arrow if current message + doesn't exist. + + * mh-seq.el (mh-notate-cur): Don't need to set + overlay-arrow-string any more since it is local and has been set + at initialization. + +2003-01-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-current-folder): Keep track of current + folder when flists is called. + (mh-speed-flists, mh-speed-parse-flists-output): Try to avoid + ambiguity when folders are present with + at the end of the name. + Unfortunately it can't always be avoided. + + * mh-e.el (mh-folder-size): Remove the unnecessary error check. + (mh-parse-flist-output-line): Add extra argument which + occasionally avoid problems with folder names that end with '+'. + + * mh-utils.el (mh-sub-folders-actual): Fix the folder name + parsing so that it doesn't get confused by trailing '+' chars in + the folder name. + +2003-01-14 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-normalize-folder-name): Enhanced so that it can + now handle ".." and "." correctly during folder name completion. + (mh-normalize-folder-name): Avoid error in boundary condition + where the folder string is empty. + +2003-01-14 Mark D. Baushke <mdb@gnu.org> + + * mh-e.el (mh-visit-folder): Pass `current-prefix-arg' to + the `mh-read-msg-range' function as the optional + always-prompt-flag. + +2003-01-14 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-normalize-folder-name): New function that + normalizes folder names. + (mh-sub-folders): Use mh-normalize-folder-name. Also the function + has been modified so that a trailing slash is only added if the + folder potentially has subfolders. + (mh-sub-folders-actual): Simplified since the folder has already + been normalized in mh-sub-folders. + (mh-remove-from-sub-folders-cache): Modified so that the cached + results of two of the folders ancestors are invalidated. + (mh-folder-completion-map): Ugly hack to make the error go away + when minibuffer-complete-word is called. + (mh-folder-completion-function): The completion function will now + be more selective in adding '/' at the end of completed folder + names. + (mh-folder-completing-read): The folder name is normalized before + return. The minibuffer-local-completion-map is shadowed to avoid + error with SPC (bound to minibuffer-complete-word). We really + need a better solution. + +2003-01-13 Bill Wohler <wohler@newt.com> + + * mh-seq.el: Edited comment and docstring text to conform with RFC + 2822 terminology. Message-ID is the header field. It contains a + message identifier. + +2003-01-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-sub-folders): Add an argument that returns + sub-folders with a / character appended at the end. + (mh-folder-completion-function): Modify the function so that one + tab is now sufficient to complete the folder name and add a + trailing /. + (mh-folder-completing-read): Remove the trailing / that the + completion function now adds to the folder name. Also multiple / + characters in the folder input are removed. So if the user inputs + +foo///bar//baz///// then that will be converted to +foo/bar/baz. + This will improve the performance of caching. + + * mh-seq.el (mh-notate-cur): Check that a valid current message + exists before trying to notate (closes SF #667331). + (mh-message-id-regexp): New variable to store regexp to recognize + message-ids. + (mh-thread-generate): Use mh-message-id-regexp to filter out non + message-id's from the References: header. + +2003-01-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-notate-cur): Disable overlay-arrow display if we + aren't on a graphic display. + +2003-01-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-notate-cur): New function to notate the current + message. The marker in the fringe is updated too. + (mh-narrow-to-seq, mh-widen, mh-thread-inc, mh-thread-folder): Use + the specialized function mh-notate-cur instead of mh-notate-seq. + + * mh-e.el (mh-arrow-marker): New buffer local variable to store + the position where the marker in the fringe is going to be + displayed (closes SF #664824). + (mh-folder-mode): Create a marker for the fringe. + (mh-update-sequences, mh-get-new-mail, mh-goto-cur-msg): Call the + specialized function mh-notate-cur instead of mh-notate-seq or + mh-notate. + (mh-remove-cur-notation, mh-remove-all-notation): Reset the + overlay-arrow-position if needed. + + * mh-loaddefs.el: Regenerated. + +2003-01-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-remove-from-sub-folders-cache): Modified so that + creating nested folders doesn't produce inconsistent results. + (mh-prompt-for-folder): Remove call of mh-folder-list-change-hook. + + * mh-funcs.el (mh-kill-folder): Don't ask for confirmation if + called on a folder holding index search results. Also the now + removed mh-folder-list-change-hook is called no more. + + * mh-customize.el (mh-auto-folder-collect-flag) + (mh-folder-list-change-hook): Removed. + + * mh-loaddefs.el: Regenerated. + +2003-01-10 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-default-folder-must-exist-flag): New + variable to suppress suggested folder if the folder doesn't + already exist (closes SF #657096). + (mh-default-folder-list): New variable that + holds mapping between an address and the desired folder for + filing (closes SF #657096). + (mh-default-folder-prefix, mh-default-folder-must-exist-flag): In + docstring, refer to documentation for mh-prompt-for-refile-folder + and mh-folder-from-address. + (mh-highlight-citation-p, mh-compose-insertion, + (mh-insert-mail-followup-to-list, mh-index-program, + (mh-identity-default): Fixed case of tags. + + * mh-e.el (mh-folder-from-address): Use new variable + mh-default-folder-must-exist-flag to return nil if this variable + is t and the folder doesn't already exist. In addition, can now + look up a default folder in the new variable + mh-default-folder-list (closes SF #657096). + (mh-prompt-for-refile-folder): In docstring, refer to + documentation in mh-folder-from-address. + + * mh-index.el (mh-swish-execute-search): Changed \..* to \\..* in + the FileRules filename in the sample config file. Otherwise, the + users don't see the backslash at all, and no files are indexed! + (closes SF #665888). + +2003-01-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-folder): Get headers for exactly the + messages that are present. If only messages 1-10 and 3800-3900 + are being shown then we will now scan exactly those messages and + not the full range from 1-3900 as was being done earlier. + (mh-toggle-threads): When converting from threaded to normal view + only the messages present in the buffer are scanned. Earlier all + messages from the minimum to the maximum would be scanned (closes + SF #626117). + + * mh-pick.el (mh-search-folder): Fix typo. + (mh-pick-do-search): Fix bug from cut and paste. Also set window + config properly. + + * mh-utils.el (mh-prompt-for-folder): Add new argument to allow + it to accept + as a folder name. This allows the user to search + all folders when "Fs" is used. + + * mh-pick.el (mh-search-folder): Fix interactive spec of function. + (mh-pick-do-search): Rewritten to call pick in one go. This will + make adding pick as a default index search program easier. Also + pick now accepts the same query syntax as the index search + programs (closes SF #664816). + (mh-next-pick-field): Removed. + (mh-pick-parse-search-buffer): New function to parse the search + buffer. + (mh-pick-construct-regexp, mh-pick-regexp-builder): New function + to produce a pick query from the parsed representation. + + * mh-index.el (mh-index-do-search): Refactor the search pattern + parser into a new function and use that instead. + + * mh-loaddefs.el: Regenerated. + +2003-01-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-loaddefs.el: Regenerated. + + * mh-utils.el (mh-remove-from-sub-folders-cache) + (mh-prompt-for-folder): Replace mh-update-sub-folders-cache with + mh-remove-from-sub-folders-cache. + (mh-exec-cmd-daemon): Mention set-process-filter in documentation. + + * mh-pick.el (mh-searching-function): New buffer local variable + that keeps track of the default searching function to be used. + (mh-pick-mode): Make mh-searching-function buffer local. + (mh-search-folder): Set mh-searching-function to use pick. + (mh-search-folder, mh-pick-menu, mh-pick-mode-help-messages) + (mh-pick-mode, mh-do-pick-search, mh-pick-do-search): Rename + mh-do-pick-search to mh-pick-do-search. But keep + mh-do-pick-search as a deprecated function. + (mh-do-search): New interactive function that performs the + default search. + (mh-pick-mode-map): Update keymap. + + * mh-index.el (mh-index-search): Set mh-searching-function to do + index search. + (mh-index-new-folder): Replace mh-update-sub-folders-cache with + mh-remover-from-sub-folders-cache. + + * mh-funcs.el (mh-kill-folder): Same as above. + + * mh-index.el (mh-index-evaluate, mh-swish++-regexp-builder): + Checkdoc fixes. + + * mh-customize.el: Fixes to make byte compiler in CVS Emacs + perfectly happy. + +2003-01-09 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-folder-from-address): New function that proposes the + name of a folder with an alias for the address in the current message. + (mh-prompt-for-refile-folder): Use it (closes SF #657096). + + * mh-customize.el (mh-default-folder-prefix): New variable used by + mh-folder-from-address. + (mh-invisible-header-fields): Edited docstring. + + * mh-alias.el (mh-alias-address-to-alias): Added ;;;###mh-autoload + cookie (used by mh-folder-from-address in mh-e.el). Edited text in + comment. + + * mh-utils.el: Provided naming conventions for buffer and buffer + variable names. + (mh-temp-folders-buffer): Renamed buffer to " *mh-folders*". + (mh-temp-sequences-buffer): Renamed buffer to " *mh-sequences*". + (mh-info-buffer): Renamed from mh-temp-info-buffer. + (mh-log-buffer): New buffer variable to hold name of "*MH-E Log*" + buffer which is expected to be used for the output of MH commands. + Perhaps we always create this buffer at initialization and append + to it rather than erase it each time? + + * mh-e.el (mh-quit): Loop over all buffers and delete MH-E + temporary and working buffers. As long as the buffer naming + conventions are followed, new buffers will be automatically + killed. + (mh-version): Renamed mh-temp-info-buffer to mh-info-buffer. + + * mh-comp.el (mh-insert-x-mailer): Renamed mh-temp-info-buffer to + mh-info-buffer. + +2003-01-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-folder-size): If the user doesn't have a + Unseen-Sequence definition in .mh_profile then an error was + produced. This change fixes that. + + * mh-seq.el (mh-thread-generate): Replace the *mh-thread* buffer + with a temporary buffer which is cleaned up when the function + exits. + + * mh-e.el (mh-prompt-for-refile-folder): New function which + refactors out the intelligent folder guessing code from + mh-refile-msg. + (mh-refile-msg): Use mh-prompt-for-refile-folder. + + * mh-seq.el (mh-thread-refile): Use mh-prompt-for-refile-folder to + do the same intelligent destination folder guessing as + mh-refile-msg (closes SF #664829). + + * mh-utils.el (mh-folder-list, mh-make-folder-list-process) + (mh-folder-list-temp, mh-folder-list-partial-line) + (mh-set-folder-list): Removed. + (mh-sub-folders-cache, mh-sub-folders, mh-sub-folders-actual): + Moved over from mh-speed.el to implement hierarchical completion. + (mh-update-sub-folders-cache): Utility function called when + new folders are created or folders are removed. + (mh-folder-completion-function): New function is the folder name + completion function used in completing-read. + (mh-folder-completing-read): A thin wrapper function that is used + instead of completing-read directly. In the future we might want + to allow the user a customizable variable which will turn off + folders based completion. + (mh-prompt-for-folder): Use mh-folder-completing-read to read in + the folder name with hierachical completion (closes SF #664821). + + * mh-speed.el (mh-speed-folders, mh-speed-folders-cache) + (mh-speed-folders-actual): Moved to mh-utils.el as mh-sub-folders, + mh-sub-folders-cache and mh-sub-folders-actual respectively. + (mh-speed-invalidate-map, mh-speed-invalidate-map) + (mh-speed-add-folder): Use the new names. + + * mh-funcs.el (mh-kill-folder): Remove code that used to update + mh-folder-list which is no longer present. Instead + mh-update-sub-folders-cache is called. + + * mh-index.el (mh-index-new-folder): Same as above. + +2003-01-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-exec-cmd-daemon): An argument was added which + controls what is done with the process output. + + * mh-funcs.el (mh-kill-folder): Use mh-previous-window-config to + restore window configuration. Also the call to mh-exec-cmd-daemon + only displays output if an error happened (closes SF #664828). + (mh-rmf-daemon): Check rmf output and display it only if + something went wrong. + (mh-print-msg): Pass in nil argument to mh-exec-cmd-daemon. + + * mh-comp.el (mh-redistribute, mh-send-letter): Pass in nil + argument to mh-exec-cmd-daemon so that the functions will behave + as before. + + * mh-pick.el (mh-search-folder): The current window config is + stored. + (mh-make-pick-template): Make the message headers read-only. + (mh-pick-mode-help-messages): Update help message. + (mh-do-pick-search): Fix problem when buffer isn't showing any + messages. + (mh-next-pick-field): Use buffer-substring-no-properties is + better. + (mh-pick-mode-map): Add key bindings (partially addresses + SF #664816) + + * mh-index.el (mh-indexer-choices): Add a new field for each + index program choice. If it is non-nil then it is the name of a + function that given a lisp expression to search for generates a + pattern that is acceptable to the search program. + (mh-index-regexp-builder): New variable that stores the function + to be used to convert from the lisp expression syntax to + something that the search program understands. + (mh-index-generate-pretty-name): Generalized so that it can take + a list of strings as input. + (mh-index-search): Modified so that if the configured program has + a corresponding regexp-builder then a search buffer like pick + search is produced. Otherwise the previous behavior is maintained. + (mh-index-do-search): New interactive function that takes the + contents of the search buffer, generates an appropriate query and + produces the search results buffer by calling mh-index-search. + (mh-replace-string, mh-index-parse-search-regexp) + (mh-index-add-implicit-ops, mh-index-evaluate): New functions + which parses the infix search expression that the user enters. A + parse tree from which queries for different search programs can + be produced is produced. + (mh-swish++-regexp-builder, mh-swish++-print-regexp): Takes the + internal form of the query and produces input suitable for + swish++. + + * mh-loaddefs.el: Regenerated. + +2003-01-08 Bill Wohler <wohler@newt.com> + + * Makefile (emacs-logs): New target for viewing CVS Emacs logs. + Useful to see if an Emacs developer has changed MH-E. + + * MH-E-NEWS: Fixed case of MH-E in the "Changes" title. + + * mh-utils.el (mh-temp-info-buffer): New variable to hold name of + buffer that contains version info. + + * mh-e.el (mh-version): Use mh-temp-info-buffer instead of + mh-temp-buffer since version information was getting clobbered by + the aliasing code before it could be seen (closes SF #664467). + (mh-quit): Delete mh-temp-info-buffer. + + * mh-comp.el (mh-insert-x-mailer): Use mh-temp-info-buffer to find + version info instead of mh-temp-buffer. You kind of need this + patch to send mail. + +2003-01-07 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Set to 7.1+cvs. + +2003-01-07 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.1. + + * MH-E-NEWS, README: Updated for release 7.1. + + * mh-e.el (Version, mh-version): Updated for release 7.1. + +2003-01-07 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-auto-folder-collect-flag, + mh-alias-system-aliases, mh-alias-insert-file): Edited docstrings. + + * Makefile (MH-E-IMG): Added alias.pbm and alias.xpm. + + * mh-alias.el (mh-alias-insert-file, mh-alias-add-alias): Fixed + checkdoc warnings. + +2003-01-07 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-search-from-end): New function that is used to + replace our usage of the CL function search. + (font-lock): The library is loaded to avoid compilation warning + in CVS Emacs. + + * mh-speed.el (mh-speed-goto-folder, mh-speed-add-folder) + (mh-speed-extract-folder-name, mh-speed-invalidate-map): Use + mh-search-from-end instead of search. + + * mh-seq.el (mh-thread-remove-parent-link): Use loop instead of + remove*. + (mh-thread-process-in-reply-to): Use mh-search-from-end instead + of search. + + * mh-index.el (mh-md5-parser): Fix name of function. + (mh-index-update-single-msg, mh-index-update-maps): Avoid using + destructuring-bind since Emacs-20.7 can't handle this particular + usage. + (mh-namazu-next-result): Use mh-search-from-end instead of + search. + + * mh-e.el (recursive-load-depth-limit): Add a defvar since CVS + emacs which doesn't have the variable defined causes a compiler + warning. + (mh-refile-a-msg): Rewritten to avoid using pushnew. + (mh-undo-msg): Use loop instead of remove-if. + + * mh-comp.el (mh-show-buffer-message-number): Use + mh-search-from-end instead of search. + +2003-01-01 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-visit-folder): Modified so that if RANGE is nil then + all messages are displayed. Documentation modified so that this is + explicitly stated. + (mh-visit-folder): Really fix it this time. + +2003-01-01 Mark D Baushke <mdb@gnu.org> + + * mh-alias.el (mh-alias-from-has-no-alias-p): Needs the + mh-autoload comment or mh-customize may have problems finding the + function. + + * mh-loaddefs.el: Regenerated. + +2002-12-28 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-namazu-execute-search): Fix bug in documentation. + +2002-12-28 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-letter-mode): Mention mh-compose-insertion + variable in docstring, explain how to expand directives, and + don't mention mh-mhn-compose-insertion which isn't used directly + any more. + (mh-send-letter): Mention that X-Mailer and X-Face are inserted + automatically so that a user isn't tempted to do so himself in + mh-before-send-letter-hook. + (mh-insert-letter): Use "variable" prefix for mh-invisible-headers + now that we have both a function and a variable. Clarified + language a bit. + +2002-12-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-show-xface-function): Only load x-face-e21 if + the emacs is not XEmacs. + + * mh-index.el (mh-index-new-folder): The folder created should + always be added to mh-folder-list. Otherwise folder name + completion doesn't find the new folder created. + +2002-12-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-clean-message-header-flag) + (mh-visible-headers, mh-invisible-headers) + (mh-invisible-header-fields-set): Reworded to satisfy checkdoc. + + * mh-loaddefs.el: Regenerated. + + * mh-e.el (mh-inc-folder, mh-visit-folder, mh-read-msg-range): + Handle nil value of mh-large-folder properly. + + * mh-customize.el (mh-tool-bar-show-set, mh-tool-bar-letter-set) + (mh-tool-bar-folder-set, mh-tool-bar-folder-buttons) + (mh-invisible-headers, mh-invisible-header-fields-set): Checkdoc + fixes. + (mh-large-folder): Updated to allow for infinity. If + mh-large-folder is nil then all folders are deemed small. + +2002-12-23 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-inc-folder, mh-visit-folder): Emit a message if + threading was suppressed because the number of messages exceed + mh-large-folder. + +2002-12-23 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-invisible-headers): Deleted. Moved to + mh-customize.el + + * mh-customize.el (mh-invisible-header-fields): New + defcustom. Simple user interface to change mh-invisible-headers. + (mh-invisible-header-fields-set): New function called when + mh-invisible-header-fields is set. + (mh-invisible-headers): New function. Does the actual work of + building the variable mh-invisible-headers from + mh-invisible-header-fields. + (mh-invisible-headers): defvar moved from mh-utils.el + +2002-12-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-folder-size): Removed. Something very + similar appears as mh-folder-size. + (mh-speed-view): Simplified since the range selection logic has + been moved to mh-read-msg-range. + (mh-speed-parse-flists-output-line): Moved to mh-e.el as + mh-parse-flist-output-line. + + * mh-funcs.el (mh-pack-folder): Use the new mh-read-msg-range. + + * mh-e.el (mh-rescan-folder): Use the new mh-read-msg-range. + (mh-parse-flist-output-line): Moved from mh-speed.el where this + function was called mh-speed-parse-flists-output-line. + (mh-folder-size): Renamed from mh-speed-folder-size. The function + has been made more general and can be called from any buffer and + not just the speedbar buffer. + (mh-visit-folder): Use the new mh-read-msg-range (addresses SF + #655891). + (mh-read-msg-range): Rewritten. + +2002-12-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-delete-subject-or-thread): New interactive + function that intelligently deletes messages based on threading, + if the folder is threaded, or on subject if folder isn't threaded. + + * mh-utils.el (mh-show-delete-subject-or-thread): New interactive + function, callable from the show buffer, to intelligently delete + messages based on threading info or subject. + (mh-show-mode-map): Change binding of "k" to call + mh-show-delete-subject-or-thread. + + * mh-e.el (mh-folder-mode-map): Change binding of "k" to call + mh-delete-subject-or-thread. + + * mh-comp.el (mh-letter-mode-map): Add key binding for + mh-insert-identity. + + * mh-loaddefs.el: Regenerated. + +2002-12-21 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-tool-bar-letter-set): Bug fix. The + `tool-bar-add-item-from-menu' items were broken. I can't use my + constants there. + +2002-12-21 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-insert-file): Bug fix. I never checked + that an AliasFile entry existed in .mh_profile. + +2002-12-21 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-alias-insertion-location): New defustom. + Specifies where new aliases are entered in alias files. + + * mh-alias.el (mh-alias-add-alias-to-file): Use it. + +2002-12-21 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-add-alias-to-file): If ALIAS matches + exactly, prompt to [i]nsert before old value or [a]ppend after it. + (mh-alias-insert-file): Make sure we don't edit the passwd file. + Add optional argument for alias; If ALIAS is specified and it + already exists, try to return the file that contains it. + (mh-alias-which-file-has-alias): New function. Return the name of + writable file which defines ALIAS from list FILE-LIST. + (mh-alias-add-alias): Remove prompts for case of alias already + defined; done in mh-alias-add-alias-to-file. + +2002-12-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-folders-actual): Fix bug in parsing of + folder names that have spaces in them. The original function would + truncate the folder name at the first space. + (mh-speed-flists): Add -sequence option to flists. This guards + against the user specifying something other than the unseen + sequence in his .mh_profile. + (mh-speed-parse-flists-output-line): New function that parses a + single line in the output of flists to find the folder name and + the counts of unseesn and total messages. + (mh-speed-parse-flists-output): Fix parsing bug which truncates + the folder names at the first space. + + * mh-index.el (mh-index-generate-pretty-name): New function which + generates a nicer name for the search results. It trims white + space at the beginning and end and replaces white space with + underscores within the search regexp. + (mh-index-search): Use mh-index-generate-pretty-name. + + * mh-loaddefs.el: Regenerated. + +2002-12-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-new-folder): Add new folder to + mh-folder-list to enable name completion. + (mh-glimpse-execute-search, mh-swish-execute-search) + (mh-swish++-execute-search): Fix documentation. + + * mh-seq.el (mh-thread-generate): Fixed a stupid bug where the wrong + folder could get 'scan'ed when generating the threaded view. + + * mh-index.el (mh-index-search): If optional prefix arg is given + then the search in the current index buffer is redone. + (mh-glimpse-execute-search, mh-swish-execute-search) + (mh-namazu-execute-search): Documentation fixes. + + * mh-e.el (mh-index-previous-search): New buffer local variable + stores parameters of search that created the buffer. + (mh-folder-mode): Make mh-index-previous-search buffer local. + (mh-visit-folder): Tweak the function so that only a single window + with the folder buffer is shown if mh-showing-mode is nil. + + * mh-loaddefs.el: Regenerated. + +2002-12-19 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-add-alias): Bug fix. + +2002-12-19 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-add-alias): New interactive command. Add + ALIAS for ADDRESS in personal alias file. + (mh-alias-grab-from-field): New interactive command. Add ALIAS for + ADDRESS in personal alias file. + (mh-alias-add-address-under-point): New interactive + command. Insert an alias for email address under point. + (mh-alias-suggest-alias): New function. Suggest an alias for STRING. + (mh-alias-insert-file): New function. Return the alias file to + write a new entry in. + (mh-alias-address-to-alias): New function. Return the ADDRESS + alias if defined, or nil." + (mh-alias-from-has-no-alias-p): New function. Return t is From has + no current alias set. Used as tool-bar button enable function. + (mh-alias-add-alias-to-file): New function. Add ALIAS for ADDRESS + in alias FILE without alias check or prompts. + + * alias.xpm, alias.pbm: New tool-bar icon for + mh-alias-grab-from-field. + + * mh-e.el (mh-folder-line-matches-show-buffer-p): New function. + Return t if the message under point in folder-mode is in the show + buffer. + + * mh-utils.el (mh-goto-address-find-address-at-point): New + function copied from goto-addr.el, which we don't want to + force-load on users. Find e-mail address around or before point. + (mh-address-mail-regexp): New defvar. A regular expression + probably matching an e-mail address. + + * mh-customize.el (mh-alias-insert-file): New defcustom. + Filename to use to store new MH-E aliases. + (mh-tool-bar-folder-buttons): Enable mh-tool-bar-item-alias icon. + + * mh-comp.el (mh-extract-from-header-value): New function. + Extract From: string from header. + +2002-12-19 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-update-single-msg): New defvar controls + max number of command line args. + (mh-index-execute): New function which is to be used + instead of xargs so that we don't give the shell too many command + line args. + (mh-index-update-maps): Use mh-index-execute instead of xargs. + (mh-index-search): Remove unused code. Also the first message in + folder buffer is made current. + +2002-12-18 Peter S Galbraith <psg@debian.org> + + * mh-loaddefs.el: Regenerated. + + * mh-comp.el (mh-letter-tool-bar-map): Moved to mh-customize.el + + * mh-e.el (mh-folder-tool-bar-map): Moved to mh-customize.el + + * mh-utils.el (mh-get-msg-num): autoloaded. + (mh-show-tool-bar-map): Moved to mh-customize.el + + * mh-customize.el (mh-tool-bar-item-*): 33 new defconsts for + tool-bar setup and customization. + (mh-tool-bar-folder-buttons-set): New function to setup the + tool-bar after customization. + (mh-tool-bar-folder-buttons): New defcustom to specify which icons + appears in the tool-bar. + (mh-tool-bar-letter-buttons-set): New function to setup the + tool-bar after customization. + (mh-tool-bar-letter-buttons): New defcustom to specify which icons + appears in the tool-bar. + (mh-tool-bar-show-set): New function to setup mh-letter-tool-bar-map. + (mh-tool-bar-letter-set): New function to setup + mh-letter-tool-bar-map. + +2002-12-18 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-folder-mode-map): Change entries for "\t", "\M-\t" + and backtab to call mh-index-next-folder and + mh-index-previous-folder as appropriate. + + * mh-index.el (mh-index-next-folder, mh-index-previous-folder): + New interactive functions which jumps to search results of next + and previous folders respectively. + + * mh-loadddefs.el: Regenerated. + + * mh-index.el (mh-index-delete-folder-headers): Arrange for + mh-goto-cur-msg to just go to the current message. + + * mh-e.el (mh-visit-folder): Since mh-scan-folder erases the whole + buffer anyway, we don't need to delete the folder headers. Also + index-data is non-nil only when the buffer folder doesn't exist. + So we need to call mh-make-folder. + (mh-folder-mode): Fix bug in that mh-index-checksum-origin-map was + not being made buffer local! + +2002-12-17 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-visit-folder): Fix bug. + + * mh-index.el (mh-md5sum-buffer): Buffer from which md5sum is run. + (mh-index-folder-first, mh-index-folder-last) + (mh-index-original-msg-list): Convenience macros aren't needed + anymore since the data structure has been changed. + (mh-index-update-single-msg): New function to update maps that + relate MD5 checksums to actual messages and vice-versa for a + single message. + (mh-index-update-maps): Do the above for all messages. If some + messages don't have MD5 checksums, they are annotated with the + result of md5sum. + (mh-index-search): Updated for the new version of mh-index-data. + (mh-msg-exists-p): New function to test a message exists. + (mh-index-insert-folder-headers): Updated for new mh-index-data. + (mh-index-delete-folder-headers): New function used to eliminate + original folder names from the buffer and make it look like a + plain folder buffer. This is used from mh-process-commands. + (mh-index-visit-folder): Use new version of mh-index-data. + (mh-index-match-checksum): New function which checks if the + X-MHE-Checksum header of a message matches. + (mh-index-execute-commands): New function that rmm's the original + messages. Then after mh-execute-commands executes it will seem + that the original messages were executed upon. This completes the + fix of SF #623321. + (mh-checksum-buffer): Renamed from mh-md5sum-buffer. + (mh-checksum-cmd, mh-checksum-parser): New globals to allow + different checksum programs to be used. + (mh-checksum-choose): New functions to find a checksum program. + (mh-openssl-parser, mh-md5sum-parser, mh-md5-parser): Functions to + parse the output of md5, md5sum and openssl. + (mh-index-update-maps): Use checksum parsing function. + (mh-index-search): Set checksum choice. Add a call to recenter, + otherwise the window point in the index buffer doesn't get set + properly. + + * mh-funcs.el (mh-pack-folder, mh-sort-folder): Enable these + functions in folders created by index search. + + * mh-e.el (mh-index-msg-checksum-map) + (mh-index-checksum-origin-map): New buffer local variables that + keep track of message checksums (used to implement + refiling/deletion for folders created by index folders). + (mh-last-msg): Make the function behave like mh-first-msg. + (mh-visit-folder): Add new optional argument which initializes + folders created by mh-index-search. + (mh-folder-mode): Make the variables mh-index-msg-checksum-map and + mh-index-checksum-origin-map buffer local. + (mh-process-commands): Call mh-index-execute-commands when called + from an index search buffer. This will reflect the changes being + made in the search folder to the original folders. + + * mh-loaddefs.el: Regenerated. + +2002-12-16 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-insert-folder-headers): Fix a bug which + caused the folder buffer to be marked as modified after rescanning + an index folder. + +2002-12-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-visit-folder): The function should insert folder + names if it is visiting a folder created by index search. + + * mh-index.el (mh-index-insert-folder-headers): The function now + maintains the old value of buffer-modified-p and temporarily makes + the buffer writable. + + * mh-utils.el (mh-show-index-visit-folder): New interactive + function callable from show buffer that displays search results + from one folder. + (mh-show-mode-map): Key binding for "v". + + * mh-speed.el: Fix credits. + (mh-index-folder-speedbar-buttons) + (mh-index-show-speedbar-buttons) + (mh-index-folder-speedbar-key-map) + (mh-index-show-speedbar-key-map) + (mh-index-folder-speedbar-menu-items) + (mh-index-show-speedbar-menu-items): Removed since the modes + mh-index-folder-mode and mh-index-show-mode no longer exist. + (mh-speed-extract-folder-name): Remove the bits about + mh-index-folder-mode and mh-index-show-mode. + + * mh-seq.el (mh-copy-seq-to-eob): Updated to work properly with + index search results. + (mh-region-to-msg-list): Skip over non-scan lines. + (mh-thread-inc, mh-thread-add-spaces, mh-thread-folder): Skip + non-scan lines when populating mh-thread-scan-line-map. + (mh-thread-folder, mh-toggle-threads): Move the check for buffer + modification from mh-thread-folder to mh-toggle-threads. + (mh-toggle-threads): When returning to unthreaded view insert the + folder names if called from a index folder. + + * mh-index.el: Fix credits and update commentary. + (font-lock-defaults, mh-index-buffer, mh-index-show-buffer) + (mh-index-ma-x-msg-index, mh-index-other-buffer) + (mh-index-matches, mh-index-previous-window-configuration) + (mh-index-current-msg, mh-index-folder-mode-keymap) + (mh-index-button-map, mh-index-folder-mode-help-messages): Remove + eliminated variables. + (mh-index-folder): New variable sets the MH folder under which the + index searches are stored. + (mh-index-folder-first, mh-index-folder-last) + (mh-index-original-msg-list): Convenience macros used to pull data + elements out of a list. If needed setf can be used to change them + as well. + (mh-index-search): Rewritten to create real folders where all the + normal folder operation. This partially fixes SF #623321 (refiles + and deletes doesn't work on original messages). + (mh-index-find-max-width, mh-index-search-again) + (mh-index-insert-scan, mh-index-callback, mh-index-search) + (mh-index-notate, mh-index-show, mh-index-header-display) + (mh-index-next, mh-index-folder-mode, mh-index-show-mode): + Functions, macros and modes removed. + (mh-folder-exists-p): New function to check if a folder exists. + (mh-index-new-folder): Generate a new folder name from a given + base string that mimics the way emacs generates buffer names. + (mh-index-insert-folder-headers): Insert folder names among the + search results. + (mh-index-visit-folder): New interactive function to show the + search results of one individual folder. + (mh-swish++-execute-search): Update documentation. + + * mh-funcs.el (mh-pack-folder, mh-sort-folder): Disable these + functions if index search results are being viewed. + + * mh-e.el (mh-folder-font-lock-keywords): Add highlight for + folder. + (mh-index-data): New buffer local variable that will be used to + store info about index search results. + (mh-rescan-folder): Implement rescanning for index search results. + (mh-folder-mode): Make mh-index-data buffer local. + (mh-remove-all-notation): Modified to take into account not all + lines in the folder buffer are normal scan lines. + (mh-folder-mode-map): Add key binding for "v" to jump to original + folder narrowed to search results. + + * mh-customize.el (mh-index-folder-face): Make it bold so that it + will look like before. + + * mh-loaddefs.el: Regenerated. + +2002-12-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-map-to-seq-msgs): Modified so that it can be given + a list of messages in addition to a sequence. + (mh-region-to-sequence, mh-region-to-msg-list): The function + mh-region-to-msg-list replaces mh-region-to-sequence. The new + function avoids creating a dummy sequence in MH-E. + (mh-thread-delete, mh-thread-refile, mh-put-msg-in-seq): Modified + to use mh-region-to-msg-list. + + * mh-funcs.el (mh-copy-msg): Modified to use mh-region-to-msg-list. + + * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Modified to use + mh-region-to-msg-list. + + * mh-comp.el (mh-forward): Modified to use mh-region-to-msg-list. + The buffer-local variable mail-header-separator is no longer + bound. This fixes a bug where the default value of + mail-header-separator gets used if mh-forward is called in a fresh + emacs session. + (mh-annotate-msg): Update this so that it will handle message + lists too. + (mh-insert-letter): Make the test stronger. Since %d is being used + the argument better be an integer. + + * mh-loaddefs.el: Regenerated. + +2002-12-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-funcs.el (mh-copy-msg): Add support for transient-mark-mode. + If mark is active and transient-mark-mode is enabled then all the + messages in the region are copied. + + * mh-seq.el (mh-list-sequences): Use mh-coalesce-msg-list to print + messages in sequence nicely. The prompt for the folder is removed + (the current folder is always used) and the output is made nicer + by not overflowing the screen width. + + * mh-loaddefs.el: Regenerated. + +2002-12-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-letter-complete): Checkdoc fix. + + * mh-seq.el (mh-thread-current-indentation-level): New function + which returns the thread indentation level of current message. + (mh-thread-next-sibling, mh-thread-previous-sibling): New + interactive functions to jump to the next and previous siblings in + thread tree respectively. + (mh-thread-immediate-ancestor): New function to jump to ancestor + of current message in thread tree. + (mh-thread-ancestor): New interactive function to jump to + immediate ancestor or to root message of current thread depending + on optional argument. + + * mh-utils.el (mh-show-thread-ancestor) + (mh-show-thread-next-sibling, mh-show-thread-previous-sibling): + Interactive functions callable from the show buffer. + (mh-show-thread-map): Bindings for Tu, Tp and Tn. + + * mh-e.el (mh-thread-map): Bindings for Tu, Tp and Tn. + + * mh-loaddefs.el: Regenerated. + +2002-12-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-region-to-sequence): Change name of region + sequence created to 'mhe-region. This avoids any chance of + collision with actual MH sequences. + (mh-put-msg-in-seq, mh-thread-delete, mh-thread-refile): Change + name of region sequence used to 'mhe-region. Also delete the + 'mhe-region sequence when done. + + * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Same as above. + + * mh-comp.el (mh-forward): Same as above. + + * mh-loaddefs.el: Regenerated. + +2002-12-08 Bill Wohler <wohler@newt.com> + + * mh-alias.el: Edited documentation. Broke up file into 2 + sections: Alias Loading and Alias Expansion. Made terminology + consistent (replaced expand, substitute, and translate with + expand). + (mh-alias-reload): Brought message in line with coding conventions + and made more concise too. + (mh-alias-translate): Renamed to mh-alias-expand. + (mh-alias-substitute-aliases-flag): Renamed to + mh-alias-expand-aliases-flag. + (mh-alias-reload-local-users): Renamed to mh-alias-local-users. + Now just returns an alist of local users rather than have + side-effects. + (mh-alias-reload): Set timestamp at beginning of function to catch + edge case when alias added just after ali runs. Changed logic to + reflect return value of mh-alias-local-users. + + * mh-customize.el (mh-alias-substitute-aliases-flag): Renamed to + mh-alias-expand-aliases-flag. + (mh-alias-local-users): Fixed documentation. + + * mh-loaddefs.el: Regenerated + +2002-12-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (require): Load Gnus at compile time so that the + constant gnus-version is defined when MH-E is being compiled. + (mh-macro-expansion-time-gnus-version, mh-run-time-gnus-version): + Use the constant gnus-version instead of the function gnus-version + to find out about gnus version information. + (gnus-version): Remove the autoload since it is not needed any + more. + +2002-12-08 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-version): Moved compilation information in front of + Emacs information. The idea is that you start at MH-E and move + outwards. Show N/A if Gnus not compiled (be explicit). Matched + coding style with other output statements. (Aside: not that + efficiency matters here, but fewer calls to format have to be + faster, right? ;-). Matched output style of old output to new + statement--liked Satyaki's indentation better ;-). + +2002-12-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (gnus-version): Autoload the function for use in + mh-version. + (mh-macro-expansion-time-gnus-version): New macro that finds the + Gnus version at macro expansion time. + (mh-run-time-gnus-version): New function to find the Gnus version + at run time. + (mh-version): Add information about Gnus versions available at + compile time and run time. + +2002-12-07 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-ali): Add optional argument. if USER is + t, then assume ALIAS is an address and call ali with option -user. + + * mh-alias.el (mh-alias-filenames): if ARG is t, appends list of + files from `mh-alias-system-aliases' to output list obtained from + mhparam output user list only. + (mh-alias-tstamp): Use it. + +2002-12-05 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-inline-vcard-p): A new function which decides if + a vcard should be displayed inline. + (mh-mime-display-single): Use mh-inline-vcard-p to display + attached vcard as a signature if no other signature is present + (this partially addresses SF #649216). + +2002-12-05 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-send-letter): Edits docs for mh-mml-to-mime + getting run if variable `mh-mml-compose-insert-flag' is set. + (mh-get-header-field): use buffer-substring-no-properties instead + of buffer-substring. + +2002-12-04 Peter S Galbraith <psg@debian.org> + + * mh-loaddefs.el: Regenerated. + + * mh-customize.el (mh-customize): Add ;;;###mh-autoload tag. + +2002-12-04 Peter S Galbraith <psg@debian.org> + + * mh-loaddefs.el: Regenerated. + + * mh-comp.el (mh-letter-complete): New command to do alias or word + completion in letter-mode. + (mh-letter-mode-map): Add \M-\t binding for mh-letter-complete. + + * mh-alias.el (mh-alias-letter-mode-expand-alias-hook): Obsolete. + Replaced by mh-letter-complete command. + (mh-alias-reload-maybe): New function to rebuild alias table if + out of date. + (mh-alias-letter-expand-alias): No longer interactive. Use + mh-letter-complete instead. + +2002-12-04 Peter S Galbraith <psg@debian.org> + + * mh-customize.el (mh-letter-complete-function): New defcustom. + Function to call when completing outside of fields specified to + aliases. + + * mh-alias.el (mh-alias-filenames): + s/mh-mhparam-component/mh-profile-component/ + (mh-profile-component): Move to mh-utils.el and make interactive. + (mh-read-address): Make it autoloaded. + + * mh-loaddefs.el: Regenerated. + + * mh-comp.el (mh-read-address): Removed. Replaced by mh-alias + version. + + * mh-utils.el (mh-profile-component): Moved from mh-alias.el. + +2002-12-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-msg-is-in-seq): Formatting change. + + * mh-index.el (mh-index-insert-scan): Remove unused variable. + +2002-12-04 Bill Wohler <wohler@newt.com> + + * mh-loaddefs.el: Regenerated. + + * Makefile (MH-E-SRC): Moved mh-loaddefs.el into MH-E-LOADDEFS as + this was causing a cycle. + (MH-E-LOADDEFS): New variable to house mh-loaddefs.el. + (emacs): Reintroduced autoloads. + (autoloads): We're baaa-aack! + (dist, install-emacs): Use MH-E-LOADDEFS. + + * mh-comp.el (mh-customize): Moved to mh-customize.el. + + * mh-customize.el (mh-customize): Moved here from mh-comp. Makes + more sense, doesn't it? + + * mh-alias.el, mh-comp.el, mh-e.el, mh-index.el, mh-mime.el, + mh-pick.el, mh-speed.el: Added mh-autoload cookie to all + interactive functions. + +2002-12-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * Makefile (world): Remove target. + (mh-loaddefs.el): Add comment that only GNU Emacs can be used to + regenerate mh-loaddefs.el. + + * mh-make.el: Removed. + +2002-12-04 Mark D. Baushke <mdb@gnu.org> + + * mh-e.el (recursive-load-depth-limit): Only modify the limit + if it is an integer. + +2002-12-04 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-header-field-beginning): New function. Move to + the beginning of the current header field. + +2002-12-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-make.el (mh-files): Read in the MH-E filenames from the + environment variable where the Makefile puts it. + (mh-generate-autoloads, step2): Simplified since we now have the + complete file names. + + * Makefile (world): Pass the MH-E files into the script, so that + the filenames don't need to be repeated in the script. + +2002-12-04 Bill Wohler <wohler@newt.com> + + * mh-loaddefs.el: New file. Check in automatically generated file + and include in package for the benefit of those who don't want to + or can't compile. + + * Makefile (MH-E-SRC): Added mh-loaddefs.el now that it is checked + in and will be packaged. + (emacs): Removed autoloads. Adding mh-loaddefs.el to MH-E-SRC is + sufficient to build it. + (compile): Depend on MH-E-SRC instead of MH-E-OBJ and pass $? into + emacs so that Emacs is only invoked once to compile files. This + speeds things up by a factor of 3. It would be nice to only pass + those files that have been modified, but Emacs 21.4 will have + batch-byte-compile-if-not-done which we might be able to copy into + mh-make.el (or my proposed mh-e-dev.el which would be more + general-purpose). + (.SUFFIXES): Removed. Now that compile works directly on the + sources, the implicit rule is obsolete. + (autoloads): Deleted. See emacs change above. + +2002-12-03 Bill Wohler <wohler@newt.com> + + * Makefile (MH-E-SRC, emacs): + +2002-12-03 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-make.el (mh-emacs): Make failing condition more strict. + (mh-loaddefs-end): Remove redundant statement. + + * Makefile (world): A little typo. The bug didn't seem to make any + difference though. + + * mh-make.el: New script that compiles MH-E. + (mh-loaddefs-beginning, mh-loaddefs-end): Don't save the autoloads + file in between. Only save at the end. + (mh-emacs-generate-autoloads, mh-xemacs-generate-autoloads) + (mh-generate-autoloads): Replace the separate functions in Emacs + and XEmacs with one that works in both variants. This simplifies + the script a lot. + (mh-generate-autoloads): doc fix. + + * Makefile (world): New target which works for both GNU Emacs and + XEmacs. + +2002-12-03 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-mhparam-component): Don't raise error if call to + mhparam fails. + + * mh-alias.el (mh-alias-letter-expand-alias): Build alias table if + not already available. + +2002-12-03 Bill Wohler <wohler@newt.com> + + * mh-customize.el (mh-show-threads-flag): Alphabetized. + +2002-12-03 Jeffrey C Honig <jch@honig.net> + + * Makefile: Moved .PHONY rule after all rule for compatibility + with BSD/OS's old pmake. + +2002-12-03 Mark D Baushke <mdb@gnu.org> + + * mh-e.el (mh-get-new-mail): Simplify no-new-mail test. + (mh-add-cur-notation): Remove unnecessary function. + +2002-12-03 Peter S Galbraith <psg@debian.org> + + * mh-identity.el (mh-identity-make-menu): Check if + 'mh-letter-mode-map' is bound, since this code also gets run when + mh-customize.el is loaded at startup. + +2002-12-03 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-customize.el (mh-show-threads-flag): New customizable + variable which controls if new folders start of in threaded mode + (closes SF #646794). + + * mh-e.el (mh-rescan-folder): Fix the function so that threading + is preserved across rescans. + (mh-visit-folder, mh-inc-folder): The folder is threaded if it was + already threaded or if mh-show-threads-flag is non-nil and the + number of scan lines is fewer than mh-large-folders (closes SF + #646794). + +2002-12-02 Mark D Baushke <mdb@gnu.org> + + * mh-e.el (mh-add-cur-notation): New function to mark the + current message with the mh-note-cur character. + (mh-get-new-mail): Use mh-add-cur-notation to undo the work of + mh-remove-cur-notation if there was no new mail (closes SF #647681). + + * mh-e.el (mh-set-cmd-note): Do not update the default mh-cmd-note + value (closes SF #643701). + +2002-12-02 Peter S Galbraith <psg@debian.org> + + * mh-alias.el (mh-alias-reload): Renamed from mh-alias-learn-aliases. + (mh-alias-load-local-users): Renamed from mh-alias-learn-local-users. + (mh-alias-passwd-alist): New variable, holding aliases extracted + from the passwd file. + (mh-alias-tstamp): New variable storing the timestamp for alias + list generation. + (mh-read-address, mh-alias-reload, mh-alias-reload-local-users): + Complete rewrite. + (mh-alias-minibuffer-confirm-address): Use mh-alias-translate. + (mh-alias-translate): New function. Return translation for alias, + checking if in blind or passwd list. + (mh-alias-letter-expand-alias): Rewrite using + mail-abbrev-complete-alias from mailabbrev.el + (mh-alias-expand-alias-map): New variable. + (mh-alias-ali): New function. Return formatted string of + translated ALIAS from ali. + (mh-mhparam-component): New function. Return COMPONENT value from + mhparam, or nil if unset. + (mh-alias-filenames): New function. Provide list of alias + filenames from mhparam, or nil if none are set. + + * mh-customize.el (mh-alias-display-blind-name-on-completion-flag): + Obsoleted. + (mh-alias-timestamp): Renamed to mh-alias-system-aliases. + +2002-12-02 Bill Wohler <wohler@newt.com> + + * Makefile (mh-loaddefs.el): Suppress creation of backup file. + +2002-12-02 Mark D. Baushke <mdb@gnu.org> + + * Makefile (mh-loaddefs.el): Simplify rule. + + * Makefile (clean): Remove mh-loaddefs.el* for good measure. + ($(MH-E-OBJ)): Depend on mh-loaddefs.el to compile these. + (autoloads, mh-loaddefs.el): Revamp rules. + (mh-loaddefs.el-tail, autoloads-gen): Remove rules. + + * mh-e.el (recursive-load-depth-limit): Do not try to + bump the value unless the variable exists. + + * mh-e.el (recursive-load-depth-limit): Bump value of + recursive-load-depth-limit to 50 to allow emacs 21.1 which + normally has a default value of 10 to be able to compile MH-E. + +2002-12-02 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-funcs.el (mh-pack-folder, mh-sort-folder): Fix the functions + so that threading is preserved (needed for SF #646794). + + * mh-identity.el (mh-identity-signature-start) + (mh-identity-signature-end): Checkdoc fixes. + + * mh-e.el (mh-previous-unread-msg, mh-next-unread-msg): Checkdoc + fixes. + +2002-12-01 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-identity.el (compile): Make mh-identity.el compile without + warnings. + + * mh-e.el (mh-previous-unread-msg, mh-next-unread-msg): New + interactive functions that go to next and previous unread + messages (closes SF #630328). + (mh-folder-mode-map): Add key bindings for M-n and M-p to + mh-folder-mode-map. + + * mh-utils.el (mh-show-next-unread-msg) + (mh-show-previous-unread-msg): New interactive functions that go + to the next and previous unread messages respectively. These are + callable from the show buffer. + (mh-show-mode-map): Add key bindings for M-n and M-p to + mh-show-mode-map. + +2002-12-01 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-defun-compat): Make it indent like a defun. + + * mh-index.el (mh-defun-index): Make it indent like a defun. + + * mh-customize.el: New file (closes SF #643722). + + * Makefile (MH-E-SRC): Added mh-customize.el (closes SF #643722). + + * mh-speed.el, mh-pick.el, mh-mime.el, mh-index.el, mh-e.el, + mh-comp.el: Moved all defgroups, defcustoms, and deffaces to + mh-customize.el (closes SF #643722). + + * mh-utils.el (mh-xemacs-flag): Moved here from below since + needed by mh-customize.el. + (mh-customize): Required. mh-invisible-headers) + (mh-bury-show-buffer-flag, mhl-formfile): + Moved all defgroups, defcustoms, and deffaces to mh-customize.el + (closes SF #643722) . + + * mh-identity.el (mh-comp-loaded): New variable in a desparate + attempt to prevent an infinite loop. + (eval-when-compile): Was able to remove these defvars as they are + now predefined in mh-loaddefs and mh-customize. + (mh-identity-list-set): Added ;;;###mh-autoload cookie. + Moved all defgroups, defcustoms, and deffaces to mh-customize.el + (closes SF #643722). + + * mh-alias.el (mh-e): Require this, as it needs defcustoms, which + is in mh-customize which is required by mh-utils which is required + by mh-e. + Moved all defgroups, defcustoms, and deffaces to mh-customize.el + (closes SF #643722). + +2002-11-30 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-thread-map): Add key bindings "Td" and "To" (closes + SF #630493). + (mh-help-messages): Update help message for prefix map. + (mh-help-messages): Doc fix. + (mh-help-messages): Really fix it. + + * mh-utils.el (mh-show-thread-delete, mh-show-thread-refile): New + interactive functions corresponding to mh-thread-delete and + mh-thread-refile callable from the show buffer. + (mh-show-thread-map): Add key bindings for "Td" "To". + + * mh-seq.el (mh-narrow-to-seq, mh-put-msg-in-seq, mh-rename-seq) + (mh-narrow-to-subject, mh-delete-subject, mh-toggle-threads): Add + mh-autoload cookies. + (mh-thread-find-children): New function which finds the region + containing all children of a message. + (mh-thread-delete): New interactive function that marks for + deletion the current message and its children. + (mh-thread-refile): New interactive function that marks for + refiling the current message and its children. + +2002-11-30 Bill Wohler <wohler@newt.com> + + * mh-funcs.el, mh-identity.el, mh-index.el, mh-pick.el, mh-seq.el: + Removed MH-E autoloads. These are now provided by mh-loaddefs.el. + Added ;;;###mh-autoload tag to selected functions so that + autoloads for those functions can be automatically created in + mh-loaddefs.el (closes half of SF #643722). + + * mh-mime.el (mh-buffer-data): Moved to mh-utils where it is used. + Added ;;;###mh-autoload tag to selected functions so that + autoloads for those functions can be automatically created in + mh-loaddefs.el (closes half of SF #643722).. + + * mh-utils.el (mh-loaddefs): Added require. + (mh-buffer-data): Moved here from mh-mime.el as it is used in + mh-display-msg. + (mh-set-cmd-note): Moved to mh-e.el. + Removed MH-E autoloads. These are now provided by mh-loaddefs.el. + Added ;;;###mh-autoload tag to selected functions so that + autoloads for those functions can be automatically created in + mh-loaddefs.el (closes half of SF #643722).. + + * mh-e.el (mh-set-cmd-note): Moved here from mh-utils.el since it + uses mh-scan-format-file which is defined here. + Removed MH-E autoloads. These are now provided by mh-loaddefs.el. + Added ;;;###mh-autoload tag to selected functions so that + autoloads for those functions can be automatically created in + mh-loaddefs.el (closes half of SF #643722).. + + * mh-comp.el, mh-speed.el (mh-utils): Removed require. mh-utils is + provided via mh-e.el. + Removed MH-E autoloads. These are now provided by mh-loaddefs.el. + Added ;;;###mh-autoload tag to selected functions so that + autoloads for those functions can be automatically created in + mh-loaddefs.el (closes half of SF #643722).. + + * Makefile (emacs): Add dependency on autoloads. + (clean): Remove mh-loaddefs.el too. + (autoloads): New target. Builds mh-loaddefs.el. + (mh-loaddefs.el): New target. Initializes mh-loaddefs.el. + (mh-loaddefs.el-tail): New target. Appends to mh-loaddefs.el. + (autoloads-gen): Runs batch-update-autoloads to populate + mh-loaddefs.el (closes half of SF #643722).. + (auto-autoloads.elc): Renamed from autoloads to be explicit about + file that's created. + (custom-load.elc): Ditto. + +2002-11-30 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-last-ancestor): New variable which keeps + track of oldest ancestor of last message. If due to narrowing the + common ancestor of two messages is lost then one of them is + promoted to be the parent of the other. This variable helps in + this process. + (mh-thread-generate-scan-lines): Group messages which belong to + the same thread tree, even if a common ancestor is no longer + present. + (mh-thread-folder, mh-copy-seq-to-eob, mh-thread-inc): Bind + mh-thread-last-ancestor to nil when calling + mh-thread-generate-scan-lines. + + * mh-mime.el (font-lock): Font-lock required at compile time to + avoid warning about font-lock-maximum-size + (mh-display-smileys, mh-display-emphasis): Show graphical smileys + and emphasis only if message isn't too large. + + * mh-e.el (mh-visit-folder): Revisiting a buried folder which has + been threaded or narrowed confuses MH-E. Even though the folder is + displayed as not threaded and not narrowed, MH-E still believes + the folder is in the previous state. This can cause problems when + trying to narrow/thread the folder. The change fixes this. + + * mh-mime.el (mh-mime-display-alternative): The setting of + mh-display-buttons-for-inline-parts-flag was not being used when + displaying one of the alternatives. This change fixes that. + + * mh-comp.el (mh-show-buffer-message-number): Replace subseq with + substring. + (mh-filter-out-non-text): When filtering out MIME buttons from + yanked text, the last line of the MIME part was getting lost. The + fix avoids that and removes only the last new line instead. + +2002-11-29 Peter S Galbraith <psg@debian.org> + + * Makefile (MH-E-SRC): Add mh-alias. + + * mh-alias.el: Assign copyright to FSF instead of myself. + (mh-read-address): Add support for emacs-21's + completing-read-multiple to prompt for multiple entries. + (mh-alias-PC-complete-address): Deleted. + (mh-alias-learn-aliases): Use mh-exec-cmd-quiet instead of old kludge. + (mh-alias-letter-mode-expand-alias-hook): Simplify. + (mh-alias-hostname): Deleted. + (mh-alias-substitute-aliases-flag): Change default to nil. + (mh-alias-display-blind-name-on-completion-flag) Change default to + nil. + (mh-alias-alist): Now holds alias values. + (mh-alias-lowercase-alist): Deleted. + (mh-alias-minibuffer-confirm-address, mh-alias-learn-aliases) + (mh-alias-learn-local-users, mh-alias-letter-expand-alias): Use + new mh-alias-alist instead of old mh-alias-lowercase-alist. + + * mh-alias.el: Moved from contrib/ directory. Now part of MH-E! + + * Makefile (MH-E-SRC): Add mh-identity. + + * mh-identity.el (mh-compose-and-send-mail, mh-insert-identity) + (mh-identity-make-menu, mh-identity-default, mh-identity-menu): + Moved to mh-comp.el. + + * mh-comp.el (mh-compose-and-send-mail): Add mh-identity support. + (mh-insert-identity, mh-identity-make-menu, mh-identity-default) + (mh-identity-menu): Added from mh-identity.el + +2002-11-29 Bill Wohler <wohler@newt.com> + + * mh-comp.el, mh-e.el, mh-funcs.el, mh-identity.el, mh-index.el, + mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el: + Ran indent-region, reformatted long lines, ran untabify. + (indent-tabs-mode): Set file local variable to nil. + +2002-11-29 Bill Wohler <wohler@newt.com> + + Released MH-E version 7.0. + + * mh-e.el (Version, mh-version): Updated for release 7.0. + + * mh-comp.el (subseq, search): Require cl instead of autoloading + these due to compilation warnings in CVS Emacs. + +2002-11-23 Bill Wohler <wohler@newt.com> + + * MH-E-NEWS: Emphasize the renaming of the variables at the top of + the notes. + +2002-11-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-show-mode-map): Remove binding for RET since it + is not needed and the binding is more useful to toggle display of + MIME parts. + + * mh-mime.el (mh-mime-button-commands): Remove bindings for "i" + and "o" from MIME buttons. + (mh-insert-mime-button): Change comment to reflect change in + button key map. + +2002-11-21 Bill Wohler <wohler@newt.com> + + Released MH-E version 6.1.91. + + * mh-e.el (Version, mh-version): Updated for release 6.1.91. + + * MH-E-NEWS: Inline HTML parts supported with Gnus 5.10, not 5.9. + +2002-11-21 Mark D. Baushke <mdb@gnu.org> + + * mh-comp.el (mh-letter-insert-signature-hook): This should be in + customize-group mh-compose. + +2002-11-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (load): Load mm-view.el here so that + mm-inline-text-html would be defined if available. + (mh-mm-inline-media-tests): If mm-inline-text-html is available + then use it, otherwise fall back on using mm-inline-text (closes + SF #641482). + + * mh-mime.el (load): Remove the load of mm-view here since it + happens in mh-utils.el now. + +2002-11-15 Bill Wohler <wohler@newt.com> + + Released MH-E version 6.1.90. + + * README (Compile): New section. Users must now compile MH-E due + to the vagaries of the various versions of gnus. + + * Makefile (MH-E-IMG): Added reply-all.pbm, reply-all.xpm, + reply-from.pbm, reply-from.xpm, reply-to.pbm, reply-to.xpm. + (MH-E-ETC-ETC): Added Makefile and README. + (dist): Depend on all, so clean happens. Don't add .elc files to + tarball as they are built upon installation now. + +2002-11-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-process-commands): Fix a bug in mh-execute-commands. + If called in threaded mode, cur was always getting set to the last + message in the folder. + +2002-11-14 Bill Wohler <wohler@newt.com> + + * mh-e.el (Version, mh-version): Updated for release 6.1.90. + + * MH-E-NEWS, README: Updated for release 7.0. + + * mh-utils.el (mh-index-search): Added full docstring which new + users will need before they run a search! + (mh-swish++-execute-search, mh-swish-execute-search, + mh-namazu-execute-search mh-glimpse-execute-search): Added + autoloads with full docstrings for the same reason! + + * mh-e.el (mh-limit-map): Removed / / alias for + mh-narrow-to-subject. + + * mh-utils.el (mh-show-thread-map): Removed / / alias for + mh-show-narrow-to-subject. + + * mh-seq.el (mh-delete-subject): Checkdoc fix. + + * mh-e.el (mh-help-messages): Added / prefix character to help + string. Tweaked / helpstring a little. + +2002-11-14 Mark D. Baushke <mdb@gnu.org> + + * mh-utils.el (mh-set-cmd-note): Fix nitpick by adding one to the + width for cosmetic reasons. + +2002-11-14 Peter S Galbraith <psg@debian.org> + + * mh-identity.el (mh-insert-identity): Fix a few things undone by + Jeff's patch. + (mml-insert-tag): Add autoload. + +2002-11-13 Mark D. Baushke <mdb@gnu.org> + + * mh-identity.el (mh-insert-identity): A value of either nil or + "" should cause the field to be removed. + (mh-identity-list): Update the docstring. + +2002-11-13 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-limit-map): New key map for limits (subject for now). + * mh-utils.el (mh-show-limit-map): Same. + + * mh-seq.el (mh-delete-subject): Renamed from + mh-delete-subject-sequence. + (mh-narrow-to-subject): Renamed from mh-narrow-to-subject-sequence. + (mh-next-unseen-subject-sequence): Removed. :-( + * mh-e.el: Use 'em + * mh-seq.el: Use 'em. + +2002-11-13 Mark D. Baushke <mdb@gnu.org> + + * mh-e.el (mh-alt-show): New defalias for mh-show. + (mh-alt-refile-msg): New defalias for mh-refile-msg. + (mh-alt-send): New defalias for mh-send. + (mh-folder-mode-map): Use mh-alt-show, mh-alt-refile-msg and + mh-alt-send for the alias bindings. + (mh-alt-visit-folder): New defalias for mh-visit-folder. + (mh-folder-map): Use it. + (mh-folder-message-menu): Revert previous change. + +2002-11-13 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-message-menu): Make key binding "o" appear in + menu for mh-refile-msg. + +2002-11-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-generate-scan-lines): In threaded view, + scan lines of duplicate messages were too long. The change fixes + that. + +2002-11-13 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-adaptive-cmd-note-flag): Improved grammar in + docstring. + + * mh-speed.el (mh-speed-run-flists-flag): While documenting this + variable in the release notes, I was unsure what would happen if + set to nil. So, I clarified the docstring and indicated + implications of setting this variable to nil, and offered manual + workaround. + +2002-11-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-quit): Fix documentation and run + mh-before-quit-hook and mh-quit-hook. + +2002-11-13 Bill Wohler <wohler@newt.com> + + * mh-utils.el (with-mh-folder-updating): Renamed local variable + mh-save-modification-flag to save-modification-flag. + +2002-11-12 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-index-keymap): Renamed to + mh-index-folder-mode-keymap to be a closer to the usual keymap + naming convention. Since we want our own keymap and not inherit + the one in mh-folder-mode, we need to use a suffix other than + -map. + + * mh-e.el (mh-folder-sequence-menu): s/Msg/Message. + s/Seq/Sequence. + (mh-folder-message-menu): s/Msg/Message. Removed redundant refile + item. + (mh-folder-folder-menu): Aligned symbols. + + * mh-index.el (mh-index-folder-message-menu): s/Msg/Message. + + * mh-utils.el (mh-show-sequence-menu): s/Msg/Message. + s/Seq/Sequence. + (mh-show-message-menu): s/Msg/Message. Removed redundant refile + item. + (mh-show-folder-menu): Aligned symbols. + +2002-11-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-matches, mh-index-current-match): Remove + these variables since they were only used for glimpse and grep. + Now the functionality of all the indexing programs will be + uniform. + (mh-index-search, mh-index-insert-scan, mh-defun-index) + (mh-index-show): Simplify functions since matches are no longer + shown. + (mh-index-parse-match): Remove function. + + * mh-e.el (mh-scan-cmd-note-width, mh-scan-destination-width) + (mh-scan-date-width, mh-scan-date-flag-width) + (mh-scan-from-mbox-width, mh-scan-from-mbox-sep-width): New + variables to keep track of the widths of the different fields in + the scan lines. + (mh-scan-field-from-start-offset, mh-scan-field-from-end-offset) + (mh-scan-field-subject-start-offset): Offsets that are computed + from the scan line widths. + + * mh-seq.el (mh-copy-seq-to-eob, mh-thread-inc) + (mh-thread-parse-scan-line): Use new variables that remember the + various offsets in place of integer constants. + (mh-thread-generate-scan-lines): Space shouldn't be added here! + +2002-11-12 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-scan-format-mh, mh-scan-format-nmh): Noted that the + first column is column number 0 and changed "sixth column" to + "fifth column" accordingly. + + * mh-index.el (mh-index-folder-mode): Clarified method of replying + in mode documentation. + (mh-index-folder-tool-bar-map): s/mh-e/MH-E/. + + * mh-e.el (mh-generate-new-cmd-note): Try not to mention internal + variable mh-cmd-note in docstrings. + + * mh-utils.el (mh-adaptive-cmd-note-flag): Set default value to t. + Reworded docstring so it doesn't mention internal variable + mh-cmd-note. Added information about using fixed-width message + numbers. + (mh-cmd-note): Mention mh-set-cmd-note in docstring. Also suggest + that it is updated dynamically only if mh-scan-format-file is t. + (mh-set-cmd-note): Grammer fix in docstring. + (mh-cmd-note): Noted that the first column is column number 0. + + * mh-e.el (mh-scan-format-file): Added information about + mh-set-cmd-note and mh-adaptive-cmd-note-flag to docstring. + + * mh-index.el (mh-index-keymap): Added bindings for i + (mh-inc-folder), m (mh-send alias), and s (mh-send) since these + appear to be supported and are found in the toolbar. + (mh-index-folder-key-map): Ditto for f (mh-visit-folder alias), o + (mh-visit-folder) alias, and v (mh-visit-folder). + (mh-index-folder-mode-help-messages): Changes for above. + (mh-index-folder-message-menu, mh-index-folder-folder-menu): New + menus. I decided to delete the unavailable items since greying out + implies that the user can do something to access them. In this + case, that's not the case. Well, that's not entirely true--the + user could write code for those functions ;-). + (mh-index-folder-mode): Use new menus. + + * mh-utils.el (mh-prompt-for-folder): Added optional argument + default-string which can be used in case the string for default + isn't intuitive enough. + + * mh-index.el (mh-index-search): Made default prompt more + intuitive (I hope!). + +2002-11-11 Peter S Galbraith <psg@debian.org> + + * mh-identity.el (mh-header-field-delete): Remove save-excursion. + Strange that this worked for me before... Thanks to Jeff for the + patch. + (mh-insert-identity): Numerous tweaks and fixes from Jeff who also + adds a nicer-looking MIME header for signatures inserted after + MIME insertions. + +2002-11-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-parse-scan-line): Generalize this function + so that it can take a string containing the scan-line as argument + in addition to using the line at point. + (mh-thread-add-spaces): New function to pad each scan line to the + appropriate length. This is called when mh-cmd-note is increased. + + * mh-e.el (mh-generate-new-cmd-note): Make this work on a threaded + folder by using mh-thread-add-spaces to pad the pre-existing lines + in mh-thread-scan-line-map appropriately. + (mh-thread-add-spaces): Autoload from mh-seq. + +2002-11-11 Mark D. Baushke <mdb@gnu.org> + + * mh-index.el: Fix checkdoc nit. + + * mh-mime.el (mh-display-buttons-for-inline-parts-flag): Renamed + from mh-display-buttons-for-inline-parts. + (mh-mime-display-single): Use it. + This addresses part of SF #627015. + + * mh-e.el (mh-print-background-flag): Renamed from + mh-print-background. + * mh-funcs.el (mh-print-msg): Use it. + This addresses part of SF #627015. + + * mh-comp.el (mh-delete-yanked-msg-window-flag): Renamed from + mh-delete-yanked-msg-window. + (mh-yank-from-start-of-msg, mh-yank-cur-msg): Use it. + This addresses part of SF #627015. + + * mh-utils.el (mh-update-sequences-after-mh-show-flag): Renamed + from mh-update-sequences-after-mh-show. + (mh-show-msg): Use it. + This addresses part of SF #627015. + + * mh-utils.el (mh-decode-quoted-printable-flag): Renamed from + mh-decode-quoted-printable + (mh-display-msg, mh-decode-quoted-printable-have-mimedecode): + Use it. + This addresses part of SF #627015. + + * mh-utils.el (mh-recursive-folders-flag): Renamed from + mh-recursive-folders. + (mh-make-folder-list-background): Use it. + * mh-funcs.el (mh-list-folders): Ditto. + This addresses part of SF #627015. + + * mh-utils.el (mh-auto-folder-collect-flag): Renamed from + mh-auto-folder-collect. + (mh-find-path): Use it. + This addresses part of SF #627015. + + * mh-utils.el (mh-decode-mime-flag): Renamed from + mh-decode-mime. + * mh-utils.el (mh-show-mode, mh-show-xface) + (mh-decode-quoted-printable, mh-display-msg, mh-display-msg): Use it. + * mh-mime.el (mh-graphical-smileys-flag) + (mh-graphical-emphasis-flag): Ditto. + * mh-index.el (mh-index-search, mh-index-show): Ditto. + * mh-e.el (mh-header-display): Ditto. + This addresses part of SF #627015. + + * mh-e.el (mh-make-folder-mode-line): Use save-window-excursion + to get back to the current message. + +2002-11-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-keymap, mh-index-page-msg) + (mh-index-folder-tool-bar-map): Replace mh-index-scroll-up with + mh-index-page-msg. + (mh-index-keymap, mh-index-previous-page): Replace + mh-index-scroll-down with mh-index-previous-page. + +2002-11-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (autoload/require): Load mh-mime when mh-index.el is + loaded. This fixes the infinite load loop. I am not sure what the + actual problem is. Also removed the nop requires/autoloads. + (mh-defun-index): Use the right argument for mh-recenter. + Otherwise it misbehaves for the default value of + mh-summary-height. + + * mh-e.el (mh-goto-next-button): Fix infinite loop when S-Tab was + used on first line of index folder buffer. + +2002-11-09 Peter S Galbraith <psg@debian.org> + + * mh-index.el (mh-index-folder-tool-bar-map): Tool-bar for + mh-index-mode. + (mh-index-folder-mode): Use it. + (mh-index-keymap): Added mouse-2 binding, like in regular + folder-mode. + +2002-11-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-folder-mode): Fix doc string for major + mode. It was pointing to the wrong keymap. + (mh-index-show-mode): Fix doc string for mode. Also add mh-help + support. + + * mh-comp.el (mh-forward, mh-yank-cur-msg): Use new macro + mh-mark-active-p instead. This does the right thing for different + variants of Emacs. + (mh-yank-cur-msg): Add a space between sexprs. + + * mh-utils.el (mh-mark-active-p): New macro which papers over + diffences between GNU Emacs and XEmacs. The variables mark-active + and transient-mark-mode are used in GNU Emacs while zmacs-regions + and region-active-p are used in XEmacs. + + * mh-seq.el (mh-put-msg-in-seq, mh-thread-ancestor-p): Use + mh-mark-active-p as above. + + * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Use + mh-mark-active-p as above. + +2002-11-06 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-yank-cur-msg): Fix for XEmacs. It didn't work + with a selected region, and left the inserted text selected (in + reverse video). I didn't use SF patch #402315 to implement this. + +2002-11-05 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-show-tool-bar-map): Change call to + mh-tool-bar-search-command such that user can customize it for the + current session. + + * mh-e.el (mh-folder-tool-bar-map): Same. + +2002-11-05 Bill Wohler <wohler@newt.com> + + * mh-utils.el, mh-e.el (mh-tool-bar-search-function): Renamed from + mh-tool-bar-search-command. + + * mh-index.el (mh-index-search): Backed out previous change to + prompt. There ain't no folder named "all." + + * mh-utils.el (mh-tool-bar-search-command): Added mh-search-folder + and mh-index-search to the docstring so that user can easily click + on them for more information. + + * mh-pick.el (mh-search-folder): Mention that this function uses + the MH pick command to give the user more information when + choosing between mh-search-folder and mh-index-folder. + + * mh-index.el (mh-index-search): Edited the docstring. Direct the + user to mh-index-program if necessary. + (mh-index-program): Edited this docstring too. Viewing the help + in a *Help* buffer really exposes grammatical flaws. + +2002-11-05 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-tool-bar-search-command): New defcustom to set + what search function to use in tool-bar. + (mh-show-tool-bar-map): Use it. + + * mh-e.el (mh-folder-tool-bar-map): Use it. + +2002-11-05 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-index-search): Changed default prompt from "+" + to "all". mh-prompt-for-folder doesn't seem to mind. + + * mh-e.el (mh-folder-folder-menu): Added menu entry for + mh-index-search. + + * mh-utils.el (mh-show-folder-menu): Added menu entry for + mh-index-search. + + * mh-index.el: Added commentary on supported search engines and + for getting started (initializing database). + +2002-11-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-keymap, mh-index-folder-key-map): Move key + binding of "i" to "Fi". + (mh-index-folder-mode-help-messages): Change help message to + reflect above change. + +2002-11-04 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-index-program, mh-indexer): Swapped names since + the former seems like a better user variable name. If you've + customized mh-indexer, be sure to toss it out and customize + mh-index-program. + +2002-11-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-indexer-choices): Not having the quotes in the + binary names is a bit nicer since that maintains uniformity with + the other names. + (mh-index-choose): Use symbol-value instead of eval. Eval should + be avoided except when it can't be :-). + +2002-11-04 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-index-program): New variable to hold the name of + the indexer that was found; use this instead of clobbering + user-customizable variable mh-indexer. + (mh-index-search): Use it. Added comments to keep others from + doing what I had done (fortunately, I caught myself before + checking it in ;-). + (mh-index-choose): Set mh-index-program instead of mh-indexer. + Update docstring to describe side-effects. + + * mh-index.el (mh-indexer): Added swish++ to docstring. Chances + are good that if someone has both swish++ and swish, they want to + use the much faster, much smaller swish, so move it up in the + list. + (mh-indexer-choices): Ditto for rationale for moving swish++ up in + priority over swish. Also, use -binary symbols instead of + hard-coding binary names. This allows package installers to + customize the location of the binaries in site-lisp and still have + the auto-detection code work. It also allows one to have alternate + binary names (see mh-swish++-binary). + (mh-index-search): Ditto (moving swish++ up). + (mh-swish++-binary): Look for search++, then search. The rationale + is that a package maintainer may rename search to search++ if + search is already in use (e.g., Debian) so try it first. + (mh-swish++-execute-search): Replaced Satyaki's path with dummy + path in docstring. Also removed RecurseSubdirs since this is the + default. Added comment that index might be named index++ on some + systems (e.g., Debian). + (mh-index-choose): Updated to work with new mh-indexer-choices. + +2002-11-04 Peter S Galbraith <psg@debian.org> + + * mh-identity.el (mh-identity-list-set): Don't call easy-menu-add + here, since that adds the menu to the Customize buffer in XEmacs. + +2002-11-04 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-mhn-compose-insert-flag) + (mh-mml-compose-insert-flag): Removed eval-when-compile defvar. + + * mh-mime.el (mh-mhn-compose-insert-flag) + (mh-mml-compose-insert-flag): Move variables to mh-utils.el. + Fixes mh-letter-menu for XEmacs. + +2002-11-04 Eric Ding <eding@rational.com> + + * mh-comp.el (mh-rejected-letter-start): add another string + +2002-11-04 Eric Ding <ericding@alum.mit.edu> + + * mh-comp.el (mh-rejected-letter-start): regexp-opt doesn't take + regexps as args, only regular strings + +2002-11-04 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-mail-followup-to): Don't modify a + pre-existing M-F-T field. If a nmh replgroupcomps propagates a + M-F-T field in a message reply, then we have to have it alone. + +2002-11-02 Bill Wohler <wohler@newt.com> + + * mh-comp.el, mh-e.el, mh-funcs.el, mh-identity.el, mh-index.el, + mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el, + mh-xemacs-compat.el: Added Local Variables section. Defined + sentence-end-double-space to be nil so that those who might not + buy my setting of this variable can at least run checkdoc without + a whole lot of noise. + +2002-11-02 Peter S Galbraith <psg@debian.org> + + * mh-identity.el: New file. Multiple Identify support for MH-E. + Used to easily set different fields such as From and Organization, + as well as diffrent signature files. This file won't be included + with V7.0. + +2002-11-02 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-mm-save-part): New function to wrap mm-save-part + from Gnus 5.10 to make it explicit which code has been + commandeered. + (mh-mime-save-part): Call mh-mm-save-part instead of cut-n-pasted + code from Gnus 5.10. + +2002-11-02 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-yank-from-start-of-msg): Edit docstring to + mention related variables mh-reply-show-message-flag and + mh-delete-yanked-msg-window. + (mh-reply): Change the "Reply to whom" prompt. + +2002-11-01 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-show-hook): Moved to mh-utils.el where it is used. + (mh-folder-list-change-hook): Converted this from defvar in other + files to defcustom here. It is called, not documented as + obsolete, and might as well be documented. + (mh-inc-folder, mh-quit, mh-delete-a-msg, mh-refile-a-msg, + mh-process-commands, mh-update-unseen): Added missing + documentation about hook, or made verbiage about hook consistent + throughout, even if the function isn't interactive. + + * mh-utils.el (mh-folder-list-change-hook): Moved defvar to mh-e + and made it a defcustom. + (mh-show-mode-hook): Put it back in (actually, it was in mh-e.el, + but this is the place where it is called). + (mh-show-hook): Moved here from mh-e.el since it's called here. + (mh-show-mode): Call mh-show-mode-hook. + (mh-show-mode, mh-show-msg, mh-find-path, mh-prompt-for-folder, + mh-prompt-for-folder, mh-set-folder-list): Added missing + documentation about hook, or made verbiage about hook consistent + throughout, even if the function isn't interactive. + + * mh-comp.el (mh-send-letter): Made verbiage about hook consistent + throughout. + (mh-insert-prefix-string): Made docstring more descriptive of what + is going on. + + * mh-funcs.el (mh-kill-folder): Added missing documentation about + hook. + + * mh-index.el (mh-index-show-hook): Moved defvar to defcustom. + (mh-index-show): Made verbiage about hook consistent throughout. + + * mh-mime.el (mh-edit-mhn-hook): Moved defvar to defcustom. + (mh-edit-mhn): Added missing documentation about hook. + + * mh-pick.el (mh-pick-mode): Made verbiage about hook consistent + throughout. Call the damn hook. + +2002-11-01 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-insert-mail-followup-to-list): Fix typo so that + it will look right in info. + + * mh-index.el (mh-index-search): Change argument name from + new-buffer-p to new-buffer-flag. + (mh-index-search-again, mh-index-search): New index-buffers were + being named *mh-index*<2>, *m-index*<2><2> and so on. This problem + is fixed. + (mh-index-scroll-up, mh-index-scroll-down): Scrolling in index + show buffers (after the first one) was broken. + (mh-index-quit): Bury show buffer instead of killing it. Killing + it, without killing the corresponding folder buffer, can cause + confusion with two folder buffers trying to display in the same + show buffer. + + * mh-seq.el (mh-thread-prune-containers): Rewritten without + recursion. Also removed the top-level-p argument since it isn't + required anymore. + (mh-thread-sort-containers): New function factored out from + previous definition of mh-thread-prune-containers. It sorts + message containers in ascending order wrt their message indices. + (mh-thread-generate): Use new mh-thread-prune-containers. + + * mh-e.el (mh-remove-all-notation): Fix the test. It was testing + at the wrong place! + +2002-10-31 Bill Wohler <wohler@newt.com> + + * Makefile, README, import-emacs, mh-comp.el, mh-e.el, + mh-funcs.el, mh-index.el, mh-mime.el, mh-pick.el, mh-seq.el, + mh-speed.el, mh-utils.el: Replaced mh-e with MH-E. + +2002-10-31 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-parse-scan-line): Modified to remove user + sequence notation and leave notation for other things alone. This + ensures that threading doesn't lose notations for replied-to + messages. + + * mh-e.el (mh-inc-folder): Remove call to mh-widen here and + instead do it in mh-get-new-mail. This way the widening happens + only if new mail is incorporated. + (mh-generate-new-cmd-note): The function now returns the point + from which the new messages start. This will allow threading to do + the right thing. + (mh-get-new-mail): Always call mh-remove-cur-notation. Otherwise + adaptive scan mode leaves two messages marked as current in + certain cases. Fix indentation of if statement. If there are + messages to be incorporated, the folder is widened. If mh-cmd-note + changes set start-of-inc correctly. + (mh-remove-all-notation): Change this function to only remove user + sequence notation and leave notation for replied-to messages and + similar notation alone. This means operations like narrowing to + subject sequence and widening don't lose notations. + +2002-10-31 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-insert-mail-followup-to-list): Fixed typo in + docstring and other minor edits. Checkdoc removed trailing spaces. + (mh-insert-signature): Checkdoc flagged docstring. Reverted to + previous value. Added specific name of hook that is run. + (mh-regexp-in-field-p, mh-insert-letter): Checkdoc removed + trailing spaces. + +2002-10-31 Jeffrey C Honig <jch@honig.net> + + * mh-e.el (mh-show-mode-hook): Remove the unused + mh-show-mode-hook, mh-show-hook is the one that is used. + + * mh-utils.el (mh-show-mode): Change the documentation to refer to + mh-show-hook instead of the unused mh-show-mode-hook. + +2002-10-31 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-mail-followup-to-list): Set default to nil + and include example in doc string. + +2002-10-31 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-indexer): Add customization choice for swish++. + (mh-indexer-choices): Add swish++ choice. + (mh-index-search): Change doc to reflect addition of swish++ option. + (mh-swish++-binary, mh-swish++-directory): New variables for + swish++ interface. + (mh-swish++-execute-search): New function to execute swish++ + search. + (mh-swish++-next-result): Function aliased to mh-swish-next-result + since the result format of swish++ is the same as that of swish-e. + (mh-index-search): Always overwrite window-configuration with new + value. This is needed since we don't kill the index-buffer when + quitting which means the window configuration wasn't getting set + properly. + (mh-index-search-again): If index buffer is reused, reset the old + window config to its original value. + +2002-10-30 Bill Wohler <wohler@newt.com> + + * Makefile (emacs, xemacs): New targets. + (all): Use these targets instead of calling specific targets. + (.PHONY): Added emacs, xemacs, autoloads, custom-loads. Broke up + target and moved pieces into their own sections. + + +2002-10-30 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-show-font-lock-keywords): Wrap an + 'eval-and-compile around its defvar, otherwise byte-compilation + fails on `mh-show-font-lock-keywords-with-cite'. + +2002-10-29 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-letter-insert-signature-hook) + (mh-insert-signature): Add a hook to be called before inserting + the signature. Do not attempt to insert the signature if + mh-insert-signature-file-name is nil. + +2002-10-29 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-inc-folder): Call mh-widen when mh-narrowed-to-seq + (Closes SF #629233: inc in narrowed folder suboptimal) + + * mh-comp.el (mh-insert-letter): Stop using mhl to include a + message before it mangles the header, and supercite fails + (Closes SF #629153: mh-insert-letter uses mhl?). + (mh-insert-prefix-string): Leave point at beginning instead of + end, since that's what sc-cite-original does. + (mh-yank-cur-msg): Adjust for mh-insert-prefix-string change. + +2002-10-30 Steve Youngs <youngs@xemacs.org> + + * mh-e.el (mh-folder-mode): Check for 'font-lock-auto-fontify' + when in XEmacs so we don't do font-locking unconditionally. + + * mh-utils.el (mh-show-mode): Ditto. + +2002-10-29 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-refiled-face, mh-folder-cur-msg-number-face) + (mh-folder-to-face, mh-folder-body-face): Define faces instead of + copying them from font-lock faces. This mh-e will look the same + in XEmacs as it does in Emacs. + * mh-utils.el (mh-show-cc-face, mh-show-date-face) + (mh-show-header-face): Ditto. + +2002-10-29 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-send-letter): I meant to use + mh-goto-header-field, not mh-get-header-field. The former returns + nil if the header is not found and doesn't need a conditional. + +2002-10-29 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-forward): Bug fix. Change 'kill-line for a + 'delete-region, because I don't want that text yanked with C-y. + + * mh-seq.el (mh-put-msg-in-seq): Add support for selected + region (Closes SF feature request #630324). + +2002-10-28 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-prune-subject): Make the regexp a little + general so that a subject of the form "Re[218]: howdy" would be + properly pruned. + + * mh-mime.el (mh-mime-save-part): Copy function definition of + mm-save-part from cvs gnus since that function is buggy in gnus + that comes with emacs21.2. + +2002-10-28 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-scan-subject-regexp): Add an expression to match an + optional bracketed number after "Re", such as in "Re[2]:" + (Patch by Satyaki; I checked it and applied). + (mh-folder-font-lock-subject): Adapt to new mh-scan-subject-regexp. + * mh-seq.el (mh-subject-to-sequence): Ditto. + + * mh-e.el (mh-folder-sequence-menu): Remove "Toggle Subject + Thread" from menu. mh-toggle-threads is in the Folder menu. + + * mh-e.el (mh-folder-sequence-menu): Minor menu text edits. + + * mh-utils.el (mh-show-update-sequences): Added to + mh-defun-show-buffer builds; needed for menu. + (mh-show-sequence-menu, mh-show-message-menu) + (mh-show-folder-menu): 3 new menus in mh-show-mode-map that mirror + the menus used in mh-folder-mode. + (mh-show-mode): easy-menu-add the 3 menus. + +2002-10-28 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-goto-msg): Fix the regexp to search so that we + go to the right message. In a threaded folder message 2 may be + present after 26 and the previous regexp would go to 26 when we + really wanted to go to 2! + + * mh-seq.el (mh-widen): Add call to mh-recenter to make it like + mh-narrow-to-seq. + +2002-10-28 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-show-mime-save-parts): Deleted definition. + (mh-show-mime-map, tool-bar-map): Use mh-mime-save-parts instead + of mh-show-mime-save-parts. + +2002-10-28 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-tool-bar-map): tool-bar-add-item key name + bug fix. + * mh-utils.el (mh-show-tool-bar-map): Same. + * mh-e.el (mh-folder-tool-bar-map, mh-folder-seq-tool-bar-map): Same + +2002-10-27 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-toggle-threads): Add call to mh-recenter to make + its behavior like that of mh-narrow-to-seq. + +2002-10-27 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-mime-save-parts): Renamed from + mh-store-mime-parts for consistency with mh-mime-save-part. Fixed + bug whereby mh-mime-save-parts-directory was not getting + initialized properly from a string-valued + mh-mime-save-parts-default-directory. + (mh-mime-save-parts-default-directory): Ditto. Check your + customizations! + (mh-mime-save-parts-directory): Ditto. + + * mh-utils.el (mh-show-mime-save-parts): Renamed from + mh-store-mime-parts. + (mh-show-mime-map): Added keybinding "K a" for + mh-show-mime-save-parts. + + * mh-e.el (mh-mime-save-parts) Renamed from mh-store-mime-parts. + (mh-mime-map): Added keybinding "K a" for mh-mime-save-parts. + (mh-help-messages): Added help for "K a". + +2002-10-27 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-search-addr-regexp, mh-regexp-in-field-p): Rename + the first to the second (and recode a bit). + (mh-insert-mail-followup-to): Use it. + +2002-10-27 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-invisible-headers): Backed out change. Removed + Mail-Followup-To due to objections from Peter and Mark. + +2002-10-27 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-msg-is-in-seq): Modified to show info about + whether the message being queried about has been marked to be + deleted or refiled. + + * mh-mime.el (mh-insert-mime-security-button): Make + pressed-details a local. + +2002-10-27 Steve Youngs <youngs@xemacs.org> + + * .cvsignore: New file. + +2002-10-26 Steve Youngs <youngs@xemacs.org> + + * mh-seq.el (mh-notate-deleted-and-refiled): Don't bind local + variable 'dest', it isn't used anywhere. + + * mh-pick.el (mh-do-pick-search): Don't bind local variable + 'finding-messages', it isn't used anywhere. + + * mh-utils.el: Byte-compiler warning suppression. + (mh-gnus-article-highlight-citation): Rather than redefining + 'gnus-cite-face-list', just re-order it. + (mh-show-mode): Force turning on font-lock in XEmacs. + + * mh-seq.el: Byte-compiler warning suppression. + + * mh-index.el: Byte-compiler warning suppression. + + * mh-comp.el: Byte-compiler warning suppression. + + * mh-xemacs-compat.el: Add defaliases for 'timerp' & + 'cancel-timer' to the equivalent 'itimer' functions. + (rfc822): Require it for 'rfc822-goto-eoh'. + Byte-compiler warning suppression. + + * mh-e.el (mh-folder-mode): Force turning on font-lock in XEmacs. + (mh-toggle-threads): Remove duplicate autoload. + Byte-compiler warning suppression. + (mh-folder-unseen-seq-list): Use 'with-temp-buffer' to fix a bug + in XEmacs when font-lock is on. + (mh-folder-unseen-seq-name): Ditto. + +2002-10-27 Mark D. Baushke <mdb@gnu.org> + + * Makefile: Reorganize to allow for building also compiling for + XEmacs too. Sanitize so that it will work using least-common + denominator versions of 'make'. Tested using GNU make, Solaris make, + and Berkely make. + (all): Use recursive invokation based on the emacs or xemacs + executable passed on the 'make EMACS=xemacs' command line. + (XEMACS_OPTIONS): The incantation to be passed to an xemacs editor + to compile things properly. + (AUTO_PRELOADS): Magic XEmacs glue. + (clean): Ditto. + (autoloads): Ditto. + (custom-loads): Ditto. + +2002-10-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-last-msg): Add call to mh-recenter. + +2002-10-26 Peter S Galbraith <psg@debia.org> + + * mh-comp.el (mh-search-addr-regexp, mh-re-search-to-cc): Remove + `mh-re-search-to-cc' in favour of more generalized new function + `mh-search-addr-regexp'. + (mh-insert-mail-followup-to): Use it. + +2002-10-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-copy-seq-to-eob): Avoid rethreading when the + folder is already threaded. This is more efficient and also avoids + problems when the folder is widened. + (mh-thread-inc): Don't try to restore the point to original + location since mh-inc-folder from where this is called changes + point location after calling this function. + + * mh-e.el (mh-make-folder-mode-line): Fix a small bug where the + test was wrong. + +2002-10-26 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-mail-followup-to): Fix for new defcustom. + +2002-10-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-notate-deleted-and-refiled): Remove unused binding + of dest. The problem was pointed out by Steve as well. + + * mh-e.el (mh-toggle-threads): Remove duplicate autoload as + pointed out by Steve. + +2002-10-26 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-invisible-headers): Added Mail-Followup-To. + +2002-10-26 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-mail-followup-to-list): Change defvar to + defcustom. + +2002-10-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-remove-all-notation): New function that removes all + notation. + + * mh-seq.el (mh-narrow-to-seq): When hiding the original folder + remove all notation. This avoids stale notation hanging around. + Also changes in show buffer and position in folder buffer are + avoided if possible. + (mh-widen): When widening the scan-lines are notated based on the + current state of the folder. This means any changes made when the + folder was narrowed are shown consistently. + (mh-notate-deleted-and-refiled): Update the documentation. + (mh-thread-parse-scan-line): For some reason the ASCII value of + the space character was being used here. This is fixed. + (mh-thread-inc, mh-toggle-threads): Avoid change of point in + folder and message being displayed in shown buffer. + + * mh-utils.el (mh-recenter): Rewrite mh-recenter to show fewer + blank lines when point is towards the end of the folder buffer. + +2002-10-25 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-mail-followup-to-flag): New boolean + defcustom to append a Mail-Followup-To field to the header. The + insertion is done if the To: or Cc: fields matches an entry in + `mh-insert-mail-followup-to-list'." + (mh-insert-mail-followup-to-list): New defvar. List of addresses + for which a Mail-Followup-To field is inserted. + (mh-re-search-to-cc): New function. Search for REGEXP in To: and + Cc: fields. + (mh-insert-mail-followup-to): New function. Insert + Mail-Followup-To: if To or Cc match `mh-insert-mail-followup-to-list'. + (mh-compose-and-send-mail): Call mh-insert-mail-followup-to if + mh-insert-mail-followup-to-flag is true. + +2002-10-25 Mark D. Baushke <mdb@gnu.org> + + * mh-utils.el (mh-show-maximum-size): New variable to control + the display of large messages. + (mh-display-msg): Use it (Closes SF #488696). + + * mh-seq.el (mh-toggle-threads): Checkdoc fix. + + * mh-e.el (mh-reset-threads-and-narrowing): Checkdoc fix. + + * mh-comp.el (mh-insert-x-mailer-flag): Renamed from + mh-insert-x-mailer-p. Update docstring. + (mh-send-letter): Use it. + (mh-reply-show-message-flag): Renamed from + mh-reply-show-message-p. Update docstring. + (mh-reply): Use it. + This addresses part of SF #627015. + + * mh-e.el (mh-recenter-summary-flag): Renamed from + mh-recenter-summary-p. Update docstring. + (mh-set-scan-mode): Use it. + This addresses part of SF #627015. + +2002-10-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-reset-threads-and-narrowing): New function which + resets all thread and narrowing state to completely unthreaded and + widened state. As a side effect, the folder buffer is erased. + (mh-rescan-folder): Reset threads and narrowing state. + + * mh-funcs.el (mh-pack-folder-1): Reset threads and narrowing state. + + * mh-seq.el (mh-copy-seq-to-eob): Change mh-view-ops after + threading is over so that if user aborts threading, it doesn't + leave mh-e in an inconsistent state. + (mh-toggle-threads): Use mh-scan-folder to populate the folder + buffer instead of mh-rescan-folder which resets threading and + narrowing state. + +2002-10-24 Bill Wohler <wohler@newt.com> + + * mh-e is completely checkdoc clean now. + + * mh-utils.el (mh-clean-message-header-flag): Renamed from + mh-clean-message-header. + (mh-bury-show-buffer-flag): Renamed from mh-bury-show-buffer. + (mh-show-use-goto-addr-flag): Renamed from mh-show-use-goto-addr. + This addresses part of SF #627015. + + * mh-mime.el (mh-clean-message-header-flag): Renamed from + mh-clean-message-header. + Checkdoc fixes. This addresses part of SF #627015. + + * mh-index.el (mh-clean-message-header-flag): Renamed from + mh-clean-message-header. This addresses part of SF #627015. + + * mh-funcs.el (mh-do-not-confirm-flag): Renamed from + mh-do-not-confirm. This addresses part of SF #627015. + + * mh-e.el (mh-do-not-confirm-flag): Renamed from + mh-do-not-confirm. + (mh-clean-message-header-flag): Renamed from + mh-clean-message-header. + This addresses part of SF #627015. + + * mh-comp.el: checkdoc fixes. + +2002-10-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-copy-seq-to-eob): Rewritten to scan the headers + fresh instead of yanking from buffer. This is needed to get + correct threading in copied sequence. + (mh-thread-inc, mh-thread-update-scan-line-map) + (mh-thread-parse-scan-line): Eliminate the use, and hence the + definition of, the kludgy mh-thread-update-scan-line-map. Instead + the functions mh-notate-deleted-and-refiled and + mh-notate-user-sequences are used to get the message marks right. + (mh-thread-generate-scan-lines): Updated to allow the thread tree + to be used in a narrowed folder buffer. + (mh-thread-folder, mh-toggle-threads): Remove + mh-folder-threaded-view-flag. + (mh-thread-old-scan-line-map): New buffer-local variable that + remembers the original scan-line map so that the sequence thread, + narrow, widen will work. + (mh-narrow-to-seq, mh-widen): Remember the scan-line map when + narrowing and restore it when widening. + + * mh-e.el (mh-folder-threaded-view-flag, mh-folder-folder-menu) + (mh-regenerate-headers, mh-get-new-mail) + (mh-make-folder-mode-line, mh-process-commands) + (mh-delete-scan-msgs): Remove mh-folder-threaded-view-flag. + Instead (memq 'unthread mh-view-ops) is used to test if the folder + is threaded. + + * mh-mime.el (mh-display-emphasis): Shadow article-goto-body here + since we want to do emphasis on the whole of the region and not + just after the first blank line. + (mh-mm-display-part): When displaying a text part show smilies and + emphasis. + + * mh-index.el (mh-index-insert-scan): Attempt to keep number of + args to scan small if there are lots of adjacent matches. + (mh-index-quit): Bury index-buffer on quit instead of killing it. + This behavior is more like that of mh-quit. + + * mh-seq.el (mh-widen): If folder was threaded after narrowing + then make mh-widen undo the threading instead of erroring out. + +2002-10-24 Peter S Galbraith <psg@debian.org> + + * mh-seq.el (mh-toggle-threads): Add a cond (as suggested by + Satyaki) to properly unthread a narrowed-to-sequence. + + * mh-seq.el (mh-thread-generate-scan-lines): Fix threading + breakage from partial switch to mh-container-real-child-flag and + to dupl-flag. + + * mh-comp.el (mh-yank-cur-msg): Bug fix: specify + (eq t mh-yank-from-start-of-msg) when that's what we want. + +2002-10-24 Mark D. Baushke <mdb@gnu.org> + + * mh-seq.el (mh-thread-prune-subject): Renamed subject-pruned-p as + subject-pruned-flag. + (mh-thread-inc): Renamed old-buffer-modified-p as + old-buffer-modified-flag. + (mh-thread-generate-scan-lines): Renamed dupl-p as dupl-flag. + This addresses part of SF #627015. + + * mh-index.el (mh-index-advance): Renamed backward-p + local variable as backward-flag. + (mh-index-next-button): Renamed backward-p + argument as backward-flag. + (mh-index-show): Renamed display-headers-p argument as + display-headers-flag. + This addresses part of SF #627015. + + * mh-e.el (mh-scan-format, mh-version): Use mh-nmh-flag. + (mh-folder-mime-action): Renamed include-security-p + argument as include-security-flag. + (mh-goto-next-button, mh-next-button): Renamed backward-p + argument as backward-flag. + (mh-get-new-mail): Renamed new-mail-p local variable as + new-mail-flag. + (mh-goto-cur-msg): Renamed minimal-changes-p argument as + minimal-changes-flag. + (redraw-needed-flag): Renamed redraw-needed-p local variable as + redraw-needed-flag. + (mh-seq-containing-msg): Renamed include-internal-p argument as + include-internal-flag. + (mh-page-msg): Use mh-page-to-next-msg-flag. + This addresses part of SF #627015. + + * mh-mime.el (mh-mhn-compose-insert-flag): Renamed from + mh-mhn-compose-insert-p. Make it buffer-local. + (mh-mhn-compose-type, mh-mhn-compose-external-type, + mh-mhn-compose-forw, mh-edit-mhn): Use mh-mhn-compose-insert-flag. + (mh-mml-to-mime, mh-mml-secure-message-encrypt-pgpmime, + mh-mime-display-part, mh-mime-display-single): Use + mh-gnus-pgp-support-flag renamed from mh-gnus-pgp-support-p. + (mh-mime-display-single): Renamed small-image-p local + variable as small-image-flag. + (mh-mime-inline-part): Renamed local variable inserted-p as + inserted-flag. + (mh-mime-inline-part): Renamed local variable displayed-p as + displayed-flag. + This addresses part of SF #627015. + + * mh-comp.el (mh-letter-menu, mh-letter-mode, mh-send-letter): + mh-mhn-compose-insert-flag. + (mh-repl-group-formfile, mh-forward): Use mh-nmh-flag + renamed from mh-nmh-p. + (mh-reply, mh-insert-x-mailer, mh-send-letter): Use mh-nmh-flag. + (mh-letter-mode-map): Use mh-gnus-pgp-support-flag renamed from + mh-gnus-pgp-support-p. + (mh-mml-secure-message-sign-pgpmime): Use + mh-gnus-pgp-support-flag. + This addresses part of SF #627015. + + * mh-utils.el (mh-page-to-next-msg-flag): Renamed from + mh-page-to-next-msg-p. + (mh-show-msg): Use mh-page-to-next-msg-flag. + (mh-gnus-pgp-support-flag): Renamed from + mh-gnus-pgp-support-p. + (mh-show-font-lock-fontify-region): Fix docstring per checkdoc. + (with-mh-folder-updating): Renamed argument + save-modification-flag-p as mh-save-modification-flag. + (mh-prompt-for-folder): Renamed new-file-p local + variable as new-file-flag. + This addresses part of SF #627015. + +2002-10-24 Mark D Baushke <mdb@gnu.org> + + * mh-comp.el (mh-forward): Fix mh-mml-compose-insert-p reference + in last commit to be mh-mml-compose-insert-flag. + (mh-mml-compose-insert-flag): Move defvar to fix compiler warning. + +2002-10-24 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-forward): Add support for transient-mark mode. + When using nmh, always specify -mime so as to preserve the + original message(s). If mh-compose-insertion is 'gnus, convert + the mhbuild format forwarding directives into MML. + +2002-10-24 Eric Ding <ericding@alum.mit.edu> + + * mh-comp.el (mh-send-letter): Fix for earlier change that added + "-mime" for bcc'ed MIME mail; still doesn't work with nmh 1.0, but + at least no longer triggered for every outgoing message! + +2002-10-24 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-yank-cur-msg): Fix selected regions for supercite + (see text below). + + * mh-comp.el (mh-yank-cur-msg): Fix for supercite. Someone played + with the point and mark setting prior to the call to + 'mh-insert-prefix-string and that broke supercite. I put comments + to make it obvious to future coders why those settings exists. + Note that supercite is still broken when a region is selected in + the show buffer. Presumably it's been like that for a long time. + We need to insert the header as well as the selected region oin + that case. I'll submit an SF bug. + +2002-10-24 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-yank-from-start-of-msg, mh-reply): Use -noformat + flag to reply when 'autosupercite or 'autoattrib are specified to + prevent duplicate cites of the body of a message. + +2002-10-23 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (font-lock-default-fontify-region): Add autoload to + avoid compiler warning. + +2002-10-23 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-mode): set fill-paragraph-function to our + own 'mh-fill-paragraph-function instead of simply + 'mail-mode-fill-paragraph (because it doesn't handle a non-nil + fill-prefix correctly). + (mh-fill-paragraph-function): New function for mh-letter-mode + fill-paragraph-function in order to handle non-nil fill-prefix. + Call sendmail's mail-mode-fill-paragraph if in the mail header, + else call default fill-paragraph with fill-prefix set to nil. + (Closes SF #489927) + + * mh-comp.el (mh-letter-mode): Let's use font-lock even if gnus is + used in show-mode. The reason is that gnus uses static text + properties which are not appropriate for a buffer that will be + edited. So the choice here is either fontify the citations and + header or the header only. + + * mh-utils.el (mh-show-font-lock-fontify-region): Limit font-lock + in mh-show-mode to the header. Used when mh-highlight-citation-p + is set to gnus, leaving the body to be dealt with by gnus + highlighting. This fixes gnus text emphasis in mh-show-mode. + (mh-show-mode): In font-lock-defaults, set + font-lock-fontify-region-function to mh-show-font-lock-fontify-region. + +2002-10-23 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-mml-attach-file): Prompt for disposition should + be Disposition, not Content-Type. The Content-Type has been + determined automatically. + +2002-10-23 Mark D. Baushke <mdb@gnu.org> + + * MH-E-NEWS: + s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ + s/mh-show-use-xface/mh-show-use-xface-flag/ + s/mh-tool-bar-reply-3-buttons/mh-tool-bar-reply-3-buttons-flag/ + This addresses part of SF #627015. + + * mh-comp.el: + s/mh-mml-compose-insert-p/mh-mml-compose-insert-flag/ + s/mh-xemacs-p/mh-xemacs-flag/ + (mh-letter-menu): Use mh-mml-compose-insert-flag. + (mh-insert-x-mailer): Use mh-xemacs-flag. + (mh-mml-compose-insert-flag): Renamed from + mh-mml-compose-insert-p. + (mh-send-letter): Use mh-mml-compose-insert-flag. + This addresses part of SF #627015. + + * mh-e.el: + s/mh-folder-threaded-view-p/mh-folder-threaded-view-flag/ + s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ + s/mh-xemacs-p/mh-xemacs-flag/ + (mh-folder-threaded-view-flag): Renamed from + mh-folder-threaded-view-p. Make it buffer local. + (mh-folder-tool-bar-map): Use mh-tool-bar-reply-3-buttons-flag. + (mh-remove-xemacs-horizontal-scrollbar): Use mh-xemacs-flag. + (mh-make-folder, mh-regenerate-headers, mh-get-new-mail): Use + mh-adaptive-cmd-note-flag. + (mh-folder-folder-menu, mh-regenerate-headers, mh-get-new-mail, + mh-make-folder-mode-line, mh-process-commands, + mh-delete-scan-msgs): Use mh-folder-threaded-view-flag. + This addresses part of SF #627015. + + * mh-index.el: + s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ + (mh-index-search): Use mh-adaptive-cmd-note-flag. + This addresses part of SF #627015. + + * mh-mime.el: + s/mh-mml-compose-insert-p/mh-mml-compose-insert-flag/ + s/mh-xemacs-p/mh-xemacs-flag/ + (mh-mml-compose-insert-flag): Renamed from + mh-mml-compose-insert-p. Make it buffer local. + (mh-mml-attach-file, mh-mml-secure-message-sign-pgpmime, + mh-mml-secure-message-encrypt-pgpmime): Use it. + (gnus-local-map-property): Use mh-xemacs-flag. + This addresses part of SF #627015. + + * mh-seq.el: + s/mh-folder-threaded-view-p/mh-folder-threaded-view-flag/ + (mh-thread-generate, mh-thread-folder, mh-toggle-threads): Use + mh-folder-threaded-view-flag. + This addresses part of SF #627015. + + * mh-speed.el: + s/mh-speed-run-flists-p/mh-speed-run-flists-flag/ + s/mh-speed-refresh-p/mh-speed-refresh-flag/ + (mh-speed-run-flists-flag): Renamed from mh-speed-run-flists-p. + (mh-folder-speedbar-buttons): Use it. + (mh-speed-refresh-flag): Renamed from mh-speed-refresh-p. + (mh-speed-update-current-folder, mh-speed-invalidate-map, + mh-speed-add-folder): Use it. + This addresses part of SF #627015. + + * mh-utils.el: + s/mh-xemacs-p/mh-xemacs-flag/ + s/mh-tool-bar-reply-3-buttons/mh-tool-bar-reply-3-buttons-flag/ + s/mh-show-use-xface/mh-show-use-xface-flag/ + (mh-xemacs-flag): Renamed from mh-xemacs-p. + (mh-show-xface-function): Use it. + (mh-tool-bar-reply-3-buttons-flag): Renamed from + mh-tool-bar-reply-3-buttons. + (mh-show-tool-bar-map): Use it. + (mh-adaptive-cmd-note-flag): Renamed from mh-adaptive-cmd-note. + (mh-cmd-note): Use it in description. + (mh-show-use-xface-flag): Renamed from mh-show-use-xface. Use + mh-xemacs-flag. + (mh-show-xface): Use mh-show-use-xface-flag. + This addresses part of SF #627015. + +2002-10-23 Bill Wohler <wohler@newt.com> + + * Makefile (all): Rather than have to run "make clean all" all the + time, make the default target do a clean so all you have to say is + "make". + + * mh-e.el (mh-folder-map): Moved "t (mh-toggle-threads)" to T + prefix. + +2002-10-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-indexer-choices, mh-swish-binary): The + executable swish-e can be used to search (just like swish-search). + However the Makefile in swish-e-2.2.2 doesn't install + swish-search. So it is preferable to use swish-e. + +2002-10-22 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-letter-mode-map): Added aliases for keybindings. + For example, you now have "C-c C-m C-i" in addition to "C-c C-m + i". + +2002-10-22 Mark D. Baushke <mdb@gnu.org> + + * mh-mime.el (mh-graphical-smileys-flag): Renamed from + mh-graphical-smileys-p. + (mh-display-smileys): Use it. + (mh-graphical-emphasis-flag): Renamed from + mh-graphical-emphasis-p. + (mh-display-emphasis): Use it. This addresses part of SF #627015. + +2002-10-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-insert-mime-security-button): A message is + produced if PGP decryption/verification fails. This addresses + SF# 627025. + +2002-10-21 Bill Wohler <wohler@newt.com> + + * mh-seq.el (mh-widen): Checkdoc removed the period in the error. + The info node (elisp) Coding Conventions says: "An error message + should start with a capital letter but should not end with a + period." + + * mh-e.el, mh-utils.el (mh-tool-bar-reply-3-buttons): Moved + defcustom to mh-utils because I got an error about a nil value for + mh-tool-bar-reply-3-buttons when I fired up mh-rmail. + + * mh-comp.el, mh-funcs.el, mh-mime.el, mh-pick.el: Moved (provide) + to the end of the file to be consistent with most other files (see + additional rationale in mh-e.el description below). + + * mh-e.el: Had to remove eval-when-compile from the (require 'cl) + here too (because the remove-if generated a warning in CVS Emacs). + Moved (provide) to the end of the file to be consistent with most + other files. My guess is that this is good to keep a feature from + being "provided" if the file craps out while being loaded. + +2002-10-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-reply, Info-goto-node): Add autoloads to avoid + compiler warnings. + (mh-tool-bar-reply-3-buttons): Add defvar to avoid compiler + warning. + + * mh-seq.el (mh-narrow-to-seq): Remember that a narrowing has + occurred. + (mh-valid-view-change-operation-p): New function that checks if + the widening or unthreading that we are about to perform is + allowed. + (mh-widen): Check if widening is applicable. + (mh-thread-inc, mh-thread-folder): Use delete-region instead of + erase-buffer. This means if the buffer is narrowed then the hidden + parts aren't removed. This allows widening of the folder later on. + (mh-toggle-threads): Maintain mh-view-ops. + + * mh-e.el (mh-view-ops, mh-folder-mode): New buffer-local variable + that keeps track of the sequence in which threading and narrowing + of the folder buffer has been carried out. This is needed so that + narrowing followed by threading (or vice versa) behaves in a + reasonable manner. + (mh-regenerate-headers): Use delete-region instead of + erase-buffer. + (mh-make-folder-mode-line): Change mh-first-msg-num and + mh-last-msg-num conservatively. This might show a larger range in + the mode-line but allows the unthreading to not miss messages + present initially. + +2002-10-21 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-graphical-emphasis-p): Added _underline_ to the + docstring, as well as the source of the strings, + gnus-emphasis-alist. + (mh-graphical-emphasis-p, mh-graphical-smileys-p): Set the default + to t. + +2002-10-21 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-show-mode): Invoke new toolbar. + (mh-show-tool-bar-map): New tool-bar for mh-show-mode, similar to + mh-letter-mode. + +2002-10-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-display-msg): Call the smiley display function + after the call to mh-show-mode. This is needed since mh-show-mode + kills all buffer-local variables and resets the variable that + controls display of graphical smileys. + +2002-10-21 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-folder-mime-action): Change mime to MIME in message. + + * mh-comp.el (mh-mml-to-mime autoload): Ditto. + +2002-10-21 Mark D Baushke <mdb@gnu.org> + + * mh-mime.el (smiley-region): Use load for a non-fatal dependency + on the smiley library. + +2002-10-21 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-forward): Search for a blank line as well as + mail-header-separator. + (mh-letter-mode): Search for a blank line as well as + mail-header-separator. + (mh-send-letter): The default BCC encapsulation will make a MIME + message unreadable. If we are running nmh and the letter contains + a Bcc: and a Content-Type: field, add the -mime switch to to the + arguments to send. + +2002-10-21 Peter S Galbraith <psg@debian.org> + + * mh-utils.el: Add a mh-defun-show-buffer call to define + mh-show-pack-folder. + +2002-10-21 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-store-mime-parts): Simplify code a bit. + + * mh-e.el (mh-help-messages): Update help message for changed + keybindings. + +2002-10-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-invalidate-map): Invalidate + mh-speed-folders-cache before it is used by mh-speed-folders. Also + fix indentation of if statement. + (mh-speed-folder-size): The folder name should be extracted from + the speedbar buffer and not from the temp buffer has was happening + before. + (mh-speed-folder-size): Harden the function some more. It + shouldn't produce errors any more unless flist really didn't work. + +2002-10-21 Bill Wohler <wohler@newt.com> + + * mh-seq.el (mh-put-msg-in-seq): Formatting only. The reason I was + in there is because I was trying to use mh-put-msg-in-seq and + mh-msg-is-in-seq non-interactively and found that although the + docstring says it uses the current message by default, I got + errors if I passed in nil for the message. Is this expected, or is + this a bug? I suppose the fix would be to make the arguments + optional, right? This would cause the arguments in + mh-put-msg-in-seq to be reversed, however. Might be a backwards + compatibility problem. + + * mh-speed.el (mh-speed-view): Convert default size to string + before passing it to read-string. This was done because XEmacs + can't handle a numeric value for the default. + +2002-10-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-show-mode-map, mh-show-folder-map) + (mh-show-sequence-map, mh-show-thread-map, mh-show-extract-map) + (mh-show-digest-map, mh-show-mime-map): Interactive functions + callable in show buffer are now prefixed with mh-show. + + * mh-seq.el (mh-notate-deleted-and-refiled): Take into account the + changes to mh-refile-list and the removal of the 'deleted + sequence. + (mh-toggle-threads): Changing from threaded to normal view doesn't + try to push out message refiles and deletions to MH. + + * mh-e.el (mh-rescan-folder, mh-scan-folder): Add a new optional + argument to both functions that prevents them from carrying out + pending refiles and deletes. + (mh-undo): Remove dead code. + (mh-delete-a-msg, mh-undo-msg): Get rid of the 'deleted sequence. + The same information is present in mh-delete-list any way. + (mh-refile-a-msg, mh-undo-msg, mh-process-commands): Change the + semantics of mh-refile-list to make it self-contained. This + variable now contains a list of lists. The first element of each + sublist is the destination folder name. The remaining elements are + the messages that are to be refiled to the destination folder. + (mh-toggle-threads, mh-folder-folder-menu): Use mh-toggle-threads + instead of mh-thread-folder. + +2002-10-20 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-store-mime-parts): Bug fix? Make this command + work when in the show buffer, and not just in the folder buffer + pointing to a message. + +2002-10-20 Peter S Galbraith <psg@debian.org> + + * mh-seq.el (mh-narrow-to-subject-sequence): Renamed from + mh-narrow-to-subject-thread. + (mh-subject-to-sequence): Renamed from mh-subject-thread-to-sequence. + (mh-delete-subject-sequence): Renamed from mh-delete-subject-thread. + (mh-next-unseen-subject-sequence): Renamed from + mh-next-unseen-subject-thread. + (mh-toggle-subject-thread): Removed. :-( + + * mh-e.el: s/subject-thread/subject-sequence/ + (mh-thread-map): Bind mh-widen to "w". + + * mh-utils.el: s/subject-thread/subject-sequence/ + (mh-show-thread-map): Bind mh-widen to "w". + +2002-10-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-folder): This function is no longer + interactive. The mh-toggle-threads is the interactive function + that gets called by the user. Also the already computed values in + mh-first-msg-num and mh-last-msg-num are used instead of + recomputing the first and last message indices in the current + folder. + (mh-toggle-threads): New interactive function that toggles + threaded view of the folder. + + * mh-utils.el (mh-letter-toggle-threads): New interactive function + which toggles thread view from show buffer. This function replaces + mh-letter-thread-folder. + (mh-show-folder-map): Use mh-letter-toggle-threads instead of + mh-letter-thread-folder. + + * mh-e.el (mh-folder-map): Use mh-toggle-threads instead of + mh-thread-folder. + +2002-10-20 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-scan-folder): Formatting only. + (mh-goto-cur-msg): Removed call to mh-last-msg in those cases + where there isn't a current message. Since I've started using the + speedbar to read my mh-e mail, I've had to use M-< every time to + go to the beginning of the new messages. Very annoying! Thus, if + there isn't a current message, the cursor is left alone, which + sounds like the right thing to do anyway. + +2002-10-19 Peter S Galbraith <psg@debian.org> + + * mh-seq.el (mh-subject-thread-to-sequence): Bug fix. After + making the 'subject sequence real, I now have to delete it globally. + + * mh-seq.el (mh-toggle-subject-thread): Make toggle back to full + scan exactly mh-widen (removed moving to current message). + + * mh-seq.el (mh-subject-thread-to-sequence): Make 'subject + sequence a real one, exported to MH. This means you can, for + example, mh-forward it. But it also shows up with a mark in the + scan output. (Closes SF #489445). + +2002-10-19 Bill Wohler <wohler@newt.com> + + * mh-speed.el (mh-speed-view): If there weren't any unseen + messages, and you specified a string (a sequence like "last") when + prompted for the number of messages to display, you got an error. + This has been fixed. + +2002-10-19 Mark D Baushke <mdb@gnu.org> + + * mh-e.el (mh-last-destination-folder): Destination of last refile + command. + (mh-last-destination-write): Destination of last write command. + (mh-refile-msg): Use 'mh-last-destination-folder and update both it + and 'mh-last-destination. + (mh-write-msg-to-file): Use 'mh-last-destination-write and update + both it and 'mh-last-destination (Closes SF #580772). + +2002-10-19 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-yank-from-start-of-msg): Changed default to + 'attribution. + (mh-letter-mode-map): Removed commented-out keybindings as well as + alias "C-c C-m a (mh-compose-insertion)." Prefer "C-c C-m i." + + * mh-utils.el: Removed autoload of help. It no longer appears to + be necessary in cvs Emacs (21.4). + +2002-10-18 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-execute-commands): Doc fix. + (mh-compat-write-file-hook): Renamed to + mh-write-file-functions-compat. + (mh-folder-mode): Add mh-write-file-functions-compat instead of + mh-compat-write-file-hook + +2002-10-18 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-invisible-headers-show-xface): Killed this + variable. + (mh-invisible-headers): Use 'mh-show-use-xface instead of + 'mh-invisible-headers-show-xface to determine whether to render + the X-Face header line visible or not. + +2002-10-18 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-compat-write-file-hook, mh-folder-mode): Use the new + macro mh-compat-write-file-hook to use write-file-functions for + Emacs 21.4 and local-write-file-hooks for older versions. + +2002-10-18 Mark D Baushke <mdb@gnu.org> + + * mh-utils.el (mh-invisible-headers): Add more anti-spam headers. + +2002-10-18 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-mml-forward-message): mml-attach-file constructs + a malformed composition if the description string is empty, so + test for that and call mml-attach-file without that argument if + it's an empty string (closes SF #625168). + +2002-10-17 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-keymap): Removed extra binding of " ". + (mh-index-folder-mode-help-messages): Made the cheat sheet entry + of quit like the others. + (mh-index-search): If space was pressed in the index buffer before + a search result has been shown with ".", the old show buffer would + be scrolled. This is confusing since the index and show buffer + contents are contradictory. Killing the show buffer here avoids + this problem. + (mh-index-configure-windows): Refine the window configuration + logic. Avoid the two window view unless there is a message being + displayed in the show buffer. + (mh-index-scroll-up): Rewrite this function. The old version had a + bizarre problem where the show buffer wouldn't be scrolled if the + speedbar was present. + (mh-index-scroll-down): Rewritten because of similar reason as + above. + +2002-10-17 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-reply): Add an undo boundary in the undo list + before calling 'mh-yank-cur-msg (closes SF #623693). + +2002-10-17 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-folder-mode): Use local-write-file-hooks instead of + write-file-hooks. This is required for XEmacs and also the right + thing according to GNU Emacs21 documentation. + +2002-10-16 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-generate): Get threading to work correctly + on partial folders. The fix here disregards messages that aren't + already present in the buffer. + (mh-thread-folder): When querying scan about thread info try to + avoid asking about messages that aren't present in the folder + buffer. A more efficient fix would be to ask scan about just the + messages that are present instead of a range of messages. However + that runs the risk of sending long command lines to scan. Another + change was to populate the mh-scan-line-map early so that the + change in mh-thread-generate would work. + (mh-thread-generate-scan-lines): In case duplicates are present + make one of them the pseudo parent of the rest. This makes it look + prettier if there are multiple duplicates at top level. + + * mh-comp.el (mh-edit-again): If a buffer in show-mode is being + reused then reinsert message file. This should fix SF #624283. + + * mh-mime.el (mh-mm-display-part): Make sure mh-display-part is + always called when we want to remove the displayed MIME part. + +2002-10-16 Bill Wohler <wohler@newt.com> + + * mh-speed.el (mh-speed-folder-size): checkdoc fix. + (mh-speed-view): Tweaked output to mirror gnus verbiage. Offer + to view number of messages in folder rather than mh-large-folder. + Replaced (intern mh-unseen-seq) with mh-unseen-seq since the + former was generating errors. + +2002-10-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-large-folder): New customizable variable to + control mh-e's perception of large folders. + (mh-speed-folder-size): New function which computes the size of + folder on current line. + (mh-speed-view): Modified to handle large folders. If the folder + being clicked has unseen messages then only those messages are + shown. Otherwise if number of messages in folder is larger than + mh-large-folders then the user is asked for the number of messages + to be shown. If the folder satisfies neither of the above cases + then it is displayed in its entirety + +2002-10-15 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-index-keymap): Use gnus-define-keys. Sorted. + Noticed that there were two key bindings for SPACE... + + * mh-speed.el (mh-folder-speedbar-key-map): Ditto (except for the + dup SPACE binding). + + Completed help in other modes: + + * mh-utils.el (mh-xemacs-p): Fixed doc. + (mh-show-mode-map, mh-show-folder-map, mh-show-sequence-map) + (mh-show-thread-map, mh-show-extract-map): Added binding for + mh-help. + + * mh-pick.el (mh-search-folder): Added startup help message. + (mh-pick-mode-help-messages): New variable that contains help + messages for pick buffer. + (mh-pick-mode): Set local buffer variable mh-help-messages to + mh-pick-mode-help-messages. + + * mh-index.el (mh-index-keymap): Added binding for mh-help + (mh-index-folder-mode-help-messages): New variable that contains + help messages for MH Index buffer. + (mh-index-folder-mode): Set local buffer variable mh-help-messages + to mh-index-mode-help-messages. + + * mh-funcs.el (mh-help, mh-prefix-help): Call + substitute-command-keys on the help messages. + + * mh-e.el (mh-help-messages): Added ,. Ran C-M-q. + (mh-help): This autoload doc is now used for more than just the + MH-Folder, so drop that specific text. + + * mh-comp.el (mh-edit-again, mh-extract-rejected-mail) + (mh-forward, mh-reply, mh-send-sub): Call mh-letter-mode-message + to display a help message at startup. + (mh-letter-mode): Set local buffer variable mh-help-messages to + mh-letter-mode-help-messages. + (mh-letter-mode-help-messages): New variable with help messages + for the MH-Letter buffer. + (mh-letter-mode-message): New function that displays a startup + help message. + (mh-letter-mode-map): Added binding for mh-help. Sorted. + +2002-10-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speedbar-selected-folder-with-unseen-messages-face) + (mh-speedbar-folder-face, mh-speedbar-selected-folder-face) + (mh-speedbar-folder-with-unseen-messages-face): New faces for mh-e + speedbar. + (mh-folder-speedbar-buttons, mh-speed-update-current-folder) + (mh-speed-add-buttons): Use the new faces. + (mh-speed-normal-face, mh-speed-bold-face): Functions to convert + to bold face and back to normal face. + (mh-speed-set-face): Removed. + (mh-speed-highlight): Modified to allow it to be used instead of + mh-speed-set-face. Also changes were made to fontify folders with + unread messages. + (mh-speed-parse-flists-output, mh-speed-parse-flists-output) + (mh-speed-invalidate-map): Use mh-speed-highlight instead of + mh-speed-set-face. + +2002-10-15 Bill Wohler <wohler@newt.com> + + * mh-mime.el, mh-seq.el, mh-speed.el, mh-utils.el: It appears that + the cl package has been restructured in 21.4 in such a way that + the use of eval-when-compile no longer suppresses warnings when + compiling so that (require 'cl) must be called directly (maybe + this is a bug in 21.4 ;-). Thus the autoloads of cl are no longer + needed. Now compiles clean under 21.4. + + * mh-e.el (mh-folder-mode): The use of local-write-file-hooks is + deprecated in Emacs 21.4, so use add-hook write-file-functions (or + write-file-hook for older versions) with the LOCAL argument + instead. Now compiles clean under 21.4. + + * mh-comp.el (mh-yank-cur-msg): Push a mark at the opposite end of + the included text to make it easy to jump or delete to the other + end of the included text. + +2002-10-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-insert-prefix-string): Remove the erroneous use + of set-mark and other related functions. + +2002-10-14 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-yank-from-start-of-msg): Fixed documentation. It + isn't ignored if there is a region. It is still used for the + attribution. + (mh-yank-cur-msg): Removed unnecessary push-mark when snarfing the + entire message. Move the cursor to the end of the snarfed message + if there is a region. In this case, push a mark so user can pop to + the beginning of the snarfed fragment. + (mh-insert-prefix-string): This calls set-mark which I find + suspect since I found that my last user mark was deleted after + yanking a message. Added a comment to this effect. Will probably + add a bug report... + + * README (Installed, Supported versions): To appear in GNU Emacs + 21.3; supported on Emacs 21, 20.7 and XEmacs 21. + + * mh-funcs.el (mh-concat-list): Deleted. Use mapconcat instead. + (mh-help, mh-prefix-help): Use mapconcat instead of mh-concat-list. + (mh-ephem-message): Use "%s" in message. + + * mh-funcs.el (mh-concat-list): New function to concatenate a list + of strings into a single string. I would have thought elisp + already contained a function like this, but I couldn't find it. + (mh-ephem-message): New function to display a message in the + minibuffer ephemerally. minibuffer-message seemed like the right + function, but it writes to the current buffer oddly enough. + (mh-help, mh-prefix-help): New functions to display command + cheat sheets in the minibuffer (closes SF #493740). It would be + nice to refactor these two into a single function if possible. + + * mh-e.el (mh-folder-mode-map, mh-folder-map, mh-sequence-map) + (mh-thread-map, mh-extract-map): Added ? keybinding for `mh-help' + and `mh-prefix-help' (closes SF #493740). + (mh-help-messages): New variable to hold various help messages. + (mh-help, mh-prefix-help): Autoload from mh-funcs.el. + +2002-10-13 Bill Wohler <wohler@newt.com> + + * mh-index.el (mh-glimpse-directory, mh-swish-directory, + mh-namazu-directory): New variables that hold the name of the + configuration and indexing directory. All are now hidden `.' + directories. + + * mh-e.el, mh-funcs.el, mh-index.el, mh-mime.el, mh-pick.el, + mh-seq.el, mh-xemacs-compat.el (Docstrings): Converted comments to + docstrings, reworded some docstrings to conform to Emacs + documentation conventions, and eliminated all checkdoc warnings + (except for -flag, which we'll fix after 6.2 is released). + +2002-10-13 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-swish-next-result): Fix a bug in a corner case + where the lack of a trailing "/" caused the function to wrongly + filter out correct hits. This should fix SF #622679. + +2002-10-12 Steve Youngs <youngs@xemacs.org> + + * mh-utils.el (mh-xemacs-p): Simplify it, don't test for + 'defvaralias' and don't use 'running-xemacs'. + +2002-10-11 Bill Wohler <wohler@newt.com> + + * mh-comp.el: (Docstrings): Eliminated all checkdoc warnings by + converting comments to docstrings and rewording some docstrings to + conform to Emacs documentation conventions. + +2002-10-11 Steve Youngs <youngs@xemacs.org> + + * mh-utils.el (mh-xemacs-p): New. + (mh-show-use-xface): Use it. + (mh-show-xface-function): Ditto. + + * mh-e.el (toplevel): Ditto. + (mh-remove-xemacs-horizontal-scrollbar): Ditto. + (mh-folder-mode-map): Ditto. + + * mh-comp.el (mh-insert-x-mailer): Ditto. + + * mh-mime.el (gnus-local-map-property): Ditto. + (mh-mml-to-mime): Move (require 'mh-utils) to toplevel. + (mh-prompt-for-folder): Autoloading this not needed because + mh-utils is now required at toplevel. + (mh-show-xface): Ditto. + (mh-show-addr): Ditto. + +2002-10-11 Bill Wohler <wohler@newt.com> + + * Makefile (EMACS_HOME): Set default to $(TOP)/../emacs so it + would be useful. + + * mh-utils.el (mh-invisible-headers): Added various spam header + fields. + (mh-path-search): Removed argument `func-p' and related code. It + was not documented and no one used it. + (Docstrings): Converted comments to docstrings, reworded some + docstrings to conform to Emacs documentation conventions, and + basically eliminated all checkdoc warnings (except for -flag + warnings). + +2002-10-11 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-generate): Kill dead code. + +2002-10-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-region-to-sequence): Don't include point-max in + region (closes SF #621632). + + * mh-utils.el (mh-defun-show-buffer): Fix call of + frame-first-window to work with XEmacs. Also avoid warning about + cur-buffe-name in XEmacs. + (mh-modify, mh-goto-msg): Remove dead code. + + * mh-speed.el (mh-speed-toggle, mh-speed-add-buttons): Remove dead + code. + + * mh-seq.el (mh-subject-thread-to-sequence, mh-thread-get-message, + mh-thread-generate, mh-thread-folder): Remove dead code. + + * mh-mime.el (mh-mm-inline-message): Remove dead code. + + * mh-index.el (mh-index-search): Remove dead code. + + * mh-comp.el (mh-open-line): Remove dead code. + + * mh-e.el (mh-folder-mode): Use the macro + mh-remove-xemacs-horizontal-scrollbar to avoid compiler-warning in + Emacs. + (mh-remove-xemacs-horizontal-scrollbar): New macro to avoid + compiler-warnings. + +2002-10-10 Mark D Baushke <mdb@gnu.org> + + * Makefile (EMACS_OPTIONS): New macro for command-line compile + options. + (EMACS): Allow the user to specify which emacs command to use for + the compile. + (COMPILE_COMMAND): Combine the compile command with its options. + (.el.elc): Use the new $(COMPILE_COMMAND). + +2002-10-10 Mark D Baushke <mdb@gnu.org> + + * mh-speed.el (mh-speed-select-attached-frame): Define a new + compatibility macro for getting to the attached-frame. + (mh-speed-update-current-folder): Use it. + +2002-10-10 Mark D Baushke <mdb@gnu.org> + + * mh-speed.el (mh-speed-update-current-folder): Use + 'dframe-select-attached-frame if we are in a newer speedbar + version that no longer supports the 'speedbar-attached-frame + variable. + +2002-10-10 Steve Youngs <youngs@xemacs.org> + + * mh-speed.el (mh-speed-update-current-folder): Use + 'dframe-select-attached-frame' if we're in XEmacs. + + * mh-e.el (mh-folder-mode): Remove the horizontal scrollbar from + the MH-Folder buffer if we're in XEmacs. + +2002-10-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-show-xface-function): New global that stores + what function needs to be called to display X-Face. + (mh-show-xface): Rewritten to avoid compiler warning. + +2002-10-09 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-exchange-point-and-mark-preserving-active-mark): + Simplify code for all emacsen to avoid byte-compilation warnings. + +2002-10-09 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-mm-display-part): If a sub-part of the current + part is an inline image then clicking the button keeps the image + around. The change fixes this bug. + +2002-10-09 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-exec-cmd-output): Use new function + 'mh-exchange-point-and-mark-preserving-active-mark instead of + 'exchange-point-and-mark. Fixes a bug in emacs20 and XEmacs21. + (mh-exchange-point-and-mark-preserving-active-mark): New function. + Does like 'exchange-point-and-mark but doesn't activate the mark. + + * mh-comp.el (mh-letter-menu): Allow access to "Pull in All + Compositions" menu entries when edits have really occurred. + Works with "forw: -mime" mh_profile entry, so this fixes a bug. + + * mh-mime.el (mh-mime-inline-part, mh-mm-display-part): Use + line-beginning-position and line-end-position instead of + point-at-bol and point-at-eol XEmacs functions. + * mh-xemacs-compat.el: Added line-end-position and + line-beginning-position compatibility aliases. + +2002-10-08 Mark D. Baushke <mdb@gnu.org> + + * mh-utils.el (mh-scan-msg-format-regexp): The regexp to find + %number(msg). + (mh-scan-msg-format-string): Format to be used with the current + maximum width of message number for the folder in the + `mh-upate-scan-format' function. + (mh-update-scan-format): Use `mh-scan-msg-format-regexp' for greater + flexibility. The message number is no longer anchored to the + beginning of the `mh-scan-format-nmh' or `mh-scan-format-mh' format + strings. The `mh-update-scan-format' allows for using zero-filled + message numbers. + +2002-10-08 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-folder-menu): Add entry for "Thread Folder". + +2002-10-07 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-generate): Use mh-progs to get path to mh + executables. + + * mh-speed.el (mh-speed-flists): Use mh-progs to get path to mh + executables right. + (mh-speed-folders-actual): Same as above. + +2002-10-05 Steve Youngs <youngs@xemacs.org> + + * mh-comp.el (mh-yank-from-start-of-msg): Make default setting 't' + a const. + + * mh-xemacs-compat.el (match-string-no-properties): Rewrite as a + defsubst using 'buffer-substring-no-properties' so we don't grab + any extents. + (rfc822-goto-eoh): Removed. This exists in the XEmacs mail-lib + package. + (mail-header-end): Ditto. + (mail-mode-fill-paragraph): Ditto. + +2002-10-05 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-invalidate-map): When called interactively + the function will clear mh-speed-folders-cache. + +2002-10-02 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-insert-mime-button): Rewrite without using + replace-match. + +2002-10-01 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-file-mime-type-substitutions): Reorder code to + avoid compiler warning. + +2002-10-01 Bill Wohler <wohler@newt.com> + + * Makefile (MH-E-ETC): Moved ChangeLog into MH-E-ETC-ETC since it + shouldn't get installed in Emacs. + (install-emacs): Install MH-E-IMG into Emacs' lisp/toolbar and + MH-E-IMG2 into Emacs' lisp/mail. + +2002-10-01 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-tool-bar-reply-3-buttons): New customization. + Non-nil means use three buttons for reply commands in tool-bar. + If you have room on your tool-bar because you are using a large + font, you may set this variable to expand the single reply + button into three buttons that won't lead to minibuffer prompt + about who to reply to. + (mh-folder-tool-bar-map): Use mh-tool-bar-reply-3-buttons to + decide how many buttons to use for replying. + + * mh-mime.el (mh-file-mime-type-substitutions) + (mh-file-mime-type-substitute): Fix typos and doc strings. + +2002-09-30 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-file-mime-type): Run Content-Type string returned + by file command through mh-file-mime-type-substitute (see below). + (mh-file-mime-type-substitute): Possibly change Content-Type + string using mh-file-mime-type-substitutions variable. This is + mostly because all MS-Office file are seen as application/msword + by the file command. + (mh-file-mime-type-substitutions): New variable. Defines + substitutions to make for Content-Type returned from file command. + +2002-09-27 Bill Wohler <wohler@newt.com> + + * README: Moved Id to end of file since it broke outline mode at + the beginning. + + * import-emacs (release): Renamed "mainline" tag to + "emacs-mainline" to correspond with existing CVS tag. + (EMACS_HOME): Fixed typo in docstring. + + * mh-utils.el (mh-folder-name-p, mh-defun-show-buffer): Lowercase + NIL and T in docstring. + (mh-update-scan-format): Fixed typo. + + * mh-comp.el, mh-e.el, mh-pick.el, mh-utils.el: Updated from CVS + Emacs. The only new thing appears to be to downcase NIL and T in + the documentation. + +2002-09-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-generate): The threading code will now be + more resistant to corruption of messages. Before the change any + corruption of message x would cause all messages with indices + higher than x to be neglected when threading! + +2002-09-23 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-store-mime-parts): Don't store value into + user-customizable variable mh-store-mime-parts-default-directory + and use mh-store-mime-parts-directory instead. + +2002-09-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-prune-subject): Use regular expressions to + make the subject pruning behave the way it is specified in the + imap-thread RFC. + + * mh-speed.el (mh-speed-folders-actual): Don't use pop when we + are not going to use the first element. This avoids a compilation + warning with cvs emacs. + +2002-09-19 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-display-msg): Put the call to + set-buffer-modified after mh-show-mode. This is needed for CVS + emacs since calling mh-show-mode marks the buffer as modified if + font-lock is on. + +2002-09-17 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-store-mime-parts-default-directory): Renamed from + mh-store-mime-parts-directory + (mh-store-mime-parts-directory): Renamed from + mh-store-mime-parts-directory-default. + +2002-09-16 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mail-citation-hook): Doc tweaks suggested by Bill. + +2002-09-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (autoloads): Reorder autoload of mh-reply to avoid + compiler warning. + +2002-09-03 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-store-mime-parts-directory): New defcustom. + Default directory to use for mh-store-mime-parts. + (mh-store-mime-parts): New Command. Store the MIME parts of the + current message. + (mh-store-mime-parts-directory-default): New internal working + variable. Default to use for mh-store-mime-parts-directory, set + from last use. + + * mh-e.el (mh-folder-seq-tool-bar-map): Add mh-store-mime-parts to + toolbar. + + +2002-08-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-generate-scan-lines): In threaded view, + complete scan lines are printed for all messages (not just the + ones at the top of a thread). + + * mh-index.el (mh-index-insert-scan): Replace use of kill-line + since that pollutes the kill-ring. + + * mh-comp.el (autoloads): Add autoloads for search and subseq to + get rid of compiler warnings. + +2002-08-19 Peter S Galbraith <psg@debian.org> + + * reply-to.xpm, reply-to.pbm, reply-from.xpm, reply-from.pbm, + * reply-all.xpm, reply-all.bpm: New icons for various reply methods. + * mh-e.el (mh-folder-tool-bar-map): Split reply button into three + that won't prompt for "from", "to" and "all". + * mh-comp.el (mh-reply): Put variable reply-to in the interactive + list since it's specified on the command line for the new toolbar. + + * mh-comp.el (mail-citation-hook): Tweak docs concerning + historical usage for supercite. + (mh-yank-from-start-of-msg): Add settings 'supercite and + 'autosupercite. Rename 'automatic to 'autoattrib. + (mh-insert-prefix-string): Invoke sc-cite-original if + mh-yank-from-start-of-msg is et to 'supercite or 'autosupercite. + +2002-08-17 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (compilation-fix): Reorder defvars to avoid warnings + during compilation. + +2002-08-17 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-yank-from-start-of-msg): Add 'automatic choice. + Do as for `attribution' automatically when show buffer matches the + message being replied-to. + (mh-reply): Call 'mh-yank-cur-msg when mh-yank-from-start-of-msg + is set to 'automatic and show buffer matches message number being + replied-to. + (mh-show-buffer-message-number): New helper function to get the + message number of the current show-buffer. + (mh-yank-cur-msg): Handle 'automatic choice the same as 'attribution. + (mh-yank-cur-msg): Bug fix. It would bail on error if + mh-show-buffer didn't exists. + +2002-08-16 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-x-mailer): It wrongly assumed that Emacs + was used even when XEmacs was used. Fixed so X-Mailer header is + more exact about what we are using. + +2002-08-15 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-version): Change CVS version number to 6.1+cvs just + so X-Mailer header is more exact about what we are using. + + * mh-mime.el (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp, + mh-mml-attach-file): + "Jeffrey P. Morgenthaler" <jpmorgen@congee.gsfc.nasa.go> reported + that "require" in emacs 20.3 doesn't handle 3 arguments. We + use "load" at the top of file elsewhere anyway to handle such a + case of non-essential loading, so switch to that here. + +2002-08-06 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-funcs.el (autoload): Add autoload for mh-speed-invalidate-map. + + * mh-speed.el (mh-speed-add-folder): New function to make the + speedbar aware of new folders when they are created by mh-e. + + * mh-utils.el (mh-prompt-for-folder): Use mh-speed-add-folder to + tell speedbar that new folder is being created. Also use folder + instead of mkdir to create new folders. + +2002-08-01 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-decode-quoted-printable): Conditionalize the + limit of search for quoted-printable. If we're using mm-decode + for MIME decoding, it's possible that `mimedecode' could mess our + message, so we only run a full search for quoted-printable parts + when not using gnus' mm-decode. When using mm-decode, mimedecode + can still help by handling the case of the whole message being + quoted-printable as opposed to only a part. + +2002-07-31 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-compose-insertion): Moved from mh-mime.el because + the pulldown menu were broken in XEmacs21 from this variable being + undefined. + +2002-07-28 Mark D. Baushke <mdb@gnu.org> + + * mh-utils.el (mh-show-mode): Use the default paragraph-start + rather than the inherited text-mode value. + +2002-07-28 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-duplicates): New hash table to track + duplicate messages. + (mh-thread-get-message): Remove debug code. + (mh-thread-canonicalize-id): Modified to handle messages without + message-id header. Such messages are given distinct copies of the + empty string as message-id. + (mh-thread-generate): The function was inadvertently rebuilding + the thread tree when message refiles and message deletes are + processed. The change here fixes that. Also code has been added to + keep track of duplicate message-id's. + (mh-thread-generate-scan-lines): Modified to print scan lines for + duplicate messages (that is messages with the same message-id). + (mh-thread-forget-message): Modified to maintain + mh-thread-duplicates. + +2002-07-22 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-parse-flists-output): Use delete-region + instead of kill-region. Otherwise the kill ring gets polluted. + +2002-07-16 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-thread-update-scan-line-map): New function to + refresh the stale scan lines. + (mh-thread-inc): Update old scan lines when mh-thread-inc is + called. Otherwise notations for deleted and refiled messages get + lost and the folder display gets out of sync with real mh-e state. + + * mh-mime.el (mh-mm-display-part): Call Gnus citation highlight + code when text part is displayed. Otherwise buttonized text parts + aren't correctly fontified when they are displayed. + +2002-07-15 Mark D. Baushke <mdb@gnu.org> + + * mh-utils.el (mm-decode): Use load for the Non-fatal depencency + on the mm-decode library. + * mh-mime.el (mm-decode, mm-uu, mm-view): Use load for the + Non-fatal depencencies on the mm-decode, mm-uu and mm-view + libraries. + +2002-07-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-require, mh-autoload): Remove these macros. + (mh-decode-mime): Initialized to t iff the mm-decode library is + present in the load-path. + * mh-mime.el (mh-require): Don't use it anymore. + +2002-07-15 Mark D Baushke <mdb@gnu.org> + + * mh-utils.el (mh-update-scan-format): Rewrite for compatibility + with Xemacs as replace-match appears not to have identical + functionality with FSF emacs. + (mh-scan-msg-format-regexp): Deleted. This regexp is now hardcoded + into the mh-update-scan-format function. + +2002-07-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el: Add message threading code. + + * mh-utils.el (mh-letter-thread-folder): New interactive function + that allows switching to threaded view from show buffer. + (mh-show-folder-map): Bound "F t" to call mh-letter-thread-folder. + (mh-goto-msg): Replace the function to not assume that messages + are sorted in the folder buffer. + + * mh-e.el (mh-folder-threaded-view-p): New buffer local variable + in the folder buffer that records whether threaded view is being + used currently. + (mh-scan-subject-regexp, mh-scan-format-regexp): Get font lock + working for threaded view as well. + (mh-regenerate-headers): Reset mh-folder-threaded-view-p to nil. + (mh-get-new-mail, mh-process-commands): Do incremental threading + if folder is in threaded view. + (mh-delete-scan-msgs): Update thread tables if folder is in + threaded view. + (mh-folder-map): Add "F t" as key binding for mh-thread-folder + + * mh-comp.el (mh-yank-cur-msg): Bug fix. mh-show-buffer is only + has a meaningful value in the folder buffer. + +2002-07-11 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-yank-cur-msg): Run only if mh-show-buffer + actually exists (otherwise a back-traceable error occurred). + + * mh-utils.el (mh-find-progs): Run PATH search only when mh-progs, + mh-lib and mh-lib-progs are not all already set. This allows the + user to set them using a simple setq prior to loading mh-e. This + is useful for implementation of mh-e on win32. Note that many + commands still call mh-find-path which also parses the mh_profile + file (that may still fail on win32), so this is still done often. + But it lets us change the mh_profile file and have mh-e see the + changed file without exiting emacs and starting over so I left + that in. + +2002-07-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-show): Fixed a bug in mh-index-show which + caused it to lose track of point when called from show buffer. + +2002-07-04 Mark D. Baushke <mdb@gnu.org> + + * Makefile: Add more information and common methods to allow both + GNU make and Berkeley make to properly build everything. + +2002-07-04 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-push-button): Bug fix for mime display with + mouse. Select show window before executing the mime display + functions. + +2002-07-01 Mark D. Baushke <mdb@gnu.org> + + * Makefile: Use a conditional variable assignment operator rather + than ifndef to let Makefile be used by both GNU make and Berkeley + make (or similar versions of make). This does not help Solaris + /usr/ccs/bin/make, but Solaris make has problems with the ifndef + syntax too. + +2002-07-01 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-search): Check for mh-decode-mime before + adding mh-mime-cleanup to kill-buffer-hook. + + * mh-mime.el (mm-destroy-parts): Add definition for old emacs. + +2002-06-30 Mark D Baushke <mdb@gnu.org> + + * mh-utils.el (mh-update-scan-format): Add documentation string. + (mh-scan-msg-format-regexp): Update the regexp to find %(msg). + (mh-set-cmd-note): When mh-scan-format-file is not t, dynamic + update of mh-cmd-note is wrong. Do not assume that + mh-scan-format-nmh and mh-scan-format-mh can be kept in lock-step + with mh-cmd-note via mh-set-cmd-note. The mh-scan-format function + is now where the updated mh-cmd-note value is put into the scan + format. + + * mh-e.el (mh-generate-new-cmd-note): Add documentation string. + (mh-scan-format): Use mh-update-scan-format to get updated copies + of mh-scan-format-nmh and mh-scan-format-mh to avoid format skew. + (mh-get-new-mail): Do not try to adapt mh-cmd-note unless + mh-scan-format-file is equal to t. + (mh-scan-format-nmh): No longer buffer local. + (mh-scan-format-mh): No longer buffer local. + +2002-06-30 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-max-msg-index): New variable to keep track + of max message index among search results. If mh-adaptive-cmd-note + is non-nil this is used to compute the width of the index field. + (mh-index-search): Keep track of max index seen while parsing the + search results and set it if mh-adaptive-cmd-note is non-nil. + (mh-index-find-max-width): New function to find the required width + of the message index field. + (mh-defun-index): Binding buffer local variables is bad, so don't + do that. + (mh-index-show): New argument display-headers-p decides whether + the message is displayed in raw form or not. + (mh-index-header-display): New interactive function bound to "," + which shows the message in raw form. + (mh-index-keymap): Add appropriate bindings for backtab and ",". + (read-from-string): Add ignore-errors around it so that the code + doesn't die when it gets unexpected input. + +2002-06-29 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-count-windows): This function works around the + lack of the window-list builtin function in emacs20. + +2002-06-29 Mark D Baushke <mdb@gnu.org> + + * mh-utils.el (mh-message-number-width): New function to scan + the last message of a folder and return its width. + (mh-adaptive-cmd-note): New variable, if Non-nil indicates that + mh-set-cmd-note should be called with the message width for the + folder. + (mh-cmd-note): Update documentation. + (mh-update-scan-format): Helper function for updating the + mh-scan-format-nmh and mh-scan-format-mh variables. + (mh-scan-msg-overflow-regexp): New variable to help find problem + messages after an inc. + (mh-scan-msg-format-regexp): New variable to find the old message + width in one of the mh-scan-format-nmh or mh-scan-format-mh + variables. + (mh-set-default-cmd-note): Replaced by mh-set-cmd-note. + (mh-set-cmd-note): New function to replace update mh-cmd-note + value. + + * mh-e.el (mh-regenerate-headers): If mh-adaptive-cmd-note is + non-nil, use mh-set-cmd-note on empty folder buffers. + (mh-make-folder): Ditto. + (mh-generate-new-cmd-note): New function to adapt the mh-cmd-note + to fit when mh-get-new-mail gets message number truncation. + (mh-get-new-mail): Maybe use mh-generate-new-cmd-note if + mh-adaptive-cmd-note is Non-nil. + +2002-06-29 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el (mh-speed-view): The display gets confused if the + cursor is in the show buffer when mh-speed-view is called. This is + a fix for that. + +2002-06-27 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-next-undeleted-msg): Get rid of optional arg + reverse-p. If there are no more undeleted messages the the point + remains at its original position and a message is produced (closes + SF #494304). + (mh-previous-undeleted-msg): Change similar to + mh-next-undeleted-msg. + (mh-next-msg, mh-refile-msg, mh-delete-msg): Backout previous + change. + (mh-folder-map): Bind "S-tab" and "K S-tab" to mh-prev-button. + + * mh-utils.el (mh-show-mode-map): Bind "S-tab" and "K S-tab" to + mh-letter-prev-button. + + * mh-mime.el (gnus-newsgroup-name): Initialize it to nil, so that + mm-uu-dissect doesn't cause error. + +2002-06-27 Mark D Baushke <mdb@gnu.org> + + * mh-utils.el (mh-cmd-note): Make buffer-local. Changes to this + variable should be made via the new mh-set-default-cmd-note + function. + (mh-set-default-cmd-note): New function to setq-default the + mh-cmd-note, mh-scan-format-mh and mh-scan-format-nmh values to + related values. + + * mh-e.el (mh-scan-format-mh): Make buffer-local. + (mh-scan-format-nmh): Ditto. + (mh-scan-good-msg-regexp): Use a more general regular expression + so that the width of message numbers, mh-cmd-note, may vary. + (mh-scan-deleted-msg-regexp): Ditto. + (mh-scan-refiled-msg-regexp): Ditto. + (mh-scan-cur-msg-number-regexp): Ditto. + (mh-scan-cur-msg-regexp): Ditto. + (mh-scan-subject-regexp): Ditto. + +2002-06-26 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-speed.el: Speedbar support code. + + * Makefile: Add mh-speed.el to MH-E-SRC. + + * mh-utils.el (mh-prompt-for-folder): Add speedbar hook if + speedbar is being used. + + * mh-funcs.el (mh-kill-folder): Add speedbar hook if speedbar is + being used. + + * mh-e.el (speedbar-autoloads): Autoload speedbar initialization + functions so that speedbar can find them. + +2002-06-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-grep-execute-search, mh-grep-next-result): Allow + grep to be used to search mail. + (mh-index-font-lock-keywords): Modified to avoid bug when using + lazy font-lock. + + * mh-e.el (mh-delete-msg, mh-refile-msg): Modify so that if no + undeleted (or unrefiled) message exists in the current movement + direction then try to find an undeleted (or unrefiled) message in + the opposite direction instead. + (mh-next-undeleted-msg): Added a new optional argument. If non-nil + search for undeleted message backwards if none exists in the + forward direction. + (mh-previous-undeleted-msg): Added an optional argument. If + non-nil search for undeleted message in the forward direction if + none exists in the backward direction. + (mh-next-msg): Optional argument to change direction if undeleted + messages are not found in the current direction. + + * mh-index.el (mh-cmd-note): Use mh-cmd-note instead of hardcoding + the index field size to 4. + + * mh-utils.el (mh-show-addr, mh-show-xface): New functions added + to do xface display and goto-addr interface to allow reuse by the + mime display code. + (mh-show-mode): Use mh-show-addr and mh-show-xface. Only add + mh-mime-cleanup to kill-buffer-hook if mime decoding is enabled. + (mh-modify): Use mh-letter-mode instead of mh-show-mode when + editing messages. + + * mh-mime.el (mh-mm-inline-message): Arrange for xface and + highlighting to work in forwarded messages. + +2002-06-23 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-yank-from-start-of-msg): Add 'attribution' option + to add an attribution line in mh-yank-cur-msg. + (mh-extract-from-attribution-verb): Verb to use for attribution + when a message is yanked by mh-yank-cur-msg. Provides a method + for setting a different language. + (mh-yank-cur-msg): Add support for 'attribution' option. + (mh-extract-from-attribution): Function to get the attribution + line, or the sender from the From: line in the current show buffer. + +2002-06-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-show): mh-display-msg was not being called + in the show buffer. This causes weird results on some mime messages. + + * mh-mime.el (gnus-newsgroup-charset): Defvar to avoid error in + pgp messages if gnus hasn't been used yet. + + * mh-comp.el (mh-letter-mode-map): Typo fix. + +2002-06-19 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-mml-secure-message-encrypt-pgpmime): Typo fix. + (compiler-warnings): Add autoloads to remove compiler warnings. + + * mh-index.el (autoload-fixes): Fix autoload forms. + +2002-06-18 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-letter-mode-map): Change binding of "\C-c\C-ma" + to mh-compose-insertion. Remove duplicate binding for "C-c\C-mf". + (compiler-warnings): Add defvar to remove compiler-warning. + +2002-06-18 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-menu): Conditionalize GPG function on + mh-gnus-pgp-support-p. + + * mh-mime.el (mh-mml-forward-message): s/subseq/substring/. + (mh-compose-forward): cut&paste typo: s/messages/message/. + (mml-minibuffer-read-file): autoload added. + (mml-minibuffer-read-description): autoload added. + (mml-insert-empty-tag): autoload added. + (mh-mml-secure-message-sign-pgpmime): Check mh-gnus-pgp-support-p. + (mh-mml-secure-message-encrypt-pgpmime): Check mh-gnus-pgp-support-p. + +2002-06-17 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-show-use-xface): Check for availability of + `uncompface' executable on system. + + * mh-mime.el (mh-compose-forward): New front end for both + mh-mml-forward-message and mh-mhn-compose-forw. + (mh-compose-insertion): New front end for both mh-mml-attach-file + and mh-mhn-compose-insertion. + (mh-mml-to-mime): New function. Compose mime message from mml + directives. + (mh-mml-forward-message): New function. Forward a message as + attachment. + (mh-mml-attach-file): New function. Attach a file to the outgoing + MIME message. + (mh-mml-compose-insert-p): New variable. Buffer-local variable to + know whether MIME insertion was done. Triggers an automatic call + to `mh-mml-to-mime' in `mh-send-letter'. + (mh-mml-secure-message-sign-pgpmime): New function. + Front end to mml-secure-message-sign-pgpmime. + (mh-mml-secure-message-encrypt-pgpmime): New function. + Front end to mml-secure-message-encrypt-pgpmime. + + * mh-comp.el (mh-send-letter): automatic call to `mh-mml-to-mime' + if mh-mml-compose-insert-p is set. + (mh-letter-mode-map): Add keys for new mh-mime functions above. + * mh-comp.el: Added autoloads for new mh-mime functions above. + +2002-06-17 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-show-use-xface): new defcustom to determine + whether to call external package x-face to display the x-face. + (mh-invisible-headers-show-xface): variable now defaults to value + of mh-show-use-xface. + (mh-show-mode): When mh-show-use-xface is t, invoke + external package x-face to display the x-face. + +2002-06-15 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-prev-button): New interactive function which moves + point to the previous mime button in the show buffer. + (mh-folder-mode-map): Bind M-TAB and K M-TAB to mh-prev-button. + + * mh-utils.el (mh-show-mode-map): Bind M-TAB and K M-TAB to call + mh-letter-prev-button (which is analogous to mh-prev-button). + (mh-gnus-pgp-support-p): New global variable to replace the + variable mh-recent-gnus-p. The name better describes what it is + used for. + + * mh-mime.el (mh-mime-display-part, mh-mime-display-single): Use + mh-gnus-pgp-support-p instead of mh-recent-gnus-p. + +2002-06-12 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-display-buttons-for-inline-parts): New + customizable variable. When non-nil inline parts have are + displayed with a button (that is initially expanded). + (mh-maybe-insert-newline): The function has been removed. + (mh-mime-display-single): Add code to display buttons for inline + parts. Reduce the insertion of extra newlines between inline parts + and also for pgp signature parts. + (mh-mm-display-part): The function has been rewritten and cleaned + up. There was a bug which could change the show buffer if the user + pressed C-g while a mime part was being displayed has been fixed. + (mh-press-button, mh-push-button): Use unwind-protect to make sure + that set-buffer-modified-p is always called after mime display. + (mh-mime-inline-part): The behavior of the function has been + changed so that it toggles the display of the raw bytes. + (mh-mime-display-security): Remove the display of too many + newlines. + (documentation): Remove most check-doc warnings. + + * mh-comp.el (mh-filter-out-non-text): Updated since whitespace + added around mime buttons have changed. + +2002-06-10 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-index.el (mh-index-last-search, mh-index-search): The default + prompt in mh-index-search has been removed since currently there + is no good way of reading "+" with mh-prompt-for-folder. + (mh-index-folder-mode, mh-index-show-mode): New major modes + derived from mh-folder-mode and mh-show-mode respectively. They + use a restricted keymap compared to the parent modes. + (mh-index-folder-face): New customizable face to display folder + names in the index buffer. + (documentation): Change two spaces after period back to one. + +2002-06-08 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-folder-toggle-mime-part): New interactive function + to control mime display from folder buffer. + (mh-folder-inline-mime-part): New interactive function to inline + raw mime part from folder buffer. + (mh-folder-save-mime-part): New interactive function to save mime + part from folder buffer. + (mh-folder-mode-map): Add keybindings for "K v", "K o", "K i" and + "K \t" to mh-folder-mode-map. + (mh-goto-next-button): Modified to allow searching for next button + that satisfies some condition. + (mh-folder-mime-action): Support function for + mh-folder-save-mime-part, mh-folder-inline-mime-part and + mh-folder-toggle-mime-part. + + * mh-utils.el (mh-show-mode-map): Modify keymap to add appropriate + bindings for "K v", "K o", "K i" and "K \t". + + * mh-index.el (documentation): Fix docs according to checkdoc + format. + +2002-06-07 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el, mh-funcs.el (Compiler): Remove (require 'view) and + instead add defvar for view-exit-action. + +2002-06-06 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (mh-insert-x-face): If transient-mark-mode is enabled + the call to mark returns error. So avoid using mark. + + * mh-index.el: Support for new interactive function + mh-index-search. + + * mh-e.el (mh-next-button, mh-goto-next-button): Refactor + mh-next-button so that the code may be reused by mh-index.el. + (mh-folder-map): Add key "F i" to call mh-index-search. + + * mh-utils.el (mh-recent-gnus-p): Fix documentation. + (mh-msg-folder, mh-display-msg): The new function mh-msg-folder + maps a MH folder name to the buffer displaying it. In normal + operation the two names are identical but they are different in a + folder buffer generated by index search. Minor modification to + mh-display-msg to use mh-msg-folder to enable mh-index-search to + reuse code. + (mh-show-mode-map): Add key "F i" to call mh-index-search. + + * Makefile: Add mh-index.el + +2002-06-05 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-message-menu): Add an entry for mh-modify. + +2002-05-31 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-decode-quoted-printable): Only decode if the + whole message is encoded. So restrict the search for the + content-transfer-encoding header to the headers of the message + itself. + + * mh-mime.el (mh-mime-display-alternative): Make sure that point + is moved after mm-display-part is called. + +2002-05-29 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (mh-mime-display-single): Fix the logic that + determines when an attachment is buttonized. For inline parts that + can't be displayed a button is now created. + +2002-05-29 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-regenerate-headers): Fix an error in which the + mh-mode-line-annotation was not being set properly. + + * mh-mime.el, mh-utils.el (compilation): Macros mh-require and + mh-autoload are used to make sure that emacs20 doesn't croak when + it tries to load non-existent mm-* files. + (mh-decode-mime): Make it default to nil for Emacs major version + below 21. + +2002-05-28 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-e.el (mh-regenerate-headers): Generalize the function to + handle multiple ranges. + +2002-05-25 Satyaki Das <satyaki@theforce.stanford.edu> + + * compilation: Reduce use of eval-when-compile so that load-path + is not changed if lisp files are loaded without compilation. Small + changes were made to Makefile, mh-comp.el mh-e.el, mh-funcs.el, + mh-seq.el, mh-utils.el + + * mh-e.el (mh-next-button, mh-folder-mode-map): New interactive + function to advance point to next MIME button. It is bound to TAB. + + * mh-utils.el (mh-letter-next-button, mh-show-mode-map): New + interactive function mh-letter-next-button has been added to + advance point to the next MIME button. It is bound to TAB. + + * mh-mime.el (comments): Added some comments. + +2002-05-24 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-mime.el (compilation): Replace (eval-when-compile ...) by + (eval-when (compile) ...) to remove a bug when mh-e is loaded + without compilation. + +2002-05-23 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-comp.el (compilation): Some code was rearranged to avoid + compiler warnings. + + * mh-e.el (compilation): Code rearrangement and extra autoloads to + remove compiler warnings + (mh-quit): Add call to mh-destroy-postponed-handles to remove + handles that are associated with external viewers. Also fixed a + bug that I accidentally introduced by adding an extra line when + cut and pasting my changes. + + * mh-func.el (compilation): Code rearrangement to remove compiler + warnings. + + * mh-mime.el (compilation): Code rearrangement to remove compiler + warnings. + (mh-defun-compat): New macro to define to useful functions that + aren't present present in old Gnus. + (mh-destroy-postponed-handles): New function to cleanup handles + that are associated with external viewers. + (mh-handle-set-external-undisplayer): New function to replace + mm-handle-set-external-undisplayer. It associates handles for + external viewers with the folder buffer. These are released when + the user quits the folder. + (mh-mime-display, mh-press-button, mh-push-button): Hook in + mh-handle-set-external-undisplayer. + (mh-maybe-insert-newline): New function to avoid inserting too + many newlines between mime parts. + (mh-mm-display-part): Workaround for Gnus bug which causes new + lines to be inserted when images are shown inline. + (mh-mime-display-security): Cut down on newlines inserted. + + * mh-pick.el (compilation): Code rearrangement to remove compiler + warnings. + + * mh-seq.el (compilation): Code rearrangement to remove compiler + warnings. + (comments): Remove @SD from comments. + + * mh-utils.el (compilation): Slight code rearrangement. + (mh-defun-show-buffer): Fix documentation so that the first line + is not too long as was the case earlier. Use + mh-previous-window-config to remember where the cursor should + return functions like mh-reply. + (mh-display-msg): Initialize handles data-structure for the folder + buffer so that postponed handles can be added to it. + (mh-add-msgs-to-seq): Always keep messages in the sequences + sorted. This removes some unexpected behavior when working with + sequences that go out of sync with the corresponding MH sequences. + (mh-canonicalize-sequence): New function to sort and remove + duplicates from mh-e sequence. + +2002-05-21 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (require): Load mm-decode.el here so that + mm-inline-media-tests is properly initialized. + + * mh-comp.el (mh-yank-cur-msg): Don't try to remove the displayed + mime parts when yanking the message. This also fixes the problem + of regions not being respected during the yank. + +2002-05-20 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (compiler-warnings): Some code was rearranged to + remove all compiler warnings. + (mh-decode-mime): New defcustom to control whether + mime attachments are shown using Gnus. + (mh-globals-hash): New global variable which maps a given buffer + to the corresponding mime data structures. + (mh-recent-gnus-p): New global variable which checks if Gnus is + recent enough so that PGP/GPG encrypted messages can be handled. + (mh-mm-inline-media-tests): Tests to determine whether a mime part + can be shown inline. + (mh-gnus-article-highlight-citation): Shadow the Gnus function, + gnus-article-add-button before gnus-article-highlight-citation is + called. This prevents the insertion of useless buttons in the + message. + (mh-show-mode): Don't set font-lock-support-mode to nil. Modify + kill-buffer-hook to call mh-mime-cleanup. + (mh-modify): Only the edit buffer is shown. + (mh-display-msg): Add call to mh-mime-display, mh-display-smileys, + mh-display-emphasis when mh-decode-mime is non-nil. + + * mh-mime.el (mh-buffer-data): New structure to keep track of + per-buffer mime information. + (compiler-warnings): Some code was rearranged to get rid of all + compiler warnings. + (mh-graphical-smileys-p): New defcustom which controls whether + graphical smileys are shown. + (mh-graphical-emphasis-p): New defcustom for graphical emphasis. + (mh-max-inline-image-width, mh-max-inline-image-height): New + defcustoms for inlining image. + (gnus-local-map-property, mm-merge-handles): Copy utility + functions for use with version of Gnus that ships with Emacs21.1. + (mh-mime-cleanup): New function to free mime data-structures. + (mh-add-missing-mime-version-header): New function to add missing + Mime-Version header if a Content-Type header exists. + (mh-display-smileys): New function to show graphical smileys. + (mh-display-emphasis): New function to show graphical emphasis. + (new-globals): New variables mh-mime-button-* and + mh-mime-security-* were added to control mime buttons. + (mh-mime-display): New function to display mime messages. The + functions mh-mime-display-part, mh-mime-display-alternative, + mh-mime-display-mixed, mh-mime-part-index, mh-small-image-p, + mh-mime-display-single, mh-insert-mime-button, mh-mm-display-part, + mh-press-button, mh-push-button, mh-mime-save-part, + mh-mime-inline-part, mh-widget-press-button, mh-mm-inline-message, + mh-mime-display-security, mh-mime-security-show-details, + mh-mime-security-press-button and mh-insert-mime-security-button + were added to support mh-mime-display. + + * mh-e.el (mh-header-display): Bind mh-decode-mime to nil when + mh-show-msg is called, so that mime isn't decoded when headers are + displayed. + (mh-quit): The show buffer is killed instead of invalidating and + burying it. + + * mh-comp.el (mh-yank-cur-msg): Filter out the mime buttons from + the yanked message. + (mh-filter-out-non-text): New function to filter out attachments + from message being yanked. + +2002-05-20 Bill Wohler <Bill.Wohler@openwave.com> + + * mh-utils.el (mh-invisible-headers-show-xface): First sentence of + docstring was not entirely on first line so was truncated in + customize and help buffers. Reworded so first sentence could fit + within 80 columns per checkdoc recommendation. + (mh-defun-show-buffer): Reworded per checkdoc recommendations. + Removed @SD while I was in there. + +2002-05-18 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-seq.el (mh-narrow-to-seq): This function now removes the + current message notation in the folder. Otherwise, two current + message notations may be present after mh-widen is called. Also + mh-copy-seq-to-eob is called instead of mh-copy-seq-to-point since + the latter has a bug. + (mh-copy-seq-to-point): This function has a tricky problem. It + calls mh-map-to-seq-msgs which uses mh-goto-msg. mh-goto-msg + assumes that the folder is sorted (since it uses binary + search). The assumption isn't true, so it may not copy all the + messages. Since this function is not used any more it has been + removed. + (mh-copy-seq-to-eob): This function is a specialized (and + hopefully correct) replacement for mh-copy-seq-to-point. + +2002-05-17 Satyaki Das <satyaki@theforce.stanford.edu> + + * mh-utils.el (mh-gnus-article-highlight-citation): Workaround for + problem caused by low value of recursive-load-depth-limit in + Emacs21.1 and CVS version of Gnus. + (mh-show-mode-map): New keymap variable to facilitate use of + summary commands from the show buffer. + (mh-show-folder-buffer): New local variable which keeps track of + the folder-buffer corresponding to the message being shown. + (mh-defun-show-buffer): New macro to convert interactive functions + callable in the summary buffer to interactive functions callable + in the show buffer. + (mh-show-mode): Make buffer read-only and use mh-show-mode-map as + keymap (closes SF #527946). + (mh-modify): New interactive function to edit a message in-place. + + * mh-e.el (mh-goto-cur-msg): Add an optional argument, + minimal-changes-p. If non-nil, the function will just change + the point to current message and do not change folder display. + (mh-folder-mode-map): Make "M" call mh-modify. + +2002-05-07 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-invisible-headers-show-xface): New defcustom + variable. If non-nil, the X-Face header line will be excluded from + the variable `mh-invisible-headers'. Set this when using a + package such as x-face-el to display X-Face icons in mh-show-mode. + This variable's setting will eventually be set automatically when + mh-e does its own X-Face decoding (or this variable will be replaced + by one telling mh-e to decode the X-Face). We may not ship the + next release with this variable. + +2002-05-07 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-x-face-file): New defcustom variable. File name + containing the encoded X-Face string to insert in outgoing mail. + (mh-insert-x-face): New function. Appends an X-Face field to the + header, but only if it doesn't already exist and if 'mh-x-face-file' + is non-nil and points to an existing file. + (mh-send-letter): Invoke mh-insert-x-face. + +2002-04-29 Mike Kupfer <m.kupfer@acm.org> + + * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Check + whether XEmacs region is actually active (needed at least for 21.1). + [Patch committed by psg] + +2002-04-29 Mike Kupfer <m.kupfer@acm.org> + + * mh-utils.el (mh-prompt-for-folder): Remove "default" argument + from completing-read as XEmacs-21.1 doesn't have it (21.4 does + however) and using the argument adds no functionality. + [Patch committed by psg] + +2002-04-11 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Add support for + XEmacs to act on selected region when active. + +2002-04-10 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): XEmacs fix; Add + check to see if mark-active is bound, because Mandrake Linux include + XEmacs initialization code that binds transient-mark-mode. This + fix gets around a problem in Mandrake only. It wasn't a problem + on XEmacs generally. Fixes SF #541915. + +2002-04-08 Bill Wohler <wohler@newt.com> + + Released mh-e version 6.1. + + * mh-e.el (mh-folder-unseen-seq-name): Use "mhparam -component + Unseen-Sequence" command and "Unseen-Sequence: \\(.*\\)$" regexp + to increase robustness. + (mh-folder-unseen-seq-list): Use `expand-file-name' as + `mh-expand-file-name' isn't needed and the former saves function + call. + (Version, mh-version): Updated for release 6.1. + +2002-04-08 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-unseen-seq-list): Specify mh-progs path in + call to mark command. Fixes a bug in which unseen messages + weren't highlighted if "mark" wasn't in the path. + +2002-04-07 Bill Wohler <wohler@newt.com> + + * MH-E-NEWS: Updated for release 6.1. + + * README: Updated for release 6.1. Updated verbiage about reading + MH-E-NEWS. + + * mh-comp.el, mh-e.el, mh-funcs.el, mh-mime.el, mh-seq.el, + mh-utils.el, mh-xemacs-compat.el: Updated copyright in files + modified this year. + + * mh-xemacs-compat.el: Put Author field back in, but set to FSF. + + * mh-comp.el, mh-funcs.el, mh-mime.el, mh-seq.el, + mh-utils.el: Fixed all checkdoc errors, except for no + documentation, and documentation in comments. Also removed the- + prefix from certain local variables. + + * mh-e.el: Fixed all checkdoc errors, except for no documentation, + and documentation in comments. Also removed the- prefix from + certain local variables. + (mh-folder-unseen-seq-name): Refactored to make default sequence + name more explicit and to handle undefined Unseen-Sequence MH + profile entry better. + +2002-04-02 Peter S Galbraith <psg@debian.org> + + * mh-e.el: 'defvar mh-folder-unseen-seq-name' called a function to + set it's value, and this happens also on byte-compilation (where + it can fail if the user's MH environment is not setup correctly). + I now set the value of mh-folder-unseen-seq-name at runtime when I + first need it. This should fix Debian bugs + http://bugs.debian.org/140232 and http://bugs.debian.org/140817 + +2002-03-25 Peter S Galbraith <psg@debian.org> + + * mh-utils.el: remove "(require 'mh-e)" since mh-utils.el should + be at the bottom of the dependency tree. + * mh-e.el (mh-folder-unseen-seq-name): Make sure mh-progs is set + and use it as path to mhparam command in call-process. + +2002-01-23 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-font-lock-keywords): Add call to + mh-folder-font-lock-unseen to fontify unseen messages in bold. + (mh-folder-unseen-seq-name): Provide name of unseen sequence from + mhparam. Used as default for variable of same name. + (mh-folder-unseen-seq-list): Returns a list of unseen messages + numbers for current folder. + (mh-folder-unseen-seq-cache): Cache variable to hold list of + unseen message numbers while font-lock iterates. This variable is + buffer-local. + (mh-folder-font-lock-unseen): Returns unseen message lines to + font-lock one by one. + +2002-01-15 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-prefix-string): Wrap a + "(let ((zmacs-regions nil))" around (mark) so it works in XEmacs. + Bug reported and fix suggested by Will Partain <partain@dcs.gla.ac.uk> + Indeed, this is how it appears in XEmacs-21's mh-comp.el. + +2001-12-16 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-forward): Move the assignment to `fwd-msg-file' + to before the assignment to `draft' as the later changes buffers + and invalidates `mh-seq-list' (which is used in a function called + by (mh-seq-to-msgs)). Resolves SF #489448. + + * mh-utils.el: Add defcustoms for `mh-temp-folders-buffer' and + `mh-temp-sequences-buffer'. + + * mh-e.el (mh-quit): If they exist, kill 'mh-temp-buffer, + 'mh-temp-folders-buffer and 'mh-temp-sequences-buffer when + quitting. + + * mh-funcs.el (mh-list-folders): Use `mh-temp-folders-buffer' + (a defcustom initialized to "*Folders*") for folder listing. Put + into view mode and set it up to kill the buffer when exiting view + mode. + + * mh-seq.el (mh-list-sequences): Use `mh-temp-sequences-buffer' + (a defcustom initialized to "*Sequences") for sequences listing. + Put into view mode and set it up to kill the buffer when exiting + view mode. + +2001-12-16 Bill Wohler <wohler@newt.com> + + Released mh-e version 6.0. + + * MH-E-NEWS: Be a little more specific about incompatible changes. + Added info about outdated manual. + Removed variables in mh-scan regexp table that did not exist in + 5.0.2. + Added helpful documentation about finding relevant variables + containing regexps to mh-scan-format-file's description. + + * mh-e.el (mh-scan-format-file): Added information about getting a + list of regexp variables that you'll need to change if you + customize your scan's output. + (mh-folder-mode): Added documentation about `mh-scan-format-file' + for those users who modify their scan formats. + + * README: New file. Describes packages and provides simple + installation instructions. + + * Makefile (clean, dist, install-emacs): Replaced $(RM) with rm + -rf (closes SF #488661). + +2001-12-14 Bill Wohler <wohler@newt.com> + + Released mh-e version 5.0.93. + + * Makefile (MH-E-SRC): Added mh-xemacs-compat.el. + (MH-E-IMG): Added .pbm images for all. Removed mail_ prefix from + all. + (MH-E-IMG2): New variable to hold images in mail sub-directory. + (dist): Updated target to make mail sub-directory and copy + MH-E-IMG2 images there. + + * mh-xemacs-compat.el: Modified docs per GNU coding conventions. + + * mh-e.el: Reorganized variables having to do with the scan line. + Moved some random variables that were interspersed out of the + middle. Moved `mh-scan-format-file' first and let the variables + flow from there. + + As the number of variables increases, it is becoming important to + organize the mh-e namespace. Several variables having to do with + the format of scan lines were renamed, as follows: + (mh-good-msg-regexp): Renamed to mh-scan-good-msg-regexp. + (mh-deleted-msg-regexp): Renamed to mh-scan-deleted-msg-regexp. + (mh-refiled-msg-regexp): Renamed to mh-scan-refiled-msg-regexp. + (mh-valid-scan-line): Renamed to mh-scan-valid-regexp. + (mh-cur-msg-number-regexp): Renamed to mh-scan-cur-msg-number-regexp. + (mh-cur-msg-line-regexp): Renamed to mh-scan-cur-msg-regexp. + (mh-scan-rcpt-addr-regexp): Renamed to mh-scan-rcpt-regexp. + (mh-scan.font-lock-regexp): Renamed to mh-scan-format-regexp. + (mh-folder-scan-font-lock-face): Renamed to + mh-folder-scan-format-face. + (mh-folder-cur-msg-line-face): Renamed to mh-folder-cur-msg-face). + +2001-12-13 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-msg-number-regexp): Renamed to + mh-scan-msg-number-regexp. + (mh-msg-search-regexp): Renamed to mh-scan-msg-search-regexp. + + * Corrected typos, quoted variables in doc strings, and made minor + wording changes in docs. + +2001-12-13 Peter S Galbraith <psg@debian.org> + + * mh-xemacs-compat.el: defalias 'match-string-no-properties to + 'match-string for XEmacs. I've seen a better function for this + that actually removes text properties, but this will do for now. + + * mh-utils.el (mh-decode-quoted-printable): deactivate-mark not + bound in XEmacs. + + * mh-xemacs-compat.el: GNU Emacs Functions needed by XEmacs. + New file. + * mh-e.el: (require 'mh-xemacs-compat) when running XEmacs. + +2001-12-12 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-send-letter): function local-variable-p needs two + arguments in XEmacs. + (mh-send-letter): sendmail-coding-system not bound in XEmacs. + (mh-send-letter): default-buffer-file-coding-system not bound in + Xemacs. + + * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): + transient-mark-mode not bound in XEmacs. The feature of + operations made on all messages in the selected range when + transient-mark-mode is on doesn't work in XEmacs. + + * mh-e.el, mh-utils.el: Conditionalize calls to + 'add-to-list 'facemenu-unlisted-faces for XEmacs. + +2001-12-11 Jeffrey C Honig <jch@honig.net> + + * mh-e.el (mh-scan-format): Add `mh-scan-format-file' variable to + specify the scan format string or file to use. Define formats for + MH and nmh that are compatible with the standard format, but + provide hints for font-lock. Define (mh-scan-format) for use by + (mh-regenerate-headers) and (mh-get-new-mail) to specify the args + necessary to inform the scan program which scan format string or + file to use. + +2001-12-07 Peter S Galbraith <psg@debian.org> + + * mh-e.el (scan.font-lock): New format file documented in comments. + (mh-scan.font-lock-regexp): Adapted to new format. + (mh-folder-font-lock-keywords): Use new format. + + * mh-e.el (page-down.xpm): Icon renamed from nextpage. + + * mh-utils.el (mh-decode-quoted-printable): Bug fix. Better check + on what actually is a quoted-printable attachment. + +2001-12-06 Eric Ding <ericding@alum.mit.edu> + + * mh-mime.el (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp): + require mailcap.el here rather than using autoload at top of + mh-mime. + (mh-file-mime-type): get rid of unused variables (why were they + there to begin with?) + +2001-12-06 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-cur-msg-number-regexp, mh-cur-msg-line-regexp): + mh-cur-scan-msg-regexp splits into these two variables. + The whole-line fontification is disabled, but easily restored by a + user (although it could be a defcustom with choices DISABLED or + the correct regexp?) + (mh-folder-cur-msg-line-face): mh-folder-current-msg-face renamed + to this. + (mh-folder-cur-msg-number-face): mh-folder-current-face renamed to + this. + + * cabinet.xpm: Revert to rescan icon name. + * mh-e.el (mh-folder-tool-bar-map): s/cabinet/rescan/ + + * mh-e.el (mh-folder-font-lock-keywords): Reorder and tweak such + that current message line highlight doesn't mess up other highlights. + +2001-12-05 Eric Ding <ericding@alum.mit.edu> + + * mh-utils.el (mh-show-from-face): Change mh-show-from-face to + cyan on dark backgrounds; through a series of changes, it had + become the same color as mh-show-subject-face! + +2001-12-05 Bill Wohler <Bill.Wohler@openwave.com> + + * mh-e.el, mh-utils.el: Fixed typos in face definitions, and made + a couple of small doc string tweaks while I was in there. Peter, + if you don't agree, let me know and I'll back them out. I thought + the "mh-e" in the text was redundant since the variables start + with "mh"; I was also thinking ahead to how the documentation may + read. + +2001-12-05 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-cur-scan-msg-regexp): Match 0 is the whole line. + (mh-folder-current-msg-face): New face with only a background + settings, used in font-lock for the current message. + (mh-folder-font-lock-keywords): Use mh-folder-current-msg-face for + mh-cur-scan-msg-regexp. + + * mh-utils.el (mh-show-from-face): Use red3 instead of red for + light backgrounds. It's not as bright on the eyes. + (mh-show-subject-face): copy from mh-folder-subject-face instead. + Makes the look consistent with folder-mode. + + * mh-e.el (mh-folder-subject-face): Moved to mh-utils since we + need it to copy to mh-show-subject-face. + +2001-12-05 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-folder-mode-map): Moved `mh-extract-rejected-mail' + from "a" to "E". Better mnemonic, nicer to folks used to using a + for `mh-reply'. + +2001-12-04 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-folder-map): Added "S" for `mh-sort-folder'. + +2001-12-04 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-subject-face et al.): Yet another attempt at + colours for folder-mode. Still themed, but fewer and darker + colours (Blame Eric this time!). I'll get to underlining tomorrow + night. + + * mh-e.el (mh-folder-tool-bar-map): Renamed all icons so they + don't have the word mail in them. Also generated a pbm format of + each icon for users without XPM support conpiled into Emacs. + +2001-12-04 Eric Ding <ericding@alum.mit.edu> + + * mh-utils.el (mh-show-font-lock-keywords): Use + mh-header-subject-font-lock instead of regexp for subject headers, + which may go multiple lines. + (mh-header-subject-font-lock): New function. + Fix typos (hightlight -> highlight). + +2001-12-04 Eric Ding <ericding@alum.mit.edu> + + * mh-e.el: changes to face colors on dark backgrounds. + (mh-folder-followup-face): change to LightGoldenRod. + (mh-folder-date-face): change to snow3. + (mh-folder-msg-number-face): change to snow4. + +2001-12-04 Bill Wohler <wohler@newt.com> + + Released mh-e version 5.0.92. + + * mh-utils.el (gnus-cite-face-list) + (mh-gnus-article-highlight-citation): Don't autoload. Revert to + requiring in `mh-gnus-article-highlight-citation' as before. With + the autoloads, if you ran mh-e before gnus, you'd get an undefined + gnus variable when viewing an article in gnus. Go figure. + +2001-12-03 Bill Wohler <wohler@newt.com> + + Released mh-e version 5.0.91. + + * MH-E-NEWS: Removed info about bumping up `max-specpdl-size' now + that workaround has been implemented. + + * Makefile (MH-E-OBJ): New variable to hold .elc files. + (all): Just compile. + (clean): New target that blows away MH-E-OBJ. + (dist): Added $(MH-E-OBJ) to tarball. + + + Attempt to quiet compilation errors to a dull roar. + + * mh-e.el: Require easymenu, added autoload of info. + (mh-smail, mh-smail-other-window): Comment says these were needed + by Emacs 18. Out! + + * mh-utils.el: Don't require sendmail, but require mh-e. + Moved autoloads to top of file, and autoload gnus-cite and + sendmail too. + + * mh-pick.el: Require easymenu. Remove cond on + `easy-menu-define'--it exists. + + * mh-mime.el: Autoload mailcap. + + * mh-comp.el: Require mh-e and easymenu, moved autoloads to top of + file. + + + * Makefile: (EMACS): New constant to hold emacs calling sequence. + (install): Renamed to install-emacs. + (compile): New target to compile all files. + (dist): Make dependent on compile. + (import): Renamed to import-emacs. + (%.elc): New implicit rule to compile elisp files. + + * mh-e.el (mh-thread-map): Added "Td" for + mh-delete-subject-thread. + +2001-12-03 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-tool-bar-map): Change tooltip for exec icon. + + * mh-e.el (mh-folder-subject-face): Change to IndianRed1. + (mh-folder-followup-face): Change to IndianRed. + (mh-folder-deleted-face): Use sedate face instead of bright one. + +2001-12-03 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-invisible-headers): Increase size of + `max-specpdl-size' locally to work around insufficient default. + (mh-invisible-headers): Added X-Info and X-VSMLoop (NTMail). + +2001-12-03 Jeffrey C Honig <jch@honig.net> + + * mh-utils.el (mh-find-progs): Searches should not stop if the + strings are not found, there is error detection at the end of the + routine (closes SF #488231). + +2001-12-02 Bill Wohler <wohler@newt.com> + + * MH-E-NEWS: Added info about bumping up `max-specpdl-size'. + + * Makefile (MH-E-IMG): New variable that contains images used by + mh-e. Add these files to release. + + * MH-E-NEWS: Second draft of mh-e 6.0 (was 5.1) release notes. + + * mh-e.el (mh-folder-updated-hook): Reworded to avoid ambiguity. + Is the hook called when you type `d' or when you type `x'? + (mh-unseen-updated-hook): Reworded to be consistent with + `mh-folder-updated-hook.' + + * mh-utils.el (mh-recenter): Accepted Gerd's change which is + evaluated at compile time. + +2001-12-02 Bill Wohler <wohler@newt.com> + + * mh-e.el Major, major keymap changes. The specific changes are + listed below, but view the sources, or use "C-h m" in MH Folder + mode for the complete list. + + Use of sub-keymaps inspired by gnus. The changes tripped me up at + first too, but after about 5 minutes of shock (which is to be + expected, I've been using the old keybindings for 16 years), I + honestly found the new bindings to be nice indeed. It will also + provide flexibility to allow for future functionality. I hate to + do this on the eve of the beta release, but you asked for it! It's + likely I'll have to pull an Eric and back this change out, but if + we can live with pink subjects, this can't be so bad ;-). + Question: will the users revolt? If they do, I suppose we can + release 6.0.1 the next day ;-). + (mh-folder-map, mh-sequence-map, mh-extract-map, mh-digest-map): + New keymaps which start with F, S, X, and D, respectively. The + mhstore commands can go in the mh-extract-map eventually. + (mh-thread-map): Renamed from mh-folder-thread-map. + + Keymap changes and rationale. The sub-keymaps allowed some + consistency (e.g., esp. with l(ist) and k(ill). + + e Deleted. Already have x. Now used by mh-edit-again. + a Deleted. Already have r. Now used by mh-extract-rej.. + j Deleted. Already have g. + + M-a -> e Better mnemonic. Matches rmail. Frees movement cmd. + M-e -> a Try `a'gain! + + M-f -> Fv Frees movement command + M-f -> Ff Alias (keep?) + M-f -> Fo Alias (keep?) + M-k -> Fk No reason but to keep with folder commands + M-l -> Fl No reason but to keep with folder commands + M-p -> Fp No reason but to keep with folder commands + M-r -> Fr Frees movement command + M-s -> Fs No reason but to keep with folder commands + M-u -> Fu No reason but to keep with folder commands + + M-% -> Sd Better mnemonic + M-# -> Sk Better mnemonic + M-q -> Sl Better mnemonic + C-xn -> Sn Frees up standard key binding + % -> Sp Better mnemonic for putting a message in a sequence + ? -> Ss Shows sequences that message is in + C-xw -> Sw Frees up standard key binding + + M-n -> Xs Better mnemonic (shar) + M-n -> Xu Better mnemonic (uuencode) + + M-SPC -> DSPC Frees mark command + M-\177 -> D\177 No reason but to keep with digest commands + M-b -> Db Frees movement command + +2001-12-01 Bill Wohler <wohler@newt.com> + + * mh-e.el: Use gnus style of keymaps. Now requires gnus-util. + (mh-folder-thread-map): New map, created by gnus-define-keys. + Reached when typing T in mh-folder-mode-map. Moved threading + functions to this new keymap so we can use dired again. + (mh-folder-mode-map): Defined by gnus-define-keys. Otherwise than + the new threading functions, no changes to the UI were made at + this point--saving that for the next check-in. + + * mh-pick.el (mh-pick-mode-map): Use gnus-define-keys. Now + requires gnus-util. + + * mh-comp.el (mh-letter-mode-map): Use gnus-define-keys. Now + requires gnus-util. + +2001-12-01 Jeffrey C Honig <jch@honig.net> + + * mh-e.el: Update the documentation for the regexps used by + `mh-folder-font-lock-keywords' to specify how many parethesized + expressions they are expected to have and what those expressions + are expected to match. + +2001-12-01 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-folder-mode): Removed iteration of key bindings, + \\{mh-folder-mode-map} suffices. Removed variable documentation + also as this is already out of date and a maintenance hassle. + Reference new mh customization group instead. + + * mh-comp.el (mh-letter-mode): Ditto. Also added new information + about MIME directives getting processed automatically if inserted + via mh-e commands. + + * mh-pick.el (mh-pick-mode): Edited documentation so it reads like + the other modes. + + * mh-e.el (mh-compat-quit): Deleted obsolete and unused function. + Comment in this function said that `b' shouldn't be used for + burst-digest, as it is used for `back' in info, less, and rn. But + what does `back' mean in MH Folder? I suppose if you visit a + folder, you would go `back' to the original folder. Hmmm, I guess + we'll leave the `b' binding alone for now. + + * mh-utils.el: Moved some of the variable comments to the first + column so they wouldn't wrap in such an ugly fashion. + (mh-showing-mode): Renamed variable and function from mh-showing + to conform with minor mode conventions. Added optional arg to + function so it would behave like a normal minor mode: no or nil + arg toggles mode, 0 arg turns off, non-nil turns on. It also turns + out that desktop-create-buffer would barf when recreating mh-e + buffers because it was calling mh-show with an arg. + (mh-show-mode): Use define-derived-mode to simplify definition a + *lot*. + (mh-set-mode-name): Deprecated by use of define-derived-mode. + Removed. + + * mh-pick.el (mh-pick-mode): Use define-derived-mode to simplify + definition a *lot*. + + * mh-e.el (mh-scan-prog): Removed message about "Buffer local" as + this message will appear in a future version of Emacs. + (mh-inc-folder): mh-showing renamed to mh-show-mode and made a + real minor mode. + (mh-folder-mode): Use define-derived-mode to simplify definition a + *lot*. + + * import-emacs (release): Change `(none)' to `mainline' so import + doesn't choke after running `cvs up -A' on Emacs. + (COPYING): Moved from $EMACS_HOME/etc to $EMACS_HOME. + (cvs update): Whoops! Forgot the second join (-jemacs). + make import works fine again. + +2001-11-30 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-font-lock-keywords): Change order of + font-lock patterns such that subject body text doesn't get date + fontification. + + * mh-e.el (mh-scan-subject-regexp): Bug fix. Remove a dot. + scan.font-lock users have to setq it separately. + +2001-11-30 Eric Ding <ericding@alum.mit.edu> + + * mh-utils.el (mh-clean-msg-header): Go back to using + mh-delete-line. Using invisible text property is nicer in some + ways, but winds up with somewhat mysterious behavior should user + kill/yank stuff from the header (i.e., text gets yanked invisibly + and won't be seen by user until file is reloaded). + +2001-11-29 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-page-msg): Use mh-next-direction to page in the + right direction. + +2001-11-29 Jeffrey C Honig <jch@honig.net> + + * mh-e.el (mh-scan-folder): Fix logic to not attempt to go to + the current message if there are no messages in the folder. + +2001-11-29 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-font-lock-subject): New fontifier function + for subject lines in folder-mode + (mh-scan-followup-regexp): Deleted obsolete regexp. Use + mh-scan-subject-regexp instead. + (mh-folder-font-lock-keywords): Use mh-folder-font-lock-subject + instead of obsolete mh-scan-followup-regexp variable. + (mh-folder-date-face, mh-folder-msg-number-face): + (mh-folder-subject-face, mh-folder-followup-face): + Now defined as proper faces instead of copied from font-lock + faces. + + * mh-mime.el (mh-media-type-regexp): New variable. Regexp matching + valid media types used in MIME attachment compositions. + (mh-file-mime-type): Use mh-media-type-regexp instead of + hard-wiring its value. + + * mh-utils.el (mh-show-unquote-From): New function to unquote + "^>From" in mh-show-mode (not saved to disk). + (mh-show-mode): Call mh-show-unquote-From. + +2001-11-29 Eric Ding <ericding@alum.mit.edu> + + * mh-utils.el (mh-clean-msg-header): Use mh-make-line-invisible + rather than mh-delete-line. + (mh-make-line-invisible): New function to make line(s) invisible + rather than deleting line(s). Optional argument specifies number + of lines to delete. + (mh-show-msg): screen-height has been deprecated; use no more. + (mh-notate): screen-width has been deprecated; use no more. + +2001-11-29 Jeffrey C Honig <jch@honig.net> + + * mh-utils.el: (mh-find-progs): Change mh-find-progs to rely on + the existence of mhparam. The location of mhparam is used to find + `mh-progs'. It uses the libdir and etcdir to find the + `mh-lib-progs' and `mh-lib' directories. If etcdir doesn't return + anything we assume `mh-lib-progs' is the same as `mh-lib' and that + we are using MH instead of nmh. + +2001-11-29 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-scan.font-lock-regexp): Change docs to reflect that + second paren expression is the user match. + (mh-folder-font-lock-keywords): Change from 1st to 2nd parenthesized + expression to match user name, after Jeffrey's change to the regexps. + +2001-11-29 Bill Wohler <Bill.Wohler@openwave.com> + + * mh-utils.el (mh-clean-message-header): Default is now t. + (mh-invisible-headers): Padded out to contain all the headers that + the mh-e developers don't like to see (closes SF #415759). + +2001-11-28 Bill Wohler <Bill.Wohler@openwave.com> + + * mh-comp.el (mh-rejected-letter-start): Added MIME MDN. While + this allows mh-extract-rejected-mail to strip the start of the + MDN, there is still a closing MIME marker at the end. This should + be cleaned up eventually. + +2001-11-28 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-seq-tool-bar-map): New tool-bar used for + folder-mode when narrowed to sequence. + * mh-seq.el (mh-narrow-to-seq): Set tool-bar to + mh-folder-seq-tool-bar-map. + (mh-widen): Set tool-bar to mh-folder-tool-bar-map. + * widen.xpm: New icon used in mh-folder-seq-tool-bar-map. + + * mh-mime.el (mh-file-mime-type): Much better check on validity of + 'file' output. + + * mh-e.el (mh-scan-subject-regexp): New regexp variable for + subject string in folder mode. Used to extract subject sequence, + and will be used for font-lock soon. + * mh-seq.el (mh-subject-thread-to-sequence): More robust code by + using mh-scan-subject-regexp, allows users with non-standard + scan format to use subject sequences. + + * mh-comp.el (mh-letter-fill-column): Fill column to use in + mh-letter-mode. (Yes, I'm doing this in spite of what Bill said; + Someone can always undo it later) + (mh-letter-mode): setq fill-column to mh-letter-fill-column. + +2001-11-28 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-page-msg): The first time the end of page is hit, + set mh-page-to-next-msg-p to t. The second time the end of page is + hit, go to the next message. + + * mh-utils.el: (mh-show-msg): Initialize mh-page-to-next-msg-p to + nil. + +2001-11-27 Bill Wohler <wohler@newt.com> + + * mh-mime.el (mh-mime-content-types): Updated list of types to + contain types used by mh-e developers, but not including types not + listed in + http://www.isi.edu/in-notes/iana/assignments/media-types/media-types. + +2001-11-27 Peter S Galbraith <psg@debian.org> + + * mh-seq.el (mh-subject-thread-to-sequence) New function placing + all messages with similar subject line into a sequence named + 'subject. + (mh-narrow-to-subject-thread): New command to narrow to all + messages with similar subject line into a sequence named 'subject. + (mh-toggle-subject-thread): New command to toggle between a new + 'subject sequence or the wide view of a folder. + (mh-delete-subject-thread): New command to delete all following + messages with similar subject lines (leaving preceeding ones + untouched). + (mh-next-unseen-subject-thread): New command to create and move to + a new subject thread created from the next unseen message as a + starting point. + * mh-e.el (mh-folder-message-menu): New menu entries for subject + threads. + (mh-folder-mode-map): New keybindings for subject threads. + (mh-lessp): New function to sort messages. + + * mh-utils.el (mh-show-font-lock-keywords): and various + faces... scoped within eval-after-load "font-lock" to avoid + requiring font-lock to use its faces. + * mh-e.el (mh-folder-font-lock-keywords): Same. + +2001-11-27 Jeffrey C Honig <jch@honig.net> + + * mh-mime.el (mh-file-mime-type): Use mh-temp-buffer instead of + " *mh-temp". + + * mh-comp.el (mh-insert-x-mailer): Kill mh-temp-buffer after use. + +2001-11-26 Eric Ding <ericding@alum.mit.edu> + + * mh-utils.el: revert to using external mimedecode to decode + MIME quoted-printable parts + +2001-11-26 Jeffrey C Honig <jch@honig.net> + + * mh-e.el (mh-process-commands): Added mh-folder-updated-hook. + * mh-e.el (mh-update-unseen): Added mh-unseen-updated-hook. + +2001-11-26 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-file-mime-type): Make sure output from file + command is known to mailcap file, otherwise prompt the user. + (mh-mime-content-types): Add "image/png" type. + + * mh-e.el (mh-folder-font-lock-keywords): Use a bunch of new + mh-folder-*-face faces. + * mh-utils.el (mh-show-font-lock-keywords): Use a bunch of new + mh-show-*-face faces. + + * mh-utils.el (mh-letter-header-font-lock): Bug fix. Fix infinite + loop in emacs20 font-locking. + (mh-header-field-font-lock): Preventive fix with similar change. + + * mh-comp.el (mh-reply-show-message-p): Typo. diplayed -> displayed. + * MH-E-NEWS: Same. + + * mh-e.el (mh-folder-tool-bar-map): Bug fix. I had + mh-repack-folder instead of mh-pack-folder. + +2001-11-26 Bill Wohler <wohler@phone.com> + + * mh-e.el: + Updated header for consistency and to conform with (elisp)Library + Headers. + (mh-do-not-confirm): Updated documentation string to reflect + reality (e.g., is no longer used by mh-kill-folder and is used by + more functions than just mh-undo-folder). + (mh-page-msg): Now shows the next undeleted message if looking at the + bottom of the current message. + (mh-process-or-undo-commands): Fixed indentation. + + * mh-mime.el: + (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp): If MIME type + cannot be determined with file command, use mailcap-mime-types (if + available) to provide list for completing read. + + * MH-E-NEWS: First draft of mh-e 5.1 release notes. + +2001-11-26 Eric Ding <ericding@alum.mit.edu> + + * mh-utils.el (mh-decode-quoted-printable): Implement + quoted-printable decoding in elisp (starting with code copied + from FLIM). + (mh-decode-quoted-printable-region): Move (require 'hexl) outside + while loop. + (mh-decode-quoted-printable): give user a choice between using + internal code or external program to decode quoted-printable + content. Resurrect code that calls external mimedecode program. + +2001-11-25 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-highlight-citation-p): New variable to determine + whether to hightlight citations in message body with gnus, + font-lock or not at all. + (mh-show-font-lock-keywords): removed citations from keywords. + (mh-show-font-lock-keywords-with-cite): New variable, equivalent + to prior mh-show-font-lock-keywords. + (mh-gnus-article-highlight-citation): hook into gnus for + multi-level citation highlighting. + (mh-show-mode): Use either mh-show-font-lock-keywords or + mh-show-font-lock-keywords-with-cite, depending on value of + mh-highlight-citation-p, and possibly call + mh-gnus-article-highlight-citation. + * mh-comp.el (mh-letter-mode): Same as for mh-show-mode above. + +2001-11-25 Jeffrey C Honig <jch@honig.net> + + * mh-comp.el (mh-redistribute): Added mh-redist-background + variable to cause mh-redistribute to run the redist command in the + background. This causes the transaction log to be visible, like + with send. + +2001-11-25 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-inc-folder): 'inc' finishes by displaying the first + new message if already showing messages. + +2001-11-22 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-prompt-for-folder): Exit with error if no folder + specified, otherwise mh-refile-msg may try to create a folder with + empty name, and this creates problems; even mh-undo can't handle + it (Closes SF #476824). + + * mh-comp.el (mh-letter-tool-bar-map): Info button needed to + require 'info. Also tweaked help texts. + (mh-letter-menu): Use headline capitalization (Closes SF #483203). + * mh-e.el (mh-folder-tool-bar-map): Same as above. + (mh-folder-folder-menu, mh-folder-message-menu): + (mh-folder-sequence-menu): Same as above. + * mh-pick.el (mh-pick-menu): Same as above. + +2001-11-21 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-reply-show-message-p): The setting of this + variable determines whether the MH show-buffer is diplayed with + the current message when using mh-reply without a prefix argument. + Set it to nil if you already include the message automatically in + your draft using "repl: -filter repl.filter" in your ~/.mh_profile + file. + (mh-reply): Don't show message in other window if + mh-reply-show-message-p is nil. + + * mh-e.el (mh-folder-tool-bar-map): Add mail_exec.xpm icon for + mh-execute-commands. + + * mh-utils.el (mh-show-mouse): New function to click on a message + in folder-mode and show that message. + * mh-e.el (mh-folder-mode-map): Bind mh-show-mouse to mouse-2. + + * mh-e.el (mh-page-msg): Show buffer first if not displayed, + instead of simply complaining there's no other window. + + * mh-e.el (mh-folder-tool-bar-map): New tool-bar for folder mode! + (mh-folder-mode): Setup tool-bar. + + * mh-mime.el (mh-have-file-command): try to non-fatally load + executable.el because emacs20 doesn't autoload it. + * mh-utils.el (load "executable" t t): Idem. + + * mh-utils.el (mh-clean-msg-header): Bug fix. locally bind + after-change-functions to nil, working around a strange font-lock + bug in emacs20 when (add-hook 'mh-show-mode-hook 'turn-on-font-lock) + was used. + + * mh-comp.el (require 'sendmail): Moved from mh-comp.el to + mh-utils.el because it is needed in reading mail too. + (mh-header-field-end, mh-in-header-p): Moved to mh-utils.el + because they are needed by mh-show-mode's font-lock code. + Unfortunately, this splits the field related code into two files. + Perhaps it should all go into mh-utils? + +2001-11-20 Eric Ding <ericding@alum.mit.edu> + + * mh-utils.el (mh-show-from-face): Fix typo in defface + +2001-11-20 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-mail-header-separator): Set to -------- as + defined by MH (components, and replcomps files). This variable + cannot be a regexp since it is used as an argument to insert and + is passed through regexp-quote before being used. The previous + value broke a lot of code, including mailcrypt. + + * mh-comp.el (mh-letter-mode, mh-send-letter): Insert X-Mailer + header field from mh-send-letter. + (mh-edit-again, mh-extract-rejected-mail): Call + mh-insert-header-separator to ensure that there is a separator. + Packages such as mailcrypt depend on it. + (mh-insert-header-separator): New function to insert + mh-mail-header-separator if it doesn't exist. + +2001-11-20 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-mode): Make font-lock-defaults a local variable + * mh-e.el (mh-folder-mode): Same. + * mh-utils.el (mh-show-mode): Same. + + * mh-e.el (mh-scan-msg-num-regexp): Delete variable and replace + with mh-good-msg-regexp. + + * mh-utils.el (mh-mail-header-separator): Bug fix. Moved from + mh-comp.el to mh-utils.el (which mh-comp.el loads). + + * mh-comp.el (mh-in-header-p): Recycle sendmail.el code (as + suggested by Bill). + * mh-utils.el (mh-letter-header-font-lock): Use mh-in-header-p. + + * mh-comp.el (mh-letter-tool-bar-map): tool-bar customize button goes + to customizing mh-compose group. + + * mh-utils.el (mh-show-mode): font-lock bug fix. Locally set + font-lock-support-mode to nil. + (mh-letter-header-font-lock, mh-header-field-font-lock): font-lock + bug fix. Don't return match beyond font-lock search limit. + + * mh-comp.el (mh-letter-mode): Emacs20 bug fix. tool-bar-mode is + not a bound variable. + +2001-11-19 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-tool-bar-map): tool-bar help button goes + to 'Draft Editing' info node. + + * mh-utils.el (mh-show-from-face, mh-show-to-face): New faces used + for font-lock. + (mh-header-to-font-lock, mh-header-cc-font-lock) + (mh-header-field-font-lock): New helper function returning whole + header field arguments to font-lock. + (mh-show-font-lock-keywords): Heavily modified using the above. + + * mh-e.el (mh-scan-msg-num-regexp): Regexp matching the message + number in scan lines. + (mh-scan-date-regexp): Regexp matching a valid date in scan lines. + (mh-scan-rcpt-addr-regexp): Regexp specifying the recipient in + scan lines for messages we sent. + (mh-scan-followup-regexp): Regexp matching a followup subject + line, starting with Re: + (mh-scan-body-regexp): + Regexp matching the message body beginning displayed in scan lines. + (mh-scan.font-lock-regexp): Regexp matching output of the the + optional scan.font-lock format file. + (mh-folder-font-lock-keywords): New font-lock for folder-mode that + uses the above regexps. + +2001-11-19 chad <y@mit.edu> + + * mh-comp.el (mh-letter-tool-bar-map): made both references to + mh-letter-tool-bar-map conditional on tool-bar-mode, instead of + just one. + +2001-11-19 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mh-position-on-field): Move to the end of the header + if the field is not present. This function was documented to do + this, but wasn't doing so. + (mh-insert-x-mailer): Simplified by using existing + mh-goto-header-field and mh-insert-fields functions. Now that + mh-insert-fields is used to insert X-Mailer header field, no + longer need to include X-Mailer in mh-x-mailer-string. + +2001-11-18 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-tool-bar-map): New version of + mh-letter-mode tool-bar. Changed order of buttons; made customize + and info buttons specific to mh-e. + + * mh-e.el (mh-folder-font-lock-keywords): New font-lock regexp + uses variables mh-deleted-msg-regexp, mh-refiled-msg-regexp and + mh-cur-scan-msg-regexp, so will better adapt to non-default scan + formats. Also, lines marked for refiling are now fontified. + +2001-11-18 Bill Wohler <wohler@newt.com> + + * mh-utils.el (mh-show-mode): Added local variable + mail-header-separator which is initialized to + mh-mail-header-separator. + + * mh-comp.el (mh-mail-header-separator): Updated to include ^$. + Needed when running mh-edit-again, since by then the separator is + gone. Added documentation saying one should use + mail-header-separator and initialize it from + mh-mail-header-separator. + (mh-forward): Initialize mail-header-separator since + mh-letter-mode hasn't kicked in yet (which does initialize + mail-header-separator). + (mh-letter-mode): Initialize mail-header-separator from + mh-mail-header-separator, not hard-coded string. + + * mh-comp.el (mh-insert-x-mailer-p): New variable to control + whether X-Mailer string is inserted. Default: t. + (mh-x-mailer-string): New variable that caches actual X-Mailer + string. + (mh-letter-mode): Call mh-insert-x-mailer if mh-insert-x-mailer-p + is t. + (mh-insert-x-mailer): New function that inserts X-Mailer header + field. + +2001-11-17 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-letter-header-font-lock): New function to return + the entire mail header to font-lock for sedate font-locking. + (mh-show-font-lock-keywords): Modified to fontify whole lines and use + mh-letter-header-font-lock above to fontify whole header. + +2001-11-17 Bill Wohler <wohler@newt.com> + + * mh-comp.el (mail-header-separator): Added ^ and $ to make more + specific. + (mh-forward, mh-letter-mode): Replaced hard-coded string with + mail-header-separator. + +2001-11-16 Bill Wohler <wohler@newt.com> + + * mh-e.el (mh-e-RCS-id): Renamed to mh-version. + (mh-version): The variable: Set to a number instead of Id since + the Id didn't have the mh-e version number, and both Emacs and + gnus do it this way too. + (mh-version): The function: Fixed for nmh. Now displays mh-e + version correctly. Cleaned up output and display mh-progs, etc. + (Closes SF #405620.) + +2001-11-15 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-tool-bar-map): New tool-bar support for + mh-letter-mode in emacs21. Uses icons from gnus/message.el. + * mh-comp.el (mh-letter-mode): Add buffer-local binding of + tool-bar-map to mh-letter-tool-bar-map. + +2001-11-15 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-have-file-command): Add check for existence of + executable-find command, which Jeffrey didn't exist in emacs-20.4. + * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): same + as above. + * mh-mime.el (mh-file-mime-type): Bug Fix. Some versions of + 'file' output a string like "file: Using regular magic file..." + to stderr, so discard stderr when using call-process with 'file'. + +2001-11-14 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-have-file-command): Check if 'file' command on + system accepts arguments -i -b before accepting it for our use. + +2001-11-14 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-find-progs): Use expand-file-name instead of + concatenating together strings into a path. + +2001-11-14 Peter S Galbraith <psg@debian.org> + + * mh-e.el (mh-folder-sequence-menu): Enable mh-widen in sequence + menu only when mh-narrowed-to-seq is t. + +2001-11-14 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-have-file-command): Use 'executable-find' instead + of more complicated and error-prone call-process to which command. + * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): Same + change as above. + +2001-11-14 Jeffrey C Honig <jch@honig.net> + + * mh-e.el (mh-make-folder-mode-line): Bug fix. Properly deal with + folders that do not have any lines in them. Print "no msgs" + instead of "0 msgs". Do not try to print a range when there are + no messages. + * mh-e.el (mh-regenerate-headers): Bug fix. Catch and remove the + "scan: band message list" message. + +2001-11-13 Jeffrey C Honig <jch@honig.net> + + * mh-utils.el (mh-find-progs): Bug fix. Add "mh/etc" to the + subdirectories to search for "components". On BSD/OS, nmh is in + "/usr/contrib/mh/*". + +2001-11-13 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-mode): Bug fix. Load mh-mime before + setting mh-mhn-compose-insert-p (when looking at a "forw: -mime" + message containing a MIME composition) such that the variable is + properly declared as buffer-local. + +2001-11-12 Bill Wohler <wohler@newt.com> + + * mh-funcs.el (mh-print-msg): mhl is in the mh-lib-progs + directory, not mh-lib (closes SF #481128). + +2001-11-12 Peter S Galbraith <psg@debian.org> + + * mh-seq.el (mh-widen): Bug fix (closes SF #481036). + In a sequence with pending deletes and refiles, running mh-widen + would wipe out their notations, even though the sequences are still + defined. Fixed by calling a new function, + mh-notate-deleted-and-refiled. Also changed the coping of + mh-goto-msg-num since it didn't work consistently. + * mh-seq.el (mh-notate-deleted-and-refiled): New functions written + to fix above mh-widen bug. It's a first cut, we may want to clear + all notations first, and notate the current-message sequence and + user sequences. Time will tell. + +2001-11-12 Peter S Galbraith <psg@debian.org> + + * mh-seq.el (mh-widen): Make it attempt to stay on the same + message number (closes SF bug #480922). + +2001-11-11 Bill Wohler <wohler@newt.com> + + * import-emacs: New shell script to import Emacs changes to mh-e. + + * Makefile (import): New target to import Emacs changes. + +2001-11-09 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-file-mime-type): Bug fix. Change regexp to + extract mime type from 'file -i' command output. + +2001-11-08 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-update-sequences-after-mh-show): + New customizable variable telling whether to run + mh-update-sequences in mh-show-mode. Default is t. + * mh-utils.el (mh-show-msg): Run mh-update-sequences when + mh-update-sequences-after-mh-show is set. + +2001-11-08 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): + New variable telling whether command 'mimedecode' is on system. + (http://www.freesoft.org/CIE/FAQ/mimedeco.c) + * mh-utils.el (mh-decode-quoted-printable): + New customizable variable telling whether to run mimedecode on + MIME message containing quoted-printable parts. mimedecode will + only alter quoted-printable parts , leaving others intact, and the + resulting message is still fully MIME. + * mh-utils.el (mh-decode-quoted-printable): New function to run + mimedecode on the current buffer. + * mh-utils.el (mh-display-msg): Conditionnaly call + mh-decode-quoted-printable function if mh-decode-quoted-printable + variable is set, to view messages containing quoted-printable + characters into 8-bit. + +2001-11-08 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-mode): Set mh-mhn-compose-insert-p if + looking at a "forw: -mime" message containing a MIME composition. + * mh-mime.el (mh-file-mime-type): Bug fix. Failed on files like + "~/.mh_profile" because of shell construct. Wrapped filename with + expand-file-name. + * mh-comp.el (mh-letter-mode-map): C-cC-o keybinding in + mh-letter-mode-map for mh-open-line. + +2001-11-07 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-open-line): New user function to split open a line + when editing a reply with included text. + * mh-comp.el (mh-current-fill-prefix): New function used by + mh-open-line to get the fill-prefix on the current line. + * mh-comp.el: Add mh-open-line to mh-letter-mode menubar. + +2001-11-06 Peter S Galbraith <psg@debian.org> + + * mh-seq.el (mh-region-to-sequence): New function, creating a + sequence named 'region containing the message list in the selected + region. + * mh-e.el (mh-delete-msg): Mark messages in region for deletion if + mark is active and in transient-mark-mode. + * mh-e.el (mh-refile-msg): Mark messages in region for refiling if + mark is active and in transient-mark-mode. + * mh-e.el (mh-undo): Undo message marks for refile or deletion if + region if mark is active and in transient-mark-mode. + +2001-11-06 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-letter-mode): Use sendmail.el's fill-paragraph. + Copy its settings for paragraph-start, paragraph-separate, + fill-paragraph-function, adaptive-fill-regexp and + adaptive-fill-first-line-regexp. This make M-q (fill-paragraph) + work correctly! + +2001-11-05 Peter S Galbraith <psg@debian.org> + + * mh-funcs.el (mh-kill-folder): Remove mh-do-not-confirm condition + and always prompt the user for such a drastic step. Also change + the prompt a bit to clarify it. + +2001-11-04 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-mhn-compose-insert-p): New buffer-local variable + to tell when a MIME insertion was done in a letter. + * mh-mime.el (mh-mhn-compose-type): Set mh-mhn-compose-insert-p. + * mh-mime.el (mh-mhn-compose-external-type): + Set mh-mhn-compose-insert-p. + * mh-mime.el (mh-mhn-compose-forw): Set mh-mhn-compose-insert-p. + * mh-mime.el (mh-edit-mhn): Clear mh-mhn-compose-insert-p. + * mh-comp.el (mh-send-letter): Run mh-edit-mhn when + mh-mhn-compose-insert-p is set. + +2001-11-03 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-have-file-command): new function testing whether + file command is on the system. + * mh-mime.el (mh-file-mime-type): new function returning MIME type + from file command. + * mh-mime.el (mh-mhn-compose-insertion): Make use of + mh-file-mime-type function instead of prompting. + +2001-10-30 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-show-use-goto-addr): defcustom this new + variable, determining whether to call goto-addr in mh-show-mode. + * mh-utils.el (mh-show-mode): Call goto-address when + mh-show-use-goto-addr is t. + +2001-10-25 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-recenter): Clarify docs and change '(t) to + (list 4) to match elisp doc on what C-u prefix argument actually is. + +2001-10-23 Peter S Galbraith <psg@debian.org> + + * mh-utils.el (mh-summary-height): In my quest to make mh-e more + useful out-of-the-box for new users, set mh-summary-height to a + minimum of 4 and a maximum of 10 depending on frame height. I + typically have 70 lines in my Emacs frame, so having a default of + 4 was silly for my case. + * mh-e.el (mh-update-sequences): Check for nil value of + mh-current-folder, which happens if mh-summary-height < 4 + although I haven't tracked doen why that happens. + +2001-10-22 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-insert-fields): Test for nil value when inserting + field. + +2001-10-20 Peter S Galbraith <psg@debian.org> + + * mh-comp.el (mh-user-agent-compose): Merged-in from XEmacs-21.4 source + * mh-comp.el (mh-letter-mode): Add easy-menu-add statement for XEmacs21 + * mh-pick.el (mh-pick-mode): Add easy-menu-add statement for XEmacs21. + * mh-e.el (mh-folder-mode): Add easy-menu-add statements for XEmacs21. + * mh-utils.el: defalias 'screen-height to 'frame-height for XEmacs21. + +2001-10-19 Peter S Galbraith <psg@debian.org> + + * mh-mime.el (mh-edit-mhn): Use mhbuild in nmh context. + * mh-utils.el (mh-find-progs): The variable mh-nmh-p (t when nmh + is in use rather than MH) was set assuming that the string "nmh" + will be in mh-lib-progs or mh-lib. This failed on Debian systems. + Better to check for the existence of mhbuild in directory mh-progs. + (closes SF bug #441776) + +2001-10-18 Peter S Galbraith <psg@debian.org> + + * mh-e.el: Add menubar entry from contrib/mh-menubar.el + * mh-comp.el: Add menubar entry from contrib/mh-menubar.el + * mh-pick.el: Add menubar entry from contrib/mh-menubar.el + +2001-07-30 Peter S Galbraith <psg@debian.org> + + * mh-e.el: Change font-lock patterns for folders. + Fontify scan.font-lock patterns (which will be documented) + and fontify subject lines prefixed with "Re:" differently. + * mh-comp.el (mh-letter-mode): Add font-lock support as in + mh-show-mode. + +2001-04-14 chad brown <y@mit.edu> + + Rearrange the font-lock keywords a bit. + +2001-04-12 chad brown <y@mit.edu> + + Preliminary (somewhat boring) font-lock support for mh-e. More + interesting font-lock support probably wants to have better + support for multiple format files + +2001-02-24 chad brown <y@mit.edu> + + Add default nmh paths to mh-find-prog in mh-utils.el. + change to mh-kill-folder in mh-funcs.el to make it more general. + +2001-02-19 Bill Wohler <wohler@newt.com> + + * Makefile (EMACS): Renamed to EMACS_HOME. Also, don't define if + EMACS_HOME already exists to give developer a chance to set + environment variable. + (install): $MH-E-SRC is copied to $(EMACS_HOME)/lisp/mail, not + $(EMACS_HOME)/src. + (dist): Leave release in current directory. + + + Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + +;; arch-tag: 2577172b-b1bf-4d87-acfb-c9d8780e8851
--- a/lisp/mh-e/mh-alias.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-alias.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,7 +1,7 @@ ;;; mh-alias.el --- MH-E mail alias completion and expansion ;; ;; Copyright (C) 1994, 1995, 1996, 1997, -;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Peter S. Galbraith <psg@debian.org> ;; Maintainer: Bill Wohler <wohler@newt.com>
--- a/lisp/mh-e/mh-comp.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-comp.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,7 +1,7 @@ ;;; mh-comp.el --- MH-E functions for composing messages ;; Copyright (C) 1993, 1995, 1997, -;; 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> @@ -979,11 +979,13 @@ (setq data-begin (match-end 0)) (setq field (match-string 1))) (setq data-begin (max point data-begin)) - (if (and field (mh-letter-skipped-header-field-p field)) - (set-match-data nil) - (set-match-data (list data-begin data-end data-begin data-end))) (goto-char (if (equal point data-end) (1+ data-end) data-end)) - t))) + (cond ((and field (mh-letter-skipped-header-field-p field)) + (set-match-data nil) + nil) + (t (set-match-data + (list data-begin data-end data-begin data-end)) + t))))) (defun mh-letter-header-end () "Find the end of the message header. @@ -1243,8 +1245,12 @@ (value (cdar entry-list))) (cond ((equal ":identity" field) - (when (and (not mh-identity-local) - (assoc value mh-identity-list)) + (when ;;(and (not mh-identity-local) + ;; Bug 1204506. But do we need to be able + ;; to set an identity manually that won't be + ;; overridden by mh-insert-auto-fields? + (assoc value mh-identity-list) + ;;) (mh-insert-identity value))) (t (mh-modify-header-field field value @@ -1424,10 +1430,10 @@ and point after it." (interactive (list (mh-prompt-for-folder "Message from" mh-sent-from-folder nil) - (read-input (concat "Message number" - (if (numberp mh-sent-from-msg) - (format " (default %d): " mh-sent-from-msg) - ": "))) + (read-string (concat "Message number" + (if (numberp mh-sent-from-msg) + (format " (default %d): " mh-sent-from-msg) + ": "))) current-prefix-arg)) (save-restriction (narrow-to-region (point) (point))
--- a/lisp/mh-e/mh-customize.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-customize.el Sat Oct 15 00:26:05 2005 +0000 @@ -88,15 +88,16 @@ If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in the frame are removed." (interactive "P") - (customize-group 'mh) + (customize-group 'mh-e) (when delete-other-windows-flag (delete-other-windows))) ;;; For compiler warnings... -(defvar mh-show-buffer) -(defvar mh-show-folder-buffer) +(eval-when-compile + (defvar mh-show-buffer) + (defvar mh-show-folder-buffer)) ;;; MH-E Customization Groups @@ -301,8 +302,8 @@ an address in the minibuffer briefly, but does not display a warning if the alias is not found." :type '(choice (const :tag "Flash but Don't Warn If No Alias" t) - (const :tag "Flash and Warn If No Alias" 1) - (const :tag "Don't Flash Nor Warn If No Alias" nil)) + (const :tag "Flash and Warn If No Alias" 1) + (const :tag "Don't Flash Nor Warn If No Alias" nil)) :group 'mh-alias) (defcustom mh-alias-insert-file nil @@ -1214,6 +1215,7 @@ "Prev-Resent" ; MH "Priority:" "Received:" ; RFC 822 + "Received-SPF:" ; Gmail "References:" "Remailed-" ; MH "Replied:" ; MH @@ -1246,10 +1248,11 @@ "X-Envelope-From:" "X-Envelope-Sender:" "X-Envelope-To:" - "X-Evolution:" ; Evolution mail client + "X-Evolution:" ; Evolution mail client "X-Face:" "X-Folder:" ; Spam "X-From-Line" + "X-Gmail-" ; Gmail "X-Gnus-Mail-Source:" ; gnus "X-Greylist:" ; milter-greylist-1.2.1 "X-Habeas-SWE-1:" ; Spam @@ -1274,7 +1277,7 @@ "X-MIME-Autoconverted:" ; sendmail "X-MIMETrack:" "X-Mms-" ; T-Mobile pictures - "X-MS-" ; MS Outlook + "X-MS-" ; MS Outlook "X-MailScanner" ; ListProc(tm) by CREN "X-Mailing-List:" ; Unknown mailing list managers "X-Mailman-Version:" ; Mailman mailing list manager @@ -1894,6 +1897,7 @@ for y in letter-docs collect `(const :tag ,y ,x))))))) +(mh-image-load-path) (mh-tool-bar-define ((:folder mh-inc-folder mh-mime-save-parts mh-previous-undeleted-msg mh-page-msg mh-next-undeleted-msg mh-delete-msg mh-refile-msg
--- a/lisp/mh-e/mh-e.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-e.el Sat Oct 15 00:26:05 2005 +0000 @@ -6,7 +6,7 @@ ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> -;; Version: 7.84 +;; Version: 7.84+cvs ;; Keywords: mail ;; This file is part of GNU Emacs. @@ -98,7 +98,7 @@ (defvar font-lock-auto-fontify) (defvar font-lock-defaults) -(defconst mh-version "7.84" "Version number of MH-E.") +(defconst mh-version "7.84+cvs" "Version number of MH-E.") (defvar mh-partial-folder-mode-line-annotation "select" "Annotation when displaying part of a folder. @@ -778,7 +778,7 @@ (if (mh-in-show-buffer (mh-show-buffer) (pos-visible-in-window-p (point-max))) (progn - (message + (message "End of message (Type %s to read %s undeleted message)" (single-key-description last-input-event) (if (equal mh-next-direction 'backward) @@ -1667,8 +1667,10 @@ (mh-visit-folder desktop-buffer-name) (current-buffer)) -(add-to-list 'desktop-buffer-mode-handlers - '(mh-folder-mode . mh-restore-desktop-buffer)) +;;; 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))) (defun mh-scan-folder (folder range &optional dont-exec-pending) "Scan the FOLDER over the RANGE.
--- a/lisp/mh-e/mh-funcs.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-funcs.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,7 +1,7 @@ ;;; mh-funcs.el --- MH-E functions not everyone will use right away ;; Copyright (C) 1993, 1995, -;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com>
--- a/lisp/mh-e/mh-identity.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-identity.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,6 +1,6 @@ ;;; mh-identity.el --- Multiple identify support for MH-E. -;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Peter S. Galbraith <psg@debian.org> ;; Maintainer: Bill Wohler <wohler@newt.com>
--- a/lisp/mh-e/mh-init.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-init.el Sat Oct 15 00:26:05 2005 +0000 @@ -41,6 +41,9 @@ (mh-require-cl) (require 'mh-utils) +;;; 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 @@ -170,7 +173,7 @@ "*List of directories to search for variants of the MH variant. The directories will be searched for `mhparam' in addition to directories listed in `mh-sys-path' and `exec-path'." - :group 'mh + :group 'mh-e :type '(repeat (directory))) (defvar mh-variants nil @@ -297,6 +300,51 @@ (add-to-list 'mh-variants variant))))) mh-variants))) +;;; XXX The two calls to message in this function should really be calls to +;;; error. However, when this function is compiled via the top-level call in +;;; mh-customize.el, it is actually called, and in a compile environment, the +;;; errors are triggered which botches the compile. As a workaround, the calls +;;; to error have been changed to calls to message, and code following was +;;; inserted as an else clause. This is not robust, so if you can fix this, +;;; please do! +;;;###mh-autoload +(defun mh-image-load-path () + "Ensure that the MH-E images are accessible by `find-image'. +Images for MH-E are found in ../../etc/images relative to the files in +`lisp/mh-e'. If `image-load-path' exists (since Emacs 22), then the images +directory is added to it if isn't already there. Otherwise, the images +directory is added to the `load-path' if it isn't already there." + (let (mh-load-path mh-image-load-path) + ;; First, find mh-e in the load-path. + (let ((path load-path)) + (while path + (let* ((directory (directory-file-name (car path)))) + (setq mh-load-path + (if (and (equal (file-name-nondirectory directory) "mh-e") + (file-exists-p directory)) + directory + nil)) + (setq path (if mh-load-path nil (cdr path))))) + (if (not mh-load-path) + ;; This message be error; there shouldn't be an else. Blame compiler. + (message "Can not find mh-e in load-path (OK when compiling)") + ;; Create the image path associated with this mh-e directory. + (setq mh-image-load-path (expand-file-name + (concat (file-name-directory mh-load-path) + "../etc/images"))))) + (if (or (not mh-image-load-path) + (not (file-exists-p mh-image-load-path))) + ;; This message be error; there shouldn't be an else. Blame compiler. + (message "Can not find image directory %s (OK when compiling)" + mh-image-load-path) + ;; If image-load-path exists, and the image path isn't there add it. + (if (boundp 'image-load-path) + (if (not (member mh-image-load-path image-load-path)) + (push mh-image-load-path image-load-path)) + ;; Otherwise, if the image path isn't in the load-path, add it there. + (if (not (member mh-image-load-path load-path)) + (push mh-image-load-path load-path)))))) + (provide 'mh-init) ;;; Local Variables:
--- a/lisp/mh-e/mh-junk.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-junk.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,6 +1,6 @@ ;;; mh-junk.el --- Interface to anti-spam measures -;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Satyaki Das <satyaki@theforce.stanford.edu>, ;; Bill Wohler <wohler@newt.com>
--- a/lisp/mh-e/mh-mime.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-mime.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,7 +1,7 @@ ;;; mh-mime.el --- MH-E support for composing MIME messages ;; Copyright (C) 1993, 1995, -;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> @@ -69,25 +69,45 @@ (call-interactively 'mh-mhn-compose-insertion))) ;;;###mh-autoload -(defun mh-compose-forward (&optional description folder message) +(defun mh-compose-forward (&optional description folder messages) "Add a MIME directive to forward a message, using mhn or gnus. If the variable `mh-compose-insertion' is set to 'mhn, then that will be used. If it is set to 'gnus, then that will be used instead. Optional argument DESCRIPTION is a description of the attachment. Optional argument FOLDER is the folder from which the forwarded message should come. -Optional argument MESSAGE is the message to forward. +Optional argument MESSAGES is the range of messages to forward. If any of the optional arguments are absent, they are prompted for." - (interactive (list - (read-string "Forw Content-description: ") - (mh-prompt-for-folder "Message from" mh-sent-from-folder nil) - (read-string (concat "Messages" - (if (numberp mh-sent-from-msg) - (format " (default %d): " mh-sent-from-msg) - ": "))))) - (if (equal mh-compose-insertion 'gnus) - (mh-mml-forward-message description folder message) - (mh-mhn-compose-forw description folder message))) + (interactive (let* + ((description (read-string "Forw Content-description: ")) + (folder (mh-prompt-for-folder "Message from" + mh-sent-from-folder nil)) + (messages (let ((default-message + (if (and (equal + folder mh-sent-from-folder) + (numberp mh-sent-from-msg)) + mh-sent-from-msg + (nth 0 (mh-translate-range + folder "cur"))))) + (if default-message + (read-string + (format "Messages (default %d): " + default-message) + nil nil + (number-to-string default-message)) + (read-string (format "Messages: ")))))) + (list description folder messages))) + (let + ((range)) + (if (null messages) + (setq messages "")) + (setq range (mh-translate-range folder messages)) + (if (null range) + (error "No messages in specified range")) + (dolist (message range) + (if (equal mh-compose-insertion 'gnus) + (mh-mml-forward-message description folder (format "%s" message)) + (mh-mhn-compose-forw description folder message))))) ;; To do: ;; paragraph code should not fill # lines if MIME enabled.
--- a/lisp/mh-e/mh-pick.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-pick.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,7 +1,7 @@ ;;; mh-pick.el --- make a search pattern and search for a message in MH-E ;; Copyright (C) 1993, 1995, -;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com>
--- a/lisp/mh-e/mh-print.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-print.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,6 +1,6 @@ ;;; mh-print.el --- MH-E printing support -;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Jeffrey C Honig <jch@honig.net> ;; Maintainer: Bill Wohler <wohler@newt.com>
--- a/lisp/mh-e/mh-seq.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-seq.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,7 +1,7 @@ ;;; mh-seq.el --- MH-E sequences support ;; Copyright (C) 1993, 1995, -;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com> @@ -224,6 +224,8 @@ ;; Avoid compiler warning (defvar tool-bar-map) +(make-variable-buffer-local 'mh-non-seq-mode-line-annotation) + ;;;###mh-autoload (defun mh-narrow-to-seq (sequence) "Restrict display of this folder to just messages in SEQUENCE. @@ -243,7 +245,6 @@ (mh-notate-deleted-and-refiled) (mh-notate-cur) (when msg-at-cursor (mh-goto-msg msg-at-cursor t t)) - (make-variable-buffer-local 'mh-non-seq-mode-line-annotation) (setq mh-non-seq-mode-line-annotation mh-mode-line-annotation) (setq mh-mode-line-annotation (symbol-name sequence)) (mh-make-folder-mode-line)
--- a/lisp/mh-e/mh-utils.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mh-e/mh-utils.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,7 +1,7 @@ ;;; mh-utils.el --- MH-E code needed for both sending and reading ;; Copyright (C) 1993, 1995, 1997, -;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Bill Wohler <wohler@newt.com> ;; Maintainer: Bill Wohler <wohler@newt.com>
--- a/lisp/mouse.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/mouse.el Sat Oct 15 00:26:05 2005 +0000 @@ -958,12 +958,14 @@ (mouse-move-drag-overlay mouse-drag-overlay start-point end-point click-count)) (if (consp event) - (let ((fun (key-binding (vector (car event))))) + (let* ((fun (key-binding (vector (car event)))) + (do-multi-click (and (> (event-click-count event) 0) + (functionp fun) + (not (eq fun 'mouse-set-point))))) ;; Run the binding of the terminating up-event, if possible. - ;; In the case of a multiple click, it gives the wrong results, - ;; because it would fail to set up a region. - (if (not (= (overlay-start mouse-drag-overlay) - (overlay-end mouse-drag-overlay))) + (if (and (not (= (overlay-start mouse-drag-overlay) + (overlay-end mouse-drag-overlay))) + (not do-multi-click)) (let* ((stop-point (if (numberp (posn-point (event-end event))) (posn-point (event-end event)) @@ -996,8 +998,12 @@ (and (mark t) mark-active (eq buffer (current-buffer)) (mouse-set-region-1)))) + ;; Run the binding of the terminating up-event. + ;; If a multiple click is not bound to mouse-set-point, + ;; cancel the effects of mouse-move-drag-overlay to + ;; avoid producing wrong results. + (if do-multi-click (goto-char start-point)) (delete-overlay mouse-drag-overlay) - ;; Run the binding of the terminating up-event. (when (and (functionp fun) (= start-hscroll (window-hscroll start-window)) ;; Don't run the up-event handler if the @@ -1026,10 +1032,7 @@ (and (integerp t0) (integerp t1) (if (> mouse-1-click-follows-link 0) (<= (- t1 t0) mouse-1-click-follows-link) - (< (- t0 t1) mouse-1-click-follows-link))))) - (or (not double-click-time) - (sit-for 0 (if (integerp double-click-time) - double-click-time 500) t))))) + (< (- t0 t1) mouse-1-click-follows-link)))))))) (if (or (vectorp on-link) (stringp on-link)) (setq event (aref on-link 0)) (setcar event 'mouse-2)))
--- a/lisp/net/newsticker.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/net/newsticker.el Sat Oct 15 00:26:05 2005 +0000 @@ -1,4 +1,4 @@ -;;; newsticker.el --- A Newsticker for Emacs. +;;; newsticker.el --- A news-ticker for Emacs. ;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. @@ -9,11 +9,6 @@ ;; URL: http://www.nongnu.org/newsticker ;; Created: 17. June 2003 ;; Keywords: News, RSS -;; Time-stamp: "26. August 2005, 16:33:46 (ulf)" - -(defconst newsticker-version "1.8" "Version number of newsticker.el.") - -;; ====================================================================== ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -29,7 +24,10 @@ ;; along with this program; if not, write to the Free Software Foundation, ;; Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +(defconst newsticker-version "1.8" "Version number of newsticker.el.") + ;; ====================================================================== + ;;; Commentary: ;; Overview @@ -62,8 +60,8 @@ ;; Requirements ;; ------------ -;; Newsticker can be used with GNU Emacs version 21.1 or later as well as -;; XEmacs. It requires an XML-parser (`xml.el') which is part of GNU +;; Newsticker can be used with Emacs version 21.1 or later as well as +;; XEmacs. It requires an XML-parser (`xml.el') which is part of ;; Emacs. If you are using XEmacs you want to get the `net-utils' package ;; which contains `xml.el' for XEmacs. @@ -71,21 +69,6 @@ ;; prints them to stdout. By default Newsticker will use wget for this ;; task. -;; Installation -;; ------------ -;; Place Newsticker in a directory where Emacs can find it. Add the -;; following line to your Emacs startup file (`~/.emacs'). -;; (add-to-list 'load-path "/path/to/newsticker/") -;; (autoload 'newsticker-start "newsticker" "Emacs Newsticker" t) -;; (autoload 'newsticker-show-news "newsticker" "Emacs Newsticker" t) - -;; Newsticker-mode supports imenu. It allows for navigating with the help -;; of a menu. In order to use this feature you should also add the -;; following. -;; (add-hook 'newsticker-mode-hook 'imenu-add-menubar-index) - -;; That's it. - ;; Usage ;; ----- ;; The command newsticker-show-news will display all available headlines in @@ -151,7 +134,10 @@ ;; such a tool from slightly attenuating your Editor's responsiveness every ;; once in a while. -;; Byte-compiling newsticker.el is recommended. +;; Newsticker-mode supports imenu. It allows for navigating with the help +;; of a menu. In order to use this feature you should also add the +;; following. +;; (add-hook 'newsticker-mode-hook 'imenu-add-menubar-index) ;; ====================================================================== ;;; History: @@ -204,7 +190,7 @@ ;; for sending patch. ;; * Renamed invisible buffers ` *wget-newsticker-<feed>*' to ;; ` *newsticker-wget-<feed>*'. -;; * Tested with GNU Emacs versions 21.3 and 22.0 and XEmacs 21.something. +;; * Tested with Emacs versions 21.3 and 22.0 and XEmacs 21.something. ;; 1.6 * Support for (some) optional RSS elements: guid, dc:date. See ;; `newsticker-show-all-rss-elements' `newsticker-extra-face'. @@ -2307,6 +2293,7 @@ ;;; User fun ;; ====================================================================== +;;;###autoload (defun newsticker-start (&optional do-not-complain-if-running) "Start the newsticker. Start the timers for display and retrieval. If the newsticker, i.e. the @@ -2395,6 +2382,7 @@ (setq newsticker--display-timer nil))) ;; the functions we need for retrieval and display +;;;###autoload (defun newsticker-show-news () "Switch to newsticker buffer. You may want to bind this to a key." (interactive)
--- a/lisp/net/tramp.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/net/tramp.el Sat Oct 15 00:26:05 2005 +0000 @@ -844,7 +844,7 @@ :type 'regexp) (defcustom tramp-password-prompt-regexp - "^.*\\([pP]assword\\|passphrase.*\\):\^@? *" + "^.*\\([pP]assword\\|passphrase\\).*:\^@? *" "*Regexp matching password-like prompts. The regexp should match at end of buffer. @@ -1364,26 +1364,53 @@ checked via the following code: (with-temp-buffer - (let ((bytes 1000) - (proc (start-process (buffer-name) (current-buffer) \"wc\" \"-c\"))) - (process-send-string proc (make-string bytes ?x)) - (process-send-eof proc) - (process-send-eof proc) - (accept-process-output proc 1) - (goto-char (point-min)) - (re-search-forward \"\\\\w+\") - (message \"Bytes sent: %s\\tBytes received: %s\" bytes (match-string 0)))) - -In the Emacs normally running Tramp, evaluate the above code. -You can do this, for example, by pasting it into the `*scratch*' -buffer and then hitting C-j with the cursor after the last -closing parenthesis. - -If your Emacs is buggy, the sent and received numbers will be -different. In that case, you'll want to set this variable to -some number. For those people who have needed it, the value 500 -seems to have worked well. There is no way to predict what value -you need; maybe you could just experiment a bit. + (let* ((user \"xxx\") (host \"yyy\") + (init 0) (step 50) + (sent init) (received init)) + (while (= sent received) + (setq sent (+ sent step)) + (erase-buffer) + (let ((proc (start-process (buffer-name) (current-buffer) + \"ssh\" \"-l\" user host \"wc\" \"-c\"))) + (when (memq (process-status proc) '(run open)) + (process-send-string proc (make-string sent ?\\ )) + (process-send-eof proc) + (process-send-eof proc)) + (while (not (progn (goto-char (point-min)) + (re-search-forward \"\\\\w+\" (point-max) t))) + (accept-process-output proc 1)) + (when (memq (process-status proc) '(run open)) + (setq received (string-to-number (match-string 0))) + (delete-process proc) + (message \"Bytes sent: %s\\tBytes received: %s\" sent received) + (sit-for 0)))) + (if (> sent (+ init step)) + (message \"You should set `tramp-chunksize' to a maximum of %s\" + (- sent step)) + (message \"Test does not work\") + (display-buffer (current-buffer)) + (sit-for 30)))) + +In the Emacs normally running Tramp, evaluate the above code +(replace \"xxx\" and \"yyy\" by the remote user and host name, +respectively). You can do this, for example, by pasting it into +the `*scratch*' buffer and then hitting C-j with the cursor after the +last closing parenthesis. Note that it works only if you have configured +\"ssh\" to run without password query, see ssh-agent(1). + +You will see the number of bytes sent successfully to the remote host. +If that number exceeds 1000, you can stop the execution by hitting +C-g, because your Emacs is likely clean. + +If your Emacs is buggy, the code stops and gives you an indication +about the value `tramp-chunksize' should be set. Maybe you could just +experiment a bit, e.g. changing the values of `init' and `step' +in the third line of the code. + +When it is necessary to set `tramp-chunksize', you might consider to +use an out-of-the-band method (like \"scp\") instead of an internal one +(like \"ssh\"), because setting `tramp-chunksize' to non-nil decreases +performance. Please raise a bug report via \"M-x tramp-bug\" if your system needs this variable to be set as well." @@ -1590,8 +1617,8 @@ on the remote file system.") (defconst tramp-perl-directory-files-and-attributes "\ -chdir($ARGV[0]); -opendir(DIR,\".\"); +chdir($ARGV[0]) or printf(\"\\\"Cannot change to $ARGV[0]: $''!''\\\"\\n\"), exit(); +opendir(DIR,\".\") or printf(\"\\\"Cannot open directory $ARGV[0]: $''!''\\\"\\n\"), exit(); @list = readdir(DIR); closedir(DIR); $n = scalar(@list); @@ -2371,11 +2398,14 @@ (buffer-name))) (if time-list (tramp-run-real-handler 'set-visited-file-modtime (list time-list)) - (let ((f (buffer-file-name))) + (let ((f (buffer-file-name)) + coding-system-used) (with-parsed-tramp-file-name f nil (let* ((attr (file-attributes f)) ;; '(-1 65535) means file doesn't exists yet. (modtime (or (nth 5 attr) '(-1 65535)))) + (when (boundp 'last-coding-system-used) + (setq coding-system-used (symbol-value 'last-coding-system-used))) ;; We use '(0 0) as a don't-know value. See also ;; `tramp-handle-file-attributes-with-ls'. (if (not (equal modtime '(0 0))) @@ -2390,6 +2420,8 @@ (setq attr (buffer-substring (point) (progn (end-of-line) (point))))) (setq tramp-buffer-file-attributes attr)) + (when (boundp 'last-coding-system-used) + (set 'last-coding-system-used coding-system-used)) nil))))) ;; CCC continue here @@ -2699,7 +2731,10 @@ (tramp-shell-quote-argument localname) (or id-format 'integer))) (tramp-wait-for-output) - (let* ((root (cons nil (read (current-buffer)))) + (let* ((root (cons nil (let ((object (read (current-buffer)))) + (when (stringp object) + (error object)) + object))) (cell root)) (while (cdr cell) (if (and match (not (string-match match (caadr cell)))) @@ -3750,7 +3785,7 @@ 'insert-file-contents) 'file-local-copy))) (file-local-copy filename))) - (result nil)) + coding-system-used result) (when visit (setq buffer-file-name filename) (set-visited-file-modtime) @@ -3759,10 +3794,15 @@ multi-method method user host 9 "Inserting local temp file `%s'..." local-copy) (setq result (insert-file-contents local-copy nil beg end replace)) + ;; Now `last-coding-system-used' has right value. Remember it. + (when (boundp 'last-coding-system-used) + (setq coding-system-used (symbol-value 'last-coding-system-used))) (tramp-message-for-buffer multi-method method user host 9 "Inserting local temp file `%s'...done" local-copy) (delete-file local-copy) + (when (boundp 'last-coding-system-used) + (set 'last-coding-system-used coding-system-used)) (list (expand-file-name filename) (second result)))))) @@ -3876,6 +3916,13 @@ (loc-dec (tramp-get-local-decoding multi-method method user host)) (trampbuf (get-buffer-create "*tramp output*")) (modes (file-modes filename)) + ;; We use this to save the value of `last-coding-system-used' + ;; after writing the tmp file. At the end of the function, + ;; we set `last-coding-system-used' to this saved value. + ;; This way, any intermediary coding systems used while + ;; talking to the remote shell or suchlike won't hose this + ;; variable. This approach was snarfed from ange-ftp.el. + coding-system-used tmpfil) ;; Write region into a tmp file. This isn't really needed if we ;; use an encoding function, but currently we use it always @@ -3892,6 +3939,9 @@ (if confirm ; don't pass this arg unless defined for backward compat. (list start end tmpfil append 'no-message lockname confirm) (list start end tmpfil append 'no-message lockname))) + ;; Now, `last-coding-system-used' has the right value. Remember it. + (when (boundp 'last-coding-system-used) + (setq coding-system-used (symbol-value 'last-coding-system-used))) ;; The permissions of the temporary file should be set. If ;; filename does not exist (eq modes nil) it has been renamed to ;; the backup file. This case `save-buffer' handles @@ -3998,6 +4048,9 @@ ;; We must pass modtime explicitely, because filename can be different ;; from (buffer-file-name), f.e. if `file-precious-flag' is set. (nth 5 (file-attributes filename)))) + ;; Make `last-coding-system-used' have the right value. + (when (boundp 'last-coding-system-used) + (set 'last-coding-system-used coding-system-used)) (when (or (eq visit t) (eq visit nil) (stringp visit)) @@ -6990,7 +7043,7 @@ ;; auto-saved file belonging to another original file. This could ;; be a security threat. (set-file-modes buffer-auto-save-file-name - (or (file-modes bfn) #o600))))) + (or (file-modes bfn) (tramp-octal-to-decimal "0600")))))) (unless (or (> emacs-major-version 21) (and (featurep 'xemacs)
--- a/lisp/net/trampver.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/net/trampver.el Sat Oct 15 00:26:05 2005 +0000 @@ -30,7 +30,7 @@ ;; are auto-frobbed from configure.ac, so you should edit that file and run ;; "autoconf && ./configure" to change them. -(defconst tramp-version "2.0.50" +(defconst tramp-version "2.0.51" "This version of Tramp.") (defconst tramp-bug-report-address "tramp-devel@gnu.org"
--- a/lisp/progmodes/etags.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/etags.el Sat Oct 15 00:26:05 2005 +0000 @@ -1887,7 +1887,7 @@ ;; XXX Kludge interface. (define-button-type 'tags-select-tags-table - 'action (lambda (button) (select-tags-table-select)) + 'action 'select-tags-table-select 'help-echo "RET, t or mouse-2: select tags table") ;; XXX If a file is in multiple tables, selection may get the wrong one. @@ -1904,30 +1904,27 @@ (desired-point nil) b) (when tags-table-list - (setq desired-point (point-marker)) - (setq b (point)) - (princ tags-table-list (current-buffer)) - (make-text-button b (point) 'type 'tags-select-tags-table) - (insert "\C-m") - (prin1 (car tags-table-list) (current-buffer)) ;invisible + (setq desired-point (point-marker)) + (setq b (point)) + (princ (mapcar 'abbreviate-file-name tags-table-list) (current-buffer)) + (make-text-button b (point) 'type 'tags-select-tags-table + 'etags-table (car tags-table-list)) (insert "\n")) (while set-list (unless (eq (car set-list) tags-table-list) (setq b (point)) - (princ (car set-list) (current-buffer)) - (make-text-button b (point) 'type 'tags-select-tags-table) - (insert "\C-m") - (prin1 (car (car set-list)) (current-buffer)) ;invisible + (princ (mapcar 'abbreviate-file-name (car set-list)) (current-buffer)) + (make-text-button b (point) 'type 'tags-select-tags-table + 'etags-table (car (car set-list))) (insert "\n")) (setq set-list (cdr set-list))) (when tags-file-name - (or desired-point - (setq desired-point (point-marker))) - (setq b (point)) - (insert tags-file-name) - (make-text-button b (point) 'type 'tags-select-tags-table) - (insert "\C-m") - (prin1 tags-file-name (current-buffer)) ;invisible + (or desired-point + (setq desired-point (point-marker))) + (setq b (point)) + (insert (abbreviate-file-name tags-file-name)) + (make-text-button b (point) 'type 'tags-select-tags-table + 'etags-table tags-file-name) (insert "\n")) (setq set-list (delete tags-file-name (apply 'nconc (cons (copy-sequence tags-table-list) @@ -1935,10 +1932,9 @@ tags-table-set-list))))) (while set-list (setq b (point)) - (insert (car set-list)) - (make-text-button b (point) 'type 'tags-select-tags-table) - (insert "\C-m") - (prin1 (car set-list) (current-buffer)) ;invisible + (insert (abbreviate-file-name (car set-list))) + (make-text-button b (point) 'type 'tags-select-tags-table + 'etags-table (car set-list)) (insert "\n") (setq set-list (delete (car set-list) set-list))) (goto-char (point-min)) @@ -1951,7 +1947,8 @@ (select-tags-table-mode)) (defvar select-tags-table-mode-map - (let ((map (copy-keymap button-buffer-map))) + (let ((map (make-sparse-keymap))) + (set-keymap-parent map button-buffer-map) (define-key map "t" 'push-button) (define-key map " " 'next-line) (define-key map "\^?" 'previous-line) @@ -1960,24 +1957,17 @@ (define-key map "q" 'select-tags-table-quit) map)) -(defun select-tags-table-mode () +(define-derived-mode select-tags-table-mode fundamental-mode "Select Tags Table" "Major mode for choosing a current tags table among those already loaded. \\{select-tags-table-mode-map}" - (interactive) - (kill-all-local-variables) - (setq buffer-read-only t - major-mode 'select-tags-table-mode - mode-name "Select Tags Table") - (use-local-map select-tags-table-mode-map) - (setq selective-display t - selective-display-ellipses nil)) + (setq buffer-read-only t)) -(defun select-tags-table-select () +(defun select-tags-table-select (button) "Select the tags table named on this line." - (interactive) - (search-forward "\C-m") - (let ((name (read (current-buffer)))) + (interactive (list (or (button-at (line-beginning-position)) + (error "No tags table on current line")))) + (let ((name (button-get button 'etags-table))) (visit-tags-table name) (select-tags-table-quit) (message "Tags table now %s" name))) @@ -2043,5 +2033,5 @@ (provide 'etags) -;;; arch-tag: b897c2b5-08f3-4837-b2d3-0e7d6db1b63e +;; arch-tag: b897c2b5-08f3-4837-b2d3-0e7d6db1b63e ;;; etags.el ends here
--- a/lisp/progmodes/f90.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/f90.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; Free Software Foundation, Inc. ;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: fortran, f90, languages ;; This file is part of GNU Emacs. @@ -276,7 +276,7 @@ "target" "then" "type" "use" "where" "while" "write" ;; F95 keywords. "elemental" "pure") 'words) - "Regexp for F90 keywords.") + "Regexp used by the function `f90-change-keywords'.") (defconst f90-keywords-level-3-re (regexp-opt @@ -370,7 +370,8 @@ (list ;; Variable declarations (avoid the real function call). '("^[ \t0-9]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\\|\ -logical\\|type[ \t]*(\\sw+)\\)\\(.*::\\|[ \t]*(.*)\\)?\\([^&!\n]*\\)" +logical\\|double[ \t]*precision\\|*type[ \t]*(\\sw+)\\)\ +\\(.*::\\|[ \t]*(.*)\\)?\\([^&!\n]*\\)" (1 font-lock-type-face t) (4 font-lock-variable-name-face t)) ;; do, if, select, where, and forall constructs. '("\\<\\(end[ \t]*\\(do\\|if\\|select\\|forall\\|where\\)\\)\\>\ @@ -381,7 +382,7 @@ (2 font-lock-constant-face nil t) (3 font-lock-keyword-face)) ;; Implicit declaration. '("\\<\\(implicit\\)[ \t]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\ -\\|logical\\|type[ \t]*(\\sw+)\\|none\\)[ \t]*" +\\|logical\\|double[ \t]*precision\\|type[ \t]*(\\sw+)\\|none\\)[ \t]*" (1 font-lock-keyword-face) (2 font-lock-type-face)) '("\\<\\(namelist\\|common\\)[ \t]*\/\\(\\sw+\\)?\/" (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) @@ -698,6 +699,7 @@ ("`de" "deallocate" ) ("`df" "define" ) ("`di" "dimension" ) + ("`dp" "double precision") ("`dw" "do while" ) ("`el" "else" ) ("`eli" "else if" ) @@ -796,8 +798,6 @@ The possibilities are 'downcase-word, 'upcase-word, 'capitalize-word. `f90-leave-line-no' Do not left-justify line numbers (default nil). -`f90-keywords-re' - List of keywords used for highlighting/upcase-keywords etc. Turning on F90 mode calls the value of the variable `f90-mode-hook' with no args, if that value is non-nil."
--- a/lisp/progmodes/fortran.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/fortran.el Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ ;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Michael D. Prange <prange@erl.mit.edu> -;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> +;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: fortran, languages ;; This file is part of GNU Emacs.
--- a/lisp/progmodes/gdb-ui.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/gdb-ui.el Sat Oct 15 00:26:05 2005 +0000 @@ -173,28 +173,28 @@ detailed description of this mode. ---------------------------------------------------------------------- - GDB Toolbar ---------------------------------------------------------------------- - GUD buffer (I/O of GDB) | Locals buffer - | - | - | ---------------------------------------------------------------------- - Source buffer | Input/Output (of inferior) buffer - | (comint-mode) - | - | - | - | - | - | ---------------------------------------------------------------------- - Stack buffer | Breakpoints buffer - RET gdb-frames-select | SPC gdb-toggle-breakpoint - | RET gdb-goto-breakpoint - | d gdb-delete-breakpoint ----------------------------------------------------------------------" ++--------------------------------------------------------------+ +| GDB Toolbar | ++-------------------------------+------------------------------+ +| GUD buffer (I/O of GDB) | Locals buffer | +| | | +| | | +| | | ++-------------------------------+------------------------------+ +| Source buffer | I/O buffer (of inferior) | +| | (comint-mode) | +| | | +| | | +| | | +| | | +| | | +| | | ++-------------------------------+------------------------------+ +| Stack buffer | Breakpoints buffer | +| RET gdb-frames-select | SPC gdb-toggle-breakpoint | +| | RET gdb-goto-breakpoint | +| | d gdb-delete-breakpoint | ++-------------------------------+------------------------------+" ;; (interactive (list (gud-query-cmdline 'gdba))) ;; @@ -1192,12 +1192,13 @@ (let ((buf (gdb-get-buffer ',buf-key))) (and buf (with-current-buffer buf - (let ((p (window-point (get-buffer-window buf 0))) + (let* ((window (get-buffer-window buf 0)) + (p (window-point window)) (buffer-read-only nil)) (erase-buffer) (insert-buffer-substring (gdb-get-create-buffer 'gdb-partial-output-buffer)) - (set-window-point (get-buffer-window buf 0) p))))) + (set-window-point window p))))) ;; put customisation here (,custom-defun))) @@ -2125,13 +2126,15 @@ (while (re-search-forward "\\s-*{.*\n" nil t) (replace-match " (array);\n" nil nil)))) (let ((buf (gdb-get-buffer 'gdb-locals-buffer))) - (and buf (with-current-buffer buf - (let ((p (window-point (get-buffer-window buf 0))) + (and buf + (with-current-buffer buf + (let* ((window (get-buffer-window buf 0)) + (p (window-point window)) (buffer-read-only nil)) (erase-buffer) (insert-buffer-substring (gdb-get-create-buffer 'gdb-partial-output-buffer)) - (set-window-point (get-buffer-window buf 0) p))))) + (set-window-point window p))))) (run-hooks 'gdb-info-locals-hook)) (defun gdb-info-locals-custom () @@ -2528,10 +2531,10 @@ (when (< left-margin-width 2) (save-current-buffer (setq left-margin-width 2) - (if (get-buffer-window (current-buffer) 0) + (let ((window (get-buffer-window (current-buffer) 0))) + (if window (set-window-margins - (get-buffer-window (current-buffer) 0) - left-margin-width right-margin-width)))) + window left-margin-width right-margin-width))))) (gdb-put-string (propertize putstring 'face (if enabled 'breakpoint-enabled 'breakpoint-disabled)) @@ -2543,10 +2546,10 @@ (remove-images start end)) (when remove-margin (setq left-margin-width 0) - (if (get-buffer-window (current-buffer) 0) - (set-window-margins - (get-buffer-window (current-buffer) 0) - left-margin-width right-margin-width)))) + (let ((window (get-buffer-window (current-buffer) 0))) + (if window + (set-window-margins + window left-margin-width right-margin-width))))) ;;
--- a/lisp/progmodes/gud.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/gud.el Sat Oct 15 00:26:05 2005 +0000 @@ -336,9 +336,6 @@ ;; speedbar support functions and variables. (eval-when-compile (require 'speedbar)) ;For speedbar-with-attached-buffer. -(defvar gud-last-speedbar-buffer nil - "The last GUD buffer used.") - (defvar gud-last-speedbar-stackframe nil "Description of the currently displayed GUD stack. t means that there is no stack, and we are in display-file mode.") @@ -355,17 +352,22 @@ (define-key gud-speedbar-key-map "j" 'speedbar-edit-line) (define-key gud-speedbar-key-map "e" 'speedbar-edit-line) (define-key gud-speedbar-key-map "\C-m" 'speedbar-edit-line) - (define-key gud-speedbar-key-map "D" 'gdb-var-delete))) - + (define-key gud-speedbar-key-map " " 'speedbar-toggle-line-expansion) + (define-key gud-speedbar-key-map "[" 'speedbar-expand-line-descendants) + (define-key gud-speedbar-key-map "]" 'speedbar-contract-line-descendants) + (define-key gud-speedbar-key-map "D" 'gdb-var-delete)) + + (speedbar-add-expansion-list '("GUD" gud-speedbar-menu-items + gud-speedbar-key-map + gud-expansion-speedbar-buttons))) (defvar gud-speedbar-menu-items - ;; Note to self. Add expand, and turn off items when not available. '(["Jump to stack frame" speedbar-edit-line - (with-current-buffer gud-comint-buffer - (not (memq gud-minor-mode '(gdbmi gdba))))] + :visible (with-current-buffer gud-comint-buffer + (not (memq gud-minor-mode '(gdbmi gdba))))] ["Edit value" speedbar-edit-line - (with-current-buffer gud-comint-buffer - (memq gud-minor-mode '(gdbmi gdba)))] + :visible (with-current-buffer gud-comint-buffer + (memq gud-minor-mode '(gdbmi gdba)))] ["Delete expression" gdb-var-delete (with-current-buffer gud-comint-buffer (memq gud-minor-mode '(gdbmi gdba)))]) @@ -376,89 +378,89 @@ (gud-install-speedbar-variables) (add-hook 'speedbar-load-hook 'gud-install-speedbar-variables)) +(defun gud-expansion-speedbar-buttons (directory zero) + "Wrapper for call to speedbar-add-expansion-list. DIRECTORY and +ZERO are not used, but are required by the caller." + (gud-speedbar-buttons gud-comint-buffer)) + (defun gud-speedbar-buttons (buffer) "Create a speedbar display based on the current state of GUD. If the GUD BUFFER is not running a supported debugger, then turn -off the specialized speedbar mode." - (let ((minor-mode (with-current-buffer buffer gud-minor-mode))) - (cond - ((memq minor-mode '(gdbmi gdba)) - (when (or gdb-var-changed - (not (save-excursion - (goto-char (point-min)) - (let ((case-fold-search t)) - (looking-at "Watch Expressions:"))))) - (erase-buffer) - (insert "Watch Expressions:\n") - (let ((var-list gdb-var-list)) - (while var-list - (let* ((depth 0) (start 0) (char ?+) - (var (car var-list)) (varnum (nth 1 var))) - (while (string-match "\\." varnum start) - (setq depth (1+ depth) - start (1+ (match-beginning 0)))) - (if (equal (nth 2 var) "0") - (speedbar-make-tag-line 'bracket ?? nil nil - (concat (car var) "\t" (nth 4 var)) - 'gdb-edit-value - nil - (if (and (nth 5 var) - gdb-show-changed-values) - 'font-lock-warning-face - nil) depth) - (if (and (cadr var-list) - (string-match varnum (cadr (cadr var-list)))) - (setq char ?-)) - (speedbar-make-tag-line 'bracket char - 'gdb-speedbar-expand-node varnum - (concat (car var) "\t" (nth 3 var)) - nil nil nil depth))) - (setq var-list (cdr var-list)))) - (setq gdb-var-changed nil))) - (t (if (and (save-excursion - (goto-char (point-min)) - (looking-at "Current Stack")) - (equal gud-last-last-frame gud-last-speedbar-stackframe)) - nil - (setq gud-last-speedbar-buffer buffer) - (let ((gud-frame-list - (cond ((eq minor-mode 'gdb) - (gud-gdb-get-stackframe buffer)) - ;; Add more debuggers here! - (t (speedbar-remove-localized-speedbar-support buffer) - nil)))) - (erase-buffer) - (if (not gud-frame-list) - (insert "No Stack frames\n") - (insert "Current Stack:\n")) - (dolist (frame gud-frame-list) - (insert (nth 1 frame) ":\n") - (if (= (length frame) 2) - (progn -; (speedbar-insert-button "[?]" -; 'speedbar-button-face -; nil nil nil t) - (speedbar-insert-button (car frame) - 'speedbar-directory-face - nil nil nil t)) -; (speedbar-insert-button "[+]" -; 'speedbar-button-face -; 'speedbar-highlight-face -; 'gud-gdb-get-scope-data -; frame t) - (speedbar-insert-button (car frame) - 'speedbar-file-face - 'speedbar-highlight-face - (cond ((memq minor-mode '(gdbmi gdba gdb)) - 'gud-gdb-goto-stackframe) - (t (error "Should never be here"))) - frame t))) -; (let ((selected-frame -; (cond ((eq ff 'gud-gdb-find-file) -; (gud-gdb-selected-frame-info buffer)) -; (t (error "Should never be here")))))) - ) - (setq gud-last-speedbar-stackframe gud-last-last-frame)))))) +off the specialized speedbar mode. BUFFER is not used, but are +required by the caller." + (when (and (boundp 'gud-comint-buffer) + gud-comint-buffer + ;; gud-comint-buffer might be killed + (buffer-name gud-comint-buffer)) + (let* ((minor-mode (with-current-buffer buffer gud-minor-mode)) + (window (get-buffer-window (current-buffer) 0)) + (p (window-point window))) + (cond + ((memq minor-mode '(gdbmi gdba)) + (when (or gdb-var-changed + (not (save-excursion + (goto-char (point-min)) + (let ((case-fold-search t)) + (looking-at "Watch Expressions:"))))) + (erase-buffer) + (insert "Watch Expressions:\n") + (let ((var-list gdb-var-list)) + (while var-list + (let* ((depth 0) (start 0) (char ?+) + (var (car var-list)) (varnum (nth 1 var))) + (while (string-match "\\." varnum start) + (setq depth (1+ depth) + start (1+ (match-beginning 0)))) + (if (equal (nth 2 var) "0") + (speedbar-make-tag-line 'bracket ?? nil nil + (concat (car var) "\t" (nth 4 var)) + 'gdb-edit-value + nil + (if (and (nth 5 var) + gdb-show-changed-values) + 'font-lock-warning-face + nil) depth) + (if (and (cadr var-list) + (string-match varnum (cadr (cadr var-list)))) + (setq char ?-)) + (speedbar-make-tag-line 'bracket char + 'gdb-speedbar-expand-node varnum + (concat (car var) "\t" (nth 3 var)) + nil nil nil depth))) + (setq var-list (cdr var-list)))) + (setq gdb-var-changed nil))) + (t (if (and (save-excursion + (goto-char (point-min)) + (looking-at "Current Stack:")) + (equal gud-last-last-frame gud-last-speedbar-stackframe)) + nil + (let ((gud-frame-list + (cond ((eq minor-mode 'gdb) + (gud-gdb-get-stackframe buffer)) + ;; Add more debuggers here! + (t (speedbar-remove-localized-speedbar-support buffer) + nil)))) + (erase-buffer) + (if (not gud-frame-list) + (insert "No Stack frames\n") + (insert "Current Stack:\n")) + (dolist (frame gud-frame-list) + (insert (nth 1 frame) ":\n") + (if (= (length frame) 2) + (progn + (speedbar-insert-button (car frame) + 'speedbar-directory-face + nil nil nil t)) + (speedbar-insert-button + (car frame) + 'speedbar-file-face + 'speedbar-highlight-face + (cond ((memq minor-mode '(gdbmi gdba gdb)) + 'gud-gdb-goto-stackframe) + (t (error "Should never be here"))) + frame t)))) + (setq gud-last-speedbar-stackframe gud-last-last-frame)))) + (set-window-point window p)))) ;; ====================================================================== @@ -2573,6 +2575,9 @@ ;; Stop displaying an arrow in a source file. (setq gud-overlay-arrow-position nil) (set-process-buffer proc nil) + (if (featurep 'speedbar) + (speedbar-change-initial-expansion-list + speedbar-previously-used-expansion-list-name)) (if (memq gud-minor-mode-type '(gdbmi gdba)) (gdb-reset) (gud-reset)))
--- a/lisp/progmodes/mixal-mode.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/mixal-mode.el Sat Oct 15 00:26:05 2005 +0000 @@ -17,8 +17,8 @@ ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ;; MA 02110-1301 USA -;; Author: Pieter E.J. Pareit <pieter.pareit@skynet.be> -;; Maintainer: Pieter E.J. Pareit <pieter.pareit@skynet.be> +;; Author: Pieter E.J. Pareit <pieter.pareit@gmail.com> +;; Maintainer: Pieter E.J. Pareit <pieter.pareit@gmail.com> ;; Created: 09 Nov 2002 ;; Version: 0.1 ;; Keywords: Knuth mix mixal asm mixvm "The Art Of Computer Programming" @@ -27,17 +27,17 @@ ;; Major mode for the mix asm language. ;; The mix asm language is described in "The Art Of Computer Programming". ;; -;; For optimal use, also use GNU MDK. Compiling needs mixasm, running -;; and debugging needs mixvm and mixvm.el from GNU MDK. You can get +;; For optimal use, also use GNU MDK. Compiling needs mixasm, running +;; and debugging needs mixvm and mixvm.el from GNU MDK. You can get ;; GNU MDK from `https://savannah.gnu.org/projects/mdk/' and ;; `ftp://ftp.gnu.org/pub/gnu/mdk'. ;; ;; To use this mode, place the following in your .emacs file: ;; `(load-file "/PATH-TO-FILE/mixal-mode.el")'. ;; When you load a file with the extension .mixal the mode will be started -;; automatic. If you want to start the mode manual, use `M-x mixal-mode'. -;; Font locking will work, the behavior of tabs is the same as emacs -;; default behavior. You can compile a source file with `C-c c' you can +;; automatic. If you want to start the mode manual, use `M-x mixal-mode'. +;; Font locking will work, the behavior of tabs is the same as Emacs's +;; default behavior. You can compile a source file with `C-c c' you can ;; run a compiled file with `C-c r' or run it in debug mode with `C-c d'. ;; You can get more information about a particular operation code by using ;; mixal-describe-operation-code or `C-h o'. @@ -45,6 +45,23 @@ ;; Have fun. ;;; History: +;; Version 0.3: +;; 12/10/05: Stefan Monnier <monnier@iro.umontreal.ca> +;; Use font-lock-syntactic-keywords to detect/mark comments. +;; Use [^ \t\n]+ to match the operand part of a line. +;; Drop mixal-operation-codes. +;; Build the mixal-operation-codes-alist immediately. +;; Use `interactive' in mixal-describe-operation-code. +;; Remove useless ".*$" at the end of some regexps. +;; Fix the definition of comment-start-skip. +;; 08/10/05: sync mdk and emacs cvs +;; from emacs: compile-command and require-final-newline +;; from mdk: see version 0.2 +;; correct my email address +;; Version 0.2: +;; 06/04/05: mixasm no longer needs -g option +;; fontlocking of comments works in all? cases now +;; added some more mixal-operation-codes ;; Version 0.1: ;; Version 0.1.1: ;; 22/11/02: bugfix in fontlocking, needed to add a '-' to the regex. @@ -54,7 +71,6 @@ ;; 09/11/02: started mixal-mode. ;;; Code: - (defvar compile-command) ;;; Key map @@ -66,15 +82,17 @@ (define-key map "\C-ho" 'mixal-describe-operation-code) map) "Keymap for `mixal-mode'.") -; (makunbound 'mixal-mode-map) +;; (makunbound 'mixal-mode-map) ;;; Syntax table (defvar mixal-mode-syntax-table (let ((st (make-syntax-table))) - (modify-syntax-entry ?* "<" st) + ;; We need to do a bit more to make fontlocking for comments work. + ;; See mixal-font-lock-syntactic-keywords. + ;; (modify-syntax-entry ?* "<" st) (modify-syntax-entry ?\n ">" st) st) - "Syntax table for `dot-mode'.") + "Syntax table for `mixal-mode'.") (defvar mixal-font-lock-label-face 'font-lock-variable-name-face "Face name to use for label names. @@ -91,43 +109,9 @@ Default value is that of `font-lock-builtin-face', but you can modify its value.") -(defvar mixal-operation-codes - '("NOP" "ADD" "FADD" "SUB" "FSUB" "MUL" "FMUL" "DIV" "FDIV" "NUM" "CHAR" - "HLT" "SLA" "SRA" "SLAX" "SRAX" "SLC" "SRC" "MOVE" "LDA" "LD1" "LD2" "LD3" - "LD4" "LD5" "LD6" "LDX" "LDAN" "LD1N" "LD2N" "LD3N" "LD4N" "LD5N" "LD6N" - "LDXN" "STA" "ST1" "ST2" "ST3" "ST4" "ST5" "ST6" "STX" "STJ" "STZ" "JBUS" - "IOC" "IN" "OUT" "JRAD" "JMP" "JSJ" "JOV" "JNOV" - "JAN" "J1N" "J2N" "J3N" "J4N" "J5N" "J6N" "JXN" - "JAZ" "J1Z" "J2Z" "J3Z" "J4Z" "J5Z" "J6Z" "JXZ" - "JAP" "J1P" "J2P" "J3P" "J4P" "J5P" "J6P" "JXP" - "JANN" "J1NN" "J2NN" "J3NN" "J4NN" "J5NN" "J6NN" "JXNN" - "JANZ" "J1NZ" "J2NZ" "J3NZ" "J4NZ" "J5NZ" "J6NZ" "JXNZ" - "JANP" "J1NP" "J2NP" "J3NP" "J4NP" "J5NP" "J6NP" "JXNP" - "INCA" "DECA" "ENTA" "ENNA" "INC1" "DEC1" "ENT1" "ENN1" - "INC2" "DEC2" "ENT2" "ENN2" "INC3" "DEC3" "ENT3" "ENN3" "INC4" "DEC4" - "ENT4" "ENN4" "INC5" "DEC5" "ENT5" "ENN5" "INC6" "DEC6" "ENT6" "ENN6" - "INCX" "DECX" "ENTX" "ENNX" "CMPA" "FCMP" "CMP1" "CMP2" "CMP3" "CMP4" - "CMP5" "CMP6" "CMPX") - "List of possible operation codes as strings.") -; (makunbound 'mixal-operation-codes) - (defvar mixal-assembly-pseudoinstructions '("ORIG" "EQU" "CON" "ALF" "END") - "List of possible assembly pseudoinstructions") - -;;; Font-locking: -(defvar mixal-font-lock-keywords - `(("^\\([A-Z0-9a-z]+\\).*$" - (1 mixal-font-lock-label-face)) - (,(regexp-opt mixal-operation-codes 'words) - . mixal-font-lock-operation-code-face) - (,(regexp-opt - mixal-assembly-pseudoinstructions 'words) - . mixal-font-lock-assembly-pseudoinstruction-face) - ("^[A-Z0-9a-z]*[ \t]+[A-Z0-9a-z]+[ \t]+[\\-A-Z0-9a-z,():]*[\t]+\\(.*\\)$" - (1 font-lock-comment-face))) - "Keyword highlighting specification for `mixal-mode'.") -; (makunbound 'mixal-font-lock-keywords) + "List of possible assembly pseudoinstructions.") ;;;; Compilation ;; Output from mixasm is compatible with default behavior of emacs, @@ -137,1121 +121,940 @@ ;; Tabs works well by default. ;;;; Describe -(defvar mixal-operation-codes-alist '() - "Alist that contains all the possible operation codes for mix. -Each elt has the form (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME) -Where OP-CODE is the text of the opcode as an symbol, FULL-NAME is the human readable name -as a string, C-BYTE is the operation code telling what operation is to be performed, F-BYTE holds -an modification of the operation code which can be a symbol or a number, DESCRIPTION contains -an string with a description about the operation code and EXECUTION-TIME holds info -about the time it takes, number or string.") -; (makunbound 'mixal-operation-codes-alist) - -(defun mixal-add-operation-code (op-code group full-name C-byte F-byte description execution-time) - "Add an operation code to the list that contains information about possible op code's." - (setq mixal-operation-codes-alist (cons (list op-code group full-name C-byte F-byte - description execution-time) - mixal-operation-codes-alist ))) - -;; now add each operation code - -(mixal-add-operation-code - 'LDA 'loading "load A" 8 'field - "Put in rA the contents of cell no. M. +(defvar mixal-operation-codes-alist + ;; FIXME: the codes FADD, FSUB, FMUL, FDIV, JRAD, and FCMP were in + ;; mixal-operation-codes but not here. They should probably be added here. + ;; + ;; We used to define this with a backquote and subexps like ,(+ 8 3) for + ;; better clarity, but the resulting code was too big and caused the + ;; byte-compiler to eat up all the stack space. Even using + ;; `eval-when-compile' didn't help because the byte-compiler insists on + ;; compiling the code before evaluating it. + '((LDA loading "load A" 8 field + "Put in rA the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word." - 2) + 2) -(mixal-add-operation-code - 'LDX 'loading "load X" 15 'field - "Put in rX the contents of cell no. M. + (LDX loading "load X" 15 field + "Put in rX the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word." - 2) + 2) -(mixal-add-operation-code - 'LD1 'loading "load I1" (+ 8 1) 'field - "Put in rI1 the contents of cell no. M. + (LD1 loading "load I1" 9 field + "Put in rI1 the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD2 'loading "load I2" (+ 8 2) 'field - "Put in rI2 the contents of cell no. M. + (LD2 loading "load I2" 10 field + "Put in rI2 the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD3 'loading "load I3" (+ 8 3) 'field - "Put in rI3 the contents of cell no. M. + (LD3 loading "load I3" 11 field + "Put in rI3 the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD4 'loading "load I4" (+ 8 4) 'field - "Put in rI4 the contents of cell no. M. + (LD4 loading "load I4" 12 field + "Put in rI4 the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD5 'loading "load I5" (+ 8 5) 'field - "Put in rI5 the contents of cell no. M. + (LD5 loading "load I5" 13 field + "Put in rI5 the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD6 'loading "load I6" (+ 8 6) 'field - "Put in rI6 the contents of cell no. M. + (LD6 loading "load I6" 14 field + "Put in rI6 the contents of cell no. M. Uses a + when there is no sign in subfield. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LDAN 'loading "load A negative" 16 'field - "Put in rA the contents of cell no. M, with opposite sign. + (LDAN loading "load A negative" 16 field + "Put in rA the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word." - 2) + 2) -(mixal-add-operation-code - 'LDXN 'loading "load X negative" 23 'field - "Put in rX the contents of cell no. M, with opposite sign. + (LDXN loading "load X negative" 23 field + "Put in rX the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word." - 2) + 2) -(mixal-add-operation-code - 'LD1N 'loading "load I1 negative" (+ 16 1) 'field - "Put in rI1 the contents of cell no. M, with opposite sign. + (LD1N loading "load I1 negative" 17 field + "Put in rI1 the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD2N 'loading "load I2 negative" (+ 16 2) 'field - "Put in rI2 the contents of cell no. M, with opposite sign. + (LD2N loading "load I2 negative" 18 field + "Put in rI2 the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD3N 'loading "load I3 negative" (+ 16 3) 'field - "Put in rI3 the contents of cell no. M, with opposite sign. + (LD3N loading "load I3 negative" 19 field + "Put in rI3 the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD4N 'loading "load I4 negative" (+ 16 4) 'field - "Put in rI4 the contents of cell no. M, with opposite sign. + (LD4N loading "load I4 negative" 20 field + "Put in rI4 the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD5N 'loading "load I5 negative" (+ 16 5) 'field - "Put in rI5 the contents of cell no. M, with opposite sign. + (LD5N loading "load I5 negative" 21 field + "Put in rI5 the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'LD6N 'loading "load I6 negative" (+ 16 6) 'field - "Put in rI6 the contents of cell no. M, with opposite sign. + (LD6N loading "load I6 negative" 22 field + "Put in rI6 the contents of cell no. M, with opposite sign. Uses a + when there is no sign in subfield, otherwise use the opposite sign. Subfield is left padded with zeros to make a word. Index registers only have 2 bytes and a sign, Trying to set anything more that that will result in undefined behavior." - 2) + 2) -(mixal-add-operation-code - 'STA 'storing "store A" 24 'field - "Store in cell Nr. M the contents of rA. + (STA storing "store A" 24 field + "Store in cell Nr. M the contents of rA. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield." - 2) + 2) -(mixal-add-operation-code - 'STX 'storing "store X" 31 'field - "Store in cell Nr. M the contents of rX. + (STX storing "store X" 31 field + "Store in cell Nr. M the contents of rX. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield." - 2) + 2) -(mixal-add-operation-code - 'ST1 'storing "store I1" (+ 24 1) 'field - "Store in cell Nr. M the contents of rI1. + (ST1 storing "store I1" 25 field + "Store in cell Nr. M the contents of rI1. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield. Because index registers only have 2 bytes and a sign, the rest of the bytes are assumed to be 0." - 2) + 2) -(mixal-add-operation-code - 'ST2 'storing "store I2" (+ 24 2) 'field - "Store in cell Nr. M the contents of rI2. + (ST2 storing "store I2" 26 field + "Store in cell Nr. M the contents of rI2. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield. Because index registers only have 2 bytes and a sign, the rest of the bytes are assumed to be 0." - 2) + 2) -(mixal-add-operation-code - 'ST3 'storing "store I3" (+ 24 3) 'field - "Store in cell Nr. M the contents of rI3. + (ST3 storing "store I3" 27 field + "Store in cell Nr. M the contents of rI3. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield. Because index registers only have 2 bytes and a sign, the rest of the bytes are assumed to be 0." - 2) + 2) -(mixal-add-operation-code - 'ST4 'storing "store I4" (+ 24 4) 'field - "Store in cell Nr. M the contents of rI4. + (ST4 storing "store I4" 28 field + "Store in cell Nr. M the contents of rI4. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield. Because index registers only have 2 bytes and a sign, the rest of the bytes are assumed to be 0." - 2) + 2) -(mixal-add-operation-code - 'ST5 'storing "store I5" (+ 24 5) 'field - "Store in cell Nr. M the contents of rI5. + (ST5 storing "store I5" 29 field + "Store in cell Nr. M the contents of rI5. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield. Because index registers only have 2 bytes and a sign, the rest of the bytes are assumed to be 0." - 2) + 2) -(mixal-add-operation-code - 'ST6 'storing "store I6" (+ 24 6) 'field - "Store in cell Nr. M the contents of rI6. + (ST6 storing "store I6" 30 field + "Store in cell Nr. M the contents of rI6. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of the memory cell is not changed, unless it is part of the subfield. Because index registers only have 2 bytes and a sign, the rest of the bytes are assumed to be 0." - 2) + 2) -(mixal-add-operation-code - 'STJ 'storing "store J" 32 'field - "Store in cell Nr. M the contents of rJ. + (STJ storing "store J" 32 field + "Store in cell Nr. M the contents of rJ. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with bytes from a register. These bytes are taken beginning by the rightmost side of the register. The sign of rJ is always +, sign of the memory cell is not changed, unless it is part of the subfield. The default field for STJ is (0:2)." - 2) + 2) -(mixal-add-operation-code - 'STZ 'storing "store zero" 33 'field - "Store in cell Nr. M '+ 0'. + (STZ storing "store zero" 33 field + "Store in cell Nr. M '+ 0'. The modification of the operation code represents the subfield of the memory cell that is to be overwritten with zeros." - 2) + 2) -(mixal-add-operation-code - 'ADD 'arithmetic "add" 1 'field - "Add to A the contents of cell Nr. M. + (ADD arithmetic "add" 1 field + "Add to A the contents of cell Nr. M. Subfield is padded with zero to make a word. If the result is to large, the operation result modulo 1,073,741,823 (the maximum value storable in a MIX word) is stored in `rA', and the overflow toggle is set to TRUE." - 2) + 2) -(mixal-add-operation-code - 'SUB 'arithmetic "subtract" 2 'field - "Subtract to A the contents of cell Nr. M. + (SUB arithmetic "subtract" 2 field + "Subtract to A the contents of cell Nr. M. Subfield is padded with zero to make a word. If the result is to large, the operation result modulo 1,073,741,823 (the maximum value storable in a MIX word) is stored in `rA', and the overflow toggle is set to TRUE." - 2) - -(mixal-add-operation-code - 'MUL 'arithmetic "multiply" 3 'field - "Multiplies the contents of cell Nr. M with A, result is 10 bytes and stored in rA and rX. -The sign is + if the sign of rA and cell M where the same, otherwise, it is -" - 10) + 2) -(mixal-add-operation-code - 'DIV 'arithmetic "divide" 4 'field - "Both rA and rX are taken together and divided by cell Nr. M, quotient is placed in rA, remainder in rX. -The sign is taken from rA, and after the divide the sign of rA is set to + when -both the sign of rA and M where the same. Divide by zero and overflow of rA result -in undefined behavior." - 12) + (MUL arithmetic "multiply" 3 field + "Multiplies the contents of cell Nr. M with A, result is 10 bytes and stored in rA and rX. +The sign is + if the sign of rA and cell M where the same, otherwise, it is -" + 10) -(mixal-add-operation-code - 'ENTA 'address-transfer "enter A" 48 2 - "Literal value is stored in rA. -Indexed, stores value of index in rA." - 1) + (DIV arithmetic "divide" 4 field + "Both rA and rX are taken together and divided by cell Nr. M, quotient is placed in rA, remainder in rX. +The sign is taken from rA, and after the divide the sign of rA is set to + when +both the sign of rA and M where the same. Divide by zero and overflow of rA +result in undefined behavior." + 12) -(mixal-add-operation-code - 'ENTX 'address-transfer "enter X" 55 2 - "Literal value is stored in rX. + (ENTA address-transfer "enter A" 48 + "Literal value is stored in rA. +Indexed, stores value of index in rA." + 1) + + (ENTX address-transfer "enter X" 55 + "Literal value is stored in rX. Indexed, stores value of index in rX." - 1) + 1) -(mixal-add-operation-code - 'ENT1 'address-transfer "Enter rI1" (+ 48 1) 2 - "Literal value is stored in rI1. + (ENT1 address-transfer "Enter rI1" 49 + "Literal value is stored in rI1. Indexed, stores value of index in rI1." - 1) + 1) -(mixal-add-operation-code - 'ENT2 'address-transfer "Enter rI2" (+ 48 2) 2 - "Literal value is stored in rI2. + (ENT2 address-transfer "Enter rI2" 50 + "Literal value is stored in rI2. Indexed, stores value of index in rI2." - 1) - -(mixal-add-operation-code - 'ENT3 'address-transfer "Enter rI3" (+ 48 3) 2 - "Literal value is stored in rI3. -Indexed, stores value of index in rI3." - 1) + 1) -(mixal-add-operation-code - 'ENT4 'address-transfer "Enter rI4" (+ 48 4) 2 - "Literal value is stored in rI4. -Indexed, stores value of index in rI4." - 1) + (ENT3 address-transfer "Enter rI3" 51 + "Literal value is stored in rI3. +Indexed, stores value of index in rI3." + 1) -(mixal-add-operation-code - 'ENT5 'address-transfer "Enter rI5" (+ 48 5) 2 - "Literal value is stored in rI5. -Indexed, stores value of index in rI5." - 1) + (ENT4 address-transfer "Enter rI4" 52 + "Literal value is stored in rI4. +Indexed, stores value of index in rI4." + 1) -(mixal-add-operation-code - 'ENT6 'address-transfer "Enter rI6" (+ 48 6) 2 - "Literal value is stored in rI6. -Indexed, stores value of index in rI6." - 1) + (ENT5 address-transfer "Enter rI5" 53 + "Literal value is stored in rI5. +Indexed, stores value of index in rI5." + 1) -(mixal-add-operation-code - 'ENNA 'address-transfer "enter negative A" 48 3 - "Literal value is stored in rA with opposite sign. -Indexed, stores value of index in rA with opposite sign." - 1) + (ENT6 address-transfer "Enter rI6" 54 + "Literal value is stored in rI6. +Indexed, stores value of index in rI6." + 1) -(mixal-add-operation-code - 'ENNX 'address-transfer "enter negative X" 55 3 - "Literal value is stored in rX with opposite sign. -Indexed, stores value of index in rX with opposite sign." - 1) + (ENNA address-transfer "enter negative A" 48 + "Literal value is stored in rA with opposite sign. +Indexed, stores value of index in rA with opposite sign." + 1) -(mixal-add-operation-code - 'ENN1 'address-transfer "Enter negative rI1" (+ 48 1) 3 - "Literal value is stored in rI1 with opposite sign. -Indexed, stores value of index in rI1 with opposite sign." - 1) + (ENNX address-transfer "enter negative X" 55 + "Literal value is stored in rX with opposite sign. +Indexed, stores value of index in rX with opposite sign." + 1) -(mixal-add-operation-code - 'ENN2 'address-transfer "Enter negative rI2" (+ 48 2) 3 - "Literal value is stored in rI2 with opposite sign. -Indexed, stores value of index in rI2 with opposite sign." - 1) + (ENN1 address-transfer "Enter negative rI1" 49 + "Literal value is stored in rI1 with opposite sign. +Indexed, stores value of index in rI1 with opposite sign." + 1) -(mixal-add-operation-code - 'ENN3 'address-transfer "Enter negative rI3" (+ 48 3) 3 - "Literal value is stored in rI3 with opposite sign. -Indexed, stores value of index in rI3 with opposite sign." - 1) + (ENN2 address-transfer "Enter negative rI2" 50 + "Literal value is stored in rI2 with opposite sign. +Indexed, stores value of index in rI2 with opposite sign." + 1) -(mixal-add-operation-code - 'ENN4 'address-transfer "Enter negative rI4" (+ 48 4) 3 - "Literal value is stored in rI4 with opposite sign. -Indexed, stores value of index in rI4 with opposite sign." - 1) + (ENN3 address-transfer "Enter negative rI3" 51 + "Literal value is stored in rI3 with opposite sign. +Indexed, stores value of index in rI3 with opposite sign." + 1) -(mixal-add-operation-code - 'ENN5 'address-transfer "Enter negative rI5" (+ 48 5) 3 - "Literal value is stored in rI5 with opposite sign. + (ENN4 address-transfer "Enter negative rI4" 52 + "Literal value is stored in rI4 with opposite sign. +Indexed, stores value of index in rI4 with opposite sign." + 1) + + (ENN5 address-transfer "Enter negative rI5" 53 + "Literal value is stored in rI5 with opposite sign. Indexed, stores value of index in rI5 with opposite sign." - 1) + 1) -(mixal-add-operation-code - 'ENN6 'address-transfer "Enter negative rI6" (+ 48 6) 3 - "Literal value is stored in rI6 with opposite sign. + (ENN6 address-transfer "Enter negative rI6" 54 + "Literal value is stored in rI6 with opposite sign. Indexed, stores value of index in rI6 with opposite sign." - 1) + 1) -(mixal-add-operation-code - 'INCA 'address-transfer "increase A" 48 0 - "Increase register A with the literal value of M. + (INCA address-transfer "increase A" 48 + "Increase register A with the literal value of M. On overflow the overflow toggle is set." - 1) + 1) -(mixal-add-operation-code - 'INCX 'address-transfer "increase X" 55 0 - "Increase register X with the literal value of M. + (INCX address-transfer "increase X" 55 + "Increase register X with the literal value of M. On overflow the overflow toggle is set." - 1) + 1) -(mixal-add-operation-code - 'INC1 'address-transfer "increase I1" (+ 48 1) 0 - "Increase register I1 with the literal value of M. + (INC1 address-transfer "increase I1" 49 + "Increase register I1 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'INC2 'address-transfer "increase I2" (+ 48 2) 0 - "Increase register I2 with the literal value of M. + (INC2 address-transfer "increase I2" 50 + "Increase register I2 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'INC3 'address-transfer "increase I3" (+ 48 3) 0 - "Increase register I3 with the literal value of M. + (INC3 address-transfer "increase I3" 51 + "Increase register I3 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'INC4 'address-transfer "increase I4" (+ 48 4) 0 - "Increase register I4 with the literal value of M. + (INC4 address-transfer "increase I4" 52 + "Increase register I4 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'INC5 'address-transfer "increase I5" (+ 48 5) 0 - "Increase register I5 with the literal value of M. + (INC5 address-transfer "increase I5" 53 + "Increase register I5 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'INC6 'address-transfer "increase I6" (+ 48 6) 0 - "Increase register I6 with the literal value of M. + (INC6 address-transfer "increase I6" 54 + "Increase register I6 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'DECA 'address-transfer "decrease A" 48 1 - "Decrease register A with the literal value of M. + (DECA address-transfer "decrease A" 48 + "Decrease register A with the literal value of M. On overflow the overflow toggle is set." - 1) + 1) -(mixal-add-operation-code - 'DECX 'address-transfer "decrease X" 55 1 - "Decrease register X with the literal value of M. + (DECX address-transfer "decrease X" 55 + "Decrease register X with the literal value of M. On overflow the overflow toggle is set." - 1) + 1) -(mixal-add-operation-code - 'DEC1 'address-transfer "decrease I1" (+ 48 1) 1 - "Decrease register I1 with the literal value of M. + (DEC1 address-transfer "decrease I1" 49 + "Decrease register I1 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'DEC2 'address-transfer "decrease I2" (+ 48 2) 1 - "Decrease register I2 with the literal value of M. + (DEC2 address-transfer "decrease I2" 50 + "Decrease register I2 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'DEC3 'address-transfer "decrease I3" (+ 48 3) 1 - "Decrease register I3 with the literal value of M. + (DEC3 address-transfer "decrease I3" 51 + "Decrease register I3 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'DEC4 'address-transfer "decrease I4" (+ 48 4) 1 - "Decrease register I4 with the literal value of M. -The result is undefined when the result does not fit in -2 bytes." - 1) - -(mixal-add-operation-code - 'DEC5 'address-transfer "decrease I5" (+ 48 5) 1 - "Decrease register I5 with the literal value of M. + (DEC4 address-transfer "decrease I4" 52 + "Decrease register I4 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'DEC6 'address-transfer "decrease I6" (+ 48 6) 1 - "Decrease register I6 with the literal value of M. + (DEC5 address-transfer "decrease I5" 53 + "Decrease register I5 with the literal value of M. The result is undefined when the result does not fit in 2 bytes." - 1) + 1) -(mixal-add-operation-code - 'CMPA 'comparison "compare A" 56 'field - "Compare contents of A with contents of M. + (DEC6 address-transfer "decrease I6" 54 + "Decrease register I6 with the literal value of M. +The result is undefined when the result does not fit in +2 bytes." + 1) + + (CMPA comparison "compare A" 56 field + "Compare contents of A with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome." - 2) - + 2) -(mixal-add-operation-code - 'CMPX 'comparison "compare X" 63 'field - "Compare contents of rX with contents of M. + (CMPX comparison "compare X" 63 field + "Compare contents of rX with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome." - 2) - + 2) -(mixal-add-operation-code - 'CMP1 'comparison "compare I1" (+ 56 1) 'field - "Compare contents of rI1 with contents of M. + (CMP1 comparison "compare I1" 57 field + "Compare contents of rI1 with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 have a value of 0." - 2) - + 2) -(mixal-add-operation-code - 'CMP2 'comparison "compare I2" (+ 56 2) 'field - "Compare contents of rI2 with contents of M. + (CMP2 comparison "compare I2" 58 field + "Compare contents of rI2 with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 have a value of 0." - 2) - + 2) -(mixal-add-operation-code - 'CMP3 'comparison "compare I3" (+ 56 3) 'field - "Compare contents of rI3 with contents of M. + (CMP3 comparison "compare I3" 59 field + "Compare contents of rI3 with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 have a value of 0." - 2) - + 2) -(mixal-add-operation-code - 'CMP4 'comparison "compare I4" (+ 56 4) 'field - "Compare contents of rI4 with contents of M. + (CMP4 comparison "compare I4" 60 field + "Compare contents of rI4 with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 have a value of 0." - 2) - + 2) -(mixal-add-operation-code - 'CMP5 'comparison "compare I5" (+ 56 5) 'field - "Compare contents of rI5 with contents of M. + (CMP5 comparison "compare I5" 61 field + "Compare contents of rI5 with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 have a value of 0." - 2) - + 2) -(mixal-add-operation-code - 'CMP6 'comparison "compare I6" (+ 56 6) 'field - "Compare contents of rI6 with contents of M. + (CMP6 comparison "compare I6" 62 field + "Compare contents of rI6 with contents of M. The field specifier works on both fields. The comparison indicator is set to LESS, EQUAL or GREATER depending on the outcome. Bit 1,2 and 3 have a value of 0." - 2) + 2) -(mixal-add-operation-code - 'JMP 'jump "jump" 39 0 - "Unconditional jump. + (JMP jump "jump" 39 + "Unconditional jump. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) + 1) -(mixal-add-operation-code - 'JSJ 'jump "jump, save J" 39 1 - "Unconditional jump, but rJ is not modified." - 1) + (JSJ jump "jump, save J" 39 + "Unconditional jump, but rJ is not modified." + 1) -(mixal-add-operation-code - 'JOV 'jump "jump on overflow" 39 2 - "Jump if OV is set (and turn it off). + (JOV jump "jump on overflow" 39 + "Jump if OV is set (and turn it off). Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) + 1) -(mixal-add-operation-code - 'JNOV 'jump "Jump on no overflow" 39 3 - "Jump if OV is not set (and turn it off). + (JNOV jump "Jump on no overflow" 39 + "Jump if OV is not set (and turn it off). Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) + 1) -(mixal-add-operation-code - 'JL 'jump "Jump on less" 39 4 - "Jump if '[CM] = L'. + (JL jump "Jump on less" 39 + "Jump if '[CM] = L'. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JE 'jump "Jump on equal" 39 5 - "Jump if '[CM] = E'. + (JE jump "Jump on equal" 39 + "Jump if '[CM] = E'. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JG 'jump "Jump on greater" 39 6 - "Jump if '[CM] = G'. + (JG jump "Jump on greater" 39 + "Jump if '[CM] = G'. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JGE 'jump "Jump on not less" 39 7 - "Jump if '[CM]' does not equal 'L'. + (JGE jump "Jump on not less" 39 + "Jump if '[CM]' does not equal 'L'. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JNE 'jump "Jump on not equal" 39 8 - "Jump if '[CM]' does not equal 'E'. + (JNE jump "Jump on not equal" 39 + "Jump if '[CM]' does not equal 'E'. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JLE 'jump "Jump on not greater" 39 9 - "Jump if '[CM]' does not equal 'G'. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) - -(mixal-add-operation-code - 'JAN 'jump "jump A negative" 40 0 - "Jump if the content of rA is negative. + (JLE jump "Jump on not greater" 39 + "Jump if '[CM]' does not equal 'G'. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JAZ 'jump "jump A zero" 40 1 - "Jump if the content of rA is zero. + (JAN jump "jump A negative" 40 + "Jump if the content of rA is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JAP 'jump "jump A positive" 40 2 - "Jump if the content of rA is positive. + (JAZ jump "jump A zero" 40 + "Jump if the content of rA is zero. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (JAP jump "jump A positive" 40 + "Jump if the content of rA is positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JANN 'jump "jump A non-negative" 40 3 - "Jump if the content of rA is non-negative. + (JANN jump "jump A non-negative" 40 + "Jump if the content of rA is non-negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JANZ 'jump "jump A non-zero" 40 4 - "Jump if the content of rA is non-zero. + (JANZ jump "jump A non-zero" 40 + "Jump if the content of rA is non-zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JANP 'jump "jump A non-positive" 40 5 - "Jump if the content of rA is non-positive. + (JANP jump "jump A non-positive" 40 + "Jump if the content of rA is non-positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) + 1) -(mixal-add-operation-code - 'JXN 'jump "jump X negative" 47 0 - "Jump if the content of rX is negative. + (JXN jump "jump X negative" 47 + "Jump if the content of rX is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JXZ 'jump "jump X zero" 47 1 - "Jump if the content of rX is zero. + (JXZ jump "jump X zero" 47 + "Jump if the content of rX is zero. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (JXP jump "jump X positive" 47 + "Jump if the content of rX is positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JXP 'jump "jump X positive" 47 2 - "Jump if the content of rX is positive. + (JXNN jump "jump X non-negative" 47 + "Jump if the content of rX is non-negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JXNN 'jump "jump X non-negative" 47 3 - "Jump if the content of rX is non-negative. + (JXNZ jump "jump X non-zero" 47 + "Jump if the content of rX is non-zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JXNZ 'jump "jump X non-zero" 47 4 - "Jump if the content of rX is non-zero. + (JXNP jump "jump X non-positive" 47 + "Jump if the content of rX is non-positive. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (J1N jump "jump I1 negative" 41 + "Jump if the content of rI1 is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'JXNP 'jump "jump X non-positive" 47 5 - "Jump if the content of rX is non-positive. + (J1Z jump "jump I1 zero" 41 + "Jump if the content of rI1 is zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) + 1) -(mixal-add-operation-code - 'J1N 'jump "jump I1 negative" (+ 40 1) 0 - "Jump if the content of rI1 is negative. + (J1P jump "jump I1 positive" 41 + "Jump if the content of rI1 is positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J1Z 'jump "jump I1 zero" (+ 40 1) 1 - "Jump if the content of rI1 is zero. + (J1NN jump "jump I1 non-negative" 41 + "Jump if the content of rI1 is non-negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J1P 'jump "jump I1 positive" (+ 40 1) 2 - "Jump if the content of rI1 is positive. + (J1NZ jump "jump I1 non-zero" 41 + "Jump if the content of rI1 is non-zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J1NN 'jump "jump I1 non-negative" (+ 40 1) 3 - "Jump if the content of rI1 is non-negative. + (J1NP jump "jump I1 non-positive" 41 + "Jump if the content of rI1 is non-positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J1NZ 'jump "jump I1 non-zero" (+ 40 1) 4 - "Jump if the content of rI1 is non-zero. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) - - -(mixal-add-operation-code - 'J1NP 'jump "jump I1 non-positive" (+ 40 1) 5 - "Jump if the content of rI1 is non-positive. + (J2N jump "jump I2 negative" 41 + "Jump if the content of rI2 is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) + 1) -(mixal-add-operation-code - 'J2N 'jump "jump I2 negative" (+ 40 1) 0 - "Jump if the content of rI2 is negative. + (J2Z jump "jump I2 zero" 41 + "Jump if the content of rI2 is zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J2Z 'jump "jump I2 zero" (+ 40 1) 1 - "Jump if the content of rI2 is zero. + (J2P jump "jump I2 positive" 41 + "Jump if the content of rI2 is positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J2P 'jump "jump I2 positive" (+ 40 1) 2 - "Jump if the content of rI2 is positive. + (J2NN jump "jump I2 non-negative" 41 + "Jump if the content of rI2 is non-negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J2NN 'jump "jump I2 non-negative" (+ 40 1) 3 - "Jump if the content of rI2 is non-negative. + (J2NZ jump "jump I2 non-zero" 41 + "Jump if the content of rI2 is non-zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J2NZ 'jump "jump I2 non-zero" (+ 40 1) 4 - "Jump if the content of rI2 is non-zero. + (J2NP jump "jump I2 non-positive" 41 + "Jump if the content of rI2 is non-positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J2NP 'jump "jump I2 non-positive" (+ 40 1) 5 - "Jump if the content of rI2 is non-positive. + (J3N jump "jump I3 negative" 41 + "Jump if the content of rI3 is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J3N 'jump "jump I3 negative" (+ 40 1) 0 - "Jump if the content of rI3 is negative. + (J3Z jump "jump I3 zero" 41 + "Jump if the content of rI3 is zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J3Z 'jump "jump I3 zero" (+ 40 1) 1 - "Jump if the content of rI3 is zero. + (J3P jump "jump I3 positive" 41 + "Jump if the content of rI3 is positive. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (J3NN jump "jump I3 non-negative" 41 + "Jump if the content of rI3 is non-negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J3P 'jump "jump I3 positive" (+ 40 1) 2 - "Jump if the content of rI3 is positive. + (J3NZ jump "jump I3 non-zero" 41 + "Jump if the content of rI3 is non-zero. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (J3NP jump "jump I3 non-positive" 41 + "Jump if the content of rI3 is non-positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J3NN 'jump "jump I3 non-negative" (+ 40 1) 3 - "Jump if the content of rI3 is non-negative. + (J4N jump "jump I4 negative" 41 + "Jump if the content of rI4 is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J3NZ 'jump "jump I3 non-zero" (+ 40 1) 4 - "Jump if the content of rI3 is non-zero. + (J4Z jump "jump I4 zero" 41 + "Jump if the content of rI4 is zero. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (J4P jump "jump I4 positive" 41 + "Jump if the content of rI4 is positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J3NP 'jump "jump I3 non-positive" (+ 40 1) 5 - "Jump if the content of rI3 is non-positive. + (J4NN jump "jump I4 non-negative" 41 + "Jump if the content of rI4 is non-negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J4N 'jump "jump I4 negative" (+ 40 1) 0 - "Jump if the content of rI4 is negative. + (J4NZ jump "jump I4 non-zero" 41 + "Jump if the content of rI4 is non-zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J4Z 'jump "jump I4 zero" (+ 40 1) 1 - "Jump if the content of rI4 is zero. + (J4NP jump "jump I4 non-positive" 41 + "Jump if the content of rI4 is non-positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J4P 'jump "jump I4 positive" (+ 40 1) 2 - "Jump if the content of rI4 is positive. + (J5N jump "jump I5 negative" 41 + "Jump if the content of rI5 is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J4NN 'jump "jump I4 non-negative" (+ 40 1) 3 - "Jump if the content of rI4 is non-negative. + (J5Z jump "jump I5 zero" 41 + "Jump if the content of rI5 is zero. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (J5P jump "jump I5 positive" 41 + "Jump if the content of rI5 is positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J4NZ 'jump "jump I4 non-zero" (+ 40 1) 4 - "Jump if the content of rI4 is non-zero. + (J5NN jump "jump I5 non-negative" 41 + "Jump if the content of rI5 is non-negative. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (J5NZ jump "jump I5 non-zero" 41 + "Jump if the content of rI5 is non-zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J4NP 'jump "jump I4 non-positive" (+ 40 1) 5 - "Jump if the content of rI4 is non-positive. + (J5NP jump "jump I5 non-positive" 41 + "Jump if the content of rI5 is non-positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J5N 'jump "jump I5 negative" (+ 40 1) 0 - "Jump if the content of rI5 is negative. + (J6N jump "jump I6 negative" 41 + "Jump if the content of rI6 is negative. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J5Z 'jump "jump I5 zero" (+ 40 1) 1 - "Jump if the content of rI5 is zero. + (J6Z jump "jump I6 zero" 41 + "Jump if the content of rI6 is zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J5P 'jump "jump I5 positive" (+ 40 1) 2 - "Jump if the content of rI5 is positive. + (J6P jump "jump I6 positive" 41 + "Jump if the content of rI6 is positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J5NN 'jump "jump I5 non-negative" (+ 40 1) 3 - "Jump if the content of rI5 is non-negative. + (J6NN jump "jump I6 non-negative" 41 + "Jump if the content of rI6 is non-negative. +Register J is set to the value of the next instruction that would have +been executed when there was no jump." + 1) + + (J6NZ jump "jump I6 non-zero" 41 + "Jump if the content of rI6 is non-zero. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) - + 1) -(mixal-add-operation-code - 'J5NZ 'jump "jump I5 non-zero" (+ 40 1) 4 - "Jump if the content of rI5 is non-zero. + (J6NP jump "jump I6 non-positive" 41 + "Jump if the content of rI6 is non-positive. Register J is set to the value of the next instruction that would have been executed when there was no jump." - 1) + 1) + (SLA miscellaneous "shift left A" 6 + "Shift to A, M bytes left. +Hero's will be added to the right." + 2) -(mixal-add-operation-code - 'J5NP 'jump "jump I5 non-positive" (+ 40 1) 5 - "Jump if the content of rI5 is non-positive. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) + (SRA miscellaneous "shift right A" 6 + "Shift to A, M bytes right. +Zeros will be added to the left." + 2) - -(mixal-add-operation-code - 'J6N 'jump "jump I6 negative" (+ 40 1) 0 - "Jump if the content of rI6 is negative. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) + (SLAX miscellaneous "shift left AX" 6 + "Shift AX, M bytes left. +Zeros will be added to the right." + 2) -(mixal-add-operation-code - 'J6Z 'jump "jump I6 zero" (+ 40 1) 1 - "Jump if the content of rI6 is zero. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) - + (SRAX miscellaneous "shift right AX" 6 + "Shift AX, M bytes right. +Zeros will be added to the left." + 2) -(mixal-add-operation-code - 'J6P 'jump "jump I6 positive" (+ 40 1) 2 - "Jump if the content of rI6 is positive. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) + (SLC miscellaneous "shift left AX circularly" 6 + "Shift AX, M bytes left circularly. +The bytes that fall off to the left will be added to the right." + 2) + (SRC miscellaneous "shift right AX circularly" 6 + "Shift AX, M bytes right circularly. +The bytes that fall off to the right will be added to the left." + 2) -(mixal-add-operation-code - 'J6NN 'jump "jump I6 non-negative" (+ 40 1) 3 - "Jump if the content of rI6 is non-negative. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) + (MOVE miscellaneous "move" 7 number + "Move MOD words from M to the location stored in rI1." + (+ 1 (* 2 number))) + (NOP miscellaneous "no operation" 0 ignored + "No operation, M and F are not used by the machine." + 1) -(mixal-add-operation-code - 'J6NZ 'jump "jump I6 non-zero" (+ 40 1) 4 - "Jump if the content of rI6 is non-zero. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) + (HLT miscellaneous "halt" 5 + "Halt. +Stop instruction fetching." + 1) + (IN input-output "input" 36 unit + "Transfer a block of words from the specified unit to memory. +The transfer starts at address M." + 1) -(mixal-add-operation-code - 'J6NP 'jump "jump I6 non-positive" (+ 40 1) 5 - "Jump if the content of rI6 is non-positive. -Register J is set to the value of the next instruction that would have -been executed when there was no jump." - 1) + (OUT input-output "output" 37 unit + "Transfer a block of words from memory. +The transfer starts at address M to the specified unit." + 1) -(mixal-add-operation-code - 'SLA 'miscellaneous "shift left A" 6 0 - "Shift to A, M bytes left. -Hero's will be added to the right." - 2) + (IOC input-output "input-output control" 35 unit + "Perform a control operation. +The control operation is given by M on the specified unit." + 1) + (JRED input-output "jump ready" 38 unit + "Jump to M if the specified unit is ready." + 1) + + (JBUS input-output "jump busy" 34 unit + "Jump to M if the specified unit is busy." + 1) -(mixal-add-operation-code - 'SRA 'miscellaneous "shift right A" 6 1 - "Shift to A, M bytes right. -Zeros will be added to the left." - 2) + (NUM conversion "convert to numeric" 5 + "Convert rAX to its numerical value and store it in rA. +the register rAX is assumed to contain a character representation of +a number." + 10) + (CHAR conversion "convert to characters" 5 + "Convert the number stored in rA to a character representation. +The converted character representation is stored in rAX." + 10)) -(mixal-add-operation-code - 'SLAX 'miscellaneous "shift left AX" 6 2 - "Shift AX, M bytes left. -Zeros will be added to the right." - 2) - - - -(mixal-add-operation-code - 'SRAX 'miscellaneous "shift right AX" 6 3 - "Shift AX, M bytes right. -Zeros will be added to the left." - 2) + "Alist that contains all the possible operation codes for mix. +Each elt has the form + (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME) +Where OP-CODE is the text of the opcode as an symbol, +FULL-NAME is the human readable name as a string, +C-BYTE is the operation code telling what operation is to be performed, +F-BYTE holds a modification of the operation code which can be a symbol + or a number, +DESCRIPTION contains an string with a description about the operation code and +EXECUTION-TIME holds info about the time it takes, number or string.") +;; (makunbound 'mixal-operation-codes-alist) -(mixal-add-operation-code - 'SLC 'miscellaneous "shift left AX circularly" 6 4 - "Shift AX, M bytes left circularly. -The bytes that fall off to the left will be added to the right." - 2) - - -(mixal-add-operation-code - 'SRC 'miscellaneous "shift right AX circularly" 6 4 - "Shift AX, M bytes right circularly. -The bytes that fall off to the right will be added to the left." - 2) - -(mixal-add-operation-code - 'MOVE 'miscellaneous "move" 7 'number - "Move MOD words from M to the location stored in rI1." - '(+ 1 (* 2 number))) - -(mixal-add-operation-code - 'NOP 'miscellaneous "no operation" 0 'ignored - "No operation, M and F are not used by the machine." - 1) - -(mixal-add-operation-code - 'HLT 'miscellaneous "halt" 5 2 - "Halt. -Stop instruction fetching." - 1) - -(mixal-add-operation-code - 'IN 'input-output "input" 36 'unit - "Transfer a block of words from the specified unit to memory. -The transfer starts at address M." - 1) +;;; Font-locking: +(defvar mixal-font-lock-syntactic-keywords + ;; Normal comments start with a * in column 0 and end at end of line. + '(("^\\*" (0 '(11))) ;(string-to-syntax "<") == '(11) + ;; Every line can end with a comment which is placed after the operand. + ;; I assume here that mnemonics without operands can not have a comment. + ("^[[:alnum:]]*[ \t]+[[:alnum:]]+[ \t]+[^ \n\t]+[ \t]*\\([ \t]\\)[^\n \t]" + (1 '(11))))) -(mixal-add-operation-code - 'OUT 'input-output "output" 37 'unit - "Transfer a block of words from memory. -The transfer starts at address M to the specified unit." - 1) - -(mixal-add-operation-code - 'IOC 'input-output "input-output control" 35 'unit - "Perform a control operation. -The control operation is given by M on the specified unit." - 1) - -(mixal-add-operation-code - 'JRED 'input-output "jump ready" 38 'unit - "Jump to M if the specified unit is ready." - 1) - - -(mixal-add-operation-code - 'JBUS 'input-output "jump busy" 34 'unit - "Jump to M if the specified unit is busy." - 1) - -(mixal-add-operation-code - 'NUM 'conversion "convert to numeric" 5 0 - "Convert rAX to its numerical value and store it in rA. -the register rAX is assumed to contain a character representation of -a number." - 10) - -(mixal-add-operation-code - 'CHAR 'conversion "convert to characters" 5 1 - "Convert the number stored in rA to a character representation. -The converted character representation is stored in rAX." - 10) +(defvar mixal-font-lock-keywords + `(("^\\([A-Z0-9a-z]+\\)" + (1 mixal-font-lock-label-face)) + (,(regexp-opt (mapcar (lambda (x) (symbol-name (car x))) + mixal-operation-codes-alist) 'words) + . mixal-font-lock-operation-code-face) + (,(regexp-opt mixal-assembly-pseudoinstructions 'words) + . mixal-font-lock-assembly-pseudoinstruction-face) + ("^[A-Z0-9a-z]*[ \t]+[A-ZO-9a-z]+[ \t]+\\(=.*=\\)" + (1 font-lock-constant-face))) + "Keyword highlighting specification for `mixal-mode'.") +;; (makunbound 'mixal-font-lock-keywords) (defvar mixal-describe-operation-code-history nil "History list for describe operation code.") -(defun mixal-describe-operation-code (&optional op-code) +(defun mixal-describe-operation-code (op-code) "Display the full documentation of OP-CODE." - (interactive) - ;; we like to provide completition and history, so do it ourself (interactive "?bla")? - (unless op-code + (interactive + (list (let* ((completion-ignore-case t) ;; we already have a list, but it is not in the right format ;; transform it to a valid table so completition can use it @@ -1259,15 +1062,16 @@ (cons (symbol-name (car elm)) nil)) mixal-operation-codes-alist)) ;; prompt is different depending on we are close to a valid op-code - (have-default (member (current-word) mixal-operation-codes)) + (have-default (assq (intern-soft (current-word)) + mixal-operation-codes-alist)) (prompt (concat "Describe operation code " (if have-default (concat "(default " (current-word) "): ") ": ")))) - ;; as the operation code to the user - (setq op-code (completing-read prompt table nil t nil - 'mixal-describe-operation-code-history - (current-word))))) + ;; As the operation code to the user. + (completing-read prompt table nil t nil + 'mixal-describe-operation-code-history + (current-word))))) ;; get the info on the op-code and output it to the help buffer (let ((op-code-help (assq (intern-soft op-code) mixal-operation-codes-alist))) (when op-code-help @@ -1282,13 +1086,14 @@ ;;;; Running (defun mixal-run () - "Run's mixal file in current buffer, assumes that file has been compiled" + "Run mixal file in current buffer, assumes that file has been compiled." (interactive) (mixvm (concat "mixvm -r -t -d " (file-name-sans-extension (buffer-file-name))))) (defun mixal-debug () - "Starts mixvm for debugging, assumes that file has been compiled with debugging support" + "Start mixvm for debugging. +Assumes that file has been compiled with debugging support." (interactive) (mixvm (concat "mixvm " (file-name-sans-extension (buffer-file-name))))) @@ -1298,11 +1103,14 @@ "Major mode for the mixal asm language. \\{mixal-mode-map}" (set (make-local-variable 'comment-start) "*") - (set (make-local-variable 'comment-start-skip) "*") - (set (make-local-variable 'font-lock-defaults) '(mixal-font-lock-keywords)) -; might add an indent function in the future -; (set (make-local-variable 'indent-line-function) 'mixal-indent-line) - (set (make-local-variable 'compile-command) (concat "mixasm -g " + (set (make-local-variable 'comment-start-skip) "^\\*[ \t]*") + (set (make-local-variable 'font-lock-defaults) + `(mixal-font-lock-keywords nil nil nil nil + (font-lock-syntactic-keywords . ,mixal-font-lock-syntactic-keywords) + (parse-sexp-lookup-properties . t))) + ;; might add an indent function in the future + ;; (set (make-local-variable 'indent-line-function) 'mixal-indent-line) + (set (make-local-variable 'compile-command) (concat "mixasm " buffer-file-name)) ;; mixasm will do strange when there is no final newline, ;; so let Emacs ensure that it is always there @@ -1314,5 +1122,5 @@ (provide 'mixal-mode) -;;; arch-tag: be7c128a-bf61-4951-a90e-9398267ce3f3 +;; arch-tag: be7c128a-bf61-4951-a90e-9398267ce3f3 ;;; mixal-mode.el ends here
--- a/lisp/progmodes/pascal.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/pascal.el Sat Oct 15 00:26:05 2005 +0000 @@ -69,36 +69,34 @@ "Abbrev table in use in Pascal-mode buffers.") (define-abbrev-table 'pascal-mode-abbrev-table ()) -(defvar pascal-mode-map () +(defvar pascal-mode-map + (let ((map (make-sparse-keymap))) + (define-key map ";" 'electric-pascal-semi-or-dot) + (define-key map "." 'electric-pascal-semi-or-dot) + (define-key map ":" 'electric-pascal-colon) + (define-key map "=" 'electric-pascal-equal) + (define-key map "#" 'electric-pascal-hash) + (define-key map "\r" 'electric-pascal-terminate-line) + (define-key map "\t" 'electric-pascal-tab) + (define-key map "\M-\t" 'pascal-complete-word) + (define-key map "\M-?" 'pascal-show-completions) + (define-key map "\177" 'backward-delete-char-untabify) + (define-key map "\M-\C-h" 'pascal-mark-defun) + (define-key map "\C-c\C-b" 'pascal-insert-block) + (define-key map "\M-*" 'pascal-star-comment) + (define-key map "\C-c\C-c" 'pascal-comment-area) + (define-key map "\C-c\C-u" 'pascal-uncomment-area) + (define-key map "\M-\C-a" 'pascal-beg-of-defun) + (define-key map "\M-\C-e" 'pascal-end-of-defun) + (define-key map "\C-c\C-d" 'pascal-goto-defun) + (define-key map "\C-c\C-o" 'pascal-outline-mode) + ;; A command to change the whole buffer won't be used terribly + ;; often, so no need for a key binding. + ;; (define-key map "\C-cd" 'pascal-downcase-keywords) + ;; (define-key map "\C-cu" 'pascal-upcase-keywords) + ;; (define-key map "\C-cc" 'pascal-capitalize-keywords) + map) "Keymap used in Pascal mode.") -(if pascal-mode-map - () - (setq pascal-mode-map (make-sparse-keymap)) - (define-key pascal-mode-map ";" 'electric-pascal-semi-or-dot) - (define-key pascal-mode-map "." 'electric-pascal-semi-or-dot) - (define-key pascal-mode-map ":" 'electric-pascal-colon) - (define-key pascal-mode-map "=" 'electric-pascal-equal) - (define-key pascal-mode-map "#" 'electric-pascal-hash) - (define-key pascal-mode-map "\r" 'electric-pascal-terminate-line) - (define-key pascal-mode-map "\t" 'electric-pascal-tab) - (define-key pascal-mode-map "\M-\t" 'pascal-complete-word) - (define-key pascal-mode-map "\M-?" 'pascal-show-completions) - (define-key pascal-mode-map "\177" 'backward-delete-char-untabify) - (define-key pascal-mode-map "\M-\C-h" 'pascal-mark-defun) - (define-key pascal-mode-map "\C-c\C-b" 'pascal-insert-block) - (define-key pascal-mode-map "\M-*" 'pascal-star-comment) - (define-key pascal-mode-map "\C-c\C-c" 'pascal-comment-area) - (define-key pascal-mode-map "\C-c\C-u" 'pascal-uncomment-area) - (define-key pascal-mode-map "\M-\C-a" 'pascal-beg-of-defun) - (define-key pascal-mode-map "\M-\C-e" 'pascal-end-of-defun) - (define-key pascal-mode-map "\C-c\C-d" 'pascal-goto-defun) - (define-key pascal-mode-map "\C-c\C-o" 'pascal-outline) -;;; A command to change the whole buffer won't be used terribly -;;; often, so no need for a key binding. -; (define-key pascal-mode-map "\C-cd" 'pascal-downcase-keywords) -; (define-key pascal-mode-map "\C-cu" 'pascal-upcase-keywords) -; (define-key pascal-mode-map "\C-cc" 'pascal-capitalize-keywords) - ) (defvar pascal-imenu-generic-expression '((nil "^[ \t]*\\(function\\|procedure\\)[ \t\n]+\\([a-zA-Z0-9_.:]+\\)" 2)) @@ -132,28 +130,31 @@ (defconst pascal-exclude-str-start "{-----\\/----- EXCLUDED -----\\/-----") (defconst pascal-exclude-str-end " -----/\\----- EXCLUDED -----/\\-----}") -(defvar pascal-mode-syntax-table nil +(defvar pascal-mode-syntax-table + (let ((st (make-syntax-table))) + (modify-syntax-entry ?\\ "." st) + (modify-syntax-entry ?\( "()1" st) + (modify-syntax-entry ?\) ")(4" st) + ;; This used to use comment-syntax `b'. But the only document I could + ;; find about the syntax of Pascal's comments said that (* ... } is + ;; a valid comment, just as { ... *) or (* ... *) or { ... }. + (modify-syntax-entry ?* ". 23" st) + (modify-syntax-entry ?{ "<" st) + (modify-syntax-entry ?} ">" st) + (modify-syntax-entry ?+ "." st) + (modify-syntax-entry ?- "." st) + (modify-syntax-entry ?= "." st) + (modify-syntax-entry ?% "." st) + (modify-syntax-entry ?< "." st) + (modify-syntax-entry ?> "." st) + (modify-syntax-entry ?& "." st) + (modify-syntax-entry ?| "." st) + (modify-syntax-entry ?_ "_" st) + (modify-syntax-entry ?\' "\"" st) + st) "Syntax table in use in Pascal-mode buffers.") -(if pascal-mode-syntax-table - () - (setq pascal-mode-syntax-table (make-syntax-table)) - (modify-syntax-entry ?\\ "." pascal-mode-syntax-table) - (modify-syntax-entry ?( "()1" pascal-mode-syntax-table) - (modify-syntax-entry ?) ")(4" pascal-mode-syntax-table) - (modify-syntax-entry ?* ". 23b" pascal-mode-syntax-table) - (modify-syntax-entry ?{ "<" pascal-mode-syntax-table) - (modify-syntax-entry ?} ">" pascal-mode-syntax-table) - (modify-syntax-entry ?+ "." pascal-mode-syntax-table) - (modify-syntax-entry ?- "." pascal-mode-syntax-table) - (modify-syntax-entry ?= "." pascal-mode-syntax-table) - (modify-syntax-entry ?% "." pascal-mode-syntax-table) - (modify-syntax-entry ?< "." pascal-mode-syntax-table) - (modify-syntax-entry ?> "." pascal-mode-syntax-table) - (modify-syntax-entry ?& "." pascal-mode-syntax-table) - (modify-syntax-entry ?| "." pascal-mode-syntax-table) - (modify-syntax-entry ?_ "_" pascal-mode-syntax-table) - (modify-syntax-entry ?\' "\"" pascal-mode-syntax-table)) + (defconst pascal-font-lock-keywords (purecopy (list @@ -327,7 +328,7 @@ \\[pascal-beg-of-defun]\t- Move to beginning of current function. \\[pascal-end-of-defun]\t- Move to end of current function. \\[pascal-goto-defun]\t- Goto function prompted for in the minibuffer. -\\[pascal-outline]\t- Enter pascal-outline-mode (see also pascal-outline). +\\[pascal-outline-mode]\t- Enter `pascal-outline-mode'. Variables controlling indentation/edit style: @@ -792,8 +793,7 @@ (defun pascal-indent-command () "Indent for special part of code." (let* ((indent-str (pascal-calculate-indent)) - (type (car indent-str)) - (ind (car (cdr indent-str)))) + (type (car indent-str))) (cond ((and (eq type 'paramlist) (or (memq 'all pascal-auto-lineup) (memq 'paramlist pascal-auto-lineup))) @@ -971,7 +971,7 @@ (end-of-line) (point-marker) (re-search-backward "\\<case\\>" nil t))) - (beg (point)) oldpos + (beg (point)) (ind 0)) ;; Get right indent (while (< (point) end) @@ -986,7 +986,6 @@ (setq ind (current-column))) (pascal-end-of-statement)))) (goto-char beg) - (setq oldpos (marker-position end)) ;; Indent all case statements (while (< (point) end) (if (re-search-forward @@ -999,7 +998,6 @@ (forward-char 1) (delete-horizontal-space) (insert " ")) - (setq oldpos (point)) (pascal-end-of-statement)) (goto-char savepos))) @@ -1490,30 +1488,20 @@ ;;; ;;; Pascal-outline-mode ;;; -(defvar pascal-outline-map nil "Keymap used in Pascal Outline mode.") +(defvar pascal-outline-map + (let ((map (make-sparse-keymap))) + (if (fboundp 'set-keymap-name) + (set-keymap-name pascal-outline-map 'pascal-outline-map)) + (define-key map "\M-\C-a" 'pascal-outline-prev-defun) + (define-key map "\M-\C-e" 'pascal-outline-next-defun) + (define-key map "\C-c\C-d" 'pascal-outline-goto-defun) + (define-key map "\C-c\C-s" 'pascal-show-all) + (define-key map "\C-c\C-h" 'pascal-hide-other-defuns) + map) + "Keymap used in Pascal Outline mode.") -(if pascal-outline-map - nil - (if (fboundp 'set-keymap-name) - (set-keymap-name pascal-outline-map 'pascal-outline-map)) - (if (fboundp 'set-keymap-parent) - (set-keymap-parent (setq pascal-outline-map (make-sparse-keymap)) - pascal-mode-map) - (setq pascal-outline-map (copy-keymap pascal-mode-map))) - (define-key pascal-outline-map "\M-\C-a" 'pascal-outline-prev-defun) - (define-key pascal-outline-map "\M-\C-e" 'pascal-outline-next-defun) - (define-key pascal-outline-map "\C-c\C-d" 'pascal-outline-goto-defun) - (define-key pascal-outline-map "\C-c\C-s" 'pascal-show-all) - (define-key pascal-outline-map "\C-c\C-h" 'pascal-hide-other-defuns)) - -(defvar pascal-outline-mode nil "Non-nil while using Pascal Outline mode.") -(make-variable-buffer-local 'pascal-outline-mode) -(set-default 'pascal-outline-mode nil) -(if (not (assoc 'pascal-outline-mode minor-mode-alist)) - (setq minor-mode-alist (append minor-mode-alist - (list '(pascal-outline-mode " Outl"))))) - -(defun pascal-outline (&optional arg) +(define-obsolete-function-alias 'pascal-outline 'pascal-outline-mode) +(define-minor-mode pascal-outline-mode "Outline-line minor mode for Pascal mode. When in Pascal Outline mode, portions of the text being edited may be made invisible. \\<pascal-outline-map> @@ -1531,26 +1519,26 @@ \\[pascal-hide-other-defuns]\ \t- Hide everything but the current function (function under the cursor). \\[pascal-outline]\t- Leave pascal-outline-mode." - (interactive "P") - (setq pascal-outline-mode - (if (null arg) (not pascal-outline-mode) t)) - (if (fboundp 'redraw-mode-line) - (redraw-mode-line)) - (if pascal-outline-mode - (progn - (setq selective-display t) - (use-local-map pascal-outline-map)) - (progn - (setq selective-display nil) - (pascal-show-all) - (use-local-map pascal-mode-map)))) + :init-value nil :lighter " Outl" :keymap pascal-outline-map + (add-to-invisibility-spec '(pascal . t)) + (unless pascal-outline-mode + (pascal-show-all))) (defun pascal-outline-change (b e pascal-flag) - (let ((modp (buffer-modified-p))) - (unwind-protect - (subst-char-in-region b e (if (= pascal-flag ?\n) - ?\^M ?\n) pascal-flag) - (set-buffer-modified-p modp)))) + (save-excursion + ;; This used to use selective display so the boundaries used by the + ;; callers didn't have to be precise, since it just looked for \n or \^M + ;; and switched them. + (goto-char b) (setq b (line-end-position)) + (goto-char e) (setq e (line-end-position))) + (when (> e b) + ;; We could try and optimize this in the case where the region is + ;; already hidden. But I'm not sure it's worth the trouble. + (remove-overlays b e 'invisible 'pascal) + (when (eq pascal-flag ?\^M) + (let ((ol (make-overlay b e nil t nil))) + (overlay-put ol 'invisible 'pascal) + (overlay-put ol 'evaporate t))))) (defun pascal-show-all () "Show all of the text in the buffer." @@ -1628,5 +1616,5 @@ (provide 'pascal) -;;; arch-tag: 04535136-fd93-40b4-a505-c9bebdc051f5 +;; arch-tag: 04535136-fd93-40b4-a505-c9bebdc051f5 ;;; pascal.el ends here
--- a/lisp/progmodes/sh-script.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/progmodes/sh-script.el Sat Oct 15 00:26:05 2005 +0000 @@ -3392,7 +3392,7 @@ "Insert code to setup temporary file handling. See `sh-feature'." (bash sh-append ksh88) (csh (file-name-nondirectory (buffer-file-name)) - "set tmp = /tmp/" str ".$$" \n + "set tmp = `mktemp -t " str ".XXXXXX`" \n "onintr exit" \n _ (and (goto-char (point-max)) (not (bolp)) @@ -3400,8 +3400,8 @@ "exit:\n" "rm $tmp* >&/dev/null" > \n) (es (file-name-nondirectory (buffer-file-name)) - > "local( signals = $signals sighup sigint; tmp = /tmp/" str - ".$pid ) {" \n + > "local( signals = $signals sighup sigint;" \n + > "tmp = `{ mktemp -t " str ".XXXXXX } ) {" \n > "catch @ e {" \n > "rm $tmp^* >[2]/dev/null" \n "throw $e" \n @@ -3412,10 +3412,10 @@ (ksh88 sh-modify sh 7 "EXIT") (rc (file-name-nondirectory (buffer-file-name)) - > "tmp = /tmp/" str ".$pid" \n + > "tmp = `{ mktemp -t " str ".XXXXXX }" \n "fn sigexit { rm $tmp^* >[2]/dev/null }" \n) (sh (file-name-nondirectory (buffer-file-name)) - > "TMP=${TMPDIR:-/tmp}/" str ".$$" \n + > "TMP=`mktemp -t " str ".XXXXXX`" \n "trap \"rm $TMP* 2>/dev/null\" " ?0 \n))
--- a/lisp/recentf.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/recentf.el Sat Oct 15 00:26:05 2005 +0000 @@ -206,6 +206,13 @@ function) :set 'recentf-menu-customization-changed) +(defcustom recentf-menu-open-all-flag nil + "*Non-nil means to show an \"All...\" item in the menu. +This item will replace the \"More...\" item." + :group 'recentf + :type 'boolean + :set 'recentf-menu-customization-changed) + (defcustom recentf-menu-append-commands-flag t "*Non-nil means to append command items to the menu." :group 'recentf @@ -278,7 +285,6 @@ used as shortcuts to open the Nth file." :group 'recentf :type 'boolean) - ;;; Utilities ;; @@ -448,6 +454,25 @@ ;;; Menu building ;; +(defsubst recentf-digit-shortcut-command-name (n) + "Return a command name to open the Nth most recent file. +See also the command `recentf-open-most-recent-file'." + (intern (format "recentf-open-most-recent-file-%d" n))) + +(defvar recentf--shortcuts-keymap + (let ((km (make-sparse-keymap))) + (dolist (k '(0 9 8 7 6 5 4 3 2 1)) + (let ((cmd (recentf-digit-shortcut-command-name k))) + ;; Define a shortcut command. + (defalias cmd + `(lambda () + (interactive) + (recentf-open-most-recent-file ,k))) + ;; Bind it to a digit key. + (define-key km (vector (+ k ?0)) cmd))) + km) + "Digit shortcuts keymap.") + (defvar recentf-menu-items-for-commands (list ["Cleanup list" @@ -548,21 +573,29 @@ (nconc l others)) l)) +;; Count the number of assigned menu shortcuts. +(defvar recentf-menu-shortcuts) + (defun recentf-make-menu-items () "Make menu items from the recent list." (setq recentf-menu-filter-commands nil) - (let ((file-items - (mapcar 'recentf-make-menu-item - (recentf-apply-menu-filter - recentf-menu-filter - (recentf-menu-elements recentf-max-menu-items))))) + (let* ((recentf-menu-shortcuts 0) + (file-items + (mapcar 'recentf-make-menu-item + (recentf-apply-menu-filter + recentf-menu-filter + (recentf-menu-elements recentf-max-menu-items))))) (append (or file-items (list ["No files" t :help "No recent file to open" :active nil])) - (and (< recentf-max-menu-items (length recentf-list)) - (list ["More..." recentf-open-more-files - :help "Open files that are not in the menu" - :active t])) + (if recentf-menu-open-all-flag + (list ["All..." recentf-open-files + :help "Open recent files through a dialog" + :active t]) + (and (< recentf-max-menu-items (length recentf-list)) + (list ["More..." recentf-open-more-files + :help "Open files not in the menu through a dialog" + :active t]))) (and recentf-menu-filter-commands (cons "---" recentf-menu-filter-commands)) @@ -570,15 +603,37 @@ (cons "---" recentf-menu-items-for-commands))))) -(defsubst recentf-make-menu-item (elt) +(defun recentf-menu-value-shortcut (name) + "Return a shorcut digit for file NAME. +Return nil if file NAME is not one of the ten more recent." + (let ((i 0) k) + (while (and (not k) (< i 10)) + (if (string-equal name (nth i recentf-list)) + (progn + (setq recentf-menu-shortcuts (1+ recentf-menu-shortcuts)) + (setq k (% (1+ i) 10))) + (setq i (1+ i)))) + k)) + +(defun recentf-make-menu-item (elt) "Make a menu item from menu element ELT." (let ((item (recentf-menu-element-item elt)) (value (recentf-menu-element-value elt))) (if (recentf-sub-menu-element-p elt) (cons item (mapcar 'recentf-make-menu-item value)) - (vector item (list recentf-menu-action value) - :help (concat "Open " value) - :active t)))) + (let ((k (and (< recentf-menu-shortcuts 10) + (recentf-menu-value-shortcut value)))) + (vector item + ;; If the file name is one of the ten more recent, use + ;; a digit shortcut command to open it, else use an + ;; anonymous command. + (if k + (recentf-digit-shortcut-command-name k) + `(lambda () + (interactive) + (,recentf-menu-action ,value))) + :help (concat "Open " value) + :active t))))) (defsubst recentf-menu-bar () "Return the keymap of the global menu bar." @@ -930,62 +985,6 @@ t))))) l)) -;;; Common dialog stuff -;; -(defun recentf-cancel-dialog (&rest ignore) - "Cancel the current dialog. -IGNORE arguments." - (interactive) - (kill-buffer (current-buffer)) - (message "Dialog canceled")) - -(defun recentf-dialog-goto-first (widget-type) - "Move the cursor to the first WIDGET-TYPE in current dialog. -Go to the beginning of buffer if not found." - (goto-char (point-min)) - (condition-case nil - (let (done) - (widget-move 1) - (while (not done) - (if (eq widget-type (widget-type (widget-at (point)))) - (setq done t) - (widget-move 1)))) - (goto-char (point-min)))) - -(defvar recentf-dialog-mode-map - (let ((km (make-sparse-keymap))) - (set-keymap-parent km widget-keymap) - (define-key km "q" 'recentf-cancel-dialog) - (define-key km [down-mouse-1] 'widget-button-click) - ;; Keys in reverse order of appearence in help. - (dolist (k '("0" "9" "8" "7" "6" "5" "4" "3" "2" "1")) - (define-key km k 'recentf-open-file-with-key)) - km) - "Keymap used in recentf dialogs.") - -(define-derived-mode recentf-dialog-mode nil "recentf-dialog" - "Major mode of recentf dialogs. - -\\{recentf-dialog-mode-map}" - :syntax-table nil - :abbrev-table nil - (setq truncate-lines t)) - -(defmacro recentf-dialog (name &rest forms) - "Show a dialog buffer with NAME, setup with FORMS." - (declare (indent 1) (debug t)) - `(with-current-buffer (get-buffer-create ,name) - ;; Cleanup buffer - (let ((inhibit-read-only t) - (ol (overlay-lists))) - (mapc 'delete-overlay (car ol)) - (mapc 'delete-overlay (cdr ol)) - (erase-buffer)) - (recentf-dialog-mode) - ,@forms - (widget-setup) - (switch-to-buffer (current-buffer)))) - ;;; Hooks ;; (defun recentf-track-opened-file () @@ -1034,6 +1033,59 @@ ;;; Commands ;; +;;; Common dialog stuff +;; +(defun recentf-cancel-dialog (&rest ignore) + "Cancel the current dialog. +IGNORE arguments." + (interactive) + (kill-buffer (current-buffer)) + (message "Dialog canceled")) + +(defun recentf-dialog-goto-first (widget-type) + "Move the cursor to the first WIDGET-TYPE in current dialog. +Go to the beginning of buffer if not found." + (goto-char (point-min)) + (condition-case nil + (let (done) + (widget-move 1) + (while (not done) + (if (eq widget-type (widget-type (widget-at (point)))) + (setq done t) + (widget-move 1)))) + (goto-char (point-min)))) + +(defvar recentf-dialog-mode-map + (let ((km (copy-keymap recentf--shortcuts-keymap))) + (set-keymap-parent km widget-keymap) + (define-key km "q" 'recentf-cancel-dialog) + (define-key km [follow-link] "\C-m") + km) + "Keymap used in recentf dialogs.") + +(define-derived-mode recentf-dialog-mode nil "recentf-dialog" + "Major mode of recentf dialogs. + +\\{recentf-dialog-mode-map}" + :syntax-table nil + :abbrev-table nil + (setq truncate-lines t)) + +(defmacro recentf-dialog (name &rest forms) + "Show a dialog buffer with NAME, setup with FORMS." + (declare (indent 1) (debug t)) + `(with-current-buffer (get-buffer-create ,name) + ;; Cleanup buffer + (let ((inhibit-read-only t) + (ol (overlay-lists))) + (mapc 'delete-overlay (car ol)) + (mapc 'delete-overlay (cdr ol)) + (erase-buffer)) + (recentf-dialog-mode) + ,@forms + (widget-setup) + (switch-to-buffer (current-buffer)))) + ;;; Edit list dialog ;; (defvar recentf-edit-list nil) @@ -1081,14 +1133,14 @@ 'push-button :notify 'recentf-edit-list-validate :help-echo "Delete selected files from the recent list" - "Ok") + "Ok") (widget-insert " ") (widget-create 'push-button :notify 'recentf-cancel-dialog "Cancel") (recentf-dialog-goto-first 'checkbox))) - + ;;; Open file dialog ;; (defun recentf-open-files-action (widget &rest ignore) @@ -1178,30 +1230,29 @@ "Cancel") (recentf-dialog-goto-first 'link))) -(defun recentf-open-file-with-key (n) - "Open the recent file with the shortcut numeric key N. -N must be a valid digit. -`1' opens the first file, `2' the second file, ... `9' the ninth file. -`0' opens the tenth file." - (interactive - (list - (let ((n (string-to-number (this-command-keys)))) - (cond - ((zerop n) 10) - ((and (> n 0) (< n 10)) n) - ((error "Invalid digit key %d" n)))))) - (when recentf--files-with-key - (let ((file (nth (1- n) recentf--files-with-key))) - (unless file (error "Not that many recent files")) - (kill-buffer (current-buffer)) - (funcall recentf-menu-action file)))) - (defun recentf-open-more-files () "Show a dialog to open a recent file that is not in the menu." (interactive) (recentf-open-files (nthcdr recentf-max-menu-items recentf-list) (format "*%s - More*" recentf-menu-title))) +(defun recentf-open-most-recent-file (&optional n) + "Open the Nth most recent file. +Optional argument N must be a valid digit number. It defaults to 1. +1 opens the most recent file, 2 the second most recent one, etc.. +0 opens the tenth most recent file." + (interactive "p") + (cond + ((zerop n) (setq n 10)) + ((and (> n 0) (< n 10))) + ((error "Recent file number out of range [0-9], %d" n))) + (let ((file (nth (1- n) (or recentf--files-with-key recentf-list)))) + (unless file (error "Not that many recent files")) + ;; Close the open files dialog. + (when recentf--files-with-key + (kill-buffer (current-buffer))) + (funcall recentf-menu-action file))) + ;;; Save/load/cleanup the recent list ;; (defconst recentf-save-file-header @@ -1265,6 +1316,11 @@ (message "File %s removed from the recentf list" f))) (message "Cleaning up the recentf list...done (%d removed)" n) (setq recentf-list (nreverse newlist)))) + +;;; The minor mode +;; +(defvar recentf-mode-map (make-sparse-keymap) + "Keymap to use in recentf mode.") ;;;###autoload (define-minor-mode recentf-mode @@ -1273,9 +1329,12 @@ Returns non-nil if the new state is enabled. When recentf mode is enabled, it maintains a menu for visiting files -that were operated on recently." +that were operated on recently. + +\\{recentf-mode-map}" :global t :group 'recentf + :keymap recentf-mode-map (unless (and recentf-mode (recentf-enabled-p)) (if recentf-mode (recentf-load-list)
--- a/lisp/speedbar.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/speedbar.el Sat Oct 15 00:26:05 2005 +0000 @@ -762,7 +762,7 @@ (define-key speedbar-file-key-map "-" 'speedbar-contract-line) (define-key speedbar-file-key-map "[" 'speedbar-expand-line-descendants) - (define-key speedbar-file-key-map "]" 'speedbar-close-line-descendants) + (define-key speedbar-file-key-map "]" 'speedbar-contract-line-descendants) (define-key speedbar-file-key-map " " 'speedbar-toggle-line-expansion)
--- a/lisp/startup.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/startup.el Sat Oct 15 00:26:05 2005 +0000 @@ -121,8 +121,7 @@ ("-bg" 1 x-handle-switch background-color) ("-background" 1 x-handle-switch background-color) ("-ms" 1 x-handle-switch mouse-color) - ("-itype" 0 x-handle-switch icon-type t) - ("-i" 0 x-handle-switch icon-type t) + ("-nbi" 0 x-handle-switch icon-type nil) ("-iconic" 0 x-handle-iconic) ("-xrm" 1 x-handle-xrm-switch) ("-cr" 1 x-handle-switch cursor-color) @@ -143,7 +142,7 @@ ("--foreground-color" 1 x-handle-switch foreground-color) ("--background-color" 1 x-handle-switch background-color) ("--mouse-color" 1 x-handle-switch mouse-color) - ("--icon-type" 0 x-handle-switch icon-type t) + ("--no-bitmap-icon" 0 x-handle-switch icon-type nil) ("--iconic" 0 x-handle-iconic) ("--xrm" 1 x-handle-xrm-switch) ("--cursor-color" 1 x-handle-switch cursor-color) @@ -1254,7 +1253,13 @@ the user caused an input event by hitting a key or clicking with the mouse." (interactive) - (push last-command-event unread-command-events) + (if (and (consp last-command-event) + (eq (posn-window (event-start last-command-event)) + (selected-window))) + ;; This is a mouse-down event in the spash screen window. + ;; Ignore it and consume the corresponding mouse-up event. + (read-event) + (push last-command-event unread-command-events)) (throw 'exit nil))
--- a/lisp/term/x-win.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/term/x-win.el Sat Oct 15 00:26:05 2005 +0000 @@ -54,8 +54,6 @@ ;; -font *font ;; -foreground *foreground ;; -geometry .geometry -;; -i .iconType -;; -itype .iconType ;; -iconic .iconic ;; -name .name ;; -reverse *reverseVideo
--- a/lisp/textmodes/flyspell.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/textmodes/flyspell.el Sat Oct 15 00:26:05 2005 +0000 @@ -772,7 +772,8 @@ ((get this-command 'flyspell-delayed) ;; the current command is not delayed, that ;; is that we must check the word now - (sit-for flyspell-delay)) + (and (not unread-command-events) + (sit-for flyspell-delay))) (t t))) (t t))) @@ -1322,47 +1323,43 @@ ;* flyspell-external-point-words ... */ ;*---------------------------------------------------------------------*/ (defun flyspell-external-point-words () - (let ((buffer flyspell-external-ispell-buffer)) - (set-buffer buffer) + "Mark words from a buffer listing incorrect words in order of appearance. +The list of incorrect words should be in `flyspell-external-ispell-buffer'. +\(We finish by killing that buffer and setting the variable to nil.) +The buffer to mark them in is `flyspell-large-region-buffer'." + + (with-current-buffer flyspell-external-ispell-buffer (goto-char (point-min)) - (let ((pword "") - (pcount 1)) - ;; now we are done with ispell, we have to find the word in - ;; the initial buffer - (while (< (point) (- (point-max) 1)) - ;; we have to fetch the incorrect word - (if (re-search-forward "\\([^\n]+\\)\n" (point-max) t) - (let ((word (match-string 1))) - (if (string= word pword) - (setq pcount (1+ pcount)) - (progn - (setq pword word) - (setq pcount 1))) - (goto-char (match-end 0)) - (if flyspell-issue-message-flag - (message "Spell Checking...%d%% [%s]" - (* 100 (/ (float (point)) (point-max))) - word)) - (set-buffer flyspell-large-region-buffer) - (goto-char flyspell-large-region-beg) - (let ((keep t) - (n 0)) - (while (and (or (< n pcount) keep) - (search-forward word flyspell-large-region-end t)) - (progn - (goto-char (- (point) 1)) - (setq n (1+ n)) - (setq keep (flyspell-word)))) - (if (= n pcount) - (setq flyspell-large-region-beg (point)))) - (set-buffer buffer)) - (goto-char (point-max))))) + ;; Loop over incorrect words. + (while (re-search-forward "\\([^\n]+\\)\n" (point-max) t) + ;; Bind WORD to the next one. + (let ((word (match-string 1))) + ;; Here there used to be code to see if WORD is the same + ;; as the previous iteration, and count the number of consecutive + ;; identical words, and the loop below would search for that many. + ;; That code seemed to be incorrect, and on principle, should + ;; be unnecessary too. -- rms. + (if flyspell-issue-message-flag + (message "Spell Checking...%d%% [%s]" + (* 100 (/ (float (point)) (point-max))) + word)) + ;; Search the other buffer for occurrences of this word, + ;; and check them. Stop when we find one that reports "incorrect". + ;; (I don't understand the reason for that logic, + ;; but I didn't want to change it. -- rms.) + (with-current-buffer flyspell-large-region-buffer + (goto-char flyspell-large-region-beg) + (let ((keep t)) + (while (and keep + (search-forward word flyspell-large-region-end t)) + (goto-char (- (point) 1)) + (setq keep (flyspell-word))) + (setq flyspell-large-region-beg (point)))))) ;; we are done - (if flyspell-issue-message-flag (message "Spell Checking completed.")) - ;; ok, we are done with pointing out incorrect words, we just - ;; have to kill the temporary buffer - (kill-buffer flyspell-external-ispell-buffer) - (setq flyspell-external-ispell-buffer nil))) + (if flyspell-issue-message-flag (message "Spell Checking completed."))) + ;; Kill and forget the buffer with the list of incorrect words. + (kill-buffer flyspell-external-ispell-buffer) + (setq flyspell-external-ispell-buffer nil)) ;*---------------------------------------------------------------------*/ ;* flyspell-large-region ... */
--- a/lisp/textmodes/ispell.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/textmodes/ispell.el Sat Oct 15 00:26:05 2005 +0000 @@ -821,7 +821,7 @@ (let (case-fold-search) (setq ispell-really-aspell (and (search-forward-regexp - "(but really Aspell \\(.*\\))" nil t) + "(but really Aspell \\(.*?\\)\\(-[0-9]+\\)?)" nil t) (progn (setq ispell-aspell-supports-utf8 (not (version< (match-string 1) "0.60")))
--- a/lisp/textmodes/org.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/textmodes/org.el Sat Oct 15 00:26:05 2005 +0000 @@ -5,7 +5,7 @@ ;; Author: Carsten Dominik <dominik at science dot uva dot nl> ;; Keywords: outlines, hypermedia, calendar ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 3.16 +;; Version: 3.17 ;; ;; This file is part of GNU Emacs. ;; @@ -80,6 +80,9 @@ ;; ;; Changes: ;; ------- +;; Version 3.17 +;; - HTML export specifies character set depending on coding-system. +;; ;; Version 3.16 ;; - In tables, directly after the field motion commands like TAB and RET, ;; typing a character will blank the field. Can be turned off with @@ -210,7 +213,7 @@ ;;; Customization variables -(defvar org-version "3.16" +(defvar org-version "3.17" "The version number of the file org.el.") (defun org-version () (interactive) @@ -482,89 +485,6 @@ If the file does not specify a category, then file's base name is used instead.") -(defun org-set-regexps-and-options () - "Precompute regular expressions for current buffer." - (when (eq major-mode 'org-mode) - (let ((re (org-make-options-regexp - '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO" - "STARTUP" "ARCHIVE"))) - (splitre "[ \t]+") - kwds int key value cat arch) - (save-excursion - (save-restriction - (widen) - (goto-char (point-min)) - (while (re-search-forward re nil t) - (setq key (match-string 1) value (match-string 2)) - (cond - ((equal key "CATEGORY") - (if (string-match "[ \t]+$" value) - (setq value (replace-match "" t t value))) - (setq cat (intern value))) - ((equal key "SEQ_TODO") - (setq int 'sequence - kwds (append kwds (org-split-string value splitre)))) - ((equal key "PRI_TODO") - (setq int 'priority - kwds (append kwds (org-split-string value splitre)))) - ((equal key "TYP_TODO") - (setq int 'type - kwds (append kwds (org-split-string value splitre)))) - ((equal key "STARTUP") - (let ((opts (org-split-string value splitre)) - (set '(("fold" org-startup-folded t) - ("nofold" org-startup-folded nil) - ("content" org-startup-folded content) - ("dlcheck" org-startup-with-deadline-check t) - ("nodlcheck" org-startup-with-deadline-check nil))) - l var val) - (while (setq l (assoc (pop opts) set)) - (setq var (nth 1 l) val (nth 2 l)) - (set (make-local-variable var) val)))) - ((equal key "ARCHIVE") - (string-match " *$" value) - (setq arch (replace-match "" t t value)) - (remove-text-properties 0 (length arch) - '(face t fontified t) arch))) - ))) - (and cat (set (make-local-variable 'org-category) cat)) - (and kwds (set (make-local-variable 'org-todo-keywords) kwds)) - (and arch (set (make-local-variable 'org-archive-location) arch)) - (and int (set (make-local-variable 'org-todo-interpretation) int))) - ;; Compute the regular expressions and other local variables - (setq org-todo-kwd-priority-p (equal org-todo-interpretation 'priority) - org-todo-kwd-max-priority (1- (length org-todo-keywords)) - org-ds-keyword-length (+ 2 (max (length org-deadline-string) - (length org-scheduled-string))) - org-done-string - (nth (1- (length org-todo-keywords)) org-todo-keywords) - org-todo-regexp - (concat "\\<\\(" (mapconcat 'regexp-quote org-todo-keywords - "\\|") "\\)\\>") - org-not-done-regexp - (concat "\\<\\(" - (mapconcat 'regexp-quote - (nreverse (cdr (reverse org-todo-keywords))) - "\\|") - "\\)\\>") - org-todo-line-regexp - (concat "^\\(\\*+\\)[ \t]*\\(" - (mapconcat 'regexp-quote org-todo-keywords "\\|") - "\\)? *\\(.*\\)") - org-nl-done-regexp - (concat "[\r\n]\\*+[ \t]+" org-done-string "\\>") - org-looking-at-done-regexp (concat "^" org-done-string "\\>") - org-deadline-regexp (concat "\\<" org-deadline-string) - org-deadline-time-regexp - (concat "\\<" org-deadline-string " *<\\([^>]+\\)>") - org-deadline-line-regexp - (concat "\\<\\(" org-deadline-string "\\).*") - org-scheduled-regexp - (concat "\\<" org-scheduled-string) - org-scheduled-time-regexp - (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")) - (org-set-font-lock-defaults))) - (defgroup org-time nil "Options concerning time stamps and deadlines in Org-mode." :tag "Org Time" @@ -1755,6 +1675,89 @@ )) (defvar org-n-levels (length org-level-faces)) +(defun org-set-regexps-and-options () + "Precompute regular expressions for current buffer." + (when (eq major-mode 'org-mode) + (let ((re (org-make-options-regexp + '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO" + "STARTUP" "ARCHIVE"))) + (splitre "[ \t]+") + kwds int key value cat arch) + (save-excursion + (save-restriction + (widen) + (goto-char (point-min)) + (while (re-search-forward re nil t) + (setq key (match-string 1) value (match-string 2)) + (cond + ((equal key "CATEGORY") + (if (string-match "[ \t]+$" value) + (setq value (replace-match "" t t value))) + (setq cat (intern value))) + ((equal key "SEQ_TODO") + (setq int 'sequence + kwds (append kwds (org-split-string value splitre)))) + ((equal key "PRI_TODO") + (setq int 'priority + kwds (append kwds (org-split-string value splitre)))) + ((equal key "TYP_TODO") + (setq int 'type + kwds (append kwds (org-split-string value splitre)))) + ((equal key "STARTUP") + (let ((opts (org-split-string value splitre)) + (set '(("fold" org-startup-folded t) + ("nofold" org-startup-folded nil) + ("content" org-startup-folded content) + ("dlcheck" org-startup-with-deadline-check t) + ("nodlcheck" org-startup-with-deadline-check nil))) + l var val) + (while (setq l (assoc (pop opts) set)) + (setq var (nth 1 l) val (nth 2 l)) + (set (make-local-variable var) val)))) + ((equal key "ARCHIVE") + (string-match " *$" value) + (setq arch (replace-match "" t t value)) + (remove-text-properties 0 (length arch) + '(face t fontified t) arch))) + ))) + (and cat (set (make-local-variable 'org-category) cat)) + (and kwds (set (make-local-variable 'org-todo-keywords) kwds)) + (and arch (set (make-local-variable 'org-archive-location) arch)) + (and int (set (make-local-variable 'org-todo-interpretation) int))) + ;; Compute the regular expressions and other local variables + (setq org-todo-kwd-priority-p (equal org-todo-interpretation 'priority) + org-todo-kwd-max-priority (1- (length org-todo-keywords)) + org-ds-keyword-length (+ 2 (max (length org-deadline-string) + (length org-scheduled-string))) + org-done-string + (nth (1- (length org-todo-keywords)) org-todo-keywords) + org-todo-regexp + (concat "\\<\\(" (mapconcat 'regexp-quote org-todo-keywords + "\\|") "\\)\\>") + org-not-done-regexp + (concat "\\<\\(" + (mapconcat 'regexp-quote + (nreverse (cdr (reverse org-todo-keywords))) + "\\|") + "\\)\\>") + org-todo-line-regexp + (concat "^\\(\\*+\\)[ \t]*\\(" + (mapconcat 'regexp-quote org-todo-keywords "\\|") + "\\)? *\\(.*\\)") + org-nl-done-regexp + (concat "[\r\n]\\*+[ \t]+" org-done-string "\\>") + org-looking-at-done-regexp (concat "^" org-done-string "\\>") + org-deadline-regexp (concat "\\<" org-deadline-string) + org-deadline-time-regexp + (concat "\\<" org-deadline-string " *<\\([^>]+\\)>") + org-deadline-line-regexp + (concat "\\<\\(" org-deadline-string "\\).*") + org-scheduled-regexp + (concat "\\<" org-scheduled-string) + org-scheduled-time-regexp + (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")) + (org-set-font-lock-defaults))) + ;; Tell the compiler about dynamically scoped variables, ;; and variables from other packages (eval-when-compile @@ -7869,7 +7872,7 @@ table editor in arbitrary modes.") (make-variable-buffer-local 'orgtbl-mode) -(defvar orgtbl-mode-map (make-sparse-keymap) +(defvar orgtbl-mode-map (make-keymap) "Keymap for `orgtbl-mode'.") ;;;###autoload @@ -8827,6 +8830,12 @@ (lang-words nil) (head-count 0) cnt (start 0) + ;; FIXME: The following returns always nil under XEmacs + (coding-system (and (fboundp 'coding-system-get) + (boundp 'buffer-file-coding-system) + buffer-file-coding-system)) + (charset (and coding-system + (coding-system-get coding-system 'mime-charset))) table-open type table-buffer table-orig-buffer ) @@ -8855,13 +8864,14 @@ (insert (format "<html lang=\"%s\"><head> <title>%s</title> -<meta http-equiv=\"Content-Type\" content=\"text/html\"> +<meta http-equiv=\"Content-Type\" content=\"text/html;charset=%s\"> <meta name=generator content=\"Org-mode\"> <meta name=generated content=\"%s %s\"> <meta name=author content=\"%s\"> </head><body> " - language (org-html-expand title) date time author)) + language (org-html-expand title) (or charset "iso-8859-1") + date time author)) (if title (insert (concat "<H1 align=\"center\">" (org-html-expand title) "</H1>\n"))) (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) @@ -9408,6 +9418,9 @@ ;; i k @ expendable from outline-mode ;; 0123456789 ! %^& ()_{} " `' free +;; Make `C-c C-x' a prefix key +(define-key org-mode-map "\C-c\C-x" (make-sparse-keymap)) + ;; TAB key with modifiers (define-key org-mode-map "\C-i" 'org-cycle) (define-key org-mode-map [(meta tab)] 'org-complete) @@ -9587,7 +9600,7 @@ (if (fboundp 'command-remapping) (define-key map (vector 'remap old) new) (substitute-key-definition old new map global-map))))) - + (when (eq org-enable-table-editor 'optimized) ;; If the user wants maximum table support, we need to hijack ;; some standard editing functions
--- a/lisp/textmodes/tex-mode.el Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/textmodes/tex-mode.el Sat Oct 15 00:26:05 2005 +0000 @@ -577,7 +577,7 @@ ;; This is separate from the previous one because of cases like ;; {\em foo {\bf bar} bla} where both match. (list (concat "\\\\\\(bf\\(series\\)?\\)\\>" args) - 2 '(tex-font-lock-append-prop 'bold) 'append))))) + 3 '(tex-font-lock-append-prop 'bold) 'append))))) "Gaudy expressions to highlight in TeX modes.") (defun tex-font-lock-suscript (pos)
--- a/lisp/toolbar/README Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/toolbar/README Sat Oct 15 00:26:05 2005 +0000 @@ -7,4 +7,6 @@ back_arrow.xpm and fwd_arrow.xpm are slightly modified undo and redo. + diropen.xpm is file-manager.png from Gnome hicolor theme. + They are not part of Emacs, but distributed and used by Emacs.
--- a/lisp/toolbar/diropen.xpm Fri Oct 14 03:41:43 2005 +0000 +++ b/lisp/toolbar/diropen.xpm Sat Oct 15 00:26:05 2005 +0000 @@ -1,215 +1,44 @@ /* XPM */ static char * diropen_xpm[] = { -"24 24 188 2", -" c None", -". c #000000", -"+ c #010100", -"@ c #B5B8A5", -"# c #E4E7D2", -"$ c #878A76", -"% c #33342B", -"& c #0B0B0B", -"* c #E2E5CF", -"= c #CFD4AF", -"- c #CED3AE", -"; c #B2B696", -"> c #2D2D25", -", c #23241D", -"' c #9D9F90", -") c #C6CAA6", -"! c #C4C9A5", -"~ c #C6CBA7", -"{ c #C7CCA8", -"] c #C9CEA9", -"^ c #555847", -"/ c #1A1B15", -"( c #20201A", -"_ c #D4D6C2", -": c #BEC2A0", -"< c #B3B896", -"[ c #B0B595", -"} c #B3B797", -"| c #B6BB99", -"1 c #BBC09E", -"2 c #BCC19F", -"3 c #81856C", -"4 c #3E3F32", -"5 c #010101", -"6 c #DADDC8", -"7 c #AFB494", -"8 c #AAAF8F", -"9 c #A3A789", -"0 c #A6AA8B", -"a c #A9AD8E", -"b c #A7AB8D", -"c c #A4A88A", -"d c #A1A588", -"e c #AAAD96", -"f c #B3B5A5", -"g c #B8BBAA", -"h c #BABCAB", -"i c #40413B", -"j c #CACDBB", -"k c #BABDA8", -"l c #0C0C09", -"m c #DDDFCB", -"n c #969B7E", -"o c #9DA286", -"p c #95987C", -"q c #96997E", -"r c #9A9D81", -"s c #999D80", -"t c #9DA184", -"u c #A5AA8B", -"v c #A4A98A", -"w c #A3A889", -"x c #A2A588", -"y c #33352B", -"z c #9B9E83", -"A c #898D74", -"B c #D8DBC9", -"C c #84866E", -"D c #7D8169", -"E c #151612", -"F c #D7DAC9", -"G c #797D67", -"H c #3D3F34", -"I c #E0E0D9", -"J c #EBEDDD", -"K c #E8EBD9", -"L c #D8DBCA", -"M c #1A1A18", -"N c #0A0A09", -"O c #6E7067", -"P c #8D8F84", -"Q c #4A4B45", -"R c #2C2D29", -"S c #4B4C46", -"T c #E7EAD8", -"U c #E3E6D4", -"V c #DEE1D0", -"W c #DADCCC", -"X c #DADCD1", -"Y c #2B2C28", -"Z c #D7DAC6", -"` c #6F735E", -" . c #0D0D0D", -".. c #F4F4EC", -"+. c #606251", -"@. c #92957B", -"#. c #4A4C3E", -"$. c #434438", -"%. c #CACFAB", -"&. c #C6CBA8", -"*. c #C2C6A4", -"=. c #ABB091", -"-. c #23251E", -";. c #494B3D", -">. c #DCDCD4", -",. c #EAECDD", -"'. c #CDD2AD", -"). c #20201B", -"!. c #1C1C17", -"~. c #A4A88B", -"{. c #414337", -"]. c #BABF9D", -"^. c #B5B999", -"/. c #81836C", -"(. c #070806", -"_. c #D5D8C4", -":. c #161616", -"<. c #F2F2EA", -"[. c #CACFAA", -"}. c #050504", -"|. c #3C3D32", -"1. c #C9CEAA", -"2. c #C8CDA9", -"3. c #BFC4A2", -"4. c #3E4035", -"5. c #BCC09F", -"6. c #B6BB9A", -"7. c #B0B494", -"8. c #9DA185", -"9. c #535445", -"0. c #B6B8A7", -"a. c #747470", -"b. c #ECECE2", -"c. c #C3C8A5", -"d. c #C2C7A4", -"e. c #393B30", -"f. c #BFC4A1", -"g. c #BDC2A0", -"h. c #C0C5A2", -"i. c #3A3B31", -"j. c #A9AD8F", -"k. c #A3A78A", -"l. c #80836D", -"m. c #020201", -"n. c #A6A998", -"o. c #B8BC9B", -"p. c #1B1C17", -"q. c #181814", -"r. c #AFB394", -"s. c #ACB091", -"t. c #878A72", -"u. c #9B9F83", -"v. c #9A9D82", -"w. c #8A8D75", -"x. c #4F5243", -"y. c #070705", -"z. c #9E9F91", -"A. c #E5E6DA", -"B. c #ADB192", -"C. c #A6AA8C", -"D. c #A5A98C", -"E. c #4B4D3F", -"F. c #70735F", -"G. c #9FA286", -"H. c #999D81", -"I. c #35362D", -"J. c #2D2E26", -"K. c #8A8D74", -"L. c #71735F", -"M. c #080908", -"N. c #E3E5D9", -"O. c #C0C3AF", -"P. c #94987C", -"Q. c #8F9379", -"R. c #8B8F75", -"S. c #8A8E74", -"T. c #888C73", -"U. c #7D816A", -"V. c #0E0F0C", -"W. c #3E4034", -"X. c #4E5042", -"Y. c #282922", -"Z. c #121310", -"`. c #24251F", -" + c #71745F", -".+ c #6A6D59", -"++ c #434538", -"@+ c #080907", -" ", -" ", -" ", -" . . . . . . . ", -" + @ # # # # # $ % ", -" & * = = = - - ; > ", -", ' * ) ! ~ { ] ] ^ / . . ", -"( _ : < [ } | 1 2 3 4 5 . . . . . . . ", -", 6 7 8 9 0 8 a b c d e f g h . i j k . ", -"l m n o p q r s q t u v w x 9 . y z A . ", -". B C D E . . . . . . . . . . . . . . . 5 5 ", -". F G H I J K K L M N O P Q R . S T U V W X Y ", -". Z ` ...= = = +.. @.= = = #.. $.%.&.*.1 =.-. ", -". Z ;.>.,.'.- - ).!.'.'.'.'.~.. {.&.*.].^./.(. ", -". _.:.<.%.[.%.[.}.|.1.{ 2.2.3.. 4.5.6.7.8.9.l ", -". 0.a.b.c.d.d.*.}.e.f.g.h.g.} . i.[ j.k.l.m. ", -". n.>.o.o.^.} } p.q.r.r.r.s.t.. % u.v.w.x.y. ", -". z.A.B.j.C.D.k.E.. F.G.u.H.I.. J.K.K.L.M. ", -". N.O.P.Q.R.S.T.U.V.}.W.X.Y.Z.. `. +.+++@+ ", -" . . . . . . . . . . . . . . . . . . }. ", -" ", -" ", -" ", -" "}; +"19 24 17 1", +" c None", +". c #000100", +"+ c #C6C9A6", +"@ c #D0D3AF", +"# c #93997C", +"$ c #E6E7D0", +"% c #BEC19E", +"& c #B4B895", +"* c #A7AA88", +"= c #6B6D59", +"- c #4A4E40", +"; c #7C8166", +"> c #898E72", +", c #3C4032", +"' c #575845", +") c #34332C", +"! c #24231D", +" ............... ", +" .+@@@@@@@@@@@@@#. ", +".$@@@@@@@@@@@@@@@#.", +".++++%%%%%%%%%&&&*.", +".&&&&&&&&&&******#.", +".*%+++%%%%%%%%%&=#.", +".*+***********##-#.", +".*+****;===;####-#.", +".*+****=*****###-#.", +".*+****;*****###-#.", +".*+****########>-#.", +".*&######>>>>>>>,>.", +".*#-------------'>)", +".*&&&&&&&&&&&&&*#>)", +".*&************#'>)", +".*&***********##,>)", +".*&****====;###>,>)", +".#&****=**#**##>,;)", +".#&****>****###>,;)", +".#&****########>,;)", +".##''''''''''''',;)", +".#>==============;)", +".''''''''''''''''-!", +" ................. "};
--- a/lispref/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/lispref/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,3 +1,8 @@ +2005-10-08 Kim F. Storm <storm@cua.dk> + + * windows.texi (Window Tree): Rename window-split-tree to window-tree. + Rename manual section accordingly. + 2005-10-04 Kim F. Storm <storm@cua.dk> * windows.texi (Window Split Tree): New section describing
--- a/lispref/windows.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/lispref/windows.texi Sat Oct 15 00:26:05 2005 +0000 @@ -30,7 +30,7 @@ * Size of Window:: Accessing the size of a window. * Resizing Windows:: Changing the size of a window. * Coordinates and Windows:: Converting coordinates to windows. -* Window Split Tree:: The layout and sizes of all windows in a frame. +* Window Tree:: The layout and sizes of all windows in a frame. * Window Configurations:: Saving and restoring the state of the screen. * Window Hooks:: Hooks for scrolling, window size changes, redisplay going past a certain point, @@ -2168,19 +2168,19 @@ argument because it always uses the frame that @var{window} is on. @end defun -@node Window Split Tree -@section The Window Split Tree -@cindex window split tree +@node Window Tree +@section The Window Tree +@cindex window tree - A @dfn{window split tree} specifies the layout, size, and relationship + A @dfn{window tree} specifies the layout, size, and relationship between all windows in one frame. -@defun split-window-tree &optional frame -This function returns the window split tree for frame @var{frame}. +@defun window-tree &optional frame +This function returns the window tree for frame @var{frame}. If @var{frame} is omitted, the selected frame is used. The return value is a list of the form @code{(@var{root} @var{mini})}, -where @var{root} represents the window split tree of the frame's +where @var{root} represents the window tree of the frame's root window, and @var{mini} is the frame's minibuffer window. If the root window is not split, @var{root} is the root window itself.
--- a/make-dist Fri Oct 14 03:41:43 2005 +0000 +++ b/make-dist Sat Oct 15 00:26:05 2005 +0000 @@ -218,13 +218,6 @@ echo "${bogosities}" fi rm -f /tmp/el /tmp/elc - - ### Check for .el files that would overflow the 14-char limit if compiled. - long=`find lisp leim -name '[a-zA-Z0-9]??????????*.el' -print` - if [ "$long" != "" ]; then - echo "The following .el file names are too long:" - echo "$long" - fi fi ### Make sure configure is newer than configure.in. @@ -322,6 +315,7 @@ src src/m src/s src/bitmaps lib-src oldXMenu lwlib \ nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ etc etc/e etc/images etc/images/gnus etc/images/smilies \ + etc/images/mail etc/images/ezimage \ etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \ info man m4 msdos vms mac mac/inc mac/inc/sys \ mac/src mac/Emacs.app mac/Emacs.app/Contents \ @@ -599,8 +593,17 @@ cd ../../${tempdir}/etc/e rm -f *~ \#*\# *,v =* core) -for dir in etc/images/gnus etc/images/smilies \ - etc/tree-widget/default etc/tree-widget/folder ; do +echo "Making links to \`etc/images'" +(cd etc/images + for img in [a-zA-Z]*.xpm [a-zA-Z]*.xbm [a-zA-Z]*.pbm; do + if [ -f $img ]; then + ln $img ../../${tempdir}/etc/images + fi + done) + +for dir in etc/images/gnus etc/images/smilies etc/images/mail \ + etc/images/ezimage etc/tree-widget/default \ + etc/tree-widget/folder ; do echo "Making links to \`${dir}'" (cd ${dir} ln `ls -d * | grep -v CVS | grep -v RCS` ../../../${tempdir}/${dir}
--- a/man/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/man/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,3 +1,107 @@ +2005-10-14 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.texi (Document Server Internals): Addition. + +2005-10-13 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.texi (A note on namespaces): Fix RFC reference. + +2005-10-12 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.texi (RSS): Fix key description. + +2005-10-11 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.texi: Emacs/w3 -> Emacs/W3. + (Browsing the Web): Fix description. + (Web Searches): Ditto. + (Customizing W3): Ditto. + +2005-10-07 Katsumi Yamaoka <yamaoka@jpl.org> + + * gnus.texi (Maildir): Clarify expire-age and expire-group. + +2005-10-13 Kenichi Handa <handa@m17n.org> + + * basic.texi (Position Info): Fix previous change. + +2005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * cmdargs.texi (Icons X): Fix typo. + +2005-10-12 Kenichi Handa <handa@m17n.org> + + * basic.texi (Position Info): Describe the case that Emacs shows + "part of display ...". + +2005-10-11 Jay Belanger <belanger@truman.edu> + + * calc.texi (Integration): Mention using `a i' to compute definite + integrals. + +2005-10-11 Juri Linkov <juri@jurta.org> + + * info.texi: Rearrange nodes. + (Top): Update menu. Change ref `Info for Experts' to + `Advanced Info Commands'. + (Getting Started): Fix description of manual's parts. + (Help-Int): Change xref `Info Search' to `Search Index', and + `Expert Info' to `Advanced'. + (Advanced): Move node one level up. + (Search Text, Search Index): New nodes split out from `Info Search'. + (Go to node, Choose menu subtopic, Create Info buffer): New nodes + split out from `Advanced'. + (Advanced, Emacs Info Variables): De-document editing an Info file + in Info. + (Emacs Info Variables): Move node from `Expert Info' to `Advanced'. + (Creating an Info File): Delete node and move its text to + `Expert Info'. + +2005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * cmdargs.texi (Icons X): -nb => -nbi + +2005-10-10 Chong Yidong <cyd@stupidchicken.com> + + * frames.texi (Speedbar): A couple more clarifications. + +2005-10-11 Nick Roberts <nickrob@snap.net.nz> + + * building.texi (GDB User Interface Layout): Improve diagram. + (Watch Expressions): Explain how to make speedbar global. + (Other GDB User Interface Buffers): Make references more precise. + +2005-10-10 Carsten Dominik <dominik@science.uva.nl> + + * org.texi: (Workflow states): Documented that change in keywords + becomes active only after restart of Emacs. + +2005-10-09 Richard M. Stallman <rms@gnu.org> + + * frames.texi (Speedbar): Clarify the text. + +2005-10-09 Chong Yidong <cyd@stupidchicken.com> + + * frames.texi (Speedbar): Add information on keybindings, + dismissing the speedbar, and buffer display mode. Link to + speedbar manual. + +2005-10-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * cmdargs.texi (Icons X): Removed options -i, -itype, --icon-type, + added -nb, --no-bitmap-icon. + +2005-10-08 Michael Albinus <michael.albinus@gmx.de> + + Sync with Tramp 2.0.51. + +2005-10-08 Nick Roberts <nickrob@snap.net.nz> + + * speedbar.texi (Introduction): Describe new location of speedbar + on menubar. + (Basic Key Bindings): Remove descriptions of bindings that have + been removed. + 2005-10-07 Nick Roberts <nickrob@snap.net.nz> * building.texi (GDB Graphical Interface): Add variables and
--- a/man/basic.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/basic.texi Sat Oct 15 00:26:05 2005 +0000 @@ -636,10 +636,17 @@ The four values after @samp{Char:} describe the character that follows point, first by showing it and then by giving its character code in octal, decimal and hex. For a non-@acronym{ASCII} multibyte character, these are -followed by @samp{ext} and the character's representation, in hex, in +followed by @samp{file} and the character's representation, in hex, in the buffer's coding system, if that coding system encodes the character safely and with a single byte (@pxref{Coding Systems}). If the -character's encoding is longer than one byte, Emacs shows @samp{ext ...}. +character's encoding is longer than one byte, Emacs shows @samp{file ...}. + + However, if the character displayed is in the range 0200 through +0377 octal, it may actually stand for an invalid UTF-8 byte read from +a file. In Emacs, that byte is represented as a sequence of 8-bit +characters, but all of them together display as the original invalid +byte, in octal code. In this case, @kbd{C-x =} shows @samp{part of +display ...} instead of @samp{file}. @samp{point=} is followed by the position of point expressed as a character count. The front of the buffer counts as position 1, one character later
--- a/man/building.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/building.texi Sat Oct 15 00:26:05 2005 +0000 @@ -801,18 +801,21 @@ @code{gdb-use-inferior-io-buffer} is @code{nil}. In this case the source buffer occupies the full width of the frame. -@multitable @columnfractions .5 .5 -@item GUD buffer (I/O of GDB) -@tab Locals buffer -@item -@tab -@item Source buffer -@tab Input/Output (of inferior) buffer -@item -@tab -@item Stack buffer -@tab Breakpoints buffer -@end multitable +@example ++--------------------------------+--------------------------------+ +| | | +| GUD buffer (I/O of GDB) | Locals buffer | +| | | +|--------------------------------+--------------------------------+ +| | | +| Source buffer | I/O buffer (of inferior) | +| | | +|--------------------------------+--------------------------------+ +| | | +| Stack buffer | Breakpoints buffer | +| | | ++--------------------------------+--------------------------------+ +@end example To toggle this layout, do @kbd{M-x gdb-many-windows}. @@ -822,12 +825,12 @@ @code{gdb-restore-windows}. You may also choose which additional buffers you want to display, -either in the same frame or a different one. Select GDB-windows or -GDB-Frames from the menu-bar under the heading GUD. If the menu-bar -is unavailable, type @code{M-x +either in the same frame or a different one. Select them from +@samp{GUD->GDB-windows} or @samp{GUD->GDB-Frames} sub-menu +respectively. If the menu-bar is unavailable, type @code{M-x gdb-display-@var{buffertype}-buffer} or @code{M-x -gdb-frame-@var{buffertype}-buffer} respectively, where @var{buffertype} -is the relevant buffer type e.g breakpoints. +gdb-frame-@var{buffertype}-buffer} respectively, where +@var{buffertype} is the relevant buffer type e.g breakpoints. When you finish debugging then kill the GUD buffer with @kbd{C-x k}, which will also kill all the buffers associated with the session. @@ -874,7 +877,7 @@ The stack buffer displays a @dfn{call stack}, with one line for each of the nested subroutine calls (@dfn{stack frames}) now active in the -program. @xref{Backtrace,,info stack, gdb, The GNU debugger}. +program. @xref{Backtrace,, Backtraces, gdb, The GNU debugger}. @findex gdb-frames-select The selected frame number is displayed in reverse contrast. Move @@ -898,6 +901,12 @@ format. To expand or contract a complex data type, click @kbd{Mouse-2} on the tag to the left of the expression. +By default, watch expressions only display in the speedbar when the +GUD buffer is selected in the attached frame. If you want your watch +expressions to remain visible at all times then select the @samp{GUD} +radio button on the @samp{Speedbar->Displays} sub-menu using +@kbd{Mouse-3}. + @findex gdb-var-delete With the cursor over the root expression of a complex data type, type @kbd{D} to delete it from the speedbar @@ -936,8 +945,8 @@ @item Locals Buffer The locals buffer displays the values of local variables of the -current frame for simple data types (@pxref{Frame Info,,, gdb, The GNU -debugger}). +current frame for simple data types (@pxref{Frame Info, Frame Info, +Information on a frame, gdb, The GNU debugger}). Arrays and structures display their type only. You must display them separately to examine their values. @xref{Watch Expressions}. @@ -958,20 +967,21 @@ @item Threads Buffer @findex gdb-threads-select The threads buffer displays a summary of all threads currently in your -program (@pxref{Threads,,, gdb, The GNU debugger}). Move point to any -thread in the list and press @key{RET} to select it -(@code{gdb-threads-select}) and display the associated source in the -source buffer. Alternatively, click @kbd{Mouse-2} on a thread to -select it. If the locals buffer is displayed then its contents update -to display the variables that are local to the new thread. +program (@pxref{Threads, Threads, Debugging programs with multiple +threads, gdb, The GNU debugger}). Move point to any thread in the +list and press @key{RET} to select it (@code{gdb-threads-select}) and +display the associated source in the source buffer. Alternatively, +click @kbd{Mouse-2} on a thread to select it. If the locals buffer is +displayed then its contents update to display the variables that are +local to the new thread. @item Memory Buffer The memory buffer allows the user to examine sections of program -memory (@pxref{Memory,,, gdb, The GNU debugger}). Click @kbd{Mouse-1} -on the appropriate part of the header line to change the starting -address or number of data items that the buffer displays. -Click @kbd{Mouse-3} on the header line to select the display format -or unit size for these data items. +memory (@pxref{Memory, Memory, Examining memory, gdb, The GNU +debugger}). Click @kbd{Mouse-1} on the appropriate part of the header +line to change the starting address or number of data items that the +buffer displays. Click @kbd{Mouse-3} on the header line to select the +display format or unit size for these data items. @end table
--- a/man/calc.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/calc.texi Sat Oct 15 00:26:05 2005 +0000 @@ -12817,7 +12817,9 @@ get a special ``dimensioned'' Matrix mode in which matrices of unknown size are assumed to be @var{n}x@var{n} square matrices. Then, the function call @samp{idn(1)} will expand into an actual -matrix rather than representing a ``generic'' matrix. +matrix rather than representing a ``generic'' matrix. Simply typing +@kbd{C-u m v} will get you a square Matrix mode, in which matrices of +unknown size are assumed to be square matrices of unspecified size. @cindex Declaring scalar variables Of course these modes are approximations to the true state of @@ -13205,6 +13207,8 @@ The value is a vector. @item matrix The value is a matrix (a rectangular vector of vectors). +@item sqmatrix +The value is a square matrix. @end table These type symbols can be combined with the other type symbols @@ -15978,7 +15982,8 @@ @item Matrix/Scalar mode. Default value is @mathit{-1}. Value is 0 for Scalar -mode, @mathit{-2} for Matrix mode, or @var{N} for +mode, @mathit{-2} for Matrix mode, @mathit{-3} for square Matrix mode, +or @var{N} for @texline @math{N\times N} @infoline @var{N}x@var{N} Matrix mode. Command is @kbd{m v}. @@ -16056,7 +16061,10 @@ Matrix mode (@kbd{m v}; @pxref{Matrix Mode}). @item Matrix@var{n} -Dimensioned Matrix mode (@kbd{C-u @var{n} m v}). +Dimensioned Matrix mode (@kbd{C-u @var{n} m v}; @pxref{Matrix Mode}). + +@item SqMatrix +Square Matrix mode (@kbd{C-u m v}; @pxref{Matrix Mode}). @item Scalar Scalar mode (@kbd{m v}; @pxref{Matrix Mode}). @@ -23498,11 +23506,11 @@ @tindex integ The @kbd{a i} (@code{calc-integral}) [@code{integ}] command computes the indefinite integral of the expression on the top of the stack with -respect to a variable. The integrator is not guaranteed to work for -all integrable functions, but it is able to integrate several large -classes of formulas. In particular, any polynomial or rational function -(a polynomial divided by a polynomial) is acceptable. (Rational functions -don't have to be in explicit quotient form, however; +respect to a prompted-for variable. The integrator is not guaranteed to +work for all integrable functions, but it is able to integrate several +large classes of formulas. In particular, any polynomial or rational +function (a polynomial divided by a polynomial) is acceptable. +(Rational functions don't have to be in explicit quotient form, however; @texline @math{x/(1+x^{-2})} @infoline @expr{x/(1+x^-2)} is not strictly a quotient of polynomials, but it is equivalent to @@ -23511,6 +23519,11 @@ integrated. Finally, rational functions involving trigonometric or hyperbolic functions can be integrated. +With an argument (@kbd{C-u a i}), this command will compute the definite +integral of the expression on top of the stack. In this case, the +command will again prompt for an integration variable, then prompt for a +lower limit and an upper limit. + @ifinfo If you use the @code{integ} function directly in an algebraic formula, you can also write @samp{integ(f,x,v)} which expresses the resulting
--- a/man/cmdargs.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/cmdargs.texi Sat Oct 15 00:26:05 2005 +0000 @@ -1173,12 +1173,12 @@ the screen by iconifying most of the clients. @table @samp -@item -i -@opindex -i -@itemx --icon-type -@opindex --icon-type +@item -nbi +@opindex -nbi +@itemx --no-bitmap-icon +@opindex --no-bitmap-icon @cindex Emacs icon, a gnu -Use a picture of a gnu as the Emacs icon. +Do not use a picture of a gnu as the Emacs icon. @item -iconic @opindex --iconic @@ -1187,8 +1187,8 @@ Start Emacs in iconified state. @end table - The @samp{-i} or @samp{--icon-type} option tells Emacs to use an icon -window containing a picture of the GNU gnu. If omitted, Emacs lets the + By default Emacs uses an icon window containing a picture of the GNU gnu. +The @samp{-nbi} or @samp{--no-bitmap-icon} option tells Emacs to let the window manager choose what sort of icon to use---usually just a small rectangle containing the frame's title.
--- a/man/frames.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/frames.texi Sat Oct 15 00:26:05 2005 +0000 @@ -545,26 +545,53 @@ the variable should be @code{nil}. @node Speedbar -@section Making and Using a Speedbar Frame +@section Speedbar Frames @cindex speedbar - An Emacs frame can have a @dfn{speedbar}, which is a vertical window -that serves as a scrollable menu of files you could visit and tags -within those files. To create a speedbar, type @kbd{M-x speedbar}; this -creates a speedbar window for the selected frame. From then on, you can -click on a file name in the speedbar to visit that file in the -corresponding Emacs frame, or click on a tag name to jump to that tag in -the Emacs frame. +@cindex attached frame (of speedbar) + The @dfn{speedbar} is a special frame for conveniently navigating in +or operating on another frame. The speedbar, when it exists, is +always associated with a specific frame, called its @dfn{attached +frame}; all speedbar operations act on that frame. + + Type @kbd{M-x speedbar} to create the speedbar and associate it with +the current frame. To dismiss the speedbar, type @kbd{M-x speedbar} +again, or select the speedbar and type @kbd{q}. (You can also delete +the speedbar frame like any other Emacs frame.) If you wish to +associate the speedbar with a different frame, dismiss it and call +@kbd{M-x speedbar} from that frame. - Initially the speedbar lists the immediate contents of the current -directory, one file per line. Each line also has a box, @samp{[+]} or -@samp{<+>}, that you can click on with @kbd{Mouse-2} to ``open up'' the -contents of that item. If the line names a directory, opening it adds + The speedbar can operate in various modes. Its default mode is +@dfn{File Display} mode, which shows the files in the current +directory of the selected window of the attached frame, one file per +line. Clicking on a file name visits that file in the selected window +of the attached frame, and clicking on a directory name shows that +directory in the speedbar (@pxref{Mouse References}). Each line also +has a box, @samp{[+]} or @samp{<+>}, that you can click on to +@dfn{expand} the contents of that item. Expanding a directory adds the contents of that directory to the speedbar display, underneath the -directory's own line. If the line lists an ordinary file, opening it up -adds a list of the tags in that file to the speedbar display. When a -file is opened up, the @samp{[+]} changes to @samp{[-]}; you can click -on that box to ``close up'' that file (hide its contents). +directory's own line. Expanding an ordinary file adds a list of the +tags in that file to the speedbar display; you can click on a tag name +to jump to that tag in the selected window of the attached frame. +When a file or directory is expanded, the @samp{[+]} changes to +@samp{[-]}; you can click on that box to @dfn{contract} the item, +hiding its contents. + + You navigate through the speedbar using the keyboard, too. Typing +@kbd{RET} while point is on a line in the speedbar is equivalent to +clicking the item on the current line, and @kbd{SPC} expands or +contracts the item. @kbd{U} displays the parent directory of the +current directory. To copy, delete, or rename the file on the current +line, type @kbd{C}, @kbd{D}, and @kbd{R} respectively. To create a +new directory, type @kbd{M}. + + Another general-purpose speedbar mode is @dfn{Buffer Display} mode; +in this mode, the speedbar displays a list of Emacs buffers. To +switch to this mode, type @kbd{b} in the speedbar. To return to File +Display mode, type @kbd{f}. You can also change the display mode by +clicking @kbd{mouse-3} anywhere in the speedbar window (or +@kbd{mouse-1} on the mode-line) and selecting @samp{Displays} in the +pop-up menu. Some major modes, including Rmail mode, Info, and GUD, have specialized ways of putting useful items into the speedbar for you to @@ -572,10 +599,8 @@ files, and lets you move the current message to another Rmail file by clicking on its @samp{<M>} box. - A speedbar belongs to one Emacs frame, and always operates on that -frame. If you use multiple frames, you can make a speedbar for some or -all of the frames; type @kbd{M-x speedbar} in any given frame to make a -speedbar for it. + For more details on using and programming the speedbar, @xref{Top, +Speedbar,,speedbar, Speedbar Manual}. @node Multiple Displays @section Multiple Displays
--- a/man/gnus.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/gnus.texi Sat Oct 15 00:26:05 2005 +0000 @@ -683,7 +683,7 @@ * Ultimate:: The Ultimate Bulletin Board systems. * Web Archive:: Reading mailing list archived on web. * RSS:: Reading RDF site summary. -* Customizing w3:: Doing stuff to Emacs/w3 from Gnus. +* Customizing W3:: Doing stuff to Emacs/W3 from Gnus. @acronym{IMAP} @@ -8569,8 +8569,8 @@ can use include: @table @code -@item w3 -Use Emacs/w3. +@item W3 +Use Emacs/W3. @item w3m Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}. @@ -15093,8 +15093,9 @@ before it will be expired, or the symbol @code{never} to specify that articles should never be expired. If this parameter is not set, @code{nnmaildir} falls back to the usual -@code{nnmail-expiry-wait}(@code{-function}) variables (overrideable by -the @code{expiry-wait}(@code{-function}) group parameters. If you +@code{nnmail-expiry-wait}(@code{-function}) variables (the +@code{expiry-wait} group parameter overrides @code{nnmail-expiry-wait} +and makes @code{nnmail-expiry-wait-function} ineffective). If you wanted a value of 3 days, you could use something like @code{[(* 3 24 60 60)]}; @code{nnmaildir} will evaluate the form and use the result. An article's age is measured starting from the article file's @@ -15117,8 +15118,8 @@ you use the vector form, the first element is evaluated once for each article. So that form can refer to @code{nnmaildir-article-file-name}, etc., to decide where to put the -article. @emph{If this parameter is not set, @code{nnmaildir} does -not fall back to the @code{expiry-target} group parameter or the +article. @emph{Even if this parameter is not set, @code{nnmaildir} +does not fall back to the @code{expiry-target} group parameter or the @code{nnmail-expiry-target} variable.} @item read-only @@ -15534,10 +15535,11 @@ * Ultimate:: The Ultimate Bulletin Board systems. * Web Archive:: Reading mailing list archived on web. * RSS:: Reading RDF site summary. -* Customizing w3:: Doing stuff to Emacs/w3 from Gnus. -@end menu - -All the web sources require Emacs/w3 and the url library to work. +* Customizing W3:: Doing stuff to Emacs/W3 from Gnus. +@end menu + +All the web sources require Emacs/W3 and the url library or those +alternatives to work. The main caveat with all these web sources is that they probably won't work for a very long time. Gleaning information from the @acronym{HTML} data @@ -15624,8 +15626,9 @@ community. Since @code{nnweb} washes the ads off all the articles, one might think that the providers might be somewhat miffed. We'll see. -You must have the @code{url} and @code{w3} package installed to be able -to use @code{nnweb}. +You must have the @code{url} and @code{W3} package or those alternatives +(try @code{customize-group} on the @samp{mm-url} variable group) +installed to be able to use @code{nnweb}. Virtual server variables: @@ -15845,9 +15848,9 @@ text by default. It is also used by default for non-@acronym{ASCII} group names. -@kindex G R (Summary) -Use @kbd{G R} from the summary buffer to subscribe to a feed---you will -be prompted for the location, the title and the description of the feed. +@kindex G R (Group) +Use @kbd{G R} from the group buffer to subscribe to a feed---you will be +prompted for the location, the title and the description of the feed. The title, which allows any characters, will be used for the group name and the name of the group data file. The description can be omitted. @@ -15940,18 +15943,19 @@ (add-to-list 'nnmail-extra-headers nnrss-url-field) @end lisp -@node Customizing w3 -@subsection Customizing w3 -@cindex w3 +@node Customizing W3 +@subsection Customizing W3 +@cindex W3 @cindex html @cindex url @cindex Netscape -Gnus uses the url library to fetch web pages and Emacs/w3 to display web -pages. Emacs/w3 is documented in its own manual, but there are some -things that may be more relevant for Gnus users. - -For instance, a common question is how to make Emacs/w3 follow links +Gnus uses the url library to fetch web pages and Emacs/W3 (or those +alternatives) to display web pages. Emacs/W3 is documented in its own +manual, but there are some things that may be more relevant for Gnus +users. + +For instance, a common question is how to make Emacs/W3 follow links using the @code{browse-url} functions (which will call some external web browser like Netscape). Here's one way: @@ -15966,7 +15970,7 @@ (w3-fetch-orig url target))))) @end lisp -Put that in your @file{.emacs} file, and hitting links in w3-rendered +Put that in your @file{.emacs} file, and hitting links in W3-rendered @acronym{HTML} in the Gnus article buffers will use @code{browse-url} to follow the link. @@ -16559,7 +16563,7 @@ @cindex namespaces The @acronym{IMAP} protocol has a concept called namespaces, described -by the following text in the RFC: +by the following text in the RFC2060: @display 5.1.2. Mailbox Namespace Naming Convention @@ -16891,34 +16895,48 @@ @item article-begin This setting has to be present in all document type definitions. It -says what the beginning of each article looks like. +says what the beginning of each article looks like. To do more +complicated things that cannot be dealt with a simple regexp, you can +use @code{article-begin-function} instead of this. + +@item article-begin-function +If present, this should be a function that moves point to the beginning +of each article. This setting overrides @code{article-begin}. + +@item head-begin +If present, this should be a regexp that matches the head of the +article. To do more complicated things that cannot be dealt with a +simple regexp, you can use @code{head-begin-function} instead of this. @item head-begin-function If present, this should be a function that moves point to the head of -the article. - -@item nndoc-head-begin -If present, this should be a regexp that matches the head of the -article. - -@item nndoc-head-end +the article. This setting overrides @code{head-begin}. + +@item head-end This should match the end of the head of the article. It defaults to @samp{^$}---the empty line. +@item body-begin +This should match the beginning of the body of the article. It defaults +to @samp{^\n}. To do more complicated things that cannot be dealt with +a simple regexp, you can use @code{body-begin-function} instead of this. + @item body-begin-function If present, this function should move point to the beginning of the body -of the article. - -@item body-begin -This should match the beginning of the body of the article. It defaults -to @samp{^\n}. +of the article. This setting overrides @code{body-begin}. + +@item body-end +If present, this should match the end of the body of the article. To do +more complicated things that cannot be dealt with a simple regexp, you +can use @code{body-end-function} instead of this. @item body-end-function If present, this function should move point to the end of the body of -the article. - -@item body-end -If present, this should match the end of the body of the article. +the article. This setting overrides @code{body-end}. + +@item file-begin +If present, this should match the beginning of the file. All text +before this regexp will be totally ignored. @item file-end If present, this should match the end of the file. All text after this @@ -16949,6 +16967,19 @@ expected to generate a nice head for the article in question. It is called when requesting the headers of all articles. +@item generate-article-function +If present, this function is called to generate an entire article that +Gnus can understand. It is called with the article number as a +parameter when requesting all articles. + +@item dissection-function +If present, this function is called to dissect a document by itself, +overriding @code{first-article}, @code{article-begin}, +@code{article-begin-function}, @code{head-begin}, +@code{head-begin-function}, @code{head-end}, @code{body-begin}, +@code{body-begin-function}, @code{body-end}, @code{body-end-function}, +@code{file-begin}, and @code{file-end}. + @end table Let's look at the most complicated example I can come up with---standard @@ -24388,7 +24419,7 @@ whatever packages the Gnus XEmacs package requires. The current requirements are @samp{gnus}, @samp{mail-lib}, @samp{xemacs-base}, @samp{eterm}, @samp{sh-script}, @samp{net-utils}, @samp{os-utils}, -@samp{dired}, @samp{mh-e}, @samp{sieve}, @samp{ps-print}, @samp{w3}, +@samp{dired}, @samp{mh-e}, @samp{sieve}, @samp{ps-print}, @samp{W3}, @samp{pgg}, @samp{mailcrypt}, @samp{ecrypto}, and @samp{sasl}.
--- a/man/info.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/info.texi Sat Oct 15 00:26:05 2005 +0000 @@ -72,28 +72,28 @@ type the command @kbd{h} now. It brings you to a programmed instruction sequence. -To read about expert-level Info commands, type @kbd{n} twice. This -brings you to @cite{Info for Experts}, skipping over the `Getting +To read about advanced Info commands, type @kbd{n} twice. This +brings you to @cite{Advanced Info Commands}, skipping over the `Getting Started' chapter. @end ifinfo @end ifnottex @menu * Getting Started:: Getting started using an Info reader. +* Advanced:: Advanced Info commands. * Expert Info:: Info commands for experts. -* Creating an Info File:: How to make your own Info file. * Index:: An index of topics, commands, and variables. @end menu -@node Getting Started, Expert Info, Top, Top +@node Getting Started, Advanced, Top, Top @comment node-name, next, previous, up @chapter Getting Started This first part of this Info manual describes how to get around inside of Info. The second part of the manual describes various advanced -Info commands, and how to write an Info as distinct from a Texinfo -file. The third part briefly explains how to generate Info files from -Texinfo files. +Info commands. The third part briefly explains how to generate Info +files from Texinfo files, and describes how to write an Info as +distinct from a Texinfo file. @ifnotinfo This manual is primarily designed for browsing with an Info reader @@ -847,7 +847,7 @@ There is also a short-cut Info command, @kbd{i}, which does all of that for you. It searches the index for a given topic (a string) and goes to the node which is listed in the index for that topic. -@xref{Info Search}, for a full explanation. +@xref{Search Index}, for a full explanation. @kindex l @r{(Info mode)} @findex Info-history-back @@ -905,135 +905,31 @@ >> Now type @kbd{n} to see the last node of the course. @end format - @xref{Expert Info}, for more advanced Info features. + @xref{Advanced}, for more advanced Info features. @c If a menu appears at the end of this node, remove it. @c It is an accident of the menu updating command. -@node Expert Info -@chapter Info for Experts +@node Advanced +@chapter Advanced Info Commands - This chapter describes various Info commands for experts. (If you + This chapter describes various advanced Info commands. (If you are using a stand-alone Info reader, there are additional commands specific to it, which are documented in several chapters of @ref{Top,, GNU Info, info-stnd, GNU Info}.) - This chapter also explains how to write an Info as distinct from a -Texinfo file. (However, in most cases, writing a Texinfo file is -better, since you can use it to make a printed manual or produce other -formats, such as HTML and DocBook, as well as for generating Info -files.) @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU -Documentation Format}. - @menu -* Advanced:: Advanced Info commands: g, e, and 1 - 9. -* Info Search:: How to search Info documents for specific subjects. -* Add:: Describes how to add new nodes to the hierarchy. - Also tells what nodes look like. -* Menus:: How to add to or create menus in Info nodes. -* Cross-refs:: How to add cross-references to Info nodes. -* Tags:: How to make tags tables for Info files. -* Checking:: Checking an Info File. +* Search Text:: How to search Info documents. +* Search Index:: How to search the indices for specific subjects. +* Go to node:: How to go to a node by name. +* Choose menu subtopic:: How to choose a menu subtopic by its number. +* Create Info buffer:: How to create a new Info buffer in Emacs. * Emacs Info Variables:: Variables modifying the behavior of Emacs Info. @end menu -@node Advanced, Info Search, , Expert Info +@node Search Text, Search Index, , Advanced @comment node-name, next, previous, up -@section Advanced Info Commands - -Here are some more Info commands that make it easier to move around. - -@subheading @kbd{g} goes to a node by name - -@kindex g @r{(Info mode)} -@findex Info-goto-node -@cindex go to a node by name - If you know a node's name, you can go there by typing @kbd{g}, the -name, and @key{RET}. Thus, @kbd{gTop@key{RET}} would go to the node -called @samp{Top} in this file. (This is equivalent to @kbd{t}, see -@ref{Help-Int}.) @kbd{gAdvanced@key{RET}} would come back here. -@kbd{g} in Emacs runs the command @code{Info-goto-node}. - - Unlike @kbd{m}, @kbd{g} does not allow the use of abbreviations. -But it does allow completion, so you can type @key{TAB} to complete a -partial node name. - -@cindex go to another Info file - To go to a node in another file, you can include the file name in the -node name by putting it at the front, in parentheses. Thus, -@kbd{g(dir)Top@key{RET}} would go to the Info Directory node, which is -the node @samp{Top} in the Info file @file{dir}. Likewise, -@kbd{g(emacs)Top@key{RET}} goes to the top node of the Emacs manual. - - The node name @samp{*} specifies the whole file. So you can look at -all of the current file by typing @kbd{g*@key{RET}} or all of any -other file with @kbd{g(@var{filename})*@key{RET}}. - -@subheading @kbd{1}--@kbd{9} choose a menu subtopic by its number - -@kindex 1 @r{through} 9 @r{(Info mode)} -@findex Info-nth-menu-item -@cindex select @var{n}'th menu item - If you begrudge each character of type-in which your system requires, -you might like to use the commands @kbd{1}, @kbd{2}, @kbd{3}, @kbd{4}, -@dots{}, @kbd{9}. They are short for the @kbd{m} command together -with a name of a menu subtopic. @kbd{1} goes through the first item -in the current node's menu; @kbd{2} goes through the second item, etc. -In the stand-alone reader, @kbd{0} goes through the last menu item; -this is so you need not count how many entries are there. In Emacs, -the digit keys run the command @code{Info-nth-menu-item}. - - If your display supports multiple fonts, colors or underlining, and -you are using Emacs' Info mode to read Info files, the third, sixth -and ninth menu items have a @samp{*} that stands out, either in color -or in some other attribute, such as underline; this makes it easy to -see at a glance which number to use for an item. - - Some terminals don't support either multiple fonts, colors or -underlining. If you need to actually count items, it is better to use -@kbd{m} instead, and specify the name, or use @key{TAB} to quickly -move between menu items. - -@subheading @kbd{e} makes Info document editable - -@kindex e @r{(Info mode)} -@findex Info-edit -@cindex edit Info document - The Info command @kbd{e} changes from Info mode to an ordinary -Emacs editing mode, so that you can edit the text of the current node. -Type @kbd{C-c C-c} to switch back to Info. The @kbd{e} command is allowed -only if the variable @code{Info-enable-edit} is non-@code{nil}. - - The @kbd{e} command only works in Emacs, where it runs the command -@code{Info-edit}. The stand-alone Info reader doesn't allow you to -edit the Info file, so typing @kbd{e} there goes to the end of the -current node. - -@subheading @kbd{M-n} creates a new independent Info buffer in Emacs - -@kindex M-n @r{(Info mode)} -@findex clone-buffer -@cindex multiple Info buffers - If you are reading Info in Emacs, you can select a new independent -Info buffer in the same window by typing @kbd{M-n}. The new buffer -starts out as an exact copy of the old one, but you will be able to -move independently between nodes in the two buffers. (In Info mode, -@kbd{M-n} runs the Emacs command @code{clone-buffer}.) - - In Emacs Info, you can also produce new Info buffers by giving a -numeric prefix argument to the @kbd{m} and @kbd{g} commands. @kbd{C-u -m} and @kbd{C-u g} go to a new node in exactly the same way that -@kbd{m} and @kbd{g} do, but they do so in a new Info buffer which they -select in another window. - - Another way to produce new Info buffers in Emacs is to use a numeric -prefix argument for the @kbd{C-h i} command (@code{info}) which -switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i} -switches to the buffer @samp{*info*<2>}, creating it if necessary. - -@node Info Search, Add, Advanced, Expert Info -@comment node-name, next, previous, up -@section How to search Info documents for specific subjects +@section How to search Info documents @cindex searching Info documents @cindex Info document as a reference @@ -1046,8 +942,44 @@ describes. Info has powerful searching facilities that let you find things -quickly. You can search either the manual indices or its text. +quickly. You can search either the manual text or its indices. + +@kindex s @r{(Info mode)} +@findex Info-search + The @kbd{s} command allows you to search a whole Info file for a string. +It switches to the next node if and when that is necessary. You +type @kbd{s} followed by the string to search for, terminated by +@key{RET}. To search for the same string again, just @kbd{s} followed +by @key{RET} will do. The file's nodes are scanned in the order +they are in the file, which has no necessary relationship to the +order that they may be in the tree structure of menus and @samp{next} +pointers. But normally the two orders are not very different. In any +case, you can always look at the echo area to find out what node you have +reached, if the header is not visible (this can happen, because @kbd{s} +puts your cursor at the occurrence of the string, not at the beginning +of the node). +@kindex M-s @r{(Info mode)} + In Emacs, @kbd{Meta-s} is equivalent to @kbd{s}. That is for +compatibility with other GNU packages that use @kbd{M-s} for a similar +kind of search command. Both @kbd{s} and @kbd{M-s} run in Emacs the +command @code{Info-search}. + +@kindex C-s @r{(Info mode)} +@kindex C-r @r{(Info mode)} +@findex isearch + Instead of using @kbd{s} in Emacs Info and in the stand-alone Info, +you can use an incremental search started with @kbd{C-s} or @kbd{C-r}. +It can search through multiple Info nodes. @xref{Incremental Search,,, +emacs, The GNU Emacs Manual}. In Emacs, this behavior is enabled only +if the variable @code{Info-isearch-search} is non-@code{nil} +(@pxref{Emacs Info Variables}). + +@node Search Index, Go to node, Search Text, Advanced +@comment node-name, next, previous, up +@section How to search the indices for specific subjects + +@cindex searching Info indices @kindex i @r{(Info mode)} @findex Info-index Since most subjects related to what the manual describes should be @@ -1093,38 +1025,207 @@ that string in all the indices of all the Info documents installed on your system. -@kindex s @r{(Info mode)} -@findex Info-search - The @kbd{s} command allows you to search a whole file for a string. -It switches to the next node if and when that is necessary. You -type @kbd{s} followed by the string to search for, terminated by -@key{RET}. To search for the same string again, just @kbd{s} followed -by @key{RET} will do. The file's nodes are scanned in the order -they are in the file, which has no necessary relationship to the -order that they may be in the tree structure of menus and @samp{next} -pointers. But normally the two orders are not very different. In any -case, you can always look at the echo area to find out what node you have -reached, if the header is not visible (this can happen, because @kbd{s} -puts your cursor at the occurrence of the string, not at the beginning -of the node). +@node Go to node, Choose menu subtopic, Search Index, Advanced +@comment node-name, next, previous, up +@section @kbd{g} goes to a node by name + +@kindex g @r{(Info mode)} +@findex Info-goto-node +@cindex go to a node by name + If you know a node's name, you can go there by typing @kbd{g}, the +name, and @key{RET}. Thus, @kbd{gTop@key{RET}} would go to the node +called @samp{Top} in this file. (This is equivalent to @kbd{t}, see +@ref{Help-Int}.) @kbd{gGo to node@key{RET}} would come back here. +@kbd{g} in Emacs runs the command @code{Info-goto-node}. + + Unlike @kbd{m}, @kbd{g} does not allow the use of abbreviations. +But it does allow completion, so you can type @key{TAB} to complete a +partial node name. + +@cindex go to another Info file + To go to a node in another file, you can include the file name in the +node name by putting it at the front, in parentheses. Thus, +@kbd{g(dir)Top@key{RET}} would go to the Info Directory node, which is +the node @samp{Top} in the Info file @file{dir}. Likewise, +@kbd{g(emacs)Top@key{RET}} goes to the top node of the Emacs manual. + + The node name @samp{*} specifies the whole file. So you can look at +all of the current file by typing @kbd{g*@key{RET}} or all of any +other file with @kbd{g(@var{filename})*@key{RET}}. + +@node Choose menu subtopic, Create Info buffer, Go to node, Advanced +@comment node-name, next, previous, up +@section @kbd{1}--@kbd{9} choose a menu subtopic by its number + +@kindex 1 @r{through} 9 @r{(Info mode)} +@findex Info-nth-menu-item +@cindex select @var{n}'th menu item + If you begrudge each character of type-in which your system requires, +you might like to use the commands @kbd{1}, @kbd{2}, @kbd{3}, @kbd{4}, +@dots{}, @kbd{9}. They are short for the @kbd{m} command together +with a name of a menu subtopic. @kbd{1} goes through the first item +in the current node's menu; @kbd{2} goes through the second item, etc. +In the stand-alone reader, @kbd{0} goes through the last menu item; +this is so you need not count how many entries are there. In Emacs, +the digit keys run the command @code{Info-nth-menu-item}. + + If your display supports multiple fonts, colors or underlining, and +you are using Emacs' Info mode to read Info files, the third, sixth +and ninth menu items have a @samp{*} that stands out, either in color +or in some other attribute, such as underline; this makes it easy to +see at a glance which number to use for an item. + + Some terminals don't support either multiple fonts, colors or +underlining. If you need to actually count items, it is better to use +@kbd{m} instead, and specify the name, or use @key{TAB} to quickly +move between menu items. + +@node Create Info buffer, Emacs Info Variables, Choose menu subtopic, Advanced +@comment node-name, next, previous, up +@section @kbd{M-n} creates a new independent Info buffer in Emacs + +@kindex M-n @r{(Info mode)} +@findex clone-buffer +@cindex multiple Info buffers + If you are reading Info in Emacs, you can select a new independent +Info buffer in the same window by typing @kbd{M-n}. The new buffer +starts out as an exact copy of the old one, but you will be able to +move independently between nodes in the two buffers. (In Info mode, +@kbd{M-n} runs the Emacs command @code{clone-buffer}.) + + In Emacs Info, you can also produce new Info buffers by giving a +numeric prefix argument to the @kbd{m} and @kbd{g} commands. @kbd{C-u +m} and @kbd{C-u g} go to a new node in exactly the same way that +@kbd{m} and @kbd{g} do, but they do so in a new Info buffer which they +select in another window. + + Another way to produce new Info buffers in Emacs is to use a numeric +prefix argument for the @kbd{C-h i} command (@code{info}) which +switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i} +switches to the buffer @samp{*info*<2>}, creating it if necessary. + +@node Emacs Info Variables, , Create Info buffer, Advanced +@comment node-name, next, previous, up +@section Emacs Info-mode Variables + +The following variables may modify the behavior of Info-mode in Emacs; +you may wish to set one or several of these variables interactively, or +in your @file{~/.emacs} init file. @xref{Examining, Examining and Setting +Variables, Examining and Setting Variables, emacs, The GNU Emacs +Manual}. The stand-alone Info reader program has its own set of +variables, described in @ref{Variables,, Manipulating Variables, +info-stnd, GNU Info}. + +@vtable @code +@item Info-directory-list +The list of directories to search for Info files. Each element is a +string (directory name) or @code{nil} (try default directory). If not +initialized Info uses the environment variable @env{INFOPATH} to +initialize it, or @code{Info-default-directory-list} if there is no +@env{INFOPATH} variable in the environment. -@kindex M-s @r{(Info mode)} - In Emacs, @kbd{Meta-s} is equivalent to @kbd{s}. That is for -compatibility with other GNU packages that use @kbd{M-s} for a similar -kind of search command. Both @kbd{s} and @kbd{M-s} run in Emacs the -command @code{Info-search}. +If you wish to customize the Info directory search list for both Emacs +Info and stand-alone Info, it is best to set the @env{INFOPATH} +environment variable, since that applies to both programs. + +@item Info-additional-directory-list +A list of additional directories to search for Info documentation files. +These directories are not searched for merging the @file{dir} file. + +@item Info-mode-hook +Hooks run when @code{Info-mode} is called. By default, it contains +the hook @code{turn-on-font-lock} which enables highlighting of Info +files. You can change how the highlighting looks by customizing the +faces @code{info-node}, @code{info-xref}, @code{info-xref-visited}, +@code{info-header-xref}, @code{info-header-node}, @code{info-menu-header}, +@code{info-menu-star}, and @code{info-title-@var{n}} (where @var{n} +is the level of the section, a number between 1 and 4). To customize +a face, type @kbd{M-x customize-face @key{RET} @var{face} @key{RET}}, +where @var{face} is one of the face names listed here. + +@item Info-fontify-maximum-menu-size +Maximum size of menu to fontify if @code{font-lock-mode} is non-@code{nil}. + +@item Info-fontify-visited-nodes +If non-@code{nil}, menu items and cross-references pointing to visited +nodes are displayed in the @code{info-xref-visited} face. + +@item Info-use-header-line +If non-@code{nil}, Emacs puts in the Info buffer a header line showing +the @samp{Next}, @samp{Prev}, and @samp{Up} links. A header line does +not scroll with the rest of the buffer, making these links always +visible. + +@item Info-hide-note-references +As explained in earlier nodes, the Emacs version of Info normally +hides some text in menus and cross-references. You can completely +disable this feature, by setting this option to @code{nil}. Setting +it to a value that is neither @code{nil} nor @code{t} produces an +intermediate behavior, hiding a limited amount of text, but showing +all text that could potentially be useful. + +@item Info-scroll-prefer-subnodes +If set to a non-@code{nil} value, @key{SPC} and @key{BACKSPACE} (or +@key{DEL}) keys in a menu visit subnodes of the current node before +scrolling to its end or beginning, respectively. For example, if the +node's menu appears on the screen, the next @key{SPC} moves to a +subnode indicated by the following menu item. Setting this option to +@code{nil} results in behavior similar to the stand-alone Info reader +program, which visits the first subnode from the menu only when you +hit the end of the current node. The default is @code{nil}. -@kindex C-s @r{(Info mode)} -@kindex C-r @r{(Info mode)} -@findex isearch - Instead of using @kbd{s} in Emacs Info and in the stand-alone Info, -you can use an incremental search started with @kbd{C-s} or @kbd{C-r}. -It can search through multiple Info nodes. @xref{Incremental Search,,, -emacs, The GNU Emacs Manual}. In Emacs, this behavior is enabled only -if the variable @code{Info-isearch-search} is non-@code{nil} -(@pxref{Emacs Info Variables}). +@item Info-isearch-search +If non-@code{nil}, isearch in Info searches through multiple nodes. + +@item Info-enable-active-nodes +When set to a non-@code{nil} value, allows Info to execute Lisp code +associated with nodes. The Lisp code is executed when the node is +selected. The Lisp code to be executed should follow the node +delimiter (the @samp{DEL} character) and an @samp{execute: } tag, like +this: + +@example +^_execute: (message "This is an active node!") +@end example +@end vtable + + +@node Expert Info +@chapter Info for Experts + + This chapter explains how to write an Info as distinct from a +Texinfo file. However, in most cases, writing a Texinfo file is +better, since you can use it to make a printed manual or produce other +formats, such as HTML and DocBook, as well as for generating Info +files. -@node Add, Menus, Info Search, Expert Info +@code{makeinfo} is a utility that converts a Texinfo file into an Info +file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are +GNU Emacs functions that do the same. + +@xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU +Documentation Format}, to learn how to write a Texinfo file. + +@xref{Creating an Info File,,, texinfo, Texinfo: The GNU Documentation +Format}, to learn how to create an Info file from a Texinfo file. + +@xref{Installing an Info File,,, texinfo, Texinfo: The GNU +Documentation Format}, to learn how to install an Info file after you +have created one. + +However, if you want to edit an Info file manually and install it manually, +here is how. + +@menu +* Add:: Describes how to add new nodes to the hierarchy. + Also tells what nodes look like. +* Menus:: How to add to or create menus in Info nodes. +* Cross-refs:: How to add cross-references to Info nodes. +* Tags:: How to make tags tables for Info files. +* Checking:: Checking an Info File. +@end menu + +@node Add, Menus, , Expert Info @comment node-name, next, previous, up @section Adding a new node to Info @@ -1137,14 +1238,6 @@ Put that topic in the menu in the directory. @xref{Menus, Menu}. @end enumerate - Usually, the way to create the nodes is with Texinfo (@pxref{Top,, -Overview of Texinfo, texinfo, Texinfo: The GNU Documentation Format}); -this has the advantage that you can also make a printed manual or HTML -from them. You would use the @samp{@@dircategory} and -@samp{@@direntry} commands to put the manual into the Info directory. -However, if you want to edit an Info file manually and install it -manually, here is how. - @cindex node delimiters The new node can live in an existing documentation file, or in a new one. It must have a @samp{^_} character before it (invisible to the @@ -1324,7 +1417,7 @@ something quickly in a manual---that is, when you need to use a manual as a reference rather than as a tutorial. We urge you to learn these search commands as well. If you want to do that now, follow this -cross reference to @ref{Info Search}. +cross reference to @ref{Advanced}. Yet another set of commands are meant for experienced users; you can find them by looking in the Directory node for documentation on Info. @@ -1382,8 +1475,7 @@ a @samp{DEL} character, and the character position in the file of the beginning of the node. - -@node Checking, Emacs Info Variables, Tags, Expert Info +@node Checking, , Tags, Expert Info @section Checking an Info File When creating an Info file, it is easy to forget the name of a node when @@ -1402,112 +1494,6 @@ To check an Info file, do @kbd{M-x Info-validate} while looking at any node of the file with Emacs Info mode. -@node Emacs Info Variables, , Checking, Expert Info -@section Emacs Info-mode Variables - -The following variables may modify the behavior of Info-mode in Emacs; -you may wish to set one or several of these variables interactively, or -in your @file{~/.emacs} init file. @xref{Examining, Examining and Setting -Variables, Examining and Setting Variables, emacs, The GNU Emacs -Manual}. The stand-alone Info reader program has its own set of -variables, described in @ref{Variables,, Manipulating Variables, -info-stnd, GNU Info}. - -@vtable @code -@item Info-directory-list -The list of directories to search for Info files. Each element is a -string (directory name) or @code{nil} (try default directory). If not -initialized Info uses the environment variable @env{INFOPATH} to -initialize it, or @code{Info-default-directory-list} if there is no -@env{INFOPATH} variable in the environment. - -If you wish to customize the Info directory search list for both Emacs -Info and stand-alone Info, it is best to set the @env{INFOPATH} -environment variable, since that applies to both programs. - -@item Info-additional-directory-list -A list of additional directories to search for Info documentation files. -These directories are not searched for merging the @file{dir} file. - -@item Info-mode-hook -Hooks run when @code{Info-mode} is called. By default, it contains -the hook @code{turn-on-font-lock} which enables highlighting of Info -files. You can change how the highlighting looks by customizing the -faces @code{info-node}, @code{info-xref}, @code{info-xref-visited}, -@code{info-header-xref}, @code{info-header-node}, @code{info-menu-header}, -@code{info-menu-star}, and @code{info-title-@var{n}} (where @var{n} -is the level of the section, a number between 1 and 4). To customize -a face, type @kbd{M-x customize-face @key{RET} @var{face} @key{RET}}, -where @var{face} is one of the face names listed here. - -@item Info-fontify-maximum-menu-size -Maximum size of menu to fontify if @code{font-lock-mode} is non-@code{nil}. - -@item Info-fontify-visited-nodes -If non-@code{nil}, menu items and cross-references pointing to visited -nodes are displayed in the @code{info-xref-visited} face. - -@item Info-use-header-line -If non-@code{nil}, Emacs puts in the Info buffer a header line showing -the @samp{Next}, @samp{Prev}, and @samp{Up} links. A header line does -not scroll with the rest of the buffer, making these links always -visible. - -@item Info-hide-note-references -As explained in earlier nodes, the Emacs version of Info normally -hides some text in menus and cross-references. You can completely -disable this feature, by setting this option to @code{nil}. Setting -it to a value that is neither @code{nil} nor @code{t} produces an -intermediate behavior, hiding a limited amount of text, but showing -all text that could potentially be useful. - -@item Info-scroll-prefer-subnodes -If set to a non-@code{nil} value, @key{SPC} and @key{BACKSPACE} (or -@key{DEL}) keys in a menu visit subnodes of the current node before -scrolling to its end or beginning, respectively. For example, if the -node's menu appears on the screen, the next @key{SPC} moves to a -subnode indicated by the following menu item. Setting this option to -@code{nil} results in behavior similar to the stand-alone Info reader -program, which visits the first subnode from the menu only when you -hit the end of the current node. The default is @code{nil}. - -@item Info-isearch-search -If non-@code{nil}, isearch in Info searches through multiple nodes. - -@item Info-enable-active-nodes -When set to a non-@code{nil} value, allows Info to execute Lisp code -associated with nodes. The Lisp code is executed when the node is -selected. The Lisp code to be executed should follow the node -delimiter (the @samp{DEL} character) and an @samp{execute: } tag, like -this: - -@example -^_execute: (message "This is an active node!") -@end example - -@item Info-enable-edit -Set to @code{nil}, disables the @samp{e} (@code{Info-edit}) command. A -non-@code{nil} value enables it. @xref{Add, Edit}. -@end vtable - - -@node Creating an Info File -@chapter Creating an Info File from a Texinfo File - -@code{makeinfo} is a utility that converts a Texinfo file into an Info -file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are -GNU Emacs functions that do the same. - -@xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU -Documentation Format}, to learn how to write a Texinfo file. - -@xref{Creating an Info File,,, texinfo, Texinfo: The GNU Documentation -Format}, to learn how to create an Info file from a Texinfo file. - -@xref{Installing an Info File,,, texinfo, Texinfo: The GNU -Documentation Format}, to learn how to install an Info file after you -have created one. - @node Index @unnumbered Index
--- a/man/org.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/org.texi Sat Oct 15 00:26:05 2005 +0000 @@ -4,8 +4,8 @@ @setfilename ../info/org @settitle Org Mode Manual -@set VERSION 3.16 -@set DATE September 2005 +@set VERSION 3.17 +@set DATE October 2005 @dircategory Emacs @direntry
--- a/man/speedbar.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/speedbar.texi Sat Oct 15 00:26:05 2005 +0000 @@ -90,13 +90,13 @@ @chapter Introduction @cindex introduction -To start using speedbar use the command @kbd{M-x speedbar RET} or select -it from the Tools menu in versions of Emacs with speedbar installed by -default. This command will open a new frame to summarize the local -files. On X Window systems or on MS-Windows, speedbar's frame is twenty -characters wide, and will mimic the height of the frame from which it -was started. It positions itself to the left or right of the frame you -started it from. +To start using speedbar use the command @kbd{M-x speedbar RET} or +select it from the @samp{Options->Show/Hide} sub-menu. This command +will open a new frame to summarize the local files. On X Window +systems or on MS-Windows, speedbar's frame is twenty characters wide, +and will mimic the height of the frame from which it was started. It +positions itself to the left or right of the frame you started it +from. To use speedbar effectively, it is important to understand its relationship with the frame you started it from. This frame is the @@ -141,9 +141,6 @@ These key bindings are common across all modes: @table @kbd -@item delete, SPC -@cindex scrolling in speedbar -Scroll up and down one page. @item Q @cindex quitting speedbar Quit speedbar, and kill the frame.
--- a/man/trampver.texi Fri Oct 14 03:41:43 2005 +0000 +++ b/man/trampver.texi Sat Oct 15 00:26:05 2005 +0000 @@ -4,7 +4,7 @@ @c In the Tramp CVS, the version number is auto-frobbed from @c configure.ac, so you should edit that file and run @c "autoconf && ./configure" to change the version number. -@set trampver 2.0.50 +@set trampver 2.0.51 @c Other flags from configuration @set prefix /usr/local
--- a/src/ChangeLog Fri Oct 14 03:41:43 2005 +0000 +++ b/src/ChangeLog Sat Oct 15 00:26:05 2005 +0000 @@ -1,3 +1,242 @@ +2005-10-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macterm.c (note_mouse_movement, XTread_socket): Apply 2005-10-14 + changes for xterm.c. + + * w32term.c (note_mouse_movement, w32_read_socket): Likewise. + +2005-10-14 Kenichi Handa <handa@m17n.org> + + * search.c (search_buffer): Give up BM search on case-fold-search + if one of a target character has a case-equivalence of different + charset even if that target charcter is an ASCII. + + * casefiddle.c (casify_object): Fix for the case that case + conversion change the byte length. + +2005-10-14 Kim F. Storm <storm@cua.dk> + + * xterm.c (note_mouse_movement): Return 1 if mouse moved; 0 otherwise. + (handle_one_xevent): Only clear help_echo_string; restore it if + note_mouse_movement didn't record any mouse movement. + + * xdisp.c (pos_visible_p): Convert w->hscroll to pixels before use. + (remember_mouse_glyph): Clear RECT if mouse is over an image glyph. + + * keyboard.c (make_lispy_position): Adjust wx for left margin if ON_TEXT. + (Fposn_at_x_y): Fix calculation of x coordinate. + (Fposn_at_point): Return nil if point is hscrolled out of view. + +2005-10-13 Andreas Schwab <schwab@suse.de> + + * sysdep.c (request_sigio, unrequest_sigio): Do nothing in + non-interactive mode. + +2005-10-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * xterm.c, w32term.c, macterm.c (note_mouse_movement): Undo last change. + +2005-10-12 Kim F. Storm <storm@cua.dk> + + * xterm.c (handle_one_xevent): Clear last_mouse_glyph on mouse up/down. + +2005-10-12 Romain Francoise <romain@orebokech.com> + + * buffer.c (init_buffer): Rename `rc' to `len' for clarity. + +2005-10-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * xdisp.c (remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to + get end of text rows. Obtain header-line/mode-line rows directly. + + * xterm.c, w32term.c, macterm.c (note_mouse_movement): Restore + help_echo_string if mouse is moved inside last_mouse_glyph. + +2005-10-12 Kim F. Storm <storm@cua.dk> + + * xdisp.c (remember_mouse_glyph): New generic version based on + glyph_rect and remember_mouse_glyph from xterm.c enhanced to + properly handle all different window areas. + + * dispextern.h (remember_mouse_glyph): Add prototype. + + * xterm.c (glyph_rect, remember_mouse_glyph): Remove X versions. + (note_mouse_movement, XTmouse_position): Use generic + remember_mouse_glyph, add last_mouse_glyph arg. + + * w32term.c (note_mouse_movement): Fix last_mouse_glyph check. + (glyph_rect, remember_mouse_glyph): Remove w32 specific versions. + (note_mouse_movement, w32_mouse_position): Use generic + remember_mouse_glyph, add last_mouse_glyph arg. + + * macterm.c (note_mouse_movement): Add call to remember_mouse_glyph. + (glyph_rect, remember_mouse_glyph): Remove mac specific versions. + (XTmouse_position): Adapt to use generic remember_mouse_glyph + instead of pixel_to_glyph_coords. + + * window.c (coordinates_in_window): Fix x position for ON_RIGHT_MARGIN. + Fix x position for ON_TEXT when left margin width > 0. + +2005-10-11 Kim F. Storm <storm@cua.dk> + + * window.c (coordinates_in_window): Fix y position for ON_SCROLL_BAR. + + * keyboard.c (make_lispy_position): Fix buffer calculations for + mouse click or movement in right fringe and the margins. + +2005-10-11 Juanma Barranquero <lekktu@gmail.com> + + * image.c (fn_jpeg_stdio_src): Don't define it. + (init_jpeg_functions): Don't initialize `fn_jpeg_stdio_src'. + (our_common_init_source): Rename from `our_init_source'. + (our_common_term_source): Rename from `our_term_source'. + (our_memory_fill_input_buffer): Rename from + `our_fill_input_buffer'. + (our_memory_skip_input_data): Rename from `our_skip_input_data'. + (jpeg_memory_src): Use the new names. + (struct jpeg_stdio_mgr): New struct. + (JPEG_STDIO_BUFFER_SIZE): New constant. + (our_stdio_fill_input_buffer, our_stdio_skip_input_data) + (jpeg_file_src): New functions. + (jpeg_load): Use `jpeg_file_src' instead of `fn_jpeg_stdio_src'. + +2005-10-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macterm.c (PER_CHAR_METRIC): Remove unused macro. + (fm_font_family_alist): New variable. + (syms_of_macterm): Initialize and staticpro it. + (decode_mac_font_name): Replace '-' in family name with '_' if it + occurs just once. Lower family name. + (parse_x_font_name): Rename from x_font_name_to_mac_font_name. + All uses changed. Remove argument MF and code conversion for it. + Add argument SIZE. Rename argument MF_DECODED to FAMILY, and CS + to CHARSET. Parse font size. Lower family name. Return integer + value for status of parsing. + (init_font_name_table) [USE_ATSUI]: Use decode_mac_font_name. + Don't use Fdowncase because family name is already lowered by + decode_mac_font_name. + (init_font_name_table): Always call decode_mac_font_name. Add + pair of family name and its reference to fm_font_family_alist. + (mac_clear_font_name_table): Clear fm_font_family_alist. + (XLoadQueryFont): Move font size parsing part to parse_x_font_name. + Lookup fm_font_family_alist to get font family reference. + (XLoadQueryFont) [USE_ATSUI]: Don't use Fdowncase because family + name is already lowered by parse_x_font_name. + +2005-10-11 Kim F. Storm <storm@cua.dk> + + * xterm.c (glyph_rect): Return 0 if position is outside text area. + + * keyboard.c (make_lispy_position): Fix buffer position calculation for + mouse click or movement in fringe. + +2005-10-10 Jason Rumney <jasonr@gnu.org> + + * xterm.c (remember_mouse_glyph): New function. + (note_mouse_movement): Use it to remember the current glyph if changed. + (XTmouse_position): Fix calculation of fake glyph under mouse. + Move code to calculate glyph under mouse into remember_mouse_glyph. + +2005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * emacs.c (USAGE3, standard_args): -nb => -nbi. + +2005-10-10 Juanma Barranquero <lekktu@gmail.com> + + * frame.c (Fredirect_frame_focus): Fix typos in docstring. + (next_frame, prev_frame, set_term_frame_name): Make static. + + * window.c (Fwindow_tree): Fix spelling. + +2005-10-09 Romain Francoise <romain@orebokech.com> + + * window.c (Fwindow_end): Don't try to redisplay if non-interactive. + +2005-10-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * emacs.c (standard_args): Remove options -i, -itype, --icon-type. + Add options -nb, --no-bitmap-icon. + + * xfns.c (Fx_create_frame): Make bitmapIcon have default on. + +2005-10-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macgui.h (MAX_CLIP_RECTS): New define. + (struct _XGC): New member clip_region. + (struct _XGC) [MAC_OSX && USE_ATSUI]: New members n_clip_rects and + clip_rects. + + * macterm.c (GC_CLIP_REGION): New macro. + (saved_port_clip_region): New variable. + (mac_begin_clip, mac_end_clip): New functions. + (XDrawLine, mac_erase_rectangle, mac_draw_bitmap, XFillRectangle) + (mac_draw_rectangle, mac_draw_string_common, mac_copy_area) + (mac_copy_area_with_mask, mac_scroll_area): Use them. + (mac_set_clip_rectangle, mac_reset_clipping): Remove functions. + [USE_ATSUI] (atsu_get_text_layout_with_text_ptr) + [MAC_OS_X_VERSION_MAX_ALLOWED < 1020]: Specify kATSLineFractDisable. + (mac_draw_string_common) [MAC_OSX && USE_ATSUI]: Clip to clipping + rectangles stored in gc. + (XFreeGC): Dispose of clipping region. + (mac_set_clip_rectangles, mac_reset_clip_rectangles): New functions. + (x_draw_fringe_bitmap, x_set_glyph_string_clipping) + (x_draw_relief_rect, x_draw_box_rect, x_draw_stretch_glyph_string) + (x_draw_glyph_string, x_clip_to_row, x_draw_hollow_cursor) + (x_draw_bar_cursor): Use them. + (x_set_glyph_string_clipping): Use get_glyph_string_clip_rects to + get multiple clipping rectangles. + + * macterm.h (mac_term_init): Add types to extern. + (struct mac_output): Remove members mWP and pending_menu_activation. + Put members scroll_bar_foreground_pixel and + scroll_bar_background_pixel in #if 0. + (FRAME_MAC_WINDOW, FRAME_X_WINDOW): Use window_desc. + + * xfaces.c (x_create_gc, x_free_gc) [MAC_OS]: Add BLOCK_INPUT. + Add debug code. + +2005-10-08 Kim F. Storm <storm@cua.dk> + + * window.c (window_tree, Fwindow_tree): Rename fns added 2005-10-04. + +2005-10-07 Kim F. Storm <storm@cua.dk> + + * dispnew.c (redraw_overlapped_rows, redraw_overlapping_rows) + [!HAVE_WINDOW_SYSTEM]: Don't declare them... + (update_window) [!HAVE_WINDOW_SYSTEM]: ...and don't call them. + +2005-10-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * dispextern.h (struct glyph_string): Rename member for_overlaps_p + to for_overlaps. Now occupy 3 bits. + (OVERLAPS_PRED, OVERLAPS_SUCC, OVERLAPS_BOTH) + (OVERLAPS_ERASED_CURSOR): New defines. + (struct redisplay_interface): Add new OVERLAPS arg to member + fix_overlapping_area. + (x_fix_overlapping_area): Add new OVERLAPS arg. + (get_glyph_string_clip_rects): Add extern. + + * dispnew.c (redraw_overlapping_rows): Call + rif->fix_overlapping_area with new OVERLAPS arg as redrawn part. + + * xdisp.c: Rename member for_overlaps_p in struct glyph_string to + for_overlaps. + (get_glyph_string_clip_rects): New function created from + get_glyph_string_clip_rect. Set clipping rectangles according to the + value of for_overlaps. Enable to store multiple clipping rectangles. + (get_glyph_string_clip_rect): Use get_glyph_string_clip_rects. + (fill_composite_glyph_string, fill_glyph_string, draw_glyphs): + Rename argument OVERLAPS_P to OVERLAPS. All uses in macros changed. + (x_fix_overlapping_area): Add OVERLAPS arg. Pass it to draw_glyphs. + (draw_phys_cursor_glyph): Set width of erased cursor to use it for + calculating clipping rectangles later. Call x_fix_overlapping_area + with new OVERLAPS arg to draw only erased cursor area. + (expose_overlaps): Call x_fix_overlapping_area with new OVERLAPS arg + to draw overlaps in both preceding and succeeding rows. + + * xterm.c, w32term.c, macterm.c: Rename member for_overlaps_p in + struct glyph_string to for_overlaps. + 2005-10-04 Kim F. Storm <storm@cua.dk> * window.c (window_split_tree): New function. @@ -130,9 +369,9 @@ * systime.h (get_operating_system_release): ... here. - * xterm.c (set_vertical_scroll_bar): Move prototype ... - (handle_one_xevent): Refer to union field to match the type - required by the function definition. + * xterm.c (handle_one_xevent): Refer to union field to match the + type required by the function definition. + (set_vertical_scroll_bar): Move prototype ... * xterm.h: ... here. @@ -1483,7 +1722,7 @@ 2005-06-04 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * macmenu.c (cleanup_popup_menu): New function. - (Fx_popup_menu): unwind protect cleanup_popup_menu in case + (Fx_popup_menu): Unwind protect cleanup_popup_menu in case mac_menu_show Quit:s. (mac_menu_show): Quit on cancel if not popped up on click (i.e. a dialog). @@ -3658,7 +3897,7 @@ [TARGET_API_MAC_CARBON] (Fx_file_dialog): Use MAXPATHLEN for size of filename string. Set event callback function when creating dialog boxes. Add code conversions for filenames. Don't dispose - apple event descriptor record if failed to create it. + of apple event descriptor record if failed to create it. * macterm.c: Include sys/param.h. [USE_CARBON_EVENTS] (mac_handle_window_event): Add handler for @@ -6760,7 +6999,8 @@ (x_scroll_bar_handle_click): Set `(PORTION . WHOLE)' part in a scroll-bar click event. (mac_define_frame_cursor): Change the pointer shape. - (x_free_frame_resources): Reset tip_window to NULL when it is disposed. + (x_free_frame_resources): Reset tip_window to NULL when it is + disposed of. [!TARGET_API_MAC_CARBON] (arrow_cursor): New variable. [!TARGET_API_MAC_CARBON] (do_init_managers): Initialize arrow_cursor. (do_window_update): Don't do anything if the updated window is the @@ -16779,7 +17019,7 @@ * w32.c (sys_getpeername, fcntl): New functions. (_sys_read_ahead): Temporarily block on non-blocking sockets. - * w32proc.c: include sys/file.h. + * w32proc.c: Include sys/file.h. 2002-05-03 Colin Walters <walters@verbum.org>
--- a/src/buffer.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/buffer.c Sat Oct 15 00:26:05 2005 +0000 @@ -5130,7 +5130,7 @@ char *pwd; struct stat dotstat, pwdstat; Lisp_Object temp; - int rc; + int len; #ifdef USE_MMAP_FOR_BUFFERS { @@ -5157,13 +5157,13 @@ #ifndef VMS /* Maybe this should really use some standard subroutine whose definition is filename syntax dependent. */ - rc = strlen (pwd); - if (!(IS_DIRECTORY_SEP (pwd[rc - 1]))) + len = strlen (pwd); + if (!(IS_DIRECTORY_SEP (pwd[len - 1]))) { /* Grow buffer to add directory separator and '\0'. */ - pwd = (char *) xrealloc (pwd, rc + 2); - pwd[rc] = DIRECTORY_SEP; - pwd[rc + 1] = '\0'; + pwd = (char *) xrealloc (pwd, len + 2); + pwd[len] = DIRECTORY_SEP; + pwd[len + 1] = '\0'; } #endif /* not VMS */
--- a/src/dispextern.h Fri Oct 14 03:41:43 2005 +0000 +++ b/src/dispextern.h Sat Oct 15 00:26:05 2005 +0000 @@ -1182,10 +1182,18 @@ stipple pattern. */ unsigned stippled_p : 1; - /* 1 means only the foreground of this glyph string must be drawn, - and we should use the physical height of the line this glyph - string appears in as clip rect. */ - unsigned for_overlaps_p : 1; +#define OVERLAPS_PRED (1 << 0) +#define OVERLAPS_SUCC (1 << 1) +#define OVERLAPS_BOTH (OVERLAPS_PRED | OVERLAPS_SUCC) +#define OVERLAPS_ERASED_CURSOR (1 << 2) + /* Non-zero means only the foreground of this glyph string must be + drawn, and we should use the physical height of the line this + glyph string appears in as clip rect. If the value is + OVERLAPS_ERASED_CURSOR, the clip rect is restricted to the rect + of the erased cursor. OVERLAPS_PRED and OVERLAPS_SUCC mean we + draw overlaps with the preceding and the succeeding rows, + respectively. */ + unsigned for_overlaps : 3; /* The GC to use for drawing this glyph string. */ #if defined(HAVE_X_WINDOWS) || defined(MAC_OS) @@ -2260,7 +2268,7 @@ This function is called from redraw_overlapping_rows after desired rows have been made current. */ void (*fix_overlapping_area) P_ ((struct window *w, struct glyph_row *row, - enum glyph_row_area area)); + enum glyph_row_area area, int)); #ifdef HAVE_WINDOW_SYSTEM @@ -2603,6 +2611,8 @@ void pixel_to_glyph_coords P_ ((struct frame *, int, int, int *, int *, NativeRectangle *, int)); int glyph_to_pixel_coords P_ ((struct window *, int, int, int *, int *)); +void remember_mouse_glyph P_ ((struct frame *, int, int, NativeRectangle *)); + void mark_window_display_accurate P_ ((Lisp_Object, int)); void redisplay_preserve_echo_area P_ ((int)); void set_cursor_from_row P_ ((struct window *, struct glyph_row *, @@ -2660,7 +2670,7 @@ extern struct cursor_pos output_cursor; extern void x_fix_overlapping_area P_ ((struct window *, struct glyph_row *, - enum glyph_row_area)); + enum glyph_row_area, int)); extern void draw_phys_cursor_glyph P_ ((struct window *, struct glyph_row *, enum draw_glyphs_face)); @@ -2678,6 +2688,8 @@ extern void x_draw_vertical_border P_ ((struct window *w)); extern void frame_to_window_pixel_xy P_ ((struct window *, int *, int *)); +extern int get_glyph_string_clip_rects P_ ((struct glyph_string *, + NativeRectangle *, int)); extern void get_glyph_string_clip_rect P_ ((struct glyph_string *, NativeRectangle *nr)); extern Lisp_Object find_hot_spot P_ ((Lisp_Object, int, int));
--- a/src/dispnew.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/dispnew.c Sat Oct 15 00:26:05 2005 +0000 @@ -3949,6 +3949,7 @@ } } +#ifdef HAVE_WINDOW_SYSTEM /* Redraw lines from the current matrix of window W that are overlapped by other rows. YB is bottom-most y-position in W. */ @@ -4021,23 +4022,33 @@ if (row->overlapping_p && i > 0 && bottom_y < yb) { - if (row->used[LEFT_MARGIN_AREA]) - rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA); - - if (row->used[TEXT_AREA]) - rif->fix_overlapping_area (w, row, TEXT_AREA); - - if (row->used[RIGHT_MARGIN_AREA]) - rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA); - - /* Record in neighbour rows that ROW overwrites part of their - display. */ - if (row->phys_ascent > row->ascent && i > 0) - MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1; - if ((row->phys_height - row->phys_ascent - > row->height - row->ascent) - && bottom_y < yb) - MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p = 1; + int overlaps = 0; + + if (MATRIX_ROW_OVERLAPS_PRED_P (row) + && !MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p) + overlaps |= OVERLAPS_PRED; + if (MATRIX_ROW_OVERLAPS_SUCC_P (row) + && !MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p) + overlaps |= OVERLAPS_SUCC; + + if (overlaps) + { + if (row->used[LEFT_MARGIN_AREA]) + rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA, overlaps); + + if (row->used[TEXT_AREA]) + rif->fix_overlapping_area (w, row, TEXT_AREA, overlaps); + + if (row->used[RIGHT_MARGIN_AREA]) + rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA, overlaps); + + /* Record in neighbour rows that ROW overwrites part of + their display. */ + if (overlaps & OVERLAPS_PRED) + MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1; + if (overlaps & OVERLAPS_SUCC) + MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p = 1; + } } if (bottom_y >= yb) @@ -4045,6 +4056,8 @@ } } +#endif /* HAVE_WINDOW_SYSTEM */ + #ifdef GLYPH_DEBUG @@ -4205,11 +4218,13 @@ /* Fix the appearance of overlapping/overlapped rows. */ if (!paused_p && !w->pseudo_window_p) { +#ifdef HAVE_WINDOW_SYSTEM if (changed_p && rif->fix_overlapping_area) { redraw_overlapped_rows (w, yb); redraw_overlapping_rows (w, yb); } +#endif /* Make cursor visible at cursor position of W. */ set_window_cursor_after_update (w);
--- a/src/emacs.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/emacs.c Sat Oct 15 00:26:05 2005 +0000 @@ -311,7 +311,7 @@ --fullscreen, -fs make first frame fullscreen\n\ --fullwidth, -fw make the first frame wide as the screen\n\ --geometry, -g GEOMETRY window geometry\n\ ---icon-type, -i use picture of gnu for Emacs icon\n\ +--no-bitmap-icon, -nbi do not use picture of gnu for Emacs icon\n\ --iconic start Emacs in iconified state\n\ --internal-border, -ib WIDTH width between text and main border\n\ --line-spacing, -lsp PIXELS additional space to put between lines\n\ @@ -1836,8 +1836,7 @@ { "-u", "--user", 30, 1 }, { "-user", 0, 30, 1 }, { "-debug-init", "--debug-init", 20, 0 }, - { "-i", "--icon-type", 15, 0 }, - { "-itype", 0, 15, 0 }, + { "-nbi", "--no-bitmap-icon", 15, 0 }, { "-iconic", "--iconic", 15, 0 }, { "-D", "--basic-display", 12, 0}, { "-basic-display", 0, 12, 0},
--- a/src/frame.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/frame.c Sat Oct 15 00:26:05 2005 +0000 @@ -901,7 +901,7 @@ If MINIBUF is 0, include all visible and iconified frames. Otherwise, include all frames. */ -Lisp_Object +static Lisp_Object next_frame (frame, minibuf) Lisp_Object frame; Lisp_Object minibuf; @@ -978,7 +978,7 @@ If MINIBUF is 0, include all visible and iconified frames. Otherwise, include all frames. */ -Lisp_Object +static Lisp_Object prev_frame (frame, minibuf) Lisp_Object frame; Lisp_Object minibuf; @@ -1813,7 +1813,7 @@ a surrogate minibuffer frame when a frame doesn't have its own minibuffer window. -A frame's focus redirection can be changed by select-frame. If frame +A frame's focus redirection can be changed by `select-frame'. If frame FOO is selected, and then a different frame BAR is selected, any frames redirecting their focus to FOO are shifted to redirect their focus to BAR. This allows focus redirection to work properly when the @@ -1821,7 +1821,7 @@ This means that a frame whose focus is redirected to itself is treated differently from a frame whose focus is redirected to nil; the former -is affected by select-frame, while the latter is not. +is affected by `select-frame', while the latter is not. The redirection lasts until `redirect-frame-focus' is called to change it. */) (frame, focus_frame) @@ -1952,7 +1952,7 @@ /* Set the name of the terminal frame. Also used by MSDOS frames. Modeled after x_set_name which is used for WINDOW frames. */ -void +static void set_term_frame_name (f, name) struct frame *f; Lisp_Object name;
--- a/src/image.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/image.c Sat Oct 15 00:26:05 2005 +0000 @@ -6358,7 +6358,6 @@ DEF_IMGLIB_FN (jpeg_destroy_decompress); DEF_IMGLIB_FN (jpeg_read_header); DEF_IMGLIB_FN (jpeg_read_scanlines); -DEF_IMGLIB_FN (jpeg_stdio_src); DEF_IMGLIB_FN (jpeg_std_error); DEF_IMGLIB_FN (jpeg_resync_to_restart); @@ -6374,7 +6373,6 @@ LOAD_IMGLIB_FN (library, jpeg_read_scanlines); LOAD_IMGLIB_FN (library, jpeg_start_decompress); LOAD_IMGLIB_FN (library, jpeg_read_header); - LOAD_IMGLIB_FN (library, jpeg_stdio_src); LOAD_IMGLIB_FN (library, jpeg_CreateDecompress); LOAD_IMGLIB_FN (library, jpeg_destroy_decompress); LOAD_IMGLIB_FN (library, jpeg_std_error); @@ -6400,7 +6398,6 @@ #define fn_jpeg_destroy_decompress jpeg_destroy_decompress #define fn_jpeg_read_header jpeg_read_header #define fn_jpeg_read_scanlines jpeg_read_scanlines -#define fn_jpeg_stdio_src jpeg_stdio_src #define fn_jpeg_std_error jpeg_std_error #define jpeg_resync_to_restart_wrapper jpeg_resync_to_restart @@ -6427,7 +6424,17 @@ libjpeg.doc from the JPEG lib distribution. */ static void -our_init_source (cinfo) +our_common_init_source (cinfo) + j_decompress_ptr cinfo; +{ +} + + +/* Method to terminate data source. Called by + jpeg_finish_decompress() after all data has been processed. */ + +static void +our_common_term_source (cinfo) j_decompress_ptr cinfo; { } @@ -6438,7 +6445,7 @@ so this only adds a fake end of input marker at the end. */ static boolean -our_fill_input_buffer (cinfo) +our_memory_fill_input_buffer (cinfo) j_decompress_ptr cinfo; { /* Insert a fake EOI marker. */ @@ -6458,7 +6465,7 @@ is the JPEG data source manager. */ static void -our_skip_input_data (cinfo, num_bytes) +our_memory_skip_input_data (cinfo, num_bytes) j_decompress_ptr cinfo; long num_bytes; { @@ -6475,16 +6482,6 @@ } -/* Method to terminate data source. Called by - jpeg_finish_decompress() after all data has been processed. */ - -static void -our_term_source (cinfo) - j_decompress_ptr cinfo; -{ -} - - /* Set up the JPEG lib for reading an image from DATA which contains LEN bytes. CINFO is the decompression info structure created for reading the image. */ @@ -6508,16 +6505,130 @@ } src = (struct jpeg_source_mgr *) cinfo->src; - src->init_source = our_init_source; - src->fill_input_buffer = our_fill_input_buffer; - src->skip_input_data = our_skip_input_data; + src->init_source = our_common_init_source; + src->fill_input_buffer = our_memory_fill_input_buffer; + src->skip_input_data = our_memory_skip_input_data; src->resync_to_restart = jpeg_resync_to_restart_wrapper; /* Use default method. */ - src->term_source = our_term_source; + src->term_source = our_common_term_source; src->bytes_in_buffer = len; src->next_input_byte = data; } +struct jpeg_stdio_mgr +{ + struct jpeg_source_mgr mgr; + boolean finished; + FILE *file; + JOCTET *buffer; +}; + + +/* Size of buffer to read JPEG from file. + Not too big, as we want to use alloc_small. */ +#define JPEG_STDIO_BUFFER_SIZE 8192 + + +/* Fill input buffer method for JPEG data source manager. Called + whenever more data is needed. The data is read from a FILE *. */ + +static boolean +our_stdio_fill_input_buffer (cinfo) + j_decompress_ptr cinfo; +{ + struct jpeg_stdio_mgr *src; + + src = (struct jpeg_stdio_mgr *) cinfo->src; + if (!src->finished) + { + size_t bytes; + + bytes = fread (src->buffer, 1, JPEG_STDIO_BUFFER_SIZE, src->file); + if (bytes > 0) + src->mgr.bytes_in_buffer = bytes; + else + { + WARNMS (cinfo, JWRN_JPEG_EOF); + src->finished = 1; + src->buffer[0] = (JOCTET) 0xFF; + src->buffer[1] = (JOCTET) JPEG_EOI; + src->mgr.bytes_in_buffer = 2; + } + src->mgr.next_input_byte = src->buffer; + } + + return 1; +} + + +/* Method to skip over NUM_BYTES bytes in the image data. CINFO->src + is the JPEG data source manager. */ + +static void +our_stdio_skip_input_data (cinfo, num_bytes) + j_decompress_ptr cinfo; + long num_bytes; +{ + struct jpeg_stdio_mgr *src; + src = (struct jpeg_stdio_mgr *) cinfo->src; + + while (num_bytes > 0 && !src->finished) + { + if (num_bytes <= src->mgr.bytes_in_buffer) + { + src->mgr.bytes_in_buffer -= num_bytes; + src->mgr.next_input_byte += num_bytes; + break; + } + else + { + num_bytes -= src->mgr.bytes_in_buffer; + src->mgr.bytes_in_buffer = 0; + src->mgr.next_input_byte = NULL; + + our_stdio_fill_input_buffer (cinfo); + } + } +} + + +/* Set up the JPEG lib for reading an image from a FILE *. + CINFO is the decompression info structure created for + reading the image. */ + +static void +jpeg_file_src (cinfo, fp) + j_decompress_ptr cinfo; + FILE *fp; +{ + struct jpeg_stdio_mgr *src; + + if (cinfo->src != NULL) + src = (struct jpeg_stdio_mgr *) cinfo->src; + else + { + /* First time for this JPEG object? */ + cinfo->src = (struct jpeg_source_mgr *) + (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, + sizeof (struct jpeg_stdio_mgr)); + src = (struct jpeg_stdio_mgr *) cinfo->src; + src->buffer = (JOCTET *) + (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, + JPEG_STDIO_BUFFER_SIZE); + } + + src->file = fp; + src->finished = 0; + src->mgr.init_source = our_common_init_source; + src->mgr.fill_input_buffer = our_stdio_fill_input_buffer; + src->mgr.skip_input_data = our_stdio_skip_input_data; + src->mgr.resync_to_restart = jpeg_resync_to_restart_wrapper; /* Use default method. */ + src->mgr.term_source = our_common_term_source; + src->mgr.bytes_in_buffer = 0; + src->mgr.next_input_byte = NULL; +} + + /* Load image IMG for use on frame F. Patterned after example.c from the JPEG lib. */ @@ -6601,7 +6712,7 @@ fn_jpeg_CreateDecompress (&cinfo, JPEG_LIB_VERSION, sizeof (cinfo)); if (NILP (specified_data)) - fn_jpeg_stdio_src (&cinfo, (FILE *) fp); + jpeg_file_src (&cinfo, (FILE *) fp); else jpeg_memory_src (&cinfo, SDATA (specified_data), SBYTES (specified_data));
--- a/src/keyboard.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/keyboard.c Sat Oct 15 00:26:05 2005 +0000 @@ -5053,7 +5053,11 @@ XSETINT (*x, wx); XSETINT (*y, wy); - if (part == ON_MODE_LINE || part == ON_HEADER_LINE) + if (part == ON_TEXT) + { + wx += WINDOW_LEFT_MARGIN_WIDTH (w); + } + else if (part == ON_MODE_LINE || part == ON_HEADER_LINE) { /* Mode line or header line. Look for a string under the mouse that may have a `local-map' property. */ @@ -5089,20 +5093,37 @@ &object, &dx, &dy, &width, &height); if (STRINGP (string)) string_info = Fcons (string, make_number (charpos)); - } - else if (part == ON_LEFT_FRINGE || part == ON_RIGHT_FRINGE) - { - posn = (part == ON_LEFT_FRINGE) ? Qleft_fringe : Qright_fringe; + if (part == ON_LEFT_MARGIN) + wx = 0; + else + wx = window_box_right_offset (w, TEXT_AREA) - 1; + } + else if (part == ON_LEFT_FRINGE) + { + posn = Qleft_fringe; rx = 0; dx = wx; - if (part == ON_RIGHT_FRINGE) - dx -= (window_box_width (w, LEFT_MARGIN_AREA) - + window_box_width (w, TEXT_AREA) - + (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) - ? window_box_width (w, RIGHT_MARGIN_AREA) - : 0)); - else if (!WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)) - dx -= window_box_width (w, LEFT_MARGIN_AREA); + wx = (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) + ? 0 + : window_box_width (w, LEFT_MARGIN_AREA)); + dx -= wx; + } + else if (part == ON_RIGHT_FRINGE) + { + posn = Qright_fringe; + rx = 0; + dx = wx; + wx = (window_box_width (w, LEFT_MARGIN_AREA) + + window_box_width (w, TEXT_AREA) + + (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) + ? window_box_width (w, RIGHT_MARGIN_AREA) + : 0)); + dx -= wx; + } + else + { + /* Note: We have no special posn for part == ON_SCROLL_BAR. */ + wx = max (WINDOW_LEFT_MARGIN_WIDTH (w), wx); } if (textpos < 0) @@ -5111,7 +5132,6 @@ struct display_pos p; int dx2, dy2; int width2, height2; - wx = max (WINDOW_LEFT_MARGIN_WIDTH (w), wx); string2 = buffer_posn_from_coords (w, &wx, &wy, &p, &object2, &dx2, &dy2, &width2, &height2); @@ -10574,11 +10594,11 @@ CHECK_LIVE_WINDOW (frame_or_window); w = XWINDOW (frame_or_window); - XSETINT (x, (WINDOW_TO_FRAME_PIXEL_X (w, XINT (x)) + XSETINT (x, (XINT (x) + + WINDOW_LEFT_EDGE_X (w) + (NILP (whole) ? window_box_left_offset (w, TEXT_AREA) - : - (WINDOW_LEFT_SCROLL_BAR_COLS (w) - * WINDOW_FRAME_COLUMN_WIDTH (w))))); + : 0))); XSETINT (y, WINDOW_TO_FRAME_PIXEL_Y (w, XINT (y))); frame_or_window = w->frame; } @@ -10604,9 +10624,21 @@ { Lisp_Object tem; + if (NILP (window)) + window = selected_window; + tem = Fpos_visible_in_window_p (pos, window, Qt); if (!NILP (tem)) - tem = Fposn_at_x_y (XCAR (tem), XCAR (XCDR (tem)), window, Qnil); + { + Lisp_Object x = XCAR (tem); + Lisp_Object y = XCAR (XCDR (tem)); + + /* Point invisible due to hscrolling? */ + if (XINT (x) < 0) + return Qnil; + tem = Fposn_at_x_y (x, y, window, Qnil); + } + return tem; }
--- a/src/macgui.h Fri Oct 14 03:41:43 2005 +0000 +++ b/src/macgui.h Sat Oct 15 00:26:05 2005 +0000 @@ -192,6 +192,19 @@ /* QuickDraw background color. */ RGBColor back_color; + +#define MAX_CLIP_RECTS 2 + /* QuickDraw clipping region. */ + RgnHandle clip_region; + +#if defined (MAC_OSX) && USE_ATSUI + /* Number of clipping rectangles used in Quartz 2D drawing. */ + int n_clip_rects; + + /* Clipping rectangles used in Quartz 2D drawing. The y-coordinate + is in QuickDraw's. */ + CGRect clip_rects[MAX_CLIP_RECTS]; +#endif } *GC; #define GCForeground (1L<<2)
--- a/src/macterm.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/macterm.c Sat Oct 15 00:26:05 2005 +0000 @@ -272,8 +272,38 @@ #define GC_FORE_COLOR(gc) (&(gc)->fore_color) #define GC_BACK_COLOR(gc) (&(gc)->back_color) #define GC_FONT(gc) ((gc)->xgcv.font) +#define GC_CLIP_REGION(gc) ((gc)->clip_region) #define MAC_WINDOW_NORMAL_GC(w) (((mac_output *) GetWRefCon (w))->normal_gc) +static RgnHandle saved_port_clip_region = NULL; + +static void +mac_begin_clip (region) + RgnHandle region; +{ + static RgnHandle new_region = NULL; + + if (saved_port_clip_region == NULL) + saved_port_clip_region = NewRgn (); + if (new_region == NULL) + new_region = NewRgn (); + + if (region) + { + GetClip (saved_port_clip_region); + SectRgn (saved_port_clip_region, region, new_region); + SetClip (new_region); + } +} + +static void +mac_end_clip (region) + RgnHandle region; +{ + if (region) + SetClip (saved_port_clip_region); +} + /* X display function emulation */ @@ -299,8 +329,10 @@ RGBForeColor (GC_FORE_COLOR (gc)); + mac_begin_clip (GC_CLIP_REGION (gc)); MoveTo (x1, y1); LineTo (x2, y2); + mac_end_clip (GC_CLIP_REGION (gc)); } void @@ -341,7 +373,9 @@ RGBBackColor (GC_BACK_COLOR (gc)); SetRect (&r, x, y, x + width, y + height); + mac_begin_clip (GC_CLIP_REGION (gc)); EraseRect (&r); + mac_end_clip (GC_CLIP_REGION (gc)); RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); } @@ -408,6 +442,7 @@ RGBBackColor (GC_BACK_COLOR (gc)); SetRect (&r, x, y, x + width, y + height); + mac_begin_clip (GC_CLIP_REGION (gc)); #if TARGET_API_MAC_CARBON LockPortBits (GetWindowPort (w)); CopyBits (&bitmap, GetPortBitMapForCopyBits (GetWindowPort (w)), @@ -417,41 +452,12 @@ CopyBits (&bitmap, &(w->portBits), &(bitmap.bounds), &r, overlay_p ? srcOr : srcCopy, 0); #endif /* not TARGET_API_MAC_CARBON */ + mac_end_clip (GC_CLIP_REGION (gc)); RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); } -/* Mac replacement for XSetClipRectangles. */ - -static void -mac_set_clip_rectangle (display, w, r) - Display *display; - WindowPtr w; - Rect *r; -{ - SetPortWindowPort (w); - - ClipRect (r); -} - - -/* Mac replacement for XSetClipMask. */ - -static void -mac_reset_clipping (display, w) - Display *display; - WindowPtr w; -{ - Rect r; - - SetPortWindowPort (w); - - SetRect (&r, -32767, -32767, 32767, 32767); - ClipRect (&r); -} - - /* Mac replacement for XCreateBitmapFromBitmapData. */ static void @@ -579,7 +585,9 @@ RGBForeColor (GC_FORE_COLOR (gc)); SetRect (&r, x, y, x + width, y + height); + mac_begin_clip (GC_CLIP_REGION (gc)); PaintRect (&r); /* using foreground color of gc */ + mac_end_clip (GC_CLIP_REGION (gc)); } @@ -627,7 +635,9 @@ RGBForeColor (GC_FORE_COLOR (gc)); SetRect (&r, x, y, x + width + 1, y + height + 1); + mac_begin_clip (GC_CLIP_REGION (gc)); FrameRect (&r); /* using foreground color of gc */ + mac_end_clip (GC_CLIP_REGION (gc)); } @@ -680,7 +690,7 @@ #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 kATSLineDisableAllLayoutOperations | kATSLineUseDeviceMetrics #else - kATSLineIsDisplayOnly + kATSLineIsDisplayOnly | kATSLineFractDisable #endif ; ATSUAttributeValuePtr values[] = {&line_layout}; @@ -784,10 +794,12 @@ if (NILP (Vmac_use_core_graphics)) { #endif + mac_begin_clip (GC_CLIP_REGION (gc)); MoveTo (x, y); ATSUDrawText (text_layout, kATSUFromTextBeginning, kATSUToTextEnd, kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc); + mac_end_clip (GC_CLIP_REGION (gc)); #ifdef MAC_OSX } else @@ -795,7 +807,6 @@ CGrafPtr port; CGContextRef context; Rect rect; - RgnHandle region = NewRgn (); float port_height; ATSUAttributeTag tags[] = {kATSUCGContextTag}; ByteCount sizes[] = {sizeof (CGContextRef)}; @@ -805,16 +816,15 @@ QDBeginCGContext (port, &context); GetPortBounds (port, &rect); port_height = rect.bottom - rect.top; - GetClip (region); - GetRegionBounds (region, &rect); - /* XXX: This is not correct if the clip region is not a - simple rectangle. */ - CGContextClipToRect (context, - CGRectMake (rect.left, - port_height - rect.bottom, - rect.right - rect.left, - rect.bottom - rect.top)); - DisposeRgn (region); + if (gc->n_clip_rects) + { + CGContextTranslateCTM (context, 0, port_height); + CGContextScaleCTM (context, 1, -1); + CGContextClipToRects (context, gc->clip_rects, + gc->n_clip_rects); + CGContextScaleCTM (context, 1, -1); + CGContextTranslateCTM (context, 0, -port_height); + } CGContextSetRGBFillColor (context, RED_FROM_ULONG (gc->xgcv.foreground) / 255.0, @@ -845,8 +855,10 @@ TextFace (GC_FONT (gc)->mac_fontface); TextMode (mode); + mac_begin_clip (GC_CLIP_REGION (gc)); MoveTo (x, y); DrawText (buf, 0, nchars * bytes_per_char); + mac_end_clip (GC_CLIP_REGION (gc)); #if USE_ATSUI } #endif @@ -945,6 +957,7 @@ ForeColor (blackColor); BackColor (whiteColor); + mac_begin_clip (GC_CLIP_REGION (gc)); LockPixels (GetGWorldPixMap (src)); #if TARGET_API_MAC_CARBON LockPortBits (GetWindowPort (dest)); @@ -957,6 +970,7 @@ &src_r, &dest_r, srcCopy, 0); #endif /* not TARGET_API_MAC_CARBON */ UnlockPixels (GetGWorldPixMap (src)); + mac_end_clip (GC_CLIP_REGION (gc)); RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest))); } @@ -983,6 +997,7 @@ ForeColor (blackColor); BackColor (whiteColor); + mac_begin_clip (GC_CLIP_REGION (gc)); LockPixels (GetGWorldPixMap (src)); LockPixels (GetGWorldPixMap (mask)); #if TARGET_API_MAC_CARBON @@ -997,6 +1012,7 @@ #endif /* not TARGET_API_MAC_CARBON */ UnlockPixels (GetGWorldPixMap (mask)); UnlockPixels (GetGWorldPixMap (src)); + mac_end_clip (GC_CLIP_REGION (gc)); RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest))); } @@ -1033,7 +1049,9 @@ color mapping in CopyBits. Otherwise, it will be slow. */ ForeColor (blackColor); BackColor (whiteColor); + mac_begin_clip (GC_CLIP_REGION (gc)); CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0); + mac_end_clip (GC_CLIP_REGION (gc)); RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); #endif /* not TARGET_API_MAC_CARBON */ @@ -1168,6 +1186,8 @@ Display *display; GC gc; { + if (gc->clip_region) + DisposeRgn (gc->clip_region); xfree (gc); } @@ -1238,6 +1258,70 @@ } +/* Mac replacement for XSetClipRectangles. */ + +static void +mac_set_clip_rectangles (display, gc, rectangles, n) + Display *display; + GC gc; + Rect *rectangles; + int n; +{ + int i; + + if (n < 0 || n > MAX_CLIP_RECTS) + abort (); + if (n == 0) + { + if (gc->clip_region) + { + DisposeRgn (gc->clip_region); + gc->clip_region = NULL; + } + } + else + { + if (gc->clip_region == NULL) + gc->clip_region = NewRgn (); + RectRgn (gc->clip_region, rectangles); + if (n > 1) + { + RgnHandle region = NewRgn (); + + for (i = 1; i < n; i++) + { + RectRgn (region, rectangles + i); + UnionRgn (gc->clip_region, region, gc->clip_region); + } + DisposeRgn (region); + } + } +#if defined (MAC_OSX) && USE_ATSUI + gc->n_clip_rects = n; + + for (i = 0; i < n; i++) + { + Rect *rect = rectangles + i; + + gc->clip_rects[i] = CGRectMake (rect->left, rect->top, + rect->right - rect->left, + rect->bottom - rect->top); + } +#endif +} + + +/* Mac replacement for XSetClipMask. */ + +static INLINE void +mac_reset_clip_rectangles (display, gc) + Display *display; + GC gc; +{ + mac_set_clip_rectangles (display, gc, NULL, 0); +} + + /* Mac replacement for XSetWindowBackground. */ void @@ -1649,7 +1733,7 @@ XSetForeground (display, face->gc, gcv.foreground); } - mac_reset_clipping (display, window); + mac_reset_clip_rectangles (display, gc); } @@ -1685,19 +1769,6 @@ struct charset *, int *)); -/* Return a pointer to per-char metric information in FONT of a - character pointed by B which is a pointer to an XChar2b. */ - -#define PER_CHAR_METRIC(font, b) \ - ((font)->per_char \ - ? ((font)->per_char + (b)->byte2 - (font)->min_char_or_byte2 \ - + (((font)->min_byte1 || (font)->max_byte1) \ - ? (((b)->byte1 - (font)->min_byte1) \ - * ((font)->max_char_or_byte2 - (font)->min_char_or_byte2 + 1)) \ - : 0)) \ - : &((font)->max_bounds)) - - /* Get metrics of character CHAR2B in FONT. Value is null if CHAR2B is not contained in the font. */ @@ -2127,9 +2198,11 @@ x_set_glyph_string_clipping (s) struct glyph_string *s; { - Rect r; - get_glyph_string_clip_rect (s, &r); - mac_set_clip_rectangle (s->display, s->window, &r); + Rect rects[MAX_CLIP_RECTS]; + int n; + + n = get_glyph_string_clip_rects (s, rects, MAX_CLIP_RECTS); + mac_set_clip_rectangles (s->display, s->gc, rects, n); } @@ -2325,7 +2398,7 @@ XDrawImageString is usually faster than XDrawString.) Always use XDrawImageString when drawing the cursor so that there is no chance that characters under a box cursor are invisible. */ - if (s->for_overlaps_p + if (s->for_overlaps || (s->background_filled_p && s->hl != DRAW_CURSOR)) #endif { @@ -2346,7 +2419,7 @@ { if (s->two_byte_p) XDrawImageString16 (s->display, s->window, s->gc, x, - s->ybase - boff, s->char2b, s->nchars); + s->ybase - boff, s->char2b, s->nchars); else XDrawImageString (s->display, s->window, s->gc, x, s->ybase - boff, char1b, s->nchars); @@ -2754,7 +2827,7 @@ gc = f->output_data.mac->white_relief.gc; else gc = f->output_data.mac->black_relief.gc; - mac_set_clip_rectangle (dpy, window, clip_rect); + mac_set_clip_rectangles (dpy, gc, clip_rect, 1); /* Top. */ if (top_p) @@ -2769,13 +2842,12 @@ XDrawLine (dpy, window, gc, left_x + i, top_y + i, left_x + i, bottom_y - i); - mac_reset_clipping (dpy, window); + mac_reset_clip_rectangles (dpy, gc); if (raised_p) gc = f->output_data.mac->black_relief.gc; else gc = f->output_data.mac->white_relief.gc; - mac_set_clip_rectangle (dpy, window, - clip_rect); + mac_set_clip_rectangles (dpy, gc, clip_rect, 1); /* Bottom. */ if (bot_p) @@ -2790,7 +2862,7 @@ XDrawLine (dpy, window, gc, right_x - i, top_y + i + 1, right_x - i, bottom_y - i - 1); - mac_reset_clipping (dpy, window); + mac_reset_clip_rectangles (dpy, gc); } @@ -2812,7 +2884,7 @@ XGetGCValues (s->display, s->gc, GCForeground, &xgcv); XSetForeground (s->display, s->gc, s->face->box_color); - mac_set_clip_rectangle (s->display, s->window, clip_rect); + mac_set_clip_rectangles (s->display, s->gc, clip_rect, 1); /* Top. */ XFillRectangle (s->display, s->window, s->gc, @@ -2833,7 +2905,7 @@ right_x - width + 1, top_y, width, bottom_y - top_y + 1); XSetForeground (s->display, s->gc, xgcv.foreground); - mac_reset_clipping (s->display, s->window); + mac_reset_clip_rectangles (s->display, s->gc); } @@ -3187,7 +3259,6 @@ x_set_glyph_string_clipping (s); mac_copy_area (s->display, pixmap, s->window, s->gc, 0, 0, s->background_width, s->height, s->x, s->y); - mac_reset_clipping (s->display, s->window); XFreePixmap (s->display, pixmap); } else @@ -3239,7 +3310,7 @@ gc = s->face->gc; get_glyph_string_clip_rect (s, &r); - mac_set_clip_rectangle (s->display, s->window, &r); + mac_set_clip_rectangles (s->display, gc, &r, 1); #if 0 /* MAC_TODO: stipple */ if (s->face->stipple) @@ -3252,8 +3323,6 @@ else #endif /* MAC_TODO */ mac_erase_rectangle (s->window, gc, x, y, w, h); - - mac_reset_clipping (s->display, s->window); } } else if (!s->background_filled_p) @@ -3276,7 +3345,7 @@ draw a cursor, draw the background of the successor first so that S can draw into it. This makes S->next use XDrawString instead of XDrawImageString. */ - if (s->next && s->right_overhang && !s->for_overlaps_p + if (s->next && s->right_overhang && !s->for_overlaps && s->next->hl != DRAW_CURSOR) { xassert (s->next->img == NULL); @@ -3290,7 +3359,7 @@ /* Draw relief (if any) in advance for char/composition so that the glyph string can be drawn over it. */ - if (!s->for_overlaps_p + if (!s->for_overlaps && s->face->box != FACE_NO_BOX && (s->first_glyph->type == CHAR_GLYPH || s->first_glyph->type == COMPOSITE_GLYPH)) @@ -3316,7 +3385,7 @@ break; case CHAR_GLYPH: - if (s->for_overlaps_p) + if (s->for_overlaps) s->background_filled_p = 1; else x_draw_glyph_string_background (s, 0); @@ -3324,7 +3393,7 @@ break; case COMPOSITE_GLYPH: - if (s->for_overlaps_p || s->gidx > 0) + if (s->for_overlaps || s->gidx > 0) s->background_filled_p = 1; else x_draw_glyph_string_background (s, 1); @@ -3335,7 +3404,7 @@ abort (); } - if (!s->for_overlaps_p) + if (!s->for_overlaps) { /* Draw underline. */ if (s->face->underline_p) @@ -3402,7 +3471,7 @@ } /* Reset clipping. */ - mac_reset_clipping (s->display, s->window); + mac_reset_clip_rectangles (s->display, s->gc); } /* Shift display to make room for inserted glyphs. */ @@ -4085,7 +4154,7 @@ static Point last_mouse_motion_position; static Lisp_Object last_mouse_motion_frame; -static void +static int note_mouse_movement (frame, pos) FRAME_PTR frame; Point *pos; @@ -4116,17 +4185,23 @@ rif->define_frame_cursor (frame, frame->output_data.mac->nontext_cursor); } + return 1; } /* Has the mouse moved off the glyph it was on at the last sighting? */ - else if (pos->h < last_mouse_glyph.left - || pos->h >= last_mouse_glyph.right - || pos->v < last_mouse_glyph.top - || pos->v >= last_mouse_glyph.bottom) + if (pos->h < last_mouse_glyph.left + || pos->h >= last_mouse_glyph.right + || pos->v < last_mouse_glyph.top + || pos->v >= last_mouse_glyph.bottom) { frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; note_mouse_highlight (frame, pos->h, pos->v); - } + /* Remember which glyph we're now on. */ + remember_mouse_glyph (frame, pos->h, pos->v, &last_mouse_glyph); + return 1; + } + + return 0; } @@ -4134,9 +4209,6 @@ Mouse Face ************************************************************************/ -static int glyph_rect P_ ((struct frame *f, int, int, Rect *)); - - /* MAC TODO: This should be called from somewhere (or removed) ++KFS */ static void @@ -4150,110 +4222,6 @@ } -/* Try to determine frame pixel position and size of the glyph under - frame pixel coordinates X/Y on frame F . Return the position and - size in *RECT. Value is non-zero if we could compute these - values. */ - -static int -glyph_rect (f, x, y, rect) - struct frame *f; - int x, y; - Rect *rect; -{ - Lisp_Object window; - - window = window_from_coordinates (f, x, y, 0, &x, &y, 0); - - if (!NILP (window)) - { - struct window *w = XWINDOW (window); - struct glyph_row *r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); - struct glyph_row *end = r + w->current_matrix->nrows - 1; - - for (; r < end && r->enabled_p; ++r) - if (r->y <= y && r->y + r->height > y) - { - /* Found the row at y. */ - struct glyph *g = r->glyphs[TEXT_AREA]; - struct glyph *end = g + r->used[TEXT_AREA]; - int gx; - - rect->top = WINDOW_TO_FRAME_PIXEL_Y (w, r->y); - rect->bottom = rect->top + r->height; - - if (x < r->x) - { - /* x is to the left of the first glyph in the row. */ - /* Shouldn't this be a pixel value? - WINDOW_LEFT_EDGE_X (w) seems to be the right value. - ++KFS */ - rect->left = WINDOW_LEFT_EDGE_COL (w); - rect->right = WINDOW_TO_FRAME_PIXEL_X (w, r->x); - return 1; - } - - for (gx = r->x; g < end; gx += g->pixel_width, ++g) - if (gx <= x && gx + g->pixel_width > x) - { - /* x is on a glyph. */ - rect->left = WINDOW_TO_FRAME_PIXEL_X (w, gx); - rect->right = rect->left + g->pixel_width; - return 1; - } - - /* x is to the right of the last glyph in the row. */ - rect->left = WINDOW_TO_FRAME_PIXEL_X (w, gx); - /* Shouldn't this be a pixel value? - WINDOW_RIGHT_EDGE_X (w) seems to be the right value. - ++KFS */ - rect->right = WINDOW_RIGHT_EDGE_COL (w); - return 1; - } - } - - /* The y is not on any row. */ - return 0; -} - -/* MAC TODO: This should be called from somewhere (or removed) ++KFS */ - -/* Record the position of the mouse in last_mouse_glyph. */ -static void -remember_mouse_glyph (f1, gx, gy) - struct frame * f1; - int gx, gy; -{ - if (!glyph_rect (f1, gx, gy, &last_mouse_glyph)) - { - int width = FRAME_SMALLEST_CHAR_WIDTH (f1); - int height = FRAME_SMALLEST_FONT_HEIGHT (f1); - - /* Arrange for the division in FRAME_PIXEL_X_TO_COL etc. to - round down even for negative values. */ - if (gx < 0) - gx -= width - 1; - if (gy < 0) - gy -= height - 1; -#if 0 - /* This was the original code from XTmouse_position, but it seems - to give the position of the glyph diagonally next to the one - the mouse is over. */ - gx = (gx + width - 1) / width * width; - gy = (gy + height - 1) / height * height; -#else - gx = gx / width * width; - gy = gy / height * height; -#endif - - last_mouse_glyph.left = gx; - last_mouse_glyph.top = gy; - last_mouse_glyph.right = gx + width; - last_mouse_glyph.bottom = gy + height; - } -} - - static struct frame * mac_focus_frame (dpyinfo) struct mac_display_info *dpyinfo; @@ -4269,18 +4237,18 @@ /* Return the current position of the mouse. - *fp should be a frame which indicates which display to ask about. - - If the mouse movement started in a scroll bar, set *fp, *bar_window, - and *part to the frame, window, and scroll bar part that the mouse - is over. Set *x and *y to the portion and whole of the mouse's + *FP should be a frame which indicates which display to ask about. + + If the mouse movement started in a scroll bar, set *FP, *BAR_WINDOW, + and *PART to the frame, window, and scroll bar part that the mouse + is over. Set *X and *Y to the portion and whole of the mouse's position on the scroll bar. - If the mouse movement started elsewhere, set *fp to the frame the - mouse is on, *bar_window to nil, and *x and *y to the character cell + If the mouse movement started elsewhere, set *FP to the frame the + mouse is on, *BAR_WINDOW to nil, and *X and *Y to the character cell the mouse is over. - Set *time to the server time-stamp for the time at which the mouse + Set *TIME to the server time-stamp for the time at which the mouse was at this position. Don't store anything if we don't have a valid set of values to report. @@ -4297,11 +4265,7 @@ Lisp_Object *x, *y; unsigned long *time; { - Point mouse_pos; - int ignore1, ignore2; - struct frame *f = mac_focus_frame (FRAME_MAC_DISPLAY_INFO (*fp)); - WindowPtr wp = FRAME_MAC_WINDOW (f); - Lisp_Object frame, tail; + FRAME_PTR f1; BLOCK_INPUT; @@ -4309,25 +4273,43 @@ x_scroll_bar_report_motion (fp, bar_window, part, x, y, time); else { + Lisp_Object frame, tail; + /* Clear the mouse-moved flag for every frame on this display. */ FOR_EACH_FRAME (tail, frame) - XFRAME (frame)->mouse_moved = 0; + XFRAME (frame)->mouse_moved = 0; last_mouse_scroll_bar = Qnil; - SetPortWindowPort (wp); - - GetMouse (&mouse_pos); - - pixel_to_glyph_coords (f, mouse_pos.h, mouse_pos.v, &ignore1, &ignore2, - &last_mouse_glyph, insist); - - *bar_window = Qnil; - *part = scroll_bar_handle; - *fp = f; - XSETINT (*x, mouse_pos.h); - XSETINT (*y, mouse_pos.v); - *time = last_mouse_movement_time; + if (FRAME_MAC_DISPLAY_INFO (*fp)->grabbed && last_mouse_frame + && FRAME_LIVE_P (last_mouse_frame)) + f1 = last_mouse_frame; + else + f1 = mac_focus_frame (FRAME_MAC_DISPLAY_INFO (*fp)); + + if (f1) + { + /* Ok, we found a frame. Store all the values. + last_mouse_glyph is a rectangle used to reduce the + generation of mouse events. To not miss any motion + events, we must divide the frame into rectangles of the + size of the smallest character that could be displayed + on it, i.e. into the same rectangles that matrices on + the frame are divided into. */ + Point mouse_pos; + + SetPortWindowPort (FRAME_MAC_WINDOW (f1)); + GetMouse (&mouse_pos); + remember_mouse_glyph (f1, mouse_pos.h, mouse_pos.v, + &last_mouse_glyph); + + *bar_window = Qnil; + *part = 0; + *fp = f1; + XSETINT (*x, mouse_pos.h); + XSETINT (*y, mouse_pos.v); + *time = last_mouse_movement_time; + } } UNBLOCK_INPUT; @@ -5275,7 +5257,7 @@ clip_rect.right = clip_rect.left + window_width; clip_rect.bottom = clip_rect.top + row->visible_height; - mac_set_clip_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), &clip_rect); + mac_set_clip_rectangles (FRAME_MAC_DISPLAY (f), gc, &clip_rect, 1); } @@ -5318,7 +5300,7 @@ /* Set clipping, draw the rectangle, and reset clipping again. */ x_clip_to_row (w, row, TEXT_AREA, gc); mac_draw_rectangle (dpy, FRAME_MAC_WINDOW (f), gc, x, y, wd, h); - mac_reset_clipping (dpy, FRAME_MAC_WINDOW (f)); + mac_reset_clip_rectangles (dpy, gc); } @@ -5402,7 +5384,7 @@ cursor_glyph->pixel_width, width); - mac_reset_clipping (dpy, FRAME_MAC_WINDOW (f)); + mac_reset_clip_rectangles (dpy, gc); } } @@ -6777,7 +6759,13 @@ static int font_name_table_size = 0; static int font_name_count = 0; +/* Alist linking font family names to Font Manager font family + references (which can also be used as QuickDraw font IDs). We use + an alist because hash tables are not ready when the terminal frame + for Mac OS Classic is created. */ +static Lisp_Object fm_font_family_alist; #if USE_ATSUI +/* Hash table linking font family names to ATSU font IDs. */ static Lisp_Object atsu_font_id_hash; #endif @@ -6827,28 +6815,42 @@ struct coding_system coding; char *buf, *p; + if (!NILP (coding_system) && !NILP (Fcoding_system_p (coding_system))) + { + for (p = name; *p; p++) + if (!isascii (*p) || iscntrl (*p)) + break; + + if (*p) + { +#if 0 +/* MAC_TODO: Fix encoding system... */ + setup_coding_system (coding_system, &coding); + coding.src_multibyte = 0; + coding.dst_multibyte = 1; + coding.mode |= CODING_MODE_LAST_BLOCK; + coding.composing = COMPOSITION_DISABLED; + buf = (char *) alloca (size); + + decode_coding (&coding, name, buf, strlen (name), size - 1); + bcopy (buf, name, coding.produced); + name[coding.produced] = '\0'; +#endif + } + } + + /* If there's just one occurrence of '-' in the family name, it is + replaced with '_'. (More than one occurrence of '-' means a + "FOUNDRY-FAMILY-CHARSET"-style name.) */ + p = strchr (name, '-'); + if (p && strchr (p + 1, '-') == NULL) + *p = '_'; + for (p = name; *p; p++) - if (!isascii (*p) || iscntrl (*p)) - break; - - if (*p == '\0' - || NILP (coding_system) || NILP (Fcoding_system_p (coding_system))) - return; - - #if 0 - /* MAC_TODO: Fix encoding system... */ - setup_coding_system (coding_system, &coding); - coding.src_multibyte = 0; - coding.dst_multibyte = 1; - coding.mode |= CODING_MODE_LAST_BLOCK; - coding.dst_bytes = MAX_MULTsize; - coding.destination = (char *) alloca (size); - coding_decode_c_string(&coding, name, strlen(name), qNil); - - decode_coding (&coding, name, buf, strlen (name), size - 1); - bcopy (buf, name, coding.produced); - name[coding.produced] = '\0'; - #endif + /* On Mac OS X 10.3, tolower also converts non-ASCII characters + for some locales. */ + if (isascii (*p)) + *p = tolower (*p); } @@ -6887,32 +6889,46 @@ } -/* Convert an X font spec to the corresponding mac font name, which - can then be passed to GetFNum after conversion to a Pascal string. - For ordinary Mac fonts, this should just be their names, like - "monaco", "Taipei", etc. Fonts converted from the GNU intlfonts - collection contain their charset designation in their names, like - "ETL-Fixed-iso8859-1", "ETL-Fixed-koi8-r", etc. Both types of font - names are handled accordingly. */ -static void -x_font_name_to_mac_font_name (xf, mf, mf_decoded, style, cs) - char *xf, *mf, *mf_decoded; +/* Parse fully-specified and instantiated X11 font spec XF, and store + the results to FAMILY, *SIZE, *STYLE, and CHARSET. Return 1 if the + parsing succeeded, and 0 otherwise. For FAMILY and CHARSET, the + caller must allocate at least 256 and 32 bytes respectively. For + ordinary Mac fonts, the value stored to FAMILY should just be their + names, like "monaco", "Taipei", etc. Fonts converted from the GNU + intlfonts collection contain their charset designation in their + names, like "ETL-Fixed-iso8859-1", "ETL-Fixed-koi8-r", etc. Both + types of font names are handled accordingly. */ + +const int kDefaultFontSize = 12; + +static int +parse_x_font_name (xf, family, size, style, charset) + char *xf, *family; + int *size; Style *style; - char *cs; -{ - Str31 foundry; - Str255 family; - char weight[20], slant[2], *p; - Lisp_Object charset_info, coding_system = Qnil; - struct coding_system coding; - - strcpy (mf, ""); - - if (sscanf (xf, "-%31[^-]-%255[^-]-%19[^-]-%1[^-]-%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]-%31s", - foundry, family, weight, slant, cs) != 5 && - sscanf (xf, "-%31[^-]-%255[^-]-%19[^-]-%1[^-]-%*[^-]--%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]-%31s", - foundry, family, weight, slant, cs) != 5) - return; + char *charset; +{ + Str31 foundry, weight; + int point_size, avgwidth; + char slant[2], *p; + + if (sscanf (xf, "-%31[^-]-%255[^-]-%31[^-]-%1[^-]-%*[^-]-%*[^-]-%d-%d-%*[^-]-%*[^-]-%*c-%d-%31s", + foundry, family, weight, slant, size, + &point_size, &avgwidth, charset) != 8 + && sscanf (xf, "-%31[^-]-%255[^-]-%31[^-]-%1[^-]-%*[^-]--%d-%d-%*[^-]-%*[^-]-%*c-%d-%31s", + foundry, family, weight, slant, size, + &point_size, &avgwidth, charset) != 8) + return 0; + + if (*size == 0) + { + if (point_size > 0) + *size = point_size / 10; + else if (avgwidth > 0) + *size = avgwidth / 10; + } + if (*size == 0) + *size = kDefaultFontSize; *style = normal; if (strcmp (weight, "bold") == 0) @@ -6920,35 +6936,31 @@ if (*slant == 'i') *style |= italic; - charset_info = Fassoc (build_string (cs), Vmac_charset_info_alist); - if (!NILP (charset_info)) - { - strcpy (mf_decoded, family); - coding_system = Fcar (Fcdr (Fcdr (charset_info))); - } - else - sprintf (mf_decoded, "%s-%s-%s", foundry, family, cs); - - for (p = mf_decoded; *p; p++) - if (!isascii (*p) || iscntrl (*p)) - break; - - if (*p == '\0' - || NILP (coding_system) || NILP (Fcoding_system_p (coding_system))) - strcpy (mf, mf_decoded); -#if 0 - /* MAC_TODO: Fix coding system to use objects */ - else - { - setup_coding_system (coding_system, &coding); - coding.src_multibyte = 1; - coding.dst_multibyte = 0; - coding.mode |= CODING_MODE_LAST_BLOCK; - encode_coding (&coding, mf_decoded, mf, - strlen (mf_decoded), sizeof (Str255) - 1); - mf[coding.produced] = '\0'; - } -#endif + if (NILP (Fassoc (build_string (charset), Vmac_charset_info_alist))) + { + int foundry_len = strlen (foundry), family_len = strlen (family); + + if (foundry_len + family_len + strlen (charset) + 2 < sizeof (Str255)) + { + /* Like sprintf (family, "%s-%s-%s", foundry, family, charset), + but take overlap into account. */ + memmove (family + foundry_len + 1, family, family_len); + memcpy (family, foundry, foundry_len); + family[foundry_len] = '-'; + family[foundry_len + 1 + family_len] = '-'; + strcpy (family + foundry_len + 1 + family_len + 1, charset); + } + else + return 0; + } + + for (p = family; *p; p++) + /* On Mac OS X 10.3, tolower also converts non-ASCII characters + for some locales. */ + if (isascii (*p)) + *p = tolower (*p); + + return 1; } @@ -7025,6 +7037,8 @@ kFontMacintoshPlatform, kFontNoScript, kFontNoLanguage, name_len, name, NULL, NULL); + if (err == noErr) + decode_mac_font_name (name, name_len + 1, Qnil); if (err == noErr && *name != '.' && (prev_name == NULL @@ -7040,7 +7054,7 @@ bold, cs)); add_font_name_table_entry (mac_to_x_fontname (name, 0, italic | bold, cs)); - Fputhash (Fdowncase (make_unibyte_string (name, name_len)), + Fputhash (make_unibyte_string (name, name_len), long_to_cons (font_ids[i]), atsu_font_id_hash); xfree (prev_name); prev_name = name; @@ -7090,12 +7104,14 @@ sc = GetTextEncodingBase (encoding); text_encoding_info = assq_no_quit (make_number (sc), text_encoding_info_alist); - if (!NILP (text_encoding_info)) - decode_mac_font_name (name, sizeof (name), - XCAR (XCDR (text_encoding_info))); - else + if (NILP (text_encoding_info)) text_encoding_info = assq_no_quit (make_number (kTextEncodingMacRoman), text_encoding_info_alist); + decode_mac_font_name (name, sizeof (name), + XCAR (XCDR (text_encoding_info))); + fm_font_family_alist = Fcons (Fcons (build_string (name), + make_number (ff)), + fm_font_family_alist); /* Point the instance iterator at the current font family. */ if (FMResetFontFamilyInstanceIterator (ff, &ffii) != noErr) @@ -7174,12 +7190,14 @@ scriptcode = FontToScript (fontnum); text_encoding_info = assq_no_quit (make_number (scriptcode), text_encoding_info_alist); - if (!NILP (text_encoding_info)) - decode_mac_font_name (name, sizeof (name), - XCAR (XCDR (text_encoding_info))); - else + if (NILP (text_encoding_info)) text_encoding_info = assq_no_quit (make_number (smRoman), text_encoding_info_alist); + decode_mac_font_name (name, sizeof (name), + XCAR (XCDR (text_encoding_info))); + fm_font_family_alist = Fcons (Fcons (build_string (name), + make_number (fontnum)), + fm_font_family_alist); do { HLock (font_handle); @@ -7235,6 +7253,7 @@ xfree (font_name_table); font_name_table = NULL; font_name_table_size = font_name_count = 0; + fm_font_family_alist = Qnil; } @@ -7543,9 +7562,6 @@ } -const int kDefaultFontSize = 12; - - /* XLoadQueryFont creates and returns an internal representation for a font in a MacFontStruct struct. There is really no concept corresponding to "loading" a font on the Mac. But we check its @@ -7555,12 +7571,9 @@ static MacFontStruct * XLoadQueryFont (Display *dpy, char *fontname) { - int i, size, point_size, avgwidth, is_two_byte_font, char_width; + int i, size, char_width; char *name; - GrafPtr port; - SInt16 old_fontnum, old_fontsize; - Style old_fontface; - Str255 mfontname, mfontname_decoded; + Str255 family; Str31 charset; SInt16 fontnum; #if USE_ATSUI @@ -7574,10 +7587,6 @@ short scriptcode; #endif MacFontStruct *font; - FontInfo the_fontinfo; -#ifdef MAC_OSX - UInt32 old_flags, new_flags; -#endif if (is_fully_specified_xlfd (fontname)) name = fontname; @@ -7591,32 +7600,9 @@ name = SDATA (XCAR (matched_fonts)); } - GetPort (&port); /* save the current font number used */ -#if TARGET_API_MAC_CARBON - old_fontnum = GetPortTextFont (port); - old_fontsize = GetPortTextSize (port); - old_fontface = GetPortTextFace (port); -#else - old_fontnum = port->txFont; - old_fontsize = port->txSize; - old_fontface = port->txFace; -#endif - - if (sscanf (name, "-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]--%d-%d-%*[^-]-%*[^-]-%*c-%d-%*s", &size, &point_size, &avgwidth) != 3) - size = 0; - else - { - if (size == 0) - if (point_size > 0) - size = point_size / 10; - else if (avgwidth > 0) - size = avgwidth / 10; - } - if (size == 0) - size = kDefaultFontSize; - - x_font_name_to_mac_font_name (name, mfontname, mfontname_decoded, - &fontface, charset); + if (parse_x_font_name (name, family, &size, &fontface, charset) == 0) + return NULL; + #if USE_ATSUI if (strcmp (charset, "iso10646-1") == 0) /* XXX */ { @@ -7633,10 +7619,8 @@ ATSUFontFeatureType types[] = {kAllTypographicFeaturesType}; ATSUFontFeatureSelector selectors[] = {kAllTypeFeaturesOffSelector}; Lisp_Object font_id_cons; - - font_id_cons = Fgethash (Fdowncase - (make_unibyte_string (mfontname, - strlen (mfontname))), + + font_id_cons = Fgethash (make_unibyte_string (family, strlen (family)), atsu_font_id_hash, Qnil); if (NILP (font_id_cons)) return NULL; @@ -7657,24 +7641,21 @@ scriptcode = kTextEncodingMacUnicode; } else - { -#endif - c2pstr (mfontname); +#endif + { + Lisp_Object tmp = Fassoc (build_string (family), fm_font_family_alist); + + if (NILP (tmp)) + return NULL; + fontnum = XINT (XCDR (tmp)); #if TARGET_API_MAC_CARBON - fontnum = FMGetFontFamilyFromName (mfontname); - if (fontnum == kInvalidFontFamily - || FMGetFontFamilyTextEncoding (fontnum, &encoding) != noErr) - return NULL; - scriptcode = GetTextEncodingBase (encoding); + if (FMGetFontFamilyTextEncoding (fontnum, &encoding) != noErr) + return NULL; + scriptcode = GetTextEncodingBase (encoding); #else - GetFNum (mfontname, &fontnum); - if (fontnum == 0) - return NULL; - scriptcode = FontToScript (fontnum); -#endif -#if USE_ATSUI - } -#endif + scriptcode = FontToScript (fontnum); +#endif + } font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct)); @@ -7693,7 +7674,7 @@ if (scriptcode == smJapanese && strcmp (charset, "jisx0201.1976-0") == 0) font->mac_scriptcode = smRoman; - font->full_name = mac_to_x_fontname (mfontname_decoded, size, fontface, charset); + font->full_name = mac_to_x_fontname (family, size, fontface, charset); #if USE_ATSUI if (font->mac_style) @@ -7778,130 +7759,149 @@ font->max_char_or_byte2 = 0xff; } else - { -#endif - is_two_byte_font = font->mac_scriptcode == smJapanese || - font->mac_scriptcode == smTradChinese || - font->mac_scriptcode == smSimpChinese || - font->mac_scriptcode == smKorean; - - TextFont (fontnum); - TextSize (size); - TextFace (fontface); - - GetFontInfo (&the_fontinfo); - - font->ascent = the_fontinfo.ascent; - font->descent = the_fontinfo.descent; - - if (is_two_byte_font) - { - font->min_byte1 = 0xa1; - font->max_byte1 = 0xfe; - font->min_char_or_byte2 = 0xa1; - font->max_char_or_byte2 = 0xfe; - - /* Use the width of an "ideographic space" of that font because - the_fontinfo.widMax returns the wrong width for some fonts. */ - switch (font->mac_scriptcode) - { - case smJapanese: - font->min_byte1 = 0x81; - font->max_byte1 = 0xfc; - font->min_char_or_byte2 = 0x40; - font->max_char_or_byte2 = 0xfc; - char_width = StringWidth("\p\x81\x40"); - break; - case smTradChinese: - font->min_char_or_byte2 = 0x40; - char_width = StringWidth("\p\xa1\x40"); - break; - case smSimpChinese: - char_width = StringWidth("\p\xa1\xa1"); - break; - case smKorean: - char_width = StringWidth("\p\xa1\xa1"); - break; - } - } - else - { - font->min_byte1 = font->max_byte1 = 0; - font->min_char_or_byte2 = 0x20; - font->max_char_or_byte2 = 0xff; - - /* Do this instead of use the_fontinfo.widMax, which incorrectly - returns 15 for 12-point Monaco! */ - char_width = CharWidth ('m'); - } - - if (is_two_byte_font) - { - font->per_char = NULL; - - if (fontface & italic) - font->max_bounds.rbearing = char_width + 1; - else - font->max_bounds.rbearing = char_width; - font->max_bounds.lbearing = 0; - font->max_bounds.width = char_width; - font->max_bounds.ascent = the_fontinfo.ascent; - font->max_bounds.descent = the_fontinfo.descent; - - font->min_bounds = font->max_bounds; - } - else - { - int c, min_width, max_width; - Rect char_bounds, min_bounds, max_bounds; - char ch; - - font->per_char = xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1)); - - min_width = max_width = char_width; - SetRect (&min_bounds, -32767, -32767, 32767, 32767); - SetRect (&max_bounds, 0, 0, 0, 0); - for (c = 0x20; c <= 0xff; c++) +#endif + { + GrafPtr port; + SInt16 old_fontnum, old_fontsize; + Style old_fontface; + FontInfo the_fontinfo; + int is_two_byte_font; + + /* Save the current font number used. */ + GetPort (&port); +#if TARGET_API_MAC_CARBON + old_fontnum = GetPortTextFont (port); + old_fontsize = GetPortTextSize (port); + old_fontface = GetPortTextFace (port); +#else + old_fontnum = port->txFont; + old_fontsize = port->txSize; + old_fontface = port->txFace; +#endif + + TextFont (fontnum); + TextSize (size); + TextFace (fontface); + + GetFontInfo (&the_fontinfo); + + font->ascent = the_fontinfo.ascent; + font->descent = the_fontinfo.descent; + + is_two_byte_font = (font->mac_scriptcode == smJapanese + || font->mac_scriptcode == smTradChinese + || font->mac_scriptcode == smSimpChinese + || font->mac_scriptcode == smKorean); + + if (is_two_byte_font) { - ch = c; - char_width = CharWidth (ch); - QDTextBounds (1, &ch, &char_bounds); - STORE_XCHARSTRUCT (font->per_char[c - 0x20], - char_width, char_bounds); - /* Some Japanese fonts (in SJIS encoding) return 0 as the - character width of 0x7f. */ - if (char_width > 0) + font->min_byte1 = 0xa1; + font->max_byte1 = 0xfe; + font->min_char_or_byte2 = 0xa1; + font->max_char_or_byte2 = 0xfe; + + /* Use the width of an "ideographic space" of that font + because the_fontinfo.widMax returns the wrong width for + some fonts. */ + switch (font->mac_scriptcode) { - min_width = min (min_width, char_width); - max_width = max (max_width, char_width); - } - if (!EmptyRect (&char_bounds)) - { - SetRect (&min_bounds, - max (min_bounds.left, char_bounds.left), - max (min_bounds.top, char_bounds.top), - min (min_bounds.right, char_bounds.right), - min (min_bounds.bottom, char_bounds.bottom)); - UnionRect (&max_bounds, &char_bounds, &max_bounds); + case smJapanese: + font->min_byte1 = 0x81; + font->max_byte1 = 0xfc; + font->min_char_or_byte2 = 0x40; + font->max_char_or_byte2 = 0xfc; + char_width = StringWidth("\p\x81\x40"); + break; + case smTradChinese: + font->min_char_or_byte2 = 0x40; + char_width = StringWidth("\p\xa1\x40"); + break; + case smSimpChinese: + char_width = StringWidth("\p\xa1\xa1"); + break; + case smKorean: + char_width = StringWidth("\p\xa1\xa1"); + break; } } - STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds); - STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds); - if (min_width == max_width - && max_bounds.left >= 0 && max_bounds.right <= max_width) + else + { + font->min_byte1 = font->max_byte1 = 0; + font->min_char_or_byte2 = 0x20; + font->max_char_or_byte2 = 0xff; + + /* Do this instead of use the_fontinfo.widMax, which + incorrectly returns 15 for 12-point Monaco! */ + char_width = CharWidth ('m'); + } + + if (is_two_byte_font) { - /* Fixed width and no overhangs. */ - xfree (font->per_char); font->per_char = NULL; + + if (fontface & italic) + font->max_bounds.rbearing = char_width + 1; + else + font->max_bounds.rbearing = char_width; + font->max_bounds.lbearing = 0; + font->max_bounds.width = char_width; + font->max_bounds.ascent = the_fontinfo.ascent; + font->max_bounds.descent = the_fontinfo.descent; + + font->min_bounds = font->max_bounds; } - } - - TextFont (old_fontnum); /* restore previous font number, size and face */ - TextSize (old_fontsize); - TextFace (old_fontface); -#if USE_ATSUI - } -#endif + else + { + int c, min_width, max_width; + Rect char_bounds, min_bounds, max_bounds; + char ch; + + font->per_char = xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1)); + bzero (font->per_char, sizeof (XCharStruct) * (0xff - 0x20 + 1)); + + min_width = max_width = char_width; + SetRect (&min_bounds, -32767, -32767, 32767, 32767); + SetRect (&max_bounds, 0, 0, 0, 0); + for (c = 0x20; c <= 0xff; c++) + { + ch = c; + char_width = CharWidth (ch); + QDTextBounds (1, &ch, &char_bounds); + STORE_XCHARSTRUCT (font->per_char[c - 0x20], + char_width, char_bounds); + /* Some Japanese fonts (in SJIS encoding) return 0 as + the character width of 0x7f. */ + if (char_width > 0) + { + min_width = min (min_width, char_width); + max_width = max (max_width, char_width); + } + if (!EmptyRect (&char_bounds)) + { + SetRect (&min_bounds, + max (min_bounds.left, char_bounds.left), + max (min_bounds.top, char_bounds.top), + min (min_bounds.right, char_bounds.right), + min (min_bounds.bottom, char_bounds.bottom)); + UnionRect (&max_bounds, &char_bounds, &max_bounds); + } + } + STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds); + STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds); + if (min_width == max_width + && max_bounds.left >= 0 && max_bounds.right <= max_width) + { + /* Fixed width and no overhangs. */ + xfree (font->per_char); + font->per_char = NULL; + } + } + + /* Restore previous font number, size and face. */ + TextFont (old_fontnum); + TextSize (old_fontsize); + TextFace (old_fontface); + } return font; } @@ -10056,8 +10056,7 @@ er.where.h + 1, er.where.v + 1); #endif previous_help_echo_string = help_echo_string; - help_echo_string = help_echo_object = help_echo_window = Qnil; - help_echo_pos = -1; + help_echo_string = Qnil; if (dpyinfo->grabbed && last_mouse_frame && FRAME_LIVE_P (last_mouse_frame)) @@ -10116,7 +10115,8 @@ last_window=window; } - note_mouse_movement (f, &mouse_pos); + if (!note_mouse_movement (f, &mouse_pos)) + help_echo_string = previous_help_echo_string; } } @@ -10931,14 +10931,17 @@ staticpro (&Qreverse); Qreverse = intern ("reverse"); + staticpro (&Qmac_ready_for_drag_n_drop); + Qmac_ready_for_drag_n_drop = intern ("mac-ready-for-drag-n-drop"); + staticpro (&x_display_name_list); x_display_name_list = Qnil; staticpro (&last_mouse_scroll_bar); last_mouse_scroll_bar = Qnil; - Qmac_ready_for_drag_n_drop = intern ("mac-ready-for-drag-n-drop"); - staticpro (&Qmac_ready_for_drag_n_drop); + staticpro (&fm_font_family_alist); + fm_font_family_alist = Qnil; #if USE_ATSUI staticpro (&atsu_font_id_hash);
--- a/src/macterm.h Fri Oct 14 03:41:43 2005 +0000 +++ b/src/macterm.h Sat Oct 15 00:26:05 2005 +0000 @@ -39,8 +39,8 @@ #define BLACK_PIX_DEFAULT(f) RGB_TO_ULONG(0,0,0) #define WHITE_PIX_DEFAULT(f) RGB_TO_ULONG(255,255,255) -#define FONT_WIDTH(f) ((f)->max_bounds.width) -#define FONT_HEIGHT(f) ((f)->ascent + (f)->descent) +#define FONT_WIDTH(f) ((f)->max_bounds.width) +#define FONT_HEIGHT(f) ((f)->ascent + (f)->descent) #define FONT_BASE(f) ((f)->ascent) #define FONT_DESCENT(f) ((f)->descent) @@ -82,16 +82,8 @@ /* Whether the screen supports color */ int color_p; -#if 0 - /* Number of bits per pixel on this screen. */ - int n_cbits; -#endif - /* Dimensions of this screen. */ int height, width; -#if 0 - int height_in,width_in; -#endif /* Mask of things that cause the mouse to be grabbed. */ int grabbed; @@ -111,33 +103,12 @@ /* Resource data base */ XrmDatabase xrdb; -#if 0 - /* color palette information. */ - int has_palette; - struct w32_palette_entry * color_list; - unsigned num_colors; - HPALETTE palette; - - /* deferred action flags checked when starting frame update. */ - int regen_palette; - - /* Keystroke that has been faked by Emacs and will be ignored when - received; value is reset after key is received. */ - int faked_key; - -#endif - /* A table of all the fonts we have already loaded. */ struct font_info *font_table; /* The current capacity of font_table. */ int font_table_size; - /* The number of fonts actually stored in the font table. - font_table[n] is used and valid iff 0 <= n < n_fonts. 0 <= - n_fonts <= font_table_size. and font_table[i].name != 0. */ - int n_fonts; - /* Minimum width over all characters in all fonts in font_table. */ int smallest_char_width; @@ -148,7 +119,7 @@ GC scratch_cursor_gc; /* These variables describe the range of text currently shown in its - mouse-face, together with the window they apply to. As long as + mouse-face, together with the window they apply to. As long as the mouse stays within this range, we need not redraw anything on its account. Rows and columns are glyph matrix positions in MOUSE_FACE_WINDOW. */ @@ -168,7 +139,6 @@ /* FRAME and X, Y position of mouse when last checked for highlighting. X and Y can be negative or out of range for the frame. */ struct frame *mouse_face_mouse_frame; - int mouse_face_mouse_x, mouse_face_mouse_y; /* Nonzero means defer mouse-motion highlighting. */ @@ -181,6 +151,11 @@ char *mac_id_name; + /* The number of fonts actually stored in the font table. + font_table[n] is used and valid iff 0 <= n < n_fonts. 0 <= + n_fonts <= font_table_size and font_table[i].name != 0. */ + int n_fonts; + /* Pointer to bitmap records. */ struct mac_bitmap_record *bitmaps; @@ -237,7 +212,7 @@ extern struct x_display_info *x_display_info_for_display P_ ((Display *)); extern struct x_display_info *x_display_info_for_name P_ ((Lisp_Object)); -extern struct mac_display_info *mac_term_init (); +extern struct mac_display_info *mac_term_init P_ ((Lisp_Object, char *, char *)); extern Lisp_Object x_list_fonts P_ ((struct frame *, Lisp_Object, int, int)); extern struct font_info *x_get_font_info P_ ((struct frame *f, int)); @@ -262,33 +237,8 @@ /* Menubar "widget" handle. */ int menubar_widget; - Window mWP; /* pointer to QuickDraw window */ FRAME_PTR mFP; /* points back to the frame struct */ -#if 0 - int mNumCols; /* number of characters per column */ - int mNumRows; /* number of characters per row */ - int mLineHeight; /* height of one line of text in pixels */ - int mCharWidth; /* width of one character in pixels */ - int mHomeX; /* X pixel coordinate of lower left - corner of character at (0, 0) */ - int mHomeY; /* Y pixel coordinate of lower left - corner of character at (0, 0) */ - int mHighlight; /* current highlight state (0 = off). */ - int mTermWinSize; /* num of lines from top of window - affected by ins_del_lines; set by - set_terminal_window. */ -#endif /* 0 */ - -#if 0 - /* stuffs used by xfaces.c */ - struct face **param_faces; - int n_param_faces; - struct face **computed_faces; - int n_computed_faces; - int size_computed_faces; -#endif - /* Here are the Graphics Contexts for the default font. */ GC normal_gc; /* Normal video */ GC reverse_gc; /* Reverse video */ @@ -322,6 +272,7 @@ unsigned long mouse_pixel; unsigned long cursor_foreground_pixel; +#if 0 /* Foreground color for scroll bars. A value of -1 means use the default (black for non-toolkit scroll bars). */ unsigned long scroll_bar_foreground_pixel; @@ -330,6 +281,7 @@ default (background color of the frame for non-toolkit scroll bars). */ unsigned long scroll_bar_background_pixel; +#endif /* Descriptor for the cursor in use for this window. */ Cursor text_cursor; @@ -357,10 +309,6 @@ ControlRef hourglass_control; #endif -#if 0 - DWORD dwStyle; -#endif - /* This is the Emacs structure for the display this frame is on. */ /* struct w32_display_info *display_info; */ @@ -377,10 +325,6 @@ /* Nonzero means a menu command is being processed. */ char menu_command_in_progress; - /* Nonzero means menubar is about to become active, but should be - brought up to date first. */ - volatile char pending_menu_activation; - /* Relief GCs, colors etc. */ struct relief { @@ -404,8 +348,8 @@ #define FRAME_X_OUTPUT(f) ((f)->output_data.mac) /* Return the Mac window used for displaying data in frame F. */ -#define FRAME_MAC_WINDOW(f) ((f)->output_data.mac->mWP) -#define FRAME_X_WINDOW(f) ((f)->output_data.mac->mWP) +#define FRAME_MAC_WINDOW(f) ((f)->output_data.mac->window_desc) +#define FRAME_X_WINDOW(f) ((f)->output_data.mac->window_desc) #define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.x->foreground_pixel) #define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.x->background_pixel) @@ -531,7 +475,7 @@ /* Return the inside width of a vertical scroll bar, given the outside width. */ -#define VERTICAL_SCROLL_BAR_INSIDE_WIDTH(f,width) \ +#define VERTICAL_SCROLL_BAR_INSIDE_WIDTH(f, width) \ ((width) \ - VERTICAL_SCROLL_BAR_LEFT_BORDER \ - VERTICAL_SCROLL_BAR_RIGHT_BORDER \
--- a/src/sysdep.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/sysdep.c Sat Oct 15 00:26:05 2005 +0000 @@ -1012,7 +1012,7 @@ void request_sigio () { - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; #ifdef SIGWINCH @@ -1026,7 +1026,7 @@ void unrequest_sigio () { - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; #ifdef SIGWINCH @@ -1044,7 +1044,7 @@ { int on = 1; - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; ioctl (input_fd, FIOASYNC, &on); @@ -1056,7 +1056,7 @@ { int off = 0; - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; ioctl (input_fd, FIOASYNC, &off); @@ -1075,7 +1075,7 @@ int on = 1; sigset_t st; - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; sigemptyset (&st); @@ -1090,7 +1090,7 @@ { int off = 0; - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; ioctl (input_fd, FIOASYNC, &off); @@ -1103,7 +1103,7 @@ void request_sigio () { - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; croak ("request_sigio"); @@ -1112,7 +1112,7 @@ void unrequest_sigio () { - if (read_socket_hook) + if (noninteractive || read_socket_hook) return; croak ("unrequest_sigio"); @@ -2235,12 +2235,16 @@ void request_sigio () { + if (noninteractive) + return; croak ("request sigio"); } void unrequest_sigio () { + if (noninteractive) + return; croak ("unrequest sigio"); } @@ -2775,6 +2779,8 @@ void request_sigio () { + if (noninteractive) + return; sigrelse (SIGTINT); interrupts_deferred = 0; @@ -2783,6 +2789,8 @@ void unrequest_sigio () { + if (noninteractive) + return; sighold (SIGTINT); interrupts_deferred = 1;
--- a/src/w32term.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/w32term.c Sat Oct 15 00:26:05 2005 +0000 @@ -1718,7 +1718,7 @@ else x = s->x; - if (s->for_overlaps_p || (s->background_filled_p && s->hl != DRAW_CURSOR)) + if (s->for_overlaps || (s->background_filled_p && s->hl != DRAW_CURSOR)) SetBkMode (s->hdc, TRANSPARENT); else SetBkMode (s->hdc, OPAQUE); @@ -2599,7 +2599,7 @@ /* If S draws into the background of its successor, draw the background of the successor first so that S can draw into it. This makes S->next use XDrawString instead of XDrawImageString. */ - if (s->next && s->right_overhang && !s->for_overlaps_p) + if (s->next && s->right_overhang && !s->for_overlaps) { xassert (s->next->img == NULL); x_set_glyph_string_gc (s->next); @@ -2612,7 +2612,7 @@ /* Draw relief (if any) in advance for char/composition so that the glyph string can be drawn over it. */ - if (!s->for_overlaps_p + if (!s->for_overlaps && s->face->box != FACE_NO_BOX && (s->first_glyph->type == CHAR_GLYPH || s->first_glyph->type == COMPOSITE_GLYPH)) @@ -2638,7 +2638,7 @@ break; case CHAR_GLYPH: - if (s->for_overlaps_p) + if (s->for_overlaps) s->background_filled_p = 1; else x_draw_glyph_string_background (s, 0); @@ -2646,7 +2646,7 @@ break; case COMPOSITE_GLYPH: - if (s->for_overlaps_p || s->gidx > 0) + if (s->for_overlaps || s->gidx > 0) s->background_filled_p = 1; else x_draw_glyph_string_background (s, 1); @@ -2657,7 +2657,7 @@ abort (); } - if (!s->for_overlaps_p) + if (!s->for_overlaps) { /* Draw underline. */ if (s->face->underline_p @@ -3355,9 +3355,7 @@ static MSG last_mouse_motion_event; static Lisp_Object last_mouse_motion_frame; -static void remember_mouse_glyph P_ ((struct frame *, int, int)); - -static void +static int note_mouse_movement (frame, msg) FRAME_PTR frame; MSG *msg; @@ -3374,13 +3372,14 @@ frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; note_mouse_highlight (frame, -1, -1); + return 1; } /* Has the mouse moved off the glyph it was on at the last sighting? */ - else if (mouse_x < last_mouse_glyph.left - || mouse_x > last_mouse_glyph.right - || mouse_y < last_mouse_glyph.top - || mouse_y > last_mouse_glyph.bottom) + if (mouse_x < last_mouse_glyph.left + || mouse_x >= last_mouse_glyph.right + || mouse_y < last_mouse_glyph.top + || mouse_y >= last_mouse_glyph.bottom) { frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; @@ -3389,8 +3388,11 @@ gets called when mouse tracking is enabled but we also need to keep track of the mouse for help_echo and highlighting at other times. */ - remember_mouse_glyph (frame, mouse_x, mouse_y); + remember_mouse_glyph (frame, mouse_x, mouse_y, &last_mouse_glyph); + return 1; } + + return 0; } @@ -3401,8 +3403,6 @@ static struct scroll_bar *x_window_to_scroll_bar (); static void x_scroll_bar_report_motion (); static void x_check_fullscreen P_ ((struct frame *)); -static int glyph_rect P_ ((struct frame *f, int, int, RECT *)); - static void redo_mouse_highlight () @@ -3421,108 +3421,6 @@ { PostMessage (window, WM_EMACS_SETCURSOR, (WPARAM) cursor, 0); } - -/* Try to determine frame pixel position and size of the glyph under - frame pixel coordinates X/Y on frame F . Return the position and - size in *RECT. Value is non-zero if we could compute these - values. */ - -static int -glyph_rect (f, x, y, rect) - struct frame *f; - int x, y; - RECT *rect; -{ - Lisp_Object window; - - window = window_from_coordinates (f, x, y, 0, &x, &y, 0); - - if (!NILP (window)) - { - struct window *w = XWINDOW (window); - struct glyph_row *r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); - struct glyph_row *end = r + w->current_matrix->nrows - 1; - - for (; r < end && r->enabled_p; ++r) - if (r->y <= y && r->y + r->height > y) - { - /* Found the row at y. */ - struct glyph *g = r->glyphs[TEXT_AREA]; - struct glyph *end = g + r->used[TEXT_AREA]; - int gx; - - rect->top = WINDOW_TO_FRAME_PIXEL_Y (w, r->y); - rect->bottom = rect->top + r->height; - - if (x < r->x) - { - /* x is to the left of the first glyph in the row. */ - /* Shouldn't this be a pixel value? - WINDOW_LEFT_EDGE_X (w) seems to be the right value. - ++KFS */ - rect->left = WINDOW_LEFT_EDGE_COL (w); - rect->right = WINDOW_TO_FRAME_PIXEL_X (w, r->x); - return 1; - } - - for (gx = r->x; g < end; gx += g->pixel_width, ++g) - if (gx <= x && gx + g->pixel_width > x) - { - /* x is on a glyph. */ - rect->left = WINDOW_TO_FRAME_PIXEL_X (w, gx); - rect->right = rect->left + g->pixel_width; - return 1; - } - - /* x is to the right of the last glyph in the row. */ - rect->left = WINDOW_TO_FRAME_PIXEL_X (w, gx); - /* Shouldn't this be a pixel value? - WINDOW_RIGHT_EDGE_X (w) seems to be the right value. - ++KFS */ - rect->right = WINDOW_RIGHT_EDGE_COL (w); - return 1; - } - } - - /* The y is not on any row. */ - return 0; -} - -/* Record the position of the mouse in last_mouse_glyph. */ -static void -remember_mouse_glyph (f1, gx, gy) - struct frame * f1; - int gx, gy; -{ - if (!glyph_rect (f1, gx, gy, &last_mouse_glyph)) - { - int width = FRAME_SMALLEST_CHAR_WIDTH (f1); - int height = FRAME_SMALLEST_FONT_HEIGHT (f1); - - /* Arrange for the division in FRAME_PIXEL_X_TO_COL etc. to - round down even for negative values. */ - if (gx < 0) - gx -= width - 1; - if (gy < 0) - gy -= height - 1; -#if 0 - /* This was the original code from XTmouse_position, but it seems - to give the position of the glyph diagonally next to the one - the mouse is over. */ - gx = (gx + width - 1) / width * width; - gy = (gy + height - 1) / height * height; -#else - gx = gx / width * width; - gy = gy / height * height; -#endif - - last_mouse_glyph.left = gx; - last_mouse_glyph.top = gy; - last_mouse_glyph.right = gx + width; - last_mouse_glyph.bottom = gy + height; - } -} - /* Return the current position of the mouse. *fp should be a frame which indicates which display to ask about. @@ -3625,7 +3523,7 @@ || insist); #else ScreenToClient (FRAME_W32_WINDOW (f1), &pt); - remember_mouse_glyph (f1, pt.x, pt.y); + remember_mouse_glyph (f1, pt.x, pt.y, &last_mouse_glyph); #endif *bar_window = Qnil; @@ -4571,6 +4469,7 @@ } previous_help_echo_string = help_echo_string; + help_echo_string = Qnil; if (dpyinfo->grabbed && last_mouse_frame && FRAME_LIVE_P (last_mouse_frame)) @@ -4609,7 +4508,8 @@ last_window=window; } - note_mouse_movement (f, &msg.msg); + if (!note_mouse_movement (f, &msg.msg)) + help_echo_string = previous_help_echo_string; } else {
--- a/src/window.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/window.c Sat Oct 15 00:26:05 2005 +0000 @@ -682,7 +682,10 @@ /* Outside any interesting column? */ if (*x < left_x || *x > right_x) - return ON_SCROLL_BAR; + { + *y -= top_y; + return ON_SCROLL_BAR; + } lmargin_width = window_box_width (w, LEFT_MARGIN_AREA); rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA); @@ -739,9 +742,9 @@ ? (*x < right_x - WINDOW_RIGHT_FRINGE_WIDTH (w)) : (*x >= right_x - rmargin_width))) { - *x -= right_x; - if (!WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)) - *x -= WINDOW_RIGHT_FRINGE_WIDTH (w); + *x -= right_x - rmargin_width; + if (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)) + *x += WINDOW_RIGHT_FRINGE_WIDTH (w); *y -= top_y; return ON_RIGHT_MARGIN; } @@ -753,7 +756,7 @@ } /* Everything special ruled out - must be on text area */ - *x -= left_x + WINDOW_LEFT_FRINGE_WIDTH (w); + *x -= text_left; *y -= top_y; return ON_TEXT; } @@ -1029,7 +1032,8 @@ if (! NILP (update) && ! (! NILP (w->window_end_valid) - && XFASTINT (w->last_modified) >= MODIFF)) + && XFASTINT (w->last_modified) >= MODIFF) + && !noninteractive) { struct text_pos startp; struct it it; @@ -6232,7 +6236,7 @@ ***********************************************************************/ static Lisp_Object -window_split_tree (w) +window_tree (w) struct window *w; { Lisp_Object tail = Qnil; @@ -6245,10 +6249,10 @@ XSETWINDOW (wn, w); if (!NILP (w->hchild)) wn = Fcons (Qnil, Fcons (Fwindow_edges (wn), - window_split_tree (XWINDOW (w->hchild)))); + window_tree (XWINDOW (w->hchild)))); else if (!NILP (w->vchild)) wn = Fcons (Qt, Fcons (Fwindow_edges (wn), - window_split_tree (XWINDOW (w->vchild)))); + window_tree (XWINDOW (w->vchild)))); if (NILP (result)) { @@ -6268,17 +6272,17 @@ -DEFUN ("window-split-tree", Fwindow_split_tree, Swindow_split_tree, +DEFUN ("window-tree", Fwindow_tree, Swindow_tree, 0, 1, 0, - doc: /* Return the window split tree for frame FRAME. + doc: /* Return the window tree for frame FRAME. The return value is a list of the form (ROOT MINI), where ROOT -represents the window split tree of the frame's root window, and MINI +represents the window tree of the frame's root window, and MINI is the frame's minibuffer window. If the root window is not split, ROOT is the root window itself. Otherwise, ROOT is a list (DIR EDGES W1 W2 ...) where DIR is nil for a -horisontal split, and t for a vertical split, EDGES gives the combined +horizontal split, and t for a vertical split, EDGES gives the combined size and position of the subwindows in the split, and the rest of the elements are the subwindows in the split. Each of the subwindows may again be a window or a list representing a window split, and so on. @@ -6301,7 +6305,7 @@ if (!FRAME_LIVE_P (f)) return Qnil; - return window_split_tree (XWINDOW (FRAME_ROOT_WINDOW (f))); + return window_tree (XWINDOW (FRAME_ROOT_WINDOW (f))); } @@ -7110,7 +7114,7 @@ defsubr (&Sset_window_configuration); defsubr (&Scurrent_window_configuration); defsubr (&Ssave_window_excursion); - defsubr (&Swindow_split_tree); + defsubr (&Swindow_tree); defsubr (&Sset_window_margins); defsubr (&Swindow_margins); defsubr (&Sset_window_fringes);
--- a/src/xdisp.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/xdisp.c Sat Oct 15 00:26:05 2005 +0000 @@ -1351,7 +1351,7 @@ current_header_line_height = current_mode_line_height = -1; if (visible_p && XFASTINT (w->hscroll) > 0) - *x -= XFASTINT (w->hscroll); + *x -= XFASTINT (w->hscroll) * WINDOW_FRAME_COLUMN_WIDTH (w); return visible_p; } @@ -1771,15 +1771,20 @@ } /* EXPORT: - Return in *R the clipping rectangle for glyph string S. */ - -void -get_glyph_string_clip_rect (s, nr) + Return in RECTS[] at most N clipping rectangles for glyph string S. + Return the number of stored rectangles. */ + +int +get_glyph_string_clip_rects (s, rects, n) struct glyph_string *s; - NativeRectangle *nr; + NativeRectangle *rects; + int n; { XRectangle r; + if (n <= 0) + return 0; + if (s->row->full_width_p) { /* Draw full-width. X coordinates are relative to S->w->left_col. */ @@ -1822,10 +1827,27 @@ /* If S draws overlapping rows, it's sufficient to use the top and bottom of the window for clipping because this glyph string intentionally draws over other lines. */ - if (s->for_overlaps_p) + if (s->for_overlaps) { r.y = WINDOW_HEADER_LINE_HEIGHT (s->w); r.height = window_text_bottom_y (s->w) - r.y; + + /* Alas, the above simple strategy does not work for the + environments with anti-aliased text: if the same text is + drawn onto the same place multiple times, it gets thicker. + If the overlap we are processing is for the erased cursor, we + take the intersection with the rectagle of the cursor. */ + if (s->for_overlaps & OVERLAPS_ERASED_CURSOR) + { + XRectangle rc, r_save = r; + + rc.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (s->w, s->w->phys_cursor.x); + rc.y = s->w->phys_cursor.y; + rc.width = s->w->phys_cursor_width; + rc.height = s->w->phys_cursor_height; + + x_intersect_rectangles (&r_save, &rc, &r); + } } else { @@ -1884,11 +1906,71 @@ } } + if ((s->for_overlaps & OVERLAPS_BOTH) == 0 + || (s->for_overlaps & OVERLAPS_BOTH) == OVERLAPS_BOTH && n == 1) + { #ifdef CONVERT_FROM_XRECT - CONVERT_FROM_XRECT (r, *nr); + CONVERT_FROM_XRECT (r, *rects); +#else + *rects = r; +#endif + return 1; + } + else + { + /* If we are processing overlapping and allowed to return + multiple clipping rectangles, we exclude the row of the glyph + string from the clipping rectangle. This is to avoid drawing + the same text on the environment with anti-aliasing. */ +#ifdef CONVERT_FROM_XRECT + XRectangle rs[2]; #else - *nr = r; -#endif + XRectangle *rs = rects; +#endif + int i = 0, row_y = WINDOW_TO_FRAME_PIXEL_Y (s->w, s->row->y); + + if (s->for_overlaps & OVERLAPS_PRED) + { + rs[i] = r; + if (r.y + r.height > row_y) + if (r.y < row_y) + rs[i].height = row_y - r.y; + else + rs[i].height = 0; + i++; + } + if (s->for_overlaps & OVERLAPS_SUCC) + { + rs[i] = r; + if (r.y < row_y + s->row->visible_height) + if (r.y + r.height > row_y + s->row->visible_height) + { + rs[i].y = row_y + s->row->visible_height; + rs[i].height = r.y + r.height - rs[i].y; + } + else + rs[i].height = 0; + i++; + } + + n = i; +#ifdef CONVERT_FROM_XRECT + for (i = 0; i < n; i++) + CONVERT_FROM_XRECT (rs[i], rects[i]); +#endif + return n; + } +} + +/* EXPORT: + Return in *NR the clipping rectangle for glyph string S. */ + +void +get_glyph_string_clip_rect (s, nr) + struct glyph_string *s; + NativeRectangle *nr; +{ + get_glyph_string_clip_rects (s, nr, 1); } @@ -1948,6 +2030,198 @@ return WINDOW_TO_FRAME_PIXEL_Y (w, y); } +/* + * Remember which glyph the mouse is over. + */ + +void +remember_mouse_glyph (f, gx, gy, rect) + struct frame *f; + int gx, gy; + NativeRectangle *rect; +{ + Lisp_Object window; + struct window *w; + struct glyph_row *r, *gr, *end_row; + enum window_part part; + enum glyph_row_area area; + int x, y, width, height; + + /* Try to determine frame pixel position and size of the glyph under + frame pixel coordinates X/Y on frame F. */ + + window = window_from_coordinates (f, gx, gy, &part, &x, &y, 0); + if (NILP (window)) + { + width = FRAME_SMALLEST_CHAR_WIDTH (f); + height = FRAME_SMALLEST_FONT_HEIGHT (f); + goto virtual_glyph; + } + + w = XWINDOW (window); + width = WINDOW_FRAME_COLUMN_WIDTH (w); + height = WINDOW_FRAME_LINE_HEIGHT (w); + + r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); + end_row = MATRIX_BOTTOM_TEXT_ROW (w->current_matrix, w); + + if (w->pseudo_window_p) + { + area = TEXT_AREA; + part = ON_MODE_LINE; /* Don't adjust margin. */ + goto text_glyph; + } + + switch (part) + { + case ON_LEFT_MARGIN: + area = LEFT_MARGIN_AREA; + goto text_glyph; + + case ON_RIGHT_MARGIN: + area = RIGHT_MARGIN_AREA; + goto text_glyph; + + case ON_HEADER_LINE: + case ON_MODE_LINE: + gr = (part == ON_HEADER_LINE + ? MATRIX_HEADER_LINE_ROW (w->current_matrix) + : MATRIX_MODE_LINE_ROW (w->current_matrix)); + gy = gr->y; + area = TEXT_AREA; + goto text_glyph_row_found; + + case ON_TEXT: + area = TEXT_AREA; + + text_glyph: + gr = 0; gy = 0; + for (; r <= end_row && r->enabled_p; ++r) + if (r->y + r->height > y) + { + gr = r; gy = r->y; + break; + } + + text_glyph_row_found: + if (gr && gy <= y) + { + struct glyph *g = gr->glyphs[area]; + struct glyph *end = g + gr->used[area]; + + height = gr->height; + for (gx = gr->x; g < end; gx += g->pixel_width, ++g) + if (gx + g->pixel_width > x) + break; + + if (g < end) + { + if (g->type == IMAGE_GLYPH) + { + /* Don't remember when mouse is over image, as + image may have hot-spots. */ + STORE_NATIVE_RECT (*rect, 0, 0, 0, 0); + return; + } + width = g->pixel_width; + } + else + { + /* Use nominal char spacing at end of line. */ + x -= gx; + gx += (x / width) * width; + } + + if (part != ON_MODE_LINE && part != ON_HEADER_LINE) + gx += window_box_left_offset (w, area); + } + else + { + /* Use nominal line height at end of window. */ + gx = (x / width) * width; + y -= gy; + gy += (y / height) * height; + } + break; + + case ON_LEFT_FRINGE: + gx = (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) + ? WINDOW_LEFT_SCROLL_BAR_AREA_WIDTH (w) + : window_box_right_offset (w, LEFT_MARGIN_AREA)); + width = WINDOW_LEFT_FRINGE_WIDTH (w); + goto row_glyph; + + case ON_RIGHT_FRINGE: + gx = (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) + ? window_box_right_offset (w, RIGHT_MARGIN_AREA) + : window_box_right_offset (w, TEXT_AREA)); + width = WINDOW_RIGHT_FRINGE_WIDTH (w); + goto row_glyph; + + case ON_SCROLL_BAR: + gx = (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) + ? 0 + : (window_box_right_offset (w, RIGHT_MARGIN_AREA) + + (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) + ? WINDOW_RIGHT_FRINGE_WIDTH (w) + : 0))); + width = WINDOW_SCROLL_BAR_AREA_WIDTH (w); + + row_glyph: + gr = 0, gy = 0; + for (; r <= end_row && r->enabled_p; ++r) + if (r->y + r->height > y) + { + gr = r; gy = r->y; + break; + } + + if (gr && gy <= y) + height = gr->height; + else + { + /* Use nominal line height at end of window. */ + y -= gy; + gy += (y / height) * height; + } + break; + + default: + ; + virtual_glyph: + /* If there is no glyph under the mouse, then we divide the screen + into a grid of the smallest glyph in the frame, and use that + as our "glyph". */ + + /* Arrange for the division in FRAME_PIXEL_X_TO_COL etc. to + round down even for negative values. */ + if (gx < 0) + gx -= width - 1; + if (gy < 0) + gy -= height - 1; + + gx = (gx / width) * width; + gy = (gy / height) * height; + + goto store_rect; + } + + gx += WINDOW_LEFT_EDGE_X (w); + gy += WINDOW_TOP_EDGE_Y (w); + + store_rect: + STORE_NATIVE_RECT (*rect, gx, gy, width, height); + + /* Visible feedback for debugging. */ +#if 0 +#if HAVE_X_WINDOWS + XDrawRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), + f->output_data.x->normal_gc, + gx, gy, width, height); +#endif +#endif +} + #endif /* HAVE_WINDOW_SYSTEM */ @@ -18122,22 +18396,23 @@ FACES is an array of faces for all components of this composition. S->gidx is the index of the first component for S. - OVERLAPS_P non-zero means S should draw the foreground only, and - use its physical height for clipping. + + OVERLAPS non-zero means S should draw the foreground only, and use + its physical height for clipping. See also draw_glyphs. Value is the index of a component not in S. */ static int -fill_composite_glyph_string (s, faces, overlaps_p) +fill_composite_glyph_string (s, faces, overlaps) struct glyph_string *s; struct face **faces; - int overlaps_p; + int overlaps; { int i; xassert (s); - s->for_overlaps_p = overlaps_p; + s->for_overlaps = overlaps; s->face = faces[s->gidx]; s->font = s->face->font; @@ -18181,16 +18456,16 @@ FACE_ID is the face id of the string. START is the index of the first glyph to consider, END is the index of the last + 1. - OVERLAPS_P non-zero means S should draw the foreground only, and - use its physical height for clipping. + OVERLAPS non-zero means S should draw the foreground only, and use + its physical height for clipping. See also draw_glyphs. Value is the index of the first glyph not in S. */ static int -fill_glyph_string (s, face_id, start, end, overlaps_p) +fill_glyph_string (s, face_id, start, end, overlaps) struct glyph_string *s; int face_id; - int start, end, overlaps_p; + int start, end, overlaps; { struct glyph *glyph, *last; int voffset; @@ -18200,7 +18475,7 @@ xassert (s->nchars == 0); xassert (start >= 0 && end > start); - s->for_overlaps_p = overlaps_p, + s->for_overlaps = overlaps, glyph = s->row->glyphs[s->area] + start; last = s->row->glyphs[s->area] + end; voffset = glyph->voffset; @@ -18676,7 +18951,7 @@ INIT_GLYPH_STRING (s, char2b, w, row, area, START, HL); \ append_glyph_string (&HEAD, &TAIL, s); \ s->x = (X); \ - START = fill_glyph_string (s, face_id, START, END, overlaps_p); \ + START = fill_glyph_string (s, face_id, START, END, overlaps); \ } \ while (0) @@ -18729,7 +19004,7 @@ if (n == 0) \ first_s = s; \ \ - n = fill_composite_glyph_string (s, faces, overlaps_p); \ + n = fill_composite_glyph_string (s, faces, overlaps); \ } \ \ ++START; \ @@ -18801,20 +19076,26 @@ DRAW_IMAGE_SUNKEN draw an image with a sunken relief around it DRAW_IMAGE_RAISED draw an image with a raised relief around it - If OVERLAPS_P is non-zero, draw only the foreground of characters - and clip to the physical height of ROW. + If OVERLAPS is non-zero, draw only the foreground of characters and + clip to the physical height of ROW. Non-zero value also defines + the overlapping part to be drawn: + + OVERLAPS_PRED overlap with preceding rows + OVERLAPS_SUCC overlap with succeeding rows + OVERLAPS_BOTH overlap with both preceding/succeeding rows + OVERLAPS_ERASED_CURSOR overlap with erased cursor area Value is the x-position reached, relative to AREA of W. */ static int -draw_glyphs (w, x, row, area, start, end, hl, overlaps_p) +draw_glyphs (w, x, row, area, start, end, hl, overlaps) struct window *w; int x; struct glyph_row *row; enum glyph_row_area area; EMACS_INT start, end; enum draw_glyphs_face hl; - int overlaps_p; + int overlaps; { struct glyph_string *head, *tail; struct glyph_string *s; @@ -18863,7 +19144,7 @@ /* If there are any glyphs with lbearing < 0 or rbearing > width in the row, redraw some glyphs in front or following the glyph strings built above. */ - if (head && !overlaps_p && row->contains_overlapping_glyphs_p) + if (head && !overlaps && row->contains_overlapping_glyphs_p) { int dummy_x = 0; struct glyph_string *h, *t; @@ -18956,7 +19237,7 @@ /* When drawing overlapping rows, only the glyph strings' foreground is drawn, which doesn't erase a cursor completely. */ - && !overlaps_p) + && !overlaps) { int x0 = clip_head ? clip_head->x : (head ? head->x : x); int x1 = (clip_tail ? clip_tail->x + clip_tail->background_width @@ -20729,13 +21010,15 @@ #ifdef HAVE_WINDOW_SYSTEM /* EXPORT for RIF: - Fix the display of area AREA of overlapping row ROW in window W. */ - -void -x_fix_overlapping_area (w, row, area) + Fix the display of area AREA of overlapping row ROW in window W + with respect to the overlapping part OVERLAPS. */ + +void +x_fix_overlapping_area (w, row, area, overlaps) struct window *w; struct glyph_row *row; enum glyph_row_area area; + int overlaps; { int i, x; @@ -20758,7 +21041,7 @@ draw_glyphs (w, start_x, row, area, start, i, - DRAW_NORMAL_TEXT, 1); + DRAW_NORMAL_TEXT, overlaps); } else { @@ -20800,13 +21083,17 @@ are redrawn. */ else if (hl == DRAW_NORMAL_TEXT && row->overlapped_p) { + w->phys_cursor_width = x1 - w->phys_cursor.x; + if (row > w->current_matrix->rows && MATRIX_ROW_OVERLAPS_SUCC_P (row - 1)) - x_fix_overlapping_area (w, row - 1, TEXT_AREA); + x_fix_overlapping_area (w, row - 1, TEXT_AREA, + OVERLAPS_ERASED_CURSOR); if (MATRIX_ROW_BOTTOM_Y (row) < window_text_bottom_y (w) && MATRIX_ROW_OVERLAPS_PRED_P (row + 1)) - x_fix_overlapping_area (w, row + 1, TEXT_AREA); + x_fix_overlapping_area (w, row + 1, TEXT_AREA, + OVERLAPS_ERASED_CURSOR); } } } @@ -22597,13 +22884,13 @@ xassert (row->enabled_p && !row->mode_line_p); if (row->used[LEFT_MARGIN_AREA]) - x_fix_overlapping_area (w, row, LEFT_MARGIN_AREA); + x_fix_overlapping_area (w, row, LEFT_MARGIN_AREA, OVERLAPS_BOTH); if (row->used[TEXT_AREA]) - x_fix_overlapping_area (w, row, TEXT_AREA); + x_fix_overlapping_area (w, row, TEXT_AREA, OVERLAPS_BOTH); if (row->used[RIGHT_MARGIN_AREA]) - x_fix_overlapping_area (w, row, RIGHT_MARGIN_AREA); + x_fix_overlapping_area (w, row, RIGHT_MARGIN_AREA, OVERLAPS_BOTH); } }
--- a/src/xfaces.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/xfaces.c Sat Oct 15 00:26:05 2005 +0000 @@ -790,7 +790,10 @@ XGCValues *xgcv; { GC gc; + BLOCK_INPUT; gc = XCreateGC (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), mask, xgcv); + UNBLOCK_INPUT; + IF_DEBUG (++ngcs); return gc; } @@ -799,7 +802,10 @@ struct frame *f; GC gc; { + BLOCK_INPUT; + IF_DEBUG (xassert (--ngcs >= 0)); XFreeGC (FRAME_MAC_DISPLAY (f), gc); + UNBLOCK_INPUT; } #endif /* MAC_OS */
--- a/src/xfns.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/xfns.c Sat Oct 15 00:26:05 2005 +0000 @@ -3261,7 +3261,7 @@ /* We need to do this after creating the X window, so that the icon-creation functions can say whose icon they're describing. */ - x_default_parameter (f, parms, Qicon_type, Qnil, + x_default_parameter (f, parms, Qicon_type, Qt, "bitmapIcon", "BitmapIcon", RES_TYPE_SYMBOL); x_default_parameter (f, parms, Qauto_raise, Qnil,
--- a/src/xterm.c Fri Oct 14 03:41:43 2005 +0000 +++ b/src/xterm.c Sat Oct 15 00:26:05 2005 +0000 @@ -1305,7 +1305,7 @@ XDrawImageString is usually faster than XDrawString.) Always use XDrawImageString when drawing the cursor so that there is no chance that characters under a box cursor are invisible. */ - if (s->for_overlaps_p + if (s->for_overlaps || (s->background_filled_p && s->hl != DRAW_CURSOR)) { /* Draw characters with 16-bit or 8-bit functions. */ @@ -2610,7 +2610,7 @@ /* If S draws into the background of its successor, draw the background of the successor first so that S can draw into it. This makes S->next use XDrawString instead of XDrawImageString. */ - if (s->next && s->right_overhang && !s->for_overlaps_p) + if (s->next && s->right_overhang && !s->for_overlaps) { xassert (s->next->img == NULL); x_set_glyph_string_gc (s->next); @@ -2623,7 +2623,7 @@ /* Draw relief (if any) in advance for char/composition so that the glyph string can be drawn over it. */ - if (!s->for_overlaps_p + if (!s->for_overlaps && s->face->box != FACE_NO_BOX && (s->first_glyph->type == CHAR_GLYPH || s->first_glyph->type == COMPOSITE_GLYPH)) @@ -2649,7 +2649,7 @@ break; case CHAR_GLYPH: - if (s->for_overlaps_p) + if (s->for_overlaps) s->background_filled_p = 1; else x_draw_glyph_string_background (s, 0); @@ -2657,7 +2657,7 @@ break; case COMPOSITE_GLYPH: - if (s->for_overlaps_p || s->gidx > 0) + if (s->for_overlaps || s->gidx > 0) s->background_filled_p = 1; else x_draw_glyph_string_background (s, 1); @@ -2668,7 +2668,7 @@ abort (); } - if (!s->for_overlaps_p) + if (!s->for_overlaps) { /* Draw underline. */ if (s->face->underline_p) @@ -3588,7 +3588,7 @@ static XMotionEvent last_mouse_motion_event; static Lisp_Object last_mouse_motion_frame; -static void +static int note_mouse_movement (frame, event) FRAME_PTR frame; XMotionEvent *event; @@ -3602,10 +3602,11 @@ frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; note_mouse_highlight (frame, -1, -1); + return 1; } /* Has the mouse moved off the glyph it was on at the last sighting? */ - else if (event->x < last_mouse_glyph.x + if (event->x < last_mouse_glyph.x || event->x >= last_mouse_glyph.x + last_mouse_glyph.width || event->y < last_mouse_glyph.y || event->y >= last_mouse_glyph.y + last_mouse_glyph.height) @@ -3613,7 +3614,12 @@ frame->mouse_moved = 1; last_mouse_scroll_bar = Qnil; note_mouse_highlight (frame, event->x, event->y); - } + /* Remember which glyph we're now on. */ + remember_mouse_glyph (frame, event->x, event->y, &last_mouse_glyph); + return 1; + } + + return 0; } @@ -3632,56 +3638,6 @@ } -static int glyph_rect P_ ((struct frame *f, int, int, XRectangle *)); - - -/* Try to determine frame pixel position and size of the glyph under - frame pixel coordinates X/Y on frame F . Return the position and - size in *RECT. Value is non-zero if we could compute these - values. */ - -static int -glyph_rect (f, x, y, rect) - struct frame *f; - int x, y; - XRectangle *rect; -{ - Lisp_Object window; - struct window *w; - struct glyph_row *r, *end_row; - - window = window_from_coordinates (f, x, y, 0, &x, &y, 0); - if (NILP (window)) - return 0; - - w = XWINDOW (window); - r = MATRIX_FIRST_TEXT_ROW (w->current_matrix); - end_row = r + w->current_matrix->nrows - 1; - - for (; r < end_row && r->enabled_p; ++r) - { - if (r->y >= y) - { - struct glyph *g = r->glyphs[TEXT_AREA]; - struct glyph *end = g + r->used[TEXT_AREA]; - int gx = r->x; - while (g < end && gx < x) - gx += g->pixel_width, ++g; - if (g < end) - { - rect->width = g->pixel_width; - rect->height = r->height; - rect->x = WINDOW_TO_FRAME_PIXEL_X (w, gx); - rect->y = WINDOW_TO_FRAME_PIXEL_Y (w, r->y); - return 1; - } - break; - } - } - - return 0; -} - /* Return the current position of the mouse. *FP should be a frame which indicates which display to ask about. @@ -3869,32 +3825,7 @@ on it, i.e. into the same rectangles that matrices on the frame are divided into. */ - int width, height, gx, gy; - XRectangle rect; - - if (glyph_rect (f1, win_x, win_y, &rect)) - last_mouse_glyph = rect; - else - { - width = FRAME_SMALLEST_CHAR_WIDTH (f1); - height = FRAME_SMALLEST_FONT_HEIGHT (f1); - gx = win_x; - gy = win_y; - - /* Arrange for the division in FRAME_PIXEL_X_TO_COL etc. to - round down even for negative values. */ - if (gx < 0) - gx -= width - 1; - if (gy < 0) - gy -= height - 1; - gx = (gx + width - 1) / width * width; - gy = (gy + height - 1) / height * height; - - last_mouse_glyph.width = width; - last_mouse_glyph.height = height; - last_mouse_glyph.x = gx; - last_mouse_glyph.y = gy; - } + remember_mouse_glyph (f1, win_x, win_y, &last_mouse_glyph); *bar_window = Qnil; *part = 0; @@ -6571,8 +6502,7 @@ case MotionNotify: { previous_help_echo_string = help_echo_string; - help_echo_string = help_echo_object = help_echo_window = Qnil; - help_echo_pos = -1; + help_echo_string = Qnil; if (dpyinfo->grabbed && last_mouse_frame && FRAME_LIVE_P (last_mouse_frame)) @@ -6611,7 +6541,8 @@ last_window=window; } - note_mouse_movement (f, &event.xmotion); + if (!note_mouse_movement (f, &event.xmotion)) + help_echo_string = previous_help_echo_string; } else { @@ -6720,6 +6651,7 @@ int tool_bar_p = 0; bzero (&compose_status, sizeof (compose_status)); + bzero (&last_mouse_glyph, sizeof (last_mouse_glyph)); if (dpyinfo->grabbed && last_mouse_frame