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.
This commit is contained in:
Miles Bader 2005-10-15 00:26:05 +00:00
commit 9fe76e1b25
114 changed files with 16050 additions and 14859 deletions

View file

@ -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

View file

@ -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.

View file

@ -53,20 +53,8 @@ test), it may be better just to avoid displaying such images for emacs 22.
** 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 @@ people who have checked it.
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/indent.texi "Luc Teirlinck" Chong Yidong
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 @@ SECTION READERS
----------------------------------
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

View file

@ -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.

View file

@ -250,6 +250,11 @@ disables the splash screen; see also the variable
`inhibit-startup-message' (which is also aliased as
`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
@ -2982,6 +2987,50 @@ from Outlook-format appointments in mail messages. The variable
`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 @@ If non-nil, that says to preserve the window's current margin, fringe,
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

View file

@ -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 @@ E12CD06BD02AB38CBA57492EFEB4A12AE7B58548623D7F862515AA3EC1B4F84A
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 @@ A208ED52A9684A802003AAD6D9FCD5A3CF635FCC938931CB94C751212CCCDA6E
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 @@ TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi)
@start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1
49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34
30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44
1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 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 @@ TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi)
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 @@ TeXDict begin
%%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 @@ end
%%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 @@ b Fi(with)g(the)h(cur-)4242 3574 y(sor)h(still)g(in)g(a)h(line)f(to)h
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

View file

@ -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

View file

@ -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.
* mh-e/mh-loaddefs.el: Remove. 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
* 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>

View file

@ -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

View file

@ -119,7 +119,7 @@ update-subdirs: doit
$(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 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH-E-SRC)
$(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:" >> $@

View file

@ -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))

View file

@ -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))

View file

@ -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

View file

@ -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))

View file

@ -654,6 +654,7 @@ If nil, computations on numbers always yield numbers where possible.")
(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 @@ See calc-keypad for details."
(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 " "")

View file

@ -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: ")

View file

@ -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 @@ displayed in a window:
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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -99,6 +99,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
(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

View file

@ -963,10 +963,11 @@ directory DIRNAME."
(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, ...;

View file

@ -175,7 +175,8 @@ markers before we call `read'."
(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 @@ Autoload section for %s is up to date."
(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.

View file

@ -548,7 +548,7 @@ a cons (TYPE . COLOR), then both properties are affected."
;;; 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

View file

@ -354,7 +354,7 @@ contained expressions. You can also alter it by calling
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 @@ word \"bar\" following the word \"anchor\" then MATCH-ANCHORED may be required.
MATCH-HIGHLIGHT should be of the form:
(MATCH FACENAME [OVERRIDE [LAXMATCH]])
(SUBEXP FACENAME [OVERRIDE [LAXMATCH]])
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 ...)
SUBEXP is the number of the subexpression of MATCHER to be highlighted.
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 @@ OVERRIDE and LAXMATCH are flags. If OVERRIDE is t, existing fontification can
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 @@ The function is called with a single parameter (the state as returned by
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.
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:
"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.
(MATCH SYNTAX OVERRIDE LAXMATCH)
See `font-lock-keywords' for a description of the form of this list;
only the differences are stated here. MATCH-HIGHLIGHT should be of the form:
(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'.")

View file

@ -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.

View file

@ -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 @@ to values."
(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"))))

View file

@ -197,6 +197,7 @@ for decoding when the cdr that the data specify is not available.")
" ")))
(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 @@ for decoding when the cdr that the data specify is not available.")
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 @@ for decoding when the cdr that the data specify is not available.")
(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 @@ for decoding when the cdr that the data specify is not available.")
(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 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
(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 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
(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 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
(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))

View file

@ -25,8 +25,6 @@
;;; Code:
(require 'custom)
(defgroup pgg ()
"Glue for the various PGP implementations."
:group 'mime

View file

@ -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)))

View file

@ -37,8 +37,6 @@
(eval-when-compile (require 'cl))
(require 'custom)
(defgroup pgg-parse ()
"OpenPGP packet parsing."
:group 'pgg)

View file

@ -149,14 +149,16 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
(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."

View file

@ -329,7 +329,7 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
(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 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
(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 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
(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 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
(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 @@ Does not display the buffer during evaluation. See
: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 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
(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 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
: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 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
(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 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
(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 @@ To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
(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 @@ The list returned will be of the form (\"MODE-NAME\" . MODE-SYMBOL)."
;;; 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 @@ The list returned will be of the form (\"MODE-NAME\" . MODE-SYMBOL)."
"")))))
(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 @@ currently used by buffers."
"")))))
(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 @@ currently used by buffers."
(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 @@ currently used by buffers."
(> (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 @@ currently used by buffers."
(< (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 @@ currently used by buffers."
(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 @@ Default sorting modes are:
"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 @@ Ordering is lexicographic."
(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 @@ Ordering is lexicographic."
(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 @@ Ordering is lexicographic."
(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")

View file

@ -3150,8 +3150,6 @@ if point is in a menu item description, follow that menu item."
: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 @@ Selecting other nodes:
\\[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 @@ Moving within a node:
\\[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 @@ the variable `Info-file-list-for-emacs'."
((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 @@ the variable `Info-file-list-for-emacs'."
;; 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)

View file

@ -281,7 +281,7 @@ Returns the new status of auto compression (non-nil means on)."
;;; 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))

View file

@ -109,6 +109,8 @@ are indicated with a symbol."
(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 @@ are indicated with a symbol."
'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 @@ This is called by `window-size-change-functions'."
(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

View file

@ -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

View file

@ -179,7 +179,7 @@ update-subdirs-SH: doit
$(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 @@ TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2)
# 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 @@ compile-after-backup: backup-compiled-files compile-always
# 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 @@ bootstrap-clean-SH:
# 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)
#

View file

@ -1 +1,2 @@
mh-autoloads.el
mh-loaddefs.el

File diff suppressed because it is too large Load diff

11416
lisp/mh-e/ChangeLog.1 Normal file

File diff suppressed because it is too large Load diff

View file

@ -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>

View file

@ -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 @@ When a message is composed, the hooks `text-mode-hook' and
(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 @@ Return t if fields added; otherwise return nil."
(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 @@ not indent and do not delete headers. Leaves the mark before the letter
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))

View file

@ -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 @@ aliases or addresses. The default setting flashes the address associated with
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 @@ The gnus method uses a different color for each indentation."
"Prev-Resent" ; MH
"Priority:"
"Received:" ; RFC 822
"Received-SPF:" ; Gmail
"References:"
"Remailed-" ; MH
"Replied:" ; MH
@ -1246,10 +1248,11 @@ The gnus method uses a different color for each indentation."
"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 @@ The gnus method uses a different color for each indentation."
"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 @@ where,
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

View file

@ -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 @@ bottom of the current message."
(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 @@ DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the
(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.

View file

@ -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>

View file

@ -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>

View file

@ -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 @@ directories to the customizable variable `mh-path'.")
"*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 @@ by the variable `mh-variants'."
(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:

View file

@ -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>

View file

@ -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 @@ Optional argument INLINE means make it an inline attachment."
(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.

View file

@ -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>

View file

@ -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>

View file

@ -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 @@ appears."
;; 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 @@ Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command."
(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)

View file

@ -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>

View file

@ -958,12 +958,14 @@ at the same position."
(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 @@ at the same position."
(and (mark t) mark-active
(eq buffer (current-buffer))
(mouse-set-region-1))))
(delete-overlay mouse-drag-overlay)
;; 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)
(when (and (functionp fun)
(= start-hscroll (window-hscroll start-window))
;; Don't run the up-event handler if the
@ -1026,10 +1032,7 @@ at the same position."
(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)))

View file

@ -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 @@ static char * visit_xpm[] = {
;;; 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 @@ if newsticker has been running."
(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)

View file

@ -844,7 +844,7 @@ which should work well in many cases."
: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 @@ implementation. The necessity, whether this variable must be set, can be
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))))
(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.
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.
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).
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.
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 @@ printf(
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 @@ target of the symlink differ."
(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 @@ target of the symlink differ."
(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 @@ of."
(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 @@ This will break if COMMAND prints a newline, followed by the value of
'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 @@ This will break if COMMAND prints a newline, followed by the value of
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 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(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 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(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 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
;; 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 @@ as default."
;; 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)

View file

@ -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"

View file

@ -1887,7 +1887,7 @@ directory specification."
;; 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 @@ see the doc of that variable if you want to add names to the list."
(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 @@ see the doc of that variable if you want to add names to the list."
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 @@ see the doc of that variable if you want to add names to the list."
(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 @@ see the doc of that variable if you want to add names to the list."
(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 @@ for \\[find-tag] (which see)."
(provide 'etags)
;;; arch-tag: b897c2b5-08f3-4837-b2d3-0e7d6db1b63e
;; arch-tag: b897c2b5-08f3-4837-b2d3-0e7d6db1b63e
;;; etags.el ends here

View file

@ -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 @@ The options are 'downcase-word, 'upcase-word, 'capitalize-word and nil."
"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 @@ subroutine\\)\\|use\\|call\\)\\>[ \t]*\\(\\sw+\\)?"
(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 @@ do\\([ \t]*while\\)?\\|select[ \t]*case\\|where\\|forall\\)\\)\\>"
(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 @@ Used in the F90 entry in `hs-special-modes-alist'.")
("`de" "deallocate" )
("`df" "define" )
("`di" "dimension" )
("`dp" "double precision")
("`dw" "do while" )
("`el" "else" )
("`eli" "else if" )
@ -796,8 +798,6 @@ Variables controlling indentation style and extra features:
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."

View file

@ -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.

View file

@ -173,28 +173,28 @@ See Info node `(emacs)GDB Graphical Interface' for a more
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 @@ happens to be appropriate."
(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 @@ corresponding to the mode line clicked."
(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 @@ BUFFER nil or omitted means use the current buffer."
(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 @@ BUFFER nil or omitted means use the current buffer."
(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)))))
;;

View file

@ -336,9 +336,6 @@ we're in the GUD buffer)."
;; 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 @@ t means that there is no stack, and we are in display-file mode.")
(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 @@ t means that there is no stack, and we are in display-file mode.")
(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 @@ It is saved for when this flag is not set.")
;; 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)))

File diff suppressed because it is too large Load diff

View file

@ -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 @@ Other useful functions are:
\\[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 @@ on the line which ends a function or procedure named NAME."
(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 @@ Do not count labels, case-statements or records."
(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 @@ Do not count labels, case-statements or records."
(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 @@ Do not count labels, case-statements or records."
(forward-char 1)
(delete-horizontal-space)
(insert " "))
(setq oldpos (point))
(pascal-end-of-statement))
(goto-char savepos)))
@ -1490,30 +1488,20 @@ The default is a name found in the buffer around point."
;;;
;;; 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 Outline mode provides some additional commands.
\\[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 @@ Pascal Outline mode provides some additional commands.
(provide 'pascal)
;;; arch-tag: 04535136-fd93-40b4-a505-c9bebdc051f5
;; arch-tag: 04535136-fd93-40b4-a505-c9bebdc051f5
;;; pascal.el ends here

View file

@ -3392,7 +3392,7 @@ t means to return a list of all possible completions of STRING.
"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 @@ t means to return a list of all possible completions of STRING.
"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 @@ t means to return a list of all possible completions of STRING.
(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))

View file

@ -206,6 +206,13 @@ elements (see `recentf-make-menu-element' for menu element form)."
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 @@ If non-nil, `recentf-open-files' will show labels for keys that can be
used as shortcuts to open the Nth file."
:group 'recentf
:type 'boolean)
;;; Utilities
;;
@ -448,6 +454,25 @@ Return non-nil if F1 is less than F2."
;;; 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 @@ menu-elements (no sub-menu)."
(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 @@ menu-elements (no sub-menu)."
(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 @@ unchanged."
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 @@ That is, remove a non kept file from the recent list."
;;; 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 @@ Click on Cancel or type `q' to cancel.\n")
'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 @@ use for the dialog. It defaults to \"*`recentf-menu-title'*\"."
"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 @@ That is, remove duplicates, non-kept, and excluded files."
(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 @@ With prefix argument ARG, turn on if positive, otherwise off.
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)

View file

@ -762,7 +762,7 @@ This basically creates a sparse keymap, and makes it's parent be
(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)

View file

@ -121,8 +121,7 @@ This is normally copied from `default-directory' when Emacs starts.")
("-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 @@ This is normally copied from `default-directory' when Emacs starts.")
("--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 @@ This is an internal function used to turn off the splash screen after
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))

View file

@ -54,8 +54,6 @@
;; -font *font
;; -foreground *foreground
;; -geometry .geometry
;; -i .iconType
;; -itype .iconType
;; -iconic .iconic
;; -name .name
;; -reverse *reverseVideo

View file

@ -772,7 +772,8 @@ Mostly we check word delimiters."
((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 @@ Word syntax described by `flyspell-dictionary-alist' (which see)."
;* 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 ... */

View file

@ -821,7 +821,7 @@ Otherwise returns the library directory name, if that is defined."
(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")))

View file

@ -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 @@ or contain a special line
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 @@ When this is non-nil, the headline after the keyword is set to the
))
(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 @@ this variable requires a restart of Emacs to become effective."
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 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(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 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(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 @@ When LEVEL is non-nil, increase section numbers on that level."
;; 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 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
(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

View file

@ -577,7 +577,7 @@ An alternative value is \" . \", if you use a font with a narrow period."
;; 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)

View file

@ -7,4 +7,6 @@ The following icons are from GTK+ 2.x:
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.

Binary file not shown.

View file

@ -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",
" ............... ",
" .+@@@@@@@@@@@@@#. ",
".$@@@@@@@@@@@@@@@#.",
".++++%%%%%%%%%&&&*.",
".&&&&&&&&&&******#.",
".*%+++%%%%%%%%%&=#.",
".*+***********##-#.",
".*+****;===;####-#.",
".*+****=*****###-#.",
".*+****;*****###-#.",
".*+****########>-#.",
".*&######>>>>>>>,>.",
".*#-------------'>)",
".*&&&&&&&&&&&&&*#>)",
".*&************#'>)",
".*&***********##,>)",
".*&****====;###>,>)",
".#&****=**#**##>,;)",
".#&****>****###>,;)",
".#&****########>,;)",
".##''''''''''''',;)",
".#>==============;)",
".''''''''''''''''-!",
" ................. "};

View file

@ -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

View file

@ -30,7 +30,7 @@ displayed in windows.
* 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 @@ The function @code{coordinates-in-window-p} does not require a frame as
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.

View file

@ -218,13 +218,6 @@ then
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 @@ for subdir in lisp site-lisp lispref lispintro \
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 @@ echo "Making links to \`etc/e'"
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}

View file

@ -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

View file

@ -636,10 +636,17 @@ Char: c (0143, 99, 0x63) point=21044 of 26883(78%) column 53
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

View file

@ -801,18 +801,21 @@ If @code{gdb-many-windows} is non-@code{nil}, regardless of the value of
@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 @@ re-compiling your program, then you can restore it with the command
@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 current line (@code{gdb-goto-breakpoint}). Alternatively, click
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 @@ types, such as arrays, structures and unions are represented in a tree
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 @@ available here. @xref{Shell Mode}.
@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 @@ appear in the fringe or margin.
@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

View file

@ -12817,7 +12817,9 @@ If you press @kbd{m v} with a numeric prefix argument @var{n}, you
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 not a vector.
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 @@ Command is @kbd{m p}.
@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 @@ Symbolic mode (@kbd{m s}; @pxref{Symbolic Mode}).
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 @@ argument once).
@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 @@ is not strictly a quotient of polynomials, but it is equivalent to
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

View file

@ -1173,12 +1173,12 @@ If you have many clients running at once, you can avoid cluttering up
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 @@ Use a picture of a gnu as the Emacs icon.
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.

View file

@ -545,26 +545,53 @@ selects it, that variable should be @code{t}; if a click is necessary,
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.
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
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.
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 @@ select. For example, in Rmail mode, the speedbar shows a list of Rmail
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

View file

@ -683,7 +683,7 @@ Browsing the Web
* 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 @@ Customization, emacs-mime, The Emacs MIME Manual}) to convert the
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 @@ An integer specifying the minimum age, in seconds, of an article
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 @@ the parameter belongs to, then the article is not expired at all. If
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 @@ interfaces to these sources.
* 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.
@end menu
All the web sources require Emacs/w3 and the url library to work.
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 @@ make money off of advertisements, not to provide services to the
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 @@ system because @acronym{RSS} uses UTF-8 for encoding non-@acronym{ASCII}
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 @@ summary buffer.
(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.
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
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 @@ browser like Netscape). Here's one way:
(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 @@ delete them.
@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 @@ totally ignored.
@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.
the article. This setting overrides @code{head-begin}.
@item nndoc-head-begin
If present, this should be a regexp that matches the head of the
article.
@item nndoc-head-end
@item head-end
This should match the end of the head of the article. It defaults to
@samp{^$}---the empty line.
@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}.
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. 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.
the article. This setting overrides @code{body-end}.
@item body-end
If present, this should match the end of the body of the article.
@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 @@ understand. It is called with the article number as a parameter, and is
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 @@ XEmacs is distributed as a collection of packages. You should install
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}.

View file

@ -72,28 +72,28 @@ If you are new to the Info reader and want to learn how to use it,
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 @@ describes the topic you want.
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 @@ is @code{Info-top-node}.
>> 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 @@ read the entire manual before you start using the programs it
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 @@ in the stand-alone reader. It prompts for a string and then looks up
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 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 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}.
@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}).
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.
@node Add, Menus, Info Search, Expert Info
@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.
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
@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.
@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 @@ Create some nodes, in some file, to document that topic.
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 @@ as new users should do when they learn a new package.
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 @@ the beginning of the node's header (ending just after the node name),
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 @@ usually few.
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

View file

@ -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

View file

@ -90,13 +90,13 @@ on. @xref{Basic Navigation}.
@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 @@ to use.
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.

View file

@ -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

View file

@ -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>

View file

@ -5130,7 +5130,7 @@ init_buffer ()
char *pwd;
struct stat dotstat, pwdstat;
Lisp_Object temp;
int rc;
int len;
#ifdef USE_MMAP_FOR_BUFFERS
{
@ -5157,13 +5157,13 @@ init_buffer ()
#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 */

View file

@ -1182,10 +1182,18 @@ struct glyph_string
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 @@ struct redisplay_interface
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 @@ int estimate_mode_line_height P_ ((struct frame *, enum face_id));
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 int x_stretch_cursor_p;
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_clear_cursor P_ ((struct window *));
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));

View file

@ -3949,6 +3949,7 @@ update_single_window (w, force_p)
}
}
#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 @@ redraw_overlapping_rows (w, yb)
if (row->overlapping_p && i > 0 && bottom_y < yb)
{
if (row->used[LEFT_MARGIN_AREA])
rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA);
int overlaps = 0;
if (row->used[TEXT_AREA])
rif->fix_overlapping_area (w, row, TEXT_AREA);
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 (row->used[RIGHT_MARGIN_AREA])
rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA);
if (overlaps)
{
if (row->used[LEFT_MARGIN_AREA])
rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA, overlaps);
/* 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;
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 @@ redraw_overlapping_rows (w, yb)
}
}
#endif /* HAVE_WINDOW_SYSTEM */
#ifdef GLYPH_DEBUG
@ -4205,11 +4218,13 @@ update_window (w, force_p)
/* 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);

Some files were not shown because too many files have changed in this diff Show more