aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2005-12-26 03:16:59 +0000
committerKaroly Lorentey2005-12-26 03:16:59 +0000
commitfeba0cd6405ebb80af743e2f978442d9c837bcd2 (patch)
tree1cb964aa641bee514d9cda2eafe27a0a97e65ad1
parent30663b475e57197c9896a252e1d4ca31c579fa2b (diff)
parent7a32e81fb608282314e27db21a00138aaa91f29a (diff)
downloademacs-feba0cd6405ebb80af743e2f978442d9c837bcd2.tar.gz
emacs-feba0cd6405ebb80af743e2f978442d9c837bcd2.zip
Merged from miles@gnu.org--gnu-2005 (patch 677)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-677 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-463
-rw-r--r--admin/FOR-RELEASE65
-rw-r--r--etc/TODO30
-rw-r--r--etc/orgcard.ps442
-rw-r--r--etc/orgcard.tex8
-rw-r--r--leim/Makefile.in6
-rw-r--r--leim/leim-ext.el2
-rw-r--r--leim/makefile.w32-in8
-rw-r--r--leim/quail/croatian.el2
-rw-r--r--leim/quail/cyril-jis.el6
-rw-r--r--leim/quail/cyrillic.el8
-rw-r--r--leim/quail/czech.el2
-rw-r--r--leim/quail/ethiopic.el5
-rw-r--r--leim/quail/greek.el6
-rw-r--r--leim/quail/hangul.el6
-rw-r--r--leim/quail/hangul3.el6
-rw-r--r--leim/quail/hanja-jis.el5
-rw-r--r--leim/quail/hanja.el5
-rw-r--r--leim/quail/hanja3.el2
-rw-r--r--leim/quail/hebrew.el5
-rw-r--r--leim/quail/indian.el2
-rw-r--r--leim/quail/ipa.el5
-rw-r--r--leim/quail/japanese.el5
-rw-r--r--leim/quail/lao.el4
-rw-r--r--leim/quail/latin-alt.el7
-rw-r--r--leim/quail/latin-ltx.el7
-rw-r--r--leim/quail/latin-post.el7
-rw-r--r--leim/quail/latin-pre.el8
-rw-r--r--leim/quail/lrt.el6
-rw-r--r--leim/quail/py-punct.el5
-rw-r--r--leim/quail/pypunct-b5.el5
-rw-r--r--leim/quail/slovak.el2
-rw-r--r--leim/quail/symbol-ksc.el6
-rw-r--r--leim/quail/thai.el4
-rw-r--r--leim/quail/tibetan.el6
-rw-r--r--leim/quail/uni-input.el5
-rw-r--r--leim/quail/viqr.el5
-rw-r--r--leim/quail/vntelex.el2
-rw-r--r--lisp/ChangeLog98
-rw-r--r--lisp/align.el2
-rw-r--r--lisp/composite.el5
-rw-r--r--lisp/cus-edit.el13
-rw-r--r--lisp/cus-start.el29
-rw-r--r--lisp/emacs-lisp/cl-extra.el5
-rw-r--r--lisp/font-lock.el4
-rw-r--r--lisp/help-mode.el4
-rw-r--r--lisp/language/ethio-util.el4
-rw-r--r--lisp/log-view.el55
-rw-r--r--lisp/longlines.el25
-rw-r--r--lisp/menu-bar.el6
-rw-r--r--lisp/mh-e/ChangeLog65
-rw-r--r--lisp/mh-e/mh-acros.el12
-rw-r--r--lisp/mh-e/mh-alias.el16
-rw-r--r--lisp/mh-e/mh-comp.el32
-rw-r--r--lisp/mh-e/mh-customize.el214
-rw-r--r--lisp/mh-e/mh-e.el93
-rw-r--r--lisp/mh-e/mh-funcs.el14
-rw-r--r--lisp/mh-e/mh-gnus.el24
-rw-r--r--lisp/mh-e/mh-identity.el10
-rw-r--r--lisp/mh-e/mh-inc.el10
-rw-r--r--lisp/mh-e/mh-index.el59
-rw-r--r--lisp/mh-e/mh-init.el22
-rw-r--r--lisp/mh-e/mh-junk.el10
-rw-r--r--lisp/mh-e/mh-mime.el22
-rw-r--r--lisp/mh-e/mh-pick.el24
-rw-r--r--lisp/mh-e/mh-print.el10
-rw-r--r--lisp/mh-e/mh-seq.el37
-rw-r--r--lisp/mh-e/mh-speed.el10
-rw-r--r--lisp/mh-e/mh-utils.el61
-rw-r--r--lisp/progmodes/sh-script.el2
-rw-r--r--lisp/ps-bdf.el6
-rw-r--r--lisp/subr.el2
-rw-r--r--lisp/term/mac-win.el63
-rw-r--r--lisp/textmodes/org.el248
-rw-r--r--lisp/textmodes/picture.el99
-rw-r--r--lisp/tooltip.el34
-rw-r--r--lispref/ChangeLog16
-rw-r--r--lispref/customize.texi15
-rw-r--r--lispref/help.texi36
-rw-r--r--lispref/tips.texi9
-rw-r--r--mac/ChangeLog4
-rw-r--r--mac/makefile.MPW1
-rw-r--r--man/ChangeLog52
-rw-r--r--man/custom.texi34
-rw-r--r--man/faq.texi16
-rw-r--r--man/files.texi41
-rw-r--r--man/frames.texi2
-rw-r--r--man/help.texi6
-rw-r--r--man/org.texi196
-rw-r--r--man/programs.texi396
-rw-r--r--src/ChangeLog54
-rw-r--r--src/category.c6
-rw-r--r--src/category.h5
-rw-r--r--src/ccl.c5
-rw-r--r--src/ccl.h5
-rw-r--r--src/charset.c5
-rw-r--r--src/charset.h5
-rw-r--r--src/coding.c5
-rw-r--r--src/coding.h5
-rw-r--r--src/composite.c5
-rw-r--r--src/composite.h5
-rw-r--r--src/fontset.c5
-rw-r--r--src/fontset.h7
-rw-r--r--src/keyboard.c13
-rw-r--r--src/mac.c138
-rw-r--r--src/macmenu.c3
-rw-r--r--src/macterm.c131
-rw-r--r--src/macterm.h2
-rw-r--r--src/termhooks.h8
-rw-r--r--src/w32menu.c3
-rw-r--r--src/w32term.c4
-rw-r--r--src/xfns.c9
-rw-r--r--src/xmenu.c5
-rw-r--r--src/xselect.c4
113 files changed, 1990 insertions, 1430 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 10dff66814f..a9da7abb102 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -50,8 +50,6 @@ invalid pointer from string_free_list.
50 50
51* BUGS 51* BUGS
52 52
53** circle-printing bug from Stephen Berman; see my 5 Dec message.
54
55** Ronan Keryell's Sep 23 bug about "tramp sudo:: and version control on RCS" 53** Ronan Keryell's Sep 23 bug about "tramp sudo:: and version control on RCS"
56 54
57** TCP server processes do not work on Windows. 55** TCP server processes do not work on Windows.
@@ -66,65 +64,6 @@ Seems to be a problem in sys_select in w32proc.c.
66** Add a node to the Lisp manual describing key sequences from the 64** Add a node to the Lisp manual describing key sequences from the
67Lisp point of view. 65Lisp point of view.
68 66
69** Fix some of these doc strings by adding \\<keymap-name> where needed.
70
71ada-mode
72array-mode
73artist-mode
74autoarg-mode
75bibtext-mode
76bookmark-bmenu-other-window-with-mouse
77checkdoc-minor-mode
78constrain-to-field
79copy-file
80decipher-mode
81define-generic-mode
82define-ibuffer-op
83diff-mode
84dired-maybe-insert-subdir
85ediff-merge-buffers-with-ancestor
86ediff-merge-directories-with-ancestor
87ediff-merge-directory-revisions-with-ancestor
88edir-merge-revisions-with-ancestor
89edirs-merge-with-ancestor
90edit-picture
91ethio-fidel-to-sera-mail-or-marker
92ethio-sera-to-fidel-mail-or-marker
93face-attribute-specified-or
94face-equal
95flyspell-mode
96hexl-mode
97hi-lock-mode
98ibuffer
99ido-find-file
100internal-lisp-face-equal-p
101isearch-forward
102kmacro-start-macro
103kmacro-start-macro-or-insert-counter
104make-byte-code
105mh-user-agent-compose
106next-single-char-property-change
107octave-mode
108outline-mode
109pascal-mode
110picture-mode
111previous-single-char-property-change
112python-mode
113read-from-minibuffer
114read-key-sequence
115read-key-sequence-vector
116reftex-index-phrases-mode
117reftex-mode
118rmail-mode
119sh-mode
120shell-script-mode
121solar-equinoxes-solstices
122table-capture
123table-insert
124table-split-cell-horizontally
125view-mode
126w32-shell-dos-semantics
127
128** Check man/info.texi. 67** Check man/info.texi.
129 68
130** Add missing years in copyright notices of all files. 69** Add missing years in copyright notices of all files.
@@ -135,7 +74,7 @@ you're going to handle.
135DIRECTORY STATUS IN CHARGE 74DIRECTORY STATUS IN CHARGE
136--------- ------ --------- 75--------- ------ ---------
137etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org)) 76etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org))
138leim working Kenichi Handa 77leim done Kenichi Handa
139lib-src done ttn 78lib-src done ttn
140lisp done ttn 79lisp done ttn
141lisp/calc done ttn 80lisp/calc done ttn
@@ -236,7 +175,7 @@ lispref/calendar.texi Joakim Verona <joakim@verona.se> Chong Yidong
236lispref/commands.texi "Luc Teirlinck" Chong Yidong 175lispref/commands.texi "Luc Teirlinck" Chong Yidong
237lispref/compile.texi "Luc Teirlinck" Chong Yidong 176lispref/compile.texi "Luc Teirlinck" Chong Yidong
238lispref/control.texi "Luc Teirlinck" Chong Yidong 177lispref/control.texi "Luc Teirlinck" Chong Yidong
239lispref/customize.texi Chong Yidong 178lispref/customize.texi Chong Yidong "Luc Teirlinck"
240lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra 179lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra
241lispref/display.texi Chong Yidong 180lispref/display.texi Chong Yidong
242lispref/edebug.texi Chong Yidong "Luc Teirlinck" 181lispref/edebug.texi Chong Yidong "Luc Teirlinck"
diff --git a/etc/TODO b/etc/TODO
index 5c95fdbfdb3..8b6a3aea3d8 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -52,11 +52,13 @@ to the FSF.
52** In Emacs Info, examples of using Customize should be clickable 52** In Emacs Info, examples of using Customize should be clickable
53 and they should create Custom buffers. 53 and they should create Custom buffers.
54 54
55** The toolbar should show keyboard equivalents in its tooltips.
56
55* Important features: 57* Important features:
56 58
57** Provide user-friendly ways to list all available font families, 59** Provide user-friendly ways to list all available font families,
58 list fonts, display a font as a sample, etc. [fx looked at 60 list fonts, display a font as a sample, etc. [fx is looking at
59 multilingual font selection for Unicode-based Emacs 23.] 61 multilingual font selection for the Unicode branch of Emacs.]
60 62
61** Rewrite the face code to be simpler, clearer and faster. 63** Rewrite the face code to be simpler, clearer and faster.
62 64
@@ -89,10 +91,6 @@ to the FSF.
89 same value of this property. 91 same value of this property.
90*** Discretionary hyphens that are not visible when they are at end of line. 92*** Discretionary hyphens that are not visible when they are at end of line.
91 93
92** Make movemail work with IMAP.
93 movemail from GNU mailutils does that, so switching to it will solve
94 the issue.
95
96** Internationalize Emacs's messages. 94** Internationalize Emacs's messages.
97 95
98** Install mmc@maruska.dyndns.org's no-flicker change. 96** Install mmc@maruska.dyndns.org's no-flicker change.
@@ -270,16 +268,6 @@ to the FSF.
270 ignoring X resources (Doze equivalents?) and most of the 268 ignoring X resources (Doze equivalents?) and most of the
271 environment. What should not be ignored needs consideration. 269 environment. What should not be ignored needs consideration.
272 270
273** Enhance locale handling: handle language, territory and charset
274 orthogonally and de-emphasize language environments. Use the locale
275 to set up more things, such as fontsets, the default Ispell
276 dictionary, diary format, calendar holidays and display, quoting
277 characters and phrase boundaries, sentence endings, collation for
278 sorting (at least for unicodes), HTTP Accept-language, patterns for
279 directory listings and compilation messages, yes-or-no replies,
280 common menu items when the toolkit supports it ... `locale-info'
281 needs extending for LC_COLLATE &c. [fx started on this.]
282
283** Improve the GC (generational, incremental). (We may be able to use 271** Improve the GC (generational, incremental). (We may be able to use
284 the Boehm collector.) [See the Boehm-GC branch in CVS for work on 272 the Boehm collector.) [See the Boehm-GC branch in CVS for work on
285 this.] 273 this.]
@@ -398,6 +386,16 @@ when the body only calls primitives.
398 are also put in utf-8 lang. env. In such a case, it is 386 are also put in utf-8 lang. env. In such a case, it is
399 better to use Japanese lang. env. but prefer utf-8 coding system. 387 better to use Japanese lang. env. but prefer utf-8 coding system.
400 388
389** Enhance locale handling: handle language, territory and charset
390 orthogonally and de-emphasize language environments. Use the locale
391 to set up more things, such as fontsets, the default Ispell
392 dictionary, diary format, calendar holidays and display, quoting
393 characters and phrase boundaries, sentence endings, collation for
394 sorting (at least for unicodes), HTTP Accept-language, patterns for
395 directory listings and compilation messages, yes-or-no replies,
396 common menu items when the toolkit supports it ... `locale-info'
397 needs extending for LC_COLLATE &c. [fx started on this.]
398
401** Eliminate the current restriction on header printing by ps-print. 399** Eliminate the current restriction on header printing by ps-print.
402 Currently, a header can contain only single 1-byte charset in 400 Currently, a header can contain only single 1-byte charset in
403 addition to ASCII. 401 addition to ASCII.
diff --git a/etc/orgcard.ps b/etc/orgcard.ps
index c3923898729..11c4464ad06 100644
--- a/etc/orgcard.ps
+++ b/etc/orgcard.ps
@@ -10,7 +10,7 @@
10%DVIPSWebPage: (www.radicaleye.com) 10%DVIPSWebPage: (www.radicaleye.com)
11%DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi 11%DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi
12%DVIPSParameters: dpi=600, compressed 12%DVIPSParameters: dpi=600, compressed
13%DVIPSSource: TeX output 2005.12.16:1527 13%DVIPSSource: TeX output 2005.12.20:0859
14%%BeginProcSet: texc.pro 14%%BeginProcSet: texc.pro
15%! 15%!
16/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S 16/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -352,204 +352,208 @@ B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E07BB563C96C0A3E
352CCBD1F58ABBF1F53AD21E3BFF25EEEB046F66A924E5F431EBD7228050BE2DF43 352CCBD1F58ABBF1F53AD21E3BFF25EEEB046F66A924E5F431EBD7228050BE2DF43
3530B9B538DAAD511EED97630CD9A9C05CC49DC251325A93EA842C6D07B44BE620F 3530B9B538DAAD511EED97630CD9A9C05CC49DC251325A93EA842C6D07B44BE620F
35408E66B611F54314B0177E299304F2294F8DEDE9914736944F125A50B5007373E 35408E66B611F54314B0177E299304F2294F8DEDE9914736944F125A50B5007373E
355588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C1 355588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C2
3563A6757674B84D9B585F981DDFFB42163EADF90346248E014A74E3FB3E6276FC1 356C87A1A169C5ADE44B561EC1660E617FB39D1B1547B33C0FEB33C3A1D7340A62A
357B4289FCDB4FDBE9C70CAF38E410965A3610F649DF8F81C73B87FBE27D44A3CA6 357CD9CEFA49481F19B39A704A53A0B98A11744143CDDA0E668E6325935C6497A9F
358D7883821CA22795E3EED184F4F59AC687AC06DC4DE7FD098E0EA61C494A5E960 358AFF471194932AFECBF25B441AD55A43751FBAB76F3E544C4254AEC4BEB5CFE4C
359643D78025B1D18B4B7FBACCE2DEA453E35C08A6AC093F45FA0B1DE132F743CBA 359C1318C3A0FAD0E8C1BABEE20B203E1DD9412E66BC55BEBD6FBBEBA84F56604FD
36075F2E7BE0311132C0E63C69D5182B98AEFC610F61D1E1EA51120D8A9F5DFFA8C 36085D50F733D9794611F4137EC10ACB4C4ECA5A81CAACC45213E92ED3C26726BBE
36137C0ECCA2120E1DF7A551343BD7573FA24144A8D59CA684FF9FCC1E023A3401E 36191430E7633A2BDB8EA3D0C55259D7DBE468AC0964A63728C9B8EA4E15CF0EEA3
3629797D658E92CED2255A273E429FAF43B0355E27EC83974BA4675520B2DC70DDA 3622E754B9170EAE6B8818DCCDDAD643B9F6C91C3C5B245CD442358C60AF390DC76
363DF783452C679BB77759479CB02FF3377BCCD8580E3D87D34CD579AA3F89AAB44 363342E659D4EC45552626F069F346F46B18062CE26D5912336C6B29FCBFA5C3113
364E526EE761B0D371E27B5A02A5C494C5169651FA79795D332045B3E7F2CA100FA 364ED86E44B529CD95B7B5B934D899762C4F3457F56ACCC763BCCD5BD08975EB5F1
365FA8ADA74DCA851DA1BC7531E58EE08FC22F2F35E94D5DA013A4C9669B2825D26 365C5216DA4CBF3409EC71054B0145183F7DFB31517D199EB16D4C6DB0AF05E5720
366021982566B4347E518E82602B0CE5CBA1CD38E8B3CEBBFDF9E9811C896313F37 36610B06F395BE3C8C59CEEBCEA1E00F9EA3FD880AC197508CEC11E33B6B6EABE3C
36751D5F7162441E4B2DF18A7A34326114950BE85B3E5AB465D54652575AAC03DF3 3670FAEBF246743F62D280875D052656696AA88DABB918F793CB2994A1ACCFA0CAE
368E50E9FE8D184D33534E12AB92DF20BD72DC129A86CCC24981FF82E297D0B0F9E 368AF6FDDF489109DEF07F93B5B0078FC5FD9829DD296F62F23400F5DD6CB096557
3690B66137443B501B5FA711C7DF380DB1F64404DA241D1EF5F2D012A0293405302 369EDA737413C744FDBB0615BD40A79EA2929EB7AC767E58D886B310700733D2895
370F828BF879F46962DFAF75F44D4A394DB9D42E4874477097FF6F8DB9BC8712BC8 3703925911133631F28291974294AACF4A35F92A5E5262DCF33810A6F9C51E9D141
371661A95A2467073355FE697CBE1D8E298569935E5405C22555C40DB775A808F54 371F84B0C26B5ADECB44B646C79DD1C656529B7122739C0459B2B47A2C357EF9A36
372642939D8E4F76C61B2FE966F4FB55319873127C8EEB05732A1538FE03EC2D8CB 3722B376DDF54F1F4F133419EF14CCC6010D360DFA8A7B122FFC5A4C560ED184F16
3739089DE328A396DAB3908179FEA2FC3F2ECC48593049FD23114A04B474FF4FBED 373057D3F76B6B2E935B31B17FC4066916FFBA0B9AFF287D251985AB3FC3D0D7E9A
3744D3B8835148CCB742574F4914B7201CE41A57A42EF61099509E5C42B744611C2 37491F094356B3D6CDBCB2D74A3FDE23526B22C223EA35C9E5054053B23AF004324
375B40581A6BCF6FA223E5B5221B8BB16AC6EEE3774130E121F23A04E1548F58899 37580F023FCDFDFA6B8F0E03A799D87FC2690C5D1ABB9C52B03402E37309091A1FC
37641C9DD31E720AE7392E4E2CE0ED4B691620CDB0228D3BEE1F4AF4112241C74E5 3761D66EB5A75DAE988DA5E35B8E67BB084DC7E327BAA29BAA9EC60B63402DCBB4C
37789C40027D8F25369B8F8815BB2403AD0E662895788B884C37D5746AFB596D64C 377C8FD3B7085ECDF029AEC6D080B62195A6C917CE9A900D02BDA73002650A8B802
37891C4B4AC3B860C089DBC08719251578B4AEABE5119CE4A5BF7BE0FC5847A7BE2 378491C6D31EAB59795664FBEA51FD8529AF2384996D55F545DEA08F50E33951BAB
37982EE4F04FE7F67A4B02B73B1E6D69803B856FFF88BBCDC4BDE933DA0090E3D24 379BE953410B5C59904F4EDEFBB625B23FDE1CFD8222E30E14502D3FE19E37B7113
3805E9F11C18394EB1A69A8C648793D729B3C76FCD4817F0452A3CFE4B47DDFCA2E 380190B7758414E048DC1F00ACFCAD4FD2A2E802E0BAF0565535698728E09E90E0D
3818A7987C7AC0C5CDC51D42A0AC709201FC4858488389FD39C0F14E68C9E8E918F 381C5C8727764E70231D0B2D35317396B7A18F0B7125E2A79DD14F55293D7F0C162
3822EA7CDA76FF8E950004610903FCCB3BB4523F508016865C0F3DC87ACC363CA71 38263F981C32F6DFC5613CC640DC32C14DADADE08E1AD23517C92715CF56A067E4F
383981A1B75907A3348D8C35E867AAB1E024F02C1194664E2E4A8354A37C872726B 383CD64DD84FC5074FBC6332AD5252B6A1CD9F6D0B79D957EBCEFAF348F69FD005A
384B6D473C2FC1907459E9AB67A223242E9F340DD0AA85370070865311AA1AF3E69 3840D9988EA2CA91FBFDF72875C90BEEB2C3077858924B963BB54BC078DCEDF4DE5
385BC3C286D23125C8001AC764125DA2A007EDFCAFC23AC17047F115039CFF7719D 385AE3AA2EB548FD9DED0B10EF502384E8D0A5D21DA465B564EB2C5D90528133EA2
386172A2976B25175FF34BED0486DAC13B3960F7C82B3F40179C0ABE42BA0DCFD22 386162016087ED07369D8EFF5006E0A4E31DF616851F387B4C3987A5101BB478B59
387E82E6B47087D860E7C001B9C77BE65354EED91B802E16E308E0EB449449BBA69 38797A1283A44C77586B2043C78356C5F9199A5DC8228BA6752D6F87AA49180A117
388BF82461F824006BA23E5DEFD08AD630382AD24F5820240CF266B524629119A9E 388C44E4E37F9CCFB8801824886A3BB8B45C09C4C3EF6F84D1A792F931142D4D92A
389568FBAE62F7DCA9A8E038CC470C3D40F5A28154F71D49CF3376F12B35BDB5103 3894AFE82C564A28974AFEB8EBB07F08B2D35686554D4FDE904816AD5216DD9E50E
39043CB5A77CC06D6E6568793DBE6F2F5E790C4C61ADD771886C32B343F770EB898 390594734194EF111F052C64F9EB5D9F643125847C386C3270D72D390F95ACCA259
391ABE5830F10E08855F2E3710BA7A7611BAE785B16A17C7C3E96949BE7E952960C 391163390180BABABCD514E5B62AEDA79047D3D501F04E65D6F7746E6E65B842EE7
39255F85782937576D319FBC8D015F278B33191D444020510CC857B80AB9D2CBDE8 3920B45D8177B9155B3A3719B6054F92FC2EA9E9A17CFF146234BFEA708BA65C81B
393A097E47F522EBD31BFC07E5D62E11349E52EC30D934277F52E627F01229CF3A1 393ABA8DF53CF17730D838099A5B00B29AEA31B6E59BDCC184A6BB91C3D38E37E86
3943150AFBF3A47521D33F6060FAB19F3D5E572DE196E4B9D6B07C7DA1130CBA29F 394A5274FCEE9CE46EA1629A10490C136B03FCBF4ED56EE9BE8E2C7047320CF375F
395C20E18E63979ED97F7CA6D4A0D5E35AB480DE427A3C7D98189E39650F062BB0E 395AA345383EE934DF28971CFAFC24F155546E24C399A5E91E5B7FBB127C7594718
396B603F8C4276237F4EF1A117AF66616DA4394969FD32C9487BCD3BB8956CB261D 39605CBE48E093BF76265A2E3499BE07F2967EC5A1F1B71B2716CDBF21A3BBCCDFD
397A7B6822762ED2CAE7EF809021DF732143796A0A220A43ACB23CD8D019A63BA65 397750E5BDE0E7354EC9994F5F5934949EEC70E0F84450828D851F6A4507F299E14
3983900405988F03B4847BECDC0BF96E6F9DF339A32ABFAA8C7DE02978CA89DD3F8 398D5CF89AFBB0B136D6704C6ADA1DFA98812C38D55AF4DE4DEAC2DA2F1D97EC7BF
39922852CBC2A1A339E5E5928BB1F6589EA13F66D07C38AEBE44361DEBC8D529B5E 3990F08F2CCF3D994044A59957698C532E7E4DEBDE4E19339ACC10F9E51CD6AE95B
400E05EE01DB98F53E40A15A5C524C87F2A3F2238AEC054295217406B5569D0D183 400F6EDCF24604AA1D0E4C32E20F4078ADB2A22BFA93BA0E182F612FD57F606105B
4019102E7B4F63FF0599B1E2F4D4B375FBD84EE0792191AF7E6DA7AB1208F422807 40130F669CC646D3F50C26F1108D06DE3C8388EF2713295B1546E72E79B17999964
402DF6A76606542430AA6A8CB8103B6C2AED2981C3C32932DCDA258C2A4EE6726BD 4028A739D2B83144AD0D0763E4EBA6C140182DD8B48AA20BFBFFB34D105F4738E50
403546DED3A25D153322A907256E3D47AC6DBD030A4950572B5D092BB7BF44BF296 403056F56C95AFFCE0192CAAEE4A910560A3124ACF504051327DED441E5347AB4C8
4043D2558F21F2D02076D1FAC2B0C3055A32127C56CAACF3ED83389B97F5CF85B99 404BA566D84961FA34CC0A96D3B60BCF2075416D89F8C653D552561004EC42715AD
40513F17A8D568A24FCFD3A67D77BC302C2C3BE864D828F82B1C0266DEEF26797BF 405706DEC4842B3526C0134718C81EFD988A6A86BEBD58B66A1EEA6C8067521D43D
4062BB0BCE4A90C9BC5936576CD13A3FC68A3E77F1496D64E35DAEA8B7034A4AEED 406F23C72788F4D325D083BFA68224E40606E5E1FFAFB57979E3E85F0E8CEC4059C
40777DC6F2489AE7C5061C6D26D132D640B16A8597AD76B4A10F1F6CAF0D3D03488 407630DDF5F8665F00D824C94292A5882B5320CF1143D6FFE9B3EABA993CB6438D9
4081D43FA6517E4E3403B9B5DE190233A21638203BF1E26B4141ADCB720F6CF0DAC 4085D7817C144451672C84EC88B3C7BCE2F50DF72733FDCCB62861AC3FBCE509D63
409BA2797A763D3CCC235BD8E824F76D7DAD10EE1D81062A15BFDDD2597AFFA9785 409E7E55E7F8A92FB18751BFE1E9FA5597562E756FE93C76CE9E1F8C0E199E568C0
41038ED014803582AC7174DD9A3CEFF6B1853861BC26490C565D06BD40FF2574232 410913B5F2E13F37E64D40A48FAB264188F45A2BF24757A516A5F63D057684B9B98
411A037F6CBEE39D142B732D76C5D3AA9ED356DB3F32CE17485E0685D25228D04B0 41177080D5BCDA67AF263D060DD7C4A434D2B769BFE6666C3E543D2807EF64DA025
4129ACACF2F45AA22B06C885AEE6B688A4413F78480B2514C9D8F0C0FDC1CCEA424 4124136E09C9208A5166346BF4BEDEA772B1939ED947C5F86EB056AFCAD57ACF6FE
413055EA4F21C58C11EEF35D93BF4FF5CD6CE5F6D5086EDECE08A204603D21AA55E 413F9B314ADFB521DB4D555881AFBA0F0E8FDC010CD3D62E80A5E0E267DD8200D08
4143BC356F129216C45DB39DF5D073E034DBEB3D9FD3B6F3FC1DC36DE953B614541 414044F8CA818F496FBDE6E28749CF7EB01EDE032B507BDA2EEB30AD4B052D838FF
41585865A1FA68CE5F33609C13B34A6D61E415631B863FD8241B7B648A926AB4B4B 415C03C91F9FF6EB370258C69C62464BE1A3F97D829989F38161B6E1BE8CB6CF03C
416BB36F77618030F0F12CA2791A8DF77CEB70B3D20213774FA778B15764AAD214B 41670A899F129316B44DC1DFDD2EC395E565BE75262B01881593D1C746C8C3CE8C8
41738B949DA9E1BD3CA9F35CBA1B5C165C8E7808B054A8DD3DA4EB734BB6BCE9BDF 41786CF532DBC7545EB71FEFB0DDE02D41F0CBBCE397A3268ED38AC09FEFB447957
418E26FE758C8663F0C0A038BAAD033DC61D5951386D0CEFC4953DB117A32B3E7EA 418EC3E378A2202546E6931F21A1E7530BE3523BDE30E131A9993F39CE17FDEE438
4192C314B62654F2AB0CF5CDA47DBD398A0B24F68BE7E96F5A1E13997AE9DEA4767 419853D1F3D57E45D91E8A4B930FC00420943E78C942D8458F0A1B1DFA6492F82F8
42006E767E97559883FFAF99DD954BD92E077B70BDFBE7EB412F97E6D5EB850BBBE 42060FCCC61C3489AB2711270A6CF28BE65DBA89499B243503FE69CD77224F3021F
421614C94A47E0110E17945EBBD89514A0F466A491A553D2A1F4E45DDA45BD7E242 421CE71A9FF70B1C43C88F8E42387461428A841D1DA38CB352079CC08B41131B404
42271F72A3BFF7B816205E7E9070EBF97BDDBD69D6C7BE8195A80EF00A450BDBE22 422DC95786F4C74ACF1D2930228A40E168CF84B122AE41797496D603D95263F9948
423DF2DC92689803A21A6069F9FD0EE1D21B1DAD0036B750D80F4C27847E49052AB 423AD0BFC5C30D74D3F90C18DEF1C3BB0611EC24460FD4F966995F1AA234E8808DF
4246CE3AC50933D6ABD597A77F608F681AE3204AC5EA90DF8D94D0732A9CD36E186 424BE2B6DE6AAE516228380443CF3AEE8D89533CF255AC2D0982FE663ACF360A2D3
42500B3FCB742A1219D124F64178DECF64E9477417A5768F7A35273785626C75F06 4257B2F9E5AE9A3464137380675BAA98A93DF016E6347BBB474E28B5E399A4C8CDA
42629E8F8609574D3B1D11DAA5C31D971C5CB4F008A07A50EC88EC3A6BA7BE34FEA 42695A3B9CEA9F666ECE9F41F3CE151E10B1D5F1DFED5CB72F5EF113EDA32377C22
427BD13C6E4297C54A68D77D93F1D864D07D46DA3099E783C10F2A1409782A7D358 427DD0B49EF1A7C504EA453647ECD2DE34ED0D3CB42EDDEA85F4D6A1454BDF42AD9
428D2FAE601C33EE893769753A996F9C533584A6DA1016D024E3D1A4795EC82E718 428CA45E910A2FD55F73CEF456F0083EB85F70B762A9F9A60682DDDCCD3258C5473
429A969E496C1768E2D109A03F19E109F26E2A7330436D63466BBF722D5DFED0C6E 429F65EA74CD5FC2D564DE3FB61FFA65F03479DE6AFA0A622D35A085C0253DBF87B
43032727F1C909C7D904BDF80893366E07A3F50D50B3CEAD62CA5BE7BAA499793F2 430DC6B608A90987775F99DAB0AB986C4D434DED6F272E30620A47E8CA434FEAEBC
4318D31619270E1013BB8593F12933C32F1FF25939D04C863B9C13A9681CDB0FC97 431AD761DEA4762FD36E8CDE681E24B11F7BE2334070C677F78932BFCF06B8165CA
43209D987D476B87143F16C6CC687C073E11A7AA9AF508EFF714367E6371F61D88D 432B4420AC4779852FBA083CF46A260C2211D7B43BC4A40290552F4ECC0A4F8B46B
433C48685A861A2CE5876781D9E67EE1AE407A4583C0F787BCEF96FA3AD6ACD7240 4338ECB8D06145A6ADD646B26589FF6031FEAFCFA699948C6C5495010F3E9234789
4340313B2712601C71C3A3B4AA2FF1C6450C83311823F59005EB1F533A9686F575E 43457812F71766F83E232FBAFF49229276737A386D977A69D1EE47D32652451D924
43510A2F86FAAEE062476FB0F25B8A076568785FCE5C807F6AE452193E030CE4673 4354698E1549BF460605D185F972A85FC9705B2E5F1632F1E076E83C8C90E474B6D
436582549A4A79C62A4A9D881FE893BBBA0DB9D101E3ED230603AA987AF453DFB54 436BFC6E4A0744333F04931D5303BF8763A3DD01C6450AB9EFCE3C30F0BE6830EA4
4374A9C5A6AFA92F8FA0E9C649BA8791106C9EB84EE57F85E710D5C75BA3F50BFA2 437C10550AFAD304C2F2469D6EE1EF8471A4B71E5C8DEB4269448F79A34951C3E8B
43848C3DB83E7CFF4663B53A1225FFB08F8A73768EFA641255A1F0F2400C901EB07 438B93E7AE0A35C0913878819687DB77AF56A2B52495F9CE51A8618F93470B446FF
439E3605CFFC5CDDFDA6F32FB05F1E334FCAD07D6F7C5510C3FE556B598C9576B6E 4391A98159CCCF9F1B8E63F1CC8CC65A3FA89D5D1F2A33A15AF2D6D4A05B59D0571
4408BAC48BA0E8ACEDD0437225EFC7617336D96AD13853FC2C14872DBF3F59041ED 440A307B8227B362E9AAAEAEC72EFEF780D50814DFC8176C2F4D764DB89011C1A45
441D94EF2FD18DB0BC4E0B2EDF8374A04CFC77FFAF95CDEE4A6F350D5FAB91BAE8D 44112E8FCACDD32AACAC1FA34EDA96D79CB94D00C9D034BD0932652A09AD0E71823
442D3BEA0CD0A5CFE82868FA6B9FF1D824B084C664F2FFA69C59D69786966764EDF 44287044876E7E4E6AD4EE60E9268DA89F9B74976D6AE73A7519E99BA07E3F713D3
44311E12F692EA4F9AEFB94BA8F7124E0A54B40A27B5EFD3F333FDBFE1823BF5687 443EB374CC6CE999ED0C8F2C6E7AFC86DB62CA067999CA3CF3493BDC8E0F14F8807
4443E2A7D9828E58EEB412AC9922804E470E449F7AF100C8846DBAFE581DB3D1EF2 4443D6B78B69983DB7652E4D512CC2E2EAC2EFAB1D2B84294D0E6EFC0ED689E01E3
445603144A62AAFA7DF9FC925FC10922FD9264C626B83D0F72EE045D831D64A3ADF 4453C964ECA7779953A2F253A75B3395E2307E250D49E2EB5BFE629457F4E123105
4468C89E4571C97F1D90FE910FD633932EFDBB93D72CDCE970DDDE89DE05074AE47 446A6277B0DE169C5A4A61C51A611378140A27883C4BB1EA002CD9869CE71E1EC62
4477322CC2CED801E4AC068CF0900F2C89908B03A79953B640C2995C37CDFC719AC 44722DF61F5927CC11DDC33A475CBC32FB85E082719B1F49E33D887CF3488376E2C
448E1666F7C33B047F86A1D8002DFD34F544DBFDFC8E8895CF7B76BFE065C2DCD65 448F7ABE7FEE41A29D1A18F766F78BF70C867A989F29A4F476DD7BF839AF76E88BD
44977C63FF35E1603053E839D4E586BD3D836B8F3607A80126FA4A7220BED2A81A8 449A77546053516551E1625F8C175C736CE531743F2A18F8E223A2F4CEBF0D44385
450A536224F9A82B912FE4D04F2552ECF52D8DE6C756A48F9AA1846EED1C7EAB7D5 45018C0827521B66AFE490DE54DF202309629F978AE5D55ACE621DCDFEF8588C0B7
451FB3D6CF1B5B9F5B5622AAA0EC8ADFF7B648FC7A8E583984839E02CA462971C3B 451C5CC4E369AA9DFC5D18A91FA8F41D8818E3EF939C6516D46FFFAE220CE014F85
45288BA639FAE7ABC0A73FAA490C92188981045BA68705C66DB5FAEB10CC8B831DD 452C6FBA21C6A85F68585FE84F4B1F5E58D8EA211CB4B845F51C02ED57F09E642EE
45345AD8677682EFEDCC0F04C09A9AF365BD8538978FA47ABA7DECD6E30FD770D9F 453F5CF7FF95563D88AABC474669B52D7311721C2A96C1C3FB084DE1D1EEEDE81E6
4547D19A1FA0C0D126491F20B0584E6E02806DD56CA4F04282549E112AD77619DB0 454723E85CB2F68A10772B0B5174848F5D80C4032805C66FE017F909E0963543131
455536D2695EFAFFEAEEF20360DD93B404A8626DD27CB904B306151845F8E649C9E 455AA65592D6588BCDDA9EAAC04A2A5D61CFD913D8FE1F41F3DA45754DE58100369
45693421279160215EE7A3B275E5AE99F2D4C8540609DBB9B4D084CB93817E8090D 45666F2A0EBEE5F4A020BC0DB5497036E47BBCBD862BCFAA69BCF44A26D6382AB23
457C38B0755DFFDD48B03F15847250C3B0F0D1FF0CB8D2B08A86D6755780A7F244E 4575ED978572CB0FBC849256FC5AF95D1FFBA1D1B886B4C118741D19831073460D0
45804E74A3A7F65BA429A35CE856CD858E0E1D28B93650FBCF8B68BF45D5CBB79C5 458F1EF54AAF24B6E0F11F6285D882FC12758D27C5F10F7FDCE0705D3DE172407FA
459B8F147BB12CEB2B198044576D54DCA1E5900C478C714E35816C6C72F49A7B7EC 459E66F64B21AD68F4B840688098EB612F934A3BCC77D795EAA42CE26A2DE9D3CC8
46052F8021E4A52938403DA93EC8766717B7AFF436EA6CE0AEA5B53DD1593BD4C0B 460FCFDF16226CC17B92A297E240D785E533C587F973F0AC7ADE63A46B742C14594
461A1C69EDB97F09FAB01DDF697CC803F2E0C828376FDB779A7A14D90BFA27064BF 461F76173284FE76BBBF54F1EA746214AA8723E22AF100A61D0356F001247A68656
4629F76EDAD9159D3687AC5290E3AA97FA85B7E2D6D9A93D453EDE90A3DF2F76D45 4620636B7C4664B9DC4D9E5D5CA61F13C24E02777B10D9150420B924CB2F82FA44B
4632878AA74C3BF40268C7BE7F17BCCB0F45C5F135076188EDC12BD22022A391390 46339347503C1CBADB7E7666DF511365D5779B9BB3E053691E83E01A9F1529A6939
4646D8C4AE077EAEB4FBB0A7D4CC57435D0BD5B2C96058D7F09F14E1EADFFF53D9E 4649C2EEA1EE2602F9B9E2013A8388AFC43D1468C62DC825D5810F3BCBD6C3461D0
465277BF06C1AD687AD2ADF9E8E3DA035375E5A1E2191273C22498308A3F3451FA4 46598265AD96C4AD4D3D7E9D2B8B2C5A12A75B075BEFADC6BDDA74BB8E5E06706CB
4668F9694F3C459101CF5A57AE16EFA685DB852B3CAE3A8EB49ECC55EC76948BEBA 466F071192AA34AF71F1031BDA9A3C84537E9FF14DDF538FBDA52F9D9B902AC2663
467AFBD31AE0E475986319CC070F83E5419877E90449385EFD6085FDE79F762C2FA 467873505F5D96E75A4648F91507F6DF299CA90BD1DCE0B2C78229D47E000D06639
4688B7FA109126EB97BF1714D1FF975C0ADE725846556E6AA0F8CAEF200D5EE897B 468668C4C4540B99F964662931D95809B57097F40B215DFF190E5FB9EFCCC4D6B8F
469EE3F73DD0EE5E506B17E562F173A13F01C7A35E9B87A72403E39884ECBA55A54 469BFFC303F106994AB90BF40FCE4AF1764B6961BF7F9C391ED4BABC67698E23532
47018E98868F7D61512299A63103F5ECF110F7DA4D03E0B993438037DD8E93D6C9D 4708625573193FC2B7DA4FF344B7EE53368A75D568ED9E9703AF41E747C2CCD93A2
471FD36435A7625BB47CCBD58506441D07FE1A4A0B0EC8EC80DAD4DAD8CCF11FCCC 47107939715066E0CF30012D44C4044B4537D75CC311FAA881E18CCF9D157F87AF3
472D7DEE863D8BDBB2AF8BE49FD5F3A2A0169C7E9153BA07584629114BA1C0AF127 47275924E8DF44280A3F35C20E7B6E577D602FB6D67EA43D6AF7F98354EAD72840B
473F8BECCC41D7CA8F91BDFD4793D2F659452671DECC917E219A63457DF50AE0E0F 4735DAA49E41FDF6ECBFA5D80B9FEF10E976B3BAE6974EFB494699D0C5A6606CD19
474A86B21E595210BCE3276DF47A623FDCFE1520BE11CE1A14DC590F6DAB1396A30 4749084E93C4D4C9C1C23B48B9EACD0AD34C17BABA64C01BE4A5DADFA505F086DEA
475EC8790FC9E59915B52B2773F96D5ED0226F8DE7E480C491BF6AFFC3AC48625A6 475D21A76AF639F8ED341458762C5E6E25FC190BED50808E748CE61FBA24D188FE9
4768F6DBEDBABF203DC6970C1FF4A99F11EE2CD0BE08A5E55D7582A02E8E790E96A 47610D441A4774427F61A2F9FDCBAFB9FA701E4879AD0B3132E31313342C4301A3D
477D1D4D9905CF1233210E607D880DBE8101EE6E00BFEFE369DE911C533D9C5A4DE 477D5698BC21F9943269F5B02B3E1511C8076F44D49AFE2D2E8F58F986C4F77D63B
478727468362CBAB14B33F9791F38B684748BDFC163BE9A859CDB8544F0D39E98B2 47883A9F2DB2C40A49782D6399F9BFFB44F6B5AF4D3A6637D60CCF31067107CF836
47937C237DC3D7B960594D2E5126A22CCBC46080D8DBA29C56754C9D87ACED4D3AC 479A4201362EDDA47DD22DB94D98F26044C4BCAE0B5E2C11D04E05FD418E7D543A8
480D0F4EC087D3EE26AF22132923B392B101F38F9FB5287DD80B014215F488F7BEE 48042425D0068291AFBA2E5A3F2417F279C4F7D3A2B65D7875A07293830D181C9B3
4813644506279AE1377BBD54631803B4906A8938149C2621D93ED30E0AC2A45FD6E 4811FCB23C9CD236E861C8A9B771E0F76638B6AF3B9030A594948A470715603EED1
4820BC9880E98922C5AF11631B0CC3FAA8ADE80DD9204090DDB4533E8E84A920100 482759279D519C1336D7A13D031076A7D600D475171CB888B48D93CAEBD0FC40657
4831182C2D8A97A202A218BD1FA04370470F43E25DEA8E19E9B0F7CF346BD3FC1D4 4830430F5312CFD124B3A848A5A3E947E7F63655C58721B7BD400C2AF4124321C5B
48481A3CC42730846515831C6FDB94FCF6C4F557D20986D0446B5F0913C7EE13822 48431A0F0D4F45FA1E381DBE391840CDBBFB4F1C8BEEDCDEF65DC6C76FE1FA153AE
485F1458CFE602926A62D58D35693C43C916AC10AFAFCF6337C52C12A32A076DEA8 4855D7AF7A637CD62F7B3E97AC58B3B4ED8751689E981C6324F6C5779A511AFB506
4867E880CD509D160CD80E0CA05F6DA3E50EC5ABD0CF1F1CF725B0E07757B789FA4 486D5032B8F08BD146DC32481EFD9B3A6F6B62A3F6E1ABAAFC914B7C99BED2C3F17
48783B1C943B039146494101AA9873BB8AC097AF8A1C8664DA5A5A6523FFA705E4B 4870672B57C2062BA589A720341E5837DDFAEDCB938DD796B7101DC1D6C06381709
488CCBD20A60264C16F2A7AB67CB2D13BE8114BA90DE976A2762B9A1526643A3686 488C9B7BF8693ACA95B731423CA51DE111059D88C60108AEBA388BEF931C0765352
48908A6693B967C614638A6AAF50FBBA847FD311A50276660C0E6E29B57981909D8 489667548B2BC583D71A76E9EB521F10EA096540F50B20B8C07EE205A8189EDE811
490424589E0C602293053C2BE6A56CF51BB1FBE97A3BB9B1C7C845DD3304D812507 4900CE29F5B6728297575879950B3BD6435E2A7F8F39519107557F72702B3BD3A22
4918FB9D7837593DD0051B5F6EEC11AA80888D247982AE871C4D665F646C216BEB9 4910FBBCF6ECF5A467133360975F74B1E67BCD082F486E7712183EBE2BF41E25DBC
4922666546D6FDD4CDD68924259109AE202A79F9E317B7DA63CB83DC8058C99898A 49233FE043AB4FD9596DE10B3994B839D0C1734C3D8B92992A35ABB839D6B6E7D49
49375077910E0A42A1B7EE0E8C6723CF6098EDFA7523776A28D985FC8C46F412EAE 493233A0E0A2203562FF3C55D03496AEF3E0D32ED8F565E3B6E73A3FBCB8D8DC0BD
494E1F8DAFB90E75B2EAD5D166B03C099EC19DE18BBED2205C21924A6E2E72272CC 4947D36A4EAA2086618657E6775E083187D6340CA5BABC2AA8605D4AC0184406B96
495C61EB27336E3C5A0848F9845A15873BFEAF4ED8E46D7D1E53641A7C8C83B3314 495EA9E53B257FE600663E9E8430AB874EE8DA594B4D5414FDC8B76B94376A16FE9
4966D8D7CAD912E08DCF730A260F1B6A9874B128A9F4E462F028DDE01677069BA70 496E2B98A5F0FDE4BA0614A67AF83270347EBC98A5AC9B962171EC337BB711E65A8
49785751970D15A28006928FD882041684AB99E9DF145ECE51664477EBE16024C02 497D2E0184AC041CBCCB109744487FF25045693A22DCEDEFF949972D66F15FF0D6B
498AF4337CD06997B6D4C62808AF0974896FA2FEA86AA3B15235EA9D79FE96E6A7B 49896294011AFAA11AB7AD70C573022779716AFC303E5689D194BA0A2B401933B77
4993B6DFE839B9C0692BF6C2D216B1F7E06B70F6C848CA93B5F524C4FEBA16EFD86 4997077EE767B3CCAB29D3FED8050DE8563675FA600DCD1DAB01FFA69671C050E1E
500A17FC47FE825F00DCE060D1557CF3A60254143E178EBD0462AADA68F6A23FD14 500C94E850BF916143CB175F6532B8F16A24835A684490B3377BDAACA1B6D1FEDA8
5013E91D6EDD3CC038AE4E7FC74D3A7D198AF912F61F84F44CA7B21DD1004B2FE6F 50194FCCD0D9922F085B4277D4C8A737BAF5B83CA6EF22D8583B3773C53E07EFFA6
502202D720AFDCFD70868FD70C0EF5B40E2BAD782EA73C1305961A572955A0CF859 5027F4186DE5B6D8BADE173932D07A5E7E66349E1360ADAD3976B23F2EEE7F4AF16
5032AD779B170CDCD54FDD5061E5967BB4E62856C7757BFB5F4D52344BB8EFFE87F 503ABF1FB9EE93792BFA78959A27AE1A4A942EBB27DB8DD7E9087C3221920C067A0
5049FCBCF9DB6CF9EB008CC37695829E2738A04E6D20E16F7F42BA61422D0BC8301 504B7AC2E61935BEA07199A1005DDADFD6212F31CEAB4E35A98CA4955AF1E9F3101
5059879E2D784FC263A9FE0C4B0F95FB29E919155F787C885DDBD1F18AB49EB3A12 505FB829CBEDF719AD84C3A46DFCB274F71E44AD5A9DD761728C0BAD505F708DBCA
506A1A1A34A389673F41C08490E463883EF637429F094B6013F502AFC084DBFA90B 506C1DE916DA8323CCE8ECEC44EB3FE8BB1D5FDD022F3D2552E659BB10C5B603337
507EE7E8561569D714938F8EDAAAC4339583EA908BFECBF86F56AF4E5BA1D4DCF51 50764AD364473F01AE7A2D94C8F948B470059C49ED0AD738286799F85C82610F550
508ACD61EB7FDC8957A0D2485313EEDFFEBED52F519A6C4ABF72AF5EB3EF7813FE9 508B89CF1EA73D78F80FFB9EEC2C657D0174BF769F1E43D03F641A8DE9399AA848B
5095B04D4D4ACF29C3256E2DE77A752B16F905DA2F0E744C587FF36B3E4DF350095 509BFF6FD45FC754C929F360915F92E9B3583F15ECD02F56333368EA044484C8691
5100C780F7BC60FEFB63B1BF86EC400416A28DDD5460E3D202FECC45A723CAB6D53 51048C40D27259AE8348B978DA0873D09B0F1AE22B413DB994A10069ADCABF1B849
51106FD4BA81441B7D8C254F66CD65446924BE54FEB728A78D5776E8A4AF107B75B 5113CA5CDE63956101B29B2923DE91CB738FDF629C66F8BA17559B911FCC000D416
512D983E3869D745380B7A4904EBB1A9E31410AD52A1337518DD33D9ED47D662BBC 512EB789D824184E74E1372C6408584BC2EB7E4FDFC22FA743ACD07C8C50AA15DB1
51302E293A64D6E4A464EC44AC5EF6FE0BDE53343479928769706D728695E112D85 51303C3C7E8AD8EC10471C38B07FE9116BAC46B796E363940C622A66FE2EF2DAE3B
514522334A6369D4B5BCDF411E01F8462768A73EC1A1EC0EBBF2AB6D6F93FABACAB 5140C4981865608A335241455CBF6B4DEC47B68F03E8213DFCBE2CACD7E58560BEA
515DF5202AADDC2E940EED9AB910801EF95DDA016A3DB26621CAB2EE249A540BEC8 515737C1670B54B4340460A294129BAF10EEBCAE5CDDA6F93E235136FA1EC12D6A4
5162A95B709DC31F890C82D225E1AC504F74805F663EB4322FDA91EFB556695031A 5164ED6CE266B0D890437D79EAB499F924C8713E73846D208AE58D35B485C9BCE8C
517D65904BAD452B494F6868F2894C4AA3CB8A9F44571FBFDD2B48A331070CB7191 5179A8CEFFA63740DB2CB9733DB9BA466180356ACB22F2314525AE04EA4D087764F
51812B6022A8470E7860589DF6D594D62C88DF7D70FBD19FECDA8681F7C51161D2E 518D3522B3456C2275FE9BB3D0CDA2CB59D7E92148E739D711A2F10F7894C86608A
519572A100D0B29B3F128AA94B195A41F51DADFF704147E97734E12D09C0E00C375 5198044744C88F91C808EC592E70DBDE2ADB7BD14D8FBAA1810D3D224028F58134F
52074D22B509E9B28AFAB9892D48F8B0AEF0C64E765EB3457C0E7CB8ED7872C6C88 520760010605FC4ACB37915ED950040AD5F26EBCEA3F7713939049F8B775C2E7926
521B0079087C8DA629AFA529AAE62267823F7A7C264BA93AEDE105E8382C4A79413 521F47EDA3F302B80646CA7A853C6834D88A85936A88EE74EB3A5D3C98F9929CC70
52212DFA7ADCDCC1A22B722CD23BECAEC2DAA329C8D3D261E6721457AE4D1996F9D 522738F553FD115D264DA5112DC1B5032575D70EC5A3BC3876918C54CA46DB2D3EA
5233EF8E9569BC4CDEEFBEAC527C5EE02DBF60C3A5E823CD314862965ACA30B0066 5236A9A92FA33FC10E0DC8E215FFA7E16D08C4E700401FC8DB499F49253DB1E0280
524F69A82B6AF6F4D4FE3364DBE0140CBF62A643550E2C113D52C8ADD97B4CD7B45 524788593A67F431D91DF1AE222426537C1357BAFD0480C4BB4BEABAB9B0DA4E42A
525F30365D65478481714B3B35CBD7A90070B2FEDF4BAE6B6E9AA4EEF2415DDAB03 5257022A6CFC8A1F2A450F54EC48447657BDCD04D8A499893D452DB44E5006A0C2A
526DD90678CAFEF588BF92270C58BC46C3321921A900626287706575A7F755672AD 52635FC721B127E47854F899BEC7EDC5788D114C48A97A919A5A0D9D09A7D8B1B14
5271AA6F7015479E26F0FCD3E4CD4F790CE7AEA1765CC4C5960B0F548885C2FC6C4 5275EE76BAE2B268787797231C86129B2B2C5A69452944F43DB4ED4E8EC96984262
528F23E0BF2473AFBFCA4ED207456BE63C765B407951A68399F2DA59C1E3F2E6CA4 528CB1DA28A965B7BD5FAB5509018584C67B770357AA4D74B944BFF2919E110308E
5298BC2CAEF5AA0A046AAE9414A43DB889881A8C6F3EAB6EDFEABB29F9105147F0B 529346B80ECA9265BFF0A0663EE4735E7FC146464AE18B3EB1A05F2E8B0730DE422
530A9069B65827F2BB5A7A3DAC2803B279F2162354923CAC770CB915162693B4069 530E79959C61B60FD403965FF937F409BF578B339154CEBD0A0BB6F2971B0DC3420
531AAD063253F9325ADE55BFA94CEFDF62D6AE0965AB35BFFF883589FDAA53EA0A5 531579638EFBE19287D9FEBFC55196C4B9AEC60E6029D203F32109BF23BD6AFFE03
532465BBCF81595BD1D299778B7D5EDF4052E86251081E132AEBE53E7F6374F2739 532CF1CF34C9B4F1DE35AD5002ED3649C69B3B8026D202C1890AB9AAFF5A0AC515D
533702A14FEE9BFB3D374761E62F9043B24DF318F8C78E789AD3299F97113E409E9 533F0D2EF855FE7CF38EE5951649CB5A942296B636FA5FB3A6F8EF9FD23CEE18028
5342F092C72B814CA79D1BECDEB2AAA1B8CB85B75B2CA6FB4E882AC118588CFCFB6 534D9A60365BE650ABA903E6A484EDF0F71028869DED5A88BC73977485F4277E036
5352D1CDE698B9BF277F6ACB296871771A225BF812BA3B3151555BDB5362B1F0F59 53523AC65148BFC9CE1963049E674B88ADF6DB30CC4F6C8C4BFC3F3AF085E7B3976
536997D295FF00EADBCC528AD6233296DD472013B8190417DF6CCA0A87AFDBAB090 5360B22DCF6DA40C63ABBD054A62ED9BBC200C1508D4F7681C1D6945C36FFD90F07
537A4E40383A6D5FD5822313907F710C9F1C844A3CA5FCC568B6F43B38F772480BA 53783029A21900B6F738BBB2F2AA05D27DE3D6902E23CE4A5B40FCD03B47E5C2D24
538BC64CB822CDE771AE4C9F58CD7F30C31E3DFD21853F9DEFB3F5DE7EA5D1376AF 538A02FFF8E3634CC4EC6F299F15547F28047585A356BBB244AB7BAC36D98309AA1
539A6D7DE67B57406C36D2087EA224DDD2526E76640E0ED66426BEA8B26A45AD00B 539BDC5380D9C47315F8DAAD1E859C725761AEB8E9B78A88F3391BAF35F7EBA488E
540D89F9D68CE088408D0CD9F56B33BFF120CCC9FFF0F7A4EBFFAEE09D1DF06CD2E 54094FB7B0C6FA08A451CE40486703E4FFAE3F870B6A72077238F347642983DC4D9
541A3720CC3236B28AC3F0F0F74B5BEE74A8F452722B25D4E629DD97F01B829A7FC 5413F5D3085B5047C841D5315D434FC6874E5B3B5E28607E4227AF81CE22E5E5FF9
5421F83D10AAB3D64782C3ABDD32F98CFA8DFA66CCAD02CD69D68E5EE364F327128 542052977E442ED3FCCCB23F7B14139EC8CC123E33B136A06C6CCC40654701E803D
543C25E0D860ABA76CABBBF3981F113EC2E54B7A5E829FAA2EFD526BDB6726F9469 543D1FBF72DE6280EA2BDBD47C7F181F2D54DD0D0131F1A5763645990C42094B073
544D7BF91B3DF4BBFB61F8FCBBB322AC4C7DB15BF531BAA97E3CB808CF400785D95 5440F9200566CF0B1554214C9D6F84C71AE24D5B9447016116B03E1FB4489F07288
54511552504FE80410C0B5B30FE31481DB159EBC4FC40EB6F5C098F5D9001A76B78 545C2B58B66D5D624443E0CFDAACA79AB702B29E5AA024E5E17C49E675CF1EC7F3B
546013675B443F3E9D3F1EA30097F01823A2A07C92CE535FF8DF4B1AFFABA291E70 54690F3446686F40DE0629493BFFA0CD9CE240BDB2999F254DEC756C53091C5C23C
547539A73904631054F9EA220B6206A4F2CF3DC909BC5F3E49035FD391529ED1555 54722950E56B09C88250EB802948A5069801CF9ADE91BEF62AF9135DD19E0CDF451
548ACBD25AD0209A7600F05F6E0C7A23509B936A01C40B04F64F7085292468CA32A 548D70835489137045E6094F1F2A7A5878E1E5E495E528B460D509568A942304A43
549DAA568A3AA4C798FFBF122D476FC954F551D9F7AA995939AD401774CF4A217D5 54916DEB2A9B20E4512E7C611626ADEDB2DD04AB2FD65A27508317E9DDB9C97E44C
550954556B69BF9AA15962CA3A266C6DC34FE7F21232E07A450EC6E7FDA40C6BC34 550E181D04C266B6761C5A63D5A22F44381BDD7CFF52F3AE364A5196853639CBC2F
551D15E52A2130A321BAC0437C0AE6CEFD3413D19AB436DFD6178D434C759150ED2 551CB6D8E9F95291997E1B0FC7915E1BB30F1879CB6A0CD98A87AC6DD3F01E85B8B
55223FCF3F9D2AA7351DA3E841A5BE2CDC0208F69032F04BB157A79A668DCAF6A 5520836ADB32D7E6FCA2F03A7EFE38B5DBB2487132E7BF1FA8EF9AD9C940BEAA65C
5539F272A9E483A058624158FFCDF9D48E54BC1C38D9010E766DC1E99E9C7A9AF0A
5549D49AC8AA78A4F3A8364F84CD33FA29120F15936E06DD5064880E2D4F5FD8FB3
5557E47F8B0350FD52E7537F5CAA75E05717A5CB84D56DA8FCF061AAEE227DEE7D5
5568BF5E4C72DA6C7DB1FCA7D
5530000000000000000000000000000000000000000000000000000000000000000 5570000000000000000000000000000000000000000000000000000000000000000
5540000000000000000000000000000000000000000000000000000000000000000 5580000000000000000000000000000000000000000000000000000000000000000
5550000000000000000000000000000000000000000000000000000000000000000 5590000000000000000000000000000000000000000000000000000000000000000
@@ -2308,7 +2312,7 @@ TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi)
230849.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34 231249.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34
230930 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44 231330 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44
23101[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 4[30 30 1[30 23141[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 4[30 30 1[30
23111[30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }40 231530 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }41
231249.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36 231649.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36
23132[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14 23172[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14
231466.4176 /CMTI8 rf /Fd 134[43 43 59 43 45 32 32 34 1[45 231866.4176 /CMTI8 rf /Fd 134[43 43 59 43 45 32 32 34 1[45
@@ -2347,7 +2351,7 @@ TeXDict begin
2347%%Page: 1 1 2351%%Page: 1 1
2348TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45 2352TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45
2349b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h 2353b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
2350(4.00\))-150 -39 y Fh(Getting)37 b(Started)-150 89 y 2354(4.01\))-150 -39 y Fh(Getting)37 b(Started)-150 89 y
2351Fg(\(add-to-list)i('auto-mode-alist)h('\("\\\\.org$")e(.)e 2355Fg(\(add-to-list)i('auto-mode-alist)h('\("\\\\.org$")e(.)e
2352(org-mode\)\))-150 172 y(\(define-key)i(global-map)h("\\C-cl")e 2356(org-mode\)\))-150 172 y(\(define-key)i(global-map)h("\\C-cl")e
2353('org-store-link\))1504 148 y Ff(2)-150 254 y Fg(\(define-key)h 2357('org-store-link\))1504 148 y Ff(2)-150 254 y Fg(\(define-key)h
@@ -2560,7 +2564,7 @@ end
2560%%Page: 2 2 2564%%Page: 2 2
2561TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45 2565TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45
2562b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h 2566b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
2563(4.00\))-150 -45 y Fh(Agenda)37 b(Views)-150 102 y Fi(add/mo)n(v)n(e)25 2567(4.01\))-150 -45 y Fh(Agenda)37 b(Views)-150 102 y Fi(add/mo)n(v)n(e)25
2564b(curren)n(t)f(\014le)g(to)g(fron)n(t)g(of)f(agenda)197 2568b(curren)n(t)f(\014le)g(to)g(fron)n(t)g(of)f(agenda)197
2565b Fg(C-c)36 b([)-150 172 y Fi(remo)n(v)n(e)24 b(curren)n(t)g(\014le)g 2569b Fg(C-c)36 b([)-150 172 y Fi(remo)n(v)n(e)24 b(curren)n(t)g(\014le)g
2566(from)f(y)n(our)g(agenda)299 b Fg(C-c)36 b(])-150 242 2570(from)f(y)n(our)g(agenda)299 b Fg(C-c)36 b(])-150 242
@@ -2589,23 +2593,23 @@ Fi(goto)25 b(original)e(lo)r(cation,)h(delete)h(other)f(windo)n(ws)91
2589b Fg(RET)-150 1641 y Fi(toggle)25 b(follo)n(w-mo)r(de)861 2593b Fg(RET)-150 1641 y Fi(toggle)25 b(follo)n(w-mo)r(de)861
2590b Fg(f)-150 1737 y Fd(Change)27 b(displa)n(y)-150 1833 2594b Fg(f)-150 1737 y Fd(Change)27 b(displa)n(y)-150 1833
2591y Fi(delete)e(other)f(windo)n(ws)791 b Fg(o)-150 1903 2595y Fi(delete)e(other)f(windo)n(ws)791 b Fg(o)-150 1903
2592y Fi(switc)n(h)24 b(to)g(w)n(eekly)h(view)767 b Fg(w)-150 2596y Fi(switc)n(h)24 b(to)g(daily)g(/)g(w)n(eekly)g(view)534
25931973 y Fi(switc)n(h)24 b(to)g(daily)g(view)822 b Fg(d)-150 2597b Fg(d)36 b(/)f(w)-150 1973 y Fi(toggle)25 b(inclusion)e(of)h(diary)f
25942043 y Fi(toggle)25 b(inclusion)e(of)h(diary)f(en)n(tries)473 2598(en)n(tries)473 b Fg(D)-150 2043 y Fi(toggle)25 b(time)f(grid)f(for)g
2595b Fg(D)-150 2112 y Fi(toggle)25 b(time)f(grid)f(for)g(daily)g(sc)n 2599(daily)g(sc)n(hedule)388 b Fg(g)-150 2112 y Fi(toggle)25
2596(hedule)388 b Fg(g)-150 2182 y Fi(toggle)25 b(displa)n(y)e(of)h(logb)r 2600b(displa)n(y)e(of)h(logb)r(o)r(ok)g(en)n(tries)446 b
2597(o)r(ok)g(en)n(tries)446 b Fg(l)-150 2252 y Fi(refresh)23 2601Fg(l)-150 2182 y Fi(refresh)23 b(agenda)i(bu\013er)f(with)g(an)n(y)g(c)
2598b(agenda)i(bu\013er)f(with)g(an)n(y)g(c)n(hanges)239 2602n(hanges)239 b Fg(r)-150 2252 y Fi(displa)n(y)24 b(the)g(follo)n(wing)f
2599b Fg(r)-150 2322 y Fi(displa)n(y)24 b(the)g(follo)n(wing)f 2603Fg(org-agenda-ndays)221 b(RIGHT)-150 2322 y Fi(displa)n(y)24
2600Fg(org-agenda-ndays)221 b(RIGHT)-150 2391 y Fi(displa)n(y)24
2601b(the)g(previous)g Fg(org-agenda-ndays)238 b(LEFT)-150 2604b(the)g(previous)g Fg(org-agenda-ndays)238 b(LEFT)-150
26022461 y Fi(goto)25 b(to)r(da)n(y)1110 b Fg(.)-150 2557 26052391 y Fi(goto)25 b(to)r(da)n(y)1110 b Fg(.)-150 2488
2603y Fd(Remote)27 b(editing)-150 2654 y Fi(digit)d(argumen)n(t)984 2606y Fd(Remote)27 b(editing)-150 2584 y Fi(digit)d(argumen)n(t)984
2604b Fg(0-9)-150 2724 y Fi(c)n(hange)25 b(state)g(of)f(curren)n(t)g(TODO)f 2607b Fg(0-9)-150 2654 y Fi(c)n(hange)25 b(state)g(of)f(curren)n(t)g(TODO)f
2605(item)333 b Fg(t)-150 2793 y Fi(set)24 b(priorit)n(y)f(of)g(curren)n(t) 2608(item)333 b Fg(t)-150 2724 y Fi(set)24 b(tags)h(for)d(curren)n(t)j
2606i(item)612 b Fg(p)-150 2876 y Fi(raise)23 b(priorit)n(y)g(of)g(curren)n 2609(headline)573 b Fg(:)-150 2793 y Fi(set)24 b(priorit)n(y)f(of)g(curren)
2607(t)i(item)557 b Fg(S-UP)1430 2852 y Ff(4)-150 2956 y 2610n(t)i(item)612 b Fg(p)-150 2876 y Fi(raise)23 b(priorit)n(y)g(of)g
2608Fi(lo)n(w)n(er)23 b(priorit)n(y)g(of)h(curren)n(t)g(item)538 2611(curren)n(t)i(item)557 b Fg(S-UP)1430 2852 y Ff(4)-150
26122956 y Fi(lo)n(w)n(er)23 b(priorit)n(y)g(of)h(curren)n(t)g(item)538
2609b Fg(S-DOWN)1500 2933 y Ff(4)-150 3026 y Fi(displa)n(y)24 2613b Fg(S-DOWN)1500 2933 y Ff(4)-150 3026 y Fi(displa)n(y)24
2610b(w)n(eigh)n(ted)h(priorit)n(y)e(of)g(curren)n(t)h(item)189 2614b(w)n(eigh)n(ted)h(priorit)n(y)e(of)g(curren)n(t)h(item)189
2611b Fg(P)-150 3106 y Fi(c)n(hange)25 b(timestamp)g(to)f(one)g(da)n(y)h 2615b Fg(P)-150 3106 y Fi(c)n(hange)25 b(timestamp)g(to)f(one)g(da)n(y)h
@@ -2757,7 +2761,7 @@ b Fi(with)g(the)h(cur-)4242 3574 y(sor)h(still)g(in)g(a)h(line)f(to)h
2757Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838 2761Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838
27583768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21 27623768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21
2759b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826 2763b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826
2760y(v4.00)h(for)h(Org-Mo)r(de)e(4.00,)i(2005)4912 3882 2764y(v4.01)h(for)h(Org-Mo)r(de)e(4.01,)i(2005)4912 3882
2761y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g 2765y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g
2762(design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242 2766(design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242
27634022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e 27674022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e
diff --git a/etc/orgcard.tex b/etc/orgcard.tex
index 92dd40d2873..0c25e4ef569 100644
--- a/etc/orgcard.tex
+++ b/etc/orgcard.tex
@@ -1,4 +1,4 @@
1% Reference Card for Org Mode 4.00 1% Reference Card for Org Mode 4.01
2% 2%
3%**start of header 3%**start of header
4\newcount\columnsperpage 4\newcount\columnsperpage
@@ -58,7 +58,7 @@
58% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik 58% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
59% for their many good ideas. 59% for their many good ideas.
60 60
61\def\orgversionnumber{4.00} 61\def\orgversionnumber{4.01}
62\def\year{2005} 62\def\year{2005}
63 63
64\def\shortcopyrightnotice{\vskip 1ex plus 2 fill 64\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
@@ -557,8 +557,7 @@ To set categories, add lines like$^3$:
557{\bf Change display} 557{\bf Change display}
558 558
559\key{delete other windows}{o} 559\key{delete other windows}{o}
560\key{switch to weekly view}{w} 560\key{switch to daily / weekly view}{d / w}
561\key{switch to daily view}{d}
562\key{toggle inclusion of diary entries}{D} 561\key{toggle inclusion of diary entries}{D}
563\key{toggle time grid for daily schedule}{g} 562\key{toggle time grid for daily schedule}{g}
564\key{toggle display of logbook entries}{l} 563\key{toggle display of logbook entries}{l}
@@ -571,6 +570,7 @@ To set categories, add lines like$^3$:
571 570
572\key{digit argument}{0-9} 571\key{digit argument}{0-9}
573\key{change state of current TODO item}{t} 572\key{change state of current TODO item}{t}
573\key{set tags for current headline}{:}
574\key{set priority of current item}{p} 574\key{set priority of current item}{p}
575\key{raise priority of current item}{S-UP$^4$} 575\key{raise priority of current item}{S-UP$^4$}
576\key{lower priority of current item}{S-DOWN$^4$} 576\key{lower priority of current item}{S-DOWN$^4$}
diff --git a/leim/Makefile.in b/leim/Makefile.in
index 5f7dad1902b..59237114414 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -1,9 +1,7 @@
1# Makefile for leim subdirectory in GNU Emacs. 1# Makefile for leim subdirectory in GNU Emacs.
2# Copyright (C) 1997,98,1999,2000,2001 Electrotechnical Laboratory, JAPAN. 2# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
3# Licensed to the Free Software Foundation.
4# Copyright (C) 1997,98,1999,2000,01,02,03,2004,2005
5# Free Software Foundation, Inc. 3# Free Software Foundation, Inc.
6# Copyright (C) 2001,02,03,2004 4# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
7# National Institute of Advanced Industrial Science and Technology (AIST) 5# National Institute of Advanced Industrial Science and Technology (AIST)
8# Registration Number H14PRO021 6# Registration Number H14PRO021
9 7
diff --git a/leim/leim-ext.el b/leim/leim-ext.el
index 6d7b949d8d0..ecd22b7cf99 100644
--- a/leim/leim-ext.el
+++ b/leim/leim-ext.el
@@ -2,7 +2,7 @@
2 2
3;; Copyright (C) 2004 3;; Copyright (C) 2004
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2004 5;; Copyright (C) 2004, 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST) 6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H13PRO009 7;; Registration Number H13PRO009
8 8
diff --git a/leim/makefile.w32-in b/leim/makefile.w32-in
index 8b44ad350e7..73e44a5bfec 100644
--- a/leim/makefile.w32-in
+++ b/leim/makefile.w32-in
@@ -1,7 +1,9 @@
1# -*- Makefile -*- for leim subdirectory in GNU Emacs on the Microsoft W32 API. 1# -*- Makefile -*- for leim subdirectory in GNU Emacs on the Microsoft W32 API.
2# Copyright (C) 1997, 2004 Electrotechnical Laboratory, JAPAN. 2# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
3# Licensed to the Free Software Foundation. 3# Free Software Foundation, Inc.
4# Copyright (C) 2005, Free Software Foundation, Inc. 4# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
5# National Institute of Advanced Industrial Science and Technology (AIST)
6# Registration Number H14PRO021
5 7
6# This file is part of GNU Emacs. 8# This file is part of GNU Emacs.
7 9
diff --git a/leim/quail/croatian.el b/leim/quail/croatian.el
index 6e82d7b3ca3..09623077f3d 100644
--- a/leim/quail/croatian.el
+++ b/leim/quail/croatian.el
@@ -1,6 +1,6 @@
1;;; quail/croatian.el -- Quail package for inputing Croatian -*-coding: iso-8859-2;-*- 1;;; quail/croatian.el -- Quail package for inputing Croatian -*-coding: iso-8859-2;-*-
2 2
3;; Copyright (C) 2002 Free Software Foundation. 3;; Copyright (C) 2002 Free Software Foundation, Inc.
4 4
5;; Author: Hrvoje Nik¹iæ <hniksic@xemacs.org>, 5;; Author: Hrvoje Nik¹iæ <hniksic@xemacs.org>,
6;; modeled after czech.el by Milan Zamazal. 6;; modeled after czech.el by Milan Zamazal.
diff --git a/leim/quail/cyril-jis.el b/leim/quail/cyril-jis.el
index aa40624ffd7..f594518bdbf 100644
--- a/leim/quail/cyril-jis.el
+++ b/leim/quail/cyril-jis.el
@@ -1,7 +1,9 @@
1;;; cyril-jis.el --- Quail package for inputting JISX0208 Cyrillic letters 1;;; cyril-jis.el --- Quail package for inputting JISX0208 Cyrillic letters
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 2005
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, input method, Cyrillic 8;; Keywords: multilingual, input method, Cyrillic
7 9
diff --git a/leim/quail/cyrillic.el b/leim/quail/cyrillic.el
index 3aa3c8aa7d0..445c2fbadaf 100644
--- a/leim/quail/cyrillic.el
+++ b/leim/quail/cyrillic.el
@@ -1,8 +1,10 @@
1;;; cyrillic.el --- Quail package for inputting Cyrillic characters 1;;; cyrillic.el --- Quail package for inputting Cyrillic characters
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. 5;; Copyright (C) 1997, 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6 8
7;; Author: TAKAHASHI Naoto <ntakahas@m17n.org> 9;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
8;; Keywords: multilingual, input method, Cyrillic, i18n 10;; Keywords: multilingual, input method, Cyrillic, i18n
diff --git a/leim/quail/czech.el b/leim/quail/czech.el
index e387814d0df..a3187f6994b 100644
--- a/leim/quail/czech.el
+++ b/leim/quail/czech.el
@@ -1,6 +1,6 @@
1;;; czech.el --- Quail package for inputting Czech -*-coding: iso-2022-7bit;-*- 1;;; czech.el --- Quail package for inputting Czech -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1998, 2001 Free Software Foundation. 3;; Copyright (C) 1998, 2001 Free Software Foundation, Inc.
4 4
5;; Author: Milan Zamazal <pdm@zamazal.org> 5;; Author: Milan Zamazal <pdm@zamazal.org>
6;; Maintainer: Pavel Jan,Bm(Bk <Pavel@Janik.cz> 6;; Maintainer: Pavel Jan,Bm(Bk <Pavel@Janik.cz>
diff --git a/leim/quail/ethiopic.el b/leim/quail/ethiopic.el
index 0930f1d05d8..d5af764bda2 100644
--- a/leim/quail/ethiopic.el
+++ b/leim/quail/ethiopic.el
@@ -1,7 +1,8 @@
1;;; ethiopic.el --- Quail package for inputting Ethiopic characters -*-coding: iso-2022-7bit;-*- 1;;; ethiopic.el --- Quail package for inputting Ethiopic characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997, 1998 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 1999, 2001
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: multilingual, input method, ethiopic 7;; Keywords: multilingual, input method, ethiopic
7 8
diff --git a/leim/quail/greek.el b/leim/quail/greek.el
index cd6e1560d7d..856c9fe098f 100644
--- a/leim/quail/greek.el
+++ b/leim/quail/greek.el
@@ -1,7 +1,9 @@
1;;; greek.el --- Quail package for inputting Greek -*-coding: iso-2022-7bit-*- 1;;; greek.el --- Quail package for inputting Greek -*-coding: iso-2022-7bit-*-
2 2
3;; Copyright (C) 1997, 2001 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 2001
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, input method, Greek 8;; Keywords: multilingual, input method, Greek
7 9
diff --git a/leim/quail/hangul.el b/leim/quail/hangul.el
index ee76c4e9af9..d82d49c3318 100644
--- a/leim/quail/hangul.el
+++ b/leim/quail/hangul.el
@@ -1,7 +1,9 @@
1;;; hangul.el --- Quail package for inputting Korean Hangul characters -*-coding: iso-2022-7bit;-*- 1;;; hangul.el --- Quail package for inputting Korean Hangul characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, input method, Korean, Hangul 8;; Keywords: multilingual, input method, Korean, Hangul
7 9
diff --git a/leim/quail/hangul3.el b/leim/quail/hangul3.el
index 9931706c4a4..8cbfb061b9a 100644
--- a/leim/quail/hangul3.el
+++ b/leim/quail/hangul3.el
@@ -1,7 +1,9 @@
1;;; hangul3.el --- Quail package for inputting Korean Hangul characters -*-coding: iso-2022-7bit;-*- 1;;; hangul3.el --- Quail package for inputting Korean Hangul characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 2002
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, input method, Korean, Hangul 8;; Keywords: multilingual, input method, Korean, Hangul
7 9
diff --git a/leim/quail/hanja-jis.el b/leim/quail/hanja-jis.el
index 59ca777769b..baf426bc94a 100644
--- a/leim/quail/hanja-jis.el
+++ b/leim/quail/hanja-jis.el
@@ -1,7 +1,8 @@
1;;; hanja-jis.el --- Quail package for inputting Korean Hanja (JISX0208) -*-coding: iso-2022-7bit;-*- 1;;; hanja-jis.el --- Quail package for inputting Korean Hanja (JISX0208) -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: multilingual, input method, Korean, Hangul 7;; Keywords: multilingual, input method, Korean, Hangul
7 8
diff --git a/leim/quail/hanja.el b/leim/quail/hanja.el
index 27cc557f9f6..7108e3b02f7 100644
--- a/leim/quail/hanja.el
+++ b/leim/quail/hanja.el
@@ -1,7 +1,8 @@
1;;; hanja.el --- Quail-package for Korean Hanja (KSC5601) -*-coding: iso-2022-7bit;-*- 1;;; hanja.el --- Quail-package for Korean Hanja (KSC5601) -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: multilingual, input method, Korean, Hanja 7;; Keywords: multilingual, input method, Korean, Hanja
7 8
diff --git a/leim/quail/hanja3.el b/leim/quail/hanja3.el
index 230248b9bec..c2f67b4d09d 100644
--- a/leim/quail/hanja3.el
+++ b/leim/quail/hanja3.el
@@ -1,6 +1,6 @@
1;;; hanja3.el --- Quail-package for Korean Hanja (KSC5601) -*-coding: iso-2022-7bit;-*- 1;;; hanja3.el --- Quail-package for Korean Hanja (KSC5601) -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 1999, 2002 Free Software Foundation, Inc.
4 4
5;; Author: Koaunghi Un <koanughi.un@zdv.uni-tuebingen.de> 5;; Author: Koaunghi Un <koanughi.un@zdv.uni-tuebingen.de>
6;; Keywords: mule, quail, multilingual, input method, Korean, Hanja 6;; Keywords: mule, quail, multilingual, input method, Korean, Hanja
diff --git a/leim/quail/hebrew.el b/leim/quail/hebrew.el
index eadabcb1df7..4193f59775f 100644
--- a/leim/quail/hebrew.el
+++ b/leim/quail/hebrew.el
@@ -1,7 +1,8 @@
1;;; hebrew.el --- Quail package for inputting Hebrew characters -*-coding: iso-2022-7bit;-*- 1;;; hebrew.el --- Quail package for inputting Hebrew characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1998 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1999
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: mule, input method, Hebrew 7;; Keywords: mule, input method, Hebrew
7 8
diff --git a/leim/quail/indian.el b/leim/quail/indian.el
index 8e42ae7c3a7..891eab558c1 100644
--- a/leim/quail/indian.el
+++ b/leim/quail/indian.el
@@ -1,6 +1,6 @@
1;;; indian.el --- Quail packages for inputting Indian 1;;; indian.el --- Quail packages for inputting Indian
2 2
3;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
4 4
5;; Author: KAWABATA, Taichi <kawabata@m17n.org> 5;; Author: KAWABATA, Taichi <kawabata@m17n.org>
6 6
diff --git a/leim/quail/ipa.el b/leim/quail/ipa.el
index 32547793005..48ce2b4063f 100644
--- a/leim/quail/ipa.el
+++ b/leim/quail/ipa.el
@@ -1,7 +1,8 @@
1;;; ipa.el --- Quail package for inputting IPA characters -*-coding: iso-2022-7bit;-*- 1;;; ipa.el --- Quail package for inputting IPA characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: multilingual, input method, IPA 7;; Keywords: multilingual, input method, IPA
7 8
diff --git a/leim/quail/japanese.el b/leim/quail/japanese.el
index 09b005a7bb2..974a68c0449 100644
--- a/leim/quail/japanese.el
+++ b/leim/quail/japanese.el
@@ -1,7 +1,8 @@
1;;; japanese.el --- Quail package for inputting Japanese -*-coding: iso-2022-7bit;-*- 1;;; japanese.el --- Quail package for inputting Japanese -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2005
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: multilingual, input method, Japanese 7;; Keywords: multilingual, input method, Japanese
7 8
diff --git a/leim/quail/lao.el b/leim/quail/lao.el
index e28bc5fc1fc..09151735de0 100644
--- a/leim/quail/lao.el
+++ b/leim/quail/lao.el
@@ -1,8 +1,6 @@
1;;; lao.el --- Quail package for inputting Lao characters -*-coding: iso-2022-7bit;-*- 1;;; lao.el --- Quail package for inputting Lao characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1999, 2004
4;; Licensed to the Free Software Foundation.
5;; Copyright (C) 2004
6;; National Institute of Advanced Industrial Science and Technology (AIST) 4;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021 5;; Registration Number H14PRO021
8 6
diff --git a/leim/quail/latin-alt.el b/leim/quail/latin-alt.el
index e77c729cca3..58893788ebc 100644
--- a/leim/quail/latin-alt.el
+++ b/leim/quail/latin-alt.el
@@ -1,8 +1,9 @@
1;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: iso-2022-7bit;-*- 1;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 1999
5;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6 7
7;; Keywords: multilingual, input method, latin 8;; Keywords: multilingual, input method, latin
8 9
diff --git a/leim/quail/latin-ltx.el b/leim/quail/latin-ltx.el
index 459b939f3b2..4bf9310abd7 100644
--- a/leim/quail/latin-ltx.el
+++ b/leim/quail/latin-ltx.el
@@ -1,8 +1,9 @@
1;;; latin-ltx.el --- Quail package for TeX-style input -*-coding: utf-8;-*- 1;;; latin-ltx.el --- Quail package for TeX-style input -*-coding: utf-8;-*-
2 2
3;; Copyright (C) 2001, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
4;; Copyright (C) 2001 Electrotechnical Laboratory, JAPAN. 4;; Copyright (C) 2001
5;; Licensed to the Free Software Foundation. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6 7
7;; Author: TAKAHASHI Naoto <ntakahas@m17n.org> 8;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
8;; Dave Love <fx@gnu.org> 9;; Dave Love <fx@gnu.org>
diff --git a/leim/quail/latin-post.el b/leim/quail/latin-post.el
index 147dce53e3b..046ec326e5c 100644
--- a/leim/quail/latin-post.el
+++ b/leim/quail/latin-post.el
@@ -1,8 +1,9 @@
1;;; latin-post.el --- Quail packages for inputting various European characters -*-coding: iso-2022-7bit;-*- 1;;; latin-post.el --- Quail packages for inputting various European characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997
5;; Copyright (C) 2001, 2002 Free Software Foundation. 5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6 7
7;; Keywords: multilingual, input method, latin 8;; Keywords: multilingual, input method, latin
8 9
diff --git a/leim/quail/latin-pre.el b/leim/quail/latin-pre.el
index 0321c953f1c..661c6700bef 100644
--- a/leim/quail/latin-pre.el
+++ b/leim/quail/latin-pre.el
@@ -1,8 +1,10 @@
1;;; latin-pre.el --- Quail packages for inputting various European characters -*-coding: iso-2022-7bit;-*- 1;;; latin-pre.el --- Quail packages for inputting various European characters -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
4;; Licensed to the Free Software Foundation. 4;; Free Software Foundation, Inc.
5;; Copyright (C) 2000, 2002 Free Software Foundation, Inc. 5;; Copyright (C) 1997, 1999, 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021
6 8
7;; Keywords: mule, multilingual, latin, input method 9;; Keywords: mule, multilingual, latin, input method
8 10
diff --git a/leim/quail/lrt.el b/leim/quail/lrt.el
index e1ea6ed8d87..7c994944f1f 100644
--- a/leim/quail/lrt.el
+++ b/leim/quail/lrt.el
@@ -1,7 +1,9 @@
1;;; lrt.el --- Quail package for inputting Lao characters by LRT method -*-coding: iso-2022-7bit;-*- 1;;; lrt.el --- Quail package for inputting Lao characters by LRT method -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1998 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 1999
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, input method, Lao, LRT. 8;; Keywords: multilingual, input method, Lao, LRT.
7 9
diff --git a/leim/quail/py-punct.el b/leim/quail/py-punct.el
index a75b453bdcb..b07530963ed 100644
--- a/leim/quail/py-punct.el
+++ b/leim/quail/py-punct.el
@@ -1,8 +1,9 @@
1;;; py-punct.el --- Quail packages for Chinese (pinyin + extra symbols) -*-coding: iso-2022-7bit;-*- 1;;; py-punct.el --- Quail packages for Chinese (pinyin + extra symbols) -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
4;; Licensed to the Free Software Foundation.
5;; Copyright (C) 2001 Free Software Foundation, Inc. 3;; Copyright (C) 2001 Free Software Foundation, Inc.
4;; Copyright (C) 1997, 2000
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
6 7
7;; Author: Ken'ichi HANDA <handa@etl.go.jp> 8;; Author: Ken'ichi HANDA <handa@etl.go.jp>
8 9
diff --git a/leim/quail/pypunct-b5.el b/leim/quail/pypunct-b5.el
index 1d9a6937bb5..b035ea2e6ba 100644
--- a/leim/quail/pypunct-b5.el
+++ b/leim/quail/pypunct-b5.el
@@ -1,7 +1,8 @@
1;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols) 1;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols)
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 2000
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Author: Ken'ichi HANDA <handa@etl.go.jp> 7;; Author: Ken'ichi HANDA <handa@etl.go.jp>
7 8
diff --git a/leim/quail/slovak.el b/leim/quail/slovak.el
index 680f4ef593d..d8114842522 100644
--- a/leim/quail/slovak.el
+++ b/leim/quail/slovak.el
@@ -1,6 +1,6 @@
1;;; slovak.el --- Quail package for inputting Slovak -*-coding: iso-2022-7bit;-*- 1;;; slovak.el --- Quail package for inputting Slovak -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1998, 2001 Free Software Foundation. 3;; Copyright (C) 1998, 2001 Free Software Foundation, Inc.
4 4
5;; Authors: Tibor ,B)(Bimko <tibor.simko@fmph.uniba.sk> 5;; Authors: Tibor ,B)(Bimko <tibor.simko@fmph.uniba.sk>
6;; Milan Zamazal <pdm@zamazal.org> 6;; Milan Zamazal <pdm@zamazal.org>
diff --git a/leim/quail/symbol-ksc.el b/leim/quail/symbol-ksc.el
index 66889250827..6440c389312 100644
--- a/leim/quail/symbol-ksc.el
+++ b/leim/quail/symbol-ksc.el
@@ -1,7 +1,9 @@
1;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601) 1;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601)
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997, 2005 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1997, 1998
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, input method, Korean, Hangul 8;; Keywords: multilingual, input method, Korean, Hangul
7 9
diff --git a/leim/quail/thai.el b/leim/quail/thai.el
index d6d40991c15..579ac35be06 100644
--- a/leim/quail/thai.el
+++ b/leim/quail/thai.el
@@ -1,8 +1,6 @@
1;;; thai.el --- Quail package for inputting Thai characters 1;;; thai.el --- Quail package for inputting Thai characters
2 2
3;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1995, 1997, 1999, 2005
4;; Licensed to the Free Software Foundation.
5;; Copyright (C) 2005
6;; National Institute of Advanced Industrial Science and Technology (AIST) 4;; National Institute of Advanced Industrial Science and Technology (AIST)
7;; Registration Number H14PRO021 5;; Registration Number H14PRO021
8 6
diff --git a/leim/quail/tibetan.el b/leim/quail/tibetan.el
index 9eaea2428fb..c3da8a4a0ff 100644
--- a/leim/quail/tibetan.el
+++ b/leim/quail/tibetan.el
@@ -1,7 +1,9 @@
1;;; tibetan.el --- Quail package for inputting Tibetan characters 1;;; tibetan.el --- Quail package for inputting Tibetan characters
2 2
3;; Copyright (C) 1995 Free Software Foundation, Inc. 3;; Copyright (C) 1995 Free Software Foundation, Inc.
4;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 4;; Copyright (C) 1995, 1998, 1999, 2000
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: multilingual, input method, Tibetan 8;; Keywords: multilingual, input method, Tibetan
7 9
diff --git a/leim/quail/uni-input.el b/leim/quail/uni-input.el
index ba711eb837f..eae6ed01f68 100644
--- a/leim/quail/uni-input.el
+++ b/leim/quail/uni-input.el
@@ -1,6 +1,9 @@
1;;; uni-input.el --- Hex Unicode input method 1;;; uni-input.el --- Hex Unicode input method
2 2
3;; Copyright (C) 2001 Free Software Foundation, Inc. 3;; Copyright (C) 2001, 2003 Free Software Foundation, Inc.
4;; Copyright (C) 2004
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
4 7
5;; Author: Dave Love <fx@gnu.org> 8;; Author: Dave Love <fx@gnu.org>
6;; Keywords: i18n 9;; Keywords: i18n
diff --git a/leim/quail/viqr.el b/leim/quail/viqr.el
index a5181528639..0a7acf42c70 100644
--- a/leim/quail/viqr.el
+++ b/leim/quail/viqr.el
@@ -1,7 +1,8 @@
1;;; viqr.el --- Quail packages for inputting Vietnamese with VIQR system -*-coding: iso-2022-7bit;-*- 1;;; viqr.el --- Quail packages for inputting Vietnamese with VIQR system -*-coding: iso-2022-7bit;-*-
2 2
3;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1997
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: multilingual, input method, latin 7;; Keywords: multilingual, input method, latin
7 8
diff --git a/leim/quail/vntelex.el b/leim/quail/vntelex.el
index 7cd0ed438c1..e2ff88bc25f 100644
--- a/leim/quail/vntelex.el
+++ b/leim/quail/vntelex.el
@@ -1,6 +1,6 @@
1;;; vntelex.el --- Quail package for Vietnamese by Telex method 1;;; vntelex.el --- Quail package for Vietnamese by Telex method
2 2
3;; Copyright (C) 2001, 2002 Free Software Foundation. 3;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
4 4
5;; Author: Werner Lemberg <wl@gnu.org> 5;; Author: Werner Lemberg <wl@gnu.org>
6;; Keywords: multilingual, input method, Vietnamese 6;; Keywords: multilingual, input method, Vietnamese
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 6e9c40d2cca..b3b1757b2e4 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,85 @@
12005-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * log-view.el (log-view-file-re, log-view-message-re): Use shy groups.
4 (log-view-font-lock-keywords): Ajust subgroup numbers.
5 (log-view-current-tag): Don't hard code the number of subgroups.
6
72005-12-20 Juri Linkov <juri@jurta.org>
8
9 * tooltip.el (tooltip): Move defgroup before define-minor-mode.
10 (tooltip-x-offset, tooltip-y-offset): Doc fix.
11
12 * menu-bar.el (menu-bar-menu-frame-live-and-visible-p)
13 (menu-bar-non-minibuffer-window-p): Instead of checking
14 display-multi-frame-p, use selected-frame when menu-updating-frame
15 is nil.
16
172005-12-20 Davis Herring <herring@lanl.gov> (tiny change)
18
19 * align.el (align-rules-list): Use [ \t] instead of \s-
20 for column separators in text mode.
21
222005-12-20 Nick Roberts <nickrob@snap.net.nz>
23
24 * help-mode.el (help-customize-variable, help-customize-face):
25 Don't pop help-xref-stack as help-follow no longer pushes
26 anything on to it.
27
282005-12-20 Carsten Dominik <dominik@science.uva.nl>
29
30 * textmodes/org.el: (org-agenda-custom-commands): New option.
31 (org-agenda): Offer custom commands on splash screen.
32 (org-make-tags-matcher): Parser for Boolean logic added.
33 (org-agenda-set-tags): New command.
34 (org-agenda-menu, org-agenda-mode-map): Add `org-agenda-set-tags'.
35 (org-set-tags): Efficiency improvements.
36 (org-auto-align-tags): New option.
37 (org-todo, org-demote, org-promote): Realign tags.
38 (org-tags-completion-function): Use also "&" and "|" as separators.
39 (org-org-menu): Agenda commands simplified.
40
412005-12-19 Luc Teirlinck <teirllm@auburn.edu>
42
43 * cus-edit.el (customize-apropos, customize-apropos-options):
44 Docstring changes.
45
46 * font-lock.el (font-lock): Add tags to the links in the defgroup.
47
482005-12-19 Chong Yidong <cyd@stupidchicken.com>
49
50 * longlines.el (longlines-mode): Wrap while widened.
51 (longlines-decode-region, longlines-encode-region): Compute max
52 just once.
53
542005-12-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
55
56 * cus-edit.el (mac): New group.
57
58 * cus-start.el (all): Add user options in macterm.c. Add test for
59 Mac-related built-ins. Fix test for GTK-related built-ins.
60
61 * term/mac-win.el (mac-handle-language-change)
62 (mac-ae-open-documents, mac-ae-get-url, mac-services-open-file)
63 (mac-services-open-selection, mac-services-mail-selection)
64 (mac-services-mail-to, mac-services-insert-text)
65 (mac-dispatch-apple-event): Add docstrings.
66 (x-get-selection, mac-select-convert-to-string): Select coding
67 system from `utf-16be' and `utf-16le' using `byteorder'.
68
692005-12-18 Stefan Monnier <monnier@iro.umontreal.ca>
70
71 * subr.el (lazy-completion-table): Don't be fooled if the var holds
72 a "list" (lambda ...) rather than a real completion list.
73
74 * emacs-lisp/cl-extra.el (cl-macroexpand-all): Fix code-walk for
75 lexical-let when encountering ((lambda (...) ...) ...).
76
772005-12-17 Chong Yidong <cyd@stupidchicken.com>
78
79 * progmodes/sh-script.el (sh-mode):
80 * language/ethio-util.el (ethio-fidel-to-sera-mail-or-marker):
81 * textmodes/picture.el (picture-mode): Update docstrings.
82
12005-12-17 Eli Zaretskii <eliz@gnu.org> 832005-12-17 Eli Zaretskii <eliz@gnu.org>
2 84
3 * makefile.w32-in (autoloads, custom-deps): Warn that parts of 85 * makefile.w32-in (autoloads, custom-deps): Warn that parts of
@@ -9,8 +91,8 @@
9 91
102005-12-17 Chong Yidong <cyd@stupidchicken.com> 922005-12-17 Chong Yidong <cyd@stupidchicken.com>
11 93
12 * emacs-lisp/edebug.el (edebug-safe-prin1-to-string): Capture 94 * emacs-lisp/edebug.el (edebug-safe-prin1-to-string):
13 error from printing circular structures. 95 Capture error from printing circular structures.
14 96
152005-12-17 Martin Rudalics <rudalics@gmx.at> (tiny change) 972005-12-17 Martin Rudalics <rudalics@gmx.at> (tiny change)
16 98
@@ -7215,7 +7297,7 @@
72152005-08-26 Kim F. Storm <storm@cua.dk> 72972005-08-26 Kim F. Storm <storm@cua.dk>
7216 7298
7217 * subr.el (version-list-<, version-list-<=, version-list-=): 7299 * subr.el (version-list-<, version-list-<=, version-list-=):
7218 Renamed from integer-list-*. 7300 Rename from integer-list-*.
7219 (version-list-not-zero): Likewise. Fix while loop. 7301 (version-list-not-zero): Likewise. Fix while loop.
7220 (version=): Use version-list-= instead of string-equal. 7302 (version=): Use version-list-= instead of string-equal.
7221 7303
@@ -12362,8 +12444,7 @@
12362 (multiple-value-bind, multiple-value-setq, shiftf): 12444 (multiple-value-bind, multiple-value-setq, shiftf):
12363 Improve argument/docstring consistency. 12445 Improve argument/docstring consistency.
12364 12446
12365 * subr.el (focus-frame, unfocus-frame): 12447 * subr.el (focus-frame, unfocus-frame): Revert deletion on 2005-05-01.
12366 Revert deletion on 2005-05-01.
12367 12448
123682005-05-22 Andre Spiegel <spiegel@gnu.org> 124492005-05-22 Andre Spiegel <spiegel@gnu.org>
12369 12450
@@ -12496,8 +12577,7 @@
12496 (subst-if-not, nsubst, nsubst-if, nsubst-if-not, sublis) 12577 (subst-if-not, nsubst, nsubst-if, nsubst-if-not, sublis)
12497 (nsublis, tree-equal): Improve argument/docstring consistency. 12578 (nsublis, tree-equal): Improve argument/docstring consistency.
12498 12579
12499 * subr.el (send-string, send-region): 12580 * subr.el (send-string, send-region): Remove obsolescence declaration.
12500 Remove obsolescence declaration.
12501 (window-dot, set-window-dot, read-input, show-buffer) 12581 (window-dot, set-window-dot, read-input, show-buffer)
12502 (eval-current-buffer, string-to-int): 12582 (eval-current-buffer, string-to-int):
12503 Add release number to obsolescence declarations. 12583 Add release number to obsolescence declarations.
@@ -12574,8 +12654,8 @@
12574 * emacs-lisp/byte-run.el (eval-when-compile): Doc fix. 12654 * emacs-lisp/byte-run.el (eval-when-compile): Doc fix.
12575 12655
12576 * emacs-lisp/bytecomp.el 12656 * emacs-lisp/bytecomp.el
12577 (byte-compile-file-form-custom-declare-variable): Call 12657 (byte-compile-file-form-custom-declare-variable):
12578 byte-compile-nogroup-warn if appropriate. 12658 Call byte-compile-nogroup-warn if appropriate.
12579 12659
12580 * progmodes/compile.el (compilation-finish-function): Mark obsolete. 12660 * progmodes/compile.el (compilation-finish-function): Mark obsolete.
12581 (compilation-set-window): Don't call left-fringe-p; do it directly. 12661 (compilation-set-window): Don't call left-fringe-p; do it directly.
diff --git a/lisp/align.el b/lisp/align.el
index 122ce2f0f88..f63085011b7 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -559,7 +559,7 @@ The possible settings for `align-region-separate' are:
559 ;; With a numeric prefix argument, or C-u, space delimited text 559 ;; With a numeric prefix argument, or C-u, space delimited text
560 ;; tables will be aligned. 560 ;; tables will be aligned.
561 (text-column 561 (text-column
562 (regexp . "\\(^\\|\\S-\\)\\(\\s-+\\)\\(\\S-\\|$\\)") 562 (regexp . "\\(^\\|\\S-\\)\\([ \t]+\\)\\(\\S-\\|$\\)")
563 (group . 2) 563 (group . 2)
564 (modes . align-text-modes) 564 (modes . align-text-modes)
565 (repeat . t) 565 (repeat . t)
diff --git a/lisp/composite.el b/lisp/composite.el
index 452a9cebca9..a1c84e7b22a 100644
--- a/lisp/composite.el
+++ b/lisp/composite.el
@@ -1,7 +1,8 @@
1;;; composite.el --- support character composition 1;;; composite.el --- support character composition
2 2
3;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1999, 2000
4;; Licensed to the Free Software Foundation. 4;; National Institute of Advanced Industrial Science and Technology (AIST)
5;; Registration Number H14PRO021
5 6
6;; Keywords: mule, multilingual, character composition 7;; Keywords: mule, multilingual, character composition
7 8
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 20a023dee75..43c38e172b5 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -459,6 +459,13 @@
459 :link '(custom-manual "(emacs)Windows") 459 :link '(custom-manual "(emacs)Windows")
460 :group 'environment) 460 :group 'environment)
461 461
462(defgroup mac nil
463 "Mac specific features."
464 :link '(custom-manual "(emacs)Mac OS")
465 :group 'environment
466 :version "22.1"
467 :prefix "mac-")
468
462;;; Utilities. 469;;; Utilities.
463 470
464(defun custom-quote (sexp) 471(defun custom-quote (sexp)
@@ -1258,7 +1265,8 @@ If ALL is `options', include only options.
1258If ALL is `faces', include only faces. 1265If ALL is `faces', include only faces.
1259If ALL is `groups', include only groups. 1266If ALL is `groups', include only groups.
1260If ALL is t (interactively, with prefix arg), include variables 1267If ALL is t (interactively, with prefix arg), include variables
1261that are not customizable options, as well as faces and groups." 1268that are not customizable options, as well as faces and groups
1269\(but we recommend using `apropos-variable' instead)."
1262 (interactive "sCustomize regexp: \nP") 1270 (interactive "sCustomize regexp: \nP")
1263 (let ((found nil)) 1271 (let ((found nil))
1264 (mapatoms (lambda (symbol) 1272 (mapatoms (lambda (symbol)
@@ -1286,7 +1294,8 @@ that are not customizable options, as well as faces and groups."
1286;;;###autoload 1294;;;###autoload
1287(defun customize-apropos-options (regexp &optional arg) 1295(defun customize-apropos-options (regexp &optional arg)
1288 "Customize all loaded customizable options matching REGEXP. 1296 "Customize all loaded customizable options matching REGEXP.
1289With prefix arg, include variables that are not customizable options." 1297With prefix arg, include variables that are not customizable options
1298\(but we recommend using `apropos-variable' instead)."
1290 (interactive "sCustomize regexp: \nP") 1299 (interactive "sCustomize regexp: \nP")
1291 (customize-apropos regexp (or arg 'options))) 1300 (customize-apropos regexp (or arg 'options)))
1292 1301
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 73e1dff5a44..65f9c0812fd 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -194,6 +194,33 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
194 (suggest-key-bindings keyboard (choice (const :tag "off" nil) 194 (suggest-key-bindings keyboard (choice (const :tag "off" nil)
195 (integer :tag "time" 2) 195 (integer :tag "time" 2)
196 (other :tag "on"))) 196 (other :tag "on")))
197 ;; macterm.c
198 (mac-control-modifier mac (choice (const :tag "No modifier" nil)
199 (const control) (const meta)
200 (const alt) (const hyper)
201 (const super)) "22.1")
202 (mac-command-modifier mac (choice (const :tag "No modifier" nil)
203 (const control) (const meta)
204 (const alt) (const hyper)
205 (const super)) "22.1")
206 (mac-option-modifier mac (choice (const :tag "No modifier (work as option)" nil)
207 (const control) (const meta)
208 (const alt) (const hyper)
209 (const super)) "22.1")
210 (mac-function-modifier mac
211 (choice (const :tag "No modifier (work as function)" nil)
212 (const control) (const meta)
213 (const alt) (const hyper)
214 (const super)) "22.1")
215 (mac-emulate-three-button-mouse mac
216 (choice (const :tag "No emulation" nil)
217 (const :tag "Option->2, Command->3" t)
218 (const :tag "Command->2, Option->3" reverse))
219 "22.1")
220 (mac-wheel-button-is-mouse-2 mac boolean "22.1")
221 (mac-pass-command-to-system mac boolean "22.1")
222 (mac-pass-control-to-system mac boolean "22.1")
223 (mac-allow-anti-aliasing mac boolean "22.1")
197 224
198;; This is not good news because it will use the wrong 225;; This is not good news because it will use the wrong
199;; version-specific directories when you upgrade. We need 226;; version-specific directories when you upgrade. We need
@@ -366,6 +393,8 @@ since it could result in memory overflow and make Emacs crash."
366 (eq system-type 'ms-dos)) 393 (eq system-type 'ms-dos))
367 ((string-match "\\`w32-" (symbol-name symbol)) 394 ((string-match "\\`w32-" (symbol-name symbol))
368 (eq system-type 'windows-nt)) 395 (eq system-type 'windows-nt))
396 ((string-match "\\`mac-" (symbol-name symbol))
397 (eq window-system 'mac))
369 ((string-match "\\`x-.*gtk" (symbol-name symbol)) 398 ((string-match "\\`x-.*gtk" (symbol-name symbol))
370 (featurep 'gtk)) 399 (featurep 'gtk))
371 ((string-match "\\`x-" (symbol-name symbol)) 400 ((string-match "\\`x-" (symbol-name symbol))
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 4ac1a72b0d7..c5a006912df 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -743,6 +743,11 @@ This also does some trivial optimizations to make the form prettier."
743 (let* ((args (cl-macroexpand-body (cdr form) env)) (p args)) 743 (let* ((args (cl-macroexpand-body (cdr form) env)) (p args))
744 (while (and p (symbolp (car p))) (setq p (cddr p))) 744 (while (and p (symbolp (car p))) (setq p (cddr p)))
745 (if p (cl-macroexpand-all (cons 'setf args)) (cons 'setq args)))) 745 (if p (cl-macroexpand-all (cons 'setf args)) (cons 'setq args))))
746 ((consp (car form))
747 (cl-macroexpand-all (list* 'funcall
748 (list 'function (car form))
749 (cdr form))
750 env))
746 (t (cons (car form) (cl-macroexpand-body (cdr form) env))))) 751 (t (cons (car form) (cl-macroexpand-body (cdr form) env)))))
747 752
748(defun cl-macroexpand-body (body &optional env) 753(defun cl-macroexpand-body (body &optional env)
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 58fdf6dd809..45feee19744 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -212,8 +212,8 @@
212;; Define core `font-lock' group. 212;; Define core `font-lock' group.
213(defgroup font-lock '((jit-lock custom-group)) 213(defgroup font-lock '((jit-lock custom-group))
214 "Font Lock mode text highlighting package." 214 "Font Lock mode text highlighting package."
215 :link '(custom-manual "(emacs)Font Lock") 215 :link '(custom-manual :tag "Emacs Manual" "(emacs)Font Lock")
216 :link '(custom-manual "(elisp)Font Lock Mode") 216 :link '(custom-manual :tag "Elisp Manual" "(elisp)Font Lock Mode")
217 :group 'faces) 217 :group 'faces)
218 218
219(defgroup font-lock-faces nil 219(defgroup font-lock-faces nil
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index b7cea179aea..9941f0604bd 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -136,16 +136,12 @@ The format is (FUNCTION ARGS...).")
136(define-button-type 'help-customize-variable 136(define-button-type 'help-customize-variable
137 :supertype 'help-xref 137 :supertype 'help-xref
138 'help-function (lambda (v) 138 'help-function (lambda (v)
139 (if help-xref-stack
140 (pop help-xref-stack))
141 (customize-variable v)) 139 (customize-variable v))
142 'help-echo (purecopy "mouse-2, RET: customize variable")) 140 'help-echo (purecopy "mouse-2, RET: customize variable"))
143 141
144(define-button-type 'help-customize-face 142(define-button-type 'help-customize-face
145 :supertype 'help-xref 143 :supertype 'help-xref
146 'help-function (lambda (v) 144 'help-function (lambda (v)
147 (if help-xref-stack
148 (pop help-xref-stack))
149 (customize-face v)) 145 (customize-face v))
150 'help-echo (purecopy "mouse-2, RET: customize face")) 146 'help-echo (purecopy "mouse-2, RET: customize face"))
151 147
diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el
index fb70b2641d0..413ad3c3183 100644
--- a/lisp/language/ethio-util.el
+++ b/lisp/language/ethio-util.el
@@ -824,7 +824,7 @@ Delete the escape even it is not recognized."
824 824
825;;;###autoload 825;;;###autoload
826(defun ethio-sera-to-fidel-mail-or-marker (&optional arg) 826(defun ethio-sera-to-fidel-mail-or-marker (&optional arg)
827 "Execute ethio-sera-to-fidel-mail or ethio-sera-to-fidel-marker depending on the current major mode. 827 "Execute `ethio-sera-to-fidel-mail' or `ethio-sera-to-fidel-marker' depending on the current major mode.
828If in rmail-mode or in mail-mode, execute the former; otherwise latter." 828If in rmail-mode or in mail-mode, execute the former; otherwise latter."
829 829
830 (interactive "P") 830 (interactive "P")
@@ -1214,7 +1214,7 @@ See also the descriptions of the variables
1214 1214
1215;;;###autoload 1215;;;###autoload
1216(defun ethio-fidel-to-sera-mail-or-marker (&optional arg) 1216(defun ethio-fidel-to-sera-mail-or-marker (&optional arg)
1217 "Execute ethio-fidel-to-sera-mail or ethio-fidel-to-sera-marker depending on the current major mode. 1217 "Execute `ethio-fidel-to-sera-mail' or `ethio-fidel-to-sera-marker' depending on the current major mode.
1218If in rmail-mode or in mail-mode, execute the former; otherwise latter." 1218If in rmail-mode or in mail-mode, execute the former; otherwise latter."
1219 1219
1220 (interactive "P") 1220 (interactive "P")
diff --git a/lisp/log-view.el b/lisp/log-view.el
index 6a9464005fb..9249531129b 100644
--- a/lisp/log-view.el
+++ b/lisp/log-view.el
@@ -25,11 +25,36 @@
25 25
26;;; Commentary: 26;;; Commentary:
27 27
28;; Todo: 28;; Major mode to browse revision log histories.
29;; Currently supports the format output by:
30;; RCS, SCCS, CVS, Subversion.
31
32;; Examples of log output:
33
34;;;; RCS/CVS:
35
36;; ----------------------------
37;; revision 1.35 locked by: turlutut
38;; date: 2005-03-22 18:48:38 +0000; author: monnier; state: Exp; lines: +6 -8
39;; (gnus-display-time-event-handler):
40;; Check display-time-timer at runtime rather than only at load time
41;; in case display-time-mode is turned off in the mean time.
42;; ----------------------------
43;; revision 1.34
44;; date: 2005-02-09 15:50:38 +0000; author: kfstorm; state: Exp; lines: +7 -7
45;; branches: 1.34.2;
46;; Change release version from 21.4 to 22.1 throughout.
47;; Change development version from 21.3.50 to 22.0.50.
48
49;;;; SCCS:
50
51;;;; Subversion:
52
53;;; Todo:
29 54
30;; - add compatibility with cvs-log.el
31;; - add ability to modify a log-entry (via cvs-mode-admin ;-) 55;; - add ability to modify a log-entry (via cvs-mode-admin ;-)
32;; - remove references to cvs-* 56;; - remove references to cvs-*
57;; - make it easier to add support for new backends without changing the code.
33 58
34;;; Code: 59;;; Code:
35 60
@@ -87,17 +112,20 @@
87(defvar log-view-message-face 'log-view-message) 112(defvar log-view-message-face 'log-view-message)
88 113
89(defconst log-view-file-re 114(defconst log-view-file-re
90 (concat "^\\(" 115 (concat "^\\(?:Working file: \\(.+\\)" ;RCS and CVS.
91 "Working file: \\(.+\\)" 116 "\\|SCCS/s\\.\\(.+\\):" ;SCCS.
92 "\\|SCCS/s\\.\\(.+\\):" 117 "\\)\n")) ;Include the \n for font-lock reasons.
93 "\\)\n")) 118
94;; In RCS, a locked revision will look like "revision N.M\tlocked by: FOO". 119(defconst log-view-message-re
95(defconst log-view-message-re "^\\(revision \\([.0-9]+\\)\\(?:\t.*\\)?\\|r\\([0-9]+\\) | .* | .*\\|D \\([.0-9]+\\) .*\\)$") 120 (concat "^\\(?:revision \\([.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS.
121 "\\|r\\([0-9]+\\) | .* | .*" ; Subversion.
122 "\\|D \\([.0-9]+\\) .*" ; SCCS.
123 "\\)$"))
96 124
97(defconst log-view-font-lock-keywords 125(defconst log-view-font-lock-keywords
98 `((,log-view-file-re 126 `((,log-view-file-re
127 (1 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t)
99 (2 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) 128 (2 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t)
100 (3 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t)
101 (0 log-view-file-face append)) 129 (0 log-view-file-face append))
102 (,log-view-message-re . log-view-message-face))) 130 (,log-view-message-re . log-view-message-face)))
103(defconst log-view-font-lock-defaults 131(defconst log-view-font-lock-defaults
@@ -158,10 +186,17 @@
158 (forward-line 1) 186 (forward-line 1)
159 (let ((pt (point))) 187 (let ((pt (point)))
160 (when (re-search-backward log-view-message-re nil t) 188 (when (re-search-backward log-view-message-re nil t)
161 (let ((rev (or (match-string 2) (match-string 3) (match-string 4)))) 189 (let (rev)
190 ;; Find the subgroup that matched.
191 (dotimes (i (/ (match-data 'integers) 2))
192 (setq rev (or rev (match-string (1+ i)))))
162 (unless (re-search-forward log-view-file-re pt t) 193 (unless (re-search-forward log-view-file-re pt t)
163 rev)))))) 194 rev))))))
164 195
196(defvar cvs-minor-current-files)
197(defvar cvs-branch-prefix)
198(defvar cvs-secondary-branch-prefix)
199
165(defun log-view-minor-wrap (buf f) 200(defun log-view-minor-wrap (buf f)
166 (let ((data (with-current-buffer buf 201 (let ((data (with-current-buffer buf
167 (cons 202 (cons
diff --git a/lisp/longlines.el b/lisp/longlines.el
index a3912a26ca7..dadd8a5d58f 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -1,6 +1,6 @@
1;;; longlines.el --- automatically wrap long lines 1;;; longlines.el --- automatically wrap long lines
2 2
3;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
4 4
5;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> 5;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
6;; Alex Schroeder <alex@gnu.org> 6;; Alex Schroeder <alex@gnu.org>
@@ -111,7 +111,7 @@ are indicated with a symbol."
111 (add-hook 'before-revert-hook 'longlines-before-revert-hook nil t) 111 (add-hook 'before-revert-hook 'longlines-before-revert-hook nil t)
112 (make-local-variable 'buffer-substring-filters) 112 (make-local-variable 'buffer-substring-filters)
113 (set (make-local-variable 'isearch-search-fun-function) 113 (set (make-local-variable 'isearch-search-fun-function)
114 'longlinges-search-function) 114 'longlines-search-function)
115 (add-to-list 'buffer-substring-filters 'longlines-encode-string) 115 (add-to-list 'buffer-substring-filters 'longlines-encode-string)
116 (when longlines-wrap-follows-window-size 116 (when longlines-wrap-follows-window-size
117 (set (make-local-variable 'fill-column) 117 (set (make-local-variable 'fill-column)
@@ -127,8 +127,8 @@ are indicated with a symbol."
127 ;; longlines-wrap-lines that we'll never encounter from here 127 ;; longlines-wrap-lines that we'll never encounter from here
128 (save-restriction 128 (save-restriction
129 (widen) 129 (widen)
130 (longlines-decode-buffer)) 130 (longlines-decode-buffer)
131 (longlines-wrap-region (point-min) (point-max)) 131 (longlines-wrap-region (point-min) (point-max)))
132 (set-buffer-modified-p mod)) 132 (set-buffer-modified-p mod))
133 (when (and longlines-show-hard-newlines 133 (when (and longlines-show-hard-newlines
134 (not longlines-showing)) 134 (not longlines-showing))
@@ -166,7 +166,6 @@ are indicated with a symbol."
166 (widen) 166 (widen)
167 (longlines-encode-region (point-min) (point-max)))) 167 (longlines-encode-region (point-min) (point-max))))
168 (remove-hook 'change-major-mode-hook 'longlines-mode-off t) 168 (remove-hook 'change-major-mode-hook 'longlines-mode-off t)
169 (remove-hook 'before-kill-functions 'longlines-encode-region t)
170 (remove-hook 'after-change-functions 'longlines-after-change-function t) 169 (remove-hook 'after-change-functions 'longlines-after-change-function t)
171 (remove-hook 'post-command-hook 'longlines-post-command-function t) 170 (remove-hook 'post-command-hook 'longlines-post-command-function t)
172 (remove-hook 'before-revert-hook 'longlines-before-revert-hook t) 171 (remove-hook 'before-revert-hook 'longlines-before-revert-hook t)
@@ -327,10 +326,11 @@ If BEG and END are nil, the point and mark are used."
327 (if (null beg) (setq beg (point))) 326 (if (null beg) (setq beg (point)))
328 (if (null end) (setq end (mark t))) 327 (if (null end) (setq end (mark t)))
329 (save-excursion 328 (save-excursion
330 (goto-char (min beg end)) 329 (let ((reg-max (max beg end)))
331 (while (search-forward "\n" (max beg end) t) 330 (goto-char (min beg end))
332 (set-hard-newline-properties 331 (while (search-forward "\n" reg-max t)
333 (match-beginning 0) (match-end 0))))) 332 (set-hard-newline-properties
333 (match-beginning 0) (match-end 0))))))
334 334
335(defun longlines-decode-buffer () 335(defun longlines-decode-buffer ()
336 "Turn all newlines in the buffer into hard newlines." 336 "Turn all newlines in the buffer into hard newlines."
@@ -341,9 +341,10 @@ If BEG and END are nil, the point and mark are used."
341Hard newlines are left intact. The optional argument BUFFER exists for 341Hard newlines are left intact. The optional argument BUFFER exists for
342compatibility with `format-alist', and is ignored." 342compatibility with `format-alist', and is ignored."
343 (save-excursion 343 (save-excursion
344 (let ((mod (buffer-modified-p))) 344 (let ((reg-max (max beg end))
345 (mod (buffer-modified-p)))
345 (goto-char (min beg end)) 346 (goto-char (min beg end))
346 (while (search-forward "\n" (max (max beg end)) t) 347 (while (search-forward "\n" reg-max t)
347 (unless (get-text-property (match-beginning 0) 'hard) 348 (unless (get-text-property (match-beginning 0) 'hard)
348 (replace-match " "))) 349 (replace-match " ")))
349 (set-buffer-modified-p mod) 350 (set-buffer-modified-p mod)
@@ -422,7 +423,7 @@ This is called by `window-size-change-functions'."
422 423
423;; Isearch 424;; Isearch
424 425
425(defun longlinges-search-function () 426(defun longlines-search-function ()
426 (cond 427 (cond
427 (isearch-word 428 (isearch-word
428 (if isearch-forward 'word-search-forward 'word-search-backward)) 429 (if isearch-forward 'word-search-forward 'word-search-backward))
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 6fa8c8b0f03..afc207bc9f0 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1418,8 +1418,7 @@ key, a click, or a menu-item"))
1418(defun menu-bar-menu-frame-live-and-visible-p () 1418(defun menu-bar-menu-frame-live-and-visible-p ()
1419 "Return non-nil if the menu frame is alive and visible. 1419 "Return non-nil if the menu frame is alive and visible.
1420The menu frame is the frame for which we are updating the menu." 1420The menu frame is the frame for which we are updating the menu."
1421 (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame 1421 (let ((menu-frame (or menu-updating-frame (selected-frame))))
1422 (selected-frame))))
1423 (and (frame-live-p menu-frame) 1422 (and (frame-live-p menu-frame)
1424 (frame-visible-p menu-frame)))) 1423 (frame-visible-p menu-frame))))
1425 1424
@@ -1428,8 +1427,7 @@ The menu frame is the frame for which we are updating the menu."
1428 1427
1429See the documentation of `menu-bar-menu-frame-live-and-visible-p' 1428See the documentation of `menu-bar-menu-frame-live-and-visible-p'
1430for the definition of the menu frame." 1429for the definition of the menu frame."
1431 (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame 1430 (let ((menu-frame (or menu-updating-frame (selected-frame))))
1432 (selected-frame))))
1433 (not (window-minibuffer-p (frame-selected-window menu-frame))))) 1431 (not (window-minibuffer-p (frame-selected-window menu-frame)))))
1434 1432
1435(defun kill-this-buffer () ; for the menu bar 1433(defun kill-this-buffer () ; for the menu bar
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 33f016bb2f9..dce4b1def32 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,68 @@
12005-12-19 Stephen Gildea
2
3 * mh-customize.el (mh-after-commands-processed-hook): New variable.
4 (mh-before-commands-processed-hook): mh-folder-updated-hook, renamed.
5
6 * mh-e.el (mh-process-commands): Rename mh-folder-updated-hook
7 to mh-before-commands-processed-hook, call new
8 mh-after-commands-processed-hook.
9 (mh-folders-changed): New variable (for use in
10 mh-after-commands-processed-hook).
11
122005-12-19 Bill Wohler <wohler@newt.com>
13
14 * mh-acros.el:
15 * mh-alias.el:
16 * mh-comp.el:
17 * mh-customize.el:
18 * mh-e.el:
19 * mh-funcs.el:
20 * mh-gnus.el:
21 * mh-identity.el:
22 * mh-inc.el:
23 * mh-index.el:
24 * mh-init.el:
25 * mh-junk.el:
26 * mh-mime.el:
27 * mh-pick.el:
28 * mh-print.el:
29 * mh-seq.el:
30 * mh-speed.el:
31 * mh-utils.el:
32 Follow commenting conventions. Don't use ;;; form so much, except
33 for headings. Precede headings with page feed. This was mostly
34 already done, so I made it a convention. Did not update copyright
35 on a couple of files since this was an insignificant change.
36
372005-12-18 Bill Wohler <wohler@newt.com>
38
39 * mh-customize.el (mh-toolbar): Rename to mh-tool-bar.
40 (mh-tool-bar-search-function): Sync docstrings with manual.
41 (mh-tool-bar-customize): Replace toolbar with tool bar in
42 docstring.
43 (mh-tool-bar-letter-help): Fix manual reference.
44 (mh-xemacs-use-toolbar-flag): Rename to
45 mh-xemacs-use-tool-bar-flag. Initialize to
46 mh-xemacs-has-tool-bar-flag. Sync docstrings with manual.
47 (mh-xemacs-toolbar-position): Rename to
48 mh-xemacs-tool-bar-position. Initialize to nil. Drop "no tool bar"
49 option (redundant) and change "Same As Default Tool Bar" setting
50 to nil. Sync docstrings with manual.
51 (mh-tool-bar-define): Replace toolbar with tool-bar or tool bar
52 depending on context.
53 (mh-toolbar-init): Rename to mh-tool-bar-init. Simplified
54 condition for calling set-specifier. Only look at the value of
55 mh-xemacs-use-tool-bar-flag.
56 (mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons): Sync
57 docstrings with manual.
58
59 * mh-comp.el (mh-letter-mode): Use mh-tool-bar-init instead of
60 mh-toolbar-init.
61
62 * mh-e.el (mh-folder-mode): Ditto.
63
64 * mh-utils.el (mh-show-mode): Ditto.
65
12005-12-15 Bill Wohler <wohler@newt.com> 662005-12-15 Bill Wohler <wohler@newt.com>
2 67
3 * mh-e.el (mh-delete-msg): Sync docstrings with manual. 68 * mh-e.el (mh-delete-msg): Sync docstrings with manual.
diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el
index 8136c56ca90..5523f1cf46b 100644
--- a/lisp/mh-e/mh-acros.el
+++ b/lisp/mh-e/mh-acros.el
@@ -55,7 +55,7 @@ recognizes that and loads `cl' where appropriate."
55 `(require 'cl) 55 `(require 'cl)
56 `(eval-when-compile (require 'cl)))) 56 `(eval-when-compile (require 'cl))))
57 57
58;;; Macros to generate correct code for different emacs variants 58;; Macros to generate correct code for different emacs variants
59 59
60(defmacro mh-do-in-gnu-emacs (&rest body) 60(defmacro mh-do-in-gnu-emacs (&rest body)
61 "Execute BODY if in GNU Emacs." 61 "Execute BODY if in GNU Emacs."
@@ -144,11 +144,11 @@ Emacs 22."
144 144
145(provide 'mh-acros) 145(provide 'mh-acros)
146 146
147;;; Local Variables: 147;; Local Variables:
148;;; no-byte-compile: t 148;; no-byte-compile: t
149;;; indent-tabs-mode: nil 149;; indent-tabs-mode: nil
150;;; sentence-end-double-space: nil 150;; sentence-end-double-space: nil
151;;; End: 151;; End:
152 152
153;; arch-tag: b383b49a-494f-4ed0-a30a-cb6d5d2da4ff 153;; arch-tag: b383b49a-494f-4ed0-a30a-cb6d5d2da4ff
154;;; mh-acros.el ends here 154;;; mh-acros.el ends here
diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el
index 5367d2cbc18..f82a0ea24dc 100644
--- a/lisp/mh-e/mh-alias.el
+++ b/lisp/mh-e/mh-alias.el
@@ -38,7 +38,10 @@
38 ; completing-read-multiple. 38 ; completing-read-multiple.
39(eval-when-compile (defvar mail-abbrev-syntax-table)) 39(eval-when-compile (defvar mail-abbrev-syntax-table))
40 40
41
42
41;;; Autoloads 43;;; Autoloads
44
42(eval-when (compile load eval) 45(eval-when (compile load eval)
43 (ignore-errors 46 (ignore-errors
44 (require 'mailabbrev) 47 (require 'mailabbrev)
@@ -71,6 +74,7 @@ listed in your `Aliasfile:' MH profile component are automatically included.
71You can update the alias list manually using \\[mh-alias-reload].") 74You can update the alias list manually using \\[mh-alias-reload].")
72 75
73 76
77
74;;; Alias Loading 78;;; Alias Loading
75 79
76(defun mh-alias-tstamp (arg) 80(defun mh-alias-tstamp (arg)
@@ -228,6 +232,7 @@ with no arguments, after the aliases have been loaded."
228 (mh-alias-reload))) 232 (mh-alias-reload)))
229 233
230 234
235
231;;; Alias Expansion 236;;; Alias Expansion
232 237
233(defun mh-alias-ali (alias &optional user) 238(defun mh-alias-ali (alias &optional user)
@@ -312,6 +317,7 @@ Blind aliases or users from /etc/passwd are not expanded."
312 (delete-region begin end) 317 (delete-region begin end)
313 (insert expansion))))) 318 (insert expansion)))))
314 319
320
315;;; Adding addresses to alias file. 321;;; Adding addresses to alias file.
316 322
317(defun mh-alias-suggest-alias (string &optional no-comma-swap) 323(defun mh-alias-suggest-alias (string &optional no-comma-swap)
@@ -653,10 +659,10 @@ name hint when filing messages."
653 659
654(provide 'mh-alias) 660(provide 'mh-alias)
655 661
656;;; Local Variables: 662;; Local Variables:
657;;; indent-tabs-mode: nil 663;; indent-tabs-mode: nil
658;;; sentence-end-double-space: nil 664;; sentence-end-double-space: nil
659;;; End: 665;; End:
660 666
661;;; arch-tag: 49879e46-5aa3-4569-bece-e5a58731d690 667;; arch-tag: 49879e46-5aa3-4569-bece-e5a58731d690
662;;; mh-alias.el ends here 668;;; mh-alias.el ends here
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index 5cac13d265b..47999fbbeff 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -52,7 +52,9 @@
52(defvar mh-mml-mode-default) 52(defvar mh-mml-mode-default)
53(defvar mh-identity-menu) 53(defvar mh-identity-menu)
54 54
55
55;;; Autoloads 56;;; Autoloads
57
56(autoload 'mail-mode-fill-paragraph "sendmail") 58(autoload 'mail-mode-fill-paragraph "sendmail")
57(autoload 'mm-handle-displayed-p "mm-decode") 59(autoload 'mm-handle-displayed-p "mm-decode")
58 60
@@ -80,6 +82,8 @@ For Emacs 19's, the region need not be active (and typically isn't
80when this function is called. Also, the hook `sc-pre-hook' is run 82when this function is called. Also, the hook `sc-pre-hook' is run
81before, and `sc-post-hook' is run after the guts of this function.") 83before, and `sc-post-hook' is run after the guts of this function.")
82 84
85
86
83;;; Site customization (see also mh-utils.el): 87;;; Site customization (see also mh-utils.el):
84 88
85(defvar mh-send-prog "send" 89(defvar mh-send-prog "send"
@@ -91,6 +95,8 @@ Some sites need to change this because of a name conflict.")
91This allows transaction log to be visible if -watch, -verbose or -snoop are 95This allows transaction log to be visible if -watch, -verbose or -snoop are
92used.") 96used.")
93 97
98
99
94;;; Scan Line Formats 100;;; Scan Line Formats
95 101
96(defvar mh-note-repl ?- 102(defvar mh-note-repl ?-
@@ -824,7 +830,7 @@ Returns t if found, nil if not."
824 830
825(put 'mh-letter-mode 'mode-class 'special) 831(put 'mh-letter-mode 'mode-class 'special)
826 832
827;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) 833;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
828(eval-when-compile (defvar mh-letter-menu nil)) 834(eval-when-compile (defvar mh-letter-menu nil))
829(easy-menu-define 835(easy-menu-define
830 mh-letter-menu mh-letter-mode-map "Menu for MH-E letter mode." 836 mh-letter-menu mh-letter-mode-map "Menu for MH-E letter mode."
@@ -874,8 +880,11 @@ Returns t if found, nil if not."
874 mh-mh-to-mime-undo (equal mh-compose-insertion 'mh)] 880 mh-mh-to-mime-undo (equal mh-compose-insertion 'mh)]
875 ["Kill This Draft" mh-fully-kill-draft t])) 881 ["Kill This Draft" mh-fully-kill-draft t]))
876 882
883
884
877;;; Help Messages 885;;; Help Messages
878;;; Group messages logically, more or less. 886
887;; Group messages logically, more or less.
879(defvar mh-letter-mode-help-messages 888(defvar mh-letter-mode-help-messages
880 '((nil 889 '((nil
881 "Send letter: \\[mh-send-letter]" 890 "Send letter: \\[mh-send-letter]"
@@ -994,7 +1003,7 @@ When a message is composed, the hooks `text-mode-hook' and
994 ;; Enable undo since a show-mode buffer might have been reused. 1003 ;; Enable undo since a show-mode buffer might have been reused.
995 (buffer-enable-undo) 1004 (buffer-enable-undo)
996 (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map) 1005 (set (make-local-variable 'tool-bar-map) mh-letter-tool-bar-map)
997 (mh-funcall-if-exists mh-toolbar-init :letter) 1006 (mh-funcall-if-exists mh-tool-bar-init :letter)
998 (make-local-variable 'font-lock-defaults) 1007 (make-local-variable 'font-lock-defaults)
999 (cond 1008 (cond
1000 ((or (equal mh-highlight-citation-style 'font-lock) 1009 ((or (equal mh-highlight-citation-style 'font-lock)
@@ -2026,8 +2035,11 @@ Otherwise return the empty string."
2026 (goto-char (point-max)) 2035 (goto-char (point-max))
2027 (mh-letter-next-header-field))) 2036 (mh-letter-next-header-field)))
2028 2037
2029;;; Build the letter-mode keymap: 2038
2030;;; If this changes, modify mh-letter-mode-help-messages accordingly, above. 2039
2040;;; Build mh-letter-mode keymap
2041
2042;; If this changes, modify mh-letter-mode-help-messages accordingly, above.
2031(gnus-define-keys mh-letter-mode-map 2043(gnus-define-keys mh-letter-mode-map
2032 " " mh-letter-complete-or-space 2044 " " mh-letter-complete-or-space
2033 "," mh-letter-confirm-address 2045 "," mh-letter-confirm-address
@@ -2089,10 +2101,10 @@ Otherwise return the empty string."
2089 2101
2090(provide 'mh-comp) 2102(provide 'mh-comp)
2091 2103
2092;;; Local Variables: 2104;; Local Variables:
2093;;; indent-tabs-mode: nil 2105;; indent-tabs-mode: nil
2094;;; sentence-end-double-space: nil 2106;; sentence-end-double-space: nil
2095;;; End: 2107;; End:
2096 2108
2097;;; arch-tag: 62865511-e610-4923-b0b5-f45a8ab70a34 2109;; arch-tag: 62865511-e610-4923-b0b5-f45a8ab70a34
2098;;; mh-comp.el ends here 2110;;; mh-comp.el ends here
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el
index e07603f69ba..0e22e38a742 100644
--- a/lisp/mh-e/mh-customize.el
+++ b/lisp/mh-e/mh-customize.el
@@ -83,6 +83,11 @@
83 (require 'mh-init) 83 (require 'mh-init)
84 (require 'mh-identity)) 84 (require 'mh-identity))
85 85
86;; For compiler warnings...
87(eval-when-compile
88 (defvar mh-show-buffer)
89 (defvar mh-show-folder-buffer))
90
86(defun mh-customize (&optional delete-other-windows-flag) 91(defun mh-customize (&optional delete-other-windows-flag)
87 "Customize MH-E variables. 92 "Customize MH-E variables.
88If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in 93If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in
@@ -94,11 +99,6 @@ the frame are removed."
94 99
95 100
96 101
97;;; For compiler warnings...
98(eval-when-compile
99 (defvar mh-show-buffer)
100 (defvar mh-show-folder-buffer))
101
102;;; MH-E Customization Groups 102;;; MH-E Customization Groups
103 103
104(defgroup mh-e nil 104(defgroup mh-e nil
@@ -198,9 +198,9 @@ mailutils."
198 :link '(custom-manual "(mh-e)Threading") 198 :link '(custom-manual "(mh-e)Threading")
199 :group 'mh-e) 199 :group 'mh-e)
200 200
201(defgroup mh-toolbar nil 201(defgroup mh-tool-bar nil
202 "The toolbar" 202 "The tool bar"
203 :link '(custom-manual "(mh-e)Toolbar") 203 :link '(custom-manual "(mh-e)Tool Bar")
204 :prefix "mh-" 204 :prefix "mh-"
205 :group 'mh-e) 205 :group 'mh-e)
206 206
@@ -217,6 +217,8 @@ mailutils."
217 :prefix "mh-" 217 :prefix "mh-"
218 :group 'mh-e) 218 :group 'mh-e)
219 219
220
221
220;;; Faces 222;;; Faces
221 223
222(defgroup mh-folder-faces nil 224(defgroup mh-folder-faces nil
@@ -998,7 +1000,7 @@ default). If you need to scan just the message 200, then use the range
998 1000
999;;; Scan Line Formats (:group 'mh-scan-line-formats) 1001;;; Scan Line Formats (:group 'mh-scan-line-formats)
1000 1002
1001;;; Forward definition to avoid compiler and runtime error. 1003;; Forward definition to avoid compiler and runtime error.
1002(defvar mh-scan-format-file t) 1004(defvar mh-scan-format-file t)
1003 1005
1004(defun mh-adaptive-cmd-note-flag-check (symbol value) 1006(defun mh-adaptive-cmd-note-flag-check (symbol value)
@@ -1163,9 +1165,9 @@ See also `mh-reply'."
1163 1165
1164;;; Sequences (:group 'mh-sequences) 1166;;; Sequences (:group 'mh-sequences)
1165 1167
1166;;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to 1168;; If `mh-unpropagated-sequences' becomes a defcustom, add the following to
1167;;; the docstring: "Additional sequences that should not to be preserved can be 1169;; the docstring: "Additional sequences that should not to be preserved can be
1168;;; specified by setting `mh-unpropagated-sequences' appropriately." XXX 1170;; specified by setting `mh-unpropagated-sequences' appropriately." XXX
1169 1171
1170(defcustom mh-refile-preserves-sequences-flag t 1172(defcustom mh-refile-preserves-sequences-flag t
1171 "*Non-nil means that sequences are preserved when messages are refiled. 1173 "*Non-nil means that sequences are preserved when messages are refiled.
@@ -1801,15 +1803,18 @@ only if the number of messages being threaded is less than `mh-large-folder'."
1801 1803
1802 1804
1803 1805
1804;;; The Toolbar (:group 'mh-toolbar) 1806;;; The Tool Bar (:group 'mh-tool-bar)
1805 1807
1806(defcustom mh-tool-bar-search-function 'mh-search-folder 1808(defcustom mh-tool-bar-search-function 'mh-search-folder
1807 "*Function called by the tool-bar search button. 1809 "*Function called by the tool bar search button.
1808See `mh-search-folder' and `mh-index-search' for details." 1810
1811Available functions include `mh-search-folder', the default, and
1812`mh-index-search'. You can also choose \"Other Function\" from the \"Value
1813Menu\" and enter a function of your own choosing."
1809 :type '(choice (const mh-search-folder) 1814 :type '(choice (const mh-search-folder)
1810 (const mh-index-search) 1815 (const mh-index-search)
1811 (function :tag "Other function")) 1816 (function :tag "Other Function"))
1812 :group 'mh-toolbar) 1817 :group 'mh-tool-bar)
1813 1818
1814;; Functions called from the tool bar 1819;; Functions called from the tool bar
1815(defun mh-tool-bar-search (&optional arg) 1820(defun mh-tool-bar-search (&optional arg)
@@ -1819,7 +1824,7 @@ Optional argument ARG is not used."
1819 (call-interactively mh-tool-bar-search-function)) 1824 (call-interactively mh-tool-bar-search-function))
1820 1825
1821(defun mh-tool-bar-customize () 1826(defun mh-tool-bar-customize ()
1822 "Call `mh-customize' from the toolbar." 1827 "Call `mh-customize' from the tool bar."
1823 (interactive) 1828 (interactive)
1824 (mh-customize t)) 1829 (mh-customize t))
1825 1830
@@ -1830,9 +1835,9 @@ Optional argument ARG is not used."
1830 (delete-other-windows)) 1835 (delete-other-windows))
1831 1836
1832(defun mh-tool-bar-letter-help () 1837(defun mh-tool-bar-letter-help ()
1833 "Visit \"(mh-e)Draft Editing\"." 1838 "Visit \"(mh-e)Editing Drafts\"."
1834 (interactive) 1839 (interactive)
1835 (info "(mh-e)Draft Editing") 1840 (info "(mh-e)Editing Drafts")
1836 (delete-other-windows)) 1841 (delete-other-windows))
1837 1842
1838(defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag) 1843(defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag)
@@ -1855,45 +1860,35 @@ When INCLUDE-FLAG is non-nil, include message body being replied to."
1855 1860
1856;; XEmacs has a couple of extra customizations... 1861;; XEmacs has a couple of extra customizations...
1857(mh-do-in-xemacs 1862(mh-do-in-xemacs
1858 (defcustom mh-xemacs-use-toolbar-flag (if (and (featurep 'toolbar) 1863 (defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag
1859 (featurep 'xpm) 1864 "*If non-nil, use tool bar.
1860 (device-on-window-system-p)) 1865
1861 t 1866This option controls whether to show the MH-E icons at all. By default, this
1862 nil) 1867option is turned on if the window system supports tool bars. If your system
1863 "*If non-nil, use toolbar. 1868doesn't support tool bars, then you won't be able to turn on this option."
1864
1865This will default to t if you are in an environment that supports
1866toolbars and xpm."
1867 :type 'boolean 1869 :type 'boolean
1868 :group 'mh-toolbar) 1870 :group 'mh-tool-bar
1869 1871 :set (lambda (symbol value)
1870 (defcustom mh-xemacs-toolbar-position (if mh-xemacs-use-toolbar-flag 1872 (if (and (eq value t)
1871 'default 1873 (not mh-xemacs-has-tool-bar-flag))
1872 nil) 1874 (error "Tool bar not supported"))
1873 "*Where to put the toolbar. 1875 (set-default symbol value)))
1874 1876
1875Valid non-nil values are \"default\", \"top\", \"bottom\", \"left\", 1877 (defcustom mh-xemacs-tool-bar-position nil
1876\"right\". These match the four edges of the frame, with \"default\" 1878 "*Tool bar location.
1877meaning \"use the same position as the default-toolbar\". 1879
1878 1880This option controls the placement of the tool bar along the four edges of the
1879A nil value means do not use a toolbar. 1881frame. You can choose from one of \"Same As Default Tool Bar\", \"Top\",
1880 1882\"Bottom\", \"Left\", or \"Right\". If this variable is set to anything other
1881If this variable is set to anything other than \"default\" and the 1883than \"Same As Default Tool Bar\" and the default tool bar is in a different
1882default-toolbar has a different positional setting from the value of 1884location, then two tool bars will be displayed: the MH-E tool bar and the
1883this variable, then two toolbars will be displayed. The MH-E toolbar 1885default tool bar."
1884and the default-toolbar." 1886 :type '(radio (const :tag "Same As Default Tool Bar" :value nil)
1885 :type '(radio (const :tag "Same position as the \"default-toolbar\"" 1887 (const :tag "Top" :value top)
1886 :value default) 1888 (const :tag "Bottom" :value bottom)
1887 (const :tag "Along the top edge of the frame" 1889 (const :tag "Left" :value left)
1888 :value top) 1890 (const :tag "Right" :value right))
1889 (const :tag "Along the bottom edge of the frame" 1891 :group 'mh-tool-bar))
1890 :value bottom)
1891 (const :tag "Along the left edge of the frame"
1892 :value left)
1893 (const :tag "Along the right edge of the frame"
1894 :value right)
1895 (const :tag "Don't use a toolbar" nil))
1896 :group 'mh-toolbar))
1897 1892
1898(defun mh-buffer-exists-p (mode) 1893(defun mh-buffer-exists-p (mode)
1899 "Test whether a buffer with major mode MODE is present." 1894 "Test whether a buffer with major mode MODE is present."
@@ -1996,7 +1991,7 @@ where,
1996 (t 'folder-vectors))) 1991 (t 'folder-vectors)))
1997 (list (cond ((eq type :letter) 'mh-tool-bar-letter-buttons) 1992 (list (cond ((eq type :letter) 'mh-tool-bar-letter-buttons)
1998 (t 'mh-tool-bar-folder-buttons))) 1993 (t 'mh-tool-bar-folder-buttons)))
1999 (key (intern (concat "mh-" type1 "toolbar-" name-str))) 1994 (key (intern (concat "mh-" type1 "tool-bar-" name-str)))
2000 (setter (intern (concat type1 "-button-setter"))) 1995 (setter (intern (concat type1 "-button-setter")))
2001 (mbuttons (cond ((eq type :letter) 'letter-buttons) 1996 (mbuttons (cond ((eq type :letter) 'letter-buttons)
2002 ((eq type :show) 'show-buttons) 1997 ((eq type :show) 'show-buttons)
@@ -2063,89 +2058,87 @@ where,
2063 tool-bar-map)))) 2058 tool-bar-map))))
2064 ;; Custom setter functions 2059 ;; Custom setter functions
2065 (defun mh-tool-bar-folder-buttons-set (symbol value) 2060 (defun mh-tool-bar-folder-buttons-set (symbol value)
2066 "Construct toolbar for `mh-folder-mode' and `mh-show-mode'." 2061 "Construct tool bar for `mh-folder-mode' and `mh-show-mode'."
2067 (set-default symbol value) 2062 (set-default symbol value)
2068 (mh-tool-bar-folder-buttons-init)) 2063 (mh-tool-bar-folder-buttons-init))
2069 (defun mh-tool-bar-letter-buttons-set (symbol value) 2064 (defun mh-tool-bar-letter-buttons-set (symbol value)
2070 "Construct toolbar for `mh-letter-mode'." 2065 "Construct tool bar for `mh-letter-mode'."
2071 (set-default symbol value) 2066 (set-default symbol value)
2072 (mh-tool-bar-letter-buttons-init))) 2067 (mh-tool-bar-letter-buttons-init)))
2073 ;; XEmacs specific code 2068 ;; XEmacs specific code
2074 (mh-do-in-xemacs 2069 (mh-do-in-xemacs
2075 (defvar mh-toolbar-folder-vector-map 2070 (defvar mh-tool-bar-folder-vector-map
2076 ',(loop for button in folder-buttons 2071 ',(loop for button in folder-buttons
2077 for vector in folder-vectors 2072 for vector in folder-vectors
2078 collect (cons button vector))) 2073 collect (cons button vector)))
2079 (defvar mh-toolbar-show-vector-map 2074 (defvar mh-tool-bar-show-vector-map
2080 ',(loop for button in show-buttons 2075 ',(loop for button in show-buttons
2081 for vector in show-vectors 2076 for vector in show-vectors
2082 collect (cons button vector))) 2077 collect (cons button vector)))
2083 (defvar mh-toolbar-letter-vector-map 2078 (defvar mh-tool-bar-letter-vector-map
2084 ',(loop for button in letter-buttons 2079 ',(loop for button in letter-buttons
2085 for vector in letter-vectors 2080 for vector in letter-vectors
2086 collect (cons button vector))) 2081 collect (cons button vector)))
2087 (defvar mh-toolbar-folder-buttons nil) 2082 (defvar mh-tool-bar-folder-buttons nil)
2088 (defvar mh-toolbar-show-buttons nil) 2083 (defvar mh-tool-bar-show-buttons nil)
2089 (defvar mh-toolbar-letter-buttons nil) 2084 (defvar mh-tool-bar-letter-buttons nil)
2090 ;; Custom setter functions 2085 ;; Custom setter functions
2091 (defun mh-tool-bar-letter-buttons-set (symbol value) 2086 (defun mh-tool-bar-letter-buttons-set (symbol value)
2092 (set-default symbol value) 2087 (set-default symbol value)
2093 (when mh-xemacs-has-toolbar-flag 2088 (when mh-xemacs-has-tool-bar-flag
2094 (setq mh-toolbar-letter-buttons 2089 (setq mh-tool-bar-letter-buttons
2095 (loop for b in value 2090 (loop for b in value
2096 collect (cdr (assoc b mh-toolbar-letter-vector-map)))))) 2091 collect (cdr (assoc b mh-tool-bar-letter-vector-map))))))
2097 (defun mh-tool-bar-folder-buttons-set (symbol value) 2092 (defun mh-tool-bar-folder-buttons-set (symbol value)
2098 (set-default symbol value) 2093 (set-default symbol value)
2099 (when mh-xemacs-has-toolbar-flag 2094 (when mh-xemacs-has-tool-bar-flag
2100 (setq mh-toolbar-folder-buttons 2095 (setq mh-tool-bar-folder-buttons
2101 (loop for b in value 2096 (loop for b in value
2102 collect (cdr (assoc b mh-toolbar-folder-vector-map)))) 2097 collect (cdr (assoc b mh-tool-bar-folder-vector-map))))
2103 (setq mh-toolbar-show-buttons 2098 (setq mh-tool-bar-show-buttons
2104 (loop for b in value 2099 (loop for b in value
2105 collect (cdr (assoc b mh-toolbar-show-vector-map)))))) 2100 collect (cdr (assoc b mh-tool-bar-show-vector-map))))))
2106 ;; Initialize toolbar 2101 (defun mh-tool-bar-init (mode)
2107 (defun mh-toolbar-init (mode) 2102 "Install tool bar in MODE."
2108 "Install toolbar in MODE." 2103 (let ((tool-bar (cond ((eq mode :folder) mh-tool-bar-folder-buttons)
2109 (let ((toolbar (cond ((eq mode :folder) mh-toolbar-folder-buttons) 2104 ((eq mode :letter) mh-tool-bar-letter-buttons)
2110 ((eq mode :letter) mh-toolbar-letter-buttons) 2105 ((eq mode :show) mh-tool-bar-show-buttons)))
2111 ((eq mode :show) mh-toolbar-show-buttons)))
2112 (height 37) 2106 (height 37)
2113 (width 40) 2107 (width 40)
2114 (buffer (current-buffer))) 2108 (buffer (current-buffer)))
2115 (when (and mh-xemacs-toolbar-position mh-xemacs-use-toolbar-flag 2109 (when mh-xemacs-use-tool-bar-flag
2116 mh-xemacs-has-toolbar-flag)
2117 (cond 2110 (cond
2118 ((eq mh-xemacs-toolbar-position 'top) 2111 ((eq mh-xemacs-tool-bar-position 'top)
2119 (set-specifier top-toolbar toolbar buffer) 2112 (set-specifier top-toolbar tool-bar buffer)
2120 (set-specifier top-toolbar-visible-p t) 2113 (set-specifier top-toolbar-visible-p t)
2121 (set-specifier top-toolbar-height height)) 2114 (set-specifier top-toolbar-height height))
2122 ((eq mh-xemacs-toolbar-position 'bottom) 2115 ((eq mh-xemacs-tool-bar-position 'bottom)
2123 (set-specifier bottom-toolbar toolbar buffer) 2116 (set-specifier bottom-toolbar tool-bar buffer)
2124 (set-specifier bottom-toolbar-visible-p t) 2117 (set-specifier bottom-toolbar-visible-p t)
2125 (set-specifier bottom-toolbar-height height)) 2118 (set-specifier bottom-toolbar-height height))
2126 ((eq mh-xemacs-toolbar-position 'left) 2119 ((eq mh-xemacs-tool-bar-position 'left)
2127 (set-specifier left-toolbar toolbar buffer) 2120 (set-specifier left-toolbar tool-bar buffer)
2128 (set-specifier left-toolbar-visible-p t) 2121 (set-specifier left-toolbar-visible-p t)
2129 (set-specifier left-toolbar-width width)) 2122 (set-specifier left-toolbar-width width))
2130 ((eq mh-xemacs-toolbar-position 'right) 2123 ((eq mh-xemacs-tool-bar-position 'right)
2131 (set-specifier right-toolbar toolbar buffer) 2124 (set-specifier right-toolbar tool-bar buffer)
2132 (set-specifier right-toolbar-visible-p t) 2125 (set-specifier right-toolbar-visible-p t)
2133 (set-specifier right-toolbar-width width)) 2126 (set-specifier right-toolbar-width width))
2134 (t (set-specifier default-toolbar toolbar buffer))))))) 2127 (t (set-specifier default-toolbar tool-bar buffer)))))))
2135 ;; Declare customizable toolbars 2128 ;; Declare customizable tool bars
2136 (custom-declare-variable 2129 (custom-declare-variable
2137 'mh-tool-bar-folder-buttons 2130 'mh-tool-bar-folder-buttons
2138 '(list ,@(mapcar (lambda (x) `(quote ,x)) folder-defaults)) 2131 '(list ,@(mapcar (lambda (x) `(quote ,x)) folder-defaults))
2139 "Choose buttons to include in MH-E folder/show toolbar." 2132 "List of buttons to include in MH-Folder tool bar."
2140 :group 'mh-toolbar :set 'mh-tool-bar-folder-buttons-set 2133 :group 'mh-tool-bar :set 'mh-tool-bar-folder-buttons-set
2141 :type '(set ,@(loop for x in folder-buttons 2134 :type '(set ,@(loop for x in folder-buttons
2142 for y in folder-docs 2135 for y in folder-docs
2143 collect `(const :tag ,y ,x)))) 2136 collect `(const :tag ,y ,x))))
2144 (custom-declare-variable 2137 (custom-declare-variable
2145 'mh-tool-bar-letter-buttons 2138 'mh-tool-bar-letter-buttons
2146 '(list ,@(mapcar (lambda (x) `(quote ,x)) letter-defaults)) 2139 '(list ,@(mapcar (lambda (x) `(quote ,x)) letter-defaults))
2147 "Choose buttons to include in MH-E letter toolbar." 2140 "List of buttons to include in MH-Letter tool bar."
2148 :group 'mh-toolbar :set 'mh-tool-bar-letter-buttons-set 2141 :group 'mh-tool-bar :set 'mh-tool-bar-letter-buttons-set
2149 :type '(set ,@(loop for x in letter-buttons 2142 :type '(set ,@(loop for x in letter-buttons
2150 for y in letter-docs 2143 for y in letter-docs
2151 collect `(const :tag ,y ,x))))))) 2144 collect `(const :tag ,y ,x)))))))
@@ -2301,15 +2294,24 @@ on his mail usage."
2301 :group 'mh-hooks 2294 :group 'mh-hooks
2302 :group 'mh-folder) 2295 :group 'mh-folder)
2303 2296
2304(defcustom mh-folder-updated-hook nil 2297(defcustom mh-before-commands-processed-hook nil
2305 "Invoked when the folder actions (such as moves and deletes) are performed. 2298 "Invoked before the folder actions (such as moves and deletes) are performed.
2306Variables that are useful in this hook include `mh-delete-list' and 2299Variables that are useful in this hook include `mh-delete-list' and
2307`mh-refile-list' which can be used to see which changes are being made to 2300`mh-refile-list' which can be used to see which changes will be made to
2308current folder, `mh-current-folder'." 2301current folder, `mh-current-folder'."
2309 :type 'hook 2302 :type 'hook
2310 :group 'mh-hooks 2303 :group 'mh-hooks
2311 :group 'mh-folder) 2304 :group 'mh-folder)
2312 2305
2306(defcustom mh-after-commands-processed-hook nil
2307 "Invoked after the folder actions (such as moves and deletes) are performed.
2308Variables that are useful in this hook include `mh-folders-changed',
2309which lists which folders were affected by deletes and refiles. This
2310list will always include the current folder, which is also available
2311in `mh-current-folder'."
2312 :type 'hook
2313 :group 'mh-hooks)
2314
2313(defcustom mh-forward-hook nil 2315(defcustom mh-forward-hook nil
2314 "Invoked on the forwarded letter by \\<mh-folder-mode-map>\\[mh-forward]." 2316 "Invoked on the forwarded letter by \\<mh-folder-mode-map>\\[mh-forward]."
2315 :type 'hook 2317 :type 'hook
@@ -2403,6 +2405,8 @@ will be removed from the unseen sequence."
2403 2405
2404;;; Faces (:group 'mh-*-faces + group where faces described) 2406;;; Faces (:group 'mh-*-faces + group where faces described)
2405 2407
2408
2409
2406;;; Faces Used in Scan Listing (:group 'mh-folder-faces) 2410;;; Faces Used in Scan Listing (:group 'mh-folder-faces)
2407 2411
2408(defvar mh-folder-body-face 'mh-folder-body 2412(defvar mh-folder-body-face 'mh-folder-body
@@ -2767,10 +2771,10 @@ The background and foreground is used in the image."
2767 "Face used for the current folder when it has unread messages." 2771 "Face used for the current folder when it has unread messages."
2768 :group 'mh-speed-faces) 2772 :group 'mh-speed-faces)
2769 2773
2770;;; Local Variables: 2774;; Local Variables:
2771;;; indent-tabs-mode: nil 2775;; indent-tabs-mode: nil
2772;;; sentence-end-double-space: nil 2776;; sentence-end-double-space: nil
2773;;; End: 2777;; End:
2774 2778
2775;;; arch-tag: 778d2a20-82e2-4276-be9d-309386776a68 2779;; arch-tag: 778d2a20-82e2-4276-be9d-309386776a68
2776;;; mh-customize.el ends here 2780;;; mh-customize.el ends here
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index b87fa4c2e3d..0c8c3346ecb 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -105,11 +105,12 @@
105The string is displayed after the folder's name. nil for no annotation.") 105The string is displayed after the folder's name. nil for no annotation.")
106 106
107 107
108
108;;; Scan Line Formats 109;;; Scan Line Formats
109 110
110;;; Parameterize MH-E to work with different scan formats. The defaults work 111;; Parameterize MH-E to work with different scan formats. The defaults work
111;;; with the standard MH scan listings, in which the first 4 characters on 112;; with the standard MH scan listings, in which the first 4 characters on
112;;; the line are the message number, followed by two places for notations. 113;; the line are the message number, followed by two places for notations.
113 114
114;; The following scan formats are passed to the scan program if the setting of 115;; The following scan formats are passed to the scan program if the setting of
115;; `mh-scan-format-file' is t. They are identical except the later one makes 116;; `mh-scan-format-file' is t. They are identical except the later one makes
@@ -459,6 +460,8 @@ is done highlighting.")
459 460
460(defvar mh-refile-list nil) ;List of folder names in mh-seq-list. 461(defvar mh-refile-list nil) ;List of folder names in mh-seq-list.
461 462
463(defvar mh-folders-changed nil) ;For mh-after-commands-processed-hook.
464
462(defvar mh-next-direction 'forward) ;Direction to move to next message. 465(defvar mh-next-direction 'forward) ;Direction to move to next message.
463 466
464(defvar mh-view-ops ()) ;Stack of ops that change the folder 467(defvar mh-view-ops ()) ;Stack of ops that change the folder
@@ -483,6 +486,8 @@ is done highlighting.")
483 486
484(defvar mh-colors-available-flag nil) ;Are colors available? 487(defvar mh-colors-available-flag nil) ;Are colors available?
485 488
489
490
486;;; Macros and generic functions: 491;;; Macros and generic functions:
487 492
488(defun mh-mapc (function list) 493(defun mh-mapc (function list)
@@ -1507,14 +1512,16 @@ Make it the current folder."
1507 (mh-index-read-data)) 1512 (mh-index-read-data))
1508 (mh-make-folder-mode-line)) 1513 (mh-make-folder-mode-line))
1509 1514
1510;;; Ensure new buffers won't get this mode if default-major-mode is nil. 1515;; Ensure new buffers won't get this mode if default-major-mode is nil.
1511(put 'mh-folder-mode 'mode-class 'special) 1516(put 'mh-folder-mode 'mode-class 'special)
1512 1517
1513 1518
1514 1519
1515;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) 1520;;; Build mh-folder-mode menu
1516;;; Menus for folder mode: folder, message, sequence (in that order) 1521
1517;;; folder-mode "Sequence" menu 1522;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
1523;; Menus for folder mode: folder, message, sequence (in that order)
1524;; folder-mode "Sequence" menu
1518(easy-menu-define 1525(easy-menu-define
1519 mh-folder-sequence-menu mh-folder-mode-map "Menu for MH-E folder-sequence." 1526 mh-folder-sequence-menu mh-folder-mode-map "Menu for MH-E folder-sequence."
1520 '("Sequence" 1527 '("Sequence"
@@ -1535,7 +1542,7 @@ Make it the current folder."
1535 "--" 1542 "--"
1536 ["Push State Out to MH" mh-update-sequences t])) 1543 ["Push State Out to MH" mh-update-sequences t]))
1537 1544
1538;;; folder-mode "Message" menu 1545;; folder-mode "Message" menu
1539(easy-menu-define 1546(easy-menu-define
1540 mh-folder-message-menu mh-folder-mode-map "Menu for MH-E folder-message." 1547 mh-folder-message-menu mh-folder-mode-map "Menu for MH-E folder-message."
1541 '("Message" 1548 '("Message"
@@ -1568,7 +1575,7 @@ Make it the current folder."
1568 ["Unpack Uuencoded Message..." mh-store-msg (mh-get-msg-num nil)] 1575 ["Unpack Uuencoded Message..." mh-store-msg (mh-get-msg-num nil)]
1569 ["Burst Digest Message" mh-burst-digest (mh-get-msg-num nil)])) 1576 ["Burst Digest Message" mh-burst-digest (mh-get-msg-num nil)]))
1570 1577
1571;;; folder-mode "Folder" menu 1578;; folder-mode "Folder" menu
1572(easy-menu-define 1579(easy-menu-define
1573 mh-folder-folder-menu mh-folder-mode-map "Menu for MH-E folder." 1580 mh-folder-folder-menu mh-folder-mode-map "Menu for MH-E folder."
1574 '("Folder" 1581 '("Folder"
@@ -1742,7 +1749,7 @@ messages in that region.
1742 (easy-menu-add mh-folder-message-menu) 1749 (easy-menu-add mh-folder-message-menu)
1743 (easy-menu-add mh-folder-folder-menu) 1750 (easy-menu-add mh-folder-folder-menu)
1744 (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map) 1751 (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map)
1745 (mh-funcall-if-exists mh-toolbar-init :folder) 1752 (mh-funcall-if-exists mh-tool-bar-init :folder)
1746 (if (and mh-xemacs-flag 1753 (if (and mh-xemacs-flag
1747 font-lock-auto-fontify) 1754 font-lock-auto-fontify)
1748 (turn-on-font-lock))) ; Force font-lock in XEmacs. 1755 (turn-on-font-lock))) ; Force font-lock in XEmacs.
@@ -1786,7 +1793,7 @@ DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the
1786 (mh-visit-folder desktop-buffer-name) 1793 (mh-visit-folder desktop-buffer-name)
1787 (current-buffer)) 1794 (current-buffer))
1788 1795
1789;;; desktop-buffer-mode-handlers appeared in Emacs 22. 1796;; desktop-buffer-mode-handlers appeared in Emacs 22.
1790(if (fboundp 'desktop-buffer-mode-handlers) 1797(if (fboundp 'desktop-buffer-mode-handlers)
1791 (add-to-list 'desktop-buffer-mode-handlers 1798 (add-to-list 'desktop-buffer-mode-handlers
1792 '(mh-folder-mode . mh-restore-desktop-buffer))) 1799 '(mh-folder-mode . mh-restore-desktop-buffer)))
@@ -2144,13 +2151,15 @@ Called by functions like `mh-sort-folder', so also invalidate show buffer."
2144 2151
2145(defun mh-process-commands (folder) 2152(defun mh-process-commands (folder)
2146 "Process outstanding commands for FOLDER. 2153 "Process outstanding commands for FOLDER.
2147The value of `mh-folder-updated-hook' is a list of functions to be called, 2154The value of `mh-before-commands-processed-hook' is a list of functions
2148with no arguments, before the commands are processed." 2155to be called, with no arguments, before the commands are processed.
2156After all cammands are processed, the functions in
2157`mh-after-commands-processed-hook' are called with no arguments."
2149 (message "Processing deletes and refiles for %s..." folder) 2158 (message "Processing deletes and refiles for %s..." folder)
2150 (set-buffer folder) 2159 (set-buffer folder)
2151 (with-mh-folder-updating (nil) 2160 (with-mh-folder-updating (nil)
2152 ;; Run the hook while the lists are still valid 2161 ;; Run the before hook -- the refile and delete lists are still valid
2153 (run-hooks 'mh-folder-updated-hook) 2162 (run-hooks 'mh-before-commands-processed-hook)
2154 2163
2155 ;; Update the unseen sequence if it exists 2164 ;; Update the unseen sequence if it exists
2156 (mh-update-unseen) 2165 (mh-update-unseen)
@@ -2217,17 +2226,23 @@ with no arguments, before the commands are processed."
2217 (when (mh-speed-flists-active-p) 2226 (when (mh-speed-flists-active-p)
2218 (apply #'mh-speed-flists t folders-changed)) 2227 (apply #'mh-speed-flists t folders-changed))
2219 (cond ((memq 'unthread mh-view-ops) (mh-thread-inc folder (point-max))) 2228 (cond ((memq 'unthread mh-view-ops) (mh-thread-inc folder (point-max)))
2220 (mh-index-data (mh-index-insert-folder-headers))))) 2229 (mh-index-data (mh-index-insert-folder-headers))))
2221 2230
2222 (and (buffer-file-name (get-buffer mh-show-buffer)) 2231 (and (buffer-file-name (get-buffer mh-show-buffer))
2223 (not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer)))) 2232 (not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer))))
2224 ;; If "inc" were to put a new msg in this file, 2233 ;; If "inc" were to put a new msg in this file,
2225 ;; we would not notice, so mark it invalid now. 2234 ;; we would not notice, so mark it invalid now.
2226 (mh-invalidate-show-buffer)) 2235 (mh-invalidate-show-buffer))
2236
2237 (setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil))
2238 (mh-remove-all-notation)
2239 (mh-notate-user-sequences)
2240
2241 ;; Run the after hook -- now folders-changed is valid,
2242 ;; but not the lists of specific messages.
2243 (let ((mh-folders-changed folders-changed))
2244 (run-hooks 'mh-after-commands-processed-hook)))
2227 2245
2228 (setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil))
2229 (mh-remove-all-notation)
2230 (mh-notate-user-sequences)
2231 (message "Processing deletes and refiles for %s...done" folder))) 2246 (message "Processing deletes and refiles for %s...done" folder)))
2232 2247
2233(defun mh-update-unseen () 2248(defun mh-update-unseen ()
@@ -2478,7 +2493,7 @@ If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences in list."
2478 2493
2479 2494
2480 2495
2481;;; Build the folder-mode keymap: 2496;;; Build mh-folder-mode keymap:
2482 2497
2483(suppress-keymap mh-folder-mode-map) 2498(suppress-keymap mh-folder-mode-map)
2484 2499
@@ -2631,15 +2646,15 @@ If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences in list."
2631 2646
2632;;; Help Messages 2647;;; Help Messages
2633 2648
2634;;; If you add a new prefix, add appropriate text to the nil key. 2649;; If you add a new prefix, add appropriate text to the nil key.
2635;;; 2650;;
2636;;; In general, messages are grouped logically. Taking the main commands for 2651;; In general, messages are grouped logically. Taking the main commands for
2637;;; example, the first line is "ways to view messages," the second line is 2652;; example, the first line is "ways to view messages," the second line is
2638;;; "things you can do with messages", and the third is "composing" messages. 2653;; "things you can do with messages", and the third is "composing" messages.
2639;;; 2654;;
2640;;; When adding a new prefix, ensure that the help message contains "what" the 2655;; When adding a new prefix, ensure that the help message contains "what" the
2641;;; prefix is for. For example, if the word "folder" were not present in the 2656;; prefix is for. For example, if the word "folder" were not present in the
2642;;; `F' entry, it would not be clear what these commands operated upon. 2657;; `F' entry, it would not be clear what these commands operated upon.
2643(defvar mh-help-messages 2658(defvar mh-help-messages
2644 '((nil "[i]nc, [.]show, [,]show all, [n]ext, [p]revious,\n" 2659 '((nil "[i]nc, [.]show, [,]show all, [n]ext, [p]revious,\n"
2645 "[d]elete, [o]refile, e[x]ecute,\n" 2660 "[d]elete, [o]refile, e[x]ecute,\n"
@@ -2682,10 +2697,10 @@ well.")
2682 2697
2683(provide 'mh-e) 2698(provide 'mh-e)
2684 2699
2685;;; Local Variables: 2700;; Local Variables:
2686;;; indent-tabs-mode: nil 2701;; indent-tabs-mode: nil
2687;;; sentence-end-double-space: nil 2702;; sentence-end-double-space: nil
2688;;; End: 2703;; End:
2689 2704
2690;;; arch-tag: cce884de-bd37-4104-9963-e4439d5ed22b 2705;; arch-tag: cce884de-bd37-4104-9963-e4439d5ed22b
2691;;; mh-e.el ends here 2706;;; mh-e.el ends here
diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el
index ca2f7333eb8..813d8a07b6c 100644
--- a/lisp/mh-e/mh-funcs.el
+++ b/lisp/mh-e/mh-funcs.el
@@ -39,6 +39,8 @@
39(mh-require-cl) 39(mh-require-cl)
40(require 'mh-e) 40(require 'mh-e)
41 41
42
43
42;;; Scan Line Formats 44;;; Scan Line Formats
43 45
44(defvar mh-note-copied "C" 46(defvar mh-note-copied "C"
@@ -47,6 +49,8 @@
47(defvar mh-note-printed "P" 49(defvar mh-note-printed "P"
48 "Messages that have been printed are marked by this character.") 50 "Messages that have been printed are marked by this character.")
49 51
52
53
50;;; Functions 54;;; Functions
51 55
52;;;###mh-autoload 56;;;###mh-autoload
@@ -411,10 +415,10 @@ Default directory is the last directory used, or initially the value of
411 415
412(provide 'mh-funcs) 416(provide 'mh-funcs)
413 417
414;;; Local Variables: 418;; Local Variables:
415;;; indent-tabs-mode: nil 419;; indent-tabs-mode: nil
416;;; sentence-end-double-space: nil 420;; sentence-end-double-space: nil
417;;; End: 421;; End:
418 422
419;;; arch-tag: 1936c4f1-4843-438e-bc4b-a63bb75a7762 423;; arch-tag: 1936c4f1-4843-438e-bc4b-a63bb75a7762
420;;; mh-funcs.el ends here 424;;; mh-funcs.el ends here
diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el
index 23209275d12..71220e2dd3d 100644
--- a/lisp/mh-e/mh-gnus.el
+++ b/lisp/mh-e/mh-gnus.el
@@ -30,8 +30,8 @@
30 30
31;;; Code: 31;;; Code:
32 32
33;;; Load libraries in a non-fatal way in order to see if certain functions are 33;; Load libraries in a non-fatal way in order to see if certain functions are
34;;; pre-defined. 34;; pre-defined.
35(load "mailabbrev" t t) 35(load "mailabbrev" t t)
36(load "mailcap" t t) 36(load "mailcap" t t)
37(load "mm-decode" t t) 37(load "mm-decode" t t)
@@ -147,10 +147,10 @@ BODY."
147 disposition 147 disposition
148 default))) 148 default)))
149 149
150;;; This is mm-save-part from Gnus 5.10 since that function in emacs21.2 is 150;; This is mm-save-part from Gnus 5.10 since that function in emacs21.2 is
151;;; buggy (the args to read-file-name are incorrect). When all supported 151;; buggy (the args to read-file-name are incorrect). When all supported
152;;; versions of Emacs come with at least Gnus 5.10, we can delete this 152;; versions of Emacs come with at least Gnus 5.10, we can delete this
153;;; function and rename calls to mh-mm-save-part to mm-save-part. 153;; function and rename calls to mh-mm-save-part to mm-save-part.
154(defun mh-mm-save-part (handle) 154(defun mh-mm-save-part (handle)
155 "Write HANDLE to a file." 155 "Write HANDLE to a file."
156 (let ((name (mail-content-type-get (mm-handle-type handle) 'name)) 156 (let ((name (mail-content-type-get (mm-handle-type handle) 'name))
@@ -181,12 +181,12 @@ BODY."
181 181
182(provide 'mh-gnus) 182(provide 'mh-gnus)
183 183
184;;; Local Variables: 184;; Local Variables:
185;;; no-byte-compile: t 185;; no-byte-compile: t
186;;; no-update-autoloads: t 186;; no-update-autoloads: t
187;;; indent-tabs-mode: nil 187;; indent-tabs-mode: nil
188;;; sentence-end-double-space: nil 188;; sentence-end-double-space: nil
189;;; End: 189;; End:
190 190
191;; arch-tag: 1e3638af-cad3-4c69-8427-bc8eb6e5e4fa 191;; arch-tag: 1e3638af-cad3-4c69-8427-bc8eb6e5e4fa
192;;; mh-gnus.el ends here 192;;; mh-gnus.el ends here
diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el
index 9d81a2acbe2..1e621af7df9 100644
--- a/lisp/mh-e/mh-identity.el
+++ b/lisp/mh-e/mh-identity.el
@@ -282,10 +282,10 @@ If the field wasn't present, it is added to the bottom of the header."
282 282
283(provide 'mh-identity) 283(provide 'mh-identity)
284 284
285;;; Local Variables: 285;; Local Variables:
286;;; indent-tabs-mode: nil 286;; indent-tabs-mode: nil
287;;; sentence-end-double-space: nil 287;; sentence-end-double-space: nil
288;;; End: 288;; End:
289 289
290;;; arch-tag: 07d66ef6-8726-4ac6-9ecf-e566cd5bfb45 290;; arch-tag: 07d66ef6-8726-4ac6-9ecf-e566cd5bfb45
291;;; mh-identity.el ends here 291;;; mh-identity.el ends here
diff --git a/lisp/mh-e/mh-inc.el b/lisp/mh-e/mh-inc.el
index 9ccec70e969..d5becd26ce4 100644
--- a/lisp/mh-e/mh-inc.el
+++ b/lisp/mh-e/mh-inc.el
@@ -98,10 +98,10 @@ This is called after 'customize is used to alter `mh-inc-spool-list'."
98 98
99(provide 'mh-inc) 99(provide 'mh-inc)
100 100
101;;; Local Variables: 101;; Local Variables:
102;;; indent-tabs-mode: nil 102;; indent-tabs-mode: nil
103;;; sentence-end-double-space: nil 103;; sentence-end-double-space: nil
104;;; End: 104;; End:
105 105
106;;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835 106;; arch-tag: 3713cf2a-6082-4cb4-8ce2-99d9acaba835
107;;; mh-inc.el ends here 107;;; mh-inc.el ends here
diff --git a/lisp/mh-e/mh-index.el b/lisp/mh-e/mh-index.el
index 6b429773945..e261b47b753 100644
--- a/lisp/mh-e/mh-index.el
+++ b/lisp/mh-e/mh-index.el
@@ -26,18 +26,18 @@
26 26
27;;; Commentary: 27;;; Commentary:
28 28
29;;; (1) The following search engines are supported: 29;; (1) The following search engines are supported:
30;;; swish++ 30;; swish++
31;;; swish-e 31;; swish-e
32;;; mairix 32;; mairix
33;;; namazu 33;; namazu
34;;; pick 34;; pick
35;;; grep 35;; grep
36;;; 36;;
37;;; (2) To use this package, you first have to build an index. Please read 37;; (2) To use this package, you first have to build an index. Please read
38;;; the documentation for `mh-index-search' to get started. That 38;; the documentation for `mh-index-search' to get started. That
39;;; documentation will direct you to the specific instructions for your 39;; documentation will direct you to the specific instructions for your
40;;; particular indexer. 40;; particular indexer.
41 41
42;;; Change Log: 42;;; Change Log:
43 43
@@ -91,17 +91,17 @@
91 91
92 92
93 93
94;;; A few different checksum programs are supported. The supported programs 94;; A few different checksum programs are supported. The supported programs
95;;; are: 95;; are:
96;;; 1. md5sum 96;; 1. md5sum
97;;; 2. md5 97;; 2. md5
98;;; 3. openssl 98;; 3. openssl
99;;; 99;;
100;;; To add support for your favorite checksum program add a clause to the cond 100;; To add support for your favorite checksum program add a clause to the cond
101;;; statement in mh-checksum-choose. This should set the variable 101;; statement in mh-checksum-choose. This should set the variable
102;;; mh-checksum-cmd to the command line needed to run the checsum program and 102;; mh-checksum-cmd to the command line needed to run the checsum program and
103;;; should set mh-checksum-parser to a function which returns a cons cell 103;; should set mh-checksum-parser to a function which returns a cons cell
104;;; containing the message number and checksum string. 104;; containing the message number and checksum string.
105 105
106(defvar mh-checksum-cmd) 106(defvar mh-checksum-cmd)
107(defvar mh-checksum-parser) 107(defvar mh-checksum-parser)
@@ -152,8 +152,7 @@
152 152
153 153
154 154
155;;; Make sure that we don't produce too long a command line. 155;; Make sure that we don't produce too long a command line.
156
157(defvar mh-index-max-cmdline-args 500 156(defvar mh-index-max-cmdline-args 500
158 "Maximum number of command line args.") 157 "Maximum number of command line args.")
159 158
@@ -1653,10 +1652,10 @@ system."
1653 1652
1654(provide 'mh-index) 1653(provide 'mh-index)
1655 1654
1656;;; Local Variables: 1655;; Local Variables:
1657;;; indent-tabs-mode: nil 1656;; indent-tabs-mode: nil
1658;;; sentence-end-double-space: nil 1657;; sentence-end-double-space: nil
1659;;; End: 1658;; End:
1660 1659
1661;;; arch-tag: 607762ad-0dff-4fe1-a27e-6c0dde0dcc47 1660;; arch-tag: 607762ad-0dff-4fe1-a27e-6c0dde0dcc47
1662;;; mh-index ends here 1661;;; mh-index ends here
diff --git a/lisp/mh-e/mh-init.el b/lisp/mh-e/mh-init.el
index 79f779810e2..1bafe960eff 100644
--- a/lisp/mh-e/mh-init.el
+++ b/lisp/mh-e/mh-init.el
@@ -1,4 +1,4 @@
1;;; mh-init.el --- MH-E initialization. 1;;; mh-init.el --- MH-E initialization
2 2
3;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
@@ -43,14 +43,14 @@
43(mh-require-cl) 43(mh-require-cl)
44(require 'mh-utils) 44(require 'mh-utils)
45 45
46;;; Avoid compiler warnings. 46;; Avoid compiler warnings.
47(eval-when-compile (defvar image-load-path)) 47(eval-when-compile (defvar image-load-path))
48 48
49;;; Set for local environment: 49;; Set for local environment:
50;;; mh-progs and mh-lib used to be set in paths.el, which tried to 50;; mh-progs and mh-lib used to be set in paths.el, which tried to
51;;; figure out at build time which of several possible directories MH 51;; figure out at build time which of several possible directories MH
52;;; was installed into. But if you installed MH after building Emacs, 52;; was installed into. But if you installed MH after building Emacs,
53;;; this would almost certainly be wrong, so now we do it at run time. 53;; this would almost certainly be wrong, so now we do it at run time.
54 54
55(defvar mh-progs nil 55(defvar mh-progs nil
56 "Directory containing MH commands, such as inc, repl, and rmm.") 56 "Directory containing MH commands, such as inc, repl, and rmm.")
@@ -350,10 +350,10 @@ single \"class\" requirement with a \"color\" item, renames the requirement to
350 350
351(provide 'mh-init) 351(provide 'mh-init)
352 352
353;;; Local Variables: 353;; Local Variables:
354;;; indent-tabs-mode: nil 354;; indent-tabs-mode: nil
355;;; sentence-end-double-space: nil 355;; sentence-end-double-space: nil
356;;; End: 356;; End:
357 357
358;; arch-tag: e8372aeb-d803-42b1-9c95-3c93ad22f63c 358;; arch-tag: e8372aeb-d803-42b1-9c95-3c93ad22f63c
359;;; mh-init.el ends here 359;;; mh-init.el ends here
diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el
index 5cbc7b77b47..29caef6cae7 100644
--- a/lisp/mh-e/mh-junk.el
+++ b/lisp/mh-e/mh-junk.el
@@ -420,10 +420,10 @@ See `mh-spamprobe-blacklist' for more information."
420 420
421(provide 'mh-junk) 421(provide 'mh-junk)
422 422
423;;; Local Variables: 423;; Local Variables:
424;;; indent-tabs-mode: nil 424;; indent-tabs-mode: nil
425;;; sentence-end-double-space: nil 425;; sentence-end-double-space: nil
426;;; End: 426;; End:
427 427
428;;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1 428;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1
429;;; mh-junk.el ends here 429;;; mh-junk.el ends here
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index 3d55c5cded1..bb2fc2b8f50 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -219,9 +219,9 @@ Obsolete; use `mailcap-mime-types'.
219 219
220See also \\[mh-mh-to-mime].") 220See also \\[mh-mh-to-mime].")
221 221
222;;; Delete mh-minibuffer-read-type and mh-mime-content-types and use 222;; Delete mh-minibuffer-read-type and mh-mime-content-types and use
223;;; mml-minibuffer-read-type when Emacs20 is no longer supported unless we 223;; mml-minibuffer-read-type when Emacs20 is no longer supported unless we
224;;; think (mh-file-mime-type) is better than (mm-default-file-encoding). 224;; think (mh-file-mime-type) is better than (mm-default-file-encoding).
225 225
226(defun mh-minibuffer-read-type (filename &optional default) 226(defun mh-minibuffer-read-type (filename &optional default)
227 "Return the content type associated with the given FILENAME. 227 "Return the content type associated with the given FILENAME.
@@ -1347,9 +1347,9 @@ Parameter EL is unused."
1347 (mm-set-handle-multipart-parameter 1347 (mm-set-handle-multipart-parameter
1348 handle 'mh-region (cons (point-min-marker) (point-max-marker))))) 1348 handle 'mh-region (cons (point-min-marker) (point-max-marker)))))
1349 1349
1350;;; I rewrote the security part because Gnus doesn't seem to ever minimize 1350;; I rewrote the security part because Gnus doesn't seem to ever minimize
1351;;; the button. That is once the mime-security button is pressed there seems 1351;; the button. That is once the mime-security button is pressed there seems
1352;;; to be no way of getting rid of the inserted text. 1352;; to be no way of getting rid of the inserted text.
1353(defun mh-mime-security-show-details (handle) 1353(defun mh-mime-security-show-details (handle)
1354 "Toggle display of detailed security info for HANDLE." 1354 "Toggle display of detailed security info for HANDLE."
1355 (let ((details (mm-handle-multipart-ctl-parameter handle 'gnus-details))) 1355 (let ((details (mm-handle-multipart-ctl-parameter handle 'gnus-details)))
@@ -1509,10 +1509,10 @@ message multiple times."
1509 1509
1510(provide 'mh-mime) 1510(provide 'mh-mime)
1511 1511
1512;;; Local Variables: 1512;; Local Variables:
1513;;; indent-tabs-mode: nil 1513;; indent-tabs-mode: nil
1514;;; sentence-end-double-space: nil 1514;; sentence-end-double-space: nil
1515;;; End: 1515;; End:
1516 1516
1517;;; arch-tag: 0dd36518-1b64-4a84-8f4e-59f422d3f002 1517;; arch-tag: 0dd36518-1b64-4a84-8f4e-59f422d3f002
1518;;; mh-mime.el ends here 1518;;; mh-mime.el ends here
diff --git a/lisp/mh-e/mh-pick.el b/lisp/mh-e/mh-pick.el
index eb825fe462f..a20172ba6f3 100644
--- a/lisp/mh-e/mh-pick.el
+++ b/lisp/mh-e/mh-pick.el
@@ -158,15 +158,22 @@ is used when the search folder is dismissed."
158 (add-text-properties (point) (1- (line-end-position)) '(read-only t)) 158 (add-text-properties (point) (1- (line-end-position)) '(read-only t))
159 (goto-char (point-max))) 159 (goto-char (point-max)))
160 160
161;;; Menu extracted from mh-menubar.el V1.1 (31 July 2001) 161
162
163;;; Build mh-pick-mode menu
164
165;; Menu extracted from mh-menubar.el V1.1 (31 July 2001)
162(easy-menu-define 166(easy-menu-define
163 mh-pick-menu mh-pick-mode-map "Menu for MH-E pick-mode" 167 mh-pick-menu mh-pick-mode-map "Menu for MH-E pick-mode"
164 '("Pick" 168 '("Pick"
165 ["Execute the Search" mh-pick-do-search t])) 169 ["Execute the Search" mh-pick-do-search t]))
166 170
167 171
172
173
168;;; Help Messages 174;;; Help Messages
169;;; Group messages logically, more or less. 175
176;; Group messages logically, more or less.
170(defvar mh-pick-mode-help-messages 177(defvar mh-pick-mode-help-messages
171 '((nil 178 '((nil
172 "Search messages using pick: \\[mh-pick-do-search]\n" 179 "Search messages using pick: \\[mh-pick-do-search]\n"
@@ -351,7 +358,8 @@ COMPONENT is the component to search."
351 358
352 359
353;;; Build the pick-mode keymap: 360;;; Build the pick-mode keymap:
354;;; If this changes, modify mh-pick-mode-help-messages accordingly, above. 361
362;; If this changes, modify mh-pick-mode-help-messages accordingly, above.
355(gnus-define-keys mh-pick-mode-map 363(gnus-define-keys mh-pick-mode-map
356 "\C-c?" mh-help 364 "\C-c?" mh-help
357 "\C-c\C-i" mh-index-do-search 365 "\C-c\C-i" mh-index-do-search
@@ -374,10 +382,10 @@ COMPONENT is the component to search."
374 382
375(provide 'mh-pick) 383(provide 'mh-pick)
376 384
377;;; Local Variables: 385;; Local Variables:
378;;; indent-tabs-mode: nil 386;; indent-tabs-mode: nil
379;;; sentence-end-double-space: nil 387;; sentence-end-double-space: nil
380;;; End: 388;; End:
381 389
382;;; arch-tag: aef2b271-7768-42bd-a782-9a14ba9f83f7 390;; arch-tag: aef2b271-7768-42bd-a782-9a14ba9f83f7
383;;; mh-pick.el ends here 391;;; mh-pick.el ends here
diff --git a/lisp/mh-e/mh-print.el b/lisp/mh-e/mh-print.el
index cc35926aecc..acca58c494f 100644
--- a/lisp/mh-e/mh-print.el
+++ b/lisp/mh-e/mh-print.el
@@ -183,7 +183,7 @@ best. You change this setting permanently by customizing the option
183 (setq mh-ps-print-color-option nil) 183 (setq mh-ps-print-color-option nil)
184 (message "Colors will not be printed")))) 184 (message "Colors will not be printed"))))
185 185
186;;; Old non-PS based printing 186;; Old non-PS based printing
187;;;###mh-autoload 187;;;###mh-autoload
188(defun mh-print-msg (range) 188(defun mh-print-msg (range)
189 "Print RANGE the old fashioned way\\<mh-folder-mode-map>. 189 "Print RANGE the old fashioned way\\<mh-folder-mode-map>.
@@ -242,10 +242,10 @@ Consider using \\[mh-ps-print-msg] instead."
242 242
243(provide 'mh-print) 243(provide 'mh-print)
244 244
245;;; Local Variables: 245;; Local Variables:
246;;; indent-tabs-mode: nil 246;; indent-tabs-mode: nil
247;;; sentence-end-double-space: nil 247;; sentence-end-double-space: nil
248;;; End: 248;; End:
249 249
250;; arch-tag: 8d84d50b-2a49-4d0d-b51e-ba9c9b6fc679 250;; arch-tag: 8d84d50b-2a49-4d0d-b51e-ba9c9b6fc679
251;;; mh-print.el ends here 251;;; mh-print.el ends here
diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
index 795970d3739..4942df58f71 100644
--- a/lisp/mh-e/mh-seq.el
+++ b/lisp/mh-e/mh-seq.el
@@ -78,7 +78,10 @@
78;; Shush the byte-compiler 78;; Shush the byte-compiler
79(defvar tool-bar-mode) 79(defvar tool-bar-mode)
80 80
81
82
81;;; Data structures (used in message threading)... 83;;; Data structures (used in message threading)...
84
82(mh-defstruct (mh-thread-message (:conc-name mh-message-) 85(mh-defstruct (mh-thread-message (:conc-name mh-message-)
83 (:constructor mh-thread-make-message)) 86 (:constructor mh-thread-make-message))
84 (id nil) 87 (id nil)
@@ -91,15 +94,20 @@
91 message parent children 94 message parent children
92 (real-child-p t)) 95 (real-child-p t))
93 96
97
94 98
95;;; Internal variables: 99;;; Internal variables:
100
96(defvar mh-last-seq-used nil 101(defvar mh-last-seq-used nil
97 "Name of seq to which a msg was last added.") 102 "Name of seq to which a msg was last added.")
98 103
99(defvar mh-non-seq-mode-line-annotation nil 104(defvar mh-non-seq-mode-line-annotation nil
100 "Saved value of `mh-mode-line-annotation' when narrowed to a seq.") 105 "Saved value of `mh-mode-line-annotation' when narrowed to a seq.")
101 106
107
108
102;;; Maps and hashes... 109;;; Maps and hashes...
110
103(defvar mh-thread-id-hash nil 111(defvar mh-thread-id-hash nil
104 "Hashtable used to canonicalize message identifiers.") 112 "Hashtable used to canonicalize message identifiers.")
105(defvar mh-thread-subject-hash nil 113(defvar mh-thread-subject-hash nil
@@ -377,9 +385,10 @@ refiled are present in `mh-refile-list'."
377 385
378 386
379 387
380;;; Commands to manipulate sequences. Sequences are stored in an alist 388;;; Commands to manipulate sequences.
381;;; of the form: 389
382;;; ((seq-name msgs ...) (seq-name msgs ...) ...) 390;; Sequences are stored in an alist of the form:
391;; ((seq-name msgs ...) (seq-name msgs ...) ...)
383 392
384(defvar mh-sequence-history ()) 393(defvar mh-sequence-history ())
385 394
@@ -412,7 +421,10 @@ defaults to the first sequence containing the current message."
412 (error "No messages in sequence `%s'" seq)) 421 (error "No messages in sequence `%s'" seq))
413 seq)) 422 seq))
414 423
424
425
415;;; Functions to read ranges with completion... 426;;; Functions to read ranges with completion...
427
416(defvar mh-range-seq-names) 428(defvar mh-range-seq-names)
417(defvar mh-range-history ()) 429(defvar mh-range-history ())
418(defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map)) 430(defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map))
@@ -702,11 +714,10 @@ a uniform interface to MH-E functions."
702 714
703 715
704 716
705;;; Commands to handle new 'subject sequence. 717;;; Commands to handle new 'subject sequence ("Poor man's threading" by psg)
706;;; Or "Poor man's threading" by psg.
707 718
708;;; XXX: The function mh-subject-to-sequence-unthreaded uses the magic number 719;; XXX: The function mh-subject-to-sequence-unthreaded uses the magic number
709;;; 41 for the max size of the subject part. Avoiding this would be desirable. 720;; 41 for the max size of the subject part. Avoiding this would be desirable.
710(defun mh-subject-to-sequence (all) 721(defun mh-subject-to-sequence (all)
711 "Put all following messages with same subject in sequence 'subject. 722 "Put all following messages with same subject in sequence 'subject.
712If arg ALL is t, move to beginning of folder buffer to collect all messages. 723If arg ALL is t, move to beginning of folder buffer to collect all messages.
@@ -970,6 +981,8 @@ command behaves like \\[mh-thread-delete]."
970 (mh-thread-delete) 981 (mh-thread-delete)
971 (mh-delete-subject))) 982 (mh-delete-subject)))
972 983
984
985
973;;; Message threading: 986;;; Message threading:
974 987
975(defmacro mh-thread-initialize-hash (var test) 988(defmacro mh-thread-initialize-hash (var test)
@@ -1745,10 +1758,10 @@ messages. When you want to widen the view to all your messages again, use
1745 1758
1746(provide 'mh-seq) 1759(provide 'mh-seq)
1747 1760
1748;;; Local Variables: 1761;; Local Variables:
1749;;; indent-tabs-mode: nil 1762;; indent-tabs-mode: nil
1750;;; sentence-end-double-space: nil 1763;; sentence-end-double-space: nil
1751;;; End: 1764;; End:
1752 1765
1753;;; arch-tag: 8e952711-01a2-485b-bf21-c9e3ad4de942 1766;; arch-tag: 8e952711-01a2-485b-bf21-c9e3ad4de942
1754;;; mh-seq.el ends here 1767;;; mh-seq.el ends here
diff --git a/lisp/mh-e/mh-speed.el b/lisp/mh-e/mh-speed.el
index 4b33a81a7e9..64aa84fa8d8 100644
--- a/lisp/mh-e/mh-speed.el
+++ b/lisp/mh-e/mh-speed.el
@@ -558,10 +558,10 @@ The function invalidates the latest ancestor that is present."
558 558
559(provide 'mh-speed) 559(provide 'mh-speed)
560 560
561;;; Local Variables: 561;; Local Variables:
562;;; indent-tabs-mode: nil 562;; indent-tabs-mode: nil
563;;; sentence-end-double-space: nil 563;; sentence-end-double-space: nil
564;;; End: 564;; End:
565 565
566;;; arch-tag: d38ddcd4-3c00-4e37-99bf-8b89dda7b32c 566;; arch-tag: d38ddcd4-3c00-4e37-99bf-8b89dda7b32c
567;;; mh-speed.el ends here 567;;; mh-speed.el ends here
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index cc48b1248d4..e39d141b70b 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -62,7 +62,10 @@
62(defvar font-lock-defaults) 62(defvar font-lock-defaults)
63(defvar mark-active) 63(defvar mark-active)
64 64
65
66
65;;; Autoloads 67;;; Autoloads
68
66(autoload 'gnus-article-highlight-citation "gnus-cite") 69(autoload 'gnus-article-highlight-citation "gnus-cite")
67(autoload 'message-fetch-field "message") 70(autoload 'message-fetch-field "message")
68(autoload 'message-tokenize-header "message") 71(autoload 'message-tokenize-header "message")
@@ -70,7 +73,10 @@
70(unless (fboundp 'make-hash-table) 73(unless (fboundp 'make-hash-table)
71 (autoload 'make-hash-table "cl")) 74 (autoload 'make-hash-table "cl"))
72 75
76
77
73;;; CL Replacements 78;;; CL Replacements
79
74(defun mh-search-from-end (char string) 80(defun mh-search-from-end (char string)
75 "Return the position of last occurrence of CHAR in STRING. 81 "Return the position of last occurrence of CHAR in STRING.
76If CHAR is not present in STRING then return nil. The function is used in lieu 82If CHAR is not present in STRING then return nil. The function is used in lieu
@@ -79,10 +85,11 @@ of `search' in the CL package."
79 when (equal (aref string index) char) return index 85 when (equal (aref string index) char) return index
80 finally return nil)) 86 finally return nil))
81 87
82;;; Additional header fields that might someday be added: 88;; Additional header fields that might someday be added:
83;;; "Sender: " "Reply-to: " 89;; "Sender: " "Reply-to: "
84 90
85 91
92
86;;; Scan Line Formats 93;;; Scan Line Formats
87 94
88(defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)" 95(defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)"
@@ -171,7 +178,8 @@ Use `mh-signature-separator-regexp' when searching for a separator.")
171 ; this number 178 ; this number
172 (part-index-hash (make-hash-table))) ; Avoid incrementing the part number 179 (part-index-hash (make-hash-table))) ; Avoid incrementing the part number
173 ; for nested messages 180 ; for nested messages
174;;; This has to be a macro, since we do: (setf (mh-buffer-data) ...) 181
182;; This has to be a macro, since we do: (setf (mh-buffer-data) ...)
175(defmacro mh-buffer-data () 183(defmacro mh-buffer-data ()
176 "Convenience macro to get the MIME data structures of the current buffer." 184 "Convenience macro to get the MIME data structures of the current buffer."
177 `(gethash (current-buffer) mh-globals-hash)) 185 `(gethash (current-buffer) mh-globals-hash))
@@ -457,6 +465,8 @@ about the fontification operation."
457 (gnus-article-highlight-citation t) 465 (gnus-article-highlight-citation t)
458 (set-buffer-modified-p modified)))) 466 (set-buffer-modified-p modified))))
459 467
468
469
460;;; Internal bookkeeping variables: 470;;; Internal bookkeeping variables:
461 471
462;; Cached value of the `Path:' component in the user's MH profile. 472;; Cached value of the `Path:' component in the user's MH profile.
@@ -510,6 +520,8 @@ about the fontification operation."
510;;Non-nil means next SPC or whatever goes to next undeleted message. 520;;Non-nil means next SPC or whatever goes to next undeleted message.
511(defvar mh-page-to-next-msg-flag nil) 521(defvar mh-page-to-next-msg-flag nil)
512 522
523
524
513;;; Internal variables local to a folder. 525;;; Internal variables local to a folder.
514 526
515;; Name of current folder, a string. 527;; Name of current folder, a string.
@@ -554,7 +566,7 @@ about the fontification operation."
554 (cons modeline-buffer-id-left-extent "XEmacs%N:")) 566 (cons modeline-buffer-id-left-extent "XEmacs%N:"))
555 (cons modeline-buffer-id-right-extent " %17b"))))) 567 (cons modeline-buffer-id-right-extent " %17b")))))
556 568
557;;; This holds a documentation string used by describe-mode. 569;; This holds a documentation string used by describe-mode.
558(defun mh-showing-mode (&optional arg) 570(defun mh-showing-mode (&optional arg)
559 "Change whether messages should be displayed. 571 "Change whether messages should be displayed.
560With arg, display messages iff ARG is positive." 572With arg, display messages iff ARG is positive."
@@ -574,6 +586,8 @@ With arg, display messages iff ARG is positive."
574;; Showing message with headers or normally. 586;; Showing message with headers or normally.
575(defvar mh-showing-with-headers nil) 587(defvar mh-showing-with-headers nil)
576 588
589
590
577;;; MH-E macros 591;;; MH-E macros
578 592
579(defmacro with-mh-folder-updating (save-modification-flag &rest body) 593(defmacro with-mh-folder-updating (save-modification-flag &rest body)
@@ -740,10 +754,10 @@ See `expand-file-name' for description of DEFAULT."
740 (mh-expand-file-name folder) 754 (mh-expand-file-name folder)
741 mh-folder-filename))) 755 mh-folder-filename)))
742 756
743;;; Infrastructure to generate show-buffer functions from folder functions 757;; Infrastructure to generate show-buffer functions from folder functions
744;;; XEmacs does not have deactivate-mark? What is the equivalent of 758;; XEmacs does not have deactivate-mark? What is the equivalent of
745;;; transient-mark-mode for XEmacs? Should we be restoring the mark in the 759;; transient-mark-mode for XEmacs? Should we be restoring the mark in the
746;;; folder buffer after the operation has been carried out. 760;; folder buffer after the operation has been carried out.
747(defmacro mh-defun-show-buffer (function original-function 761(defmacro mh-defun-show-buffer (function original-function
748 &optional dont-return) 762 &optional dont-return)
749 "Define FUNCTION to run ORIGINAL-FUNCTION in folder buffer. 763 "Define FUNCTION to run ORIGINAL-FUNCTION in folder buffer.
@@ -784,8 +798,8 @@ still visible.\n")
784 (get-buffer cur-buffer-name)))) 798 (get-buffer cur-buffer-name))))
785 (pop-to-buffer (get-buffer cur-buffer-name) nil))))))))) 799 (pop-to-buffer (get-buffer cur-buffer-name) nil)))))))))
786 800
787;;; Generate interactive functions for the show buffer from the corresponding 801;; Generate interactive functions for the show buffer from the corresponding
788;;; folder functions. 802;; folder functions.
789(mh-defun-show-buffer mh-show-previous-undeleted-msg 803(mh-defun-show-buffer mh-show-previous-undeleted-msg
790 mh-previous-undeleted-msg) 804 mh-previous-undeleted-msg)
791(mh-defun-show-buffer mh-show-next-undeleted-msg 805(mh-defun-show-buffer mh-show-next-undeleted-msg
@@ -883,7 +897,10 @@ still visible.\n")
883(mh-defun-show-buffer mh-show-display-with-external-viewer 897(mh-defun-show-buffer mh-show-display-with-external-viewer
884 mh-display-with-external-viewer) 898 mh-display-with-external-viewer)
885 899
886;;; Populate mh-show-mode-map 900
901
902;;; Build mh-show-mode keymaps
903
887(gnus-define-keys mh-show-mode-map 904(gnus-define-keys mh-show-mode-map
888 " " mh-show-page-msg 905 " " mh-show-page-msg
889 "!" mh-show-refile-or-write-again 906 "!" mh-show-refile-or-write-again
@@ -1081,7 +1098,7 @@ still visible.\n")
1081 ["Quit MH-E" mh-quit t])) 1098 ["Quit MH-E" mh-quit t]))
1082 1099
1083 1100
1084;;; Ensure new buffers won't get this mode if default-major-mode is nil. 1101;; Ensure new buffers won't get this mode if default-major-mode is nil.
1085(put 'mh-show-mode 'mode-class 'special) 1102(put 'mh-show-mode 'mode-class 'special)
1086 1103
1087;; Avoid compiler warnings in XEmacs and Emacs 20 1104;; Avoid compiler warnings in XEmacs and Emacs 20
@@ -1120,7 +1137,7 @@ See also `mh-folder-mode'.
1120 font-lock-auto-fontify) 1137 font-lock-auto-fontify)
1121 (turn-on-font-lock)) 1138 (turn-on-font-lock))
1122 (set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map) 1139 (set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map)
1123 (mh-funcall-if-exists mh-toolbar-init :show) 1140 (mh-funcall-if-exists mh-tool-bar-init :show)
1124 (when mh-decode-mime-flag 1141 (when mh-decode-mime-flag
1125 (mh-make-local-hook 'kill-buffer-hook) 1142 (mh-make-local-hook 'kill-buffer-hook)
1126 (add-hook 'kill-buffer-hook 'mh-mime-cleanup nil t)) 1143 (add-hook 'kill-buffer-hook 'mh-mime-cleanup nil t))
@@ -1260,10 +1277,10 @@ is used."
1260 1277
1261 1278
1262 1279
1263;; Picon display 1280;;; Picon display
1264 1281
1265;;; XXX: This should be customizable. As a side-effect of setting this 1282;; XXX: This should be customizable. As a side-effect of setting this
1266;;; variable, arrange to reset mh-picon-existing-directory-list to 'unset. 1283;; variable, arrange to reset mh-picon-existing-directory-list to 'unset.
1267(defvar mh-picon-directory-list 1284(defvar mh-picon-directory-list
1268 '("~/.picons" "~/.picons/users" "~/.picons/usenix" "~/.picons/news" 1285 '("~/.picons" "~/.picons/users" "~/.picons/usenix" "~/.picons/news"
1269 "~/.picons/domains" "~/.picons/misc" 1286 "~/.picons/domains" "~/.picons/misc"
@@ -2388,6 +2405,8 @@ The function returns the size of the final size of the log buffer."
2388 (insert "\n \n")) 2405 (insert "\n \n"))
2389 (buffer-size))) 2406 (buffer-size)))
2390 2407
2408
2409
2391;;; Issue commands to MH. 2410;;; Issue commands to MH.
2392 2411
2393(defun mh-exec-cmd (command &rest args) 2412(defun mh-exec-cmd (command &rest args)
@@ -2593,10 +2612,10 @@ older versions of Gnus."
2593 2612
2594(provide 'mh-utils) 2613(provide 'mh-utils)
2595 2614
2596;;; Local Variables: 2615;; Local Variables:
2597;;; indent-tabs-mode: nil 2616;; indent-tabs-mode: nil
2598;;; sentence-end-double-space: nil 2617;; sentence-end-double-space: nil
2599;;; End: 2618;; End:
2600 2619
2601;;; arch-tag: 1af39fdf-f66f-4b06-9b48-18a7656c8e36 2620;; arch-tag: 1af39fdf-f66f-4b06-9b48-18a7656c8e36
2602;;; mh-utils.el ends here 2621;;; mh-utils.el ends here
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 5728499db43..51291d717b6 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1336,7 +1336,7 @@ shell-specific features.
1336The default style of this mode is that of Rosenblatt's Korn shell book. 1336The default style of this mode is that of Rosenblatt's Korn shell book.
1337The syntax of the statements varies with the shell being used. The 1337The syntax of the statements varies with the shell being used. The
1338following commands are available, based on the current shell's syntax: 1338following commands are available, based on the current shell's syntax:
1339 1339\\<sh-mode-map>
1340\\[sh-case] case statement 1340\\[sh-case] case statement
1341\\[sh-for] for loop 1341\\[sh-for] for loop
1342\\[sh-function] function definition 1342\\[sh-function] function definition
diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el
index 6cc23f7bf6b..090f0431218 100644
--- a/lisp/ps-bdf.el
+++ b/lisp/ps-bdf.el
@@ -1,7 +1,9 @@
1;;; ps-bdf.el --- BDF font file handler for ps-print 1;;; ps-bdf.el --- BDF font file handler for ps-print
2 2
3;; Copyright (C) 1998, 1999, 2001, 2003 Electrotechnical Laboratory, JAPAN. 3;; Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
4;; Licensed to the Free Software Foundation. 4;; Copyright (C) 1998, 1999, 2001, 2003
5;; National Institute of Advanced Industrial Science and Technology (AIST)
6;; Registration Number H14PRO021
5 7
6;; Keywords: wp, BDF, font, PostScript 8;; Keywords: wp, BDF, font, PostScript
7;; Maintainer: Kenichi Handa <handa@etl.go.jp> 9;; Maintainer: Kenichi Handa <handa@etl.go.jp>
diff --git a/lisp/subr.el b/lisp/subr.el
index e55858e42d8..01444481b22 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2280,7 +2280,7 @@ from which the minibuffer was entered. The return value of
2280 (let ((str (make-symbol "string"))) 2280 (let ((str (make-symbol "string")))
2281 `(dynamic-completion-table 2281 `(dynamic-completion-table
2282 (lambda (,str) 2282 (lambda (,str)
2283 (unless (listp ,var) 2283 (when (functionp ,var)
2284 (setq ,var (,fun ,@args))) 2284 (setq ,var (,fun ,@args)))
2285 ,var)))) 2285 ,var))))
2286 2286
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index c4ccc9588ed..6feaa347c8b 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -1140,6 +1140,7 @@ correspoinding TextEncodingBase value."
1140 1140
1141;;;; Keyboard layout/language change events 1141;;;; Keyboard layout/language change events
1142(defun mac-handle-language-change (event) 1142(defun mac-handle-language-change (event)
1143 "Set keyboard coding system to what is specified in EVENT."
1143 (interactive "e") 1144 (interactive "e")
1144 (let ((coding-system 1145 (let ((coding-system
1145 (cdr (assq (car (cadr event)) mac-script-code-coding-systems)))) 1146 (cdr (assq (car (cadr event)) mac-script-code-coding-systems))))
@@ -1201,21 +1202,14 @@ in `selection-converter-alist', which see."
1201 (when (and (stringp data) 1202 (when (and (stringp data)
1202 (setq data-type (get-text-property 0 'foreign-selection data))) 1203 (setq data-type (get-text-property 0 'foreign-selection data)))
1203 (cond ((eq data-type 'public.utf16-plain-text) 1204 (cond ((eq data-type 'public.utf16-plain-text)
1204 (if (fboundp 'mac-code-convert-string) 1205 (let ((encoded (and (fboundp 'mac-code-convert-string)
1205 (let ((s (mac-code-convert-string data nil coding))) 1206 (mac-code-convert-string data nil coding))))
1206 (if s 1207 (if encoded
1207 (setq data (decode-coding-string s coding)) 1208 (setq data (decode-coding-string encoded coding))
1208 (setq data 1209 (setq data
1209 ;; (decode-coding-string data 'utf-16) is 1210 (decode-coding-string data
1210 ;; not correct because 1211 (if (eq (byteorder) ?B)
1211 ;; public.utf16-plain-text is defined as 1212 'utf-16be 'utf-16le))))))
1212 ;; native byte order, no BOM.
1213 (decode-coding-string
1214 (mac-code-convert-string data nil 'utf-8)
1215 'utf-8))))
1216 ;; No `mac-code-convert-string' means non-Carbon, which
1217 ;; implies big endian.
1218 (setq data (decode-coding-string data 'utf-16be))))
1219 ((eq data-type 'com.apple.traditional-mac-plain-text) 1213 ((eq data-type 'com.apple.traditional-mac-plain-text)
1220 (setq data (decode-coding-string data coding))) 1214 (setq data (decode-coding-string data coding)))
1221 ((eq data-type 'public.file-url) 1215 ((eq data-type 'public.file-url)
@@ -1332,25 +1326,17 @@ in `selection-converter-alist', which see."
1332 (remove-text-properties 0 (length str) '(composition nil) str) 1326 (remove-text-properties 0 (length str) '(composition nil) str)
1333 (cond 1327 (cond
1334 ((eq type 'public.utf16-plain-text) 1328 ((eq type 'public.utf16-plain-text)
1335 (if (fboundp 'mac-code-convert-string) 1329 (let (s)
1336 (let (s) 1330 (when (and (fboundp 'mac-code-convert-string)
1337 (when (memq coding (find-coding-systems-string str)) 1331 (memq coding (find-coding-systems-string str)))
1338 (setq coding 1332 (setq coding (coding-system-change-eol-conversion coding 'mac))
1339 (coding-system-change-eol-conversion coding 'mac)) 1333 (setq s (mac-code-convert-string
1340 (setq s (mac-code-convert-string 1334 (encode-coding-string str coding)
1341 (encode-coding-string str coding) 1335 coding nil)))
1342 coding nil))) 1336 (setq str (or s
1343 (setq str (or s 1337 (encode-coding-string str
1344 ;; (encode-coding-string str 1338 (if (eq (byteorder) ?B)
1345 ;; 'utf-16-mac) is not correct because 1339 'utf-16be 'utf-16le))))))
1346 ;; public.utf16-plain-text is defined
1347 ;; as native byte order, no BOM.
1348 (mac-code-convert-string
1349 (encode-coding-string str 'utf-8-mac)
1350 'utf-8 nil))))
1351 ;; No `mac-code-convert-string' means non-Carbon, which
1352 ;; implies big endian.
1353 (setq str (encode-coding-string str 'utf-16be-mac))))
1354 ((eq type 'com.apple.traditional-mac-plain-text) 1340 ((eq type 'com.apple.traditional-mac-plain-text)
1355 (let ((encodables (find-coding-systems-string str)) 1341 (let ((encodables (find-coding-systems-string str))
1356 (rest mac-script-code-coding-systems)) 1342 (rest mac-script-code-coding-systems))
@@ -1484,6 +1470,7 @@ in `selection-converter-alist', which see."
1484 (decode-coding-string utf8-text 'utf-8)))) 1470 (decode-coding-string utf8-text 'utf-8))))
1485 1471
1486(defun mac-ae-open-documents (event) 1472(defun mac-ae-open-documents (event)
1473 "Open the documents specified by the Apple event EVENT."
1487 (interactive "e") 1474 (interactive "e")
1488 (let ((ae (mac-event-ae event))) 1475 (let ((ae (mac-event-ae event)))
1489 (dolist (file-name (mac-ae-list ae nil 'undecoded-file-name)) 1476 (dolist (file-name (mac-ae-list ae nil 'undecoded-file-name))
@@ -1511,6 +1498,8 @@ in `selection-converter-alist', which see."
1511 (error "No text in Apple event."))) 1498 (error "No text in Apple event.")))
1512 1499
1513(defun mac-ae-get-url (event) 1500(defun mac-ae-get-url (event)
1501 "Open the URL specified by the Apple event EVENT.
1502Currently the `mailto' scheme is supported."
1514 (interactive "e") 1503 (interactive "e")
1515 (let* ((ae (mac-event-ae event)) 1504 (let* ((ae (mac-event-ae event))
1516 (parsed-url (url-generic-parse-url (mac-ae-text ae)))) 1505 (parsed-url (url-generic-parse-url (mac-ae-text ae))))
@@ -1541,10 +1530,12 @@ in `selection-converter-alist', which see."
1541(define-key mac-apple-event-map [hicommand about] 'display-splash-screen) 1530(define-key mac-apple-event-map [hicommand about] 'display-splash-screen)
1542 1531
1543(defun mac-services-open-file () 1532(defun mac-services-open-file ()
1533 "Open the file specified by the selection value for Services."
1544 (interactive) 1534 (interactive)
1545 (find-file-existing (x-selection-value mac-services-selection))) 1535 (find-file-existing (x-selection-value mac-services-selection)))
1546 1536
1547(defun mac-services-open-selection () 1537(defun mac-services-open-selection ()
1538 "Create a new buffer containing the selection value for Services."
1548 (interactive) 1539 (interactive)
1549 (switch-to-buffer (generate-new-buffer "*untitled*")) 1540 (switch-to-buffer (generate-new-buffer "*untitled*"))
1550 (insert (x-selection-value mac-services-selection)) 1541 (insert (x-selection-value mac-services-selection))
@@ -1553,6 +1544,7 @@ in `selection-converter-alist', which see."
1553 ) 1544 )
1554 1545
1555(defun mac-services-mail-selection () 1546(defun mac-services-mail-selection ()
1547 "Prepare a mail buffer containing the selection value for Services."
1556 (interactive) 1548 (interactive)
1557 (compose-mail) 1549 (compose-mail)
1558 (rfc822-goto-eoh) 1550 (rfc822-goto-eoh)
@@ -1560,10 +1552,12 @@ in `selection-converter-alist', which see."
1560 (insert (x-selection-value mac-services-selection) "\n")) 1552 (insert (x-selection-value mac-services-selection) "\n"))
1561 1553
1562(defun mac-services-mail-to () 1554(defun mac-services-mail-to ()
1555 "Prepare a mail buffer to be sent to the selection value for Services."
1563 (interactive) 1556 (interactive)
1564 (compose-mail (x-selection-value mac-services-selection))) 1557 (compose-mail (x-selection-value mac-services-selection)))
1565 1558
1566(defun mac-services-insert-text () 1559(defun mac-services-insert-text ()
1560 "Insert the selection value for Services."
1567 (interactive) 1561 (interactive)
1568 (let ((text (x-selection-value mac-services-selection))) 1562 (let ((text (x-selection-value mac-services-selection)))
1569 (if (not buffer-read-only) 1563 (if (not buffer-read-only)
@@ -1584,6 +1578,7 @@ in `selection-converter-alist', which see."
1584 'mac-services-mail-to) 1578 'mac-services-mail-to)
1585 1579
1586(defun mac-dispatch-apple-event (event) 1580(defun mac-dispatch-apple-event (event)
1581 "Dispatch EVENT according to the keymap `mac-apple-event-map'."
1587 (interactive "e") 1582 (interactive "e")
1588 (let* ((binding (lookup-key mac-apple-event-map (mac-event-spec event))) 1583 (let* ((binding (lookup-key mac-apple-event-map (mac-event-spec event)))
1589 (service-message 1584 (service-message
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el
index 2e79be9e4cc..3cdc40b9f32 100644
--- a/lisp/textmodes/org.el
+++ b/lisp/textmodes/org.el
@@ -5,7 +5,7 @@
5;; Author: Carsten Dominik <dominik at science dot uva dot nl> 5;; Author: Carsten Dominik <dominik at science dot uva dot nl>
6;; Keywords: outlines, hypermedia, calendar, wp 6;; Keywords: outlines, hypermedia, calendar, wp
7;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ 7;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
8;; Version: 4.00 8;; Version: 4.01
9;; 9;;
10;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
11;; 11;;
@@ -81,6 +81,13 @@
81;; 81;;
82;; Changes: 82;; Changes:
83;; ------- 83;; -------
84;; Version 4.01
85;; - Tags can also be set remotely from agenda buffer.
86;; - Boolean logic for tag searches.
87;; - Additional agenda commands can be configured through the variable
88;; `org-agenda-custom-commands'.
89;; - Minor bug fixes.
90;;
84;; Version 4.00 91;; Version 4.00
85;; - Headlines can contain TAGS, and Org-mode can produced a list 92;; - Headlines can contain TAGS, and Org-mode can produced a list
86;; of matching headlines based on a TAG search expression. 93;; of matching headlines based on a TAG search expression.
@@ -199,7 +206,7 @@
199;; - Cleanup. 206;; - Cleanup.
200;; 207;;
201;; Version 3.07 208;; Version 3.07
202;; - Some folding incinsistencies removed. 209;; - Some folding inconsistencies removed.
203;; - BBDB links to company-only entries. 210;; - BBDB links to company-only entries.
204;; - Bug fixes and global cleanup. 211;; - Bug fixes and global cleanup.
205;; 212;;
@@ -266,7 +273,7 @@
266 273
267;;; Customization variables 274;;; Customization variables
268 275
269(defvar org-version "4.00" 276(defvar org-version "4.01"
270 "The version number of the file org.el.") 277 "The version number of the file org.el.")
271(defun org-version () 278(defun org-version ()
272 (interactive) 279 (interactive)
@@ -594,6 +601,23 @@ Entries are added to this list with \\[org-agenda-file-to-front] and removed wit
594 :group 'org-agenda 601 :group 'org-agenda
595 :type '(repeat file)) 602 :type '(repeat file))
596 603
604(defcustom org-agenda-custom-commands
605 '(("w" todo "WAITING")
606 ("u" tags "+WORK+URGENT-BOSS"))
607 "Custom commands for the agenda.
608These commands will be offered on the splash screen displayed by the
609agenda dispatcher \\[org-agenda]. Each entry is a list of 3 items:
610
611key The key (as a string) to be associated with the command.
612type The command type, either `todo' for a todo list with a specific
613 todo keyword, or `tags' for a tags search.
614match What to search for. Either a TODO keyword, or a tags match query."
615 :group 'org-agenda
616 :type '(repeat
617 (list (string :tag "Key")
618 (choice :tag "Type" (const tags) (const todo))
619 (string :tag "Match"))))
620
597(defcustom org-select-timeline-window t 621(defcustom org-select-timeline-window t
598 "Non-nil means, after creating a timeline, move cursor into Timeline window. 622 "Non-nil means, after creating a timeline, move cursor into Timeline window.
599When nil, cursor will remain in the current window." 623When nil, cursor will remain in the current window."
@@ -981,7 +1005,7 @@ first line, so it is probably best to use this in combinations with
981 :tag "Org Tags" 1005 :tag "Org Tags"
982 :group 'org) 1006 :group 'org)
983 1007
984(defcustom org-tags-column 40 1008(defcustom org-tags-column 48
985 "The column to which tags should be indented in a headline. 1009 "The column to which tags should be indented in a headline.
986If this number is positive, it specified the column. If it is negative, 1010If this number is positive, it specified the column. If it is negative,
987it means that the tags should be flushright to that column. For example, 1011it means that the tags should be flushright to that column. For example,
@@ -989,9 +1013,19 @@ it means that the tags should be flushright to that column. For example,
989 :group 'org-tags 1013 :group 'org-tags
990 :type 'integer) 1014 :type 'integer)
991 1015
1016(defcustom org-auto-align-tags t
1017 "Non-nil means, realign tags after pro/demotion of TODO state change.
1018These operations change the length of a headline and therefore shift
1019the tags around. With this options turned on, after each such operation
1020the tags are again aligned to `org-tags-column'."
1021 :group 'org-tags
1022 :type 'boolean)
1023
992(defcustom org-use-tag-inheritance t 1024(defcustom org-use-tag-inheritance t
993 "Non-nil means, tags in levels apply also for sublevels. 1025 "Non-nil means, tags in levels apply also for sublevels.
994When nil, only the tags directly give in a specific line apply there." 1026When nil, only the tags directly give in a specific line apply there.
1027If you turn off this option, you very likely want to turn on the
1028companion option `org-tags-match-list-sublevels'."
995 :group 'org-tags 1029 :group 'org-tags
996 :type 'boolean) 1030 :type 'boolean)
997 1031
@@ -1000,7 +1034,9 @@ When nil, only the tags directly give in a specific line apply there."
1000Because of tag inheritance (see variable `org-use-tag-inheritance'), 1034Because of tag inheritance (see variable `org-use-tag-inheritance'),
1001the sublevels of a headline matching a tag search often also match 1035the sublevels of a headline matching a tag search often also match
1002the same search. Listing all of them can create very long lists. 1036the same search. Listing all of them can create very long lists.
1003Setting this variable to nil causes subtrees to be skipped." 1037Setting this variable to nil causes subtrees to be skipped.
1038This option is off by default, because inheritance in on. If you turn
1039inheritance off, you very likely want to turn this option on."
1004 :group 'org-tags 1040 :group 'org-tags
1005 :type 'boolean) 1041 :type 'boolean)
1006 1042
@@ -2721,6 +2757,8 @@ in the region."
2721 (up-head (make-string (1- level) ?*))) 2757 (up-head (make-string (1- level) ?*)))
2722 (if (= level 1) (error "Cannot promote to level 0. UNDO to recover")) 2758 (if (= level 1) (error "Cannot promote to level 0. UNDO to recover"))
2723 (replace-match up-head nil t) 2759 (replace-match up-head nil t)
2760 ;; Fixup tag positioning
2761 (and org-auto-align-tags (org-set-tags nil t))
2724 (if org-adapt-indentation 2762 (if org-adapt-indentation
2725 (org-fixup-indentation "^ " "" "^ ?\\S-")))) 2763 (org-fixup-indentation "^ " "" "^ ?\\S-"))))
2726 2764
@@ -2732,6 +2770,8 @@ in the region."
2732 (let* ((level (save-match-data (funcall outline-level))) 2770 (let* ((level (save-match-data (funcall outline-level)))
2733 (down-head (make-string (1+ level) ?*))) 2771 (down-head (make-string (1+ level) ?*)))
2734 (replace-match down-head nil t) 2772 (replace-match down-head nil t)
2773 ;; Fixup tag positioning
2774 (and org-auto-align-tags (org-set-tags nil t))
2735 (if org-adapt-indentation 2775 (if org-adapt-indentation
2736 (org-fixup-indentation "^ " " " "^\\S-")))) 2776 (org-fixup-indentation "^ " " " "^\\S-"))))
2737 2777
@@ -3467,6 +3507,8 @@ prefix arg, switch to that state."
3467 (org-log-done) 3507 (org-log-done)
3468 (if (not this) 3508 (if (not this)
3469 (org-log-done t)))) 3509 (org-log-done t))))
3510 ;; Fixup tag positioning
3511 (and org-auto-align-tags (org-set-tags nil t))
3470 (run-hooks 'org-after-todo-state-change-hook))) 3512 (run-hooks 'org-after-todo-state-change-hook)))
3471 ;; Fixup cursor location if close to the keyword 3513 ;; Fixup cursor location if close to the keyword
3472 (if (and (outline-on-heading-p) 3514 (if (and (outline-on-heading-p)
@@ -4226,6 +4268,7 @@ The following commands are available:
4226(define-key org-agenda-mode-map "o" 'delete-other-windows) 4268(define-key org-agenda-mode-map "o" 'delete-other-windows)
4227(define-key org-agenda-mode-map "L" 'org-agenda-recenter) 4269(define-key org-agenda-mode-map "L" 'org-agenda-recenter)
4228(define-key org-agenda-mode-map "t" 'org-agenda-todo) 4270(define-key org-agenda-mode-map "t" 'org-agenda-todo)
4271(define-key org-agenda-mode-map ":" 'org-agenda-set-tags)
4229(define-key org-agenda-mode-map "." 'org-agenda-goto-today) 4272(define-key org-agenda-mode-map "." 'org-agenda-goto-today)
4230(define-key org-agenda-mode-map "d" 'org-agenda-day-view) 4273(define-key org-agenda-mode-map "d" 'org-agenda-day-view)
4231(define-key org-agenda-mode-map "w" 'org-agenda-week-view) 4274(define-key org-agenda-mode-map "w" 'org-agenda-week-view)
@@ -4293,6 +4336,7 @@ The following commands are available:
4293 :style toggle :selected org-agenda-follow-mode :active t] 4336 :style toggle :selected org-agenda-follow-mode :active t]
4294 "--" 4337 "--"
4295 ["Cycle TODO" org-agenda-todo t] 4338 ["Cycle TODO" org-agenda-todo t]
4339 ["Set Tags" org-agenda-set-tags t]
4296 ("Reschedule" 4340 ("Reschedule"
4297 ["Reschedule +1 day" org-agenda-date-later t] 4341 ["Reschedule +1 day" org-agenda-date-later t]
4298 ["Reschedule -1 day" org-agenda-date-earlier t] 4342 ["Reschedule -1 day" org-agenda-date-earlier t]
@@ -4338,7 +4382,7 @@ The following commands are available:
4338(defun org-agenda (arg) 4382(defun org-agenda (arg)
4339 "Dispatch agenda commands to collect entries to the agenda buffer. 4383 "Dispatch agenda commands to collect entries to the agenda buffer.
4340Prompts for a character to select a command. Any prefix arg will be passed 4384Prompts for a character to select a command. Any prefix arg will be passed
4341on to the selected command. Possible selections are: 4385on to the selected command. The default selections are:
4342 4386
4343a Call `org-agenda' to display the agenda for the current day or week. 4387a Call `org-agenda' to display the agenda for the current day or week.
4344t Call `org-todo-list' to display the global todo list. 4388t Call `org-todo-list' to display the global todo list.
@@ -4349,35 +4393,70 @@ m Call `org-tags-view' to display headlines with tags matching
4349 selections, like `+WORK+URGENT-WITHBOSS'. 4393 selections, like `+WORK+URGENT-WITHBOSS'.
4350M like `m', but select only TODO entries, no ordinary headlines. 4394M like `m', but select only TODO entries, no ordinary headlines.
4351 4395
4396More commands can be added by configuring the variable
4397`org-agenda-custom-commands'.
4398
4352If the current buffer is in Org-mode and visiting a file, you can also 4399If the current buffer is in Org-mode and visiting a file, you can also
4353first press `1' to indicate that the agenda should be temporarily 4400first press `1' to indicate that the agenda should be temporarily
4354restricted to the current file." 4401restricted to the current file."
4355 (interactive "P") 4402 (interactive "P")
4356 (let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode))) 4403 (catch 'exit
4357 c) 4404 (let ((restrict-ok (and (buffer-file-name) (eq major-mode 'org-mode)))
4358 (put 'org-agenda-files 'org-restrict nil) 4405 (custom org-agenda-custom-commands)
4359 (message"[a]genda [t]odoList [T]odoKwd [m]atchTags [M]atchTagsTodo%s" 4406 c entry key type string)
4360 (if restrict-ok " [1]JustThisFile" "")) 4407 (put 'org-agenda-files 'org-restrict nil)
4361 (setq c (read-char-exclusive)) 4408 (save-window-excursion
4362 (message "") 4409 (delete-other-windows)
4363 (when (equal c ?1) 4410 (switch-to-buffer-other-window " *Agenda Commands*")
4364 (if restrict-ok 4411 (erase-buffer)
4365 (put 'org-agenda-files 'org-restrict (list (buffer-file-name))) 4412 (insert
4366 (error "Cannot restrict agenda to current buffer")) 4413 "Press key for an agenda command:
4367 (message "Single file: [a]genda [t]odoList [T]odoKwd [m]atchTags [M]atchTagsTodo") 4414--------------------------------
4368 (setq c (read-char-exclusive)) 4415a Agenda for current week or day
4369 (message "")) 4416t List of all TODO entries T Entries with special TODO kwd
4370 (cond 4417m Match a TAGS query M Like m, but only TODO entries.
4371 ((equal c ?a) (call-interactively 'org-agenda-list)) 4418C Configure your own agenda commands")
4372 ((equal c ?t) (call-interactively 'org-todo-list)) 4419 (while (setq entry (pop custom))
4373 ((equal c ?T) 4420 (setq key (car entry) type (nth 1 entry) string (nth 2 entry))
4374 (setq current-prefix-arg (or arg '(4))) 4421 (insert (format "\n%-4s%-12s: %s"
4375 (call-interactively 'org-todo-list)) 4422 key
4376 ((equal c ?m) (call-interactively 'org-tags-view)) 4423 (if (eq type 'tags) "Tags query" "TODO keyword")
4377 ((equal c ?M) 4424 string)))
4378 (setq current-prefix-arg (or arg '(4))) 4425 (goto-char (point-min))
4379 (call-interactively 'org-tags-view)) 4426 (fit-window-to-buffer)
4380 (t (error "Invalid key"))))) 4427 (message "Press key for agenda command%s"
4428 (if restrict-ok ", or [1] to restrict to current file" ""))
4429 (setq c (read-char-exclusive))
4430 (message "")
4431 (when (equal c ?1)
4432 (if restrict-ok
4433 (put 'org-agenda-files 'org-restrict (list (buffer-file-name)))
4434 (error "Cannot restrict agenda to current buffer"))
4435 (message "Press key for agenda command%s"
4436 (if restrict-ok " (restricted to current file)" ""))
4437 (setq c (read-char-exclusive))
4438 (message "")))
4439 (require 'calendar) ; FIXME: can we avoid this for some commands?
4440 (cond
4441 ((equal c ?C) (customize-variable 'org-agenda-custom-commands))
4442 ((equal c ?a) (call-interactively 'org-agenda-list))
4443 ((equal c ?t) (call-interactively 'org-todo-list))
4444 ((equal c ?T)
4445 (setq current-prefix-arg (or arg '(4)))
4446 (call-interactively 'org-todo-list))
4447 ((equal c ?m) (call-interactively 'org-tags-view))
4448 ((equal c ?M)
4449 (setq current-prefix-arg (or arg '(4)))
4450 (call-interactively 'org-tags-view))
4451 ((setq entry (assoc (char-to-string c) org-agenda-custom-commands))
4452 (setq type (nth 1 entry) string (nth 2 entry))
4453 (cond
4454 ((eq type 'tags)
4455 (org-tags-view current-prefix-arg string))
4456 ((eq type 'todo)
4457 (org-todo-list string))
4458 (t (error "Invalid custom agenda command type %s" type))))
4459 (t (error "Invalid key"))))))
4381 4460
4382(defun org-fit-agenda-window () 4461(defun org-fit-agenda-window ()
4383 "Fit the window to the buffer size." 4462 "Fit the window to the buffer size."
@@ -4667,7 +4746,8 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
4667 (kwds org-todo-keywords) 4746 (kwds org-todo-keywords)
4668 (completion-ignore-case t) 4747 (completion-ignore-case t)
4669 (org-select-this-todo-keyword 4748 (org-select-this-todo-keyword
4670 (and arg (integerp arg) (nth (1- arg) org-todo-keywords))) 4749 (if (stringp arg) arg
4750 (and arg (integerp arg) (nth (1- arg) org-todo-keywords))))
4671 rtn rtnall files file pos) 4751 rtn rtnall files file pos)
4672 (when (equal arg '(4)) 4752 (when (equal arg '(4))
4673 (setq org-select-this-todo-keyword 4753 (setq org-select-this-todo-keyword
@@ -6005,6 +6085,30 @@ the same tree node, and the headline of the tree node in the Org-mode file."
6005 (org-agenda-change-all-lines newhead hdmarker) 6085 (org-agenda-change-all-lines newhead hdmarker)
6006 (beginning-of-line 1))) 6086 (beginning-of-line 1)))
6007 6087
6088(defun org-agenda-set-tags ()
6089 "Set tags for the current headline."
6090 (interactive)
6091 (org-agenda-check-no-diary)
6092 (let* ((marker (or (get-text-property (point) 'org-marker)
6093 (org-agenda-error)))
6094 (hdmarker (get-text-property (point) 'org-hd-marker))
6095 (buffer (marker-buffer hdmarker))
6096 (pos (marker-position hdmarker))
6097 (buffer-read-only nil)
6098 newhead)
6099 (with-current-buffer buffer
6100 (widen)
6101 (goto-char pos)
6102 (org-show-hidden-entry)
6103 (save-excursion
6104 (and (outline-next-heading)
6105 (org-flag-heading nil))) ; show the next heading
6106 (call-interactively 'org-set-tags)
6107 (end-of-line 1)
6108 (setq newhead (org-get-heading)))
6109 (org-agenda-change-all-lines newhead hdmarker)
6110 (beginning-of-line 1)))
6111
6008(defun org-agenda-date-later (arg &optional what) 6112(defun org-agenda-date-later (arg &optional what)
6009 "Change the date of this item to one day later." 6113 "Change the date of this item to one day later."
6010 (interactive "p") 6114 (interactive "p")
@@ -6269,21 +6373,34 @@ MATCH can contain positive and negative selection of tags, like
6269(defun org-make-tags-matcher (match) 6373(defun org-make-tags-matcher (match)
6270 "Create the TAGS matcher form for the tags-selecting string MATCH." 6374 "Create the TAGS matcher form for the tags-selecting string MATCH."
6271 (unless match 6375 (unless match
6376 ;; Get a new match request, with completion
6272 (setq org-last-tags-completion-table 6377 (setq org-last-tags-completion-table
6273 (or (org-get-buffer-tags) 6378 (or (org-get-buffer-tags)
6274 org-last-tags-completion-table)) 6379 org-last-tags-completion-table))
6275 (setq match (completing-read 6380 (setq match (completing-read
6276 "Tags: " 'org-tags-completion-function nil nil nil 6381 "Tags: " 'org-tags-completion-function nil nil nil
6277 'org-tags-history))) 6382 'org-tags-history)))
6278 (let ((match0 match) minus tag mm matcher) 6383 ;; parse the string and create a lisp form
6279 (while (string-match "^\\([-+:]\\)?\\([A-Za-z_]+\\)" match) 6384 (let ((match0 match) minus tag mm matcher orterms term orlist)
6280 (setq minus (and (match-end 1) (equal (string-to-char match) ?-)) 6385 (setq orterms (org-split-string match "|"))
6281 tag (match-string 2 match) 6386 (while (setq term (pop orterms))
6282 match (substring match (match-end 0)) 6387 (while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_]+\\)" term)
6283 mm (list 'member (downcase tag) 'tags-list) 6388 (setq minus (and (match-end 1)
6284 mm (if minus (list 'not mm) mm)) 6389 (equal (match-string 1 term) "-"))
6285 (push mm matcher)) 6390 tag (match-string 2 term)
6286 (cons match0 (cons 'and matcher)))) 6391 term (substring term (match-end 0))
6392 mm (list 'member (downcase tag) 'tags-list)
6393 mm (if minus (list 'not mm) mm))
6394 (push mm matcher))
6395 (push (if (> (length matcher) 1) (cons 'and matcher) (car matcher))
6396 orlist)
6397 (setq matcher nil))
6398 (setq matcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist)))
6399 ;; Return the string and lisp forms of the matcher
6400 (cons match0 matcher)))
6401
6402;;(org-make-tags-matcher "&hello&-you")
6403
6287 6404
6288;;;###autoload 6405;;;###autoload
6289(defun org-tags-view (&optional todo-only match keep-modes) 6406(defun org-tags-view (&optional todo-only match keep-modes)
@@ -6368,32 +6485,35 @@ With prefix ARG, realign all tags in headings in the current buffer."
6368 (if just-align 6485 (if just-align
6369 (setq tags current) 6486 (setq tags current)
6370 (setq org-last-tags-completion-table 6487 (setq org-last-tags-completion-table
6371 (or (org-get-buffer-tags);; FIXME: replace +- with :, so that we can use history stuff??? 6488 (or (org-get-buffer-tags)
6372 org-last-tags-completion-table)) 6489 org-last-tags-completion-table))
6373 (setq tags 6490 (setq tags
6374 (let ((org-add-colon-after-tag-completion t)) 6491 (let ((org-add-colon-after-tag-completion t))
6375 (completing-read "Tags: " 'org-tags-completion-function 6492 (completing-read "Tags: " 'org-tags-completion-function
6376 nil nil current 'org-tags-history))) 6493 nil nil current 'org-tags-history)))
6377 (while (string-match "[-+]" tags) 6494 (while (string-match "[-+&]+" tags)
6378 (setq tags (replace-match ":" t t tags))) 6495 (setq tags (replace-match ":" t t tags)))
6379 (unless (string-match ":$" tags) (setq tags (concat tags ":"))) 6496 (unless (string-match ":$" tags) (setq tags (concat tags ":")))
6380 (unless (string-match "^:" tags) (setq tags (concat ":" tags)))) 6497 (unless (string-match "^:" tags) (setq tags (concat ":" tags))))
6381 (beginning-of-line 1) 6498 (if (equal current "")
6382 (looking-at (concat "\\(.*\\)\\(" (regexp-quote current) "\\)[ \t]*")) 6499 (end-of-line 1)
6383 (setq hd (save-match-data (org-trim (match-string 1)))) 6500 (beginning-of-line 1)
6384 (delete-region (match-beginning 0) (match-end 0)) 6501 (looking-at (concat "\\(.*\\)\\(" (regexp-quote current) "\\)[ \t]*"))
6385 (insert hd " ") 6502 (setq hd (match-string 1))
6386 (move-to-column (max (current-column) 6503 (delete-region (match-beginning 0) (match-end 0))
6387 (if (> org-tags-column 0) 6504 (insert (org-trim hd) " "))
6388 org-tags-column 6505 (unless (equal tags "")
6389 (- org-tags-column (length tags)))) 6506 (move-to-column (max (current-column)
6390 t) 6507 (if (> org-tags-column 0)
6391 (insert tags) 6508 org-tags-column
6509 (- (- org-tags-column) (length tags))))
6510 t)
6511 (insert tags))
6392 (move-to-column col)))) 6512 (move-to-column col))))
6393 6513
6394(defun org-tags-completion-function (string predicate &optional flag) 6514(defun org-tags-completion-function (string predicate &optional flag)
6395 (let (s1 s2 rtn (ctable org-last-tags-completion-table)) 6515 (let (s1 s2 rtn (ctable org-last-tags-completion-table))
6396 (if (string-match "^\\(.*[-+:]\\)\\([^-+:]*\\)$" string) 6516 (if (string-match "^\\(.*[-+:&|]\\)\\([^-+:&|]*\\)$" string)
6397 (setq s1 (match-string 1 string) 6517 (setq s1 (match-string 1 string)
6398 s2 (match-string 2 string)) 6518 s2 (match-string 2 string))
6399 (setq s1 "" s2 string)) 6519 (setq s1 "" s2 string))
@@ -11610,19 +11730,13 @@ See the individual commands for more information."
11610 ["Goto Calendar" org-goto-calendar t] 11730 ["Goto Calendar" org-goto-calendar t]
11611 ["Date from Calendar" org-date-from-calendar t]) 11731 ["Date from Calendar" org-date-from-calendar t])
11612 "--" 11732 "--"
11613 ("Agenda/Summary Views" 11733 ["Agenda Command" org-agenda t]
11614 "Current File" 11734 ("File List for Agenda")
11735 ("Special views current file"
11615 ["TODO Tree" org-show-todo-tree t] 11736 ["TODO Tree" org-show-todo-tree t]
11616 ["Check Deadlines" org-check-deadlines t] 11737 ["Check Deadlines" org-check-deadlines t]
11617 ["Timeline" org-timeline t] 11738 ["Timeline" org-timeline t]
11618 ["Tags Tree" org-tags-sparse-tree t] 11739 ["Tags Tree" org-tags-sparse-tree t])
11619 "--"
11620 "All Agenda Files"
11621 ["Command Dispatcher" org-agenda t]
11622 ["TODO list" org-todo-list t]
11623 ["Agenda" org-agenda-list t]
11624 ["Tags View" org-tags-view t])
11625 ("File List for Agenda")
11626 "--" 11740 "--"
11627 ("Hyperlinks" 11741 ("Hyperlinks"
11628 ["Store Link (Global)" org-store-link t] 11742 ["Store Link (Global)" org-store-link t]
@@ -12011,5 +12125,3 @@ Show the heading too, if it is currently invisible."
12011 12125
12012;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd 12126;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
12013;;; org.el ends here 12127;;; org.el ends here
12014
12015
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el
index 5d528dec109..78741065100 100644
--- a/lisp/textmodes/picture.el
+++ b/lisp/textmodes/picture.el
@@ -661,60 +661,69 @@ Picture mode is invoked by the command \\[picture-mode]."
661;;;###autoload 661;;;###autoload
662(defun picture-mode () 662(defun picture-mode ()
663 "Switch to Picture mode, in which a quarter-plane screen model is used. 663 "Switch to Picture mode, in which a quarter-plane screen model is used.
664\\<picture-mode-map>
664Printing characters replace instead of inserting themselves with motion 665Printing characters replace instead of inserting themselves with motion
665afterwards settable by these commands: 666afterwards settable by these commands:
666 C-c < Move left after insertion. 667
667 C-c > Move right after insertion. 668 Move left after insertion: \\[picture-movement-left]
668 C-c ^ Move up after insertion. 669 Move right after insertion: \\[picture-movement-right]
669 C-c . Move down after insertion. 670 Move up after insertion: \\[picture-movement-up]
670 C-c ` Move northwest (nw) after insertion. 671 Move down after insertion: \\[picture-movement-down]
671 C-c ' Move northeast (ne) after insertion. 672
672 C-c / Move southwest (sw) after insertion. 673 Move northwest (nw) after insertion: \\[picture-movement-nw]
673 C-c \\ Move southeast (se) after insertion. 674 Move northeast (ne) after insertion: \\[picture-movement-ne]
674 C-u C-c ` Move westnorthwest (wnw) after insertion. 675 Move southwest (sw) after insertion: \\[picture-movement-sw]
675 C-u C-c ' Move eastnortheast (ene) after insertion. 676 Move southeast (se) after insertion: \\[picture-movement-se]
676 C-u C-c / Move westsouthwest (wsw) after insertion. 677
677 C-u C-c \\ Move eastsoutheast (ese) after insertion. 678 Move westnorthwest (wnw) after insertion: C-u \\[picture-movement-nw]
679 Move eastnortheast (ene) after insertion: C-u \\[picture-movement-ne]
680 Move westsouthwest (wsw) after insertion: C-u \\[picture-movement-sw]
681 Move eastsoutheast (ese) after insertion: C-u \\[picture-movement-se]
682
678The current direction is displayed in the mode line. The initial 683The current direction is displayed in the mode line. The initial
679direction is right. Whitespace is inserted and tabs are changed to 684direction is right. Whitespace is inserted and tabs are changed to
680spaces when required by movement. You can move around in the buffer 685spaces when required by movement. You can move around in the buffer
681with these commands: 686with these commands:
682 \\[picture-move-down] Move vertically to SAME column in previous line. 687
683 \\[picture-move-up] Move vertically to SAME column in next line. 688 Move vertically to SAME column in previous line: \\[picture-move-down]
684 \\[picture-end-of-line] Move to column following last non-whitespace character. 689 Move vertically to SAME column in next line: \\[picture-move-up]
685 \\[picture-forward-column] Move right inserting spaces if required. 690 Move to column following last
686 \\[picture-backward-column] Move left changing tabs to spaces if required. 691 non-whitespace character: \\[picture-end-of-line]
687 C-c C-f Move in direction of current picture motion. 692 Move right, inserting spaces if required: \\[picture-forward-column]
688 C-c C-b Move in opposite direction of current picture motion. 693 Move left changing tabs to spaces if required: \\[picture-backward-column]
689 Return Move to beginning of next line. 694 Move in direction of current picture motion: \\[picture-motion]
695 Move opposite to current picture motion: \\[picture-motion-reverse]
696 Move to beginning of next line: \\[next-line]
697
690You can edit tabular text with these commands: 698You can edit tabular text with these commands:
691 M-Tab Move to column beneath (or at) next interesting character. 699
692 `Indents' relative to a previous line. 700 Move to column beneath (or at) next interesting
693 Tab Move to next stop in tab stop list. 701 character (see variable `picture-tab-chars'): \\[picture-tab-search]
694 C-c Tab Set tab stops according to context of this line. 702 Move to next stop in tab stop list: \\[picture-tab]
695 With ARG resets tab stops to default (global) value. 703 Set tab stops according to context of this line: \\[picture-set-tab-stops]
696 See also documentation of variable picture-tab-chars 704 (With ARG, resets tab stops to default value.)
697 which defines \"interesting character\". You can manually 705 Change the tab stop list: \\[edit-tab-stops]
698 change the tab stop list with command \\[edit-tab-stops]. 706
699You can manipulate text with these commands: 707You can manipulate text with these commands:
700 C-d Clear (replace) ARG columns after point without moving. 708 Clear ARG columns after point without moving: \\[picture-clear-column]
701 C-c C-d Delete char at point - the command normally assigned to C-d. 709 Delete char at point: \\[delete-char]
702 \\[picture-backward-clear-column] Clear (replace) ARG columns before point, moving back over them. 710 Clear ARG columns backward: \\[picture-backward-clear-column]
703 \\[picture-clear-line] Clear ARG lines, advancing over them. The cleared 711 Clear ARG lines, advancing over them: \\[picture-clear-line]
704 text is saved in the kill ring. 712 (the cleared text is saved in the kill ring)
705 \\[picture-open-line] Open blank line(s) beneath current line. 713 Open blank line(s) beneath current line: \\[picture-open-line]
714
706You can manipulate rectangles with these commands: 715You can manipulate rectangles with these commands:
707 C-c C-k Clear (or kill) a rectangle and save it. 716 Clear a rectangle and save it: \\[picture-clear-rectangle]
708 C-c C-w Like C-c C-k except rectangle is saved in named register. 717 Clear a rectangle, saving in a named register: \\[picture-clear-rectangle-to-register]
709 C-c C-y Overlay (or insert) currently saved rectangle at point. 718 Insert currently saved rectangle at point: \\[picture-yank-rectangle]
710 C-c C-x Like C-c C-y except rectangle is taken from named register. 719 Insert rectangle from named register: \\[picture-yank-rectangle-from-register]
711 C-c C-r Draw a rectangular box around mark and point. 720 Draw a rectangular box around mark and point: \\[picture-draw-rectangle]
712 \\[copy-rectangle-to-register] Copies a rectangle to a register. 721 Copies a rectangle to a register: \\[copy-rectangle-to-register]
713 \\[advertised-undo] Can undo effects of rectangle overlay commands 722 Undo effects of rectangle overlay commands: \\[advertised-undo]
714 if invoked soon enough. 723
715You can return to the previous mode with: 724You can return to the previous mode with \\[picture-mode-exit], which
716 C-c C-c Which also strips trailing whitespace from every line. 725also strips trailing whitespace from every line. Stripping is suppressed
717 Stripping is suppressed by supplying an argument. 726by supplying an argument.
718 727
719Entry to this mode calls the value of `picture-mode-hook' if non-nil. 728Entry to this mode calls the value of `picture-mode-hook' if non-nil.
720 729
diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index 8f609601822..e88bc6017ce 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -29,7 +29,15 @@
29 29
30(defvar comint-prompt-regexp) 30(defvar comint-prompt-regexp)
31 31
32;;; Customizable settings 32(defgroup tooltip nil
33 "Customization group for the `tooltip' package."
34 :group 'help
35 :group 'gud
36 :group 'mouse
37 :group 'tools
38 :version "21.1"
39 :tag "Tool Tips")
40
33;;; Switching tooltips on/off 41;;; Switching tooltips on/off
34 42
35;; We don't set track-mouse globally because this is a big redisplay 43;; We don't set track-mouse globally because this is a big redisplay
@@ -60,14 +68,8 @@ With ARG, turn tooltip mode on if and only if ARG is positive."
60 (setq show-help-function 68 (setq show-help-function
61 (if tooltip-mode 'tooltip-show-help nil))) 69 (if tooltip-mode 'tooltip-show-help nil)))
62 70
63(defgroup tooltip nil 71
64 "Customization group for the `tooltip' package." 72;;; Customizable settings
65 :group 'help
66 :group 'gud
67 :group 'mouse
68 :group 'tools
69 :version "21.1"
70 :tag "Tool Tips")
71 73
72(defcustom tooltip-delay 0.7 74(defcustom tooltip-delay 0.7
73 "Seconds to wait before displaying a tooltip the first time." 75 "Seconds to wait before displaying a tooltip the first time."
@@ -92,9 +94,10 @@ Do so after `tooltip-short-delay'."
92 94
93(defcustom tooltip-x-offset 5 95(defcustom tooltip-x-offset 5
94 "X offset, in pixels, for the display of tooltips. 96 "X offset, in pixels, for the display of tooltips.
95The offset is relative to the position of the mouse. It must 97The offset is the distance between the X position of the mouse and
96be chosen so that the tooltip window doesn't contain the mouse 98the left border of the tooltip window. It must be chosen so that the
97when it pops up. 99tooltip window doesn't contain the mouse when it pops up, or it may
100interfere with clicking where you wish.
98 101
99If `tooltip-frame-parameters' includes the `left' parameter, 102If `tooltip-frame-parameters' includes the `left' parameter,
100the value of `tooltip-x-offset' is ignored." 103the value of `tooltip-x-offset' is ignored."
@@ -103,9 +106,10 @@ the value of `tooltip-x-offset' is ignored."
103 106
104(defcustom tooltip-y-offset +20 107(defcustom tooltip-y-offset +20
105 "Y offset, in pixels, for the display of tooltips. 108 "Y offset, in pixels, for the display of tooltips.
106The offset is relative to the position of the mouse. It must 109The offset is the distance between the Y position of the mouse and
107be chosen so that the tooltip window doesn't contain the mouse 110the top border of the tooltip window. It must be chosen so that the
108when it pops up. 111tooltip window doesn't contain the mouse when it pops up, or it may
112interfere with clicking where you wish.
109 113
110If `tooltip-frame-parameters' includes the `top' parameter, 114If `tooltip-frame-parameters' includes the `top' parameter,
111the value of `tooltip-y-offset' is ignored." 115the value of `tooltip-y-offset' is ignored."
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index a0ccaa487c1..1058beb9f23 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,19 @@
12005-12-20 Luc Teirlinck <teirllm@auburn.edu>
2
3 * customize.texi (Type Keywords): Delete xref to "Text help-echo",
4 because it is confusing. If the :help-echo keyword is a function,
5 it is not directly used as the :help-echo overlay property, as the
6 xref seems to suggest (it does not take the appropriate args).
7
82005-12-19 Luc Teirlinck <teirllm@auburn.edu>
9
10 * customize.texi (Common Keywords): Fix Texinfo usage.
11 (Group Definitions, Variable Definitions): Update for new
12 conventions for using `*' in docstrings.
13
14 * tips.texi (Documentation Tips): Update for new conventions for
15 using `*' in docstrings.
16
12005-12-16 Richard M. Stallman <rms@gnu.org> 172005-12-16 Richard M. Stallman <rms@gnu.org>
2 18
3 * minibuf.texi (Minibuffer Contents): Minor cleanup. 19 * minibuf.texi (Minibuffer Contents): Minor cleanup.
diff --git a/lispref/customize.texi b/lispref/customize.texi
index 1170a909118..d899e1be042 100644
--- a/lispref/customize.texi
+++ b/lispref/customize.texi
@@ -76,7 +76,7 @@ in the customization buffer with the Info node name.
76Link to a web page; @var{url} is a string which specifies the 76Link to a web page; @var{url} is a string which specifies the
77@acronym{URL}. The link appears in the customization buffer as 77@acronym{URL}. The link appears in the customization buffer as
78@var{url} and invokes the WWW browser specified by 78@var{url} and invokes the WWW browser specified by
79@var{browse-url-browser-function}. 79@code{browse-url-browser-function}.
80 80
81@item (emacs-commentary-link @var{library}) 81@item (emacs-commentary-link @var{library})
82Link to the commentary section of a library; @var{library} is a string 82Link to the commentary section of a library; @var{library} is a string
@@ -155,8 +155,7 @@ keyword.
155@defmac defgroup group members doc [keyword value]@dots{} 155@defmac defgroup group members doc [keyword value]@dots{}
156Declare @var{group} as a customization group containing @var{members}. 156Declare @var{group} as a customization group containing @var{members}.
157Do not quote the symbol @var{group}. The argument @var{doc} specifies 157Do not quote the symbol @var{group}. The argument @var{doc} specifies
158the documentation string for the group. It should not start with a 158the documentation string for the group.
159@samp{*} as in @code{defcustom}; that convention is for variables only.
160 159
161The argument @var{members} is a list specifying an initial set of 160The argument @var{members} is a list specifying an initial set of
162customization items to be members of the group. However, most often 161customization items to be members of the group. However, most often
@@ -211,12 +210,9 @@ turn this feature back on, if someone would like to do the work.
211@defmac defcustom option default doc [keyword value]@dots{} 210@defmac defcustom option default doc [keyword value]@dots{}
212Declare @var{option} as a customizable user option variable. Do not 211Declare @var{option} as a customizable user option variable. Do not
213quote @var{option}. The argument @var{doc} specifies the documentation 212quote @var{option}. The argument @var{doc} specifies the documentation
214string for the variable. It should often start with a @samp{*} to mark 213string for the variable. There is no need to start it with a @samp{*}
215it as a @dfn{user option} (@pxref{Defining Variables}). Do not start 214because @code{defcustom} automatically marks @var{option} as a
216the documentation string with @samp{*} for options which cannot or 215@dfn{user option} (@pxref{Defining Variables}).
217normally should not be set with @code{set-variable}; examples of the
218former are global minor mode options such as
219@code{global-font-lock-mode} and examples of the latter are hooks.
220 216
221If @var{option} is void, @code{defcustom} initializes it to 217If @var{option} is void, @code{defcustom} initializes it to
222@var{default}. @var{default} should be an expression to compute the 218@var{default}. @var{default} should be an expression to compute the
@@ -1015,7 +1011,6 @@ the echo area. In addition, @var{motion-doc} is used as the mouse
1015@code{help-echo} string and may actually be a function or form evaluated 1011@code{help-echo} string and may actually be a function or form evaluated
1016to yield a help string. If it is a function, it is called with one 1012to yield a help string. If it is a function, it is called with one
1017argument, the widget. 1013argument, the widget.
1018@xref{Text help-echo}.
1019 1014
1020@item :match @var{function} 1015@item :match @var{function}
1021Specify how to decide whether a value matches the type. The 1016Specify how to decide whether a value matches the type. The
diff --git a/lispref/help.texi b/lispref/help.texi
index c7c99fa8987..4821478a3ad 100644
--- a/lispref/help.texi
+++ b/lispref/help.texi
@@ -133,11 +133,17 @@ unless @var{verbatim} is non-@code{nil}.
133(symbol-plist 'command-line-processed) 133(symbol-plist 'command-line-processed)
134 @result{} (variable-documentation 188902) 134 @result{} (variable-documentation 188902)
135@end group 135@end group
136@group
137(documentation-property 'emacs 'group-documentation)
138 @result{} "Customization of the One True Editor."
139@end group
136@end smallexample 140@end smallexample
137@end defun 141@end defun
138 142
139@defun documentation function &optional verbatim 143@defun documentation function &optional verbatim
140This function returns the documentation string of @var{function}. 144This function returns the documentation string of @var{function}.
145@code{documentation} handles macros, named keyboard macros, and
146special forms, as well as ordinary functions.
141 147
142If @var{function} is a symbol, this function first looks for the 148If @var{function} is a symbol, this function first looks for the
143@code{function-documentation} property of that symbol; if that has a 149@code{function-documentation} property of that symbol; if that has a
@@ -157,6 +163,11 @@ the function definition has no documentation string. In that case,
157@code{documentation} returns @code{nil}. 163@code{documentation} returns @code{nil}.
158@end defun 164@end defun
159 165
166@defun face-documentation face
167This function returns the documentation string of @var{face} as a
168face.
169@end defun
170
160@c Wordy to prevent overfull hboxes. --rjc 15mar92 171@c Wordy to prevent overfull hboxes. --rjc 15mar92
161Here is an example of using the two functions, @code{documentation} and 172Here is an example of using the two functions, @code{documentation} and
162@code{documentation-property}, to display the documentation strings for 173@code{documentation-property}, to display the documentation strings for
@@ -498,15 +509,28 @@ the user as subcommands of the prefix @kbd{C-h}. For more information
498about them, see @ref{Help, , Help, emacs, The GNU Emacs Manual}. Here 509about them, see @ref{Help, , Help, emacs, The GNU Emacs Manual}. Here
499we describe some program-level interfaces to the same information. 510we describe some program-level interfaces to the same information.
500 511
501@deffn Command apropos regexp &optional do-all 512@deffn Command apropos pattern &optional do-all
502This function finds all ``meaningful'' symbols whose names contain a 513This function finds all ``meaningful'' symbols whose names contain a
503match for the regular expression @var{regexp}, and returns a list of 514match for the apropos pattern @var{pattern}. An apropos pattern is
504them, with associated documentation (@pxref{Regular Expressions}). It 515either a word to match, a space-separated list of words of which at
505also displays the symbols in a buffer named @samp{*Apropos*}, each 516least two must match, or a regular expression (if any special regular
506with a one-line description taken from the beginning of its 517expression characters occur). A symbol is ``meaningful'' if it has a
507documentation string. A symbol is ``meaningful'' if it has a
508definition as a function, variable, or face, or has properties. 518definition as a function, variable, or face, or has properties.
509 519
520The function returns a list of elements that look like this:
521
522@example
523(@var{symbol} @var{score} @var{fn-doc} @var{var-doc} @var{plist-doc} @var{widget-doc} @var{face-doc} @var{group-doc})
524@end example
525
526Here, @var{score} is an integer measure of how important the symbol
527seems to be as a match, and the remaining elements are documentation
528strings for @var{symbol}'s various roles (or @code{nil}).
529
530It also displays the symbols in a buffer named @samp{*Apropos*}, each
531with a one-line description taken from the beginning of its
532documentation string.
533
510@c Emacs 19 feature 534@c Emacs 19 feature
511If @var{do-all} is non-@code{nil}, or if the user option 535If @var{do-all} is non-@code{nil}, or if the user option
512@code{apropos-do-all} is non-@code{nil}, then @code{apropos} also 536@code{apropos-do-all} is non-@code{nil}, then @code{apropos} also
diff --git a/lispref/tips.texi b/lispref/tips.texi
index ee2a7ba83e0..165c4a9f084 100644
--- a/lispref/tips.texi
+++ b/lispref/tips.texi
@@ -640,11 +640,10 @@ first blank line. If you wish, you can choose which information to
640include before the first blank line so as to make this display useful. 640include before the first blank line so as to make this display useful.
641 641
642@item 642@item
643A variable's documentation string should start with @samp{*} if the 643When you define a variable that users ought to set interactively, you
644variable is one that users would often want to set interactively. If 644normally should use @code{defcustom}. However, if for some reason you
645the value is a long list, or a function, or if the variable would be set 645use @code{defvar} instead, start the doc string with a @samp{*}.
646only in init files, then don't start the documentation string with 646@xref{Defining Variables}.
647@samp{*}. @xref{Defining Variables}.
648 647
649@item 648@item
650The documentation string for a variable that is a yes-or-no flag should 649The documentation string for a variable that is a yes-or-no flag should
diff --git a/mac/ChangeLog b/mac/ChangeLog
index cc097906046..5f538eb09e0 100644
--- a/mac/ChangeLog
+++ b/mac/ChangeLog
@@ -1,3 +1,7 @@
12005-12-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * makefile.MPW (macselect.c.x): Depend on keymap.h.
4
12005-12-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 52005-12-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 6
3 * Emacs.app/Contents/Info.plist: Add CFBundleURLTypes key and 7 * Emacs.app/Contents/Info.plist: Add CFBundleURLTypes key and
diff --git a/mac/makefile.MPW b/mac/makefile.MPW
index 4c999a90dfa..ec9e4126371 100644
--- a/mac/makefile.MPW
+++ b/mac/makefile.MPW
@@ -903,6 +903,7 @@ buildobj.lst Ä
903 "{Src}macterm.h" ¶ 903 "{Src}macterm.h" ¶
904 "{Src}macgui.h" ¶ 904 "{Src}macgui.h" ¶
905 "{Src}frame.h" ¶ 905 "{Src}frame.h" ¶
906 "{Src}keymap.h" ¶
906 {BLOCKINPUT_H_GROUP} 907 {BLOCKINPUT_H_GROUP}
907 908
908{Src}mac.c Ä ¶ 909{Src}mac.c Ä ¶
diff --git a/man/ChangeLog b/man/ChangeLog
index 490b4f5420e..2c68beb84a3 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,4 +1,44 @@
12005-12-12 Katsumi Yamaoka <yamaoka@jpl.org> 12005-12-20 Juri Linkov <juri@jurta.org>
2
3 * files.texi (VC Status): Put P and N near p and n.
4
52005-12-20 Carsten Dominik <dominik@science.uva.nl>
6
7 * org.texi: (Tags): Boolean logic documented.
8 (Agenda Views): Document custom commands.
9
102005-12-20 David Kastrup <dak@gnu.org>
11
12 * faq.texi (AUCTeX): Update version and mailing list info.
13
142005-12-19 Richard M. Stallman <rms@gnu.org>
15
16 * programs.texi (Electric C): Delete the info about newline control.
17 (Other C Commands): Minor cleanup.
18 (Left Margin Paren): Minor cleanup.
19
202005-12-19 Luc Teirlinck <teirllm@auburn.edu>
21
22 * custom.texi (Easy Customization): Add "Browsing Custom" to menu.
23 (Customization Groups): Delete text moved to "Browsing Custom".
24 (Browsing Custom): New node.
25 (Specific Customization): Clarify which commands only work for
26 loaded options.
27
282005-12-18 Bill Wohler <wohler@newt.com>
29
30 * frames.texi (Tool Bars): Shorten text of previous change.
31
322005-12-18 Aaron S. Hawley <Aaron.Hawley@uvm.edu>
33
34 * files.texi (VC Status): Document log-view mode.
35
362005-12-18 Bill Wohler <wohler@newt.com>
37
38 * frames.texi (Tool Bars): Mention that you can turn off tool bars
39 permanently via the customize interface.
40
412005-12-17 Katsumi Yamaoka <yamaoka@jpl.org>
2 42
3 * gnus.texi (MIME Commands): Mention addition of 43 * gnus.texi (MIME Commands): Mention addition of
4 multipart/alternative to gnus-buttonized-mime-types and add xref 44 multipart/alternative to gnus-buttonized-mime-types and add xref
@@ -10,7 +50,7 @@
10 50
112005-12-16 Carsten Dominik <dominik@science.uva.nl> 512005-12-16 Carsten Dominik <dominik@science.uva.nl>
12 52
13 * org.texi: (Tags): New section. 53 * org.texi (Tags): New section.
14 (Agenda Views): Chapter reorganized. 54 (Agenda Views): Chapter reorganized.
15 55
162005-12-16 Ralf Angeli <angeli@iwi.uni-sb.de> 562005-12-16 Ralf Angeli <angeli@iwi.uni-sb.de>
@@ -43,7 +83,7 @@
43 83
442005-12-12 Carsten Dominik <dominik@science.uva.nl> 842005-12-12 Carsten Dominik <dominik@science.uva.nl>
45 85
46 * org.texi: (Progress Logging): New section. 86 * org.texi (Progress Logging): New section.
47 87
482005-12-12 Richard M. Stallman <rms@gnu.org> 882005-12-12 Richard M. Stallman <rms@gnu.org>
49 89
@@ -355,7 +395,7 @@
355 * help.texi (Help Echo): By default, help echos are only shown on 395 * help.texi (Help Echo): By default, help echos are only shown on
356 mouse-over, not on point-over. 396 mouse-over, not on point-over.
357 397
3582005-11-04 J,bi(Br,bt(Bme Marant <jerome@marant.org> 3982005-11-04 J,Ai(Br,At(Bme Marant <jerome@marant.org>
359 399
360 * misc.texi (Shell Mode): Describe how to activate password echoing. 400 * misc.texi (Shell Mode): Describe how to activate password echoing.
361 401
@@ -4158,7 +4198,7 @@
4158 (../info/ses, ses.dvi): New targets. 4198 (../info/ses, ses.dvi): New targets.
4159 * ses.texi: New file. 4199 * ses.texi: New file.
4160 4200
41612002-09-06 Pavel Jan,Bm(Bk <Pavel@Janik.cz> 42012002-09-06 Pavel Jan,Am(Bk <Pavel@Janik.cz>
4162 4202
4163 * texinfo.tex: Update to texinfo 4.2. 4203 * texinfo.tex: Update to texinfo 4.2.
4164 4204
@@ -4166,7 +4206,7 @@
4166 4206
4167 * reftex.texi: Update to RefTeX 4.19. 4207 * reftex.texi: Update to RefTeX 4.19.
4168 4208
41692002-06-17 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> 42092002-06-17 Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
4170 4210
4171 * Makefile.in (INFO_TARGETS, DVI_TARGETS): Add Tramp. 4211 * Makefile.in (INFO_TARGETS, DVI_TARGETS): Add Tramp.
4172 (../info/tramp, tramp.dvi): New targets. 4212 (../info/tramp, tramp.dvi): New targets.
diff --git a/man/custom.texi b/man/custom.texi
index 7750efb04ad..c1442ca2f3c 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -206,6 +206,7 @@ the active fields and other features.
206 206
207@menu 207@menu
208* Groups: Customization Groups. How options are classified in a structure. 208* Groups: Customization Groups. How options are classified in a structure.
209* Browsing: Browsing Custom. Browsing and searching for options and faces.
209* Changing a Variable:: How to edit a value and set an option. 210* Changing a Variable:: How to edit a value and set an option.
210* Saving Customizations:: Specifying the file for saving customizations. 211* Saving Customizations:: Specifying the file for saving customizations.
211* Face Customization:: How to edit the attributes of a face. 212* Face Customization:: How to edit the attributes of a face.
@@ -275,9 +276,13 @@ Then you can use the customization buffer to set the options
275pertaining to that feature. You can also go straight to a particular 276pertaining to that feature. You can also go straight to a particular
276group by name, using the command @kbd{M-x customize-group}. 277group by name, using the command @kbd{M-x customize-group}.
277 278
279@node Browsing Custom
280@subsection Browsing and Searching for Options and Faces
278@findex customize-browse 281@findex customize-browse
279 You can view the structure of customization groups on a larger scale 282You can use @kbd{M-x customize} to browse the groups and options, but
280with @kbd{M-x customize-browse}. This command creates a special kind of 283often @kbd{M-x customize-browse} is a more efficient alternative.
284That is because it lets you view the structure of customization groups
285on a larger scale. This command creates a special kind of
281customization buffer which shows only the names of the groups (and 286customization buffer which shows only the names of the groups (and
282variables and faces), and their structure. 287variables and faces), and their structure.
283 288
@@ -291,6 +296,13 @@ that active field creates an ordinary customization buffer showing just
291that group and its contents, just that variable, or just that face. 296that group and its contents, just that variable, or just that face.
292This is the way to set values in it. 297This is the way to set values in it.
293 298
299 If you can guess part of the name of the options you are interested
300in, then sometimes @kbd{M-x customize-apropos} can be another useful
301way to search for options. However, unlike @code{customize} and
302@code{customize-browse}, @code{customize-apropos} can only find
303options that are loaded in the current Emacs session. @xref{Specific
304Customization,, Customizing Specific Items}.
305
294@node Changing a Variable 306@node Changing a Variable
295@subsection Changing a Variable 307@subsection Changing a Variable
296 308
@@ -627,7 +639,9 @@ buffer, and you know its name, you can use the command @kbd{M-x
627customize-variable} and specify the variable name. This sets up the 639customize-variable} and specify the variable name. This sets up the
628customization buffer with just one variable---the one that you asked 640customization buffer with just one variable---the one that you asked
629for. Editing, setting and saving the value work as described above, 641for. Editing, setting and saving the value work as described above,
630but only for the specified variable. 642but only for the specified variable. Minibuffer completion is very
643handy if you only know part of the name. However, it only finds
644options that have been loaded in the current Emacs session.
631 645
632@findex customize-face 646@findex customize-face
633 Likewise, you can modify a specific face, chosen by name, using 647 Likewise, you can modify a specific face, chosen by name, using
@@ -638,15 +652,16 @@ on the character after point.
638 You can also set up the customization buffer with a specific group, 652 You can also set up the customization buffer with a specific group,
639using @kbd{M-x customize-group}. The immediate contents of the chosen 653using @kbd{M-x customize-group}. The immediate contents of the chosen
640group, including user options, faces, and other groups, all appear 654group, including user options, faces, and other groups, all appear
641as well. However, these subgroups' own contents are not included. 655as well (even if not already loaded). However, the subgroups' own
656contents are not included.
642 657
643@findex customize-apropos 658@findex customize-apropos
644 To control more precisely what to customize, you can use @kbd{M-x 659 To control more precisely what to customize, you can use @kbd{M-x
645customize-apropos}. You specify a regular expression as argument; then 660customize-apropos}. You specify a regular expression as argument; then
646all options, faces and groups whose names match this regular expression 661all @emph{loaded} options, faces and groups whose names match this
647are set up in the customization buffer. If you specify an empty regular 662regular expression are set up in the customization buffer. If you
648expression, this includes @emph{all} groups, options and faces (but 663specify an empty regular expression, this includes @emph{all} groups,
649that takes a long time). 664options and faces (but that takes a long time).
650 665
651@findex customize-changed-options 666@findex customize-changed-options
652 When you upgrade to a new Emacs version, you might want to customize 667 When you upgrade to a new Emacs version, you might want to customize
@@ -654,7 +669,8 @@ new options and options whose meanings or default values have changed.
654To do this, use @kbd{M-x customize-changed-options} and specify a 669To do this, use @kbd{M-x customize-changed-options} and specify a
655previous Emacs version number using the minibuffer. It creates a 670previous Emacs version number using the minibuffer. It creates a
656customization buffer which shows all the options (and groups) whose 671customization buffer which shows all the options (and groups) whose
657definitions have been changed since the specified version. 672definitions have been changed since the specified version. (Not just
673those that are already loaded.)
658 674
659@findex customize-saved 675@findex customize-saved
660@findex customize-customized 676@findex customize-customized
diff --git a/man/faq.texi b/man/faq.texi
index b7f8311f58f..36564482cc7 100644
--- a/man/faq.texi
+++ b/man/faq.texi
@@ -3844,10 +3844,12 @@ better than the one distributed with Emacs:
3844AUC@TeX{} is a set of sophisticated major modes for @TeX{}, LaTeX, 3844AUC@TeX{} is a set of sophisticated major modes for @TeX{}, LaTeX,
3845ConTeXt, and Texinfo offering context-sensitive syntax highlighting, 3845ConTeXt, and Texinfo offering context-sensitive syntax highlighting,
3846indentation, formatting and folding, macro completion, @TeX{} shell 3846indentation, formatting and folding, macro completion, @TeX{} shell
3847functionality, and debugging. Some important supplemental packages are 3847functionality, and debugging. Be also sure to check out
3848described in @ref{Introduction, RefTeX, Introduction, reftex, Ref@TeX{} 3848@ref{Introduction, RefTeX, Introduction, reftex, Ref@TeX{} User Manual}.
3849User Manual}, and 3849Current versions of AUC@TeX{} include the
3850@uref{http://preview-latex.sourceforge.net,preview-latex}. 3850@uref{http://www.gnu.org/software/auctex/preview-latex,preview-latex}
3851package for WYSIWYG previews of various LaTeX constructs in the Emacs
3852source buffer.
3851 3853
3852@table @b 3854@table @b
3853 3855
@@ -3859,7 +3861,7 @@ User Manual}, and
3859@email{dak@@gnu.org, David Kastrup} 3861@email{dak@@gnu.org, David Kastrup}
3860 3862
3861@item Latest version 3863@item Latest version
386211.54 386411.82
3863 3865
3864@item Distribution 3866@item Distribution
3865@uref{ftp://ftp.gnu.org/pub/gnu/auctex/} 3867@uref{ftp://ftp.gnu.org/pub/gnu/auctex/}
@@ -3868,8 +3870,8 @@ User Manual}, and
3868@uref{http://www.gnu.org/software/auctex/} 3870@uref{http://www.gnu.org/software/auctex/}
3869 3871
3870@item Mailing list: 3872@item Mailing list:
3871Subscription requests to @email{auc-tex-subscribe@@sunsite.dk}@* 3873Subscription requests to @email{auctex-request@@gnu.org}@*
3872Submissions to @email{auc-tex@@sunsite.dk} 3874Submissions to @email{auctex@@gnu.org}
3873 3875
3874@end table 3876@end table
3875 3877
diff --git a/man/files.texi b/man/files.texi
index 860b346f91b..d599e576e94 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -1788,7 +1788,46 @@ Display version control state and change history.
1788 To view the detailed version control status and history of a file, 1788 To view the detailed version control status and history of a file,
1789type @kbd{C-x v l} (@code{vc-print-log}). It displays the history of 1789type @kbd{C-x v l} (@code{vc-print-log}). It displays the history of
1790changes to the current file, including the text of the log entries. The 1790changes to the current file, including the text of the log entries. The
1791output appears in a separate window. 1791output appears in a separate window. The point is centered at the
1792revision of the file that is currently being visited.
1793
1794From the change log buffer, the following keys are used to move
1795between the logs of revisions and files, to view past revisions, and
1796to view diffs:
1797
1798@table @kbd
1799@item p
1800Move to the previous revision-item in the buffer. (Revision entries in the log
1801buffer are usually in reverse-chronological order, so the previous
1802revision-item usually corresponds to a newer revision.) A numeric
1803prefix argument is a repeat count.
1804
1805@item n
1806Move to the next revision-item (which most often corresponds to the
1807previous revision of the file). A numeric prefix argument is a repeat
1808count.
1809
1810@item P
1811Move to the log of the previous file, when the logs of multiple files
1812are in the log buffer (@pxref{VC Dired Mode}). Otherwise, just move
1813to the beginning of the log. A numeric prefix argument is a repeat
1814count, so @kbd{C-u 10 P} would move backward 10 files.
1815
1816@item N
1817Move to the log of the next file, when the logs of multiple files are
1818in the log buffer (@pxref{VC Dired Mode}). It also takes a numeric
1819prefix argument as a repeat count.
1820
1821@item f
1822Visit the revision indicated at the current line, like typing @kbd{C-x
1823v ~} and specifying this revision's number (@pxref{Old Versions}).
1824
1825@item d
1826Display the diff (@pxref{Comparing Files}) between the revision
1827indicated at the current line and the next earlier revision. This is
1828useful to see what actually changed when the revision indicated on the
1829current line was committed.
1830@end table
1792 1831
1793@node VC Undo 1832@node VC Undo
1794@subsubsection Undoing Version Control Actions 1833@subsubsection Undoing Version Control Actions
diff --git a/man/frames.texi b/man/frames.texi
index daaa9599bf7..9d24f5ca90e 100644
--- a/man/frames.texi
+++ b/man/frames.texi
@@ -963,7 +963,7 @@ XPM icons if Emacs was built with XPM support. Otherwise, the tool
963bar uses monochrome icons (PBM or XBM format). 963bar uses monochrome icons (PBM or XBM format).
964 964
965 You can turn display of tool bars on or off with @kbd{M-x 965 You can turn display of tool bars on or off with @kbd{M-x
966tool-bar-mode}. 966tool-bar-mode} or by customizing the option @code{tool-bar-mode}.
967 967
968@node Dialog Boxes 968@node Dialog Boxes
969@section Using Dialog Boxes 969@section Using Dialog Boxes
diff --git a/man/help.texi b/man/help.texi
index 313a002dc28..747f51aaaa7 100644
--- a/man/help.texi
+++ b/man/help.texi
@@ -47,7 +47,7 @@ manual index, then finally look in the FAQ and the package keywords.
47@item C-h a @var{topics} @key{RET} 47@item C-h a @var{topics} @key{RET}
48This searches for commands whose names match @var{topics}, which 48This searches for commands whose names match @var{topics}, which
49should be a keyword, a list of keywords, or a regular expression 49should be a keyword, a list of keywords, or a regular expression
50(@pxref{Regexps}). This command displays a the matches in a new 50(@pxref{Regexps}). This command displays all the matches in a new
51buffer. @xref{Apropos}. 51buffer. @xref{Apropos}.
52 52
53@item C-h i d m emacs @key{RET} i @var{topic} @key{RET} 53@item C-h i d m emacs @key{RET} i @var{topic} @key{RET}
@@ -336,7 +336,7 @@ view, describe, default.
336@end quotation 336@end quotation
337 337
338@findex apropos 338@findex apropos
339 To list all Lisp symbols that contain a match an Apropos pattern, 339 To list all Lisp symbols that contain a match for an Apropos pattern,
340not just the ones that are defined as commands, use the command 340not just the ones that are defined as commands, use the command
341@kbd{M-x apropos} instead of @kbd{C-h a}. This command does not check 341@kbd{M-x apropos} instead of @kbd{C-h a}. This command does not check
342key bindings by default; specify a numeric argument if you want it to 342key bindings by default; specify a numeric argument if you want it to
@@ -374,7 +374,7 @@ most relevant ones first.
374 By default, Apropos lists the search results for 374 By default, Apropos lists the search results for
375@code{apropos-documentation} in order of relevance of the match. If 375@code{apropos-documentation} in order of relevance of the match. If
376the variable @code{apropos-documentation-sort-by-scores} is 376the variable @code{apropos-documentation-sort-by-scores} is
377@code{nil}, Apropos lists the symbosl found in alphabetical order. 377@code{nil}, Apropos lists the symbols found in alphabetical order.
378 378
379@node Library Keywords 379@node Library Keywords
380@section Keyword Search for Lisp Libraries 380@section Keyword Search for Lisp Libraries
diff --git a/man/org.texi b/man/org.texi
index 0477077d91f..5056119b3b2 100644
--- a/man/org.texi
+++ b/man/org.texi
@@ -4,7 +4,7 @@
4@setfilename ../info/org 4@setfilename ../info/org
5@settitle Org Mode Manual 5@settitle Org Mode Manual
6 6
7@set VERSION 4.00 7@set VERSION 4.01
8@set DATE December 2005 8@set DATE December 2005
9 9
10@dircategory Emacs 10@dircategory Emacs
@@ -229,7 +229,7 @@ ways, for example
229 229
230@example 230@example
231@r{@bullet{} as an outline extension with visibility cycling and structure editing} 231@r{@bullet{} as an outline extension with visibility cycling and structure editing}
232@r{@bullet{} as an ASCII system and table editor to take structured notes} 232@r{@bullet{} as an ASCII system and table editor for taking structured notes}
233@r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} 233@r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities}
234@r{@bullet{} as a simple hypertext system, with HTML export} 234@r{@bullet{} as a simple hypertext system, with HTML export}
235@r{@bullet{} as a TODO list editor} 235@r{@bullet{} as a TODO list editor}
@@ -532,7 +532,7 @@ functionality.
532@node Archiving, Sparse trees, Structure editing, Document Structure 532@node Archiving, Sparse trees, Structure editing, Document Structure
533@section Archiving 533@section Archiving
534@cindex archiving 534@cindex archiving
535@cindex filing subtries 535@cindex filing subtrees
536 536
537When a project represented by a (sub)tree is finished, you may want 537When a project represented by a (sub)tree is finished, you may want
538to move the tree to an archive place, either in the same file under a 538to move the tree to an archive place, either in the same file under a
@@ -618,12 +618,24 @@ well. For example, in the list
618 618
619@example 619@example
620* Meeting with the French group :WORK: 620* Meeting with the French group :WORK:
621** Summary by Frank :BOSS: 621** Summary by Frank :BOSS:NOTES:
622*** TODO Prepare slides for him :ACTION: 622*** TODO Prepare slides for him :ACTION:
623@end example 623@end example
624@noindent 624@noindent
625the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, and 625the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:},
626@samp{:ACTION:}. 626@samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and
627Org-mode finds that a certain headline matches the search criterion,
628it will not check any sublevel headline, assuming that these likely
629also match, and that the list of matches can become very long. You
630can influence inheritance and searching using the variables
631@code{org-use-tag-inheritance} and
632@code{org-tags-match-list-sublevels}.
633
634@kindex M-@key{TAB}
635Tags can simply be typed into the buffer. After a colon,
636@kbd{M-@key{TAB}} offers completion on all tags being used in the
637current buffer. There are also special commands for inserting tags,
638and for executing searches based on tags.
627 639
628@table @kbd 640@table @kbd
629@kindex C-c C-c 641@kindex C-c C-c
@@ -631,29 +643,33 @@ the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, and
631@cindex completion, of tags 643@cindex completion, of tags
632Enter new tags for the current headline. The minibuffer will prompt 644Enter new tags for the current headline. The minibuffer will prompt
633for a list of tags and offer completion with respect to all other tags 645for a list of tags and offer completion with respect to all other tags
634used in the current buffer. After pressing @key{RET}, the tags will 646used in the current buffer. Several tags, separated by colons, may be
647specified at the prompt. After pressing @key{RET}, the tags will
635be inserted and aligned to @code{org-tags-column}. When called with a 648be inserted and aligned to @code{org-tags-column}. When called with a
636@kbd{C-u} prefix, align all tags in the current buffer to that column, 649@kbd{C-u} prefix, align all tags in the current buffer to that column,
637just to make things look nice. Tags can also be just typed into the 650just to make things look nice. TAGS are automatically realigned after
638buffer, with @kbd{M-@key{TAB}} support. 651promotion, demotion, and TODO state changes (@pxref{TODO basics}).
639@cindex M-@key{TAB}
640@item M-@key{TAB}
641Tags can also be typed directly into the buffer, using
642@kbd{M-@key{TAB}} completion.
643@kindex C-c \ 652@kindex C-c \
644@item C-c \ 653@item C-c \
645Create a sparse tree with all headlines matching a given set of tags. 654Create a sparse tree with all headlines matching a tags search.
646The command prompts for the tags to match. The criterion is just a
647list of tags separated by @samp{+} or @samp{-} for positive and
648negative selection. For example, @samp{+WORK-BOSS} would select all
649headlines that are tagged @samp{:WORK:}, but discard those also tagged
650@samp{:BOSS:}.
651@kindex C-c a m 655@kindex C-c a m
652@item C-c a m 656@item C-c a m
653Create a global list of tag matches from all agenda files. 657Create a global list of tag matches from all agenda files.
654@xref{Matching headline tags}. 658@xref{Matching headline tags}.
655@end table 659@end table
656 660
661A tags search string can use Boolean operators @samp{&} for AND and
662@samp{|} for OR. @samp{&} binds more strongly than
663@samp{|}. Parenthesis are currently no implemented. A tag may also be
664preceded by @samp{-}, to select against it, and @samp{+} is syntactic
665sugar for positive selection. The AND operator @samp{&} is optional
666when @samp{+} or @samp{-} is present. For example, @samp{+WORK-BOSS}
667would select all headlines that are tagged @samp{:WORK:}, but discard
668those also tagged @samp{:BOSS:}. The search string @samp{WORK|LAPTOP}
669selects all lines tagged @samp{:WORK:} or @samp{:LAPTOP:}. The string
670@samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are
671also tagged @samp{NIGHT}.
672
657@node Plain Lists, , Tags, Document Structure 673@node Plain Lists, , Tags, Document Structure
658@section Plain Lists 674@section Plain Lists
659@cindex plain lists 675@cindex plain lists
@@ -692,7 +708,7 @@ My favorite scenes are (in this order)
692@end example 708@end example
693 709
694Org-mode supports these lists by tuning filling and wrapping commands 710Org-mode supports these lists by tuning filling and wrapping commands
695to correctly deal with them. Futhermore, the following commands act 711to correctly deal with them. Furthermore, the following commands act
696on items when the cursor is in the first line of an item (the line 712on items when the cursor is in the first line of an item (the line
697with the bullet or number). 713with the bullet or number).
698 714
@@ -1322,11 +1338,11 @@ links to other files, Usenet articles, emails and much more.
1322 1338
1323Similar to Wiki implementations, Org-mode interprets words spelled in 1339Similar to Wiki implementations, Org-mode interprets words spelled in
1324CamelCase (i.e. mixed case with at least one capital letter following 1340CamelCase (i.e. mixed case with at least one capital letter following
1325on a small letter inside the word) as links. While in Wiki 1341on a small letter inside the word) as links. While in Wiki these
1326implementations these links usually point to another file, in Org-mode 1342links usually point to another file, in Org-mode they point to a
1327they point to a target in the current file. Targets are CamelCased 1343target in the current file. Targets are CamelCased words in double
1328words in double angular brackets, and may be located anywhere, also in 1344angular brackets, and may be located anywhere, also in a comment line.
1329a comment line. For example 1345For example
1330@example 1346@example
1331# <<MyTarget>> 1347# <<MyTarget>>
1332@end example 1348@end example
@@ -2020,32 +2036,16 @@ Choose date in calendar (only if nothing typed into minibuffer).
2020@chapter Agenda Views 2036@chapter Agenda Views
2021@cindex agenda views 2037@cindex agenda views
2022 2038
2023@ignore 2039Org-mode can select items based of various criteria, and display them
2024We have already described three commands to filter important 2040in a separate buffer. The information to be shown is collected from
2025information in an org file into a sparse tree (@pxref{Sparse trees}): 2041all @emph{agenda files}, the files listed in the variable
2026 2042@code{org-agenda-files}. Thus even if you only work with a single
2027@cindex sparse trees 2043Org-mode file, this file must be put into that list@footnote{When
2028@itemize @bullet 2044using the dispatcher pressing @kbd{1} before selecting a command will
2029@item 2045actually limit the command to the current file, and ignore
2030The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}. 2046@code{org-agenda-files} until the next dispatcher command.}. You can
2031@item 2047customize @code{org-agenda-files}, but the easiest way to maintain it
2032The occur tree @kbd{C-c /}, see @ref{TODO items}. 2048is through the following commands
2033@item
2034Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
2035timestamps}.
2036@end itemize
2037@noindent
2038@end ignore
2039
2040Org-mode can collect and sort selected items into a separate buffer.
2041The information to be listed is collected from all @emph{agenda
2042files}, the files listed in the variable @code{org-agenda-files}.
2043Thus even if you only work with a single Org-mode file, this file must
2044be put into that list@footnote{When using the dispatcher pressing
2045@kbd{1} before selecting a command will actually limit the command to
2046the current file, and ignore @code{org-agenda-files} until the next
2047dispatcher command.}. You can customize this variable, but the easiest
2048way to maintain it is through the following commands
2049 2049
2050@cindex files, adding to agenda list 2050@cindex files, adding to agenda list
2051@table @kbd 2051@table @kbd
@@ -2084,11 +2084,21 @@ buffer}. This buffer is read-only, but provides commands to visit the
2084corresponding locations in the original Org-mode files, and even to 2084corresponding locations in the original Org-mode files, and even to
2085edit these files remotely. 2085edit these files remotely.
2086 2086
2087@cindex custom agenda commands
2088@cindex agenda commands, custom
2087The views are created through a dispatcher that should be bound to a 2089The views are created through a dispatcher that should be bound to a
2088global key, for example @kbd{C-c a} (@pxref{Installation and 2090global key, for example @kbd{C-c a} (@pxref{Installation and
2089Activation}). In the following we will assume that @kbd{C-c a} is 2091Activation}). In the following we will assume that @kbd{C-c a} is
2090indeed how the dispatcher is accessed and list keyboard access to 2092indeed how the dispatcher is accessed and list keyboard access to
2091commands accordingly. 2093commands accordingly. The dispatcher offers a number of default
2094commands, for example to create a TODO list or a the calendar-like
2095agenda. You can also define a number of custom searches for tags and
2096specific TODO keywords through the variable
2097@code{org-agenda-custom-commands}.
2098@kindex C-c a C
2099These commands will be offered by the dispatcher just like the default
2100commands. If you press @kbd{C-c a C}, you will get a customization
2101buffer for this variable.
2092 2102
2093@menu 2103@menu
2094* Agenda:: Your weekly planner 2104* Agenda:: Your weekly planner
@@ -2230,7 +2240,7 @@ a prefix argument to this command to change the selected TODO keyword,
2230for example @kbd{3 r}. 2240for example @kbd{3 r}.
2231@end table 2241@end table
2232 2242
2233Remote editing of TDOD items means that you can change the state of a 2243Remote editing of TODO items means that you can change the state of a
2234TODO entry with a single key press. The commands available in the 2244TODO entry with a single key press. The commands available in the
2235TODO list are described in @ref{Agenda commands}. 2245TODO list are described in @ref{Agenda commands}.
2236 2246
@@ -2241,15 +2251,15 @@ TODO list are described in @ref{Agenda commands}.
2241 2251
2242If headlines in the agenda files are marked with @emph{tags} 2252If headlines in the agenda files are marked with @emph{tags}
2243(@pxref{Tags}), you can select headlines based on the tags that apply 2253(@pxref{Tags}), you can select headlines based on the tags that apply
2244to them and collect them into an ageenda buffer. 2254to them and collect them into an agenda buffer.
2245 2255
2246@table @kbd 2256@table @kbd
2247@kindex C-c a m 2257@kindex C-c a m
2248@item C-c a m 2258@item C-c a m
2249Produce a list of all headlines that match a given set of tags. The 2259Produce a list of all headlines that match a given set of tags. The
2250command prompts for a selection criterion, which is a simple list of 2260command prompts for a selection criterion, which is a boolean logic
2251TAGS with positive and negative selection, like 2261expression with tags, like @samp{+WORK+URGENT-WITHBOSS} or
2252@samp{+WORK+URGENT-WITHBOSS}. 2262@samp{WORK|HOME} (@pxref{Tags}).
2253@kindex C-c a M 2263@kindex C-c a M
2254@item C-c a M 2264@item C-c a M
2255Like @kbd{C-c a m}, but only select headlines that are also TODO 2265Like @kbd{C-c a m}, but only select headlines that are also TODO
@@ -2396,6 +2406,10 @@ Digit argument.
2396Change the TODO state of the item, both in the agenda and in the 2406Change the TODO state of the item, both in the agenda and in the
2397original org file. 2407original org file.
2398 2408
2409@kindex :
2410@item :
2411Set tags for the current headline.
2412
2399@kindex , 2413@kindex ,
2400@item , 2414@item ,
2401Set the priority for the current item. Org-mode prompts for the 2415Set the priority for the current item. Org-mode prompts for the
@@ -2900,7 +2914,7 @@ After @samp{\}, complete @TeX{} symbols supported by the exporter.
2900After @samp{*}, complete CamelCase versions of all headlines in the 2914After @samp{*}, complete CamelCase versions of all headlines in the
2901buffer. 2915buffer.
2902@item 2916@item
2903After @samp{:}, complete tags used elswhere in the buffer. 2917After @samp{:}, complete tags used elsewhere in the buffer.
2904@item 2918@item
2905After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or 2919After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
2906@samp{OPTIONS} which set file-specific options for Org-mode. When the 2920@samp{OPTIONS} which set file-specific options for Org-mode. When the
@@ -2917,11 +2931,11 @@ Elsewhere, complete dictionary words using ispell.
2917@cindex options, for customization 2931@cindex options, for customization
2918@cindex variables, for customization 2932@cindex variables, for customization
2919 2933
2920There is a large number of variables which can be used to customize 2934There are more than 100 variables that can be used to customize
2921Org-mode. For the sake of compactness of the manual, we are not 2935Org-mode. For the sake of compactness of the manual, we are not
2922describing the variables here. For an overview of customization 2936describing the variables here. A structured overview of customization
2923variables, use @kbd{M-x org-customize}. Or select @code{Browse Org 2937variables is available with @kbd{M-x org-customize}. Or select
2924Group} from the @code{Org->Customization} menu. 2938@code{Browse Org Group} from the @code{Org->Customization} menu.
2925 2939
2926@node FAQ, Interaction, Customization, Miscellaneous 2940@node FAQ, Interaction, Customization, Miscellaneous
2927@section Frequently asked questions 2941@section Frequently asked questions
@@ -3167,59 +3181,63 @@ The exporters work well, but could be made more efficient.
3167 3181
3168Org-mode was written by Carsten Dominik, who still maintains it at the 3182Org-mode was written by Carsten Dominik, who still maintains it at the
3169Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}. 3183Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
3170The following people have helped the development along with ideas, 3184The following people (in alphabetic order) have helped the development
3171suggestions and patches. 3185along with ideas, suggestions and patches. Many thanks to all of you,
3186Org-mode would not be what it is without your input.
3172 3187
3173@itemize @bullet 3188@itemize @bullet
3174@item 3189@item
3175Matthias Rempe (Oelde) provided ideas, a patch introducing Windows 3190Pavel Chalmoviansky reported bugs and suggested improvements
3176NT/2000 support, and quality control. 3191related to the agenda treatment of items with specified time.
3177@item
3178Kevin Rogers contributed code to access VM files on remote hosts.
3179@item 3192@item
3180Juergen Vollmer contributed code generating the table of contents 3193Sacha Chua, the current maintainer of Planner, suggested to copy
3181in HTML output, and other export improvements. 3194linking code from Planner (I took code for RMAIL and Wanderlust).
3182@item 3195@item
3183Christian Egli converted the documentation into TeXInfo format and 3196Christian Egli converted the documentation into TeXInfo format and
3184patched basic CSS formatting support into the HTML exporter. He also 3197patched basic CSS formatting support into the HTML exporter. He also
3185inspired the agenda by showing me his plans for a multifile summary. 3198inspired the agenda by showing me his plans for a multifile summary.
3186@item 3199@item
3200Kai Grossjohann pointed out that a number of key bindings in Org-mode
3201conflict with other packages.
3202@item
3203Stefan Monnier provided a patch with lots of little fixes to keep the
3204Emacs-Lisp compiler happy.
3205@item
3206Tim O'Callaghan suggested in-file links, search options for
3207general file links, and TAGS.
3208@item
3209Oliver Oppitz made useful suggestions.
3210@item
3211Pete Phillips helped the development of the TAGS feature with beta
3212testing and suggestions.
3213@item
3214Matthias Rempe (Oelde) provided ideas, a patch introducing Windows
3215NT/2000 support, and quality control.
3216@item
3217Kevin Rogers contributed code to access VM files on remote hosts.
3218@item
3187Philip Rooke created the Org-mode reference card. He also helped with 3219Philip Rooke created the Org-mode reference card. He also helped with
3188beta testing and contributed a number of very useful ideas. 3220beta testing and contributed a number of very useful ideas.
3189@item 3221@item
3190Christian Schlauer proposed angular brackets around links, among other 3222Christian Schlauer proposed angular brackets around links, among other
3191things. 3223things.
3192@item 3224@item
3193David Wainberg suggested to implement an archiving mechanism and helped
3194testing.
3195@item
3196Linking to VM/BBDB/GNUS was inspired by Tom Shannon's 3225Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
3197@file{organizer-mode.el}. 3226@file{organizer-mode.el}.
3198@item 3227@item
3199Scheduling TODO items was inspired by John Wiegley's @file{planner.el}. 3228Juergen Vollmer contributed code generating the table of contents
3229in HTML output, and other export improvements.
3200@item 3230@item
3201Sacha Chua, the current maintainer of Planner, suggested to copy 3231David Wainberg suggested to implement an archiving mechanism and helped
3202linking code from Planner (I took code for RMAIL and Wanderlust). 3232testing.
3203@item 3233@item
3204Oliver Oppitz made useful suggestions. 3234Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
3205@item 3235@item
3206Carsten Wimmer suggested some changes and helped fix a bug in linking 3236Carsten Wimmer suggested some changes and helped fix a bug in linking
3207to GNUS. 3237to GNUS.
3208@item
3209Pavel Chalmoviansky reported bugs and suggested improvements related
3210to the agenda treatment of items with specified time.
3211@item
3212Stefan Monnier provided a patch with lots of little fixes to keep the
3213Emacs-Lisp compiler happy.
3214@item
3215Kai Grossjohann pointed out that a number of key bindings in Org-mode
3216conflict with other packages.
3217@item 3238@item
3218Roland Winkler pointed out that additional keybindings are needed to 3239Roland Winkler pointed out that additional keybindings are needed to
3219use Org-mode on a tty. 3240use Org-mode on a tty.
3220@item
3221Tim O'Callaghan suggested in-file links, search options for
3222general file links, and TAGS.
3223@c @item 3241@c @item
3224@c Nic Ferrier and Christian Egli implemented XML export. 3242@c Nic Ferrier and Christian Egli implemented XML export.
3225@end itemize 3243@end itemize
diff --git a/man/programs.texi b/man/programs.texi
index 6444a3a6a47..e1806488150 100644
--- a/man/programs.texi
+++ b/man/programs.texi
@@ -128,17 +128,19 @@ place to set up customizations for that major mode. @xref{Hooks}.
128@node Defuns 128@node Defuns
129@section Top-Level Definitions, or Defuns 129@section Top-Level Definitions, or Defuns
130 130
131 In Emacs, a major definition at the top level in the buffer is 131 In Emacs, a major definition at the top level in the buffer,
132called a @dfn{defun}. The name comes from Lisp, but in Emacs we use 132something like a function, is called a @dfn{defun}. The name comes
133it for all languages. 133from Lisp, but in Emacs we use it for all languages.
134 134
135 In most programming language modes, Emacs assumes that a defun is 135 In many programming language modes, Emacs assumes that a defun is
136any pair of parentheses (or braces, if the language uses braces this 136any pair of parentheses (or braces, if the language uses braces this
137way) that starts at the left margin. For example, in C, the body of a 137way) that starts at the left margin. For example, in C, the body of a
138function definition is normally a defun, because the open-brace that 138function definition is a defun, usually recognized as an open-brace
139begins it is normally at the left margin. A variable's initializer 139that begins at the left margin@footnote{Alternatively, you can set up
140can also count as a defun, if the open-brace that begins the 140C Mode to recognize a defun at an opening brace at the outermost
141initializer is at the left margin. 141level. @xref{Movement Commands,,, ccmode, the CC Mode Manual}.}. A
142variable's initializer can also count as a defun, if the open-brace
143that begins the initializer is at the left margin.
142 144
143 However, some language modes provide their own code for recognizing 145 However, some language modes provide their own code for recognizing
144defuns in a way that suits the language syntax and conventions better. 146defuns in a way that suits the language syntax and conventions better.
@@ -156,14 +158,24 @@ defuns in a way that suits the language syntax and conventions better.
156 158
157@cindex open-parenthesis in leftmost column 159@cindex open-parenthesis in leftmost column
158@cindex ( in leftmost column 160@cindex ( in leftmost column
159 In most major modes, Emacs assumes that any opening delimiter found 161 Emacs assumes by default that any opening delimiter found at the
160at the left margin is the start of a top-level definition, or defun. 162left margin is the start of a top-level definition, or defun. You can
161Therefore, @strong{never put an opening delimiter at the left margin 163override this default by setting this user option:
162unless it should have that significance.} For instance, never put an 164
165@defvar open-paren-in-column-0-is-defun-start
166If this user option is set to @code{t} (the default), opening
167parentheses or braces at column zero always start defuns. When it's
168@code{nil}, defuns are found by searching for parens or braces at the
169outermost level. Some major modes, including C and related modes, set
170@code{open-paren-in-column-0-is-defun-start} buffer-locally to
171@code{nil}
172@end defvar
173
174 In modes where @code{open-paren-in-column-0-is-defun-start} is
175@code{t}, @strong{don't put an opening delimiter at the left margin
176unless it is a defun start}. For instance, never put an
163open-parenthesis at the left margin in a Lisp file unless it is the 177open-parenthesis at the left margin in a Lisp file unless it is the
164start of a top-level list. Never put an open-brace or other opening 178start of a top-level list.
165delimiter at the beginning of a line of C code unless it is at top
166level.
167 179
168 If you don't follow this convention, not only will you have trouble 180 If you don't follow this convention, not only will you have trouble
169when you explicitly use the commands for motion by defuns; other 181when you explicitly use the commands for motion by defuns; other
@@ -173,10 +185,10 @@ mode (@pxref{Font Lock}).
173 185
174 The most likely problem case is when you want an opening delimiter 186 The most likely problem case is when you want an opening delimiter
175at the start of a line inside a string. To avoid trouble, put an 187at the start of a line inside a string. To avoid trouble, put an
176escape character (@samp{\}, in C and Emacs Lisp, @samp{/} in some 188escape character (@samp{\}, in Emacs Lisp, @samp{/} in some other Lisp
177other Lisp dialects) before the opening delimiter. This will not 189dialects) before the opening delimiter. This will not affect the
178affect the contents of the string, but will prevent that opening 190contents of the string, but will prevent that opening delimiter from
179delimiter from starting a defun. Here's an example: 191starting a defun. Here's an example:
180 192
181@example 193@example
182 (insert "Foo: 194 (insert "Foo:
@@ -195,8 +207,9 @@ the beginning of the buffer, even for a small function. To speed up
195the operation, we changed Emacs to assume that any opening delimiter 207the operation, we changed Emacs to assume that any opening delimiter
196at the left margin is the start of a defun. This heuristic is nearly 208at the left margin is the start of a defun. This heuristic is nearly
197always right, and avoids the need to scan back to the beginning of the 209always right, and avoids the need to scan back to the beginning of the
198buffer. However, it mandates following the convention described 210buffer. However, now that modern computers are so powerful, this
199above. 211scanning is rarely slow enough to annoy, so we've provided a way to
212disable the heuristic.
200 213
201@node Moving by Defuns 214@node Moving by Defuns
202@subsection Moving by Defuns 215@subsection Moving by Defuns
@@ -399,13 +412,14 @@ behavior is convenient in cases where you have overridden the standard
399result of @key{TAB} because you find it unaesthetic for a particular 412result of @key{TAB} because you find it unaesthetic for a particular
400line. 413line.
401 414
402 Remember that an open-parenthesis, open-brace or other opening delimiter 415 By default, an open-parenthesis, open-brace or other opening
403at the left margin is assumed by Emacs (including the indentation routines) 416delimiter at the left margin is assumed by Emacs (including the
404to be the start of a function. Therefore, you must never have an opening 417indentation routines) to be the start of a function. This speeds up
405delimiter in column zero that is not the beginning of a function, not even 418indentation commands. If you will be editing text which contains
406inside a string. This restriction is vital for making the indentation 419opening delimiters in column zero that aren't the beginning of a
407commands fast; you must simply accept it. @xref{Left Margin Paren}, 420functions, even inside strings or comments, you must set
408for more information on this. 421@code{open-paren-in-column-0-is-defun-start}. @xref{Left Margin
422Paren}, for more information on this.
409 423
410 Normally, lines are indented with tabs and spaces. If you want Emacs 424 Normally, lines are indented with tabs and spaces. If you want Emacs
411to use spaces only, see @ref{Just Spaces}. 425to use spaces only, see @ref{Just Spaces}.
@@ -560,16 +574,16 @@ onto the indentation of the @dfn{anchor statement}.
560Select a predefined style @var{style} (@code{c-set-style}). 574Select a predefined style @var{style} (@code{c-set-style}).
561@end table 575@end table
562 576
563 A @dfn{style} is a named collection of customizations that can 577 A @dfn{style} is a named collection of customizations that can be
564be used in C mode and the related modes. Emacs comes with several 578used in C mode and the related modes. @ref{Styles,,, ccmode, The CC
579Mode Manual}, for a complete description. Emacs comes with several
565predefined styles, including @code{gnu}, @code{k&r}, @code{bsd}, 580predefined styles, including @code{gnu}, @code{k&r}, @code{bsd},
566@code{stroustrup}, @code{linux}, @code{python}, @code{java}, 581@code{stroustrup}, @code{linux}, @code{python}, @code{java},
567@code{whitesmith}, @code{ellemtel}, @code{cc-mode}, and @code{user}. 582@code{whitesmith}, @code{ellemtel}, and @code{awk}. Some of these
568Some of these styles are primarily intended for one language, but any 583styles are primarily intended for one language, but any of them can be
569of them can be used with any of the languages supported by these 584used with any of the languages supported by these modes. To find out
570modes. To find out what a style looks like, select it and reindent 585what a style looks like, select it and reindent some code, e.g., by
571some code, e.g., by typing @key{C-M-q} at the start of a function 586typing @key{C-M-q} at the start of a function definition.
572definition.
573 587
574@kindex C-c . @r{(C mode)} 588@kindex C-c . @r{(C mode)}
575@findex c-set-style 589@findex c-set-style
@@ -577,8 +591,8 @@ definition.
577.}. Specify a style name as an argument (case is not significant). 591.}. Specify a style name as an argument (case is not significant).
578This command affects the current buffer only, and it affects only 592This command affects the current buffer only, and it affects only
579future invocations of the indentation commands; it does not reindent 593future invocations of the indentation commands; it does not reindent
580the code in the buffer. To reindent the whole buffer in the new 594the code already in the buffer. To reindent the whole buffer in the
581style, you can type @kbd{C-x h C-M-\}. 595new style, you can type @kbd{C-x h C-M-\}.
582 596
583@vindex c-default-style 597@vindex c-default-style
584 You can also set the variable @code{c-default-style} to specify the 598 You can also set the variable @code{c-default-style} to specify the
@@ -589,23 +603,24 @@ example,
589 603
590@example 604@example
591(setq c-default-style 605(setq c-default-style
592 '((java-mode . "java") (other . "gnu"))) 606 '((java-mode . "java") (awk-mode . "awk") (other . "gnu")))
593@end example 607@end example
594 608
595@noindent 609@noindent
596specifies an explicit choice for Java mode, and the default @samp{gnu} 610specifies explicit choices for Java and AWK modes, and the default
597style for the other C-like modes. (These settings are actually the 611@samp{gnu} style for the other C-like modes. (These settings are
598defaults.) This variable takes effect when you select one of the 612actually the defaults.) This variable takes effect when you select
599C-like major modes; thus, if you specify a new default style for Java 613one of the C-like major modes; thus, if you specify a new default
600mode, you can make it take effect in an existing Java mode buffer by 614style for Java mode, you can make it take effect in an existing Java
601typing @kbd{M-x java-mode} there. 615mode buffer by typing @kbd{M-x java-mode} there.
602 616
603 The @code{gnu} style specifies the formatting recommended by the GNU 617 The @code{gnu} style specifies the formatting recommended by the GNU
604Project for C; it is the default, so as to encourage use of our 618Project for C; it is the default, so as to encourage use of our
605recommended style. 619recommended style.
606 620
607 @xref{Customizing Indentation,,, ccmode, the CC Mode Manual}, for 621 @xref{Indentation Engine Basics,,, ccmode, the CC Mode Manual}, and
608more information on customizing indentation for C and related modes, 622@ref{Customizing Indentation,,, ccmode, the CC Mode Manual}, for more
623information on customizing indentation for C and related modes,
609including how to override parts of an existing style and how to define 624including how to override parts of an existing style and how to define
610your own styles. 625your own styles.
611 626
@@ -708,11 +723,12 @@ would move over.
708 A somewhat random-sounding command which is nevertheless handy is 723 A somewhat random-sounding command which is nevertheless handy is
709@kbd{C-M-t} (@code{transpose-sexps}), which drags the previous 724@kbd{C-M-t} (@code{transpose-sexps}), which drags the previous
710balanced expression across the next one. An argument serves as a 725balanced expression across the next one. An argument serves as a
711repeat count, and a negative argument drags the previous balanced 726repeat count, moving the previous expression over that many following
712expression backwards across those before it (thus canceling out the 727ones. A negative argument drags the previous balanced expression
713effect of @kbd{C-M-t} with a positive argument). An argument of zero, 728backwards across those before it (thus canceling out the effect of
714rather than doing nothing, transposes the balanced expressions ending 729@kbd{C-M-t} with a positive argument). An argument of zero, rather
715at or after point and the mark. 730than doing nothing, transposes the balanced expressions ending at or
731after point and the mark.
716 732
717@kindex C-M-@@ 733@kindex C-M-@@
718@kindex C-M-@key{SPC} 734@kindex C-M-@key{SPC}
@@ -722,9 +738,9 @@ use @kbd{C-M-@@} (@code{mark-sexp}), which sets mark at the same place
722that @kbd{C-M-f} would move to. @kbd{C-M-@@} takes arguments like 738that @kbd{C-M-f} would move to. @kbd{C-M-@@} takes arguments like
723@kbd{C-M-f}. In particular, a negative argument is useful for putting 739@kbd{C-M-f}. In particular, a negative argument is useful for putting
724the mark at the beginning of the previous balanced expression. The 740the mark at the beginning of the previous balanced expression. The
725alias @kbd{C-M-@key{SPC}} is equivalent to @kbd{C-M-@@}. If you use 741alias @kbd{C-M-@key{SPC}} is equivalent to @kbd{C-M-@@}. When you
726this command repeatedly, or in Transient Mark mode whenever the mark 742repeat this command, or use it in Transient Mark mode when the mark is
727is active, it extends the region by one sexp each time. 743active, it extends the region by one sexp each time.
728 744
729 In languages that use infix operators, such as C, it is not possible 745 In languages that use infix operators, such as C, it is not possible
730to recognize all balanced expressions as such because there can be 746to recognize all balanced expressions as such because there can be
@@ -875,7 +891,7 @@ Set comment column (@code{comment-set-column}).
875@item @kbd{C-M-j} 891@item @kbd{C-M-j}
876@itemx @kbd{M-j} 892@itemx @kbd{M-j}
877Like @key{RET} followed by inserting and aligning a comment 893Like @key{RET} followed by inserting and aligning a comment
878(@code{comment-indent-new-line}). 894(@code{comment-indent-new-line}). @xref{Multi-Line Comments}.
879@item @kbd{M-x comment-region} 895@item @kbd{M-x comment-region}
880@itemx @kbd{C-c C-c} (in C-like modes) 896@itemx @kbd{C-c C-c} (in C-like modes)
881Add or remove comment delimiters on all the lines in the region. 897Add or remove comment delimiters on all the lines in the region.
@@ -948,8 +964,13 @@ and by not changing the indentation of a triple-semicolon comment at all.
948 (1+ x)) ; This line adds one. 964 (1+ x)) ; This line adds one.
949@end example 965@end example
950 966
951 In C code, a comment preceded on its line by nothing but whitespace 967 For C-like buffers, you can configure the exact effect of @kbd{M-;}
952is indented like a line of code. 968more flexibly than for most buffers by setting the user options
969@code{c-indent-comment-alist} and
970@code{c-indent-comments-syntactically-p}. For example, on a line
971ending in a closing brace, @kbd{M-;} puts the comment one space after
972the brace rather than at @code{comment-column}. For full details see
973@ref{Comment Commands,,, ccmode, The CC Mode Manual}.
953 974
954@node Multi-Line Comments 975@node Multi-Line Comments
955@subsection Multiple Lines of Comments 976@subsection Multiple Lines of Comments
@@ -958,23 +979,23 @@ is indented like a line of code.
958@kindex M-j 979@kindex M-j
959@cindex blank lines in programs 980@cindex blank lines in programs
960@findex comment-indent-new-line 981@findex comment-indent-new-line
982
961 If you are typing a comment and wish to continue it on another line, 983 If you are typing a comment and wish to continue it on another line,
962you can use the command @kbd{C-M-j} or @kbd{M-j} 984you can use the command @kbd{C-M-j} or @kbd{M-j}
963(@code{comment-indent-new-line}). This terminates the comment you are 985(@code{comment-indent-new-line}). If @code{comment-multi-line}
964typing, creates a new blank line afterward, and begins a new comment 986(@pxref{Options for Comments}) is non-@code{nil}, it moves to a new
965indented under the old one. When Auto Fill mode is on, going past the 987line within the comment. Otherwise it closes the comment and starts a
988new comment on a new line. When Auto Fill mode is on, going past the
966fill column while typing a comment causes the comment to be continued 989fill column while typing a comment causes the comment to be continued
967in just this fashion. If point is not at the end of the line when you 990in just this fashion.
968type the command, the text on the rest of the line becomes part of the
969new comment line.
970 991
971@kindex C-c C-c (C mode) 992@kindex C-c C-c (C mode)
972@findex comment-region 993@findex comment-region
973 To turn existing lines into comment lines, use the @kbd{M-x 994 To turn existing lines into comment lines, use the @kbd{M-x
974comment-region} command. It adds comment delimiters to the lines that start 995comment-region} command (or type @kbd{C-c C-c} in C-like buffers). It
975in the region, thus commenting them out. With a negative argument, it 996adds comment delimiters to the lines that start in the region, thus
976does the opposite---it deletes comment delimiters from the lines in the 997commenting them out. With a negative argument, it does the
977region. 998opposite---it deletes comment delimiters from the lines in the region.
978 999
979 With a positive argument, @code{comment-region} duplicates the last 1000 With a positive argument, @code{comment-region} duplicates the last
980character of the comment start sequence it adds; the argument specifies 1001character of the comment start sequence it adds; the argument specifies
@@ -985,6 +1006,11 @@ can also affect how the comment is indented. In Lisp, for proper
985indentation, you should use an argument of two or three, if between defuns; 1006indentation, you should use an argument of two or three, if between defuns;
986if within a defun, it must be three. 1007if within a defun, it must be three.
987 1008
1009 You can configure C Mode such that when you type a @samp{/} at the
1010start of a line in a multi-line block comment, this closes the
1011comment. Enable the @code{comment-close-slash} clean-up for this.
1012@xref{Clean-ups,,, ccmode, The CC Mode Manual}.
1013
988@node Options for Comments 1014@node Options for Comments
989@subsection Options Controlling Comments 1015@subsection Options Controlling Comments
990 1016
@@ -1038,13 +1064,13 @@ can hold the actual string to insert.
1038@vindex comment-multi-line 1064@vindex comment-multi-line
1039 The variable @code{comment-multi-line} controls how @kbd{C-M-j} 1065 The variable @code{comment-multi-line} controls how @kbd{C-M-j}
1040(@code{indent-new-comment-line}) behaves when used inside a comment. 1066(@code{indent-new-comment-line}) behaves when used inside a comment.
1041Specifically, when @code{comment-multi-line} is @code{nil} (the 1067Specifically, when @code{comment-multi-line} is @code{nil}, the
1042default value), the command inserts a comment terminator, begins a new 1068command inserts a comment terminator, begins a new line, and finally
1043line, and finally inserts a comment starter. Otherwise it does not 1069inserts a comment starter. Otherwise it does not insert the
1044insert the terminator and starter, so it effectively continues the 1070terminator and starter, so it effectively continues the current
1045current comment across multiple lines. In languages that allow 1071comment across multiple lines. In languages that allow multi-line
1046multi-line comments, the choice of value for this variable is a matter 1072comments, the choice of value for this variable is a matter of taste.
1047of taste. 1073The default for this variable depends on the major mode.
1048 1074
1049@vindex comment-indent-function 1075@vindex comment-indent-function
1050 The variable @code{comment-indent-function} should contain a function 1076 The variable @code{comment-indent-function} should contain a function
@@ -1510,11 +1536,13 @@ Move point to the end of the innermost C statement or sentence; like
1510 1536
1511@item M-x c-backward-into-nomenclature 1537@item M-x c-backward-into-nomenclature
1512@findex c-backward-into-nomenclature 1538@findex c-backward-into-nomenclature
1513Move point backward to beginning of a C++ nomenclature section or word. 1539Move point backward to beginning of a C++ nomenclature section or
1514With prefix argument @var{n}, move @var{n} times. If @var{n} is 1540word. With prefix argument @var{n}, move @var{n} times. If @var{n}
1515negative, move forward. C++ nomenclature means a symbol name in the 1541is negative, move forward. C++ nomenclature means a symbol name in
1516style of NamingSymbolsWithMixedCaseAndNoUnderlines; each capital letter 1542the style of NamingSymbolsWithMixedCaseAndNoUnderlines; each capital
1517begins a section or word. 1543letter begins a section or word. Rather than this command, you might
1544well prefer the newer ``Subword Mode'', which does the same thing
1545better. @xref{Other C Commands}.
1518 1546
1519In the GNU project, we recommend using underscores to separate words 1547In the GNU project, we recommend using underscores to separate words
1520within an identifier in C or C++, rather than using case distinctions. 1548within an identifier in C or C++, rather than using case distinctions.
@@ -1529,154 +1557,90 @@ With prefix argument @var{n}, move @var{n} times.
1529@subsection Electric C Characters 1557@subsection Electric C Characters
1530 1558
1531 In C mode and related modes, certain printing characters are 1559 In C mode and related modes, certain printing characters are
1532``electric''---in addition to inserting themselves, they also reindent 1560@dfn{electric}---in addition to inserting themselves, they also
1533the current line, and optionally also insert newlines. The 1561reindent the current line, and optionally also insert newlines. The
1534``electric'' characters are @kbd{@{}, @kbd{@}}, @kbd{:}, @kbd{#}, 1562``electric'' characters are @kbd{@{}, @kbd{@}}, @kbd{:}, @kbd{#},
1535@kbd{;}, @kbd{,}, @kbd{<}, @kbd{>}, @kbd{/}, @kbd{*}, @kbd{(}, and 1563@kbd{;}, @kbd{,}, @kbd{<}, @kbd{>}, @kbd{/}, @kbd{*}, @kbd{(}, and
1536@kbd{)}. 1564@kbd{)}.
1537 1565
1538 Electric characters insert newlines only when the @dfn{auto-newline} 1566 You might find electric indentation inconvenient if you are editing
1539feature is enabled (indicated by @samp{/a} in the mode line after the 1567chaotically indented code. If you are new to CC Mode, you might find
1540mode name). This feature is controlled by the variable 1568it disconcerting. You can toggle electric action with the command
1541@code{c-auto-newline}. You can turn this feature on or off with the 1569@kbd{C-c C-l}; when it is enabled, @samp{/l} appears in the mode line
1542command @kbd{C-c C-a}: 1570after the mode name:
1543 1571
1544@table @kbd 1572@table @kbd
1545@item C-c C-a 1573@item C-c C-l
1546@kindex C-c C-a @r{(C mode)} 1574@kindex C-c C-l @r{(C mode)}
1547@findex c-toggle-auto-state 1575@findex c-toggle-electric-state
1548Toggle the auto-newline feature (@code{c-toggle-auto-state}). With a 1576Toggle electric action (@code{c-toggle-electric-state}). With a
1549prefix argument, this command turns the auto-newline feature on if the 1577prefix argument, this command enables electric action if the argument
1550argument is positive, and off if it is negative. 1578is positive, disables it if it is negative.
1551@end table 1579@end table
1552 1580
1553 The colon character is electric because that is appropriate for a 1581 Electric characters insert newlines only when, in addition to the
1554single colon. But when you want to insert a double colon in C++, the 1582electric state, the @dfn{auto-newline} feature is enabled (indicated
1555electric behavior of colon is inconvenient. You can insert a double 1583by @samp{/la} in the mode line after the mode name). You can turn
1556colon with no reindentation or newlines by typing @kbd{C-c :}: 1584this feature on or off with the command @kbd{C-c C-a}:
1557 1585
1558@table @kbd 1586@table @kbd
1559@item C-c : 1587@item C-c C-a
1560@ifinfo 1588@kindex C-c C-a @r{(C mode)}
1561@c This uses ``colon'' instead of a literal `:' because Info cannot 1589@findex c-toggle-auto-newline
1562@c cope with a `:' in a menu 1590Toggle the auto-newline feature (@code{c-toggle-auto-newline}). With a
1563@kindex C-c @key{colon} @r{(C mode)} 1591prefix argument, this command turns the auto-newline feature on if the
1564@end ifinfo 1592argument is positive, and off if it is negative.
1565@ifnotinfo
1566@kindex C-c : @r{(C mode)}
1567@end ifnotinfo
1568@findex c-scope-operator
1569Insert a double colon scope operator at point, without reindenting the
1570line or adding any newlines (@code{c-scope-operator}).
1571@end table 1593@end table
1572 1594
1573@vindex c-electric-pound-behavior 1595 Usually the CC Mode style configures the exact circumstances in
1574 The electric @kbd{#} key reindents the line if it appears to be the 1596which Emacs inserts auto-newlines. You can also configure this
1575beginning of a preprocessor directive. This happens when the value of 1597directly. @xref{Custom Auto-newlines,,, ccmode, The CC Mode Manual}.
1576@code{c-electric-pound-behavior} is @code{(alignleft)}. You can turn
1577this feature off by setting @code{c-electric-pound-behavior} to
1578@code{nil}.
1579
1580@vindex c-hanging-braces-alist
1581 The variable @code{c-hanging-braces-alist} controls the insertion of
1582newlines before and after inserted braces. It is an association list
1583with elements of the following form: @code{(@var{syntactic-symbol}
1584. @var{nl-list})}. Most of the syntactic symbols that appear in
1585@code{c-offsets-alist} are meaningful here as well.
1586
1587 The list @var{nl-list} may contain either of the symbols
1588@code{before} or @code{after}, or both; or it may be @code{nil}. When a
1589brace is inserted, the syntactic context it defines is looked up in
1590@code{c-hanging-braces-alist}; if it is found, the @var{nl-list} is used
1591to determine where newlines are inserted: either before the brace,
1592after, or both. If not found, the default is to insert a newline both
1593before and after braces.
1594
1595@vindex c-hanging-colons-alist
1596 The variable @code{c-hanging-colons-alist} controls the insertion of
1597newlines before and after inserted colons. It is an association list
1598with elements of the following form: @code{(@var{syntactic-symbol}
1599. @var{nl-list})}. The list @var{nl-list} may contain either of the
1600symbols @code{before} or @code{after}, or both; or it may be @code{nil}.
1601
1602 When a colon is inserted, the syntactic symbol it defines is looked
1603up in this list, and if found, the @var{nl-list} is used to determine
1604where newlines are inserted: either before the brace, after, or both.
1605If the syntactic symbol is not found in this list, no newlines are
1606inserted.
1607
1608@vindex c-cleanup-list
1609 Electric characters can also delete newlines automatically when the
1610auto-newline feature is enabled. This feature makes auto-newline more
1611acceptable, by deleting the newlines in the most common cases where you
1612do not want them. Emacs can recognize several cases in which deleting a
1613newline might be desirable; by setting the variable
1614@code{c-cleanup-list}, you can specify @emph{which} of these cases that
1615should happen. The variable's value is a list of symbols, each
1616describing one case for possible deletion of a newline. Here are the
1617meaningful symbols, and their meanings:
1618
1619@table @code
1620@item brace-catch-brace
1621Clean up @samp{@} catch (@var{condition}) @{} constructs by placing the
1622entire construct on a single line. The clean-up occurs when you type
1623the @samp{@{}, if there is nothing between the braces aside from
1624@code{catch} and @var{condition}.
1625
1626@item brace-else-brace
1627Clean up @samp{@} else @{} constructs by placing the entire construct on
1628a single line. The clean-up occurs when you type the @samp{@{} after
1629the @code{else}, but only if there is nothing but white space between
1630the braces and the @code{else}.
1631
1632@item brace-elseif-brace
1633Clean up @samp{@} else if (@dots{}) @{} constructs by placing the entire
1634construct on a single line. The clean-up occurs when you type the
1635@samp{@{}, if there is nothing but white space between the @samp{@}} and
1636@samp{@{} aside from the keywords and the @code{if}-condition.
1637
1638@item empty-defun-braces
1639Clean up empty defun braces by placing the braces on the same
1640line. Clean-up occurs when you type the closing brace.
1641
1642@item defun-close-semi
1643Clean up the semicolon after a @code{struct} or similar type
1644declaration, by placing the semicolon on the same line as the closing
1645brace. Clean-up occurs when you type the semicolon.
1646
1647@item list-close-comma
1648Clean up commas following braces in array and aggregate
1649initializers. Clean-up occurs when you type the comma.
1650
1651@item scope-operator
1652Clean up double colons which may designate a C++ scope operator, by
1653placing the colons together. Clean-up occurs when you type the second
1654colon, but only when the two colons are separated by nothing but
1655whitespace.
1656@end table
1657 1598
1658@node Hungry Delete 1599@node Hungry Delete
1659@subsection Hungry Delete Feature in C 1600@subsection Hungry Delete Feature in C
1660@cindex hungry deletion (C Mode) 1601@cindex hungry deletion (C Mode)
1661 1602
1662 When the @dfn{hungry-delete} feature is enabled (indicated by 1603 If you want to delete an entire block of whitespace at point, you
1663@samp{/h} or @samp{/ah} in the mode line after the mode name), a single 1604can use @dfn{hungry deletion}. This deletes all the contiguous
1664@key{DEL} command deletes all preceding whitespace, not just one space. 1605whitespace either before point or after point in a single operation.
1665To turn this feature on or off, use @kbd{C-c C-d}: 1606@dfn{Whitespace} here includes tabs and newlines, but not comments or
1607preprocessor commands.
1666 1608
1667@table @kbd 1609@table @kbd
1610@item C-c C-@key{BS}
1611@itemx C-c @key{BS}
1612@findex c-hungry-backspace
1613@kindex C-c C-@key{BS} (C Mode)
1614@kindex C-c @key{BS} (C Mode)
1615@code{c-hungry-backspace}---Delete the entire block of whitespace
1616preceding point.
1617
1668@item C-c C-d 1618@item C-c C-d
1669@kindex C-c C-d @r{(C mode)} 1619@itemx C-c C-@key{DEL}
1670@findex c-toggle-hungry-state 1620@itemx C-c @key{DEL}
1671Toggle the hungry-delete feature (@code{c-toggle-hungry-state}). With a 1621@findex c-hungry-delete-forward
1672prefix argument, this command turns the hungry-delete feature on if the 1622@kindex C-c C-d (C Mode)
1673argument is positive, and off if it is negative. 1623@kindex C-c C-@key{DEL} (C Mode)
1624@kindex C-c @key{DEL} (C Mode)
1625@code{c-hungry-delete-forward}---Delete the entire block of whitespace
1626following point.
1627@end table
1674 1628
1675@item C-c C-t 1629 As an alternative to the above commands, you can enable @dfn{hungry
1676@kindex C-c C-t @r{(C mode)} 1630delete mode}. When this feature is enabled (indicated by @samp{/h} in
1677@findex c-toggle-auto-hungry-state 1631the mode line after the mode name), a single @key{BS} command deletes
1678Toggle the auto-newline and hungry-delete features, both at once 1632all preceding whitespace, not just one space, and a single @kbd{C-c
1679(@code{c-toggle-auto-hungry-state}). 1633C-d} (but @emph{not} @key{delete}) deletes all following whitespace.
1634
1635@table @kbd
1636@item M-x c-toggle-hungry-state
1637@findex c-toggle-hungry-state
1638Toggle the hungry-delete feature
1639(@code{c-toggle-hungry-state})@footnote{This command had the binding
1640@kbd{C-c C-d} in earlier versions of Emacs. @kbd{C-c C-d} is now
1641bound to @code{c-hungry-delete-forward}.}. With a prefix argument,
1642this command turns the hungry-delete feature on if the argument is
1643positive, and off if it is negative.
1680@end table 1644@end table
1681 1645
1682@vindex c-hungry-delete-key 1646@vindex c-hungry-delete-key
@@ -1687,6 +1651,16 @@ hungry-delete feature is enabled.
1687@subsection Other Commands for C Mode 1651@subsection Other Commands for C Mode
1688 1652
1689@table @kbd 1653@table @kbd
1654@item C-c C-w
1655@itemx M-x c-subword-mode
1656@findex c-subword-mode
1657Enable (or disable) @dfn{subword mode}. In subword mode, Emacs's word
1658commands then recognize upper case letters in
1659@samp{StudlyCapsIdentifiers} as word boundaries. This is indicated by
1660the flag @samp{/w} on the mode line after the mode name
1661(e.g. @samp{C/law}). You can even use @kbd{M-x c-subword-mode} in
1662non-CC Mode buffers.
1663
1690@item M-x c-context-line-break 1664@item M-x c-context-line-break
1691@findex c-context-line-break 1665@findex c-context-line-break
1692This command inserts a line break and indents the new line in a manner 1666This command inserts a line break and indents the new line in a manner
@@ -1697,9 +1671,13 @@ it's like @kbd{M-j} (@code{c-indent-new-comment-line}).
1697 1671
1698@code{c-context-line-break} isn't bound to a key by default, but it 1672@code{c-context-line-break} isn't bound to a key by default, but it
1699needs a binding to be useful. The following code will bind it to 1673needs a binding to be useful. The following code will bind it to
1700@kbd{C-j}. 1674@kbd{C-j}. We use @code{c-initialization-hook} here to make sure
1675the keymap is loaded before we try to change it.
1676
1701@example 1677@example
1702(define-key c-mode-base-map "\C-j" 'c-context-line-break) 1678(defun my-bind-clb ()
1679 (define-key c-mode-base-map "\C-j" 'c-context-line-break))
1680(add-hook 'c-initialization-hook 'my-bind-clb)
1703@end example 1681@end example
1704 1682
1705@item C-M-h 1683@item C-M-h
diff --git a/src/ChangeLog b/src/ChangeLog
index 275477a765f..969f9f6c46d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,57 @@
12005-12-20 Juri Linkov <juri@jurta.org>
2
3 * xmenu.c (Fx_popup_menu): Set Vmenu_updating_frame to f if
4 position is non-nil, else set it to nil.
5
6 * macmenu.c (Fx_popup_menu): Add `else' to set
7 Vmenu_updating_frame to nil only if position is nil.
8
9 * w32menu.c (Fx_popup_menu): Add `else' to set
10 Vmenu_updating_frame to nil only if position is nil.
11
122005-12-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13
14 * keyboard.c (make_lispy_event): Drag-and-drop items are now
15 stored in member `args' of struct input_event.
16
17 * termhooks.h (struct input_event): Fix comment for DRAG_N_DROP_EVENT.
18
19 * xselect.c (x_handle_dnd_message): Drag-and-drop items are now
20 stored in member `args' of struct input_event.
21
22 * w32term.c (construct_drag_n_drop): Likewise.
23
24 * macterm.c (mac_do_receive_drag): Likewise.
25 (x_use_underline_position_properties): Undo 2005-07-13 change.
26 (syms_of_macterm) <x-use-underline-position-properties>: Likewise.
27 (mac_use_core_graphics, mac_wheel_button_is_mouse_2)
28 (mac_pass_command_to_system, mac_pass_control_to_system): New
29 boolean variables renamed from Lisp_Object ones
30 Vmac_use_core_graphics, Vmac_wheel_button_is_mouse_2,
31 Vmac_pass_command_to_system, and Vmac_pass_control_to_system. All
32 uses changed.
33 (syms_of_macterm): DEFVAR_BOOL them. Remove previous DEFVAR_LISPs.
34 Make them user options.
35 (mac_handle_command_event, mac_store_services_event): Call
36 create_apple_event_from_event_ref without 5th argument.
37 (backtranslate_modified_keycode): Mask off modifier keys that are
38 mapped to some Emacs modifiers before passing it to KeyTranslate.
39 (syms_of_macterm): Make variables `mac-emulate-three-button-mouse',
40 `mac-wheel-button-is-mouse-2', and `mac-*-modifier' user options.
41 Fix docstrings of `mac-*-modifier'.
42
43 * mac.c (create_apple_event_from_event_ref): Remove arg `types'.
44 (do_applescript): Change argument types to Lisp_Object. All uses
45 changed.
46
47 * macterm.h (create_apple_event_from_event_ref): Remove 5th
48 argument from extern.
49
502005-12-18 Dan Nicolaescu <dann@ics.uci.edu>
51
52 * xfns.c (Fx_backspace_delete_keys_p): In case we cannot determine
53 the answer, return `lambda', not nil.
54
12005-12-17 Eli Zaretskii <eliz@gnu.org> 552005-12-17 Eli Zaretskii <eliz@gnu.org>
2 56
3 * makefile.w32-in (bootstrap-temacs): Warn that parts of commands 57 * makefile.w32-in (bootstrap-temacs): Warn that parts of commands
diff --git a/src/category.c b/src/category.c
index e1e59a317a1..866a7cdd429 100644
--- a/src/category.c
+++ b/src/category.c
@@ -1,6 +1,8 @@
1/* GNU Emacs routines to deal with category tables. 1/* GNU Emacs routines to deal with category tables.
2 Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. 2 Copyright (C) 1998, 2001, 2004 Free Software Foundation, Inc.
3 Licensed to the Free Software Foundation. 3 Copyright (C) 1995, 1997, 1998, 1999
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
4 6
5This file is part of GNU Emacs. 7This file is part of GNU Emacs.
6 8
diff --git a/src/category.h b/src/category.h
index ac79c13a83b..ade8704db09 100644
--- a/src/category.h
+++ b/src/category.h
@@ -1,6 +1,7 @@
1/* Declarations having to do with Emacs category tables. 1/* Declarations having to do with Emacs category tables.
2 Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 2 Copyright (C) 1995, 1998, 1999
3 Licensed to the Free Software Foundation. 3 National Institute of Advanced Industrial Science and Technology (AIST)
4 Registration Number H14PRO021
4 5
5This file is part of GNU Emacs. 6This file is part of GNU Emacs.
6 7
diff --git a/src/ccl.c b/src/ccl.c
index a5a39ca0d4b..69658f779a7 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -1,7 +1,8 @@
1/* CCL (Code Conversion Language) interpreter. 1/* CCL (Code Conversion Language) interpreter.
2 Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/ccl.h b/src/ccl.h
index 0a897835388..21a72df1d0b 100644
--- a/src/ccl.h
+++ b/src/ccl.h
@@ -1,6 +1,7 @@
1/* Header for CCL (Code Conversion Language) interpreter. 1/* Header for CCL (Code Conversion Language) interpreter.
2 Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. 2 Copyright (C) 1995, 1998, 2000
3 Licensed to the Free Software Foundation. 3 National Institute of Advanced Industrial Science and Technology (AIST)
4 Registration Number H14PRO021
4 5
5This file is part of GNU Emacs. 6This file is part of GNU Emacs.
6 7
diff --git a/src/charset.c b/src/charset.c
index 23b2cc75c1f..2c985b14dbc 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1,7 +1,8 @@
1/* Basic multilingual character support. 1/* Basic multilingual character support.
2 Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/charset.h b/src/charset.h
index b487e1d220e..d6b1dee187f 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -1,7 +1,8 @@
1/* Header for multibyte character handler. 1/* Header for multibyte character handler.
2 Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1997, 1998, 2003
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/coding.c b/src/coding.c
index 0ffb37f4bfa..759a97567c1 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -1,7 +1,8 @@
1/* Coding system handler (conversion, detection, and etc). 1/* Coding system handler (conversion, detection, and etc).
2 Copyright (C) 1995,97,1998,2002,2003 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1997, 1998, 2002, 2003, 2004, 2005
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/coding.h b/src/coding.h
index 42e73a36430..609720b9751 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -1,7 +1,8 @@
1/* Header for coding system handler. 1/* Header for coding system handler.
2 Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1997, 1998, 2000
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/composite.c b/src/composite.c
index f03d5054c33..54aa2ed9840 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1,7 +1,8 @@
1/* Composite sequence support. 1/* Composite sequence support.
2 Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1999
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/composite.h b/src/composite.h
index cdcc9301792..99db0506814 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -1,7 +1,8 @@
1/* Header for composite sequence handler. 1/* Header for composite sequence handler.
2 Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1997
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/fontset.c b/src/fontset.c
index 4529e6c2134..871ce9926f7 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1,7 +1,8 @@
1/* Fontset handler. 1/* Fontset handler.
2 Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation.
4 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Copyright (C) 1995, 1997, 1998, 2000, 2003, 2004, 2005
4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/fontset.h b/src/fontset.h
index 3a4932af6c0..aaf12facf94 100644
--- a/src/fontset.h
+++ b/src/fontset.h
@@ -1,7 +1,8 @@
1/* Header for fontset handler. 1/* Header for fontset handler.
2 Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN. 2 Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
3 Licensed to the Free Software Foundation. 3 Copyright (C) 1995, 1997, 2000
4 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4 National Institute of Advanced Industrial Science and Technology (AIST)
5 Registration Number H14PRO021
5 6
6This file is part of GNU Emacs. 7This file is part of GNU Emacs.
7 8
diff --git a/src/keyboard.c b/src/keyboard.c
index 95f2daf78ac..76ff053410e 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -5854,14 +5854,8 @@ make_lispy_event (event)
5854 Lisp_Object head, position; 5854 Lisp_Object head, position;
5855 Lisp_Object files; 5855 Lisp_Object files;
5856 5856
5857 /* The frame_or_window field should be a cons of the frame in 5857 f = XFRAME (event->frame_or_window);
5858 which the event occurred and a list of the filenames 5858 files = event->arg;
5859 dropped. */
5860 if (! CONSP (event->frame_or_window))
5861 abort ();
5862
5863 f = XFRAME (XCAR (event->frame_or_window));
5864 files = XCDR (event->frame_or_window);
5865 5859
5866 /* Ignore mouse events that were made on frames that 5860 /* Ignore mouse events that were made on frames that
5867 have been deleted. */ 5861 have been deleted. */
@@ -11721,6 +11715,9 @@ active keymaps have no binding for the current key sequence but
11721string, `read-key-sequence' replaces the matching suffix with its 11715string, `read-key-sequence' replaces the matching suffix with its
11722binding, and continues with the new sequence. 11716binding, and continues with the new sequence.
11723 11717
11718If the binding is a function, it is called with one argument (the prompt)
11719and its return value (a key sequence) is used.
11720
11724The events that come from bindings in `local-function-key-map' are not 11721The events that come from bindings in `local-function-key-map' are not
11725themselves looked up in `local-function-key-map'. 11722themselves looked up in `local-function-key-map'.
11726 11723
diff --git a/src/mac.c b/src/mac.c
index 1d306c429d7..d81c6d6a0ae 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -399,19 +399,17 @@ mac_aedesc_to_lisp (desc)
399 399
400#if TARGET_API_MAC_CARBON 400#if TARGET_API_MAC_CARBON
401OSErr 401OSErr
402create_apple_event_from_event_ref (event, num_params, names, 402create_apple_event_from_event_ref (event, num_params, names, types, result)
403 types, sizes, result)
404 EventRef event; 403 EventRef event;
405 UInt32 num_params; 404 UInt32 num_params;
406 EventParamName *names; 405 EventParamName *names;
407 EventParamType *types; 406 EventParamType *types;
408 UInt32 *sizes;
409 AppleEvent *result; 407 AppleEvent *result;
410{ 408{
411 OSErr err; 409 OSErr err;
412 static const ProcessSerialNumber psn = {0, kCurrentProcess}; 410 static const ProcessSerialNumber psn = {0, kCurrentProcess};
413 AEAddressDesc address_desc; 411 AEAddressDesc address_desc;
414 UInt32 i; 412 UInt32 i, size;
415 CFStringRef string; 413 CFStringRef string;
416 CFDataRef data; 414 CFDataRef data;
417 char *buf; 415 char *buf;
@@ -452,13 +450,17 @@ create_apple_event_from_event_ref (event, num_params, names,
452#endif 450#endif
453 451
454 default: 452 default:
455 buf = xmalloc (sizes[i]); 453 err = GetEventParameter (event, names[i], types[i], NULL,
454 0, &size, NULL);
455 if (err != noErr)
456 break;
457 buf = xmalloc (size);
456 if (buf == NULL) 458 if (buf == NULL)
457 break; 459 break;
458 err = GetEventParameter (event, names[i], types[i], NULL, 460 err = GetEventParameter (event, names[i], types[i], NULL,
459 sizes[i], NULL, buf); 461 size, NULL, buf);
460 if (err == noErr) 462 if (err == noErr)
461 AEPutParamPtr (result, names[i], types[i], buf, sizes[i]); 463 AEPutParamPtr (result, names[i], types[i], buf, size);
462 xfree (buf); 464 xfree (buf);
463 break; 465 break;
464 } 466 }
@@ -3189,7 +3191,10 @@ mystrcpy (char *to, char *from)
3189 wildcard filename expansion. Since we don't really have a shell on 3191 wildcard filename expansion. Since we don't really have a shell on
3190 the Mac, this case is detected and the starting of the shell is 3192 the Mac, this case is detected and the starting of the shell is
3191 by-passed. We really need to add code here to do filename 3193 by-passed. We really need to add code here to do filename
3192 expansion to support such functionality. */ 3194 expansion to support such functionality.
3195
3196 We can't use this strategy in Carbon because the High Level Event
3197 APIs are not available. */
3193 3198
3194int 3199int
3195run_mac_command (argv, workdir, infn, outfn, errfn) 3200run_mac_command (argv, workdir, infn, outfn, errfn)
@@ -3933,84 +3938,53 @@ CODE must be a 4-character string. Return non-nil if successful. */)
3933 3938
3934/* Compile and execute the AppleScript SCRIPT and return the error 3939/* Compile and execute the AppleScript SCRIPT and return the error
3935 status as function value. A zero is returned if compilation and 3940 status as function value. A zero is returned if compilation and
3936 execution is successful, in which case RESULT returns a pointer to 3941 execution is successful, in which case *RESULT is set to a Lisp
3937 a string containing the resulting script value. Otherwise, the Mac 3942 string containing the resulting script value. Otherwise, the Mac
3938 error code is returned and RESULT returns a pointer to an error 3943 error code is returned and *RESULT is set to an error Lisp string.
3939 string. In both cases the caller should deallocate the storage 3944 For documentation on the MacOS scripting architecture, see Inside
3940 used by the string pointed to by RESULT if it is non-NULL. For 3945 Macintosh - Interapplication Communications: Scripting
3941 documentation on the MacOS scripting architecture, see Inside 3946 Components. */
3942 Macintosh - Interapplication Communications: Scripting Components. */
3943 3947
3944static long 3948static long
3945do_applescript (char *script, char **result) 3949do_applescript (script, result)
3950 Lisp_Object script, *result;
3946{ 3951{
3947 AEDesc script_desc, result_desc, error_desc; 3952 AEDesc script_desc, result_desc, error_desc, *desc = NULL;
3948 OSErr error; 3953 OSErr error;
3949 OSAError osaerror; 3954 OSAError osaerror;
3950 long length;
3951 3955
3952 *result = 0; 3956 *result = Qnil;
3953 3957
3954 if (!as_scripting_component) 3958 if (!as_scripting_component)
3955 initialize_applescript(); 3959 initialize_applescript();
3956 3960
3957 error = AECreateDesc (typeChar, script, strlen(script), &script_desc); 3961 error = AECreateDesc (typeChar, SDATA (script), SBYTES (script),
3962 &script_desc);
3958 if (error) 3963 if (error)
3959 return error; 3964 return error;
3960 3965
3961 osaerror = OSADoScript (as_scripting_component, &script_desc, kOSANullScript, 3966 osaerror = OSADoScript (as_scripting_component, &script_desc, kOSANullScript,
3962 typeChar, kOSAModeNull, &result_desc); 3967 typeChar, kOSAModeNull, &result_desc);
3963 3968
3964 if (osaerror == errOSAScriptError) 3969 if (osaerror == noErr)
3965 { 3970 /* success: retrieve resulting script value */
3966 /* error executing AppleScript: retrieve error message */ 3971 desc = &result_desc;
3967 if (!OSAScriptError (as_scripting_component, kOSAErrorMessage, typeChar, 3972 else if (osaerror == errOSAScriptError)
3968 &error_desc)) 3973 /* error executing AppleScript: retrieve error message */
3969 { 3974 if (!OSAScriptError (as_scripting_component, kOSAErrorMessage, typeChar,
3970#if TARGET_API_MAC_CARBON 3975 &error_desc))
3971 length = AEGetDescDataSize (&error_desc); 3976 desc = &error_desc;
3972 *result = (char *) xmalloc (length + 1); 3977
3973 if (*result) 3978 if (desc)
3974 {
3975 AEGetDescData (&error_desc, *result, length);
3976 *(*result + length) = '\0';
3977 }
3978#else /* not TARGET_API_MAC_CARBON */
3979 HLock (error_desc.dataHandle);
3980 length = GetHandleSize(error_desc.dataHandle);
3981 *result = (char *) xmalloc (length + 1);
3982 if (*result)
3983 {
3984 memcpy (*result, *(error_desc.dataHandle), length);
3985 *(*result + length) = '\0';
3986 }
3987 HUnlock (error_desc.dataHandle);
3988#endif /* not TARGET_API_MAC_CARBON */
3989 AEDisposeDesc (&error_desc);
3990 }
3991 }
3992 else if (osaerror == noErr) /* success: retrieve resulting script value */
3993 { 3979 {
3994#if TARGET_API_MAC_CARBON 3980#if TARGET_API_MAC_CARBON
3995 length = AEGetDescDataSize (&result_desc); 3981 *result = make_uninit_string (AEGetDescDataSize (desc));
3996 *result = (char *) xmalloc (length + 1); 3982 AEGetDescData (desc, SDATA (*result), SBYTES (*result));
3997 if (*result)
3998 {
3999 AEGetDescData (&result_desc, *result, length);
4000 *(*result + length) = '\0';
4001 }
4002#else /* not TARGET_API_MAC_CARBON */ 3983#else /* not TARGET_API_MAC_CARBON */
4003 HLock (result_desc.dataHandle); 3984 *result = make_uninit_string (GetHandleSize (desc->dataHandle));
4004 length = GetHandleSize(result_desc.dataHandle); 3985 memcpy (SDATA (*result), *(desc->dataHandle), SBYTES (*result));
4005 *result = (char *) xmalloc (length + 1);
4006 if (*result)
4007 {
4008 memcpy (*result, *(result_desc.dataHandle), length);
4009 *(*result + length) = '\0';
4010 }
4011 HUnlock (result_desc.dataHandle);
4012#endif /* not TARGET_API_MAC_CARBON */ 3986#endif /* not TARGET_API_MAC_CARBON */
4013 AEDisposeDesc (&result_desc); 3987 AEDisposeDesc (desc);
4014 } 3988 }
4015 3989
4016 AEDisposeDesc (&script_desc); 3990 AEDisposeDesc (&script_desc);
@@ -4028,38 +4002,20 @@ component. */)
4028 (script) 4002 (script)
4029 Lisp_Object script; 4003 Lisp_Object script;
4030{ 4004{
4031 char *result, *temp; 4005 Lisp_Object result;
4032 Lisp_Object lisp_result;
4033 long status; 4006 long status;
4034 4007
4035 CHECK_STRING (script); 4008 CHECK_STRING (script);
4036 4009
4037 BLOCK_INPUT; 4010 BLOCK_INPUT;
4038 status = do_applescript (SDATA (script), &result); 4011 status = do_applescript (script, &result);
4039 UNBLOCK_INPUT; 4012 UNBLOCK_INPUT;
4040 if (status) 4013 if (status == 0)
4041 { 4014 return result;
4042 if (!result) 4015 else if (!STRINGP (result))
4043 error ("AppleScript error %d", status); 4016 error ("AppleScript error %d", status);
4044 else
4045 {
4046 /* Unfortunately only OSADoScript in do_applescript knows how
4047 how large the resulting script value or error message is
4048 going to be and therefore as caller memory must be
4049 deallocated here. It is necessary to free the error
4050 message before calling error to avoid a memory leak. */
4051 temp = (char *) alloca (strlen (result) + 1);
4052 strcpy (temp, result);
4053 xfree (result);
4054 error (temp);
4055 }
4056 }
4057 else 4017 else
4058 { 4018 error ("%s", SDATA (result));
4059 lisp_result = build_string (result);
4060 xfree (result);
4061 return lisp_result;
4062 }
4063} 4019}
4064 4020
4065 4021
diff --git a/src/macmenu.c b/src/macmenu.c
index a68ff04e405..064cec57486 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -746,7 +746,8 @@ no quit occurs and `x-popup-menu' returns nil. */)
746 746
747 XSETFRAME (Vmenu_updating_frame, f); 747 XSETFRAME (Vmenu_updating_frame, f);
748 } 748 }
749 Vmenu_updating_frame = Qnil; 749 else
750 Vmenu_updating_frame = Qnil;
750#endif /* HAVE_MENUS */ 751#endif /* HAVE_MENUS */
751 752
752 title = Qnil; 753 title = Qnil;
diff --git a/src/macterm.c b/src/macterm.c
index ba39450b4b4..cbf7078cb25 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -93,8 +93,9 @@ Boston, MA 02110-1301, USA. */
93 93
94Lisp_Object Vx_toolkit_scroll_bars; 94Lisp_Object Vx_toolkit_scroll_bars;
95 95
96/* If Non-nil, the text will be rendered using Core Graphics text rendering which may anti-alias the text. */ 96/* If non-zero, the text will be rendered using Core Graphics text
97Lisp_Object Vmac_use_core_graphics; 97 rendering which may anti-alias the text. */
98int mac_use_core_graphics;
98 99
99 100
100/* Non-zero means that a HELP_EVENT has been generated since Emacs 101/* Non-zero means that a HELP_EVENT has been generated since Emacs
@@ -105,6 +106,10 @@ static int any_help_event_p;
105/* Last window where we saw the mouse. Used by mouse-autoselect-window. */ 106/* Last window where we saw the mouse. Used by mouse-autoselect-window. */
106static Lisp_Object last_window; 107static Lisp_Object last_window;
107 108
109/* Non-zero means make use of UNDERLINE_POSITION font properties.
110 (Not yet supported.) */
111int x_use_underline_position_properties;
112
108/* This is a chain of structures for all the X displays currently in 113/* This is a chain of structures for all the X displays currently in
109 use. */ 114 use. */
110 115
@@ -199,8 +204,7 @@ extern EMACS_INT extra_keyboard_modifiers;
199 204
200/* The keysyms to use for the various modifiers. */ 205/* The keysyms to use for the various modifiers. */
201 206
202static Lisp_Object Qalt, Qhyper, Qsuper, Qcontrol, 207static Lisp_Object Qalt, Qhyper, Qsuper, Qcontrol, Qmeta, Qmodifier_value;
203 Qmeta, Qmodifier_value;
204 208
205extern int inhibit_window_system; 209extern int inhibit_window_system;
206 210
@@ -687,7 +691,7 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, mode, bytes_per_char)
687{ 691{
688#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 692#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
689 UInt32 textFlags, savedFlags; 693 UInt32 textFlags, savedFlags;
690 if (!NILP(Vmac_use_core_graphics)) { 694 if (mac_use_core_graphics) {
691 textFlags = kQDUseCGTextRendering; 695 textFlags = kQDUseCGTextRendering;
692 savedFlags = SwapQDTextFlags(textFlags); 696 savedFlags = SwapQDTextFlags(textFlags);
693 } 697 }
@@ -723,7 +727,7 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, mode, bytes_per_char)
723 if (err == noErr) 727 if (err == noErr)
724 { 728 {
725#ifdef MAC_OSX 729#ifdef MAC_OSX
726 if (NILP (Vmac_use_core_graphics)) 730 if (!mac_use_core_graphics)
727 { 731 {
728#endif 732#endif
729 mac_begin_clip (GC_CLIP_REGION (gc)); 733 mac_begin_clip (GC_CLIP_REGION (gc));
@@ -802,7 +806,7 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, mode, bytes_per_char)
802 if (mode != srcOr) 806 if (mode != srcOr)
803 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 807 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
804#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 808#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
805 if (!NILP(Vmac_use_core_graphics)) 809 if (mac_use_core_graphics)
806 SwapQDTextFlags(savedFlags); 810 SwapQDTextFlags(savedFlags);
807#endif 811#endif
808} 812}
@@ -895,7 +899,7 @@ mac_draw_string_cg (f, gc, x, y, buf, nchars)
895 CGGlyph *glyphs; 899 CGGlyph *glyphs;
896 CGSize *advances; 900 CGSize *advances;
897 901
898 if (NILP (Vmac_use_core_graphics) || GC_FONT (gc)->cg_font == NULL) 902 if (!mac_use_core_graphics || GC_FONT (gc)->cg_font == NULL)
899 return 0; 903 return 0;
900 904
901 port = GetWindowPort (FRAME_MAC_WINDOW (f)); 905 port = GetWindowPort (FRAME_MAC_WINDOW (f));
@@ -8109,17 +8113,17 @@ Lisp_Object Vmac_function_modifier;
8109Lisp_Object Vmac_emulate_three_button_mouse; 8113Lisp_Object Vmac_emulate_three_button_mouse;
8110 8114
8111#if USE_CARBON_EVENTS 8115#if USE_CARBON_EVENTS
8112/* True if the mouse wheel button (i.e. button 4) should map to 8116/* Non-zero if the mouse wheel button (i.e. button 4) should map to
8113 mouse-2, instead of mouse-3. */ 8117 mouse-2, instead of mouse-3. */
8114Lisp_Object Vmac_wheel_button_is_mouse_2; 8118int mac_wheel_button_is_mouse_2;
8115 8119
8116/* If Non-nil, the Mac "Command" key is passed on to the Mac Toolbox 8120/* If non-zero, the Mac "Command" key is passed on to the Mac Toolbox
8117 for processing before Emacs sees it. */ 8121 for processing before Emacs sees it. */
8118Lisp_Object Vmac_pass_command_to_system; 8122int mac_pass_command_to_system;
8119 8123
8120/* If Non-nil, the Mac "Control" key is passed on to the Mac Toolbox 8124/* If non-zero, the Mac "Control" key is passed on to the Mac Toolbox
8121 for processing before Emacs sees it. */ 8125 for processing before Emacs sees it. */
8122Lisp_Object Vmac_pass_control_to_system; 8126int mac_pass_control_to_system;
8123#endif 8127#endif
8124 8128
8125/* Points to the variable `inev' in the function XTread_socket. It is 8129/* Points to the variable `inev' in the function XTread_socket. It is
@@ -8176,8 +8180,6 @@ mac_to_emacs_modifiers (EventModifiers mods)
8176 if (mods & shiftKey) 8180 if (mods & shiftKey)
8177 result |= shift_modifier; 8181 result |= shift_modifier;
8178 8182
8179
8180
8181 /* Deactivated to simplify configuration: 8183 /* Deactivated to simplify configuration:
8182 if Vmac_option_modifier is non-NIL, we fully process the Option 8184 if Vmac_option_modifier is non-NIL, we fully process the Option
8183 key. Otherwise, we only process it if an additional Ctrl or Command 8185 key. Otherwise, we only process it if an additional Ctrl or Command
@@ -8265,10 +8267,10 @@ mac_get_mouse_btn (EventRef ref)
8265 return mac_get_emulated_btn(mods); 8267 return mac_get_emulated_btn(mods);
8266 } 8268 }
8267 case kEventMouseButtonSecondary: 8269 case kEventMouseButtonSecondary:
8268 return NILP (Vmac_wheel_button_is_mouse_2) ? 1 : 2; 8270 return mac_wheel_button_is_mouse_2 ? 2 : 1;
8269 case kEventMouseButtonTertiary: 8271 case kEventMouseButtonTertiary:
8270 case 4: /* 4 is the number for the mouse wheel button */ 8272 case 4: /* 4 is the number for the mouse wheel button */
8271 return NILP (Vmac_wheel_button_is_mouse_2) ? 2 : 1; 8273 return mac_wheel_button_is_mouse_2 ? 1 : 2;
8272 default: 8274 default:
8273 return 0; 8275 return 0;
8274 } 8276 }
@@ -8779,10 +8781,8 @@ mac_handle_command_event (next_handler, event, data)
8779 kEventParamKeyModifiers}; 8781 kEventParamKeyModifiers};
8780 static EventParamType types[] = {typeHICommand, 8782 static EventParamType types[] = {typeHICommand,
8781 typeUInt32}; 8783 typeUInt32};
8782 static UInt32 sizes[] = {sizeof (HICommand),
8783 sizeof (UInt32)};
8784 err = create_apple_event_from_event_ref (event, 2, names, types, 8784 err = create_apple_event_from_event_ref (event, 2, names, types,
8785 sizes, &apple_event); 8785 &apple_event);
8786 if (err == noErr) 8786 if (err == noErr)
8787 { 8787 {
8788 err = mac_store_apple_event (class_key, id_key, &apple_event); 8788 err = mac_store_apple_event (class_key, id_key, &apple_event);
@@ -8966,8 +8966,8 @@ mac_store_services_event (event)
8966 { 8966 {
8967 case kEventServicePaste: 8967 case kEventServicePaste:
8968 id_key = Qpaste; 8968 id_key = Qpaste;
8969 err = create_apple_event_from_event_ref (event, 0, NULL, 8969 err = create_apple_event_from_event_ref (event, 0, NULL, NULL,
8970 NULL, NULL, &apple_event); 8970 &apple_event);
8971 break; 8971 break;
8972 8972
8973 case kEventServicePerform: 8973 case kEventServicePerform:
@@ -8976,12 +8976,10 @@ mac_store_services_event (event)
8976 kEventParamServiceUserData}; 8976 kEventParamServiceUserData};
8977 static EventParamType types[] = {typeCFStringRef, 8977 static EventParamType types[] = {typeCFStringRef,
8978 typeCFStringRef}; 8978 typeCFStringRef};
8979 static UInt32 sizes[] = {sizeof (CFStringRef),
8980 sizeof (CFStringRef)};
8981 8979
8982 id_key = Qperform; 8980 id_key = Qperform;
8983 err = create_apple_event_from_event_ref (event, 2, names, types, 8981 err = create_apple_event_from_event_ref (event, 2, names, types,
8984 sizes, &apple_event); 8982 &apple_event);
8985 } 8983 }
8986 break; 8984 break;
8987 8985
@@ -9191,8 +9189,8 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon,
9191 XSETINT (event.x, mouse.h); 9189 XSETINT (event.x, mouse.h);
9192 XSETINT (event.y, mouse.v); 9190 XSETINT (event.y, mouse.v);
9193 XSETFRAME (frame, f); 9191 XSETFRAME (frame, f);
9194 event.frame_or_window = Fcons (frame, file_list); 9192 event.frame_or_window = frame;
9195 event.arg = Qnil; 9193 event.arg = file_list;
9196 /* Post to the interrupt queue */ 9194 /* Post to the interrupt queue */
9197 kbd_buffer_store_event (&event); 9195 kbd_buffer_store_event (&event);
9198 /* MAC_TODO: Mimic behavior of windows by switching contexts to Emacs */ 9196 /* MAC_TODO: Mimic behavior of windows by switching contexts to Emacs */
@@ -9411,10 +9409,12 @@ convert_fn_keycode (EventRef eventRef, int keyCode, int *newCode)
9411static int 9409static int
9412backtranslate_modified_keycode(int mods, int keycode, int def) 9410backtranslate_modified_keycode(int mods, int keycode, int def)
9413{ 9411{
9414 if (mods & 9412 EventModifiers mapped_modifiers =
9415 (controlKey | 9413 (NILP (Vmac_control_modifier) ? 0 : controlKey)
9416 (NILP (Vmac_option_modifier) ? 0 : optionKey) | 9414 | (NILP (Vmac_option_modifier) ? 0 : optionKey)
9417 cmdKey)) 9415 | (NILP (Vmac_command_modifier) ? 0 : cmdKey);
9416
9417 if (mods & mapped_modifiers)
9418 { 9418 {
9419 /* This code comes from Keyboard Resource, 9419 /* This code comes from Keyboard Resource,
9420 Appendix C of IM - Text. This is necessary 9420 Appendix C of IM - Text. This is necessary
@@ -9429,14 +9429,15 @@ backtranslate_modified_keycode(int mods, int keycode, int def)
9429 to preserve key combinations translated by the OS 9429 to preserve key combinations translated by the OS
9430 such as Alt-3. 9430 such as Alt-3.
9431 */ 9431 */
9432 /* mask off option and command */ 9432 /* Mask off modifier keys that are mapped to some Emacs
9433 int new_modifiers = mods & 0xe600; 9433 modifiers. */
9434 int new_modifiers = mods & ~mapped_modifiers;
9434 /* set high byte of keycode to modifier high byte*/ 9435 /* set high byte of keycode to modifier high byte*/
9435 int new_keycode = keycode | new_modifiers; 9436 int new_keycode = keycode | new_modifiers;
9436 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache); 9437 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
9437 unsigned long some_state = 0; 9438 unsigned long some_state = 0;
9438 return (int) KeyTranslate (kchr_ptr, new_keycode, 9439 return (int) KeyTranslate (kchr_ptr, new_keycode,
9439 &some_state) & 0xff; 9440 &some_state) & 0xff;
9440 /* TO DO: Recognize two separate resulting characters, "for 9441 /* TO DO: Recognize two separate resulting characters, "for
9441 example, when the user presses Option-E followed by N, you 9442 example, when the user presses Option-E followed by N, you
9442 can map this through the KeyTranslate function using the 9443 can map this through the KeyTranslate function using the
@@ -9990,9 +9991,9 @@ XTread_socket (sd, expected, hold_quit)
9990 will pass back noErr, otherwise it will pass back 9991 will pass back noErr, otherwise it will pass back
9991 "eventNotHandledErr" and we can process it 9992 "eventNotHandledErr" and we can process it
9992 normally. */ 9993 normally. */
9993 if ((!NILP (Vmac_pass_command_to_system) 9994 if ((mac_pass_command_to_system
9994 || !(er.modifiers & cmdKey)) 9995 || !(er.modifiers & cmdKey))
9995 && (!NILP (Vmac_pass_control_to_system) 9996 && (mac_pass_control_to_system
9996 || !(er.modifiers & controlKey)) 9997 || !(er.modifiers & controlKey))
9997 && (NILP (Vmac_option_modifier) 9998 && (NILP (Vmac_option_modifier)
9998 || !(er.modifiers & optionKey))) 9999 || !(er.modifiers & optionKey)))
@@ -10061,12 +10062,10 @@ XTread_socket (sd, expected, hold_quit)
10061 } 10062 }
10062 else 10063 else
10063 { 10064 {
10064
10065 inev.code = 10065 inev.code =
10066 backtranslate_modified_keycode(er.modifiers, keycode, 10066 backtranslate_modified_keycode(er.modifiers, keycode,
10067 er.message & charCodeMask); 10067 er.message & charCodeMask);
10068 inev.kind = ASCII_KEYSTROKE_EVENT; 10068 inev.kind = ASCII_KEYSTROKE_EVENT;
10069
10070 } 10069 }
10071 } 10070 }
10072 10071
@@ -10711,6 +10710,18 @@ syms_of_macterm ()
10711 atsu_font_id_hash = Qnil; 10710 atsu_font_id_hash = Qnil;
10712#endif 10711#endif
10713 10712
10713 /* We don't yet support this, but defining this here avoids whining
10714 from cus-start.el and other places, like "M-x set-variable". */
10715 DEFVAR_BOOL ("x-use-underline-position-properties",
10716 &x_use_underline_position_properties,
10717 doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
10718nil means ignore them. If you encounter fonts with bogus
10719UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
10720to 4.1, set this to nil.
10721
10722NOTE: Not supported on Mac yet. */);
10723 x_use_underline_position_properties = 0;
10724
10714 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, 10725 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
10715 doc: /* If not nil, Emacs uses toolkit scroll bars. */); 10726 doc: /* If not nil, Emacs uses toolkit scroll bars. */);
10716#ifdef USE_TOOLKIT_SCROLL_BARS 10727#ifdef USE_TOOLKIT_SCROLL_BARS
@@ -10725,35 +10736,35 @@ syms_of_macterm ()
10725/* Variables to configure modifier key assignment. */ 10736/* Variables to configure modifier key assignment. */
10726 10737
10727 DEFVAR_LISP ("mac-control-modifier", &Vmac_control_modifier, 10738 DEFVAR_LISP ("mac-control-modifier", &Vmac_control_modifier,
10728 doc: /* Modifier key assumed when the Mac control key is pressed. 10739 doc: /* *Modifier key assumed when the Mac control key is pressed.
10729The value can be `alt', `control', `hyper', or `super' for the 10740The value can be `control', `meta', `alt', `hyper', or `super' for the
10730respective modifier. The default is `control'. */); 10741respective modifier. The default is `control'. */);
10731 Vmac_control_modifier = Qcontrol; 10742 Vmac_control_modifier = Qcontrol;
10732 10743
10733 DEFVAR_LISP ("mac-option-modifier", &Vmac_option_modifier, 10744 DEFVAR_LISP ("mac-option-modifier", &Vmac_option_modifier,
10734 doc: /* Modifier key assumed when the Mac alt/option key is pressed. 10745 doc: /* *Modifier key assumed when the Mac alt/option key is pressed.
10735The value can be `alt', `control', `hyper', or `super' for the 10746The value can be `control', `meta', `alt', `hyper', or `super' for the
10736respective modifier. If the value is nil then the key will act as the 10747respective modifier. If the value is nil then the key will act as the
10737normal Mac control modifier, and the option key can be used to compose 10748normal Mac control modifier, and the option key can be used to compose
10738characters depending on the chosen Mac keyboard setting. */); 10749characters depending on the chosen Mac keyboard setting. */);
10739 Vmac_option_modifier = Qnil; 10750 Vmac_option_modifier = Qnil;
10740 10751
10741 DEFVAR_LISP ("mac-command-modifier", &Vmac_command_modifier, 10752 DEFVAR_LISP ("mac-command-modifier", &Vmac_command_modifier,
10742 doc: /* Modifier key assumed when the Mac command key is pressed. 10753 doc: /* *Modifier key assumed when the Mac command key is pressed.
10743The value can be `alt', `control', `hyper', or `super' for the 10754The value can be `control', `meta', `alt', `hyper', or `super' for the
10744respective modifier. The default is `meta'. */); 10755respective modifier. The default is `meta'. */);
10745 Vmac_command_modifier = Qmeta; 10756 Vmac_command_modifier = Qmeta;
10746 10757
10747 DEFVAR_LISP ("mac-function-modifier", &Vmac_function_modifier, 10758 DEFVAR_LISP ("mac-function-modifier", &Vmac_function_modifier,
10748 doc: /* Modifier key assumed when the Mac function key is pressed. 10759 doc: /* *Modifier key assumed when the Mac function key is pressed.
10749The value can be `alt', `control', `hyper', or `super' for the 10760The value can be `control', `meta', `alt', `hyper', or `super' for the
10750respective modifier. Note that remapping the function key may lead to 10761respective modifier. Note that remapping the function key may lead to
10751unexpected results for some keys on non-US/GB keyboards. */); 10762unexpected results for some keys on non-US/GB keyboards. */);
10752 Vmac_function_modifier = Qnil; 10763 Vmac_function_modifier = Qnil;
10753 10764
10754 DEFVAR_LISP ("mac-emulate-three-button-mouse", 10765 DEFVAR_LISP ("mac-emulate-three-button-mouse",
10755 &Vmac_emulate_three_button_mouse, 10766 &Vmac_emulate_three_button_mouse,
10756 doc: /* Specify a way of three button mouse emulation. 10767 doc: /* *Specify a way of three button mouse emulation.
10757The value can be nil, t, or the symbol `reverse'. 10768The value can be nil, t, or the symbol `reverse'.
10758nil means that no emulation should be done and the modifiers should be 10769nil means that no emulation should be done and the modifiers should be
10759placed on the mouse-1 event. 10770placed on the mouse-1 event.
@@ -10765,27 +10776,27 @@ mouse-3 and the command-key will register for mouse-2. */);
10765 Vmac_emulate_three_button_mouse = Qnil; 10776 Vmac_emulate_three_button_mouse = Qnil;
10766 10777
10767#if USE_CARBON_EVENTS 10778#if USE_CARBON_EVENTS
10768 DEFVAR_LISP ("mac-wheel-button-is-mouse-2", &Vmac_wheel_button_is_mouse_2, 10779 DEFVAR_BOOL ("mac-wheel-button-is-mouse-2", &mac_wheel_button_is_mouse_2,
10769 doc: /* Non-nil if the wheel button is mouse-2 and the right click mouse-3. 10780 doc: /* *Non-nil if the wheel button is mouse-2 and the right click mouse-3.
10770Otherwise, the right click will be treated as mouse-2 and the wheel 10781Otherwise, the right click will be treated as mouse-2 and the wheel
10771button will be mouse-3. */); 10782button will be mouse-3. */);
10772 Vmac_wheel_button_is_mouse_2 = Qt; 10783 mac_wheel_button_is_mouse_2 = 1;
10773 10784
10774 DEFVAR_LISP ("mac-pass-command-to-system", &Vmac_pass_command_to_system, 10785 DEFVAR_BOOL ("mac-pass-command-to-system", &mac_pass_command_to_system,
10775 doc: /* Non-nil if command key presses are passed on to the Mac Toolbox. */); 10786 doc: /* *Non-nil if command key presses are passed on to the Mac Toolbox. */);
10776 Vmac_pass_command_to_system = Qt; 10787 mac_pass_command_to_system = 1;
10777 10788
10778 DEFVAR_LISP ("mac-pass-control-to-system", &Vmac_pass_control_to_system, 10789 DEFVAR_BOOL ("mac-pass-control-to-system", &mac_pass_control_to_system,
10779 doc: /* Non-nil if control key presses are passed on to the Mac Toolbox. */); 10790 doc: /* *Non-nil if control key presses are passed on to the Mac Toolbox. */);
10780 Vmac_pass_control_to_system = Qt; 10791 mac_pass_control_to_system = 1;
10781 10792
10782#endif 10793#endif
10783 10794
10784 DEFVAR_LISP ("mac-allow-anti-aliasing", &Vmac_use_core_graphics, 10795 DEFVAR_BOOL ("mac-allow-anti-aliasing", &mac_use_core_graphics,
10785 doc: /* If non-nil, allow anti-aliasing. 10796 doc: /* *If non-nil, allow anti-aliasing.
10786The text will be rendered using Core Graphics text rendering which 10797The text will be rendered using Core Graphics text rendering which
10787may anti-alias the text. */); 10798may anti-alias the text. */);
10788 Vmac_use_core_graphics = Qnil; 10799 mac_use_core_graphics = 0;
10789 10800
10790 /* Register an entry for `mac-roman' so that it can be used when 10801 /* Register an entry for `mac-roman' so that it can be used when
10791 creating the terminal frame on Mac OS 9 before loading 10802 creating the terminal frame on Mac OS 9 before loading
diff --git a/src/macterm.h b/src/macterm.h
index 916a461f67e..08c2f058cde 100644
--- a/src/macterm.h
+++ b/src/macterm.h
@@ -583,7 +583,7 @@ extern Lisp_Object mac_aedesc_to_lisp P_ ((AEDesc *));
583extern OSErr create_apple_event_from_event_ref P_ ((EventRef, UInt32, 583extern OSErr create_apple_event_from_event_ref P_ ((EventRef, UInt32,
584 EventParamName *, 584 EventParamName *,
585 EventParamType *, 585 EventParamType *,
586 UInt32 *, AppleEvent *)); 586 AppleEvent *));
587extern CFStringRef cfstring_create_with_utf8_cstring P_ ((const char *)); 587extern CFStringRef cfstring_create_with_utf8_cstring P_ ((const char *));
588extern CFStringRef cfstring_create_with_string P_ ((Lisp_Object)); 588extern CFStringRef cfstring_create_with_string P_ ((Lisp_Object));
589extern Lisp_Object cfdata_to_lisp P_ ((CFDataRef)); 589extern Lisp_Object cfdata_to_lisp P_ ((CFDataRef));
diff --git a/src/termhooks.h b/src/termhooks.h
index 7920b6597aa..c925a85b484 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -144,14 +144,14 @@ enum event_kind
144 DRAG_N_DROP_EVENT, /* A drag-n-drop event is generated when 144 DRAG_N_DROP_EVENT, /* A drag-n-drop event is generated when
145 files selected outside of Emacs are dropped 145 files selected outside of Emacs are dropped
146 onto an Emacs window. 146 onto an Emacs window.
147 Currently used only on Windows NT.
148 .modifiers holds the state of the 147 .modifiers holds the state of the
149 modifier keys. 148 modifier keys.
150 .x and .y give the mouse position, 149 .x and .y give the mouse position,
151 in characters, within the window. 150 in characters, within the window.
152 .frame_or_window is a cons of the frame 151 .frame_or_window is the frame in
153 in which the drop was made and a list of 152 which the drop was made.
154 the filenames of the dropped files. 153 .arg is a platform-dependent
154 representation of the dropped items.
155 .timestamp gives a timestamp (in 155 .timestamp gives a timestamp (in
156 milliseconds) for the click. */ 156 milliseconds) for the click. */
157 USER_SIGNAL_EVENT, /* A user signal. 157 USER_SIGNAL_EVENT, /* A user signal.
diff --git a/src/w32menu.c b/src/w32menu.c
index d441d14b259..dfd885eee08 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -738,7 +738,8 @@ cached information about equivalent key sequences. */)
738 738
739 XSETFRAME (Vmenu_updating_frame, f); 739 XSETFRAME (Vmenu_updating_frame, f);
740 } 740 }
741 Vmenu_updating_frame = Qnil; 741 else
742 Vmenu_updating_frame = Qnil;
742#endif /* HAVE_MENUS */ 743#endif /* HAVE_MENUS */
743 744
744 title = Qnil; 745 title = Qnil;
diff --git a/src/w32term.c b/src/w32term.c
index 14b5d0ffb79..79f6ae5206b 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -3187,8 +3187,8 @@ construct_drag_n_drop (result, msg, f)
3187 DragFinish (hdrop); 3187 DragFinish (hdrop);
3188 3188
3189 XSETFRAME (frame, f); 3189 XSETFRAME (frame, f);
3190 result->frame_or_window = Fcons (frame, files); 3190 result->frame_or_window = frame;
3191 result->arg = Qnil; 3191 result->arg = files;
3192 return Qnil; 3192 return Qnil;
3193} 3193}
3194 3194
diff --git a/src/xfns.c b/src/xfns.c
index 5610aa95e9d..acd63125e87 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -5524,7 +5524,8 @@ DEFUN ("x-backspace-delete-keys-p", Fx_backspace_delete_keys_p,
5524 doc: /* Check if both Backspace and Delete keys are on the keyboard of FRAME. 5524 doc: /* Check if both Backspace and Delete keys are on the keyboard of FRAME.
5525FRAME nil means use the selected frame. 5525FRAME nil means use the selected frame.
5526Value is t if we know that both keys are present, and are mapped to the 5526Value is t if we know that both keys are present, and are mapped to the
5527usual X keysyms. */) 5527usual X keysyms. Value is `lambda' if we cannot determine if both keys are
5528present and mapped to the usual X keysyms. */)
5528 (frame) 5529 (frame)
5529 Lisp_Object frame; 5530 Lisp_Object frame;
5530{ 5531{
@@ -5543,7 +5544,7 @@ usual X keysyms. */)
5543 if (!XkbLibraryVersion (&major, &minor)) 5544 if (!XkbLibraryVersion (&major, &minor))
5544 { 5545 {
5545 UNBLOCK_INPUT; 5546 UNBLOCK_INPUT;
5546 return Qnil; 5547 return Qlambda;
5547 } 5548 }
5548 5549
5549 /* Check that the server supports XKB. */ 5550 /* Check that the server supports XKB. */
@@ -5552,7 +5553,7 @@ usual X keysyms. */)
5552 if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor)) 5553 if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor))
5553 { 5554 {
5554 UNBLOCK_INPUT; 5555 UNBLOCK_INPUT;
5555 return Qnil; 5556 return Qlambda;
5556 } 5557 }
5557 5558
5558 /* In this code we check that the keyboard has physical keys with names 5559 /* In this code we check that the keyboard has physical keys with names
@@ -5607,7 +5608,7 @@ usual X keysyms. */)
5607 UNBLOCK_INPUT; 5608 UNBLOCK_INPUT;
5608 return have_keys; 5609 return have_keys;
5609#else /* not HAVE_XKBGETKEYBOARD */ 5610#else /* not HAVE_XKBGETKEYBOARD */
5610 return Qnil; 5611 return Qlambda;
5611#endif /* not HAVE_XKBGETKEYBOARD */ 5612#endif /* not HAVE_XKBGETKEYBOARD */
5612} 5613}
5613 5614
diff --git a/src/xmenu.c b/src/xmenu.c
index 3fd88a7ac2f..36f95d911f0 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -905,8 +905,11 @@ no quit occurs and `x-popup-menu' returns nil. */)
905 905
906 if (! FRAME_X_P (f)) 906 if (! FRAME_X_P (f))
907 error ("Can not put X menu on non-X terminal"); 907 error ("Can not put X menu on non-X terminal");
908
909 XSETFRAME (Vmenu_updating_frame, f);
908 } 910 }
909 Vmenu_updating_frame = Qnil; 911 else
912 Vmenu_updating_frame = Qnil;
910#endif /* HAVE_MENUS */ 913#endif /* HAVE_MENUS */
911 914
912 record_unwind_protect (unuse_menu_items, Qnil); 915 record_unwind_protect (unuse_menu_items, Qnil);
diff --git a/src/xselect.c b/src/xselect.c
index 432365fdb63..16fb7187474 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -2759,11 +2759,11 @@ x_handle_dnd_message (f, event, dpyinfo, bufp)
2759 2759
2760 mouse_position_for_drop (f, &x, &y); 2760 mouse_position_for_drop (f, &x, &y);
2761 bufp->kind = DRAG_N_DROP_EVENT; 2761 bufp->kind = DRAG_N_DROP_EVENT;
2762 bufp->frame_or_window = Fcons (frame, vec); 2762 bufp->frame_or_window = frame;
2763 bufp->timestamp = CurrentTime; 2763 bufp->timestamp = CurrentTime;
2764 bufp->x = make_number (x); 2764 bufp->x = make_number (x);
2765 bufp->y = make_number (y); 2765 bufp->y = make_number (y);
2766 bufp->arg = Qnil; 2766 bufp->arg = vec;
2767 bufp->modifiers = 0; 2767 bufp->modifiers = 0;
2768 2768
2769 return 1; 2769 return 1;