diff options
| author | Karoly Lorentey | 2005-12-03 14:25:50 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-12-03 14:25:50 +0000 |
| commit | 9ef706664e98e37e9633712126bae99869904677 (patch) | |
| tree | 193bce7424700e4c7d70f54b04f7f81d64525554 | |
| parent | 950bed4bb96d2a580818bdaab64a164c7c9a1c1e (diff) | |
| parent | 9f6efa0c78099f2f028c4db1db5a58567a1cfb4e (diff) | |
| download | emacs-9ef706664e98e37e9633712126bae99869904677.tar.gz emacs-9ef706664e98e37e9633712126bae99869904677.zip | |
Merged from miles@gnu.org--gnu-2005 (patch 659-663)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-659
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-660
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-661
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-662
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-663
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-445
91 files changed, 3750 insertions, 2503 deletions
| @@ -1,3 +1,7 @@ | |||
| 1 | 2005-11-22 Romain Francoise <romain@orebokech.com> | ||
| 2 | |||
| 3 | * make-dist: Add etc/images/icons. | ||
| 4 | |||
| 1 | 2005-11-03 Andreas Schwab <schwab@suse.de> | 5 | 2005-11-03 Andreas Schwab <schwab@suse.de> |
| 2 | 6 | ||
| 3 | * configure.in: Use GZIP_PROG instead of GZIP. | 7 | * configure.in: Use GZIP_PROG instead of GZIP. |
diff --git a/admin/ChangeLog b/admin/ChangeLog index ff753ae0b6f..b5545f5d76a 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2005-11-28 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * FOR-RELEASE: Icons installed. Partial completion bug fixed. | ||
| 4 | |||
| 1 | 2005-11-11 Kim F. Storm <storm@cua.dk> | 5 | 2005-11-11 Kim F. Storm <storm@cua.dk> |
| 2 | 6 | ||
| 3 | * FOR-RELEASE (FATAL ERRORS): Fix infinite loop in redisplay | 7 | * FOR-RELEASE (FATAL ERRORS): Fix infinite loop in redisplay |
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 26de10026db..741cd7a61e6 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -38,8 +38,6 @@ bitmap usage to a bitmap name, and second level maps bitmap name to | |||
| 38 | a bitmap appearence. | 38 | a bitmap appearence. |
| 39 | [Assigned to KFS] | 39 | [Assigned to KFS] |
| 40 | 40 | ||
| 41 | ** Install Zhilin's icons. | ||
| 42 | |||
| 43 | * FATAL ERRORS | 41 | * FATAL ERRORS |
| 44 | 42 | ||
| 45 | ** Investigate reported crashes in compact_small_strings. | 43 | ** Investigate reported crashes in compact_small_strings. |
| @@ -53,8 +51,6 @@ invalid pointer from string_free_list. | |||
| 53 | C-x 2, C-x 3, C-x 2. Now try to move the bottom of the | 51 | C-x 2, C-x 3, C-x 2. Now try to move the bottom of the |
| 54 | second window to the left. | 52 | second window to the left. |
| 55 | 53 | ||
| 56 | ** Fix completion highlighting bug in partial completion mode. | ||
| 57 | |||
| 58 | ** TCP server processes do not work on Windows. | 54 | ** TCP server processes do not work on Windows. |
| 59 | 55 | ||
| 60 | TCP/IP server processes created with `make-network-process' consume | 56 | TCP/IP server processes created with `make-network-process' consume |
diff --git a/etc/ChangeLog b/etc/ChangeLog index ef8059b68b3..9df3d9d482b 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2005-11-28 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 2 | |||
| 3 | * MORE.STUFF: Add entry: "Go in a buffer: Go Text Protocol client". | ||
| 4 | |||
| 5 | 2005-11-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 6 | |||
| 7 | * images/icons/emacs_16.png, images/icons/emacs_24.png | ||
| 8 | * images/icons/emacs_32.png, images/icons/emacs_48.png: | ||
| 9 | New Emacs icons. | ||
| 10 | |||
| 1 | 2005-11-18 Carsten Dominik <dominik@science.uva.nl> | 11 | 2005-11-18 Carsten Dominik <dominik@science.uva.nl> |
| 2 | 12 | ||
| 3 | * orgcard.tex: Version 3.20 | 13 | * orgcard.tex: Version 3.20 |
diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF index d88d48ab4ae..1e90298c9f0 100644 --- a/etc/MORE.STUFF +++ b/etc/MORE.STUFF | |||
| @@ -174,6 +174,11 @@ Several are for Debian GNU/Linux in particular. | |||
| 174 | Enhanced emacsclient/emacsserver. Also available from this Web | 174 | Enhanced emacsclient/emacsserver. Also available from this Web |
| 175 | page: eiffel-mode.el. | 175 | page: eiffel-mode.el. |
| 176 | 176 | ||
| 177 | * Go in a buffer: Go Text Protocol client: | ||
| 178 | <URL:http://www.glug.org/people/ttn/software/personal-elisp/standalone/> | ||
| 179 | A modified version is also bundled with GNU Go: | ||
| 180 | <URL:http://www.gnu.org/software/gnugo/gnugo.html> | ||
| 181 | |||
| 177 | * hm--html-menus: | 182 | * hm--html-menus: |
| 178 | <URL:ftp://ftp.tnt.uni-hannover.de/pub/editors/xemacs/contrib> | 183 | <URL:ftp://ftp.tnt.uni-hannover.de/pub/editors/xemacs/contrib> |
| 179 | HTML-specific editing. Can work with PSGML. | 184 | HTML-specific editing. Can work with PSGML. |
| @@ -3317,6 +3317,9 @@ w32-use-full-screen-buffer to t. | |||
| 3317 | ** The variable `mac-keyboard-text-encoding' and the constants | 3317 | ** The variable `mac-keyboard-text-encoding' and the constants |
| 3318 | `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and | 3318 | `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and |
| 3319 | `kTextEncodingISOLatin2' are obsolete. | 3319 | `kTextEncodingISOLatin2' are obsolete. |
| 3320 | |||
| 3321 | ** The variable `mac-command-key-is-meta' is obsolete. Use | ||
| 3322 | `mac-command-modifier' and `mac-option-modifier' instead. | ||
| 3320 | 3323 | ||
| 3321 | * Incompatible Lisp Changes in Emacs 22.1 | 3324 | * Incompatible Lisp Changes in Emacs 22.1 |
| 3322 | 3325 | ||
| @@ -4460,6 +4463,10 @@ argument `dedicated'. If non-nil, those functions do not ignore | |||
| 4460 | dedicated windows. | 4463 | dedicated windows. |
| 4461 | 4464 | ||
| 4462 | +++ | 4465 | +++ |
| 4466 | *** The new function `adjust-window-trailing-edge' moves the right | ||
| 4467 | or bottom edge of a window. It does not move other window edges. | ||
| 4468 | |||
| 4469 | +++ | ||
| 4463 | ** Customizable fringe bitmaps | 4470 | ** Customizable fringe bitmaps |
| 4464 | 4471 | ||
| 4465 | *** New function `define-fringe-bitmap' can now be used to create new | 4472 | *** New function `define-fringe-bitmap' can now be used to create new |
| @@ -9,6 +9,8 @@ to the FSF. | |||
| 9 | 9 | ||
| 10 | * Small but important fixes needed in existing features: | 10 | * Small but important fixes needed in existing features: |
| 11 | 11 | ||
| 12 | ** revert-buffer should eliminate overlays and the mark. | ||
| 13 | |||
| 12 | ** Make occur correctly handle matches that span more than one line, | 14 | ** Make occur correctly handle matches that span more than one line, |
| 13 | as well as overlapping matches. | 15 | as well as overlapping matches. |
| 14 | 16 | ||
| @@ -73,6 +75,8 @@ to the FSF. | |||
| 73 | 75 | ||
| 74 | ** Internationalize Emacs's messages. | 76 | ** Internationalize Emacs's messages. |
| 75 | 77 | ||
| 78 | ** Install mmc@maruska.dyndns.org's no-flicker change. | ||
| 79 | |||
| 76 | ** Add a "current vertical pixel level" value that goes with point, | 80 | ** Add a "current vertical pixel level" value that goes with point, |
| 77 | so that motion commands can also move through tall images. | 81 | so that motion commands can also move through tall images. |
| 78 | This value would be to point as window-vscroll is to window-start. | 82 | This value would be to point as window-vscroll is to window-start. |
| @@ -101,6 +105,10 @@ to the FSF. | |||
| 101 | ** Maybe reinterpret `parse-error' as a category of errors | 105 | ** Maybe reinterpret `parse-error' as a category of errors |
| 102 | and put some other errors under it. | 106 | and put some other errors under it. |
| 103 | 107 | ||
| 108 | ** A function to tell you the argument pattern of functions. | ||
| 109 | |||
| 110 | ** Make byte-compile warn when a doc string is too wide. | ||
| 111 | |||
| 104 | ** A function to check for customizable options that have been | 112 | ** A function to check for customizable options that have been |
| 105 | set but not saved, and ask the user whether to save them. | 113 | set but not saved, and ask the user whether to save them. |
| 106 | This could go in kill-emacs-query-functions, to remind people | 114 | This could go in kill-emacs-query-functions, to remind people |
diff --git a/etc/calccard.tex b/etc/calccard.tex index 3f1c0ae3cba..1502a3c73c2 100644 --- a/etc/calccard.tex +++ b/etc/calccard.tex | |||
| @@ -254,7 +254,7 @@ MA 02110-1301, USA. | |||
| 254 | \def\S#1{$S_{\scriptscriptstyle #1}$} | 254 | \def\S#1{$S_{\scriptscriptstyle #1}$} |
| 255 | \def\swap{$\leftrightarrow$} | 255 | \def\swap{$\leftrightarrow$} |
| 256 | 256 | ||
| 257 | \def\mhash{M-\#\ } | 257 | \def\calcprefix{C-x *\ } |
| 258 | \def\,{{\rm ,\hskip.55em}\ignorespaces} | 258 | \def\,{{\rm ,\hskip.55em}\ignorespaces} |
| 259 | \def\lesssectionskip{\vskip-1.5ex} | 259 | \def\lesssectionskip{\vskip-1.5ex} |
| 260 | 260 | ||
| @@ -277,14 +277,14 @@ MA 02110-1301, USA. | |||
| 277 | 277 | ||
| 278 | \section{Starting and Stopping} | 278 | \section{Starting and Stopping} |
| 279 | 279 | ||
| 280 | \wkey{start/stop standard Calc}{\mhash c} | 280 | \wkey{start/stop standard Calc}{\calcprefix c} |
| 281 | \wkey{start/stop X keypad Calc}{\mhash k} | 281 | \wkey{start/stop X keypad Calc}{\calcprefix k} |
| 282 | \wkey{\quad start/stop either: \kbd{\mhash \#} or \kbd{\mhash \mhash}}{} | 282 | \wkey{\quad start/stop either: \kbd{\calcprefix *}}{} |
| 283 | \wkey{stop standard Calc}{q} | 283 | \wkey{stop standard Calc}{q} |
| 284 | 284 | ||
| 285 | \wkey{Calc tutorial}{\mhash t} | 285 | \wkey{Calc tutorial}{\calcprefix t} |
| 286 | \wkey{run Calc in other window}{\mhash o} | 286 | \wkey{run Calc in other window}{\calcprefix o} |
| 287 | \wkey{quick calculation in minibuffer}{\mhash q} | 287 | \wkey{quick calculation in minibuffer}{\calcprefix q} |
| 288 | 288 | ||
| 289 | \section{Getting Help} | 289 | \section{Getting Help} |
| 290 | 290 | ||
| @@ -295,8 +295,8 @@ The \kbd{h} prefix key is Calc's analogue of \kbd{C-h} in Emacs. | |||
| 295 | \key{describe key briefly}{h c} | 295 | \key{describe key briefly}{h c} |
| 296 | \key{describe key fully}{h k} | 296 | \key{describe key fully}{h k} |
| 297 | \key{describe function or command}{h f} | 297 | \key{describe function or command}{h f} |
| 298 | \key{read on-line manual}{h i{\rm\enskip or\enskip}\mhash i} | 298 | \key{read on-line manual}{h i{\rm\enskip or\enskip}\calcprefix i} |
| 299 | \key{read full Calc summary}{h s{\rm\enskip or\enskip}\mhash s} | 299 | \key{read full Calc summary}{h s{\rm\enskip or\enskip}\calcprefix s} |
| 300 | 300 | ||
| 301 | \section{Error Recovery} | 301 | \section{Error Recovery} |
| 302 | 302 | ||
| @@ -306,16 +306,16 @@ The \kbd{h} prefix key is Calc's analogue of \kbd{C-h} in Emacs. | |||
| 306 | \key{redo last operation}{D} | 306 | \key{redo last operation}{D} |
| 307 | \key{recall last arguments}{M-RET} | 307 | \key{recall last arguments}{M-RET} |
| 308 | \key{edit top of stack}{`} | 308 | \key{edit top of stack}{`} |
| 309 | \wkey{reset Calc to initial state}{\mhash 0 {\rm (zero)}} | 309 | \wkey{reset Calc to initial state}{\calcprefix 0 {\rm (zero)}} |
| 310 | 310 | ||
| 311 | \section{Transferring Data} | 311 | \section{Transferring Data} |
| 312 | 312 | ||
| 313 | \wkey{grab region from a buffer}{\mhash g} | 313 | \wkey{grab region from a buffer}{\calcprefix g} |
| 314 | \wkey{grab rectangle from a buffer}{\mhash r} | 314 | \wkey{grab rectangle from a buffer}{\calcprefix r} |
| 315 | \wkey{grab rectangle, summing columns}{\mhash :} | 315 | \wkey{grab rectangle, summing columns}{\calcprefix :} |
| 316 | \wkey{grab rectangle, summing rows}{\mhash \_} | 316 | \wkey{grab rectangle, summing rows}{\calcprefix \_} |
| 317 | 317 | ||
| 318 | \wkey{yank data to a buffer}{\mhash y} | 318 | \wkey{yank data to a buffer}{\calcprefix y} |
| 319 | 319 | ||
| 320 | Also, try \kbd{C-k}/\kbd{C-y} or X cut and paste. | 320 | Also, try \kbd{C-k}/\kbd{C-y} or X cut and paste. |
| 321 | 321 | ||
| @@ -645,7 +645,7 @@ Variable names are single digits or whole words. | |||
| 645 | 645 | ||
| 646 | \key{begin, end recording a macro}{C-x (\, C-x )} | 646 | \key{begin, end recording a macro}{C-x (\, C-x )} |
| 647 | \key{replay keyboard macro}{X} | 647 | \key{replay keyboard macro}{X} |
| 648 | \wkey{read region as written-out macro}{\mhash m} | 648 | \wkey{read region as written-out macro}{\calcprefix m} |
| 649 | \key{if, else, endif}{Z [\, Z :\, Z ]} | 649 | \key{if, else, endif}{Z [\, Z :\, Z ]} |
| 650 | \key{equal to, less than, member of}{a =\, a <\, a \{} | 650 | \key{equal to, less than, member of}{a =\, a <\, a \{} |
| 651 | \key{repeat {\it n} times, break from loop}{Z <\, Z >\, Z /} | 651 | \key{repeat {\it n} times, break from loop}{Z <\, Z >\, Z /} |
diff --git a/etc/orgcard.ps b/etc/orgcard.ps index d49242b2033..19255929a95 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.10.21:0749 | 13 | %DVIPSSource: TeX output 2005.11.24:1542 |
| 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,216 +352,210 @@ B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E07BB563C96C0A3E | |||
| 352 | CCBD1F58ABBF1F53AD21E3BFF25EEEB046F66A924E5F431EBD7228050BE2DF43 | 352 | CCBD1F58ABBF1F53AD21E3BFF25EEEB046F66A924E5F431EBD7228050BE2DF43 |
| 353 | 0B9B538DAAD511EED97630CD9A9C05CC49DC251325A93EA842C6D07B44BE620F | 353 | 0B9B538DAAD511EED97630CD9A9C05CC49DC251325A93EA842C6D07B44BE620F |
| 354 | 08E66B611F54314B0177E299304F2294F8DEDE9914736944F125A50B5007373E | 354 | 08E66B611F54314B0177E299304F2294F8DEDE9914736944F125A50B5007373E |
| 355 | 588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C3 | 355 | 588AD80D9983CE7824DA30CEE5DC3114D69D7ACEC0758D8201805B82925EF3C2 |
| 356 | 975289D47E7F35898FD87E0BE88100E53DDB356245666E7F724C208CF200B76D | 356 | C87A1A169C5ADE44B561EC1660E617FB39D1B1547B33C0FEB33C3A1D7340A62A |
| 357 | 6E86BB756E083DC34DE1DCF484CD664C826962DC9CD5DB207262A43EDB8A18BC | 357 | CD9CEFA49481F19B39A704A53A0B98A11744143CDDA0E668E6325935C6497A9F |
| 358 | 7D3F35237299AE378AD68A89E97D65CB05503E2C2D951E3AD2A544DABB19973C | 358 | AFF471194932AFECBF25B441AD55A43751FBAB76F3E544C4254AEC4BEB5CFE4C |
| 359 | 2B9AC59428D1FBCD89C058532357D2F4D53F35D49FCDC303475E1B41B3A2E18C | 359 | C1318C3A0FAD0E8C1BABEE20B203E1DD9412E66BC55BEBD6FBBEBA84F56604FD |
| 360 | 657AA0AE4D04BFBEEE2A24D462249CDB73EB96B6702C174BDF87642C3CB6F3C0 | 360 | 85D50F733D9794611F4137EC10ACB4C4ECA5A81CAACC45213E92ED3C26726BBE |
| 361 | 86B02C65EE7D5ED2F636F15F50E5D1894F48AE024E1CEB56AEAA3967DCF5ED5A | 361 | 91430E7633A2BDB8EA3D0C55259D7DBE468AC0964A63728C9B8EA4E15CF0EEA3 |
| 362 | 63C9DD1DAEB9C8A353C2C90BFAA6B66B9E0B13BA0CE464A3C8CB2C5AE94AAB37 | 362 | 2E754B9170EAE6B8818DCCDDAD643B9F6C91C3C5B245CD442358C60AF390DC76 |
| 363 | 72C62E70CEFD0558E483789630CB0FDF76E9EF75D8012E5F7FF85253C480F841 | 363 | 342E659D4EC45552626F069F346F46B18062CE26D5912336C6B29FCBFA5C3113 |
| 364 | CAA7F9FC1E4AD4576BFAD1825C989D197024F8ADB77B7DF5D341E2B68BD7FF5E | 364 | ED86E44B529CD95B7B5B934D899762C4F3457F56ACCC763BCCD5BD08975EB5F1 |
| 365 | 414852120B733078E1B703AC4845E63CB624BFBC2B575CFF29AFB89BC5957A1C | 365 | C5216DA4CBF3409EC71054B0145183F7DFB31517D199EB16D4C6DB0AF05E5720 |
| 366 | D3838B3FEE6252CDDEABBA24259E50B48741EC36BCCC888E09B9A0BDDE044D9B | 366 | 10B06F395BE3C8C59CEEBCEA1E00F9EA3FD880AC197508CEC11E33B6B6EABE3C |
| 367 | 0551B31409E7FE2922D73B7E52B08C32481A2F29E81F2B1573D085997BF65B06 | 367 | 0FAEBF246743F62D280875D052656696AA88DABB918F793CB2994A1ACCFA0CAE |
| 368 | 12E062C2ADDB75A199AE7785015967917D9FFF94DCC8CD8CA79B95560EE9C09B | 368 | AF6FDDF489109DEF07F93B5B0078FC5FD9829DD296F62F23400F5DD6CB096557 |
| 369 | 04441CC622B2374030B08089E51AA9E9566AEAA9F81411C638F547B15793F884 | 369 | EDA737413C744FDBB0615BD40A79EA2929EB7AC767E58D886B310700733D2895 |
| 370 | E04DAA850CD17CF5093F73DEA68AD40C288EA0C25CFD9FEB596DBC7F86C9E13A | 370 | 3925911133631F28291974294AACF4A35F92A5E5262DCF33810A6F9C51E9D141 |
| 371 | 2F2E43BE780B66A03B4154191383951FF535D8866735B6879C5D4C51147C7553 | 371 | F84B0C26B5ADECB44B646C79DD1C656529B7122739C0459B2B47A2C357EF9A36 |
| 372 | A012AB7FC667F7DF259690D47B1F2DE226FE539DAE8EE6FFEBDF3186E6ECDEE8 | 372 | 2B376DDF54F1F4F133419EF14CCC6010D360DFA8A7B122FFC5A4C560ED184F16 |
| 373 | 8B3E2CBC6006456AA69276CD025F387ACD73F0CEE35CC1ED6771107E3A1B866F | 373 | 057D3F76B6B2E935B31B17FC4066916FFBA0B9AFF287D251985AB3FC3D0D7E9A |
| 374 | 19C5C17A18552EA2DBA65EB75D493D05DA9D1247D77F65968CE5BCF68D56E249 | 374 | 91F094356B3D6CDBCB2D74A3FDE23526B22C223EA35C9E5054053B23AF004324 |
| 375 | 3D41AA3360275F993A8C0C7A33D6317AED8C6426C374E7833241E88DB88862FB | 375 | 80F023FCDFDFA6B8F0E03A799D87FC2690C5D1ABB9C52B03402E37309091A1FC |
| 376 | 411E711280F84C46E1A18D0F520A2474E7AF7455709AD19CCFA00463033FD0B8 | 376 | 1D66EB48FE3E4BD326AA65839A9A7276C876F8079C11F2F3A7CBFDAB5AD3D4A3 |
| 377 | 61D2CEB925BA10D19FC97AF1953C8F0EEC15254F2C4C56E9FFEF66D00E8E0BF7 | 377 | 8377AE4862F390039E3FBE5D79B5318774B0A9B1321AAFCE8E87568C0AD0E82F |
| 378 | 97B60CBB7F8B56B82B2F846A53E2E36CB5D27ED3881206B27DA02F35B6D32962 | 378 | D4DCEEA5DD4EFDB2E89D336174E76036DA08DE4A26FC63560057B87FDE9E060A |
| 379 | 54D89A03F67E672D019F2DD19195E80C0D0DECD8FCFD259907FCA25D5C407882 | 379 | 3AA30E1B447B1E8EF31762C0998DF24B2860CF8B589FCE1050CC259171420306 |
| 380 | CA7E54D31995F1F14376D72BF33D1AF534A05FF3D323CBBD48003F2A44369C55 | 380 | F4DAC090E032E4C3E0DD43305541155C1EB135B2093F7E23106387AB7A3DA0E6 |
| 381 | 80BAF975090EF0D6CF0347C0DB4C6CE743447C7A48981E50BD1667B08CEF2A06 | 381 | 1A835F6D058227003A8C974907CC073F2ADE33AA774165BB24381E65DF19FD6E |
| 382 | 0B85DFC727BD8BBC505ABE8AED6B7C08C675B50ED7B4FB9FCD0777DED4D7A3DB | 382 | F15BB66BBAB0129C79A80CF32E542B68FFAD1BCBF6A4D867933FBBFA82771E7F |
| 383 | 528D20414E05BE3DF1F7A76DEFA35135E27230C4CF8069081FDBDA5CAB51061A | 383 | 1B2E677040596B7872A038FF8F23511C33E23D362CED5E303736D1CA28D78AA2 |
| 384 | E12CD06BD02AB38CBA57492EFEB4A12AE7B58548623D7F862515AA3EC1B4F84A | 384 | 20701B83020AE62003DC59413C6A2413C593CDC819644742F8CDF60D541710C6 |
| 385 | 7C9CB4390F825B68E7A6DF4D67DAEF89F1D461ABEDACBF1FA02FEF65F0B8E3ED | 385 | 5A23FFCE6F6CF6AE26953CA4F01A62D6F7DB8F122B30506891DA023D16E56BE4 |
| 386 | 45974B9EC80855D5A1B34D792CC7793D4F05E81E185C3FA86C8A8FF108BAC2E0 | 386 | 84D72EC9DE3B16197B3BF97EB8A840BD2C17861583477317DEA062693B2EA959 |
| 387 | 801AB0B3FE4C0CD5257441F29F2F293F4BDCC67D00EFB68440FAEAFE138279D2 | 387 | 5F5233B416B4E1D63C6014BB96D0718DD9D81A885793F315402E91C274122E5D |
| 388 | 415687CEFCE35F8A1BBB0C18AE4A8ABA688D2F3894B5654AB7AD595E14A21FEF | 388 | 96AF9A05E10DA6276A33E861C006807BBA6B005583CD961491D5F183B62EA558 |
| 389 | 41EC3005C351D229B3D1186D118B72EE4143CB89492E211F7490D664ACDAD2D9 | 389 | C50F25F2F6B211BD3723FF98E01167C48C0A6CCEA0477895D21519AE86FEB4D7 |
| 390 | 70F1FDD65D3A6D84370B8AC3F5FCCF497D067D5A98CC0319404B6825FDB73587 | 390 | 47C77202688775B4C86882C20D24EBF7AC98A3B9BCBFF750433E17824A4425C5 |
| 391 | 51D7066CDD0EB40033BFA664BA84E58540F849C0D7987B8F9A7569879351F681 | 391 | 7444E5201F1313A4C9FF361FCD9ECB1597C1F0605FEA98DD109C636433920603 |
| 392 | AC379AA1CDEADCDAF6910C3BCC38E053F6530D9674D6E5E8352DFE3B4F9D74A8 | 392 | 6671529E0E7AE2EC8A7D196FCA784D3CD2F88190B3F150533BAF3CFE15247D01 |
| 393 | 7F1E76E795110F46E7C5548B85426CEC3E9977B97EFC5DCBA8891784CEEF8917 | 393 | 864A2552F602D65088AA7F0D87C02768D8FA62930E18702F98558982C5A202AC |
| 394 | 39BC430CC40DC166C51C1984F1734AD604002716FD4488FADC935CF801AB0DD7 | 394 | 111C6B0359273116F1DF9E5610AC46B99995425144D1352A881C79D9E0042850 |
| 395 | 6C865C611509DA17DFBE1A230D6A3F7D21826AEDA368C7EB0DFC740698D2A196 | 395 | B51B2375DA55C34A47510C7D7435FAE7D391BAEC1F8BC0C93B866E7CE261384C |
| 396 | C637BACEA9501C7D421EA39C6B49327913ED5CA51990AE2D3E5AA63732907DC2 | 396 | 6B277C66E817BF006B636AB133309384FE0985DBC34190E1E1ABB3A63892361C |
| 397 | F5A64A50D2E20A1881F9B1BAA746F639EA45158DEEF3D84C08AAD15D0FA0FCAF | 397 | 9970FC5732C7A4259809EEF348E6D3BC6AAB5BB012A098A02E33F9BDDA250A8A |
| 398 | F0C5195372E83862031BD25044DA8B5DA9A9DFB248B001D0F8E957E8810BFE7F | 398 | 421EE4EBA46B82C10A5A6ADB2390A7B363CF16A0FFEFAAD7F6D2A80FE4720095 |
| 399 | 6507B8B1D8D3E81F33D615F899EC881E671E421D66BAEFB992F15E481EA42330 | 399 | BD78A6E4B95D6FC7DA4196E61C5FD0F9F37537E6BA581496E38625EF0B7826DF |
| 400 | 9B880E308BED0527EDBBB718761A8488B218135211541F65096AE8D70F8A8D31 | 400 | F021663E6D5DF3C93C5EC2C5B510867ABFC5404F490C683337EE7B22D3CBE7DC |
| 401 | 6F6D498318D7C59D355F95650C05C489BBC03779570A4F8FEBC0FF26716243FB | 401 | 8EB4F9F2C25034C8779010A6835ACED2B05B9CF9753760A803073509C71A6372 |
| 402 | 15D4D03E6E8A8FC09F3F06EB19DBA15E5CF724243C0CE942EFC0771E267C15DC | 402 | 3634DB39F894B6EBAA9A34511357F3C106E42E9A6A592C1B49BB0AF668C95448 |
| 403 | 30CC67D47504E7CD7FB549D03EDBC6D655EC9BD66160085A2AE4797BE3E87933 | 403 | 9E0968CE39754452648068F82C53CA2ABE392713979634E7DD66819E7B3FF5D3 |
| 404 | B77CCD6DCF1026E598CB760903ECC82CAE5F6139EFB2B980B7C72552D0A8291F | 404 | A8890FA876857F4560A44029389A6E425ED8DBB25BFDDCFB510C071414760191 |
| 405 | F3CCA05628B50DECD30786F7DC9ECC532AE8AC212562F7F691D8CE393E02FF78 | 405 | A36723D251F10830B03E21B6FD61C1E92BD630B5EFD283AF248DA69C537D6F0C |
| 406 | 971E6D5A607F3394A57FF995BF0AFB94E16A619C89A3BE5F49F0AC96A65C76AA | 406 | 1CDC58032A7A91E836FF66810D886A73453A28044F55F754CD70A9B3EB5D27DF |
| 407 | 305C15CD82BC540D42BA924BC728948A6EEABF03A7D2E5448226D6AA94729DE9 | 407 | 51D6E57085AC4487C5D015FC51F840F7DBB1733500062C608802C556F8A4623D |
| 408 | 8CCA2D5832408F1685761DF7376EAE3BA2C1E5D1CC394D93E681B3931DE59B1A | 408 | 0F94B67BC91E07FC2AD7E067F3C033E53216804B7371498113125A8CFC63D450 |
| 409 | E69218C1108EB831FDACDFCEFE511E471665D8124E795F675E10814006F950EC | 409 | 4760B98ED1397A8862A8FA5D13923D22ABDF48B7F502916EF7C7D6BC52EBA5F7 |
| 410 | 33CC631392FB4C0A49D99E01EC3559A9D761F0C877982865FD2F61B97BCC3C4D | 410 | AD95E37E4979B7417C8C0E2599E4BB85883AF9E9A3C9DA432859AF9C909DDA53 |
| 411 | 67392977694F889E3C5DD8DACC55498FC38586BE2AA0F754B618EC820C7C80C7 | 411 | 8ED9C0B3DC6BF49C5FB81780078209D21E6B54A8E669212B6E3569B615502ECA |
| 412 | 58145708C6B98C5163D2B1EBFF47116E4D38A046A1E4FD901110F1A1045CE82E | 412 | D67BC610E59409178B640ECD0A125371ECAA360FDD5843892BCBD22BF4D640EB |
| 413 | C2020AFC6AAAEDFA12028E2142B2B3C743907C4E8D1090D29C105BE00D870796 | 413 | 99515496E12E2C68567610FC8F6E03C176D14B692A9A23BE3B50C2EB30BCE5F4 |
| 414 | D76E5D390490E7DE28C0A8A0AB39A6E9247EF7C5B20B01F55ECCB14F875BEA2E | 414 | 481500B293CA54AAE5CA0A85C221493792B967423418E870C4DC7344E07A7E52 |
| 415 | CE4397FF9523E58FE23AF03EC2289D401C1048BAECB98394EC222615811D06F0 | 415 | 1B2DED4C2FED4C602DCF37065FEE9BDE6D1FD95FEC1F30A5E3A1833B09E6B1DA |
| 416 | D162CF83F6F4C7A87A4DACD987AD4B64428F992AF4EC203DEEDCCEC70C3368A7 | 416 | D6A41C57493D4C1D8D87C8BE2443D2B917A0E3D26C324CA101E84369AFA73586 |
| 417 | 9570872B3AAAAE34A6E7168005DE1E5F6AF4C469205E19739271735BB60127B9 | 417 | E499C3627661DCFABF7478DCEF651E33C666957BE759F9DCB9F263AD3FA48BBF |
| 418 | 50153CE55340595903F815841594ECE6B84AAF2E83725C4C8995D39EF436EB0D | 418 | B47A84A914CFD8297141FF5AD0186753DADAD79315D14C68C19305D73DE6E4DB |
| 419 | AA7C9BA7BA7A4BC876D5C554FFE4A055CF8815650B5D6B7048744AB7EB39560C | 419 | 56BDDF037DA982E956F9C3B554E0746178294ABF6F46D1669D1675AEB8C924EB |
| 420 | 09FE285561A0A04190B35170F3306CCBBE6A37ED07BECF11E890BD890FED9B80 | 420 | F9966956C8AC25940640B8C9DE9A76B36D04806A918FB4F7160503031AEB7DD4 |
| 421 | 330AC0D1288C028E7B1E8753C32F1C03E01C694D69561524E930583B8F98B82F | 421 | 61C04BD3F6711F09EC71FEB6EA3904FD8AF75054659ECE0DAAEA1A614AAC6574 |
| 422 | EA5832D1283F330D4ABDF1B941386CF90028C8D4F33B453B9AD6137D69F0FCDF | 422 | 9098FB7BD891E65552583AA519C7E4F9E6B5531B2215300CB262F42763BFDF5D |
| 423 | 53E0BB814947DC58E45DC165478E74E07AAF3B5EF3F79A90F24A18B7F9CB8057 | 423 | FA2E6EB7E7F6585C80CD880ABAE340087A781C7EABD56C59A14EC17920FA7AE3 |
| 424 | A94085D4C2B2FF62ECED65D8C47BB939AE969AEFBAE94F6B230F965D21BC9C2D | 424 | 049BA2DE8D5BB77ADECA23767F842642B7C0CC9AA177990CF0DD00A9DD8458CA |
| 425 | 7C22B7F8CAC5FB01891A63EC9FC9900AEAC00AB0743D201DCD68AFEC5F877F4E | 425 | 5506DD3A5E5BCF2329047F560F0E30FCA7CA304594B738A0C7C70D8FE364AF59 |
| 426 | 3EA013E883AB0FF98AD3A4D85ADA45C5F51CB33061EA7129C1FB68D146450014 | 426 | 620E6527C061B6FECEBEEF0841969656F1A7A27731338B640A3AF243F58FBBF8 |
| 427 | E98BAD39D0CC6A58E0F1D6E3AD6BD0F0FDDB9E3123843FBBFBC7C6C5A4854AF9 | 427 | E8ADA1CCD8DE701243EBA2E1F44C732143BFC4FA89B24B3B473CDC022111D477 |
| 428 | 1F6E260D6E09CD14B764276F5F33E6539FAB56C3ABB3AB24ACDD7D1937B6A459 | 428 | ADDB77AAA600B6C6948133D05EF0838BD1E1EA1C747BDBA8A0BBF92DADE753EE |
| 429 | 9D846E6AF2138B361A827CA9C5D8AE11CDD8714EAB13BE223C81FBCCE0FFF57A | 429 | 9F556D938E16961C2D13E7534B2B5F9EFEB2AFD65FADA831E81237BEDE73F7FA |
| 430 | 779FF50E761E533AFE08A5AFADB1FBF2DA3CBB35E7003C76D205040BCF2C1815 | 430 | B076E562E08D57555B3830834B64E4C1E0E1F89D9A5BFB959032106B1EFEE431 |
| 431 | 0FCB1609829AC06A1D2CFF13ADA1C23BD25EDE48815255E0C0CC62901D210EA2 | 431 | DC828EB4EF66DEA434DAF191E92F1EFDC31954D055DDD87B1A2762DAD6AE5994 |
| 432 | 2F5A1F8330AC0677DFB0F2CD0E8922570584A21C0278941EE54F9CC993BE5BDB | 432 | 322DC4FA2FCA4AADC293158C75900C540BC85384340B29A4B25F486145C311D0 |
| 433 | 6DA0EF7ACA47555152AA2EDF27F5CFB2E3D0512795F464D30FD2C1F71241EC90 | 433 | 4296CA91BB16569CDAFDC9047D9FC8C26792828DD3CA18E045A2F9B473491501 |
| 434 | 2EF44228E348D3E696BDCEB802354583BBFB408879320D23D735E7C06A0A513A | 434 | CD3ADB57FB1D94C1A0353861EAC98E1630E14BEA6DFB04A5B3FAE97F4EA3C792 |
| 435 | E053521E2365A4430F131612CB06FACC0F436B9F36E927F5AB4142F9E18BE935 | 435 | 2C9ACBF61A5C14605AC9D0DA7E4D9904C6C6FDFF564723FDE4E72413067055C7 |
| 436 | 892C440CE0D23939723F9C9680130AF7BC1FAEC6381EF863E9824A4E619646B1 | 436 | 22946CD598266AE7FBC63FF62068CA4F40B80C8EF9961503F7894AF2A392B595 |
| 437 | 2FC51140B5AD7A1DA320E3BFB961A5C807B919DB572898ABBDF7AA831641426B | 437 | 376F0CA48B4B23AB7112453DA02274095741C7102733C553B6EFB43A6E1DB0AC |
| 438 | 8F743177E98D22574D0F0EB55673533D3105E4C708697B61ACD89C5C5F6E46AA | 438 | C320C44357C4C7E98B96B30D9FEE86B7083080F0B6262FD69E07557FD018C1E4 |
| 439 | 9D5EB05B7E5ED1B663AA74D84EE8BC451A44459DA6399FD72992DED97BF05AF2 | 439 | 2CF6A276E789A63A9CEBCC8867E12C60D78B81F7C1AB5592E4AFE1AB1C8ADF1C |
| 440 | 59139D6470F50EA8D263F645D9C0EBFA5BA30E8CD7D4F489E0EB18B5C07BCE4C | 440 | FE8A4773FDC6FC01BF698E5D46B4282983FF16F028D14104423D07047AC7003E |
| 441 | CACD432ED5316356DE895C256C5FB47EBA7AABC06A92E6A360BC9174ED0F5754 | 441 | 6B5CD6FC2D30DD0E6162498FF67D4091D68AC65A4658215B845AF706F4B74262 |
| 442 | 08F4539D8ADD26D7B27FD753572667649F8A2EDAB9A7D312FD5C26503384980F | 442 | C3A28732A7E1E786006F544853CCCED8B530ECE3460B11E11CC87B22DC0AB93A |
| 443 | 345E11F3722283EF2DB9EE15A4F04CB6797B15AE0970BC2747A7F9A229275638 | 443 | AB7EC47BCE2BAEF0FC23C9A15C0D421D75AD13D931B8669F1018A207D8C57228 |
| 444 | 7BCDD3B7BF28FF5A143999CCF53AF3E02D8AE4B9AE572D7C2B77350509A91044 | 444 | 028FEBB6453827DE33B1CDD0527CC4815CA2CF05CDF4735A1EFB79DED9AA8AC5 |
| 445 | 89F3725CB95A0F124F3E9D7504127684617509ABF65DF8821B6A168365CA625B | 445 | A074DA91B9B860EE88F5269AC4C604DE488C269959A108FC5175637DFFB08DBD |
| 446 | 139CBF549F604FB8319B3C62770FB61114B5EA4FB1F992AA99F32543BB4464C3 | 446 | 2AE093CFF20E15AA2624D8E2A141EC3290852E27FBAC6BE21B65CD8036221193 |
| 447 | C86C5D85FCA3E7E1285A51167D5C17608A6C0CAEF95952461A93B1FC9CFFBC50 | 447 | 9967C4A6AD631F2374582F8DA277621961DE7EA41FA110782DD3E1E7CFC51058 |
| 448 | 602F25835D3A566300DAF0FCA7046930CBCA09155621BD65518ECD5B698A6FA3 | 448 | C961948FDBF02A2E7BF0A299EE696F0B98A0C4ABB7CB67AB28A2EF50D3D212AC |
| 449 | A391E92872397BA95E7B5EA69A0EE6F9C74ECB5AA83C2FAF2B031D17E0B6FBBD | 449 | 1C51DF3909E484FC3430FF1AB2CD9CE667A9EB489A981A9A02F8F999D9215F5A |
| 450 | CA02AA882F8925967CA744D3837890DC7D1ACBBD1F0BDA8E61B88A230F4B8291 | 450 | DD609F5DF9519DA3410867680942AAFF2275D255709997653E88CB23D16A110D |
| 451 | 73D37F471AF6AB22BB3434F00F3A35A330B69459F40DC5EE430AD2F9710580B5 | 451 | C5C65DC18750D868C8F60E64265C81DD7CD7C2036D13532E3DC7D12600FAAFDE |
| 452 | E93F75AC1E6B516138D92BC9EE6D3085ED02616EA1474848DFEFF3A7DD443DF0 | 452 | EC32EB7989458A220339D451A25E3C4B2D52D265875F06465C913FD75BA30285 |
| 453 | 3B421295AF2BC090C869E92C2A774FC327D15C6AB3EE92E2B16C401740E9B1B9 | 453 | AC61B32BD2C307FCBAF38E14FF6A64C6A5C874A2D7DFE3025E3CD30BA9C60D89 |
| 454 | B22B4663C9348DD5F24264352C56D872CE93DA420AA8922E572F587600346B8E | 454 | 00BE5411544E97D9791949722F76A99D549D344BC1EB88C9B8BFEB74EC94D190 |
| 455 | 4194D11B37433D0874BBD33A8B2E67F36D7A55298664F9E96DDA20846F9E9746 | 455 | F5DE00D2EA0003DECDD4FDEDC0834053AFE3EFF04193E360460A286794D02FDD |
| 456 | 657A4F0A63D14437AC61F22DAAB23095BBD7FF8C1EB24D43DFB6A2C62B574A96 | 456 | A174E3CE72C69D32C7C4EF33B97CAB2929A26662E4E3C2313469ACB6BD21CAFD |
| 457 | CAB867CF40194ED7CD9EB634AD076B42337636CFE681137A96F393CD73DE2FAA | 457 | 8C81FBAB0EE7C26BC5B40AC9880623CB5D595A4351BF7848CA3212D74AE449CB |
| 458 | 904D9F703D141D344272DD9DE9F18C74929E8DFF9CD108E69E5540A8C8D10B9D | 458 | 35BE1BE2C6C795B56D2731C0BC9C5DBCC652F025212C35C50B3937212871472C |
| 459 | 3D715CBCA486ABB3E010BA1F20F728ED2C1855B85AAE3E9AA00ACCC7DB968CD4 | 459 | 7B6AA7AA075FCE6068BCF7474EE3FCA088733439E5AB06D78F62A574157DFCDC |
| 460 | 3A03EB9270B8BF51C74881BFDABD1B25E51B3E91FF7137FBBDD7D8077E3EA554 | 460 | 43990D8A9673300AF0D2450C2B9B9000BDC9C4A5CE57764A7236370458E8A0D5 |
| 461 | 3125D1E104B26596D96EAB6B19D148A037CCAAA3469AD06B424DE6521795668A | 461 | 0D777DC1156A9D82D070FFE0DEA2DED3854CB7A09FD34F1B3513821C26FB6F6E |
| 462 | 5D8AB2F65264CC20B20BD7C5D0DDF2AE0932F99D8400DC31F81030AACEA27251 | 462 | F3BA660EBB0C08D8B976CB89B4E05C95A20EB2F74F4C1DA67E783E9C936A749A |
| 463 | 78278C3FACBCCDC668DCECDA033F23D408BFB7E2A787D77433E23D8A36452FA9 | 463 | E20866E646774E132A0A12BD5907BA8D7FCBACC83004895110BD65223C4A2821 |
| 464 | 7339E1A9036034A6C1D10162BC409D6B8F899CD0448C64DA643E5A38A70470CE | 464 | 02C709F5A8E1E9EE3C0C2430D6CDD4AAC32F45093EEB1AE961B1BCAA823E7F55 |
| 465 | 8C8F251D7916D7786F91BD21A15FCCA149A035DD219B523F23C1CA6B07C04678 | 465 | 0B9E5614DF4B2703532E2260B70062E33F40463B176D7645168DD4AF226B39E5 |
| 466 | EE2ED5DECE5C1B4DD835FDFB1A50D4BC57491203E521E85B8BD5635F2BCDCD00 | 466 | 8B74BCA01988FCF9475B9935412016704A09A331365D2E745E778331ACAED5E9 |
| 467 | A3CF1125C8B29191E5192A22A725E0A0A26E4A6F4E19EC36E506B78EB090FA14 | 467 | AF662A9D5C7A5FECE76F73EE20E2BBD0647304E75161347291906E7ADB3F2446 |
| 468 | C3F5C4476665D6BD48BE1990D3B53E9BF58D70253490E9D2BB274A16F8BCB411 | 468 | 9769F36EEBCEC59167199793122D96428A44A2D8C9B704802543B0569C140134 |
| 469 | B9B1133ECA1723C52328CBF108DD84B55F8CFAA7C642824357A76A2FA12D8BBF | 469 | 8F180AFAAEDC8550B566E6D460544DB84402A9AF79D8A315C53FAFA3A5898B26 |
| 470 | 392474CD645BC9AB430E6031BE0220F603DC75498A4189CCB239E4F3B27B4076 | 470 | CF8D7EAEF6B7E19B9DDF927B7DAEA9249FFF69872A6C3F4289546E6969D29360 |
| 471 | C3793944F26B44330FB42973EF70E86F740C684F123F121BDE3758C551EEFC49 | 471 | 0A8684B1D5025DDEBF2554248AF53EE9D53F9412CA89F004911834BE96221C1E |
| 472 | 69A082AD4F3FFA89509A7B8922CFB8C971C072D498712A1A5F6BF254C9A4CBA4 | 472 | 8582F51F1A345ADAD0537938A96E73E35063A2207FF7FFCC55C9F7AEF734D089 |
| 473 | AA3652A56675C7359DE901E292A9826D3BC140843A7799A05D20C56AE586F178 | 473 | A0693D41848236FCE67E85AD5372C73B61BF5B58CC2D9616FB78144198E65267 |
| 474 | 090E9E55876958C665923401901D4825DD5C9B7AB686AE1B38314CDFB6DAAC1B | 474 | 6940C7E3E3381C91C877B7F78B4747F46D12CF347E20C1A2A78BFAF96C42D81F |
| 475 | FCF2CFB4C404E173988FB1CC35297B3DC7A32F45DB7C1971973F9BA501982760 | 475 | 16715D7E1FE7E671242791DA7D84D5D885F905093969F3836299BF6874A8B12E |
| 476 | E353B8DE47C6065C128680E51C080D5D3A0C9BE09C25D85E4D1E6087C9CF4F51 | 476 | 9E1F3A05D940BFABFDD7D3085AF8A4FD01092C88CB75F4060BD85F2F958DB0A6 |
| 477 | 13AB80E75EC442CE2F2E0B6F7D13733E939A3F983BA540FA236A6AADAB9C7734 | 477 | 64145DC3DCA6903E0E018A7594BD7114F336D12C61AE4E29138A0165FE21BE5C |
| 478 | 510C858581725CFEB2A46BAECDCAFF7E726D140F50C2A0109ECA4C1ADAAFF17C | 478 | C2F4B9D496ACE81861919BB69DC06E5AEABD3F5E5BDFF3F507BDA4E366BDD481 |
| 479 | 3269DD90145A9007639A54DFACDAD0FE945E97A370DAF3F0B4D66F847E0CBC17 | 479 | 05558CE1213A6D28CC2D5D2E5265A754141E312F42B64EA2D51C79C71DA5BC92 |
| 480 | F8D6E5D5E124BC85379C1FB15E82280F157ABDEB2CB67CC25DD0C4DF157B5177 | 480 | 920821C437120A19F9EA3BC48F16073251D458BA53C4C7DDF0035ABB32939C11 |
| 481 | 60A7EA491389E573905653A694F31DAD0052BFE5A252C902B3976F5522526DB0 | 481 | 4842DA0E489C7C2025B432B66352C56D78BB8391DA79E75DDEC29588C596BB4D |
| 482 | CB9423C892CC9348C40DD844BF5F87BCE0D8C7E42AAABB2DAFA3001976360946 | 482 | 67EDF9492B91B83D9F1F26444094D60329A5D3F1BDE976DB2E71B6E4CA9B8EA4 |
| 483 | 8DD8EEEB4D2F1A5CE8139AF70FFE8C72E8CD4F891C679D93D7BAF53B850CE9B3 | 483 | BF43C91A16A2D9D23E5448C2FA38B8D24D142549E45572A29655C9BD31755718 |
| 484 | 7672AD44717E88EB64C9EBB80727A6CDE2E07A14E686B5A452CC456FFE933F75 | 484 | A58C3DC4964C0B49791F36809863835CD8E4B196CE8D18D714B2B3AE2BE90C4D |
| 485 | F323DFB14573F37D26F04CDFF33F6560BDFE530B4E3352F44608EB26D49EEC8C | 485 | 65C1210B9E3A8F248BAFB0CC5579302F6FC26FC3E197076891FB758B0595DC4E |
| 486 | E1BDFF8ECE3823670BDDF72C4FF89327ABA853713667E4EC04D8981644D0AA5F | 486 | 7F1EEC99FFB654D46736BCE43BF37DB7681CF7655DF55592B7A494EA541AFFC5 |
| 487 | 5D872283F02F1B108533B833A33BAAE41CE4C4097242DDCA81896EC33E38F88D | 487 | CE5815E1D989D9E1CE87E116DA4BCB7E16AFAD2327C434AC71EC756B96476BBC |
| 488 | 0ECD5F240C274A5949BEE7EDA1511A2636028161A8612EF580116BD6C212821A | 488 | 0C997DC8C439E839EC939B55BEA698E3435BD911258234B6993B3890077DADCA |
| 489 | B0C917365705937924B58BCA415E2B3C6E3191E80921F0A49F2D3AC371DEA089 | 489 | 4DE92B37E94166A24DABCEAC3BB808557FE09FAAFD6DD316F44952A6710B4824 |
| 490 | 78FCFAA20EB6325FF3D9E57717F0A75135401322746EDE63970B7EBB07728CFA | 490 | 6F5B5D4AE9F8A14DD207DFB697D5DC67FC3EBAE49A1A339525ED5ADBFFE58333 |
| 491 | 641B345A2C00B9C526191AE25B66EB97AB3A32A41D57D9B2501BBD4765137BD1 | 491 | 43E8AAD4030869427226950AEEBD11A07815D9C3BBF2570A51D6C0249CCE9026 |
| 492 | 04993E60EBC3DE43523B24BE3B4BA26F493C38168DA4899251AE82541118B28D | 492 | B12ECEBAF112069547DBD47B7C8869523AFA7177F6E87F534A5425693DB8AD79 |
| 493 | C653F14878DC30A9CADB3C8833968F135FCD7BFB1D2FE028C74636491D9FC892 | 493 | 497B95A90B056F61B6B4A89A7BB23B4F93BF5DAF637D71DDF4F48E34CF347EB4 |
| 494 | 81553B1775FF95FF9CAF675A2E7208CA84610F9C39F37474E18569C0209EBDCC | 494 | 12173D9A72526C9B561F6CB2C3D43B0487E09B2C7B1822E9CF5D2D3836553AE5 |
| 495 | EAAF9D06A63499C6EFC91AA8FDB9F159A6FAB1F62DFE56FA0E37BD5BDA0F17E4 | 495 | 5A71793EFB52216CAA4948C203E1EA410B3BA72B6E2059AD04B5ADF54B6A5BD6 |
| 496 | FAE3E27A36F95629EC2064D6A411108E721FD1091D6E9AAA5B0C0B3D41833C62 | 496 | 33EDE67267334D9170FF9E7F9802516295D91F1A63EA8433F696E3565EBDDB1F |
| 497 | 4733535A726EB6AB936498812D50200AB915F8CAEA47C036F1542AFBE2E53067 | 497 | 1055025C16B5EB6708479CBDE2188D8371EE8863CBCD8533DE37E0242842C0AD |
| 498 | 6366E355003FE82F28A456E79E921853B15964E911D08176F607E695FCF541A7 | 498 | 114045C8B131BA3790146335EE07690C8DCAFE2F61824BE4F109F33486663D45 |
| 499 | C20A3CE2A2835093F8CD0FDE40DBF10B8E96D06EFBD2D7CABAF21D411B105044 | 499 | 24391006E700052BC8E90098BE7B5F13EF5412DAF6BDF0DFE9775FDC185369B1 |
| 500 | 431A1E87CF0CCEB10D9A9D09E84307DD362E885160EA24DC0A06D0308347E3FD | 500 | C53AAAEB34A9727AF997415595F8EED263C0B1B9448119E705396F6143E8276C |
| 501 | E8FD32456AD30269D2DC5D0E34379382B637493ECF9F143F44022A1B045BB3F3 | 501 | C6C586E5FA8FF1C6B701578D1399211EA9398DB2A6397F68C7B7E0B6434DD516 |
| 502 | 6E99BF86A1AD87FEF11786DCD4443459C7F5BB2B4F3914E162DA2FD998E46067 | 502 | E4F039207D1BE48AD5F63C3E804C2DCEB39E97DA8D1D6E8C73180A916D8923FB |
| 503 | 07E10461AF5E065685A43BA4F1A843001D412550BC868DE93A91740B62F08026 | 503 | 5EA2430412C28ADEE42F3B6390ADD6159BE501FE3252B6EDE96AAD8035E2C8DA |
| 504 | 3B37B93D95448DBAEFF1089726A975FCB9BD5375457173AD766C8F99DCC54952 | 504 | B00C25B07488F2BCD84508719DA8D309F8191B86CDC22E73730C9C91B7CD6062 |
| 505 | 4AC00377464E80A168669A183FD69A2E31BC22989E4F34F4ACF043424598BBA5 | 505 | 86032E22F92B948647A3351A31DABAD5F5F8D2C9911892C359471026AC047E49 |
| 506 | 63A6EE2FF886BB0DD160FD91860CAC052E47A55BD334A5F97F8DE2ED3675D3FA | 506 | BFCC10C17712C6B7123EC9FE3BDF0ADFBA2BEC0A69B18DA231B43BE20694139C |
| 507 | B838CA438EBA043D638793F04477EA8201C718124597CF1693BB99A627AFAB1D | 507 | D6C856E3B7C6907F8BFEAFD753BDD5B50F8B25ACC61C778FE96B229CA7F891C6 |
| 508 | 5345D2F17CC96A4387BD5822186B3E488DCB0A1531F931424D9E75D19685CD15 | 508 | 07EAA8551B790D6CAB23C80436A3E2A7F24FE4CDA84AB81AF8D4105E2386F3EF |
| 509 | 09A5014BE0FD6CDE63FF735D1BA182D015877DF843368FD7A8AC312D53A951B5 | 509 | D77DD83730332F0F4B176E0C4ABF39ACC995CE3EECCE76C6363557C08F0DC723 |
| 510 | FA02B36337098B97B1B4FA84133BD030F7E8647B8D32697DF9E9B15D08B43187 | 510 | 5E2B680D852174AF6BADB73DAF19EB4F921AC61E1FCE16EACABEB591173F687A |
| 511 | BBF609E074F0DA9CDEE2A959D46410B33E1C91A3BD703BE0B7E9698CF942BD9A | 511 | DDD0909654D7A243F4105F8201B6343221DAA1589DB4C496C1F702E0BD3CE68D |
| 512 | 564C9B7F806FF1ECF1FF29C95F8733AE1BC08A607108A09E3B4B2919523164CF | 512 | 75071205B4D8ED2DF85276A3E53AAA46573771E0868482A2BC805C6A9D6C5480 |
| 513 | ACB794B5D3438B55F72700257BC5BC00735E5BDE3DF55202841314593C815857 | 513 | E23F690D6FA9CA9600A9F42F7F0EC92853C8FF64E2F137DB193543F78356EC5D |
| 514 | 428574BBD6DF0DF89D69B7246F212E81F88320B21D4E9B1BFE85329AA1794FE9 | 514 | A090542039B0501650B6184093DDA5CDD52B6F8CE4460AC781C2F93EA339F10C |
| 515 | C8F7FA2B8A3668A2E4129350B330074831072AF3E48E672AF033D89C1C56A830 | 515 | 4921774575EDAB301E387C5A9200679ED86127611043364A319CB0C68B6FE176 |
| 516 | 5D358A92F340D0D5AF454DF9D8731215747F30990B10C18BAD25DBA0883C080D | 516 | B0BA672AB3DE3F2B14A9E7C8CEA1DF76C716FD53CBFE583D1D0D20D0062A3DE2 |
| 517 | 8098362B9A9A0ADD65EAEFEE0DA098BDD1D351B262F18562164300DA97EC921B | 517 | 689408AE3D527703C591BA8C9982607CC08384A1049A1B328846A719FCA05D38 |
| 518 | E290B5B3C68B8695C4BFA1081CCC558E17D64A42B8769F217747D850813D66BF | 518 | 087619AE510325FBDC54307AA468827EC8D84A19376740210EE95E5844872259 |
| 519 | 5A399CD0E8B145D7C09527F6F9CEE142BD62B7F050C4B34D2001BA539633D9AC | 519 | 7E2A055BFDC40D3C12946ACFE8CF26095719C3E10670A10417679DA5639B4175 |
| 520 | E02A1A4FE6225931E56289151500BDAB61556F7D599C8EC2FCC90B4DA68AF3AC | 520 | 9DF86246392C78E114D745B9FCBE5D4D33E4E5935E6D4EB9F00F408045AAAB98 |
| 521 | 370EC9FB3ED88649561481D299B57B7800CC76B3E8094F6C46832625AFF88D98 | 521 | 47E445AE32BFAFF24107A37EDE0E9BA08934370E212F39035BA2AA51E2D711F4 |
| 522 | 99F49FD3A089606A43DB6FB466118E44BC51397CA38E6251E6C8B100AF453754 | 522 | 6D7215A05F5AD11422C9E8F65B80405D29CCDEE79165F59EBED93F9EB264792D |
| 523 | 6922D3E1F1F197DABF2B07B98B77B9451F62F4CC6543B4C27ACEECBC0640930F | 523 | 35F8C1FD095F18511EB516DB40AC15B6045D2A24A2B910EF3A632278208A0D66 |
| 524 | 30336891857317B46FC98DD069AED6944CD0B527C961BDA2232ED479D72C7C54 | 524 | E19963591F45FD61AC0183CD5D4C5C1C8D69020874EF6079376801145636901B |
| 525 | C44D4EF3AD0B1F9F96A9F5A1D35D91EE77BAE7C77326BD0DDBD396BC3C78FAF5 | 525 | D9EA1E35EF1E6B37D257D5B90862CED7C0D1F1B32C5324A28716EAC93B556BE4 |
| 526 | DFEEEB59B05F0B1FE8E1347F26D09DC5534B3F1BB47B897154515E893795D4A9 | 526 | C2716C85ACD7AF85D52DA2E33312C42A6B7F28797BE80102E37B7F9C933BBE85 |
| 527 | 897D7BCEA2D54AB60EB39F67399FF8777FACC4B706FC2A6137DA53A343BDC1DD | 527 | 121C64FCA542C6D5B7FA7FCB7CD0C41295625FA2D99E6FFC4D08450EE7C1EE81 |
| 528 | C0EBF311507475F6D00FD877EA29C8DAC798BFB33D9B1506AD583A2C508D231F | 528 | BC356927FF6F5AB869D083929EC1A643515702F602AB140A410378A65A721DE8 |
| 529 | 0EDF3ACBD0B48DCD12F4789AFE4B2B18390ACACB86E1333AC38DA0C1D0158061 | 529 | 1BE9F270589F468D5D2003FAC662A907296302C873DE919466A128FBECF122AE |
| 530 | 9CDEDB47CBC1CD43D191C47DC214C61EF98CD5065F63D203696B384EF1FDE092 | 530 | 6259456457D21A217D359EFFF23758BB537BD97472F22EC4EBE932F762884EAB |
| 531 | 78F5DECDA175900094D90AAE4CC26A7AE779B4393DC49DBCAFAA7F319421F54F | 531 | 5D59AAC0097E2EE5A9EF77B1E0376AECE3AA529E5E518A24569007F5DB2F27BB |
| 532 | 7A3AFC61D68CC5F74668C7028666B95DC14E522F11200155893EDDAD0B06F60F | 532 | 776BFF2348E9B2E9AB0B07B9BDBCA49E37E11E2980754CEF43ADCBBF32B9575A |
| 533 | 33D2CDC6F75FF167606FBE426B627FB8661AB7B9ED104AB11ECAA5EED3717D5A | 533 | C611F4AEBEB5A718524AB25FEA08E9E913E24FD94AB4E2E4FEFEF29C7A70055B |
| 534 | B491E48C5A6E778274EB5B854135DF8FF07CFE9795CC8C69079CACA09FFE5C08 | 534 | 5FA0FA771D485CADF65EFFDD9B6897F675598532D8E974CB042BC7DD6B5A4B99 |
| 535 | FC73A41C878B439E706F6C33093D4AE7E13B17EF32E115B684E9A27DB490CC35 | 535 | F5D36E27D80AAA8417465223649E44E28D5AFABE693265DED4FE7711BB4BA083 |
| 536 | DBCA03AFF0ACA4825176AB8071299BFE1F1FBB225E6915F0D52C6A5AEBD603D2 | 536 | DC71244042798FE7E1965A469B8F8202DEB7C563F43A7E17A088FA36180AEDDE |
| 537 | 151C5441BEA1EE87D9F4010C4642CF89B2776351C30153B226A1A5C4654BB683 | 537 | 345A2D7705A5ECEE8E305218791D9956DB2E848E422291D7E2E249329246BE92 |
| 538 | 4AA2107029F120A491BD4103D186F800B9B785C953150094080848B6AF8969F6 | 538 | 892554EBAC59949D310F38819EDCCAB09F4DCB80144604F8F1F43447138B311C |
| 539 | 2FE34B3631F4E50DC0EA5FE4C0826CEDA30D3F3E2983FCEC4EC872420A6ED8AF | 539 | FCA400AD225FEF31D3B0F6A5E8DF91E4FBC39C93DDD11A2E54D1B8ECF5F386B8 |
| 540 | EC8B02888837927D0A7574031B2853921132DE3C564F24E909FBC63690B02033 | 540 | FD0DA95AE3E981FB36D9FA0344D6D41CCBE8F2320539411FA23360B88ECB4D38 |
| 541 | 0D3069D8DDA63DE8DA7667D07810FDD5D4C877DDC1C180F667D6361B77E666D0 | 541 | FADCAABE8049B06887D053FBF3ECC8A89BDE4A9F1ED7F6629866FA14ABAA2924 |
| 542 | 29AC20B15BDDE9E42ACA7802A4B74D31E91CE3FCF105A7F65B543172C8DF6248 | 542 | 9BDB9D6C93F6080593A4BBC0CE2567813B2AD04C99FB09443A684E644BA51B9E |
| 543 | 256541684153DA1EC7550E86B55DA0E87B70DF90D88358C9AC8FECA82AABCB39 | 543 | 9480AE4AB2148A081F6BCE154261D4B0F03864C6F79DBD622EF471A844048766 |
| 544 | 552DC96D1EC3310264EA111713839C45F469D16CE5510807897D58C3B2154429 | 544 | 6A872C8E99A82CB468B6FA50260CDD90B81CCB48A6F3BCE3865AE56A86569E23 |
| 545 | A2A01B2F8956B7FABF2764E131A7A819772BE63983E017737286CF2CA8C42A90 | 545 | 16B13DD6114D98293C0DF2585F4E2D01E5EC8E43DD6FFE027E2F0C9CC360BE2B |
| 546 | 2ACFAA2AADA5EE0B125415518D1F19BAE94E3EF1419A2CF9A954C37E078CE895 | 546 | 823DAB713978E73D7AA80DF69CADA74D8E23D902B9DA35EA2BC9D03AEF265D54 |
| 547 | C582992082BFF6E7A6C93C322A76A7AB7D96532B0D91603461C0903C9464D2F5 | 547 | 79E86089AC4E8312FB9CE325D8DC9E4DB22BC048CD1F0EFCD64E62B785D97685 |
| 548 | 7F93383EB60120E8246DE8FB13A8C5253591A4FEA03E20BCDB972851572174F6 | 548 | 6A34EB62E657BB2F3658B1EA87B4C07C45C8D8283BD35634EC67399AB00AA2F4 |
| 549 | DEC5F8D863641E7868FFA14D5087F98A13B7142769E04447FD93EC724D3B34CF | 549 | A15A723E8EF9AD000007ADE862D7ADFF32A907D40BF9491FE05BCEADFDB83187 |
| 550 | 39CE00821D0E9FA5DC4255AF09F985174AE10C86FB18BE347A0E228723D00B0B | 550 | 2825ABF2EF18608411F9E31C3306B37E245F1571155D5651BA291AE16EBC0390 |
| 551 | 968644728D65B7F3B726B287DA8419536F7BD24E7F64BA8FFCF260373183DFEF | 551 | FEEF8EDA9B9EAB02F1D3BABA0C4DE4FD20FEBC2DDA743FA0C32F7A746FBFAB22 |
| 552 | 36FD6696ED0DA7F01D48551C51B07276C39A3F4E2771E36DCE6A01EBA288868C | 552 | 27B2B8547359B5EC413F98024A5574F48349213502D0F1C71093EF2AF2A7EE88 |
| 553 | 8FD6E7CFB42318DF9350BF110A57BC4E3DAA29D922A39EFAF2A307912B1123EB | 553 | 67332DDCB9D9652B705E9D2ED1BEF1B9699D84F9B8520DDE2609F752E8D77F8D |
| 554 | 4E0AC2F8006FCDE4D27E66E0494E52938403C0D06E7898DE0C9A550081FAE7A1 | 554 | ECF010C2F18EA526B4E2EAE1694834494990A4AFAF57286E171E4053788F3B2A |
| 555 | 0998F8AC69B3FBD7903293C3DF14DD1FBEEDCC3A3ACA963137A768025CE3FB50 | 555 | B7A2DDF04308E47448A06C66E987C2BEE43B5FD8890A1E11FCF4E0548E201941 |
| 556 | 939B0571F1A89237FABD6ED4AEC9D14428FC1C77FA5405B8FD3DFA363072C841 | 556 | 8437B4BC7A92174B7D5D8F4E9E98F48779968F00803F2FF59B1764EE197873EE |
| 557 | D0A118CCE8484C9BE169BF1CA9BB822F5248AD79D18821236DCF4B4615E3CC9F | 557 | D1DFF6B12B54459FB5A6864CA9D73B89ADCBDBCA2DAAD3B42C4A9175F503F21D |
| 558 | FA968FAC447C718C3178C0EB5C7560B1E858ABDB3E2F0476D10CF52DF8CF62B0 | 558 | C48D5145E2C6AA7D7FD787BC0D |
| 559 | 7B6FF34D91D63901C1B35D58585449C903198846DB9DB58787F2AAFF1E392807 | ||
| 560 | F0FABADA9576D36CCFEC151C64CBA1E91CDDC9B96D59A9743072C8D45C2CCB2F | ||
| 561 | 14BE3125DE785EF47E874C4BAAA3A487DF75B8C6F680664176C9097B1C3176DD | ||
| 562 | DBAD73CC453120BE2B47F5247C215E790B79BACA9C817CCE7F8DA2D8F791F5E3 | ||
| 563 | C1B9F32A34AE5B452CCD75FC55C1785AB8AB43029D6663ED0A6855FCC56B5443 | ||
| 564 | 2379BDA7EF132F | ||
| 565 | 0000000000000000000000000000000000000000000000000000000000000000 | 559 | 0000000000000000000000000000000000000000000000000000000000000000 |
| 566 | 0000000000000000000000000000000000000000000000000000000000000000 | 560 | 0000000000000000000000000000000000000000000000000000000000000000 |
| 567 | 0000000000000000000000000000000000000000000000000000000000000000 | 561 | 0000000000000000000000000000000000000000000000000000000000000000 |
| @@ -1943,363 +1937,357 @@ A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0 | |||
| 1943 | 23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413 | 1937 | 23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413 |
| 1944 | 19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42 | 1938 | 19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42 |
| 1945 | 1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39 | 1939 | 1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39 |
| 1946 | 8BF32EFC8C0D1CC0C1622ABA0B6CE939036B2D9CAFA2A3B0C4B5DD9AE5B2D798 | 1940 | 8BF32D2E5635B6583D04BC0AA187D10FE773067ACF3B528CD412ED96902B0056 |
| 1947 | CC856CB41F82D3B5FCBBF70D07E05369713730081901FEDE318F9DA81D39F84C | 1941 | 567103E3FD911A099ADDB9EAEB3C08F1B36A918FE865B7DAE1C49F21650E65F0 |
| 1948 | 45D0996AC0E8FD780FD2E5E6BD013D98463E0A51034735243F2B3695371E8451 | 1942 | C6845C15740631BCB7618A3266D83E54976BCDC707883E531F3F833AD0DE88A0 |
| 1949 | 6A6EC4236E47A282AD2966E06BF3FB59C6222C15A34F1E910E637D805741BC1D | 1943 | CDB84D8384602B992263C3C223D1B5393DC98C75EFF9AD8D98A764228C70A303 |
| 1950 | CD426BF31361147DA45BDA2884880D90AEE92DF02AE5C4772537FEEA157A6D50 | 1944 | 28D87B1A5510A579D01088C26D9667DB86F72FA302A3A8EEF7E05DD1835E72C0 |
| 1951 | 3BBB910A80A2EF41D18213631584B343ECFBD6BA006AD6BCAC63E9CD9430DF59 | 1945 | 66A0728CB0DD8C34BA1D772886333BC78C79374026347FAC9CED39B7FBA84DEC |
| 1952 | 98091BE32FE17FCA7B32DCA95052F5BACF73FEAFCE5EA47B740FDC972C2FAB94 | 1946 | E70EABA29B80B4E813C0E6D5ECA5E9ECDF0413AF7556EA458C3C3B49A4B14A05 |
| 1953 | E1FE42F8536DE4DD0DBFC4CCF3A96DC1140F736344D4DC796756948ABEE0433B | 1947 | 3034C04E1F8665532D053F810683C957050FCF44C5D4040CF09893DBF641D68C |
| 1954 | BFFD9F1A343259444D248598844888F046800D6BFC7BFE3F63900767727A8742 | 1948 | 0969D67BEBBA6DA451D446DCF87B8243365E7158D89332FB33CA28F0A83A7A63 |
| 1955 | 10C756EC6380274290F84F7B2055C2390BF04B466B5D4437C0D6AC55C90792CE | 1949 | D22A0948A46F0AB9B2CDECECDA40FA75B046CED41C017FF79FBD7380CF33D726 |
| 1956 | 8A8BB5602BC96118B07FDB8692006E91585273AEFF55D71967011A1658205ECB | 1950 | B03304BF8EE1EE450C065BC8B83643AA74F8D45924181D1D0C52CE78C36DFE66 |
| 1957 | A0B0C1CE1F7C5167A5868D5DA81EE5CC3A41983425663776391EA37525FF1357 | 1951 | 99CFBD08406AB9FDCC61242472612AF009F8625C966AC9A7228B85912CA77A9C |
| 1958 | 2CBD0C9B4644850880C5115C7F0677A605C1009D018A9D6BF4F94A6DD019CA26 | 1952 | 832F9D14190A1DC798D4E99B5D067A020FAD7E13E2E5A155A94E46853CB93619 |
| 1959 | FA7D748D55D441CE1111EFE5254381E1F916912E1B446CC7803DEB5C9B1AF811 | 1953 | 39183DAAB590F1BE12C3C4B0209A93CB015E58EEA72C0F71E68EDF1CAD4CA776 |
| 1960 | 3938473A2FDD49E5A0360F4020CAF9E85E056E59430B18AD352BA929C9A3DA10 | 1954 | 9320076D70BD2874A166F2CF735BD5154F9FBB219C868A568A7C176060F78092 |
| 1961 | D7C524D92AEA6F4DCC13E2B59DBC0B8C0CD90B1E4E82BCEE516928BC9E1BB67A | 1955 | 1E3661E66B7E0A8DCF294E09D487AD7F7D1ABEF83E7E0E5BDC60D672A4D8F5A2 |
| 1962 | 060EFD856CC9F1CFFEF90C421DBB3CAFD1959B332EADE93C9CCB31006248BD6A | 1956 | 4C33479DB4FB7105158E19C62FB0E1B9749E6A9D4BFDF7884B1922C4C48265FB |
| 1963 | 5D79AA8E049C5EA70DAB46F5D3E73984814E9F3E15A0383EFCD157240D43BF23 | 1957 | 7851C1116696C02337B64F1A0445396102B541EE1CA10D8311F79CC58F2106D0 |
| 1964 | F84372FB3915791E581FA0E4CD457289FACCC08C0D37CEC1FC45DE3751445A9F | 1958 | 12FF6B1D274B810AF318BEF04467B5066889896BBF019F63DD5DAC53EDB1CD7F |
| 1965 | 824A6B006B5E672AAABEC2B8D5DB7B0745C1D01C52657B7DF4FFB9803FD9655F | 1959 | AD10D90B2D3CE615546860B11AFD0D6B705DAC7545579DDD3ED867F31615CF4E |
| 1966 | B7D34C6048E8BF44A0235DFA9791770CB3E451E01ED7A578512DCA397F24F71D | 1960 | F3E4BBD8527C9C3CB4DEBE71F1AC965A69A1C6E244BD5A49FC81135A587EA904 |
| 1967 | B2784D0778C02BCD5A88FB1671F8019523D8ECD0F42D273A72F2140D3C14F40F | 1961 | A863FF7D421C407EDE08825D78924635E6968CAC4399D231C785C9048FD8C916 |
| 1968 | 7BC451BE2FD39FA297D9857745B4B8F8531CA0DFD9E72E8EE0E7FBCDA811C8D4 | 1962 | 0B2676DB4D91487B862B25F68DBBD03B604BD875420565855CCBEF9AF0793964 |
| 1969 | 167DA0037F9F1F181115209C22FA250C8234695C1085931C3D92585563366C74 | 1963 | 4FD45E490EFE697A470FA3C60192E660C45083E27B9E569DD1DBE07706975B9C |
| 1970 | 826D4E5F9A61F39E3F8CEB8701591C4A5FC62940C2729A2D9FFAB09F833D47C8 | 1964 | 9AF2851279A7630999C92E9867F55D56CBBA0CA13A0F041CD0F3ADB318A0D298 |
| 1971 | 1B184163D87FB4E5EC4BD91B81C325FDA8ECC31EAC76FAB333A9EE090C202EFA | 1965 | ED48F8288691BB2CE08B6A73E9FA89DAF661F201947BD64C1EB769EA3A0C6FC0 |
| 1972 | FB2BF753A5AB8D147F8949C6FCA5922E1B2C6231ED86BBB953166DE2C08A3DC2 | 1966 | 3DC343AEF2379881E46627AD2F653B4C6BC37E8D8452C3A7E399C0B6B3D93671 |
| 1973 | 433C76CAA7260AC901C3B4E2E78C8A6064F0ABBA1F4D16BACAC5288F199A0929 | 1967 | F51A92EEA7712A872D0BEBEBB071C83D9254A24C8799CCB5D2FF4DB31075483F |
| 1974 | 25F1DC8ECA38DA299A229D86E105C29CCD0FD59585467BAB46AECA7A76905CEB | 1968 | 3743AE4BD1CEECE6B9432BB89399FE62B87DAB3B19FA924FCC1F6C3DCA1B0049 |
| 1975 | 1CE91EFB79E3B4EE3CDE096E2CF63DFF71544E639567BC8F12263B2F596CB4F1 | 1969 | 51024011B8670DCE537387069A8732AC4ADDD77B2A0D5D97105810854595C4E8 |
| 1976 | FEECEB69763A7EE15B0E59A2529A116E6E3BD067BFB3690021068ECBF18F6D9C | 1970 | 0663FD917B5B587B8ADA22351D79F5E5AD494FADE90336AFC27FF9FE8BC770D6 |
| 1977 | 3F3F07D8C7E2A7793FDEE84EAB71613A6EA8F6AC665A7C0376A6406171EAF3F3 | 1971 | 0A8D6FBE6E45B3D4DB20E91A53D84C8B100813CEB9A81B03E142748475EEE77A |
| 1978 | 4E466A08318F942F2830757721CE2B193F3A7404D51375DF34495AE48356DD78 | 1972 | 892B3458A3AAD744A20ACD28C7AA6C5A996C9A9900F2D6B3C1169DF3BF2B1A9A |
| 1979 | E4AB3A71C2BE2094D5196BBBEBF056029805A302F6AE5F4A9BDB25461E81617E | 1973 | 56EF83195431EE89A89CCA5A0EB6A59D7D89179B6C127BA0981FE0122E4184A8 |
| 1980 | A634959D343DAC10BD072CE16D7C51C120F9B6A1D75EBC4D03DF60048B8CE15A | 1974 | FA9094D9C3D54BB7CBA31FD03C7048A09AE67C956A5363F5D51ABB19CA264D9D |
| 1981 | 94FD31DAE86A4BF525C979C7E96BC1DE88069A342C9E07C0340AA83DCF381134 | 1975 | 5D515F61DBD9C35D259950530A95350A313CFA8CF06413ABEF844771BF99590E |
| 1982 | 0C13C315D1B690B5E858A20362441C9F61A20B70392F87078E5C3F8B4AF23D99 | 1976 | F9A2F28975AFD00D700E83A59A3F0B7238CC74A8C1C9DB059C84DD91F1E07580 |
| 1983 | B051B170140D0069DC6E2D4FFAC6E45EE56221264A894AE68FABF04994EF9D87 | 1977 | C4C1311FF1C4AF2AFAA07CDCE72B0928663109CB31DE1548C72EA321F0EAFE9A |
| 1984 | EF92B498493E3F0B2F003C47C861320E714FE36F9B4669226E40753B2FA90731 | 1978 | ACE0E0BBD840254E30D9A46162DACC79A07F21BA056BD90AD312A2D728CB94F5 |
| 1985 | CE281E469DB371C975B186E2910879681485763CD9316CD4017C5D9ACE43DCA0 | 1979 | FDD65516843523741D2430C5338FDB4274162B8C0409ABF94581C1A3D8636BCB |
| 1986 | 38397FE463F2A3D6B72209FBEA175E75793163F0FE4A2CAE3C7E5061D1A7C31E | 1980 | 78A98069466C0C869BA08047E9C154DC6FF00A1DDCC2C4AF4D5DA5437BD02616 |
| 1987 | 1F8FD3082D2743CEEA008B0F0AB55C2BBA23918A1BE4200DC628662775AC2D66 | 1981 | C0139731CAA7817984BE614D6D41E9C21AEA1CBC9E56C783F68364023CB95387 |
| 1988 | FB16BB7C06C295357A1BD655CFF3E0C49046C2CFC70FDB87E62C2EA187A0914D | 1982 | C71A72D9DCD59222964D04650181988D140295091175DD985F5B53B070D20B89 |
| 1989 | 2B55FDECDD9309FC215AF8882D65174ECEC01F38158C4D96FF9EF1B17AF32EB4 | 1983 | 5E4B621C848C9370E0687B45EB1070A688A94BE949D242AA6266ED2D64C2518C |
| 1990 | E7C2B4770F5CE67E2B26BA0ABA9116BB3F89944E308A0127C99B1A145F730B50 | 1984 | 4A5E75442F030E137D2E3BD654C4E4EDAFF7B46EEDCC9090D537B6CE01DD6D0F |
| 1991 | 28473FD0DE250D63A7116DA1ECCE93B02F3CED8C894E6B090F5A01A26822503C | 1985 | 1872A47A04ECDED2421B511118B0628148D2289B74B79B3A68CA7A2547D644B5 |
| 1992 | EA68C5A7BC8734C35E40D3A56449F6AC36406A0818C666F0EFB88BF02AC4C296 | 1986 | 2ABB83CBBFFE319957FD2189E272DA2C2E35DACA8EE229F37EB4C94C920A65C7 |
| 1993 | 201B0D0848450A54B3FE1A75F641D1592D265CA639D29DD99C47AC8DCAA2FE5F | 1987 | 165A2ACFF7B92CE4338F3030E157CC75281E1F33AF00386FBE6003C4C8CDB57C |
| 1994 | 0216CD31751A42FB48F53200053979FD87DEBBF427363CE1748FAADFA0C6E2C7 | 1988 | 4EA70A31E2CD15FE6732F98BE47354C2F92AF632B5BA1C7ACCA3633ED13919BA |
| 1995 | 9B407F5D041D9383385891A86F33AC51F0C7F4902580D9446D8118D8EF2BB177 | 1989 | 106E6ABCBDC11006BA4560AFB17C7091BC1A632E7870B65717656A89EE550576 |
| 1996 | 5C2A39867EF485A454C07CD835350997F5C18EC1C3A83E57F57D8A0813EF784D | 1990 | B5D3BD5DD829886BA59D186770871C3D293EBED70D66EE3AEA926F2AE6AC6CEE |
| 1997 | 19B088E03344EEB3EE8AF03D18B2A4EB5A57E1DE60CFFC487FF1C2DCCDC88C40 | 1991 | 30CE46B99DCEA2D15384C53D08C6F1A083A24C025D92832E16E816B893B3F2F6 |
| 1998 | 1B7B1B16A0DB3AA16474F6CF5F92C7490CA1F3D94B33B18DAAAED531D2740961 | 1992 | 68BDF430788D1167B14633E0AD0FD74951C5826BE0F4B8CDD23CFAA88907C43D |
| 1999 | 53F662902417A01C2B33489862A446A5D7BC27B87ED382CC41175114C7B0D42E | 1993 | 1678FB2C4053E0E2056BC4B33F36A896D1BC212B0262B6CB59AB3A5ADCC027C9 |
| 2000 | 6DEED8A64B3034F764BDAFAA477191564F3EF1339976051C0BFF59E56FA20C7D | 1994 | EA6A2C0F1EA2DC6B88517BF08AF54C9B1A4A7B0A4BB9A66ABECB539BB6BA1F9F |
| 2001 | C5954E0A805A4A8431B40401E8A188D2409A16013427152F64CD8CD502C5EC4E | 1995 | 313F2A5619949D0FEF977DFB87ABB8B8DD420F3097B2B8BEC00EA5A3E8C207CF |
| 2002 | B2F5AFFBF1F4D5BBD636109F2AF10BF4737DC0F722E11649EA017EBB2F4F531C | 1996 | 508C7CA5133CA63B98A14E11FB57BB7C461D7C8C767DB10E68BCEA1D5A4B7F29 |
| 2003 | 9D08E88CCC7D3345E4B2A96F14C9CF8E211B90F8A2CE2EF57A68BDA5997271C1 | 1997 | 7AE639BFD660B1CFC78DEF00CD1278833E48A65BE281C9438976BBB475AC6818 |
| 2004 | 93A69D91A285B2198A12F8B3C23FCA396CBF176473CC5A4C4E24ED72990BDF14 | 1998 | C533FB4D2F4D3727B68F533D03554393D66FEFDAD1A3BE79FCEF05B98A5D9EF3 |
| 2005 | 162EDFE244272250864246D493134DBC29C5CF2C8A5B5E27FCCFC7C577C014FE | 1999 | 71F4D16E531408B2D866286CB89B50DAAE9978B96C8BEA869F9E90B780F0C98C |
| 2006 | FD8F723CFC46F2D9700738788930F22656B5F1AD5A34C4EA6C96EF45C8E68138 | 2000 | 1618C4F6FDDA21820BBA795B0AF3D00F96635FC5062544317A62A37060F965CF |
| 2007 | CE87FEA609914E3936624E1E6B167A60237A34C04FF1500C52E7258FDF3DE58E | 2001 | 3BF8A9C7B5C3D74914E0AF04AFFDA0FB1D1E644E2FB8125E94C480B4ED41FF6B |
| 2008 | FFED1699614DE43622D1057F172E54AEE1257FCC853C0D1828B072F7F4477309 | 2002 | DE326A771B82A9C44B4DAA194D3C2A8855CA293787D7D5F466A2587860B64408 |
| 2009 | 4E3E42B5C00413307335285F8404FE1229D1B2006D482993E7F96D8C9BB7C41E | 2003 | 6F14F78C085F63E6B63AC41FE7574E5E22C723202B7D42A1BE0D14A299231F75 |
| 2010 | CB0A9B91F02CAAA3B8A05143ED6330BE0ADC9549D1AE8A46B2BB68E3002F3589 | 2004 | 66FB900C2A030D0E09EF5107F9905A5C66E6A5648FBA2B8E80217160EB797496 |
| 2011 | 0D5AFDA53BF17BC6E069E5B1CB3CD24362C702BF44F7823E005F0700AD2E150C | 2005 | FE3D4904C8E3B6FDE528D1B931C369AE5115114B3701CD40B57457341D735576 |
| 2012 | CC5E486F4AE4103A5D0C7396F31C42843ECA1EAF0632AB3EA191C0701EFA0C42 | 2006 | ABE1907500771C3EC5F562B63DCA85FAF5769ABF0F8F74A678E508A59802F1E1 |
| 2013 | 452C72B6ECD57240A505F49CDC390DE48C5251F9232F837CE604CA7C6AC0F742 | 2007 | B11545E6C8697D1A7FBD4ED7A5DE57778DF66E04AD354E5A45E199615C6CBFC7 |
| 2014 | 6742EE1BA48956E6CAB43F05485A4457F44BFF2E75846BFB56F9C34B17CBF84E | 2008 | 7F6C232D710E8CD5F9953DDFE922B2CF50F02F65A96E1BEF0C1FE6B5C52415B9 |
| 2015 | 4133424ADA7942199449554E493E2CBF5A4EAD39A22C166F02E5332197F32C88 | 2009 | 052B9C062B532A6B83260D13AB6D3B2A48D780E03B4519F4A2152B82D1A90359 |
| 2016 | 542CDD0D5018D322396F3BF767CAEB823ECD801D22E536D6201747DE4D2CFEFC | 2010 | 7CC62EBC5F26608232CDB89D2CD44F0E889AF80B1A9F8C0B9DE0EED9787D70AA |
| 2017 | 30CF112F6DA37736C836CE44A458B170B974F2BC9B7EE06AB478F2EB94774A5A | 2011 | AFE3DEF464503D9E56674C9BCD0BC65876F2F455C83412E8FCAC08ADE7F8E2AE |
| 2018 | F18E82473C5016AE0FA8AE9DFA174F17945A5F3526C73A24D348E2A2FD14899E | 2012 | CDA7A57425C7ACEF0D58CC85F71D8512B32D9C06AC001382A4095FEA02E2BF2B |
| 2019 | 5D33177E01B7D101A571E196405CA95FE795CBD73F7185DE01F99C1122B2C050 | 2013 | A7EB6C298B10CD398780A7120CE9A31DE391C349AA273C890F620172CC434C23 |
| 2020 | A4D54AC01881582AE55E34FCFB39189C4482230FE1C01F7BAF31F97B59DA6823 | 2014 | 33265359372A5451C4DACF0C859BA6D37AAAADD08D2F85DCDA2399D894840D7D |
| 2021 | 606D7E318EDA739F6C18B7A3F011E76EEA67C696EE9EEBFEBC8F1F95CB450D0A | 2015 | AD9870DD307B9D602661D7ACA2F84FAFDFFABF5A89AFA9973161DC1CF3A3943D |
| 2022 | FDCA2740E7CF611F427FD44ECD90CEA692377130C239B3A0AF9F492F377C55F6 | 2016 | CB84A9C241C8B6D6CBAFD2DDC75166C3C2D5994DF4D2C60739F34E7805582A15 |
| 2023 | 0C2910E3FBC614DE8F8F917FF5ED25702A5500D9477B5A09B0A12C9DAAB966C3 | 2017 | 76191F4150309E55FA04EF8A59C4DF8EF1C95E57F0C255B63C82A7775D4CF3BD |
| 2024 | AF6B4F5C16BC519B8D147E414C1334F009730E52C0C1242685F40530A32E236C | 2018 | A3C56600BB869D411A5ABE7EC6C67437B328DFF2F2BD6267A43D69B6788802B9 |
| 2025 | 2143B0053A7FBF6DE9CC6DA142DEE3A61E338B0E9ECE657C046F2540CA50BC49 | 2019 | 249DAE42336C2A3DE75816951644C742C36C51F120943DE8B75052EE4405A346 |
| 2026 | 55062DBDC0CC1295991242EA7C749000E114EF1795ADF45A4CE8B33DB1815CB5 | 2020 | E157546DCB7D845D81AEB84E70B857B9152C3FA6D5F3BAEC8611C14F67B54DAC |
| 2027 | CA3B4D8703CA72082B63700BD8ED24610FF157C3BB2A704FE41AFB1FAF4774F1 | 2021 | F58BBDBAD4C473C0DA872330902A46610865EB0EF8F97078841AF74758F0E6E6 |
| 2028 | A208ED52A9684A802003AAD6D9FCD5A3CF635FCC938931CB94C751212CCCDA6E | 2022 | 3DBA2B1659FB937AADD1C8A612C61F0C1A9636F0624E64D6D92966D892F44F09 |
| 2029 | 202FEB609EB5232D1CC78DC78F60A00441965117AB45E898BEEE41B9A21D4B17 | 2023 | 48A4BDFC9A83C267ACEF143585C51ED45F59126AF7EBCEC2B9584B0FC6C1E670 |
| 2030 | 64F5DD48296352202F5BB49BD6D7C8A031AE5E9667E077ADB2AE7D92D61EFF47 | 2024 | FC382E476B6C33071A9FD3FC2D0F943DBE055BAEDAD6702DC0F474F9B2DAFFFB |
| 2031 | 3599436C302EA12D0C1713FDC98CFBEF052D7F06666FA15DF8571D712A3A77E1 | 2025 | C0AF48B326EC447E31210586B7DCD517FB61F4D4870A5E467492F40CCEAA4F2D |
| 2032 | 370D07F557A30CB110CBAF7AEFC425F9C9A4BD06F54608B44AA3B796F560711F | 2026 | B06BF4FD8B31D9650D032A0A28E1D413162C649352784A0414C474A82DC471FF |
| 2033 | 6EAD4AEF60B83DB1E356D7B6844375FB3AAA0389F56D070F426C759ECD2F970B | 2027 | 1FFBDAE7795DDB8BF3DF22C393E939F5634C540DFE2590D71BC1444BBD79A9D9 |
| 2034 | 2E65032797BEE2FFDD78CF0B7C9684F6EB8FAAB6502F4676CA8F23D37CC4D4A3 | 2028 | 7261CAC5207814AAA58D8B135A52A3D3174110FAE364257A6F79AB3B73B52A0A |
| 2035 | 42EFDCFAC381E4B95D63E26FAC8DC58232288CDF0A98F076816242E68A3C3189 | 2029 | EF08DC05593BD0327BEA4697339E45996E5D6812D166165790D8E4543C130DC5 |
| 2036 | 98B28CF2783D9BCBCF089F9E4BA80AE4FE0C21376BC144EB419F3C346A540126 | 2030 | 34725E44BB037555803390CAF9F94FD6BC08AFC3ACE747B9728D8CF0128D5B4E |
| 2037 | 8DF517CB30F5C2CE09D7A269D6A02229EF415D7D9412198AABE493F3B7344688 | 2031 | 1275C4BD7E50AB5F980DB3C3281E3FC4A500FC6DD0038D35F4F5589679647238 |
| 2038 | 72145D60CD95F113A968F7C0C8FD1A4550EEB73BFB9231FE6C942BF859FDD93A | 2032 | FD7EE68BFA9AE20EB140B7277073E6F26C7EF556FD311D510C92E89B70762F42 |
| 2039 | E4D428B7E16F01633448536CBDED367E9F725417992A4C7297DF9048760E2E64 | 2033 | 410ED318AFD46F66F605E98D1EF12F00727B3B3F21F695241B4B5863FB1C27E9 |
| 2040 | FAD313DF07F86486996EC840E235EB5B661F915092A6A80D0CC932FC4FFBC7C1 | 2034 | 6BBD4365B9AEEFE8A18AFE350731AAA0ED817498539433027D50C8D38284E888 |
| 2041 | B1B9A1E7E71936CAE5B0729BF1D8B8BF42D0520FB7591D868D18DC4692B21881 | 2035 | 1E6A1E6CD54F851B264E2FC4597A6A4FE03C7CFFF7D1F75CEF43E97B22096A1B |
| 2042 | AB73A3FFB3A0C6DAC4C9C6757EA9F17955336AA938DF2380AF0EEBD694CFE55A | 2036 | D8BE2DC4A899E64492359B346D9C0051361B6AE9DF079BDF21FBD274597B3C02 |
| 2043 | D8BE01F9991D94DE9980879E94FB1959CA21EA09BFF8D335D24C6B1DBEA913E2 | 2037 | 4D0FB1C66B8AE0AAFCE0C1CAC54BEFE069C0BE9505EB0B1AE60869B63C396698 |
| 2044 | 9757D5110C7018A959C9C20873440610C113BCF278CF74EE3EB1B2BEA6BCA663 | 2038 | EF594E1C8E5995AD22DAD027BDBA4BF2FA9B570E8F0FA3CAEECEF6DB8C4819E4 |
| 2045 | C451D157CF420C4CDCD949309FD52FDF4189DA36ECC22CEEC43A43337F6BB755 | 2039 | AEBD7165A655F1B7828527DCA9D01324FBFEEDD6797C8E3E9E17B760C70D7AF8 |
| 2046 | BF613B711D1970B4F5D1C120064169F70BCA3A784B06B2542EFFB32FB5A0A534 | 2040 | 8EC0AEBBB2C448DFDA6B6B4BEB43291772174F1C369DBD1C4183C8E00A4DB46F |
| 2047 | 4C560825DD4CE51941AC685E0CC87AF48AACDF6CFB9720CAB78588A05910431F | 2041 | 208C324163E0BDE572A84B85393892545249DB26457AF5FB311CD5EAA11D7F9C |
| 2048 | 096A2CE6059506C9496EBCF1737F801C66E96CB8093C650A49DC7D1AC6B81FFB | 2042 | 3E491B0D49C77898AD873381077DF84EF4498C012D7752B22F0660810B6EC0F8 |
| 2049 | C20DC5BA3AC25C709A2FB2C848F203CC862BFECF195115FDB3BE0EB82FA85B0B | 2043 | B66D447775AD659C51D3893CD2B4509E8B9D1413A99527F720571784E7B9302B |
| 2050 | 6E83A4093122A7F459AA330606E6B6CF32C5C46656DA827AD81A86D162C7EE6C | 2044 | 92175F1FCA726E8AD6D82B9B7E853FFA5739D0DE0A02BB115DABF83B1E4DE706 |
| 2051 | 0A3C0D61FACEACA53E633519D7FA77DA807D0035C88C86FAE3167C8BDCF24481 | 2045 | C23532EE82BD57109F9A7A4E6A87DB4FF5C698B04003312F1BA23AEEE22162EF |
| 2052 | 0387070337F0388FDDB757C2A5CFAD9C2883F7F2FBB71CCD3043B35684F4ACF9 | 2046 | F22F7D338554AB08625B26D74F7D23772532A371AEDA9CC2962B0B665393FF04 |
| 2053 | BC0A50F9C33ECD20084082D97A71E9680E90A560B6C1760408F7CC1C18347AD2 | 2047 | 0B032502628AC491E593D0D450757AB016B2C74C6AD44594E0FEC2F880B578CB |
| 2054 | 391C7D660D50126E5B26EB49384B95BAF472769097F8FD4566D03C776F18AC7C | 2048 | 5C4D6A409FD6B64B9F1BD7CD8B69676814D169609D2ADB2F1E98F6C8F1A16D90 |
| 2055 | C68934D967A97840034FE6966A4C44384283D25549B89163A50C27CA0E9D130F | 2049 | 63FEB3C8FC663DE0CCA1C5CFF03828FD1DF28678492DA710EA61B9096A173CA5 |
| 2056 | E01B62AB10A8461CAF49567BF6C5A37442AF6EFAFDF352B5BDCE9301D1C0EEA4 | 2050 | FA8A85DCE00EA42ACCA03EF856F3F17FA32A69DF9F73C46944705C5DC20A7535 |
| 2057 | 3CCBCF70A8AF88C6C8A2EFA29541ACA6E8DA7254E4FA8B1768BED363E885C639 | 2051 | 34CCC3878E878A0BAC55B7D56CE2C43C102D0AB841BD4A3C5EA0379D321413C8 |
| 2058 | 256E15CE6AB3F8D5F5F19828041A25E0B5F21AE224C8CB7F51333ACFE8C820CF | 2052 | 6C2DF639D4EEA521E0A1C68D8B60319EB999707001795562E8AED4ABFAA486FD |
| 2059 | 67ECD12BCE156DEB74737FF42B3A2684679EA97ACE6E24A1A9ECD7DAC0F00248 | 2053 | C11D4F12ED45A04DC72264A882C97510C91F2DD77E3D5685DB2CE52C4746F613 |
| 2060 | BE2A74F13F7808F8B6D001882951DBA633E4D21C47E326270AD50E91F1717F28 | 2054 | AD98EF16AA9773CB00735151B7D4B9315441BC3B8BDDA5ACF619F49B6052AFAB |
| 2061 | 1A183A3F7603CE9F9DD8D798C5CF6D94144F1E2CB378726523E7B2080B753CFE | 2055 | 0F19D9ACFC8D6E0CA79A25A8360F9749EF39FB60404E318BB1A98EEAD98FA0E8 |
| 2062 | D7D53773219CB1EFE995DC623A1EFFE70215F3DC17CC0695DBBAD0DEF043D57E | 2056 | 40DFD76BC3A84404F7D3904BFB2EE3597D8364EA556E4F7D18F32F1D86D10287 |
| 2063 | 226BE50D8F31C5DB8401636BA1FFAE520EBCF2AC99C4390E4D878028DF493B45 | 2057 | 8AE46984461ED91AE22B6EFE0CE5511921B539122DA3EB48707B8ABFCCF2E6F3 |
| 2064 | 93CC8971CBED42848099D1CAF836A594802973FCA3BC632CF8DFEDAACD30F3B8 | 2058 | 9408D626EBD0C2A1A87827ABAAF02873B675AB54BC6CB5B40E697471320BB686 |
| 2065 | 23933ACB3833F98296207ECC26336902EE4E61AC47F838CCA4BA4343F37337FF | 2059 | 9D845AD686DCA663AB31B4C2A1915C55A814FBA82E77736F7F258C1AE7B42449 |
| 2066 | BC2F5D2C17B7496D794BDC9FCADF1F68710EF935BEBCA4F766D1C463D36BA87A | 2060 | FD341CE08D65E648A3FB4DE280353F79FD70578A0C38C963461BE98100EE4084 |
| 2067 | 77634687592D7570EFD3218A155AF4F799D425EBAECDD6D53FF4BAE6AC83413B | 2061 | CC1DEF4E35B10BB81C632FF1AB4511B80C881A729EAB34C9E9D217E3A57EFC52 |
| 2068 | 819D0EBC3BE6F5B0503D39629FADA6A2210B7EED0D23EE9536948C36D1BCE955 | 2062 | 6B73AAB4911830A00BA599013AD3BB83BD3DBC7445C316172B3B8A22B8148ADC |
| 2069 | 978E6F5A5D5150913C1C9675FB4CC807136796691E186405E6188F536730D89F | 2063 | FF33379CBA195094D2C2CCAE0E260D8DFEC35153BB3533BE014F456A108C9D62 |
| 2070 | 87987272EFE130166003DB3A723063C331688174788EB915C09C6D73037E0721 | 2064 | 5C21C1BCD3CB9D7AA0DB74AE571A88AF6BEDDB6DE3DAF92AE60187819E8EB8A6 |
| 2071 | B43F4365D9974F1786CDCA4DE9F2EF193DD46149B5A24098FD0106045E309809 | 2065 | 7CC1CCBB5F23E63A107EC8143F0F69B62CFC95605231FE605A989407218AE464 |
| 2072 | C88067CB5C35DB60F64DFFDF774BB30035F9C4509534F34A07E50A04BFAF6747 | 2066 | C2B566EB86E1075B0D8FF788B726FDA5F5F2D8743C39224C2231A46426F3B6AC |
| 2073 | 31D3A2A56AB7F755BDF243345811E8AAB524A920B0F17EE914D3015EFBDD74A9 | 2067 | 747E69C46AC322733DC052641526E775F10924F0AF404C37BD47369986746AEE |
| 2074 | 868823DB2338532AA4094051E3CD43B29B18EB3B9AAD4C4EF5D755AA3D323D11 | 2068 | ECC7CAAC1B2CF6E5D86A46F4F6AAA2BB7707BA4D89F1B46DA3024A84228E1A5C |
| 2075 | 9440B1A2C01A0375BCF13162A3962224F04A28FC15D5000B796E39F80016F858 | 2069 | BA5EDB68205AE6971A255381FC06BC03644D67B082FD503F502B28141D437C84 |
| 2076 | 989E64B8B9B43289FDF3CCE2D020AD995A3D7736C4A7BCCD31440EAC5518B970 | 2070 | E809F5C78BA5FBD5B8D51C012C3EFCA915505897C8099F0938EC15464FF4EAAD |
| 2077 | 043E2AF5D3B5618FD9D5C5716403B43D2773D94CEE751CB545AE7C8AF1431FF1 | 2071 | 2012A1239E0251BB126F4E400C170BD1C47656CC010235236733633CE22A43D6 |
| 2078 | C9C8B77065FC01530E2BDCB91308510BFFB756432885FFE7E51B8F5D078D2ED1 | 2072 | 3E043B687B32BAC9EDB90DEA0D0B0015E8C1DE4EE0B0E0C10F2F50F4E35B31BC |
| 2079 | 1D894839E7AAD86FC90850472B81CE2B9F67BCF8AF334B1CCD1E4C3AAB470867 | 2073 | 915A1D984614AC0B10AF2FF1B28FC135D07072C0530C50FB6ABEBC1592CAB0C7 |
| 2080 | 591E32CC9EDDFE53FACDC1F10AB7D5200B79C5F52D0278D47E6A5D1487018879 | 2074 | 2FF36245ECB609DD787852E5509AA57B3EC5F6186B16A4EF52ADF58D7ECD1D34 |
| 2081 | 528FA32BE86D7CA2C7D74A4C83DC5403EE7B5ECD0265AC43381C55C9A2A7D0B0 | 2075 | B2BDC2BA556F7915F5293A8CB3F44E707A57F6CDBD91E90F9146874311F25B80 |
| 2082 | 100D59724CEBF79065CF467722D098AEEA112DE97D3A63B5DA728AD9649EEE38 | 2076 | A7348FA90D09459843F842FCCECFE4025D12B2BF2B61CA32E6F72B8618390560 |
| 2083 | 0FC7E3C2DF87FC75FC71FE7A1FB29CE0412A292E7D0AA49C6EB3169726CA4D35 | 2077 | 0157F80C82BC6A54B9F0289215D94C662CCFA55EFD0650B0ED761D98C65BD47C |
| 2084 | 4B346F90F80759A98A4FACCD4BD3443C5D495209D5B8371CD9F609B2F31D0089 | 2078 | F7CD595FEF1C7DA57F3B79FD55ABBCE8D30B1D0DE32994D52F8885A87F0C109B |
| 2085 | 53BE78E3031A481353B21AC539D1D0DB15D125C5A215B85C967330877CCB8E4E | 2079 | D90052BCEF87DE36DB4A852E910C792C094D0D0228C53D20ADA83280C79E9100 |
| 2086 | FFA3B31297E1FF68B1F037146EE0CF72442E5D97231D60A780EFAEBD557BDF25 | 2080 | 8AF8888CAB9835D6CE65D7FE36B18F365C4F6324DD5670157B37AF55B205F460 |
| 2087 | 2841E68C8D9DD235D19D7949A847BA813AFDC78C45A3ADC0C594DDE1502632AC | 2081 | D10A0D16CDCDA78539CF166ACECEF425A1740B7C8F02D13F2A86070416AD9AF7 |
| 2088 | C9DDF7F22C37569C4B6721F5D4E0DC02AD038A293C751E4270D83CCE38E33C0D | 2082 | BD30314C6DC920E3CB78117564ABB1195397CD66FC92F54B5F1535C15E02F763 |
| 2089 | 935A016C2E48A3B0B302EBC153592938C504B6E2F534DF5905DF530889A46DE2 | 2083 | C92A2F3F4CD1FEAD965306DF3614D0362B0191492905777B75D8D1C6F5064A1F |
| 2090 | EF823D01C77EC705A38576040991BE498E2ABB8AF0EDF14F762E43FAD1F77BFA | 2084 | 111B7EFE43756B4F0996030C00503EFC5351D388C150BEC0FDA5AB0E218423E5 |
| 2091 | 526507E86F108E6BC293E737B1CEF52CE5F4601AB761B18761351C8865F6C1D4 | 2085 | 78F87F1B7684AFA6DC450EF115ACF8AC2C8DFF33AD39FEA1008A46EA9D6BABBF |
| 2092 | 662420E1E761ECD0D3ADD8DDA3B4B8DFB78BC27F33BFE6CC5A2A60B31CEB007E | 2086 | B5F220B209770EF010154C87A4BC067315192ACEECE255BC6A5896C2F4963170 |
| 2093 | 9B6D571226EFD67FAD3EABFFEE981225FEDE1627645BB5E881907B0F30E66158 | 2087 | 576E250C3F8520E1E413A30A1C17F50F6E8D2DD87EC02320176F355709D75320 |
| 2094 | 251F0FFE3FA1C010C937B6C8DC8C4A8649156947B204563B30167D4D480EA6D5 | 2088 | D1747ABB9EA215793CAF3BDAC8F5C0812A630FE85D7FFC3AD199E5D83B068C44 |
| 2095 | E74571126EC1F19961983A135064DE001B9F0F2FD8D63D1D9A9992964239056F | 2089 | B757C8A127C3993C01E25FD94725415298FCFA762ED456DD7DBEDDA2F7AB71E6 |
| 2096 | 1983B84C152AAEC909E8B27FA29D309EC0FAC516F297438DF16F5DC70E3CCFA2 | 2090 | A289E0F59FAF62E3A2CB6A0995CC06838C8F9A6E19226B0E0953E2BA3764BBDC |
| 2097 | CA7ACC09A83BC9B7912CDD58E0B367BF41F581162C100F3633A8DF70BFA80565 | 2091 | 257212FA3143D2B67D308AD49A0B245F0A97B09919C307B326D575F1F865ADBC |
| 2098 | 6EAA455575E8433805C923ACCD1DA4FD9A08B5A344329C61F897749DBAC3644E | 2092 | E292206795305174C193A4CABB0044936E51BF95D0B13E81F2C64248F1D9749E |
| 2099 | F76DEA49E774150D58B868B341B40EF1ED951DD2E8EFB95C2B71C0F9FE556CAC | 2093 | CEC22448489B2AC1D766933B570E3471B4917ECB1D66E0A4779B084B1D22074D |
| 2100 | AA0B805105F924AD53DF8A8792293A7C6EC634BBF784534EC60AFDDDE7A5ECFD | 2094 | 108867FEC1329F5B30FA344C19FABB7C09A50F49A5B0A1C42413B3ED9FC39B36 |
| 2101 | 7DD6399B84BED1B6603DB2807E0021CBEA0C2AB014EBDC670D082AFAB26B3151 | 2095 | 500AD32B07AEE4A5C0DFE29DAC2C6FEC431842A473EB710293F23774FB448E51 |
| 2102 | 101B9111E538CC9508786CD5B4322F6D8BE43455BC8D585663C2494F2A941AF9 | 2096 | 3EB6B4A27D98078B2A4DF3A5F0F41308374765C86C0A879641FAD025EB77D7BC |
| 2103 | 5DF7A512F936105B6C0B71E4A29C189CB175F1B4ADCFEF1EE300551A573ECDEE | 2097 | 9328E717E2EE4AEF31A3FD23573DDB8E81F20F6499FC2BB4C94D3F1054785E0E |
| 2104 | BCD73740A44D6FCA66E22AF39A236E27C4BACDB41D616039AB10B308C0671129 | 2098 | 6F3B8D6176EDA6E386FCBB034F6E82F6FE43CB83AA1147B05D51BBB03C477F54 |
| 2105 | 4DF112BCC3F0709D96E00C54FC5D335632C107058AAD26366DE0A1E8D2448845 | 2099 | 38FC98086DE0E04722C5F0CBF9270E0DFB928EC7387710118513A3C97C0D6A9C |
| 2106 | 99DB48A0F053672ACF7208F8EC728FAD0950599396813185862034E128C29EB2 | 2100 | D67BBC5AA5DA3A33BB0F534096582355E0B3BFF7E6536FBF496FE4E05F006F88 |
| 2107 | 5D0EA2C06F8B067F2199455E44998E7B523FF19A1F7CDAB6BA06E166E471090C | 2101 | C7C28672CC58838790821AA48534FCFB8DFD4EBA9C94E4F50E0B9E046651F779 |
| 2108 | C3C7C2005CC0757F5A07CB3B1C6D050D1BDB00BE0DCD9EBB1A7CFF6E4BCF162E | 2102 | E11B8915503682E7FDD90F05DFFCC5A009CE64FBBD223E2634DC95803805F4D1 |
| 2109 | FC95B6895F5E6E90C10D6D8F17CAC2B271105BAB3EA0605C8561E3DDD996DBA3 | 2103 | C27B4D543FA3EF2B222DAAACF40C526B2A1563C0968E7F2FB22489810A530519 |
| 2110 | 5DCF762D40B38DFA30086967C407F20618613CC7E2A854FF0F25CEED4DAA58FD | 2104 | 100FB442B5F972F960FF6BD86A19A1F297F93DDFF83CE2347EA3F861596B961D |
| 2111 | 4EF8C4DA724D2B21D0DBE3F53D2D9D26FD15DAFAF81DFB2809B05BBE5B2A79B6 | 2105 | 4FEDC423B8262ED0F0352DA19F07ED09117CA72EFF0CA7B666EA45493D1E1317 |
| 2112 | 6BE13F46F5A94F43763AAF260231DD3C2774A165FE4D2E7C8788F23609E36249 | 2106 | 559D4B5D278F107042D276C9AFA6A093ED696867BC1041E5F25B11C1687C8C1A |
| 2113 | 622A714A19B91ECEAC16D64CF55F761A801815A384506B6A3342EADB2671B107 | 2107 | 72DB2FCD4B632FC212D774785F2D3579BC0DBDDBC8CCFBCF7B686ED3BD92D4F5 |
| 2114 | 7E2099F4480AB218B8FE2CA0F6696851F6431DC6758E7C4E551ED27BAF6E28DB | 2108 | 378CDE86406399B059198B66E88BB9EF7E572C6460C36B0F2FA3E19AC56F93EE |
| 2115 | 83AD73C80504F0ABE98095A525EFF2667E1F23380D5E9B5406830B8EE04A82D6 | 2109 | 60F1F7BCE76F0AF284C3F41C8BB69F7D34B4644AECA4E9324CE2EE4E4044F4EE |
| 2116 | 0C016ECA5D0E0D22253CD23E5D4F758A919833AD851EAE0AB007BB05E6234D86 | 2110 | 7B9C28E8B454D894445AB47B05F7B4B94529808A007A5E3A7D323F661F9D9C0B |
| 2117 | FB4070BC98506C718BD3FDEB8F98CDEC8F628F1BEF4727630C09987EE93A05A3 | 2111 | B5BF1C24FAE9D951AF26493C3C9302C4C040A33E94E6596246511185628C7A02 |
| 2118 | E27FDD103ED344DCF579D4E47AA29EAC5E0415C64319AB8121EE933F2DEF6C65 | 2112 | 15D33184493337E2543B1D82FD5ABF4F47E894E809C51DE0ABE163D378910FF1 |
| 2119 | 92D3067DAC8D228F566265AE3F51C5B5B63847066C8E15766E9C17212D17BFF3 | 2113 | 717FA82AD420E076611F5559AA027F1F82433B4B103CC1541D342330D9BE4592 |
| 2120 | 3EDE7E9380DC748E30D7A441020650E6244E0A0F10B9CCB08D9D184F31557E86 | 2114 | 9B9112E1FAACB0FFD59326ABB3A352C54D097E0B79A91A0CB39B77AABC40D191 |
| 2121 | 728D0D17E69D02F9139F114BE9365B5789ECD22D525B0B3F4F77BAE59FD5EEB3 | 2115 | C895ECDE7E9439DD2098E2D81E56F13F178CB8DFDCA5759C4580BF1DCF7AA3AE |
| 2122 | 9D04F26B3EEE5107BE27FF59AE320732610814C77CC42C6A2CFBBDAC95B1692E | 2116 | 83F2D998FF3B9789DDD4B2A3E1F5CEEEAB48CB410F5C07DD3FBB4C362BE0D32B |
| 2123 | CB3AB1E0663590BD79F72322ED01417F7839CDCDD86E16A3FF7486D1BBBFBEA7 | 2117 | 5BEA9A428692EC6585A20F11A5C73FA22D023131B1B416AC0B2F4A4C801863BB |
| 2124 | CC9A15F1D85E99982E657D5E6CCEC362878C63C70776B7F3129A81E71FAC756C | 2118 | D43B180F82391830064FBCC5A233E3ABC5B30C1FF8155C61E589604EC6C16E48 |
| 2125 | 3B9D5BC099F11271EE45E8912DD6E519BE47540FA7E6CDEF4E0AE2FA78EC9909 | 2119 | F3C676C95C57B8E9D4305C1B1C7ECD75B3A5C7F8B8849AA1B46FDDD928D92B21 |
| 2126 | A3BA4AA0498A42D363EF9BD3EA3F44DD192054D99E2BA96AE79D58F1FBF4FEF0 | 2120 | D0B6FFBAD0B71D101EC153669E32324C497CD26093D0D2E4AA197F9D5E459C50 |
| 2127 | 1C0BE069B0D181A6BA16E7856A55A1252CB6E1CAE718F061B0D69A697F30212D | 2121 | 709C64D20552A3B9DA9475D3658C302B5E7EAE0DAD3F9270A327A6644AF5C3FB |
| 2128 | ABAF64B49495CE8C2C3A021F1B63EFBECAEB14FF0F933679D4825ABA027BFD16 | 2122 | 8338C062F33478E38E82C09510F27C2FD1FB2D304355F28B35C9EDFA0AAED925 |
| 2129 | 8FEEDA3BEDB9333856DD7DC8DEE7C6F1A6E571996CA3850C3EC6F7AB56217F89 | 2123 | F2D1493BECA291483EB47FF0442C3692D29D10FA92ADF3C9AD85D5AC09D35949 |
| 2130 | BD0E5D306E9D173050124427C0639C9CB1093BC5DFAA4975639E844BD57128FD | 2124 | 166DBEBAF7D425DBDF179F8BCF21912C5A2123E869DE9A9CEB4803F2C04414BE |
| 2131 | 8565FAB45473C77772EF4B5AF7AD6BBA291A06952A9FE634909480CDCA5D2924 | 2125 | 45DF573DB40F5B9E42406F49862C7B23826CCCB05E76BA23BAA5A17CDA93D4EB |
| 2132 | AAC8A378DE44DEC27FB92F3EB49C2CEFBE1C9C8FF1ABEAD47EBE178369E562CD | 2126 | 59569951158FC068E32ABDD8930D6C4C58A7DE1D39030E3B818E3382938F466E |
| 2133 | 83863901139FB4CD2C62B5813AC5FA42972CD918E866C218F88F0F358066E169 | 2127 | 47E8189A6B902AEE4798286CF0C032E0F2AD018380C904C2F4EC61ED98CCDF25 |
| 2134 | AEAB4A6706F7B863BB95ED3F75F0B8C358511167E30277CA4B7D9C3829A6C4AE | 2128 | 9E2C691BE9812FD5E0CE01F2C94134C9F0C05F4B7F1260DEC20B9907E1B5D372 |
| 2135 | 382314835A27CF8DB04BD2E399315430B41AE224403FB3DC5A6E6E703CBD290F | 2129 | 8677FB4F0485ED87A3F6EA1A647072D635F7E2838649CFE37A4FF8182882BF7E |
| 2136 | 0C186179130FD6D362480F725AF7DA8FC53C3A74DFC8358BA617299FF5FB80EE | 2130 | 9474583F4E9D3548795E0A63D4859BD27B662D156DD893B3799371DB1BC75A38 |
| 2137 | 3F50D30ED2ACA85ED86802C32FF46B6EEA7C574A0571A73B11E5260F8DCB7C3A | 2131 | 0F454EBF825D683CF2CBC8B308AEE9D8FF8EBB8A7DEA067AEFE8CC77331156CB |
| 2138 | 8664F92A46775E19F1EE687862A4DF83C32B055EDE4FE626C6227B0B2CCC8C42 | 2132 | 20210ADE2B5DD0A9F77BB6E98F3630800BF33915E73E515B34E58516D1AD87B5 |
| 2139 | 065FCFE0EBA1778CA4AF232E795337F1F581B7904EACBE02B7C331F1089F2021 | 2133 | 00A8969EE2595D2365AD69FA4F67CCAA7D243B8D03FB39CA136DC1E5FD434750 |
| 2140 | 2E14F5B5F0D0F20A157BDB8CF35DBCE84930A8B594FC8D49B86DDFC8D7698F59 | 2134 | 8A329F7D11DC4D33F6A0BEC9A23E5EE1A18FD5C3640E3F30FC2D8CCE5630E618 |
| 2141 | 552900CA17022719DA2DE504CB3EF99369FEAEE2B8B692F0A63A5380D4E3ADC2 | 2135 | A273CACED00DA6F094148C5D6751DD983A2823418223E715DBE8ED167B2D1999 |
| 2142 | B8A1A4C3D4B521F6A96AD5F04FAD50D4365038A650FF9B78CFB879B546006A42 | 2136 | 650D0FD8685884BCF1D6147C162BDBBB6597DCEAED3B5CAA75F301D46F2F770A |
| 2143 | 468D77BEAA748544C863C4CCA988E13C4FEC9D4516A4056A79B8162198B0B0ED | 2137 | CA1C8997E99D16CC0A58572FE1D68383D87335A38AF8C27556FF19CC421B8BE1 |
| 2144 | 598F9A702420A7A466628922632F3EAA31D81063D23706D2BABE7072FD3F1869 | 2138 | 8AF89CDBB98273BF4E43025A710B4ACB5D7F2C77249CF1756282B74CE43F037B |
| 2145 | 59256BCDABE36BFA51C205ABB4FE86E0818930A18BEF080E680AD529E3C53B69 | 2139 | F62DEC52EA41330A2783B5E64F72392EE25FCE9A7E872F4A9AA7BB41E5368888 |
| 2146 | 640C131261131FABD462CBDCDCFB35AD7EE87A9B651394CCB46E992BDF79C47F | 2140 | 6DC531A2E602696EDA1CD3DCF808F62176E9198AAE9CA8925038D41E17570FD2 |
| 2147 | 7044848CDBCF7260DB57EC13AFF48F65FAC15FBB95A84DB9B5AA65CD2A44A5A4 | 2141 | E976F627F7213AC8EE1B2BC240871B7CC1C61B81BAA031B8396536AA62A67DE7 |
| 2148 | BBD2598F7C46E0F55FBD3CD60D8D26B384367F3680FB23A431C4F9E4013B5FEF | 2142 | 63FBDFCFD363DB5CE786230B302B786A859C48BBA8CC27EADB1FBC84F1059FA1 |
| 2149 | 79674CC608B23BA474CEE87C7C1C89505F95AF66DADA954C08B90DF6EA5C3D35 | 2143 | 3A02148B4CEF5DA6D90664E72DC6F3EA267E4102102F18D79FFBE4E2A642E94E |
| 2150 | 2B6B28A4E65078A4644625C6B5748CD9F0C8E6CD8DAFCC6768448C0E1844B067 | 2144 | F3D9376838236476B1030A0C47D28F4E7EF6358D213AC0A95391659FE736010D |
| 2151 | B8FE4642141CFD6AF18BE1D8D0C42ADF8EA56B2DECB0E105102329E01A326D2B | 2145 | 355826A83F7FBEDF3164FF177C16C41789E84F375C6FEFEA767DF654B0533E98 |
| 2152 | 185371ED000FF8F10B2642191C1C8896C287CC5B02F7D0D2961311E9FDE97967 | 2146 | A1430FEE50F41D39D41DC2ED6EA7EE1FCAB31FCE526D5556E89D36F3B402C5E1 |
| 2153 | 125F17AF2BC1C0D9E81082A0F2CAAFA85586E83DCF821169F643E378ED0C06AB | 2147 | C0CCEAFA157772B77556AAC8F874A019EAE0A797BCF85655A7834D4DC32D388F |
| 2154 | F0107C05B6C20E8C219B1EA372AFE14556BB26E265DDB35EC1A29E698ADDDC82 | 2148 | F3E48C0F7B338BBA1C9E949C5C0BC1A727A77FEBE57E1421FF81FE4AA81869FE |
| 2155 | B3DB2749CC168E27B40ED391851B5D9265D59BAFC8ED28A3317D56BED94EE667 | 2149 | 86EF313CAD75613726AB3F7508BC904A7E55F092A16D605802D36509525EE2E0 |
| 2156 | C829329BACB09D1B1F7A416F23BCE70366C60E5CB4F058F00A490C2FCAF90255 | 2150 | 18B8CE25A0BEC74D167F9E766E30C4EB0D7914F4DA044FD895F3A9C196E23256 |
| 2157 | EDD033037A2DD77F576CDF4B793FD62E5EF1DA9CA07EF7196356FC92141F0786 | 2151 | 9033CF1E352E82193458B6CFD32238CC93CCBB0E05E8E6AED8CB27157BB148C5 |
| 2158 | 7E55CA7D70BD6C095106F365D80C5E56DA0A2EFF8BD6F4274138ED558DC888C1 | 2152 | C644977C16D7F4FC50DA22A28CF8F945B5E0209C8D715E8E7D9D80F32FEACD13 |
| 2159 | 1795AED007DE68040372974BAF475526BD0833CEFB3D115467DBA008921D3B7B | 2153 | E6928F4BB60E9684C0F865C9D0C2EEA5EDB0A355FB16426A2405D124F3A01977 |
| 2160 | 20213B1FEFAC68B2F8881274841562A098631B4DF3055E4F993C8E3668431C87 | 2154 | 1DE108F66E30EE01ECAA74FE0DEC9A6D485B084FA8A38EC3A59B23FD35B72F87 |
| 2161 | 363304114F12F7A6741E63B57EFFAD0451125284641B7B63A155786F0F30AAA6 | 2155 | ABC6B7D73EDA44DEAC4AA7285D15339EAC0B54B52FEC5B7EA723622704A3DE1C |
| 2162 | B4AA243909838427881299D4A812037868176E78080B58D71BD4DB349F5FC40B | 2156 | AAD548509991E18B3AD4CAC7FCBA320ED3989A185CAFA4E22A42E1B5C209F774 |
| 2163 | 93E93AB792213570A54812E4289E434C7C41EC8EB1D725071DF30C07955B8354 | 2157 | F5FDE4CF0FD23978F3C37BC3EB97A0AA9B9CBC66538FF705F8F7E2C3CD58A359 |
| 2164 | 142DED8CC2746850ABEBFC9FB474A8A4B4C955E2C4B1B95C20FB7D7785D6B2C2 | 2158 | 40958DC811EBBD7F16902417BC1C97C3D409E4039E0569C6826D22923806BBCA |
| 2165 | 27C53F46B5650208C05D672AC1591BE11F4EE6C139315C57010445E788312C39 | 2159 | E601CFEB9B249597BF69BB74FA9607EA9CAC2DE0C8B958574B715D64D5E2AE19 |
| 2166 | A20F2316933C10C67BAC33DAF32442A0321E4C9372C2B4D80414454E518C65DD | 2160 | DF262825913DE26CB598B36E6F8168F7641A58018B9ADBF73237113B9FBB958F |
| 2167 | B0D18FECA4B9D7A86A11E9B3F2E56119450551092CB2E7B4DDD3858FA8BC80E5 | 2161 | 1A3CF592672A51EE2463CD7F22F058597DB9C7316CCD49EFAEFB6A20646E0DDF |
| 2168 | 6C883015EA7B770A8B51D56AD6A14D22DAF80229DF1026A723C1BA653915123F | 2162 | 794C0A9DFB62A42FC95483D7F578BA3163317AEB14561F49F6E2A909B7C92370 |
| 2169 | A1D57F518B44F0613521CDD32EB9A1E4E986FF5093B81985A00E0CFF355C61C0 | 2163 | 2592FF0614A1AAB9AC39E93A2DE2D38330AA56BD51D1FD225D0DDA8E91B94267 |
| 2170 | A8D01874FB5C462A3B3A317E027AF79D5820B473A61CE2D6F759CB48B441341C | 2164 | 127CADEC25E9769512EE28557E051F516329445C31D75E19711CEFDF77224F25 |
| 2171 | C98393C31626FB7459EDE4953D114D2A3C3266EB03F4A4545BB737E6C3BF0B5B | 2165 | 8B590ABB3BCACF4C3620142B0401F7218BA00C67A748A2DA5F784EF53521F536 |
| 2172 | 4186E06CD1EEBB1DC515A1727CBECC5770212BD638BD04D1A4F2662E8DEA0713 | 2166 | 7110D64B659B7BCD26E03F6D35A6EA3452A8F33B4A4E580AEDBC83E7D882BF65 |
| 2173 | B3580AEFA6AA79AA7DDFEF04F877B1C7C763B553FC4DB31E7E73FAD239C8B871 | 2167 | AACBDB77189BD88AD8A0CAB62EA74CD673A9B37AD1C40065C309BB399045594D |
| 2174 | 208FE433C3902A84A0580CC2F7EF3BE276175F6A6197FBEE6E039A1AC985D478 | 2168 | 7BCACB882630E12489BD5E049F217C8498287D768B4D0BF904BF0BE1C6340D18 |
| 2175 | 58C86EDCE81805640D4A87D5AE7155DF9F2092966CA7A1ACF9B04AD4ADFE7EFF | 2169 | C14229DE0AC87C1FB28EAF752A2C88FB5B80A4EA1066F11DD918A2FB2E18DBD8 |
| 2176 | 4FF711FC4D9E9CF66C395A26F25309BE09019E61F5B70C50BEF2EE54CCEDB425 | 2170 | 384E38D2B645EB843A019723C71FEA7C4D02621308D92FD72A10522EFB409D8B |
| 2177 | B9A0A84E2E142E4B388D3DD88062AA6FFD55B671AA4442011FD17EA9FA0B67E2 | 2171 | 9A5E51F4AA9D768ED428750A6F34FBFEF6FDBF163B13F6FF96450BC2DE22D65D |
| 2178 | D4A2BF06F00F5B90EB8B4318F026B9F3D7862266615E87A226A0BACB505E0FD3 | 2172 | F7F0F5223CFD29524C61D0070228ED1113C58F48FA3154E53E67567B46F7040F |
| 2179 | 2340134D25DA26A26EB4569D95B57DFFD5BCFE6CB99AD2CCE1B98C250A621F70 | 2173 | B03DAD476D4B4A2705ED9521BD22F48AE00AD101CD53BD79B7172ADBB6D4C4CD |
| 2180 | A5B45601163E7CBBC9FB212E7FC224C6C9B8B3AD91D68B5244428AE7309CE55C | 2174 | 951D9CB787F957A1177A7F967A3B867D48A74A0EFF9ACB491BAAB6C997896895 |
| 2181 | 1213620A6E7AEB379F5C2374A10948A21E307EB064D46BB725F6CCFD4F0BEDBF | 2175 | 2F3A1DCFFDC2D71659F916C1630ECE089BF7318201DAEE72972A8AFD0C69D5BE |
| 2182 | 13F46A187209D019FEB51E0743A145821281A3FD631CC2A4B1A26BD2A1260756 | 2176 | B5DBBF85ACF39AEEEB8CD634A58D4AD84A49E75E39A5799D53DDAACB7CC08310 |
| 2183 | 3B54198F049B25A82FC4A40E3253B0A9B96E9E5A8E6FA072BC0C4D4957F4FF35 | 2177 | 23D44AEEC34D256B1C6C208CF20E986B5F52A866FBE4221FF02A77459AA91933 |
| 2184 | 1C57C6511C9DF81D02BEEA475A63108A5C89DDFCEF769227899948AA28D761F3 | 2178 | 4DDA62FD7070BBA306D113FFE2F96090AD748C09470FEB4FFD0CF8C72EA68FB9 |
| 2185 | 233CB498C5178B8EF70CA1AE12602B5BB28D113B77E275D952EEFCA9111F921B | 2179 | 3F00F3F93A56DE5659A40ECAFEDF5E3CF327CBF8DAC7DF31F0F02EC416863D12 |
| 2186 | C8AC69D314A324B93B03C97DE285958FB13FCF5D4B2F9E855CE45345ED0D8E39 | 2180 | 2787C56399B9BE4AB5DEF7D7E185FF02521844F75C48D1ADEA4C0D8436B3A780 |
| 2187 | 5615922765C0CAA288969E056D81CAF8012E4DF8FC543DC0FD54E1B32529C054 | 2181 | 8A55EB846C5CFFFC5D207B0F269DB3DAA7E06FFFAD34ED5A49BFFE73CAA09B6D |
| 2188 | 862911D2061DAE5AC576AF98809CACF6A86405B0A83DBBE664917625AD60143D | 2182 | AF0C693F71CE69B77FC1378A3C4790CBE8B5546FFF134AE8CB103DD6376EF16E |
| 2189 | A22DDD3FC2419A51285E8774E5BE1632EC12E29B6805E54B168B1C003385A74D | 2183 | 03501532E3F725E58F36089E3718C635EF95FE9921EEDB08F0CFAEDDFBFB3336 |
| 2190 | 385865C5A46F79692553AF2792C11DBB6911E3FDB8CF3DD6F55D31E6C1F86D3B | 2184 | 517AE8ECA540F6918563EAB9D1B5E5BFFAAADC83D0867125E2050A05EF871ED8 |
| 2191 | 19B86B8EAC47837594EF0EEB73D8EE06BB39B77A40E5C47752A314FD837F09BA | 2185 | CD0AAACE7D95D37065EA0C92E46115A732F468AA43FF12337839C206157A96BF |
| 2192 | 5A84A5C73111B6AFD932B5B4A4E680428F4840AD627379E9E812730577AADE4F | 2186 | A8DFD01BFDF8E2D76E4D46C5B9AEF23193156FE4B535C6155F79149384737DB6 |
| 2193 | C96F1D16FB6D0BFA89779AA11708F81C9A5EEA31D608B2FA8898235219D82F81 | 2187 | BAFDB4DC69A64056EEE87A1186B137B6D9D394EB8811AADAE996D67EC403083A |
| 2194 | 1162F1DB9E2A85F397653B8A57D9E36380A70543A1492D217323D69E42278594 | 2188 | 86771A4CDF9AC65678A65DCF46CD1EA9CBE4C1D839CD7F166BA2CA8521F698FD |
| 2195 | B7F54368880E22CD2E2F3BF701DA9CC29DE0C62AB31BCDAE82A2F695C98FEE90 | 2189 | 4CDEF798D360867ADC4C8FD100DC3AB3B62C5BF2527A688D3DB498AB5F407879 |
| 2196 | EECA21BA77D17298F7E2DE6F74544B53CB85638E239EF670172951CC203F37DD | 2190 | 970F2EF1EEBDBC4521CFCBC3E621F992F3EAD3E9737976CDB56596E661129545 |
| 2197 | 51471D4727E6FA2098076D9177EB995C676E21AC27AD84B90DF5620FD9952A6B | 2191 | 2EBE036A72F668E809D454DACA709F2C0531CCB26910652CCBF94EFC3A4B3852 |
| 2198 | 637EA0337053F39A8101938A30F6B8E37D94D7FE31C980560519B6517155DED0 | 2192 | B144EB820877E7A55B33B3E9B2B1786729B0643517AD956A7A4779334D0A342A |
| 2199 | A419B6D36CBEB64AF00518300C4AC1B9AD4336C7B099651AFC70D68C624DFB3B | 2193 | 3DD38F70100854C0B3032397BCDA640CD12C985BB2B5835AA83D442166613350 |
| 2200 | 5A944675EA3ED1AE5FA7ADB63E5E0763F6BC4D4E83F8B1D1F355ACCB0F4869A0 | 2194 | BACB4CA9F706141A9E9EB3DFF314B1A82113CA28B74B6603D67AA2D15A36972B |
| 2201 | C29000EE68B8D3284D782874761908D83E461D247798A35BA1B4356C4869AAB2 | 2195 | 1D8B0057D3D8EB92A1809023EB95762577BD753193DCAF7021366943AFF53A8B |
| 2202 | 0263D440DFF69BF5ABE9362B1BFB8C5B6E6D8973AFDC4E76277104B8326EFE02 | 2196 | A9ECCB74BF27EE70B1D0B73078CA5CB5AACC1BEE0A61A75981F8A0A3253035FA |
| 2203 | B08A5D00A6FBF10413C2B8B3E2C1BFF9F235772014C39D48821097390F760062 | 2197 | 1D5D6A1D47DF111693DD9A1D35D9B865C06BD05A688B0D9BC285C0EBB1DF7B2F |
| 2204 | 03B12B90A7C766E19E6BA87211D33F2AF5F921F7387E42246E71EBE0470C0A61 | 2198 | 2CEA26CFF7583EFED470D4BF02CAE6E4CCFE5347F61F669BF8E82ECD2112E672 |
| 2205 | 2FBE7DC210AA55310FF8CAED5D089801DD513F6995F84D87CCCEC287B1A2E98C | 2199 | 86D10C529DDB600B5237C11BEE28BC3120A0E212E2ED4F52BDF6980675D7DE7C |
| 2206 | 958C180C6434CAC5514B8E0BDB98FD47ECB991F7687EA48BC5348C48C6231793 | 2200 | 89FBE11E19865B1C163EE5F4D410F95A434056202DB1BDD10B3A75FA3C091D5B |
| 2207 | D6A6AF77ADD045C90876876BCDDA1CD33A64CC745FA39E924D6CB69A26501BAD | 2201 | E3E2F888A6509E1755BFB39F9EE35AEACEDE970EAF42BBFB0D441BED621A8E20 |
| 2208 | 34DFD096F155ADE23EDE1D17394F19D4DA037740556124BE10A1CF66EBFC7CD9 | 2202 | F504AAB0F511661754B03BFBDEE9E5D704B1FFC70E429E97B8C5651C90044269 |
| 2209 | 093891E8C4C084B16B589A627B7807E2216E0E9E9E76E28AB4EB52E8121AB21B | 2203 | 58BB39683838446D49507DCB70AB0DEDEFB73F05E621BC7371D21465AC659AA8 |
| 2210 | 68EECA8901ACBAC21610C80BD3039902AB708A0C393EA723B8C0A42626C99BA9 | 2204 | 90786F8CF2A0B0ECA4B40774D7143F92F2B0A95417C475DA5308B5BDCEC67A74 |
| 2211 | F7B4E369F4DF12F9D8F5747BED03ABF2292FBA592F614468CEBE74BC3BA016AA | 2205 | A425CD76801FF2E115FA3A95818D088392C84FCBC00D3B3C7D683253414D4C5D |
| 2212 | 75CBD88BA886C0FCACACB6BB14B57CB27189B6716F58DADBA7F0D94D06CC3AB4 | 2206 | 74446BBFD130AC89A0C9B68BB1CD772A1BFE8776D0772ED8C00C13C8D0412D7B |
| 2213 | 41B9A6761B4F473624EB06346D2DD8C2F011BD9BD3BB17F9400E53083C924FAC | 2207 | 526A73A0E38885B79551DAC3E1060537C0EE8FFE574C4B9E8155E2CD83FD85BE |
| 2214 | 38B5457E6E2653DADF8AE603A45761A198B0E1C03CFAB17CC01C38F3FA36B17F | 2208 | 191BDD6ACAEE898A02717A9725196FA59E41FB45D2733CE77289FD178AF07D7A |
| 2215 | 64720594133B6994483BAC49C252F44AB1A80729ADD3C4D7A8E866694B1549BC | 2209 | FEF8D6BABC7DA5425A45AB8EF3C2E369432252E497B172A6FFD4D3DD957C0E26 |
| 2216 | CE77C1F1B8287F515DED9B124AABF35EEA5761C8D86289882D9D77AFA73B4EA1 | 2210 | 0D3D402EAD21FB3E404DB8082DF2ED2C300A0AEC0DA12B7FB571F415017D44E2 |
| 2217 | 1BD12F4AF1416F83F99F9F70FE1B43210ACE9E76C0E0137F2018B2E89543F1ED | 2211 | 57509A41CFC2284455635F50F06937D23699B43084728FCA9DD25A7264B9D1F4 |
| 2218 | B2C35DDCA5D68EF1641463D7B8378D195BABC1880DC6592FA2429A4FBC4DEB7C | 2212 | 2E086976B56237887470653AC62DE323911A64507B40DBF281BB060AE635F37D |
| 2219 | 67F1EAE1F0FCB79AD109EEF143B57C30CC105F65FDE1C80BAEA04282132BDA3C | 2213 | BB4F9EF7456EF62EAACAB52F0606DFA777D2965BF03D7CDA312AE654EBFA92C7 |
| 2220 | B48050A7267DEF7F3F48C2A83308B16320E15564171171F46EF2CDDB10AB209C | 2214 | 580B7C2A2E604389152704BDF3008ED2F58200D825D0F60C7BF39AF14816B2DA |
| 2221 | 4E7624373F4C6A49C566CE0B053667D12EFF5A434DDE23B32D0D3090318029CF | 2215 | 5738DE7338132B7E7E92424B7FDFB15D8E1EC176CBB7E15F3FA064CF04E357DC |
| 2222 | BA8A095C50BCF1F6B0504DFCFB70752A9C68ECDD82FF949C2A17822C8E3DD91F | 2216 | 72FDD1E8AF8079B1134EAE3E5CB6A7262994C71714691E8BD7CFF2676EA4D0C2 |
| 2223 | 15CF16B6CC6C8EF09178CC9111B5FA9D36278B47AA95D22D6959F7882B101F69 | 2217 | A5FCD6C622B3B34469E3B2FCD810AE0252B2814EB02C544B0458CF12DAACAC5F |
| 2224 | 435085BA043D7465E896C536867A71DD95B07486B0DD43061FE0D4AE86C3A476 | 2218 | 4A2E078844AC2AC74543F4763CDC6FC081073CD60E276AA6E7F1D948EFA02C23 |
| 2225 | C37DDA978A549D60F17212C0F0BFD0E5EE4881686280AD90FC6090C0207FCED9 | 2219 | 2FC1567CD952C837AA1ABD3E3077F5AA7F9986F01B0A9EE91C0EEA3895260CB6 |
| 2226 | C7D395F9BFC34591D1E73A55E7257753D2603D51B0861C11810A6B2129349511 | 2220 | 3B4EA5F58F8C8C23D42C81764E72399D2EDF40C8F18EFAF113AD16E753263943 |
| 2227 | B5AA65AA3F1191066CF75BA36421A46844BD99861F9F9F241C67979D51676C57 | 2221 | 55EEC4F01AA885DCBCDB7C9E251210AB2B9382EE45050CC1184F592BBD65D6FD |
| 2228 | 6D5F9C816AFAEFD24650564D8E2553A8535A2D4CC4C4C5C6D6108A9DA0D5AD91 | 2222 | 44D9EA6BC7583CA725A1DCD28EA77A085B0A47CFCF5A847C5D29C4F64F2A17DB |
| 2229 | EDA473D9BA0AA3313D850C749B3CB733FBB7B09670C6716B9856B9773D2EC073 | 2223 | BEAD7B3BA43BAF8548B65DFB4814135A2A789E7E76C978DEAE0138AF8A0AE4BD |
| 2230 | 036471AA470AA02DEFC681ED77568508AB6A3BACB821B77E90A94CAC3CFF436A | 2224 | B4D22A02C169BB0DA5215B2B91A10ED3A2A9797E5C5FBD11BB295B02C7498B13 |
| 2231 | C554E78721F7D5B16D70D131ABE62B6AB3CC687B1483A7A63A9563F4675295EA | 2225 | 6D90D8CD79D4606007D408E8D336D75D42519BACFB7164C2797F0E9FCD98F178 |
| 2232 | 78D3B2E73D08AC9056FAB8478A6F41E24E8904CD0C65C420C1808ED22BD4A42F | 2226 | D82372F263BAF8B2D1F185E549BA63428E2B8DBCCDD243AD605DD10666F367C2 |
| 2233 | F86A163D8F8C4FA298AE20293367796E5793A8F129676795ADDA26C3BAAEA0AF | 2227 | 3EB98C9157E068FCAB8D91AF9683EEE87A1158A562C911574136CFC172D50C4F |
| 2234 | 2A4A2525B889D45ACEA22616BFEC7FCDF17927C5233FBD73C3C58005C843D5BF | 2228 | 70BC388C728E821395579A081CC946F528CE6F3471B7615F67623F9138DF8FD0 |
| 2235 | 7AEE8D1E6B17FE8ABC9BC16A7FACCD47D6B6CEC06016D29AFC9F9706C3109225 | 2229 | CAADC4E42AEBF892B36AC169C716DDA724300E9378B809DC6739929C3108A812 |
| 2236 | FE7DD2CB5B7262A2D209B3AC7AE7B5999E5143D1ADE6F9FF55848878F5F1ED01 | 2230 | F9C116118E9AE1B066E1928A4A442CE02B2D3BFE18D406AAAC1603E754224AEE |
| 2237 | 879C62BC67853FC360480DEEB73694A6AE25C6B2B3DE9456D6FA372DF603352C | 2231 | 1B802E92CCDCDEF94BAA8955F389B7565AB67D73CED601FA7BFF438717EAD65B |
| 2238 | EF498A11D4DF3C441A685AE00CBAEACF603B40527A7BC5102F082B508A869498 | 2232 | 449941F0C87F048B9186C9C78A3D43A3D4C372B5F8DA74DAE6DD2A2816E44303 |
| 2239 | EE2741017999C5FD551668615F32AECF6008B8FFED14BA461B081C290C3E6C2C | 2233 | 790F04C13F08E0815B43FCD837A67BF4A2A86FECB6ED6FFA56018961A0C528FB |
| 2240 | 9D11342D1F4FAC2037FAA555BC213857242D72D971081B89ADFCF15B26E6229A | 2234 | 472971A8E4C47C974DE12133616F3CBBFA20CE57B572F751649D9AE64A61F271 |
| 2241 | A753773EB8F05BD2C47A53B6B98D6017848D115FF490F1270ED226A588E5A714 | 2235 | 0DDE783CF2509DFC2ED2CE7467574AAF79101D56D3D2664DDA30FC7DD5B5C6B7 |
| 2242 | 96E737DC61DF729881023D566D428DC4F534F2619326C2C2489D492E6483A322 | 2236 | 0BD084CA516A72E6D3F8B7FEDF0F11EF9CA594C2318EEA3CC266A2F4C2F2AC2C |
| 2243 | 4F93FD9A2582CFF04CB92BB84012A1217049A8EE353FEA7F6560A7EA329A0E16 | 2237 | AB1ABDC5F7419F46308865F1FA63CF2AF4AEBB8319372B3305AA052477ACD838 |
| 2244 | 52A6687FC795F57D0C9A1C54522D18B9A18BBF8A62CC93FAE2B98820149956BF | 2238 | 7A35218A6CD4A7C0ADE0C3F8B005D6E30C8A208A3518C1134DC34D0E64F804A4 |
| 2245 | C8D0069F84CDDBF10D87E2459E0FA6DF4475AEB659F0C89DD652F25ACC69F19E | 2239 | 258A995097F17642E97FE9CC38A34C250B8828B4FBA1840EECBD06D427FE7E10 |
| 2246 | 9095CE72CE55263AB14F075FB439D5FBF36BF5088312DEE7556E12C4852ADB07 | 2240 | 4EFAFEBBC934AA295E12F25D6FA3D277C7C88DA60D818A8A303364BD6B2C0288 |
| 2247 | FB99279C9465BF097FBAFAB6A381002ED4DE4797C61478E5A002C97E89BA81BA | 2241 | 6E94BD8E474F28BFB951BE4ABC493AB0EA6EFF110193105DF8E9CEAE1CE549D0 |
| 2248 | 2B9A50EA5A1FEE07DC11DB4611A1A7D24F97004E2867A807C508F17FCDD11E9B | 2242 | A907F7A7CF1AD20E121FA6547F93CC10D7957B36ACAF213EE436C92A00AB1A24 |
| 2249 | 91C9B72B563D938B38F392827AC23D05E414A3A1FE24199FE833CBF776E19E3C | 2243 | 540E535440938E748DAA6401133235D1CC74EC8FF80F9E297FB6C56C12B4E0A4 |
| 2250 | 9408C38FE23BC89E8310D49F866F0B6034564BB21238733744ACC21D6FEECCD7 | 2244 | D53AB28F11618F2C793F6EACB593E56B8370ED5CFF467B5FFF04AD11BC5A3AF0 |
| 2251 | E4AA08F377CFC6CBF44CAC348CABB8FE34A6C51F5AF753F0C67B1A18F524681F | 2245 | A6EF110B540CD2C87070FFCA3AA0776FF070C384BCDACB0FBD4921C06E24C8F0 |
| 2252 | 5E8053D13E460F59DEDC7EEF52CBB402C9E6A7988D07FA1928B1383D350E8A1E | 2246 | CE590D788FB8C1BCF9E083B4778818F92269C274B0CC6565E2D70FFFA2480381 |
| 2253 | E06C576D198E12BB84C1CBCE4F47A93B569DF88BDC595E5A182E65418CAE4399 | 2247 | 040C5CA012341D51427A59C3FC9B5121956B4323872E67BA499876052131B266 |
| 2254 | E2B76AD0A8A073BAFAB2DEA554065E5A3191809390E23FD16842391B03DEC4B1 | 2248 | C21F0B8B37902C7C3156FAEB668AE6A7851BC7AA62FE60D792B35B6A38183B23 |
| 2255 | 3FC005A829DDEE375728DC73B3E2DB901F97491B827D688B949A07F78B10535F | 2249 | E5FB11DBBAF1E60B0D9DF0E84B9EA6F1EA6C37B84736FE657F4A29E92F7DD89D |
| 2256 | 662143A7D1772FA1DBCDACBE5F3527424DC787D6B404CE9714179DC10BBFBD9F | 2250 | 3473C81FD7F595770BA69C91DAA3154425278D323C3E50A14FF72A02BF3820D6 |
| 2257 | C3E3DB0771D2C47D54473C15587342E8FE9190A6FB55CC0EDA521C73ED249D2C | 2251 | 6621B91A96A1D2F76710143D41C8305E02810780D868D822DC6056DFA4690F24 |
| 2258 | 927DD0BB776BF83492CD40DFA5514BA3986629B3B7B50BAC7351408A958CBBF3 | 2252 | 90BE5BB4F14902B97F5FB4CF31A6C8B346A76B95D82EEF610AAFF9F6B88E782C |
| 2259 | 8999CB05A73F244C1230391D6F89AF2A7ECC1755DA94C389305916CEBD43B233 | 2253 | F0E46DD18BD1CD53C92075AFEA0C1F0870DA52455847B22A638DABEA04C90ACF |
| 2260 | 88CBAFEFBFEDD7D54D00A9B88E1A391AAB951283F1BCD9E3AAED990F53BFA5BF | 2254 | 0D89E8345F118E5E26A3934AC0C0C9F1269946E17F1AF5759123CE2359B60ED6 |
| 2261 | 054DEBA1607F632C1F3D7AF66881600F84EC835F86663C12F02F084D419C8E1D | 2255 | 3FB22A23380A34DF818CDA8570B36B92C4634A80AA4ABEFFFE36865AFB384DA8 |
| 2262 | AA77E6B3B627BC87A41A4B42B1744F410AD59846D246592AA804212BA2F38867 | 2256 | 70E5CB4829052F8BEB962841C2030BBBF874EDEFE149EB8A38DE0ED59903FCBC |
| 2263 | A63E5EC0F71239113A3BB841435B80CAECA592F499755906A5F4D8255F003C9B | 2257 | 25788EFBB825265AFD7FF2F8D5F9A947EA94A368C52986E8640A6D6A11B14DFD |
| 2264 | 7E6CE9A6AD93B41203C0912D4603B39A9071F7473A5265958BEE4CBD6BA5870E | 2258 | CF435B2F1F7C168D1E9C7B84B2C2D9E235DC59799B99971FE9E6D9780EAC653C |
| 2265 | DE6307F6F32DE57998276F2D24D335305C3297C7B7CC3079845DF71FE32D093C | 2259 | 981FBDF083B949310FF20F7B383BD10737136E88B9D294677C7C63CC50A41AC1 |
| 2266 | 545FAA90BE7119E3AB68E116EF3814521FEBD30724A1A3BE3217367D4221C1A6 | 2260 | B4649631134034DB9FF76E0B19799396A232809A5BE397B63B528A0E860D38AD |
| 2267 | 3A042C0475116EC08951E0D413148A91B123166C569E22BCA891EBF87D6A2F5D | 2261 | A90BF0D4246F012E19CEABC74F21E2BD46FACF96D5F033B6023A98DA51653D59 |
| 2268 | C1E36AE701F0F5D78E7428AA902F84EE66A142D8B39A5F7EA6A85E1A000DD273 | 2262 | C306875AA02EDC3DB78060D72B0A00596BE36367A1681ECFEEFA447DB8DE6879 |
| 2269 | 86A48E2E0A836679744003B9825DC3F511512954C01A877F540C02B775B2D692 | 2263 | 18962C974B55038A8F67AA553ECD27C6C72D46CEADA75D68D7DACB40B063F9F7 |
| 2270 | 174EA54BF7C32F0DC93CC6E85EE8AAD0CD80B0D634B60B49DC1D0E55334C3470 | 2264 | 464401B0AE4CC61A1F55A7E40FBD0FEB890DD2FE36D9641E40BD2F6D20C54353 |
| 2271 | 54907964F269EA9840FC8F3D8A72DCD773ECC2EA26CD64D42693FCD2AD8EEDA5 | 2265 | C3B282E7F46D61EF3A41F8BCB31FA38EE2B99B671841DA2FAD644C11AE20B6F8 |
| 2272 | 7814FB8BF232E547D6783DAA15880758BC4ECD8C339C5C9E7A5847605C01B417 | 2266 | C7D5D99806643412273F874273FBD04C65F048D76086EA1156F07A47CA0FE349 |
| 2273 | 5B378E0F1263B72D03AD49EE0D2893ECAD56F672B33E1652A664E87C4771B4CB | 2267 | 391E906747C833320E84E18781C61DEA8FACB8D9DDF08D29E5983F2E1FDC8C72 |
| 2274 | D3555B66D9E8B85B118881EAE0F13DD82A2F7F7A74CF71D23A7D26A6FA19C2BB | 2268 | C200B63415529A45978010EA5C150BA9D70CF4F5799DA551A1CF7041A17DD5F4 |
| 2275 | 36D0B4E38237CA9D6268C55D9CCA670CF3AC1B045B30E500EB34D7406EA82B0E | 2269 | 153A868BD4B81A25551784E2A6EE42996F4D6CFAED97725C940C0FE9FFE0AA31 |
| 2276 | 0E876235556505BFAFDE2808C85978A2D04F50BF7FDF608670AA846A4434E80B | 2270 | FB2A32941E6C555FCF33B4B8E802C40B423599C8E88C6DF1AEEC28938FCF3BAB |
| 2277 | 7960737EB91FAA6BA784E34FC21AE584696A87250DE7D95B315D57FF73E15FB4 | 2271 | B6846C20D7EC7278A909073BD15BA75F470F82237BBFF6E7287A3771378A944C |
| 2278 | D124CBFFFD7A44764687B44F0470162CBCBD649F92C1FB7038D0A298CF33FECF | 2272 | 8CA6215F95437DCC9EA67F7A8721FA63614CA7BC5054EF5E5716FD4B7DEFDE48 |
| 2279 | 8F9554259983FE727592E644CCD32C3D821C1994D924813AA9AB08BC233BE5B4 | 2273 | FA8D2AF9F0B3BD92BF5F48A0DCC8406B0A940FBB5D35B56A49B7D4605A00F82D |
| 2280 | 50DC095DAC33090D55B8B7D7C0D2261D45A923366E0595F57AA2B7D7D8DC22CE | 2274 | 495AEBF2B413F19FE37AECED8060D5C32E9FE0EE9C0FB14045AE87D04B92A734 |
| 2281 | F7557E20252030E3C6D3980EE05700A59B8D620CF89083D6FF2E3E78E118B144 | 2275 | 0A35DBFFE12CB1ED64C924E4ADEE0AD635BFC70CCEC92FB07B1DE13E3D14B09C |
| 2282 | C92E2A6CDF33613CB1F74B59A6EA27E60C0156E287D05C5FA5EFCE3D4E864C39 | 2276 | 94590CE5F2F4B7D0C697F6F30E217ED09B35917714712B1182D687302770C205 |
| 2283 | CD87D636EE736F32A091F019B8E22429F50DCCA8B563A128F52C4157019DDC9B | 2277 | C3D17944AC1CC6AE2A023707E13DC1299256DB1211650F76A969D74F940CA580 |
| 2284 | 415524A99224287848685E353D92BE01BA661CE857F2C6172C81F5674044AE90 | 2278 | 6B499C40B76BA77D12688A8CF75E90A19AA3E368D6C99FCF8163450CAD6EA028 |
| 2285 | 5ECDA6944F31B45F77434DCB074658847C1AE424418E9E05611D016416891078 | 2279 | 84D4E9A5279013354D9C8D7FB8BCF3FD31433C822F0A412A3115B0E5E71079F6 |
| 2286 | 2225718C42E8CCC730F90CACC6B97116BF183800AF69F01922856FF6B9B280C5 | 2280 | 60C6BBE10380872D5D75F1BE9BB6DE755103E4B376458B97E0B50BF8932940AE |
| 2287 | 110DA3BA79447ABFE1B341AF90FDD05DC5FEBE1F2E7130A3D50AC68502C433DB | 2281 | F95D4002737966FF15A0B67C5B717AFF0E95B9F8F3498D7CCB538FF133A977EF |
| 2288 | 534ADD5562E501CE0A212E855F1AC4FC1FF8D5379C9701F8DB718194CD20462D | 2282 | 3471FCE3B83D5395F282D1982B2A6CDBD1C0DE44B3CA286E7E3F3E82B3561635 |
| 2289 | 155A814F7AE8F20892C88B0587EB52455276439C728B8AFB4ED2A51F1DB7F9B9 | 2283 | 6E462A4ABFAE8DE9331FEABA97AE7E7C93F0A30F4E3FDF4DFD66E5CBE234ADD8 |
| 2290 | D35663433BE337AD1714E0B1488B062CF24D1763CB9AEE6E6C393ADDE0EDDD91 | 2284 | 0AEFB354B80ADBDC128EAE328AF10FFDEF587B462A88F62F463D640C4F8898D4 |
| 2291 | 17EE00E06C4935F05F29CB4461DF3CEDEDCDC6434823CAD2B26FD43C24F6885B | 2285 | 1AAECA8EAE36639F6CC17B68BC1F1202F462BF7CB20CBD42FF2DEC420B4A7001 |
| 2292 | 37D6A22717992E0807E48E7876DA766F1B1CF264C70D0A3369B1F88D8E22023E | 2286 | 90A1F1499D49731DBC0C5DD4AADC4C32A7349219F25150117D733A0D51A7E51D |
| 2293 | D1E58747EBE1AE3C32120E87FE87B76F7CED4053270A7E89AEDED4B6F24A5E8D | 2287 | 88712AF2AC91D73A906CCFFAEA98C68DB967D96DA69E38A0406F2DD149B3E771 |
| 2294 | 4F0801E430D2104D6700AC07A211CBBC57A43AB300C631564453D826C5E97BDC | 2288 | 68D65EF65F99A4AD33BB5B15672E57433BC84C9023BA77997E82473C557D18A9 |
| 2295 | 3ED112A498A8398051492FE1B7A227AC36B18BDE5124A6650DFCE5846717DC0C | 2289 | 60F7064934EDDA12E614186A092930690D2DF97E1955FA75CA3CA077EC39A561 |
| 2296 | 2C388CC394AB0C398CEA7FC7FD2D7CA461D238AA6A0E22E1E507220225057BF5 | 2290 | 27FC8DCBF13DC183774AF61C2B1B65E5E4 |
| 2297 | C76EE2E2B58C865B229EF8C8A89F18355678937A3720C6A4C150CA3C124CEA6B | ||
| 2298 | AA1862B18FA26E7F9E082D5F620B17FE5E5E1F85303D1719AAE1C3CA1B9AD700 | ||
| 2299 | 05DBE2CBB952C6E97BFC43FE8AE9EEFD5B6CDF601C65761526A0AEEAB5CA3A91 | ||
| 2300 | FF7C201BCE050030628D6933DDE2F17C7A9D3D8C0E985004A1E21EEBDF785E8E | ||
| 2301 | 68EA0444A0C05DEEE046BB18A79C7ECFCBF5702B834459B78787D2A3513A0A39 | ||
| 2302 | 6CA03C25E2623919FA2B | ||
| 2303 | 0000000000000000000000000000000000000000000000000000000000000000 | 2291 | 0000000000000000000000000000000000000000000000000000000000000000 |
| 2304 | 0000000000000000000000000000000000000000000000000000000000000000 | 2292 | 0000000000000000000000000000000000000000000000000000000000000000 |
| 2305 | 0000000000000000000000000000000000000000000000000000000000000000 | 2293 | 0000000000000000000000000000000000000000000000000000000000000000 |
| @@ -2314,8 +2302,8 @@ TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi) | |||
| 2314 | @start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1 | 2302 | @start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1 |
| 2315 | 49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34 | 2303 | 49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34 |
| 2316 | 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44 | 2304 | 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44 |
| 2317 | 1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 1[30 2[30 1[30 | 2305 | 1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 4[30 1[30 30 |
| 2318 | 30 30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }42 | 2306 | 30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }41 |
| 2319 | 49.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36 | 2307 | 49.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36 |
| 2320 | 2[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14 | 2308 | 2[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14 |
| 2321 | 66.4176 /CMTI8 rf /Fd 134[43 43 59 43 45 32 32 34 1[45 | 2309 | 66.4176 /CMTI8 rf /Fd 134[43 43 59 43 45 32 32 34 1[45 |
| @@ -2338,10 +2326,10 @@ TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi) | |||
| 2338 | rf /Fi 133[31 37 37 51 37 39 27 28 28 37 39 35 39 59 | 2326 | rf /Fi 133[31 37 37 51 37 39 27 28 28 37 39 35 39 59 |
| 2339 | 20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35 3[53 72 | 2327 | 20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35 3[53 72 |
| 2340 | 53 53 51 39 52 1[48 55 53 65 44 55 1[25 53 55 46 48 54 | 2328 | 53 53 51 39 52 1[48 55 53 65 44 55 1[25 53 55 46 48 54 |
| 2341 | 51 50 53 6[20 1[35 4[35 35 35 1[35 20 24 20 55 35 27 | 2329 | 51 50 53 6[20 6[35 35 35 1[35 20 24 20 55 35 27 27 20 |
| 2342 | 27 20 2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont } | 2330 | 2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }70 |
| 2343 | 71 66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 | 2331 | 66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 61 |
| 2344 | 61 1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53 | 2332 | 1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53 |
| 2345 | 53 40[{ TeXf7b6d320Encoding ReEncodeFont }19 119.552 | 2333 | 53 40[{ TeXf7b6d320Encoding ReEncodeFont }19 119.552 |
| 2346 | /CMBX10 rf end | 2334 | /CMBX10 rf end |
| 2347 | %%EndProlog | 2335 | %%EndProlog |
| @@ -2354,7 +2342,7 @@ TeXDict begin | |||
| 2354 | %%Page: 1 1 | 2342 | %%Page: 1 1 |
| 2355 | TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45 | 2343 | TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45 |
| 2356 | b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h | 2344 | b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h |
| 2357 | (3.18\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y | 2345 | (3.21\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y |
| 2358 | Fi(Put)24 b(the)h(follo)n(wing)e(in)g(y)n(our)h Fg(~/.emacs)931 | 2346 | Fi(Put)24 b(the)h(follo)n(wing)e(in)g(y)n(our)h Fg(~/.emacs)931 |
| 2359 | 102 y Ff(1)-150 199 y Fg(\(autoload)38 b('org-mode)g("org")e("Org)h | 2347 | 102 y Ff(1)-150 199 y Fg(\(autoload)38 b('org-mode)g("org")e("Org)h |
| 2360 | (mode")g(t\))-150 268 y(\(autoload)h('org-diary)g("org")f("Org)f(mode)h | 2348 | (mode")g(t\))-150 268 y(\(autoload)h('org-diary)g("org")f("Org)f(mode)h |
| @@ -2391,10 +2379,10 @@ b(curren)n(t)f(heading)h(do)n(wn)f(one)g(lev)n(el)233 | |||
| 2391 | b Fg(M-RIGHT)-150 2768 y Fi(promote)24 b(curren)n(t)h(subtree)f(up)g | 2379 | b Fg(M-RIGHT)-150 2768 y Fi(promote)24 b(curren)n(t)h(subtree)f(up)g |
| 2392 | (one)g(lev)n(el)301 b Fg(M-S-LEFT)-150 2838 y Fi(demote)25 | 2380 | (one)g(lev)n(el)301 b Fg(M-S-LEFT)-150 2838 y Fi(demote)25 |
| 2393 | b(curren)n(t)f(subtree)h(do)n(wn)f(one)g(lev)n(el)248 | 2381 | b(curren)n(t)f(subtree)h(do)n(wn)f(one)g(lev)n(el)248 |
| 2394 | b Fg(M-S-RIGHT)-150 2935 y Fi(mo)n(v)n(e)24 b(subtree)h(up)932 | 2382 | b Fg(M-S-RIGHT)-150 2935 y Fi(mo)n(v)n(e)24 b(subtree/list)h(item)e(up) |
| 2395 | b Fg(M-S-UP)-150 3004 y Fi(mo)n(v)n(e)24 b(subtree)h(do)n(wn)848 | 2383 | 642 b Fg(M-S-UP)-150 3004 y Fi(mo)n(v)n(e)24 b(subtree/list)h(item)e |
| 2396 | b Fg(M-S-DOWN)-150 3074 y Fi(kill)23 b(subtree)1097 b | 2384 | (do)n(wn)558 b Fg(M-S-DOWN)-150 3074 y Fi(kill)23 b(subtree)1097 |
| 2397 | Fg(C-c)36 b(C-x)g(C-w)-150 3144 y Fi(cop)n(y)25 b(subtree)1052 | 2385 | b Fg(C-c)36 b(C-x)g(C-w)-150 3144 y Fi(cop)n(y)25 b(subtree)1052 |
| 2398 | b Fg(C-c)36 b(C-x)g(M-w)-150 3213 y Fi(y)n(ank)25 b(subtree)1046 | 2386 | b Fg(C-c)36 b(C-x)g(M-w)-150 3213 y Fi(y)n(ank)25 b(subtree)1046 |
| 2399 | b Fg(C-c)36 b(C-x)g(C-y)-150 3310 y Fi(arc)n(hiv)n(e)24 | 2387 | b Fg(C-c)36 b(C-x)g(C-y)-150 3310 y Fi(arc)n(hiv)n(e)24 |
| 2400 | b(subtree)976 b Fg(C-c)36 b($)-150 3380 y Fi(T)-6 b(o)24 | 2388 | b(subtree)976 b Fg(C-c)36 b($)-150 3380 y Fi(T)-6 b(o)24 |
| @@ -2408,7 +2396,7 @@ g(regexp)92 b Fg(C-c)36 b(/)-150 3851 y Fi(view)24 b(TODO's)e(in)i | |||
| 2408 | b(sparse)e(tree)i(with)e(all)g(deadlines)i(due)204 b | 2396 | b(sparse)e(tree)i(with)e(all)g(deadlines)i(due)204 b |
| 2409 | Fg(C-c)36 b(C-w)-150 3991 y Fi(time)24 b(sorted)g(view)g(of)f(curren)n | 2397 | Fg(C-c)36 b(C-w)-150 3991 y Fi(time)24 b(sorted)g(view)g(of)f(curren)n |
| 2410 | (t)h(org)g(\014le)367 b Fg(C-c)36 b(C-r)-150 4060 y Fi(agenda)25 | 2398 | (t)h(org)g(\014le)367 b Fg(C-c)36 b(C-r)-150 4060 y Fi(agenda)25 |
| 2411 | b(for)e(the)i(w)n(eek)823 b Fg(C-c)36 b(a)p Fi(1)-150 | 2399 | b(for)e(the)i(w)n(eek)823 b Fg(C-c)36 b(a)p Fi(2)-150 |
| 2412 | 4130 y(agenda)25 b(for)e(date)i(at)f(cursor)661 b Fg(C-c)36 | 2400 | 4130 y(agenda)25 b(for)e(date)i(at)f(cursor)661 b Fg(C-c)36 |
| 2413 | b(C-o)2046 -364 y Fh(TODO)i(Items)2046 -215 y Fi(rotate)25 | 2401 | b(C-o)2046 -364 y Fh(TODO)i(Items)2046 -215 y Fi(rotate)25 |
| 2414 | b(the)f(state)h(of)f(the)g(curren)n(t)g(item)354 b Fg(C-c)36 | 2402 | b(the)f(state)h(of)f(the)g(curren)n(t)g(item)354 b Fg(C-c)36 |
| @@ -2484,82 +2472,82 @@ y Fg(<vm:folder#id>)950 b Fi(VM)23 b(message)2046 4073 | |||
| 2484 | y Fg(<vm://myself@some.where)q(.org)q(/fo)q(lder)q(#id)q(>)105 | 2472 | y Fg(<vm://myself@some.where)q(.org)q(/fo)q(lder)q(#id)q(>)105 |
| 2485 | b Fi(VM)23 b(remote)2046 4143 y(W)-6 b(anderlust)25 b | 2473 | b Fi(VM)23 b(remote)2046 4143 y(W)-6 b(anderlust)25 b |
| 2486 | Fg(<wl:...>)h Fi(and)e(RMAIL)f Fg(<rmail:...>)k Fi(lik)n(e)c(VM)4242 | 2474 | Fg(<wl:...>)h Fi(and)e(RMAIL)f Fg(<rmail:...>)k Fi(lik)n(e)c(VM)4242 |
| 2487 | -364 y Fh(T)-10 b(ables)4242 -265 y Fd(Creating)25 b(a)i(table)4242 | 2475 | -364 y Fh(T)-10 b(ables)4242 -263 y Fd(Creating)25 b(a)i(table)4242 |
| 2488 | -181 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330 | 2476 | -178 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330 |
| 2489 | b Fg(M-x)36 b(org-table-create)4242 -111 y Fi(...)30 | 2477 | b Fg(M-x)36 b(org-table-create)4242 -108 y Fi(...)30 |
| 2490 | b(or)23 b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39 | 2478 | b(or)23 b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39 |
| 2491 | b(RET)d(|-)g(TAB)4242 -41 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table) | 2479 | b(RET)d(|-)g(TAB)4242 -39 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table) |
| 2492 | 741 b Fg(C-c)36 b(C-c)4242 28 y Fi(...)30 b(separator)24 | 2480 | 741 b Fg(C-c)36 b(C-c)4242 31 y Fi(...)30 b(separator)24 |
| 2493 | b(at)h(least)f(3)g(spaces)537 b Fg(C-3)36 b(C-c)g(C-c)4242 | 2481 | b(at)h(least)f(3)g(spaces)537 b Fg(C-3)36 b(C-c)g(C-c)4242 |
| 2494 | 113 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242 | 2482 | 116 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242 |
| 2495 | 197 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h | 2483 | 201 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h |
| 2496 | (cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 266 | 2484 | (cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 270 |
| 2497 | y(Outside)24 b(of)e(tables,)i(the)g(same)f(k)n(eys)h(ma)n(y)f(ha)n(v)n | 2485 | y(Outside)24 b(of)e(tables,)i(the)g(same)f(k)n(eys)h(ma)n(y)f(ha)n(v)n |
| 2498 | (e)h(other)g(functionalit)n(y)-6 b(.)4242 351 y Fd(Re-aligning)25 | 2486 | (e)h(other)g(functionalit)n(y)-6 b(.)4242 355 y Fd(Re-aligning)25 |
| 2499 | b(and)i(\014eld)h(motion)4242 435 y Fi(re-align)22 b(the)i(table)g | 2487 | b(and)i(\014eld)h(motion)4242 440 y Fi(re-align)22 b(the)i(table)g |
| 2500 | (without)g(mo)n(ving)g(the)g(cursor)70 b Fg(C-c)36 b(C-c)4242 | 2488 | (without)g(mo)n(ving)g(the)g(cursor)70 b Fg(C-c)36 b(C-c)4242 |
| 2501 | 505 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld) | 2489 | 510 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld) |
| 2502 | 311 b Fg(TAB)4242 574 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762 | 2490 | 311 b Fg(TAB)4242 579 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762 |
| 2503 | b Fg(S-TAB)4242 644 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f | 2491 | b Fg(S-TAB)4242 649 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f |
| 2504 | (next)h(ro)n(w)328 b Fg(RET)4242 728 y Fd(Ro)n(w)26 b(and)h(column)g | 2492 | (next)h(ro)n(w)328 b Fg(RET)4242 734 y Fd(Ro)n(w)26 b(and)h(column)g |
| 2505 | (editing)4242 812 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left) | 2493 | (editing)4242 819 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left) |
| 2506 | 544 b Fg(M-LEFT)4242 882 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f | 2494 | 544 b Fg(M-LEFT)4242 888 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f |
| 2507 | (column)g(righ)n(t)497 b Fg(M-RIGHT)4242 952 y Fi(kill)23 | 2495 | (column)g(righ)n(t)497 b Fg(M-RIGHT)4242 958 y Fi(kill)23 |
| 2508 | b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1022 | 2496 | b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1028 |
| 2509 | y Fi(insert)23 b(new)i(column)f(to)g(left)f(of)h(cursor)f(p)r(osition) | 2497 | y Fi(insert)23 b(new)i(column)f(to)g(left)f(of)h(cursor)f(p)r(osition) |
| 2510 | 104 b Fg(M-S-RIGHT)4242 1106 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f | 2498 | 104 b Fg(M-S-RIGHT)4242 1112 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f |
| 2511 | (ro)n(w)f(up)678 b Fg(M-UP)4242 1176 y Fi(mo)n(v)n(e)24 | 2499 | (ro)n(w)f(up)678 b Fg(M-UP)4242 1182 y Fi(mo)n(v)n(e)24 |
| 2512 | b(the)h(curren)n(t)f(ro)n(w)f(do)n(wn)594 b Fg(M-DOWN)4242 | 2500 | b(the)h(curren)n(t)f(ro)n(w)f(do)n(wn)594 b Fg(M-DOWN)4242 |
| 2513 | 1245 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h | 2501 | 1252 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h |
| 2514 | (line)291 b Fg(M-S-UP)4242 1315 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o) | 2502 | (line)291 b Fg(M-S-UP)4242 1322 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o) |
| 2515 | n(v)n(e)i(the)f(curren)n(t)g(ro)n(w)285 b Fg(M-S-DOWN)4242 | 2503 | n(v)n(e)i(the)f(curren)n(t)g(ro)n(w)285 b Fg(M-S-DOWN)4242 |
| 2516 | 1399 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h | 2504 | 1391 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h |
| 2517 | (curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1469 y | 2505 | (curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1461 y |
| 2518 | Fi(insert)23 b(horizon)n(tal)i(line)e(ab)r(o)n(v)n(e)i(the)g(curren)n | 2506 | Fi(insert)23 b(horizon)n(tal)i(line)e(ab)r(o)n(v)n(e)i(the)g(curren)n |
| 2519 | (t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1553 y Fd(Regions)4242 | 2507 | (t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1531 y Fi(sort)24 |
| 2520 | 1637 y Fi(cut)25 b(rectangular)f(region)758 b Fg(C-c)36 | 2508 | b(lines)f(in)g(region)867 b Fg(C-c)36 b(^)4242 1616 y |
| 2521 | b(C-x)g(C-w)4242 1707 y Fi(cop)n(y)25 b(rectangular)f(region)715 | 2509 | Fd(Regions)4242 1700 y Fi(cut)25 b(rectangular)f(region)758 |
| 2522 | b Fg(C-c)36 b(C-x)g(M-w)4242 1777 y Fi(paste)25 b(rectangular)f(region) | 2510 | b Fg(C-c)36 b(C-x)g(C-w)4242 1770 y Fi(cop)n(y)25 b(rectangular)f |
| 2523 | 695 b Fg(C-c)36 b(C-x)g(C-y)4242 1847 y Fi(\014ll)23 | 2511 | (region)715 b Fg(C-c)36 b(C-x)g(M-w)4242 1840 y Fi(paste)25 |
| 2524 | b(paragraph)h(across)g(selected)h(cells)399 b Fg(C-c)36 | 2512 | b(rectangular)f(region)695 b Fg(C-c)36 b(C-x)g(C-y)4242 |
| 2525 | b(C-q)4242 1931 y Fd(Calculations)4242 2015 y Fi(Except)31 | 2513 | 1910 y Fi(\014ll)23 b(paragraph)h(across)g(selected)h(cells)399 |
| 2526 | b(for)e(the)i(summation)f(commands,)h(these)g(need)g(the)g(Emacs)4242 | 2514 | b Fg(C-c)36 b(C-q)4242 1994 y Fd(Calculations)4242 2079 |
| 2527 | 2085 y(calc)24 b(pac)n(k)l(age)i(installed.)4242 2169 | 2515 | y Fi(These)24 b(need)h(the)f(Emacs)g(calc)g(pac)n(k)l(age)i(installed.) |
| 2528 | y(set)e(and)g(ev)l(al)g(column)g(form)n(ula)567 b Fg(C-c)36 | 2516 | 4242 2164 y(set)e(and)g(ev)l(al)g(column)g(form)n(ula)567 |
| 2529 | b(=)4242 2239 y Fi(set)24 b(and)g(ev)l(al)g(named-\014eld)h(form)n(ula) | 2517 | b Fg(C-c)36 b(=)4242 2234 y Fi(set)24 b(and)g(ev)l(al)g(named-\014eld)h |
| 2530 | 433 b Fg(C-u)36 b(C-c)g(=)4242 2308 y Fi(edit)24 b(form)n(ulas)f(in)g | 2518 | (form)n(ula)433 b Fg(C-u)36 b(C-c)g(=)4242 2303 y Fi(edit)24 |
| 2531 | (separate)i(bu\013er)473 b Fg(C-c)36 b(')4242 2378 y | 2519 | b(form)n(ulas)f(in)g(separate)i(bu\013er)473 b Fg(C-c)36 |
| 2532 | Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f(curren)n(t)g(line)96 | 2520 | b(')4242 2373 y Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f |
| 2533 | b Fg(C-c)36 b(*)4242 2448 y Fi(re-apply)23 b(all)g(stored)i(equations)g | 2521 | (curren)n(t)g(line)96 b Fg(C-c)36 b(*)4242 2443 y Fi(re-apply)23 |
| 2534 | (to)f(en)n(tire)g(table)101 b Fg(C-u)36 b(C-c)g(*)4242 | 2522 | b(all)g(stored)i(equations)g(to)f(en)n(tire)g(table)101 |
| 2535 | 2532 y(TAB)p Fi(,)30 b Fg(RET)f Fi(and)f Fg(C-c)37 b(C-c)28 | 2523 | b Fg(C-u)36 b(C-c)g(*)4242 2527 y(TAB)p Fi(,)30 b Fg(RET)f |
| 2536 | b Fi(trigger)h(automatic)g(recalculation)h(in)d(lines)4242 | 2524 | Fi(and)f Fg(C-c)37 b(C-c)28 b Fi(trigger)h(automatic)g(recalculation)h |
| 2537 | 2602 y(starting)d(with:)31 b Fg(|)36 b(#)f(|)p Fi(.)4242 | 2525 | (in)d(lines)4242 2597 y(starting)d(with:)31 b Fg(|)36 |
| 2538 | 2686 y(rotate)25 b(calculation)g(mark)e(through)i(#)e(*)h(!)31 | 2526 | b(#)f(|)p Fi(.)4242 2682 y(rotate)25 b(calculation)g(mark)e(through)i |
| 2539 | b(^)p 5487 2686 22 4 v 49 w($)115 b Fg(C-#)4242 2770 | 2527 | (#)e(*)h(!)31 b(^)p 5487 2682 22 4 v 49 w($)115 b Fg(C-#)4242 |
| 2540 | y Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in)354 | 2528 | 2767 y Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in) |
| 2541 | b Fg(C-c)36 b(?)4242 2840 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f(curren) | 2529 | 354 b Fg(C-c)36 b(?)4242 2836 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f |
| 2542 | n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 2924 | 2530 | (curren)n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 |
| 2543 | y Fi(cop)n(y)25 b(do)n(wn)f(with)g(incremen)n(t)625 b | 2531 | 2921 y Fi(cop)n(y)25 b(do)n(wn)f(with)g(incremen)n(t)625 |
| 2544 | Fg(S-RET)5857 2900 y Ff(4)4242 3008 y Fi(A)25 b(form)n(ula)f(can)i | 2532 | b Fg(S-RET)5857 2897 y Ff(4)4242 3005 y Fi(A)25 b(form)n(ula)f(can)i |
| 2545 | (also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)f(in)n(to)h(a)f | 2533 | (also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)f(in)n(to)h(a)f |
| 2546 | (\014eld)g(and)h(will)4242 3078 y(executed)31 b(b)n(y)e | 2534 | (\014eld)g(and)h(will)4242 3075 y(executed)31 b(b)n(y)e |
| 2547 | Fg(TAB)p Fi(,)h Fg(RET)g Fi(and)f Fg(C-c)36 b(C-c)p Fi(.)47 | 2535 | Fg(TAB)p Fi(,)h Fg(RET)g Fi(and)f Fg(C-c)36 b(C-c)p Fi(.)47 |
| 2548 | b(A)28 b(leading)h Fg(=)g Fi(in)n(tro)r(duces)h(a)4242 | 2536 | b(A)28 b(leading)h Fg(=)g Fi(in)n(tro)r(duces)h(a)4242 |
| 2549 | 3148 y(column)24 b(form)n(ula,)e Fg(:=)j Fi(a)e(named-\014eld)i(form)n | 2537 | 3145 y(column)24 b(form)n(ula,)e Fg(:=)j Fi(a)e(named-\014eld)i(form)n |
| 2550 | (ula.)4242 3232 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522 | 2538 | (ula.)4242 3230 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522 |
| 2551 | b Fg(=$1+$2)4242 3301 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r | 2539 | b Fg(=$1+$2)4242 3299 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r |
| 2552 | (eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3371 y Fi(...)30 | 2540 | (eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3369 y Fi(...)30 |
| 2553 | b(with)24 b(constan)n(ts)h(from)e(constan)n(ts.el)352 | 2541 | b(with)24 b(constan)n(ts)h(from)e(constan)n(ts.el)352 |
| 2554 | b Fg(=$1/$c/$cm)4242 3441 y Fi(sum)23 b(from)g(3rd)h(hline)f(ab)r(o)n | 2542 | b Fg(=$1/$c/$cm)4242 3439 y Fi(sum)23 b(from)g(3rd)h(hline)f(ab)r(o)n |
| 2555 | (v)n(e)i(to)f(here)411 b Fg(:=vsum\(&III\))4242 3511 | 2543 | (v)n(e)i(to)f(here)411 b Fg(:=vsum\(&III\))4242 3508 |
| 2556 | y Fi(apply)24 b(curren)n(t)g(column)g(form)n(ula)518 | 2544 | y Fi(apply)24 b(curren)n(t)g(column)g(form)n(ula)518 |
| 2557 | b Fg(=)4242 3595 y Fd(Miscellaneous)4242 3679 y Fi(toggle)25 | 2545 | b Fg(=)4242 3593 y Fd(Miscellaneous)4242 3678 y Fi(toggle)25 |
| 2558 | b(visibilit)n(y)d(of)i(v)n(ertical)g(lines)474 b Fg(C-c)36 | 2546 | b(visibilit)n(y)d(of)i(v)n(ertical)g(lines)474 b Fg(C-c)36 |
| 2559 | b(|)4242 3749 y Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370 | 2547 | b(|)4242 3748 y Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370 |
| 2560 | b Fg(M-x)36 b(org-table-export)4242 3819 y Fi(imp)r(ort)23 | 2548 | b Fg(M-x)36 b(org-table-export)4242 3817 y Fi(imp)r(ort)23 |
| 2561 | b(tab-separated)j(\014le)447 b Fg(M-x)36 b(org-table-import)4242 | 2549 | b(tab-separated)j(\014le)447 b Fg(M-x)36 b(org-table-import)4242 |
| 2562 | 3903 y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i | 2550 | 3902 y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i |
| 2563 | Fd(pac)n(k)-5 b(age)4242 3987 y Fi(insert)23 b(a)h(new)g | 2551 | Fd(pac)n(k)-5 b(age)4242 3987 y Fi(insert)23 b(a)h(new)g |
| 2564 | Fg(table.el)i Fi(table)582 b Fg(C-c)36 b(~)4242 4057 | 2552 | Fg(table.el)i Fi(table)582 b Fg(C-c)36 b(~)4242 4057 |
| 2565 | y Fi(recognize)25 b(existing)f(table.el)g(table)474 b | 2553 | y Fi(recognize)25 b(existing)f(table.el)g(table)474 b |
| @@ -2569,65 +2557,67 @@ end | |||
| 2569 | %%Page: 2 2 | 2557 | %%Page: 2 2 |
| 2570 | TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45 | 2558 | TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45 |
| 2571 | b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h | 2559 | b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h |
| 2572 | (3.18\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150 | 2560 | (3.21\))-150 -46 y Fh(Timeline)37 b(and)g(Agenda)-150 |
| 2573 | 120 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458 | 2561 | 101 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458 |
| 2574 | b Fg(C-c)36 b(C-r)-150 190 y Fi(...)30 b(include)24 b(past)h(dates)793 | 2562 | b Fg(C-c)36 b(C-r)-150 170 y Fi(...)30 b(include)24 b(past)h(dates)793 |
| 2575 | b Fg(C-u)36 b(C-c)g(C-r)-150 288 y Fi(add)24 b(curren)n(t)g(\014le)g | 2563 | b Fg(C-u)36 b(C-c)g(C-r)-150 267 y Fi(add/mo)n(v)n(e)25 |
| 2576 | (to)g(y)n(our)g(agenda)483 b Fg(C-c)36 b([)-150 358 y | 2564 | b(curren)n(t)f(\014le)g(to)g(fron)n(t)g(of)f(agenda)197 |
| 2577 | Fi(remo)n(v)n(e)24 b(curren)n(t)g(\014le)g(from)f(y)n(our)g(agenda)299 | 2565 | b Fg(C-c)36 b([)-150 336 y Fi(remo)n(v)n(e)24 b(curren)n(t)g(\014le)g |
| 2578 | b Fg(C-c)36 b(])-150 438 y Fi(compile)24 b(agenda)h(for)e(the)h(curren) | 2566 | (from)f(y)n(our)g(agenda)299 b Fg(C-c)36 b(])-150 406 |
| 2579 | n(t)g(w)n(eek)320 b Fg(C-c)36 b(a)1466 415 y Ff(2)-150 | 2567 | y Fi(cycle)24 b(through)h(agenda)g(\014le)f(list)551 |
| 2580 | 508 y Fi(agenda)25 b(for)e(date)i(at)f(cursor)661 b Fg(C-c)36 | 2568 | b Fg(C-,)-150 487 y Fi(compile)24 b(agenda)h(for)e(the)h(curren)n(t)g |
| 2581 | b(C-o)-150 641 y Fi(T)-6 b(o)24 b(set)g(category)h(for)e(curren)n(t)h | 2569 | (w)n(eek)320 b Fg(C-c)36 b(a)1466 463 y Ff(2)-150 556 |
| 2582 | (\014le,)g(add)g(line)1082 617 y Ff(3)1119 641 y Fi(:)-150 | 2570 | y Fi(agenda)25 b(for)e(date)i(at)f(cursor)661 b Fg(C-c)36 |
| 2583 | 715 y Fg(#+CATEGORY:)38 b(MyCateg)-150 814 y Fd(Commands)26 | 2571 | b(C-o)-150 687 y Fi(T)-6 b(o)24 b(set)g(category)h(for)e(curren)n(t)h |
| 2572 | (\014le,)g(add)g(line)1082 663 y Ff(3)1119 687 y Fi(:)-150 | ||
| 2573 | 759 y Fg(#+CATEGORY:)38 b(MyCateg)-150 856 y Fd(Commands)26 | ||
| 2584 | b(a)n(v)-5 b(ailable)25 b(in)i(an)g(agenda)g(bu\013er)-150 | 2574 | b(a)n(v)-5 b(ailable)25 b(in)i(an)g(agenda)g(bu\013er)-150 |
| 2585 | 912 y Fi(The)g(agenda)h(bu\013er)f(is)f(electric:)38 | 2575 | 952 y Fi(The)g(agenda)h(bu\013er)f(is)f(electric:)38 |
| 2586 | b(single)26 b(k)n(ey)i(presses)e(execute)j(com-)-150 | 2576 | b(single)26 b(k)n(ey)i(presses)e(execute)j(com-)-150 |
| 2587 | 982 y(mands.)-150 1080 y Fd(View)e(org)f(\014le)-150 | 2577 | 1022 y(mands.)-150 1118 y Fd(View)e(org)f(\014le)-150 |
| 2588 | 1178 y Fi(sho)n(w)e(original)f(lo)r(cation)h(of)g(item)524 | 2578 | 1214 y Fi(sho)n(w)e(original)f(lo)r(cation)h(of)g(item)524 |
| 2589 | b Fg(SPC)-150 1248 y Fi(...)30 b(also)24 b(a)n(v)l(ailable)g(with)781 | 2579 | b Fg(SPC)-150 1284 y Fi(...)30 b(also)24 b(a)n(v)l(ailable)g(with)781 |
| 2590 | b Fg(mouse-3)-150 1318 y Fi(sho)n(w)24 b(and)g(recen)n(ter)h(windo)n(w) | 2580 | b Fg(mouse-3)-150 1353 y Fi(sho)n(w)24 b(and)g(recen)n(ter)h(windo)n(w) |
| 2591 | 626 b Fg(l)-150 1388 y Fi(goto)25 b(original)e(lo)r(cation)h(in)g | 2581 | 626 b Fg(l)-150 1423 y Fi(goto)25 b(original)e(lo)r(cation)h(in)g |
| 2592 | (other)g(windo)n(w)260 b Fg(TAB)-150 1457 y Fi(...)30 | 2582 | (other)g(windo)n(w)260 b Fg(TAB)-150 1493 y Fi(...)30 |
| 2593 | b(also)24 b(a)n(v)l(ailable)g(with)781 b Fg(mouse-2)-150 | 2583 | b(also)24 b(a)n(v)l(ailable)g(with)781 b Fg(mouse-2)-150 |
| 2594 | 1527 y Fi(goto)25 b(original)e(lo)r(cation,)h(delete)h(other)f(windo)n | 2584 | 1563 y Fi(goto)25 b(original)e(lo)r(cation,)h(delete)h(other)f(windo)n |
| 2595 | (ws)91 b Fg(RET)-150 1597 y Fi(toggle)25 b(follo)n(w-mo)r(de)861 | 2585 | (ws)91 b Fg(RET)-150 1632 y Fi(toggle)25 b(follo)n(w-mo)r(de)861 |
| 2596 | b Fg(f)-150 1695 y Fd(Change)27 b(displa)n(y)-150 1794 | 2586 | b Fg(f)-150 1729 y Fd(Change)27 b(displa)n(y)-150 1825 |
| 2597 | y Fi(delete)e(other)f(windo)n(ws)791 b Fg(o)-150 1863 | 2587 | y Fi(delete)e(other)f(windo)n(ws)791 b Fg(o)-150 1895 |
| 2598 | y Fi(switc)n(h)24 b(to)g(w)n(eekly)h(view)767 b Fg(w)-150 | 2588 | y Fi(switc)n(h)24 b(to)g(w)n(eekly)h(view)767 b Fg(w)-150 |
| 2599 | 1933 y Fi(switc)n(h)24 b(to)g(daily)g(view)822 b Fg(d)-150 | 2589 | 1964 y Fi(switc)n(h)24 b(to)g(daily)g(view)822 b Fg(d)-150 |
| 2600 | 2003 y Fi(toggle)25 b(inclusion)e(of)h(diary)f(en)n(tries)473 | 2590 | 2034 y Fi(toggle)25 b(inclusion)e(of)h(diary)f(en)n(tries)473 |
| 2601 | b Fg(D)-150 2072 y Fi(toggle)25 b(time)f(grid)f(for)g(daily)g(sc)n | 2591 | b Fg(D)-150 2104 y Fi(toggle)25 b(time)f(grid)f(for)g(daily)g(sc)n |
| 2602 | (hedule)388 b Fg(g)-150 2142 y Fi(refresh)23 b(agenda)i(bu\013er)f | 2592 | (hedule)388 b Fg(g)-150 2174 y Fi(refresh)23 b(agenda)i(bu\013er)f |
| 2603 | (with)g(an)n(y)g(c)n(hanges)239 b Fg(r)-150 2212 y Fi(displa)n(y)24 | 2593 | (with)g(an)n(y)g(c)n(hanges)239 b Fg(r)-150 2243 y Fi(displa)n(y)24 |
| 2604 | b(the)g(follo)n(wing)f Fg(org-agenda-ndays)221 b(RIGHT)-150 | 2594 | b(the)g(follo)n(wing)f Fg(org-agenda-ndays)221 b(RIGHT)-150 |
| 2605 | 2282 y Fi(displa)n(y)24 b(the)g(previous)g Fg(org-agenda-ndays)238 | 2595 | 2313 y Fi(displa)n(y)24 b(the)g(previous)g Fg(org-agenda-ndays)238 |
| 2606 | b(LEFT)-150 2351 y Fi(goto)25 b(to)r(da)n(y)1110 b Fg(.)-150 | 2596 | b(LEFT)-150 2383 y Fi(goto)25 b(to)r(da)n(y)1110 b Fg(.)-150 |
| 2607 | 2450 y Fd(Remote)27 b(editing)-150 2548 y Fi(digit)d(argumen)n(t)984 | 2597 | 2479 y Fd(Remote)27 b(editing)-150 2575 y Fi(digit)d(argumen)n(t)984 |
| 2608 | b Fg(0-9)-150 2646 y Fi(c)n(hange)25 b(state)g(of)f(curren)n(t)g(TODO)f | 2598 | b Fg(0-9)-150 2671 y Fi(c)n(hange)25 b(state)g(of)f(curren)n(t)g(TODO)f |
| 2609 | (item)333 b Fg(t)-150 2716 y Fi(set)24 b(priorit)n(y)f(of)g(curren)n(t) | 2599 | (item)333 b Fg(t)-150 2741 y Fi(set)24 b(priorit)n(y)f(of)g(curren)n(t) |
| 2610 | i(item)612 b Fg(p)-150 2798 y Fi(raise)23 b(priorit)n(y)g(of)g(curren)n | 2600 | i(item)612 b Fg(p)-150 2823 y Fi(raise)23 b(priorit)n(y)g(of)g(curren)n |
| 2611 | (t)i(item)557 b Fg(S-UP)1430 2775 y Ff(4)-150 2879 y | 2601 | (t)i(item)557 b Fg(S-UP)1430 2800 y Ff(4)-150 2904 y |
| 2612 | Fi(lo)n(w)n(er)23 b(priorit)n(y)g(of)h(curren)n(t)g(item)538 | 2602 | Fi(lo)n(w)n(er)23 b(priorit)n(y)g(of)h(curren)n(t)g(item)538 |
| 2613 | b Fg(S-DOWN)1500 2855 y Ff(4)-150 2949 y Fi(displa)n(y)24 | 2603 | b Fg(S-DOWN)1500 2880 y Ff(4)-150 2974 y Fi(displa)n(y)24 |
| 2614 | b(w)n(eigh)n(ted)h(priorit)n(y)e(of)g(curren)n(t)h(item)189 | 2604 | b(w)n(eigh)n(ted)h(priorit)n(y)e(of)g(curren)n(t)h(item)189 |
| 2615 | b Fg(P)-150 3058 y Fi(c)n(hange)25 b(timestamp)g(to)f(one)g(da)n(y)h | 2605 | b Fg(P)-150 3080 y Fi(c)n(hange)25 b(timestamp)g(to)f(one)g(da)n(y)h |
| 2616 | (earlier)315 b Fg(S-LEFT)1500 3034 y Ff(4)-150 3138 y | 2606 | (earlier)315 b Fg(S-LEFT)1500 3057 y Ff(4)-150 3161 y |
| 2617 | Fi(c)n(hange)25 b(timestamp)g(to)f(one)g(da)n(y)h(later)367 | 2607 | Fi(c)n(hange)25 b(timestamp)g(to)f(one)g(da)n(y)h(later)367 |
| 2618 | b Fg(S-RIGHT)1535 3115 y Ff(4)-150 3208 y Fi(c)n(hange)25 | 2608 | b Fg(S-RIGHT)1535 3137 y Ff(4)-150 3231 y Fi(c)n(hange)25 |
| 2619 | b(timestamp)g(to)f(to)r(da)n(y)598 b Fg(>)-150 3306 y | 2609 | b(timestamp)g(to)f(to)r(da)n(y)598 b Fg(>)-150 3327 y |
| 2620 | Fi(insert)23 b(new)i(en)n(try)f(in)n(to)g(diary)612 b | 2610 | Fi(insert)23 b(new)i(en)n(try)f(in)n(to)g(diary)612 b |
| 2621 | Fg(i)-150 3405 y Fd(Calendar)26 b(commands)-150 3503 | 2611 | Fg(i)-150 3423 y Fd(Calendar)26 b(commands)-150 3519 |
| 2622 | y Fi(\014nd)e(agenda)h(cursor)f(date)g(in)g(calendar)350 | 2612 | y Fi(\014nd)e(agenda)h(cursor)f(date)g(in)g(calendar)350 |
| 2623 | b Fg(c)-150 3573 y Fi(compute)25 b(agenda)g(for)e(calendar)i(cursor)e | 2613 | b Fg(c)-150 3589 y Fi(compute)25 b(agenda)g(for)e(calendar)i(cursor)e |
| 2624 | (date)180 b Fg(c)-150 3642 y Fi(sho)n(w)24 b(phases)g(of)f(the)i(mo)r | 2614 | (date)180 b Fg(c)-150 3659 y Fi(sho)n(w)24 b(phases)g(of)f(the)i(mo)r |
| 2625 | (on)669 b Fg(M)-150 3712 y Fi(sho)n(w)24 b(sunrise/sunset)g(times)636 | 2615 | (on)669 b Fg(M)-150 3728 y Fi(sho)n(w)24 b(sunrise/sunset)g(times)636 |
| 2626 | b Fg(S)-150 3782 y Fi(sho)n(w)24 b(holida)n(ys)1014 b | 2616 | b Fg(S)-150 3798 y Fi(sho)n(w)24 b(holida)n(ys)1014 b |
| 2627 | Fg(H)-150 3852 y Fi(con)n(v)n(ert)25 b(date)g(to)f(other)g(calendars) | 2617 | Fg(H)-150 3868 y Fi(con)n(v)n(ert)25 b(date)g(to)f(other)g(calendars) |
| 2628 | 478 b Fg(C)-150 3950 y Fd(Quit)27 b(and)g(Exit)-150 4048 | 2618 | 478 b Fg(C)-150 3964 y Fd(Quit)27 b(and)g(Exit)-150 4060 |
| 2629 | y Fi(quit)d(agenda,)h(remo)n(v)n(e)f(agenda)h(bu\013er)376 | 2619 | y Fi(quit)d(agenda,)h(remo)n(v)n(e)f(agenda)h(bu\013er)376 |
| 2630 | b Fg(q)-150 4118 y Fi(exit)24 b(agenda,)h(remo)n(v)n(e)f(all)f(agenda)i | 2620 | b Fg(q)-150 4130 y Fi(exit)24 b(agenda,)h(remo)n(v)n(e)f(all)f(agenda)i |
| 2631 | (bu\013ers)258 b Fg(x)2046 -364 y Fh(Exp)s(orting)2046 | 2621 | (bu\013ers)258 b Fg(x)2046 -364 y Fh(Exp)s(orting)2046 |
| 2632 | -229 y Fi(Exp)r(orting)32 b(creates)g(\014les)g(with)f(extensions)i | 2622 | -229 y Fi(Exp)r(orting)32 b(creates)g(\014les)g(with)f(extensions)i |
| 2633 | Fc(.txt)k Fi(and)32 b Fc(.html)38 b Fi(in)31 b(the)2046 | 2623 | Fc(.txt)k Fi(and)32 b Fc(.html)38 b Fi(in)31 b(the)2046 |
| @@ -2642,8 +2632,8 @@ b(arg)g(sets)g(n)n(b.)31 b(of)23 b(headline)i(lev)n(els,)e(e.g.)182 | |||
| 2642 | b Fg(C-3)36 b(C-c)g(C-x)g(h)2046 306 y Fi(exp)r(ort)25 | 2632 | b Fg(C-3)36 b(C-c)g(C-x)g(h)2046 306 y Fi(exp)r(ort)25 |
| 2643 | b(as)e(iCalendar)h(\014le)718 b Fg(C-c)36 b(C-x)g(i)2046 | 2633 | b(as)e(iCalendar)h(\014le)718 b Fg(C-c)36 b(C-x)g(i)2046 |
| 2644 | 376 y Fi(exp)r(ort)25 b(all)e(agenda)i(\014les)e(as)h(iCalendar)f | 2634 | 376 y Fi(exp)r(ort)25 b(all)e(agenda)i(\014les)e(as)h(iCalendar)f |
| 2645 | (\014les)212 b Fg(C-c)36 b(C-x)g(C-i)2046 445 y Fi(compine)24 | 2635 | (\014les)212 b Fg(C-c)36 b(C-x)g(C-i)2046 445 y Fi(com)n(bine)24 |
| 2646 | b(all)f(agenda)j(\014les)d(to)h(single)g(iCal)f(\014le)161 | 2636 | b(all)f(agenda)j(\014les)d(to)h(single)g(iCal)f(\014le)163 |
| 2647 | b Fg(C-c)36 b(C-x)g(C-c)2046 538 y Fi(insert)23 b(template)j(of)d(exp)r | 2637 | b Fg(C-c)36 b(C-x)g(C-c)2046 538 y Fi(insert)23 b(template)j(of)d(exp)r |
| 2648 | (ort)h(options)423 b Fg(C-c)36 b(C-x)g(t)2046 632 y Fi(toggle)25 | 2638 | (ort)h(options)423 b Fg(C-c)36 b(C-x)g(t)2046 632 y Fi(toggle)25 |
| 2649 | b(\014xed)f(width)g(for)f(en)n(try)h(or)g(region)295 | 2639 | b(\014xed)f(width)g(for)f(en)n(try)h(or)g(region)295 |
| @@ -2760,7 +2750,7 @@ b Fi(with)g(the)h(cur-)4242 3574 y(sor)h(still)g(in)g(a)h(line)f(to)h | |||
| 2760 | Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838 | 2750 | Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838 |
| 2761 | 3768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21 | 2751 | 3768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21 |
| 2762 | b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826 | 2752 | b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826 |
| 2763 | y(v3.18)h(for)h(Org-Mo)r(de)e(3.18,)i(2005)4912 3882 | 2753 | y(v3.21)h(for)h(Org-Mo)r(de)e(3.21,)i(2005)4912 3882 |
| 2764 | y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g | 2754 | y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g |
| 2765 | (design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242 | 2755 | (design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242 |
| 2766 | 4022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e | 2756 | 4022 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 96261a7fc2d..33bd637bab0 100644 --- a/etc/orgcard.tex +++ b/etc/orgcard.tex | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | % Reference Card for Org Mode 3.20 | 1 | % Reference Card for Org Mode 3.21 |
| 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{3.20} | 61 | \def\orgversionnumber{3.21} |
| 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 |
| @@ -313,8 +313,8 @@ Put the following in your \kbd{~/.emacs}$^1$ | |||
| 313 | \key{promote current subtree up one level}{M-S-LEFT} | 313 | \key{promote current subtree up one level}{M-S-LEFT} |
| 314 | \key{demote current subtree down one level}{M-S-RIGHT} | 314 | \key{demote current subtree down one level}{M-S-RIGHT} |
| 315 | 315 | ||
| 316 | \key{move subtree up}{M-S-UP} | 316 | \key{move subtree/list item up}{M-S-UP} |
| 317 | \key{move subtree down}{M-S-DOWN} | 317 | \key{move subtree/list item down}{M-S-DOWN} |
| 318 | \key{kill subtree}{C-c C-x C-w} | 318 | \key{kill subtree}{C-c C-x C-w} |
| 319 | \key{copy subtree}{C-c C-x M-w} | 319 | \key{copy subtree}{C-c C-x M-w} |
| 320 | \key{yank subtree}{C-c C-x C-y} | 320 | \key{yank subtree}{C-c C-x C-y} |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3a9e3f9c83d..00797a5140e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,465 @@ | |||
| 1 | 2005-12-01 Nick Roberts <nickrob@snap.net.nz> | ||
| 2 | |||
| 3 | * progmodes/gdb-ui.el (gdb-ann3): Bind mouse-2 to gdb-mouse-until | ||
| 4 | in the margin also. | ||
| 5 | (gdb-breakpoints-mode-map): Use D instead of d for | ||
| 6 | gdb-delete-breakpoint. | ||
| 7 | (gdb-get-frame-number): Require a number to match on. | ||
| 8 | (gdb-threads-mode-map): Add follow-link binding. | ||
| 9 | |||
| 10 | 2005-11-30 Jason Rumney <jasonr@gnu.org> | ||
| 11 | |||
| 12 | * isearch.el (isearch-mode-map): Avoid exiting search on | ||
| 13 | language-change event. | ||
| 14 | |||
| 15 | 2005-11-30 Romain Francoise <romain@orebokech.com> | ||
| 16 | |||
| 17 | * speedbar.el (speedbar-default-position): New defcustom. | ||
| 18 | (speedbar-frame-reposition-smartly): Use it. | ||
| 19 | |||
| 20 | * dframe.el (dframe-reposition-frame-emacs): Fix position | ||
| 21 | computation for 'left location. | ||
| 22 | Update copyright year. | ||
| 23 | |||
| 24 | 2005-11-30 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 25 | |||
| 26 | * help.el (help-map): Move initialization into declaration. | ||
| 27 | |||
| 28 | * emacs-lisp/autoload.el (make-autoload): Handle defgroup specially. | ||
| 29 | |||
| 30 | * help-fns.el (help-argument-name): Don't autoload. | ||
| 31 | It's useless and triggers a bug in cus-dep.el causing ldefs-boot | ||
| 32 | to be re-loaded when customizing the `help' group. | ||
| 33 | |||
| 34 | 2005-11-30 John Paul Wallington <jpw@gnu.org> | ||
| 35 | |||
| 36 | * help-fns.el (describe-function-1): Fill arglist output. | ||
| 37 | |||
| 38 | 2005-11-30 Kim F. Storm <storm@cua.dk> | ||
| 39 | |||
| 40 | * emulation/cua-rect.el (cua--rectangle-overlays): Make permanent-local. | ||
| 41 | (cua--rectangle-post-command): Cleanup overlays and deactivate mark | ||
| 42 | after revert-buffer (or anything else which kills all local variables). | ||
| 43 | |||
| 44 | * apropos.el (apropos-parse-pattern): Doc fix. | ||
| 45 | Set apropos-regexp directly, rather than expecting callers to do so. | ||
| 46 | (apropos-command, apropos, apropos-value, apropos-documentation): | ||
| 47 | Simplify calls to apropos-parse-pattern. | ||
| 48 | |||
| 49 | 2005-11-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 50 | |||
| 51 | * hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer) | ||
| 52 | (hi-lock-face-phrase-buffer): Use hi-yellow face. | ||
| 53 | (hi-lock-write-interactive-patterns): Use comment-region. | ||
| 54 | |||
| 55 | * longlines.el (longlines-mode): Add mail-setup-hook. | ||
| 56 | |||
| 57 | * mail/mailheader.el, mail/sendmail.el: Revert 2005-11-17 changes. | ||
| 58 | |||
| 59 | * simple.el (sendmail-user-agent-compose, next-line): | ||
| 60 | Conditionally use hard-newline. | ||
| 61 | |||
| 62 | 2005-11-29 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 63 | |||
| 64 | * international/latexenc.el (latex-inputenc-coding-alist): | ||
| 65 | Reword doc string. | ||
| 66 | |||
| 67 | 2005-11-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 68 | |||
| 69 | * help.el (describe-key-briefly, describe-key): Recognize default | ||
| 70 | bindings. | ||
| 71 | |||
| 72 | 2005-11-29 Romain Francoise <romain@orebokech.com> | ||
| 73 | |||
| 74 | * view.el (view-inhibit-help-message): New defcustom. | ||
| 75 | (view-mode-enter): Use it. | ||
| 76 | |||
| 77 | 2005-11-29 Michael Kifer <kifer@cs.stonybrook.edu> | ||
| 78 | |||
| 79 | * ediff-wind (ediff-setup-control-frame, ediff-make-wide-display): | ||
| 80 | Preserve user position. | ||
| 81 | |||
| 82 | 2005-11-28 Luc Teirlinck <teirllm@auburn.edu> | ||
| 83 | |||
| 84 | * font-lock.el: Throw error if facemenu is not loaded to prevent | ||
| 85 | accidental change of loading order in loadup.el. (Suggested by RMS.) | ||
| 86 | |||
| 87 | * loadup.el: Add comment explaining why facemenu must be loaded | ||
| 88 | before font-lock. | ||
| 89 | |||
| 90 | 2005-11-28 Jay Belanger <belanger@truman.edu> | ||
| 91 | |||
| 92 | * calc/calc.el: Change global keybinding for calc-dispatch to "\C-x*". | ||
| 93 | (calc-dispatch-map): Add more keys for `calc-same-interface'. | ||
| 94 | |||
| 95 | * calc/calc-misc.el (calc-dispatch-help): Update docstring. | ||
| 96 | |||
| 97 | * calc/calc-embed.el (calc-do-embedded): Update help message. | ||
| 98 | |||
| 99 | * calc/calc-prog.el (calc-user-define-invokation): Update help message. | ||
| 100 | |||
| 101 | 2005-11-28 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 102 | |||
| 103 | * log-edit.el (log-edit-insert-cvs-rcstemplate): Ignore stderr. | ||
| 104 | |||
| 105 | * emacs-lisp/elp.el (elp-not-profilable): Replace interactive-p with | ||
| 106 | called-interactively-p. | ||
| 107 | (elp-profilable-p): Rename from elp-not-profilable-p. | ||
| 108 | Invert result and take into account macros and autoloaded functions. | ||
| 109 | (elp-instrument-function): Update call. | ||
| 110 | (elp-instrument-package): Update call. Add completion. | ||
| 111 | (elp-pack-number): Use match-string. | ||
| 112 | (elp-results-jump-to-definition-by-mouse): Merge into | ||
| 113 | elp-results-jump-to-definition and then remove. | ||
| 114 | (elp-output-insert-symname): Make help echo text single-line. | ||
| 115 | |||
| 116 | * replace.el (query-replace-map): Move initialization into declaration. | ||
| 117 | (occur-engine): Use with-current-buffer. | ||
| 118 | (occur-mode-goto-occurrence): Make it work for mouse-clicks as well. | ||
| 119 | (occur-mode-mouse-goto): Replace with an alias. | ||
| 120 | |||
| 121 | 2005-11-28 Juri Linkov <juri@jurta.org> | ||
| 122 | |||
| 123 | * simple.el (quoted-insert): Let-bind input-method-function to nil. | ||
| 124 | |||
| 125 | * term/w32-win.el: Bind [S-tab] to [backtab]. | ||
| 126 | |||
| 127 | * info.el (Info-fontify-node): Set 2nd arg `noerror' of | ||
| 128 | `Info-find-file' to t. | ||
| 129 | |||
| 130 | * replace.el (occur-mode-mouse-goto): Pop, don't switch. | ||
| 131 | (occur-mode-goto-occurrence): Let-bind same-window-buffer-names | ||
| 132 | and same-window-regexps. | ||
| 133 | (occur-next-error): Don't move point for arg 0. | ||
| 134 | |||
| 135 | 2005-11-28 Chong Yidong <cyd@stupidchicken.com> | ||
| 136 | |||
| 137 | * replace.el (occur-mode-goto-occurrence): Pop, don't switch. | ||
| 138 | |||
| 139 | 2005-11-28 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 140 | |||
| 141 | * log-edit.el (log-edit-changelog-use-first): New var. | ||
| 142 | (log-edit-changelog-ours-p): Use it. | ||
| 143 | (log-edit-insert-changelog): Set it with new arg `use-first'. | ||
| 144 | (log-edit-insert-cvs-rcstemplate, log-edit-insert-filenames): New funs. | ||
| 145 | (log-edit-hook): Add them to the list of suggested options. | ||
| 146 | |||
| 147 | * textmodes/flyspell.el (flyspell-last-buffer): New var. | ||
| 148 | (flyspell-accept-buffer-local-defs): Use it to avoid doing silly | ||
| 149 | redundant work. | ||
| 150 | (flyspell-mode-on): Use add-hook for after-change-functions. | ||
| 151 | (flyspell-mode-off): Use remove-hook for after-change-functions. | ||
| 152 | (flyspell-changes): Make it buffer-local. | ||
| 153 | (flyspell-after-change-function): Make it non-interactive. Use push. | ||
| 154 | (flyspell-post-command-hook): Check input-pending-p while processing | ||
| 155 | the potentially long list of buffer changes. | ||
| 156 | |||
| 157 | 2005-11-28 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu> | ||
| 158 | |||
| 159 | * buff-menu.el (list-buffers-noselect): Display the selected | ||
| 160 | frame's buffer list, not the global one. | ||
| 161 | |||
| 162 | 2005-11-28 Nick Roberts <nickrob@snap.net.nz> | ||
| 163 | |||
| 164 | * xt-mouse.el (xterm-mouse-event): Set last-input-event so | ||
| 165 | that (list last-input-event) works as in interactive spec. | ||
| 166 | |||
| 167 | 2005-11-27 Luc Teirlinck <teirllm@auburn.edu> | ||
| 168 | |||
| 169 | * loadup.el ("facemenu"): Load facemenu before font-lock, because | ||
| 170 | `facemenu-keymap' needs to be defined when font-lock is loaded. | ||
| 171 | Otherwise, `M-o M-o' is not bound to `font-lock-fontify-block'. | ||
| 172 | |||
| 173 | 2005-11-27 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 174 | |||
| 175 | * completion.el: Remove useless leading * in defcustom docstrings. | ||
| 176 | (save-completions-file-name): Use ~/.emacs.d if available. | ||
| 177 | (completion-standard-syntax-table): Rename from | ||
| 178 | cmpl-standard-syntax-table and fold initialization into declaration, | ||
| 179 | thus removing cmpl-make-standard-completion-syntax-table. | ||
| 180 | (completion-lisp-syntax-table, completion-c-syntax-table) | ||
| 181 | (completion-fortran-syntax-table, completion-c-def-syntax-table): Idem. | ||
| 182 | (cmpl-saved-syntax, cmpl-saved-point): Remove. | ||
| 183 | (symbol-under-point, symbol-before-point) | ||
| 184 | (symbol-under-or-before-point, symbol-before-point-for-complete) | ||
| 185 | (add-completions-from-c-buffer): Use with-syntax-table. | ||
| 186 | (make-completion): Don't return a list of completion entries. | ||
| 187 | Update callers. | ||
| 188 | (cmpl-prefix-entry-head, cmpl-prefix-entry-tail): Use defalias. | ||
| 189 | (completion-initialize): Rename from initialize-completions. | ||
| 190 | (completion-find-file-hook): Rename from cmpl-find-file-hook. | ||
| 191 | (kill-emacs-save-completions): Collect stats here. | ||
| 192 | (save-completions-to-file, load-completions-from-file): | ||
| 193 | Use with-current-buffer. | ||
| 194 | (completion-def-wrapper): Rename from def-completion-wrapper. Make it | ||
| 195 | into a function. Move all calls to toplevel. | ||
| 196 | (completion-lisp-mode-hook): New fun. | ||
| 197 | (completion-c-mode-hook, completion-setup-fortran-mode): | ||
| 198 | Set the syntax-table here. Use local-set-key. | ||
| 199 | (completion-saved-bindings): New var. | ||
| 200 | (dynamic-completion-mode): Make it into a proper minor mode. | ||
| 201 | (load-completions-from-file): Remove unused var `num-uses'. | ||
| 202 | |||
| 203 | * emacs-lisp/cl-macs.el (defstruct): Don't define the default | ||
| 204 | constructor if it is explicitly overridden. | ||
| 205 | |||
| 206 | * complete.el (PC-completion-as-file-name-predicate): | ||
| 207 | Use minibuffer-completing-file-name. | ||
| 208 | (partial-completion-mode): Use find-file-not-found-functions. | ||
| 209 | (PC-lisp-complete-symbol): Use with-syntax-table. | ||
| 210 | (PC-look-for-include-file): Remove dead setq. | ||
| 211 | (PC-look-for-include-file, PC-expand-many-files, PC-do-completion) | ||
| 212 | (PC-complete): Use with-current-buffer. | ||
| 213 | |||
| 214 | * progmodes/sh-script.el (sh-font-lock-syntactic-keywords): \ doesn't | ||
| 215 | escape single quotes. | ||
| 216 | |||
| 217 | 2005-11-27 Luc Teirlinck <teirllm@auburn.edu> | ||
| 218 | |||
| 219 | * dabbrev.el (dabbrev-completion): Simplify code, by getting rid | ||
| 220 | of `if' whose condition always returned nil. Doc fix. | ||
| 221 | |||
| 222 | * buff-menu.el (Buffer-menu-revert-function): Make the selected | ||
| 223 | window's buffer the current buffer around the call to | ||
| 224 | `list-buffers-noselect'. This is necessary to mark that buffer | ||
| 225 | with a `.' in the Buffer Menu when called from Lisp, for instance | ||
| 226 | by Auto Revert Mode. | ||
| 227 | |||
| 228 | 2005-11-28 Nick Roberts <nickrob@snap.net.nz> | ||
| 229 | |||
| 230 | * progmodes/gdb-ui.el (gdb-stopped): Detect child process when | ||
| 231 | attaching to it. | ||
| 232 | (gdb-pre-prompt): Make sure gdb-error is reset. | ||
| 233 | |||
| 234 | * progmodes/gud.el (gud-gdb-marker-filter): When GDB is invoked | ||
| 235 | with a child process, detect it. | ||
| 236 | (gud-speedbar-buttons): Match regexp more carefully. | ||
| 237 | |||
| 238 | 2005-11-27 Richard M. Stallman <rms@gnu.org> | ||
| 239 | |||
| 240 | * mouse.el (mouse-drag-move-window-bottom): | ||
| 241 | Use adjust-window-trailing-edge. | ||
| 242 | |||
| 243 | 2005-11-27 Luc Teirlinck <teirllm@auburn.edu> | ||
| 244 | |||
| 245 | * simple.el (blink-matching-open): Ignore | ||
| 246 | `blink-matching-paren-on-screen' if `show-paren-mode' is enabled. | ||
| 247 | (blink-matching-paren-on-screen): Update docstring. | ||
| 248 | |||
| 249 | * paren.el (show-paren-mode): No longer change | ||
| 250 | `blink-matching-paren-on-screen'. | ||
| 251 | |||
| 252 | 2005-11-27 John Paul Wallington <jpw@pobox.com> | ||
| 253 | |||
| 254 | * progmodes/gdb-ui.el (gdb-goto-breakpoint, gdb-frames-select) | ||
| 255 | (gdb-threads-select, gdb-edit-register-value): | ||
| 256 | Use `posn-set-point' instead of `mouse-set-point' because the | ||
| 257 | latter is not fbound when configured without X. | ||
| 258 | |||
| 259 | 2005-11-27 Kim F. Storm <storm@cua.dk> | ||
| 260 | |||
| 261 | * emulation/cua-rect.el (cua--highlight-rectangle): Preserve | ||
| 262 | existing face when partially highlighting a TAB in a rectangle. | ||
| 263 | |||
| 264 | 2005-11-26 Kim F. Storm <storm@cua.dk> | ||
| 265 | |||
| 266 | * ido.el (ido-mode-map): Doc fix. | ||
| 267 | (ido-mode-common-map, ido-mode-file-map) | ||
| 268 | (ido-mode-file-dir-map, ido-mode-buffer-map): New keymaps. | ||
| 269 | (ido-define-mode-map): Rewrite. Select one of the new maps as | ||
| 270 | parent for ido-mode-map instead of building from scratch. | ||
| 271 | (ido-init-mode-maps): New defun to initialize new maps. | ||
| 272 | (ido-mode): Call it. | ||
| 273 | (ido-switch-buffer): Doc fix -- use \<ido-mode-buffer-map>. | ||
| 274 | (ido-find-file): Doc fix -- use \<ido-mode-file-map>. | ||
| 275 | |||
| 276 | 2005-11-26 John Paul Wallington <jpw@pobox.com> | ||
| 277 | |||
| 278 | * arc-mode.el (archive-extract): Use `posn-set-point' instead of | ||
| 279 | `mouse-set-point' because the latter is not fbound when configured | ||
| 280 | without X. | ||
| 281 | |||
| 282 | 2005-11-26 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 283 | |||
| 284 | * files.el (file-relative-name): Doc fix. | ||
| 285 | |||
| 286 | 2005-11-26 Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> | ||
| 287 | |||
| 288 | * progmodes/octave-inf.el (inferior-octave-startup): Force a | ||
| 289 | non-empty string for secondary prompt PS2. | ||
| 290 | |||
| 291 | 2005-11-25 Chong Yidong <cyd@stupidchicken.com> | ||
| 292 | |||
| 293 | * progmodes/compile.el (compilation-setup): Fix last change. | ||
| 294 | |||
| 295 | 2005-11-26 Nick Roberts <nickrob@snap.net.nz> | ||
| 296 | |||
| 297 | * progmodes/gdb-ui.el (gdb-info-breakpoints-custom) | ||
| 298 | (gdb-mouse-toggle-breakpoint-margin) | ||
| 299 | (gdb-mouse-toggle-breakpoint-fringe, gdb-threads-select): | ||
| 300 | Add gdb-server-prefix to keep out of command history. | ||
| 301 | (gdb-edit-register-value): New function. | ||
| 302 | (gdb-registers-mode-map): Bind mouse-2 and RET to it. | ||
| 303 | (gdb-info-registers-custom): Use above map. | ||
| 304 | |||
| 305 | 2005-11-25 Chong Yidong <cyd@stupidchicken.com> | ||
| 306 | |||
| 307 | * custom.el (enable-theme): Signal error if argument is not a | ||
| 308 | theme. Don't recalculate a face if it's not loaded yet. | ||
| 309 | |||
| 310 | * cus-face.el (custom-theme-set-faces): Don't change saved-face if | ||
| 311 | the `user' theme is in effect. | ||
| 312 | |||
| 313 | * info.el (Info-on-current-buffer): Record actual filename in | ||
| 314 | Info-current-file, instead of t, or a fake filename if a non-file | ||
| 315 | buffer. Make autoload. | ||
| 316 | (Info-find-node, Info-revert-find-node): No need to check for | ||
| 317 | Info-current-file nil. | ||
| 318 | (Info-set-mode-line, Info-up, Info-copy-current-node-name): | ||
| 319 | Info-current-file is now never `t'. | ||
| 320 | (Info-fontify-node): Many simplifications due to Info-current-file | ||
| 321 | always being valid. Use Info-find-file to find node filename. | ||
| 322 | |||
| 323 | 2005-11-25 David Kastrup <dak@gnu.org> | ||
| 324 | |||
| 325 | * longlines.el (longlines-wrap-line): Reorder wrapping to "insert | ||
| 326 | new character, then delete" in order to preserve markers. | ||
| 327 | |||
| 328 | 2005-11-25 David Ponce <david@dponce.com> | ||
| 329 | |||
| 330 | * recentf.el (recentf-arrange-by-rule): Handle a special | ||
| 331 | `auto-mode-alist'-like "strip suffix" rule. | ||
| 332 | (recentf-build-mode-rules): Handle second level auto-mode entries. | ||
| 333 | |||
| 334 | 2005-11-25 Michael Kifer <kifer@cs.stonybrook.edu> | ||
| 335 | |||
| 336 | * viper-keym.el (viper-ESC-key): Use different values in terminal and | ||
| 337 | window modes. | ||
| 338 | |||
| 339 | * viper.el (viper-emacs-state-mode-list): Delete mail-mode, add | ||
| 340 | jde-javadoc-checker-report-mode. | ||
| 341 | |||
| 342 | * ediff-wind (ediff-make-wide-display): Slight simplification. | ||
| 343 | |||
| 344 | * ediff.el (ediff-date): Change the date of last update. | ||
| 345 | |||
| 346 | 2005-11-24 Chong Yidong <cyd@stupidchicken.com> | ||
| 347 | |||
| 348 | * hi-lock.el (hi-lock-buffer-mode): Renamed from `hi-lock-mode'. | ||
| 349 | Use define-minor-mode, and make it a local mode. Turn on font-lock. | ||
| 350 | (hi-lock-mode): New global minor mode. | ||
| 351 | (turn-on-hi-lock-if-enabled): New function. | ||
| 352 | (hi-lock-line-face-buffer, hi-lock-face-buffer, hi-lock-set-pattern): | ||
| 353 | Change arguments to regexp and face instead of a font-lock pattern. | ||
| 354 | Directly set face property, instead of refontifying. | ||
| 355 | (hi-lock-font-lock-hook): Check if font-lock is being turned on. | ||
| 356 | (hi-lock-find-patterns): Use line-number-at-pos. | ||
| 357 | |||
| 358 | (hi-lock-face-phrase-buffer): Call hi-lock-buffer-mode. Use new | ||
| 359 | arguments for hi-lock-set-pattern. | ||
| 360 | (hi-lock-unface-buffer, hi-lock-set-file-patterns): Call | ||
| 361 | font-lock-fontify-buffer. | ||
| 362 | (hi-lock-find-file-hook, hi-lock-current-line) | ||
| 363 | (hi-lock-refontify, hi-lock-set-patterns): Delete unused functions. | ||
| 364 | |||
| 365 | (hi-lock-font-lock-hook): Turn off hi-lock when font lock is | ||
| 366 | turned off. | ||
| 367 | |||
| 368 | * progmodes/compile.el (compilation-setup): Don't fiddle with | ||
| 369 | font-lock-defaults. | ||
| 370 | |||
| 371 | 2005-11-25 Nick Roberts <nickrob@snap.net.nz> | ||
| 372 | |||
| 373 | * progmodes/gdb-ui.el (gdb-var-create-handler) | ||
| 374 | (gdb-var-list-children-handler): Find values for all variable | ||
| 375 | objects. gud-speedbar-buttons decides whether to display them. | ||
| 376 | |||
| 377 | 2005-11-24 Romain Francoise <romain@orebokech.com> | ||
| 378 | |||
| 379 | * info.el (Info-speedbar-fetch-file-nodes): Prefix temporary | ||
| 380 | buffer name with a space. | ||
| 381 | |||
| 382 | 2005-11-24 Carsten Dominik <dominik@science.uva.nl> | ||
| 383 | |||
| 384 | * textmodes/org.el: (org-export-plain-list-max-depth): Renamed from | ||
| 385 | `org-export-local-list-max-depth'. Change default value to 3. | ||
| 386 | (org-auto-renumber-ordered-lists) | ||
| 387 | (org-plain-list-ordered-item-terminator): New options. | ||
| 388 | (org-at-item-p, org-beginning-of-item, org-end-of-item) | ||
| 389 | (org-get-indentation, org-get-string-indentation) | ||
| 390 | (org-maybe-renumber-ordered-list, org-renumber-ordered-list): New | ||
| 391 | functions. | ||
| 392 | (org-move-item-down, org-move-item-up): New commands. | ||
| 393 | (org-export-as-html): New classes for CSS support. Bug fix in | ||
| 394 | regular expression detecting fixed-width regions. Respect | ||
| 395 | `org-local-list-ordered-item-terminator'. | ||
| 396 | (org-set-autofill-regexps, org-adaptive-fill-function): "1)" is | ||
| 397 | also a list item. | ||
| 398 | (org-metaup, org-metadown, org-shiftmetaup, org-shiftmetadown): | ||
| 399 | New item moving functions. | ||
| 400 | |||
| 401 | 2005-11-24 Juri Linkov <juri@jurta.org> | ||
| 402 | |||
| 403 | * isearch.el (isearch-repeat): With empty search ring set | ||
| 404 | `isearch-error' to the error string instead of signaling error | ||
| 405 | with the function `error'. | ||
| 406 | |||
| 407 | 2005-11-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 408 | |||
| 409 | * term/mac-win.el: Make modifier `ctrl' an alias for `control'. | ||
| 410 | |||
| 411 | 2005-11-24 Nick Roberts <nickrob@snap.net.nz> | ||
| 412 | |||
| 413 | * progmodes/gdb-ui.el (gdb-speedbar-auto-raise): New function | ||
| 414 | and variable. | ||
| 415 | (gdb-var-create-handler, gdb-var-list-children-handler): | ||
| 416 | Don't match on "char **...". | ||
| 417 | (gdb-var-update-handler): Find values for all variable objects. | ||
| 418 | (gdb-info-frames-custom): Identify frames by leading "#". | ||
| 419 | |||
| 420 | * progmodes/gud.el (gud-speedbar-menu-items): Add | ||
| 421 | gdb-speedbar-auto-raise as radio button. | ||
| 422 | (gud-speedbar-buttons): Raise speedbar if requested. | ||
| 423 | Don't match on "char **...". | ||
| 424 | (gud-speedbar-buttons): Add (pointer) value for non-leaves. | ||
| 425 | Make it editable. | ||
| 426 | |||
| 427 | 2005-11-23 Chong Yidong <cyd@stupidchicken.com> | ||
| 428 | |||
| 429 | * info.el (Info-fontify-node): Handle the case where | ||
| 430 | Info-current-file is t. | ||
| 431 | |||
| 432 | 2005-11-23 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 433 | |||
| 434 | * simple.el (blink-matching-open): Fix off-by-one in last change. | ||
| 435 | |||
| 436 | 2005-11-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 437 | |||
| 438 | * term/mac-win.el: Don't change default directory. | ||
| 439 | |||
| 440 | 2005-11-22 Luc Teirlinck <teirllm@auburn.edu> | ||
| 441 | |||
| 442 | * cus-edit.el (Custom-reset-standard): Make it handle Custom group | ||
| 443 | buffers correctly. (It used to throw an error in such buffers.) | ||
| 444 | Make it ask for confirmation in group buffers and other Custom | ||
| 445 | buffers containing more than one customization item. | ||
| 446 | |||
| 447 | 2005-11-22 John Paul Wallington <jpw@gnu.org> | ||
| 448 | |||
| 449 | * net/goto-addr.el (goto-address-fontify): Put `follow-link' | ||
| 450 | property on mail and url overlays. | ||
| 451 | (goto-address-at-point): Use `posn-set-point' instead of | ||
| 452 | `mouse-set-point' because the latter is not fbound when configured | ||
| 453 | without X. | ||
| 454 | |||
| 455 | 2005-11-22 Lars Hansen <larsh@soem.dk> | ||
| 456 | |||
| 457 | * ls-lisp.el (ls-lisp-parse-symlink): Delete. | ||
| 458 | (ls-lisp-classify, ls-lisp-format): Delete call to | ||
| 459 | ls-lisp-parse-symlink. | ||
| 460 | (ls-lisp-handle-switches): Handle symlinks to directories as | ||
| 461 | directories when ls-lisp-dirs-first in non-nil. | ||
| 462 | |||
| 1 | 2005-11-21 Luc Teirlinck <teirllm@auburn.edu> | 463 | 2005-11-21 Luc Teirlinck <teirllm@auburn.edu> |
| 2 | 464 | ||
| 3 | * startup.el (command-line): Make sure that loaddefs.el is handled | 465 | * startup.el (command-line): Make sure that loaddefs.el is handled |
| @@ -37,6 +499,12 @@ | |||
| 37 | * faces.el: Revert 2005-11-17 change. :ignore-defface is now | 499 | * faces.el: Revert 2005-11-17 change. :ignore-defface is now |
| 38 | handled automagically. | 500 | handled automagically. |
| 39 | 501 | ||
| 502 | 2005-11-20 Andreas Schwab <schwab@suse.de> | ||
| 503 | |||
| 504 | * descr-text.el (describe-char): When copying overlays put them | ||
| 505 | over the full char description instead of just the first character | ||
| 506 | of it. | ||
| 507 | |||
| 40 | 2005-11-20 Juri Linkov <juri@jurta.org> | 508 | 2005-11-20 Juri Linkov <juri@jurta.org> |
| 41 | 509 | ||
| 42 | * simple.el (what-cursor-position): | 510 | * simple.el (what-cursor-position): |
diff --git a/lisp/apropos.el b/lisp/apropos.el index 5eda7567ef0..4e5109c1efb 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el | |||
| @@ -301,7 +301,9 @@ kind of objects to search." | |||
| 301 | 301 | ||
| 302 | (defun apropos-parse-pattern (pattern) | 302 | (defun apropos-parse-pattern (pattern) |
| 303 | "Rewrite a list of words to a regexp matching all permutations. | 303 | "Rewrite a list of words to a regexp matching all permutations. |
| 304 | If PATTERN is a string, that means it is already a regexp." | 304 | If PATTERN is a string, that means it is already a regexp. |
| 305 | This updates variables `apropos-pattern', `apropos-pattern-quoted', | ||
| 306 | `apropos-regexp', `apropos-words', and `apropos-all-words-regexp'." | ||
| 305 | (setq apropos-words nil | 307 | (setq apropos-words nil |
| 306 | apropos-all-words nil) | 308 | apropos-all-words nil) |
| 307 | (if (consp pattern) | 309 | (if (consp pattern) |
| @@ -325,11 +327,14 @@ If PATTERN is a string, that means it is already a regexp." | |||
| 325 | (setq syn (cdr syn)))) | 327 | (setq syn (cdr syn)))) |
| 326 | (setq apropos-words (cons s apropos-words) | 328 | (setq apropos-words (cons s apropos-words) |
| 327 | apropos-all-words (cons a apropos-all-words)))) | 329 | apropos-all-words (cons a apropos-all-words)))) |
| 328 | (setq apropos-all-words-regexp (apropos-words-to-regexp apropos-all-words ".+")) | 330 | (setq apropos-all-words-regexp |
| 329 | (apropos-words-to-regexp apropos-words ".*?")) | 331 | (apropos-words-to-regexp apropos-all-words ".+")) |
| 332 | (setq apropos-regexp | ||
| 333 | (apropos-words-to-regexp apropos-words ".*?"))) | ||
| 330 | (setq apropos-pattern-quoted (regexp-quote pattern) | 334 | (setq apropos-pattern-quoted (regexp-quote pattern) |
| 331 | apropos-all-words-regexp pattern | 335 | apropos-all-words-regexp pattern |
| 332 | apropos-pattern pattern))) | 336 | apropos-pattern pattern |
| 337 | apropos-regexp pattern))) | ||
| 333 | 338 | ||
| 334 | 339 | ||
| 335 | (defun apropos-calc-scores (str words) | 340 | (defun apropos-calc-scores (str words) |
| @@ -442,7 +447,7 @@ while a list of strings is used as a word list." | |||
| 442 | (if (or current-prefix-arg apropos-do-all) | 447 | (if (or current-prefix-arg apropos-do-all) |
| 443 | "command or function" "command")) | 448 | "command or function" "command")) |
| 444 | current-prefix-arg)) | 449 | current-prefix-arg)) |
| 445 | (setq apropos-regexp (apropos-parse-pattern pattern)) | 450 | (apropos-parse-pattern pattern) |
| 446 | (let ((message | 451 | (let ((message |
| 447 | (let ((standard-output (get-buffer-create "*Apropos*"))) | 452 | (let ((standard-output (get-buffer-create "*Apropos*"))) |
| 448 | (print-help-return-message 'identity)))) | 453 | (print-help-return-message 'identity)))) |
| @@ -508,7 +513,7 @@ show unbound symbols and key bindings, which is a little more | |||
| 508 | time-consuming. Returns list of symbols and documentation found." | 513 | time-consuming. Returns list of symbols and documentation found." |
| 509 | (interactive (list (apropos-read-pattern "symbol") | 514 | (interactive (list (apropos-read-pattern "symbol") |
| 510 | current-prefix-arg)) | 515 | current-prefix-arg)) |
| 511 | (setq apropos-regexp (apropos-parse-pattern pattern)) | 516 | (apropos-parse-pattern pattern) |
| 512 | (apropos-symbols-internal | 517 | (apropos-symbols-internal |
| 513 | (apropos-internal apropos-regexp | 518 | (apropos-internal apropos-regexp |
| 514 | (and (not do-all) | 519 | (and (not do-all) |
| @@ -577,7 +582,7 @@ at the function and at the names and values of properties. | |||
| 577 | Returns list of symbols and values found." | 582 | Returns list of symbols and values found." |
| 578 | (interactive (list (apropos-read-pattern "value") | 583 | (interactive (list (apropos-read-pattern "value") |
| 579 | current-prefix-arg)) | 584 | current-prefix-arg)) |
| 580 | (setq apropos-regexp (apropos-parse-pattern pattern)) | 585 | (apropos-parse-pattern pattern) |
| 581 | (or do-all (setq do-all apropos-do-all)) | 586 | (or do-all (setq do-all apropos-do-all)) |
| 582 | (setq apropos-accumulator ()) | 587 | (setq apropos-accumulator ()) |
| 583 | (let (f v p) | 588 | (let (f v p) |
| @@ -623,7 +628,7 @@ bindings. | |||
| 623 | Returns list of symbols and documentation found." | 628 | Returns list of symbols and documentation found." |
| 624 | (interactive (list (apropos-read-pattern "documentation") | 629 | (interactive (list (apropos-read-pattern "documentation") |
| 625 | current-prefix-arg)) | 630 | current-prefix-arg)) |
| 626 | (setq apropos-regexp (apropos-parse-pattern pattern)) | 631 | (apropos-parse-pattern pattern) |
| 627 | (or do-all (setq do-all apropos-do-all)) | 632 | (or do-all (setq do-all apropos-do-all)) |
| 628 | (setq apropos-accumulator () apropos-files-scanned ()) | 633 | (setq apropos-accumulator () apropos-files-scanned ()) |
| 629 | (let ((standard-input (get-buffer-create " apropos-temp")) | 634 | (let ((standard-input (get-buffer-create " apropos-temp")) |
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index ae5ff9a4dbc..c376070ea3b 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el | |||
| @@ -895,7 +895,7 @@ using `make-temp-file', and the generated name is returned." | |||
| 895 | (defun archive-extract (&optional other-window-p event) | 895 | (defun archive-extract (&optional other-window-p event) |
| 896 | "In archive mode, extract this entry of the archive into its own buffer." | 896 | "In archive mode, extract this entry of the archive into its own buffer." |
| 897 | (interactive (list nil last-input-event)) | 897 | (interactive (list nil last-input-event)) |
| 898 | (if event (mouse-set-point event)) | 898 | (if event (posn-set-point (event-end event))) |
| 899 | (let* ((view-p (eq other-window-p 'view)) | 899 | (let* ((view-p (eq other-window-p 'view)) |
| 900 | (descr (archive-get-descr)) | 900 | (descr (archive-get-descr)) |
| 901 | (ename (aref descr 0)) | 901 | (ename (aref descr 0)) |
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index e48aa9e34b4..818fc19a4fd 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -210,7 +210,12 @@ Letters do not insert themselves; instead, they are commands. | |||
| 210 | (prop (point-min)) | 210 | (prop (point-min)) |
| 211 | ;; do not make undo records for the reversion. | 211 | ;; do not make undo records for the reversion. |
| 212 | (buffer-undo-list t)) | 212 | (buffer-undo-list t)) |
| 213 | (list-buffers-noselect Buffer-menu-files-only) | 213 | ;; We can be called by Auto Revert Mode with the "*Buffer Menu*" |
| 214 | ;; temporarily the current buffer. Make sure that the | ||
| 215 | ;; interactively current buffer is correctly identified with a `.' | ||
| 216 | ;; by `list-buffers-noselect'. | ||
| 217 | (with-current-buffer (window-buffer) | ||
| 218 | (list-buffers-noselect Buffer-menu-files-only)) | ||
| 214 | (if oline | 219 | (if oline |
| 215 | (while (setq prop (next-single-property-change prop 'buffer)) | 220 | (while (setq prop (next-single-property-change prop 'buffer)) |
| 216 | (when (eq (get-text-property prop 'buffer) oline) | 221 | (when (eq (get-text-property prop 'buffer) oline) |
| @@ -717,7 +722,7 @@ For more information, see the function `buffer-menu'." | |||
| 717 | (if (memq c '(?\n ?\s)) c underline)) | 722 | (if (memq c '(?\n ?\s)) c underline)) |
| 718 | header))))) | 723 | header))))) |
| 719 | ;; Collect info for every buffer we're interested in. | 724 | ;; Collect info for every buffer we're interested in. |
| 720 | (dolist (buffer (or buffer-list (buffer-list))) | 725 | (dolist (buffer (or buffer-list (buffer-list (selected-frame)))) |
| 721 | (with-current-buffer buffer | 726 | (with-current-buffer buffer |
| 722 | (let ((name (buffer-name)) | 727 | (let ((name (buffer-name)) |
| 723 | (file buffer-file-name)) | 728 | (file buffer-file-name)) |
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el index 4127c0b33da..7878034694e 100644 --- a/lisp/calc/calc-embed.el +++ b/lisp/calc/calc-embed.el | |||
| @@ -315,7 +315,7 @@ | |||
| 315 | (or (eq calc-embedded-quiet t) | 315 | (or (eq calc-embedded-quiet t) |
| 316 | (message "Embedded Calc mode enabled; %s to return to normal" | 316 | (message "Embedded Calc mode enabled; %s to return to normal" |
| 317 | (if calc-embedded-quiet | 317 | (if calc-embedded-quiet |
| 318 | "Type `M-# x'" | 318 | "Type `C-x * x'" |
| 319 | "Give this command again"))))) | 319 | "Give this command again"))))) |
| 320 | (scroll-down 0)) ; fix a bug which occurs when truncate-lines is changed. | 320 | (scroll-down 0)) ; fix a bug which occurs when truncate-lines is changed. |
| 321 | 321 | ||
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el index ba80f455b4f..ca8e8bbdbfe 100644 --- a/lisp/calc/calc-misc.el +++ b/lisp/calc/calc-misc.el | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | (require 'calc-macs) | 33 | (require 'calc-macs) |
| 34 | 34 | ||
| 35 | (defun calc-dispatch-help (arg) | 35 | (defun calc-dispatch-help (arg) |
| 36 | "M-# is a prefix key; follow it with one of these letters: | 36 | "C-x* is a prefix key sequence; follow it with one of these letters: |
| 37 | 37 | ||
| 38 | For turning Calc on and off: | 38 | For turning Calc on and off: |
| 39 | C calc. Start the Calculator in a window at the bottom of the screen. | 39 | C calc. Start the Calculator in a window at the bottom of the screen. |
| @@ -73,8 +73,9 @@ Miscellaneous: | |||
| 73 | M read-kbd-macro. Read a region of keystroke names as a keyboard macro. | 73 | M read-kbd-macro. Read a region of keystroke names as a keyboard macro. |
| 74 | 0 (zero) calc-reset. Reset Calc stack and modes to default state. | 74 | 0 (zero) calc-reset. Reset Calc stack and modes to default state. |
| 75 | 75 | ||
| 76 | Press twice (`M-# M-#' or `M-# #') to turn Calc on or off using the same | 76 | Press `*' twice (`C-x * *') to turn Calc on or off using the same |
| 77 | Calc user interface as before (either M-# C or M-# K; initially M-# C)." | 77 | Calc user interface as before (either C-x * C or C-x * K; initially C-x * C). |
| 78 | " | ||
| 78 | (interactive "P") | 79 | (interactive "P") |
| 79 | (calc-check-defines) | 80 | (calc-check-defines) |
| 80 | (if calc-dispatch-help | 81 | (if calc-dispatch-help |
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el index 2bbbbcceee5..8736d4375dd 100644 --- a/lisp/calc/calc-prog.el +++ b/lisp/calc/calc-prog.el | |||
| @@ -667,7 +667,7 @@ | |||
| 667 | (or last-kbd-macro | 667 | (or last-kbd-macro |
| 668 | (error "No keyboard macro defined")) | 668 | (error "No keyboard macro defined")) |
| 669 | (setq calc-invocation-macro last-kbd-macro) | 669 | (setq calc-invocation-macro last-kbd-macro) |
| 670 | (message "Use `M-# Z' to invoke this macro")) | 670 | (message "Use `C-x * Z' to invoke this macro")) |
| 671 | 671 | ||
| 672 | (defun calc-user-define-edit () | 672 | (defun calc-user-define-edit () |
| 673 | (interactive) ; but no calc-wrapper! | 673 | (interactive) ; but no calc-wrapper! |
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index bd161132ddf..fe55b7587f3 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el | |||
| @@ -816,11 +816,6 @@ If nil, selections displayed but ignored.") | |||
| 816 | ;; Verify that Calc is running on the right kind of system. | 816 | ;; Verify that Calc is running on the right kind of system. |
| 817 | (defvar calc-emacs-type-lucid (not (not (string-match "Lucid" emacs-version)))) | 817 | (defvar calc-emacs-type-lucid (not (not (string-match "Lucid" emacs-version)))) |
| 818 | 818 | ||
| 819 | ;; Set up the standard keystroke (M-#) to run the Calculator, if that key | ||
| 820 | ;; has not yet been bound to anything. For best results, the user should | ||
| 821 | ;; do this before Calc is even loaded, so that M-# can auto-load Calc. | ||
| 822 | (or (global-key-binding "\e#") (global-set-key "\e#" 'calc-dispatch)) | ||
| 823 | |||
| 824 | ;; Set up the autoloading linkage. | 819 | ;; Set up the autoloading linkage. |
| 825 | (let ((name (and (fboundp 'calc-dispatch) | 820 | (let ((name (and (fboundp 'calc-dispatch) |
| 826 | (eq (car-safe (symbol-function 'calc-dispatch)) 'autoload) | 821 | (eq (car-safe (symbol-function 'calc-dispatch)) 'autoload) |
| @@ -1046,14 +1041,20 @@ If nil, selections displayed but ignored.") | |||
| 1046 | ( ?x . calc-quit ) | 1041 | ( ?x . calc-quit ) |
| 1047 | ( ?y . calc-copy-to-buffer ) | 1042 | ( ?y . calc-copy-to-buffer ) |
| 1048 | ( ?z . calc-user-invocation ) | 1043 | ( ?z . calc-user-invocation ) |
| 1049 | ( ?= . calc-embedded-update-formula ) | ||
| 1050 | ( ?\' . calc-embedded-new-formula ) | 1044 | ( ?\' . calc-embedded-new-formula ) |
| 1051 | ( ?\` . calc-embedded-edit ) | 1045 | ( ?\` . calc-embedded-edit ) |
| 1052 | ( ?: . calc-grab-sum-down ) | 1046 | ( ?: . calc-grab-sum-down ) |
| 1053 | ( ?_ . calc-grab-sum-across ) | 1047 | ( ?_ . calc-grab-sum-across ) |
| 1054 | ( ?0 . calc-reset ) | 1048 | ( ?0 . calc-reset ) |
| 1049 | ( ?? . calc-dispatch-help ) | ||
| 1055 | ( ?# . calc-same-interface ) | 1050 | ( ?# . calc-same-interface ) |
| 1056 | ( ?? . calc-dispatch-help ) )) | 1051 | ( ?& . calc-same-interface ) |
| 1052 | ( ?\\ . calc-same-interface ) | ||
| 1053 | ( ?= . calc-same-interface ) | ||
| 1054 | ( ?* . calc-same-interface ) | ||
| 1055 | ( ?/ . calc-same-interface ) | ||
| 1056 | ( ?+ . calc-same-interface ) | ||
| 1057 | ( ?- . calc-same-interface ) )) | ||
| 1057 | map)) | 1058 | map)) |
| 1058 | 1059 | ||
| 1059 | ;;;; (Autoloads here) | 1060 | ;;;; (Autoloads here) |
| @@ -1095,7 +1096,7 @@ If nil, selections displayed but ignored.") | |||
| 1095 | report-calc-bug))) | 1096 | report-calc-bug))) |
| 1096 | 1097 | ||
| 1097 | 1098 | ||
| 1098 | ;;;###autoload (global-set-key "\e#" 'calc-dispatch) | 1099 | ;;;###autoload (define-key ctl-x-map "*" 'calc-dispatch) |
| 1099 | 1100 | ||
| 1100 | ;;;###autoload | 1101 | ;;;###autoload |
| 1101 | (defun calc-dispatch (&optional arg) | 1102 | (defun calc-dispatch (&optional arg) |
| @@ -3534,7 +3535,7 @@ Also looks for the equivalent TeX words, \\gets and \\evalto." | |||
| 3534 | (defun calc-user-invocation () | 3535 | (defun calc-user-invocation () |
| 3535 | (interactive) | 3536 | (interactive) |
| 3536 | (unless calc-invocation-macro | 3537 | (unless calc-invocation-macro |
| 3537 | (error "Use `Z I' inside Calc to define a `M-# Z' keyboard macro")) | 3538 | (error "Use `Z I' inside Calc to define a `C-x * Z' keyboard macro")) |
| 3538 | (execute-kbd-macro calc-invocation-macro nil)) | 3539 | (execute-kbd-macro calc-invocation-macro nil)) |
| 3539 | 3540 | ||
| 3540 | ;;; User-programmability. | 3541 | ;;; User-programmability. |
diff --git a/lisp/complete.el b/lisp/complete.el index 4a2ce48f152..f5ab178e1b3 100644 --- a/lisp/complete.el +++ b/lisp/complete.el | |||
| @@ -216,9 +216,9 @@ the *Completions* buffer." | |||
| 216 | (PC-bindings partial-completion-mode) | 216 | (PC-bindings partial-completion-mode) |
| 217 | ;; Deal with include file feature... | 217 | ;; Deal with include file feature... |
| 218 | (cond ((not partial-completion-mode) | 218 | (cond ((not partial-completion-mode) |
| 219 | (remove-hook 'find-file-not-found-hooks 'PC-look-for-include-file)) | 219 | (remove-hook 'find-file-not-found-functions 'PC-look-for-include-file)) |
| 220 | ((not PC-disable-includes) | 220 | ((not PC-disable-includes) |
| 221 | (add-hook 'find-file-not-found-hooks 'PC-look-for-include-file))) | 221 | (add-hook 'find-file-not-found-functions 'PC-look-for-include-file))) |
| 222 | ;; ... with some underhand redefining. | 222 | ;; ... with some underhand redefining. |
| 223 | (cond ((and (not partial-completion-mode) | 223 | (cond ((and (not partial-completion-mode) |
| 224 | (functionp PC-old-read-file-name-internal)) | 224 | (functionp PC-old-read-file-name-internal)) |
| @@ -261,8 +261,7 @@ Word-delimiters for the purposes of Partial Completion are \"-\", \"_\", | |||
| 261 | ;; and this command is repeated, scroll that window. | 261 | ;; and this command is repeated, scroll that window. |
| 262 | (if (and window (window-buffer window) | 262 | (if (and window (window-buffer window) |
| 263 | (buffer-name (window-buffer window))) | 263 | (buffer-name (window-buffer window))) |
| 264 | (save-excursion | 264 | (with-current-buffer (window-buffer window) |
| 265 | (set-buffer (window-buffer window)) | ||
| 266 | (if (pos-visible-in-window-p (point-max) window) | 265 | (if (pos-visible-in-window-p (point-max) window) |
| 267 | (set-window-start window (point-min) nil) | 266 | (set-window-start window (point-min) nil) |
| 268 | (scroll-other-window))) | 267 | (scroll-other-window))) |
| @@ -346,11 +345,8 @@ See `PC-complete' for details." | |||
| 346 | (defvar PC-delims-list nil) | 345 | (defvar PC-delims-list nil) |
| 347 | 346 | ||
| 348 | (defvar PC-completion-as-file-name-predicate | 347 | (defvar PC-completion-as-file-name-predicate |
| 349 | (function | 348 | (lambda () minibuffer-completing-file-name) |
| 350 | (lambda () | 349 | "A function testing whether a minibuffer completion now will work filename-style. |
| 351 | (memq minibuffer-completion-table | ||
| 352 | '(read-file-name-internal read-directory-name-internal)))) | ||
| 353 | "A function testing whether a minibuffer completion now will work filename-style. | ||
| 354 | The function takes no arguments, and typically looks at the value | 350 | The function takes no arguments, and typically looks at the value |
| 355 | of `minibuffer-completion-table' and the minibuffer contents.") | 351 | of `minibuffer-completion-table' and the minibuffer contents.") |
| 356 | 352 | ||
| @@ -665,8 +661,7 @@ of `minibuffer-completion-table' and the minibuffer contents.") | |||
| 665 | (eq mode 'help)) | 661 | (eq mode 'help)) |
| 666 | (with-output-to-temp-buffer "*Completions*" | 662 | (with-output-to-temp-buffer "*Completions*" |
| 667 | (display-completion-list (sort helpposs 'string-lessp)) | 663 | (display-completion-list (sort helpposs 'string-lessp)) |
| 668 | (save-excursion | 664 | (with-current-buffer standard-output |
| 669 | (set-buffer standard-output) | ||
| 670 | ;; Record which part of the buffer we are completing | 665 | ;; Record which part of the buffer we are completing |
| 671 | ;; so that choosing a completion from the list | 666 | ;; so that choosing a completion from the list |
| 672 | ;; knows how much old text to replace. | 667 | ;; knows how much old text to replace. |
| @@ -732,16 +727,12 @@ Otherwise, all symbols with function definitions, values | |||
| 732 | or properties are considered." | 727 | or properties are considered." |
| 733 | (interactive) | 728 | (interactive) |
| 734 | (let* ((end (point)) | 729 | (let* ((end (point)) |
| 735 | (buffer-syntax (syntax-table)) | 730 | (beg (save-excursion |
| 736 | (beg (unwind-protect | 731 | (with-syntax-table lisp-mode-syntax-table |
| 737 | (save-excursion | 732 | (backward-sexp 1) |
| 738 | (if lisp-mode-syntax-table | 733 | (while (= (char-syntax (following-char)) ?\') |
| 739 | (set-syntax-table lisp-mode-syntax-table)) | 734 | (forward-char 1)) |
| 740 | (backward-sexp 1) | 735 | (point)))) |
| 741 | (while (= (char-syntax (following-char)) ?\') | ||
| 742 | (forward-char 1)) | ||
| 743 | (point)) | ||
| 744 | (set-syntax-table buffer-syntax))) | ||
| 745 | (minibuffer-completion-table obarray) | 736 | (minibuffer-completion-table obarray) |
| 746 | (minibuffer-completion-predicate | 737 | (minibuffer-completion-predicate |
| 747 | (if (eq (char-after (1- beg)) ?\() | 738 | (if (eq (char-after (1- beg)) ?\() |
| @@ -767,12 +758,11 @@ or properties are considered." | |||
| 767 | (goto-char end) | 758 | (goto-char end) |
| 768 | (PC-do-completion nil beg end))) | 759 | (PC-do-completion nil beg end))) |
| 769 | 760 | ||
| 770 | ;;; Use the shell to do globbing. | 761 | ;; Use the shell to do globbing. |
| 771 | ;;; This could now use file-expand-wildcards instead. | 762 | ;; This could now use file-expand-wildcards instead. |
| 772 | 763 | ||
| 773 | (defun PC-expand-many-files (name) | 764 | (defun PC-expand-many-files (name) |
| 774 | (save-excursion | 765 | (with-current-buffer (generate-new-buffer " *Glob Output*") |
| 775 | (set-buffer (generate-new-buffer " *Glob Output*")) | ||
| 776 | (erase-buffer) | 766 | (erase-buffer) |
| 777 | (shell-command (concat "echo " name) t) | 767 | (shell-command (concat "echo " name) t) |
| 778 | (goto-char (point-min)) | 768 | (goto-char (point-min)) |
| @@ -804,9 +794,9 @@ or properties are considered." | |||
| 804 | (setq files (cdr files))) | 794 | (setq files (cdr files))) |
| 805 | p)))) | 795 | p)))) |
| 806 | 796 | ||
| 807 | ;;; Facilities for loading C header files. This is independent from the | 797 | ;; Facilities for loading C header files. This is independent from the |
| 808 | ;;; main completion code. See also the variable `PC-include-file-path' | 798 | ;; main completion code. See also the variable `PC-include-file-path' |
| 809 | ;;; at top of this file. | 799 | ;; at top of this file. |
| 810 | 800 | ||
| 811 | (defun PC-look-for-include-file () | 801 | (defun PC-look-for-include-file () |
| 812 | (if (string-match "[\"<]\\([^\"<>]*\\)[\">]?$" (buffer-file-name)) | 802 | (if (string-match "[\"<]\\([^\"<>]*\\)[\">]?$" (buffer-file-name)) |
| @@ -817,8 +807,7 @@ or properties are considered." | |||
| 817 | new-buf) | 807 | new-buf) |
| 818 | (kill-buffer (current-buffer)) | 808 | (kill-buffer (current-buffer)) |
| 819 | (if (equal name "") | 809 | (if (equal name "") |
| 820 | (save-excursion | 810 | (with-current-buffer (car (buffer-list)) |
| 821 | (set-buffer (car (buffer-list))) | ||
| 822 | (save-excursion | 811 | (save-excursion |
| 823 | (beginning-of-line) | 812 | (beginning-of-line) |
| 824 | (if (looking-at | 813 | (if (looking-at |
| @@ -855,8 +844,7 @@ or properties are considered." | |||
| 855 | (if path | 844 | (if path |
| 856 | (setq name (concat (file-name-as-directory (car path)) name)) | 845 | (setq name (concat (file-name-as-directory (car path)) name)) |
| 857 | (error "No such include file: <%s>" name))) | 846 | (error "No such include file: <%s>" name))) |
| 858 | (let ((dir (save-excursion | 847 | (let ((dir (with-current-buffer (car (buffer-list)) |
| 859 | (set-buffer (car (buffer-list))) | ||
| 860 | default-directory))) | 848 | default-directory))) |
| 861 | (if (file-exists-p (concat dir name)) | 849 | (if (file-exists-p (concat dir name)) |
| 862 | (setq name (concat dir name)) | 850 | (setq name (concat dir name)) |
| @@ -865,8 +853,7 @@ or properties are considered." | |||
| 865 | (if new-buf | 853 | (if new-buf |
| 866 | ;; no need to verify last-modified time for this! | 854 | ;; no need to verify last-modified time for this! |
| 867 | (set-buffer new-buf) | 855 | (set-buffer new-buf) |
| 868 | (setq new-buf (create-file-buffer name)) | 856 | (set-buffer (create-file-buffer name)) |
| 869 | (set-buffer new-buf) | ||
| 870 | (erase-buffer) | 857 | (erase-buffer) |
| 871 | (insert-file-contents name t)) | 858 | (insert-file-contents name t)) |
| 872 | ;; Returning non-nil with the new buffer current | 859 | ;; Returning non-nil with the new buffer current |
| @@ -885,7 +872,7 @@ or properties are considered." | |||
| 885 | env (substring env 0 pos))) | 872 | env (substring env 0 pos))) |
| 886 | path))) | 873 | path))) |
| 887 | 874 | ||
| 888 | ;;; This is adapted from lib-complete.el, by Mike Williams. | 875 | ;; This is adapted from lib-complete.el, by Mike Williams. |
| 889 | (defun PC-include-file-all-completions (file search-path &optional full) | 876 | (defun PC-include-file-all-completions (file search-path &optional full) |
| 890 | "Return all completions for FILE in any directory on SEARCH-PATH. | 877 | "Return all completions for FILE in any directory on SEARCH-PATH. |
| 891 | If optional third argument FULL is non-nil, returned pathnames should be | 878 | If optional third argument FULL is non-nil, returned pathnames should be |
diff --git a/lisp/completion.el b/lisp/completion.el index 12df9a52714..2cd30e6513f 100644 --- a/lisp/completion.el +++ b/lisp/completion.el | |||
| @@ -82,11 +82,11 @@ | |||
| 82 | ;; SAVING/LOADING COMPLETIONS | 82 | ;; SAVING/LOADING COMPLETIONS |
| 83 | ;; Completions are automatically saved from one session to another | 83 | ;; Completions are automatically saved from one session to another |
| 84 | ;; (unless save-completions-flag or enable-completion is nil). | 84 | ;; (unless save-completions-flag or enable-completion is nil). |
| 85 | ;; Loading this file (or calling initialize-completions) causes EMACS | 85 | ;; Activating this minor-mode calling completion-initialize) causes Emacs |
| 86 | ;; to load a completions database for a saved completions file | 86 | ;; to load a completions database for a saved completions file |
| 87 | ;; (default: ~/.completions). When you exit, EMACS saves a copy of the | 87 | ;; (default: ~/.completions). When you exit, Emacs saves a copy of the |
| 88 | ;; completions that you | 88 | ;; completions that you |
| 89 | ;; often use. When you next start, EMACS loads in the saved completion file. | 89 | ;; often use. When you next start, Emacs loads in the saved completion file. |
| 90 | ;; | 90 | ;; |
| 91 | ;; The number of completions saved depends loosely on | 91 | ;; The number of completions saved depends loosely on |
| 92 | ;; *saved-completions-decay-factor*. Completions that have never been | 92 | ;; *saved-completions-decay-factor*. Completions that have never been |
| @@ -141,8 +141,8 @@ | |||
| 141 | ;; App --> Appropriately] | 141 | ;; App --> Appropriately] |
| 142 | ;; | 142 | ;; |
| 143 | ;; INITIALIZATION | 143 | ;; INITIALIZATION |
| 144 | ;; The form `(initialize-completions)' initializes the completion system by | 144 | ;; The form `(completion-initialize)' initializes the completion system by |
| 145 | ;; trying to load in the user's completions. After the first cal, further | 145 | ;; trying to load in the user's completions. After the first call, further |
| 146 | ;; calls have no effect so one should be careful not to put the form in a | 146 | ;; calls have no effect so one should be careful not to put the form in a |
| 147 | ;; site's standard site-init file. | 147 | ;; site's standard site-init file. |
| 148 | ;; | 148 | ;; |
| @@ -180,7 +180,7 @@ | |||
| 180 | ;; complete | 180 | ;; complete |
| 181 | ;; Inserts a completion at point | 181 | ;; Inserts a completion at point |
| 182 | ;; | 182 | ;; |
| 183 | ;; initialize-completions | 183 | ;; completion-initialize |
| 184 | ;; Loads the completions file and sets up so that exiting emacs will | 184 | ;; Loads the completions file and sets up so that exiting emacs will |
| 185 | ;; save them. | 185 | ;; save them. |
| 186 | ;; | 186 | ;; |
| @@ -286,59 +286,65 @@ | |||
| 286 | 286 | ||
| 287 | 287 | ||
| 288 | (defcustom enable-completion t | 288 | (defcustom enable-completion t |
| 289 | "*Non-nil means enable recording and saving of completions. | 289 | "Non-nil means enable recording and saving of completions. |
| 290 | If nil, no new words are added to the database or saved to the init file." | 290 | If nil, no new words are added to the database or saved to the init file." |
| 291 | :type 'boolean | 291 | :type 'boolean |
| 292 | :group 'completion) | 292 | :group 'completion) |
| 293 | 293 | ||
| 294 | (defcustom save-completions-flag t | 294 | (defcustom save-completions-flag t |
| 295 | "*Non-nil means save most-used completions when exiting Emacs. | 295 | "Non-nil means save most-used completions when exiting Emacs. |
| 296 | See also `save-completions-retention-time'." | 296 | See also `save-completions-retention-time'." |
| 297 | :type 'boolean | 297 | :type 'boolean |
| 298 | :group 'completion) | 298 | :group 'completion) |
| 299 | 299 | ||
| 300 | (defcustom save-completions-file-name (convert-standard-filename "~/.completions") | 300 | (defcustom save-completions-file-name |
| 301 | "*The filename to save completions to." | 301 | (let ((olddef (convert-standard-filename "~/.completions"))) |
| 302 | (cond | ||
| 303 | ((file-readable-p olddef) olddef) | ||
| 304 | ((file-directory-p (convert-standard-filename "~/.emacs.d/")) | ||
| 305 | (convert-standard-filename (expand-file-name completions "~/.emacs.d/"))) | ||
| 306 | (t olddef))) | ||
| 307 | "The filename to save completions to." | ||
| 302 | :type 'file | 308 | :type 'file |
| 303 | :group 'completion) | 309 | :group 'completion) |
| 304 | 310 | ||
| 305 | (defcustom save-completions-retention-time 336 | 311 | (defcustom save-completions-retention-time 336 |
| 306 | "*Discard a completion if unused for this many hours. | 312 | "Discard a completion if unused for this many hours. |
| 307 | \(1 day = 24, 1 week = 168). If this is 0, non-permanent completions | 313 | \(1 day = 24, 1 week = 168). If this is 0, non-permanent completions |
| 308 | will not be saved unless these are used. Default is two weeks." | 314 | will not be saved unless these are used. Default is two weeks." |
| 309 | :type 'integer | 315 | :type 'integer |
| 310 | :group 'completion) | 316 | :group 'completion) |
| 311 | 317 | ||
| 312 | (defcustom completion-on-separator-character nil | 318 | (defcustom completion-on-separator-character nil |
| 313 | "*Non-nil means separator characters mark previous word as used. | 319 | "Non-nil means separator characters mark previous word as used. |
| 314 | This means the word will be saved as a completion." | 320 | This means the word will be saved as a completion." |
| 315 | :type 'boolean | 321 | :type 'boolean |
| 316 | :group 'completion) | 322 | :group 'completion) |
| 317 | 323 | ||
| 318 | (defcustom completions-file-versions-kept kept-new-versions | 324 | (defcustom completions-file-versions-kept kept-new-versions |
| 319 | "*Number of versions to keep for the saved completions file." | 325 | "Number of versions to keep for the saved completions file." |
| 320 | :type 'integer | 326 | :type 'integer |
| 321 | :group 'completion) | 327 | :group 'completion) |
| 322 | 328 | ||
| 323 | (defcustom completion-prompt-speed-threshold 4800 | 329 | (defcustom completion-prompt-speed-threshold 4800 |
| 324 | "*Minimum output speed at which to display next potential completion." | 330 | "Minimum output speed at which to display next potential completion." |
| 325 | :type 'integer | 331 | :type 'integer |
| 326 | :group 'completion) | 332 | :group 'completion) |
| 327 | 333 | ||
| 328 | (defcustom completion-cdabbrev-prompt-flag nil | 334 | (defcustom completion-cdabbrev-prompt-flag nil |
| 329 | "*If non-nil, the next completion prompt does a cdabbrev search. | 335 | "If non-nil, the next completion prompt does a cdabbrev search. |
| 330 | This can be time consuming." | 336 | This can be time consuming." |
| 331 | :type 'boolean | 337 | :type 'boolean |
| 332 | :group 'completion) | 338 | :group 'completion) |
| 333 | 339 | ||
| 334 | (defcustom completion-search-distance 15000 | 340 | (defcustom completion-search-distance 15000 |
| 335 | "*How far to search in the buffer when looking for completions. | 341 | "How far to search in the buffer when looking for completions. |
| 336 | In number of characters. If nil, search the whole buffer." | 342 | In number of characters. If nil, search the whole buffer." |
| 337 | :type 'integer | 343 | :type 'integer |
| 338 | :group 'completion) | 344 | :group 'completion) |
| 339 | 345 | ||
| 340 | (defcustom completions-merging-modes '(lisp c) | 346 | (defcustom completions-merging-modes '(lisp c) |
| 341 | "*List of modes {`c' or `lisp'} for automatic completions merging. | 347 | "List of modes {`c' or `lisp'} for automatic completions merging. |
| 342 | Definitions from visited files which have these modes | 348 | Definitions from visited files which have these modes |
| 343 | are automatically added to the completion database." | 349 | are automatically added to the completion database." |
| 344 | :type '(set (const lisp) (const c)) | 350 | :type '(set (const lisp) (const c)) |
| @@ -495,7 +501,7 @@ Used to decide whether to save completions.") | |||
| 495 | ;; Table definitions | 501 | ;; Table definitions |
| 496 | ;;----------------------------------------------- | 502 | ;;----------------------------------------------- |
| 497 | 503 | ||
| 498 | (defun cmpl-make-standard-completion-syntax-table () | 504 | (defconst completion-standard-syntax-table |
| 499 | (let ((table (make-syntax-table)) | 505 | (let ((table (make-syntax-table)) |
| 500 | i) | 506 | i) |
| 501 | ;; Default syntax is whitespace. | 507 | ;; Default syntax is whitespace. |
| @@ -523,36 +529,9 @@ Used to decide whether to save completions.") | |||
| 523 | (modify-syntax-entry char "w" table))) | 529 | (modify-syntax-entry char "w" table))) |
| 524 | table)) | 530 | table)) |
| 525 | 531 | ||
| 526 | (defconst cmpl-standard-syntax-table (cmpl-make-standard-completion-syntax-table)) | 532 | (defvar completion-syntax-table completion-standard-syntax-table |
| 527 | |||
| 528 | (defun cmpl-make-lisp-completion-syntax-table () | ||
| 529 | (let ((table (copy-syntax-table cmpl-standard-syntax-table)) | ||
| 530 | (symbol-chars '(?! ?& ?? ?= ?^))) | ||
| 531 | (dolist (char symbol-chars) | ||
| 532 | (modify-syntax-entry char "_" table)) | ||
| 533 | table)) | ||
| 534 | |||
| 535 | (defun cmpl-make-c-completion-syntax-table () | ||
| 536 | (let ((table (copy-syntax-table cmpl-standard-syntax-table)) | ||
| 537 | (separator-chars '(?+ ?* ?/ ?: ?%))) | ||
| 538 | (dolist (char separator-chars) | ||
| 539 | (modify-syntax-entry char " " table)) | ||
| 540 | table)) | ||
| 541 | |||
| 542 | (defun cmpl-make-fortran-completion-syntax-table () | ||
| 543 | (let ((table (copy-syntax-table cmpl-standard-syntax-table)) | ||
| 544 | (separator-chars '(?+ ?- ?* ?/ ?:))) | ||
| 545 | (dolist (char separator-chars) | ||
| 546 | (modify-syntax-entry char " " table)) | ||
| 547 | table)) | ||
| 548 | |||
| 549 | (defconst cmpl-lisp-syntax-table (cmpl-make-lisp-completion-syntax-table)) | ||
| 550 | (defconst cmpl-c-syntax-table (cmpl-make-c-completion-syntax-table)) | ||
| 551 | (defconst cmpl-fortran-syntax-table (cmpl-make-fortran-completion-syntax-table)) | ||
| 552 | |||
| 553 | (defvar cmpl-syntax-table cmpl-standard-syntax-table | ||
| 554 | "This variable holds the current completion syntax table.") | 533 | "This variable holds the current completion syntax table.") |
| 555 | (make-variable-buffer-local 'cmpl-syntax-table) | 534 | (make-variable-buffer-local 'completion-syntax-table) |
| 556 | 535 | ||
| 557 | ;;----------------------------------------------- | 536 | ;;----------------------------------------------- |
| 558 | ;; Symbol functions | 537 | ;; Symbol functions |
| @@ -561,43 +540,34 @@ Used to decide whether to save completions.") | |||
| 561 | "Holds first character of symbol, after any completion symbol function.") | 540 | "Holds first character of symbol, after any completion symbol function.") |
| 562 | (defvar cmpl-symbol-end nil | 541 | (defvar cmpl-symbol-end nil |
| 563 | "Holds last character of symbol, after any completion symbol function.") | 542 | "Holds last character of symbol, after any completion symbol function.") |
| 564 | ;; These are temp. vars. we use to avoid using let. | ||
| 565 | ;; Why ? Small speed improvement. | ||
| 566 | (defvar cmpl-saved-syntax nil) | ||
| 567 | (defvar cmpl-saved-point nil) | ||
| 568 | 543 | ||
| 569 | (defun symbol-under-point () | 544 | (defun symbol-under-point () |
| 570 | "Return the symbol that the point is currently on. | 545 | "Return the symbol that the point is currently on. |
| 571 | But only if it is longer than `completion-min-length'." | 546 | But only if it is longer than `completion-min-length'." |
| 572 | (setq cmpl-saved-syntax (syntax-table)) | 547 | (with-syntax-table completion-syntax-table |
| 573 | (unwind-protect | 548 | (when (memq (char-syntax (following-char)) '(?w ?_)) |
| 574 | (progn | 549 | ;; Cursor is on following-char and after preceding-char |
| 575 | (set-syntax-table cmpl-syntax-table) | 550 | (let ((saved-point (point))) |
| 576 | (cond | 551 | (setq cmpl-symbol-start (scan-sexps (1+ saved-point) -1) |
| 577 | ;; Cursor is on following-char and after preceding-char | 552 | cmpl-symbol-end (scan-sexps saved-point 1)) |
| 578 | ((memq (char-syntax (following-char)) '(?w ?_)) | 553 | ;; Remove chars to ignore at the start. |
| 579 | (setq cmpl-saved-point (point) | 554 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) |
| 580 | cmpl-symbol-start (scan-sexps (1+ cmpl-saved-point) -1) | 555 | (goto-char cmpl-symbol-start) |
| 581 | cmpl-symbol-end (scan-sexps cmpl-saved-point 1)) | 556 | (forward-word 1) |
| 582 | ;; Remove chars to ignore at the start. | 557 | (setq cmpl-symbol-start (point)) |
| 583 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) | 558 | (goto-char saved-point))) |
| 584 | (goto-char cmpl-symbol-start) | 559 | ;; Remove chars to ignore at the end. |
| 585 | (forward-word 1) | 560 | (cond ((= (char-syntax (char-after (1- cmpl-symbol-end))) ?w) |
| 586 | (setq cmpl-symbol-start (point)) | 561 | (goto-char cmpl-symbol-end) |
| 587 | (goto-char cmpl-saved-point))) | 562 | (forward-word -1) |
| 588 | ;; Remove chars to ignore at the end. | 563 | (setq cmpl-symbol-end (point)) |
| 589 | (cond ((= (char-syntax (char-after (1- cmpl-symbol-end))) ?w) | 564 | (goto-char saved-point))) |
| 590 | (goto-char cmpl-symbol-end) | 565 | ;; Return completion if the length is reasonable. |
| 591 | (forward-word -1) | 566 | (if (and (<= completion-min-length |
| 592 | (setq cmpl-symbol-end (point)) | 567 | (- cmpl-symbol-end cmpl-symbol-start)) |
| 593 | (goto-char cmpl-saved-point))) | 568 | (<= (- cmpl-symbol-end cmpl-symbol-start) |
| 594 | ;; Return completion if the length is reasonable. | 569 | completion-max-length)) |
| 595 | (if (and (<= completion-min-length | 570 | (buffer-substring cmpl-symbol-start cmpl-symbol-end)))))) |
| 596 | (- cmpl-symbol-end cmpl-symbol-start)) | ||
| 597 | (<= (- cmpl-symbol-end cmpl-symbol-start) | ||
| 598 | completion-max-length)) | ||
| 599 | (buffer-substring cmpl-symbol-start cmpl-symbol-end))))) | ||
| 600 | (set-syntax-table cmpl-saved-syntax))) | ||
| 601 | 571 | ||
| 602 | ;; tests for symbol-under-point | 572 | ;; tests for symbol-under-point |
| 603 | ;; `^' indicates cursor pos. where value is returned | 573 | ;; `^' indicates cursor pos. where value is returned |
| @@ -615,46 +585,42 @@ But only if it is longer than `completion-min-length'." | |||
| 615 | "Return a string of the symbol immediately before point. | 585 | "Return a string of the symbol immediately before point. |
| 616 | Returns nil if there isn't one longer than `completion-min-length'." | 586 | Returns nil if there isn't one longer than `completion-min-length'." |
| 617 | ;; This is called when a word separator is typed so it must be FAST ! | 587 | ;; This is called when a word separator is typed so it must be FAST ! |
| 618 | (setq cmpl-saved-syntax (syntax-table)) | 588 | (with-syntax-table completion-syntax-table |
| 619 | (unwind-protect | 589 | ;; Cursor is on following-char and after preceding-char |
| 620 | (progn | 590 | (cond ((= (setq cmpl-preceding-syntax (char-syntax (preceding-char))) ?_) |
| 621 | (set-syntax-table cmpl-syntax-table) | 591 | ;; Number of chars to ignore at end. |
| 622 | ;; Cursor is on following-char and after preceding-char | 592 | (setq cmpl-symbol-end (point) |
| 623 | (cond ((= (setq cmpl-preceding-syntax (char-syntax (preceding-char))) ?_) | 593 | cmpl-symbol-start (scan-sexps cmpl-symbol-end -1)) |
| 624 | ;; Number of chars to ignore at end. | 594 | ;; Remove chars to ignore at the start. |
| 625 | (setq cmpl-symbol-end (point) | 595 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) |
| 626 | cmpl-symbol-start (scan-sexps cmpl-symbol-end -1)) | 596 | (goto-char cmpl-symbol-start) |
| 627 | ;; Remove chars to ignore at the start. | 597 | (forward-word 1) |
| 628 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) | 598 | (setq cmpl-symbol-start (point)) |
| 629 | (goto-char cmpl-symbol-start) | 599 | (goto-char cmpl-symbol-end))) |
| 630 | (forward-word 1) | 600 | ;; Return value if long enough. |
| 631 | (setq cmpl-symbol-start (point)) | 601 | (if (>= cmpl-symbol-end |
| 632 | (goto-char cmpl-symbol-end))) | 602 | (+ cmpl-symbol-start completion-min-length)) |
| 633 | ;; Return value if long enough. | 603 | (buffer-substring cmpl-symbol-start cmpl-symbol-end))) |
| 634 | (if (>= cmpl-symbol-end | 604 | ((= cmpl-preceding-syntax ?w) |
| 635 | (+ cmpl-symbol-start completion-min-length)) | 605 | ;; chars to ignore at end |
| 636 | (buffer-substring cmpl-symbol-start cmpl-symbol-end))) | 606 | (let ((saved-point (point))) |
| 637 | ((= cmpl-preceding-syntax ?w) | 607 | (setq cmpl-symbol-start (scan-sexps saved-point -1)) |
| 638 | ;; chars to ignore at end | 608 | ;; take off chars. from end |
| 639 | (setq cmpl-saved-point (point) | 609 | (forward-word -1) |
| 640 | cmpl-symbol-start (scan-sexps cmpl-saved-point -1)) | 610 | (setq cmpl-symbol-end (point)) |
| 641 | ;; take off chars. from end | 611 | ;; remove chars to ignore at the start |
| 642 | (forward-word -1) | 612 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) |
| 643 | (setq cmpl-symbol-end (point)) | 613 | (goto-char cmpl-symbol-start) |
| 644 | ;; remove chars to ignore at the start | 614 | (forward-word 1) |
| 645 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) | 615 | (setq cmpl-symbol-start (point)))) |
| 646 | (goto-char cmpl-symbol-start) | 616 | ;; Restore state. |
| 647 | (forward-word 1) | 617 | (goto-char saved-point) |
| 648 | (setq cmpl-symbol-start (point)))) | 618 | ;; Return completion if the length is reasonable |
| 649 | ;; Restore state. | 619 | (if (and (<= completion-min-length |
| 650 | (goto-char cmpl-saved-point) | 620 | (- cmpl-symbol-end cmpl-symbol-start)) |
| 651 | ;; Return completion if the length is reasonable | 621 | (<= (- cmpl-symbol-end cmpl-symbol-start) |
| 652 | (if (and (<= completion-min-length | 622 | completion-max-length)) |
| 653 | (- cmpl-symbol-end cmpl-symbol-start)) | 623 | (buffer-substring cmpl-symbol-start cmpl-symbol-end))))))) |
| 654 | (<= (- cmpl-symbol-end cmpl-symbol-start) | ||
| 655 | completion-max-length)) | ||
| 656 | (buffer-substring cmpl-symbol-start cmpl-symbol-end))))) | ||
| 657 | (set-syntax-table cmpl-saved-syntax))) | ||
| 658 | 624 | ||
| 659 | ;; tests for symbol-before-point | 625 | ;; tests for symbol-before-point |
| 660 | ;; `^' indicates cursor pos. where value is returned | 626 | ;; `^' indicates cursor pos. where value is returned |
| @@ -675,17 +641,11 @@ Returns nil if there isn't one longer than `completion-min-length'." | |||
| 675 | ;; copying all the code. | 641 | ;; copying all the code. |
| 676 | ;; However, it is only used by the completion string prompter. | 642 | ;; However, it is only used by the completion string prompter. |
| 677 | ;; If it comes into common use, it could be rewritten. | 643 | ;; If it comes into common use, it could be rewritten. |
| 678 | (cond ((memq (progn | 644 | (if (memq (with-syntax-table completion-syntax-table |
| 679 | (setq cmpl-saved-syntax (syntax-table)) | 645 | (char-syntax (following-char))) |
| 680 | (unwind-protect | 646 | '(?w ?_)) |
| 681 | (progn | 647 | (symbol-under-point) |
| 682 | (set-syntax-table cmpl-syntax-table) | 648 | (symbol-before-point))) |
| 683 | (char-syntax (following-char))) | ||
| 684 | (set-syntax-table cmpl-saved-syntax))) | ||
| 685 | '(?w ?_)) | ||
| 686 | (symbol-under-point)) | ||
| 687 | (t | ||
| 688 | (symbol-before-point)))) | ||
| 689 | 649 | ||
| 690 | 650 | ||
| 691 | (defun symbol-before-point-for-complete () | 651 | (defun symbol-before-point-for-complete () |
| @@ -693,28 +653,23 @@ Returns nil if there isn't one longer than `completion-min-length'." | |||
| 693 | ;; or nil if there isn't one. Like symbol-before-point but doesn't trim the | 653 | ;; or nil if there isn't one. Like symbol-before-point but doesn't trim the |
| 694 | ;; end chars." | 654 | ;; end chars." |
| 695 | ;; Cursor is on following-char and after preceding-char | 655 | ;; Cursor is on following-char and after preceding-char |
| 696 | (setq cmpl-saved-syntax (syntax-table)) | 656 | (with-syntax-table completion-syntax-table |
| 697 | (unwind-protect | 657 | (cond ((memq (setq cmpl-preceding-syntax (char-syntax (preceding-char))) |
| 698 | (progn | 658 | '(?_ ?w)) |
| 699 | (set-syntax-table cmpl-syntax-table) | 659 | (setq cmpl-symbol-end (point) |
| 700 | (cond ((memq (setq cmpl-preceding-syntax (char-syntax (preceding-char))) | 660 | cmpl-symbol-start (scan-sexps cmpl-symbol-end -1)) |
| 701 | '(?_ ?w)) | 661 | ;; Remove chars to ignore at the start. |
| 702 | (setq cmpl-symbol-end (point) | 662 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) |
| 703 | cmpl-symbol-start (scan-sexps cmpl-symbol-end -1)) | 663 | (goto-char cmpl-symbol-start) |
| 704 | ;; Remove chars to ignore at the start. | 664 | (forward-word 1) |
| 705 | (cond ((= (char-syntax (char-after cmpl-symbol-start)) ?w) | 665 | (setq cmpl-symbol-start (point)) |
| 706 | (goto-char cmpl-symbol-start) | 666 | (goto-char cmpl-symbol-end))) |
| 707 | (forward-word 1) | 667 | ;; Return completion if the length is reasonable. |
| 708 | (setq cmpl-symbol-start (point)) | 668 | (if (and (<= completion-prefix-min-length |
| 709 | (goto-char cmpl-symbol-end))) | 669 | (- cmpl-symbol-end cmpl-symbol-start)) |
| 710 | ;; Return completion if the length is reasonable. | 670 | (<= (- cmpl-symbol-end cmpl-symbol-start) |
| 711 | (if (and (<= completion-prefix-min-length | 671 | completion-max-length)) |
| 712 | (- cmpl-symbol-end cmpl-symbol-start)) | 672 | (buffer-substring cmpl-symbol-start cmpl-symbol-end)))))) |
| 713 | (<= (- cmpl-symbol-end cmpl-symbol-start) | ||
| 714 | completion-max-length)) | ||
| 715 | (buffer-substring cmpl-symbol-start cmpl-symbol-end))))) | ||
| 716 | ;; Restore syntax table. | ||
| 717 | (set-syntax-table cmpl-saved-syntax))) | ||
| 718 | 673 | ||
| 719 | ;; tests for symbol-before-point-for-complete | 674 | ;; tests for symbol-before-point-for-complete |
| 720 | ;; `^' indicates cursor pos. where value is returned | 675 | ;; `^' indicates cursor pos. where value is returned |
| @@ -866,7 +821,7 @@ This is sensitive to `case-fold-search'." | |||
| 866 | (setq saved-point (point) | 821 | (setq saved-point (point) |
| 867 | saved-syntax (syntax-table)) | 822 | saved-syntax (syntax-table)) |
| 868 | ;; Restore completion state | 823 | ;; Restore completion state |
| 869 | (set-syntax-table cmpl-syntax-table) | 824 | (set-syntax-table completion-syntax-table) |
| 870 | (goto-char cdabbrev-current-point) | 825 | (goto-char cdabbrev-current-point) |
| 871 | ;; Loop looking for completions | 826 | ;; Loop looking for completions |
| 872 | (while | 827 | (while |
| @@ -1010,8 +965,8 @@ Each symbol is bound to a single completion entry.") | |||
| 1010 | 965 | ||
| 1011 | ;; CONSTRUCTOR | 966 | ;; CONSTRUCTOR |
| 1012 | (defun make-completion (string) | 967 | (defun make-completion (string) |
| 1013 | "Return a list of a completion entry." | 968 | "Return a completion entry." |
| 1014 | (list (list string 0 nil current-completion-source))) | 969 | (list string 0 nil current-completion-source)) |
| 1015 | 970 | ||
| 1016 | ;; Obsolete | 971 | ;; Obsolete |
| 1017 | ;;(defmacro cmpl-prefix-entry-symbol (completion-entry) | 972 | ;;(defmacro cmpl-prefix-entry-symbol (completion-entry) |
| @@ -1026,11 +981,9 @@ Each symbol is bound to a single completion entry.") | |||
| 1026 | 981 | ||
| 1027 | ;; READER Macros | 982 | ;; READER Macros |
| 1028 | 983 | ||
| 1029 | (defmacro cmpl-prefix-entry-head (prefix-entry) | 984 | (defalias 'cmpl-prefix-entry-head 'car) |
| 1030 | (list 'car prefix-entry)) | ||
| 1031 | 985 | ||
| 1032 | (defmacro cmpl-prefix-entry-tail (prefix-entry) | 986 | (defalias 'cmpl-prefix-entry-tail 'cdr) |
| 1033 | (list 'cdr prefix-entry)) | ||
| 1034 | 987 | ||
| 1035 | ;; WRITER Macros | 988 | ;; WRITER Macros |
| 1036 | 989 | ||
| @@ -1092,17 +1045,17 @@ Each symbol is bound to a single completion entry.") | |||
| 1092 | ;; These are the internal functions used to update the datebase | 1045 | ;; These are the internal functions used to update the datebase |
| 1093 | ;; | 1046 | ;; |
| 1094 | ;; | 1047 | ;; |
| 1095 | (defvar completion-to-accept nil) | 1048 | (defvar completion-to-accept nil |
| 1096 | ;;"Set to a string that is pending its acceptance." | 1049 | "Set to a string that is pending its acceptance.") |
| 1097 | ;; this checked by the top level reading functions | 1050 | ;; this checked by the top level reading functions |
| 1098 | 1051 | ||
| 1099 | (defvar cmpl-db-downcase-string nil) | 1052 | (defvar cmpl-db-downcase-string nil |
| 1100 | ;; "Setup by find-exact-completion, etc. The given string, downcased." | 1053 | "Setup by `find-exact-completion', etc. The given string, downcased.") |
| 1101 | (defvar cmpl-db-symbol nil) | 1054 | (defvar cmpl-db-symbol nil |
| 1102 | ;; "The interned symbol corresponding to cmpl-db-downcase-string. | 1055 | "The interned symbol corresponding to `cmpl-db-downcase-string'. |
| 1103 | ;; Set up by cmpl-db-symbol." | 1056 | Set up by `cmpl-db-symbol'.") |
| 1104 | (defvar cmpl-db-prefix-symbol nil) | 1057 | (defvar cmpl-db-prefix-symbol nil |
| 1105 | ;; "The interned prefix symbol corresponding to cmpl-db-downcase-string." | 1058 | "The interned prefix symbol corresponding to `cmpl-db-downcase-string'.") |
| 1106 | (defvar cmpl-db-entry nil) | 1059 | (defvar cmpl-db-entry nil) |
| 1107 | (defvar cmpl-db-debug-p nil | 1060 | (defvar cmpl-db-debug-p nil |
| 1108 | "Set to t if you want to debug the database.") | 1061 | "Set to t if you want to debug the database.") |
| @@ -1190,7 +1143,7 @@ Returns the completion entry." | |||
| 1190 | (or (find-exact-completion string) | 1143 | (or (find-exact-completion string) |
| 1191 | ;; not there | 1144 | ;; not there |
| 1192 | (let (;; create an entry | 1145 | (let (;; create an entry |
| 1193 | (entry (make-completion string)) | 1146 | (entry (list (make-completion string))) |
| 1194 | ;; setup the prefix | 1147 | ;; setup the prefix |
| 1195 | (prefix-entry (find-cmpl-prefix-entry | 1148 | (prefix-entry (find-cmpl-prefix-entry |
| 1196 | (substring cmpl-db-downcase-string 0 | 1149 | (substring cmpl-db-downcase-string 0 |
| @@ -1244,7 +1197,7 @@ Returns the completion entry." | |||
| 1244 | cmpl-db-entry) | 1197 | cmpl-db-entry) |
| 1245 | ;; not there | 1198 | ;; not there |
| 1246 | (let (;; create an entry | 1199 | (let (;; create an entry |
| 1247 | (entry (make-completion completion-string)) | 1200 | (entry (list (make-completion completion-string))) |
| 1248 | ;; setup the prefix | 1201 | ;; setup the prefix |
| 1249 | (prefix-entry (find-cmpl-prefix-entry | 1202 | (prefix-entry (find-cmpl-prefix-entry |
| 1250 | (substring cmpl-db-downcase-string 0 | 1203 | (substring cmpl-db-downcase-string 0 |
| @@ -1650,7 +1603,7 @@ Prefix args :: | |||
| 1650 | (setq cmpl-current-index (+ cmpl-current-index (or arg 1)))) | 1603 | (setq cmpl-current-index (+ cmpl-current-index (or arg 1)))) |
| 1651 | (t | 1604 | (t |
| 1652 | (if (not cmpl-initialized-p) | 1605 | (if (not cmpl-initialized-p) |
| 1653 | (initialize-completions)) ;; make sure everything's loaded | 1606 | (completion-initialize)) ;; make sure everything's loaded |
| 1654 | (cond ((consp current-prefix-arg) ;; control-u | 1607 | (cond ((consp current-prefix-arg) ;; control-u |
| 1655 | (setq arg 0) | 1608 | (setq arg 0) |
| 1656 | (setq cmpl-leave-point-at-start t)) | 1609 | (setq cmpl-leave-point-at-start t)) |
| @@ -1752,9 +1705,8 @@ Prefix args :: | |||
| 1752 | (let ((completions-merging-modes nil)) | 1705 | (let ((completions-merging-modes nil)) |
| 1753 | (setq buffer (find-file-noselect file)))) | 1706 | (setq buffer (find-file-noselect file)))) |
| 1754 | (unwind-protect | 1707 | (unwind-protect |
| 1755 | (save-excursion | 1708 | (with-current-buffer buffer |
| 1756 | (set-buffer buffer) | 1709 | (add-completions-from-buffer)) |
| 1757 | (add-completions-from-buffer)) | ||
| 1758 | (if (not buffer-already-there-p) | 1710 | (if (not buffer-already-there-p) |
| 1759 | (kill-buffer buffer))))) | 1711 | (kill-buffer buffer))))) |
| 1760 | 1712 | ||
| @@ -1781,7 +1733,7 @@ Prefix args :: | |||
| 1781 | start-num))))) | 1733 | start-num))))) |
| 1782 | 1734 | ||
| 1783 | ;; Find file hook | 1735 | ;; Find file hook |
| 1784 | (defun cmpl-find-file-hook () | 1736 | (defun completion-find-file-hook () |
| 1785 | (cond (enable-completion | 1737 | (cond (enable-completion |
| 1786 | (cond ((and (memq major-mode '(emacs-lisp-mode lisp-mode)) | 1738 | (cond ((and (memq major-mode '(emacs-lisp-mode lisp-mode)) |
| 1787 | (memq 'lisp completions-merging-modes)) | 1739 | (memq 'lisp completions-merging-modes)) |
| @@ -1864,7 +1816,7 @@ Prefix args :: | |||
| 1864 | ;; Whitespace chars (have symbol syntax) | 1816 | ;; Whitespace chars (have symbol syntax) |
| 1865 | ;; Everything else has word syntax | 1817 | ;; Everything else has word syntax |
| 1866 | 1818 | ||
| 1867 | (defun cmpl-make-c-def-completion-syntax-table () | 1819 | (defconst completion-c-def-syntax-table |
| 1868 | (let ((table (make-syntax-table)) | 1820 | (let ((table (make-syntax-table)) |
| 1869 | (whitespace-chars '(? ?\n ?\t ?\f ?\v ?\r)) | 1821 | (whitespace-chars '(? ?\n ?\t ?\f ?\v ?\r)) |
| 1870 | ;; unfortunately the ?( causes the parens to appear unbalanced | 1822 | ;; unfortunately the ?( causes the parens to appear unbalanced |
| @@ -1885,8 +1837,6 @@ Prefix args :: | |||
| 1885 | (modify-syntax-entry ?\} "){" table) | 1837 | (modify-syntax-entry ?\} "){" table) |
| 1886 | table)) | 1838 | table)) |
| 1887 | 1839 | ||
| 1888 | (defconst cmpl-c-def-syntax-table (cmpl-make-c-def-completion-syntax-table)) | ||
| 1889 | |||
| 1890 | ;; Regexps | 1840 | ;; Regexps |
| 1891 | (defconst *c-def-regexp* | 1841 | (defconst *c-def-regexp* |
| 1892 | ;; This stops on lines with possible definitions | 1842 | ;; This stops on lines with possible definitions |
| @@ -1930,81 +1880,77 @@ Prefix args :: | |||
| 1930 | ;; Benchmark -- | 1880 | ;; Benchmark -- |
| 1931 | ;; Sun 3/280-- 1250 lines/sec. | 1881 | ;; Sun 3/280-- 1250 lines/sec. |
| 1932 | 1882 | ||
| 1933 | (let (string next-point char | 1883 | (let (string next-point char) |
| 1934 | (saved-syntax (syntax-table))) | ||
| 1935 | (save-excursion | 1884 | (save-excursion |
| 1936 | (goto-char (point-min)) | 1885 | (goto-char (point-min)) |
| 1937 | (catch 'finish-add-completions | 1886 | (catch 'finish-add-completions |
| 1938 | (unwind-protect | 1887 | (with-syntax-table completion-c-def-syntax-table |
| 1939 | (while t | 1888 | (while t |
| 1940 | ;; we loop here only when scan-sexps fails | 1889 | ;; we loop here only when scan-sexps fails |
| 1941 | ;; (i.e. unbalance exps.) | 1890 | ;; (i.e. unbalance exps.) |
| 1942 | (set-syntax-table cmpl-c-def-syntax-table) | 1891 | (condition-case e |
| 1943 | (condition-case e | 1892 | (while t |
| 1944 | (while t | 1893 | (re-search-forward *c-def-regexp*) |
| 1945 | (re-search-forward *c-def-regexp*) | 1894 | (cond |
| 1946 | (cond | 1895 | ((= (preceding-char) ?#) |
| 1947 | ((= (preceding-char) ?#) | 1896 | ;; preprocessor macro, see if it's one we handle |
| 1948 | ;; preprocessor macro, see if it's one we handle | 1897 | (setq string (buffer-substring (point) (+ (point) 6))) |
| 1949 | (setq string (buffer-substring (point) (+ (point) 6))) | 1898 | (cond ((member string '("define" "ifdef ")) |
| 1950 | (cond ((or (string-equal string "define") | 1899 | ;; skip forward over definition symbol |
| 1951 | (string-equal string "ifdef ")) | 1900 | ;; and add it to database |
| 1952 | ;; skip forward over definition symbol | 1901 | (and (forward-word 2) |
| 1953 | ;; and add it to database | 1902 | (setq string (symbol-before-point)) |
| 1954 | (and (forward-word 2) | 1903 | ;;(push string foo) |
| 1955 | (setq string (symbol-before-point)) | 1904 | (add-completion-to-tail-if-new string))))) |
| 1956 | ;;(push string foo) | 1905 | (t |
| 1957 | (add-completion-to-tail-if-new string))))) | 1906 | ;; C definition |
| 1958 | (t | 1907 | (setq next-point (point)) |
| 1959 | ;; C definition | 1908 | (while (and |
| 1960 | (setq next-point (point)) | 1909 | next-point |
| 1961 | (while (and | 1910 | ;; scan to next separator char. |
| 1962 | next-point | 1911 | (setq next-point (scan-sexps next-point 1))) |
| 1963 | ;; scan to next separator char. | 1912 | ;; position the point on the word we want to add |
| 1964 | (setq next-point (scan-sexps next-point 1))) | 1913 | (goto-char next-point) |
| 1965 | ;; position the point on the word we want to add | 1914 | (while (= (setq char (following-char)) ?*) |
| 1966 | (goto-char next-point) | 1915 | ;; handle pointer ref |
| 1967 | (while (= (setq char (following-char)) ?*) | 1916 | ;; move to next separator char. |
| 1968 | ;; handle pointer ref | 1917 | (goto-char |
| 1969 | ;; move to next separator char. | 1918 | (setq next-point (scan-sexps (point) 1)))) |
| 1970 | (goto-char | 1919 | (forward-word -1) |
| 1971 | (setq next-point (scan-sexps (point) 1)))) | 1920 | ;; add to database |
| 1972 | (forward-word -1) | 1921 | (if (setq string (symbol-under-point)) |
| 1973 | ;; add to database | 1922 | ;; (push string foo) |
| 1974 | (if (setq string (symbol-under-point)) | 1923 | (add-completion-to-tail-if-new string) |
| 1975 | ;; (push string foo) | 1924 | ;; Local TMC hack (useful for parsing paris.h) |
| 1976 | (add-completion-to-tail-if-new string) | 1925 | (if (and (looking-at "_AP") ;; "ansi prototype" |
| 1977 | ;; Local TMC hack (useful for parsing paris.h) | 1926 | (progn |
| 1978 | (if (and (looking-at "_AP") ;; "ansi prototype" | 1927 | (forward-word -1) |
| 1979 | (progn | 1928 | (setq string |
| 1980 | (forward-word -1) | 1929 | (symbol-under-point)))) |
| 1981 | (setq string | 1930 | (add-completion-to-tail-if-new string))) |
| 1982 | (symbol-under-point)))) | 1931 | ;; go to next |
| 1983 | (add-completion-to-tail-if-new string))) | 1932 | (goto-char next-point) |
| 1984 | ;; go to next | 1933 | ;; (push (format "%c" (following-char)) foo) |
| 1985 | (goto-char next-point) | 1934 | (if (= (char-syntax char) ?\() |
| 1986 | ;; (push (format "%c" (following-char)) foo) | 1935 | ;; if on an opening delimiter, go to end |
| 1987 | (if (= (char-syntax char) ?\() | 1936 | (while (= (char-syntax char) ?\() |
| 1988 | ;; if on an opening delimiter, go to end | 1937 | (setq next-point (scan-sexps next-point 1) |
| 1989 | (while (= (char-syntax char) ?\() | 1938 | char (char-after next-point))) |
| 1990 | (setq next-point (scan-sexps next-point 1) | 1939 | (or (= char ?,) |
| 1991 | char (char-after next-point))) | 1940 | ;; Current char is an end char. |
| 1992 | (or (= char ?,) | 1941 | (setq next-point nil))))))) |
| 1993 | ;; Current char is an end char. | 1942 | (search-failed ;;done |
| 1994 | (setq next-point nil))))))) | 1943 | (throw 'finish-add-completions t)) |
| 1995 | (search-failed ;;done | 1944 | (error |
| 1996 | (throw 'finish-add-completions t)) | 1945 | ;; Check for failure in scan-sexps |
| 1997 | (error | 1946 | (if (or (string-equal (nth 1 e) |
| 1998 | ;; Check for failure in scan-sexps | 1947 | "Containing expression ends prematurely") |
| 1999 | (if (or (string-equal (nth 1 e) | 1948 | (string-equal (nth 1 e) "Unbalanced parentheses")) |
| 2000 | "Containing expression ends prematurely") | 1949 | ;; unbalanced paren., keep going |
| 2001 | (string-equal (nth 1 e) "Unbalanced parentheses")) | 1950 | ;;(ding) |
| 2002 | ;; unbalanced paren., keep going | 1951 | (forward-line 1) |
| 2003 | ;;(ding) | 1952 | (message "Error parsing C buffer for completions--please send bug report") |
| 2004 | (forward-line 1) | 1953 | (throw 'finish-add-completions t)))))))))) |
| 2005 | (message "Error parsing C buffer for completions--please send bug report") | ||
| 2006 | (throw 'finish-add-completions t))))) | ||
| 2007 | (set-syntax-table saved-syntax)))))) | ||
| 2008 | 1954 | ||
| 2009 | 1955 | ||
| 2010 | ;;--------------------------------------------------------------------------- | 1956 | ;;--------------------------------------------------------------------------- |
| @@ -2018,7 +1964,8 @@ Prefix args :: | |||
| 2018 | ((not cmpl-completions-accepted-p) | 1964 | ((not cmpl-completions-accepted-p) |
| 2019 | (message "Completions database has not changed - not writing.")) | 1965 | (message "Completions database has not changed - not writing.")) |
| 2020 | (t | 1966 | (t |
| 2021 | (save-completions-to-file))))) | 1967 | (save-completions-to-file)))) |
| 1968 | (cmpl-statistics-block (record-cmpl-kill-emacs))) | ||
| 2022 | 1969 | ||
| 2023 | ;; There is no point bothering to change this again | 1970 | ;; There is no point bothering to change this again |
| 2024 | ;; unless the package changes so much that it matters | 1971 | ;; unless the package changes so much that it matters |
| @@ -2046,7 +1993,7 @@ If file name is not specified, use `save-completions-file-name'." | |||
| 2046 | (if (file-writable-p filename) | 1993 | (if (file-writable-p filename) |
| 2047 | (progn | 1994 | (progn |
| 2048 | (if (not cmpl-initialized-p) | 1995 | (if (not cmpl-initialized-p) |
| 2049 | (initialize-completions));; make sure everything's loaded | 1996 | (completion-initialize)) ;; make sure everything's loaded |
| 2050 | (message "Saving completions to file %s" filename) | 1997 | (message "Saving completions to file %s" filename) |
| 2051 | 1998 | ||
| 2052 | (let* ((delete-old-versions t) | 1999 | (let* ((delete-old-versions t) |
| @@ -2059,9 +2006,7 @@ If file name is not specified, use `save-completions-file-name'." | |||
| 2059 | (total-saved 0) | 2006 | (total-saved 0) |
| 2060 | (backup-filename (completion-backup-filename filename))) | 2007 | (backup-filename (completion-backup-filename filename))) |
| 2061 | 2008 | ||
| 2062 | (save-excursion | 2009 | (with-current-buffer (get-buffer-create " *completion-save-buffer*") |
| 2063 | (get-buffer-create " *completion-save-buffer*") | ||
| 2064 | (set-buffer " *completion-save-buffer*") | ||
| 2065 | (setq buffer-file-name filename) | 2010 | (setq buffer-file-name filename) |
| 2066 | 2011 | ||
| 2067 | (if (not (verify-visited-file-modtime (current-buffer))) | 2012 | (if (not (verify-visited-file-modtime (current-buffer))) |
| @@ -2151,9 +2096,7 @@ If file is not specified, then use `save-completions-file-name'." | |||
| 2151 | (if (not no-message-p) | 2096 | (if (not no-message-p) |
| 2152 | (message "Loading completions from %sfile %s . . ." | 2097 | (message "Loading completions from %sfile %s . . ." |
| 2153 | (if backup-readable-p "backup " "") filename)) | 2098 | (if backup-readable-p "backup " "") filename)) |
| 2154 | (save-excursion | 2099 | (with-current-buffer (get-buffer-create " *completion-save-buffer*") |
| 2155 | (get-buffer-create " *completion-save-buffer*") | ||
| 2156 | (set-buffer " *completion-save-buffer*") | ||
| 2157 | (setq buffer-file-name filename) | 2100 | (setq buffer-file-name filename) |
| 2158 | ;; prepare the buffer to be modified | 2101 | ;; prepare the buffer to be modified |
| 2159 | (clear-visited-file-modtime) | 2102 | (clear-visited-file-modtime) |
| @@ -2161,8 +2104,7 @@ If file is not specified, then use `save-completions-file-name'." | |||
| 2161 | 2104 | ||
| 2162 | (let ((insert-okay-p nil) | 2105 | (let ((insert-okay-p nil) |
| 2163 | (buffer (current-buffer)) | 2106 | (buffer (current-buffer)) |
| 2164 | (current-time (cmpl-hours-since-origin)) | 2107 | string entry last-use-time |
| 2165 | string num-uses entry last-use-time | ||
| 2166 | cmpl-entry cmpl-last-use-time | 2108 | cmpl-entry cmpl-last-use-time |
| 2167 | (current-completion-source cmpl-source-init-file) | 2109 | (current-completion-source cmpl-source-init-file) |
| 2168 | (start-num | 2110 | (start-num |
| @@ -2233,13 +2175,13 @@ If file is not specified, then use `save-completions-file-name'." | |||
| 2233 | start-num))) | 2175 | start-num))) |
| 2234 | )))))) | 2176 | )))))) |
| 2235 | 2177 | ||
| 2236 | (defun initialize-completions () | 2178 | (defun completion-initialize () |
| 2237 | "Load the default completions file. | 2179 | "Load the default completions file. |
| 2238 | Also sets up so that exiting Emacs will automatically save the file." | 2180 | Also sets up so that exiting Emacs will automatically save the file." |
| 2239 | (interactive) | 2181 | (interactive) |
| 2240 | (cond ((not cmpl-initialized-p) | 2182 | (unless cmpl-initialized-p |
| 2241 | (load-completions-from-file))) | 2183 | (load-completions-from-file) |
| 2242 | (setq cmpl-initialized-p t)) | 2184 | (setq cmpl-initialized-p t))) |
| 2243 | 2185 | ||
| 2244 | ;;----------------------------------------------- | 2186 | ;;----------------------------------------------- |
| 2245 | ;; Kill region patch | 2187 | ;; Kill region patch |
| @@ -2302,33 +2244,21 @@ Patched to remove the most recent completion." | |||
| 2302 | ;; Note that because of the way byte compiling works, none of | 2244 | ;; Note that because of the way byte compiling works, none of |
| 2303 | ;; the functions defined with this macro get byte compiled. | 2245 | ;; the functions defined with this macro get byte compiled. |
| 2304 | 2246 | ||
| 2305 | (defmacro def-completion-wrapper (function-name type &optional new-name) | 2247 | (defun completion-def-wrapper (function-name type) |
| 2306 | "Add a call to update the completion database before function execution. | 2248 | "Add a call to update the completion database before function execution. |
| 2307 | TYPE is the type of the wrapper to be added. Can be :before or :under." | 2249 | TYPE is the type of the wrapper to be added. Can be :before or :under." |
| 2308 | (cond ((eq type :separator) | 2250 | (put function-name 'completion-function |
| 2309 | (list 'put (list 'quote function-name) ''completion-function | 2251 | (cdr (assq type |
| 2310 | ''use-completion-before-separator)) | 2252 | '((:separator 'use-completion-before-separator) |
| 2311 | ((eq type :before) | 2253 | (:before 'use-completion-before-point) |
| 2312 | (list 'put (list 'quote function-name) ''completion-function | 2254 | (:backward-under 'use-completion-backward-under) |
| 2313 | ''use-completion-before-point)) | 2255 | (:backward 'use-completion-backward) |
| 2314 | ((eq type :backward-under) | 2256 | (:under 'use-completion-under-point) |
| 2315 | (list 'put (list 'quote function-name) ''completion-function | 2257 | (:under-or-before 'use-completion-under-or-before-point) |
| 2316 | ''use-completion-backward-under)) | 2258 | (:minibuffer-separator 'use-completion-minibuffer-separator)))))) |
| 2317 | ((eq type :backward) | ||
| 2318 | (list 'put (list 'quote function-name) ''completion-function | ||
| 2319 | ''use-completion-backward)) | ||
| 2320 | ((eq type :under) | ||
| 2321 | (list 'put (list 'quote function-name) ''completion-function | ||
| 2322 | ''use-completion-under-point)) | ||
| 2323 | ((eq type :under-or-before) | ||
| 2324 | (list 'put (list 'quote function-name) ''completion-function | ||
| 2325 | ''use-completion-under-or-before-point)) | ||
| 2326 | ((eq type :minibuffer-separator) | ||
| 2327 | (list 'put (list 'quote function-name) ''completion-function | ||
| 2328 | ''use-completion-minibuffer-separator)))) | ||
| 2329 | 2259 | ||
| 2330 | (defun use-completion-minibuffer-separator () | 2260 | (defun use-completion-minibuffer-separator () |
| 2331 | (let ((cmpl-syntax-table cmpl-standard-syntax-table)) | 2261 | (let ((completion-syntax-table completion-standard-syntax-table)) |
| 2332 | (use-completion-before-separator))) | 2262 | (use-completion-before-separator))) |
| 2333 | 2263 | ||
| 2334 | (defun use-completion-backward-under () | 2264 | (defun use-completion-backward-under () |
| @@ -2347,170 +2277,197 @@ TYPE is the type of the wrapper to be added. Can be :before or :under." | |||
| 2347 | (get this-command 'completion-function)) | 2277 | (get this-command 'completion-function)) |
| 2348 | 'use-completion-under-or-before-point))) | 2278 | 'use-completion-under-or-before-point))) |
| 2349 | 2279 | ||
| 2280 | ;; Lisp mode diffs. | ||
| 2281 | |||
| 2282 | (defconst completion-lisp-syntax-table | ||
| 2283 | (let ((table (copy-syntax-table completion-standard-syntax-table)) | ||
| 2284 | (symbol-chars '(?! ?& ?? ?= ?^))) | ||
| 2285 | (dolist (char symbol-chars) | ||
| 2286 | (modify-syntax-entry char "_" table)) | ||
| 2287 | table)) | ||
| 2288 | |||
| 2289 | (defun completion-lisp-mode-hook () | ||
| 2290 | (setq completion-syntax-table completion-lisp-syntax-table) | ||
| 2291 | ;; Lisp Mode diffs | ||
| 2292 | (local-set-key "!" 'self-insert-command) | ||
| 2293 | (local-set-key "&" 'self-insert-command) | ||
| 2294 | (local-set-key "%" 'self-insert-command) | ||
| 2295 | (local-set-key "?" 'self-insert-command) | ||
| 2296 | (local-set-key "=" 'self-insert-command) | ||
| 2297 | (local-set-key "^" 'self-insert-command)) | ||
| 2298 | |||
| 2350 | ;; C mode diffs. | 2299 | ;; C mode diffs. |
| 2351 | 2300 | ||
| 2352 | (defvar c-mode-map) | 2301 | (defconst completion-c-syntax-table |
| 2302 | (let ((table (copy-syntax-table completion-standard-syntax-table)) | ||
| 2303 | (separator-chars '(?+ ?* ?/ ?: ?%))) | ||
| 2304 | (dolist (char separator-chars) | ||
| 2305 | (modify-syntax-entry char " " table)) | ||
| 2306 | table)) | ||
| 2353 | 2307 | ||
| 2308 | (completion-def-wrapper 'electric-c-semi :separator) | ||
| 2354 | (defun completion-c-mode-hook () | 2309 | (defun completion-c-mode-hook () |
| 2355 | (def-completion-wrapper electric-c-semi :separator) | 2310 | (setq completion-syntax-table completion-c-syntax-table) |
| 2356 | (define-key c-mode-map "+" 'completion-separator-self-insert-command) | 2311 | (local-set-key "+" 'completion-separator-self-insert-command) |
| 2357 | (define-key c-mode-map "*" 'completion-separator-self-insert-command) | 2312 | (local-set-key "*" 'completion-separator-self-insert-command) |
| 2358 | (define-key c-mode-map "/" 'completion-separator-self-insert-command)) | 2313 | (local-set-key "/" 'completion-separator-self-insert-command)) |
| 2359 | ;; Do this either now or whenever C mode is loaded. | ||
| 2360 | (if (featurep 'cc-mode) | ||
| 2361 | (completion-c-mode-hook) | ||
| 2362 | (add-hook 'c-mode-hook 'completion-c-mode-hook)) | ||
| 2363 | 2314 | ||
| 2364 | ;; FORTRAN mode diffs. (these are defined when fortran is called) | 2315 | ;; FORTRAN mode diffs. (these are defined when fortran is called) |
| 2365 | 2316 | ||
| 2366 | (defvar fortran-mode-map) | 2317 | (defconst completion-fortran-syntax-table |
| 2318 | (let ((table (copy-syntax-table completion-standard-syntax-table)) | ||
| 2319 | (separator-chars '(?+ ?- ?* ?/ ?:))) | ||
| 2320 | (dolist (char separator-chars) | ||
| 2321 | (modify-syntax-entry char " " table)) | ||
| 2322 | table)) | ||
| 2367 | 2323 | ||
| 2368 | (defun completion-setup-fortran-mode () | 2324 | (defun completion-setup-fortran-mode () |
| 2369 | (define-key fortran-mode-map "+" 'completion-separator-self-insert-command) | 2325 | (setq completion-syntax-table completion-fortran-syntax-table) |
| 2370 | (define-key fortran-mode-map "-" 'completion-separator-self-insert-command) | 2326 | (local-set-key "+" 'completion-separator-self-insert-command) |
| 2371 | (define-key fortran-mode-map "*" 'completion-separator-self-insert-command) | 2327 | (local-set-key "-" 'completion-separator-self-insert-command) |
| 2372 | (define-key fortran-mode-map "/" 'completion-separator-self-insert-command)) | 2328 | (local-set-key "*" 'completion-separator-self-insert-command) |
| 2329 | (local-set-key "/" 'completion-separator-self-insert-command)) | ||
| 2373 | 2330 | ||
| 2374 | ;;; Enable completion mode. | 2331 | ;; Enable completion mode. |
| 2332 | |||
| 2333 | (defvar fortran-mode-hook) | ||
| 2334 | |||
| 2335 | (defvar completion-saved-bindings nil) | ||
| 2375 | 2336 | ||
| 2376 | ;;;###autoload | 2337 | ;;;###autoload |
| 2377 | (defun dynamic-completion-mode () | 2338 | (define-minor-mode dynamic-completion-mode |
| 2378 | "Enable dynamic word-completion." | 2339 | "Enable dynamic word-completion." |
| 2379 | (interactive) | 2340 | :global t |
| 2380 | (add-hook 'find-file-hook 'cmpl-find-file-hook) | 2341 | ;; This is always good, not specific to dynamic-completion-mode. |
| 2381 | (add-hook 'pre-command-hook 'completion-before-command) | ||
| 2382 | |||
| 2383 | ;; Install the appropriate mode tables. | ||
| 2384 | (add-hook 'lisp-mode-hook | ||
| 2385 | (lambda () | ||
| 2386 | (setq cmpl-syntax-table cmpl-lisp-syntax-table))) | ||
| 2387 | (add-hook 'c-mode-hook | ||
| 2388 | (lambda () | ||
| 2389 | (setq cmpl-syntax-table cmpl-c-syntax-table))) | ||
| 2390 | (add-hook 'fortran-mode-hook | ||
| 2391 | (lambda () | ||
| 2392 | (setq cmpl-syntax-table cmpl-fortran-syntax-table) | ||
| 2393 | (completion-setup-fortran-mode))) | ||
| 2394 | |||
| 2395 | ;; "Complete" Key Keybindings. | ||
| 2396 | |||
| 2397 | (global-set-key "\M-\r" 'complete) | ||
| 2398 | (global-set-key [?\C-\r] 'complete) | ||
| 2399 | (define-key function-key-map [C-return] [?\C-\r]) | 2342 | (define-key function-key-map [C-return] [?\C-\r]) |
| 2400 | 2343 | ||
| 2401 | ;; Tests - | 2344 | (dolist (x '((find-file-hook . completion-find-file-hook) |
| 2402 | ;; (add-completion "cumberland") | 2345 | (pre-command-hook . completion-before-command) |
| 2403 | ;; (add-completion "cumberbund") | 2346 | ;; Save completions when killing Emacs. |
| 2404 | ;; cum | 2347 | (kill-emacs-hook . kill-emacs-save-completions) |
| 2405 | ;; Cumber | 2348 | |
| 2406 | ;; cumbering | 2349 | ;; Install the appropriate mode tables. |
| 2407 | ;; cumb | 2350 | (lisp-mode-hook . completion-lisp-mode-hook) |
| 2408 | 2351 | (c-mode-hook . completion-c-mode-hook) | |
| 2409 | ;; Save completions when killing Emacs. | 2352 | (fortran-mode-hook . completion-setup-fortran-mode))) |
| 2410 | 2353 | (if dynamic-completion-mode | |
| 2411 | (add-hook 'kill-emacs-hook | 2354 | (add-hook (car x) (cdr x)) |
| 2412 | (lambda () | 2355 | (remove-hook (car x) (cdr x)))) |
| 2413 | (kill-emacs-save-completions) | 2356 | |
| 2414 | (cmpl-statistics-block | 2357 | ;; "Complete" Key Keybindings. We don't want to use a minor-mode |
| 2415 | (record-cmpl-kill-emacs)))) | 2358 | ;; map because these have too high a priority. We could/should |
| 2416 | 2359 | ;; probably change the interpretation of minor-mode-map-alist such | |
| 2417 | ;; Patches to standard keymaps insert completions | 2360 | ;; that a map has lower precedence if the symbol is not buffer-local. |
| 2418 | (substitute-key-definition 'kill-region 'completion-kill-region | 2361 | (while completion-saved-bindings |
| 2419 | global-map) | 2362 | (let ((binding (pop completion-saved-bindings))) |
| 2420 | 2363 | (global-set-key (car binding) (cdr binding)))) | |
| 2421 | ;; Separators | 2364 | (when dynamic-completion-mode |
| 2422 | ;; We've used the completion syntax table given as a guide. | 2365 | (dolist (binding |
| 2423 | ;; | 2366 | '(("\M-\r" . complete) |
| 2424 | ;; Global separator chars. | 2367 | ([?\C-\r] . complete) |
| 2425 | ;; We left out <tab> because there are too many special cases for it. Also, | 2368 | |
| 2426 | ;; in normal coding it's rarely typed after a word. | 2369 | ;; Tests - |
| 2427 | (global-set-key " " 'completion-separator-self-insert-autofilling) | 2370 | ;; (add-completion "cumberland") |
| 2428 | (global-set-key "!" 'completion-separator-self-insert-command) | 2371 | ;; (add-completion "cumberbund") |
| 2429 | (global-set-key "%" 'completion-separator-self-insert-command) | 2372 | ;; cum |
| 2430 | (global-set-key "^" 'completion-separator-self-insert-command) | 2373 | ;; Cumber |
| 2431 | (global-set-key "&" 'completion-separator-self-insert-command) | 2374 | ;; cumbering |
| 2432 | (global-set-key "(" 'completion-separator-self-insert-command) | 2375 | ;; cumb |
| 2433 | (global-set-key ")" 'completion-separator-self-insert-command) | 2376 | |
| 2434 | (global-set-key "=" 'completion-separator-self-insert-command) | 2377 | ;; Patches to standard keymaps insert completions |
| 2435 | (global-set-key "`" 'completion-separator-self-insert-command) | 2378 | ([remap kill-region] . completion-kill-region) |
| 2436 | (global-set-key "|" 'completion-separator-self-insert-command) | 2379 | |
| 2437 | (global-set-key "{" 'completion-separator-self-insert-command) | 2380 | ;; Separators |
| 2438 | (global-set-key "}" 'completion-separator-self-insert-command) | 2381 | ;; We've used the completion syntax table given as a guide. |
| 2439 | (global-set-key "[" 'completion-separator-self-insert-command) | 2382 | ;; |
| 2440 | (global-set-key "]" 'completion-separator-self-insert-command) | 2383 | ;; Global separator chars. |
| 2441 | (global-set-key ";" 'completion-separator-self-insert-command) | 2384 | ;; We left out <tab> because there are too many special |
| 2442 | (global-set-key "\"" 'completion-separator-self-insert-command) | 2385 | ;; cases for it. Also, in normal coding it's rarely typed |
| 2443 | (global-set-key "'" 'completion-separator-self-insert-command) | 2386 | ;; after a word. |
| 2444 | (global-set-key "#" 'completion-separator-self-insert-command) | 2387 | (" " . completion-separator-self-insert-autofilling) |
| 2445 | (global-set-key "," 'completion-separator-self-insert-command) | 2388 | ("!" . completion-separator-self-insert-command) |
| 2446 | (global-set-key "?" 'completion-separator-self-insert-command) | 2389 | ("%" . completion-separator-self-insert-command) |
| 2447 | 2390 | ("^" . completion-separator-self-insert-command) | |
| 2448 | ;; We include period and colon even though they are symbol chars because : | 2391 | ("&" . completion-separator-self-insert-command) |
| 2449 | ;; - in text we want to pick up the last word in a sentence. | 2392 | ("(" . completion-separator-self-insert-command) |
| 2450 | ;; - in C pointer refs. we want to pick up the first symbol | 2393 | (")" . completion-separator-self-insert-command) |
| 2451 | ;; - it won't make a difference for lisp mode (package names are short) | 2394 | ("=" . completion-separator-self-insert-command) |
| 2452 | (global-set-key "." 'completion-separator-self-insert-command) | 2395 | ("`" . completion-separator-self-insert-command) |
| 2453 | (global-set-key ":" 'completion-separator-self-insert-command) | 2396 | ("|" . completion-separator-self-insert-command) |
| 2397 | ("{" . completion-separator-self-insert-command) | ||
| 2398 | ("}" . completion-separator-self-insert-command) | ||
| 2399 | ("[" . completion-separator-self-insert-command) | ||
| 2400 | ("]" . completion-separator-self-insert-command) | ||
| 2401 | (";" . completion-separator-self-insert-command) | ||
| 2402 | ("\"". completion-separator-self-insert-command) | ||
| 2403 | ("'" . completion-separator-self-insert-command) | ||
| 2404 | ("#" . completion-separator-self-insert-command) | ||
| 2405 | ("," . completion-separator-self-insert-command) | ||
| 2406 | ("?" . completion-separator-self-insert-command) | ||
| 2407 | |||
| 2408 | ;; We include period and colon even though they are symbol | ||
| 2409 | ;; chars because : | ||
| 2410 | ;; - in text we want to pick up the last word in a sentence. | ||
| 2411 | ;; - in C pointer refs. we want to pick up the first symbol | ||
| 2412 | ;; - it won't make a difference for lisp mode (package names | ||
| 2413 | ;; are short) | ||
| 2414 | ("." . completion-separator-self-insert-command) | ||
| 2415 | (":" . completion-separator-self-insert-command))) | ||
| 2416 | (push (cons (car binding) (lookup-key global-map (car binding))) | ||
| 2417 | completion-saved-bindings) | ||
| 2418 | (global-set-key (car binding) (cdr binding))) | ||
| 2419 | |||
| 2420 | ;; Tests -- | ||
| 2421 | ;; foobarbiz | ||
| 2422 | ;; foobar | ||
| 2423 | ;; fooquux | ||
| 2424 | ;; fooper | ||
| 2454 | 2425 | ||
| 2455 | ;; Lisp Mode diffs | 2426 | (cmpl-statistics-block |
| 2456 | (define-key lisp-mode-map "!" 'self-insert-command) | 2427 | (record-completion-file-loaded)) |
| 2457 | (define-key lisp-mode-map "&" 'self-insert-command) | ||
| 2458 | (define-key lisp-mode-map "%" 'self-insert-command) | ||
| 2459 | (define-key lisp-mode-map "?" 'self-insert-command) | ||
| 2460 | (define-key lisp-mode-map "=" 'self-insert-command) | ||
| 2461 | (define-key lisp-mode-map "^" 'self-insert-command) | ||
| 2462 | |||
| 2463 | ;; Avoid warnings. | ||
| 2464 | (defvar c-mode-map) | ||
| 2465 | (defvar fortran-mode-map) | ||
| 2466 | |||
| 2467 | ;;----------------------------------------------- | ||
| 2468 | ;; End of line chars. | ||
| 2469 | ;;----------------------------------------------- | ||
| 2470 | (def-completion-wrapper newline :separator) | ||
| 2471 | (def-completion-wrapper newline-and-indent :separator) | ||
| 2472 | (def-completion-wrapper comint-send-input :separator) | ||
| 2473 | (def-completion-wrapper exit-minibuffer :minibuffer-separator) | ||
| 2474 | (def-completion-wrapper eval-print-last-sexp :separator) | ||
| 2475 | (def-completion-wrapper eval-last-sexp :separator) | ||
| 2476 | ;;(def-completion-wrapper minibuffer-complete-and-exit :minibuffer) | ||
| 2477 | |||
| 2478 | ;;----------------------------------------------- | ||
| 2479 | ;; Cursor movement | ||
| 2480 | ;;----------------------------------------------- | ||
| 2481 | |||
| 2482 | (def-completion-wrapper next-line :under-or-before) | ||
| 2483 | (def-completion-wrapper previous-line :under-or-before) | ||
| 2484 | (def-completion-wrapper beginning-of-buffer :under-or-before) | ||
| 2485 | (def-completion-wrapper end-of-buffer :under-or-before) | ||
| 2486 | (def-completion-wrapper beginning-of-line :under-or-before) | ||
| 2487 | (def-completion-wrapper end-of-line :under-or-before) | ||
| 2488 | (def-completion-wrapper forward-char :under-or-before) | ||
| 2489 | (def-completion-wrapper forward-word :under-or-before) | ||
| 2490 | (def-completion-wrapper forward-sexp :under-or-before) | ||
| 2491 | (def-completion-wrapper backward-char :backward-under) | ||
| 2492 | (def-completion-wrapper backward-word :backward-under) | ||
| 2493 | (def-completion-wrapper backward-sexp :backward-under) | ||
| 2494 | |||
| 2495 | (def-completion-wrapper delete-backward-char :backward) | ||
| 2496 | (def-completion-wrapper delete-backward-char-untabify :backward) | ||
| 2497 | |||
| 2498 | ;; Tests -- | ||
| 2499 | ;; foobarbiz | ||
| 2500 | ;; foobar | ||
| 2501 | ;; fooquux | ||
| 2502 | ;; fooper | ||
| 2503 | 2428 | ||
| 2504 | (cmpl-statistics-block | 2429 | (completion-initialize))) |
| 2505 | (record-completion-file-loaded)) | 2430 | |
| 2431 | ;;----------------------------------------------- | ||
| 2432 | ;; End of line chars. | ||
| 2433 | ;;----------------------------------------------- | ||
| 2434 | (completion-def-wrapper 'newline :separator) | ||
| 2435 | (completion-def-wrapper 'newline-and-indent :separator) | ||
| 2436 | (completion-def-wrapper 'comint-send-input :separator) | ||
| 2437 | (completion-def-wrapper 'exit-minibuffer :minibuffer-separator) | ||
| 2438 | (completion-def-wrapper 'eval-print-last-sexp :separator) | ||
| 2439 | (completion-def-wrapper 'eval-last-sexp :separator) | ||
| 2440 | ;;(completion-def-wrapper 'minibuffer-complete-and-exit :minibuffer) | ||
| 2506 | 2441 | ||
| 2507 | (initialize-completions)) | 2442 | ;;----------------------------------------------- |
| 2443 | ;; Cursor movement | ||
| 2444 | ;;----------------------------------------------- | ||
| 2508 | 2445 | ||
| 2509 | (mapc (lambda (x) (add-to-list 'debug-ignored-errors x)) | 2446 | (completion-def-wrapper 'next-line :under-or-before) |
| 2510 | '("^To complete, the point must be after a symbol at least [0-9]* character long\\.$" | 2447 | (completion-def-wrapper 'previous-line :under-or-before) |
| 2448 | (completion-def-wrapper 'beginning-of-buffer :under-or-before) | ||
| 2449 | (completion-def-wrapper 'end-of-buffer :under-or-before) | ||
| 2450 | (completion-def-wrapper 'beginning-of-line :under-or-before) | ||
| 2451 | (completion-def-wrapper 'end-of-line :under-or-before) | ||
| 2452 | (completion-def-wrapper 'forward-char :under-or-before) | ||
| 2453 | (completion-def-wrapper 'forward-word :under-or-before) | ||
| 2454 | (completion-def-wrapper 'forward-sexp :under-or-before) | ||
| 2455 | (completion-def-wrapper 'backward-char :backward-under) | ||
| 2456 | (completion-def-wrapper 'backward-word :backward-under) | ||
| 2457 | (completion-def-wrapper 'backward-sexp :backward-under) | ||
| 2458 | |||
| 2459 | (completion-def-wrapper 'delete-backward-char :backward) | ||
| 2460 | (completion-def-wrapper 'delete-backward-char-untabify :backward) | ||
| 2461 | |||
| 2462 | ;; Old names, non-namespace-clean. | ||
| 2463 | (defvaralias 'cmpl-syntax-table 'completion-syntax-table) | ||
| 2464 | (defalias 'initialize-completions 'completion-initialize) | ||
| 2465 | |||
| 2466 | (dolist (x '("^To complete, the point must be after a symbol at least [0-9]* character long\\.$" | ||
| 2511 | "^The string \".*\" is too short to be saved as a completion\\.$")) | 2467 | "^The string \".*\" is too short to be saved as a completion\\.$")) |
| 2468 | (add-to-list 'debug-ignored-errors x)) | ||
| 2512 | 2469 | ||
| 2513 | (provide 'completion) | 2470 | (provide 'completion) |
| 2514 | 2471 | ||
| 2515 | ;;; arch-tag: 6990dafe-4abd-4a1f-8c42-ffb25e120f5e | 2472 | ;; arch-tag: 6990dafe-4abd-4a1f-8c42-ffb25e120f5e |
| 2516 | ;;; completion.el ends here | 2473 | ;;; completion.el ends here |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 59a8b341cad..b84568b7060 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -800,13 +800,18 @@ This operation eliminates any saved settings for the group members, | |||
| 800 | making them as if they had never been customized at all." | 800 | making them as if they had never been customized at all." |
| 801 | (interactive) | 801 | (interactive) |
| 802 | (let ((children custom-options)) | 802 | (let ((children custom-options)) |
| 803 | (mapc (lambda (widget) | 803 | (when (or (and (= 1 (length children)) |
| 804 | (and (widget-get widget :custom-standard-value) | 804 | (memq (widget-type (car children)) |
| 805 | (widget-apply widget :custom-standard-value) | 805 | '(custom-variable custom-face))) |
| 806 | (if (memq (widget-get widget :custom-state) | 806 | (yes-or-no-p "Really erase all customizations in this buffer? ")) |
| 807 | '(modified set changed saved rogue)) | 807 | (mapc (lambda (widget) |
| 808 | (widget-apply widget :custom-reset-standard)))) | 808 | (and (if (widget-get widget :custom-standard-value) |
| 809 | children))) | 809 | (widget-apply widget :custom-standard-value) |
| 810 | t) | ||
| 811 | (memq (widget-get widget :custom-state) | ||
| 812 | '(modified set changed saved rogue)) | ||
| 813 | (widget-apply widget :custom-reset-standard))) | ||
| 814 | children)))) | ||
| 810 | 815 | ||
| 811 | ;;; The Customize Commands | 816 | ;;; The Customize Commands |
| 812 | 817 | ||
diff --git a/lisp/cus-face.el b/lisp/cus-face.el index 449efa5fe66..3e4e32ecc97 100644 --- a/lisp/cus-face.el +++ b/lisp/cus-face.el | |||
| @@ -323,13 +323,18 @@ FACE's list property `theme-face' \(using `custom-push-theme')." | |||
| 323 | (let ((face (nth 0 entry)) | 323 | (let ((face (nth 0 entry)) |
| 324 | (spec (nth 1 entry)) | 324 | (spec (nth 1 entry)) |
| 325 | (now (nth 2 entry)) | 325 | (now (nth 2 entry)) |
| 326 | (comment (nth 3 entry))) | 326 | (comment (nth 3 entry)) |
| 327 | oldspec) | ||
| 327 | ;; If FACE is actually an alias, customize the face it | 328 | ;; If FACE is actually an alias, customize the face it |
| 328 | ;; is aliased to. | 329 | ;; is aliased to. |
| 329 | (if (get face 'face-alias) | 330 | (if (get face 'face-alias) |
| 330 | (setq face (get face 'face-alias))) | 331 | (setq face (get face 'face-alias))) |
| 331 | (put face 'saved-face spec) | 332 | |
| 332 | (put face 'saved-face-comment comment) | 333 | (setq oldspec (get face 'theme-face)) |
| 334 | (when (not (and oldspec (eq 'user (caar oldspec)))) | ||
| 335 | (put face 'saved-face spec) | ||
| 336 | (put face 'saved-face-comment comment)) | ||
| 337 | |||
| 333 | (custom-push-theme 'theme-face face theme 'set spec) | 338 | (custom-push-theme 'theme-face face theme 'set spec) |
| 334 | (when (or now immediate) | 339 | (when (or now immediate) |
| 335 | (put face 'force-face (if now 'rogue 'immediate))) | 340 | (put face 'force-face (if now 'rogue 'immediate))) |
diff --git a/lisp/custom.el b/lisp/custom.el index 0c6085c714f..b2a9ba6443c 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -1120,9 +1120,14 @@ See `custom-theme-load-themes' for more information on BODY." | |||
| 1120 | (defun enable-theme (theme) | 1120 | (defun enable-theme (theme) |
| 1121 | "Reenable all variable and face settings defined by THEME. | 1121 | "Reenable all variable and face settings defined by THEME. |
| 1122 | The newly enabled theme gets the highest precedence (after `user'). | 1122 | The newly enabled theme gets the highest precedence (after `user'). |
| 1123 | If it is already enabled, just give it highest precedence (after `user')." | 1123 | If it is already enabled, just give it highest precedence (after `user'). |
| 1124 | |||
| 1125 | This signals an error if THEME does not specify any theme | ||
| 1126 | settings. Theme settings are set using `load-theme'." | ||
| 1124 | (interactive "SEnable Custom theme: ") | 1127 | (interactive "SEnable Custom theme: ") |
| 1125 | (let ((settings (get theme 'theme-settings))) | 1128 | (let ((settings (get theme 'theme-settings))) |
| 1129 | (if (and (not (eq theme 'user)) (null settings)) | ||
| 1130 | (error "No theme settings defined in %s." (symbol-name theme))) | ||
| 1126 | (dolist (s settings) | 1131 | (dolist (s settings) |
| 1127 | (let* ((prop (car s)) | 1132 | (let* ((prop (car s)) |
| 1128 | (symbol (cadr s)) | 1133 | (symbol (cadr s)) |
| @@ -1130,7 +1135,8 @@ If it is already enabled, just give it highest precedence (after `user')." | |||
| 1130 | (put symbol prop (cons (cddr s) (assq-delete-all theme spec-list))) | 1135 | (put symbol prop (cons (cddr s) (assq-delete-all theme spec-list))) |
| 1131 | (if (eq prop 'theme-value) | 1136 | (if (eq prop 'theme-value) |
| 1132 | (custom-theme-recalc-variable symbol) | 1137 | (custom-theme-recalc-variable symbol) |
| 1133 | (custom-theme-recalc-face symbol))))) | 1138 | (if (facep symbol) |
| 1139 | (custom-theme-recalc-face symbol)))))) | ||
| 1134 | (setq custom-enabled-themes | 1140 | (setq custom-enabled-themes |
| 1135 | (cons theme (delq theme custom-enabled-themes))) | 1141 | (cons theme (delq theme custom-enabled-themes))) |
| 1136 | ;; `user' must always be the highest-precedence enabled theme. | 1142 | ;; `user' must always be the highest-precedence enabled theme. |
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el index b330f2b10d7..ea99030d943 100644 --- a/lisp/dabbrev.el +++ b/lisp/dabbrev.el | |||
| @@ -373,11 +373,7 @@ function pointed out by `dabbrev-friend-buffer-function' to find the | |||
| 373 | completions. | 373 | completions. |
| 374 | 374 | ||
| 375 | If the prefix argument is 16 (which comes from C-u C-u), | 375 | If the prefix argument is 16 (which comes from C-u C-u), |
| 376 | then it searches *all* buffers. | 376 | then it searches *all* buffers." |
| 377 | |||
| 378 | With no prefix argument, it reuses an old completion list | ||
| 379 | if there is a suitable one already." | ||
| 380 | |||
| 381 | (interactive "*P") | 377 | (interactive "*P") |
| 382 | (dabbrev--reset-global-variables) | 378 | (dabbrev--reset-global-variables) |
| 383 | (let* ((dabbrev-check-other-buffers (and arg t)) | 379 | (let* ((dabbrev-check-other-buffers (and arg t)) |
| @@ -392,57 +388,43 @@ if there is a suitable one already." | |||
| 392 | (my-obarray dabbrev--last-obarray) | 388 | (my-obarray dabbrev--last-obarray) |
| 393 | init) | 389 | init) |
| 394 | (save-excursion | 390 | (save-excursion |
| 395 | (if (and (null arg) | 391 | ;;-------------------------------- |
| 396 | my-obarray | 392 | ;; New abbreviation to expand. |
| 397 | (or (eq dabbrev--last-completion-buffer (current-buffer)) | 393 | ;;-------------------------------- |
| 398 | (and (window-minibuffer-p (selected-window)) | 394 | (setq dabbrev--last-abbreviation abbrev) |
| 399 | (eq dabbrev--last-completion-buffer | 395 | ;; Find all expansion |
| 400 | (dabbrev--minibuffer-origin)))) | 396 | (let ((completion-list |
| 401 | dabbrev--last-abbreviation | 397 | (dabbrev--find-all-expansions abbrev ignore-case-p)) |
| 402 | (>= (length abbrev) (length dabbrev--last-abbreviation)) | 398 | (completion-ignore-case ignore-case-p)) |
| 403 | (string= dabbrev--last-abbreviation | 399 | ;; Make an obarray with all expansions |
| 404 | (substring abbrev 0 | 400 | (setq my-obarray (make-vector (length completion-list) 0)) |
| 405 | (length dabbrev--last-abbreviation))) | 401 | (or (> (length my-obarray) 0) |
| 406 | (setq init (try-completion abbrev my-obarray))) | 402 | (error "No dynamic expansion for \"%s\" found%s" |
| 407 | ;; We can reuse the existing completion list. | 403 | abbrev |
| 408 | nil | 404 | (if dabbrev--check-other-buffers "" " in this-buffer"))) |
| 409 | ;;-------------------------------- | 405 | (cond |
| 410 | ;; New abbreviation to expand. | 406 | ((or (not ignore-case-p) |
| 411 | ;;-------------------------------- | 407 | (not dabbrev-case-replace)) |
| 412 | (setq dabbrev--last-abbreviation abbrev) | 408 | (mapc (function (lambda (string) |
| 413 | ;; Find all expansion | 409 | (intern string my-obarray))) |
| 414 | (let ((completion-list | 410 | completion-list)) |
| 415 | (dabbrev--find-all-expansions abbrev ignore-case-p)) | 411 | ((string= abbrev (upcase abbrev)) |
| 416 | (completion-ignore-case ignore-case-p)) | 412 | (mapc (function (lambda (string) |
| 417 | ;; Make an obarray with all expansions | 413 | (intern (upcase string) my-obarray))) |
| 418 | (setq my-obarray (make-vector (length completion-list) 0)) | 414 | completion-list)) |
| 419 | (or (> (length my-obarray) 0) | 415 | ((string= (substring abbrev 0 1) |
| 420 | (error "No dynamic expansion for \"%s\" found%s" | 416 | (upcase (substring abbrev 0 1))) |
| 421 | abbrev | 417 | (mapc (function (lambda (string) |
| 422 | (if dabbrev--check-other-buffers "" " in this-buffer"))) | 418 | (intern (capitalize string) my-obarray))) |
| 423 | (cond | 419 | completion-list)) |
| 424 | ((or (not ignore-case-p) | 420 | (t |
| 425 | (not dabbrev-case-replace)) | 421 | (mapc (function (lambda (string) |
| 426 | (mapc (function (lambda (string) | 422 | (intern (downcase string) my-obarray))) |
| 427 | (intern string my-obarray))) | 423 | completion-list))) |
| 428 | completion-list)) | 424 | (setq dabbrev--last-obarray my-obarray) |
| 429 | ((string= abbrev (upcase abbrev)) | 425 | (setq dabbrev--last-completion-buffer (current-buffer)) |
| 430 | (mapc (function (lambda (string) | 426 | ;; Find the longest common string. |
| 431 | (intern (upcase string) my-obarray))) | 427 | (setq init (try-completion abbrev my-obarray)))) |
| 432 | completion-list)) | ||
| 433 | ((string= (substring abbrev 0 1) | ||
| 434 | (upcase (substring abbrev 0 1))) | ||
| 435 | (mapc (function (lambda (string) | ||
| 436 | (intern (capitalize string) my-obarray))) | ||
| 437 | completion-list)) | ||
| 438 | (t | ||
| 439 | (mapc (function (lambda (string) | ||
| 440 | (intern (downcase string) my-obarray))) | ||
| 441 | completion-list))) | ||
| 442 | (setq dabbrev--last-obarray my-obarray) | ||
| 443 | (setq dabbrev--last-completion-buffer (current-buffer)) | ||
| 444 | ;; Find the longest common string. | ||
| 445 | (setq init (try-completion abbrev my-obarray))))) | ||
| 446 | ;;-------------------------------- | 428 | ;;-------------------------------- |
| 447 | ;; Let the user choose between the expansions | 429 | ;; Let the user choose between the expansions |
| 448 | ;;-------------------------------- | 430 | ;;-------------------------------- |
diff --git a/lisp/dframe.el b/lisp/dframe.el index 4be0ee8f097..56bbdc36c01 100644 --- a/lisp/dframe.el +++ b/lisp/dframe.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; dframe --- dedicate frame support modes | 1 | ;;; dframe --- dedicate frame support modes |
| 2 | 2 | ||
| 3 | ;;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02, 03, 04 Free Software Foundation | 3 | ;;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02, 03, 04, 05 Free Software Foundation |
| 4 | 4 | ||
| 5 | ;; Author: Eric M. Ludlam <zappo@gnu.org> | 5 | ;; Author: Eric M. Ludlam <zappo@gnu.org> |
| 6 | ;; Keywords: file, tags, tools | 6 | ;; Keywords: file, tags, tools |
| @@ -509,7 +509,7 @@ a cons cell indicationg a position of the form (LEFT . TOP)." | |||
| 509 | (setq newleft (+ pfx pfw 5) | 509 | (setq newleft (+ pfx pfw 5) |
| 510 | newtop pfy)) | 510 | newtop pfy)) |
| 511 | ((eq location 'left) | 511 | ((eq location 'left) |
| 512 | (setq newleft (+ pfx 10 nfw) | 512 | (setq newleft (- pfx 10 nfw) |
| 513 | newtop pfy)) | 513 | newtop pfy)) |
| 514 | ((eq location 'left-right) | 514 | ((eq location 'left-right) |
| 515 | (setq newleft | 515 | (setq newleft |
diff --git a/lisp/ediff-wind.el b/lisp/ediff-wind.el index e15c92d4bc9..9fd9f45ff03 100644 --- a/lisp/ediff-wind.el +++ b/lisp/ediff-wind.el | |||
| @@ -955,8 +955,9 @@ into icons, regardless of the window manager." | |||
| 955 | (minibuffer-window | 955 | (minibuffer-window |
| 956 | designated-minibuffer-frame)) | 956 | designated-minibuffer-frame)) |
| 957 | (cons 'width fwidth) | 957 | (cons 'width fwidth) |
| 958 | (cons 'height fheight)) | 958 | (cons 'height fheight) |
| 959 | ) | 959 | (cons 'user-position t) |
| 960 | )) | ||
| 960 | 961 | ||
| 961 | ;; adjust autoraise | 962 | ;; adjust autoraise |
| 962 | (setq adjusted-parameters | 963 | (setq adjusted-parameters |
| @@ -1135,9 +1136,8 @@ It assumes that it is called from within the control buffer." | |||
| 1135 | (list (cons 'left (max 0 (eval (cdr (assoc 'left frame-A-params))))) | 1136 | (list (cons 'left (max 0 (eval (cdr (assoc 'left frame-A-params))))) |
| 1136 | (cons 'width (cdr (assoc 'width frame-A-params)))) | 1137 | (cons 'width (cdr (assoc 'width frame-A-params)))) |
| 1137 | ediff-wide-display-frame frame-A) | 1138 | ediff-wide-display-frame frame-A) |
| 1138 | (modify-frame-parameters frame-A (list (cons 'left cw) | 1139 | (modify-frame-parameters |
| 1139 | (cons 'width wd))))) | 1140 | frame-A `((left . ,cw) (width . ,wd) (user-position t))))) |
| 1140 | |||
| 1141 | 1141 | ||
| 1142 | 1142 | ||
| 1143 | ;; Revise the mode line to display which difference we have selected | 1143 | ;; Revise the mode line to display which difference we have selected |
diff --git a/lisp/ediff.el b/lisp/ediff.el index 696fc9668e6..32ca177388e 100644 --- a/lisp/ediff.el +++ b/lisp/ediff.el | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | ;; Keywords: comparing, merging, patching, tools, unix | 8 | ;; Keywords: comparing, merging, patching, tools, unix |
| 9 | 9 | ||
| 10 | (defconst ediff-version "2.80.1" "The current version of Ediff") | 10 | (defconst ediff-version "2.80.1" "The current version of Ediff") |
| 11 | (defconst ediff-date "October 5, 2005" "Date of last update") | 11 | (defconst ediff-date "November 25, 2005" "Date of last update") |
| 12 | 12 | ||
| 13 | 13 | ||
| 14 | ;; This file is part of GNU Emacs. | 14 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index ff795e6de77..2356483b233 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el | |||
| @@ -135,6 +135,15 @@ or macro definition or a defcustom)." | |||
| 135 | (if (equal setter ''custom-set-minor-mode) | 135 | (if (equal setter ''custom-set-minor-mode) |
| 136 | `(put ',varname 'custom-set 'custom-set-minor-mode)))))) | 136 | `(put ',varname 'custom-set 'custom-set-minor-mode)))))) |
| 137 | 137 | ||
| 138 | ((eq car 'defgroup) | ||
| 139 | ;; In Emacs this is normally handled separately by cus-dep.el, but for | ||
| 140 | ;; third party packages, it can be convenient to explicitly autoload | ||
| 141 | ;; a group. | ||
| 142 | (let ((groupname (nth 1 form))) | ||
| 143 | `(let ((loads (get ',groupname 'custom-loads))) | ||
| 144 | (if (member ',file loads) nil | ||
| 145 | (put ',groupname 'custom-loads (cons ',file loads)))))) | ||
| 146 | |||
| 138 | ;; nil here indicates that this is not a special autoload form. | 147 | ;; nil here indicates that this is not a special autoload form. |
| 139 | (t nil)))) | 148 | (t nil)))) |
| 140 | 149 | ||
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 74c77128059..244029491de 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -2175,7 +2175,12 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors. | |||
| 2175 | (symbol-name (car args)) "")))) | 2175 | (symbol-name (car args)) "")))) |
| 2176 | ((eq opt :constructor) | 2176 | ((eq opt :constructor) |
| 2177 | (if (cdr args) | 2177 | (if (cdr args) |
| 2178 | (push args constrs) | 2178 | (progn |
| 2179 | ;; If this defines a constructor of the same name as | ||
| 2180 | ;; the default one, don't define the default. | ||
| 2181 | (if (eq (car args) constructor) | ||
| 2182 | (setq constructor nil)) | ||
| 2183 | (push args constrs)) | ||
| 2179 | (if args (setq constructor (car args))))) | 2184 | (if args (setq constructor (car args))))) |
| 2180 | ((eq opt :copier) | 2185 | ((eq opt :copier) |
| 2181 | (if args (setq copier (car args)))) | 2186 | (if args (setq copier (car args)))) |
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el index 426c79e51c3..569847a0ea1 100644 --- a/lisp/emacs-lisp/elp.el +++ b/lisp/emacs-lisp/elp.el | |||
| @@ -206,18 +206,28 @@ This variable is set by the master function.") | |||
| 206 | "Master function symbol.") | 206 | "Master function symbol.") |
| 207 | 207 | ||
| 208 | (defvar elp-not-profilable | 208 | (defvar elp-not-profilable |
| 209 | '(elp-wrapper elp-elapsed-time error call-interactively apply current-time interactive-p) | 209 | ;; First, the functions used inside each instrumented function: |
| 210 | '(elp-wrapper called-interactively-p | ||
| 211 | ;; Then the functions used by the above functions. I used | ||
| 212 | ;; (delq nil (mapcar (lambda (x) (and (symbolp x) (fboundp x) x)) | ||
| 213 | ;; (aref (symbol-function 'elp-wrapper) 2))) | ||
| 214 | ;; to help me find this list. | ||
| 215 | error call-interactively apply current-time) | ||
| 210 | "List of functions that cannot be profiled. | 216 | "List of functions that cannot be profiled. |
| 211 | Those functions are used internally by the profiling code and profiling | 217 | Those functions are used internally by the profiling code and profiling |
| 212 | them would thus lead to infinite recursion.") | 218 | them would thus lead to infinite recursion.") |
| 213 | 219 | ||
| 214 | (defun elp-not-profilable-p (fun) | 220 | (defun elp-profilable-p (fun) |
| 215 | (or (memq fun elp-not-profilable) | 221 | (and (symbolp fun) |
| 216 | (keymapp fun) | 222 | (fboundp fun) |
| 217 | (condition-case nil | 223 | (not (or (memq fun elp-not-profilable) |
| 218 | (when (subrp (symbol-function fun)) | 224 | (keymapp fun) |
| 219 | (eq 'unevalled (cdr (subr-arity (symbol-function fun))))) | 225 | (memq (car-safe (symbol-function fun)) '(autoload macro)) |
| 220 | (error nil)))) | 226 | (condition-case nil |
| 227 | (when (subrp (indirect-function fun)) | ||
| 228 | (eq 'unevalled | ||
| 229 | (cdr (subr-arity (indirect-function fun))))) | ||
| 230 | (error nil)))))) | ||
| 221 | 231 | ||
| 222 | 232 | ||
| 223 | ;;;###autoload | 233 | ;;;###autoload |
| @@ -237,9 +247,6 @@ FUNSYM must be a symbol of a defined function." | |||
| 237 | (let* ((funguts (symbol-function funsym)) | 247 | (let* ((funguts (symbol-function funsym)) |
| 238 | (infovec (vector 0 0 funguts)) | 248 | (infovec (vector 0 0 funguts)) |
| 239 | (newguts '(lambda (&rest args)))) | 249 | (newguts '(lambda (&rest args)))) |
| 240 | ;; We cannot profile functions used internally during profiling. | ||
| 241 | (when (elp-not-profilable-p funsym) | ||
| 242 | (error "ELP cannot profile the function: %s" funsym)) | ||
| 243 | ;; we cannot profile macros | 250 | ;; we cannot profile macros |
| 244 | (and (eq (car-safe funguts) 'macro) | 251 | (and (eq (car-safe funguts) 'macro) |
| 245 | (error "ELP cannot profile macro: %s" funsym)) | 252 | (error "ELP cannot profile macro: %s" funsym)) |
| @@ -252,6 +259,9 @@ FUNSYM must be a symbol of a defined function." | |||
| 252 | ;; type functionality (i.e. it shouldn't execute the function). | 259 | ;; type functionality (i.e. it shouldn't execute the function). |
| 253 | (and (eq (car-safe funguts) 'autoload) | 260 | (and (eq (car-safe funguts) 'autoload) |
| 254 | (error "ELP cannot profile autoloaded function: %s" funsym)) | 261 | (error "ELP cannot profile autoloaded function: %s" funsym)) |
| 262 | ;; We cannot profile functions used internally during profiling. | ||
| 263 | (unless (elp-profilable-p funsym) | ||
| 264 | (error "ELP cannot profile the function: %s" funsym)) | ||
| 255 | ;; put rest of newguts together | 265 | ;; put rest of newguts together |
| 256 | (if (commandp funsym) | 266 | (if (commandp funsym) |
| 257 | (setq newguts (append newguts '((interactive))))) | 267 | (setq newguts (append newguts '((interactive))))) |
| @@ -344,18 +354,15 @@ Use optional LIST if provided instead." | |||
| 344 | For example, to instrument all ELP functions, do the following: | 354 | For example, to instrument all ELP functions, do the following: |
| 345 | 355 | ||
| 346 | \\[elp-instrument-package] RET elp- RET" | 356 | \\[elp-instrument-package] RET elp- RET" |
| 347 | (interactive "sPrefix of package to instrument: ") | 357 | (interactive |
| 358 | (list (completing-read "Prefix of package to instrument: " | ||
| 359 | obarray 'elp-profilable-p))) | ||
| 348 | (if (zerop (length prefix)) | 360 | (if (zerop (length prefix)) |
| 349 | (error "Instrumenting all Emacs functions would render Emacs unusable")) | 361 | (error "Instrumenting all Emacs functions would render Emacs unusable")) |
| 350 | (elp-instrument-list | 362 | (elp-instrument-list |
| 351 | (mapcar | 363 | (mapcar |
| 352 | 'intern | 364 | 'intern |
| 353 | (all-completions | 365 | (all-completions prefix obarray 'elp-profilable-p)))) |
| 354 | prefix obarray | ||
| 355 | (lambda (sym) | ||
| 356 | (and (fboundp sym) | ||
| 357 | (not (or (memq (car-safe (symbol-function sym)) '(autoload macro)) | ||
| 358 | (elp-not-profilable-p sym))))))))) | ||
| 359 | 366 | ||
| 360 | (defun elp-restore-list (&optional list) | 367 | (defun elp-restore-list (&optional list) |
| 361 | "Restore the original definitions for all functions in `elp-function-list'. | 368 | "Restore the original definitions for all functions in `elp-function-list'. |
| @@ -488,12 +495,12 @@ original definition, use \\[elp-restore-function] or \\[elp-restore-all]." | |||
| 488 | ;; check for very large or small numbers | 495 | ;; check for very large or small numbers |
| 489 | (if (string-match "^\\(.*\\)\\(e[+-].*\\)$" number) | 496 | (if (string-match "^\\(.*\\)\\(e[+-].*\\)$" number) |
| 490 | (concat (substring | 497 | (concat (substring |
| 491 | (substring number (match-beginning 1) (match-end 1)) | 498 | (match-string 1 number) |
| 492 | 0 | 499 | 0 |
| 493 | (- width (match-end 2) (- (match-beginning 2)) 3)) | 500 | (- width (match-end 2) (- (match-beginning 2)) 3)) |
| 494 | "..." | 501 | "..." |
| 495 | (substring number (match-beginning 2) (match-end 2))) | 502 | (match-string 2 number)) |
| 496 | (concat (substring number 0 width))))) | 503 | (substring number 0 width)))) |
| 497 | 504 | ||
| 498 | (defun elp-output-result (resultvec) | 505 | (defun elp-output-result (resultvec) |
| 499 | ;; output the RESULTVEC into the results buffer. RESULTVEC is a 4 or | 506 | ;; output the RESULTVEC into the results buffer. RESULTVEC is a 4 or |
| @@ -528,20 +535,15 @@ original definition, use \\[elp-restore-function] or \\[elp-restore-all]." | |||
| 528 | 535 | ||
| 529 | (defvar elp-results-symname-map | 536 | (defvar elp-results-symname-map |
| 530 | (let ((map (make-sparse-keymap))) | 537 | (let ((map (make-sparse-keymap))) |
| 531 | (define-key map [mouse-2] 'elp-results-jump-to-definition-by-mouse) | 538 | (define-key map [mouse-2] 'elp-results-jump-to-definition) |
| 532 | (define-key map "\C-m" 'elp-results-jump-to-definition) | 539 | (define-key map "\C-m" 'elp-results-jump-to-definition) |
| 533 | map) | 540 | map) |
| 534 | "Keymap used on the function name column." ) | 541 | "Keymap used on the function name column." ) |
| 535 | 542 | ||
| 536 | (defun elp-results-jump-to-definition-by-mouse (event) | 543 | (defun elp-results-jump-to-definition (&optional event) |
| 537 | "Jump to the definition of the function under the place specified by EVENT." | ||
| 538 | (interactive "e") | ||
| 539 | (posn-set-point (event-end event)) | ||
| 540 | (elp-results-jump-to-definition)) | ||
| 541 | |||
| 542 | (defun elp-results-jump-to-definition () | ||
| 543 | "Jump to the definition of the function under the point." | 544 | "Jump to the definition of the function under the point." |
| 544 | (interactive) | 545 | (interactive (list last-nonmenu-event)) |
| 546 | (if event (posn-set-point (event-end event))) | ||
| 545 | (find-function (get-text-property (point) 'elp-symname))) | 547 | (find-function (get-text-property (point) 'elp-symname))) |
| 546 | 548 | ||
| 547 | (defun elp-output-insert-symname (symname) | 549 | (defun elp-output-insert-symname (symname) |
| @@ -550,7 +552,7 @@ original definition, use \\[elp-restore-function] or \\[elp-restore-all]." | |||
| 550 | 'elp-symname (intern symname) | 552 | 'elp-symname (intern symname) |
| 551 | 'keymap elp-results-symname-map | 553 | 'keymap elp-results-symname-map |
| 552 | 'mouse-face 'highlight | 554 | 'mouse-face 'highlight |
| 553 | 'help-echo (substitute-command-keys "\\{elp-results-symname-map}")))) | 555 | 'help-echo "mouse-2 or RET jumps to definition"))) |
| 554 | 556 | ||
| 555 | ;;;###autoload | 557 | ;;;###autoload |
| 556 | (defun elp-results () | 558 | (defun elp-results () |
| @@ -630,5 +632,5 @@ displayed." | |||
| 630 | 632 | ||
| 631 | (provide 'elp) | 633 | (provide 'elp) |
| 632 | 634 | ||
| 633 | ;;; arch-tag: c4eef311-9b3e-4bb2-8a54-3485d41b4eb1 | 635 | ;; arch-tag: c4eef311-9b3e-4bb2-8a54-3485d41b4eb1 |
| 634 | ;;; elp.el ends here | 636 | ;;; elp.el ends here |
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el index d83ebd543cd..0590af50249 100644 --- a/lisp/emulation/cua-rect.el +++ b/lisp/emulation/cua-rect.el | |||
| @@ -65,6 +65,7 @@ | |||
| 65 | ;; List of overlays used to display current rectangle. | 65 | ;; List of overlays used to display current rectangle. |
| 66 | (defvar cua--rectangle-overlays nil) | 66 | (defvar cua--rectangle-overlays nil) |
| 67 | (make-variable-buffer-local 'cua--rectangle-overlays) | 67 | (make-variable-buffer-local 'cua--rectangle-overlays) |
| 68 | (put 'cua--rectangle-overlays 'permanent-local t) | ||
| 68 | 69 | ||
| 69 | (defvar cua--overlay-keymap | 70 | (defvar cua--overlay-keymap |
| 70 | (let ((map (make-sparse-keymap))) | 71 | (let ((map (make-sparse-keymap))) |
| @@ -781,7 +782,7 @@ If command is repeated at same position, delete the rectangle." | |||
| 781 | (make-string | 782 | (make-string |
| 782 | (- l cl0 (if (and (= le pl) (/= le lb)) 1 0)) | 783 | (- l cl0 (if (and (= le pl) (/= le lb)) 1 0)) |
| 783 | (if cua--virtual-edges-debug ?. ?\s)) | 784 | (if cua--virtual-edges-debug ?. ?\s)) |
| 784 | 'face 'default)) | 785 | 'face (or (get-text-property (1- s) 'face) 'default))) |
| 785 | (if (/= pl le) | 786 | (if (/= pl le) |
| 786 | (setq s (1- s)))) | 787 | (setq s (1- s)))) |
| 787 | (cond | 788 | (cond |
| @@ -1393,7 +1394,12 @@ With prefix arg, indent to that column." | |||
| 1393 | (if (and mark-active | 1394 | (if (and mark-active |
| 1394 | (not deactivate-mark)) | 1395 | (not deactivate-mark)) |
| 1395 | (cua--highlight-rectangle) | 1396 | (cua--highlight-rectangle) |
| 1396 | (cua--deactivate-rectangle))) | 1397 | (cua--deactivate-rectangle)) |
| 1398 | (when cua--rectangle-overlays | ||
| 1399 | ;; clean-up after revert-buffer | ||
| 1400 | (mapcar (function delete-overlay) cua--rectangle-overlays) | ||
| 1401 | (setq cua--rectangle-overlays nil) | ||
| 1402 | (setq deactivate-mark t))) | ||
| 1397 | (when cua--rect-undo-set-point | 1403 | (when cua--rect-undo-set-point |
| 1398 | (goto-char cua--rect-undo-set-point) | 1404 | (goto-char cua--rect-undo-set-point) |
| 1399 | (setq cua--rect-undo-set-point nil))) | 1405 | (setq cua--rect-undo-set-point nil))) |
diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el index 2af0a9bbfa8..c8a5d53b504 100644 --- a/lisp/emulation/viper-keym.el +++ b/lisp/emulation/viper-keym.el | |||
| @@ -200,9 +200,10 @@ Enter as a sexp. Examples: \"\\C-z\", [(control ?z)]." | |||
| 200 | :type 'string | 200 | :type 'string |
| 201 | :group 'viper) | 201 | :group 'viper) |
| 202 | 202 | ||
| 203 | (defcustom viper-ESC-key [(escape)] ; "\e" | 203 | (defcustom viper-ESC-key (if (viper-window-display-p) [(escape)] "\e") |
| 204 | "Key used to ESC. | 204 | "Key used to ESC. |
| 205 | Enter as a sexp. Examples: \"\\e\", [(escape)]." | 205 | Enter as a sexp. Examples: \"\\e\", [(escape)]. |
| 206 | If running in a terminal, [(escape)] is not understood, so must use \"\\e\"." | ||
| 206 | :type 'sexp | 207 | :type 'sexp |
| 207 | :group 'viper | 208 | :group 'viper |
| 208 | :set (lambda (symbol value) | 209 | :set (lambda (symbol value) |
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index 7bcaf8be399..754eff3906d 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> | 9 | ;; Author: Michael Kifer <kifer@cs.stonybrook.edu> |
| 10 | ;; Keywords: emulations | 10 | ;; Keywords: emulations |
| 11 | 11 | ||
| 12 | (defconst viper-version "3.11.5 of October 5, 2005" | 12 | (defconst viper-version "3.11.5 of November 25, 2005" |
| 13 | "The current version of Viper") | 13 | "The current version of Viper") |
| 14 | 14 | ||
| 15 | ;; This file is part of GNU Emacs. | 15 | ;; This file is part of GNU Emacs. |
| @@ -429,7 +429,6 @@ widget." | |||
| 429 | occur-mode | 429 | occur-mode |
| 430 | 430 | ||
| 431 | mh-folder-mode | 431 | mh-folder-mode |
| 432 | mail-mode | ||
| 433 | gnus-group-mode | 432 | gnus-group-mode |
| 434 | gnus-summary-mode | 433 | gnus-summary-mode |
| 435 | 434 | ||
| @@ -442,6 +441,8 @@ widget." | |||
| 442 | 441 | ||
| 443 | rcirc-mode | 442 | rcirc-mode |
| 444 | 443 | ||
| 444 | jde-javadoc-checker-report-mode | ||
| 445 | |||
| 445 | view-mode | 446 | view-mode |
| 446 | vm-mode | 447 | vm-mode |
| 447 | vm-summary-mode) | 448 | vm-summary-mode) |
diff --git a/lisp/files.el b/lisp/files.el index 7bd01f93841..6a049f8f0f1 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -3154,7 +3154,7 @@ Uses `backup-directory-alist' in the same way as does | |||
| 3154 | This function returns a relative file name which is equivalent to FILENAME | 3154 | This function returns a relative file name which is equivalent to FILENAME |
| 3155 | when used with that default directory as the default. | 3155 | when used with that default directory as the default. |
| 3156 | If FILENAME and DIRECTORY lie on different machines or on different drives | 3156 | If FILENAME and DIRECTORY lie on different machines or on different drives |
| 3157 | on a DOS/Windows machine, it returns FILENAME on expanded form." | 3157 | on a DOS/Windows machine, it returns FILENAME in expanded form." |
| 3158 | (save-match-data | 3158 | (save-match-data |
| 3159 | (setq directory | 3159 | (setq directory |
| 3160 | (file-name-as-directory (expand-file-name (or directory | 3160 | (file-name-as-directory (expand-file-name (or directory |
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 1c9ccff2432..47bc5152501 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -1123,8 +1123,9 @@ delimit the region to fontify." | |||
| 1123 | (font-lock-fontify-region (point) (mark))) | 1123 | (font-lock-fontify-region (point) (mark))) |
| 1124 | ((error quit) (message "Fontifying block...%s" error-data))))))) | 1124 | ((error quit) (message "Fontifying block...%s" error-data))))))) |
| 1125 | 1125 | ||
| 1126 | (if (boundp 'facemenu-keymap) | 1126 | (unless (featurep 'facemenu) |
| 1127 | (define-key facemenu-keymap "\M-o" 'font-lock-fontify-block)) | 1127 | (error "facemenu must be loaded before font-lock")) |
| 1128 | (define-key facemenu-keymap "\M-o" 'font-lock-fontify-block) | ||
| 1128 | 1129 | ||
| 1129 | ;;; End of Fontification functions. | 1130 | ;;; End of Fontification functions. |
| 1130 | 1131 | ||
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index b6d62bf9b83..01babcddc86 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2005-11-30 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * gnus-delay.el (gnus-delay-group): Don't autoload. | ||
| 4 | It's useless and could trigger a bug in cus-dep.el causing ldefs-boot | ||
| 5 | to be re-loaded when customizing the `gnus-delay' group. | ||
| 6 | |||
| 1 | 2005-11-19 Chong Yidong <cyd@stupidchicken.com> | 7 | 2005-11-19 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 8 | ||
| 3 | * message.el: Revert last changes. | 9 | * message.el: Revert last changes. |
diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el index a664ff8ba00..a427aaefab8 100644 --- a/lisp/gnus/gnus-delay.el +++ b/lisp/gnus/gnus-delay.el | |||
| @@ -39,7 +39,6 @@ | |||
| 39 | (require 'gnus-draft) | 39 | (require 'gnus-draft) |
| 40 | (autoload 'parse-time-string "parse-time" nil nil) | 40 | (autoload 'parse-time-string "parse-time" nil nil) |
| 41 | 41 | ||
| 42 | ;;;###autoload | ||
| 43 | (defgroup gnus-delay nil | 42 | (defgroup gnus-delay nil |
| 44 | "Arrange for sending postings later." | 43 | "Arrange for sending postings later." |
| 45 | :version "22.1" | 44 | :version "22.1" |
| @@ -195,5 +194,5 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil." | |||
| 195 | ;; coding: iso-8859-1 | 194 | ;; coding: iso-8859-1 |
| 196 | ;; End: | 195 | ;; End: |
| 197 | 196 | ||
| 198 | ;;; arch-tag: fb2ad634-a897-4142-a503-f5991ec2349d | 197 | ;; arch-tag: fb2ad634-a897-4142-a503-f5991ec2349d |
| 199 | ;;; gnus-delay.el ends here | 198 | ;;; gnus-delay.el ends here |
diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 6d95827c3e4..6bc41e7b947 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el | |||
| @@ -223,7 +223,6 @@ KIND should be `var' for a variable or `subr' for a subroutine." | |||
| 223 | (concat "src/" file) | 223 | (concat "src/" file) |
| 224 | file))))) | 224 | file))))) |
| 225 | 225 | ||
| 226 | ;;;###autoload | ||
| 227 | (defface help-argument-name '((((supports :slant italic)) :inherit italic)) | 226 | (defface help-argument-name '((((supports :slant italic)) :inherit italic)) |
| 228 | "Face to highlight argument names in *Help* buffers." | 227 | "Face to highlight argument names in *Help* buffers." |
| 229 | :group 'help) | 228 | :group 'help) |
| @@ -436,7 +435,9 @@ face (according to `face-differs-from-default-p')." | |||
| 436 | (format "\nMacro: %s" (format-kbd-macro def))) | 435 | (format "\nMacro: %s" (format-kbd-macro def))) |
| 437 | (t "[Missing arglist. Please make a bug report.]"))) | 436 | (t "[Missing arglist. Please make a bug report.]"))) |
| 438 | (high (help-highlight-arguments use doc))) | 437 | (high (help-highlight-arguments use doc))) |
| 439 | (insert (car high) "\n") | 438 | (let ((fill-begin (point))) |
| 439 | (insert (car high) "\n") | ||
| 440 | (fill-region fill-begin (point))) | ||
| 440 | (setq doc (cdr high)))) | 441 | (setq doc (cdr high)))) |
| 441 | (let ((obsolete (and | 442 | (let ((obsolete (and |
| 442 | ;; function might be a lambda construct. | 443 | ;; function might be a lambda construct. |
diff --git a/lisp/help.el b/lisp/help.el index 5141c06981a..cd95af0e866 100644 --- a/lisp/help.el +++ b/lisp/help.el | |||
| @@ -38,7 +38,57 @@ | |||
| 38 | (add-hook 'temp-buffer-setup-hook 'help-mode-setup) | 38 | (add-hook 'temp-buffer-setup-hook 'help-mode-setup) |
| 39 | (add-hook 'temp-buffer-show-hook 'help-mode-finish) | 39 | (add-hook 'temp-buffer-show-hook 'help-mode-finish) |
| 40 | 40 | ||
| 41 | (defvar help-map (make-sparse-keymap) | 41 | (defvar help-map |
| 42 | (let ((map (make-sparse-keymap))) | ||
| 43 | (define-key map (char-to-string help-char) 'help-for-help) | ||
| 44 | (define-key map [help] 'help-for-help) | ||
| 45 | (define-key map [f1] 'help-for-help) | ||
| 46 | (define-key map "." 'display-local-help) | ||
| 47 | (define-key map "?" 'help-for-help) | ||
| 48 | |||
| 49 | (define-key map "\C-c" 'describe-copying) | ||
| 50 | (define-key map "\C-d" 'describe-distribution) | ||
| 51 | (define-key map "\C-e" 'view-emacs-problems) | ||
| 52 | (define-key map "\C-f" 'view-emacs-FAQ) | ||
| 53 | (define-key map "\C-m" 'view-order-manuals) | ||
| 54 | (define-key map "\C-n" 'view-emacs-news) | ||
| 55 | (define-key map "\C-p" 'describe-project) | ||
| 56 | (define-key map "\C-t" 'view-todo) | ||
| 57 | (define-key map "\C-w" 'describe-no-warranty) | ||
| 58 | |||
| 59 | ;; This does not fit the pattern, but it is natural given the C-\ command. | ||
| 60 | (define-key map "\C-\\" 'describe-input-method) | ||
| 61 | |||
| 62 | (define-key map "C" 'describe-coding-system) | ||
| 63 | (define-key map "F" 'Info-goto-emacs-command-node) | ||
| 64 | (define-key map "I" 'describe-input-method) | ||
| 65 | (define-key map "K" 'Info-goto-emacs-key-command-node) | ||
| 66 | (define-key map "L" 'describe-language-environment) | ||
| 67 | (define-key map "S" 'info-lookup-symbol) | ||
| 68 | |||
| 69 | (define-key map "a" 'apropos-command) | ||
| 70 | (define-key map "b" 'describe-bindings) | ||
| 71 | (define-key map "c" 'describe-key-briefly) | ||
| 72 | (define-key map "d" 'apropos-documentation) | ||
| 73 | (define-key map "e" 'view-echo-area-messages) | ||
| 74 | (define-key map "f" 'describe-function) | ||
| 75 | (define-key map "h" 'view-hello-file) | ||
| 76 | |||
| 77 | (define-key map "i" 'info) | ||
| 78 | (define-key map "4i" 'info-other-window) | ||
| 79 | |||
| 80 | (define-key map "k" 'describe-key) | ||
| 81 | (define-key map "l" 'view-lossage) | ||
| 82 | (define-key map "m" 'describe-mode) | ||
| 83 | (define-key map "n" 'view-emacs-news) | ||
| 84 | (define-key map "p" 'finder-by-keyword) | ||
| 85 | (define-key map "r" 'info-emacs-manual) | ||
| 86 | (define-key map "s" 'describe-syntax) | ||
| 87 | (define-key map "t" 'help-with-tutorial) | ||
| 88 | (define-key map "w" 'where-is) | ||
| 89 | (define-key map "v" 'describe-variable) | ||
| 90 | (define-key map "q" 'help-quit) | ||
| 91 | map) | ||
| 42 | "Keymap for characters following the Help key.") | 92 | "Keymap for characters following the Help key.") |
| 43 | 93 | ||
| 44 | (define-key global-map (char-to-string help-char) 'help-command) | 94 | (define-key global-map (char-to-string help-char) 'help-command) |
| @@ -46,73 +96,9 @@ | |||
| 46 | (define-key global-map [f1] 'help-command) | 96 | (define-key global-map [f1] 'help-command) |
| 47 | (fset 'help-command help-map) | 97 | (fset 'help-command help-map) |
| 48 | 98 | ||
| 49 | (define-key help-map (char-to-string help-char) 'help-for-help) | ||
| 50 | (define-key help-map [help] 'help-for-help) | ||
| 51 | (define-key help-map [f1] 'help-for-help) | ||
| 52 | (define-key help-map "." 'display-local-help) | ||
| 53 | (define-key help-map "?" 'help-for-help) | ||
| 54 | |||
| 55 | (define-key help-map "\C-c" 'describe-copying) | ||
| 56 | (define-key help-map "\C-d" 'describe-distribution) | ||
| 57 | (define-key help-map "\C-e" 'view-emacs-problems) | ||
| 58 | (define-key help-map "\C-f" 'view-emacs-FAQ) | ||
| 59 | (define-key help-map "\C-m" 'view-order-manuals) | ||
| 60 | (define-key help-map "\C-n" 'view-emacs-news) | ||
| 61 | (define-key help-map "\C-p" 'describe-project) | ||
| 62 | (define-key help-map "\C-t" 'view-todo) | ||
| 63 | (define-key help-map "\C-w" 'describe-no-warranty) | ||
| 64 | |||
| 65 | ;; This does not fit the pattern, but it is natural given the C-\ command. | ||
| 66 | (define-key help-map "\C-\\" 'describe-input-method) | ||
| 67 | |||
| 68 | (define-key help-map "C" 'describe-coding-system) | ||
| 69 | (define-key help-map "F" 'Info-goto-emacs-command-node) | ||
| 70 | (define-key help-map "I" 'describe-input-method) | ||
| 71 | (define-key help-map "K" 'Info-goto-emacs-key-command-node) | ||
| 72 | (define-key help-map "L" 'describe-language-environment) | ||
| 73 | (define-key help-map "S" 'info-lookup-symbol) | ||
| 74 | |||
| 75 | (define-key help-map "a" 'apropos-command) | ||
| 76 | |||
| 77 | (define-key help-map "b" 'describe-bindings) | ||
| 78 | |||
| 79 | (define-key help-map "c" 'describe-key-briefly) | ||
| 80 | |||
| 81 | (define-key help-map "d" 'apropos-documentation) | ||
| 82 | |||
| 83 | (define-key help-map "e" 'view-echo-area-messages) | ||
| 84 | |||
| 85 | (define-key help-map "f" 'describe-function) | ||
| 86 | |||
| 87 | (define-key help-map "h" 'view-hello-file) | ||
| 88 | |||
| 89 | (define-key help-map "i" 'info) | ||
| 90 | (define-key help-map "4i" 'info-other-window) | ||
| 91 | |||
| 92 | (define-key help-map "k" 'describe-key) | ||
| 93 | |||
| 94 | (define-key help-map "l" 'view-lossage) | ||
| 95 | |||
| 96 | (define-key help-map "m" 'describe-mode) | ||
| 97 | |||
| 98 | (define-key help-map "n" 'view-emacs-news) | ||
| 99 | |||
| 100 | (define-key help-map "p" 'finder-by-keyword) | ||
| 101 | (autoload 'finder-by-keyword "finder" | 99 | (autoload 'finder-by-keyword "finder" |
| 102 | "Find packages matching a given keyword." t) | 100 | "Find packages matching a given keyword." t) |
| 103 | 101 | ||
| 104 | (define-key help-map "r" 'info-emacs-manual) | ||
| 105 | |||
| 106 | (define-key help-map "s" 'describe-syntax) | ||
| 107 | |||
| 108 | (define-key help-map "t" 'help-with-tutorial) | ||
| 109 | |||
| 110 | (define-key help-map "w" 'where-is) | ||
| 111 | |||
| 112 | (define-key help-map "v" 'describe-variable) | ||
| 113 | |||
| 114 | (define-key help-map "q" 'help-quit) | ||
| 115 | |||
| 116 | ;; insert-button makes the action nil if it is not store somewhere | 102 | ;; insert-button makes the action nil if it is not store somewhere |
| 117 | (defvar help-button-cache nil) | 103 | (defvar help-button-cache nil) |
| 118 | 104 | ||
| @@ -590,7 +576,7 @@ the last key hit are used." | |||
| 590 | (goto-char position))) | 576 | (goto-char position))) |
| 591 | ;; Ok, now look up the key and name the command. | 577 | ;; Ok, now look up the key and name the command. |
| 592 | (let ((defn (or (string-key-binding key) | 578 | (let ((defn (or (string-key-binding key) |
| 593 | (key-binding key))) | 579 | (key-binding key t))) |
| 594 | key-desc) | 580 | key-desc) |
| 595 | ;; Don't bother user with strings from (e.g.) the select-paste menu. | 581 | ;; Don't bother user with strings from (e.g.) the select-paste menu. |
| 596 | (if (stringp (aref key (1- (length key)))) | 582 | (if (stringp (aref key (1- (length key)))) |
| @@ -615,7 +601,7 @@ KEY can be any kind of a key sequence; it can include keyboard events, | |||
| 615 | mouse events, and/or menu events. When calling from a program, | 601 | mouse events, and/or menu events. When calling from a program, |
| 616 | pass KEY as a string or a vector. | 602 | pass KEY as a string or a vector. |
| 617 | 603 | ||
| 618 | If non-nil, UNTRANSLATED is a vector of the correspondinguntranslated events. | 604 | If non-nil, UNTRANSLATED is a vector of the corresponding untranslated events. |
| 619 | It can also be a number, in which case the untranslated events from | 605 | It can also be a number, in which case the untranslated events from |
| 620 | the last key sequence entered are used." | 606 | the last key sequence entered are used." |
| 621 | ;; UP-EVENT is the up-event that was discarded by reading KEY, or nil. | 607 | ;; UP-EVENT is the up-event that was discarded by reading KEY, or nil. |
| @@ -635,7 +621,7 @@ the last key sequence entered are used." | |||
| 635 | (when (windowp window) | 621 | (when (windowp window) |
| 636 | (set-buffer (window-buffer window)) | 622 | (set-buffer (window-buffer window)) |
| 637 | (goto-char position)) | 623 | (goto-char position)) |
| 638 | (let ((defn (or (string-key-binding key) (key-binding key)))) | 624 | (let ((defn (or (string-key-binding key) (key-binding key t)))) |
| 639 | (if (or (null defn) (integerp defn) (equal defn 'undefined)) | 625 | (if (or (null defn) (integerp defn) (equal defn 'undefined)) |
| 640 | (message "%s is undefined" (help-key-description key untranslated)) | 626 | (message "%s is undefined" (help-key-description key untranslated)) |
| 641 | (help-setup-xref (list #'describe-function defn) (interactive-p)) | 627 | (help-setup-xref (list #'describe-function defn) (interactive-p)) |
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index 8d565ab61a8..4c61be5529e 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el | |||
| @@ -89,16 +89,6 @@ | |||
| 89 | :link '(custom-manual "(emacs)Highlight Interactively") | 89 | :link '(custom-manual "(emacs)Highlight Interactively") |
| 90 | :group 'font-lock) | 90 | :group 'font-lock) |
| 91 | 91 | ||
| 92 | ;;;###autoload | ||
| 93 | (defcustom hi-lock-mode nil | ||
| 94 | "Toggle hi-lock, for interactively adding font-lock text-highlighting patterns." | ||
| 95 | :set (lambda (symbol value) | ||
| 96 | (hi-lock-mode (or value 0))) | ||
| 97 | :initialize 'custom-initialize-default | ||
| 98 | :type 'boolean | ||
| 99 | :group 'hi-lock | ||
| 100 | :require 'hi-lock) | ||
| 101 | |||
| 102 | (defcustom hi-lock-file-patterns-range 10000 | 92 | (defcustom hi-lock-file-patterns-range 10000 |
| 103 | "Limit of search in a buffer for hi-lock patterns. | 93 | "Limit of search in a buffer for hi-lock patterns. |
| 104 | When a file is visited and hi-lock mode is on patterns starting | 94 | When a file is visited and hi-lock mode is on patterns starting |
| @@ -244,19 +234,11 @@ calls." | |||
| 244 | (define-key hi-lock-map "\C-xwr" 'unhighlight-regexp) | 234 | (define-key hi-lock-map "\C-xwr" 'unhighlight-regexp) |
| 245 | (define-key hi-lock-map "\C-xwb" 'hi-lock-write-interactive-patterns) | 235 | (define-key hi-lock-map "\C-xwb" 'hi-lock-write-interactive-patterns) |
| 246 | 236 | ||
| 247 | (unless (assq 'hi-lock-mode minor-mode-map-alist) | ||
| 248 | (setq minor-mode-map-alist (cons (cons 'hi-lock-mode hi-lock-map) | ||
| 249 | minor-mode-map-alist))) | ||
| 250 | |||
| 251 | (unless (assq 'hi-lock-mode minor-mode-alist) | ||
| 252 | (setq minor-mode-alist (cons '(hi-lock-mode " H") minor-mode-alist))) | ||
| 253 | |||
| 254 | |||
| 255 | ;; Visible Functions | 237 | ;; Visible Functions |
| 256 | 238 | ||
| 257 | 239 | ||
| 258 | ;;;###autoload | 240 | ;;;###autoload |
| 259 | (defun hi-lock-mode (&optional arg) | 241 | (define-minor-mode hi-lock-buffer-mode |
| 260 | "Toggle minor mode for interactively adding font-lock highlighting patterns. | 242 | "Toggle minor mode for interactively adding font-lock highlighting patterns. |
| 261 | 243 | ||
| 262 | If ARG positive turn hi-lock on. Issuing a hi-lock command will also | 244 | If ARG positive turn hi-lock on. Issuing a hi-lock command will also |
| @@ -297,43 +279,40 @@ of characters into buffer) `hi-lock-file-patterns-range'. Patterns | |||
| 297 | will be read until | 279 | will be read until |
| 298 | Hi-lock: end | 280 | Hi-lock: end |
| 299 | is found. A mode is excluded if it's in the list `hi-lock-exclude-modes'." | 281 | is found. A mode is excluded if it's in the list `hi-lock-exclude-modes'." |
| 300 | (interactive) | 282 | :group 'hi-lock |
| 301 | (let ((hi-lock-mode-prev hi-lock-mode)) | 283 | :lighter " H" |
| 302 | (setq hi-lock-mode | 284 | :global nil |
| 303 | (if (null arg) (not hi-lock-mode) | 285 | :keymap hi-lock-map |
| 304 | (> (prefix-numeric-value arg) 0))) | 286 | (if hi-lock-buffer-mode |
| 305 | ;; Turned on. | 287 | ;; Turned on. |
| 306 | (when (and (not hi-lock-mode-prev) hi-lock-mode) | 288 | (progn |
| 307 | (add-hook 'find-file-hook 'hi-lock-find-file-hook) | 289 | (unless font-lock-mode (font-lock-mode 1)) |
| 308 | (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook) | 290 | (define-key-after menu-bar-edit-menu [hi-lock] |
| 309 | (if (null (default-value 'font-lock-defaults)) | 291 | (cons "Regexp Highlighting" hi-lock-menu)) |
| 310 | (setq-default font-lock-defaults '(nil))) | 292 | (hi-lock-find-patterns) |
| 311 | (if (null font-lock-defaults) | 293 | (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook nil t)) |
| 312 | (setq font-lock-defaults '(nil))) | ||
| 313 | (unless font-lock-mode | ||
| 314 | (font-lock-mode 1)) | ||
| 315 | (define-key-after menu-bar-edit-menu [hi-lock] | ||
| 316 | (cons "Regexp Highlighting" hi-lock-menu)) | ||
| 317 | (dolist (buffer (buffer-list)) | ||
| 318 | (with-current-buffer buffer (hi-lock-find-patterns)))) | ||
| 319 | ;; Turned off. | 294 | ;; Turned off. |
| 320 | (when (and hi-lock-mode-prev (not hi-lock-mode)) | 295 | (when (or hi-lock-interactive-patterns |
| 321 | (dolist (buffer (buffer-list)) | 296 | hi-lock-file-patterns) |
| 322 | (with-current-buffer buffer | 297 | (when hi-lock-interactive-patterns |
| 323 | (when (or hi-lock-interactive-patterns hi-lock-file-patterns) | 298 | (font-lock-remove-keywords nil hi-lock-interactive-patterns) |
| 324 | (font-lock-remove-keywords nil hi-lock-interactive-patterns) | 299 | (setq hi-lock-interactive-patterns nil)) |
| 325 | (font-lock-remove-keywords nil hi-lock-file-patterns) | 300 | (when hi-lock-file-patterns |
| 326 | (setq hi-lock-interactive-patterns nil | 301 | (font-lock-remove-keywords nil hi-lock-file-patterns) |
| 327 | hi-lock-file-patterns nil) | 302 | (setq hi-lock-file-patterns nil)) |
| 328 | (when font-lock-mode (hi-lock-refontify))))) | 303 | (if font-lock-mode |
| 329 | 304 | (font-lock-fontify-buffer))) | |
| 330 | (let ((fld (default-value 'font-lock-defaults))) | 305 | (define-key-after menu-bar-edit-menu [hi-lock] nil) |
| 331 | (if (and fld (listp fld) (null (car fld))) | 306 | (remove-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook t))) |
| 332 | (setq-default font-lock-defaults (cdr fld)))) | ||
| 333 | (define-key-after menu-bar-edit-menu [hi-lock] nil) | ||
| 334 | (remove-hook 'find-file-hook 'hi-lock-find-file-hook) | ||
| 335 | (remove-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook)))) | ||
| 336 | 307 | ||
| 308 | ;;;###autoload | ||
| 309 | (define-global-minor-mode hi-lock-mode | ||
| 310 | hi-lock-buffer-mode turn-on-hi-lock-if-enabled | ||
| 311 | :group 'hi-lock) | ||
| 312 | |||
| 313 | (defun turn-on-hi-lock-if-enabled () | ||
| 314 | (unless (memq major-mode hi-lock-exclude-modes) | ||
| 315 | (hi-lock-buffer-mode 1))) | ||
| 337 | 316 | ||
| 338 | ;;;###autoload | 317 | ;;;###autoload |
| 339 | (defalias 'highlight-lines-matching-regexp 'hi-lock-line-face-buffer) | 318 | (defalias 'highlight-lines-matching-regexp 'hi-lock-line-face-buffer) |
| @@ -352,12 +331,12 @@ list maintained for regexps, global history maintained for faces. | |||
| 352 | (cons (or (car hi-lock-regexp-history) "") 1 ) | 331 | (cons (or (car hi-lock-regexp-history) "") 1 ) |
| 353 | nil nil 'hi-lock-regexp-history)) | 332 | nil nil 'hi-lock-regexp-history)) |
| 354 | (hi-lock-read-face-name))) | 333 | (hi-lock-read-face-name))) |
| 355 | (unless hi-lock-mode (hi-lock-mode)) | 334 | (or (facep face) (setq face 'hi-yellow)) |
| 356 | (or (facep face) (setq face 'rwl-yellow)) | 335 | (unless hi-lock-buffer-mode (hi-lock-buffer-mode 1)) |
| 357 | (hi-lock-set-pattern | 336 | (hi-lock-set-pattern |
| 358 | ;; The \\(?:...\\) grouping construct ensures that a leading ^, +, * or ? | 337 | ;; The \\(?:...\\) grouping construct ensures that a leading ^, +, * or ? |
| 359 | ;; or a trailing $ in REGEXP will be interpreted correctly. | 338 | ;; or a trailing $ in REGEXP will be interpreted correctly. |
| 360 | (list (concat "^.*\\(?:" regexp "\\).*$") (list 0 (list 'quote face) t)))) | 339 | (concat "^.*\\(?:" regexp "\\).*$") face)) |
| 361 | 340 | ||
| 362 | 341 | ||
| 363 | ;;;###autoload | 342 | ;;;###autoload |
| @@ -377,9 +356,9 @@ list maintained for regexps, global history maintained for faces. | |||
| 377 | (cons (or (car hi-lock-regexp-history) "") 1 ) | 356 | (cons (or (car hi-lock-regexp-history) "") 1 ) |
| 378 | nil nil 'hi-lock-regexp-history)) | 357 | nil nil 'hi-lock-regexp-history)) |
| 379 | (hi-lock-read-face-name))) | 358 | (hi-lock-read-face-name))) |
| 380 | (or (facep face) (setq face 'rwl-yellow)) | 359 | (or (facep face) (setq face 'hi-yellow)) |
| 381 | (unless hi-lock-mode (hi-lock-mode)) | 360 | (unless hi-lock-buffer-mode (hi-lock-buffer-mode 1)) |
| 382 | (hi-lock-set-pattern (list regexp (list 0 (list 'quote face) t)))) | 361 | (hi-lock-set-pattern regexp face)) |
| 383 | 362 | ||
| 384 | ;;;###autoload | 363 | ;;;###autoload |
| 385 | (defalias 'highlight-phrase 'hi-lock-face-phrase-buffer) | 364 | (defalias 'highlight-phrase 'hi-lock-face-phrase-buffer) |
| @@ -397,9 +376,9 @@ lower-case letters made case insensitive." | |||
| 397 | (cons (or (car hi-lock-regexp-history) "") 1 ) | 376 | (cons (or (car hi-lock-regexp-history) "") 1 ) |
| 398 | nil nil 'hi-lock-regexp-history))) | 377 | nil nil 'hi-lock-regexp-history))) |
| 399 | (hi-lock-read-face-name))) | 378 | (hi-lock-read-face-name))) |
| 400 | (or (facep face) (setq face 'rwl-yellow)) | 379 | (or (facep face) (setq face 'hi-yellow)) |
| 401 | (unless hi-lock-mode (hi-lock-mode)) | 380 | (unless hi-lock-buffer-mode (hi-lock-buffer-mode 1)) |
| 402 | (hi-lock-set-pattern (list regexp (list 0 (list 'quote face) t)))) | 381 | (hi-lock-set-pattern regexp face)) |
| 403 | 382 | ||
| 404 | ;;;###autoload | 383 | ;;;###autoload |
| 405 | (defalias 'unhighlight-regexp 'hi-lock-unface-buffer) | 384 | (defalias 'unhighlight-regexp 'hi-lock-unface-buffer) |
| @@ -451,7 +430,7 @@ interactive functions. \(See `hi-lock-interactive-patterns'.\) | |||
| 451 | (font-lock-remove-keywords nil (list keyword)) | 430 | (font-lock-remove-keywords nil (list keyword)) |
| 452 | (setq hi-lock-interactive-patterns | 431 | (setq hi-lock-interactive-patterns |
| 453 | (delq keyword hi-lock-interactive-patterns)) | 432 | (delq keyword hi-lock-interactive-patterns)) |
| 454 | (hi-lock-refontify)))) | 433 | (font-lock-fontify-buffer)))) |
| 455 | 434 | ||
| 456 | ;;;###autoload | 435 | ;;;###autoload |
| 457 | (defun hi-lock-write-interactive-patterns () | 436 | (defun hi-lock-write-interactive-patterns () |
| @@ -461,17 +440,16 @@ Interactively added patterns are those normally specified using | |||
| 461 | `highlight-regexp' and `highlight-lines-matching-regexp'; they can | 440 | `highlight-regexp' and `highlight-lines-matching-regexp'; they can |
| 462 | be found in variable `hi-lock-interactive-patterns'." | 441 | be found in variable `hi-lock-interactive-patterns'." |
| 463 | (interactive) | 442 | (interactive) |
| 464 | (let ((prefix (format "%s %s:" (or comment-start "") "Hi-lock"))) | 443 | (if (null hi-lock-interactive-patterns) |
| 465 | (when (> (+ (point) (length prefix)) hi-lock-file-patterns-range) | 444 | (error "There are no interactive patterns")) |
| 466 | (beep) | 445 | (let ((beg (point))) |
| 467 | (message | ||
| 468 | "Warning, inserted keywords not close enough to top of file.")) | ||
| 469 | (mapcar | 446 | (mapcar |
| 470 | (lambda (pattern) | 447 | (lambda (pattern) |
| 471 | (insert (format "%s (%s) %s\n" | 448 | (insert (format "Hi-lock: (%s)\n" (prin1-to-string pattern)))) |
| 472 | prefix (prin1-to-string pattern) (or comment-end "")))) | 449 | hi-lock-interactive-patterns) |
| 473 | hi-lock-interactive-patterns))) | 450 | (comment-region beg (point))) |
| 474 | 451 | (when (> (point) hi-lock-file-patterns-range) | |
| 452 | (warn "Inserted keywords not close enough to top of file"))) | ||
| 475 | 453 | ||
| 476 | ;; Implementation Functions | 454 | ;; Implementation Functions |
| 477 | 455 | ||
| @@ -513,29 +491,22 @@ not suitable." | |||
| 513 | (length prefix) 0))) | 491 | (length prefix) 0))) |
| 514 | '(hi-lock-face-history . 0)))) | 492 | '(hi-lock-face-history . 0)))) |
| 515 | 493 | ||
| 516 | (defun hi-lock-find-file-hook () | 494 | (defun hi-lock-set-pattern (regexp face) |
| 517 | "Add hi-lock patterns, if present." | 495 | "Highlight REGEXP with face FACE." |
| 518 | (hi-lock-find-patterns)) | 496 | (let ((pattern (list regexp (list 0 (list 'quote face) t)))) |
| 519 | |||
| 520 | (defun hi-lock-current-line (&optional end) | ||
| 521 | "Return line number of line at point. | ||
| 522 | Optional argument END is maximum excursion." | ||
| 523 | (interactive) | ||
| 524 | (save-excursion | ||
| 525 | (beginning-of-line) | ||
| 526 | (1+ (count-lines 1 (or end (point)))))) | ||
| 527 | |||
| 528 | (defun hi-lock-set-pattern (pattern) | ||
| 529 | "Add PATTERN to list of interactively highlighted patterns and refontify." | ||
| 530 | (hi-lock-set-patterns (list pattern))) | ||
| 531 | |||
| 532 | (defun hi-lock-set-patterns (patterns) | ||
| 533 | "Add PATTERNS to list of interactively highlighted patterns and refontify.." | ||
| 534 | (dolist (pattern patterns) | ||
| 535 | (unless (member pattern hi-lock-interactive-patterns) | 497 | (unless (member pattern hi-lock-interactive-patterns) |
| 536 | (font-lock-add-keywords nil (list pattern)) | 498 | (font-lock-add-keywords nil (list pattern)) |
| 537 | (add-to-list 'hi-lock-interactive-patterns pattern))) | 499 | (push pattern hi-lock-interactive-patterns) |
| 538 | (hi-lock-refontify)) | 500 | (let ((buffer-undo-list t) |
| 501 | (inhibit-read-only t) | ||
| 502 | (mod (buffer-modified-p))) | ||
| 503 | (save-excursion | ||
| 504 | (goto-char (point-min)) | ||
| 505 | (while (re-search-forward regexp (point-max) t) | ||
| 506 | (put-text-property | ||
| 507 | (match-beginning 0) (match-end 0) 'face face) | ||
| 508 | (goto-char (match-end 0)))) | ||
| 509 | (set-buffer-modified-p mod))))) | ||
| 539 | 510 | ||
| 540 | (defun hi-lock-set-file-patterns (patterns) | 511 | (defun hi-lock-set-file-patterns (patterns) |
| 541 | "Replace file patterns list with PATTERNS and refontify." | 512 | "Replace file patterns list with PATTERNS and refontify." |
| @@ -543,13 +514,7 @@ Optional argument END is maximum excursion." | |||
| 543 | (font-lock-remove-keywords nil hi-lock-file-patterns) | 514 | (font-lock-remove-keywords nil hi-lock-file-patterns) |
| 544 | (setq hi-lock-file-patterns patterns) | 515 | (setq hi-lock-file-patterns patterns) |
| 545 | (font-lock-add-keywords nil hi-lock-file-patterns) | 516 | (font-lock-add-keywords nil hi-lock-file-patterns) |
| 546 | (hi-lock-refontify))) | 517 | (font-lock-fontify-buffer))) |
| 547 | |||
| 548 | (defun hi-lock-refontify () | ||
| 549 | "Unfontify then refontify buffer. Used when hi-lock patterns change." | ||
| 550 | (interactive) | ||
| 551 | (unless font-lock-mode (font-lock-mode 1)) | ||
| 552 | (font-lock-fontify-buffer)) | ||
| 553 | 518 | ||
| 554 | (defun hi-lock-find-patterns () | 519 | (defun hi-lock-find-patterns () |
| 555 | "Find patterns in current buffer for hi-lock." | 520 | "Find patterns in current buffer for hi-lock." |
| @@ -569,16 +534,17 @@ Optional argument END is maximum excursion." | |||
| 569 | (condition-case nil | 534 | (condition-case nil |
| 570 | (setq all-patterns (append (read (current-buffer)) all-patterns)) | 535 | (setq all-patterns (append (read (current-buffer)) all-patterns)) |
| 571 | (error (message "Invalid pattern list expression at %d" | 536 | (error (message "Invalid pattern list expression at %d" |
| 572 | (hi-lock-current-line))))))) | 537 | (line-number-at-pos))))))) |
| 573 | (when hi-lock-mode (hi-lock-set-file-patterns all-patterns)) | 538 | (when hi-lock-buffer-mode (hi-lock-set-file-patterns all-patterns)) |
| 574 | (if (interactive-p) | 539 | (if (interactive-p) |
| 575 | (message "Hi-lock added %d patterns." (length all-patterns)))))) | 540 | (message "Hi-lock added %d patterns." (length all-patterns)))))) |
| 576 | 541 | ||
| 577 | (defun hi-lock-font-lock-hook () | 542 | (defun hi-lock-font-lock-hook () |
| 578 | "Add hi lock patterns to font-lock's." | 543 | "Add hi lock patterns to font-lock's." |
| 579 | (when hi-lock-mode | 544 | (if font-lock-mode |
| 580 | (font-lock-add-keywords nil hi-lock-file-patterns) | 545 | (progn (font-lock-add-keywords nil hi-lock-file-patterns) |
| 581 | (font-lock-add-keywords nil hi-lock-interactive-patterns))) | 546 | (font-lock-add-keywords nil hi-lock-interactive-patterns)) |
| 547 | (hi-lock-buffer-mode -1))) | ||
| 582 | 548 | ||
| 583 | (provide 'hi-lock) | 549 | (provide 'hi-lock) |
| 584 | 550 | ||
diff --git a/lisp/ido.el b/lisp/ido.el index cc4eab4bb4d..a6bd99cdeea 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -899,7 +899,19 @@ The fallback command is passed as an argument to the functions." | |||
| 899 | ;; Persistent variables | 899 | ;; Persistent variables |
| 900 | 900 | ||
| 901 | (defvar ido-mode-map nil | 901 | (defvar ido-mode-map nil |
| 902 | "Keymap for `ido-find-file' and `ido-switch-buffer'.") | 902 | "Currently active keymap for ido commands.") |
| 903 | |||
| 904 | (defvar ido-mode-common-map nil | ||
| 905 | "Keymap for all ido commands.") | ||
| 906 | |||
| 907 | (defvar ido-mode-file-map nil | ||
| 908 | "Keymap for ido file commands.") | ||
| 909 | |||
| 910 | (defvar ido-mode-file-dir-map nil | ||
| 911 | "Keymap for ido file and directory commands.") | ||
| 912 | |||
| 913 | (defvar ido-mode-buffer-map nil | ||
| 914 | "Keymap for ido buffer commands.") | ||
| 903 | 915 | ||
| 904 | (defvar ido-file-history nil | 916 | (defvar ido-file-history nil |
| 905 | "History of files selected using `ido-find-file'.") | 917 | "History of files selected using `ido-find-file'.") |
| @@ -1301,8 +1313,7 @@ Removes badly formatted data and ignored directories." | |||
| 1301 | (while e | 1313 | (while e |
| 1302 | (setq d (car e) e (cdr e)) | 1314 | (setq d (car e) e (cdr e)) |
| 1303 | (if (not (consp d)) | 1315 | (if (not (consp d)) |
| 1304 | (set-text-properties 0 (length d) nil d)))))) | 1316 | (set-text-properties 0 (length d) nil d))))))) |
| 1305 | ) | ||
| 1306 | 1317 | ||
| 1307 | 1318 | ||
| 1308 | (defun ido-kill-emacs-hook () | 1319 | (defun ido-kill-emacs-hook () |
| @@ -1333,6 +1344,8 @@ This function also adds a hook to the minibuffer." | |||
| 1333 | (t nil))) | 1344 | (t nil))) |
| 1334 | 1345 | ||
| 1335 | (ido-everywhere (if ido-everywhere 1 -1)) | 1346 | (ido-everywhere (if ido-everywhere 1 -1)) |
| 1347 | (when ido-mode | ||
| 1348 | (ido-init-mode-maps)) | ||
| 1336 | 1349 | ||
| 1337 | (when ido-mode | 1350 | (when ido-mode |
| 1338 | (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup) | 1351 | (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup) |
| @@ -1391,12 +1404,11 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1391 | 1404 | ||
| 1392 | 1405 | ||
| 1393 | ;;; IDO KEYMAP | 1406 | ;;; IDO KEYMAP |
| 1394 | (defun ido-define-mode-map () | 1407 | (defun ido-init-mode-maps () |
| 1395 | "Set up the keymap for `ido'." | 1408 | "Set up the keymaps used by `ido'." |
| 1396 | (let (map) | ||
| 1397 | ;; generated every time so that it can inherit new functions. | ||
| 1398 | 1409 | ||
| 1399 | (setq map (copy-keymap minibuffer-local-map)) | 1410 | ;; Common map |
| 1411 | (let ((map (make-sparse-keymap))) | ||
| 1400 | (define-key map "\C-a" 'ido-toggle-ignore) | 1412 | (define-key map "\C-a" 'ido-toggle-ignore) |
| 1401 | (define-key map "\C-c" 'ido-toggle-case) | 1413 | (define-key map "\C-c" 'ido-toggle-case) |
| 1402 | (define-key map "\C-e" 'ido-edit-input) | 1414 | (define-key map "\C-e" 'ido-edit-input) |
| @@ -1414,57 +1426,90 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1414 | (define-key map [right] 'ido-next-match) | 1426 | (define-key map [right] 'ido-next-match) |
| 1415 | (define-key map [left] 'ido-prev-match) | 1427 | (define-key map [left] 'ido-prev-match) |
| 1416 | (define-key map "?" 'ido-completion-help) | 1428 | (define-key map "?" 'ido-completion-help) |
| 1417 | |||
| 1418 | ;; Magic commands. | 1429 | ;; Magic commands. |
| 1419 | (define-key map "\C-b" 'ido-magic-backward-char) | 1430 | (define-key map "\C-b" 'ido-magic-backward-char) |
| 1420 | (define-key map "\C-f" 'ido-magic-forward-char) | 1431 | (define-key map "\C-f" 'ido-magic-forward-char) |
| 1421 | (define-key map "\C-d" 'ido-magic-delete-char) | 1432 | (define-key map "\C-d" 'ido-magic-delete-char) |
| 1433 | (set-keymap-parent map minibuffer-local-map) | ||
| 1434 | (setq ido-mode-common-map map)) | ||
| 1435 | |||
| 1436 | ;; File and directory map | ||
| 1437 | (let ((map (make-sparse-keymap))) | ||
| 1438 | (define-key map "\C-x\C-b" 'ido-enter-switch-buffer) | ||
| 1439 | (define-key map "\C-x\C-f" 'ido-fallback-command) | ||
| 1440 | (define-key map "\C-x\C-d" 'ido-enter-dired) | ||
| 1441 | (define-key map [down] 'ido-next-match-dir) | ||
| 1442 | (define-key map [up] 'ido-prev-match-dir) | ||
| 1443 | (define-key map [(meta up)] 'ido-prev-work-directory) | ||
| 1444 | (define-key map [(meta down)] 'ido-next-work-directory) | ||
| 1445 | (define-key map [backspace] 'ido-delete-backward-updir) | ||
| 1446 | (define-key map "\d" 'ido-delete-backward-updir) | ||
| 1447 | (define-key map [(meta backspace)] 'ido-delete-backward-word-updir) | ||
| 1448 | (define-key map [(control backspace)] 'ido-up-directory) | ||
| 1449 | (define-key map "\C-l" 'ido-reread-directory) | ||
| 1450 | (define-key map [(meta ?d)] 'ido-wide-find-dir-or-delete-dir) | ||
| 1451 | (define-key map [(meta ?b)] 'ido-push-dir) | ||
| 1452 | (define-key map [(meta ?f)] 'ido-wide-find-file-or-pop-dir) | ||
| 1453 | (define-key map [(meta ?k)] 'ido-forget-work-directory) | ||
| 1454 | (define-key map [(meta ?m)] 'ido-make-directory) | ||
| 1455 | (define-key map [(meta ?n)] 'ido-next-work-directory) | ||
| 1456 | (define-key map [(meta ?o)] 'ido-prev-work-file) | ||
| 1457 | (define-key map [(meta control ?o)] 'ido-next-work-file) | ||
| 1458 | (define-key map [(meta ?p)] 'ido-prev-work-directory) | ||
| 1459 | (define-key map [(meta ?s)] 'ido-merge-work-directories) | ||
| 1460 | (set-keymap-parent map ido-mode-common-map) | ||
| 1461 | (setq ido-mode-file-dir-map map)) | ||
| 1462 | |||
| 1463 | ;; File only map | ||
| 1464 | (let ((map (make-sparse-keymap))) | ||
| 1465 | (define-key map "\C-k" 'ido-delete-file-at-head) | ||
| 1466 | (define-key map "\C-o" 'ido-copy-current-word) | ||
| 1467 | (define-key map "\C-w" 'ido-copy-current-file-name) | ||
| 1468 | (define-key map [(meta ?l)] 'ido-toggle-literal) | ||
| 1469 | (define-key map "\C-v" 'ido-toggle-vc) | ||
| 1470 | (set-keymap-parent map ido-mode-file-dir-map) | ||
| 1471 | (setq ido-mode-file-map map)) | ||
| 1472 | |||
| 1473 | ;; Buffer map | ||
| 1474 | (let ((map (make-sparse-keymap))) | ||
| 1475 | (define-key map "\C-x\C-f" 'ido-enter-find-file) | ||
| 1476 | (define-key map "\C-x\C-b" 'ido-fallback-command) | ||
| 1477 | (define-key map "\C-k" 'ido-kill-buffer-at-head) | ||
| 1478 | (set-keymap-parent map ido-mode-common-map) | ||
| 1479 | (setq ido-mode-buffer-map map))) | ||
| 1422 | 1480 | ||
| 1423 | (when (memq ido-cur-item '(file dir)) | ||
| 1424 | (define-key map "\C-x\C-b" (or ido-context-switch-command 'ido-enter-switch-buffer)) | ||
| 1425 | (define-key map "\C-x\C-f" 'ido-fallback-command) | ||
| 1426 | (define-key map "\C-x\C-d" (or (and ido-context-switch-command 'ignore) 'ido-enter-dired)) | ||
| 1427 | (define-key map [down] 'ido-next-match-dir) | ||
| 1428 | (define-key map [up] 'ido-prev-match-dir) | ||
| 1429 | (define-key map [(meta up)] 'ido-prev-work-directory) | ||
| 1430 | (define-key map [(meta down)] 'ido-next-work-directory) | ||
| 1431 | (define-key map [backspace] 'ido-delete-backward-updir) | ||
| 1432 | (define-key map "\d" 'ido-delete-backward-updir) | ||
| 1433 | (define-key map [(meta backspace)] 'ido-delete-backward-word-updir) | ||
| 1434 | (define-key map [(control backspace)] 'ido-up-directory) | ||
| 1435 | (define-key map "\C-l" 'ido-reread-directory) | ||
| 1436 | (define-key map [(meta ?d)] 'ido-wide-find-dir-or-delete-dir) | ||
| 1437 | (define-key map [(meta ?b)] 'ido-push-dir) | ||
| 1438 | (define-key map [(meta ?f)] 'ido-wide-find-file-or-pop-dir) | ||
| 1439 | (define-key map [(meta ?k)] 'ido-forget-work-directory) | ||
| 1440 | (define-key map [(meta ?m)] 'ido-make-directory) | ||
| 1441 | (define-key map [(meta ?n)] 'ido-next-work-directory) | ||
| 1442 | (define-key map [(meta ?o)] 'ido-prev-work-file) | ||
| 1443 | (define-key map [(meta control ?o)] 'ido-next-work-file) | ||
| 1444 | (define-key map [(meta ?p)] 'ido-prev-work-directory) | ||
| 1445 | (define-key map [(meta ?s)] 'ido-merge-work-directories) | ||
| 1446 | ) | ||
| 1447 | 1481 | ||
| 1448 | (when (eq ido-cur-item 'file) | 1482 | (defun ido-define-mode-map () |
| 1449 | (define-key map "\C-k" 'ido-delete-file-at-head) | 1483 | "Set up the keymap for `ido'." |
| 1450 | (define-key map "\C-o" 'ido-copy-current-word) | ||
| 1451 | (define-key map "\C-w" 'ido-copy-current-file-name) | ||
| 1452 | (define-key map [(meta ?l)] 'ido-toggle-literal) | ||
| 1453 | (define-key map "\C-v" 'ido-toggle-vc) | ||
| 1454 | ) | ||
| 1455 | 1484 | ||
| 1456 | (when (eq ido-cur-item 'buffer) | 1485 | ;; generated every time so that it can inherit new functions. |
| 1457 | (define-key map "\C-x\C-f" (or ido-context-switch-command 'ido-enter-find-file)) | 1486 | (let ((map (make-sparse-keymap)) |
| 1458 | (define-key map "\C-x\C-b" 'ido-fallback-command) | 1487 | (viper-p (if (boundp 'viper-mode) viper-mode))) |
| 1459 | (define-key map "\C-k" 'ido-kill-buffer-at-head) | ||
| 1460 | ) | ||
| 1461 | 1488 | ||
| 1462 | (when (if (boundp 'viper-mode) viper-mode) | 1489 | (when viper-p |
| 1463 | (define-key map [remap viper-intercept-ESC-key] 'ignore) | 1490 | (define-key map [remap viper-intercept-ESC-key] 'ignore)) |
| 1464 | (when (memq ido-cur-item '(file dir)) | 1491 | |
| 1492 | (cond | ||
| 1493 | ((memq ido-cur-item '(file dir)) | ||
| 1494 | (when ido-context-switch-command | ||
| 1495 | (define-key map "\C-x\C-b" ido-context-switch-command) | ||
| 1496 | (define-key map "\C-x\C-d" 'ignore)) | ||
| 1497 | (when viper-p | ||
| 1465 | (define-key map [remap viper-backward-char] 'ido-delete-backward-updir) | 1498 | (define-key map [remap viper-backward-char] 'ido-delete-backward-updir) |
| 1466 | (define-key map [remap viper-del-backward-char-in-insert] 'ido-delete-backward-updir) | 1499 | (define-key map [remap viper-del-backward-char-in-insert] 'ido-delete-backward-updir) |
| 1467 | (define-key map [remap viper-delete-backward-word] 'ido-delete-backward-word-updir))) | 1500 | (define-key map [remap viper-delete-backward-word] 'ido-delete-backward-word-updir)) |
| 1501 | (set-keymap-parent map | ||
| 1502 | (if (eq ido-cur-item 'file) | ||
| 1503 | ido-mode-file-map | ||
| 1504 | ido-mode-file-dir-map))) | ||
| 1505 | |||
| 1506 | ((eq ido-cur-item 'buffer) | ||
| 1507 | (when ido-context-switch-command | ||
| 1508 | (define-key map "\C-x\C-f" ido-context-switch-command)) | ||
| 1509 | (set-keymap-parent map ido-mode-buffer-map)) | ||
| 1510 | |||
| 1511 | (t | ||
| 1512 | (set-keymap-parent map ido-mode-common-map))) | ||
| 1468 | 1513 | ||
| 1469 | (setq ido-mode-map map))) | 1514 | (setq ido-mode-map map))) |
| 1470 | 1515 | ||
| @@ -3625,7 +3670,7 @@ As you type in a string, all of the buffers matching the string are | |||
| 3625 | displayed if substring-matching is used \(default). Look at | 3670 | displayed if substring-matching is used \(default). Look at |
| 3626 | `ido-enable-prefix' and `ido-toggle-prefix'. When you have found the | 3671 | `ido-enable-prefix' and `ido-toggle-prefix'. When you have found the |
| 3627 | buffer you want, it can then be selected. As you type, most keys have | 3672 | buffer you want, it can then be selected. As you type, most keys have |
| 3628 | their normal keybindings, except for the following: \\<ido-mode-map> | 3673 | their normal keybindings, except for the following: \\<ido-mode-buffer-map> |
| 3629 | 3674 | ||
| 3630 | RET Select the buffer at the front of the list of matches. If the | 3675 | RET Select the buffer at the front of the list of matches. If the |
| 3631 | list is empty, possibly prompt to create new buffer. | 3676 | list is empty, possibly prompt to create new buffer. |
| @@ -3713,7 +3758,7 @@ type in a string, all of the filenames matching the string are displayed | |||
| 3713 | if substring-matching is used \(default). Look at `ido-enable-prefix' and | 3758 | if substring-matching is used \(default). Look at `ido-enable-prefix' and |
| 3714 | `ido-toggle-prefix'. When you have found the filename you want, it can | 3759 | `ido-toggle-prefix'. When you have found the filename you want, it can |
| 3715 | then be selected. As you type, most keys have their normal keybindings, | 3760 | then be selected. As you type, most keys have their normal keybindings, |
| 3716 | except for the following: \\<ido-mode-map> | 3761 | except for the following: \\<ido-mode-file-map> |
| 3717 | 3762 | ||
| 3718 | RET Select the file at the front of the list of matches. If the | 3763 | RET Select the file at the front of the list of matches. If the |
| 3719 | list is empty, possibly prompt to create new file. | 3764 | list is empty, possibly prompt to create new file. |
| @@ -3732,7 +3777,7 @@ in a separate window. | |||
| 3732 | \\[ido-merge-work-directories] search for file in the work directory history. | 3777 | \\[ido-merge-work-directories] search for file in the work directory history. |
| 3733 | \\[ido-forget-work-directory] removes current directory from the work directory history. | 3778 | \\[ido-forget-work-directory] removes current directory from the work directory history. |
| 3734 | \\[ido-prev-work-file] or \\[ido-next-work-file] cycle through the work file history. | 3779 | \\[ido-prev-work-file] or \\[ido-next-work-file] cycle through the work file history. |
| 3735 | \\[ido-wide-find-file] and \\[ido-wide-find-dir] prompts and uses find to locate files or directories. | 3780 | \\[ido-wide-find-file-or-pop-dir] and \\[ido-wide-find-dir-or-delete-dir] prompts and uses find to locate files or directories. |
| 3736 | \\[ido-make-directory] prompts for a directory to create in current directory. | 3781 | \\[ido-make-directory] prompts for a directory to create in current directory. |
| 3737 | \\[ido-fallback-command] Fallback to non-ido version of current command. | 3782 | \\[ido-fallback-command] Fallback to non-ido version of current command. |
| 3738 | \\[ido-toggle-regexp] Toggle regexp searching. | 3783 | \\[ido-toggle-regexp] Toggle regexp searching. |
diff --git a/lisp/info.el b/lisp/info.el index 84c83bd419b..a00afce7d0a 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -290,8 +290,7 @@ with wrapping around the current Info node." | |||
| 290 | (defvar Info-current-file nil | 290 | (defvar Info-current-file nil |
| 291 | "Info file that Info is now looking at, or nil. | 291 | "Info file that Info is now looking at, or nil. |
| 292 | This is the name that was specified in Info, not the actual file name. | 292 | This is the name that was specified in Info, not the actual file name. |
| 293 | It doesn't contain directory names or file name extensions added by Info. | 293 | It doesn't contain directory names or file name extensions added by Info.") |
| 294 | Can also be t when using `Info-on-current-buffer'.") | ||
| 295 | 294 | ||
| 296 | (defvar Info-current-subfile nil | 295 | (defvar Info-current-subfile nil |
| 297 | "Info subfile that is actually in the *info* buffer now. | 296 | "Info subfile that is actually in the *info* buffer now. |
| @@ -691,12 +690,13 @@ it says do not attempt further (recursive) error recovery." | |||
| 691 | ;; Go into Info buffer. | 690 | ;; Go into Info buffer. |
| 692 | (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*")) | 691 | (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*")) |
| 693 | ;; Record the node we are leaving. | 692 | ;; Record the node we are leaving. |
| 694 | (if (and Info-current-file (not no-going-back)) | 693 | (if (not no-going-back) |
| 695 | (setq Info-history | 694 | (setq Info-history |
| 696 | (cons (list Info-current-file Info-current-node (point)) | 695 | (cons (list Info-current-file Info-current-node (point)) |
| 697 | Info-history))) | 696 | Info-history))) |
| 698 | (Info-find-node-2 filename nodename no-going-back)) | 697 | (Info-find-node-2 filename nodename no-going-back)) |
| 699 | 698 | ||
| 699 | ;;;###autoload | ||
| 700 | (defun Info-on-current-buffer (&optional nodename) | 700 | (defun Info-on-current-buffer (&optional nodename) |
| 701 | "Use the `Info-mode' to browse the current Info buffer. | 701 | "Use the `Info-mode' to browse the current Info buffer. |
| 702 | If a prefix arg is provided, it queries for the NODENAME which | 702 | If a prefix arg is provided, it queries for the NODENAME which |
| @@ -708,7 +708,10 @@ else defaults to \"Top\"." | |||
| 708 | (unless nodename (setq nodename "Top")) | 708 | (unless nodename (setq nodename "Top")) |
| 709 | (info-initialize) | 709 | (info-initialize) |
| 710 | (Info-mode) | 710 | (Info-mode) |
| 711 | (set (make-local-variable 'Info-current-file) t) | 711 | (set (make-local-variable 'Info-current-file) |
| 712 | (or buffer-file-name | ||
| 713 | ;; If called on a non-file buffer, make a fake file name. | ||
| 714 | (concat default-directory (buffer-name)))) | ||
| 712 | (Info-find-node-2 nil nodename)) | 715 | (Info-find-node-2 nil nodename)) |
| 713 | 716 | ||
| 714 | ;; It's perhaps a bit nasty to kill the *info* buffer to force a re-read, | 717 | ;; It's perhaps a bit nasty to kill the *info* buffer to force a re-read, |
| @@ -726,8 +729,7 @@ is preserved, if possible." | |||
| 726 | (pline (count-lines (point-min) (line-beginning-position))) | 729 | (pline (count-lines (point-min) (line-beginning-position))) |
| 727 | (wline (count-lines (point-min) (window-start))) | 730 | (wline (count-lines (point-min) (window-start))) |
| 728 | (old-history Info-history) | 731 | (old-history Info-history) |
| 729 | (new-history (and Info-current-file | 732 | (new-history (list Info-current-file Info-current-node (point)))) |
| 730 | (list Info-current-file Info-current-node (point))))) | ||
| 731 | (kill-buffer (current-buffer)) | 733 | (kill-buffer (current-buffer)) |
| 732 | (Info-find-node filename nodename) | 734 | (Info-find-node filename nodename) |
| 733 | (setq Info-history old-history) | 735 | (setq Info-history old-history) |
| @@ -1400,12 +1402,10 @@ any double quotes or backslashes must be escaped (\\\",\\\\)." | |||
| 1400 | (nconc (propertized-buffer-identification "%b") | 1402 | (nconc (propertized-buffer-identification "%b") |
| 1401 | (list | 1403 | (list |
| 1402 | (concat " (" | 1404 | (concat " (" |
| 1403 | (file-name-nondirectory | 1405 | (if Info-current-file |
| 1404 | (if (stringp Info-current-file) | 1406 | (file-name-nondirectory Info-current-file) |
| 1405 | Info-current-file | 1407 | " ") |
| 1406 | (or buffer-file-name ""))) | 1408 | ") " (or Info-current-node "")))))) |
| 1407 | ") " | ||
| 1408 | (or Info-current-node "")))))) | ||
| 1409 | 1409 | ||
| 1410 | ;; Go to an Info node specified with a filename-and-nodename string | 1410 | ;; Go to an Info node specified with a filename-and-nodename string |
| 1411 | ;; of the sort that is found in pointers in nodes. | 1411 | ;; of the sort that is found in pointers in nodes. |
| @@ -1884,7 +1884,7 @@ If SAME-FILE is non-nil, do not move to a different Info file." | |||
| 1884 | (let ((old-node Info-current-node) | 1884 | (let ((old-node Info-current-node) |
| 1885 | (old-file Info-current-file) | 1885 | (old-file Info-current-file) |
| 1886 | (node (Info-extract-pointer "up")) p) | 1886 | (node (Info-extract-pointer "up")) p) |
| 1887 | (and (or same-file (not (stringp Info-current-file))) | 1887 | (and same-file |
| 1888 | (string-match "^(" node) | 1888 | (string-match "^(" node) |
| 1889 | (error "Up node is in another Info file")) | 1889 | (error "Up node is in another Info file")) |
| 1890 | (Info-goto-node node) | 1890 | (Info-goto-node node) |
| @@ -3266,12 +3266,8 @@ With a zero prefix arg, put the name inside a function call to `info'." | |||
| 3266 | (interactive "P") | 3266 | (interactive "P") |
| 3267 | (unless Info-current-node | 3267 | (unless Info-current-node |
| 3268 | (error "No current Info node")) | 3268 | (error "No current Info node")) |
| 3269 | (let ((node (concat "(" (file-name-nondirectory | 3269 | (let ((node (concat "(" (file-name-nondirectory Info-current-file) ")" |
| 3270 | (or (and (stringp Info-current-file) | 3270 | Info-current-node))) |
| 3271 | Info-current-file) | ||
| 3272 | buffer-file-name | ||
| 3273 | "")) | ||
| 3274 | ")" Info-current-node))) | ||
| 3275 | (if (zerop (prefix-numeric-value arg)) | 3271 | (if (zerop (prefix-numeric-value arg)) |
| 3276 | (setq node (concat "(info \"" node "\")"))) | 3272 | (setq node (concat "(info \"" node "\")"))) |
| 3277 | (kill-new node) | 3273 | (kill-new node) |
| @@ -3804,23 +3800,19 @@ the variable `Info-file-list-for-emacs'." | |||
| 3804 | (and (not (equal (match-string 4) "")) | 3800 | (and (not (equal (match-string 4) "")) |
| 3805 | (match-string 4)) | 3801 | (match-string 4)) |
| 3806 | (match-string 2))))) | 3802 | (match-string 2))))) |
| 3807 | (file (file-name-nondirectory | 3803 | (file Info-current-file) |
| 3808 | Info-current-file)) | ||
| 3809 | (hl Info-history-list) | 3804 | (hl Info-history-list) |
| 3810 | res) | 3805 | res) |
| 3811 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) | 3806 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) |
| 3812 | (setq file (file-name-nondirectory | 3807 | (setq file (Info-find-file (match-string 1 node) t) |
| 3813 | (match-string 1 node)) | ||
| 3814 | node (if (equal (match-string 2 node) "") | 3808 | node (if (equal (match-string 2 node) "") |
| 3815 | "Top" | 3809 | "Top" |
| 3816 | (match-string 2 node)))) | 3810 | (match-string 2 node)))) |
| 3817 | (while hl | 3811 | (while hl |
| 3818 | (if (and (string-equal node (nth 1 (car hl))) | 3812 | (if (and (string-equal node (nth 1 (car hl))) |
| 3819 | (string-equal file | 3813 | (string-equal file (nth 0 (car hl)))) |
| 3820 | (file-name-nondirectory | 3814 | (setq res (car hl) hl nil) |
| 3821 | (nth 0 (car hl))))) | 3815 | (setq hl (cdr hl)))) |
| 3822 | (setq res (car hl) hl nil) | ||
| 3823 | (setq hl (cdr hl)))) | ||
| 3824 | res))) 'info-xref-visited 'info-xref)) | 3816 | res))) 'info-xref-visited 'info-xref)) |
| 3825 | ;; For multiline ref, unfontify newline and surrounding whitespace | 3817 | ;; For multiline ref, unfontify newline and surrounding whitespace |
| 3826 | (save-excursion | 3818 | (save-excursion |
| @@ -3913,22 +3905,19 @@ the variable `Info-file-list-for-emacs'." | |||
| 3913 | (let ((node (if (equal (match-string 3) "") | 3905 | (let ((node (if (equal (match-string 3) "") |
| 3914 | (match-string 1) | 3906 | (match-string 1) |
| 3915 | (match-string 3))) | 3907 | (match-string 3))) |
| 3916 | (file (file-name-nondirectory Info-current-file)) | 3908 | (file Info-current-file) |
| 3917 | (hl Info-history-list) | 3909 | (hl Info-history-list) |
| 3918 | res) | 3910 | res) |
| 3919 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) | 3911 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) |
| 3920 | (setq file (file-name-nondirectory | 3912 | (setq file (Info-find-file (match-string 1 node) t) |
| 3921 | (match-string 1 node)) | ||
| 3922 | node (if (equal (match-string 2 node) "") | 3913 | node (if (equal (match-string 2 node) "") |
| 3923 | "Top" | 3914 | "Top" |
| 3924 | (match-string 2 node)))) | 3915 | (match-string 2 node)))) |
| 3925 | (while hl | 3916 | (while hl |
| 3926 | (if (and (string-equal node (nth 1 (car hl))) | 3917 | (if (and (string-equal node (nth 1 (car hl))) |
| 3927 | (string-equal file | 3918 | (string-equal file (nth 0 (car hl)))) |
| 3928 | (file-name-nondirectory | 3919 | (setq res (car hl) hl nil) |
| 3929 | (nth 0 (car hl))))) | 3920 | (setq hl (cdr hl)))) |
| 3930 | (setq res (car hl) hl nil) | ||
| 3931 | (setq hl (cdr hl)))) | ||
| 3932 | res))) 'info-xref-visited 'info-xref))) | 3921 | res))) 'info-xref-visited 'info-xref))) |
| 3933 | (when (and not-fontified-p (memq Info-hide-note-references '(t hide))) | 3922 | (when (and not-fontified-p (memq Info-hide-note-references '(t hide))) |
| 3934 | (put-text-property (match-beginning 2) (1- (match-end 6)) | 3923 | (put-text-property (match-beginning 2) (1- (match-end 6)) |
| @@ -4121,7 +4110,7 @@ INDENT is the current indentation depth." | |||
| 4121 | NODESPEC is a string of the form: (file)node." | 4110 | NODESPEC is a string of the form: (file)node." |
| 4122 | (save-excursion | 4111 | (save-excursion |
| 4123 | ;; Set up a buffer we can use to fake-out Info. | 4112 | ;; Set up a buffer we can use to fake-out Info. |
| 4124 | (set-buffer (get-buffer-create "*info-browse-tmp*")) | 4113 | (set-buffer (get-buffer-create " *info-browse-tmp*")) |
| 4125 | (if (not (equal major-mode 'Info-mode)) | 4114 | (if (not (equal major-mode 'Info-mode)) |
| 4126 | (Info-mode)) | 4115 | (Info-mode)) |
| 4127 | ;; Get the node into this buffer | 4116 | ;; Get the node into this buffer |
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el index c2d24e1a190..15a0d1067e1 100644 --- a/lisp/international/latexenc.el +++ b/lisp/international/latexenc.el | |||
| @@ -78,7 +78,8 @@ | |||
| 78 | ("next" . next) ; The Next encoding | 78 | ("next" . next) ; The Next encoding |
| 79 | ("utf8" . utf-8) | 79 | ("utf8" . utf-8) |
| 80 | ("utf8x" . utf-8)) ; used by the Unicode LaTeX package | 80 | ("utf8x" . utf-8)) ; used by the Unicode LaTeX package |
| 81 | "Mapping from encoding names used by LaTeX's \"inputenc.sty\" to Emacs coding systems. | 81 | "Mapping from LaTeX encodings to Emacs coding systems. |
| 82 | LaTeX encodings are specified with \"\\usepackage[encoding]{inputenc}\". | ||
| 82 | Used by the function `latexenc-find-file-coding-system'." | 83 | Used by the function `latexenc-find-file-coding-system'." |
| 83 | :group 'files | 84 | :group 'files |
| 84 | :group 'mule | 85 | :group 'mule |
diff --git a/lisp/isearch.el b/lisp/isearch.el index 9d52ea1b05b..5ccf2bf92ba 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -386,6 +386,8 @@ A value of nil means highlight all matches." | |||
| 386 | (define-key map [iconify-frame] nil) | 386 | (define-key map [iconify-frame] nil) |
| 387 | (define-key map [make-frame-visible] nil) | 387 | (define-key map [make-frame-visible] nil) |
| 388 | (define-key map [mouse-movement] nil) | 388 | (define-key map [mouse-movement] nil) |
| 389 | (define-key map [language-change] nil) | ||
| 390 | |||
| 389 | ;; For searching multilingual text. | 391 | ;; For searching multilingual text. |
| 390 | (define-key map "\C-\\" 'isearch-toggle-input-method) | 392 | (define-key map "\C-\\" 'isearch-toggle-input-method) |
| 391 | (define-key map "\C-^" 'isearch-toggle-specified-input-method) | 393 | (define-key map "\C-^" 'isearch-toggle-specified-input-method) |
| @@ -1138,15 +1140,16 @@ Use `isearch-exit' to quit without signaling." | |||
| 1138 | ;; C-s in forward or C-r in reverse. | 1140 | ;; C-s in forward or C-r in reverse. |
| 1139 | (if (equal isearch-string "") | 1141 | (if (equal isearch-string "") |
| 1140 | ;; If search string is empty, use last one. | 1142 | ;; If search string is empty, use last one. |
| 1141 | (setq isearch-string | 1143 | (if (null (if isearch-regexp regexp-search-ring search-ring)) |
| 1142 | (or (if isearch-regexp | 1144 | (setq isearch-error "No previous search string") |
| 1143 | (car regexp-search-ring) | 1145 | (setq isearch-string |
| 1144 | (car search-ring)) | 1146 | (if isearch-regexp |
| 1145 | (error "No previous search string")) | 1147 | (car regexp-search-ring) |
| 1146 | isearch-message | 1148 | (car search-ring)) |
| 1147 | (mapconcat 'isearch-text-char-description | 1149 | isearch-message |
| 1148 | isearch-string "") | 1150 | (mapconcat 'isearch-text-char-description |
| 1149 | isearch-case-fold-search isearch-last-case-fold-search) | 1151 | isearch-string "") |
| 1152 | isearch-case-fold-search isearch-last-case-fold-search)) | ||
| 1150 | ;; If already have what to search for, repeat it. | 1153 | ;; If already have what to search for, repeat it. |
| 1151 | (or isearch-success | 1154 | (or isearch-success |
| 1152 | (progn | 1155 | (progn |
diff --git a/lisp/loadup.el b/lisp/loadup.el index 370eeb8aa30..a8e23c41db7 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el | |||
| @@ -134,11 +134,13 @@ | |||
| 134 | (load "frame") | 134 | (load "frame") |
| 135 | (load "term/tty-colors") | 135 | (load "term/tty-colors") |
| 136 | (load "font-core") | 136 | (load "font-core") |
| 137 | ;; facemenu must be loaded before font-lock, because `facemenu-keymap' | ||
| 138 | ;; needs to be defined when font-lock is loaded. | ||
| 139 | (load "facemenu") | ||
| 137 | (load "emacs-lisp/syntax") | 140 | (load "emacs-lisp/syntax") |
| 138 | (load "font-lock") | 141 | (load "font-lock") |
| 139 | (load "jit-lock") | 142 | (load "jit-lock") |
| 140 | 143 | ||
| 141 | (load "facemenu") | ||
| 142 | (if (fboundp 'track-mouse) | 144 | (if (fboundp 'track-mouse) |
| 143 | (progn | 145 | (progn |
| 144 | (load "mouse") | 146 | (load "mouse") |
diff --git a/lisp/log-edit.el b/lisp/log-edit.el index 54249eb52e3..4c66f7f280b 100644 --- a/lisp/log-edit.el +++ b/lisp/log-edit.el | |||
| @@ -120,8 +120,10 @@ If SETUP is 'force, this variable has no effect." | |||
| 120 | log-edit-insert-changelog) | 120 | log-edit-insert-changelog) |
| 121 | "*Hook run at the end of `log-edit'." | 121 | "*Hook run at the end of `log-edit'." |
| 122 | :group 'log-edit | 122 | :group 'log-edit |
| 123 | :type '(hook :options (log-edit-insert-cvs-template | 123 | :type '(hook :options (log-edit-insert-changelog |
| 124 | log-edit-insert-changelog))) | 124 | log-edit-insert-cvs-rcstemplate |
| 125 | log-edit-insert-cvs-template | ||
| 126 | log-edit-insert-filenames))) | ||
| 125 | 127 | ||
| 126 | (defcustom log-edit-mode-hook (if (boundp 'vc-log-mode-hook) vc-log-mode-hook) | 128 | (defcustom log-edit-mode-hook (if (boundp 'vc-log-mode-hook) vc-log-mode-hook) |
| 127 | "*Hook run when entering `log-edit-mode'." | 129 | "*Hook run when entering `log-edit-mode'." |
| @@ -281,20 +283,13 @@ automatically." | |||
| 281 | (insert "\n")))) | 283 | (insert "\n")))) |
| 282 | 284 | ||
| 283 | ;; Compatibility with old names. | 285 | ;; Compatibility with old names. |
| 284 | (defvaralias 'vc-comment-ring 'log-edit-comment-ring) | 286 | (define-obsolete-variable-alias 'vc-comment-ring 'log-edit-comment-ring "22.1") |
| 285 | (make-obsolete-variable 'vc-comment-ring 'log-edit-comment-ring "22.1") | 287 | (define-obsolete-variable-alias 'vc-comment-ring-index 'log-edit-comment-ring-index "22.1") |
| 286 | (defvaralias 'vc-comment-ring-index 'log-edit-comment-ring-index) | 288 | (define-obsolete-function-alias 'vc-previous-comment 'log-edit-previous-comment "22.1") |
| 287 | (make-obsolete-variable 'vc-comment-ring-index 'log-edit-comment-ring-index "22.1") | 289 | (define-obsolete-function-alias 'vc-next-comment 'log-edit-next-comment "22.1") |
| 288 | (defalias 'vc-previous-comment 'log-edit-previous-comment) | 290 | (define-obsolete-function-alias 'vc-comment-search-reverse 'log-edit-comment-search-backward "22.1") |
| 289 | (make-obsolete 'vc-previous-comment 'log-edit-previous-comment "22.1") | 291 | (define-obsolete-function-alias 'vc-comment-search-forward 'log-edit-comment-search-forward "22.1") |
| 290 | (defalias 'vc-next-comment 'log-edit-next-comment) | 292 | (define-obsolete-function-alias 'vc-comment-to-change-log 'log-edit-comment-to-change-log "22.1") |
| 291 | (make-obsolete 'vc-next-comment 'log-edit-next-comment "22.1") | ||
| 292 | (defalias 'vc-comment-search-reverse 'log-edit-comment-search-backward) | ||
| 293 | (make-obsolete 'vc-comment-search-reverse 'log-edit-comment-search-backward "22.1") | ||
| 294 | (defalias 'vc-comment-search-forward 'log-edit-comment-search-forward) | ||
| 295 | (make-obsolete 'vc-comment-search-forward 'log-edit-comment-search-forward "22.1") | ||
| 296 | (defalias 'vc-comment-to-change-log 'log-edit-comment-to-change-log) | ||
| 297 | (make-obsolete 'vc-comment-to-change-log 'log-edit-comment-to-change-log "22.1") | ||
| 298 | 293 | ||
| 299 | ;;; | 294 | ;;; |
| 300 | ;;; Actual code | 295 | ;;; Actual code |
| @@ -396,31 +391,6 @@ If you want to abort the commit, simply delete the buffer." | |||
| 396 | "Return the list of files that are about to be committed." | 391 | "Return the list of files that are about to be committed." |
| 397 | (ignore-errors (funcall log-edit-listfun))) | 392 | (ignore-errors (funcall log-edit-listfun))) |
| 398 | 393 | ||
| 399 | |||
| 400 | (defun log-edit-insert-changelog () | ||
| 401 | "Insert a log message by looking at the ChangeLog. | ||
| 402 | The idea is to write your ChangeLog entries first, and then use this | ||
| 403 | command to commit your changes. | ||
| 404 | |||
| 405 | To select default log text, we: | ||
| 406 | - find the ChangeLog entries for the files to be checked in, | ||
| 407 | - verify that the top entry in the ChangeLog is on the current date | ||
| 408 | and by the current user; if not, we don't provide any default text, | ||
| 409 | - search the ChangeLog entry for paragraphs containing the names of | ||
| 410 | the files we're checking in, and finally | ||
| 411 | - use those paragraphs as the log text." | ||
| 412 | (interactive) | ||
| 413 | (log-edit-insert-changelog-entries (log-edit-files)) | ||
| 414 | (log-edit-set-common-indentation) | ||
| 415 | (goto-char (point-min)) | ||
| 416 | (when (looking-at "\\*\\s-+") | ||
| 417 | (forward-line 1) | ||
| 418 | (when (not (re-search-forward "^\\*\\s-+" nil t)) | ||
| 419 | (goto-char (point-min)) | ||
| 420 | (skip-chars-forward "^():") | ||
| 421 | (skip-chars-forward ": ") | ||
| 422 | (delete-region (point-min) (point))))) | ||
| 423 | |||
| 424 | (defun log-edit-mode-help () | 394 | (defun log-edit-mode-help () |
| 425 | "Provide help for the `log-edit-mode-map'." | 395 | "Provide help for the `log-edit-mode-map'." |
| 426 | (interactive) | 396 | (interactive) |
| @@ -465,11 +435,29 @@ To select default log text, we: | |||
| 465 | (selected-window))))) | 435 | (selected-window))))) |
| 466 | 436 | ||
| 467 | (defun log-edit-insert-cvs-template () | 437 | (defun log-edit-insert-cvs-template () |
| 468 | "Insert the template specified by the CVS administrator, if any." | 438 | "Insert the template specified by the CVS administrator, if any. |
| 439 | This simply uses the local CVS/Template file." | ||
| 469 | (interactive) | 440 | (interactive) |
| 470 | (when (file-readable-p "CVS/Template") | 441 | (when (or (interactive-p) (= (point-min) (point-max))) |
| 471 | (insert-file-contents "CVS/Template"))) | 442 | (when (file-readable-p "CVS/Template") |
| 472 | 443 | (insert-file-contents "CVS/Template")))) | |
| 444 | |||
| 445 | (defun log-edit-insert-cvs-rcstemplate () | ||
| 446 | "Insert the rcstemplate from the CVS repository. | ||
| 447 | This contacts the repository to get the rcstemplate file and | ||
| 448 | can thus take some time." | ||
| 449 | (interactive) | ||
| 450 | (when (or (interactive-p) (= (point-min) (point-max))) | ||
| 451 | (when (file-readable-p "CVS/Root") | ||
| 452 | ;; Ignore the stderr stuff, even if it's an error. | ||
| 453 | (call-process "cvs" nil '(t nil) nil | ||
| 454 | "checkout" "-p" "CVSROOT/rcstemplate")))) | ||
| 455 | |||
| 456 | (defun log-edit-insert-filenames () | ||
| 457 | "Insert the list of files that are to be committed." | ||
| 458 | (interactive) | ||
| 459 | (insert "Affected files: \n" | ||
| 460 | (mapconcat 'identity (log-edit-files) " \n"))) | ||
| 473 | 461 | ||
| 474 | (defun log-edit-add-to-changelog () | 462 | (defun log-edit-add-to-changelog () |
| 475 | "Insert this log message into the appropriate ChangeLog file." | 463 | "Insert this log message into the appropriate ChangeLog file." |
| @@ -482,6 +470,37 @@ To select default log text, we: | |||
| 482 | (save-excursion | 470 | (save-excursion |
| 483 | (log-edit-comment-to-change-log))))) | 471 | (log-edit-comment-to-change-log))))) |
| 484 | 472 | ||
| 473 | (defvar log-edit-changelog-use-first nil) | ||
| 474 | (defun log-edit-insert-changelog (&optional use-first) | ||
| 475 | "Insert a log message by looking at the ChangeLog. | ||
| 476 | The idea is to write your ChangeLog entries first, and then use this | ||
| 477 | command to commit your changes. | ||
| 478 | |||
| 479 | To select default log text, we: | ||
| 480 | - find the ChangeLog entries for the files to be checked in, | ||
| 481 | - verify that the top entry in the ChangeLog is on the current date | ||
| 482 | and by the current user; if not, we don't provide any default text, | ||
| 483 | - search the ChangeLog entry for paragraphs containing the names of | ||
| 484 | the files we're checking in, and finally | ||
| 485 | - use those paragraphs as the log text. | ||
| 486 | |||
| 487 | If the optional prefix arg USE-FIRST is given (via \\[universal-argument]), | ||
| 488 | or if the command is repeated a second time in a row, use the first log entry | ||
| 489 | regardless of user name or time." | ||
| 490 | (interactive "P") | ||
| 491 | (let ((log-edit-changelog-use-first | ||
| 492 | (or use-first (eq last-command 'log-edit-insert-changelog)))) | ||
| 493 | (log-edit-insert-changelog-entries (log-edit-files))) | ||
| 494 | (log-edit-set-common-indentation) | ||
| 495 | (goto-char (point-min)) | ||
| 496 | (when (looking-at "\\*\\s-+") | ||
| 497 | (forward-line 1) | ||
| 498 | (when (not (re-search-forward "^\\*\\s-+" nil t)) | ||
| 499 | (goto-char (point-min)) | ||
| 500 | (skip-chars-forward "^():") | ||
| 501 | (skip-chars-forward ": ") | ||
| 502 | (delete-region (point-min) (point))))) | ||
| 503 | |||
| 485 | ;;;; | 504 | ;;;; |
| 486 | ;;;; functions for getting commit message from ChangeLog a file... | 505 | ;;;; functions for getting commit message from ChangeLog a file... |
| 487 | ;;;; Courtesy Jim Blandy | 506 | ;;;; Courtesy Jim Blandy |
| @@ -561,7 +580,9 @@ Return non-nil iff it is." | |||
| 561 | (functionp add-log-time-format) | 580 | (functionp add-log-time-format) |
| 562 | (funcall add-log-time-format)) | 581 | (funcall add-log-time-format)) |
| 563 | (format-time-string "%Y-%m-%d")))) | 582 | (format-time-string "%Y-%m-%d")))) |
| 564 | (looking-at (regexp-quote (format "%s %s <%s>" time name mail))))) | 583 | (looking-at (if log-edit-changelog-use-first |
| 584 | "[^ \t]" | ||
| 585 | (regexp-quote (format "%s %s <%s>" time name mail)))))) | ||
| 565 | 586 | ||
| 566 | (defun log-edit-changelog-entries (file) | 587 | (defun log-edit-changelog-entries (file) |
| 567 | "Return the ChangeLog entries for FILE, and the ChangeLog they came from. | 588 | "Return the ChangeLog entries for FILE, and the ChangeLog they came from. |
diff --git a/lisp/longlines.el b/lisp/longlines.el index 93f3daa4ee8..a3912a26ca7 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el | |||
| @@ -136,6 +136,7 @@ are indicated with a symbol." | |||
| 136 | 136 | ||
| 137 | ;; Hacks to make longlines play nice with various modes. | 137 | ;; Hacks to make longlines play nice with various modes. |
| 138 | (cond ((eq major-mode 'mail-mode) | 138 | (cond ((eq major-mode 'mail-mode) |
| 139 | (add-hook 'mail-setup-hook 'longlines-decode-buffer nil t) | ||
| 139 | (or mail-citation-hook | 140 | (or mail-citation-hook |
| 140 | (add-hook 'mail-citation-hook 'mail-indent-citation nil t)) | 141 | (add-hook 'mail-citation-hook 'mail-indent-citation nil t)) |
| 141 | (add-hook 'mail-citation-hook 'longlines-decode-region nil t)) | 142 | (add-hook 'mail-citation-hook 'longlines-decode-region nil t)) |
| @@ -246,17 +247,21 @@ not need to be wrapped, move point to the next line and return t." | |||
| 246 | nil) | 247 | nil) |
| 247 | (if (longlines-merge-lines-p) | 248 | (if (longlines-merge-lines-p) |
| 248 | (progn (end-of-line) | 249 | (progn (end-of-line) |
| 249 | (delete-char 1) | ||
| 250 | ;; After certain commands (e.g. kill-line), there may be two | 250 | ;; After certain commands (e.g. kill-line), there may be two |
| 251 | ;; successive soft newlines in the buffer. In this case, we | 251 | ;; successive soft newlines in the buffer. In this case, we |
| 252 | ;; replace these two newlines by a single space. Unfortunately, | 252 | ;; replace these two newlines by a single space. Unfortunately, |
| 253 | ;; this breaks the conservation of (spaces + newlines), so we | 253 | ;; this breaks the conservation of (spaces + newlines), so we |
| 254 | ;; have to fiddle with longlines-wrap-point. | 254 | ;; have to fiddle with longlines-wrap-point. |
| 255 | (if (or (bolp) (eolp)) | 255 | (if (or (prog1 (bolp) (forward-char 1)) (eolp)) |
| 256 | (if (> longlines-wrap-point (point)) | 256 | (progn |
| 257 | (setq longlines-wrap-point | 257 | (delete-char -1) |
| 258 | (1- longlines-wrap-point))) | 258 | (if (> longlines-wrap-point (point)) |
| 259 | (insert-char ? 1)) | 259 | (setq longlines-wrap-point |
| 260 | (1- longlines-wrap-point)))) | ||
| 261 | (insert-before-markers-and-inherit ?\ ) | ||
| 262 | (backward-char 1) | ||
| 263 | (delete-char -1) | ||
| 264 | (forward-char 1)) | ||
| 260 | nil) | 265 | nil) |
| 261 | (forward-line 1) | 266 | (forward-line 1) |
| 262 | t))) | 267 | t))) |
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index 5f5a53b0df0..0da64128118 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el | |||
| @@ -45,8 +45,6 @@ | |||
| 45 | ;; * A few obscure ls switches are still ignored: see the docstring of | 45 | ;; * A few obscure ls switches are still ignored: see the docstring of |
| 46 | ;; `insert-directory'. | 46 | ;; `insert-directory'. |
| 47 | 47 | ||
| 48 | ;; * Generally only numeric uid/gid. | ||
| 49 | |||
| 50 | ;; TO DO ============================================================= | 48 | ;; TO DO ============================================================= |
| 51 | 49 | ||
| 52 | ;; Complete handling of F switch (if/when possible). | 50 | ;; Complete handling of F switch (if/when possible). |
| @@ -61,8 +59,8 @@ | |||
| 61 | ;; Revised by Andrew Innes and Geoff Volker (and maybe others). | 59 | ;; Revised by Andrew Innes and Geoff Volker (and maybe others). |
| 62 | 60 | ||
| 63 | ;; Modified by Francis J. Wright <F.J.Wright@maths.qmw.ac.uk>, mainly | 61 | ;; Modified by Francis J. Wright <F.J.Wright@maths.qmw.ac.uk>, mainly |
| 64 | ;; to support many more ls options, "platform emulation", hooks for | 62 | ;; to support many more ls options, "platform emulation" and more |
| 65 | ;; external symbolic link support and more robust sorting. | 63 | ;; robust sorting. |
| 66 | 64 | ||
| 67 | ;;; Code: | 65 | ;;; Code: |
| 68 | 66 | ||
| @@ -175,14 +173,6 @@ current year. The OLD-TIME-FORMAT is used for older files. To use ISO | |||
| 175 | (or (featurep 'ls-lisp) ; FJW: unless this file is being reloaded! | 173 | (or (featurep 'ls-lisp) ; FJW: unless this file is being reloaded! |
| 176 | (setq original-insert-directory (symbol-function 'insert-directory))) | 174 | (setq original-insert-directory (symbol-function 'insert-directory))) |
| 177 | 175 | ||
| 178 | ;; This stub is to allow ls-lisp to parse symbolic links via another | ||
| 179 | ;; library such as w32-symlinks.el from | ||
| 180 | ;; http://centaur.maths.qmw.ac.uk/Emacs/: | ||
| 181 | (defun ls-lisp-parse-symlink (file-name) | ||
| 182 | "This stub may be redefined to parse FILE-NAME as a symlink. | ||
| 183 | It should return nil or the link target as a string." | ||
| 184 | nil) | ||
| 185 | |||
| 186 | 176 | ||
| 187 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 177 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 188 | 178 | ||
| @@ -429,7 +419,9 @@ SWITCHES is a list of characters. Default sorting is alphabetic." | |||
| 429 | ;; symbolic link, or nil. | 419 | ;; symbolic link, or nil. |
| 430 | (let (el dirs files) | 420 | (let (el dirs files) |
| 431 | (while file-alist | 421 | (while file-alist |
| 432 | (if (eq (cadr (setq el (car file-alist))) t) ; directory | 422 | (if (or (eq (cadr (setq el (car file-alist))) t) ; directory |
| 423 | (and (stringp (cadr el)) | ||
| 424 | (file-directory-p (cadr el)))) ; symlink to a directory | ||
| 433 | (setq dirs (cons el dirs)) | 425 | (setq dirs (cons el dirs)) |
| 434 | (setq files (cons el files))) | 426 | (setq files (cons el files))) |
| 435 | (setq file-alist (cdr file-alist))) | 427 | (setq file-alist (cdr file-alist))) |
| @@ -455,12 +447,11 @@ links, `|' for FIFOs, `=' for sockets, and nothing for regular files. | |||
| 455 | \[But FIFOs and sockets are not recognized.] | 447 | \[But FIFOs and sockets are not recognized.] |
| 456 | FILEDATA has the form (filename . `file-attributes'). Its `cadr' is t | 448 | FILEDATA has the form (filename . `file-attributes'). Its `cadr' is t |
| 457 | for directory, string (name linked to) for symbolic link, or nil." | 449 | for directory, string (name linked to) for symbolic link, or nil." |
| 458 | (let ((dir (cadr filedata)) (file-name (car filedata))) | 450 | (let ((file-name (car filedata)) |
| 459 | (cond ((or dir | 451 | (type (cadr filedata))) |
| 460 | ;; Parsing .lnk files here is perhaps overkill! | 452 | (cond (type |
| 461 | (setq dir (ls-lisp-parse-symlink file-name))) | ||
| 462 | (cons | 453 | (cons |
| 463 | (concat file-name (if (eq dir t) "/" "@")) | 454 | (concat file-name (if (eq type t) "/" "@")) |
| 464 | (cdr filedata))) | 455 | (cdr filedata))) |
| 465 | ((string-match "x" (nth 9 filedata)) | 456 | ((string-match "x" (nth 9 filedata)) |
| 466 | (cons | 457 | (cons |
| @@ -506,10 +497,6 @@ SWITCHES, TIME-INDEX and NOW give the full switch list and time data." | |||
| 506 | ;; t for directory, string (name linked to) | 497 | ;; t for directory, string (name linked to) |
| 507 | ;; for symbolic link, or nil. | 498 | ;; for symbolic link, or nil. |
| 508 | (drwxrwxrwx (nth 8 file-attr))) ; attribute string ("drwxrwxrwx") | 499 | (drwxrwxrwx (nth 8 file-attr))) ; attribute string ("drwxrwxrwx") |
| 509 | (and (null file-type) | ||
| 510 | ;; Maybe no kernel support for symlinks, so... | ||
| 511 | (setq file-type (ls-lisp-parse-symlink file-name)) | ||
| 512 | (aset drwxrwxrwx 0 ?l)) ; symbolic link - update attribute string | ||
| 513 | (concat (if (memq ?i switches) ; inode number | 500 | (concat (if (memq ?i switches) ; inode number |
| 514 | (format " %6d" (nth 10 file-attr))) | 501 | (format " %6d" (nth 10 file-attr))) |
| 515 | ;; nil is treated like "" in concat | 502 | ;; nil is treated like "" in concat |
diff --git a/lisp/mail/mailheader.el b/lisp/mail/mailheader.el index aeed54a5ace..1e9a24da341 100644 --- a/lisp/mail/mailheader.el +++ b/lisp/mail/mailheader.el | |||
| @@ -146,7 +146,7 @@ skip the header altogether if there are no other elements. | |||
| 146 | (insert (capitalize (symbol-name header)) | 146 | (insert (capitalize (symbol-name header)) |
| 147 | ": " | 147 | ": " |
| 148 | (if (consp value) (car value) value) | 148 | (if (consp value) (car value) value) |
| 149 | hard-newline))) | 149 | "\n"))) |
| 150 | 150 | ||
| 151 | (defun mail-header-format (format-rules headers) | 151 | (defun mail-header-format (format-rules headers) |
| 152 | "Use FORMAT-RULES to format HEADERS and insert into current buffer. | 152 | "Use FORMAT-RULES to format HEADERS and insert into current buffer. |
| @@ -187,7 +187,7 @@ A key of nil has as its value a list of defaulted headers to ignore." | |||
| 187 | (if (cdr rule) | 187 | (if (cdr rule) |
| 188 | (funcall (cdr rule) header value) | 188 | (funcall (cdr rule) header value) |
| 189 | (funcall mail-header-format-function header value)))))) | 189 | (funcall mail-header-format-function header value)))))) |
| 190 | (insert hard-newline))) | 190 | (insert "\n"))) |
| 191 | 191 | ||
| 192 | (provide 'mailheader) | 192 | (provide 'mailheader) |
| 193 | 193 | ||
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index e87aebe7cc2..242fe788052 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el | |||
| @@ -446,7 +446,7 @@ actually occur.") | |||
| 446 | ;; has been called and has done so. | 446 | ;; has been called and has done so. |
| 447 | (let ((fill-prefix "\t") | 447 | (let ((fill-prefix "\t") |
| 448 | (address-start (point))) | 448 | (address-start (point))) |
| 449 | (insert to hard-newline) | 449 | (insert to "\n") |
| 450 | (fill-region-as-paragraph address-start (point-max)) | 450 | (fill-region-as-paragraph address-start (point-max)) |
| 451 | (goto-char (point-max)) | 451 | (goto-char (point-max)) |
| 452 | (unless (bolp) | 452 | (unless (bolp) |
| @@ -455,7 +455,7 @@ actually occur.") | |||
| 455 | (if cc | 455 | (if cc |
| 456 | (let ((fill-prefix "\t") | 456 | (let ((fill-prefix "\t") |
| 457 | (address-start (progn (insert "CC: ") (point)))) | 457 | (address-start (progn (insert "CC: ") (point)))) |
| 458 | (insert cc hard-newline) | 458 | (insert cc "\n") |
| 459 | (fill-region-as-paragraph address-start (point-max)) | 459 | (fill-region-as-paragraph address-start (point-max)) |
| 460 | (goto-char (point-max)) | 460 | (goto-char (point-max)) |
| 461 | (unless (bolp) | 461 | (unless (bolp) |
| @@ -464,23 +464,23 @@ actually occur.") | |||
| 464 | (let ((fill-prefix "\t") | 464 | (let ((fill-prefix "\t") |
| 465 | (fill-column 78) | 465 | (fill-column 78) |
| 466 | (address-start (point))) | 466 | (address-start (point))) |
| 467 | (insert "In-reply-to: " in-reply-to hard-newline) | 467 | (insert "In-reply-to: " in-reply-to "\n") |
| 468 | (fill-region-as-paragraph address-start (point-max)) | 468 | (fill-region-as-paragraph address-start (point-max)) |
| 469 | (goto-char (point-max)) | 469 | (goto-char (point-max)) |
| 470 | (unless (bolp) | 470 | (unless (bolp) |
| 471 | (newline)))) | 471 | (newline)))) |
| 472 | (insert "Subject: " (or subject "") hard-newline) | 472 | (insert "Subject: " (or subject "") "\n") |
| 473 | (if mail-default-headers | 473 | (if mail-default-headers |
| 474 | (insert mail-default-headers)) | 474 | (insert mail-default-headers)) |
| 475 | (if mail-default-reply-to | 475 | (if mail-default-reply-to |
| 476 | (insert "Reply-to: " mail-default-reply-to hard-newline)) | 476 | (insert "Reply-to: " mail-default-reply-to "\n")) |
| 477 | (if mail-self-blind | 477 | (if mail-self-blind |
| 478 | (insert "BCC: " user-mail-address hard-newline)) | 478 | (insert "BCC: " user-mail-address "\n")) |
| 479 | (if mail-archive-file-name | 479 | (if mail-archive-file-name |
| 480 | (insert "FCC: " mail-archive-file-name hard-newline)) | 480 | (insert "FCC: " mail-archive-file-name "\n")) |
| 481 | (put-text-property (point) | 481 | (put-text-property (point) |
| 482 | (progn | 482 | (progn |
| 483 | (insert mail-header-separator hard-newline) | 483 | (insert mail-header-separator "\n") |
| 484 | (1- (point))) | 484 | (1- (point))) |
| 485 | 'category 'mail-header-separator) | 485 | 'category 'mail-header-separator) |
| 486 | ;; Insert the signature. But remember the beginning of the message. | 486 | ;; Insert the signature. But remember the beginning of the message. |
| @@ -488,7 +488,7 @@ actually occur.") | |||
| 488 | (cond ((eq mail-signature t) | 488 | (cond ((eq mail-signature t) |
| 489 | (if (file-exists-p mail-signature-file) | 489 | (if (file-exists-p mail-signature-file) |
| 490 | (progn | 490 | (progn |
| 491 | (insert hard-newline hard-newline "-- " hard-newline) | 491 | (insert "\n\n-- \n") |
| 492 | (insert-file-contents mail-signature-file)))) | 492 | (insert-file-contents mail-signature-file)))) |
| 493 | ((stringp mail-signature) | 493 | ((stringp mail-signature) |
| 494 | (insert mail-signature)) | 494 | (insert mail-signature)) |
| @@ -835,14 +835,14 @@ the user from the mailer." | |||
| 835 | (split-string new-header-values | 835 | (split-string new-header-values |
| 836 | ",[[:space:]]+" t)) | 836 | ",[[:space:]]+" t)) |
| 837 | (mapconcat 'identity l ", ")) | 837 | (mapconcat 'identity l ", ")) |
| 838 | hard-newline)) | 838 | "\n")) |
| 839 | ;; Add Mail-Reply-To if none yet | 839 | ;; Add Mail-Reply-To if none yet |
| 840 | (unless (mail-fetch-field "mail-reply-to") | 840 | (unless (mail-fetch-field "mail-reply-to") |
| 841 | (goto-char (mail-header-end)) | 841 | (goto-char (mail-header-end)) |
| 842 | (insert "Mail-Reply-To: " | 842 | (insert "Mail-Reply-To: " |
| 843 | (or (mail-fetch-field "reply-to") | 843 | (or (mail-fetch-field "reply-to") |
| 844 | user-mail-address) | 844 | user-mail-address) |
| 845 | hard-newline)))))) | 845 | "\n")))))) |
| 846 | (unless (memq mail-send-nonascii '(t mime)) | 846 | (unless (memq mail-send-nonascii '(t mime)) |
| 847 | (goto-char (point-min)) | 847 | (goto-char (point-min)) |
| 848 | (skip-chars-forward "\0-\177") | 848 | (skip-chars-forward "\0-\177") |
| @@ -931,7 +931,7 @@ See also the function `select-message-coding-system'.") | |||
| 931 | fullname-end 1) | 931 | fullname-end 1) |
| 932 | (replace-match "\\\\\\&" t)) | 932 | (replace-match "\\\\\\&" t)) |
| 933 | (insert "\"")))) | 933 | (insert "\"")))) |
| 934 | (insert " <" login ">" hard-newline)) | 934 | (insert " <" login ">\n")) |
| 935 | ((eq mail-from-style 'parens) | 935 | ((eq mail-from-style 'parens) |
| 936 | (insert "From: " login " (") | 936 | (insert "From: " login " (") |
| 937 | (let ((fullname-start (point))) | 937 | (let ((fullname-start (point))) |
| @@ -955,9 +955,9 @@ See also the function `select-message-coding-system'.") | |||
| 955 | fullname-end 1) | 955 | fullname-end 1) |
| 956 | (replace-match "\\1(\\3)" t) | 956 | (replace-match "\\1(\\3)" t) |
| 957 | (goto-char fullname-start)))) | 957 | (goto-char fullname-start)))) |
| 958 | (insert ")" hard-newline)) | 958 | (insert ")\n")) |
| 959 | ((null mail-from-style) | 959 | ((null mail-from-style) |
| 960 | (insert "From: " login hard-newline)) | 960 | (insert "From: " login "\n")) |
| 961 | ((eq mail-from-style 'system-default) | 961 | ((eq mail-from-style 'system-default) |
| 962 | nil) | 962 | nil) |
| 963 | (t (error "Invalid value for `mail-from-style'"))))) | 963 | (t (error "Invalid value for `mail-from-style'"))))) |
| @@ -996,7 +996,7 @@ external program defined by `sendmail-program'." | |||
| 996 | (goto-char (point-max)) | 996 | (goto-char (point-max)) |
| 997 | ;; require one newline at the end. | 997 | ;; require one newline at the end. |
| 998 | (or (= (preceding-char) ?\n) | 998 | (or (= (preceding-char) ?\n) |
| 999 | (insert hard-newline)) | 999 | (insert ?\n)) |
| 1000 | ;; Change header-delimiter to be what sendmail expects. | 1000 | ;; Change header-delimiter to be what sendmail expects. |
| 1001 | (goto-char (mail-header-end)) | 1001 | (goto-char (mail-header-end)) |
| 1002 | (delete-region (point) (progn (end-of-line) (point))) | 1002 | (delete-region (point) (progn (end-of-line) (point))) |
| @@ -1008,7 +1008,7 @@ external program defined by `sendmail-program'." | |||
| 1008 | ;; Ignore any blank lines in the header | 1008 | ;; Ignore any blank lines in the header |
| 1009 | (while (and (re-search-forward "\n\n\n*" delimline t) | 1009 | (while (and (re-search-forward "\n\n\n*" delimline t) |
| 1010 | (< (point) delimline)) | 1010 | (< (point) delimline)) |
| 1011 | (replace-match hard-newline)) | 1011 | (replace-match "\n")) |
| 1012 | (goto-char (point-min)) | 1012 | (goto-char (point-min)) |
| 1013 | ;; Look for Resent- headers. They require sending | 1013 | ;; Look for Resent- headers. They require sending |
| 1014 | ;; the message specially. | 1014 | ;; the message specially. |
| @@ -1070,10 +1070,10 @@ external program defined by `sendmail-program'." | |||
| 1070 | (setq charset | 1070 | (setq charset |
| 1071 | (coding-system-get selected-coding 'mime-charset)) | 1071 | (coding-system-get selected-coding 'mime-charset)) |
| 1072 | (goto-char delimline) | 1072 | (goto-char delimline) |
| 1073 | (insert "MIME-version: 1.0" hard-newline | 1073 | (insert "MIME-version: 1.0\n" |
| 1074 | "Content-type: text/plain; charset=" | 1074 | "Content-type: text/plain; charset=" |
| 1075 | (symbol-name charset) hard-newline | 1075 | (symbol-name charset) |
| 1076 | "Content-Transfer-Encoding: 8bit" hard-newline))) | 1076 | "\nContent-Transfer-Encoding: 8bit\n"))) |
| 1077 | ;; Insert an extra newline if we need it to work around | 1077 | ;; Insert an extra newline if we need it to work around |
| 1078 | ;; Sun's bug that swallows newlines. | 1078 | ;; Sun's bug that swallows newlines. |
| 1079 | (goto-char (1+ delimline)) | 1079 | (goto-char (1+ delimline)) |
| @@ -1167,8 +1167,8 @@ external program defined by `sendmail-program'." | |||
| 1167 | (set-buffer tembuf) | 1167 | (set-buffer tembuf) |
| 1168 | (erase-buffer) | 1168 | (erase-buffer) |
| 1169 | ;; This initial newline is written out if the fcc file already exists. | 1169 | ;; This initial newline is written out if the fcc file already exists. |
| 1170 | (insert hard-newline "From " (user-login-name) " " | 1170 | (insert "\nFrom " (user-login-name) " " |
| 1171 | (current-time-string time) hard-newline) | 1171 | (current-time-string time) "\n") |
| 1172 | ;; Insert the time zone before the year. | 1172 | ;; Insert the time zone before the year. |
| 1173 | (forward-char -1) | 1173 | (forward-char -1) |
| 1174 | (forward-word -1) | 1174 | (forward-word -1) |
| @@ -1178,7 +1178,7 @@ external program defined by `sendmail-program'." | |||
| 1178 | (insert-buffer-substring rmailbuf) | 1178 | (insert-buffer-substring rmailbuf) |
| 1179 | ;; Make sure messages are separated. | 1179 | ;; Make sure messages are separated. |
| 1180 | (goto-char (point-max)) | 1180 | (goto-char (point-max)) |
| 1181 | (insert hard-newline) | 1181 | (insert ?\n) |
| 1182 | (goto-char 2) | 1182 | (goto-char 2) |
| 1183 | ;; ``Quote'' "^From " as ">From " | 1183 | ;; ``Quote'' "^From " as ">From " |
| 1184 | ;; (note that this isn't really quoting, as there is no requirement | 1184 | ;; (note that this isn't really quoting, as there is no requirement |
| @@ -1220,11 +1220,10 @@ external program defined by `sendmail-program'." | |||
| 1220 | (rmail-maybe-set-message-counters) | 1220 | (rmail-maybe-set-message-counters) |
| 1221 | (widen) | 1221 | (widen) |
| 1222 | (narrow-to-region (point-max) (point-max)) | 1222 | (narrow-to-region (point-max) (point-max)) |
| 1223 | (insert "\C-l" hard-newline "0, unseen,," | 1223 | (insert "\C-l\n0, unseen,,\n*** EOOH ***\n" |
| 1224 | hard-newline "*** EOOH ***" hard-newline | 1224 | "Date: " (mail-rfc822-date) "\n") |
| 1225 | "Date: " (mail-rfc822-date) hard-newline) | ||
| 1226 | (insert-buffer-substring curbuf beg2 end) | 1225 | (insert-buffer-substring curbuf beg2 end) |
| 1227 | (insert hard-newline "\C-_") | 1226 | (insert "\n\C-_") |
| 1228 | (goto-char (point-min)) | 1227 | (goto-char (point-min)) |
| 1229 | (widen) | 1228 | (widen) |
| 1230 | (search-backward "\n\^_") | 1229 | (search-backward "\n\^_") |
| @@ -1262,11 +1261,10 @@ external program defined by `sendmail-program'." | |||
| 1262 | (set-buffer (get-buffer-create " mail-temp")) | 1261 | (set-buffer (get-buffer-create " mail-temp")) |
| 1263 | (setq buffer-read-only nil) | 1262 | (setq buffer-read-only nil) |
| 1264 | (erase-buffer) | 1263 | (erase-buffer) |
| 1265 | (insert "\C-l" hard-newline "0, unseen,," hard-newline | 1264 | (insert "\C-l\n0, unseen,,\n*** EOOH ***\nDate: " |
| 1266 | "*** EOOH ***" hard-newline "Date: " | 1265 | (mail-rfc822-date) "\n") |
| 1267 | (mail-rfc822-date) hard-newline) | ||
| 1268 | (insert-buffer-substring curbuf beg2 end) | 1266 | (insert-buffer-substring curbuf beg2 end) |
| 1269 | (insert hard-newline "\C-_") | 1267 | (insert "\n\C-_") |
| 1270 | (write-region (point-min) (point-max) (car fcc-list) t) | 1268 | (write-region (point-min) (point-max) (car fcc-list) t) |
| 1271 | (erase-buffer))) | 1269 | (erase-buffer))) |
| 1272 | (write-region | 1270 | (write-region |
| @@ -1318,7 +1316,7 @@ external program defined by `sendmail-program'." | |||
| 1318 | (expand-abbrev) | 1316 | (expand-abbrev) |
| 1319 | (or (mail-position-on-field "cc" t) | 1317 | (or (mail-position-on-field "cc" t) |
| 1320 | (progn (mail-position-on-field "to") | 1318 | (progn (mail-position-on-field "to") |
| 1321 | (insert hard-newline "CC: ")))) | 1319 | (insert "\nCC: ")))) |
| 1322 | 1320 | ||
| 1323 | (defun mail-bcc () | 1321 | (defun mail-bcc () |
| 1324 | "Move point to end of BCC-field. Create a BCC field if none." | 1322 | "Move point to end of BCC-field. Create a BCC field if none." |
| @@ -1326,7 +1324,7 @@ external program defined by `sendmail-program'." | |||
| 1326 | (expand-abbrev) | 1324 | (expand-abbrev) |
| 1327 | (or (mail-position-on-field "bcc" t) | 1325 | (or (mail-position-on-field "bcc" t) |
| 1328 | (progn (mail-position-on-field "to") | 1326 | (progn (mail-position-on-field "to") |
| 1329 | (insert hard-newline "BCC: ")))) | 1327 | (insert "\nBCC: ")))) |
| 1330 | 1328 | ||
| 1331 | (defun mail-fcc (folder) | 1329 | (defun mail-fcc (folder) |
| 1332 | "Add a new FCC field, with file name completion." | 1330 | "Add a new FCC field, with file name completion." |
| @@ -1334,7 +1332,7 @@ external program defined by `sendmail-program'." | |||
| 1334 | (expand-abbrev) | 1332 | (expand-abbrev) |
| 1335 | (or (mail-position-on-field "fcc" t) ;Put new field after exiting FCC. | 1333 | (or (mail-position-on-field "fcc" t) ;Put new field after exiting FCC. |
| 1336 | (mail-position-on-field "to")) | 1334 | (mail-position-on-field "to")) |
| 1337 | (insert hard-newline "FCC: " folder)) | 1335 | (insert "\nFCC: " folder)) |
| 1338 | 1336 | ||
| 1339 | (defun mail-reply-to () | 1337 | (defun mail-reply-to () |
| 1340 | "Move point to end of Reply-To-field. Create a Reply-To field if none." | 1338 | "Move point to end of Reply-To-field. Create a Reply-To field if none." |
| @@ -1349,7 +1347,7 @@ Create a Mail-Reply-To field if none." | |||
| 1349 | (expand-abbrev) | 1347 | (expand-abbrev) |
| 1350 | (or (mail-position-on-field "mail-reply-to" t) | 1348 | (or (mail-position-on-field "mail-reply-to" t) |
| 1351 | (progn (mail-position-on-field "to") | 1349 | (progn (mail-position-on-field "to") |
| 1352 | (insert hard-newline "Mail-Reply-To: ")))) | 1350 | (insert "\nMail-Reply-To: ")))) |
| 1353 | 1351 | ||
| 1354 | (defun mail-mail-followup-to () | 1352 | (defun mail-mail-followup-to () |
| 1355 | "Move point to end of Mail-Followup-To field. | 1353 | "Move point to end of Mail-Followup-To field. |
| @@ -1358,7 +1356,7 @@ Create a Mail-Followup-To field if none." | |||
| 1358 | (expand-abbrev) | 1356 | (expand-abbrev) |
| 1359 | (or (mail-position-on-field "mail-followup-to" t) | 1357 | (or (mail-position-on-field "mail-followup-to" t) |
| 1360 | (progn (mail-position-on-field "to") | 1358 | (progn (mail-position-on-field "to") |
| 1361 | (insert hard-newline "Mail-Followup-To: ")))) | 1359 | (insert "\nMail-Followup-To: ")))) |
| 1362 | 1360 | ||
| 1363 | (defun mail-position-on-field (field &optional soft) | 1361 | (defun mail-position-on-field (field &optional soft) |
| 1364 | (let (end | 1362 | (let (end |
| @@ -1373,7 +1371,7 @@ Create a Mail-Followup-To field if none." | |||
| 1373 | t) | 1371 | t) |
| 1374 | (or soft | 1372 | (or soft |
| 1375 | (progn (goto-char end) | 1373 | (progn (goto-char end) |
| 1376 | (insert field ": " hard-newline) | 1374 | (insert field ": \n") |
| 1377 | (skip-chars-backward "\n"))) | 1375 | (skip-chars-backward "\n"))) |
| 1378 | nil))) | 1376 | nil))) |
| 1379 | 1377 | ||
| @@ -1396,7 +1394,7 @@ Prefix arg means put contents at point." | |||
| 1396 | (delete-region (point) (point-max))) | 1394 | (delete-region (point) (point-max))) |
| 1397 | (if (stringp mail-signature) | 1395 | (if (stringp mail-signature) |
| 1398 | (insert mail-signature) | 1396 | (insert mail-signature) |
| 1399 | (insert hard-newline hard-newline "-- " hard-newline) | 1397 | (insert "\n\n-- \n") |
| 1400 | (insert-file-contents (expand-file-name mail-signature-file))))) | 1398 | (insert-file-contents (expand-file-name mail-signature-file))))) |
| 1401 | 1399 | ||
| 1402 | (defun mail-fill-yanked-message (&optional justifyp) | 1400 | (defun mail-fill-yanked-message (&optional justifyp) |
| @@ -1482,7 +1480,7 @@ and don't delete any header fields." | |||
| 1482 | ;; loop would deactivate the mark because we inserted text. | 1480 | ;; loop would deactivate the mark because we inserted text. |
| 1483 | (goto-char (prog1 (mark t) | 1481 | (goto-char (prog1 (mark t) |
| 1484 | (set-marker (mark-marker) (point) (current-buffer)))) | 1482 | (set-marker (mark-marker) (point) (current-buffer)))) |
| 1485 | (if (not (eolp)) (insert hard-newline))))) | 1483 | (if (not (eolp)) (insert ?\n))))) |
| 1486 | 1484 | ||
| 1487 | (defun mail-yank-clear-headers (start end) | 1485 | (defun mail-yank-clear-headers (start end) |
| 1488 | (if (< end start) | 1486 | (if (< end start) |
| @@ -1566,8 +1564,7 @@ If the current line has `mail-yank-prefix', insert it on the new line." | |||
| 1566 | (insert-char ?= (max 0 (- 60 (current-column)))) | 1564 | (insert-char ?= (max 0 (- 60 (current-column)))) |
| 1567 | (newline) | 1565 | (newline) |
| 1568 | (setq middle (point)) | 1566 | (setq middle (point)) |
| 1569 | (insert "============================================================" | 1567 | (insert "============================================================\n") |
| 1570 | hard-newline) | ||
| 1571 | (push-mark) | 1568 | (push-mark) |
| 1572 | (goto-char middle) | 1569 | (goto-char middle) |
| 1573 | (insert-file-contents file) | 1570 | (insert-file-contents file) |
diff --git a/lisp/mouse.el b/lisp/mouse.el index 0aab1a99bb6..2c5d9cbddd6 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -371,16 +371,9 @@ That means one whose bottom edge is at the same height as WINDOW's top edge." | |||
| 371 | Move it down if GROWTH is positive, or up if GROWTH is negative. | 371 | Move it down if GROWTH is positive, or up if GROWTH is negative. |
| 372 | If this would make WINDOW too short, | 372 | If this would make WINDOW too short, |
| 373 | shrink the window or windows above it to make room." | 373 | shrink the window or windows above it to make room." |
| 374 | (let ((excess (- window-min-height (+ (window-height window) growth)))) | 374 | (condition-case nil |
| 375 | ;; EXCESS is the number of lines we need to take from windows above. | 375 | (adjust-window-trailing-edge window growth nil) |
| 376 | (if (> excess 0) | 376 | (error nil))) |
| 377 | ;; This can recursively shrink windows all the way up. | ||
| 378 | (let ((window-above (mouse-drag-window-above window))) | ||
| 379 | (if window-above | ||
| 380 | (mouse-drag-move-window-bottom window-above (- excess)))))) | ||
| 381 | (save-selected-window | ||
| 382 | (select-window window) | ||
| 383 | (enlarge-window growth nil (> growth 0)))) | ||
| 384 | 377 | ||
| 385 | (defsubst mouse-drag-move-window-top (window growth) | 378 | (defsubst mouse-drag-move-window-top (window growth) |
| 386 | "Move the top of WINDOW up or down by GROWTH lines. | 379 | "Move the top of WINDOW up or down by GROWTH lines. |
diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el index d86a8ecdf2d..9925227619f 100644 --- a/lisp/net/goto-addr.el +++ b/lisp/net/goto-addr.el | |||
| @@ -174,6 +174,7 @@ and `goto-address-fontify-p'." | |||
| 174 | (overlay-put this-overlay 'evaporate t) | 174 | (overlay-put this-overlay 'evaporate t) |
| 175 | (overlay-put this-overlay | 175 | (overlay-put this-overlay |
| 176 | 'mouse-face goto-address-url-mouse-face) | 176 | 'mouse-face goto-address-url-mouse-face) |
| 177 | (overlay-put this-overlay 'follow-link t) | ||
| 177 | (overlay-put this-overlay | 178 | (overlay-put this-overlay |
| 178 | 'help-echo "mouse-2, C-c RET: follow URL") | 179 | 'help-echo "mouse-2, C-c RET: follow URL") |
| 179 | (overlay-put this-overlay | 180 | (overlay-put this-overlay |
| @@ -189,6 +190,7 @@ and `goto-address-fontify-p'." | |||
| 189 | (overlay-put this-overlay 'evaporate t) | 190 | (overlay-put this-overlay 'evaporate t) |
| 190 | (overlay-put this-overlay 'mouse-face | 191 | (overlay-put this-overlay 'mouse-face |
| 191 | goto-address-mail-mouse-face) | 192 | goto-address-mail-mouse-face) |
| 193 | (overlay-put this-overlay 'follow-link t) | ||
| 192 | (overlay-put this-overlay | 194 | (overlay-put this-overlay |
| 193 | 'help-echo "mouse-2, C-c RET: mail this address") | 195 | 'help-echo "mouse-2, C-c RET: mail this address") |
| 194 | (overlay-put this-overlay | 196 | (overlay-put this-overlay |
| @@ -210,7 +212,7 @@ Send mail to address at point. See documentation for | |||
| 210 | there, then load the URL at or before point." | 212 | there, then load the URL at or before point." |
| 211 | (interactive (list last-input-event)) | 213 | (interactive (list last-input-event)) |
| 212 | (save-excursion | 214 | (save-excursion |
| 213 | (if event (mouse-set-point event)) | 215 | (if event (posn-set-point (event-end event))) |
| 214 | (let ((address (save-excursion (goto-address-find-address-at-point)))) | 216 | (let ((address (save-excursion (goto-address-find-address-at-point)))) |
| 215 | (if (and address | 217 | (if (and address |
| 216 | (save-excursion | 218 | (save-excursion |
diff --git a/lisp/paren.el b/lisp/paren.el index ece3ed3c606..2164ac72d39 100644 --- a/lisp/paren.el +++ b/lisp/paren.el | |||
| @@ -110,14 +110,7 @@ Returns the new status of Show Paren mode (non-nil means on). | |||
| 110 | When Show Paren mode is enabled, any matching parenthesis is highlighted | 110 | When Show Paren mode is enabled, any matching parenthesis is highlighted |
| 111 | in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time." | 111 | in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time." |
| 112 | :global t :group 'paren-showing | 112 | :global t :group 'paren-showing |
| 113 | ;; Turn off the usual paren-matching method | 113 | ;; Enable or disable the mechanism. |
| 114 | ;; when this one is turned on. | ||
| 115 | (if (local-variable-p 'show-paren-mode) | ||
| 116 | (make-local-variable 'blink-matching-paren-on-screen) | ||
| 117 | (kill-local-variable 'blink-matching-paren-on-screen)) | ||
| 118 | (setq blink-matching-paren-on-screen (not show-paren-mode)) | ||
| 119 | |||
| 120 | ;; Now enable or disable the mechanism. | ||
| 121 | ;; First get rid of the old idle timer. | 114 | ;; First get rid of the old idle timer. |
| 122 | (if show-paren-idle-timer | 115 | (if show-paren-idle-timer |
| 123 | (cancel-timer show-paren-idle-timer)) | 116 | (cancel-timer show-paren-idle-timer)) |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index a158ad3f4e0..5faa21d75a2 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -1335,19 +1335,18 @@ Optional argument MINOR indicates this is called from | |||
| 1335 | ;; jit-lock might fontify some things too late. | 1335 | ;; jit-lock might fontify some things too late. |
| 1336 | (set (make-local-variable 'font-lock-support-mode) nil) | 1336 | (set (make-local-variable 'font-lock-support-mode) nil) |
| 1337 | (set (make-local-variable 'font-lock-maximum-size) nil) | 1337 | (set (make-local-variable 'font-lock-maximum-size) nil) |
| 1338 | (let ((fld font-lock-defaults)) | 1338 | (if minor |
| 1339 | (if (and minor fld) | 1339 | (let ((fld font-lock-defaults)) |
| 1340 | (font-lock-add-keywords nil (compilation-mode-font-lock-keywords)) | 1340 | (font-lock-add-keywords nil (compilation-mode-font-lock-keywords)) |
| 1341 | (setq font-lock-defaults '(compilation-mode-font-lock-keywords t))) | ||
| 1342 | (if minor | ||
| 1343 | (if font-lock-mode | 1341 | (if font-lock-mode |
| 1344 | (if fld | 1342 | (if fld |
| 1345 | (font-lock-fontify-buffer) | 1343 | (font-lock-fontify-buffer) |
| 1346 | (font-lock-change-mode) | 1344 | (font-lock-change-mode) |
| 1347 | (turn-on-font-lock)) | 1345 | (turn-on-font-lock)) |
| 1348 | (turn-on-font-lock)) | 1346 | (turn-on-font-lock))) |
| 1349 | ;; maybe defer font-lock till after derived mode is set up | 1347 | (setq font-lock-defaults '(compilation-mode-font-lock-keywords t)) |
| 1350 | (run-mode-hooks 'compilation-turn-on-font-lock)))) | 1348 | ;; maybe defer font-lock till after derived mode is set up |
| 1349 | (run-mode-hooks 'compilation-turn-on-font-lock))) | ||
| 1351 | 1350 | ||
| 1352 | ;;;###autoload | 1351 | ;;;###autoload |
| 1353 | (define-minor-mode compilation-shell-minor-mode | 1352 | (define-minor-mode compilation-shell-minor-mode |
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 961ee0747ff..e714fa3d7fb 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -41,7 +41,7 @@ | |||
| 41 | ;; You don't need to know about annotations to use this mode as a debugger, | 41 | ;; You don't need to know about annotations to use this mode as a debugger, |
| 42 | ;; but if you are interested developing the mode itself, then see the | 42 | ;; but if you are interested developing the mode itself, then see the |
| 43 | ;; Annotations section in the GDB info manual. | 43 | ;; Annotations section in the GDB info manual. |
| 44 | ;; | 44 | |
| 45 | ;; GDB developers plan to make the annotation interface obsolete. A new | 45 | ;; GDB developers plan to make the annotation interface obsolete. A new |
| 46 | ;; interface called GDB/MI (machine interface) has been designed to replace | 46 | ;; interface called GDB/MI (machine interface) has been designed to replace |
| 47 | ;; it. Some GDB/MI commands are used in this file through the CLI command | 47 | ;; it. Some GDB/MI commands are used in this file through the CLI command |
| @@ -49,26 +49,32 @@ | |||
| 49 | ;; GDB (6.2 onwards) that uses GDB/MI as the primary interface to GDB. It is | 49 | ;; GDB (6.2 onwards) that uses GDB/MI as the primary interface to GDB. It is |
| 50 | ;; still under development and is part of a process to migrate Emacs from | 50 | ;; still under development and is part of a process to migrate Emacs from |
| 51 | ;; annotations to GDB/MI. | 51 | ;; annotations to GDB/MI. |
| 52 | ;; | 52 | |
| 53 | ;; This mode SHOULD WORK WITH GDB 5.0 ONWARDS but you will NEED GDB 6.0 | 53 | ;; This mode SHOULD WORK WITH GDB 5.0 onwards but you will NEED GDB 6.0 |
| 54 | ;; ONWARDS TO USE WATCH EXPRESSIONS. | 54 | ;; onwards to use watch expressions. |
| 55 | ;; | 55 | |
| 56 | ;; Windows Platforms: | 56 | ;;; Windows Platforms: |
| 57 | ;; | 57 | |
| 58 | ;; If you are using Emacs and GDB on Windows you will need to flush the buffer | 58 | ;; If you are using Emacs and GDB on Windows you will need to flush the buffer |
| 59 | ;; explicitly in your program if you want timely display of I/O in Emacs. | 59 | ;; explicitly in your program if you want timely display of I/O in Emacs. |
| 60 | ;; Alternatively you can make the output stream unbuffered, for example, by | 60 | ;; Alternatively you can make the output stream unbuffered, for example, by |
| 61 | ;; using a macro: | 61 | ;; using a macro: |
| 62 | ;; | 62 | |
| 63 | ;; #ifdef UNBUFFERED | 63 | ;; #ifdef UNBUFFERED |
| 64 | ;; setvbuf (stdout, (char *) NULL, _IONBF, 0); | 64 | ;; setvbuf (stdout, (char *) NULL, _IONBF, 0); |
| 65 | ;; #endif | 65 | ;; #endif |
| 66 | ;; | 66 | |
| 67 | ;; and compiling with -DUNBUFFERED while debugging. | 67 | ;; and compiling with -DUNBUFFERED while debugging. |
| 68 | ;; | 68 | |
| 69 | ;; Known Bugs: | 69 | ;;; Known Bugs: |
| 70 | ;; | 70 | |
| 71 | ;; TODO: | 71 | ;; 1) Strings that are watched don't update in the speedbar when their |
| 72 | ;; contents change. | ||
| 73 | ;; 2) Watch expressions go out of scope when the inferior is re-run. | ||
| 74 | ;; 3) Cannot handle multiple debug sessions. | ||
| 75 | |||
| 76 | ;;; TODO: | ||
| 77 | |||
| 72 | ;; 1) Use MI command -data-read-memory for memory window. | 78 | ;; 1) Use MI command -data-read-memory for memory window. |
| 73 | ;; 2) Highlight changed register values (use MI commands | 79 | ;; 2) Highlight changed register values (use MI commands |
| 74 | ;; -data-list-register-values and -data-list-changed-registers instead | 80 | ;; -data-list-register-values and -data-list-changed-registers instead |
| @@ -397,6 +403,8 @@ With arg, use separate IO iff arg is positive." | |||
| 397 | 'gdb-mouse-until) | 403 | 'gdb-mouse-until) |
| 398 | (define-key gud-minor-mode-map [left-fringe drag-mouse-1] | 404 | (define-key gud-minor-mode-map [left-fringe drag-mouse-1] |
| 399 | 'gdb-mouse-until) | 405 | 'gdb-mouse-until) |
| 406 | (define-key gud-minor-mode-map [left-margin mouse-2] | ||
| 407 | 'gdb-mouse-until) | ||
| 400 | (define-key gud-minor-mode-map [left-margin mouse-3] | 408 | (define-key gud-minor-mode-map [left-margin mouse-3] |
| 401 | 'gdb-mouse-toggle-breakpoint-margin) | 409 | 'gdb-mouse-toggle-breakpoint-margin) |
| 402 | (define-key gud-minor-mode-map [left-fringe mouse-3] | 410 | (define-key gud-minor-mode-map [left-fringe mouse-3] |
| @@ -471,6 +479,21 @@ With arg, use separate IO iff arg is positive." | |||
| 471 | (forward-char 2) | 479 | (forward-char 2) |
| 472 | (gud-call (concat "until *%a"))))))))) | 480 | (gud-call (concat "until *%a"))))))))) |
| 473 | 481 | ||
| 482 | (defcustom gdb-speedbar-auto-raise t | ||
| 483 | "If non-nil raise speedbar every time display of watch expressions is\ | ||
| 484 | updated." | ||
| 485 | :type 'boolean | ||
| 486 | :group 'gud | ||
| 487 | :version "22.1") | ||
| 488 | |||
| 489 | (defun gdb-speedbar-auto-raise (arg) | ||
| 490 | "Toggle automatic raising of the speedbar for watch expressions." | ||
| 491 | (interactive "P") | ||
| 492 | (setq gdb-speedbar-auto-raise | ||
| 493 | (if (null arg) | ||
| 494 | (not gdb-speedbar-auto-raise) | ||
| 495 | (> (prefix-numeric-value arg) 0)))) | ||
| 496 | |||
| 474 | (defcustom gdb-use-colon-colon-notation nil | 497 | (defcustom gdb-use-colon-colon-notation nil |
| 475 | "If non-nil use FUN::VAR format to display variables in the speedbar." | 498 | "If non-nil use FUN::VAR format to display variables in the speedbar." |
| 476 | :type 'boolean | 499 | :type 'boolean |
| @@ -514,19 +537,16 @@ With arg, use separate IO iff arg is positive." | |||
| 514 | (unless (string-equal | 537 | (unless (string-equal |
| 515 | speedbar-initial-expansion-list-name "GUD") | 538 | speedbar-initial-expansion-list-name "GUD") |
| 516 | (speedbar-change-initial-expansion-list "GUD")) | 539 | (speedbar-change-initial-expansion-list "GUD")) |
| 517 | (if (or (equal (nth 2 var) "0") | 540 | (gdb-enqueue-input |
| 518 | (and (equal (nth 2 var) "1") | 541 | (list |
| 519 | (string-match "char \\*" (nth 3 var)))) | 542 | (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) |
| 520 | (gdb-enqueue-input | 543 | 'gdba) |
| 521 | (list | 544 | (concat "server interpreter mi \"-var-evaluate-expression " |
| 522 | (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) | 545 | (nth 1 var) "\"\n") |
| 523 | 'gdba) | 546 | (concat "-var-evaluate-expression " (nth 1 var) "\n")) |
| 524 | (concat "server interpreter mi \"-var-evaluate-expression " | 547 | `(lambda () (gdb-var-evaluate-expression-handler |
| 525 | (nth 1 var) "\"\n") | 548 | ,(nth 1 var) nil)))) |
| 526 | (concat "-var-evaluate-expression " (nth 1 var) "\n")) | 549 | (setq gdb-var-changed t)) |
| 527 | `(lambda () (gdb-var-evaluate-expression-handler | ||
| 528 | ,(nth 1 var) nil)))) | ||
| 529 | (setq gdb-var-changed t))) | ||
| 530 | (if (re-search-forward "Undefined command" nil t) | 550 | (if (re-search-forward "Undefined command" nil t) |
| 531 | (message-box "Watching expressions requires gdb 6.0 onwards") | 551 | (message-box "Watching expressions requires gdb 6.0 onwards") |
| 532 | (message "No symbol \"%s\" in current context." expr))))) | 552 | (message "No symbol \"%s\" in current context." expr))))) |
| @@ -575,16 +595,13 @@ type=\"\\(.*?\\)\"") | |||
| 575 | (if (string-equal (cadr var1) (cadr varchild)) | 595 | (if (string-equal (cadr var1) (cadr varchild)) |
| 576 | (throw 'child-already-watched nil))) | 596 | (throw 'child-already-watched nil))) |
| 577 | (push varchild var-list) | 597 | (push varchild var-list) |
| 578 | (if (or (equal (nth 2 varchild) "0") | 598 | (gdb-enqueue-input |
| 579 | (and (equal (nth 2 varchild) "1") | 599 | (list |
| 580 | (string-match "char \\*" (nth 3 varchild)))) | 600 | (concat |
| 581 | (gdb-enqueue-input | 601 | "server interpreter mi \"-var-evaluate-expression " |
| 582 | (list | 602 | (nth 1 varchild) "\"\n") |
| 583 | (concat | 603 | `(lambda () (gdb-var-evaluate-expression-handler |
| 584 | "server interpreter mi \"-var-evaluate-expression " | 604 | ,(nth 1 varchild) nil))))))) |
| 585 | (nth 1 varchild) "\"\n") | ||
| 586 | `(lambda () (gdb-var-evaluate-expression-handler | ||
| 587 | ,(nth 1 varchild) nil)))))))) | ||
| 588 | (push var var-list))) | 605 | (push var var-list))) |
| 589 | (setq gdb-var-list (nreverse var-list)))))) | 606 | (setq gdb-var-list (nreverse var-list)))))) |
| 590 | 607 | ||
| @@ -604,16 +621,12 @@ type=\"\\(.*?\\)\"") | |||
| 604 | (catch 'var-found-1 | 621 | (catch 'var-found-1 |
| 605 | (let ((varnum (match-string 1))) | 622 | (let ((varnum (match-string 1))) |
| 606 | (dolist (var gdb-var-list) | 623 | (dolist (var gdb-var-list) |
| 607 | (when (and (string-equal varnum (cadr var)) | 624 | (gdb-enqueue-input |
| 608 | (or (equal (nth 2 var) "0") | 625 | (list |
| 609 | (and (equal (nth 2 var) "1") | 626 | (concat "server interpreter mi \"-var-evaluate-expression " |
| 610 | (string-match "char \\*" (nth 3 var))))) | 627 | varnum "\"\n") |
| 611 | (gdb-enqueue-input | 628 | `(lambda () (gdb-var-evaluate-expression-handler ,varnum t)))) |
| 612 | (list | 629 | (throw 'var-found-1 nil)))))) |
| 613 | (concat "server interpreter mi \"-var-evaluate-expression " | ||
| 614 | varnum "\"\n") | ||
| 615 | `(lambda () (gdb-var-evaluate-expression-handler ,varnum t)))) | ||
| 616 | (throw 'var-found-1 nil))))))) | ||
| 617 | (setq gdb-pending-triggers | 630 | (setq gdb-pending-triggers |
| 618 | (delq 'gdb-var-update gdb-pending-triggers)) | 631 | (delq 'gdb-var-update gdb-pending-triggers)) |
| 619 | (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) | 632 | (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)) |
| @@ -1005,6 +1018,7 @@ This filter may simply queue input for a later time." | |||
| 1005 | "An annotation handler for `pre-prompt'. | 1018 | "An annotation handler for `pre-prompt'. |
| 1006 | This terminates the collection of output from a previous command if that | 1019 | This terminates the collection of output from a previous command if that |
| 1007 | happens to be in effect." | 1020 | happens to be in effect." |
| 1021 | (setq gdb-error nil) | ||
| 1008 | (let ((sink gdb-output-sink)) | 1022 | (let ((sink gdb-output-sink)) |
| 1009 | (cond | 1023 | (cond |
| 1010 | ((eq sink 'user) t) | 1024 | ((eq sink 'user) t) |
| @@ -1097,6 +1111,7 @@ directives." | |||
| 1097 | It is just like `gdb-stopping', except that if we already set the output | 1111 | It is just like `gdb-stopping', except that if we already set the output |
| 1098 | sink to `user' in `gdb-stopping', that is fine." | 1112 | sink to `user' in `gdb-stopping', that is fine." |
| 1099 | (setq gud-running nil) | 1113 | (setq gud-running nil) |
| 1114 | (setq gdb-active-process t) | ||
| 1100 | (let ((sink gdb-output-sink)) | 1115 | (let ((sink gdb-output-sink)) |
| 1101 | (cond | 1116 | (cond |
| 1102 | ((eq sink 'inferior) | 1117 | ((eq sink 'inferior) |
| @@ -1458,11 +1473,11 @@ static char *magick[] = { | |||
| 1458 | (gdb-put-breakpoint-icon (eq flag ?y) bptno))) | 1473 | (gdb-put-breakpoint-icon (eq flag ?y) bptno))) |
| 1459 | (gdb-enqueue-input | 1474 | (gdb-enqueue-input |
| 1460 | (list | 1475 | (list |
| 1461 | (concat "list " | 1476 | (concat gdb-server-prefix "list " |
| 1462 | (match-string-no-properties 1) ":1\n") | 1477 | (match-string-no-properties 1) ":1\n") |
| 1463 | 'ignore)) | 1478 | 'ignore)) |
| 1464 | (gdb-enqueue-input | 1479 | (gdb-enqueue-input |
| 1465 | (list "info source\n" | 1480 | (list (concat gdb-server-prefix "info source\n") |
| 1466 | `(lambda () (gdb-get-location | 1481 | `(lambda () (gdb-get-location |
| 1467 | ,bptno ,line ,flag)))))))))) | 1482 | ,bptno ,line ,flag)))))))))) |
| 1468 | (end-of-line))))) | 1483 | (end-of-line))))) |
| @@ -1497,7 +1512,7 @@ static char *magick[] = { | |||
| 1497 | (list | 1512 | (list |
| 1498 | (let ((bptno (get-text-property | 1513 | (let ((bptno (get-text-property |
| 1499 | 0 'gdb-bptno (car (posn-string posn))))) | 1514 | 0 'gdb-bptno (car (posn-string posn))))) |
| 1500 | (concat | 1515 | (concat gdb-server-prefix |
| 1501 | (if (get-text-property | 1516 | (if (get-text-property |
| 1502 | 0 'gdb-enabled (car (posn-string posn))) | 1517 | 0 'gdb-enabled (car (posn-string posn))) |
| 1503 | "disable " | 1518 | "disable " |
| @@ -1523,7 +1538,7 @@ static char *magick[] = { | |||
| 1523 | (when (stringp obj) | 1538 | (when (stringp obj) |
| 1524 | (gdb-enqueue-input | 1539 | (gdb-enqueue-input |
| 1525 | (list | 1540 | (list |
| 1526 | (concat | 1541 | (concat gdb-server-prefix |
| 1527 | (if (get-text-property 0 'gdb-enabled obj) | 1542 | (if (get-text-property 0 'gdb-enabled obj) |
| 1528 | "disable " | 1543 | "disable " |
| 1529 | "enable ") | 1544 | "enable ") |
| @@ -1557,7 +1572,7 @@ static char *magick[] = { | |||
| 1557 | (suppress-keymap map) | 1572 | (suppress-keymap map) |
| 1558 | (define-key map [menu-bar breakpoints] (cons "Breakpoints" menu)) | 1573 | (define-key map [menu-bar breakpoints] (cons "Breakpoints" menu)) |
| 1559 | (define-key map " " 'gdb-toggle-breakpoint) | 1574 | (define-key map " " 'gdb-toggle-breakpoint) |
| 1560 | (define-key map "d" 'gdb-delete-breakpoint) | 1575 | (define-key map "D" 'gdb-delete-breakpoint) |
| 1561 | (define-key map "q" 'kill-this-buffer) | 1576 | (define-key map "q" 'kill-this-buffer) |
| 1562 | (define-key map "\r" 'gdb-goto-breakpoint) | 1577 | (define-key map "\r" 'gdb-goto-breakpoint) |
| 1563 | (define-key map [mouse-2] 'gdb-goto-breakpoint) | 1578 | (define-key map [mouse-2] 'gdb-goto-breakpoint) |
| @@ -1612,7 +1627,7 @@ static char *magick[] = { | |||
| 1612 | (defun gdb-goto-breakpoint (&optional event) | 1627 | (defun gdb-goto-breakpoint (&optional event) |
| 1613 | "Display the breakpoint location specified at current line." | 1628 | "Display the breakpoint location specified at current line." |
| 1614 | (interactive (list last-input-event)) | 1629 | (interactive (list last-input-event)) |
| 1615 | (if event (mouse-set-point event)) | 1630 | (if event (posn-set-point (event-end event))) |
| 1616 | ;; Hack to stop gdb-goto-breakpoint displaying in GUD buffer. | 1631 | ;; Hack to stop gdb-goto-breakpoint displaying in GUD buffer. |
| 1617 | (let ((window (get-buffer-window gud-comint-buffer))) | 1632 | (let ((window (get-buffer-window gud-comint-buffer))) |
| 1618 | (if window (save-selected-window (select-window window)))) | 1633 | (if window (save-selected-window (select-window window)))) |
| @@ -1661,7 +1676,7 @@ static char *magick[] = { | |||
| 1661 | (while (< (point) (point-max)) | 1676 | (while (< (point) (point-max)) |
| 1662 | (setq bl (line-beginning-position) | 1677 | (setq bl (line-beginning-position) |
| 1663 | el (line-end-position)) | 1678 | el (line-end-position)) |
| 1664 | (unless (looking-at "No ") | 1679 | (when (looking-at "#") |
| 1665 | (add-text-properties bl el | 1680 | (add-text-properties bl el |
| 1666 | '(mouse-face highlight | 1681 | '(mouse-face highlight |
| 1667 | help-echo "mouse-2, RET: Select frame"))) | 1682 | help-echo "mouse-2, RET: Select frame"))) |
| @@ -1730,14 +1745,15 @@ static char *magick[] = { | |||
| 1730 | (defun gdb-get-frame-number () | 1745 | (defun gdb-get-frame-number () |
| 1731 | (save-excursion | 1746 | (save-excursion |
| 1732 | (end-of-line) | 1747 | (end-of-line) |
| 1733 | (let* ((pos (re-search-backward "^#*\\([0-9]*\\)" nil t)) | 1748 | (let* ((start (line-beginning-position)) |
| 1749 | (pos (re-search-backward "^#*\\([0-9]+\\)" start t)) | ||
| 1734 | (n (or (and pos (match-string-no-properties 1)) "0"))) | 1750 | (n (or (and pos (match-string-no-properties 1)) "0"))) |
| 1735 | n))) | 1751 | n))) |
| 1736 | 1752 | ||
| 1737 | (defun gdb-frames-select (&optional event) | 1753 | (defun gdb-frames-select (&optional event) |
| 1738 | "Select the frame and display the relevant source." | 1754 | "Select the frame and display the relevant source." |
| 1739 | (interactive (list last-input-event)) | 1755 | (interactive (list last-input-event)) |
| 1740 | (if event (mouse-set-point event)) | 1756 | (if event (posn-set-point (event-end event))) |
| 1741 | (gdb-enqueue-input | 1757 | (gdb-enqueue-input |
| 1742 | (list (concat gdb-server-prefix "frame " | 1758 | (list (concat gdb-server-prefix "frame " |
| 1743 | (gdb-get-frame-number) "\n") 'ignore)) | 1759 | (gdb-get-frame-number) "\n") 'ignore)) |
| @@ -1790,6 +1806,7 @@ static char *magick[] = { | |||
| 1790 | (define-key map "q" 'kill-this-buffer) | 1806 | (define-key map "q" 'kill-this-buffer) |
| 1791 | (define-key map "\r" 'gdb-threads-select) | 1807 | (define-key map "\r" 'gdb-threads-select) |
| 1792 | (define-key map [mouse-2] 'gdb-threads-select) | 1808 | (define-key map [mouse-2] 'gdb-threads-select) |
| 1809 | (define-key map [follow-link] 'mouse-face) | ||
| 1793 | map)) | 1810 | map)) |
| 1794 | 1811 | ||
| 1795 | (defvar gdb-threads-font-lock-keywords | 1812 | (defvar gdb-threads-font-lock-keywords |
| @@ -1822,9 +1839,10 @@ static char *magick[] = { | |||
| 1822 | (defun gdb-threads-select (&optional event) | 1839 | (defun gdb-threads-select (&optional event) |
| 1823 | "Select the thread and display the relevant source." | 1840 | "Select the thread and display the relevant source." |
| 1824 | (interactive (list last-input-event)) | 1841 | (interactive (list last-input-event)) |
| 1825 | (if event (mouse-set-point event)) | 1842 | (if event (posn-set-point (event-end event))) |
| 1826 | (gdb-enqueue-input | 1843 | (gdb-enqueue-input |
| 1827 | (list (concat "thread " (gdb-get-thread-number) "\n") 'ignore)) | 1844 | (list (concat gdb-server-prefix "thread " |
| 1845 | (gdb-get-thread-number) "\n") 'ignore)) | ||
| 1828 | (gud-display-frame)) | 1846 | (gud-display-frame)) |
| 1829 | 1847 | ||
| 1830 | 1848 | ||
| @@ -1851,19 +1869,36 @@ static char *magick[] = { | |||
| 1851 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) | 1869 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) |
| 1852 | (save-excursion | 1870 | (save-excursion |
| 1853 | (let ((buffer-read-only nil) | 1871 | (let ((buffer-read-only nil) |
| 1854 | bl) | 1872 | start end) |
| 1855 | (goto-char (point-min)) | 1873 | (goto-char (point-min)) |
| 1856 | (while (< (point) (point-max)) | 1874 | (while (< (point) (point-max)) |
| 1857 | (setq bl (line-beginning-position)) | 1875 | (setq start (line-beginning-position)) |
| 1876 | (setq end (line-end-position)) | ||
| 1858 | (when (looking-at "^[^ ]+") | 1877 | (when (looking-at "^[^ ]+") |
| 1859 | (unless (string-equal (match-string 0) "The") | 1878 | (unless (string-equal (match-string 0) "The") |
| 1860 | (put-text-property bl (match-end 0) | 1879 | (put-text-property start (match-end 0) |
| 1861 | 'face font-lock-variable-name-face))) | 1880 | 'face font-lock-variable-name-face) |
| 1881 | (add-text-properties start end | ||
| 1882 | '(help-echo "mouse-2: edit value" | ||
| 1883 | mouse-face highlight)))) | ||
| 1862 | (forward-line 1)))))) | 1884 | (forward-line 1)))))) |
| 1863 | 1885 | ||
| 1886 | (defun gdb-edit-register-value (&optional event) | ||
| 1887 | (interactive (list last-input-event)) | ||
| 1888 | (save-excursion | ||
| 1889 | (if event (posn-set-point (event-end event))) | ||
| 1890 | (beginning-of-line) | ||
| 1891 | (let* ((register (current-word)) | ||
| 1892 | (value (read-string (format "New value (%s): " register)))) | ||
| 1893 | (gdb-enqueue-input | ||
| 1894 | (list (concat gdb-server-prefix "set $" register "=" value "\n") | ||
| 1895 | 'ignore))))) | ||
| 1896 | |||
| 1864 | (defvar gdb-registers-mode-map | 1897 | (defvar gdb-registers-mode-map |
| 1865 | (let ((map (make-sparse-keymap))) | 1898 | (let ((map (make-sparse-keymap))) |
| 1866 | (suppress-keymap map) | 1899 | (suppress-keymap map) |
| 1900 | (define-key map "\r" 'gdb-edit-register-value) | ||
| 1901 | (define-key map [mouse-2] 'gdb-edit-register-value) | ||
| 1867 | (define-key map " " 'toggle-gdb-all-registers) | 1902 | (define-key map " " 'toggle-gdb-all-registers) |
| 1868 | (define-key map "q" 'kill-this-buffer) | 1903 | (define-key map "q" 'kill-this-buffer) |
| 1869 | map)) | 1904 | map)) |
| @@ -1907,9 +1942,9 @@ static char *magick[] = { | |||
| 1907 | (setq gdb-all-registers nil) | 1942 | (setq gdb-all-registers nil) |
| 1908 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) | 1943 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) |
| 1909 | (setq mode-name "Registers:"))) | 1944 | (setq mode-name "Registers:"))) |
| 1910 | (setq gdb-all-registers t) | 1945 | (setq gdb-all-registers t) |
| 1911 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) | 1946 | (with-current-buffer (gdb-get-buffer 'gdb-registers-buffer) |
| 1912 | (setq mode-name "Registers:All"))) | 1947 | (setq mode-name "Registers:All"))) |
| 1913 | (gdb-invalidate-registers)) | 1948 | (gdb-invalidate-registers)) |
| 1914 | 1949 | ||
| 1915 | 1950 | ||
| @@ -2245,13 +2280,13 @@ corresponding to the mode line clicked." | |||
| 2245 | "Keymap to create watch expression of a complex data type local variable.") | 2280 | "Keymap to create watch expression of a complex data type local variable.") |
| 2246 | 2281 | ||
| 2247 | (defconst gdb-struct-string | 2282 | (defconst gdb-struct-string |
| 2248 | (concat (propertize "[struct/union];" | 2283 | (concat (propertize "[struct/union]" |
| 2249 | 'mouse-face 'highlight | 2284 | 'mouse-face 'highlight |
| 2250 | 'help-echo "mouse-2: create watch expression" | 2285 | 'help-echo "mouse-2: create watch expression" |
| 2251 | 'local-map gdb-locals-watch-keymap) "\n")) | 2286 | 'local-map gdb-locals-watch-keymap) "\n")) |
| 2252 | 2287 | ||
| 2253 | (defconst gdb-array-string | 2288 | (defconst gdb-array-string |
| 2254 | (concat " " (propertize "[array];" | 2289 | (concat " " (propertize "[array]" |
| 2255 | 'mouse-face 'highlight | 2290 | 'mouse-face 'highlight |
| 2256 | 'help-echo "mouse-2: create watch expression" | 2291 | 'help-echo "mouse-2: create watch expression" |
| 2257 | 'local-map gdb-locals-watch-keymap) "\n")) | 2292 | 'local-map gdb-locals-watch-keymap) "\n")) |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index e045ae76a29..81ae4c3cd02 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -52,6 +52,7 @@ | |||
| 52 | (defvar gdb-show-changed-values) | 52 | (defvar gdb-show-changed-values) |
| 53 | (defvar gdb-var-changed) | 53 | (defvar gdb-var-changed) |
| 54 | (defvar gdb-var-list) | 54 | (defvar gdb-var-list) |
| 55 | (defvar gdb-speedbar-auto-raise) | ||
| 55 | (defvar tool-bar-map) | 56 | (defvar tool-bar-map) |
| 56 | 57 | ||
| 57 | ;; ====================================================================== | 58 | ;; ====================================================================== |
| @@ -410,6 +411,10 @@ t means that there is no stack, and we are in display-file mode.") | |||
| 410 | (memq gud-minor-mode '(gdbmi gdba)))] | 411 | (memq gud-minor-mode '(gdbmi gdba)))] |
| 411 | ["Delete expression" gdb-var-delete | 412 | ["Delete expression" gdb-var-delete |
| 412 | (with-current-buffer gud-comint-buffer | 413 | (with-current-buffer gud-comint-buffer |
| 414 | (memq gud-minor-mode '(gdbmi gdba)))] | ||
| 415 | ["Auto raise frame" gdb-speedbar-auto-raise | ||
| 416 | :style toggle :selected gdb-speedbar-auto-raise | ||
| 417 | :visible (with-current-buffer gud-comint-buffer | ||
| 413 | (memq gud-minor-mode '(gdbmi gdba)))]) | 418 | (memq gud-minor-mode '(gdbmi gdba)))]) |
| 414 | "Additional menu items to add to the speedbar frame.") | 419 | "Additional menu items to add to the speedbar frame.") |
| 415 | 420 | ||
| @@ -444,16 +449,18 @@ required by the caller." | |||
| 444 | (looking-at "Watch Expressions:"))))) | 449 | (looking-at "Watch Expressions:"))))) |
| 445 | (erase-buffer) | 450 | (erase-buffer) |
| 446 | (insert "Watch Expressions:\n") | 451 | (insert "Watch Expressions:\n") |
| 452 | (if gdb-speedbar-auto-raise | ||
| 453 | (raise-frame speedbar-frame)) | ||
| 447 | (let ((var-list gdb-var-list)) | 454 | (let ((var-list gdb-var-list)) |
| 448 | (while var-list | 455 | (while var-list |
| 449 | (let* ((depth 0) (start 0) (char ?+) | 456 | (let* (char (depth 0) (start 0) |
| 450 | (var (car var-list)) (varnum (nth 1 var))) | 457 | (var (car var-list)) (varnum (nth 1 var))) |
| 451 | (while (string-match "\\." varnum start) | 458 | (while (string-match "\\." varnum start) |
| 452 | (setq depth (1+ depth) | 459 | (setq depth (1+ depth) |
| 453 | start (1+ (match-beginning 0)))) | 460 | start (1+ (match-beginning 0)))) |
| 454 | (if (or (equal (nth 2 var) "0") | 461 | (if (or (equal (nth 2 var) "0") |
| 455 | (and (equal (nth 2 var) "1") | 462 | (and (equal (nth 2 var) "1") |
| 456 | (string-match "char \\*" (nth 3 var)))) | 463 | (string-match "char \\*$" (nth 3 var)))) |
| 457 | (speedbar-make-tag-line 'bracket ?? nil nil | 464 | (speedbar-make-tag-line 'bracket ?? nil nil |
| 458 | (concat (car var) "\t" (nth 4 var)) | 465 | (concat (car var) "\t" (nth 4 var)) |
| 459 | 'gdb-edit-value | 466 | 'gdb-edit-value |
| @@ -463,12 +470,25 @@ required by the caller." | |||
| 463 | 'font-lock-warning-face | 470 | 'font-lock-warning-face |
| 464 | nil) depth) | 471 | nil) depth) |
| 465 | (if (and (cadr var-list) | 472 | (if (and (cadr var-list) |
| 466 | (string-match varnum (cadr (cadr var-list)))) | 473 | (string-match (concat varnum "\\.") |
| 467 | (setq char ?-)) | 474 | (cadr (cadr var-list)))) |
| 475 | (setq char ?-) | ||
| 476 | (setq char ?+)) | ||
| 477 | (if (string-match "\\*$" (nth 3 var)) | ||
| 478 | (speedbar-make-tag-line 'bracket char | ||
| 479 | 'gdb-speedbar-expand-node varnum | ||
| 480 | (concat (car var) "\t" | ||
| 481 | (nth 3 var)"\t" | ||
| 482 | (nth 4 var)) | ||
| 483 | 'gdb-edit-value nil | ||
| 484 | (if (and (nth 5 var) | ||
| 485 | gdb-show-changed-values) | ||
| 486 | 'font-lock-warning-face | ||
| 487 | nil) depth) | ||
| 468 | (speedbar-make-tag-line 'bracket char | 488 | (speedbar-make-tag-line 'bracket char |
| 469 | 'gdb-speedbar-expand-node varnum | 489 | 'gdb-speedbar-expand-node varnum |
| 470 | (concat (car var) "\t" (nth 3 var)) | 490 | (concat (car var) "\t" (nth 3 var)) |
| 471 | nil nil nil depth))) | 491 | nil nil nil depth)))) |
| 472 | (setq var-list (cdr var-list)))) | 492 | (setq var-list (cdr var-list)))) |
| 473 | (setq gdb-var-changed nil))) | 493 | (setq gdb-var-changed nil))) |
| 474 | (t (if (and (save-excursion | 494 | (t (if (and (save-excursion |
| @@ -556,6 +576,11 @@ required by the caller." | |||
| 556 | ;; they are found. | 576 | ;; they are found. |
| 557 | (while (string-match "\n\032\032\\(.*\\)\n" gud-marker-acc) | 577 | (while (string-match "\n\032\032\\(.*\\)\n" gud-marker-acc) |
| 558 | (let ((match (match-string 1 gud-marker-acc))) | 578 | (let ((match (match-string 1 gud-marker-acc))) |
| 579 | |||
| 580 | ;; Pick up stopped annotation if attaching to process. | ||
| 581 | (if (string-equal match "stopped") (setq gdb-active-process t)) | ||
| 582 | |||
| 583 | ;; Using annotations, switch to gud-gdba-marker-filter. | ||
| 559 | (when (string-equal match "prompt") | 584 | (when (string-equal match "prompt") |
| 560 | (require 'gdb-ui) | 585 | (require 'gdb-ui) |
| 561 | (gdb-prompt nil)) | 586 | (gdb-prompt nil)) |
| @@ -569,6 +594,8 @@ required by the caller." | |||
| 569 | ;; Set the accumulator to the remaining text. | 594 | ;; Set the accumulator to the remaining text. |
| 570 | 595 | ||
| 571 | gud-marker-acc (substring gud-marker-acc (match-end 0))) | 596 | gud-marker-acc (substring gud-marker-acc (match-end 0))) |
| 597 | |||
| 598 | ;; Pick up any errors that occur before first prompt annotation. | ||
| 572 | (if (string-equal match "error-begin") | 599 | (if (string-equal match "error-begin") |
| 573 | (put-text-property 0 (length gud-marker-acc) | 600 | (put-text-property 0 (length gud-marker-acc) |
| 574 | 'face font-lock-warning-face | 601 | 'face font-lock-warning-face |
| @@ -3079,6 +3106,8 @@ class of the file (using s to separate nested class ids)." | |||
| 3079 | ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face)) | 3106 | ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face)) |
| 3080 | ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face)))) | 3107 | ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face)))) |
| 3081 | 3108 | ||
| 3109 | ;; FIXME: The keyword "end" associated with "document" | ||
| 3110 | ;; should have font-lock-keyword-face (currently font-lock-doc-face). | ||
| 3082 | (defvar gdb-script-font-lock-syntactic-keywords | 3111 | (defvar gdb-script-font-lock-syntactic-keywords |
| 3083 | '(("^document\\s-.*\\(\n\\)" (1 "< b")) | 3112 | '(("^document\\s-.*\\(\n\\)" (1 "< b")) |
| 3084 | ;; It would be best to change the \n in front, but it's more difficult. | 3113 | ;; It would be best to change the \n in front, but it's more difficult. |
diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el index 4f0875bbf99..67b5b108fa5 100644 --- a/lisp/progmodes/octave-inf.el +++ b/lisp/progmodes/octave-inf.el | |||
| @@ -220,6 +220,13 @@ startup file, `~/.emacs-octave'." | |||
| 220 | (concat (mapconcat | 220 | (concat (mapconcat |
| 221 | 'identity inferior-octave-output-list "\n") | 221 | 'identity inferior-octave-output-list "\n") |
| 222 | "\n")))) | 222 | "\n")))) |
| 223 | |||
| 224 | ;; An empty secondary prompt, as e.g. obtained by '--braindead', | ||
| 225 | ;; means trouble. | ||
| 226 | (inferior-octave-send-list-and-digest (list "PS2\n")) | ||
| 227 | (if (string-match "^PS2 = *$" (car inferior-octave-output-list)) | ||
| 228 | (inferior-octave-send-list-and-digest (list "PS2 = \"> \"\n"))) | ||
| 229 | |||
| 223 | ;; O.k., now we are ready for the Inferior Octave startup commands. | 230 | ;; O.k., now we are ready for the Inferior Octave startup commands. |
| 224 | (let* (commands | 231 | (let* (commands |
| 225 | (program (file-name-nondirectory inferior-octave-program)) | 232 | (program (file-name-nondirectory inferior-octave-program)) |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index f6928a72554..5728499db43 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -1002,6 +1002,8 @@ Point is at the beginning of the next line." | |||
| 1002 | ;; The list of special chars is taken from the single-unix spec | 1002 | ;; The list of special chars is taken from the single-unix spec |
| 1003 | ;; of the shell command language (under `quoting') but with `$' removed. | 1003 | ;; of the shell command language (under `quoting') but with `$' removed. |
| 1004 | `(("[^|&;<>()`\\\"' \t\n]\\(#+\\)" 1 ,sh-st-symbol) | 1004 | `(("[^|&;<>()`\\\"' \t\n]\\(#+\\)" 1 ,sh-st-symbol) |
| 1005 | ;; In a '...' the backslash is not escaping. | ||
| 1006 | ("\\(\\\\\\)'" 1 ,sh-st-punc) | ||
| 1005 | ;; Make sure $@ and @? are correctly recognized as sexps. | 1007 | ;; Make sure $@ and @? are correctly recognized as sexps. |
| 1006 | ("\\$\\([?@]\\)" 1 ,sh-st-symbol) | 1008 | ("\\$\\([?@]\\)" 1 ,sh-st-symbol) |
| 1007 | ;; Find HEREDOC starters and add a corresponding rule for the ender. | 1009 | ;; Find HEREDOC starters and add a corresponding rule for the ender. |
diff --git a/lisp/recentf.el b/lisp/recentf.el index b14997d604f..287ab3014cb 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el | |||
| @@ -813,39 +813,49 @@ See `recentf-arrange-rules' for details on MATCHER." | |||
| 813 | Arrange them in sub-menus following rules in `recentf-arrange-rules'." | 813 | Arrange them in sub-menus following rules in `recentf-arrange-rules'." |
| 814 | (if (not recentf-arrange-rules) | 814 | (if (not recentf-arrange-rules) |
| 815 | l | 815 | l |
| 816 | (let ((menus (mapcar #'(lambda (r) (list (car r))) | 816 | (let* ((strip (assq t recentf-arrange-rules)) |
| 817 | recentf-arrange-rules)) | 817 | (rules (remq strip recentf-arrange-rules)) |
| 818 | menu others min file rules elts count) | 818 | (menus (mapcar #'(lambda (r) (list (car r))) rules)) |
| 819 | others l1 l2 menu file min count) | ||
| 820 | ;; Put menu items into sub-menus as defined by rules. | ||
| 819 | (dolist (elt l) | 821 | (dolist (elt l) |
| 820 | (setq file (recentf-menu-element-value elt) | 822 | (setq l1 menus ;; List of sub-menus |
| 821 | rules recentf-arrange-rules | 823 | l2 rules ;; List of corresponding matchers. |
| 822 | elts menus | 824 | file (recentf-menu-element-value elt) |
| 823 | menu nil) | 825 | menu nil) |
| 824 | (while (and (not menu) rules) | 826 | ;; Apply the strip suffix rule. |
| 825 | (when (recentf-match-rule-p (cdar rules) file) | 827 | (while (recentf-match-rule-p (cdr strip) file) |
| 826 | (setq menu (car elts)) | 828 | (setq file (substring file 0 (match-beginning 0)))) |
| 829 | ;; Search which sub-menu to put the menu item into. | ||
| 830 | (while (and (not menu) l2) | ||
| 831 | (when (recentf-match-rule-p (cdar l2) file) | ||
| 832 | (setq menu (car l1)) | ||
| 827 | (recentf-set-menu-element-value | 833 | (recentf-set-menu-element-value |
| 828 | menu (cons elt (recentf-menu-element-value menu)))) | 834 | menu (cons elt (recentf-menu-element-value menu)))) |
| 829 | (setq rules (cdr rules) | 835 | (setq l1 (cdr l1) |
| 830 | elts (cdr elts))) | 836 | l2 (cdr l2))) |
| 831 | (unless menu | 837 | ;; Put unmatched menu items in the `others' bin. |
| 832 | (push elt others))) | 838 | (or menu (push elt others))) |
| 833 | 839 | ;; Finalize the sub-menus. That is, for each one: | |
| 834 | (setq l nil | 840 | ;; - truncate it depending on the value of |
| 835 | min (if (natnump recentf-arrange-by-rules-min-items) | 841 | ;; `recentf-arrange-by-rules-min-items', |
| 836 | recentf-arrange-by-rules-min-items 0)) | 842 | ;; - replace %d by the number of menu items, |
| 843 | ;; - apply `recentf-arrange-by-rule-subfilter' to menu items. | ||
| 844 | (setq min (if (natnump recentf-arrange-by-rules-min-items) | ||
| 845 | recentf-arrange-by-rules-min-items 0) | ||
| 846 | l2 nil) | ||
| 837 | (dolist (menu menus) | 847 | (dolist (menu menus) |
| 838 | (when (setq elts (recentf-menu-element-value menu)) | 848 | (when (setq l1 (recentf-menu-element-value menu)) |
| 839 | (setq count (length elts)) | 849 | (setq count (length l1)) |
| 840 | (if (< count min) | 850 | (if (< count min) |
| 841 | (setq others (nconc elts others)) | 851 | (setq others (nconc l1 others)) |
| 842 | (recentf-set-menu-element-item | 852 | (recentf-set-menu-element-item |
| 843 | menu (format (recentf-menu-element-item menu) count)) | 853 | menu (format (recentf-menu-element-item menu) count)) |
| 844 | (recentf-set-menu-element-value | 854 | (recentf-set-menu-element-value |
| 845 | menu (recentf-apply-menu-filter | 855 | menu (recentf-apply-menu-filter |
| 846 | recentf-arrange-by-rule-subfilter (nreverse elts))) | 856 | recentf-arrange-by-rule-subfilter (nreverse l1))) |
| 847 | (push menu l)))) | 857 | (push menu l2)))) |
| 848 | 858 | ;; Add the menu items remaining in the `others' bin. | |
| 849 | (if (and (stringp recentf-arrange-by-rule-others) others) | 859 | (if (and (stringp recentf-arrange-by-rule-others) others) |
| 850 | (nreverse | 860 | (nreverse |
| 851 | (cons | 861 | (cons |
| @@ -853,12 +863,11 @@ Arrange them in sub-menus following rules in `recentf-arrange-rules'." | |||
| 853 | (format recentf-arrange-by-rule-others (length others)) | 863 | (format recentf-arrange-by-rule-others (length others)) |
| 854 | (recentf-apply-menu-filter | 864 | (recentf-apply-menu-filter |
| 855 | recentf-arrange-by-rule-subfilter (nreverse others))) | 865 | recentf-arrange-by-rule-subfilter (nreverse others))) |
| 856 | l)) | 866 | l2)) |
| 857 | (nconc | 867 | (nconc |
| 858 | (nreverse l) | 868 | (nreverse l2) |
| 859 | (recentf-apply-menu-filter | 869 | (recentf-apply-menu-filter |
| 860 | recentf-arrange-by-rule-subfilter (nreverse others))))) | 870 | recentf-arrange-by-rule-subfilter (nreverse others))))))) |
| 861 | )) | ||
| 862 | 871 | ||
| 863 | ;;; Predefined rule based menu filters | 872 | ;;; Predefined rule based menu filters |
| 864 | ;; | 873 | ;; |
| @@ -870,12 +879,20 @@ Rules obey `recentf-arrange-rules' format." | |||
| 870 | (dolist (mode auto-mode-alist) | 879 | (dolist (mode auto-mode-alist) |
| 871 | (setq regexp (car mode) | 880 | (setq regexp (car mode) |
| 872 | mode (cdr mode)) | 881 | mode (cdr mode)) |
| 873 | (when (symbolp mode) | 882 | (when mode |
| 874 | (setq rule-name (symbol-name mode)) | 883 | (cond |
| 875 | (if (string-match "\\(.*\\)-mode$" rule-name) | 884 | ;; Build a special "strip suffix" rule from entries of the |
| 876 | (setq rule-name (match-string 1 rule-name))) | 885 | ;; form (REGEXP FUNCTION NON-NIL). Notice that FUNCTION is |
| 877 | (setq rule-name (concat rule-name " (%d)") | 886 | ;; ignored by the menu filter. So in some corner cases a |
| 878 | rule (assoc rule-name rules)) | 887 | ;; wrong mode could be guessed. |
| 888 | ((and (consp mode) (cadr mode)) | ||
| 889 | (setq rule-name t)) | ||
| 890 | ((and mode (symbolp mode)) | ||
| 891 | (setq rule-name (symbol-name mode)) | ||
| 892 | (if (string-match "\\(.*\\)-mode$" rule-name) | ||
| 893 | (setq rule-name (match-string 1 rule-name))) | ||
| 894 | (setq rule-name (concat rule-name " (%d)")))) | ||
| 895 | (setq rule (assoc rule-name rules)) | ||
| 879 | (if rule | 896 | (if rule |
| 880 | (setcdr rule (cons regexp (cdr rule))) | 897 | (setcdr rule (cons regexp (cdr rule))) |
| 881 | (push (list rule-name regexp) rules)))) | 898 | (push (list rule-name regexp) rules)))) |
diff --git a/lisp/replace.el b/lisp/replace.el index e74b8690c28..fbfa1be09c2 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -693,6 +693,7 @@ a previously found match." | |||
| 693 | 693 | ||
| 694 | (defvar occur-mode-map | 694 | (defvar occur-mode-map |
| 695 | (let ((map (make-sparse-keymap))) | 695 | (let ((map (make-sparse-keymap))) |
| 696 | ;; We use this alternative name, so we can use \\[occur-mode-mouse-goto]. | ||
| 696 | (define-key map [mouse-2] 'occur-mode-mouse-goto) | 697 | (define-key map [mouse-2] 'occur-mode-mouse-goto) |
| 697 | (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) | 698 | (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) |
| 698 | (define-key map "\C-m" 'occur-mode-goto-occurrence) | 699 | (define-key map "\C-m" 'occur-mode-goto-occurrence) |
| @@ -746,18 +747,6 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it. | |||
| 746 | "Handle `revert-buffer' for Occur mode buffers." | 747 | "Handle `revert-buffer' for Occur mode buffers." |
| 747 | (apply 'occur-1 (append occur-revert-arguments (list (buffer-name))))) | 748 | (apply 'occur-1 (append occur-revert-arguments (list (buffer-name))))) |
| 748 | 749 | ||
| 749 | (defun occur-mode-mouse-goto (event) | ||
| 750 | "In Occur mode, go to the occurrence whose line you click on." | ||
| 751 | (interactive "e") | ||
| 752 | (let (pos) | ||
| 753 | (save-excursion | ||
| 754 | (set-buffer (window-buffer (posn-window (event-end event)))) | ||
| 755 | (save-excursion | ||
| 756 | (goto-char (posn-point (event-end event))) | ||
| 757 | (setq pos (occur-mode-find-occurrence)))) | ||
| 758 | (switch-to-buffer-other-window (marker-buffer pos)) | ||
| 759 | (goto-char pos))) | ||
| 760 | |||
| 761 | (defun occur-mode-find-occurrence () | 750 | (defun occur-mode-find-occurrence () |
| 762 | (let ((pos (get-text-property (point) 'occur-target))) | 751 | (let ((pos (get-text-property (point) 'occur-target))) |
| 763 | (unless pos | 752 | (unless pos |
| @@ -766,11 +755,23 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it. | |||
| 766 | (error "Buffer for this occurrence was killed")) | 755 | (error "Buffer for this occurrence was killed")) |
| 767 | pos)) | 756 | pos)) |
| 768 | 757 | ||
| 769 | (defun occur-mode-goto-occurrence () | 758 | (defalias 'occur-mode-mouse-goto 'occur-mode-goto-occurrence) |
| 759 | (defun occur-mode-goto-occurrence (&optional event) | ||
| 770 | "Go to the occurrence the current line describes." | 760 | "Go to the occurrence the current line describes." |
| 771 | (interactive) | 761 | (interactive (list last-nonmenu-event)) |
| 772 | (let ((pos (occur-mode-find-occurrence))) | 762 | (let ((pos |
| 773 | (switch-to-buffer (marker-buffer pos)) | 763 | (if (null event) |
| 764 | ;; Actually `event-end' works correctly with a nil argument as | ||
| 765 | ;; well, so we could dispense with this test, but let's not | ||
| 766 | ;; rely on this undocumented behavior. | ||
| 767 | (occur-mode-find-occurrence) | ||
| 768 | (with-current-buffer (window-buffer (posn-window (event-end event))) | ||
| 769 | (save-excursion | ||
| 770 | (goto-char (posn-point (event-end event))) | ||
| 771 | (occur-mode-find-occurrence))))) | ||
| 772 | same-window-buffer-names | ||
| 773 | same-window-regexps) | ||
| 774 | (pop-to-buffer (marker-buffer pos)) | ||
| 774 | (goto-char pos))) | 775 | (goto-char pos))) |
| 775 | 776 | ||
| 776 | (defun occur-mode-goto-occurrence-other-window () | 777 | (defun occur-mode-goto-occurrence-other-window () |
| @@ -832,7 +833,8 @@ Compatibility function for \\[next-error] invocations." | |||
| 832 | 833 | ||
| 833 | (goto-char (cond (reset (point-min)) | 834 | (goto-char (cond (reset (point-min)) |
| 834 | ((< argp 0) (line-beginning-position)) | 835 | ((< argp 0) (line-beginning-position)) |
| 835 | ((line-end-position)))) | 836 | ((> argp 0) (line-end-position)) |
| 837 | ((point)))) | ||
| 836 | (occur-find-match | 838 | (occur-find-match |
| 837 | (abs argp) | 839 | (abs argp) |
| 838 | (if (> 0 argp) | 840 | (if (> 0 argp) |
| @@ -1089,8 +1091,7 @@ See also `multi-occur'." | |||
| 1089 | (marker nil) | 1091 | (marker nil) |
| 1090 | (curstring "") | 1092 | (curstring "") |
| 1091 | (headerpt (with-current-buffer out-buf (point)))) | 1093 | (headerpt (with-current-buffer out-buf (point)))) |
| 1092 | (save-excursion | 1094 | (with-current-buffer buf |
| 1093 | (set-buffer buf) | ||
| 1094 | (or coding | 1095 | (or coding |
| 1095 | ;; Set CODING only if the current buffer locally | 1096 | ;; Set CODING only if the current buffer locally |
| 1096 | ;; binds buffer-file-coding-system. | 1097 | ;; binds buffer-file-coding-system. |
| @@ -1223,42 +1224,43 @@ C-l to clear the screen, redisplay, and offer same replacement again, | |||
| 1223 | E to edit the replacement string" | 1224 | E to edit the replacement string" |
| 1224 | "Help message while in `query-replace'.") | 1225 | "Help message while in `query-replace'.") |
| 1225 | 1226 | ||
| 1226 | (defvar query-replace-map (make-sparse-keymap) | 1227 | (defvar query-replace-map |
| 1228 | (let ((map (make-sparse-keymap))) | ||
| 1229 | (define-key map " " 'act) | ||
| 1230 | (define-key map "\d" 'skip) | ||
| 1231 | (define-key map [delete] 'skip) | ||
| 1232 | (define-key map [backspace] 'skip) | ||
| 1233 | (define-key map "y" 'act) | ||
| 1234 | (define-key map "n" 'skip) | ||
| 1235 | (define-key map "Y" 'act) | ||
| 1236 | (define-key map "N" 'skip) | ||
| 1237 | (define-key map "e" 'edit-replacement) | ||
| 1238 | (define-key map "E" 'edit-replacement) | ||
| 1239 | (define-key map "," 'act-and-show) | ||
| 1240 | (define-key map "q" 'exit) | ||
| 1241 | (define-key map "\r" 'exit) | ||
| 1242 | (define-key map [return] 'exit) | ||
| 1243 | (define-key map "." 'act-and-exit) | ||
| 1244 | (define-key map "\C-r" 'edit) | ||
| 1245 | (define-key map "\C-w" 'delete-and-edit) | ||
| 1246 | (define-key map "\C-l" 'recenter) | ||
| 1247 | (define-key map "!" 'automatic) | ||
| 1248 | (define-key map "^" 'backup) | ||
| 1249 | (define-key map "\C-h" 'help) | ||
| 1250 | (define-key map [f1] 'help) | ||
| 1251 | (define-key map [help] 'help) | ||
| 1252 | (define-key map "?" 'help) | ||
| 1253 | (define-key map "\C-g" 'quit) | ||
| 1254 | (define-key map "\C-]" 'quit) | ||
| 1255 | (define-key map "\e" 'exit-prefix) | ||
| 1256 | (define-key map [escape] 'exit-prefix) | ||
| 1257 | map) | ||
| 1227 | "Keymap that defines the responses to questions in `query-replace'. | 1258 | "Keymap that defines the responses to questions in `query-replace'. |
| 1228 | The \"bindings\" in this map are not commands; they are answers. | 1259 | The \"bindings\" in this map are not commands; they are answers. |
| 1229 | The valid answers include `act', `skip', `act-and-show', | 1260 | The valid answers include `act', `skip', `act-and-show', |
| 1230 | `exit', `act-and-exit', `edit', `delete-and-edit', `recenter', | 1261 | `exit', `act-and-exit', `edit', `delete-and-edit', `recenter', |
| 1231 | `automatic', `backup', `exit-prefix', and `help'.") | 1262 | `automatic', `backup', `exit-prefix', and `help'.") |
| 1232 | 1263 | ||
| 1233 | (define-key query-replace-map " " 'act) | ||
| 1234 | (define-key query-replace-map "\d" 'skip) | ||
| 1235 | (define-key query-replace-map [delete] 'skip) | ||
| 1236 | (define-key query-replace-map [backspace] 'skip) | ||
| 1237 | (define-key query-replace-map "y" 'act) | ||
| 1238 | (define-key query-replace-map "n" 'skip) | ||
| 1239 | (define-key query-replace-map "Y" 'act) | ||
| 1240 | (define-key query-replace-map "N" 'skip) | ||
| 1241 | (define-key query-replace-map "e" 'edit-replacement) | ||
| 1242 | (define-key query-replace-map "E" 'edit-replacement) | ||
| 1243 | (define-key query-replace-map "," 'act-and-show) | ||
| 1244 | (define-key query-replace-map "q" 'exit) | ||
| 1245 | (define-key query-replace-map "\r" 'exit) | ||
| 1246 | (define-key query-replace-map [return] 'exit) | ||
| 1247 | (define-key query-replace-map "." 'act-and-exit) | ||
| 1248 | (define-key query-replace-map "\C-r" 'edit) | ||
| 1249 | (define-key query-replace-map "\C-w" 'delete-and-edit) | ||
| 1250 | (define-key query-replace-map "\C-l" 'recenter) | ||
| 1251 | (define-key query-replace-map "!" 'automatic) | ||
| 1252 | (define-key query-replace-map "^" 'backup) | ||
| 1253 | (define-key query-replace-map "\C-h" 'help) | ||
| 1254 | (define-key query-replace-map [f1] 'help) | ||
| 1255 | (define-key query-replace-map [help] 'help) | ||
| 1256 | (define-key query-replace-map "?" 'help) | ||
| 1257 | (define-key query-replace-map "\C-g" 'quit) | ||
| 1258 | (define-key query-replace-map "\C-]" 'quit) | ||
| 1259 | (define-key query-replace-map "\e" 'exit-prefix) | ||
| 1260 | (define-key query-replace-map [escape] 'exit-prefix) | ||
| 1261 | |||
| 1262 | (defun replace-match-string-symbols (n) | 1264 | (defun replace-match-string-symbols (n) |
| 1263 | "Process a list (and any sub-lists), expanding certain symbols. | 1265 | "Process a list (and any sub-lists), expanding certain symbols. |
| 1264 | Symbol Expands To | 1266 | Symbol Expands To |
diff --git a/lisp/simple.el b/lisp/simple.el index a1be91f5abf..302354dff26 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -609,7 +609,7 @@ In binary overwrite mode, this function does overwrite, and octal | |||
| 609 | digits are interpreted as a character code. This is intended to be | 609 | digits are interpreted as a character code. This is intended to be |
| 610 | useful for editing binary files." | 610 | useful for editing binary files." |
| 611 | (interactive "*p") | 611 | (interactive "*p") |
| 612 | (let* ((char (let (translation-table-for-input) | 612 | (let* ((char (let (translation-table-for-input input-method-function) |
| 613 | (if (or (not overwrite-mode) | 613 | (if (or (not overwrite-mode) |
| 614 | (eq overwrite-mode 'overwrite-mode-binary)) | 614 | (eq overwrite-mode 'overwrite-mode-binary)) |
| 615 | (read-quoted-char) | 615 | (read-quoted-char) |
| @@ -3330,7 +3330,7 @@ and more reliable (no dependence on goal column, etc.)." | |||
| 3330 | ;; When adding a newline, don't expand an abbrev. | 3330 | ;; When adding a newline, don't expand an abbrev. |
| 3331 | (let ((abbrev-mode nil)) | 3331 | (let ((abbrev-mode nil)) |
| 3332 | (end-of-line) | 3332 | (end-of-line) |
| 3333 | (insert hard-newline)) | 3333 | (insert (if use-hard-newlines hard-newline "\n"))) |
| 3334 | (line-move arg nil nil try-vscroll)) | 3334 | (line-move arg nil nil try-vscroll)) |
| 3335 | (if (interactive-p) | 3335 | (if (interactive-p) |
| 3336 | (condition-case nil | 3336 | (condition-case nil |
| @@ -4263,7 +4263,11 @@ of the buffer appears in the mode line." | |||
| 4263 | (defcustom blink-matching-paren-on-screen t | 4263 | (defcustom blink-matching-paren-on-screen t |
| 4264 | "*Non-nil means show matching open-paren when it is on screen. | 4264 | "*Non-nil means show matching open-paren when it is on screen. |
| 4265 | If nil, means don't show it (but the open-paren can still be shown | 4265 | If nil, means don't show it (but the open-paren can still be shown |
| 4266 | when it is off screen)." | 4266 | when it is off screen). |
| 4267 | |||
| 4268 | This variable has no effect if `blink-matching-paren' is nil. | ||
| 4269 | \(In that case, the open-paren is never shown.) | ||
| 4270 | It is also ignored if `show-paren-mode' is enabled." | ||
| 4267 | :type 'boolean | 4271 | :type 'boolean |
| 4268 | :group 'paren-blinking) | 4272 | :group 'paren-blinking) |
| 4269 | 4273 | ||
| @@ -4324,7 +4328,7 @@ If nil, search stops at the beginning of the accessible portion of the buffer." | |||
| 4324 | ;; The cdr might hold a new paren-class info rather than | 4328 | ;; The cdr might hold a new paren-class info rather than |
| 4325 | ;; a matching-char info, in which case the two CDRs | 4329 | ;; a matching-char info, in which case the two CDRs |
| 4326 | ;; should match. | 4330 | ;; should match. |
| 4327 | (eq matching-paren (cdr (syntax-after oldpos))))) | 4331 | (eq matching-paren (cdr (syntax-after (1- oldpos)))))) |
| 4328 | (message "Mismatched parentheses")) | 4332 | (message "Mismatched parentheses")) |
| 4329 | ((not blinkpos) | 4333 | ((not blinkpos) |
| 4330 | (if (not blink-matching-paren-distance) | 4334 | (if (not blink-matching-paren-distance) |
| @@ -4332,10 +4336,11 @@ If nil, search stops at the beginning of the accessible portion of the buffer." | |||
| 4332 | ((pos-visible-in-window-p blinkpos) | 4336 | ((pos-visible-in-window-p blinkpos) |
| 4333 | ;; Matching open within window, temporarily move to blinkpos but only | 4337 | ;; Matching open within window, temporarily move to blinkpos but only |
| 4334 | ;; if `blink-matching-paren-on-screen' is non-nil. | 4338 | ;; if `blink-matching-paren-on-screen' is non-nil. |
| 4335 | (when blink-matching-paren-on-screen | 4339 | (and blink-matching-paren-on-screen |
| 4336 | (save-excursion | 4340 | (not show-paren-mode) |
| 4337 | (goto-char blinkpos) | 4341 | (save-excursion |
| 4338 | (sit-for blink-matching-delay)))) | 4342 | (goto-char blinkpos) |
| 4343 | (sit-for blink-matching-delay)))) | ||
| 4339 | (t | 4344 | (t |
| 4340 | (save-excursion | 4345 | (save-excursion |
| 4341 | (goto-char blinkpos) | 4346 | (goto-char blinkpos) |
| @@ -4514,7 +4519,8 @@ See also `read-mail-command' concerning reading mail." | |||
| 4514 | (unless (member-ignore-case (car (car other-headers)) | 4519 | (unless (member-ignore-case (car (car other-headers)) |
| 4515 | '("in-reply-to" "cc" "body")) | 4520 | '("in-reply-to" "cc" "body")) |
| 4516 | (insert (car (car other-headers)) ": " | 4521 | (insert (car (car other-headers)) ": " |
| 4517 | (cdr (car other-headers)) hard-newline)) | 4522 | (cdr (car other-headers)) |
| 4523 | (if use-hard-newlines hard-newline "\n"))) | ||
| 4518 | (setq other-headers (cdr other-headers))) | 4524 | (setq other-headers (cdr other-headers))) |
| 4519 | (when body | 4525 | (when body |
| 4520 | (forward-line 1) | 4526 | (forward-line 1) |
diff --git a/lisp/speedbar.el b/lisp/speedbar.el index e09c0d734cc..a48f480a756 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el | |||
| @@ -331,6 +331,16 @@ display is used instead." | |||
| 331 | :group 'speedbar | 331 | :group 'speedbar |
| 332 | :type 'boolean) | 332 | :type 'boolean) |
| 333 | 333 | ||
| 334 | (defcustom speedbar-default-position 'left-right | ||
| 335 | "*Default position of the speedbar frame. | ||
| 336 | Possible values are 'left, 'right or 'left-right. | ||
| 337 | If value is 'left-right, the most suitable location is | ||
| 338 | determined automatically." | ||
| 339 | :group 'speedbar | ||
| 340 | :type '(radio (const :tag "Automatic" left-right) | ||
| 341 | (const :tag "Left" left) | ||
| 342 | (const :tag "Right" right))) | ||
| 343 | |||
| 334 | (defcustom speedbar-sort-tags nil | 344 | (defcustom speedbar-sort-tags nil |
| 335 | "*If non-nil, sort tags in the speedbar display. *Obsolete*. | 345 | "*If non-nil, sort tags in the speedbar display. *Obsolete*. |
| 336 | Use `semantic-tag-hierarchy-method' instead." | 346 | Use `semantic-tag-hierarchy-method' instead." |
| @@ -967,7 +977,7 @@ supported at a time. | |||
| 967 | (t | 977 | (t |
| 968 | (dframe-reposition-frame speedbar-frame | 978 | (dframe-reposition-frame speedbar-frame |
| 969 | (dframe-attached-frame speedbar-frame) | 979 | (dframe-attached-frame speedbar-frame) |
| 970 | 'left-right)))) | 980 | speedbar-default-position)))) |
| 971 | 981 | ||
| 972 | (defun speedbar-detach () | 982 | (defun speedbar-detach () |
| 973 | "Detach the current Speedbar from auto-updating. | 983 | "Detach the current Speedbar from auto-updating. |
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index 7912bb1a4d6..66a633d6f36 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el | |||
| @@ -1085,6 +1085,9 @@ XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp") | |||
| 1085 | (put 'return 'ascii-character ?\C-m) | 1085 | (put 'return 'ascii-character ?\C-m) |
| 1086 | (put 'escape 'ascii-character ?\e) | 1086 | (put 'escape 'ascii-character ?\e) |
| 1087 | 1087 | ||
| 1088 | ;; Modifier name `ctrl' is an alias of `control'. | ||
| 1089 | (put 'ctrl 'modifier-value (get 'control 'modifier-value)) | ||
| 1090 | |||
| 1088 | 1091 | ||
| 1089 | ;;;; Script codes and coding systems | 1092 | ;;;; Script codes and coding systems |
| 1090 | (defconst mac-script-code-coding-systems | 1093 | (defconst mac-script-code-coding-systems |
| @@ -1962,10 +1965,10 @@ Switch to a buffer editing the last file dropped." | |||
| 1962 | user-login-name user-real-login-name user-full-name)) | 1965 | user-login-name user-real-login-name user-full-name)) |
| 1963 | (set v (decode-coding-string (symbol-value v) mac-system-coding-system)))) | 1966 | (set v (decode-coding-string (symbol-value v) mac-system-coding-system)))) |
| 1964 | 1967 | ||
| 1965 | ;; If Emacs is started from the Finder, change the default directory | 1968 | ;; Now the default directory is changed to the user's home directory |
| 1966 | ;; to the user's home directory. | 1969 | ;; in emacs.c if invoked from the WindowServer (with -psn_* option). |
| 1967 | (if (string= default-directory "/") | 1970 | ;; (if (string= default-directory "/") |
| 1968 | (cd "~")) | 1971 | ;; (cd "~")) |
| 1969 | 1972 | ||
| 1970 | ;; Darwin 6- pty breakage is now controlled from the C code so that | 1973 | ;; Darwin 6- pty breakage is now controlled from the C code so that |
| 1971 | ;; it applies to all builds on darwin. See s/darwin.h PTY_ITERATION. | 1974 | ;; it applies to all builds on darwin. See s/darwin.h PTY_ITERATION. |
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index ffa7d606a95..aff6d032f06 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el | |||
| @@ -1039,6 +1039,8 @@ XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp") | |||
| 1039 | (substitute-key-definition 'suspend-emacs 'iconify-or-deiconify-frame | 1039 | (substitute-key-definition 'suspend-emacs 'iconify-or-deiconify-frame |
| 1040 | global-map) | 1040 | global-map) |
| 1041 | 1041 | ||
| 1042 | (define-key function-key-map [S-tab] [backtab]) | ||
| 1043 | |||
| 1042 | 1044 | ||
| 1043 | ;;; Do the actual Windows setup here; the above code just defines | 1045 | ;;; Do the actual Windows setup here; the above code just defines |
| 1044 | ;;; functions and variables that we use now. | 1046 | ;;; functions and variables that we use now. |
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index dd718e21ed9..a0f36f5f794 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -501,23 +501,29 @@ in your .emacs file. | |||
| 501 | ;;*---------------------------------------------------------------------*/ | 501 | ;;*---------------------------------------------------------------------*/ |
| 502 | ;;* flyspell-accept-buffer-local-defs ... */ | 502 | ;;* flyspell-accept-buffer-local-defs ... */ |
| 503 | ;;*---------------------------------------------------------------------*/ | 503 | ;;*---------------------------------------------------------------------*/ |
| 504 | (defvar flyspell-last-buffer nil | ||
| 505 | "The buffer in which the last flyspell operation took place.") | ||
| 506 | |||
| 504 | (defun flyspell-accept-buffer-local-defs () | 507 | (defun flyspell-accept-buffer-local-defs () |
| 505 | ;; strange problem. If buffer in current window has font-lock turned on, | 508 | ;; When flyspell-word is used inside a loop (e.g. when processing |
| 506 | ;; but SET-BUFFER was called to point to an invisible buffer, this ispell | 509 | ;; flyspell-changes), the calls to `ispell-accept-buffer-local-defs' end |
| 507 | ;; call will reset the buffer to the buffer in the current window. However, | 510 | ;; up dwarfing everything else, so only do it when the buffer has changed. |
| 508 | ;; it only happens at startup (fix by Albert L. Ting). | 511 | (unless (eq flyspell-last-buffer (current-buffer)) |
| 509 | (save-current-buffer | 512 | (setq flyspell-last-buffer (current-buffer)) |
| 510 | (ispell-accept-buffer-local-defs)) | 513 | ;; Strange problem: If buffer in current window has font-lock turned on, |
| 511 | (if (not (and (eq flyspell-dash-dictionary ispell-dictionary) | 514 | ;; but SET-BUFFER was called to point to an invisible buffer, this ispell |
| 512 | (eq flyspell-dash-local-dictionary ispell-local-dictionary))) | 515 | ;; call will reset the buffer to the buffer in the current window. |
| 516 | ;; However, it only happens at startup (fix by Albert L. Ting). | ||
| 517 | (save-current-buffer | ||
| 518 | (ispell-accept-buffer-local-defs)) | ||
| 519 | (unless (and (eq flyspell-dash-dictionary ispell-dictionary) | ||
| 520 | (eq flyspell-dash-local-dictionary ispell-local-dictionary)) | ||
| 513 | ;; The dictionary has changed | 521 | ;; The dictionary has changed |
| 514 | (progn | 522 | (setq flyspell-dash-dictionary ispell-dictionary) |
| 515 | (setq flyspell-dash-dictionary ispell-dictionary) | 523 | (setq flyspell-dash-local-dictionary ispell-local-dictionary) |
| 516 | (setq flyspell-dash-local-dictionary ispell-local-dictionary) | 524 | (setq flyspell-consider-dash-as-word-delimiter-flag |
| 517 | (if (member (or ispell-local-dictionary ispell-dictionary) | 525 | (member (or ispell-local-dictionary ispell-dictionary) |
| 518 | flyspell-dictionaries-that-consider-dash-as-word-delimiter) | 526 | flyspell-dictionaries-that-consider-dash-as-word-delimiter))))) |
| 519 | (setq flyspell-consider-dash-as-word-delimiter-flag t) | ||
| 520 | (setq flyspell-consider-dash-as-word-delimiter-flag nil))))) | ||
| 521 | 527 | ||
| 522 | ;;*---------------------------------------------------------------------*/ | 528 | ;;*---------------------------------------------------------------------*/ |
| 523 | ;;* flyspell-mode-on ... */ | 529 | ;;* flyspell-mode-on ... */ |
| @@ -543,9 +549,7 @@ in your .emacs file. | |||
| 543 | ;; we bound flyspell action to pre-command hook | 549 | ;; we bound flyspell action to pre-command hook |
| 544 | (add-hook 'pre-command-hook (function flyspell-pre-command-hook) t t) | 550 | (add-hook 'pre-command-hook (function flyspell-pre-command-hook) t t) |
| 545 | ;; we bound flyspell action to after-change hook | 551 | ;; we bound flyspell action to after-change hook |
| 546 | (make-local-variable 'after-change-functions) | 552 | (add-hook 'after-change-functions 'flyspell-after-change-function nil t) |
| 547 | (setq after-change-functions | ||
| 548 | (cons 'flyspell-after-change-function after-change-functions)) | ||
| 549 | ;; set flyspell-generic-check-word-p based on the major mode | 553 | ;; set flyspell-generic-check-word-p based on the major mode |
| 550 | (let ((mode-predicate (get major-mode 'flyspell-mode-predicate))) | 554 | (let ((mode-predicate (get major-mode 'flyspell-mode-predicate))) |
| 551 | (if mode-predicate | 555 | (if mode-predicate |
| @@ -650,8 +654,7 @@ not the very same deplacement command." | |||
| 650 | ;; we remove the hooks | 654 | ;; we remove the hooks |
| 651 | (remove-hook 'post-command-hook (function flyspell-post-command-hook) t) | 655 | (remove-hook 'post-command-hook (function flyspell-post-command-hook) t) |
| 652 | (remove-hook 'pre-command-hook (function flyspell-pre-command-hook) t) | 656 | (remove-hook 'pre-command-hook (function flyspell-pre-command-hook) t) |
| 653 | (setq after-change-functions (delq 'flyspell-after-change-function | 657 | (remove-hook 'after-change-functions 'flyspell-after-change-function t) |
| 654 | after-change-functions)) | ||
| 655 | ;; we remove all the flyspell hilightings | 658 | ;; we remove all the flyspell hilightings |
| 656 | (flyspell-delete-all-overlays) | 659 | (flyspell-delete-all-overlays) |
| 657 | ;; we have to erase pre cache variables | 660 | ;; we have to erase pre cache variables |
| @@ -704,14 +707,14 @@ before the current command." | |||
| 704 | ;;* position has to be spell checked. */ | 707 | ;;* position has to be spell checked. */ |
| 705 | ;;*---------------------------------------------------------------------*/ | 708 | ;;*---------------------------------------------------------------------*/ |
| 706 | (defvar flyspell-changes nil) | 709 | (defvar flyspell-changes nil) |
| 710 | (make-variable-buffer-local 'flyspell-changes) | ||
| 707 | 711 | ||
| 708 | ;;*---------------------------------------------------------------------*/ | 712 | ;;*---------------------------------------------------------------------*/ |
| 709 | ;;* flyspell-after-change-function ... */ | 713 | ;;* flyspell-after-change-function ... */ |
| 710 | ;;*---------------------------------------------------------------------*/ | 714 | ;;*---------------------------------------------------------------------*/ |
| 711 | (defun flyspell-after-change-function (start stop len) | 715 | (defun flyspell-after-change-function (start stop len) |
| 712 | "Save the current buffer and point for Flyspell's post-command hook." | 716 | "Save the current buffer and point for Flyspell's post-command hook." |
| 713 | (interactive) | 717 | (push (cons start stop) flyspell-changes)) |
| 714 | (setq flyspell-changes (cons (cons start stop) flyspell-changes))) | ||
| 715 | 718 | ||
| 716 | ;;*---------------------------------------------------------------------*/ | 719 | ;;*---------------------------------------------------------------------*/ |
| 717 | ;;* flyspell-check-changed-word-p ... */ | 720 | ;;* flyspell-check-changed-word-p ... */ |
| @@ -899,7 +902,7 @@ Mostly we check word delimiters." | |||
| 899 | (progn | 902 | (progn |
| 900 | (setq flyspell-word-cache-end -1) | 903 | (setq flyspell-word-cache-end -1) |
| 901 | (setq flyspell-word-cache-result '_))))) | 904 | (setq flyspell-word-cache-result '_))))) |
| 902 | (while (consp flyspell-changes) | 905 | (while (and (not (input-pending-p)) (consp flyspell-changes)) |
| 903 | (let ((start (car (car flyspell-changes))) | 906 | (let ((start (car (car flyspell-changes))) |
| 904 | (stop (cdr (car flyspell-changes)))) | 907 | (stop (cdr (car flyspell-changes)))) |
| 905 | (if (flyspell-check-changed-word-p start stop) | 908 | (if (flyspell-check-changed-word-p start stop) |
| @@ -1011,7 +1014,7 @@ Mostly we check word delimiters." | |||
| 1011 | ;; when emacs is exited without query | 1014 | ;; when emacs is exited without query |
| 1012 | (set-process-query-on-exit-flag ispell-process nil) | 1015 | (set-process-query-on-exit-flag ispell-process nil) |
| 1013 | ;; Wait until ispell has processed word. Since this code is often | 1016 | ;; Wait until ispell has processed word. Since this code is often |
| 1014 | ;; executed rom post-command-hook but the ispell process may not | 1017 | ;; executed from post-command-hook but the ispell process may not |
| 1015 | ;; be responsive, it's important to make sure we re-enable C-g. | 1018 | ;; be responsive, it's important to make sure we re-enable C-g. |
| 1016 | (with-local-quit | 1019 | (with-local-quit |
| 1017 | (while (progn | 1020 | (while (progn |
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index 0dcde3d69d5..bec088e2a1d 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 | 6 | ;; Keywords: outlines, hypermedia, calendar |
| 7 | ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ | 7 | ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ |
| 8 | ;; Version: 3.20 | 8 | ;; Version: 3.21 |
| 9 | ;; | 9 | ;; |
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | ;; | 11 | ;; |
| @@ -76,10 +76,17 @@ | |||
| 76 | ;; The documentation of Org-mode can be found in the TeXInfo file. The | 76 | ;; The documentation of Org-mode can be found in the TeXInfo file. The |
| 77 | ;; distribution also contains a PDF version of it. At the homepage of | 77 | ;; distribution also contains a PDF version of it. At the homepage of |
| 78 | ;; Org-mode, you can read the same text online as HTML. There is also an | 78 | ;; Org-mode, you can read the same text online as HTML. There is also an |
| 79 | ;; excellent reference card made by Philip Rooke. | 79 | ;; excellent reference card made by Philip Rooke. This card can be found |
| 80 | ;; in the etc/ directory of Emacs 22. | ||
| 80 | ;; | 81 | ;; |
| 81 | ;; Changes: | 82 | ;; Changes: |
| 82 | ;; ------- | 83 | ;; ------- |
| 84 | ;; Version 3.21 | ||
| 85 | ;; - Improved CSS support for the HTML export. Thanks to Christian Egli. | ||
| 86 | ;; - Editing support for hand-formatted lists | ||
| 87 | ;; - M-S-cursor keys handle plain list items | ||
| 88 | ;; - C-c C-c renumbers ordered plain lists | ||
| 89 | ;; | ||
| 83 | ;; Version 3.20 | 90 | ;; Version 3.20 |
| 84 | ;; - There is finally an option to make TAB jump over horizontal lines | 91 | ;; - There is finally an option to make TAB jump over horizontal lines |
| 85 | ;; in tables instead of creating a new line before that line. | 92 | ;; in tables instead of creating a new line before that line. |
| @@ -88,7 +95,7 @@ | |||
| 88 | ;; - Changes to the HTML exporter | 95 | ;; - Changes to the HTML exporter |
| 89 | ;; - hand-formatted lists are exported correctly, similar to | 96 | ;; - hand-formatted lists are exported correctly, similar to |
| 90 | ;; markdown lists. Nested lists are possible. See the docstring | 97 | ;; markdown lists. Nested lists are possible. See the docstring |
| 91 | ;; of the variable `org-export-local-list-max-depth'. | 98 | ;; of the variable `org-export-plain-list-max-depth'. |
| 92 | ;; - cleaned up to produce valid HTML 4.0 (transitional). | 99 | ;; - cleaned up to produce valid HTML 4.0 (transitional). |
| 93 | ;; - support for cascading style sheets. | 100 | ;; - support for cascading style sheets. |
| 94 | ;; - New command to cycle through all agenda files, on C-, | 101 | ;; - New command to cycle through all agenda files, on C-, |
| @@ -234,7 +241,7 @@ | |||
| 234 | 241 | ||
| 235 | ;;; Customization variables | 242 | ;;; Customization variables |
| 236 | 243 | ||
| 237 | (defvar org-version "3.20" | 244 | (defvar org-version "3.21" |
| 238 | "The version number of the file org.el.") | 245 | "The version number of the file org.el.") |
| 239 | (defun org-version () | 246 | (defun org-version () |
| 240 | (interactive) | 247 | (interactive) |
| @@ -889,6 +896,25 @@ first line, so it is probably best to use this in combinations with | |||
| 889 | :group 'org-structure | 896 | :group 'org-structure |
| 890 | :type 'boolean) | 897 | :type 'boolean) |
| 891 | 898 | ||
| 899 | (defcustom org-plain-list-ordered-item-terminator t | ||
| 900 | "The character that makes a line with leading number an ordered list item. | ||
| 901 | Valid values are ?. and ?\). To get both terminators, use t. While | ||
| 902 | ?. may look nicer, it creates the danger that a line with leading | ||
| 903 | number may be incorrectly interpreted as an item. ?\) therefore is | ||
| 904 | the safe choice." | ||
| 905 | :group 'org-structure | ||
| 906 | :type '(choice (const :tag "dot like in \"2.\"" ?.) | ||
| 907 | (const :tag "paren like in \"2)\"" ?\)) | ||
| 908 | (const :tab "both" t))) | ||
| 909 | |||
| 910 | (defcustom org-auto-renumber-ordered-lists t | ||
| 911 | "Non-nil means, automatically renumber ordered plain lists. | ||
| 912 | Renumbering happens when the sequence have been changed with | ||
| 913 | \\[org-shiftmetaup] or \\[org-shiftmetadown]. After other editing commands, | ||
| 914 | use \\[org-ctrl-c-ctrl-c] to trigger renumbering." | ||
| 915 | :group 'org-structure | ||
| 916 | :type 'boolean) | ||
| 917 | |||
| 892 | (defgroup org-link nil | 918 | (defgroup org-link nil |
| 893 | "Options concerning links in Org-mode." | 919 | "Options concerning links in Org-mode." |
| 894 | :tag "Org Link" | 920 | :tag "Org Link" |
| @@ -1342,24 +1368,48 @@ This should have an association in `org-export-language-setup'." | |||
| 1342 | :group 'org-export | 1368 | :group 'org-export |
| 1343 | :type 'string) | 1369 | :type 'string) |
| 1344 | 1370 | ||
| 1345 | (defcustom org-export-html-style "" | 1371 | (defcustom org-export-html-style |
| 1372 | "<style type=\"text/css\"> | ||
| 1373 | html { | ||
| 1374 | font-family: Times, serif; | ||
| 1375 | font-size: 12pt; | ||
| 1376 | } | ||
| 1377 | .title { text-align: center; } | ||
| 1378 | .todo, .deadline { color: red; } | ||
| 1379 | .done { color: green; } | ||
| 1380 | pre { | ||
| 1381 | border: 1pt solid #AEBDCC; | ||
| 1382 | background-color: #F3F5F7; | ||
| 1383 | padding: 5pt; | ||
| 1384 | font-family: courier, monospace; | ||
| 1385 | } | ||
| 1386 | table { border-collapse: collapse; } | ||
| 1387 | td, th { | ||
| 1388 | vertical-align: top; | ||
| 1389 | border: 1pt solid #ADB9CC; | ||
| 1390 | } | ||
| 1391 | </style>" | ||
| 1346 | "The default style specification for exported HTML files. | 1392 | "The default style specification for exported HTML files. |
| 1347 | Since there are different ways of setting style information, this variable | 1393 | Since there are different ways of setting style information, this variable |
| 1348 | needs to contain the full HTML structure to provide a style, including the | 1394 | needs to contain the full HTML structure to provide a style, including the |
| 1349 | surrounding HTML tags. For example, legal values would be | 1395 | surrounding HTML tags. The style specifications should include definiitons |
| 1396 | for new classes todo, done, title, and deadline. For example, legal values | ||
| 1397 | would be. | ||
| 1350 | 1398 | ||
| 1351 | <style type=\"text/css\"> | 1399 | <style type=\"text/css\"> |
| 1352 | p {font-weight: normal; color: gray; } | 1400 | p {font-weight: normal; color: gray; } |
| 1353 | h1 {color: black; } | 1401 | h1 {color: black; } |
| 1402 | .title { text-align: center; } | ||
| 1403 | .todo, .deadline { color: red; } | ||
| 1404 | .done { color: green; } | ||
| 1354 | </style> | 1405 | </style> |
| 1355 | 1406 | ||
| 1356 | or | 1407 | or, if you want to keep the style in a file, |
| 1357 | 1408 | ||
| 1358 | <link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\"> | 1409 | <link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\"> |
| 1359 | 1410 | ||
| 1360 | As the value of this option simply gets inserted into the HTML <head> header, | 1411 | As the value of this option simply gets inserted into the HTML <head> header, |
| 1361 | you can \"misuse\" it to add arbitrary text to the header. | 1412 | you can \"misuse\" it to add arbitrary text to the header." |
| 1362 | " | ||
| 1363 | :group 'org-export | 1413 | :group 'org-export |
| 1364 | :type 'string) | 1414 | :type 'string) |
| 1365 | 1415 | ||
| @@ -1393,18 +1443,16 @@ This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"." | |||
| 1393 | :group 'org-export | 1443 | :group 'org-export |
| 1394 | :type 'boolean) | 1444 | :type 'boolean) |
| 1395 | 1445 | ||
| 1396 | (defcustom org-export-local-list-max-depth 1 | 1446 | (defcustom org-export-plain-list-max-depth 3 |
| 1397 | "Maximum depth of hand-formatted lists in HTML export. | 1447 | "Maximum depth of hand-formatted lists in HTML export. |
| 1448 | |||
| 1398 | Org-mode parses hand-formatted enumeration and bullet lists and | 1449 | Org-mode parses hand-formatted enumeration and bullet lists and |
| 1399 | transforms them to HTML open export. Different indentation of the bullet | 1450 | transforms them to HTML open export. Different indentation of the |
| 1400 | or number indicates different list nesting levels. To avoid confusion, | 1451 | bullet or number indicates different list nesting levels. To avoid |
| 1401 | only a single level is allowed by default. This means that a list is started | 1452 | confusion, only a single level is allowed by default. When this is |
| 1402 | with an item, and that all further items are consitered as long as the | 1453 | larger than 1, deeper indentation leads to deeper list nesting. For |
| 1403 | indentation is larger or equal to the indentation of the first item. When this | 1454 | example, the default value of 3 allows the following list to be |
| 1404 | is larger than 1, deeper indentation leads to deeper list nesting. | 1455 | formatted correctly in HTML: |
| 1405 | If you are careful with hand formatting, you can increase this limit and | ||
| 1406 | get lists of arbitrary depth. For example, by setting this option to 3, the | ||
| 1407 | following list would look correct in HTML: | ||
| 1408 | 1456 | ||
| 1409 | * Fruit | 1457 | * Fruit |
| 1410 | - Apple | 1458 | - Apple |
| @@ -2757,6 +2805,234 @@ If optional TXT is given, check this string instead of the current kill." | |||
| 2757 | (throw 'exit nil))) | 2805 | (throw 'exit nil))) |
| 2758 | t)))) | 2806 | t)))) |
| 2759 | 2807 | ||
| 2808 | ;;; Plain list item | ||
| 2809 | |||
| 2810 | (defun org-at-item-p () | ||
| 2811 | "Is point in a line starting a hand-formatted item?" | ||
| 2812 | (let ((llt org-plain-list-ordered-item-terminator)) | ||
| 2813 | (save-excursion | ||
| 2814 | (goto-char (point-at-bol)) | ||
| 2815 | (looking-at | ||
| 2816 | (cond | ||
| 2817 | ((eq llt t) "\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") | ||
| 2818 | ((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") | ||
| 2819 | ((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+)\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)") | ||
| 2820 | (t (error "Invalid value of `org-plain-list-ordered-item-terminator'"))))))) | ||
| 2821 | |||
| 2822 | (defun org-get-indentation () | ||
| 2823 | "Get the indentation of the current line, ionterpreting tabs." | ||
| 2824 | (save-excursion | ||
| 2825 | (beginning-of-line 1) | ||
| 2826 | (skip-chars-forward " \t") | ||
| 2827 | (current-column))) | ||
| 2828 | |||
| 2829 | (defun org-beginning-of-item () | ||
| 2830 | "Go to the beginning of the current hand-formatted item. | ||
| 2831 | If the cursor is not in an item, throw an error." | ||
| 2832 | (let ((pos (point)) | ||
| 2833 | (limit (save-excursion (org-back-to-heading) | ||
| 2834 | (beginning-of-line 2) (point))) | ||
| 2835 | ind ind1) | ||
| 2836 | (if (org-at-item-p) | ||
| 2837 | (beginning-of-line 1) | ||
| 2838 | (beginning-of-line 1) | ||
| 2839 | (skip-chars-forward " \t") | ||
| 2840 | (setq ind (current-column)) | ||
| 2841 | (if (catch 'exit | ||
| 2842 | (while t | ||
| 2843 | (beginning-of-line 0) | ||
| 2844 | (if (< (point) limit) (throw 'exit nil)) | ||
| 2845 | (unless (looking-at " \t]*$") | ||
| 2846 | (skip-chars-forward " \t") | ||
| 2847 | (setq ind1 (current-column)) | ||
| 2848 | (if (< ind1 ind) | ||
| 2849 | (throw 'exit (org-at-item-p)))))) | ||
| 2850 | nil | ||
| 2851 | (goto-char pos) | ||
| 2852 | (error "Not in an item"))))) | ||
| 2853 | |||
| 2854 | (defun org-end-of-item () | ||
| 2855 | "Go to the beginning of the current hand-formatted item. | ||
| 2856 | If the cursor is not in an item, throw an error." | ||
| 2857 | (let ((pos (point)) | ||
| 2858 | (limit (save-excursion (outline-next-heading) (point))) | ||
| 2859 | (ind (save-excursion | ||
| 2860 | (org-beginning-of-item) | ||
| 2861 | (skip-chars-forward " \t") | ||
| 2862 | (current-column))) | ||
| 2863 | ind1) | ||
| 2864 | (if (catch 'exit | ||
| 2865 | (while t | ||
| 2866 | (beginning-of-line 2) | ||
| 2867 | (if (>= (point) limit) (throw 'exit t)) | ||
| 2868 | (unless (looking-at "[ \t]*$") | ||
| 2869 | (skip-chars-forward " \t") | ||
| 2870 | (setq ind1 (current-column)) | ||
| 2871 | (if (<= ind1 ind) (throw 'exit t))))) | ||
| 2872 | (beginning-of-line 1) | ||
| 2873 | (goto-char pos) | ||
| 2874 | (error "Not in an item")))) | ||
| 2875 | |||
| 2876 | (defun org-move-item-down (arg) | ||
| 2877 | "Move the plain list item at point down, i.e. swap with following item. | ||
| 2878 | Subitems (items with larger indentation are considered part of the item, | ||
| 2879 | so this really moves item trees." | ||
| 2880 | (interactive "p") | ||
| 2881 | (let (beg end ind ind1 (pos (point)) txt) | ||
| 2882 | (org-beginning-of-item) | ||
| 2883 | (setq beg (point)) | ||
| 2884 | (setq ind (org-get-indentation)) | ||
| 2885 | (org-end-of-item) | ||
| 2886 | (setq end (point)) | ||
| 2887 | (setq ind1 (org-get-indentation)) | ||
| 2888 | (if (and (org-at-item-p) (= ind ind1)) | ||
| 2889 | (progn | ||
| 2890 | (org-end-of-item) | ||
| 2891 | (setq txt (buffer-substring beg end)) | ||
| 2892 | (save-excursion | ||
| 2893 | (delete-region beg end)) | ||
| 2894 | (setq pos (point)) | ||
| 2895 | (insert txt) | ||
| 2896 | (goto-char pos) | ||
| 2897 | (org-maybe-renumber-ordered-list)) | ||
| 2898 | (goto-char pos) | ||
| 2899 | (error "Cannot move this item further down")))) | ||
| 2900 | |||
| 2901 | (defun org-move-item-up (arg) | ||
| 2902 | "Move the plain list item at point up, i.e. swap with previous item. | ||
| 2903 | Subitems (items with larger indentation are considered part of the item, | ||
| 2904 | so this really moves item trees." | ||
| 2905 | (interactive "p") | ||
| 2906 | (let (beg end ind ind1 (pos (point)) txt) | ||
| 2907 | (org-beginning-of-item) | ||
| 2908 | (setq beg (point)) | ||
| 2909 | (setq ind (org-get-indentation)) | ||
| 2910 | (org-end-of-item) | ||
| 2911 | (setq end (point)) | ||
| 2912 | (goto-char beg) | ||
| 2913 | (catch 'exit | ||
| 2914 | (while t | ||
| 2915 | (beginning-of-line 0) | ||
| 2916 | (if (looking-at "[ \t]*$") | ||
| 2917 | nil | ||
| 2918 | (if (<= (setq ind1 (org-get-indentation)) ind) | ||
| 2919 | (throw 'exit t))))) | ||
| 2920 | (condition-case nil | ||
| 2921 | (org-beginning-of-item) | ||
| 2922 | (error (goto-char beg) | ||
| 2923 | (error "Cannot move this item further up"))) | ||
| 2924 | (setq ind1 (org-get-indentation)) | ||
| 2925 | (if (and (org-at-item-p) (= ind ind1)) | ||
| 2926 | (progn | ||
| 2927 | (setq txt (buffer-substring beg end)) | ||
| 2928 | (save-excursion | ||
| 2929 | (delete-region beg end)) | ||
| 2930 | (setq pos (point)) | ||
| 2931 | (insert txt) | ||
| 2932 | (goto-char pos) | ||
| 2933 | (org-maybe-renumber-ordered-list)) | ||
| 2934 | (goto-char pos) | ||
| 2935 | (error "Cannot move this item further up")))) | ||
| 2936 | |||
| 2937 | (defun org-maybe-renumber-ordered-list () | ||
| 2938 | "Renumber the ordered list at point if setup allows it. | ||
| 2939 | This tests the user option `org-auto-renumber-ordered-lists' before | ||
| 2940 | doing the renumbering." | ||
| 2941 | (and org-auto-renumber-ordered-lists | ||
| 2942 | (org-at-item-p) | ||
| 2943 | (match-beginning 3) | ||
| 2944 | (org-renumber-ordered-list 1))) | ||
| 2945 | |||
| 2946 | (defun org-get-string-indentation (s) | ||
| 2947 | "What indentation has S due to SPACE and TAB at the beginning of the string?" | ||
| 2948 | (let ((n -1) (i 0) (w tab-width) c) | ||
| 2949 | (catch 'exit | ||
| 2950 | (while (< (setq n (1+ n)) (length s)) | ||
| 2951 | (setq c (aref s n)) | ||
| 2952 | (cond ((= c ?\ ) (setq i (1+ i))) | ||
| 2953 | ((= c ?\t) (setq i (* (/ (+ w i) w) w))) | ||
| 2954 | (t (throw 'exit t))))) | ||
| 2955 | i)) | ||
| 2956 | |||
| 2957 | (defun org-renumber-ordered-list (arg) | ||
| 2958 | "Renumber an ordered plain list. | ||
| 2959 | Cursor neext to be in the first line of an item, the line that starts | ||
| 2960 | with something like \"1.\" or \"2)\"." | ||
| 2961 | (interactive "p") | ||
| 2962 | (unless (and (org-at-item-p) | ||
| 2963 | (match-beginning 3)) | ||
| 2964 | (error "This is not an ordered list")) | ||
| 2965 | (let ((line (org-current-line)) | ||
| 2966 | (col (current-column)) | ||
| 2967 | (ind (org-get-string-indentation | ||
| 2968 | (buffer-substring (point-at-bol) (match-beginning 3)))) | ||
| 2969 | (term (substring (match-string 3) -1)) | ||
| 2970 | ind1 (n (1- arg))) | ||
| 2971 | ;; find where this list begins | ||
| 2972 | (catch 'exit | ||
| 2973 | (while t | ||
| 2974 | (catch 'next | ||
| 2975 | (beginning-of-line 0) | ||
| 2976 | (if (looking-at "[ \t]*$") (throw 'next t)) | ||
| 2977 | (skip-chars-forward " \t") (setq ind1 (current-column)) | ||
| 2978 | (if (and (<= ind1 ind) | ||
| 2979 | (not (org-at-item-p))) | ||
| 2980 | (throw 'exit t))))) | ||
| 2981 | ;; Walk forward and replace these numbers | ||
| 2982 | (catch 'exit | ||
| 2983 | (while t | ||
| 2984 | (catch 'next | ||
| 2985 | (beginning-of-line 2) | ||
| 2986 | (if (eobp) (throw 'exit nil)) | ||
| 2987 | (if (looking-at "[ \t]*$") (throw 'next nil)) | ||
| 2988 | (skip-chars-forward " \t") (setq ind1 (current-column)) | ||
| 2989 | (if (> ind1 ind) (throw 'next t)) | ||
| 2990 | (if (< ind1 ind) (throw 'exit t)) | ||
| 2991 | (if (not (org-at-item-p)) (throw 'exit nil)) | ||
| 2992 | (if (not (match-beginning 3)) | ||
| 2993 | (error "unordered bullet in ordered list. Press \\[undo] to recover")) | ||
| 2994 | (delete-region (match-beginning 3) (1- (match-end 3))) | ||
| 2995 | (goto-char (match-beginning 3)) | ||
| 2996 | (insert (format "%d" (setq n (1+ n))))))) | ||
| 2997 | (goto-line line) | ||
| 2998 | (move-to-column col))) | ||
| 2999 | |||
| 3000 | (defvar org-last-indent-begin-marker (make-marker)) | ||
| 3001 | (defvar org-last-indent-end-marker (make-marker)) | ||
| 3002 | |||
| 3003 | |||
| 3004 | (defun org-outdent-item (arg) | ||
| 3005 | "Outdent a local list item." | ||
| 3006 | (interactive "p") | ||
| 3007 | (org-indent-item (- arg))) | ||
| 3008 | |||
| 3009 | (defun org-indent-item (arg) | ||
| 3010 | "Indent a local list item." | ||
| 3011 | (interactive "p") | ||
| 3012 | (unless (org-at-item-p) | ||
| 3013 | (error "Not on an item")) | ||
| 3014 | (let (beg end ind ind1) | ||
| 3015 | (if (memq last-command '(org-shiftmetaright org-shiftmetaleft)) | ||
| 3016 | (setq beg org-last-indent-begin-marker | ||
| 3017 | end org-last-indent-end-marker) | ||
| 3018 | (org-beginning-of-item) | ||
| 3019 | (setq beg (move-marker org-last-indent-begin-marker (point))) | ||
| 3020 | (org-end-of-item) | ||
| 3021 | (setq end (move-marker org-last-indent-end-marker (point)))) | ||
| 3022 | (goto-char beg) | ||
| 3023 | (skip-chars-forward " \t") (setq ind (current-column)) | ||
| 3024 | (if (< (+ arg ind) 0) (error "Cannot outdent beyond margin")) | ||
| 3025 | (while (< (point) end) | ||
| 3026 | (beginning-of-line 1) | ||
| 3027 | (skip-chars-forward " \t") (setq ind1 (current-column)) | ||
| 3028 | (delete-region (point-at-bol) (point)) | ||
| 3029 | (indent-to-column (+ ind1 arg)) | ||
| 3030 | (beginning-of-line 2)) | ||
| 3031 | (goto-char beg))) | ||
| 3032 | |||
| 3033 | |||
| 3034 | ;;; Archiving | ||
| 3035 | |||
| 2760 | (defun org-archive-subtree () | 3036 | (defun org-archive-subtree () |
| 2761 | "Move the current subtree to the archive. | 3037 | "Move the current subtree to the archive. |
| 2762 | The archive can be a certain top-level heading in the current file, or in | 3038 | The archive can be a certain top-level heading in the current file, or in |
| @@ -8985,6 +9261,7 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 8985 | (in-local-list nil) | 9261 | (in-local-list nil) |
| 8986 | (local-list-num nil) | 9262 | (local-list-num nil) |
| 8987 | (local-list-indent nil) | 9263 | (local-list-indent nil) |
| 9264 | (llt org-plain-list-ordered-item-terminator) | ||
| 8988 | (email user-mail-address) | 9265 | (email user-mail-address) |
| 8989 | (language org-export-default-language) | 9266 | (language org-export-default-language) |
| 8990 | (text nil) | 9267 | (text nil) |
| @@ -9039,7 +9316,7 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9039 | " | 9316 | " |
| 9040 | language (org-html-expand title) (or charset "iso-8859-1") | 9317 | language (org-html-expand title) (or charset "iso-8859-1") |
| 9041 | date time author style)) | 9318 | date time author style)) |
| 9042 | (if title (insert (concat "<H1 align=\"center\">" | 9319 | (if title (insert (concat "<H1 class=\"title\">" |
| 9043 | (org-html-expand title) "</H1>\n"))) | 9320 | (org-html-expand title) "</H1>\n"))) |
| 9044 | (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) | 9321 | (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) |
| 9045 | (if email (insert (concat "<a href=\"mailto:" email "\"><" | 9322 | (if email (insert (concat "<a href=\"mailto:" email "\"><" |
| @@ -9089,7 +9366,7 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9089 | (insert | 9366 | (insert |
| 9090 | (format | 9367 | (format |
| 9091 | (if todo | 9368 | (if todo |
| 9092 | "<li><a href=\"#sec-%d\"><span style='color:red'>%s</span></a>\n" | 9369 | "<li><a href=\"#sec-%d\"><span class=\"todo\">%s</span></a>\n" |
| 9093 | "<li><a href=\"#sec-%d\">%s</a>\n") | 9370 | "<li><a href=\"#sec-%d\">%s</a>\n") |
| 9094 | head-count txt)) | 9371 | head-count txt)) |
| 9095 | (setq org-last-level level)) | 9372 | (setq org-last-level level)) |
| @@ -9122,7 +9399,7 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9122 | (insert "<pre>\n")) | 9399 | (insert "<pre>\n")) |
| 9123 | (insert (org-html-protect (match-string 1 line)) "\n") | 9400 | (insert (org-html-protect (match-string 1 line)) "\n") |
| 9124 | (when (and lines | 9401 | (when (and lines |
| 9125 | (not (string-match "^[ \t]+\\(:.*\\)" | 9402 | (not (string-match "^[ \t]*\\(:.*\\)" |
| 9126 | (car lines)))) | 9403 | (car lines)))) |
| 9127 | (setq infixed nil) | 9404 | (setq infixed nil) |
| 9128 | (insert "</pre>\n")) | 9405 | (insert "</pre>\n")) |
| @@ -9180,9 +9457,9 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9180 | (match-beginning 2)) | 9457 | (match-beginning 2)) |
| 9181 | (if (equal (match-string 2 line) org-done-string) | 9458 | (if (equal (match-string 2 line) org-done-string) |
| 9182 | (setq line (replace-match | 9459 | (setq line (replace-match |
| 9183 | "<span style='color:green'>\\2</span>" | 9460 | "<span class=\"done\">\\2</span>" |
| 9184 | nil nil line 2)) | 9461 | nil nil line 2)) |
| 9185 | (setq line (replace-match "<span style='color:red'>\\2</span>" | 9462 | (setq line (replace-match "<span class=\"todo\">\\2</span>" |
| 9186 | nil nil line 2)))) | 9463 | nil nil line 2)))) |
| 9187 | 9464 | ||
| 9188 | ;; DEADLINES | 9465 | ;; DEADLINES |
| @@ -9192,9 +9469,8 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9192 | (string-match "<a href" | 9469 | (string-match "<a href" |
| 9193 | (substring line 0 (match-beginning 0)))) | 9470 | (substring line 0 (match-beginning 0)))) |
| 9194 | nil ; Don't do the replacement - it is inside a link | 9471 | nil ; Don't do the replacement - it is inside a link |
| 9195 | (setq line (replace-match "<span style='color:red'>\\&</span>" | 9472 | (setq line (replace-match "<span class=\"deadline\">\\&</span>" |
| 9196 | nil nil line 1))))) | 9473 | nil nil line 1))))) |
| 9197 | |||
| 9198 | (cond | 9474 | (cond |
| 9199 | ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) | 9475 | ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) |
| 9200 | ;; This is a headline | 9476 | ;; This is a headline |
| @@ -9233,13 +9509,21 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9233 | (insert (org-format-table-html table-buffer table-orig-buffer)))) | 9509 | (insert (org-format-table-html table-buffer table-orig-buffer)))) |
| 9234 | (t | 9510 | (t |
| 9235 | ;; Normal lines | 9511 | ;; Normal lines |
| 9236 | (when (and (> org-export-local-list-max-depth 0) | 9512 | (when (and (> org-export-plain-list-max-depth 0) |
| 9237 | (string-match | 9513 | (string-match |
| 9238 | "^\\( *\\)\\(\\([-+*]\\)\\|\\([0-9]+\\.\\)\\)? *\\([^ \t\n\r]\\)" | 9514 | (cond |
| 9515 | ((eq llt t) "^\\([ \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+[.)]\\)\\)?\\( +[^ \t\n\r]\\|[ \t]*$\\)") | ||
| 9516 | ((= llt ?.) "^\\([ \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+\\.\\)\\)?\\( +[^ \t\n\r]\\|[ \t]*$\\)") | ||
| 9517 | ((= llt ?\)) "^\\( \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+)\\)\\)?\\( +[^ \t\n\r]\\|[ \t]*$\\)") | ||
| 9518 | (t (error "Invalid value of `org-plain-list-ordered-item-terminator'"))) | ||
| 9239 | line)) | 9519 | line)) |
| 9240 | (setq ind (- (match-end 1) (match-beginning 1)) | 9520 | (setq ind (org-get-string-indentation line) |
| 9241 | start-is-num (match-beginning 4) | 9521 | start-is-num (match-beginning 4) |
| 9242 | starter (if (match-beginning 2) (match-string 2 line))) | 9522 | starter (if (match-beginning 2) (match-string 2 line)) |
| 9523 | line (substring line (match-beginning 5))) | ||
| 9524 | (unless (string-match "[^ \t]" line) | ||
| 9525 | ;; empty line. Pretend indentation is large. | ||
| 9526 | (setq ind (1+ (or (car local-list-indent) 1)))) | ||
| 9243 | (while (and in-local-list | 9527 | (while (and in-local-list |
| 9244 | (or (and (= ind (car local-list-indent)) | 9528 | (or (and (= ind (car local-list-indent)) |
| 9245 | (not starter)) | 9529 | (not starter)) |
| @@ -9247,13 +9531,12 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9247 | (insert (if (car local-list-num) "</ol>\n" "</ul>")) | 9531 | (insert (if (car local-list-num) "</ol>\n" "</ul>")) |
| 9248 | (pop local-list-num) (pop local-list-indent) | 9532 | (pop local-list-num) (pop local-list-indent) |
| 9249 | (setq in-local-list local-list-indent)) | 9533 | (setq in-local-list local-list-indent)) |
| 9250 | |||
| 9251 | (cond | 9534 | (cond |
| 9252 | ((and starter | 9535 | ((and starter |
| 9253 | (or (not in-local-list) | 9536 | (or (not in-local-list) |
| 9254 | (> ind (car local-list-indent))) | 9537 | (> ind (car local-list-indent))) |
| 9255 | (< (length local-list-indent) | 9538 | (< (length local-list-indent) |
| 9256 | org-export-local-list-max-depth)) | 9539 | org-export-plain-list-max-depth)) |
| 9257 | ;; Start new (level of ) list | 9540 | ;; Start new (level of ) list |
| 9258 | (insert (if start-is-num "<ol>\n<li>\n" "<ul>\n<li>\n")) | 9541 | (insert (if start-is-num "<ol>\n<li>\n" "<ul>\n<li>\n")) |
| 9259 | (push start-is-num local-list-num) | 9542 | (push start-is-num local-list-num) |
| @@ -9261,8 +9544,7 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9261 | (setq in-local-list t)) | 9544 | (setq in-local-list t)) |
| 9262 | (starter | 9545 | (starter |
| 9263 | ;; continue current list | 9546 | ;; continue current list |
| 9264 | (insert "<li>\n"))) | 9547 | (insert "<li>\n")))) |
| 9265 | (setq line (substring line (match-beginning 5)))) | ||
| 9266 | ;; Empty lines start a new paragraph. If hand-formatted lists | 9548 | ;; Empty lines start a new paragraph. If hand-formatted lists |
| 9267 | ;; are not fully interpreted, lines starting with "-", "+", "*" | 9549 | ;; are not fully interpreted, lines starting with "-", "+", "*" |
| 9268 | ;; also start a new paragraph. | 9550 | ;; also start a new paragraph. |
| @@ -9327,7 +9609,7 @@ headlines. The default is 3. Lower levels will become bulleted lists." | |||
| 9327 | (mapconcat (lambda (x) | 9609 | (mapconcat (lambda (x) |
| 9328 | (if head | 9610 | (if head |
| 9329 | (concat "<th>" x "</th>") | 9611 | (concat "<th>" x "</th>") |
| 9330 | (concat "<td valign=\"top\">" x "</td>"))) | 9612 | (concat "<td>" x "</td>"))) |
| 9331 | fields "") | 9613 | fields "") |
| 9332 | "</tr>\n")))) | 9614 | "</tr>\n")))) |
| 9333 | (setq html (concat html "</table>\n")) | 9615 | (setq html (concat html "</table>\n")) |
| @@ -9366,10 +9648,8 @@ But it has the disadvantage, that no cell- or row-spanning is allowed." | |||
| 9366 | (lambda (x) | 9648 | (lambda (x) |
| 9367 | (if (equal x "") (setq x empty)) | 9649 | (if (equal x "") (setq x empty)) |
| 9368 | (if head | 9650 | (if head |
| 9369 | (concat "<th valign=\"top\">" x | 9651 | (concat "<th>" x "</th>\n") |
| 9370 | "</th>\n") | 9652 | (concat "<td>" x "</td>\n"))) |
| 9371 | (concat "<td valign=\"top\">" x | ||
| 9372 | "</td>\n"))) | ||
| 9373 | field-buffer "\n") | 9653 | field-buffer "\n") |
| 9374 | "</tr>\n")) | 9654 | "</tr>\n")) |
| 9375 | (setq head nil) | 9655 | (setq head nil) |
| @@ -10016,6 +10296,7 @@ See the individual commands for more information." | |||
| 10016 | (cond | 10296 | (cond |
| 10017 | ((org-at-table-p) (org-table-delete-column)) | 10297 | ((org-at-table-p) (org-table-delete-column)) |
| 10018 | ((org-on-heading-p) (org-promote-subtree)) | 10298 | ((org-on-heading-p) (org-promote-subtree)) |
| 10299 | ((org-at-item-p) (call-interactively 'org-outdent-item)) | ||
| 10019 | (t (org-shiftcursor-error)))) | 10300 | (t (org-shiftcursor-error)))) |
| 10020 | 10301 | ||
| 10021 | (defun org-shiftmetaright () | 10302 | (defun org-shiftmetaright () |
| @@ -10026,30 +10307,36 @@ See the individual commands for more information." | |||
| 10026 | (cond | 10307 | (cond |
| 10027 | ((org-at-table-p) (org-table-insert-column)) | 10308 | ((org-at-table-p) (org-table-insert-column)) |
| 10028 | ((org-on-heading-p) (org-demote-subtree)) | 10309 | ((org-on-heading-p) (org-demote-subtree)) |
| 10310 | ((org-at-item-p) (call-interactively 'org-indent-item)) | ||
| 10029 | (t (org-shiftcursor-error)))) | 10311 | (t (org-shiftcursor-error)))) |
| 10030 | 10312 | ||
| 10031 | (defun org-shiftmetaup (&optional arg) | 10313 | (defun org-shiftmetaup (&optional arg) |
| 10032 | "Move subtree up or kill table row. | 10314 | "Move subtree up or kill table row. |
| 10033 | Calls `org-move-subtree-up' or `org-table-kill-row', depending on context. | 10315 | Calls `org-move-subtree-up' or `org-table-kill-row' or |
| 10034 | See the individual commands for more information." | 10316 | `org-move-item-up' depending on context. See the individual commands |
| 10317 | for more information." | ||
| 10035 | (interactive "P") | 10318 | (interactive "P") |
| 10036 | (cond | 10319 | (cond |
| 10037 | ((org-at-table-p) (org-table-kill-row)) | 10320 | ((org-at-table-p) (org-table-kill-row)) |
| 10038 | ((org-on-heading-p) (org-move-subtree-up arg)) | 10321 | ((org-on-heading-p) (org-move-subtree-up arg)) |
| 10322 | ((org-at-item-p) (org-move-item-up arg)) | ||
| 10039 | (t (org-shiftcursor-error)))) | 10323 | (t (org-shiftcursor-error)))) |
| 10040 | (defun org-shiftmetadown (&optional arg) | 10324 | (defun org-shiftmetadown (&optional arg) |
| 10041 | "Move subtree down or insert table row. | 10325 | "Move subtree down or insert table row. |
| 10042 | Calls `org-move-subtree-down' or `org-table-insert-row', depending on context. | 10326 | Calls `org-move-subtree-down' or `org-table-insert-row' or |
| 10043 | See the individual commands for more information." | 10327 | `org-move-item-down', depending on context. See the individual |
| 10328 | commands for more information." | ||
| 10044 | (interactive "P") | 10329 | (interactive "P") |
| 10045 | (cond | 10330 | (cond |
| 10046 | ((org-at-table-p) (org-table-insert-row arg)) | 10331 | ((org-at-table-p) (org-table-insert-row arg)) |
| 10047 | ((org-on-heading-p) (org-move-subtree-down arg)) | 10332 | ((org-on-heading-p) (org-move-subtree-down arg)) |
| 10333 | ((org-at-item-p) (org-move-item-down arg)) | ||
| 10048 | (t (org-shiftcursor-error)))) | 10334 | (t (org-shiftcursor-error)))) |
| 10049 | 10335 | ||
| 10050 | (defun org-metaleft (&optional arg) | 10336 | (defun org-metaleft (&optional arg) |
| 10051 | "Promote heading or move table column to left. | 10337 | "Promote heading or move table column to left. |
| 10052 | Calls `org-do-promote' or `org-table-move-column', depending on context. | 10338 | Calls `org-do-promote' or `org-table-move-column', depending on context. |
| 10339 | With no specific context, calls the Emacs default `backward-word'. | ||
| 10053 | See the individual commands for more information." | 10340 | See the individual commands for more information." |
| 10054 | (interactive "P") | 10341 | (interactive "P") |
| 10055 | (cond | 10342 | (cond |
| @@ -10060,6 +10347,7 @@ See the individual commands for more information." | |||
| 10060 | (defun org-metaright (&optional arg) | 10347 | (defun org-metaright (&optional arg) |
| 10061 | "Demote subtree or move table column to right. | 10348 | "Demote subtree or move table column to right. |
| 10062 | Calls `org-do-demote' or `org-table-move-column', depending on context. | 10349 | Calls `org-do-demote' or `org-table-move-column', depending on context. |
| 10350 | With no specific context, calls the Emacs default `forward-word'. | ||
| 10063 | See the individual commands for more information." | 10351 | See the individual commands for more information." |
| 10064 | (interactive "P") | 10352 | (interactive "P") |
| 10065 | (cond | 10353 | (cond |
| @@ -10069,22 +10357,26 @@ See the individual commands for more information." | |||
| 10069 | 10357 | ||
| 10070 | (defun org-metaup (&optional arg) | 10358 | (defun org-metaup (&optional arg) |
| 10071 | "Move subtree up or move table row up. | 10359 | "Move subtree up or move table row up. |
| 10072 | Calls `org-move-subtree-up' or `org-table-move-row', depending on context. | 10360 | Calls `org-move-subtree-up' or `org-table-move-row' or |
| 10073 | See the individual commands for more information." | 10361 | `org-move-item-up', depending on context. See the individual commands |
| 10362 | for more information." | ||
| 10074 | (interactive "P") | 10363 | (interactive "P") |
| 10075 | (cond | 10364 | (cond |
| 10076 | ((org-at-table-p) (org-table-move-row 'up)) | 10365 | ((org-at-table-p) (org-table-move-row 'up)) |
| 10077 | ((org-on-heading-p) (org-move-subtree-up arg)) | 10366 | ((org-on-heading-p) (org-move-subtree-up arg)) |
| 10367 | ((org-at-item-p) (org-move-item-up arg)) | ||
| 10078 | (t (org-shiftcursor-error)))) | 10368 | (t (org-shiftcursor-error)))) |
| 10079 | 10369 | ||
| 10080 | (defun org-metadown (&optional arg) | 10370 | (defun org-metadown (&optional arg) |
| 10081 | "Move subtree down or move table row down. | 10371 | "Move subtree down or move table row down. |
| 10082 | Calls `org-move-subtree-down' or `org-table-move-row', depending on context. | 10372 | Calls `org-move-subtree-down' or `org-table-move-row' or |
| 10083 | See the individual commands for more information." | 10373 | `org-move-item-down', depending on context. See the individual |
| 10374 | commands for more information." | ||
| 10084 | (interactive "P") | 10375 | (interactive "P") |
| 10085 | (cond | 10376 | (cond |
| 10086 | ((org-at-table-p) (org-table-move-row nil)) | 10377 | ((org-at-table-p) (org-table-move-row nil)) |
| 10087 | ((org-on-heading-p) (org-move-subtree-down arg)) | 10378 | ((org-on-heading-p) (org-move-subtree-down arg)) |
| 10379 | ((org-at-item-p) (org-move-item-down arg)) | ||
| 10088 | (t (org-shiftcursor-error)))) | 10380 | (t (org-shiftcursor-error)))) |
| 10089 | 10381 | ||
| 10090 | (defun org-shiftup (&optional arg) | 10382 | (defun org-shiftup (&optional arg) |
| @@ -10153,6 +10445,8 @@ If the cursor is on a #+TBLFM line, re-apply the formulae to the table." | |||
| 10153 | (org-table-recalculate t) | 10445 | (org-table-recalculate t) |
| 10154 | (org-table-maybe-recalculate-line)) | 10446 | (org-table-maybe-recalculate-line)) |
| 10155 | (org-table-align)) | 10447 | (org-table-align)) |
| 10448 | ((org-at-item-p) | ||
| 10449 | (org-renumber-ordered-list (prefix-numeric-value arg))) | ||
| 10156 | ((save-excursion (beginning-of-line 1) (looking-at "#\\+\\([A-Z]+\\)")) | 10450 | ((save-excursion (beginning-of-line 1) (looking-at "#\\+\\([A-Z]+\\)")) |
| 10157 | (cond | 10451 | (cond |
| 10158 | ((equal (match-string 1) "TBLFM") | 10452 | ((equal (match-string 1) "TBLFM") |
| @@ -10165,11 +10459,13 @@ If the cursor is on a #+TBLFM line, re-apply the formulae to the table." | |||
| 10165 | (org-mode-restart)))) | 10459 | (org-mode-restart)))) |
| 10166 | ((org-region-active-p) | 10460 | ((org-region-active-p) |
| 10167 | (org-table-convert-region (region-beginning) (region-end) arg)) | 10461 | (org-table-convert-region (region-beginning) (region-end) arg)) |
| 10168 | ((and (region-beginning) (region-end)) | 10462 | ((condition-case nil |
| 10463 | (and (region-beginning) (region-end)) | ||
| 10464 | (error nil)) | ||
| 10169 | (if (y-or-n-p "Convert inactive region to table? ") | 10465 | (if (y-or-n-p "Convert inactive region to table? ") |
| 10170 | (org-table-convert-region (region-beginning) (region-end) arg) | 10466 | (org-table-convert-region (region-beginning) (region-end) arg) |
| 10171 | (error "Abort"))) | 10467 | (error "Abort"))) |
| 10172 | (t (error "No table at point, and no region to make one"))))) | 10468 | (t (error "C-c C-c can do nothing useful at this location."))))) |
| 10173 | 10469 | ||
| 10174 | (defun org-mode-restart () | 10470 | (defun org-mode-restart () |
| 10175 | "Restart Org-mode, to scan again for special lines. | 10471 | "Restart Org-mode, to scan again for special lines. |
| @@ -10436,7 +10732,7 @@ With optional NODE, go directly to that node." | |||
| 10436 | (set (make-local-variable 'paragraph-separate) "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]") | 10732 | (set (make-local-variable 'paragraph-separate) "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]") |
| 10437 | ;; The paragraph starter includes hand-formatted lists. | 10733 | ;; The paragraph starter includes hand-formatted lists. |
| 10438 | (set (make-local-variable 'paragraph-start) | 10734 | (set (make-local-variable 'paragraph-start) |
| 10439 | "\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*]\\|[0-9]+\\.[ \t]+\\)\\|[ \t]*[:|]") | 10735 | "\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*]\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]") |
| 10440 | ;; Inhibit auto-fill for headers, tables and fixed-width lines. | 10736 | ;; Inhibit auto-fill for headers, tables and fixed-width lines. |
| 10441 | ;; But only if the user has not turned off tables or fixed-width regions | 10737 | ;; But only if the user has not turned off tables or fixed-width regions |
| 10442 | (set (make-local-variable 'auto-fill-inhibit-regexp) | 10738 | (set (make-local-variable 'auto-fill-inhibit-regexp) |
| @@ -10472,7 +10768,7 @@ With optional NODE, go directly to that node." | |||
| 10472 | "Return a fill prefix for org-mode files. | 10768 | "Return a fill prefix for org-mode files. |
| 10473 | In particular, this makes sure hanging paragraphs for hand-formatted lists | 10769 | In particular, this makes sure hanging paragraphs for hand-formatted lists |
| 10474 | work correctly." | 10770 | work correctly." |
| 10475 | (if (looking-at " *\\([-*+] \\|[0-9]+\\. \\)?") | 10771 | (if (looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?") |
| 10476 | (make-string (- (match-end 0) (match-beginning 0)) ?\ ))) | 10772 | (make-string (- (match-end 0) (match-beginning 0)) ?\ ))) |
| 10477 | 10773 | ||
| 10478 | ;; Functions needed for Emacs/XEmacs region compatibility | 10774 | ;; Functions needed for Emacs/XEmacs region compatibility |
| @@ -10707,3 +11003,4 @@ Show the heading too, if it is currently invisible." | |||
| 10707 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd | 11003 | ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd |
| 10708 | ;;; org.el ends here | 11004 | ;;; org.el ends here |
| 10709 | 11005 | ||
| 11006 | |||
diff --git a/lisp/view.el b/lisp/view.el index 0d6b941a0ca..4cbc0fe9e4c 100644 --- a/lisp/view.el +++ b/lisp/view.el | |||
| @@ -93,6 +93,12 @@ considered for restoring." | |||
| 93 | :type 'boolean | 93 | :type 'boolean |
| 94 | :group 'view) | 94 | :group 'view) |
| 95 | 95 | ||
| 96 | (defcustom view-inhibit-help-message nil | ||
| 97 | "*Non-nil inhibits the help message showed upon entering View mode." | ||
| 98 | :type 'boolean | ||
| 99 | :group 'view | ||
| 100 | :version "22.1") | ||
| 101 | |||
| 96 | ;;;###autoload | 102 | ;;;###autoload |
| 97 | (defvar view-mode nil | 103 | (defvar view-mode nil |
| 98 | "Non-nil if View mode is enabled. | 104 | "Non-nil if View mode is enabled. |
| @@ -516,9 +522,10 @@ This function runs the normal hook `view-mode-hook'." | |||
| 516 | (unless view-mode ; Do nothing if already in view mode. | 522 | (unless view-mode ; Do nothing if already in view mode. |
| 517 | (view-mode-enable) | 523 | (view-mode-enable) |
| 518 | (force-mode-line-update) | 524 | (force-mode-line-update) |
| 519 | (message "%s" | 525 | (unless view-inhibit-help-message |
| 520 | (substitute-command-keys "\ | 526 | (message "%s" |
| 521 | View mode: type \\[help-command] for help, \\[describe-mode] for commands, \\[View-quit] to quit.")))) | 527 | (substitute-command-keys "\ |
| 528 | View mode: type \\[help-command] for help, \\[describe-mode] for commands, \\[View-quit] to quit."))))) | ||
| 522 | 529 | ||
| 523 | (defun view-mode-exit (&optional return-to-alist exit-action all-win) | 530 | (defun view-mode-exit (&optional return-to-alist exit-action all-win) |
| 524 | "Exit View mode in various ways, depending on optional arguments. | 531 | "Exit View mode in various ways, depending on optional arguments. |
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index c3eb9519ab1..1268994ba89 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el | |||
| @@ -151,10 +151,12 @@ | |||
| 151 | 151 | ||
| 152 | (set-terminal-parameter nil 'xterm-mouse-x x) | 152 | (set-terminal-parameter nil 'xterm-mouse-x x) |
| 153 | (set-terminal-parameter nil 'xterm-mouse-y y) | 153 | (set-terminal-parameter nil 'xterm-mouse-y y) |
| 154 | (if w | 154 | (setq |
| 155 | (list mouse (posn-at-x-y (- x left) (- y top) w t)) | 155 | last-input-event |
| 156 | (list mouse | 156 | (if w |
| 157 | (append (list nil 'menu-bar) (nthcdr 2 (posn-at-x-y x y w t))))))) | 157 | (list mouse (posn-at-x-y (- x left) (- y top) w t)) |
| 158 | (list mouse | ||
| 159 | (append (list nil 'menu-bar) (nthcdr 2 (posn-at-x-y x y w t)))))))) | ||
| 158 | 160 | ||
| 159 | ;;;###autoload | 161 | ;;;###autoload |
| 160 | (define-minor-mode xterm-mouse-mode | 162 | (define-minor-mode xterm-mouse-mode |
diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 12fb6e42460..64c676d759f 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2005-11-27 Richard M. Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * windows.texi (Resizing Windows): Add adjust-window-trailing-edge. | ||
| 4 | |||
| 1 | 2005-11-21 Juri Linkov <juri@jurta.org> | 5 | 2005-11-21 Juri Linkov <juri@jurta.org> |
| 2 | 6 | ||
| 3 | * customize.texi (Common Keywords): Update links types | 7 | * customize.texi (Common Keywords): Update links types |
diff --git a/lispref/windows.texi b/lispref/windows.texi index 56ec80b9a24..efb7cf32326 100644 --- a/lispref/windows.texi +++ b/lispref/windows.texi | |||
| @@ -1216,6 +1216,9 @@ forms. But that value is hard to find. | |||
| 1216 | @defun set-window-point window position | 1216 | @defun set-window-point window position |
| 1217 | This function positions point in @var{window} at position | 1217 | This function positions point in @var{window} at position |
| 1218 | @var{position} in @var{window}'s buffer. It returns @var{position}. | 1218 | @var{position} in @var{window}'s buffer. It returns @var{position}. |
| 1219 | |||
| 1220 | If @var{window} is selected, and its buffer is current, | ||
| 1221 | this simply does @code{goto-char}. | ||
| 1219 | @end defun | 1222 | @end defun |
| 1220 | 1223 | ||
| 1221 | @node Window Start | 1224 | @node Window Start |
| @@ -1702,7 +1705,7 @@ scrolling value explicitly. The value you specify serves as a lower | |||
| 1702 | bound for automatic scrolling, i.e. automatic scrolling will not | 1705 | bound for automatic scrolling, i.e. automatic scrolling will not |
| 1703 | scroll a window to a column less than the specified one. | 1706 | scroll a window to a column less than the specified one. |
| 1704 | 1707 | ||
| 1705 | @deffn Command scroll-left &optional count | 1708 | @deffn Command scroll-left &optional count set-minimum |
| 1706 | This function scrolls the selected window @var{count} columns to the | 1709 | This function scrolls the selected window @var{count} columns to the |
| 1707 | left (or to the right if @var{count} is negative). The default | 1710 | left (or to the right if @var{count} is negative). The default |
| 1708 | for @var{count} is the window width, minus 2. | 1711 | for @var{count} is the window width, minus 2. |
| @@ -1710,20 +1713,23 @@ for @var{count} is the window width, minus 2. | |||
| 1710 | The return value is the total amount of leftward horizontal scrolling in | 1713 | The return value is the total amount of leftward horizontal scrolling in |
| 1711 | effect after the change---just like the value returned by | 1714 | effect after the change---just like the value returned by |
| 1712 | @code{window-hscroll} (below). | 1715 | @code{window-hscroll} (below). |
| 1713 | @end deffn | ||
| 1714 | |||
| 1715 | @deffn Command scroll-right &optional count | ||
| 1716 | This function scrolls the selected window @var{count} columns to the | ||
| 1717 | right (or to the left if @var{count} is negative). The default | ||
| 1718 | for @var{count} is the window width, minus 2. | ||
| 1719 | |||
| 1720 | The return value is the total amount of leftward horizontal scrolling in | ||
| 1721 | effect after the change---just like the value returned by | ||
| 1722 | @code{window-hscroll} (below). | ||
| 1723 | 1716 | ||
| 1724 | Once you scroll a window as far right as it can go, back to its normal | 1717 | Once you scroll a window as far right as it can go, back to its normal |
| 1725 | position where the total leftward scrolling is zero, attempts to scroll | 1718 | position where the total leftward scrolling is zero, attempts to scroll |
| 1726 | any farther right have no effect. | 1719 | any farther right have no effect. |
| 1720 | |||
| 1721 | If @var{set-minimum} is non-@code{nil}, the new scroll amount becomes | ||
| 1722 | the lower bound for automatic scrolling; that is, automatic scrolling | ||
| 1723 | will not scroll a window to a column less than the value returned by | ||
| 1724 | this function. Interactive calls pass non-@code{nil} for | ||
| 1725 | @var{set-minimum}. | ||
| 1726 | @end deffn | ||
| 1727 | |||
| 1728 | @deffn Command scroll-right &optional count set-minimum | ||
| 1729 | This function scrolls the selected window @var{count} columns to the | ||
| 1730 | right (or to the left if @var{count} is negative). The default | ||
| 1731 | for @var{count} is the window width, minus 2. Aside from the direction | ||
| 1732 | of scrolling, this works just like @code{scroll-left}. | ||
| 1727 | @end deffn | 1733 | @end deffn |
| 1728 | 1734 | ||
| 1729 | @defun window-hscroll &optional window | 1735 | @defun window-hscroll &optional window |
| @@ -2032,6 +2038,14 @@ It could be defined as follows: | |||
| 2032 | @end example | 2038 | @end example |
| 2033 | @end deffn | 2039 | @end deffn |
| 2034 | 2040 | ||
| 2041 | @defun adjust-window-trailing-edge window delta horizontal | ||
| 2042 | This function makes the selected window @var{delta} lines taller or | ||
| 2043 | @var{delta} columns wider, by moving the bottom or right edge. This | ||
| 2044 | function does not delete other windows; if it cannot make the | ||
| 2045 | requested size adjustment, it signals an error. On success, this | ||
| 2046 | function returns @code{nil}. | ||
| 2047 | @end defun | ||
| 2048 | |||
| 2035 | @defun fit-window-to-buffer &optional window max-height min-height | 2049 | @defun fit-window-to-buffer &optional window max-height min-height |
| 2036 | This function makes @var{window} the right height to display its | 2050 | This function makes @var{window} the right height to display its |
| 2037 | contents exactly. If @var{window} is omitted or @code{nil}, it uses | 2051 | contents exactly. If @var{window} is omitted or @code{nil}, it uses |
| @@ -316,10 +316,10 @@ for subdir in lisp site-lisp lispref lispintro \ | |||
| 316 | nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ | 316 | nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ |
| 317 | etc etc/e \ | 317 | etc etc/e \ |
| 318 | etc/images etc/images/ezimage etc/images/gnus etc/images/gud \ | 318 | etc/images etc/images/ezimage etc/images/gnus etc/images/gud \ |
| 319 | etc/images/low-color etc/images/mail etc/images/smilies \ | 319 | etc/images/icons etc/images/low-color etc/images/mail \ |
| 320 | etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \ | 320 | etc/images/smilies etc/tree-widget etc/tree-widget/default \ |
| 321 | info man m4 msdos vms mac mac/inc mac/inc/sys \ | 321 | etc/tree-widget/folder info man m4 msdos vms mac mac/inc \ |
| 322 | mac/src mac/Emacs.app mac/Emacs.app/Contents \ | 322 | mac/inc/sys mac/src mac/Emacs.app mac/Emacs.app/Contents \ |
| 323 | mac/Emacs.app/Contents/MacOS mac/Emacs.app/Contents/Resources \ | 323 | mac/Emacs.app/Contents/MacOS mac/Emacs.app/Contents/Resources \ |
| 324 | mac/Emacs.app/Contents/Resources/English.lproj | 324 | mac/Emacs.app/Contents/Resources/English.lproj |
| 325 | do | 325 | do |
| @@ -602,7 +602,7 @@ echo "Making links to \`etc/images'" | |||
| 602 | fi | 602 | fi |
| 603 | done) | 603 | done) |
| 604 | 604 | ||
| 605 | for dir in etc/images/ezimage etc/images/gnus etc/images/gud \ | 605 | for dir in etc/images/ezimage etc/images/gnus etc/images/gud etc/images/icons \ |
| 606 | etc/images/low-color etc/images/mail etc/images/smilies \ | 606 | etc/images/low-color etc/images/mail etc/images/smilies \ |
| 607 | etc/tree-widget/default etc/tree-widget/folder ; do | 607 | etc/tree-widget/default etc/tree-widget/folder ; do |
| 608 | echo "Making links to \`${dir}'" | 608 | echo "Making links to \`${dir}'" |
diff --git a/man/ChangeLog b/man/ChangeLog index 959fa4fcc41..9916392b5b7 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,34 @@ | |||
| 1 | 2005-12-01 Nick Roberts <nickrob@snap.net.nz> | ||
| 2 | |||
| 3 | * building.texi (GDB User Interface Layout): Describe how to | ||
| 4 | kill associated buffers. | ||
| 5 | (Breakpoints Buffer): Use D instead of d for gdb-delete-breakpoint. | ||
| 6 | (Watch Expressions): Be more precise. | ||
| 7 | (Other GDB User Interface Buffers): Describe how to change a | ||
| 8 | register value. | ||
| 9 | |||
| 10 | 2005-11-30 Carsten Dominik <dominik@science.uva.nl> | ||
| 11 | |||
| 12 | * org.texi (Plain Lists): Typos fixed. | ||
| 13 | |||
| 14 | 2005-11-28 Jay Belanger <belanger@truman.edu> | ||
| 15 | |||
| 16 | * calc.texi: Change references of `M-#' to `C-x *' prefix. | ||
| 17 | |||
| 18 | 2005-11-24 Carsten Dominik <dominik@science.uva.nl> | ||
| 19 | |||
| 20 | * org.texi: (Structure editing): New item moving commands added. | ||
| 21 | (Plain Lists): New section. | ||
| 22 | |||
| 23 | 2005-11-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 24 | |||
| 25 | * macos.texi (Mac Input): Remove description of | ||
| 26 | mac-command-key-is-meta. Add descriptions of | ||
| 27 | mac-control-modifier, mac-command-modifier, and | ||
| 28 | mac-option-modifier. | ||
| 29 | (Mac International): Fix description of conversion of clipboard data. | ||
| 30 | (Mac Font Specs): Add example of font customization by face attributes. | ||
| 31 | |||
| 1 | 2005-11-22 Nick Roberts <nickrob@snap.net.nz> | 32 | 2005-11-22 Nick Roberts <nickrob@snap.net.nz> |
| 2 | 33 | ||
| 3 | * building.texi (Watch Expressions): Expand description. | 34 | * building.texi (Watch Expressions): Expand description. |
diff --git a/man/building.texi b/man/building.texi index 5b63467de15..82291510f08 100644 --- a/man/building.texi +++ b/man/building.texi | |||
| @@ -835,6 +835,8 @@ respectively. If the menu-bar is unavailable, type @code{M-x | |||
| 835 | gdb-display-@var{buffertype}-buffer} or @code{M-x | 835 | gdb-display-@var{buffertype}-buffer} or @code{M-x |
| 836 | gdb-frame-@var{buffertype}-buffer} respectively, where | 836 | gdb-frame-@var{buffertype}-buffer} respectively, where |
| 837 | @var{buffertype} is the relevant buffer type e.g breakpoints. | 837 | @var{buffertype} is the relevant buffer type e.g breakpoints. |
| 838 | Most of these buffers are read-only and be killed by simply | ||
| 839 | pressing @kbd{q} in them. | ||
| 838 | 840 | ||
| 839 | When you finish debugging then kill the GUD buffer with @kbd{C-x k}, | 841 | When you finish debugging then kill the GUD buffer with @kbd{C-x k}, |
| 840 | which will also kill all the buffers associated with the session. | 842 | which will also kill all the buffers associated with the session. |
| @@ -863,8 +865,8 @@ relevant line. This is red when the breakpoint is enabled and grey | |||
| 863 | when it is disabled. Text-only terminals correspondingly display | 865 | when it is disabled. Text-only terminals correspondingly display |
| 864 | a @samp{B} or @samp{b}. | 866 | a @samp{B} or @samp{b}. |
| 865 | 867 | ||
| 866 | @item d | 868 | @item D |
| 867 | @kindex d @r{(GDB breakpoints buffer)} | 869 | @kindex D @r{(GDB breakpoints buffer)} |
| 868 | @findex gdb-delete-breakpoint | 870 | @findex gdb-delete-breakpoint |
| 869 | Delete the breakpoint at the current line (@code{gdb-delete-breakpoint}). | 871 | Delete the breakpoint at the current line (@code{gdb-delete-breakpoint}). |
| 870 | 872 | ||
| @@ -903,8 +905,9 @@ icon in the tool bar (@code{gud-watch}). | |||
| 903 | Each watch expression is displayed in the speedbar. Complex data | 905 | Each watch expression is displayed in the speedbar. Complex data |
| 904 | types, such as arrays, structures and unions are represented in a tree | 906 | types, such as arrays, structures and unions are represented in a tree |
| 905 | format. Leaves and simple data types show the name of the expression | 907 | format. Leaves and simple data types show the name of the expression |
| 906 | and its value, and display the type as a tooltip. Higher levels | 908 | and its value, and display the type as a tooltip. Higher levels show |
| 907 | just show the name and the data type. | 909 | the name, type and address value for pointers and just the name and |
| 910 | type otherwise. | ||
| 908 | 911 | ||
| 909 | To expand or contract a complex data type, click @kbd{Mouse-2} | 912 | To expand or contract a complex data type, click @kbd{Mouse-2} |
| 910 | on the tag to the left of the expression. | 913 | on the tag to the left of the expression. |
| @@ -961,8 +964,9 @@ alternatively click @kbd{Mouse-2} there, to examine their values. | |||
| 961 | @item Registers Buffer | 964 | @item Registers Buffer |
| 962 | @findex toggle-gdb-all-registers | 965 | @findex toggle-gdb-all-registers |
| 963 | The registers buffer displays the values held by the registers | 966 | The registers buffer displays the values held by the registers |
| 964 | (@pxref{Registers,,, gdb, The GNU debugger}). Press @key{SPC} to | 967 | (@pxref{Registers,,, gdb, The GNU debugger}). Press @key{RET} or |
| 965 | toggle the display of floating point registers | 968 | click @kbd{Mouse-2} on a register if you want to change its value. |
| 969 | Press @key{SPC} to toggle the display of floating point registers | ||
| 966 | (@code{toggle-gdb-all-registers}). | 970 | (@code{toggle-gdb-all-registers}). |
| 967 | 971 | ||
| 968 | @item Assembler Buffer | 972 | @item Assembler Buffer |
diff --git a/man/calc.texi b/man/calc.texi index 726a7bc7a0c..5eab5322fca 100644 --- a/man/calc.texi +++ b/man/calc.texi | |||
| @@ -167,7 +167,7 @@ longer Info tutorial.) | |||
| 167 | * Embedded Mode:: Working with formulas embedded in a file. | 167 | * Embedded Mode:: Working with formulas embedded in a file. |
| 168 | * Programming:: Calc as a programmable calculator. | 168 | * Programming:: Calc as a programmable calculator. |
| 169 | 169 | ||
| 170 | * Customizable Variables:: Customizable Variables. | 170 | * Customizing Calc:: Customizing Calc. |
| 171 | * Reporting Bugs:: How to report bugs and make suggestions. | 171 | * Reporting Bugs:: How to report bugs and make suggestions. |
| 172 | 172 | ||
| 173 | * Summary:: Summary of Calc commands and functions. | 173 | * Summary:: Summary of Calc commands and functions. |
| @@ -708,9 +708,9 @@ in the margin with its index entry. | |||
| 708 | @c [fix-ref Help Commands] | 708 | @c [fix-ref Help Commands] |
| 709 | You can access this manual on-line at any time within Calc by | 709 | You can access this manual on-line at any time within Calc by |
| 710 | pressing the @kbd{h i} key sequence. Outside of the Calc window, | 710 | pressing the @kbd{h i} key sequence. Outside of the Calc window, |
| 711 | you can press @kbd{M-# i} to read the manual on-line. Also, you | 711 | you can press @kbd{C-x * i} to read the manual on-line. Also, you |
| 712 | can jump directly to the Tutorial by pressing @kbd{h t} or @kbd{M-# t}, | 712 | can jump directly to the Tutorial by pressing @kbd{h t} or @kbd{C-x * t}, |
| 713 | or to the Summary by pressing @kbd{h s} or @kbd{M-# s}. Within Calc, | 713 | or to the Summary by pressing @kbd{h s} or @kbd{C-x * s}. Within Calc, |
| 714 | you can also go to the part of the manual describing any Calc key, | 714 | you can also go to the part of the manual describing any Calc key, |
| 715 | function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, | 715 | function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, |
| 716 | respectively. @xref{Help Commands}. | 716 | respectively. @xref{Help Commands}. |
| @@ -773,8 +773,8 @@ that you must press @key{RET} to proceed. For example, the @key{RET} | |||
| 773 | is usually omitted in key sequences like @kbd{M-x calc-keypad @key{RET}}. | 773 | is usually omitted in key sequences like @kbd{M-x calc-keypad @key{RET}}. |
| 774 | 774 | ||
| 775 | Commands are generally shown like this: @kbd{p} (@code{calc-precision}) | 775 | Commands are generally shown like this: @kbd{p} (@code{calc-precision}) |
| 776 | or @kbd{M-# k} (@code{calc-keypad}). This means that the command is | 776 | or @kbd{C-x * k} (@code{calc-keypad}). This means that the command is |
| 777 | normally used by pressing the @kbd{p} key or @kbd{M-# k} key sequence, | 777 | normally used by pressing the @kbd{p} key or @kbd{C-x * k} key sequence, |
| 778 | but it also has the full-name equivalent shown, e.g., @kbd{M-x calc-precision}. | 778 | but it also has the full-name equivalent shown, e.g., @kbd{M-x calc-precision}. |
| 779 | 779 | ||
| 780 | Commands that correspond to functions in algebraic notation | 780 | Commands that correspond to functions in algebraic notation |
| @@ -797,7 +797,7 @@ everything you see here will be covered more thoroughly in the | |||
| 797 | Tutorial. | 797 | Tutorial. |
| 798 | 798 | ||
| 799 | To begin, start Emacs if necessary (usually the command @code{emacs} | 799 | To begin, start Emacs if necessary (usually the command @code{emacs} |
| 800 | does this), and type @kbd{M-# c} (or @kbd{@key{ESC} # c}) to start the | 800 | does this), and type @kbd{C-x * c} to start the |
| 801 | Calculator. (You can also use @kbd{M-x calc} if this doesn't work. | 801 | Calculator. (You can also use @kbd{M-x calc} if this doesn't work. |
| 802 | @xref{Starting Calc}, for various ways of starting the Calculator.) | 802 | @xref{Starting Calc}, for various ways of starting the Calculator.) |
| 803 | 803 | ||
| @@ -849,7 +849,7 @@ Type @kbd{' arcsinh($ - $$) @key{RET}} to subtract the second-most-recent | |||
| 849 | result from the most-recent and compute the Inverse Hyperbolic sine. | 849 | result from the most-recent and compute the Inverse Hyperbolic sine. |
| 850 | 850 | ||
| 851 | @strong{Keypad mode.} If you are using the X window system, press | 851 | @strong{Keypad mode.} If you are using the X window system, press |
| 852 | @w{@kbd{M-# k}} to get Keypad mode. (If you don't use X, skip to | 852 | @w{@kbd{C-x * k}} to get Keypad mode. (If you don't use X, skip to |
| 853 | the next section.) | 853 | the next section.) |
| 854 | 854 | ||
| 855 | @noindent | 855 | @noindent |
| @@ -869,12 +869,12 @@ Click on @key{-}, @key{INV}, @key{HYP}, and @key{SIN}. | |||
| 869 | Click on @key{<-} to erase the result, then click @key{OFF} to turn | 869 | Click on @key{<-} to erase the result, then click @key{OFF} to turn |
| 870 | the Keypad Calculator off. | 870 | the Keypad Calculator off. |
| 871 | 871 | ||
| 872 | @strong{Grabbing data.} Type @kbd{M-# x} if necessary to exit Calc. | 872 | @strong{Grabbing data.} Type @kbd{C-x * x} if necessary to exit Calc. |
| 873 | Now select the following numbers as an Emacs region: ``Mark'' the | 873 | Now select the following numbers as an Emacs region: ``Mark'' the |
| 874 | front of the list by typing @kbd{C-@key{SPC}} or @kbd{C-@@} there, | 874 | front of the list by typing @kbd{C-@key{SPC}} or @kbd{C-@@} there, |
| 875 | then move to the other end of the list. (Either get this list from | 875 | then move to the other end of the list. (Either get this list from |
| 876 | the on-line copy of this manual, accessed by @w{@kbd{M-# i}}, or just | 876 | the on-line copy of this manual, accessed by @w{@kbd{C-x * i}}, or just |
| 877 | type these numbers into a scratch file.) Now type @kbd{M-# g} to | 877 | type these numbers into a scratch file.) Now type @kbd{C-x * g} to |
| 878 | ``grab'' these numbers into Calc. | 878 | ``grab'' these numbers into Calc. |
| 879 | 879 | ||
| 880 | @example | 880 | @example |
| @@ -896,7 +896,7 @@ the product of the numbers. | |||
| 896 | @noindent | 896 | @noindent |
| 897 | You can also grab data as a rectangular matrix. Place the cursor on | 897 | You can also grab data as a rectangular matrix. Place the cursor on |
| 898 | the upper-leftmost @samp{1} and set the mark, then move to just after | 898 | the upper-leftmost @samp{1} and set the mark, then move to just after |
| 899 | the lower-right @samp{8} and press @kbd{M-# r}. | 899 | the lower-right @samp{8} and press @kbd{C-x * r}. |
| 900 | 900 | ||
| 901 | @noindent | 901 | @noindent |
| 902 | Type @kbd{v t} to transpose this | 902 | Type @kbd{v t} to transpose this |
| @@ -908,7 +908,7 @@ matrix into a | |||
| 908 | matrix. Type @w{@kbd{v u}} to unpack the rows into two separate | 908 | matrix. Type @w{@kbd{v u}} to unpack the rows into two separate |
| 909 | vectors. Now type @w{@kbd{V R + @key{TAB} V R +}} to compute the sums | 909 | vectors. Now type @w{@kbd{V R + @key{TAB} V R +}} to compute the sums |
| 910 | of the two original columns. (There is also a special | 910 | of the two original columns. (There is also a special |
| 911 | grab-and-sum-columns command, @kbd{M-# :}.) | 911 | grab-and-sum-columns command, @kbd{C-x * :}.) |
| 912 | 912 | ||
| 913 | @strong{Units conversion.} Units are entered algebraically. | 913 | @strong{Units conversion.} Units are entered algebraically. |
| 914 | Type @w{@kbd{' 43 mi/hr @key{RET}}} to enter the quantity 43 miles-per-hour. | 914 | Type @w{@kbd{' 43 mi/hr @key{RET}}} to enter the quantity 43 miles-per-hour. |
| @@ -939,21 +939,21 @@ Type @kbd{7.5}, then @kbd{s l a @key{RET}} to let @expr{a = 7.5} in these formul | |||
| 939 | 939 | ||
| 940 | @iftex | 940 | @iftex |
| 941 | @strong{Help functions.} You can read about any command in the on-line | 941 | @strong{Help functions.} You can read about any command in the on-line |
| 942 | manual. Type @kbd{M-# c} to return to Calc after each of these | 942 | manual. Type @kbd{C-x * c} to return to Calc after each of these |
| 943 | commands: @kbd{h k t N} to read about the @kbd{t N} command, | 943 | commands: @kbd{h k t N} to read about the @kbd{t N} command, |
| 944 | @kbd{h f sqrt @key{RET}} to read about the @code{sqrt} function, and | 944 | @kbd{h f sqrt @key{RET}} to read about the @code{sqrt} function, and |
| 945 | @kbd{h s} to read the Calc summary. | 945 | @kbd{h s} to read the Calc summary. |
| 946 | @end iftex | 946 | @end iftex |
| 947 | @ifinfo | 947 | @ifinfo |
| 948 | @strong{Help functions.} You can read about any command in the on-line | 948 | @strong{Help functions.} You can read about any command in the on-line |
| 949 | manual. Remember to type the letter @kbd{l}, then @kbd{M-# c}, to | 949 | manual. Remember to type the letter @kbd{l}, then @kbd{C-x * c}, to |
| 950 | return here after each of these commands: @w{@kbd{h k t N}} to read | 950 | return here after each of these commands: @w{@kbd{h k t N}} to read |
| 951 | about the @w{@kbd{t N}} command, @kbd{h f sqrt @key{RET}} to read about the | 951 | about the @w{@kbd{t N}} command, @kbd{h f sqrt @key{RET}} to read about the |
| 952 | @code{sqrt} function, and @kbd{h s} to read the Calc summary. | 952 | @code{sqrt} function, and @kbd{h s} to read the Calc summary. |
| 953 | @end ifinfo | 953 | @end ifinfo |
| 954 | 954 | ||
| 955 | Press @key{DEL} repeatedly to remove any leftover results from the stack. | 955 | Press @key{DEL} repeatedly to remove any leftover results from the stack. |
| 956 | To exit from Calc, press @kbd{q} or @kbd{M-# c} again. | 956 | To exit from Calc, press @kbd{q} or @kbd{C-x * c} again. |
| 957 | 957 | ||
| 958 | @node Using Calc, History and Acknowledgements, Demonstration of Calc, Getting Started | 958 | @node Using Calc, History and Acknowledgements, Demonstration of Calc, Getting Started |
| 959 | @section Using Calc | 959 | @section Using Calc |
| @@ -970,54 +970,38 @@ there are Quick mode, Keypad mode, and Embedded mode. | |||
| 970 | * Keypad Mode Overview:: | 970 | * Keypad Mode Overview:: |
| 971 | * Standalone Operation:: | 971 | * Standalone Operation:: |
| 972 | * Embedded Mode Overview:: | 972 | * Embedded Mode Overview:: |
| 973 | * Other M-# Commands:: | 973 | * Other C-x * Commands:: |
| 974 | @end menu | 974 | @end menu |
| 975 | 975 | ||
| 976 | @node Starting Calc, The Standard Interface, Using Calc, Using Calc | 976 | @node Starting Calc, The Standard Interface, Using Calc, Using Calc |
| 977 | @subsection Starting Calc | 977 | @subsection Starting Calc |
| 978 | 978 | ||
| 979 | @noindent | 979 | @noindent |
| 980 | On most systems, you can type @kbd{M-#} to start the Calculator. | 980 | On most systems, you can type @kbd{C-x *} to start the Calculator. |
| 981 | The notation @kbd{M-#} is short for Meta-@kbd{#}. On most | 981 | The key sequence @kbd{C-x *} is bound to the command @code{calc-dispatch}, |
| 982 | keyboards this means holding down the Meta (or Alt) and | 982 | which can be rebound if convenient (@pxref{Customizing Calc}). |
| 983 | Shift keys while typing @kbd{3}. | ||
| 984 | 983 | ||
| 985 | @cindex META key | 984 | When you press @kbd{C-x *}, Emacs waits for you to press a second key to |
| 986 | Once again, if you don't have a Meta key on your keyboard you can type | 985 | complete the command. In this case, you will follow @kbd{C-x *} with a |
| 987 | @key{ESC} first, then @kbd{#}, to accomplish the same thing. If you | 986 | letter (upper- or lower-case, it doesn't matter for @kbd{C-x *}) that says |
| 988 | don't even have an @key{ESC} key, you can fake it by holding down | ||
| 989 | Control or @key{CTRL} while typing a left square bracket | ||
| 990 | (that's @kbd{C-[} in Emacs notation). | ||
| 991 | |||
| 992 | The key @kbd{M-#} is bound to the command @code{calc-dispatch}, | ||
| 993 | which can be rebound if convenient. | ||
| 994 | (@xref{Key Bindings,,Customizing Key Bindings,emacs, | ||
| 995 | The GNU Emacs Manual}.) | ||
| 996 | |||
| 997 | When you press @kbd{M-#}, Emacs waits for you to press a second key to | ||
| 998 | complete the command. In this case, you will follow @kbd{M-#} with a | ||
| 999 | letter (upper- or lower-case, it doesn't matter for @kbd{M-#}) that says | ||
| 1000 | which Calc interface you want to use. | 987 | which Calc interface you want to use. |
| 1001 | 988 | ||
| 1002 | To get Calc's standard interface, type @kbd{M-# c}. To get | 989 | To get Calc's standard interface, type @kbd{C-x * c}. To get |
| 1003 | Keypad mode, type @kbd{M-# k}. Type @kbd{M-# ?} to get a brief | 990 | Keypad mode, type @kbd{C-x * k}. Type @kbd{C-x * ?} to get a brief |
| 1004 | list of the available options, and type a second @kbd{?} to get | 991 | list of the available options, and type a second @kbd{?} to get |
| 1005 | a complete list. | 992 | a complete list. |
| 1006 | 993 | ||
| 1007 | To ease typing, @kbd{M-# M-#} (or @kbd{M-# #} if that's easier) | 994 | To ease typing, @kbd{C-x * *} also works to start Calc. It starts the |
| 1008 | also works to start Calc. It starts the same interface (either | 995 | same interface (either @kbd{C-x * c} or @w{@kbd{C-x * k}}) that you last |
| 1009 | @kbd{M-# c} or @w{@kbd{M-# k}}) that you last used, selecting the | 996 | used, selecting the @kbd{C-x * c} interface by default. |
| 1010 | @kbd{M-# c} interface by default. (If your installation has | ||
| 1011 | a special function key set up to act like @kbd{M-#}, hitting that | ||
| 1012 | function key twice is just like hitting @kbd{M-# M-#}.) | ||
| 1013 | 997 | ||
| 1014 | If @kbd{M-#} doesn't work for you, you can always type explicit | 998 | If @kbd{C-x *} doesn't work for you, you can always type explicit |
| 1015 | commands like @kbd{M-x calc} (for the standard user interface) or | 999 | commands like @kbd{M-x calc} (for the standard user interface) or |
| 1016 | @w{@kbd{M-x calc-keypad}} (for Keypad mode). First type @kbd{M-x} | 1000 | @w{@kbd{M-x calc-keypad}} (for Keypad mode). First type @kbd{M-x} |
| 1017 | (that's Meta with the letter @kbd{x}), then, at the prompt, | 1001 | (that's Meta with the letter @kbd{x}), then, at the prompt, |
| 1018 | type the full command (like @kbd{calc-keypad}) and press Return. | 1002 | type the full command (like @kbd{calc-keypad}) and press Return. |
| 1019 | 1003 | ||
| 1020 | The same commands (like @kbd{M-# c} or @kbd{M-# M-#}) that start | 1004 | The same commands (like @kbd{C-x * c} or @kbd{C-x * *}) that start |
| 1021 | the Calculator also turn it off if it is already on. | 1005 | the Calculator also turn it off if it is already on. |
| 1022 | 1006 | ||
| 1023 | @node The Standard Interface, Quick Mode Overview, Starting Calc, Using Calc | 1007 | @node The Standard Interface, Quick Mode Overview, Starting Calc, Using Calc |
| @@ -1026,7 +1010,7 @@ the Calculator also turn it off if it is already on. | |||
| 1026 | @noindent | 1010 | @noindent |
| 1027 | @cindex Standard user interface | 1011 | @cindex Standard user interface |
| 1028 | Calc's standard interface acts like a traditional RPN calculator, | 1012 | Calc's standard interface acts like a traditional RPN calculator, |
| 1029 | operated by the normal Emacs keyboard. When you type @kbd{M-# c} | 1013 | operated by the normal Emacs keyboard. When you type @kbd{C-x * c} |
| 1030 | to start the Calculator, the Emacs screen splits into two windows | 1014 | to start the Calculator, the Emacs screen splits into two windows |
| 1031 | with the file you were editing on top and Calc on the bottom. | 1015 | with the file you were editing on top and Calc on the bottom. |
| 1032 | 1016 | ||
| @@ -1082,55 +1066,55 @@ inside a regular window, Emacs acts just like normal. When the | |||
| 1082 | cursor is in the Calc stack or trail windows, keys are interpreted | 1066 | cursor is in the Calc stack or trail windows, keys are interpreted |
| 1083 | as Calc commands. | 1067 | as Calc commands. |
| 1084 | 1068 | ||
| 1085 | When you quit by pressing @kbd{M-# c} a second time, the Calculator | 1069 | When you quit by pressing @kbd{C-x * c} a second time, the Calculator |
| 1086 | windows go away but the actual Stack and Trail are not gone, just | 1070 | windows go away but the actual Stack and Trail are not gone, just |
| 1087 | hidden. When you press @kbd{M-# c} once again you will get the | 1071 | hidden. When you press @kbd{C-x * c} once again you will get the |
| 1088 | same stack and trail contents you had when you last used the | 1072 | same stack and trail contents you had when you last used the |
| 1089 | Calculator. | 1073 | Calculator. |
| 1090 | 1074 | ||
| 1091 | The Calculator does not remember its state between Emacs sessions. | 1075 | The Calculator does not remember its state between Emacs sessions. |
| 1092 | Thus if you quit Emacs and start it again, @kbd{M-# c} will give you | 1076 | Thus if you quit Emacs and start it again, @kbd{C-x * c} will give you |
| 1093 | a fresh stack and trail. There is a command (@kbd{m m}) that lets | 1077 | a fresh stack and trail. There is a command (@kbd{m m}) that lets |
| 1094 | you save your favorite mode settings between sessions, though. | 1078 | you save your favorite mode settings between sessions, though. |
| 1095 | One of the things it saves is which user interface (standard or | 1079 | One of the things it saves is which user interface (standard or |
| 1096 | Keypad) you last used; otherwise, a freshly started Emacs will | 1080 | Keypad) you last used; otherwise, a freshly started Emacs will |
| 1097 | always treat @kbd{M-# M-#} the same as @kbd{M-# c}. | 1081 | always treat @kbd{C-x * *} the same as @kbd{C-x * c}. |
| 1098 | 1082 | ||
| 1099 | The @kbd{q} key is another equivalent way to turn the Calculator off. | 1083 | The @kbd{q} key is another equivalent way to turn the Calculator off. |
| 1100 | 1084 | ||
| 1101 | If you type @kbd{M-# b} first and then @kbd{M-# c}, you get a | 1085 | If you type @kbd{C-x * b} first and then @kbd{C-x * c}, you get a |
| 1102 | full-screen version of Calc (@code{full-calc}) in which the stack and | 1086 | full-screen version of Calc (@code{full-calc}) in which the stack and |
| 1103 | trail windows are still side-by-side but are now as tall as the whole | 1087 | trail windows are still side-by-side but are now as tall as the whole |
| 1104 | Emacs screen. When you press @kbd{q} or @kbd{M-# c} again to quit, | 1088 | Emacs screen. When you press @kbd{q} or @kbd{C-x * c} again to quit, |
| 1105 | the file you were editing before reappears. The @kbd{M-# b} key | 1089 | the file you were editing before reappears. The @kbd{C-x * b} key |
| 1106 | switches back and forth between ``big'' full-screen mode and the | 1090 | switches back and forth between ``big'' full-screen mode and the |
| 1107 | normal partial-screen mode. | 1091 | normal partial-screen mode. |
| 1108 | 1092 | ||
| 1109 | Finally, @kbd{M-# o} (@code{calc-other-window}) is like @kbd{M-# c} | 1093 | Finally, @kbd{C-x * o} (@code{calc-other-window}) is like @kbd{C-x * c} |
| 1110 | except that the Calc window is not selected. The buffer you were | 1094 | except that the Calc window is not selected. The buffer you were |
| 1111 | editing before remains selected instead. @kbd{M-# o} is a handy | 1095 | editing before remains selected instead. @kbd{C-x * o} is a handy |
| 1112 | way to switch out of Calc momentarily to edit your file; type | 1096 | way to switch out of Calc momentarily to edit your file; type |
| 1113 | @kbd{M-# c} to switch back into Calc when you are done. | 1097 | @kbd{C-x * c} to switch back into Calc when you are done. |
| 1114 | 1098 | ||
| 1115 | @node Quick Mode Overview, Keypad Mode Overview, The Standard Interface, Using Calc | 1099 | @node Quick Mode Overview, Keypad Mode Overview, The Standard Interface, Using Calc |
| 1116 | @subsection Quick Mode (Overview) | 1100 | @subsection Quick Mode (Overview) |
| 1117 | 1101 | ||
| 1118 | @noindent | 1102 | @noindent |
| 1119 | @dfn{Quick mode} is a quick way to use Calc when you don't need the | 1103 | @dfn{Quick mode} is a quick way to use Calc when you don't need the |
| 1120 | full complexity of the stack and trail. To use it, type @kbd{M-# q} | 1104 | full complexity of the stack and trail. To use it, type @kbd{C-x * q} |
| 1121 | (@code{quick-calc}) in any regular editing buffer. | 1105 | (@code{quick-calc}) in any regular editing buffer. |
| 1122 | 1106 | ||
| 1123 | Quick mode is very simple: It prompts you to type any formula in | 1107 | Quick mode is very simple: It prompts you to type any formula in |
| 1124 | standard algebraic notation (like @samp{4 - 2/3}) and then displays | 1108 | standard algebraic notation (like @samp{4 - 2/3}) and then displays |
| 1125 | the result at the bottom of the Emacs screen (@mathit{3.33333333333} | 1109 | the result at the bottom of the Emacs screen (@mathit{3.33333333333} |
| 1126 | in this case). You are then back in the same editing buffer you | 1110 | in this case). You are then back in the same editing buffer you |
| 1127 | were in before, ready to continue editing or to type @kbd{M-# q} | 1111 | were in before, ready to continue editing or to type @kbd{C-x * q} |
| 1128 | again to do another quick calculation. The result of the calculation | 1112 | again to do another quick calculation. The result of the calculation |
| 1129 | will also be in the Emacs ``kill ring'' so that a @kbd{C-y} command | 1113 | will also be in the Emacs ``kill ring'' so that a @kbd{C-y} command |
| 1130 | at this point will yank the result into your editing buffer. | 1114 | at this point will yank the result into your editing buffer. |
| 1131 | 1115 | ||
| 1132 | Calc mode settings affect Quick mode, too, though you will have to | 1116 | Calc mode settings affect Quick mode, too, though you will have to |
| 1133 | go into regular Calc (with @kbd{M-# c}) to change the mode settings. | 1117 | go into regular Calc (with @kbd{C-x * c}) to change the mode settings. |
| 1134 | 1118 | ||
| 1135 | @c [fix-ref Quick Calculator mode] | 1119 | @c [fix-ref Quick Calculator mode] |
| 1136 | @xref{Quick Calculator}, for further information. | 1120 | @xref{Quick Calculator}, for further information. |
| @@ -1144,7 +1128,7 @@ It is designed for use with terminals that support a mouse. If you | |||
| 1144 | don't have a mouse, you will have to operate Keypad mode with your | 1128 | don't have a mouse, you will have to operate Keypad mode with your |
| 1145 | arrow keys (which is probably more trouble than it's worth). | 1129 | arrow keys (which is probably more trouble than it's worth). |
| 1146 | 1130 | ||
| 1147 | Type @kbd{M-# k} to turn Keypad mode on or off. Once again you | 1131 | Type @kbd{C-x * k} to turn Keypad mode on or off. Once again you |
| 1148 | get two new windows, this time on the righthand side of the screen | 1132 | get two new windows, this time on the righthand side of the screen |
| 1149 | instead of at the bottom. The upper window is the familiar Calc | 1133 | instead of at the bottom. The upper window is the familiar Calc |
| 1150 | Stack; the lower window is a picture of a typical calculator keypad. | 1134 | Stack; the lower window is a picture of a typical calculator keypad. |
| @@ -1206,7 +1190,7 @@ this buffer in the usual way while also clicking on the Calculator | |||
| 1206 | keypad. One advantage of Keypad mode is that you don't need an | 1190 | keypad. One advantage of Keypad mode is that you don't need an |
| 1207 | explicit command to switch between editing and calculating. | 1191 | explicit command to switch between editing and calculating. |
| 1208 | 1192 | ||
| 1209 | If you press @kbd{M-# b} first, you get a full-screen Keypad mode | 1193 | If you press @kbd{C-x * b} first, you get a full-screen Keypad mode |
| 1210 | (@code{full-calc-keypad}) with three windows: The keypad in the lower | 1194 | (@code{full-calc-keypad}) with three windows: The keypad in the lower |
| 1211 | left, the stack in the lower right, and the trail on top. | 1195 | left, the stack in the lower right, and the trail on top. |
| 1212 | 1196 | ||
| @@ -1234,13 +1218,13 @@ emacs -f full-calc-keypad | |||
| 1234 | @end example | 1218 | @end example |
| 1235 | 1219 | ||
| 1236 | @noindent | 1220 | @noindent |
| 1237 | which run a full-screen Calculator (as if by @kbd{M-# b M-# c}) or | 1221 | which run a full-screen Calculator (as if by @kbd{C-x * b C-x * c}) or |
| 1238 | a full-screen X-based Calculator (as if by @kbd{M-# b M-# k}). | 1222 | a full-screen X-based Calculator (as if by @kbd{C-x * b C-x * k}). |
| 1239 | In standalone operation, quitting the Calculator (by pressing | 1223 | In standalone operation, quitting the Calculator (by pressing |
| 1240 | @kbd{q} or clicking on the keypad @key{EXIT} button) quits Emacs | 1224 | @kbd{q} or clicking on the keypad @key{EXIT} button) quits Emacs |
| 1241 | itself. | 1225 | itself. |
| 1242 | 1226 | ||
| 1243 | @node Embedded Mode Overview, Other M-# Commands, Standalone Operation, Using Calc | 1227 | @node Embedded Mode Overview, Other C-x * Commands, Standalone Operation, Using Calc |
| 1244 | @subsection Embedded Mode (Overview) | 1228 | @subsection Embedded Mode (Overview) |
| 1245 | 1229 | ||
| 1246 | @noindent | 1230 | @noindent |
| @@ -1276,7 +1260,7 @@ is | |||
| 1276 | @end group | 1260 | @end group |
| 1277 | @end smallexample | 1261 | @end smallexample |
| 1278 | 1262 | ||
| 1279 | Now, move the cursor onto this new formula and press @kbd{M-# e}. | 1263 | Now, move the cursor onto this new formula and press @kbd{C-x * e}. |
| 1280 | Calc will read the formula (using the surrounding blank lines to | 1264 | Calc will read the formula (using the surrounding blank lines to |
| 1281 | tell how much text to read), then push this formula (invisibly) | 1265 | tell how much text to read), then push this formula (invisibly) |
| 1282 | onto the Calc stack. The cursor will stay on the formula in the | 1266 | onto the Calc stack. The cursor will stay on the formula in the |
| @@ -1340,10 +1324,10 @@ righthand label: Type @kbd{d @} (1) @key{RET}}. | |||
| 1340 | @end group | 1324 | @end group |
| 1341 | @end smallexample | 1325 | @end smallexample |
| 1342 | 1326 | ||
| 1343 | To leave Embedded mode, type @kbd{M-# e} again. The mode line | 1327 | To leave Embedded mode, type @kbd{C-x * e} again. The mode line |
| 1344 | and keyboard will revert to the way they were before. | 1328 | and keyboard will revert to the way they were before. |
| 1345 | 1329 | ||
| 1346 | The related command @kbd{M-# w} operates on a single word, which | 1330 | The related command @kbd{C-x * w} operates on a single word, which |
| 1347 | generally means a single number, inside text. It uses any | 1331 | generally means a single number, inside text. It uses any |
| 1348 | non-numeric characters rather than blank lines to delimit the | 1332 | non-numeric characters rather than blank lines to delimit the |
| 1349 | formula it reads. Here's an example of its use: | 1333 | formula it reads. Here's an example of its use: |
| @@ -1352,10 +1336,10 @@ formula it reads. Here's an example of its use: | |||
| 1352 | A slope of one-third corresponds to an angle of 1 degrees. | 1336 | A slope of one-third corresponds to an angle of 1 degrees. |
| 1353 | @end smallexample | 1337 | @end smallexample |
| 1354 | 1338 | ||
| 1355 | Place the cursor on the @samp{1}, then type @kbd{M-# w} to enable | 1339 | Place the cursor on the @samp{1}, then type @kbd{C-x * w} to enable |
| 1356 | Embedded mode on that number. Now type @kbd{3 /} (to get one-third), | 1340 | Embedded mode on that number. Now type @kbd{3 /} (to get one-third), |
| 1357 | and @kbd{I T} (the Inverse Tangent converts a slope into an angle), | 1341 | and @kbd{I T} (the Inverse Tangent converts a slope into an angle), |
| 1358 | then @w{@kbd{M-# w}} again to exit Embedded mode. | 1342 | then @w{@kbd{C-x * w}} again to exit Embedded mode. |
| 1359 | 1343 | ||
| 1360 | @smallexample | 1344 | @smallexample |
| 1361 | A slope of one-third corresponds to an angle of 18.4349488229 degrees. | 1345 | A slope of one-third corresponds to an angle of 18.4349488229 degrees. |
| @@ -1364,48 +1348,51 @@ A slope of one-third corresponds to an angle of 18.4349488229 degrees. | |||
| 1364 | @c [fix-ref Embedded Mode] | 1348 | @c [fix-ref Embedded Mode] |
| 1365 | @xref{Embedded Mode}, for full details. | 1349 | @xref{Embedded Mode}, for full details. |
| 1366 | 1350 | ||
| 1367 | @node Other M-# Commands, , Embedded Mode Overview, Using Calc | 1351 | @node Other C-x * Commands, , Embedded Mode Overview, Using Calc |
| 1368 | @subsection Other @kbd{M-#} Commands | 1352 | @subsection Other @kbd{C-x *} Commands |
| 1369 | 1353 | ||
| 1370 | @noindent | 1354 | @noindent |
| 1371 | Two more Calc-related commands are @kbd{M-# g} and @kbd{M-# r}, | 1355 | Two more Calc-related commands are @kbd{C-x * g} and @kbd{C-x * r}, |
| 1372 | which ``grab'' data from a selected region of a buffer into the | 1356 | which ``grab'' data from a selected region of a buffer into the |
| 1373 | Calculator. The region is defined in the usual Emacs way, by | 1357 | Calculator. The region is defined in the usual Emacs way, by |
| 1374 | a ``mark'' placed at one end of the region, and the Emacs | 1358 | a ``mark'' placed at one end of the region, and the Emacs |
| 1375 | cursor or ``point'' placed at the other. | 1359 | cursor or ``point'' placed at the other. |
| 1376 | 1360 | ||
| 1377 | The @kbd{M-# g} command reads the region in the usual left-to-right, | 1361 | The @kbd{C-x * g} command reads the region in the usual left-to-right, |
| 1378 | top-to-bottom order. The result is packaged into a Calc vector | 1362 | top-to-bottom order. The result is packaged into a Calc vector |
| 1379 | of numbers and placed on the stack. Calc (in its standard | 1363 | of numbers and placed on the stack. Calc (in its standard |
| 1380 | user interface) is then started. Type @kbd{v u} if you want | 1364 | user interface) is then started. Type @kbd{v u} if you want |
| 1381 | to unpack this vector into separate numbers on the stack. Also, | 1365 | to unpack this vector into separate numbers on the stack. Also, |
| 1382 | @kbd{C-u M-# g} interprets the region as a single number or | 1366 | @kbd{C-u C-x * g} interprets the region as a single number or |
| 1383 | formula. | 1367 | formula. |
| 1384 | 1368 | ||
| 1385 | The @kbd{M-# r} command reads a rectangle, with the point and | 1369 | The @kbd{C-x * r} command reads a rectangle, with the point and |
| 1386 | mark defining opposite corners of the rectangle. The result | 1370 | mark defining opposite corners of the rectangle. The result |
| 1387 | is a matrix of numbers on the Calculator stack. | 1371 | is a matrix of numbers on the Calculator stack. |
| 1388 | 1372 | ||
| 1389 | Complementary to these is @kbd{M-# y}, which ``yanks'' the | 1373 | Complementary to these is @kbd{C-x * y}, which ``yanks'' the |
| 1390 | value at the top of the Calc stack back into an editing buffer. | 1374 | value at the top of the Calc stack back into an editing buffer. |
| 1391 | If you type @w{@kbd{M-# y}} while in such a buffer, the value is | 1375 | If you type @w{@kbd{C-x * y}} while in such a buffer, the value is |
| 1392 | yanked at the current position. If you type @kbd{M-# y} while | 1376 | yanked at the current position. If you type @kbd{C-x * y} while |
| 1393 | in the Calc buffer, Calc makes an educated guess as to which | 1377 | in the Calc buffer, Calc makes an educated guess as to which |
| 1394 | editing buffer you want to use. The Calc window does not have | 1378 | editing buffer you want to use. The Calc window does not have |
| 1395 | to be visible in order to use this command, as long as there | 1379 | to be visible in order to use this command, as long as there |
| 1396 | is something on the Calc stack. | 1380 | is something on the Calc stack. |
| 1397 | 1381 | ||
| 1398 | Here, for reference, is the complete list of @kbd{M-#} commands. | 1382 | Here, for reference, is the complete list of @kbd{C-x *} commands. |
| 1399 | The shift, control, and meta keys are ignored for the keystroke | 1383 | The shift, control, and meta keys are ignored for the keystroke |
| 1400 | following @kbd{M-#}. | 1384 | following @kbd{C-x *}. |
| 1401 | 1385 | ||
| 1402 | @noindent | 1386 | @noindent |
| 1403 | Commands for turning Calc on and off: | 1387 | Commands for turning Calc on and off: |
| 1404 | 1388 | ||
| 1405 | @table @kbd | 1389 | @table @kbd |
| 1406 | @item # | 1390 | @item * |
| 1407 | Turn Calc on or off, employing the same user interface as last time. | 1391 | Turn Calc on or off, employing the same user interface as last time. |
| 1408 | 1392 | ||
| 1393 | @item =, +, -, /, \, &, # | ||
| 1394 | Alternatives for @kbd{*}. | ||
| 1395 | |||
| 1409 | @item C | 1396 | @item C |
| 1410 | Turn Calc on or off using its standard bottom-of-the-screen | 1397 | Turn Calc on or off using its standard bottom-of-the-screen |
| 1411 | interface. If Calc is already turned on but the cursor is not | 1398 | interface. If Calc is already turned on but the cursor is not |
| @@ -1417,7 +1404,7 @@ Calc is already turned on and the cursor is in the Calc window, | |||
| 1417 | move it out of that window. | 1404 | move it out of that window. |
| 1418 | 1405 | ||
| 1419 | @item B | 1406 | @item B |
| 1420 | Control whether @kbd{M-# c} and @kbd{M-# k} use the full screen. | 1407 | Control whether @kbd{C-x * c} and @kbd{C-x * k} use the full screen. |
| 1421 | 1408 | ||
| 1422 | @item Q | 1409 | @item Q |
| 1423 | Use Quick mode for a single short calculation. | 1410 | Use Quick mode for a single short calculation. |
| @@ -1628,7 +1615,7 @@ finished in two weeks. | |||
| 1628 | @c [tutorial] | 1615 | @c [tutorial] |
| 1629 | 1616 | ||
| 1630 | @ifinfo | 1617 | @ifinfo |
| 1631 | @c This node is accessed by the `M-# t' command. | 1618 | @c This node is accessed by the `C-x * t' command. |
| 1632 | @node Interactive Tutorial, , , Top | 1619 | @node Interactive Tutorial, , , Top |
| 1633 | @chapter Tutorial | 1620 | @chapter Tutorial |
| 1634 | 1621 | ||
| @@ -1682,16 +1669,16 @@ the Embedded mode interface. | |||
| 1682 | The easiest way to read this tutorial on-line is to have two windows on | 1669 | The easiest way to read this tutorial on-line is to have two windows on |
| 1683 | your Emacs screen, one with Calc and one with the Info system. (If you | 1670 | your Emacs screen, one with Calc and one with the Info system. (If you |
| 1684 | have a printed copy of the manual you can use that instead.) Press | 1671 | have a printed copy of the manual you can use that instead.) Press |
| 1685 | @kbd{M-# c} to turn Calc on or to switch into the Calc window, and | 1672 | @kbd{C-x * c} to turn Calc on or to switch into the Calc window, and |
| 1686 | press @kbd{M-# i} to start the Info system or to switch into its window. | 1673 | press @kbd{C-x * i} to start the Info system or to switch into its window. |
| 1687 | Or, you may prefer to use the tutorial in printed form. | 1674 | Or, you may prefer to use the tutorial in printed form. |
| 1688 | @end ifinfo | 1675 | @end ifinfo |
| 1689 | @iftex | 1676 | @iftex |
| 1690 | The easiest way to read this tutorial on-line is to have two windows on | 1677 | The easiest way to read this tutorial on-line is to have two windows on |
| 1691 | your Emacs screen, one with Calc and one with the Info system. (If you | 1678 | your Emacs screen, one with Calc and one with the Info system. (If you |
| 1692 | have a printed copy of the manual you can use that instead.) Press | 1679 | have a printed copy of the manual you can use that instead.) Press |
| 1693 | @kbd{M-# c} to turn Calc on or to switch into the Calc window, and | 1680 | @kbd{C-x * c} to turn Calc on or to switch into the Calc window, and |
| 1694 | press @kbd{M-# i} to start the Info system or to switch into its window. | 1681 | press @kbd{C-x * i} to start the Info system or to switch into its window. |
| 1695 | @end iftex | 1682 | @end iftex |
| 1696 | 1683 | ||
| 1697 | This tutorial is designed to be done in sequence. But the rest of this | 1684 | This tutorial is designed to be done in sequence. But the rest of this |
| @@ -1772,8 +1759,8 @@ number of operands from the stack and pushes back the result. | |||
| 1772 | Thus we could add the numbers 2 and 3 in an RPN calculator by typing: | 1759 | Thus we could add the numbers 2 and 3 in an RPN calculator by typing: |
| 1773 | @kbd{2 @key{RET} 3 @key{RET} +}. (The @key{RET} key, Return, corresponds to | 1760 | @kbd{2 @key{RET} 3 @key{RET} +}. (The @key{RET} key, Return, corresponds to |
| 1774 | the @key{ENTER} key on traditional RPN calculators.) Try this now if | 1761 | the @key{ENTER} key on traditional RPN calculators.) Try this now if |
| 1775 | you wish; type @kbd{M-# c} to switch into the Calc window (you can type | 1762 | you wish; type @kbd{C-x * c} to switch into the Calc window (you can type |
| 1776 | @kbd{M-# c} again or @kbd{M-# o} to switch back to the Tutorial window). | 1763 | @kbd{C-x * c} again or @kbd{C-x * o} to switch back to the Tutorial window). |
| 1777 | The first four keystrokes ``push'' the numbers 2 and 3 onto the stack. | 1764 | The first four keystrokes ``push'' the numbers 2 and 3 onto the stack. |
| 1778 | The @kbd{+} key ``pops'' the top two numbers from the stack, adds them, | 1765 | The @kbd{+} key ``pops'' the top two numbers from the stack, adds them, |
| 1779 | and pushes the result (5) back onto the stack. Here's how the stack | 1766 | and pushes the result (5) back onto the stack. Here's how the stack |
| @@ -1785,7 +1772,7 @@ will look at various points throughout the calculation: | |||
| 1785 | . 1: 3 . | 1772 | . 1: 3 . |
| 1786 | . | 1773 | . |
| 1787 | 1774 | ||
| 1788 | M-# c 2 @key{RET} 3 @key{RET} + @key{DEL} | 1775 | C-x * c 2 @key{RET} 3 @key{RET} + @key{DEL} |
| 1789 | @end group | 1776 | @end group |
| 1790 | @end smallexample | 1777 | @end smallexample |
| 1791 | 1778 | ||
| @@ -2434,7 +2421,7 @@ when we discuss the algebra and calculus features of the Calculator. | |||
| 2434 | @noindent | 2421 | @noindent |
| 2435 | If you make a mistake, you can usually correct it by pressing shift-@kbd{U}, | 2422 | If you make a mistake, you can usually correct it by pressing shift-@kbd{U}, |
| 2436 | the ``undo'' command. First, clear the stack (@kbd{M-0 @key{DEL}}) and exit | 2423 | the ``undo'' command. First, clear the stack (@kbd{M-0 @key{DEL}}) and exit |
| 2437 | and restart Calc (@kbd{M-# M-# M-# M-#}) to make sure things start off | 2424 | and restart Calc (@kbd{C-x * * C-x * *}) to make sure things start off |
| 2438 | with a clean slate. Now: | 2425 | with a clean slate. Now: |
| 2439 | 2426 | ||
| 2440 | @smallexample | 2427 | @smallexample |
| @@ -4093,7 +4080,7 @@ of values in a file we have loaded into Emacs: | |||
| 4093 | 4080 | ||
| 4094 | @noindent | 4081 | @noindent |
| 4095 | If you are reading this tutorial in printed form, you will find it | 4082 | If you are reading this tutorial in printed form, you will find it |
| 4096 | easiest to press @kbd{M-# i} to enter the on-line Info version of | 4083 | easiest to press @kbd{C-x * i} to enter the on-line Info version of |
| 4097 | the manual and find this table there. (Press @kbd{g}, then type | 4084 | the manual and find this table there. (Press @kbd{g}, then type |
| 4098 | @kbd{List Tutorial}, to jump straight to this section.) | 4085 | @kbd{List Tutorial}, to jump straight to this section.) |
| 4099 | 4086 | ||
| @@ -4102,7 +4089,7 @@ to the left of the @expr{1.34}. Press @kbd{C-@@} to set the mark. | |||
| 4102 | (On your system this may be @kbd{C-2}, @kbd{C-@key{SPC}}, or @kbd{NUL}.) | 4089 | (On your system this may be @kbd{C-2}, @kbd{C-@key{SPC}}, or @kbd{NUL}.) |
| 4103 | Now position the cursor to the lower-right, just after the @expr{1.354}. | 4090 | Now position the cursor to the lower-right, just after the @expr{1.354}. |
| 4104 | You have now defined this region as an Emacs ``rectangle.'' Still | 4091 | You have now defined this region as an Emacs ``rectangle.'' Still |
| 4105 | in the Info buffer, type @kbd{M-# r}. This command | 4092 | in the Info buffer, type @kbd{C-x * r}. This command |
| 4106 | (@code{calc-grab-rectangle}) will pop you back into the Calculator, with | 4093 | (@code{calc-grab-rectangle}) will pop you back into the Calculator, with |
| 4107 | the contents of the rectangle you specified in the form of a matrix. | 4094 | the contents of the rectangle you specified in the form of a matrix. |
| 4108 | 4095 | ||
| @@ -4372,7 +4359,7 @@ to solve for @expr{m} and @expr{b}, duplicating the above result. | |||
| 4372 | 4359 | ||
| 4373 | @cindex Geometric mean | 4360 | @cindex Geometric mean |
| 4374 | (@bullet{}) @strong{Exercise 3.} If the input data do not form a | 4361 | (@bullet{}) @strong{Exercise 3.} If the input data do not form a |
| 4375 | rectangle, you can use @w{@kbd{M-# g}} (@code{calc-grab-region}) | 4362 | rectangle, you can use @w{@kbd{C-x * g}} (@code{calc-grab-region}) |
| 4376 | to grab the data the way Emacs normally works with regions---it reads | 4363 | to grab the data the way Emacs normally works with regions---it reads |
| 4377 | left-to-right, top-to-bottom, treating line breaks the same as spaces. | 4364 | left-to-right, top-to-bottom, treating line breaks the same as spaces. |
| 4378 | Use this command to find the geometric mean of the following numbers. | 4365 | Use this command to find the geometric mean of the following numbers. |
| @@ -4385,7 +4372,7 @@ Use this command to find the geometric mean of the following numbers. | |||
| 4385 | @end example | 4372 | @end example |
| 4386 | 4373 | ||
| 4387 | @noindent | 4374 | @noindent |
| 4388 | The @kbd{M-# g} command accepts numbers separated by spaces or commas, | 4375 | The @kbd{C-x * g} command accepts numbers separated by spaces or commas, |
| 4389 | with or without surrounding vector brackets. | 4376 | with or without surrounding vector brackets. |
| 4390 | @xref{List Answer 3, 3}. (@bullet{}) | 4377 | @xref{List Answer 3, 3}. (@bullet{}) |
| 4391 | 4378 | ||
| @@ -5120,7 +5107,7 @@ numbers are in which units: | |||
| 5120 | @end smallexample | 5107 | @end smallexample |
| 5121 | 5108 | ||
| 5122 | To see a complete list of built-in units, type @kbd{u v}. Press | 5109 | To see a complete list of built-in units, type @kbd{u v}. Press |
| 5123 | @w{@kbd{M-# c}} again to re-enter the Calculator when you're done looking | 5110 | @w{@kbd{C-x * c}} again to re-enter the Calculator when you're done looking |
| 5124 | at the units table. | 5111 | at the units table. |
| 5125 | 5112 | ||
| 5126 | (@bullet{}) @strong{Exercise 13.} How many seconds are there really | 5113 | (@bullet{}) @strong{Exercise 13.} How many seconds are there really |
| @@ -6586,9 +6573,9 @@ The @file{edmacro} package defines a handy @code{read-kbd-macro} command | |||
| 6586 | which reads the current region of the current buffer as a sequence of | 6573 | which reads the current region of the current buffer as a sequence of |
| 6587 | keystroke names, and defines that sequence on the @kbd{X} | 6574 | keystroke names, and defines that sequence on the @kbd{X} |
| 6588 | (and @kbd{C-x e}) key. Because this is so useful, Calc puts this | 6575 | (and @kbd{C-x e}) key. Because this is so useful, Calc puts this |
| 6589 | command on the @kbd{M-# m} key. Try reading in this macro in the | 6576 | command on the @kbd{C-x * m} key. Try reading in this macro in the |
| 6590 | following form: Press @kbd{C-@@} (or @kbd{C-@key{SPC}}) at | 6577 | following form: Press @kbd{C-@@} (or @kbd{C-@key{SPC}}) at |
| 6591 | one end of the text below, then type @kbd{M-# m} at the other. | 6578 | one end of the text below, then type @kbd{C-x * m} at the other. |
| 6592 | 6579 | ||
| 6593 | @example | 6580 | @example |
| 6594 | @group | 6581 | @group |
| @@ -6738,7 +6725,7 @@ it to a key with, e.g., @kbd{Z K s}. Now enter the true definition, | |||
| 6738 | using the @kbd{z s} command to call itself recursively, then assign it | 6725 | using the @kbd{z s} command to call itself recursively, then assign it |
| 6739 | to the same key with @kbd{Z K s}. Now the @kbd{z s} command will run | 6726 | to the same key with @kbd{Z K s}. Now the @kbd{z s} command will run |
| 6740 | the complete recursive program. (Another way is to use @w{@kbd{Z E}} | 6727 | the complete recursive program. (Another way is to use @w{@kbd{Z E}} |
| 6741 | or @kbd{M-# m} (@code{read-kbd-macro}) to read the whole macro at once, | 6728 | or @kbd{C-x * m} (@code{read-kbd-macro}) to read the whole macro at once, |
| 6742 | thus avoiding the ``training'' phase.) The task: Write a program | 6729 | thus avoiding the ``training'' phase.) The task: Write a program |
| 6743 | that computes Stirling numbers of the first kind, given @expr{n} and | 6730 | that computes Stirling numbers of the first kind, given @expr{n} and |
| 6744 | @expr{m} on the stack. Test it with @emph{small} inputs like | 6731 | @expr{m} on the stack. Test it with @emph{small} inputs like |
| @@ -7530,7 +7517,7 @@ fits. @xref{Curve Fitting}. | |||
| 7530 | @noindent | 7517 | @noindent |
| 7531 | Move to one end of the list and press @kbd{C-@@} (or @kbd{C-@key{SPC}} or | 7518 | Move to one end of the list and press @kbd{C-@@} (or @kbd{C-@key{SPC}} or |
| 7532 | whatever) to set the mark, then move to the other end of the list | 7519 | whatever) to set the mark, then move to the other end of the list |
| 7533 | and type @w{@kbd{M-# g}}. | 7520 | and type @w{@kbd{C-x * g}}. |
| 7534 | 7521 | ||
| 7535 | @smallexample | 7522 | @smallexample |
| 7536 | @group | 7523 | @group |
| @@ -9525,7 +9512,7 @@ the formula | |||
| 9525 | @infoline @expr{x - f(x)/f'(x)}. | 9512 | @infoline @expr{x - f(x)/f'(x)}. |
| 9526 | 9513 | ||
| 9527 | (Because this definition is long, it will be repeated in concise form | 9514 | (Because this definition is long, it will be repeated in concise form |
| 9528 | below. You can use @w{@kbd{M-# m}} to load it from there. While you are | 9515 | below. You can use @w{@kbd{C-x * m}} to load it from there. While you are |
| 9529 | entering a @kbd{Z ` Z '} body in a macro, Calc simply collects | 9516 | entering a @kbd{Z ` Z '} body in a macro, Calc simply collects |
| 9530 | keystrokes without executing them. In the following diagrams we'll | 9517 | keystrokes without executing them. In the following diagrams we'll |
| 9531 | pretend Calc actually executed the keystrokes as you typed them, | 9518 | pretend Calc actually executed the keystrokes as you typed them, |
| @@ -9647,7 +9634,7 @@ and remember to add back a factor of @expr{-1/z} when we're done. This | |||
| 9647 | step is repeated until @expr{z > 5}. | 9634 | step is repeated until @expr{z > 5}. |
| 9648 | 9635 | ||
| 9649 | (Because this definition is long, it will be repeated in concise form | 9636 | (Because this definition is long, it will be repeated in concise form |
| 9650 | below. You can use @w{@kbd{M-# m}} to load it from there. While you are | 9637 | below. You can use @w{@kbd{C-x * m}} to load it from there. While you are |
| 9651 | entering a @kbd{Z ` Z '} body in a macro, Calc simply collects | 9638 | entering a @kbd{Z ` Z '} body in a macro, Calc simply collects |
| 9652 | keystrokes without executing them. In the following diagrams we'll | 9639 | keystrokes without executing them. In the following diagrams we'll |
| 9653 | pretend Calc actually executed the keystrokes as you typed them, | 9640 | pretend Calc actually executed the keystrokes as you typed them, |
| @@ -9768,7 +9755,7 @@ derivative of a polynomial, evaluated at @expr{x = 0}, will equal the | |||
| 9768 | coefficient on the @expr{x^n} term times @expr{n!}. | 9755 | coefficient on the @expr{x^n} term times @expr{n!}. |
| 9769 | 9756 | ||
| 9770 | (Because this definition is long, it will be repeated in concise form | 9757 | (Because this definition is long, it will be repeated in concise form |
| 9771 | below. You can use @w{@kbd{M-# m}} to load it from there. While you are | 9758 | below. You can use @w{@kbd{C-x * m}} to load it from there. While you are |
| 9772 | entering a @kbd{Z ` Z '} body in a macro, Calc simply collects | 9759 | entering a @kbd{Z ` Z '} body in a macro, Calc simply collects |
| 9773 | keystrokes without executing them. In the following diagrams we'll | 9760 | keystrokes without executing them. In the following diagrams we'll |
| 9774 | pretend Calc actually executed the keystrokes as you typed them, | 9761 | pretend Calc actually executed the keystrokes as you typed them, |
| @@ -9877,7 +9864,7 @@ definition. The recurrence needs to be rewritten slightly, | |||
| 9877 | to the form @expr{s(n,m) = s(n-1,m-1) - (n-1) s(n-1,m)}. | 9864 | to the form @expr{s(n,m) = s(n-1,m-1) - (n-1) s(n-1,m)}. |
| 9878 | 9865 | ||
| 9879 | (Because this definition is long, it will be repeated in concise form | 9866 | (Because this definition is long, it will be repeated in concise form |
| 9880 | below. You can use @kbd{M-# m} to load it from there.) | 9867 | below. You can use @kbd{C-x * m} to load it from there.) |
| 9881 | 9868 | ||
| 9882 | @smallexample | 9869 | @smallexample |
| 9883 | @group | 9870 | @group |
| @@ -9951,10 +9938,10 @@ C-x ) | |||
| 9951 | @end group | 9938 | @end group |
| 9952 | @end example | 9939 | @end example |
| 9953 | 9940 | ||
| 9954 | You can read this definition using @kbd{M-# m} (@code{read-kbd-macro}) | 9941 | You can read this definition using @kbd{C-x * m} (@code{read-kbd-macro}) |
| 9955 | followed by @kbd{Z K s}, without having to make a dummy definition | 9942 | followed by @kbd{Z K s}, without having to make a dummy definition |
| 9956 | first, because @code{read-kbd-macro} doesn't need to execute the | 9943 | first, because @code{read-kbd-macro} doesn't need to execute the |
| 9957 | definition as it reads it in. For this reason, @code{M-# m} is often | 9944 | definition as it reads it in. For this reason, @code{C-x * m} is often |
| 9958 | the easiest way to create recursive programs in Calc. | 9945 | the easiest way to create recursive programs in Calc. |
| 9959 | 9946 | ||
| 9960 | @node Programming Answer 12, , Programming Answer 11, Answers to Exercises | 9947 | @node Programming Answer 12, , Programming Answer 11, Answers to Exercises |
| @@ -10044,15 +10031,14 @@ still work when the trail buffer's window is selected. It is possible | |||
| 10044 | to turn the trail window off, but the @samp{*Calc Trail*} buffer itself | 10031 | to turn the trail window off, but the @samp{*Calc Trail*} buffer itself |
| 10045 | still exists and is updated silently. @xref{Trail Commands}. | 10032 | still exists and is updated silently. @xref{Trail Commands}. |
| 10046 | 10033 | ||
| 10047 | @kindex M-# c | 10034 | @kindex C-x * c |
| 10048 | @kindex M-# M-# | 10035 | @kindex C-x * * |
| 10049 | @ignore | 10036 | @ignore |
| 10050 | @mindex @null | 10037 | @mindex @null |
| 10051 | @end ignore | 10038 | @end ignore |
| 10052 | @kindex M-# # | 10039 | In most installations, the @kbd{C-x * c} key sequence is a more |
| 10053 | In most installations, the @kbd{M-# c} key sequence is a more | 10040 | convenient way to start the Calculator. Also, @kbd{C-x * *} |
| 10054 | convenient way to start the Calculator. Also, @kbd{M-# M-#} and | 10041 | is a synonym for @kbd{C-x * c} unless you last used Calc |
| 10055 | @kbd{M-# #} are synonyms for @kbd{M-# c} unless you last used Calc | ||
| 10056 | in its Keypad mode. | 10042 | in its Keypad mode. |
| 10057 | 10043 | ||
| 10058 | @kindex x | 10044 | @kindex x |
| @@ -10068,7 +10054,7 @@ for you. For example, the following key sequences are equivalent: | |||
| 10068 | 10054 | ||
| 10069 | @cindex Extensions module | 10055 | @cindex Extensions module |
| 10070 | @cindex @file{calc-ext} module | 10056 | @cindex @file{calc-ext} module |
| 10071 | The Calculator exists in many parts. When you type @kbd{M-# c}, the | 10057 | The Calculator exists in many parts. When you type @kbd{C-x * c}, the |
| 10072 | Emacs ``auto-load'' mechanism will bring in only the first part, which | 10058 | Emacs ``auto-load'' mechanism will bring in only the first part, which |
| 10073 | contains the basic arithmetic functions. The other parts will be | 10059 | contains the basic arithmetic functions. The other parts will be |
| 10074 | auto-loaded the first time you use the more advanced commands like trig | 10060 | auto-loaded the first time you use the more advanced commands like trig |
| @@ -10076,48 +10062,48 @@ functions or matrix operations. This is done to improve the response time | |||
| 10076 | of the Calculator in the common case when all you need to do is a | 10062 | of the Calculator in the common case when all you need to do is a |
| 10077 | little arithmetic. If for some reason the Calculator fails to load an | 10063 | little arithmetic. If for some reason the Calculator fails to load an |
| 10078 | extension module automatically, you can force it to load all the | 10064 | extension module automatically, you can force it to load all the |
| 10079 | extensions by using the @kbd{M-# L} (@code{calc-load-everything}) | 10065 | extensions by using the @kbd{C-x * L} (@code{calc-load-everything}) |
| 10080 | command. @xref{Mode Settings}. | 10066 | command. @xref{Mode Settings}. |
| 10081 | 10067 | ||
| 10082 | If you type @kbd{M-x calc} or @kbd{M-# c} with any numeric prefix argument, | 10068 | If you type @kbd{M-x calc} or @kbd{C-x * c} with any numeric prefix argument, |
| 10083 | the Calculator is loaded if necessary, but it is not actually started. | 10069 | the Calculator is loaded if necessary, but it is not actually started. |
| 10084 | If the argument is positive, the @file{calc-ext} extensions are also | 10070 | If the argument is positive, the @file{calc-ext} extensions are also |
| 10085 | loaded if necessary. User-written Lisp code that wishes to make use | 10071 | loaded if necessary. User-written Lisp code that wishes to make use |
| 10086 | of Calc's arithmetic routines can use @samp{(calc 0)} or @samp{(calc 1)} | 10072 | of Calc's arithmetic routines can use @samp{(calc 0)} or @samp{(calc 1)} |
| 10087 | to auto-load the Calculator. | 10073 | to auto-load the Calculator. |
| 10088 | 10074 | ||
| 10089 | @kindex M-# b | 10075 | @kindex C-x * b |
| 10090 | @pindex full-calc | 10076 | @pindex full-calc |
| 10091 | If you type @kbd{M-# b}, then next time you use @kbd{M-# c} you | 10077 | If you type @kbd{C-x * b}, then next time you use @kbd{C-x * c} you |
| 10092 | will get a Calculator that uses the full height of the Emacs screen. | 10078 | will get a Calculator that uses the full height of the Emacs screen. |
| 10093 | When full-screen mode is on, @kbd{M-# c} runs the @code{full-calc} | 10079 | When full-screen mode is on, @kbd{C-x * c} runs the @code{full-calc} |
| 10094 | command instead of @code{calc}. From the Unix shell you can type | 10080 | command instead of @code{calc}. From the Unix shell you can type |
| 10095 | @samp{emacs -f full-calc} to start a new Emacs specifically for use | 10081 | @samp{emacs -f full-calc} to start a new Emacs specifically for use |
| 10096 | as a calculator. When Calc is started from the Emacs command line | 10082 | as a calculator. When Calc is started from the Emacs command line |
| 10097 | like this, Calc's normal ``quit'' commands actually quit Emacs itself. | 10083 | like this, Calc's normal ``quit'' commands actually quit Emacs itself. |
| 10098 | 10084 | ||
| 10099 | @kindex M-# o | 10085 | @kindex C-x * o |
| 10100 | @pindex calc-other-window | 10086 | @pindex calc-other-window |
| 10101 | The @kbd{M-# o} command is like @kbd{M-# c} except that the Calc | 10087 | The @kbd{C-x * o} command is like @kbd{C-x * c} except that the Calc |
| 10102 | window is not actually selected. If you are already in the Calc | 10088 | window is not actually selected. If you are already in the Calc |
| 10103 | window, @kbd{M-# o} switches you out of it. (The regular Emacs | 10089 | window, @kbd{C-x * o} switches you out of it. (The regular Emacs |
| 10104 | @kbd{C-x o} command would also work for this, but it has a | 10090 | @kbd{C-x o} command would also work for this, but it has a |
| 10105 | tendency to drop you into the Calc Trail window instead, which | 10091 | tendency to drop you into the Calc Trail window instead, which |
| 10106 | @kbd{M-# o} takes care not to do.) | 10092 | @kbd{C-x * o} takes care not to do.) |
| 10107 | 10093 | ||
| 10108 | @ignore | 10094 | @ignore |
| 10109 | @mindex M-# q | 10095 | @mindex C-x * q |
| 10110 | @end ignore | 10096 | @end ignore |
| 10111 | For one quick calculation, you can type @kbd{M-# q} (@code{quick-calc}) | 10097 | For one quick calculation, you can type @kbd{C-x * q} (@code{quick-calc}) |
| 10112 | which prompts you for a formula (like @samp{2+3/4}). The result is | 10098 | which prompts you for a formula (like @samp{2+3/4}). The result is |
| 10113 | displayed at the bottom of the Emacs screen without ever creating | 10099 | displayed at the bottom of the Emacs screen without ever creating |
| 10114 | any special Calculator windows. @xref{Quick Calculator}. | 10100 | any special Calculator windows. @xref{Quick Calculator}. |
| 10115 | 10101 | ||
| 10116 | @ignore | 10102 | @ignore |
| 10117 | @mindex M-# k | 10103 | @mindex C-x * k |
| 10118 | @end ignore | 10104 | @end ignore |
| 10119 | Finally, if you are using the X window system you may want to try | 10105 | Finally, if you are using the X window system you may want to try |
| 10120 | @kbd{M-# k} (@code{calc-keypad}) which runs Calc with a | 10106 | @kbd{C-x * k} (@code{calc-keypad}) which runs Calc with a |
| 10121 | ``calculator keypad'' picture as well as a stack display. Click on | 10107 | ``calculator keypad'' picture as well as a stack display. Click on |
| 10122 | the keys with the mouse to operate the calculator. @xref{Keypad Mode}. | 10108 | the keys with the mouse to operate the calculator. @xref{Keypad Mode}. |
| 10123 | 10109 | ||
| @@ -10128,13 +10114,13 @@ the keys with the mouse to operate the calculator. @xref{Keypad Mode}. | |||
| 10128 | The @kbd{q} key (@code{calc-quit}) exits Calc mode and closes the | 10114 | The @kbd{q} key (@code{calc-quit}) exits Calc mode and closes the |
| 10129 | Calculator's window(s). It does not delete the Calculator buffers. | 10115 | Calculator's window(s). It does not delete the Calculator buffers. |
| 10130 | If you type @kbd{M-x calc} again, the Calculator will reappear with the | 10116 | If you type @kbd{M-x calc} again, the Calculator will reappear with the |
| 10131 | contents of the stack intact. Typing @kbd{M-# c} or @kbd{M-# M-#} | 10117 | contents of the stack intact. Typing @kbd{C-x * c} or @kbd{C-x * *} |
| 10132 | again from inside the Calculator buffer is equivalent to executing | 10118 | again from inside the Calculator buffer is equivalent to executing |
| 10133 | @code{calc-quit}; you can think of @kbd{M-# M-#} as toggling the | 10119 | @code{calc-quit}; you can think of @kbd{C-x * *} as toggling the |
| 10134 | Calculator on and off. | 10120 | Calculator on and off. |
| 10135 | 10121 | ||
| 10136 | @kindex M-# x | 10122 | @kindex C-x * x |
| 10137 | The @kbd{M-# x} command also turns the Calculator off, no matter which | 10123 | The @kbd{C-x * x} command also turns the Calculator off, no matter which |
| 10138 | user interface (standard, Keypad, or Embedded) is currently active. | 10124 | user interface (standard, Keypad, or Embedded) is currently active. |
| 10139 | It also cancels @code{calc-edit} mode if used from there. | 10125 | It also cancels @code{calc-edit} mode if used from there. |
| 10140 | 10126 | ||
| @@ -10174,18 +10160,18 @@ The @kbd{@{} and @kbd{@}} keys are bound to @code{calc-scroll-down} | |||
| 10174 | and @code{calc-scroll-up}. They scroll up or down by one-half the | 10160 | and @code{calc-scroll-up}. They scroll up or down by one-half the |
| 10175 | height of the Calc window. | 10161 | height of the Calc window. |
| 10176 | 10162 | ||
| 10177 | @kindex M-# 0 | 10163 | @kindex C-x * 0 |
| 10178 | @pindex calc-reset | 10164 | @pindex calc-reset |
| 10179 | The @kbd{M-# 0} command (@code{calc-reset}; that's @kbd{M-#} followed | 10165 | The @kbd{C-x * 0} command (@code{calc-reset}; that's @kbd{C-x *} followed |
| 10180 | by a zero) resets the Calculator to its initial state. This clears | 10166 | by a zero) resets the Calculator to its initial state. This clears |
| 10181 | the stack, resets all the modes to their initial values (the values | 10167 | the stack, resets all the modes to their initial values (the values |
| 10182 | that were saved with @kbd{m m} (@code{calc-save-modes})), clears the | 10168 | that were saved with @kbd{m m} (@code{calc-save-modes})), clears the |
| 10183 | caches (@pxref{Caches}), and so on. (It does @emph{not} erase the | 10169 | caches (@pxref{Caches}), and so on. (It does @emph{not} erase the |
| 10184 | values of any variables.) With an argument of 0, Calc will be reset to | 10170 | values of any variables.) With an argument of 0, Calc will be reset to |
| 10185 | its default state; namely, the modes will be given their default values. | 10171 | its default state; namely, the modes will be given their default values. |
| 10186 | With a positive prefix argument, @kbd{M-# 0} preserves the contents of | 10172 | With a positive prefix argument, @kbd{C-x * 0} preserves the contents of |
| 10187 | the stack but resets everything else to its initial state; with a | 10173 | the stack but resets everything else to its initial state; with a |
| 10188 | negative prefix argument, @kbd{M-# 0} preserves the contents of the | 10174 | negative prefix argument, @kbd{C-x * 0} preserves the contents of the |
| 10189 | stack but resets everything else to its default state. | 10175 | stack but resets everything else to its default state. |
| 10190 | 10176 | ||
| 10191 | @pindex calc-version | 10177 | @pindex calc-version |
| @@ -10219,21 +10205,21 @@ provide help within Calc. Many of the @kbd{h} key functions are | |||
| 10219 | Calc-specific analogues to the @kbd{C-h} functions for Emacs help. | 10205 | Calc-specific analogues to the @kbd{C-h} functions for Emacs help. |
| 10220 | 10206 | ||
| 10221 | @kindex h i | 10207 | @kindex h i |
| 10222 | @kindex M-# i | 10208 | @kindex C-x * i |
| 10223 | @kindex i | 10209 | @kindex i |
| 10224 | @pindex calc-info | 10210 | @pindex calc-info |
| 10225 | The @kbd{h i} (@code{calc-info}) command runs the Emacs Info system | 10211 | The @kbd{h i} (@code{calc-info}) command runs the Emacs Info system |
| 10226 | to read this manual on-line. This is basically the same as typing | 10212 | to read this manual on-line. This is basically the same as typing |
| 10227 | @kbd{C-h i} (the regular way to run the Info system), then, if Info | 10213 | @kbd{C-h i} (the regular way to run the Info system), then, if Info |
| 10228 | is not already in the Calc manual, selecting the beginning of the | 10214 | is not already in the Calc manual, selecting the beginning of the |
| 10229 | manual. The @kbd{M-# i} command is another way to read the Calc | 10215 | manual. The @kbd{C-x * i} command is another way to read the Calc |
| 10230 | manual; it is different from @kbd{h i} in that it works any time, | 10216 | manual; it is different from @kbd{h i} in that it works any time, |
| 10231 | not just inside Calc. The plain @kbd{i} key is also equivalent to | 10217 | not just inside Calc. The plain @kbd{i} key is also equivalent to |
| 10232 | @kbd{h i}, though this key is obsolete and may be replaced with a | 10218 | @kbd{h i}, though this key is obsolete and may be replaced with a |
| 10233 | different command in a future version of Calc. | 10219 | different command in a future version of Calc. |
| 10234 | 10220 | ||
| 10235 | @kindex h t | 10221 | @kindex h t |
| 10236 | @kindex M-# t | 10222 | @kindex C-x * t |
| 10237 | @pindex calc-tutorial | 10223 | @pindex calc-tutorial |
| 10238 | The @kbd{h t} (@code{calc-tutorial}) command runs the Info system on | 10224 | The @kbd{h t} (@code{calc-tutorial}) command runs the Info system on |
| 10239 | the Tutorial section of the Calc manual. It is like @kbd{h i}, | 10225 | the Tutorial section of the Calc manual. It is like @kbd{h i}, |
| @@ -10241,14 +10227,14 @@ except that it selects the starting node of the tutorial rather | |||
| 10241 | than the beginning of the whole manual. (It actually selects the | 10227 | than the beginning of the whole manual. (It actually selects the |
| 10242 | node ``Interactive Tutorial'' which tells a few things about | 10228 | node ``Interactive Tutorial'' which tells a few things about |
| 10243 | using the Info system before going on to the actual tutorial.) | 10229 | using the Info system before going on to the actual tutorial.) |
| 10244 | The @kbd{M-# t} key is equivalent to @kbd{h t} (but it works at | 10230 | The @kbd{C-x * t} key is equivalent to @kbd{h t} (but it works at |
| 10245 | all times). | 10231 | all times). |
| 10246 | 10232 | ||
| 10247 | @kindex h s | 10233 | @kindex h s |
| 10248 | @kindex M-# s | 10234 | @kindex C-x * s |
| 10249 | @pindex calc-info-summary | 10235 | @pindex calc-info-summary |
| 10250 | The @kbd{h s} (@code{calc-info-summary}) command runs the Info system | 10236 | The @kbd{h s} (@code{calc-info-summary}) command runs the Info system |
| 10251 | on the Summary node of the Calc manual. @xref{Summary}. The @kbd{M-# s} | 10237 | on the Summary node of the Calc manual. @xref{Summary}. The @kbd{C-x * s} |
| 10252 | key is equivalent to @kbd{h s}. | 10238 | key is equivalent to @kbd{h s}. |
| 10253 | 10239 | ||
| 10254 | @kindex h k | 10240 | @kindex h k |
| @@ -10526,11 +10512,11 @@ you might then press @kbd{=} when it is time to evaluate this formula. | |||
| 10526 | @section ``Quick Calculator'' Mode | 10512 | @section ``Quick Calculator'' Mode |
| 10527 | 10513 | ||
| 10528 | @noindent | 10514 | @noindent |
| 10529 | @kindex M-# q | 10515 | @kindex C-x * q |
| 10530 | @pindex quick-calc | 10516 | @pindex quick-calc |
| 10531 | @cindex Quick Calculator | 10517 | @cindex Quick Calculator |
| 10532 | There is another way to invoke the Calculator if all you need to do | 10518 | There is another way to invoke the Calculator if all you need to do |
| 10533 | is make one or two quick calculations. Type @kbd{M-# q} (or | 10519 | is make one or two quick calculations. Type @kbd{C-x * q} (or |
| 10534 | @kbd{M-x quick-calc}), then type any formula as an algebraic entry. | 10520 | @kbd{M-x quick-calc}), then type any formula as an algebraic entry. |
| 10535 | The Calculator will compute the result and display it in the echo | 10521 | The Calculator will compute the result and display it in the echo |
| 10536 | area, without ever actually putting up a Calc window. | 10522 | area, without ever actually putting up a Calc window. |
| @@ -10539,11 +10525,11 @@ You can use the @kbd{$} character in a Quick Calculator formula to | |||
| 10539 | refer to the previous Quick Calculator result. Older results are | 10525 | refer to the previous Quick Calculator result. Older results are |
| 10540 | not retained; the Quick Calculator has no effect on the full | 10526 | not retained; the Quick Calculator has no effect on the full |
| 10541 | Calculator's stack or trail. If you compute a result and then | 10527 | Calculator's stack or trail. If you compute a result and then |
| 10542 | forget what it was, just run @code{M-# q} again and enter | 10528 | forget what it was, just run @code{C-x * q} again and enter |
| 10543 | @samp{$} as the formula. | 10529 | @samp{$} as the formula. |
| 10544 | 10530 | ||
| 10545 | If this is the first time you have used the Calculator in this Emacs | 10531 | If this is the first time you have used the Calculator in this Emacs |
| 10546 | session, the @kbd{M-# q} command will create the @code{*Calculator*} | 10532 | session, the @kbd{C-x * q} command will create the @code{*Calculator*} |
| 10547 | buffer and perform all the usual initializations; it simply will | 10533 | buffer and perform all the usual initializations; it simply will |
| 10548 | refrain from putting that buffer up in a new window. The Quick | 10534 | refrain from putting that buffer up in a new window. The Quick |
| 10549 | Calculator refers to the @code{*Calculator*} buffer for all mode | 10535 | Calculator refers to the @code{*Calculator*} buffer for all mode |
| @@ -10551,15 +10537,15 @@ settings. Thus, for example, to set the precision that the Quick | |||
| 10551 | Calculator uses, simply run the full Calculator momentarily and use | 10537 | Calculator uses, simply run the full Calculator momentarily and use |
| 10552 | the regular @kbd{p} command. | 10538 | the regular @kbd{p} command. |
| 10553 | 10539 | ||
| 10554 | If you use @code{M-# q} from inside the Calculator buffer, the | 10540 | If you use @code{C-x * q} from inside the Calculator buffer, the |
| 10555 | effect is the same as pressing the apostrophe key (algebraic entry). | 10541 | effect is the same as pressing the apostrophe key (algebraic entry). |
| 10556 | 10542 | ||
| 10557 | The result of a Quick calculation is placed in the Emacs ``kill ring'' | 10543 | The result of a Quick calculation is placed in the Emacs ``kill ring'' |
| 10558 | as well as being displayed. A subsequent @kbd{C-y} command will | 10544 | as well as being displayed. A subsequent @kbd{C-y} command will |
| 10559 | yank the result into the editing buffer. You can also use this | 10545 | yank the result into the editing buffer. You can also use this |
| 10560 | to yank the result into the next @kbd{M-# q} input line as a more | 10546 | to yank the result into the next @kbd{C-x * q} input line as a more |
| 10561 | explicit alternative to @kbd{$} notation, or to yank the result | 10547 | explicit alternative to @kbd{$} notation, or to yank the result |
| 10562 | into the Calculator stack after typing @kbd{M-# c}. | 10548 | into the Calculator stack after typing @kbd{C-x * c}. |
| 10563 | 10549 | ||
| 10564 | If you finish your formula by typing @key{LFD} (or @kbd{C-j}) instead | 10550 | If you finish your formula by typing @key{LFD} (or @kbd{C-j}) instead |
| 10565 | of @key{RET}, the result is inserted immediately into the current | 10551 | of @key{RET}, the result is inserted immediately into the current |
| @@ -10655,7 +10641,7 @@ queried whether or not to restore the variable to its original value. | |||
| 10655 | The @kbd{U} key may be pressed any number of times to undo successively | 10641 | The @kbd{U} key may be pressed any number of times to undo successively |
| 10656 | farther back in time; with a numeric prefix argument it undoes a | 10642 | farther back in time; with a numeric prefix argument it undoes a |
| 10657 | specified number of operations. The undo history is cleared only by the | 10643 | specified number of operations. The undo history is cleared only by the |
| 10658 | @kbd{q} (@code{calc-quit}) command. (Recall that @kbd{M-# c} is | 10644 | @kbd{q} (@code{calc-quit}) command. (Recall that @kbd{C-x * c} is |
| 10659 | synonymous with @code{calc-quit} while inside the Calculator; this | 10645 | synonymous with @code{calc-quit} while inside the Calculator; this |
| 10660 | also clears the undo history.) | 10646 | also clears the undo history.) |
| 10661 | 10647 | ||
| @@ -10731,7 +10717,7 @@ that you must always press @kbd{w} yourself to see the messages). | |||
| 10731 | @pindex another-calc | 10717 | @pindex another-calc |
| 10732 | It is possible to have any number of Calc mode buffers at once. | 10718 | It is possible to have any number of Calc mode buffers at once. |
| 10733 | Usually this is done by executing @kbd{M-x another-calc}, which | 10719 | Usually this is done by executing @kbd{M-x another-calc}, which |
| 10734 | is similar to @kbd{M-# c} except that if a @samp{*Calculator*} | 10720 | is similar to @kbd{C-x * c} except that if a @samp{*Calculator*} |
| 10735 | buffer already exists, a new, independent one with a name of the | 10721 | buffer already exists, a new, independent one with a name of the |
| 10736 | form @samp{*Calculator*<@var{n}>} is created. You can also use the | 10722 | form @samp{*Calculator*<@var{n}>} is created. You can also use the |
| 10737 | command @code{calc-mode} to put any buffer into Calculator mode, but | 10723 | command @code{calc-mode} to put any buffer into Calculator mode, but |
| @@ -10778,9 +10764,9 @@ Occasionally Calc may lose track of when a certain component is | |||
| 10778 | necessary; typically this means you will type a command and it won't | 10764 | necessary; typically this means you will type a command and it won't |
| 10779 | work because some function you've never heard of was undefined. | 10765 | work because some function you've never heard of was undefined. |
| 10780 | 10766 | ||
| 10781 | @kindex M-# L | 10767 | @kindex C-x * L |
| 10782 | @pindex calc-load-everything | 10768 | @pindex calc-load-everything |
| 10783 | If this happens, the easiest workaround is to type @kbd{M-# L} | 10769 | If this happens, the easiest workaround is to type @kbd{C-x * L} |
| 10784 | (@code{calc-load-everything}) to force all the parts of Calc to be | 10770 | (@code{calc-load-everything}) to force all the parts of Calc to be |
| 10785 | loaded right away. This will cause Emacs to take up a lot more | 10771 | loaded right away. This will cause Emacs to take up a lot more |
| 10786 | memory than it would otherwise, but it's guaranteed to fix the problem. | 10772 | memory than it would otherwise, but it's guaranteed to fix the problem. |
| @@ -10839,7 +10825,7 @@ data points computed by the graphing commands. | |||
| 10839 | If you suspect a Calculator cache has become corrupt, you can use the | 10825 | If you suspect a Calculator cache has become corrupt, you can use the |
| 10840 | @code{calc-flush-caches} command to reset all caches to the empty state. | 10826 | @code{calc-flush-caches} command to reset all caches to the empty state. |
| 10841 | (This should only be necessary in the event of bugs in the Calculator.) | 10827 | (This should only be necessary in the event of bugs in the Calculator.) |
| 10842 | The @kbd{M-# 0} (with the zero key) command also resets caches along | 10828 | The @kbd{C-x * 0} (with the zero key) command also resets caches along |
| 10843 | with all other aspects of the Calculator's state. | 10829 | with all other aspects of the Calculator's state. |
| 10844 | 10830 | ||
| 10845 | @node Debugging Calc, , Caches, Troubleshooting Commands | 10831 | @node Debugging Calc, , Caches, Troubleshooting Commands |
| @@ -12049,8 +12035,8 @@ represent the same operation. | |||
| 12049 | 12035 | ||
| 12050 | Commands that interpret (``parse'') text as algebraic formulas include | 12036 | Commands that interpret (``parse'') text as algebraic formulas include |
| 12051 | algebraic entry (@kbd{'}), editing commands like @kbd{`} which parse | 12037 | algebraic entry (@kbd{'}), editing commands like @kbd{`} which parse |
| 12052 | the contents of the editing buffer when you finish, the @kbd{M-# g} | 12038 | the contents of the editing buffer when you finish, the @kbd{C-x * g} |
| 12053 | and @w{@kbd{M-# r}} commands, the @kbd{C-y} command, the X window system | 12039 | and @w{@kbd{C-x * r}} commands, the @kbd{C-y} command, the X window system |
| 12054 | ``paste'' mouse operation, and Embedded mode. All of these operations | 12040 | ``paste'' mouse operation, and Embedded mode. All of these operations |
| 12055 | use the same rules for parsing formulas; in particular, language modes | 12041 | use the same rules for parsing formulas; in particular, language modes |
| 12056 | (@pxref{Language Modes}) affect them all in the same way. | 12042 | (@pxref{Language Modes}) affect them all in the same way. |
| @@ -12446,8 +12432,8 @@ This will cause Emacs to reestablish these modes each time it starts up. | |||
| 12446 | The modes saved in the file include everything controlled by the @kbd{m} | 12432 | The modes saved in the file include everything controlled by the @kbd{m} |
| 12447 | and @kbd{d} prefix keys, the current precision and binary word size, | 12433 | and @kbd{d} prefix keys, the current precision and binary word size, |
| 12448 | whether or not the trail is displayed, the current height of the Calc | 12434 | whether or not the trail is displayed, the current height of the Calc |
| 12449 | window, and more. The current interface (used when you type @kbd{M-# | 12435 | window, and more. The current interface (used when you type @kbd{C-x * *}) |
| 12450 | M-#}) is also saved. If there were already saved mode settings in the | 12436 | is also saved. If there were already saved mode settings in the |
| 12451 | file, they are replaced. Otherwise, the new mode information is | 12437 | file, they are replaced. Otherwise, the new mode information is |
| 12452 | appended to the end of the file. | 12438 | appended to the end of the file. |
| 12453 | 12439 | ||
| @@ -12473,7 +12459,7 @@ if this file exists, and this file becomes the one that Calc will | |||
| 12473 | use in the future for commands like @kbd{m m}. The default settings | 12459 | use in the future for commands like @kbd{m m}. The default settings |
| 12474 | file name is @file{~/.calc.el}. You can see the current file name by | 12460 | file name is @file{~/.calc.el}. You can see the current file name by |
| 12475 | giving a blank response to the @kbd{m F} prompt. See also the | 12461 | giving a blank response to the @kbd{m F} prompt. See also the |
| 12476 | discussion of the @code{calc-settings-file} variable; @pxref{Customizable Variables}. | 12462 | discussion of the @code{calc-settings-file} variable; @pxref{Customizing Calc}. |
| 12477 | 12463 | ||
| 12478 | If the file name you give is your user init file (typically | 12464 | If the file name you give is your user init file (typically |
| 12479 | @file{~/.emacs}), @kbd{m F} will not automatically load the new file. This | 12465 | @file{~/.emacs}), @kbd{m F} will not automatically load the new file. This |
| @@ -12494,7 +12480,7 @@ extensions modules. Otherwise, the extensions modules will not be loaded | |||
| 12494 | until the various advanced Calc features are used. Since this mode only | 12480 | until the various advanced Calc features are used. Since this mode only |
| 12495 | has effect when Calc is first loaded, @kbd{m x} is usually followed by | 12481 | has effect when Calc is first loaded, @kbd{m x} is usually followed by |
| 12496 | @kbd{m m} to make the mode-setting permanent. To load all of Calc just | 12482 | @kbd{m m} to make the mode-setting permanent. To load all of Calc just |
| 12497 | once, rather than always in the future, you can press @kbd{M-# L}. | 12483 | once, rather than always in the future, you can press @kbd{C-x * L}. |
| 12498 | 12484 | ||
| 12499 | @kindex m S | 12485 | @kindex m S |
| 12500 | @pindex calc-shift-prefix | 12486 | @pindex calc-shift-prefix |
| @@ -12864,7 +12850,7 @@ recomputation is off, you can think of @kbd{m C m C} as a command | |||
| 12864 | to update all @samp{=>} operators while leaving recomputation off.) | 12850 | to update all @samp{=>} operators while leaving recomputation off.) |
| 12865 | 12851 | ||
| 12866 | To update @samp{=>} operators in an Embedded buffer while | 12852 | To update @samp{=>} operators in an Embedded buffer while |
| 12867 | automatic recomputation is off, use @w{@kbd{M-# u}}. | 12853 | automatic recomputation is off, use @w{@kbd{C-x * u}}. |
| 12868 | @xref{Embedded Mode}. | 12854 | @xref{Embedded Mode}. |
| 12869 | 12855 | ||
| 12870 | @node Working Message, , Automatic Recomputation, Calculation Modes | 12856 | @node Working Message, , Automatic Recomputation, Calculation Modes |
| @@ -13511,7 +13497,7 @@ uses it as the digit separator. As a special case, @kbd{d , \} selects | |||
| 13511 | @samp{\,} (@TeX{}'s thin-space symbol) as the digit separator. | 13497 | @samp{\,} (@TeX{}'s thin-space symbol) as the digit separator. |
| 13512 | 13498 | ||
| 13513 | Please note that grouped numbers will not generally be parsed correctly | 13499 | Please note that grouped numbers will not generally be parsed correctly |
| 13514 | if re-read in textual form, say by the use of @kbd{M-# y} and @kbd{M-# g}. | 13500 | if re-read in textual form, say by the use of @kbd{C-x * y} and @kbd{C-x * g}. |
| 13515 | (@xref{Kill and Yank}, for details on these commands.) One exception is | 13501 | (@xref{Kill and Yank}, for details on these commands.) One exception is |
| 13516 | the @samp{\,} separator, which doesn't interfere with parsing because it | 13502 | the @samp{\,} separator, which doesn't interfere with parsing because it |
| 13517 | is ignored by @TeX{} language mode. | 13503 | is ignored by @TeX{} language mode. |
| @@ -13571,7 +13557,7 @@ significant figures but displays only six. (In fact, intermediate | |||
| 13571 | calculations are often carried to one or two more significant figures, | 13557 | calculations are often carried to one or two more significant figures, |
| 13572 | but values placed on the stack will be rounded down to ten figures.) | 13558 | but values placed on the stack will be rounded down to ten figures.) |
| 13573 | Numbers are never actually rounded to the display precision for storage, | 13559 | Numbers are never actually rounded to the display precision for storage, |
| 13574 | except by commands like @kbd{C-k} and @kbd{M-# y} which operate on the | 13560 | except by commands like @kbd{C-k} and @kbd{C-x * y} which operate on the |
| 13575 | actual displayed text in the Calculator buffer. | 13561 | actual displayed text in the Calculator buffer. |
| 13576 | 13562 | ||
| 13577 | @kindex d . | 13563 | @kindex d . |
| @@ -14133,9 +14119,9 @@ and use the standard notation by giving a numeric prefix, e.g., @kbd{C-u '}. | |||
| 14133 | For example, suppose the formula @samp{2*a[1] + atan(a[2])} occurs in a C | 14119 | For example, suppose the formula @samp{2*a[1] + atan(a[2])} occurs in a C |
| 14134 | program; elsewhere in the program you need the derivatives of this formula | 14120 | program; elsewhere in the program you need the derivatives of this formula |
| 14135 | with respect to @samp{a[1]} and @samp{a[2]}. First, type @kbd{d C} | 14121 | with respect to @samp{a[1]} and @samp{a[2]}. First, type @kbd{d C} |
| 14136 | to switch to C notation. Now use @code{C-u M-# g} to grab the formula | 14122 | to switch to C notation. Now use @code{C-u C-x * g} to grab the formula |
| 14137 | into the Calculator, @kbd{a d a[1] @key{RET}} to differentiate with respect | 14123 | into the Calculator, @kbd{a d a[1] @key{RET}} to differentiate with respect |
| 14138 | to the first variable, and @kbd{M-# y} to yank the formula for the derivative | 14124 | to the first variable, and @kbd{C-x * y} to yank the formula for the derivative |
| 14139 | back into your C program. Press @kbd{U} to undo the differentiation and | 14125 | back into your C program. Press @kbd{U} to undo the differentiation and |
| 14140 | repeat with @kbd{a d a[2] @key{RET}} for the other derivative. | 14126 | repeat with @kbd{a d a[2] @key{RET}} for the other derivative. |
| 14141 | 14127 | ||
| @@ -21278,8 +21264,8 @@ but they are not currently supported with @kbd{V U} or @kbd{I V U}. | |||
| 21278 | The obsolete reduce-by-columns function, @code{reducec}, is still | 21264 | The obsolete reduce-by-columns function, @code{reducec}, is still |
| 21279 | supported but there is no way to get it through the @kbd{V R} command. | 21265 | supported but there is no way to get it through the @kbd{V R} command. |
| 21280 | 21266 | ||
| 21281 | The commands @kbd{M-# :} and @kbd{M-# _} are equivalent to typing | 21267 | The commands @kbd{C-x * :} and @kbd{C-x * _} are equivalent to typing |
| 21282 | @kbd{M-# r} to grab a rectangle of data into Calc, and then typing | 21268 | @kbd{C-x * r} to grab a rectangle of data into Calc, and then typing |
| 21283 | @kbd{V R : +} or @kbd{V R _ +}, respectively, to sum the columns or | 21269 | @kbd{V R : +} or @kbd{V R _ +}, respectively, to sum the columns or |
| 21284 | rows of the matrix. @xref{Grabbing From Buffers}. | 21270 | rows of the matrix. @xref{Grabbing From Buffers}. |
| 21285 | 21271 | ||
| @@ -27934,7 +27920,7 @@ argument to @kbd{u v}. | |||
| 27934 | The @kbd{u V} (@code{calc-view-units-table}) command is like @kbd{u v} except | 27920 | The @kbd{u V} (@code{calc-view-units-table}) command is like @kbd{u v} except |
| 27935 | that the cursor is not moved into the Units Table buffer. You can | 27921 | that the cursor is not moved into the Units Table buffer. You can |
| 27936 | type @kbd{u V} again to remove the Units Table from the display. To | 27922 | type @kbd{u V} again to remove the Units Table from the display. To |
| 27937 | return from the Units Table buffer after a @kbd{u v}, type @kbd{M-# c} | 27923 | return from the Units Table buffer after a @kbd{u v}, type @kbd{C-x * c} |
| 27938 | again or use the regular Emacs @w{@kbd{C-x o}} (@code{other-window}) | 27924 | again or use the regular Emacs @w{@kbd{C-x o}} (@code{other-window}) |
| 27939 | command. You can also kill the buffer with @kbd{C-x k} if you wish; | 27925 | command. You can also kill the buffer with @kbd{C-x k} if you wish; |
| 27940 | the actual units table is safely stored inside the Calculator. | 27926 | the actual units table is safely stored inside the Calculator. |
| @@ -29320,7 +29306,7 @@ display or print the output of GNUPLOT, respectively. These may be | |||
| 29320 | @samp{%s} to signify the name of the file to be displayed or printed. | 29306 | @samp{%s} to signify the name of the file to be displayed or printed. |
| 29321 | Or, these variables may contain Lisp expressions which are evaluated | 29307 | Or, these variables may contain Lisp expressions which are evaluated |
| 29322 | to display or print the output. These variables are customizable | 29308 | to display or print the output. These variables are customizable |
| 29323 | (@pxref{Customizable Variables}). | 29309 | (@pxref{Customizing Calc}). |
| 29324 | 29310 | ||
| 29325 | @kindex g x | 29311 | @kindex g x |
| 29326 | @pindex calc-graph-display | 29312 | @pindex calc-graph-display |
| @@ -29479,20 +29465,20 @@ difference.) | |||
| 29479 | @section Grabbing from Other Buffers | 29465 | @section Grabbing from Other Buffers |
| 29480 | 29466 | ||
| 29481 | @noindent | 29467 | @noindent |
| 29482 | @kindex M-# g | 29468 | @kindex C-x * g |
| 29483 | @pindex calc-grab-region | 29469 | @pindex calc-grab-region |
| 29484 | The @kbd{M-# g} (@code{calc-grab-region}) command takes the text between | 29470 | The @kbd{C-x * g} (@code{calc-grab-region}) command takes the text between |
| 29485 | point and mark in the current buffer and attempts to parse it as a | 29471 | point and mark in the current buffer and attempts to parse it as a |
| 29486 | vector of values. Basically, it wraps the text in vector brackets | 29472 | vector of values. Basically, it wraps the text in vector brackets |
| 29487 | @samp{[ ]} unless the text already is enclosed in vector brackets, | 29473 | @samp{[ ]} unless the text already is enclosed in vector brackets, |
| 29488 | then reads the text as if it were an algebraic entry. The contents | 29474 | then reads the text as if it were an algebraic entry. The contents |
| 29489 | of the vector may be numbers, formulas, or any other Calc objects. | 29475 | of the vector may be numbers, formulas, or any other Calc objects. |
| 29490 | If the @kbd{M-# g} command works successfully, it does an automatic | 29476 | If the @kbd{C-x * g} command works successfully, it does an automatic |
| 29491 | @kbd{M-# c} to enter the Calculator buffer. | 29477 | @kbd{C-x * c} to enter the Calculator buffer. |
| 29492 | 29478 | ||
| 29493 | A numeric prefix argument grabs the specified number of lines around | 29479 | A numeric prefix argument grabs the specified number of lines around |
| 29494 | point, ignoring the mark. A positive prefix grabs from point to the | 29480 | point, ignoring the mark. A positive prefix grabs from point to the |
| 29495 | @expr{n}th following newline (so that @kbd{M-1 M-# g} grabs from point | 29481 | @expr{n}th following newline (so that @kbd{M-1 C-x * g} grabs from point |
| 29496 | to the end of the current line); a negative prefix grabs from point | 29482 | to the end of the current line); a negative prefix grabs from point |
| 29497 | back to the @expr{n+1}st preceding newline. In these cases the text | 29483 | back to the @expr{n+1}st preceding newline. In these cases the text |
| 29498 | that is grabbed is exactly the same as the text that @kbd{C-k} would | 29484 | that is grabbed is exactly the same as the text that @kbd{C-k} would |
| @@ -29503,19 +29489,19 @@ line. | |||
| 29503 | 29489 | ||
| 29504 | A plain @kbd{C-u} prefix interprets the region between point and mark | 29490 | A plain @kbd{C-u} prefix interprets the region between point and mark |
| 29505 | as a single number or formula rather than a vector. For example, | 29491 | as a single number or formula rather than a vector. For example, |
| 29506 | @kbd{M-# g} on the text @samp{2 a b} produces the vector of three | 29492 | @kbd{C-x * g} on the text @samp{2 a b} produces the vector of three |
| 29507 | values @samp{[2, a, b]}, but @kbd{C-u M-# g} on the same region | 29493 | values @samp{[2, a, b]}, but @kbd{C-u C-x * g} on the same region |
| 29508 | reads a formula which is a product of three things: @samp{2 a b}. | 29494 | reads a formula which is a product of three things: @samp{2 a b}. |
| 29509 | (The text @samp{a + b}, on the other hand, will be grabbed as a | 29495 | (The text @samp{a + b}, on the other hand, will be grabbed as a |
| 29510 | vector of one element by plain @kbd{M-# g} because the interpretation | 29496 | vector of one element by plain @kbd{C-x * g} because the interpretation |
| 29511 | @samp{[a, +, b]} would be a syntax error.) | 29497 | @samp{[a, +, b]} would be a syntax error.) |
| 29512 | 29498 | ||
| 29513 | If a different language has been specified (@pxref{Language Modes}), | 29499 | If a different language has been specified (@pxref{Language Modes}), |
| 29514 | the grabbed text will be interpreted according to that language. | 29500 | the grabbed text will be interpreted according to that language. |
| 29515 | 29501 | ||
| 29516 | @kindex M-# r | 29502 | @kindex C-x * r |
| 29517 | @pindex calc-grab-rectangle | 29503 | @pindex calc-grab-rectangle |
| 29518 | The @kbd{M-# r} (@code{calc-grab-rectangle}) command takes the text between | 29504 | The @kbd{C-x * r} (@code{calc-grab-rectangle}) command takes the text between |
| 29519 | point and mark and attempts to parse it as a matrix. If point and mark | 29505 | point and mark and attempts to parse it as a matrix. If point and mark |
| 29520 | are both in the leftmost column, the lines in between are parsed in their | 29506 | are both in the leftmost column, the lines in between are parsed in their |
| 29521 | entirety. Otherwise, point and mark define the corners of a rectangle | 29507 | entirety. Otherwise, point and mark define the corners of a rectangle |
| @@ -29535,15 +29521,15 @@ were surrounded by square brackets. Leading line numbers (in the | |||
| 29535 | format used in the Calc stack buffer) are ignored. If you wish to | 29521 | format used in the Calc stack buffer) are ignored. If you wish to |
| 29536 | force this interpretation (even if the line contains bracketed | 29522 | force this interpretation (even if the line contains bracketed |
| 29537 | portions), give a negative numeric prefix argument to the | 29523 | portions), give a negative numeric prefix argument to the |
| 29538 | @kbd{M-# r} command. | 29524 | @kbd{C-x * r} command. |
| 29539 | 29525 | ||
| 29540 | If you give a numeric prefix argument of zero or plain @kbd{C-u}, each | 29526 | If you give a numeric prefix argument of zero or plain @kbd{C-u}, each |
| 29541 | line is instead interpreted as a single formula which is converted into | 29527 | line is instead interpreted as a single formula which is converted into |
| 29542 | a one-element vector. Thus the result of @kbd{C-u M-# r} will be a | 29528 | a one-element vector. Thus the result of @kbd{C-u C-x * r} will be a |
| 29543 | one-column matrix. For example, suppose one line of the data is the | 29529 | one-column matrix. For example, suppose one line of the data is the |
| 29544 | expression @samp{2 a}. A plain @w{@kbd{M-# r}} will interpret this as | 29530 | expression @samp{2 a}. A plain @w{@kbd{C-x * r}} will interpret this as |
| 29545 | @samp{[2 a]}, which in turn is read as a two-element vector that forms | 29531 | @samp{[2 a]}, which in turn is read as a two-element vector that forms |
| 29546 | one row of the matrix. But a @kbd{C-u M-# r} will interpret this row | 29532 | one row of the matrix. But a @kbd{C-u C-x * r} will interpret this row |
| 29547 | as @samp{[2*a]}. | 29533 | as @samp{[2*a]}. |
| 29548 | 29534 | ||
| 29549 | If you give a positive numeric prefix argument @var{n}, then each line | 29535 | If you give a positive numeric prefix argument @var{n}, then each line |
| @@ -29558,35 +29544,35 @@ constituent rows and columns. (If it is a | |||
| 29558 | @infoline 1x1 | 29544 | @infoline 1x1 |
| 29559 | matrix, just hit @kbd{v u} (@code{calc-unpack}) twice.) | 29545 | matrix, just hit @kbd{v u} (@code{calc-unpack}) twice.) |
| 29560 | 29546 | ||
| 29561 | @kindex M-# : | 29547 | @kindex C-x * : |
| 29562 | @kindex M-# _ | 29548 | @kindex C-x * _ |
| 29563 | @pindex calc-grab-sum-across | 29549 | @pindex calc-grab-sum-across |
| 29564 | @pindex calc-grab-sum-down | 29550 | @pindex calc-grab-sum-down |
| 29565 | @cindex Summing rows and columns of data | 29551 | @cindex Summing rows and columns of data |
| 29566 | The @kbd{M-# :} (@code{calc-grab-sum-down}) command is a handy way to | 29552 | The @kbd{C-x * :} (@code{calc-grab-sum-down}) command is a handy way to |
| 29567 | grab a rectangle of data and sum its columns. It is equivalent to | 29553 | grab a rectangle of data and sum its columns. It is equivalent to |
| 29568 | typing @kbd{M-# r}, followed by @kbd{V R : +} (the vector reduction | 29554 | typing @kbd{C-x * r}, followed by @kbd{V R : +} (the vector reduction |
| 29569 | command that sums the columns of a matrix; @pxref{Reducing}). The | 29555 | command that sums the columns of a matrix; @pxref{Reducing}). The |
| 29570 | result of the command will be a vector of numbers, one for each column | 29556 | result of the command will be a vector of numbers, one for each column |
| 29571 | in the input data. The @kbd{M-# _} (@code{calc-grab-sum-across}) command | 29557 | in the input data. The @kbd{C-x * _} (@code{calc-grab-sum-across}) command |
| 29572 | similarly grabs a rectangle and sums its rows by executing @w{@kbd{V R _ +}}. | 29558 | similarly grabs a rectangle and sums its rows by executing @w{@kbd{V R _ +}}. |
| 29573 | 29559 | ||
| 29574 | As well as being more convenient, @kbd{M-# :} and @kbd{M-# _} are also | 29560 | As well as being more convenient, @kbd{C-x * :} and @kbd{C-x * _} are also |
| 29575 | much faster because they don't actually place the grabbed vector on | 29561 | much faster because they don't actually place the grabbed vector on |
| 29576 | the stack. In a @kbd{M-# r V R : +} sequence, formatting the vector | 29562 | the stack. In a @kbd{C-x * r V R : +} sequence, formatting the vector |
| 29577 | for display on the stack takes a large fraction of the total time | 29563 | for display on the stack takes a large fraction of the total time |
| 29578 | (unless you have planned ahead and used @kbd{v .} and @kbd{t .} modes). | 29564 | (unless you have planned ahead and used @kbd{v .} and @kbd{t .} modes). |
| 29579 | 29565 | ||
| 29580 | For example, suppose we have a column of numbers in a file which we | 29566 | For example, suppose we have a column of numbers in a file which we |
| 29581 | wish to sum. Go to one corner of the column and press @kbd{C-@@} to | 29567 | wish to sum. Go to one corner of the column and press @kbd{C-@@} to |
| 29582 | set the mark; go to the other corner and type @kbd{M-# :}. Since there | 29568 | set the mark; go to the other corner and type @kbd{C-x * :}. Since there |
| 29583 | is only one column, the result will be a vector of one number, the sum. | 29569 | is only one column, the result will be a vector of one number, the sum. |
| 29584 | (You can type @kbd{v u} to unpack this vector into a plain number if | 29570 | (You can type @kbd{v u} to unpack this vector into a plain number if |
| 29585 | you want to do further arithmetic with it.) | 29571 | you want to do further arithmetic with it.) |
| 29586 | 29572 | ||
| 29587 | To compute the product of the column of numbers, we would have to do | 29573 | To compute the product of the column of numbers, we would have to do |
| 29588 | it ``by hand'' since there's no special grab-and-multiply command. | 29574 | it ``by hand'' since there's no special grab-and-multiply command. |
| 29589 | Use @kbd{M-# r} to grab the column of numbers into the calculator in | 29575 | Use @kbd{C-x * r} to grab the column of numbers into the calculator in |
| 29590 | the form of a column matrix. The statistics command @kbd{u *} is a | 29576 | the form of a column matrix. The statistics command @kbd{u *} is a |
| 29591 | handy way to find the product of a vector or matrix of numbers. | 29577 | handy way to find the product of a vector or matrix of numbers. |
| 29592 | @xref{Statistical Operations}. Another approach would be to use | 29578 | @xref{Statistical Operations}. Another approach would be to use |
| @@ -29618,13 +29604,13 @@ latter strips off the trailing newline. | |||
| 29618 | With a lone @kbd{C-u} as a prefix argument, @kbd{y} @emph{replaces} the | 29604 | With a lone @kbd{C-u} as a prefix argument, @kbd{y} @emph{replaces} the |
| 29619 | region in the other buffer with the yanked text, then quits the | 29605 | region in the other buffer with the yanked text, then quits the |
| 29620 | Calculator, leaving you in that buffer. A typical use would be to use | 29606 | Calculator, leaving you in that buffer. A typical use would be to use |
| 29621 | @kbd{M-# g} to read a region of data into the Calculator, operate on the | 29607 | @kbd{C-x * g} to read a region of data into the Calculator, operate on the |
| 29622 | data to produce a new matrix, then type @kbd{C-u y} to replace the | 29608 | data to produce a new matrix, then type @kbd{C-u y} to replace the |
| 29623 | original data with the new data. One might wish to alter the matrix | 29609 | original data with the new data. One might wish to alter the matrix |
| 29624 | display style (@pxref{Vector and Matrix Formats}) or change the current | 29610 | display style (@pxref{Vector and Matrix Formats}) or change the current |
| 29625 | display language (@pxref{Language Modes}) before doing this. Also, note | 29611 | display language (@pxref{Language Modes}) before doing this. Also, note |
| 29626 | that this command replaces a linear region of text (as grabbed by | 29612 | that this command replaces a linear region of text (as grabbed by |
| 29627 | @kbd{M-# g}), not a rectangle (as grabbed by @kbd{M-# r}). | 29613 | @kbd{C-x * g}), not a rectangle (as grabbed by @kbd{C-x * r}). |
| 29628 | 29614 | ||
| 29629 | If the editing buffer is in overwrite (as opposed to insert) mode, | 29615 | If the editing buffer is in overwrite (as opposed to insert) mode, |
| 29630 | and the @kbd{C-u} prefix was not used, then the yanked number will | 29616 | and the @kbd{C-u} prefix was not used, then the yanked number will |
| @@ -29641,8 +29627,8 @@ number, lengthening or shortening as necessary. The concept of | |||
| 29641 | ``overwrite mode'' has thus been generalized from overwriting characters | 29627 | ``overwrite mode'' has thus been generalized from overwriting characters |
| 29642 | to overwriting one complete number with another. | 29628 | to overwriting one complete number with another. |
| 29643 | 29629 | ||
| 29644 | @kindex M-# y | 29630 | @kindex C-x * y |
| 29645 | The @kbd{M-# y} key sequence is equivalent to @kbd{y} except that | 29631 | The @kbd{C-x * y} key sequence is equivalent to @kbd{y} except that |
| 29646 | it can be typed anywhere, not just in Calc. This provides an easy | 29632 | it can be typed anywhere, not just in Calc. This provides an easy |
| 29647 | way to guarantee that Calc knows which editing buffer you want to use! | 29633 | way to guarantee that Calc knows which editing buffer you want to use! |
| 29648 | 29634 | ||
| @@ -29679,9 +29665,9 @@ in the Calc window. | |||
| 29679 | @chapter Keypad Mode | 29665 | @chapter Keypad Mode |
| 29680 | 29666 | ||
| 29681 | @noindent | 29667 | @noindent |
| 29682 | @kindex M-# k | 29668 | @kindex C-x * k |
| 29683 | @pindex calc-keypad | 29669 | @pindex calc-keypad |
| 29684 | The @kbd{M-# k} (@code{calc-keypad}) command starts the Calculator | 29670 | The @kbd{C-x * k} (@code{calc-keypad}) command starts the Calculator |
| 29685 | and displays a picture of a calculator-style keypad. If you are using | 29671 | and displays a picture of a calculator-style keypad. If you are using |
| 29686 | the X window system, you can click on any of the ``keys'' in the | 29672 | the X window system, you can click on any of the ``keys'' in the |
| 29687 | keypad using the left mouse button to operate the calculator. | 29673 | keypad using the left mouse button to operate the calculator. |
| @@ -29690,7 +29676,7 @@ you can type in your file while simultaneously performing | |||
| 29690 | calculations with the mouse. | 29676 | calculations with the mouse. |
| 29691 | 29677 | ||
| 29692 | @pindex full-calc-keypad | 29678 | @pindex full-calc-keypad |
| 29693 | If you have used @kbd{M-# b} first, @kbd{M-# k} instead invokes | 29679 | If you have used @kbd{C-x * b} first, @kbd{C-x * k} instead invokes |
| 29694 | the @code{full-calc-keypad} command, which takes over the whole | 29680 | the @code{full-calc-keypad} command, which takes over the whole |
| 29695 | Emacs screen and displays the keypad, the Calc stack, and the Calc | 29681 | Emacs screen and displays the keypad, the Calc stack, and the Calc |
| 29696 | trail all at once. This mode would normally be used when running | 29682 | trail all at once. This mode would normally be used when running |
| @@ -29851,9 +29837,9 @@ of 0 @samp{[]}, 1 @samp{[)}, 2 @samp{(]} or 3 @samp{()}, followed | |||
| 29851 | by the two limits of the interval. | 29837 | by the two limits of the interval. |
| 29852 | @end table | 29838 | @end table |
| 29853 | 29839 | ||
| 29854 | The @kbd{OFF} key turns Calc off; typing @kbd{M-# k} or @kbd{M-# M-#} | 29840 | The @kbd{OFF} key turns Calc off; typing @kbd{C-x * k} or @kbd{C-x * *} |
| 29855 | again has the same effect. This is analogous to typing @kbd{q} or | 29841 | again has the same effect. This is analogous to typing @kbd{q} or |
| 29856 | hitting @kbd{M-# c} again in the normal calculator. If Calc is | 29842 | hitting @kbd{C-x * c} again in the normal calculator. If Calc is |
| 29857 | running standalone (the @code{full-calc-keypad} command appeared in the | 29843 | running standalone (the @code{full-calc-keypad} command appeared in the |
| 29858 | command line that started Emacs), then @kbd{OFF} is replaced with | 29844 | command line that started Emacs), then @kbd{OFF} is replaced with |
| 29859 | @kbd{EXIT}; clicking on this actually exits Emacs itself. | 29845 | @kbd{EXIT}; clicking on this actually exits Emacs itself. |
| @@ -30093,11 +30079,11 @@ linked to the stack and this copying is taken care of automatically. | |||
| 30093 | @section Basic Embedded Mode | 30079 | @section Basic Embedded Mode |
| 30094 | 30080 | ||
| 30095 | @noindent | 30081 | @noindent |
| 30096 | @kindex M-# e | 30082 | @kindex C-x * e |
| 30097 | @pindex calc-embedded | 30083 | @pindex calc-embedded |
| 30098 | To enter Embedded mode, position the Emacs point (cursor) on a | 30084 | To enter Embedded mode, position the Emacs point (cursor) on a |
| 30099 | formula in any buffer and press @kbd{M-# e} (@code{calc-embedded}). | 30085 | formula in any buffer and press @kbd{C-x * e} (@code{calc-embedded}). |
| 30100 | Note that @kbd{M-# e} is not to be used in the Calc stack buffer | 30086 | Note that @kbd{C-x * e} is not to be used in the Calc stack buffer |
| 30101 | like most Calc commands, but rather in regular editing buffers that | 30087 | like most Calc commands, but rather in regular editing buffers that |
| 30102 | are visiting your own files. | 30088 | are visiting your own files. |
| 30103 | 30089 | ||
| @@ -30108,7 +30094,7 @@ Similarly, Calc will use @TeX{} language for @code{tex-mode}, | |||
| 30108 | @code{plain-tex-mode} and @code{context-mode}, C language for | 30094 | @code{plain-tex-mode} and @code{context-mode}, C language for |
| 30109 | @code{c-mode} and @code{c++-mode}, FORTRAN language for | 30095 | @code{c-mode} and @code{c++-mode}, FORTRAN language for |
| 30110 | @code{fortran-mode} and @code{f90-mode}, Pascal for @code{pascal-mode}, | 30096 | @code{fortran-mode} and @code{f90-mode}, Pascal for @code{pascal-mode}, |
| 30111 | and eqn for @code{nroff-mode} (@pxref{Customizable Variables}). | 30097 | and eqn for @code{nroff-mode} (@pxref{Customizing Calc}). |
| 30112 | These can be overridden with Calc's mode | 30098 | These can be overridden with Calc's mode |
| 30113 | changing commands (@pxref{Mode Settings in Embedded Mode}). If no | 30099 | changing commands (@pxref{Mode Settings in Embedded Mode}). If no |
| 30114 | suitable language is available, Calc will continue with its current language. | 30100 | suitable language is available, Calc will continue with its current language. |
| @@ -30145,9 +30131,9 @@ With a prefix argument of zero, Calc uses the current region (delimited | |||
| 30145 | by point and mark) instead of formula delimiters. With a prefix | 30131 | by point and mark) instead of formula delimiters. With a prefix |
| 30146 | argument of @kbd{C-u} only, Calc uses the current line as the formula. | 30132 | argument of @kbd{C-u} only, Calc uses the current line as the formula. |
| 30147 | 30133 | ||
| 30148 | @kindex M-# w | 30134 | @kindex C-x * w |
| 30149 | @pindex calc-embedded-word | 30135 | @pindex calc-embedded-word |
| 30150 | The @kbd{M-# w} (@code{calc-embedded-word}) command will start Embedded | 30136 | The @kbd{C-x * w} (@code{calc-embedded-word}) command will start Embedded |
| 30151 | mode on the current ``word''; in this case Calc will scan for the first | 30137 | mode on the current ``word''; in this case Calc will scan for the first |
| 30152 | non-numeric character (i.e., the first character that is not a digit, | 30138 | non-numeric character (i.e., the first character that is not a digit, |
| 30153 | sign, decimal point, or upper- or lower-case @samp{e}) forward and | 30139 | sign, decimal point, or upper- or lower-case @samp{e}) forward and |
| @@ -30165,7 +30151,7 @@ in Normal language mode, but the @code{atan} won't correspond to | |||
| 30165 | the built-in @code{arctan} function, and the @samp{a[1]} will be | 30151 | the built-in @code{arctan} function, and the @samp{a[1]} will be |
| 30166 | interpreted as @samp{a} times the vector @samp{[1]}! | 30152 | interpreted as @samp{a} times the vector @samp{[1]}! |
| 30167 | 30153 | ||
| 30168 | If you press @kbd{M-# e} or @kbd{M-# w} to activate an embedded | 30154 | If you press @kbd{C-x * e} or @kbd{C-x * w} to activate an embedded |
| 30169 | formula which is blank, say with the cursor on the space between | 30155 | formula which is blank, say with the cursor on the space between |
| 30170 | the two delimiters @samp{$ $}, Calc will immediately prompt for | 30156 | the two delimiters @samp{$ $}, Calc will immediately prompt for |
| 30171 | an algebraic entry. | 30157 | an algebraic entry. |
| @@ -30179,10 +30165,10 @@ not affected by Embedded mode. | |||
| 30179 | When Embedded mode begins, Calc pushes the current formula onto | 30165 | When Embedded mode begins, Calc pushes the current formula onto |
| 30180 | the stack. No Calc stack window is created; however, Calc copies | 30166 | the stack. No Calc stack window is created; however, Calc copies |
| 30181 | the top-of-stack position into the original buffer at all times. | 30167 | the top-of-stack position into the original buffer at all times. |
| 30182 | You can create a Calc window by hand with @kbd{M-# o} if you | 30168 | You can create a Calc window by hand with @kbd{C-x * o} if you |
| 30183 | find you need to see the entire stack. | 30169 | find you need to see the entire stack. |
| 30184 | 30170 | ||
| 30185 | For example, typing @kbd{M-# e} while somewhere in the formula | 30171 | For example, typing @kbd{C-x * e} while somewhere in the formula |
| 30186 | @samp{n>2} in the following line enables Embedded mode on that | 30172 | @samp{n>2} in the following line enables Embedded mode on that |
| 30187 | inequality: | 30173 | inequality: |
| 30188 | 30174 | ||
| @@ -30216,7 +30202,7 @@ needs to be commuted. | |||
| 30216 | We define $F_n = F_(n-1)+F_(n-2)$ for all $2 < n$. | 30202 | We define $F_n = F_(n-1)+F_(n-2)$ for all $2 < n$. |
| 30217 | @end example | 30203 | @end example |
| 30218 | 30204 | ||
| 30219 | The @kbd{M-# o} command is a useful way to open a Calc window | 30205 | The @kbd{C-x * o} command is a useful way to open a Calc window |
| 30220 | without actually selecting that window. Giving this command | 30206 | without actually selecting that window. Giving this command |
| 30221 | verifies that @samp{2 < n} is also on the Calc stack. Typing | 30207 | verifies that @samp{2 < n} is also on the Calc stack. Typing |
| 30222 | @kbd{17 @key{RET}} would produce: | 30208 | @kbd{17 @key{RET}} would produce: |
| @@ -30232,9 +30218,9 @@ at this point will exchange the two stack values and restore | |||
| 30232 | normally see the stack in Embedded mode, it is still there and | 30218 | normally see the stack in Embedded mode, it is still there and |
| 30233 | it still operates in the same way. But, as with old-fashioned | 30219 | it still operates in the same way. But, as with old-fashioned |
| 30234 | RPN calculators, you can only see the value at the top of the | 30220 | RPN calculators, you can only see the value at the top of the |
| 30235 | stack at any given time (unless you use @kbd{M-# o}). | 30221 | stack at any given time (unless you use @kbd{C-x * o}). |
| 30236 | 30222 | ||
| 30237 | Typing @kbd{M-# e} again turns Embedded mode off. The Calc | 30223 | Typing @kbd{C-x * e} again turns Embedded mode off. The Calc |
| 30238 | window reveals that the formula @w{@samp{2 < n}} is automatically | 30224 | window reveals that the formula @w{@samp{2 < n}} is automatically |
| 30239 | removed from the stack, but the @samp{17} is not. Entering | 30225 | removed from the stack, but the @samp{17} is not. Entering |
| 30240 | Embedded mode always pushes one thing onto the stack, and | 30226 | Embedded mode always pushes one thing onto the stack, and |
| @@ -30242,11 +30228,11 @@ leaving Embedded mode always removes one thing. Anything else | |||
| 30242 | that happens on the stack is entirely your business as far as | 30228 | that happens on the stack is entirely your business as far as |
| 30243 | Embedded mode is concerned. | 30229 | Embedded mode is concerned. |
| 30244 | 30230 | ||
| 30245 | If you press @kbd{M-# e} in the wrong place by accident, it is | 30231 | If you press @kbd{C-x * e} in the wrong place by accident, it is |
| 30246 | possible that Calc will be able to parse the nearby text as a | 30232 | possible that Calc will be able to parse the nearby text as a |
| 30247 | formula and will mangle that text in an attempt to redisplay it | 30233 | formula and will mangle that text in an attempt to redisplay it |
| 30248 | ``properly'' in the current language mode. If this happens, | 30234 | ``properly'' in the current language mode. If this happens, |
| 30249 | press @kbd{M-# e} again to exit Embedded mode, then give the | 30235 | press @kbd{C-x * e} again to exit Embedded mode, then give the |
| 30250 | regular Emacs ``undo'' command (@kbd{C-_} or @kbd{C-x u}) to put | 30236 | regular Emacs ``undo'' command (@kbd{C-_} or @kbd{C-x u}) to put |
| 30251 | the text back the way it was before Calc edited it. Note that Calc's | 30237 | the text back the way it was before Calc edited it. Note that Calc's |
| 30252 | own Undo command (typed before you turn Embedded mode back off) | 30238 | own Undo command (typed before you turn Embedded mode back off) |
| @@ -30357,10 +30343,10 @@ and at x = 3 is | |||
| 30357 | @r{(the value)} | 30343 | @r{(the value)} |
| 30358 | @end smallexample | 30344 | @end smallexample |
| 30359 | 30345 | ||
| 30360 | @kindex M-# d | 30346 | @kindex C-x * d |
| 30361 | @pindex calc-embedded-duplicate | 30347 | @pindex calc-embedded-duplicate |
| 30362 | The @kbd{M-# d} (@code{calc-embedded-duplicate}) command is a | 30348 | The @kbd{C-x * d} (@code{calc-embedded-duplicate}) command is a |
| 30363 | handy way to make sequences like this. If you type @kbd{M-# d}, | 30349 | handy way to make sequences like this. If you type @kbd{C-x * d}, |
| 30364 | the formula under the cursor (which may or may not have Embedded | 30350 | the formula under the cursor (which may or may not have Embedded |
| 30365 | mode enabled for it at the time) is copied immediately below and | 30351 | mode enabled for it at the time) is copied immediately below and |
| 30366 | Embedded mode is then enabled for that copy. | 30352 | Embedded mode is then enabled for that copy. |
| @@ -30374,7 +30360,7 @@ The derivative of | |||
| 30374 | @end smallexample | 30360 | @end smallexample |
| 30375 | 30361 | ||
| 30376 | @noindent | 30362 | @noindent |
| 30377 | and press @kbd{M-# d} with the cursor on this formula. The result | 30363 | and press @kbd{C-x * d} with the cursor on this formula. The result |
| 30378 | is | 30364 | is |
| 30379 | 30365 | ||
| 30380 | @smallexample | 30366 | @smallexample |
| @@ -30389,12 +30375,12 @@ The derivative of | |||
| 30389 | @noindent | 30375 | @noindent |
| 30390 | with the second copy of the formula enabled in Embedded mode. | 30376 | with the second copy of the formula enabled in Embedded mode. |
| 30391 | You can now press @kbd{a d x @key{RET}} to take the derivative, and | 30377 | You can now press @kbd{a d x @key{RET}} to take the derivative, and |
| 30392 | @kbd{M-# d M-# d} to make two more copies of the derivative. | 30378 | @kbd{C-x * d C-x * d} to make two more copies of the derivative. |
| 30393 | To complete the computations, type @kbd{3 s l x @key{RET}} to evaluate | 30379 | To complete the computations, type @kbd{3 s l x @key{RET}} to evaluate |
| 30394 | the last formula, then move up to the second-to-last formula | 30380 | the last formula, then move up to the second-to-last formula |
| 30395 | and type @kbd{2 s l x @key{RET}}. | 30381 | and type @kbd{2 s l x @key{RET}}. |
| 30396 | 30382 | ||
| 30397 | Finally, you would want to press @kbd{M-# e} to exit Embedded | 30383 | Finally, you would want to press @kbd{C-x * e} to exit Embedded |
| 30398 | mode, then go up and insert the necessary text in between the | 30384 | mode, then go up and insert the necessary text in between the |
| 30399 | various formulas and numbers. | 30385 | various formulas and numbers. |
| 30400 | 30386 | ||
| @@ -30402,40 +30388,37 @@ various formulas and numbers. | |||
| 30402 | \bigskip | 30388 | \bigskip |
| 30403 | @end tex | 30389 | @end tex |
| 30404 | 30390 | ||
| 30405 | @kindex M-# f | 30391 | @kindex C-x * f |
| 30406 | @kindex M-# ' | 30392 | @kindex C-x * ' |
| 30407 | @pindex calc-embedded-new-formula | 30393 | @pindex calc-embedded-new-formula |
| 30408 | The @kbd{M-# f} (@code{calc-embedded-new-formula}) command | 30394 | The @kbd{C-x * f} (@code{calc-embedded-new-formula}) command |
| 30409 | creates a new embedded formula at the current point. It inserts | 30395 | creates a new embedded formula at the current point. It inserts |
| 30410 | some default delimiters, which are usually just blank lines, | 30396 | some default delimiters, which are usually just blank lines, |
| 30411 | and then does an algebraic entry to get the formula (which is | 30397 | and then does an algebraic entry to get the formula (which is |
| 30412 | then enabled for Embedded mode). This is just shorthand for | 30398 | then enabled for Embedded mode). This is just shorthand for |
| 30413 | typing the delimiters yourself, positioning the cursor between | 30399 | typing the delimiters yourself, positioning the cursor between |
| 30414 | the new delimiters, and pressing @kbd{M-# e}. The key sequence | 30400 | the new delimiters, and pressing @kbd{C-x * e}. The key sequence |
| 30415 | @kbd{M-# '} is equivalent to @kbd{M-# f}. | 30401 | @kbd{C-x * '} is equivalent to @kbd{C-x * f}. |
| 30416 | 30402 | ||
| 30417 | @kindex M-# n | 30403 | @kindex C-x * n |
| 30418 | @kindex M-# p | 30404 | @kindex C-x * p |
| 30419 | @pindex calc-embedded-next | 30405 | @pindex calc-embedded-next |
| 30420 | @pindex calc-embedded-previous | 30406 | @pindex calc-embedded-previous |
| 30421 | The @kbd{M-# n} (@code{calc-embedded-next}) and @kbd{M-# p} | 30407 | The @kbd{C-x * n} (@code{calc-embedded-next}) and @kbd{C-x * p} |
| 30422 | (@code{calc-embedded-previous}) commands move the cursor to the | 30408 | (@code{calc-embedded-previous}) commands move the cursor to the |
| 30423 | next or previous active embedded formula in the buffer. They | 30409 | next or previous active embedded formula in the buffer. They |
| 30424 | can take positive or negative prefix arguments to move by several | 30410 | can take positive or negative prefix arguments to move by several |
| 30425 | formulas. Note that these commands do not actually examine the | 30411 | formulas. Note that these commands do not actually examine the |
| 30426 | text of the buffer looking for formulas; they only see formulas | 30412 | text of the buffer looking for formulas; they only see formulas |
| 30427 | which have previously been activated in Embedded mode. In fact, | 30413 | which have previously been activated in Embedded mode. In fact, |
| 30428 | @kbd{M-# n} and @kbd{M-# p} are a useful way to tell which | 30414 | @kbd{C-x * n} and @kbd{C-x * p} are a useful way to tell which |
| 30429 | embedded formulas are currently active. Also, note that these | 30415 | embedded formulas are currently active. Also, note that these |
| 30430 | commands do not enable Embedded mode on the next or previous | 30416 | commands do not enable Embedded mode on the next or previous |
| 30431 | formula, they just move the cursor. (By the way, @kbd{M-# n} is | 30417 | formula, they just move the cursor. |
| 30432 | not as awkward to type as it may seem, because @kbd{M-#} ignores | ||
| 30433 | Shift and Meta on the second keystroke: @kbd{M-# M-N} can be typed | ||
| 30434 | by holding down Shift and Meta and alternately typing two keys.) | ||
| 30435 | 30418 | ||
| 30436 | @kindex M-# ` | 30419 | @kindex C-x * ` |
| 30437 | @pindex calc-embedded-edit | 30420 | @pindex calc-embedded-edit |
| 30438 | The @kbd{M-# `} (@code{calc-embedded-edit}) command edits the | 30421 | The @kbd{C-x * `} (@code{calc-embedded-edit}) command edits the |
| 30439 | embedded formula at the current point as if by @kbd{`} (@code{calc-edit}). | 30422 | embedded formula at the current point as if by @kbd{`} (@code{calc-edit}). |
| 30440 | Embedded mode does not have to be enabled for this to work. Press | 30423 | Embedded mode does not have to be enabled for this to work. Press |
| 30441 | @kbd{C-c C-c} to finish the edit, or @kbd{C-x k} to cancel. | 30424 | @kbd{C-c C-c} to finish the edit, or @kbd{C-x k} to cancel. |
| @@ -30500,10 +30483,10 @@ will do the trick) to select the righthand side of the assignment. | |||
| 30500 | Then, @kbd{17 @key{TAB} @key{DEL}} will swap the 17 into place (@pxref{Selecting | 30483 | Then, @kbd{17 @key{TAB} @key{DEL}} will swap the 17 into place (@pxref{Selecting |
| 30501 | Subformulas}, to see how this works). | 30484 | Subformulas}, to see how this works). |
| 30502 | 30485 | ||
| 30503 | @kindex M-# j | 30486 | @kindex C-x * j |
| 30504 | @pindex calc-embedded-select | 30487 | @pindex calc-embedded-select |
| 30505 | The @kbd{M-# j} (@code{calc-embedded-select}) command provides an | 30488 | The @kbd{C-x * j} (@code{calc-embedded-select}) command provides an |
| 30506 | easy way to operate on assignments. It is just like @kbd{M-# e}, | 30489 | easy way to operate on assignments. It is just like @kbd{C-x * e}, |
| 30507 | except that if the enabled formula is an assignment, it uses | 30490 | except that if the enabled formula is an assignment, it uses |
| 30508 | @kbd{j 2} to select the righthand side. If the enabled formula | 30491 | @kbd{j 2} to select the righthand side. If the enabled formula |
| 30509 | is an evaluates-to, it uses @kbd{j 1} to select the lefthand side. | 30492 | is an evaluates-to, it uses @kbd{j 1} to select the lefthand side. |
| @@ -30514,20 +30497,18 @@ bar := foo + 3 => 20 | |||
| 30514 | @end example | 30497 | @end example |
| 30515 | 30498 | ||
| 30516 | @noindent | 30499 | @noindent |
| 30517 | in which case @kbd{M-# j} will select the middle part (@samp{foo + 3}). | 30500 | in which case @kbd{C-x * j} will select the middle part (@samp{foo + 3}). |
| 30518 | 30501 | ||
| 30519 | The formula is automatically deselected when you leave Embedded | 30502 | The formula is automatically deselected when you leave Embedded |
| 30520 | mode. | 30503 | mode. |
| 30521 | 30504 | ||
| 30522 | @kindex M-# u | 30505 | @kindex C-x * u |
| 30523 | @kindex M-# = | ||
| 30524 | @pindex calc-embedded-update-formula | 30506 | @pindex calc-embedded-update-formula |
| 30525 | Another way to change the assignment to @code{foo} would simply be | 30507 | Another way to change the assignment to @code{foo} would simply be |
| 30526 | to edit the number using regular Emacs editing rather than Embedded | 30508 | to edit the number using regular Emacs editing rather than Embedded |
| 30527 | mode. Then, we have to find a way to get Embedded mode to notice | 30509 | mode. Then, we have to find a way to get Embedded mode to notice |
| 30528 | the change. The @kbd{M-# u} or @kbd{M-# =} | 30510 | the change. The @kbd{C-x * u} (@code{calc-embedded-update-formula}) |
| 30529 | (@code{calc-embedded-update-formula}) command is a convenient way | 30511 | command is a convenient way to do this. |
| 30530 | to do this. | ||
| 30531 | 30512 | ||
| 30532 | @example | 30513 | @example |
| 30533 | foo := 6 | 30514 | foo := 6 |
| @@ -30535,29 +30516,29 @@ foo := 6 | |||
| 30535 | foo + 7 => 13 | 30516 | foo + 7 => 13 |
| 30536 | @end example | 30517 | @end example |
| 30537 | 30518 | ||
| 30538 | Pressing @kbd{M-# u} is much like pressing @kbd{M-# e = M-# e}, that | 30519 | Pressing @kbd{C-x * u} is much like pressing @kbd{C-x * e = C-x * e}, that |
| 30539 | is, temporarily enabling Embedded mode for the formula under the | 30520 | is, temporarily enabling Embedded mode for the formula under the |
| 30540 | cursor and then evaluating it with @kbd{=}. But @kbd{M-# u} does | 30521 | cursor and then evaluating it with @kbd{=}. But @kbd{C-x * u} does |
| 30541 | not actually use @kbd{M-# e}, and in fact another formula somewhere | 30522 | not actually use @kbd{C-x * e}, and in fact another formula somewhere |
| 30542 | else can be enabled in Embedded mode while you use @kbd{M-# u} and | 30523 | else can be enabled in Embedded mode while you use @kbd{C-x * u} and |
| 30543 | that formula will not be disturbed. | 30524 | that formula will not be disturbed. |
| 30544 | 30525 | ||
| 30545 | With a numeric prefix argument, @kbd{M-# u} updates all active | 30526 | With a numeric prefix argument, @kbd{C-x * u} updates all active |
| 30546 | @samp{=>} formulas in the buffer. Formulas which have not yet | 30527 | @samp{=>} formulas in the buffer. Formulas which have not yet |
| 30547 | been activated in Embedded mode, and formulas which do not have | 30528 | been activated in Embedded mode, and formulas which do not have |
| 30548 | @samp{=>} as their top-level operator, are not affected by this. | 30529 | @samp{=>} as their top-level operator, are not affected by this. |
| 30549 | (This is useful only if you have used @kbd{m C}; see below.) | 30530 | (This is useful only if you have used @kbd{m C}; see below.) |
| 30550 | 30531 | ||
| 30551 | With a plain @kbd{C-u} prefix, @kbd{C-u M-# u} updates only in the | 30532 | With a plain @kbd{C-u} prefix, @kbd{C-u C-x * u} updates only in the |
| 30552 | region between mark and point rather than in the whole buffer. | 30533 | region between mark and point rather than in the whole buffer. |
| 30553 | 30534 | ||
| 30554 | @kbd{M-# u} is also a handy way to activate a formula, such as an | 30535 | @kbd{C-x * u} is also a handy way to activate a formula, such as an |
| 30555 | @samp{=>} formula that has freshly been typed in or loaded from a | 30536 | @samp{=>} formula that has freshly been typed in or loaded from a |
| 30556 | file. | 30537 | file. |
| 30557 | 30538 | ||
| 30558 | @kindex M-# a | 30539 | @kindex C-x * a |
| 30559 | @pindex calc-embedded-activate | 30540 | @pindex calc-embedded-activate |
| 30560 | The @kbd{M-# a} (@code{calc-embedded-activate}) command scans | 30541 | The @kbd{C-x * a} (@code{calc-embedded-activate}) command scans |
| 30561 | through the current buffer and activates all embedded formulas | 30542 | through the current buffer and activates all embedded formulas |
| 30562 | that contain @samp{:=} or @samp{=>} symbols. This does not mean | 30543 | that contain @samp{:=} or @samp{=>} symbols. This does not mean |
| 30563 | that Embedded mode is actually turned on, but only that the | 30544 | that Embedded mode is actually turned on, but only that the |
| @@ -30565,7 +30546,7 @@ formulas' positions are registered with Embedded mode so that | |||
| 30565 | the @samp{=>} values can be properly updated as assignments are | 30546 | the @samp{=>} values can be properly updated as assignments are |
| 30566 | changed. | 30547 | changed. |
| 30567 | 30548 | ||
| 30568 | It is a good idea to type @kbd{M-# a} right after loading a file | 30549 | It is a good idea to type @kbd{C-x * a} right after loading a file |
| 30569 | that uses embedded @samp{=>} operators. Emacs includes a nifty | 30550 | that uses embedded @samp{=>} operators. Emacs includes a nifty |
| 30570 | ``buffer-local variables'' feature that you can use to do this | 30551 | ``buffer-local variables'' feature that you can use to do this |
| 30571 | automatically. The idea is to place near the end of your file | 30552 | automatically. The idea is to place near the end of your file |
| @@ -30588,41 +30569,41 @@ trailing strings. | |||
| 30588 | When Emacs loads a file into memory, it checks for a Local Variables | 30569 | When Emacs loads a file into memory, it checks for a Local Variables |
| 30589 | section like this one at the end of the file. If it finds this | 30570 | section like this one at the end of the file. If it finds this |
| 30590 | section, it does the specified things (in this case, running | 30571 | section, it does the specified things (in this case, running |
| 30591 | @kbd{M-# a} automatically) before editing of the file begins. | 30572 | @kbd{C-x * a} automatically) before editing of the file begins. |
| 30592 | The Local Variables section must be within 3000 characters of the | 30573 | The Local Variables section must be within 3000 characters of the |
| 30593 | end of the file for Emacs to find it, and it must be in the last | 30574 | end of the file for Emacs to find it, and it must be in the last |
| 30594 | page of the file if the file has any page separators. | 30575 | page of the file if the file has any page separators. |
| 30595 | @xref{File Variables, , Local Variables in Files, emacs, the | 30576 | @xref{File Variables, , Local Variables in Files, emacs, the |
| 30596 | Emacs manual}. | 30577 | Emacs manual}. |
| 30597 | 30578 | ||
| 30598 | Note that @kbd{M-# a} does not update the formulas it finds. | 30579 | Note that @kbd{C-x * a} does not update the formulas it finds. |
| 30599 | To do this, type, say, @kbd{M-1 M-# u} after @w{@kbd{M-# a}}. | 30580 | To do this, type, say, @kbd{M-1 C-x * u} after @w{@kbd{C-x * a}}. |
| 30600 | Generally this should not be a problem, though, because the | 30581 | Generally this should not be a problem, though, because the |
| 30601 | formulas will have been up-to-date already when the file was | 30582 | formulas will have been up-to-date already when the file was |
| 30602 | saved. | 30583 | saved. |
| 30603 | 30584 | ||
| 30604 | Normally, @kbd{M-# a} activates all the formulas it finds, but | 30585 | Normally, @kbd{C-x * a} activates all the formulas it finds, but |
| 30605 | any previous active formulas remain active as well. With a | 30586 | any previous active formulas remain active as well. With a |
| 30606 | positive numeric prefix argument, @kbd{M-# a} first deactivates | 30587 | positive numeric prefix argument, @kbd{C-x * a} first deactivates |
| 30607 | all current active formulas, then actives the ones it finds in | 30588 | all current active formulas, then actives the ones it finds in |
| 30608 | its scan of the buffer. With a negative prefix argument, | 30589 | its scan of the buffer. With a negative prefix argument, |
| 30609 | @kbd{M-# a} simply deactivates all formulas. | 30590 | @kbd{C-x * a} simply deactivates all formulas. |
| 30610 | 30591 | ||
| 30611 | Embedded mode has two symbols, @samp{Active} and @samp{~Active}, | 30592 | Embedded mode has two symbols, @samp{Active} and @samp{~Active}, |
| 30612 | which it puts next to the major mode name in a buffer's mode line. | 30593 | which it puts next to the major mode name in a buffer's mode line. |
| 30613 | It puts @samp{Active} if it has reason to believe that all | 30594 | It puts @samp{Active} if it has reason to believe that all |
| 30614 | formulas in the buffer are active, because you have typed @kbd{M-# a} | 30595 | formulas in the buffer are active, because you have typed @kbd{C-x * a} |
| 30615 | and Calc has not since had to deactivate any formulas (which can | 30596 | and Calc has not since had to deactivate any formulas (which can |
| 30616 | happen if Calc goes to update an @samp{=>} formula somewhere because | 30597 | happen if Calc goes to update an @samp{=>} formula somewhere because |
| 30617 | a variable changed, and finds that the formula is no longer there | 30598 | a variable changed, and finds that the formula is no longer there |
| 30618 | due to some kind of editing outside of Embedded mode). Calc puts | 30599 | due to some kind of editing outside of Embedded mode). Calc puts |
| 30619 | @samp{~Active} in the mode line if some, but probably not all, | 30600 | @samp{~Active} in the mode line if some, but probably not all, |
| 30620 | formulas in the buffer are active. This happens if you activate | 30601 | formulas in the buffer are active. This happens if you activate |
| 30621 | a few formulas one at a time but never use @kbd{M-# a}, or if you | 30602 | a few formulas one at a time but never use @kbd{C-x * a}, or if you |
| 30622 | used @kbd{M-# a} but then Calc had to deactivate a formula | 30603 | used @kbd{C-x * a} but then Calc had to deactivate a formula |
| 30623 | because it lost track of it. If neither of these symbols appears | 30604 | because it lost track of it. If neither of these symbols appears |
| 30624 | in the mode line, no embedded formulas are active in the buffer | 30605 | in the mode line, no embedded formulas are active in the buffer |
| 30625 | (e.g., before Embedded mode has been used, or after a @kbd{M-- M-# a}). | 30606 | (e.g., before Embedded mode has been used, or after a @kbd{M-- C-x * a}). |
| 30626 | 30607 | ||
| 30627 | Embedded formulas can refer to assignments both before and after them | 30608 | Embedded formulas can refer to assignments both before and after them |
| 30628 | in the buffer. If there are several assignments to a variable, the | 30609 | in the buffer. If there are several assignments to a variable, the |
| @@ -30658,15 +30639,15 @@ and loaded in a later Emacs session, unless you have used the | |||
| 30658 | 30639 | ||
| 30659 | The @kbd{m C} (@code{calc-auto-recompute}) command turns automatic | 30640 | The @kbd{m C} (@code{calc-auto-recompute}) command turns automatic |
| 30660 | recomputation of @samp{=>} forms on and off. If you turn automatic | 30641 | recomputation of @samp{=>} forms on and off. If you turn automatic |
| 30661 | recomputation off, you will have to use @kbd{M-# u} to update these | 30642 | recomputation off, you will have to use @kbd{C-x * u} to update these |
| 30662 | formulas manually after an assignment has been changed. If you | 30643 | formulas manually after an assignment has been changed. If you |
| 30663 | plan to change several assignments at once, it may be more efficient | 30644 | plan to change several assignments at once, it may be more efficient |
| 30664 | to type @kbd{m C}, change all the assignments, then use @kbd{M-1 M-# u} | 30645 | to type @kbd{m C}, change all the assignments, then use @kbd{M-1 C-x * u} |
| 30665 | to update the entire buffer afterwards. The @kbd{m C} command also | 30646 | to update the entire buffer afterwards. The @kbd{m C} command also |
| 30666 | controls @samp{=>} formulas on the stack; @pxref{Evaluates-To | 30647 | controls @samp{=>} formulas on the stack; @pxref{Evaluates-To |
| 30667 | Operator}. When you turn automatic recomputation back on, the | 30648 | Operator}. When you turn automatic recomputation back on, the |
| 30668 | stack will be updated but the Embedded buffer will not; you must | 30649 | stack will be updated but the Embedded buffer will not; you must |
| 30669 | use @kbd{M-# u} to update the buffer by hand. | 30650 | use @kbd{C-x * u} to update the buffer by hand. |
| 30670 | 30651 | ||
| 30671 | @node Mode Settings in Embedded Mode, Customizing Embedded Mode, Assignments in Embedded Mode, Embedded Mode | 30652 | @node Mode Settings in Embedded Mode, Customizing Embedded Mode, Assignments in Embedded Mode, Embedded Mode |
| 30672 | @section Mode Settings in Embedded Mode | 30653 | @section Mode Settings in Embedded Mode |
| @@ -30777,11 +30758,11 @@ mode annotations somewhere out of the way, say, on a new page of | |||
| 30777 | the file, as long as those mode settings are suitable for all | 30758 | the file, as long as those mode settings are suitable for all |
| 30778 | formulas in the file. | 30759 | formulas in the file. |
| 30779 | 30760 | ||
| 30780 | Enabling a formula with @kbd{M-# e} causes a fresh scan for local | 30761 | Enabling a formula with @kbd{C-x * e} causes a fresh scan for local |
| 30781 | mode annotations; you will have to use this after adding annotations | 30762 | mode annotations; you will have to use this after adding annotations |
| 30782 | above a formula by hand to get the formula to notice them. Updating | 30763 | above a formula by hand to get the formula to notice them. Updating |
| 30783 | a formula with @kbd{M-# u} will also re-scan the local modes, but | 30764 | a formula with @kbd{C-x * u} will also re-scan the local modes, but |
| 30784 | global modes are only re-scanned by @kbd{M-# a}. | 30765 | global modes are only re-scanned by @kbd{C-x * a}. |
| 30785 | 30766 | ||
| 30786 | Another way that modes can get out of date is if you add a local | 30767 | Another way that modes can get out of date is if you add a local |
| 30787 | mode annotation to a formula that has another formula after it. | 30768 | mode annotation to a formula that has another formula after it. |
| @@ -30797,7 +30778,7 @@ rules of reading annotations the @samp{(sci 0)} applies to it, too. | |||
| 30797 | 456. | 30778 | 456. |
| 30798 | @end example | 30779 | @end example |
| 30799 | 30780 | ||
| 30800 | We would have to go down to the other formula and press @kbd{M-# u} | 30781 | We would have to go down to the other formula and press @kbd{C-x * u} |
| 30801 | on it in order to get it to notice the new annotation. | 30782 | on it in order to get it to notice the new annotation. |
| 30802 | 30783 | ||
| 30803 | Two more mode-recording modes selectable by @kbd{m R} are available | 30784 | Two more mode-recording modes selectable by @kbd{m R} are available |
| @@ -30819,13 +30800,13 @@ for @code{Save} have no effect. | |||
| 30819 | @noindent | 30800 | @noindent |
| 30820 | You can modify Embedded mode's behavior by setting various Lisp | 30801 | You can modify Embedded mode's behavior by setting various Lisp |
| 30821 | variables described here. These variables are customizable | 30802 | variables described here. These variables are customizable |
| 30822 | (@pxref{Customizable Variables}), or you can use @kbd{M-x set-variable} | 30803 | (@pxref{Customizing Calc}), or you can use @kbd{M-x set-variable} |
| 30823 | or @kbd{M-x edit-options} to adjust a variable on the fly. | 30804 | or @kbd{M-x edit-options} to adjust a variable on the fly. |
| 30824 | (Another possibility would be to use a file-local variable annotation at | 30805 | (Another possibility would be to use a file-local variable annotation at |
| 30825 | the end of the file; | 30806 | the end of the file; |
| 30826 | @pxref{File Variables, , Local Variables in Files, emacs, the Emacs manual}.) | 30807 | @pxref{File Variables, , Local Variables in Files, emacs, the Emacs manual}.) |
| 30827 | Many of the variables given mentioned here can be set to depend on the | 30808 | Many of the variables given mentioned here can be set to depend on the |
| 30828 | major mode of the editing buffer (@pxref{Customizable Variables}). | 30809 | major mode of the editing buffer (@pxref{Customizing Calc}). |
| 30829 | 30810 | ||
| 30830 | @vindex calc-embedded-open-formula | 30811 | @vindex calc-embedded-open-formula |
| 30831 | The @code{calc-embedded-open-formula} variable holds a regular | 30812 | The @code{calc-embedded-open-formula} variable holds a regular |
| @@ -30899,8 +30880,8 @@ case). | |||
| 30899 | @vindex calc-embedded-open-word | 30880 | @vindex calc-embedded-open-word |
| 30900 | @vindex calc-embedded-close-word | 30881 | @vindex calc-embedded-close-word |
| 30901 | The @code{calc-embedded-open-word} and @code{calc-embedded-close-word} | 30882 | The @code{calc-embedded-open-word} and @code{calc-embedded-close-word} |
| 30902 | variables are similar expressions used when you type @kbd{M-# w} | 30883 | variables are similar expressions used when you type @kbd{C-x * w} |
| 30903 | instead of @kbd{M-# e} to enable Embedded mode. | 30884 | instead of @kbd{C-x * e} to enable Embedded mode. |
| 30904 | 30885 | ||
| 30905 | @vindex calc-embedded-open-plain | 30886 | @vindex calc-embedded-open-plain |
| 30906 | The @code{calc-embedded-open-plain} variable is a string which | 30887 | The @code{calc-embedded-open-plain} variable is a string which |
| @@ -30921,9 +30902,9 @@ that followed might be shifted over with respect to the other lines. | |||
| 30921 | @vindex calc-embedded-open-new-formula | 30902 | @vindex calc-embedded-open-new-formula |
| 30922 | The @code{calc-embedded-open-new-formula} variable is a string | 30903 | The @code{calc-embedded-open-new-formula} variable is a string |
| 30923 | which is inserted at the front of a new formula when you type | 30904 | which is inserted at the front of a new formula when you type |
| 30924 | @kbd{M-# f}. Its default value is @code{"\n\n"}. If this | 30905 | @kbd{C-x * f}. Its default value is @code{"\n\n"}. If this |
| 30925 | string begins with a newline character and the @kbd{M-# f} is | 30906 | string begins with a newline character and the @kbd{C-x * f} is |
| 30926 | typed at the beginning of a line, @kbd{M-# f} will skip this | 30907 | typed at the beginning of a line, @kbd{C-x * f} will skip this |
| 30927 | first newline to avoid introducing unnecessary blank lines in | 30908 | first newline to avoid introducing unnecessary blank lines in |
| 30928 | the file. | 30909 | the file. |
| 30929 | 30910 | ||
| @@ -30931,15 +30912,15 @@ the file. | |||
| 30931 | The @code{calc-embedded-close-new-formula} variable is the corresponding | 30912 | The @code{calc-embedded-close-new-formula} variable is the corresponding |
| 30932 | string which is inserted at the end of a new formula. Its default | 30913 | string which is inserted at the end of a new formula. Its default |
| 30933 | value is also @code{"\n\n"}. The final newline is omitted by | 30914 | value is also @code{"\n\n"}. The final newline is omitted by |
| 30934 | @w{@kbd{M-# f}} if typed at the end of a line. (It follows that if | 30915 | @w{@kbd{C-x * f}} if typed at the end of a line. (It follows that if |
| 30935 | @kbd{M-# f} is typed on a blank line, both a leading opening | 30916 | @kbd{C-x * f} is typed on a blank line, both a leading opening |
| 30936 | newline and a trailing closing newline are omitted.) | 30917 | newline and a trailing closing newline are omitted.) |
| 30937 | 30918 | ||
| 30938 | @vindex calc-embedded-announce-formula | 30919 | @vindex calc-embedded-announce-formula |
| 30939 | The @code{calc-embedded-announce-formula} variable is a regular | 30920 | The @code{calc-embedded-announce-formula} variable is a regular |
| 30940 | expression which is sure to be followed by an embedded formula. | 30921 | expression which is sure to be followed by an embedded formula. |
| 30941 | The @kbd{M-# a} command searches for this pattern as well as for | 30922 | The @kbd{C-x * a} command searches for this pattern as well as for |
| 30942 | @samp{=>} and @samp{:=} operators. Note that @kbd{M-# a} will | 30923 | @samp{=>} and @samp{:=} operators. Note that @kbd{C-x * a} will |
| 30943 | not activate just anything surrounded by formula delimiters; after | 30924 | not activate just anything surrounded by formula delimiters; after |
| 30944 | all, blank lines are considered formula delimiters by default! | 30925 | all, blank lines are considered formula delimiters by default! |
| 30945 | But if your language includes a delimiter which can only occur | 30926 | But if your language includes a delimiter which can only occur |
| @@ -30967,7 +30948,7 @@ is simply a newline, @code{"\n"}, but may be different for different | |||
| 30967 | major modes. If you change this, it is a good idea still to end with a | 30948 | major modes. If you change this, it is a good idea still to end with a |
| 30968 | newline so that mode annotations will appear on lines by themselves. | 30949 | newline so that mode annotations will appear on lines by themselves. |
| 30969 | 30950 | ||
| 30970 | @node Programming, Customizable Variables, Embedded Mode, Top | 30951 | @node Programming, Customizing Calc, Embedded Mode, Top |
| 30971 | @chapter Programming | 30952 | @chapter Programming |
| 30972 | 30953 | ||
| 30973 | @noindent | 30954 | @noindent |
| @@ -31179,9 +31160,9 @@ takes some liberties with spaces: When we say @kbd{' [1 2 3] @key{RET}}, | |||
| 31179 | we take it for granted that it is clear we really mean | 31160 | we take it for granted that it is clear we really mean |
| 31180 | @kbd{' [1 @key{SPC} 2 @key{SPC} 3] @key{RET}}. | 31161 | @kbd{' [1 @key{SPC} 2 @key{SPC} 3] @key{RET}}. |
| 31181 | 31162 | ||
| 31182 | @kindex M-# m | 31163 | @kindex C-x * m |
| 31183 | @pindex read-kbd-macro | 31164 | @pindex read-kbd-macro |
| 31184 | The @kbd{M-# m} (@code{read-kbd-macro}) command reads an Emacs ``region'' | 31165 | The @kbd{C-x * m} (@code{read-kbd-macro}) command reads an Emacs ``region'' |
| 31185 | of spelled-out keystrokes and defines it as the current keyboard macro. | 31166 | of spelled-out keystrokes and defines it as the current keyboard macro. |
| 31186 | It is a convenient way to define a keyboard macro that has been stored | 31167 | It is a convenient way to define a keyboard macro that has been stored |
| 31187 | in a file, or to define a macro without executing it at the same time. | 31168 | in a file, or to define a macro without executing it at the same time. |
| @@ -31289,7 +31270,7 @@ happened to be sitting on the stack before we typed the above definition! | |||
| 31289 | Another approach is to enter a harmless dummy definition for the macro, | 31270 | Another approach is to enter a harmless dummy definition for the macro, |
| 31290 | then go back and edit in the real one with a @kbd{Z E} command. Yet | 31271 | then go back and edit in the real one with a @kbd{Z E} command. Yet |
| 31291 | another approach is to type the macro as written-out keystroke names | 31272 | another approach is to type the macro as written-out keystroke names |
| 31292 | in a buffer, then use @kbd{M-# m} (@code{read-kbd-macro}) to read the | 31273 | in a buffer, then use @kbd{C-x * m} (@code{read-kbd-macro}) to read the |
| 31293 | macro. | 31274 | macro. |
| 31294 | 31275 | ||
| 31295 | @kindex Z / | 31276 | @kindex Z / |
| @@ -31463,29 +31444,29 @@ return control to the keyboard macro. | |||
| 31463 | @node Invocation Macros, Algebraic Definitions, Keyboard Macros, Programming | 31444 | @node Invocation Macros, Algebraic Definitions, Keyboard Macros, Programming |
| 31464 | @section Invocation Macros | 31445 | @section Invocation Macros |
| 31465 | 31446 | ||
| 31466 | @kindex M-# z | 31447 | @kindex C-x * z |
| 31467 | @kindex Z I | 31448 | @kindex Z I |
| 31468 | @pindex calc-user-invocation | 31449 | @pindex calc-user-invocation |
| 31469 | @pindex calc-user-define-invocation | 31450 | @pindex calc-user-define-invocation |
| 31470 | Calc provides one special keyboard macro, called up by @kbd{M-# z} | 31451 | Calc provides one special keyboard macro, called up by @kbd{C-x * z} |
| 31471 | (@code{calc-user-invocation}), that is intended to allow you to define | 31452 | (@code{calc-user-invocation}), that is intended to allow you to define |
| 31472 | your own special way of starting Calc. To define this ``invocation | 31453 | your own special way of starting Calc. To define this ``invocation |
| 31473 | macro,'' create the macro in the usual way with @kbd{C-x (} and | 31454 | macro,'' create the macro in the usual way with @kbd{C-x (} and |
| 31474 | @kbd{C-x )}, then type @kbd{Z I} (@code{calc-user-define-invocation}). | 31455 | @kbd{C-x )}, then type @kbd{Z I} (@code{calc-user-define-invocation}). |
| 31475 | There is only one invocation macro, so you don't need to type any | 31456 | There is only one invocation macro, so you don't need to type any |
| 31476 | additional letters after @kbd{Z I}. From now on, you can type | 31457 | additional letters after @kbd{Z I}. From now on, you can type |
| 31477 | @kbd{M-# z} at any time to execute your invocation macro. | 31458 | @kbd{C-x * z} at any time to execute your invocation macro. |
| 31478 | 31459 | ||
| 31479 | For example, suppose you find yourself often grabbing rectangles of | 31460 | For example, suppose you find yourself often grabbing rectangles of |
| 31480 | numbers into Calc and multiplying their columns. You can do this | 31461 | numbers into Calc and multiplying their columns. You can do this |
| 31481 | by typing @kbd{M-# r} to grab, and @kbd{V R : *} to multiply columns. | 31462 | by typing @kbd{C-x * r} to grab, and @kbd{V R : *} to multiply columns. |
| 31482 | To make this into an invocation macro, just type @kbd{C-x ( M-# r | 31463 | To make this into an invocation macro, just type @kbd{C-x ( C-x * r |
| 31483 | V R : * C-x )}, then @kbd{Z I}. Then, to multiply a rectangle of data, | 31464 | V R : * C-x )}, then @kbd{Z I}. Then, to multiply a rectangle of data, |
| 31484 | just mark the data in its buffer in the usual way and type @kbd{M-# z}. | 31465 | just mark the data in its buffer in the usual way and type @kbd{C-x * z}. |
| 31485 | 31466 | ||
| 31486 | Invocation macros are treated like regular Emacs keyboard macros; | 31467 | Invocation macros are treated like regular Emacs keyboard macros; |
| 31487 | all the special features described above for @kbd{Z K}-style macros | 31468 | all the special features described above for @kbd{Z K}-style macros |
| 31488 | do not apply. @kbd{M-# z} is just like @kbd{C-x e}, except that it | 31469 | do not apply. @kbd{C-x * z} is just like @kbd{C-x e}, except that it |
| 31489 | uses the macro that was last stored by @kbd{Z I}. (In fact, the | 31470 | uses the macro that was last stored by @kbd{Z I}. (In fact, the |
| 31490 | macro does not even have to have anything to do with Calc!) | 31471 | macro does not even have to have anything to do with Calc!) |
| 31491 | 31472 | ||
| @@ -34729,7 +34710,7 @@ per Emacs session. | |||
| 34729 | 34710 | ||
| 34730 | @defvar calc-end-hook | 34711 | @defvar calc-end-hook |
| 34731 | This hook is called by @code{calc-quit}, generally because the user | 34712 | This hook is called by @code{calc-quit}, generally because the user |
| 34732 | presses @kbd{q} or @kbd{M-# c} while in Calc. The Calc buffer will | 34713 | presses @kbd{q} or @kbd{C-x * c} while in Calc. The Calc buffer will |
| 34733 | be the current buffer. The hook is called as the very first | 34714 | be the current buffer. The hook is called as the very first |
| 34734 | step, before the Calc window is destroyed. | 34715 | step, before the Calc window is destroyed. |
| 34735 | @end defvar | 34716 | @end defvar |
| @@ -34781,7 +34762,7 @@ message is inserted. | |||
| 34781 | @end defvar | 34762 | @end defvar |
| 34782 | 34763 | ||
| 34783 | @defvar calc-reset-hook | 34764 | @defvar calc-reset-hook |
| 34784 | This hook is called after @kbd{M-# 0} (@code{calc-reset}) has | 34765 | This hook is called after @kbd{C-x * 0} (@code{calc-reset}) has |
| 34785 | reset all modes. The Calc buffer will be the current buffer. | 34766 | reset all modes. The Calc buffer will be the current buffer. |
| 34786 | @end defvar | 34767 | @end defvar |
| 34787 | 34768 | ||
| @@ -34846,10 +34827,27 @@ used the first time, your hook should add a variable to the | |||
| 34846 | list and also call @code{make-local-variable} itself. | 34827 | list and also call @code{make-local-variable} itself. |
| 34847 | @end defvar | 34828 | @end defvar |
| 34848 | 34829 | ||
| 34849 | @node Customizable Variables, Reporting Bugs, Programming, Top | 34830 | @node Customizing Calc, Reporting Bugs, Programming, Top |
| 34850 | @appendix Customizable Variables | 34831 | @appendix Customizing Calc |
| 34832 | |||
| 34833 | The usual prefix for Calc is the key sequence @kbd{C-x *}. If you wish | ||
| 34834 | to use a different prefix, you can put | ||
| 34851 | 34835 | ||
| 34852 | GNU Calc is controlled by many variables, most of which can be reset | 34836 | @example |
| 34837 | (global-set-key "NEWPREFIX" 'calc-dispatch) | ||
| 34838 | @end example | ||
| 34839 | |||
| 34840 | @noindent | ||
| 34841 | in your .emacs file. | ||
| 34842 | (@xref{Key Bindings,,Customizing Key Bindings,emacs, | ||
| 34843 | The GNU Emacs Manual}, for more information on binding keys.) | ||
| 34844 | A convenient way to start Calc is with @kbd{C-x * *}; to make it equally | ||
| 34845 | convenient for users who use a different prefix, the prefix can be | ||
| 34846 | followed by @kbd{=}, @kbd{&}, @kbd{#}, @kbd{\}, @kbd{/}, @kbd{+} or | ||
| 34847 | @kbd{-} as well as @kbd{*} to start Calc, and so in many cases the last | ||
| 34848 | character of the prefix can simply be typed twice. | ||
| 34849 | |||
| 34850 | Calc is controlled by many variables, most of which can be reset | ||
| 34853 | from within Calc. Some variables are less involved with actual | 34851 | from within Calc. Some variables are less involved with actual |
| 34854 | calculation, and can be set outside of Calc using Emacs's | 34852 | calculation, and can be set outside of Calc using Emacs's |
| 34855 | customization facilities. These variables are listed below. | 34853 | customization facilities. These variables are listed below. |
| @@ -34882,7 +34880,7 @@ See @ref{Graphics}.@* | |||
| 34882 | The variable @code{calc-gnuplot-name} should be the name of the | 34880 | The variable @code{calc-gnuplot-name} should be the name of the |
| 34883 | GNUPLOT program (a string). If you have GNUPLOT installed on your | 34881 | GNUPLOT program (a string). If you have GNUPLOT installed on your |
| 34884 | system but Calc is unable to find it, you may need to set this | 34882 | system but Calc is unable to find it, you may need to set this |
| 34885 | variable. (@pxref{Customizable Variables}) | 34883 | variable. (@pxref{Customizing Calc}) |
| 34886 | You may also need to set some Lisp variables to show Calc how to run | 34884 | You may also need to set some Lisp variables to show Calc how to run |
| 34887 | GNUPLOT on your system, see @ref{Devices, ,Graphical Devices} . The default value | 34885 | GNUPLOT on your system, see @ref{Devices, ,Graphical Devices} . The default value |
| 34888 | of @code{calc-gnuplot-name} is @code{"gnuplot"}. | 34886 | of @code{calc-gnuplot-name} is @code{"gnuplot"}. |
| @@ -34936,9 +34934,9 @@ The default value of @code{calc-language-alist} is | |||
| 34936 | @defvarx calc-embedded-announce-formula-alist | 34934 | @defvarx calc-embedded-announce-formula-alist |
| 34937 | See @ref{Customizing Embedded Mode}.@* | 34935 | See @ref{Customizing Embedded Mode}.@* |
| 34938 | The variable @code{calc-embedded-announce-formula} helps determine | 34936 | The variable @code{calc-embedded-announce-formula} helps determine |
| 34939 | what formulas @kbd{M-# a} will activate in a buffer. It is a | 34937 | what formulas @kbd{C-x * a} will activate in a buffer. It is a |
| 34940 | regular expression, and when activating embedded formulas with | 34938 | regular expression, and when activating embedded formulas with |
| 34941 | @kbd{M-# a}, it will tell Calc that what follows is a formula to be | 34939 | @kbd{C-x * a}, it will tell Calc that what follows is a formula to be |
| 34942 | activated. (Calc also uses other patterns to find formulas, such as | 34940 | activated. (Calc also uses other patterns to find formulas, such as |
| 34943 | @samp{=>} and @samp{:=}.) | 34941 | @samp{=>} and @samp{:=}.) |
| 34944 | 34942 | ||
| @@ -34975,7 +34973,7 @@ and @code{calc-embedded-open-close-mode-alist}. | |||
| 34975 | See @ref{Customizing Embedded Mode}.@* | 34973 | See @ref{Customizing Embedded Mode}.@* |
| 34976 | The variables @code{calc-embedded-open-formula} and | 34974 | The variables @code{calc-embedded-open-formula} and |
| 34977 | @code{calc-embedded-open-formula} control the region that Calc will | 34975 | @code{calc-embedded-open-formula} control the region that Calc will |
| 34978 | activate as a formula when Embedded mode is entered with @kbd{M-# e}. | 34976 | activate as a formula when Embedded mode is entered with @kbd{C-x * e}. |
| 34979 | They are regular expressions; | 34977 | They are regular expressions; |
| 34980 | Calc normally scans backward and forward in the buffer for the | 34978 | Calc normally scans backward and forward in the buffer for the |
| 34981 | nearest text matching these regular expressions to be the ``formula | 34979 | nearest text matching these regular expressions to be the ``formula |
| @@ -35013,7 +35011,7 @@ It consists of a list of lists of the form | |||
| 35013 | See @ref{Customizing Embedded Mode}.@* | 35011 | See @ref{Customizing Embedded Mode}.@* |
| 35014 | The variables @code{calc-embedded-open-word} and | 35012 | The variables @code{calc-embedded-open-word} and |
| 35015 | @code{calc-embedded-close-word} control the region that Calc will | 35013 | @code{calc-embedded-close-word} control the region that Calc will |
| 35016 | activate when Embedded mode is entered with @kbd{M-# w}. They are | 35014 | activate when Embedded mode is entered with @kbd{C-x * w}. They are |
| 35017 | regular expressions. | 35015 | regular expressions. |
| 35018 | 35016 | ||
| 35019 | The default values of @code{calc-embedded-open-word} and | 35017 | The default values of @code{calc-embedded-open-word} and |
| @@ -35077,15 +35075,15 @@ and @code{calc-embedded-open-close-mode-alist}. | |||
| 35077 | See @ref{Customizing Embedded Mode}.@* | 35075 | See @ref{Customizing Embedded Mode}.@* |
| 35078 | The variables @code{calc-embedded-open-new-formula} and | 35076 | The variables @code{calc-embedded-open-new-formula} and |
| 35079 | @code{calc-embedded-close-new-formula} are strings which are | 35077 | @code{calc-embedded-close-new-formula} are strings which are |
| 35080 | inserted before and after a new formula when you type @kbd{M-# f}. | 35078 | inserted before and after a new formula when you type @kbd{C-x * f}. |
| 35081 | 35079 | ||
| 35082 | The default value of @code{calc-embedded-open-new-formula} is | 35080 | The default value of @code{calc-embedded-open-new-formula} is |
| 35083 | @code{"\n\n"}. If this string begins with a newline character and the | 35081 | @code{"\n\n"}. If this string begins with a newline character and the |
| 35084 | @kbd{M-# f} is typed at the beginning of a line, @kbd{M-# f} will skip | 35082 | @kbd{C-x * f} is typed at the beginning of a line, @kbd{C-x * f} will skip |
| 35085 | this first newline to avoid introducing unnecessary blank lines in the | 35083 | this first newline to avoid introducing unnecessary blank lines in the |
| 35086 | file. The default value of @code{calc-embedded-close-new-formula} is | 35084 | file. The default value of @code{calc-embedded-close-new-formula} is |
| 35087 | also @code{"\n\n"}. The final newline is omitted by @w{@kbd{M-# f}} | 35085 | also @code{"\n\n"}. The final newline is omitted by @w{@kbd{C-x * f}} |
| 35088 | if typed at the end of a line. (It follows that if @kbd{M-# f} is | 35086 | if typed at the end of a line. (It follows that if @kbd{C-x * f} is |
| 35089 | typed on a blank line, both a leading opening newline and a trailing | 35087 | typed on a blank line, both a leading opening newline and a trailing |
| 35090 | closing newline are omitted.) | 35088 | closing newline are omitted.) |
| 35091 | 35089 | ||
| @@ -35141,7 +35139,7 @@ should also be added to @code{calc-embedded-announce-formula-alist} | |||
| 35141 | and @code{calc-embedded-open-close-plain-alist}. | 35139 | and @code{calc-embedded-open-close-plain-alist}. |
| 35142 | @end defvar | 35140 | @end defvar |
| 35143 | 35141 | ||
| 35144 | @node Reporting Bugs, Summary, Customizable Variables, Top | 35142 | @node Reporting Bugs, Summary, Customizing Calc, Top |
| 35145 | @appendix Reporting Bugs | 35143 | @appendix Reporting Bugs |
| 35146 | 35144 | ||
| 35147 | @noindent | 35145 | @noindent |
| @@ -35225,35 +35223,34 @@ keystrokes are not listed in this summary. | |||
| 35225 | @advance@baselineskip-2.5pt | 35223 | @advance@baselineskip-2.5pt |
| 35226 | @let@c@sumbreak | 35224 | @let@c@sumbreak |
| 35227 | @end iftex | 35225 | @end iftex |
| 35228 | @r{ @: M-# a @: @: 33 @:calc-embedded-activate@:} | 35226 | @r{ @: C-x * a @: @: 33 @:calc-embedded-activate@:} |
| 35229 | @r{ @: M-# b @: @: @:calc-big-or-small@:} | 35227 | @r{ @: C-x * b @: @: @:calc-big-or-small@:} |
| 35230 | @r{ @: M-# c @: @: @:calc@:} | 35228 | @r{ @: C-x * c @: @: @:calc@:} |
| 35231 | @r{ @: M-# d @: @: @:calc-embedded-duplicate@:} | 35229 | @r{ @: C-x * d @: @: @:calc-embedded-duplicate@:} |
| 35232 | @r{ @: M-# e @: @: 34 @:calc-embedded@:} | 35230 | @r{ @: C-x * e @: @: 34 @:calc-embedded@:} |
| 35233 | @r{ @: M-# f @:formula @: @:calc-embedded-new-formula@:} | 35231 | @r{ @: C-x * f @:formula @: @:calc-embedded-new-formula@:} |
| 35234 | @r{ @: M-# g @: @: 35 @:calc-grab-region@:} | 35232 | @r{ @: C-x * g @: @: 35 @:calc-grab-region@:} |
| 35235 | @r{ @: M-# i @: @: @:calc-info@:} | 35233 | @r{ @: C-x * i @: @: @:calc-info@:} |
| 35236 | @r{ @: M-# j @: @: @:calc-embedded-select@:} | 35234 | @r{ @: C-x * j @: @: @:calc-embedded-select@:} |
| 35237 | @r{ @: M-# k @: @: @:calc-keypad@:} | 35235 | @r{ @: C-x * k @: @: @:calc-keypad@:} |
| 35238 | @r{ @: M-# l @: @: @:calc-load-everything@:} | 35236 | @r{ @: C-x * l @: @: @:calc-load-everything@:} |
| 35239 | @r{ @: M-# m @: @: @:read-kbd-macro@:} | 35237 | @r{ @: C-x * m @: @: @:read-kbd-macro@:} |
| 35240 | @r{ @: M-# n @: @: 4 @:calc-embedded-next@:} | 35238 | @r{ @: C-x * n @: @: 4 @:calc-embedded-next@:} |
| 35241 | @r{ @: M-# o @: @: @:calc-other-window@:} | 35239 | @r{ @: C-x * o @: @: @:calc-other-window@:} |
| 35242 | @r{ @: M-# p @: @: 4 @:calc-embedded-previous@:} | 35240 | @r{ @: C-x * p @: @: 4 @:calc-embedded-previous@:} |
| 35243 | @r{ @: M-# q @:formula @: @:quick-calc@:} | 35241 | @r{ @: C-x * q @:formula @: @:quick-calc@:} |
| 35244 | @r{ @: M-# r @: @: 36 @:calc-grab-rectangle@:} | 35242 | @r{ @: C-x * r @: @: 36 @:calc-grab-rectangle@:} |
| 35245 | @r{ @: M-# s @: @: @:calc-info-summary@:} | 35243 | @r{ @: C-x * s @: @: @:calc-info-summary@:} |
| 35246 | @r{ @: M-# t @: @: @:calc-tutorial@:} | 35244 | @r{ @: C-x * t @: @: @:calc-tutorial@:} |
| 35247 | @r{ @: M-# u @: @: @:calc-embedded-update-formula@:} | 35245 | @r{ @: C-x * u @: @: @:calc-embedded-update-formula@:} |
| 35248 | @r{ @: M-# w @: @: @:calc-embedded-word@:} | 35246 | @r{ @: C-x * w @: @: @:calc-embedded-word@:} |
| 35249 | @r{ @: M-# x @: @: @:calc-quit@:} | 35247 | @r{ @: C-x * x @: @: @:calc-quit@:} |
| 35250 | @r{ @: M-# y @: @:1,28,49 @:calc-copy-to-buffer@:} | 35248 | @r{ @: C-x * y @: @:1,28,49 @:calc-copy-to-buffer@:} |
| 35251 | @r{ @: M-# z @: @: @:calc-user-invocation@:} | 35249 | @r{ @: C-x * z @: @: @:calc-user-invocation@:} |
| 35252 | @r{ @: M-# = @: @: @:calc-embedded-update-formula@:} | 35250 | @r{ @: C-x * : @: @: 36 @:calc-grab-sum-down@:} |
| 35253 | @r{ @: M-# : @: @: 36 @:calc-grab-sum-down@:} | 35251 | @r{ @: C-x * _ @: @: 36 @:calc-grab-sum-across@:} |
| 35254 | @r{ @: M-# _ @: @: 36 @:calc-grab-sum-across@:} | 35252 | @r{ @: C-x * ` @:editing @: 30 @:calc-embedded-edit@:} |
| 35255 | @r{ @: M-# ` @:editing @: 30 @:calc-embedded-edit@:} | 35253 | @r{ @: C-x * 0 @:(zero) @: @:calc-reset@:} |
| 35256 | @r{ @: M-# 0 @:(zero) @: @:calc-reset@:} | ||
| 35257 | 35254 | ||
| 35258 | @c | 35255 | @c |
| 35259 | @r{ @: 0-9 @:number @: @:@:number} | 35256 | @r{ @: 0-9 @:number @: @:@:number} |
diff --git a/man/macos.texi b/man/macos.texi index 97952943893..90dbe311ecf 100644 --- a/man/macos.texi +++ b/man/macos.texi | |||
| @@ -42,17 +42,25 @@ features such as file dialogs, drag-and-drop, and Unicode menus. | |||
| 42 | @cindex Meta (Mac OS) | 42 | @cindex Meta (Mac OS) |
| 43 | @cindex keyboard coding (Mac OS) | 43 | @cindex keyboard coding (Mac OS) |
| 44 | 44 | ||
| 45 | @vindex mac-command-key-is-meta | 45 | @vindex mac-control-modifier |
| 46 | On Mac, Emacs can use either the @key{option} key or the | 46 | @vindex mac-command-modifier |
| 47 | @key{command} key as the @key{META} key. If the value of the variable | 47 | @vindex mac-option-modifier |
| 48 | @code{mac-command-key-is-meta} is non-@code{nil} (its default value), | 48 | On Mac, Emacs can use @key{control}, @key{command}, and @key{option} |
| 49 | Emacs uses the @key{command} key as the @key{META} key. Otherwise it | 49 | keys as any of Emacs modifier keys except @key{SHIFT} (i.e., |
| 50 | uses the @key{option} key as the @key{META} key. | 50 | @key{ALT}, @key{CTRL}, @key{HYPER}, @key{META}, and @key{SUPER}). The |
| 51 | 51 | assignment is controlled by the variables @code{mac-control-modifier}, | |
| 52 | Most people should want to use the @key{command} key as the @key{META} key, | 52 | @code{mac-command-modifier}, and @code{mac-option-modifier}. The |
| 53 | so that dead-key processing with the @key{option} key will still work. This is | 53 | value for each of these variables can be one of the following symbols: |
| 54 | useful for entering non-@acronym{ASCII} Latin characters directly from the Mac | 54 | @code{alt}, @code{control}, @code{hyper}, @code{meta}, @code{super}, |
| 55 | keyboard, for example. | 55 | and @code{nil} (no particular assignment). By default, the |
| 56 | @key{control} key works as @key{CTRL}, and the @key{command} key as | ||
| 57 | @key{META}. | ||
| 58 | |||
| 59 | For the @key{option} key, if @code{mac-option-modifier} is set to | ||
| 60 | @code{nil}, which is the default, the key works as the normal | ||
| 61 | @key{option} key, i.e., dead-key processing will work. This is useful | ||
| 62 | for entering non-@acronym{ASCII} Latin characters directly from the | ||
| 63 | Mac keyboard, for example. | ||
| 56 | 64 | ||
| 57 | Emacs recognizes the setting in the Keyboard control panel (Mac OS | 65 | Emacs recognizes the setting in the Keyboard control panel (Mac OS |
| 58 | Classic) or the International system preference pane (Mac OS X) and | 66 | Classic) or the International system preference pane (Mac OS X) and |
| @@ -133,18 +141,18 @@ mainly used by applications on Mac OS X. | |||
| 133 | converted to the encoding specified by the selection coding system | 141 | converted to the encoding specified by the selection coding system |
| 134 | using the converter in the Mac OS system, and then decoded into the | 142 | using the converter in the Mac OS system, and then decoded into the |
| 135 | Emacs internal encoding using the converter in Emacs. If the first | 143 | Emacs internal encoding using the converter in Emacs. If the first |
| 136 | conversion failed, then the UTF-16 data is directly converted to Emacs | 144 | conversion failed, then the UTF-16 data is converted similarly but via |
| 137 | internal encoding using the converter in Emacs. Copying UTF-16 text | 145 | UTF-8. Copying UTF-16 text to the clipboard goes through the inverse |
| 138 | to the clipboard goes through the inverse path. The reason for this | 146 | path. The reason for this two-pass decoding is to avoid subtle |
| 139 | two-path decoding is to avoid subtle differences in Unicode mappings | 147 | differences in Unicode mappings between the Mac OS system and Emacs |
| 140 | between the Mac OS system and Emacs such as various kinds of hyphens, | 148 | such as various kinds of hyphens, to deal with UTF-16 data in native |
| 141 | and to minimize users' customization. For example, users that mainly | 149 | byte order with no byte order mark, and to minimize users' |
| 142 | use Latin characters would prefer Greek characters to be decoded into | 150 | customization. For example, users that mainly use Latin characters |
| 143 | the @code{mule-unicode-0100-24ff} charset, but Japanese users would | 151 | would prefer Greek characters to be decoded into the |
| 144 | prefer them to be decoded into the @code{japanese-jisx0208} charset. | 152 | @code{mule-unicode-0100-24ff} charset, but Japanese users would prefer |
| 145 | Since the coding system for selection is automatically set according | 153 | them to be decoded into the @code{japanese-jisx0208} charset. Since |
| 146 | to the system locale setting, users usually don't have to set it | 154 | the coding system for selection is automatically set according to the |
| 147 | manually. | 155 | system locale setting, users usually don't have to set it manually. |
| 148 | 156 | ||
| 149 | The default language environment (@pxref{Language Environments}) is | 157 | The default language environment (@pxref{Language Environments}) is |
| 150 | set according to the locale setting at the startup time. On Mac OS, | 158 | set according to the locale setting at the startup time. On Mac OS, |
| @@ -283,8 +291,19 @@ created. | |||
| 283 | @cindex font names (Mac OS) | 291 | @cindex font names (Mac OS) |
| 284 | 292 | ||
| 285 | It is rare that you need to specify a font name in Emacs; usually | 293 | It is rare that you need to specify a font name in Emacs; usually |
| 286 | you specify face attributes instead. But when you do need to specify | 294 | you specify face attributes instead. For example, you can use 14pt |
| 287 | a font name in Emacs on Mac, use a standard X font name: | 295 | Courier by customizing the default face attributes for all frames: |
| 296 | |||
| 297 | @lisp | ||
| 298 | (set-face-attribute 'default nil :family "courier" :height 140) | ||
| 299 | @end lisp | ||
| 300 | |||
| 301 | @noindent | ||
| 302 | Alternatively, an interactive one is also available | ||
| 303 | (@pxref{Face Customization}). | ||
| 304 | |||
| 305 | But when you do need to specify a font name in Emacs on Mac, use a | ||
| 306 | standard X font name: | ||
| 288 | 307 | ||
| 289 | @smallexample | 308 | @smallexample |
| 290 | -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{} | 309 | -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{} |
diff --git a/man/org.texi b/man/org.texi index 5a8d45638bd..29c3adeb14b 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -4,8 +4,8 @@ | |||
| 4 | @setfilename ../info/org | 4 | @setfilename ../info/org |
| 5 | @settitle Org Mode Manual | 5 | @settitle Org Mode Manual |
| 6 | 6 | ||
| 7 | @set VERSION 3.20 | 7 | @set VERSION 3.21 |
| 8 | @set DATE October 2005 | 8 | @set DATE December 2005 |
| 9 | 9 | ||
| 10 | @dircategory Emacs | 10 | @dircategory Emacs |
| 11 | @direntry | 11 | @direntry |
| @@ -105,6 +105,7 @@ Document Structure | |||
| 105 | * Structure editing:: Changing sequence and level of headlines | 105 | * Structure editing:: Changing sequence and level of headlines |
| 106 | * Archiving:: Move done task trees to a different place | 106 | * Archiving:: Move done task trees to a different place |
| 107 | * Sparse trees:: Matches embedded in context | 107 | * Sparse trees:: Matches embedded in context |
| 108 | * Plain Lists:: Editing hand-formatted lists | ||
| 108 | 109 | ||
| 109 | Tables | 110 | Tables |
| 110 | 111 | ||
| @@ -212,15 +213,16 @@ printing and sharing of notes, an Org-mode file can be exported as a | |||
| 212 | structured ASCII file, as HTML, or (todo and agenda items only) as an | 213 | structured ASCII file, as HTML, or (todo and agenda items only) as an |
| 213 | iCalendar file. | 214 | iCalendar file. |
| 214 | 215 | ||
| 215 | Org-mode keeps simple things simple. Not every outline branch needs | 216 | Org-mode keeps simple things simple. When first fired up, it should |
| 216 | to be an action item, not every action item needs to have priority or | 217 | feel like a simple but easy to use outliner. Complexity is not |
| 217 | scheduling information associated with it. Org-mode can be used on | 218 | imposed, but a large amount of functionality is available when you |
| 218 | different levels and in different ways, for example | 219 | need it. Org-mode can be used on different levels and in different |
| 220 | ways, for example | ||
| 219 | 221 | ||
| 220 | @example | 222 | @example |
| 221 | @r{@bullet{} as an outline extension with visibility cycling and structure editing} | 223 | @r{@bullet{} as an outline extension with visibility cycling and structure editing} |
| 222 | @r{@bullet{} as an ASCII system and table editor to take structured notes} | 224 | @r{@bullet{} as an ASCII system and table editor to take structured notes} |
| 223 | @r{@bullet{} as an ASCII table editor with some spreadsheet-like capabilities} | 225 | @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} |
| 224 | @r{@bullet{} as a simple hypertext system, with HTML export} | 226 | @r{@bullet{} as a simple hypertext system, with HTML export} |
| 225 | @r{@bullet{} as a TODO list editor} | 227 | @r{@bullet{} as a TODO list editor} |
| 226 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} | 228 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} |
| @@ -324,6 +326,7 @@ edit the structure of the document. | |||
| 324 | * Structure editing:: Changing sequence and level of headlines | 326 | * Structure editing:: Changing sequence and level of headlines |
| 325 | * Archiving:: Move done task trees to a different place | 327 | * Archiving:: Move done task trees to a different place |
| 326 | * Sparse trees:: Matches embedded in context | 328 | * Sparse trees:: Matches embedded in context |
| 329 | * Plain Lists:: Editing hand-formatted lists | ||
| 327 | @end menu | 330 | @end menu |
| 328 | 331 | ||
| 329 | @node Outlines, Headlines, Document Structure, Document Structure | 332 | @node Outlines, Headlines, Document Structure, Document Structure |
| @@ -347,7 +350,8 @@ key. | |||
| 347 | @cindex outline tree | 350 | @cindex outline tree |
| 348 | 351 | ||
| 349 | Headlines define the structure of an outline tree. The Headlines in | 352 | Headlines define the structure of an outline tree. The Headlines in |
| 350 | Org-mode start with one or more stars, for example | 353 | Org-mode start with one or more stars, on the left margin. For |
| 354 | example | ||
| 351 | 355 | ||
| 352 | @example | 356 | @example |
| 353 | * Top level headline | 357 | * Top level headline |
| @@ -478,7 +482,8 @@ Promote the current subtree by one level | |||
| 478 | Demote the current subtree by one level | 482 | Demote the current subtree by one level |
| 479 | @kindex M-S-@key{up} | 483 | @kindex M-S-@key{up} |
| 480 | @item M-S-@key{up} | 484 | @item M-S-@key{up} |
| 481 | Move subtree up (swap with previous subtree of same level) | 485 | Move subtree up (swap with previous subtree of same |
| 486 | level) | ||
| 482 | @kindex M-S-@key{down} | 487 | @kindex M-S-@key{down} |
| 483 | @item M-S-@key{down} | 488 | @item M-S-@key{down} |
| 484 | Move subtree down (swap with next subtree of same level) | 489 | Move subtree down (swap with next subtree of same level) |
| @@ -530,7 +535,7 @@ this, see the documentation string of the variable | |||
| 530 | agenda, archiving to a different file is a good way to keep archived | 535 | agenda, archiving to a different file is a good way to keep archived |
| 531 | trees from contributing agenda items. | 536 | trees from contributing agenda items. |
| 532 | 537 | ||
| 533 | @node Sparse trees, , Archiving, Document Structure | 538 | @node Sparse trees, Plain Lists, Archiving, Document Structure |
| 534 | @section Sparse trees | 539 | @section Sparse trees |
| 535 | @cindex sparse trees | 540 | @cindex sparse trees |
| 536 | @cindex trees, sparse | 541 | @cindex trees, sparse |
| @@ -573,6 +578,69 @@ Or you can use the command @kbd{C-c C-x v} to copy the visible part of | |||
| 573 | the document to another file (extension @file{.txt}) which then can be | 578 | the document to another file (extension @file{.txt}) which then can be |
| 574 | printed in any desired way. | 579 | printed in any desired way. |
| 575 | 580 | ||
| 581 | @node Plain Lists, , Sparse trees, Document Structure | ||
| 582 | @section Plain Lists | ||
| 583 | @cindex plain lists | ||
| 584 | @cindex lists, plain | ||
| 585 | |||
| 586 | Headlines define the entire structure of the Org-mode file, and also | ||
| 587 | lists (for example TODO items (@pxref{TODO items}) should be created | ||
| 588 | using headline levels. However, when taking notes, the plain text is | ||
| 589 | sometimes easier to read with hand-formatted lists. Org-mode supports | ||
| 590 | editing such lists, and the HTML exporter (@pxref{Exporting}) does | ||
| 591 | parse and format them. | ||
| 592 | |||
| 593 | Org-mode knows ordered and unordered lists. Unordered list items | ||
| 594 | start with @samp{-}, @samp{+}, or @samp{*}@footnote{When using | ||
| 595 | @samp{*} as a bullet, lines must be indented or they will be seen as | ||
| 596 | top-level headlines.} as bullets. Ordered list items start with | ||
| 597 | @samp{1.} or @samp{1)}. Items belonging to the same list must have | ||
| 598 | the same indentation on the first line. In particular, if an ordered | ||
| 599 | list reaches number @samp{10.}, also the 2--digit numbers must be | ||
| 600 | written left-aligned with the other numbers in the list. Indentation | ||
| 601 | also determines the end of a list item. It ends before the next line | ||
| 602 | that is indented like the bullet/number, or less. For example: | ||
| 603 | |||
| 604 | @example | ||
| 605 | ** Lord of the Rings | ||
| 606 | My favorite scenes are (in this order) | ||
| 607 | 1. Eowyns fight with the witch-king | ||
| 608 | + this was already my favorite scene in the book | ||
| 609 | + I really like Miranda Otto. | ||
| 610 | 2. The attack of the Rohirrim | ||
| 611 | 3. Peter Jackson being shot by Legolas | ||
| 612 | - on DVD only | ||
| 613 | He makes a really funny face when it happens. | ||
| 614 | @end example | ||
| 615 | |||
| 616 | Org-mode supports these lists by tuning filling and wrapping commands | ||
| 617 | to correctly deal with them. Futhermore, the following commands act | ||
| 618 | on items when the cursor is in the first line of an item (the line | ||
| 619 | with the bullet or number). | ||
| 620 | |||
| 621 | @table @kbd | ||
| 622 | @kindex M-S-@key{up} | ||
| 623 | @kindex M-S-@key{down} | ||
| 624 | @item M-S-@key{up} | ||
| 625 | @itemx M-S-@key{down} | ||
| 626 | Move the item including subitems up/down (swap with previous/next item | ||
| 627 | of same intentation). If the list is ordered, renumbering is | ||
| 628 | automatic. | ||
| 629 | @kindex M-S-@key{left} | ||
| 630 | @kindex M-S-@key{right} | ||
| 631 | @item M-S-@key{left} | ||
| 632 | @itemx M-S-@key{right} | ||
| 633 | Decrease/increase the indentation of the item, including subitems. | ||
| 634 | Initially, the item tree is selected based on current indentation. | ||
| 635 | When these commands are executed several times in direct succession, | ||
| 636 | the initially selected region is used, even if the new indentation | ||
| 637 | would imply a different hierarchy. To use the new hierarchy, break | ||
| 638 | the command chain with a cursor motion or so. | ||
| 639 | @kindex C-c C-c | ||
| 640 | @item C-c C-c | ||
| 641 | Renumber the ordered list at the cursor. | ||
| 642 | @end table | ||
| 643 | |||
| 576 | @node Tables, Hyperlinks, Document Structure, Top | 644 | @node Tables, Hyperlinks, Document Structure, Top |
| 577 | @chapter Tables | 645 | @chapter Tables |
| 578 | @cindex tables | 646 | @cindex tables |
| @@ -2265,29 +2333,9 @@ exporter implements the following interpretation: | |||
| 2265 | @cindex lists, hand-formatted | 2333 | @cindex lists, hand-formatted |
| 2266 | @item | 2334 | @item |
| 2267 | Hand-formatted lists with @samp{-}, @samp{*} or @samp{+} as | 2335 | Hand-formatted lists with @samp{-}, @samp{*} or @samp{+} as |
| 2268 | bullet@footnote{When using @samp{*} as a bullet, lines must be | 2336 | bullet, or with @samp{1.} or @samp{2)} as enumerator will be recognized and |
| 2269 | indented or they will be seen as top-level headlines.}, or | 2337 | transformed into HTML lists. See @xref{Plain Lists}. |
| 2270 | with @samp{1.}, @samp{2.} as enumerator will be recognized and | 2338 | |
| 2271 | transformed into HTML lists. The | ||
| 2272 | lists is terminated by the next headline, or by a line that is | ||
| 2273 | indented like the bullet/enumerator in the first line, or less. For | ||
| 2274 | example: | ||
| 2275 | @example | ||
| 2276 | ** Lord of the Rings | ||
| 2277 | Some of my favorite scenes are | ||
| 2278 | - Eowyns fight | ||
| 2279 | - The attack of the Roherim | ||
| 2280 | (this may be favorite one) | ||
| 2281 | - Peter Jackson being shot by Legolas, | ||
| 2282 | in the extended DVD edition only | ||
| 2283 | My favorite characters are (in this sequence): | ||
| 2284 | 1. Sam | ||
| 2285 | 2. Eowyn | ||
| 2286 | 3. Aragorn | ||
| 2287 | Among the others I don't really have a preference. | ||
| 2288 | @end example | ||
| 2289 | By default, only no nesting of lists is allowed, but see the variable | ||
| 2290 | @code{org-export-local-list-max-depth}. | ||
| 2291 | @cindex underlined text | 2339 | @cindex underlined text |
| 2292 | @cindex bold text | 2340 | @cindex bold text |
| 2293 | @cindex italic text | 2341 | @cindex italic text |
| @@ -2772,9 +2820,9 @@ Kevin Rogers contributed code to access VM files on remote hosts. | |||
| 2772 | Juergen Vollmer contributed code generating the table of contents | 2820 | Juergen Vollmer contributed code generating the table of contents |
| 2773 | in HTML output, and other export improvements. | 2821 | in HTML output, and other export improvements. |
| 2774 | @item | 2822 | @item |
| 2775 | Christian Egli converted the documentation into TeXInfo format. He | 2823 | Christian Egli converted the documentation into TeXInfo format and |
| 2776 | also showed me his plans for a multifile summary for Org-mode. Some of | 2824 | patched basic CSS formatting support into the HTML exporter. He also |
| 2777 | his ideas have found their way into the agenda. | 2825 | inspired the agenda by showing me his plans for a multifile summary. |
| 2778 | @item | 2826 | @item |
| 2779 | Philip Rooke created the Org-mode reference card. He also helped with | 2827 | Philip Rooke created the Org-mode reference card. He also helped with |
| 2780 | beta testing and contributed a number of very useful ideas. | 2828 | beta testing and contributed a number of very useful ideas. |
| @@ -2790,10 +2838,10 @@ Linking to VM/BBDB/GNUS was inspired by Tom Shannon's | |||
| 2790 | @item | 2838 | @item |
| 2791 | Scheduling TODO items was inspired by John Wiegley's @file{planner.el}. | 2839 | Scheduling TODO items was inspired by John Wiegley's @file{planner.el}. |
| 2792 | @item | 2840 | @item |
| 2793 | Sacha Chua, the current maintainer of Planner, offered linking code | 2841 | Sacha Chua, the current maintainer of Planner, suggested to copy |
| 2794 | from Planner. I made use of the offer for links to RMAIL and Wanderlust. | 2842 | linking code from Planner (I took code for RMAIL and Wanderlust). |
| 2795 | @item | 2843 | @item |
| 2796 | Oliver Oppitz sent several useful suggestions. | 2844 | Oliver Oppitz made useful suggestions. |
| 2797 | @item | 2845 | @item |
| 2798 | Carsten Wimmer suggested some changes and helped fix a bug in linking | 2846 | Carsten Wimmer suggested some changes and helped fix a bug in linking |
| 2799 | to GNUS. | 2847 | to GNUS. |
| @@ -2807,8 +2855,8 @@ Emacs-Lisp compiler happy. | |||
| 2807 | Kai Grossjohann pointed out that a number of key bindings in Org-mode | 2855 | Kai Grossjohann pointed out that a number of key bindings in Org-mode |
| 2808 | conflict with other packages. | 2856 | conflict with other packages. |
| 2809 | @item | 2857 | @item |
| 2810 | Roland Winkler pointed out that additional keybindings are need to use | 2858 | Roland Winkler pointed out that additional keybindings are needed to |
| 2811 | Org-mode on a tty. | 2859 | use Org-mode on a tty. |
| 2812 | @end itemize | 2860 | @end itemize |
| 2813 | 2861 | ||
| 2814 | @node Index, Key Index, Miscellaneous, Top | 2862 | @node Index, Key Index, Miscellaneous, Top |
diff --git a/nt/ChangeLog b/nt/ChangeLog index 7436cd7b47e..ca1f8d94c46 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2005-11-26 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * emacs.rc: Use new icons. | ||
| 4 | |||
| 5 | 2005-11-26 Eli Zaretskii <eliz@gnu.org> | ||
| 6 | |||
| 7 | * emacs21.ico: Renamed from emacs.ico. | ||
| 8 | * emacs.ico: New icons from Andrew Zhilin | ||
| 9 | <andrew_zhilin@yahoo.com>. | ||
| 10 | |||
| 1 | 2005-09-10 Eli Zaretskii <eliz@gnu.org> | 11 | 2005-09-10 Eli Zaretskii <eliz@gnu.org> |
| 2 | 12 | ||
| 3 | * config.nt (HAVE_GET_CURRENT_DIR_NAME): Undefine. | 13 | * config.nt (HAVE_GET_CURRENT_DIR_NAME): Undefine. |
diff --git a/nt/emacs.rc b/nt/emacs.rc index 72008c78b94..fd75506b97f 100644 --- a/nt/emacs.rc +++ b/nt/emacs.rc | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | Emacs ICON icons\gnu2a32t.ico | 1 | Emacs ICON icons\emacs.ico |
| 2 | 32649 CURSOR icons\hand.cur | 2 | 32649 CURSOR icons\hand.cur |
| 3 | 3 | ||
| 4 | #ifndef VS_VERSION_INFO | 4 | #ifndef VS_VERSION_INFO |
diff --git a/nt/icons/emacs.ico b/nt/icons/emacs.ico index 39a6a6a7c84..41a3e9cd545 100644 --- a/nt/icons/emacs.ico +++ b/nt/icons/emacs.ico | |||
| Binary files differ | |||
diff --git a/nt/icons/emacs21.ico b/nt/icons/emacs21.ico new file mode 100644 index 00000000000..39a6a6a7c84 --- /dev/null +++ b/nt/icons/emacs21.ico | |||
| Binary files differ | |||
diff --git a/src/ChangeLog b/src/ChangeLog index 105a03a2b8c..256172630ef 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,60 @@ | |||
| 1 | 2005-11-30 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu> | ||
| 2 | |||
| 3 | * buffer.c (Fpop_to_buffer): Remove superfluous call to record_buffer. | ||
| 4 | |||
| 5 | 2005-11-30 Kim F. Storm <storm@cua.dk> | ||
| 6 | |||
| 7 | * alloc.c: Include fcntl.h. Define O_WRONLY if not defined. | ||
| 8 | (valid_lisp_object_p) [!GC_MARK_STACK]: Validate pointer by | ||
| 9 | passing it to `emacs_write'. | ||
| 10 | |||
| 11 | 2005-11-29 Ari Roponen <arjuropo@cc.jyu.fi> (tiny change) | ||
| 12 | |||
| 13 | * atimer.c (stop_other_atimers): Fix loop to correctly compute `prev'. | ||
| 14 | |||
| 15 | 2005-11-27 Richard M. Stallman <rms@gnu.org> | ||
| 16 | |||
| 17 | * window.c (adjust_window_trailing_edge): New function. | ||
| 18 | (Fadjust_window_trailing_edge): New function. | ||
| 19 | (syms_of_window): Defsubr it. | ||
| 20 | (window_deletion_count): New variable. | ||
| 21 | (delete_window): Update window_deletion_count. | ||
| 22 | |||
| 23 | 2005-11-26 Eli Zaretskii <eliz@gnu.org> | ||
| 24 | |||
| 25 | * minibuf.c (syms_of_minibuf): Mention the extension of | ||
| 26 | `completion-auto-help's meaning by complete.el. | ||
| 27 | |||
| 28 | 2005-11-26 Henrik Enberg <henrik.enberg@telia.com> | ||
| 29 | |||
| 30 | * xfaces.c (Finternal_set_lisp_face_attribute_from_resource): | ||
| 31 | Handle :inherit property as a lisp expression. | ||
| 32 | |||
| 33 | 2005-11-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 34 | |||
| 35 | * macterm.c (Qcontrol): Rename from Qctrl. All uses changed. | ||
| 36 | (syms_of_macterm): Staticpro Qcontrol, Qmeta, Qalt, Qhyper, | ||
| 37 | Qsuper, and Qmodifier_value. | ||
| 38 | (Vmac_control_modifier, Vmac_option_modifier) | ||
| 39 | (Vmac_command_modifier, Vmac_function_modifier) | ||
| 40 | (Vmac_emulate_three_button_mouse, Vmac_wheel_button_is_mouse_2) | ||
| 41 | (Vmac_pass_command_to_system, Vmac_pass_control_to_system) | ||
| 42 | (Vmac_charset_info_alist): Doc fixes. | ||
| 43 | |||
| 44 | 2005-11-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 45 | |||
| 46 | * emacs.c (main) [MAC_OSX]: Change working directory to home | ||
| 47 | directory if `-psn_*' option is specified. | ||
| 48 | |||
| 49 | * mac.c (DECODE_UTF_8): Remove macro. | ||
| 50 | [TARGET_API_MAC_CARBON] (cfstring_to_lisp_nodecode): New function | ||
| 51 | created from cfstring_to_lisp. | ||
| 52 | [TARGET_API_MAC_CARBON] (cfstring_to_lisp): Use it. | ||
| 53 | (xrm_get_preference_database) [TARGET_API_MAC_CARBON]: Likewise. | ||
| 54 | |||
| 55 | * macterm.h (cfstring_to_lisp_nodecode) [TARGET_API_MAC_CARBON]: | ||
| 56 | Add prototype. | ||
| 57 | |||
| 1 | 2005-11-21 Ken Raeburn <raeburn@mit.edu> | 58 | 2005-11-21 Ken Raeburn <raeburn@mit.edu> |
| 2 | 59 | ||
| 3 | * keymap.c (shadow_lookup): Use make_number to pass a number to | 60 | * keymap.c (shadow_lookup): Use make_number to pass a number to |
| @@ -9,8 +66,8 @@ | |||
| 9 | 66 | ||
| 10 | 2005-11-20 Chong Yidong <cyd@stupidchicken.com> | 67 | 2005-11-20 Chong Yidong <cyd@stupidchicken.com> |
| 11 | 68 | ||
| 12 | * xfaces.c (Finternal_set_lisp_face_attribute): Use | 69 | * xfaces.c (Finternal_set_lisp_face_attribute): |
| 13 | :ignore-defface for new frame defaults when `unspecified' is | 70 | Use :ignore-defface for new frame defaults when `unspecified' is |
| 14 | supplied. | 71 | supplied. |
| 15 | (Finternal_get_lisp_face_attribute): Hide :ignore-defface. | 72 | (Finternal_get_lisp_face_attribute): Hide :ignore-defface. |
| 16 | (merge_face_vectors): Don't do :ignore-defface overwriting here. | 73 | (merge_face_vectors): Don't do :ignore-defface overwriting here. |
| @@ -35,24 +92,22 @@ | |||
| 35 | 92 | ||
| 36 | * macterm.c [USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): | 93 | * macterm.c [USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): |
| 37 | New variable. | 94 | New variable. |
| 38 | [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): New | 95 | [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): New fun. |
| 39 | function. | ||
| 40 | (init_font_name_table) [USE_ATSUI && USE_CG_TEXT_DRAWING]: Use it. | 96 | (init_font_name_table) [USE_ATSUI && USE_CG_TEXT_DRAWING]: Use it. |
| 41 | [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): Don't do antialiasing if | 97 | [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): Don't do antialiasing if |
| 42 | font size is smaller than or equal to cg_text_anti_aliasing_threshold. | 98 | font size is smaller than or equal to cg_text_anti_aliasing_threshold. |
| 43 | 99 | ||
| 44 | 2005-11-17 Chong Yidong <cyd@stupidchicken.com> | 100 | 2005-11-17 Chong Yidong <cyd@stupidchicken.com> |
| 45 | 101 | ||
| 46 | * image.c (x_create_bitmap_from_xpm_data): Free attributes on | 102 | * image.c (x_create_bitmap_from_xpm_data): Free attributes on fail. |
| 47 | fail. | ||
| 48 | 103 | ||
| 49 | * xfaces.c (Qignore_defface): New variable. | 104 | * xfaces.c (Qignore_defface): New variable. |
| 50 | (syms_of_xfaces): Provide `:ignore-defface'. | 105 | (syms_of_xfaces): Provide `:ignore-defface'. |
| 51 | (IGNORE_DEFFACE_P): New macro. | 106 | (IGNORE_DEFFACE_P): New macro. |
| 52 | (check_lface_attrs, lface_fully_specified_p) | 107 | (check_lface_attrs, lface_fully_specified_p) |
| 53 | (Finternal_set_lisp_face_attribute) | 108 | (Finternal_set_lisp_face_attribute) |
| 54 | (Fface_attribute_relative_p, Fmerge_face_attribute): Handle | 109 | (Fface_attribute_relative_p, Fmerge_face_attribute): |
| 55 | Qignore_defface as a possible value. | 110 | Handle Qignore_defface as a possible value. |
| 56 | (merge_face_vectors): The merged face is `unspecified' if the | 111 | (merge_face_vectors): The merged face is `unspecified' if the |
| 57 | mergee specifies `:ignore-defface'. | 112 | mergee specifies `:ignore-defface'. |
| 58 | 113 | ||
| @@ -593,8 +648,8 @@ | |||
| 593 | * xdisp.c (remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to | 648 | * xdisp.c (remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to |
| 594 | get end of text rows. Obtain header-line/mode-line rows directly. | 649 | get end of text rows. Obtain header-line/mode-line rows directly. |
| 595 | 650 | ||
| 596 | * xterm.c, w32term.c, macterm.c (note_mouse_movement): Restore | 651 | * xterm.c, w32term.c, macterm.c (note_mouse_movement): |
| 597 | help_echo_string if mouse is moved inside last_mouse_glyph. | 652 | Restore help_echo_string if mouse is moved inside last_mouse_glyph. |
| 598 | 653 | ||
| 599 | 2005-10-12 Kim F. Storm <storm@cua.dk> | 654 | 2005-10-12 Kim F. Storm <storm@cua.dk> |
| 600 | 655 | ||
| @@ -659,8 +714,8 @@ | |||
| 659 | (init_font_name_table) [USE_ATSUI]: Use decode_mac_font_name. | 714 | (init_font_name_table) [USE_ATSUI]: Use decode_mac_font_name. |
| 660 | Don't use Fdowncase because family name is already lowered by | 715 | Don't use Fdowncase because family name is already lowered by |
| 661 | decode_mac_font_name. | 716 | decode_mac_font_name. |
| 662 | (init_font_name_table): Always call decode_mac_font_name. Add | 717 | (init_font_name_table): Always call decode_mac_font_name. |
| 663 | pair of family name and its reference to fm_font_family_alist. | 718 | Add pair of family name and its reference to fm_font_family_alist. |
| 664 | (mac_clear_font_name_table): Clear fm_font_family_alist. | 719 | (mac_clear_font_name_table): Clear fm_font_family_alist. |
| 665 | (XLoadQueryFont): Move font size parsing part to parse_x_font_name. | 720 | (XLoadQueryFont): Move font size parsing part to parse_x_font_name. |
| 666 | Lookup fm_font_family_alist to get font family reference. | 721 | Lookup fm_font_family_alist to get font family reference. |
| @@ -760,8 +815,8 @@ | |||
| 760 | (x_fix_overlapping_area): Add new OVERLAPS arg. | 815 | (x_fix_overlapping_area): Add new OVERLAPS arg. |
| 761 | (get_glyph_string_clip_rects): Add extern. | 816 | (get_glyph_string_clip_rects): Add extern. |
| 762 | 817 | ||
| 763 | * dispnew.c (redraw_overlapping_rows): Call | 818 | * dispnew.c (redraw_overlapping_rows): |
| 764 | rif->fix_overlapping_area with new OVERLAPS arg as redrawn part. | 819 | Call rif->fix_overlapping_area with new OVERLAPS arg as redrawn part. |
| 765 | 820 | ||
| 766 | * xdisp.c: Rename member for_overlaps_p in struct glyph_string to | 821 | * xdisp.c: Rename member for_overlaps_p in struct glyph_string to |
| 767 | for_overlaps. | 822 | for_overlaps. |
| @@ -1106,8 +1161,8 @@ | |||
| 1106 | 1161 | ||
| 1107 | * xsmfns.c: (get_current_dir_name): Remove prototype. | 1162 | * xsmfns.c: (get_current_dir_name): Remove prototype. |
| 1108 | 1163 | ||
| 1109 | * lisp.h: (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]: Add | 1164 | * lisp.h: (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]: |
| 1110 | prototype. | 1165 | Add prototype. |
| 1111 | 1166 | ||
| 1112 | * sysdep.c [WINDOWSNT]: Add prototype for getwd. | 1167 | * sysdep.c [WINDOWSNT]: Add prototype for getwd. |
| 1113 | Don't #undef NULL after including blockinput.h. | 1168 | Don't #undef NULL after including blockinput.h. |
diff --git a/src/alloc.c b/src/alloc.c index bc48f7bb3b4..5ab28bc0cde 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -66,6 +66,14 @@ Boston, MA 02110-1301, USA. */ | |||
| 66 | extern POINTER_TYPE *sbrk (); | 66 | extern POINTER_TYPE *sbrk (); |
| 67 | #endif | 67 | #endif |
| 68 | 68 | ||
| 69 | #ifdef HAVE_FCNTL_H | ||
| 70 | #define INCLUDED_FCNTL | ||
| 71 | #include <fcntl.h> | ||
| 72 | #endif | ||
| 73 | #ifndef O_WRONLY | ||
| 74 | #define O_WRONLY 1 | ||
| 75 | #endif | ||
| 76 | |||
| 69 | #ifdef DOUG_LEA_MALLOC | 77 | #ifdef DOUG_LEA_MALLOC |
| 70 | 78 | ||
| 71 | #include <malloc.h> | 79 | #include <malloc.h> |
| @@ -4498,21 +4506,37 @@ int | |||
| 4498 | valid_lisp_object_p (obj) | 4506 | valid_lisp_object_p (obj) |
| 4499 | Lisp_Object obj; | 4507 | Lisp_Object obj; |
| 4500 | { | 4508 | { |
| 4509 | void *p; | ||
| 4501 | #if !GC_MARK_STACK | 4510 | #if !GC_MARK_STACK |
| 4502 | /* Cannot determine this. */ | 4511 | int fd; |
| 4503 | return -1; | ||
| 4504 | #else | 4512 | #else |
| 4505 | void *p; | ||
| 4506 | struct mem_node *m; | 4513 | struct mem_node *m; |
| 4514 | #endif | ||
| 4507 | 4515 | ||
| 4508 | if (INTEGERP (obj)) | 4516 | if (INTEGERP (obj)) |
| 4509 | return 1; | 4517 | return 1; |
| 4510 | 4518 | ||
| 4511 | p = (void *) XPNTR (obj); | 4519 | p = (void *) XPNTR (obj); |
| 4512 | |||
| 4513 | if (PURE_POINTER_P (p)) | 4520 | if (PURE_POINTER_P (p)) |
| 4514 | return 1; | 4521 | return 1; |
| 4515 | 4522 | ||
| 4523 | #if !GC_MARK_STACK | ||
| 4524 | /* We need to determine whether it is safe to access memory at | ||
| 4525 | address P. Obviously, we cannot just access it (we would SEGV | ||
| 4526 | trying), so we trick the o/s to tell us whether p is a valid | ||
| 4527 | pointer. Unfortunately, we cannot use NULL_DEVICE here, as | ||
| 4528 | emacs_write may not validate p in that case. */ | ||
| 4529 | if ((fd = emacs_open("__Valid__Lisp__Object__", O_CREAT | O_WRONLY | O_TRUNC, 0666)) >= 0) | ||
| 4530 | { | ||
| 4531 | int valid = emacs_write(fd, (char *)p, 16) == 16; | ||
| 4532 | emacs_close(fd); | ||
| 4533 | unlink("__Valid__Lisp__Object__"); | ||
| 4534 | return valid; | ||
| 4535 | } | ||
| 4536 | |||
| 4537 | return -1; | ||
| 4538 | #else | ||
| 4539 | |||
| 4516 | m = mem_find (p); | 4540 | m = mem_find (p); |
| 4517 | 4541 | ||
| 4518 | if (m == MEM_NIL) | 4542 | if (m == MEM_NIL) |
diff --git a/src/atimer.c b/src/atimer.c index f8ed1b265ec..d260f67d24d 100644 --- a/src/atimer.c +++ b/src/atimer.c | |||
| @@ -231,7 +231,7 @@ stop_other_atimers (t) | |||
| 231 | struct atimer *p, *prev; | 231 | struct atimer *p, *prev; |
| 232 | 232 | ||
| 233 | /* See if T is active. */ | 233 | /* See if T is active. */ |
| 234 | for (p = atimers, prev = 0; p && p != t; p = p->next) | 234 | for (p = atimers, prev = NULL; p && p != t; prev = p, p = p->next) |
| 235 | ; | 235 | ; |
| 236 | 236 | ||
| 237 | if (p == t) | 237 | if (p == t) |
diff --git a/src/buffer.c b/src/buffer.c index 5e304d5a1bb..a20f6a2d683 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1722,9 +1722,6 @@ do not put this buffer at the front of the list of recently selected ones. */) | |||
| 1722 | } | 1722 | } |
| 1723 | } | 1723 | } |
| 1724 | Fset_buffer (buf); | 1724 | Fset_buffer (buf); |
| 1725 | if (NILP (norecord)) | ||
| 1726 | /* Why bother ? Fselect_window will do it for us anyway. -stef */ | ||
| 1727 | record_buffer (buf); | ||
| 1728 | Fselect_window (Fdisplay_buffer (buf, other_window, Qnil), norecord); | 1725 | Fselect_window (Fdisplay_buffer (buf, other_window, Qnil), norecord); |
| 1729 | return buf; | 1726 | return buf; |
| 1730 | } | 1727 | } |
diff --git a/src/emacs.c b/src/emacs.c index 33941ae9227..ff1a40283fc 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -963,9 +963,15 @@ main (argc, argv | |||
| 963 | 963 | ||
| 964 | #ifdef MAC_OSX | 964 | #ifdef MAC_OSX |
| 965 | /* Skip process serial number passed in the form -psn_x_y as | 965 | /* Skip process serial number passed in the form -psn_x_y as |
| 966 | command-line argument. */ | 966 | command-line argument. The WindowServer adds this option when |
| 967 | Emacs is invoked from the Finder or by the `open' command. In | ||
| 968 | these cases, the working directory becomes `/', so we change it | ||
| 969 | to the user's home directory. */ | ||
| 967 | if (argc > skip_args + 1 && strncmp (argv[skip_args+1], "-psn_", 5) == 0) | 970 | if (argc > skip_args + 1 && strncmp (argv[skip_args+1], "-psn_", 5) == 0) |
| 968 | skip_args++; | 971 | { |
| 972 | chdir (getenv ("HOME")); | ||
| 973 | skip_args++; | ||
| 974 | } | ||
| 969 | #endif /* MAC_OSX */ | 975 | #endif /* MAC_OSX */ |
| 970 | 976 | ||
| 971 | #ifdef VMS | 977 | #ifdef VMS |
| @@ -265,7 +265,6 @@ posix_to_mac_pathname (const char *ufn, char *mfn, int mfnbuflen) | |||
| 265 | #if TARGET_API_MAC_CARBON | 265 | #if TARGET_API_MAC_CARBON |
| 266 | static Lisp_Object Qstring, Qnumber, Qboolean, Qdate, Qdata; | 266 | static Lisp_Object Qstring, Qnumber, Qboolean, Qdate, Qdata; |
| 267 | static Lisp_Object Qarray, Qdictionary; | 267 | static Lisp_Object Qarray, Qdictionary; |
| 268 | #define DECODE_UTF_8(str) code_convert_string_norecord (str, Qutf_8, 0) | ||
| 269 | 268 | ||
| 270 | struct cfdict_context | 269 | struct cfdict_context |
| 271 | { | 270 | { |
| @@ -336,12 +335,11 @@ cfdata_to_lisp (data) | |||
| 336 | } | 335 | } |
| 337 | 336 | ||
| 338 | 337 | ||
| 339 | /* From CFString to a lisp string. Never returns a unibyte string | 338 | /* From CFString to a lisp string. Returns a unibyte string |
| 340 | (even if it only contains ASCII characters). | 339 | containing a UTF-8 byte sequence. */ |
| 341 | This may cause GC during code conversion. */ | ||
| 342 | 340 | ||
| 343 | Lisp_Object | 341 | Lisp_Object |
| 344 | cfstring_to_lisp (string) | 342 | cfstring_to_lisp_nodecode (string) |
| 345 | CFStringRef string; | 343 | CFStringRef string; |
| 346 | { | 344 | { |
| 347 | Lisp_Object result = Qnil; | 345 | Lisp_Object result = Qnil; |
| @@ -362,9 +360,23 @@ cfstring_to_lisp (string) | |||
| 362 | } | 360 | } |
| 363 | } | 361 | } |
| 364 | 362 | ||
| 363 | return result; | ||
| 364 | } | ||
| 365 | |||
| 366 | |||
| 367 | /* From CFString to a lisp string. Never returns a unibyte string | ||
| 368 | (even if it only contains ASCII characters). | ||
| 369 | This may cause GC during code conversion. */ | ||
| 370 | |||
| 371 | Lisp_Object | ||
| 372 | cfstring_to_lisp (string) | ||
| 373 | CFStringRef string; | ||
| 374 | { | ||
| 375 | Lisp_Object result = cfstring_to_lisp_nodecode (string); | ||
| 376 | |||
| 365 | if (!NILP (result)) | 377 | if (!NILP (result)) |
| 366 | { | 378 | { |
| 367 | result = DECODE_UTF_8 (result); | 379 | result = code_convert_string_norecord (result, Qutf_8, 0); |
| 368 | /* This may be superfluous. Just to make sure that the result | 380 | /* This may be superfluous. Just to make sure that the result |
| 369 | is a multibyte string. */ | 381 | is a multibyte string. */ |
| 370 | result = string_to_multibyte (result); | 382 | result = string_to_multibyte (result); |
| @@ -1141,7 +1153,7 @@ xrm_get_preference_database (application) | |||
| 1141 | CFSetGetValues (key_set, (const void **)keys); | 1153 | CFSetGetValues (key_set, (const void **)keys); |
| 1142 | for (index = 0; index < count; index++) | 1154 | for (index = 0; index < count; index++) |
| 1143 | { | 1155 | { |
| 1144 | res_name = SDATA (cfstring_to_lisp (keys[index])); | 1156 | res_name = SDATA (cfstring_to_lisp_nodecode (keys[index])); |
| 1145 | quarks = parse_resource_name (&res_name); | 1157 | quarks = parse_resource_name (&res_name); |
| 1146 | if (!(NILP (quarks) || *res_name)) | 1158 | if (!(NILP (quarks) || *res_name)) |
| 1147 | { | 1159 | { |
diff --git a/src/macterm.c b/src/macterm.c index 6c74e429726..2976a84e190 100644 --- a/src/macterm.c +++ b/src/macterm.c | |||
| @@ -199,7 +199,7 @@ extern EMACS_INT extra_keyboard_modifiers; | |||
| 199 | 199 | ||
| 200 | /* The keysyms to use for the various modifiers. */ | 200 | /* The keysyms to use for the various modifiers. */ |
| 201 | 201 | ||
| 202 | static Lisp_Object Qalt, Qhyper, Qsuper, Qctrl, | 202 | static Lisp_Object Qalt, Qhyper, Qsuper, Qcontrol, |
| 203 | Qmeta, Qmodifier_value; | 203 | Qmeta, Qmodifier_value; |
| 204 | 204 | ||
| 205 | extern int inhibit_window_system; | 205 | extern int inhibit_window_system; |
| @@ -10923,17 +10923,19 @@ syms_of_macterm () | |||
| 10923 | x_error_message_string = Qnil; | 10923 | x_error_message_string = Qnil; |
| 10924 | #endif | 10924 | #endif |
| 10925 | 10925 | ||
| 10926 | Qcontrol = intern ("control"); staticpro (&Qcontrol); | ||
| 10927 | Qmeta = intern ("meta"); staticpro (&Qmeta); | ||
| 10928 | Qalt = intern ("alt"); staticpro (&Qalt); | ||
| 10929 | Qhyper = intern ("hyper"); staticpro (&Qhyper); | ||
| 10930 | Qsuper = intern ("super"); staticpro (&Qsuper); | ||
| 10926 | Qmodifier_value = intern ("modifier-value"); | 10931 | Qmodifier_value = intern ("modifier-value"); |
| 10927 | Qctrl = intern ("ctrl"); | 10932 | staticpro (&Qmodifier_value); |
| 10928 | Fput (Qctrl, Qmodifier_value, make_number (ctrl_modifier)); | 10933 | |
| 10929 | Qmeta = intern ("meta"); | 10934 | Fput (Qcontrol, Qmodifier_value, make_number (ctrl_modifier)); |
| 10930 | Fput (Qmeta, Qmodifier_value, make_number (meta_modifier)); | 10935 | Fput (Qmeta, Qmodifier_value, make_number (meta_modifier)); |
| 10931 | Qalt = intern ("alt"); | 10936 | Fput (Qalt, Qmodifier_value, make_number (alt_modifier)); |
| 10932 | Fput (Qalt, Qmodifier_value, make_number (alt_modifier)); | 10937 | Fput (Qhyper, Qmodifier_value, make_number (hyper_modifier)); |
| 10933 | Qhyper = intern ("hyper"); | 10938 | Fput (Qsuper, Qmodifier_value, make_number (super_modifier)); |
| 10934 | Fput (Qhyper, Qmodifier_value, make_number (hyper_modifier)); | ||
| 10935 | Qsuper = intern ("super"); | ||
| 10936 | Fput (Qsuper, Qmodifier_value, make_number (super_modifier)); | ||
| 10937 | 10939 | ||
| 10938 | Qapplication = intern ("application"); staticpro (&Qapplication); | 10940 | Qapplication = intern ("application"); staticpro (&Qapplication); |
| 10939 | Qabout = intern ("about"); staticpro (&Qabout); | 10941 | Qabout = intern ("about"); staticpro (&Qabout); |
| @@ -10980,63 +10982,61 @@ syms_of_macterm () | |||
| 10980 | staticpro (&last_mouse_motion_frame); | 10982 | staticpro (&last_mouse_motion_frame); |
| 10981 | last_mouse_motion_frame = Qnil; | 10983 | last_mouse_motion_frame = Qnil; |
| 10982 | 10984 | ||
| 10983 | |||
| 10984 | |||
| 10985 | /* Variables to configure modifier key assignment. */ | 10985 | /* Variables to configure modifier key assignment. */ |
| 10986 | 10986 | ||
| 10987 | DEFVAR_LISP ("mac-control-modifier", &Vmac_control_modifier, | 10987 | DEFVAR_LISP ("mac-control-modifier", &Vmac_control_modifier, |
| 10988 | doc: /* Modifier key assumed when the Mac control key is pressed. | 10988 | doc: /* Modifier key assumed when the Mac control key is pressed. |
| 10989 | The value can be `alt', `ctrl', `hyper', or `super' for the respective | 10989 | The value can be `alt', `control', `hyper', or `super' for the |
| 10990 | modifier. The default is `ctrl'. */); | 10990 | respective modifier. The default is `control'. */); |
| 10991 | Vmac_control_modifier = Qctrl; | 10991 | Vmac_control_modifier = Qcontrol; |
| 10992 | 10992 | ||
| 10993 | DEFVAR_LISP ("mac-option-modifier", &Vmac_option_modifier, | 10993 | DEFVAR_LISP ("mac-option-modifier", &Vmac_option_modifier, |
| 10994 | doc: /* Modifier key assumed when the Mac alt/option key is pressed. | 10994 | doc: /* Modifier key assumed when the Mac alt/option key is pressed. |
| 10995 | The value can be `alt', `ctrl', `hyper', or `super' for the respective | 10995 | The value can be `alt', `control', `hyper', or `super' for the |
| 10996 | modifier. If the value is nil then the key will act as the normal | 10996 | respective modifier. If the value is nil then the key will act as the |
| 10997 | Mac control modifier, and the option key can be used to compose | 10997 | normal Mac control modifier, and the option key can be used to compose |
| 10998 | characters depending on the chosen Mac keyboard setting. */); | 10998 | characters depending on the chosen Mac keyboard setting. */); |
| 10999 | Vmac_option_modifier = Qnil; | 10999 | Vmac_option_modifier = Qnil; |
| 11000 | 11000 | ||
| 11001 | DEFVAR_LISP ("mac-command-modifier", &Vmac_command_modifier, | 11001 | DEFVAR_LISP ("mac-command-modifier", &Vmac_command_modifier, |
| 11002 | doc: /* Modifier key assumed when the Mac command key is pressed. | 11002 | doc: /* Modifier key assumed when the Mac command key is pressed. |
| 11003 | The value can be `alt', `ctrl', `hyper', or `super' for the respective | 11003 | The value can be `alt', `control', `hyper', or `super' for the |
| 11004 | modifier. The default is `meta'. */); | 11004 | respective modifier. The default is `meta'. */); |
| 11005 | Vmac_command_modifier = Qmeta; | 11005 | Vmac_command_modifier = Qmeta; |
| 11006 | 11006 | ||
| 11007 | DEFVAR_LISP ("mac-function-modifier", &Vmac_function_modifier, | 11007 | DEFVAR_LISP ("mac-function-modifier", &Vmac_function_modifier, |
| 11008 | doc: /* Modifier key assumed when the Mac function key is pressed. | 11008 | doc: /* Modifier key assumed when the Mac function key is pressed. |
| 11009 | The value can be `alt', `ctrl', `hyper', or `super' for the respective | 11009 | The value can be `alt', `control', `hyper', or `super' for the |
| 11010 | modifier. Note that remapping the function key may lead to unexpected | 11010 | respective modifier. Note that remapping the function key may lead to |
| 11011 | results for some keys on non-US/GB keyboards. */); | 11011 | unexpected results for some keys on non-US/GB keyboards. */); |
| 11012 | Vmac_function_modifier = Qnil; | 11012 | Vmac_function_modifier = Qnil; |
| 11013 | 11013 | ||
| 11014 | DEFVAR_LISP ("mac-emulate-three-button-mouse", | 11014 | DEFVAR_LISP ("mac-emulate-three-button-mouse", |
| 11015 | &Vmac_emulate_three_button_mouse, | 11015 | &Vmac_emulate_three_button_mouse, |
| 11016 | doc: /* t means that when the option-key is held down while pressing the | 11016 | doc: /* Specify a way of three button mouse emulation. |
| 11017 | mouse button, the click will register as mouse-2 and while the | 11017 | The value can be nil, t, or the symbol `reverse'. |
| 11018 | command-key is held down, the click will register as mouse-3. | 11018 | nil means that no emulation should be done and the modifiers should be |
| 11019 | 'reverse means that the option-key will register for mouse-3 | 11019 | placed on the mouse-1 event. |
| 11020 | and the command-key will register for mouse-2. nil means that | 11020 | t means that when the option-key is held down while pressing the mouse |
| 11021 | no emulation should be done and the modifiers should be placed | 11021 | button, the click will register as mouse-2 and while the command-key |
| 11022 | on the mouse-1 event. */); | 11022 | is held down, the click will register as mouse-3. |
| 11023 | The symbol `reverse' means that the option-key will register for | ||
| 11024 | mouse-3 and the command-key will register for mouse-2. */); | ||
| 11023 | Vmac_emulate_three_button_mouse = Qnil; | 11025 | Vmac_emulate_three_button_mouse = Qnil; |
| 11024 | 11026 | ||
| 11025 | #if USE_CARBON_EVENTS | 11027 | #if USE_CARBON_EVENTS |
| 11026 | DEFVAR_LISP ("mac-wheel-button-is-mouse-2", &Vmac_wheel_button_is_mouse_2, | 11028 | DEFVAR_LISP ("mac-wheel-button-is-mouse-2", &Vmac_wheel_button_is_mouse_2, |
| 11027 | doc: /* Non-nil means that the wheel button will be treated as mouse-2 and | 11029 | doc: /* Non-nil if the wheel button is mouse-2 and the right click mouse-3. |
| 11028 | the right click will be mouse-3. | 11030 | Otherwise, the right click will be treated as mouse-2 and the wheel |
| 11029 | Otherwise, the right click will be mouse-2 and the wheel button mouse-3.*/); | 11031 | button will be mouse-3. */); |
| 11030 | Vmac_wheel_button_is_mouse_2 = Qt; | 11032 | Vmac_wheel_button_is_mouse_2 = Qt; |
| 11031 | 11033 | ||
| 11032 | DEFVAR_LISP ("mac-pass-command-to-system", &Vmac_pass_command_to_system, | 11034 | DEFVAR_LISP ("mac-pass-command-to-system", &Vmac_pass_command_to_system, |
| 11033 | doc: /* If non-nil, the Mac \"Command\" key is passed on to the Mac | 11035 | doc: /* Non-nil if command key presses are passed on to the Mac Toolbox. */); |
| 11034 | Toolbox for processing before Emacs sees it. */); | ||
| 11035 | Vmac_pass_command_to_system = Qt; | 11036 | Vmac_pass_command_to_system = Qt; |
| 11036 | 11037 | ||
| 11037 | DEFVAR_LISP ("mac-pass-control-to-system", &Vmac_pass_control_to_system, | 11038 | DEFVAR_LISP ("mac-pass-control-to-system", &Vmac_pass_control_to_system, |
| 11038 | doc: /* If non-nil, the Mac \"Control\" key is passed on to the Mac | 11039 | doc: /* Non-nil if control key presses are passed on to the Mac Toolbox. */); |
| 11039 | Toolbox for processing before Emacs sees it. */); | ||
| 11040 | Vmac_pass_control_to_system = Qt; | 11040 | Vmac_pass_control_to_system = Qt; |
| 11041 | 11041 | ||
| 11042 | #endif | 11042 | #endif |
| @@ -11051,14 +11051,14 @@ may anti-alias the text. */); | |||
| 11051 | creating the terminal frame on Mac OS 9 before loading | 11051 | creating the terminal frame on Mac OS 9 before loading |
| 11052 | term/mac-win.elc. */ | 11052 | term/mac-win.elc. */ |
| 11053 | DEFVAR_LISP ("mac-charset-info-alist", &Vmac_charset_info_alist, | 11053 | DEFVAR_LISP ("mac-charset-info-alist", &Vmac_charset_info_alist, |
| 11054 | doc: /* Alist linking Emacs character sets to Mac text encoding and Emacs coding system. | 11054 | doc: /* Alist of Emacs character sets vs text encodings and coding systems. |
| 11055 | Each entry should be of the form: | 11055 | Each entry should be of the form: |
| 11056 | 11056 | ||
| 11057 | (CHARSET-NAME TEXT-ENCODING CODING-SYSTEM) | 11057 | (CHARSET-NAME TEXT-ENCODING CODING-SYSTEM) |
| 11058 | 11058 | ||
| 11059 | where CHARSET-NAME is a string used in font names to identify the | 11059 | where CHARSET-NAME is a string used in font names to identify the |
| 11060 | charset, TEXT-ENCODING is a TextEncodingBase value, and CODING_SYSTEM | 11060 | charset, TEXT-ENCODING is a TextEncodingBase value in Mac, and |
| 11061 | is a coding system corresponding to TEXT-ENCODING. */); | 11061 | CODING_SYSTEM is a coding system corresponding to TEXT-ENCODING. */); |
| 11062 | Vmac_charset_info_alist = | 11062 | Vmac_charset_info_alist = |
| 11063 | Fcons (list3 (build_string ("mac-roman"), | 11063 | Fcons (list3 (build_string ("mac-roman"), |
| 11064 | make_number (smRoman), Qnil), Qnil); | 11064 | make_number (smRoman), Qnil), Qnil); |
diff --git a/src/macterm.h b/src/macterm.h index ca6f82021fe..214037c3346 100644 --- a/src/macterm.h +++ b/src/macterm.h | |||
| @@ -581,6 +581,7 @@ extern void mac_clear_font_name_table P_ ((void)); | |||
| 581 | extern CFStringRef cfstring_create_with_utf8_cstring P_ ((const char *)); | 581 | extern CFStringRef cfstring_create_with_utf8_cstring P_ ((const char *)); |
| 582 | extern CFStringRef cfstring_create_with_string P_ ((Lisp_Object)); | 582 | extern CFStringRef cfstring_create_with_string P_ ((Lisp_Object)); |
| 583 | extern Lisp_Object cfdata_to_lisp P_ ((CFDataRef)); | 583 | extern Lisp_Object cfdata_to_lisp P_ ((CFDataRef)); |
| 584 | extern Lisp_Object cfstring_to_lisp_nodecode P_ ((CFStringRef)); | ||
| 584 | extern Lisp_Object cfstring_to_lisp P_ ((CFStringRef)); | 585 | extern Lisp_Object cfstring_to_lisp P_ ((CFStringRef)); |
| 585 | extern Lisp_Object cfnumber_to_lisp P_ ((CFNumberRef)); | 586 | extern Lisp_Object cfnumber_to_lisp P_ ((CFNumberRef)); |
| 586 | extern Lisp_Object cfdate_to_lisp P_ ((CFDateRef)); | 587 | extern Lisp_Object cfdate_to_lisp P_ ((CFDateRef)); |
diff --git a/src/minibuf.c b/src/minibuf.c index 71a0f15b72a..4aa6dde6cac 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -2776,7 +2776,9 @@ elements are deleted. */); | |||
| 2776 | history_delete_duplicates = 0; | 2776 | history_delete_duplicates = 0; |
| 2777 | 2777 | ||
| 2778 | DEFVAR_LISP ("completion-auto-help", &Vcompletion_auto_help, | 2778 | DEFVAR_LISP ("completion-auto-help", &Vcompletion_auto_help, |
| 2779 | doc: /* *Non-nil means automatically provide help for invalid completion input. */); | 2779 | doc: /* *Non-nil means automatically provide help for invalid completion input. |
| 2780 | Under Partial Completion mode, a non-nil, non-t value has a special meaning; | ||
| 2781 | see the doc string of `partial-completion-mode' for more details. */); | ||
| 2780 | Vcompletion_auto_help = Qt; | 2782 | Vcompletion_auto_help = Qt; |
| 2781 | 2783 | ||
| 2782 | DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case, | 2784 | DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case, |
diff --git a/src/window.c b/src/window.c index 69cee518ca4..2d974b4647f 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -212,6 +212,10 @@ Lisp_Object Vwindow_configuration_change_hook; | |||
| 212 | 212 | ||
| 213 | Lisp_Object Vscroll_preserve_screen_position; | 213 | Lisp_Object Vscroll_preserve_screen_position; |
| 214 | 214 | ||
| 215 | /* Incremented by 1 whenever a window is deleted. */ | ||
| 216 | |||
| 217 | int window_deletion_count; | ||
| 218 | |||
| 215 | #if 0 /* This isn't used anywhere. */ | 219 | #if 0 /* This isn't used anywhere. */ |
| 216 | /* Nonzero means we can split a frame even if it is "unsplittable". */ | 220 | /* Nonzero means we can split a frame even if it is "unsplittable". */ |
| 217 | static int inhibit_frame_unsplittable; | 221 | static int inhibit_frame_unsplittable; |
| @@ -1335,7 +1339,7 @@ delete_window (window) | |||
| 1335 | CHECK_WINDOW (window); | 1339 | CHECK_WINDOW (window); |
| 1336 | p = XWINDOW (window); | 1340 | p = XWINDOW (window); |
| 1337 | 1341 | ||
| 1338 | /* It's okay to delete an already-deleted window. */ | 1342 | /* It's a no-op to delete an already-deleted window. */ |
| 1339 | if (NILP (p->buffer) | 1343 | if (NILP (p->buffer) |
| 1340 | && NILP (p->hchild) | 1344 | && NILP (p->hchild) |
| 1341 | && NILP (p->vchild)) | 1345 | && NILP (p->vchild)) |
| @@ -1399,6 +1403,9 @@ delete_window (window) | |||
| 1399 | } | 1403 | } |
| 1400 | } | 1404 | } |
| 1401 | 1405 | ||
| 1406 | /* Now we know we can delete this one. */ | ||
| 1407 | window_deletion_count++; | ||
| 1408 | |||
| 1402 | tem = p->buffer; | 1409 | tem = p->buffer; |
| 1403 | /* tem is null for dummy parent windows | 1410 | /* tem is null for dummy parent windows |
| 1404 | (which have inferiors but not any contents themselves) */ | 1411 | (which have inferiors but not any contents themselves) */ |
| @@ -4233,9 +4240,136 @@ enlarge_window (window, delta, horiz_flag, preserve_before) | |||
| 4233 | adjust_glyphs (XFRAME (WINDOW_FRAME (XWINDOW (window)))); | 4240 | adjust_glyphs (XFRAME (WINDOW_FRAME (XWINDOW (window)))); |
| 4234 | } | 4241 | } |
| 4235 | 4242 | ||
| 4243 | |||
| 4244 | /* Adjust the size of WINDOW by DELTA, moving only its trailing edge. | ||
| 4245 | HORIZ_FLAG nonzero means adjust the width, moving the right edge. | ||
| 4246 | zero means adjust the height, moving the bottom edge. | ||
| 4247 | |||
| 4248 | Following siblings of the selected window are resized to fulfill | ||
| 4249 | the size request. If they become too small in the process, they | ||
| 4250 | are not deleted; instead, we signal an error. */ | ||
| 4251 | |||
| 4252 | static void | ||
| 4253 | adjust_window_trailing_edge (window, delta, horiz_flag) | ||
| 4254 | Lisp_Object window; | ||
| 4255 | int delta, horiz_flag; | ||
| 4256 | { | ||
| 4257 | Lisp_Object parent, child; | ||
| 4258 | struct window *p; | ||
| 4259 | Lisp_Object old_config = Fcurrent_window_configuration (Qnil); | ||
| 4260 | int delcount = window_deletion_count; | ||
| 4261 | |||
| 4262 | /* Check values of window_min_width and window_min_height for | ||
| 4263 | validity. */ | ||
| 4264 | check_min_window_sizes (); | ||
| 4265 | |||
| 4266 | if (NILP (window)) | ||
| 4267 | window = Fselected_window (); | ||
| 4268 | |||
| 4269 | CHECK_WINDOW (window); | ||
| 4270 | |||
| 4271 | /* Give up if this window cannot be resized. */ | ||
| 4272 | if (window_fixed_size_p (XWINDOW (window), horiz_flag, 1)) | ||
| 4273 | error ("Window is not resizable"); | ||
| 4274 | |||
| 4275 | while (1) | ||
| 4276 | { | ||
| 4277 | p = XWINDOW (window); | ||
| 4278 | parent = p->parent; | ||
| 4279 | |||
| 4280 | /* Make sure there is a following window. */ | ||
| 4281 | if (NILP (parent) | ||
| 4282 | && (horiz_flag ? 1 | ||
| 4283 | : NILP (XWINDOW (window)->next))) | ||
| 4284 | { | ||
| 4285 | Fset_window_configuration (old_config); | ||
| 4286 | error ("No other window following this one"); | ||
| 4287 | } | ||
| 4288 | |||
| 4289 | /* Don't make this window too small. */ | ||
| 4290 | if (XINT (CURSIZE (window)) + delta | ||
| 4291 | < (horiz_flag ? window_min_width : window_min_height)) | ||
| 4292 | { | ||
| 4293 | Fset_window_configuration (old_config); | ||
| 4294 | error ("Cannot adjust window size as specified"); | ||
| 4295 | } | ||
| 4296 | |||
| 4297 | /* Clear out some redisplay caches. */ | ||
| 4298 | XSETFASTINT (p->last_modified, 0); | ||
| 4299 | XSETFASTINT (p->last_overlay_modified, 0); | ||
| 4300 | |||
| 4301 | /* Adjust this window's edge. */ | ||
| 4302 | XSETINT (CURSIZE (window), | ||
| 4303 | XINT (CURSIZE (window)) + delta); | ||
| 4304 | |||
| 4305 | /* If this window has following siblings in the desired dimension, | ||
| 4306 | make them smaller. | ||
| 4307 | (If we reach the top of the tree and can never do this, | ||
| 4308 | we will fail and report an error, above.) */ | ||
| 4309 | if (horiz_flag | ||
| 4310 | ? !NILP (XWINDOW (parent)->hchild) | ||
| 4311 | : !NILP (XWINDOW (parent)->vchild)) | ||
| 4312 | { | ||
| 4313 | if (!NILP (XWINDOW (window)->next)) | ||
| 4314 | { | ||
| 4315 | XSETINT (CURBEG (p->next), | ||
| 4316 | XINT (CURBEG (p->next)) + delta); | ||
| 4317 | size_window (p->next, XINT (CURSIZE (p->next)) - delta, | ||
| 4318 | horiz_flag, 0); | ||
| 4319 | break; | ||
| 4320 | } | ||
| 4321 | } | ||
| 4322 | else | ||
| 4323 | /* Here we have a chain of parallel siblings, in the other dimension. | ||
| 4324 | Change the size of the other siblings. */ | ||
| 4325 | for (child = (horiz_flag | ||
| 4326 | ? XWINDOW (parent)->vchild | ||
| 4327 | : XWINDOW (parent)->hchild); | ||
| 4328 | ! NILP (child); | ||
| 4329 | child = XWINDOW (child)->next) | ||
| 4330 | if (! EQ (child, window)) | ||
| 4331 | size_window (child, XINT (CURSIZE (child)) + delta, | ||
| 4332 | horiz_flag, 0); | ||
| 4333 | |||
| 4334 | window = parent; | ||
| 4335 | } | ||
| 4336 | |||
| 4337 | /* If we made a window so small it got deleted, | ||
| 4338 | we failed. Report failure. */ | ||
| 4339 | if (delcount != window_deletion_count) | ||
| 4340 | { | ||
| 4341 | Fset_window_configuration (old_config); | ||
| 4342 | error ("Cannot adjust window size as specified"); | ||
| 4343 | } | ||
| 4344 | |||
| 4345 | /* Adjust glyph matrices. */ | ||
| 4346 | adjust_glyphs (XFRAME (WINDOW_FRAME (XWINDOW (window)))); | ||
| 4347 | } | ||
| 4348 | |||
| 4236 | #undef CURBEG | 4349 | #undef CURBEG |
| 4237 | #undef CURSIZE | 4350 | #undef CURSIZE |
| 4238 | 4351 | ||
| 4352 | DEFUN ("adjust-window-trailing-edge", Fadjust_window_trailing_edge, | ||
| 4353 | Sadjust_window_trailing_edge, 3, 3, 0, | ||
| 4354 | doc: /* Adjust the bottom or right edge of WINDOW by DELTA. | ||
| 4355 | If HORIZ_FLAG is t, that means adjust the width, moving the right edge. | ||
| 4356 | Otherwise, adjust the height, moving the bottom edge. | ||
| 4357 | |||
| 4358 | Following siblings of the selected window are resized to fulfill | ||
| 4359 | the size request. If they become too small in the process, they | ||
| 4360 | are not deleted; instead, we signal an error. */) | ||
| 4361 | (window, delta, horizontal) | ||
| 4362 | Lisp_Object window, delta, horizontal; | ||
| 4363 | { | ||
| 4364 | CHECK_NUMBER (delta); | ||
| 4365 | adjust_window_trailing_edge (window, XINT (delta), !NILP (horizontal)); | ||
| 4366 | |||
| 4367 | if (! NILP (Vwindow_configuration_change_hook)) | ||
| 4368 | call1 (Vrun_hooks, Qwindow_configuration_change_hook); | ||
| 4369 | |||
| 4370 | return Qnil; | ||
| 4371 | } | ||
| 4372 | |||
| 4239 | 4373 | ||
| 4240 | 4374 | ||
| 4241 | /*********************************************************************** | 4375 | /*********************************************************************** |
| @@ -7116,6 +7250,7 @@ The selected frame is the one whose configuration has changed. */); | |||
| 7116 | defsubr (&Ssplit_window); | 7250 | defsubr (&Ssplit_window); |
| 7117 | defsubr (&Senlarge_window); | 7251 | defsubr (&Senlarge_window); |
| 7118 | defsubr (&Sshrink_window); | 7252 | defsubr (&Sshrink_window); |
| 7253 | defsubr (&Sadjust_window_trailing_edge); | ||
| 7119 | defsubr (&Sscroll_up); | 7254 | defsubr (&Sscroll_up); |
| 7120 | defsubr (&Sscroll_down); | 7255 | defsubr (&Sscroll_down); |
| 7121 | defsubr (&Sscroll_left); | 7256 | defsubr (&Sscroll_left); |
diff --git a/src/xfaces.c b/src/xfaces.c index c096b15ba1f..7c9230f1140 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -4704,7 +4704,7 @@ DEFUN ("internal-set-lisp-face-attribute-from-resource", | |||
| 4704 | if (SYMBOLP (boolean_value)) | 4704 | if (SYMBOLP (boolean_value)) |
| 4705 | value = boolean_value; | 4705 | value = boolean_value; |
| 4706 | } | 4706 | } |
| 4707 | else if (EQ (attr, QCbox)) | 4707 | else if (EQ (attr, QCbox) || EQ (attr, QCinherit)) |
| 4708 | value = Fcar (Fread_from_string (value, Qnil, Qnil)); | 4708 | value = Fcar (Fread_from_string (value, Qnil, Qnil)); |
| 4709 | 4709 | ||
| 4710 | return Finternal_set_lisp_face_attribute (face, attr, value, frame); | 4710 | return Finternal_set_lisp_face_attribute (face, attr, value, frame); |